f0VMRgIBAQAAAAAAAAAAAAMAPgABAAAAwPBgAQAAAABAAAAAAAAAAPBKegEAAAAAAAAAAEAAOAAMAEAAIQAfAAYAAAAEAAAAQAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAoAIAAAAAAACgAgAAAAAAAAgAAAAAAAAAAwAAAAQAAADgAgAAAAAAAOACAAAAAAAA4AIAAAAAAAAcAAAAAAAAABwAAAAAAAAAAQAAAAAAAAABAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALTgYAEAAAAAtOBgAQAAAAAAEAAAAAAAAAEAAAAFAAAAwOBgAQAAAADA8GABAAAAAMDwYAEAAAAAoKYXAAAAAACgphcAAAAAAAAQAAAAAAAAAQAAAAYAAABgh3gBAAAAAGCneAEAAAAAYKd4AQAAAAAYnwAAAAAAABifAAAAAAAAABAAAAAAAAABAAAABgAAAIAmeQEAAAAAgFZ5AQAAAACAVnkBAAAAAJAMAAAAAAAAKFgAAAAAAAAAEAAAAAAAAAcAAAAEAAAAYId4AQAAAABgp3gBAAAAAGCneAEAAAAACAAAAAAAAAAwAAAAAAAAAAgAAAAAAAAAAgAAAAYAAACAFnkBAAAAAIA2eQEAAAAAgDZ5AQAAAABQAgAAAAAAAFACAAAAAAAACAAAAAAAAABS5XRkBAAAAGCHeAEAAAAAYKd4AQAAAABgp3gBAAAAABifAAAAAAAAoKgAAAAAAAABAAAAAAAAAFDldGQEAAAAFLVcAQAAAAAUtVwBAAAAABS1XAEAAAAAHJoAAAAAAAAcmgAAAAAAAAQAAAAAAAAAUeV0ZAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAPwCAAAAAAAA/AIAAAAAAAD8AgAAAAAAACAAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAC9saWI2NC9sZC1saW51eC14ODYtNjQuc28uMgAEAAAAEAAAAAEAAABHTlUAAAAAAAIAAAAGAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAuAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABKAAAAIAAAAAAAAAAAAAAAAAAAAAAAAABkAAAAIgAAAAAAAAAAAAAAAAAAAAAAAABzAAAAIAAAAAAAAAAAAAAAAAAAAAAAAACHAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC5AAAAEQAAAAAAAAAAAAAAAAAAAAAAAADzAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAkAQAAEgAAAAAAAAAAAAAAAAAAAAAAAABbAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACZAQAAEQAAAAAAAAAAAAAAAAAAAAAAAADMAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACoAgAAEgAAAAAAAAAAAAAAAAAAAAAAAABpAwAAEgAAAAAAAAAAAAAAAAAAAAAAAABvAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAClAwAAEgAAAAAAAAAAAAAAAAAAAAAAAACsAwAAEgAAAAAAAAAAAAAAAAAAAAAAAAACBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA+BAAAEgAAAAAAAAAAAAAAAAAAAAAAAADSBAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5BQAAEgAAAAAAAAAAAAAAAAAAAAAAAACBBQAAEgAAAAAAAAAAAAAAAAAAAAAAAADRBQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAgBgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZBgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA/BwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC1BwAAEgAAAAAAAAAAAAAAAAAAAAAAAABACAAAEgAAAAAAAAAAAAAAAAAAAAAAAACjCAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/CAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACNCQAAEgAAAAAAAAAAAAAAAAAAAAAAAACLCgAAEgAAAAAAAAAAAAAAAAAAAAAAAADUCgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5CwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6CwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAQDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwDAAAEgAAAAAAAAAAAAAAAAAAAAAAAABtDAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC+DAAAEgAAAAAAAAAAAAAAAAAAAAAAAAADDQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAsDQAAEgAAAAAAAAAAAAAAAAAAAAAAAACYDQAAEgAAAAAAAAAAAAAAAAAAAAAAAABTDgAAEgAAAAAAAAAAAAAAAAAAAAAAAACgDgAAEgAAAAAAAAAAAAAAAAAAAAAAAADeDgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0DwAAEgAAAAAAAAAAAAAAAAAAAAAAAADODwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAmEAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSEAAAEQAAAAAAAAAAAAAAAAAAAAAAAADMEAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUEQAAEgAAAAAAAAAAAAAAAAAAAAAAAABOEQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9EQAAEgAAAAAAAAAAAAAAAAAAAAAAAACOEQAAEgAAAAAAAAAAAAAAAAAAAAAAAACUEQAAEgAAAAAAAAAAAAAAAAAAAAAAAACbEQAAEgAAAAAAAAAAAAAAAAAAAAAAAADeEQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA2EgAAEgAAAAAAAAAAAAAAAAAAAAAAAABcEgAAEgAAAAAAAAAAAAAAAAAAAAAAAACrEgAAEgAAAAAAAAAAAAAAAAAAAAAAAAACEwAAEgAAAAAAAAAAAAAAAAAAAAAAAABNEwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB8EwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqEwAAEgAAAAAAAAAAAAAAAAAAAAAAAABUFAAAEgAAAAAAAAAAAAAAAAAAAAAAAACoFAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB+FQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC8FQAAEgAAAAAAAAAAAAAAAAAAAAAAAADrFQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAqFgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3FgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC8FgAAEgAAAAAAAAAAAAAAAAAAAAAAAADDFgAAEQAAAAAAAAAAAAAAAAAAAAAAAABpFwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC7FwAAEgAAAAAAAAAAAAAAAAAAAAAAAADdGAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSGQAAEgAAAAAAAAAAAAAAAAAAAAAAAABmGQAAEgAAAAAAAAAAAAAAAAAAAAAAAACgGQAAEgAAAAAAAAAAAAAAAAAAAAAAAADhGQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnGgAAEQAAAAAAAAAAAAAAAAAAAAAAAABgGgAAEQAAAAAAAAAAAAAAAAAAAAAAAACNGgAAEQAAAAAAAAAAAAAAAAAAAAAAAAC+GgAAEQAAAAAAAAAAAAAAAAAAAAAAAAD1GgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAhGwAAEgAAAAAAAAAAAAAAAAAAAAAAAABbGwAAEgAAAAAAAAAAAAAAAAAAAAAAAACjGwAAEgAAAAAAAAAAAAAAAAAAAAAAAADpGwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAdHAAAEgAAAAAAAAAAAAAAAAAAAAAAAABLHAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HAAAEgAAAAAAAAAAAAAAAAAAAAAAAACkHAAAEgAAAAAAAAAAAAAAAAAAAAAAAABrHQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEHgAAEgAAAAAAAAAAAAAAAAAAAAAAAABdHgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HgAAEgAAAAAAAAAAAAAAAAAAAAAAAADGHgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdHgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeHwAAEgAAAAAAAAAAAAAAAAAAAAAAAABjHwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2HwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9HwAAEgAAAAAAAAAAAAAAAAAAAAAAAADJHwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUIAAAEgAAAAAAAAAAAAAAAAAAAAAAAABFIAAAEgAAAAAAAAAAAAAAAAAAAAAAAACfIAAAEQAAAAAAAAAAAAAAAAAAAAAAAACmIAAAEgAAAAAAAAAAAAAAAAAAAAAAAADmIAAAEgAAAAAAAAAAAAAAAAAAAAAAAADtIAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAuIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0IgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzIgAAEQAAAAAAAAAAAAAAAAAAAAAAAACXIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9IgAAEgAAAAAAAAAAAAAAAAAAAAAAAADuIgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/IgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5IwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxJAAAEgAAAAAAAAAAAAAAAAAAAAAAAABSJAAAEgAAAAAAAAAAAAAAAAAAAAAAAACQJAAAEgAAAAAAAAAAAAAAAAAAAAAAAACtJAAAEQAAAAAAAAAAAAAAAAAAAAAAAADEJAAAEgAAAAAAAAAAAAAAAAAAAAAAAADqJAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/JAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAaJQAAEgAAAAAAAAAAAAAAAAAAAAAAAABVJQAAEgAAAAAAAAAAAAAAAAAAAAAAAAChJQAAEgAAAAAAAAAAAAAAAAAAAAAAAADSJQAAEgAAAAAAAAAAAAAAAAAAAAAAAAADJgAAEgAAAAAAAAAAAAAAAAAAAAAAAADcJgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA0KAAAEgAAAAAAAAAAAAAAAAAAAAAAAABvKAAAEgAAAAAAAAAAAAAAAAAAAAAAAABHKQAAEgAAAAAAAAAAAAAAAAAAAAAAAAByKQAAEgAAAAAAAAAAAAAAAAAAAAAAAACrKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADMKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADTKQAAEgAAAAAAAAAAAAAAAAAAAAAAAADxKQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAWKgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeKgAAEgAAAAAAAAAAAAAAAAAAAAAAAACWKgAAEgAAAAAAAAAAAAAAAAAAAAAAAABQKwAAEgAAAAAAAAAAAAAAAAAAAAAAAACeKwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3KwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB1LAAAEgAAAAAAAAAAAAAAAAAAAAAAAACVLAAAEgAAAAAAAAAAAAAAAAAAAAAAAACxLAAAEgAAAAAAAAAAAAAAAAAAAAAAAADNLAAAEgAAAAAAAAAAAAAAAAAAAAAAAADpLAAAEgAAAAAAAAAAAAAAAAAAAAAAAACGLQAAEgAAAAAAAAAAAAAAAAAAAAAAAACNLQAAEgAAAAAAAAAAAAAAAAAAAAAAAADYLQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA9LgAAEgAAAAAAAAAAAAAAAAAAAAAAAABjLgAAEgAAAAAAAAAAAAAAAAAAAAAAAABiLwAAEgAAAAAAAAAAAAAAAAAAAAAAAACTLwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC7LwAAEgAAAAAAAAAAAAAAAAAAAAAAAADhLwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD8LwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAZMAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA9MAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAEMQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4MQAAEgAAAAAAAAAAAAAAAAAAAAAAAABsMQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC+MQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAOMgAAEQAAAAAAAAAAAAAAAAAAAAAAAAAvMgAAEgAAAAAAAAAAAAAAAAAAAAAAAABeMgAAEgAAAAAAAAAAAAAAAAAAAAAAAACGMgAAEgAAAAAAAAAAAAAAAAAAAAAAAADuMgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAfMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6MwAAEgAAAAAAAAAAAAAAAAAAAAAAAABnMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7MwAAEgAAAAAAAAAAAAAAAAAAAAAAAACPMwAAEgAAAAAAAAAAAAAAAAAAAAAAAADFMwAAEgAAAAAAAAAAAAAAAAAAAAAAAADwMwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4NAAAEgAAAAAAAAAAAAAAAAAAAAAAAABVNAAAEgAAAAAAAAAAAAAAAAAAAAAAAACNNAAAEgAAAAAAAAAAAAAAAAAAAAAAAADANAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3NAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwNQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB4NQAAEgAAAAAAAAAAAAAAAAAAAAAAAACuNQAAEgAAAAAAAAAAAAAAAAAAAAAAAADaNQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA1NgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA7NgAAEgAAAAAAAAAAAAAAAAAAAAAAAABVNgAAEgAAAAAAAAAAAAAAAAAAAAAAAABdNgAAEgAAAAAAAAAAAAAAAAAAAAAAAACINgAAEgAAAAAAAAAAAAAAAAAAAAAAAADENgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAENwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnNwAAEgAAAAAAAAAAAAAAAAAAAAAAAABINwAAEgAAAAAAAAAAAAAAAAAAAAAAAACVNwAAEgAAAAAAAAAAAAAAAAAAAAAAAADFNwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAHOAAAEgAAAAAAAAAAAAAAAAAAAAAAAABpOAAAEgAAAAAAAAAAAAAAAAAAAAAAAACdOAAAEgAAAAAAAAAAAAAAAAAAAAAAAADIOAAAEgAAAAAAAAAAAAAAAAAAAAAAAABTOQAAEgAAAAAAAAAAAAAAAAAAAAAAAACROQAAEgAAAAAAAAAAAAAAAAAAAAAAAADAOQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD0OQAAEgAAAAAAAAAAAAAAAAAAAAAAAABFOgAAEgAAAAAAAAAAAAAAAAAAAAAAAACgOgAAEgAAAAAAAAAAAAAAAAAAAAAAAADSOgAAEgAAAAAAAAAAAAAAAAAAAAAAAAACOwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4OwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB2OwAAEgAAAAAAAAAAAAAAAAAAAAAAAAArPAAAEgAAAAAAAAAAAAAAAAAAAAAAAACOPAAAEgAAAAAAAAAAAAAAAAAAAAAAAADIPAAAEgAAAAAAAAAAAAAAAAAAAAAAAAADPQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3PQAAEgAAAAAAAAAAAAAAAAAAAAAAAABnPQAAEgAAAAAAAAAAAAAAAAAAAAAAAACfPQAAEgAAAAAAAAAAAAAAAAAAAAAAAADKPQAAEgAAAAAAAAAAAAAAAAAAAAAAAADnPQAAEgAAAAAAAAAAAAAAAAAAAAAAAAASPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA6PgAAEgAAAAAAAAAAAAAAAAAAAAAAAABhPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB8PgAAEgAAAAAAAAAAAAAAAAAAAAAAAACfPgAAEgAAAAAAAAAAAAAAAAAAAAAAAADXPgAAEgAAAAAAAAAAAAAAAAAAAAAAAAALPwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5PwAAEgAAAAAAAAAAAAAAAAAAAAAAAABwPwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqPwAAEgAAAAAAAAAAAAAAAAAAAAAAAABoQAAAEgAAAAAAAAAAAAAAAAAAAAAAAACEQAAAEgAAAAAAAAAAAAAAAAAAAAAAAACtQAAAEgAAAAAAAAAAAAAAAAAAAAAAAADjQAAAEgAAAAAAAAAAAAAAAAAAAAAAAAALQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxQQAAEgAAAAAAAAAAAAAAAAAAAAAAAABhQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7QQAAEgAAAAAAAAAAAAAAAAAAAAAAAACnQQAAEgAAAAAAAAAAAAAAAAAAAAAAAADOQQAAEgAAAAAAAAAAAAAAAAAAAAAAAADzQQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbQgAAEgAAAAAAAAAAAAAAAAAAAAAAAABXQgAAEgAAAAAAAAAAAAAAAAAAAAAAAACAQgAAEgAAAAAAAAAAAAAAAAAAAAAAAAChQgAAEgAAAAAAAAAAAAAAAAAAAAAAAADsQgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXQwAAEgAAAAAAAAAAAAAAAAAAAAAAAABBQwAAEgAAAAAAAAAAAAAAAAAAAAAAAAByQwAAEgAAAAAAAAAAAAAAAAAAAAAAAACgQwAAEgAAAAAAAAAAAAAAAAAAAAAAAADXQwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAORAAAEgAAAAAAAAAAAAAAAAAAAAAAAABIRAAAEgAAAAAAAAAAAAAAAAAAAAAAAACFRAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3RAAAEgAAAAAAAAAAAAAAAAAAAAAAAADlRAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAURQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxRQAAEgAAAAAAAAAAAAAAAAAAAAAAAABpRQAAEgAAAAAAAAAAAAAAAAAAAAAAAACnRQAAEgAAAAAAAAAAAAAAAAAAAAAAAADQRQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD9RQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAgRgAAEgAAAAAAAAAAAAAAAAAAAAAAAABYRgAAEgAAAAAAAAAAAAAAAAAAAAAAAACLRgAAEgAAAAAAAAAAAAAAAAAAAAAAAADORgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD6RgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAlRwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5RwAAEgAAAAAAAAAAAAAAAAAAAAAAAACiRwAAEgAAAAAAAAAAAAAAAAAAAAAAAADtRwAAEgAAAAAAAAAAAAAAAAAAAAAAAAApSAAAEgAAAAAAAAAAAAAAAAAAAAAAAABYSAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC3SAAAEgAAAAAAAAAAAAAAAAAAAAAAAAABSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABeSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABkSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABqSQAAEgAAAAAAAAAAAAAAAAAAAAAAAABwSQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6SQAAEgAAAAAAAAAAAAAAAAAAAAAAAADASQAAEgAAAAAAAAAAAAAAAAAAAAAAAADHSQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7SQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAfSgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnSgAAEgAAAAAAAAAAAAAAAAAAAAAAAADiSgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAZSwAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9SwAAEgAAAAAAAAAAAAAAAAAAAAAAAAD3SwAAEgAAAAAAAAAAAAAAAAAAAAAAAACqTAAAEgAAAAAAAAAAAAAAAAAAAAAAAADWTAAAEgAAAAAAAAAAAAAAAAAAAAAAAABLTQAAEgAAAAAAAAAAAAAAAAAAAAAAAACBTQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAWTgAAEgAAAAAAAAAAAAAAAAAAAAAAAACFTgAAEgAAAAAAAAAAAAAAAAAAAAAAAABcTwAAEgAAAAAAAAAAAAAAAAAAAAAAAACNTwAAEgAAAAAAAAAAAAAAAAAAAAAAAADWTwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAtUAAAEgAAAAAAAAAAAAAAAAAAAAAAAABbUAAAEQAAAAAAAAAAAAAAAAAAAAAAAACfUAAAEgAAAAAAAAAAAAAAAAAAAAAAAADSUAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAlUQAAEgAAAAAAAAAAAAAAAAAAAAAAAABSUQAAEgAAAAAAAAAAAAAAAAAAAAAAAACcUQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD0UQAAEgAAAAAAAAAAAAAAAAAAAAAAAAATUgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAwUgAAEgAAAAAAAAAAAAAAAAAAAAAAAABRUgAAEgAAAAAAAAAAAAAAAAAAAAAAAABsUgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB1UgAAEgAAAAAAAAAAAAAAAAAAAAAAAADYUwAAEgAAAAAAAAAAAAAAAAAAAAAAAADvUwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAKVQAAEgAAAAAAAAAAAAAAAAAAAAAAAAATVQAAEgAAAAAAAAAAAAAAAAAAAAAAAADgXAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7XAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAxXQAAEgAAAAAAAAAAAAAAAAAAAAAAAABnXQAAEgAAAAAAAAAAAAAAAAAAAAAAAACbXQAAEgAAAAAAAAAAAAAAAAAAAAAAAADKXQAAEgAAAAAAAAAAAAAAAAAAAAAAAADYXQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnXgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzXgAAEgAAAAAAAAAAAAAAAAAAAAAAAAC9XgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAJXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAXXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAeXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAmXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAuXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3XwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA+XwAAEgAAAAAAAAAAAAAAAAAAAAAAAABFXwAAEgAAAAAAAAAAAAAAAAAAAAAAAABMXwAAEQAAAAAAAAAAAAAAAAAAAAAAAAB/XwAAEgAAAAAAAAAAAAAAAAAAAAAAAACzXwAAEgAAAAAAAAAAAAAAAAAAAAAAAADnXwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAjYAAAEgAAAAAAAAAAAAAAAAAAAAAAAABfYAAAEQAAAAAAAAAAAAAAAAAAAAAAAACIYAAAEgAAAAAAAAAAAAAAAAAAAAAAAADOYAAAEgAAAAAAAAAAAAAAAAAAAAAAAAALYQAAEgAAAAAAAAAAAAAAAAAAAAAAAABEYQAAEgAAAAAAAAAAAAAAAAAAAAAAAACCYQAAEgAAAAAAAAAAAAAAAAAAAAAAAAC/YQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD5YQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA3YgAAEQAAAAAAAAAAAAAAAAAAAAAAAABsYgAAEQAAAAAAAAAAAAAAAAAAAAAAAACSYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACZYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACiYgAAEgAAAAAAAAAAAAAAAAAAAAAAAACyYgAAEgAAAAAAAAAAAAAAAAAAAAAAAADGYgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdYgAAEgAAAAAAAAAAAAAAAAAAAAAAAAAMYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAiYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4YwAAEgAAAAAAAAAAAAAAAAAAAAAAAABOYwAAEgAAAAAAAAAAAAAAAAAAAAAAAABWYwAAEgAAAAAAAAAAAAAAAAAAAAAAAACgYwAAEgAAAAAAAAAAAAAAAAAAAAAAAADUYwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAPZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABYZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABnZAAAEgAAAAAAAAAAAAAAAAAAAAAAAABzZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB9ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACFZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACKZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACWZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACjZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACpZAAAEgAAAAAAAAAAAAAAAAAAAAAAAACwZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAC6ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADAZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADFZAAAEgAAAAAAAAAAAAAAAAAAAAAAAADNZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD7ZAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAGZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAUZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAbZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAnZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAuZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAzZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABAZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABGZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABOZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABVZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABdZQAAEgAAAAAAAAAAAAAAAAAAAAAAAABnZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAByZQAAEgAAAAAAAAAAAAAAAAAAAAAAAACCZQAAEgAAAAAAAAAAAAAAAAAAAAAAAACJZQAAEgAAAAAAAAAAAAAAAAAAAAAAAADNZQAAEgAAAAAAAAAAAAAAAAAAAAAAAADhZQAAEQAAAAAAAAAAAAAAAAAAAAAAAADyZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAD/ZQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAzZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA4ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAA9ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABDZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABMZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABVZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABcZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABjZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABrZgAAEgAAAAAAAAAAAAAAAAAAAAAAAABzZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACAZgAAEgAAAAAAAAAAAAAAAAAAAAAAAACHZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADSZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADZZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADdZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADiZgAAEgAAAAAAAAAAAAAAAAAAAAAAAADuZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAD1ZgAAEgAAAAAAAAAAAAAAAAAAAAAAAAACZwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAPZwAAEgAAAAAAAAAAAAAAAAAAAAAAAAAlZwAAEgAAAAAAAAAAAAAAAAAAAAAAAAA5ZwAAEgAAAAAAAAAAAAAAAAAAAAAAAABMZwAAEgAAAAAAAAAAAAAAAAAAAAAAAABgZwAAEgAAAAAAAAAAAAAAAAAAAAAAAABlZwAAEgAAAAAAAAAAAAAAAAAAAAAAAABqZwAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7awAAEgAAAAAAAAAAAAAAAAAAAAAAAACpawAAEgAAAAAAAAAAAAAAAAAAAAAAAAD4awAAEgAAAAAAAAAAAAAAAAAAAAAAAABHbAAAEgAAAAAAAAAAAAAAAAAAAAAAAAB7bAAAEgAAAAAAAAAAAAAAAAAAAAAAAACUbAAAEQAAAAAAAAAAAAAAAAAAAAAAAAC7bAAAEgAAAAAAAAAAAAAAAAAAAAAAAADhbAAAEgAAAAAAAAAAAAAAAAAAAAAAAADobAAAEgAAAAAAAAAAAAAAAAAAAAAAAADvbAAAEgAAAAAAAAAAAAAAAAAAAAAAAAD2bAAAEgAAAAAAAAAAAAAAAAAAAAAAAAA1bQAAEQAAAAAAAAAAAAAAAAAAAAAAAABobQAAEgAAAAAAAAAAAAAAAAAAAAAAAACcbQAAEgAAAAAAAAAAAAAAAAAAAAAAAADQbQAAEgAAAAAAAAAAAAAAAAAAAAAAAAAMbgAAEgAAAAAAAAAAAAAAAAAAAAAAAABIbgAAEgAAAAAAAAAAAAAAAAAAAAAAAABUbgAAEgAAAAAAAAAAAAAAAAAAAAAAAABdbgAAEgAAAAAAAAAAAAAAAAAAAAAAAABkbgAAEgAAAAAAAAAAAAAAAAAAAAAAAABxbgAAEgAAAAAAAAAAAAAAAAAAAAAAAAB5bgAAEgAAAAAAAAAAAAAAAAAAAAAAAACHbgAAEgAAAAAAAAAAAAAAAAAAAAAAAACXbgAAIAAAAAAAAAAAAAAAAAAAAAAAAACsbgAA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IgANAGCRcAEAAAAAAAEAAAAAAAA9GAAAIgANACCGYgEAAAAAKQAAAAAAAAAuSgAAIgANAICPaAEAAAAAlQAAAAAAAAB4SgAAIgANACCQaAEAAAAAVwAAAAAAAADcWgAAIgANAEB8agEAAAAA9AAAAAAAAAAoAAAAEgAPAHh7eAEAAAAAAAAAAAAAAABCVwAAIgANAEBtaQEAAAAAiAAAAAAAAACVVwAAIgANANBtaQEAAAAAKgAAAAAAAAAjWAAAIgANAEBuaQEAAAAA6AAAAAAAAADZDQAAIgANAEApYgEAAAAADwAAAAAAAAA0JgAAIgANAABJZgEAAAAAHwEAAAAAAACDMAAAIgANADBcZgEAAAAA3gAAAAAAAABZVgAAIgANANBraQEAAAAAbQAAAAAAAAAJaQAAIQAXALgzeQEAAAAAgAAAAAAAAAAAAAIAAQABAAEAAgABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAMAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAgABAAIAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACAAEABAABAAEAAQABAAIAAQACAAEAAgABAAEAAQABAAUAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAQABAAEAAQABAAEAAQACAAEAAQABAAEAAQACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAYAAQACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACAAIAAgABAAIAAgABAAEAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAQABAAIABwACAAEAAQABAAEAAQAHAAEAAQABAAEACAACAAIAAgACAAIAAgACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAIAAgAIAAUABQABAAUABQAFAAIAAQABAAEAAQAJAAIABQACAAIAAgAKAAIAAgAFAAUAAgACAAEABQAFAAUACwACAAIAAgACAAUAAgAFAAIAAgACAAwAAgAFAAIAAQABAAEACAABAAYABgAGAAIAAgAGAAYAAgACAAYABgAGAAEAAgAGAAYAAgACAAIABQAFAAUABQAFAAYABgAGAAEAAQABAAEAAQABAAEAAgACAAIAAQABAAEAAQABAAEAAgACAAIACAACAAgADQABAAEAAQABAAIAAgAFAAUABQACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAEAAQAqbwAAUAAAABAAAAABAAEARm8AAFAAAAAQAAAAAQABAFBvAABQAAAAEAAAAAEACABbbwAAUAAAABAAAAABAAEAr28AAMAAAAAAAAAAdRppCQAABQA6bwAAAAAAAHUaaQkAAAYAOm8AAAAAAAB1GmkJAAALADpvAAAAAAAAdRppCQAAAgA6bwAAEAAAABNpaQ0AAAcAZW8AABAAAAB0GWkJAAAIAG9vAAAQAAAAFGlpDQAAAwB7bwAAEAAAABZpaQ0AAAoAhW8AABAAAAAXaWkNAAANAI9vAAAQAAAAlJGWBgAABACZbwAAEAAAAJaRlgYAAAwApG8AAAAAAAATaWkNAAAJAGVvAAAAAAAAFAAAAM8BAAAQAAAAGgAAAANIAKAQQBAAAgQguACwAAACCAQAQAAAAALCsBMAAAAAAAABAAwCAJARRDBADcLBEBoUQQBgAAARAFBAAAAAAAGBwSQFBQgCwAAIAAgAAIBAAAAgQSBCgBAIFTAIUQAAAAADGIEAkABCOCoAAEAEAEAAGAAABAogAFyACpCKBQAgzwEAANYBAADYAQAA3wEAAOMBAADlAQAA5wEAAOkBAADtAQAA7wEAAPEBAAD3AQAA+gEAAAECAAAHAgAACgIAAA4CAAASAgAAFgIAABoCAAC4jfEO2LB5UuRiYFOM85ks6JsvRwBUJ3UJdoXEgLGrE+FnFI+WOSSaIlo3gEoxVyrOYDQmfpeWFE6l4YuTGMQu0jdqnOYDJXAqTvX83+scPvi55zIBFiRWgEygm1U5uKQOYFIEwydAGNq2fiNabl/7dip9LndtjrvEu6r13VgnVthIrF1B3Ge1Io2w/mq/Li92kZ0AzsF3OdZR9zAvkO9+bgh3cSriy8e3us3yCFv0s1RxM4FwTUm+bIDcb8z+vlTgrhwpGe5wipTiL5dM4wYSqEuQr4DRsSsoPYJCpXFN80rc1n6uNlNin3Jap85YSQcGVptIQu8FmiNpTfMYL9O9JNhT04zV00NF5UzzOBfEUbSPlopIP1stXfihVerT7w4aal/7DvyZLD9bayZiIZ97Ev8GYx67qE4Oxnc5wz7PmwBfX2xpYmNfc3RhcnRfbWFpbgBfX2dtb25fc3RhcnRfXwBfaW5pdABfZmluaQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfX2N4YV9maW5hbGl6ZQBfSnZfUmVnaXN0ZXJDbGFzc2VzAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxM1ZlcmlmeVZlcnNpb25FaWlQS2MAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDI2Zml4ZWRfYWRkcmVzc19lbXB0eV9zdHJpbmdFAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNERlc3Ryb3lNZXNzYWdlRVBLdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTNPblNodXRkb3duUnVuRVBGdlBLdkVTM18AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDExSW5pdFNDQ0ltcGxFUE5TMV8xMVNDQ0luZm9CYXNlRQBfWk42Z29vZ2xlOHByb3RvYnVmMjhfVGltZXN0YW1wX2RlZmF1bHRfaW5zdGFuY2VfRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTdBc3NpZ25EZXNjcmlwdG9yc0VQS05TMV8xNURlc2NyaXB0b3JUYWJsZUUAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDI5SW50ZXJuYWxNZXRhZGF0YVdpdGhBcmVuYUJhc2VJTlMwXzE1VW5rbm93bkZpZWxkU2V0RU5TMV8yNUludGVybmFsTWV0YWRhdGFXaXRoQXJlbmFFRTI3bXV0YWJsZV91bmtub3duX2ZpZWxkc19zbG93RXYAX1pONmdvb2dsZThwcm90b2J1ZjE1VW5rbm93bkZpZWxkU2V0OU1lcmdlRnJvbUVSS1MxXwBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRBcmVuYVN0cmluZ1B0cjE0Q3JlYXRlSW5zdGFuY2VFUE5TMF81QXJlbmFFUEtOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNV8xMWNoYXJfdHJhaXRzSWNFRU5TNV85YWxsb2NhdG9ySWNFRUVFAF9abndtAF9aTjZnb29nbGU4cHJvdG9idWYxNVVua25vd25GaWVsZFNldDEzQ2xlYXJGYWxsYmFja0V2AF9aZGxQdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTE2VmVyaWZ5VXRmOFN0cmluZ0VQS2NpTlMyXzlPcGVyYXRpb25FUzRfAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0xNVJlYWRUYWdGYWxsYmFja0VqAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlOVJlYWRCeXRlc0VQTlMwXzJpbzE2Q29kZWRJbnB1dFN0cmVhbUVQTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzZfMTFjaGFyX3RyYWl0c0ljRUVOUzZfOWFsbG9jYXRvckljRUVFRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTBXaXJlRm9ybWF0OVNraXBGaWVsZEVQTlMwXzJpbzE2Q29kZWRJbnB1dFN0cmVhbUVqUE5TMF8xNVVua25vd25GaWVsZFNldEUAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTI3UmVhZFZhcmludFNpemVBc0ludEZhbGxiYWNrRXYAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTM1SW5jcmVtZW50UmVjdXJzaW9uRGVwdGhBbmRQdXNoTGltaXRFaQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtMzREZWNyZW1lbnRSZWN1cnNpb25EZXB0aEFuZFBvcExpbWl0RWkAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGUyNFdyaXRlTWVzc2FnZU1heWJlVG9BcnJheUVpUktOUzBfMTFNZXNzYWdlTGl0ZUVQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMjNXcml0ZVN0cmluZ01heWJlQWxpYXNlZEVpUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTBXaXJlRm9ybWF0MjJTZXJpYWxpemVVbmtub3duRmllbGRzRVJLTlMwXzE1VW5rbm93bkZpZWxkU2V0RVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE3Q29kZWRPdXRwdXRTdHJlYW0yNldyaXRlU3RyaW5nV2l0aFNpemVUb0FycmF5RVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRVBoAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMFdpcmVGb3JtYXQyOVNlcmlhbGl6ZVVua25vd25GaWVsZHNUb0FycmF5RVJLTlMwXzE1VW5rbm93bkZpZWxkU2V0RVBoAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMFdpcmVGb3JtYXQyNENvbXB1dGVVbmtub3duRmllbGRzU2l6ZUVSS05TMF8xNVVua25vd25GaWVsZFNldEUAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEzUmVmbGVjdGlvbk9wczVNZXJnZUVSS05TMF83TWVzc2FnZUVQUzNfAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRWFTRVJLUzVfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMFJlcGVhdGVkUHRyRmllbGRCYXNlMTRJbnRlcm5hbEV4dGVuZEVpAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMFJlcGVhdGVkUHRyRmllbGRCYXNlMThNZXJnZUZyb21Jbm5lckxvb3BJTlMwXzE2UmVwZWF0ZWRQdHJGaWVsZElOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TNV8xMWNoYXJfdHJhaXRzSWNFRU5TNV85YWxsb2NhdG9ySWNFRUVFRTExVHlwZUhhbmRsZXJFRUV2UFB2U0ZfaWkAX1pONmdvb2dsZThwcm90b2J1ZjVBcmVuYTE4Q3JlYXRlTWF5YmVNZXNzYWdlSU5TMF8zQW55RUpFRUVQVF9QUzFfRHBPVDBfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxNFdpcmVGb3JtYXRMaXRlMjJXcml0ZUJ5dGVzTWF5YmVBbGlhc2VkRWlSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMzXzExY2hhcl90cmFpdHNJY0VFTlMzXzlhbGxvY2F0b3JJY0VFRUVQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0yMFJlYWRWYXJpbnQzMkZhbGxiYWNrRWoAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGU5V3JpdGVFbnVtRWlpUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmM0FueTVDbGVhckV2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMFJlcGVhdGVkUHRyRmllbGRCYXNlN1Jlc2VydmVFaQBfWk42Z29vZ2xlOHByb3RvYnVmM0FueTI3TWVyZ2VQYXJ0aWFsRnJvbUNvZGVkU3RyZWFtRVBOUzBfMmlvMTZDb2RlZElucHV0U3RyZWFtRQBfWk5LNmdvb2dsZThwcm90b2J1ZjNBbnkzOUludGVybmFsU2VyaWFsaXplV2l0aENhY2hlZFNpemVzVG9BcnJheUVQaABfWk5LNmdvb2dsZThwcm90b2J1ZjNBbnkxMkJ5dGVTaXplTG9uZ0V2AF9aTjZnb29nbGU4cHJvdG9idWYxNlJlcGVhdGVkUHRyRmllbGRJTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzJfMTFjaGFyX3RyYWl0c0ljRUVOUzJfOWFsbG9jYXRvckljRUVFRUVEMUV2AF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0yMFJlYWRWYXJpbnQ2NEZhbGxiYWNrRXYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDIxYXJlbmFfZGVzdHJ1Y3Rfb2JqZWN0SU5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMzXzExY2hhcl90cmFpdHNJY0VFTlMzXzlhbGxvY2F0b3JJY0VFRUVFRXZQdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsOUFyZW5hSW1wbDI4QWxsb2NhdGVBbGlnbmVkQW5kQWRkQ2xlYW51cEVtUEZ2UHZFAF9aTks2Z29vZ2xlOHByb3RvYnVmNUFyZW5hMTdPbkFyZW5hQWxsb2NhdGlvbkVQS1N0OXR5cGVfaW5mb20AX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGU5V3JpdGVCb29sRWliUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTExV3JpdGVTdHJpbmdFaVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGUxMFdyaXRlSW50MzJFaWlQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTlNZXJnZUZyb21FUktTMV8AX1pUVk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTJNYXBGaWVsZEJhc2VFAF9aTjZnb29nbGU4cHJvdG9idWY1QXJlbmExM093bkRlc3RydWN0b3JJTlMwXzhpbnRlcm5hbDEyV3JhcHBlZE11dGV4RUVFdlBUXwBfWk5LNmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEyTWFwRmllbGRCYXNlMjRTeW5jTWFwV2l0aFJlcGVhdGVkRmllbGRFdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTJNYXBGaWVsZEJhc2UxMVNldE1hcERpcnR5RXYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEyTWFwRmllbGRCYXNlRDJFdgBfX3N0YWNrX2Noa19mYWlsAF9abmFtAF9aZGFQdgBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTdDb2RlZE91dHB1dFN0cmVhbTIxV3JpdGVWYXJpbnQzMlNsb3dQYXRoRWoAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGUxMFdyaXRlSW50NjRFaWxQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTjZnb29nbGU4cHJvdG9idWY5VGltZXN0YW1wQzFFUktTMV8AX1pONmdvb2dsZThwcm90b2J1ZjVBcmVuYTE4Q3JlYXRlTWF5YmVNZXNzYWdlSU5TMF85VGltZXN0YW1wRUpFRUVQVF9QUzFfRHBPVDBfAF9aTjZnb29nbGU4cHJvdG9idWY5VGltZXN0YW1wMjdNZXJnZVBhcnRpYWxGcm9tQ29kZWRTdHJlYW1FUE5TMF8yaW8xNkNvZGVkSW5wdXRTdHJlYW1FAF9aTks2Z29vZ2xlOHByb3RvYnVmOVRpbWVzdGFtcDM5SW50ZXJuYWxTZXJpYWxpemVXaXRoQ2FjaGVkU2l6ZXNUb0FycmF5RVBoAF9aTks2Z29vZ2xlOHByb3RvYnVmOVRpbWVzdGFtcDEyQnl0ZVNpemVMb25nRXYAX1pONmdvb2dsZThwcm90b2J1ZjlUaW1lc3RhbXA5TWVyZ2VGcm9tRVJLUzFfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWw5QXJlbmFJbXBsMTVBbGxvY2F0ZUFsaWduZWRFbQBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUxNkludGVybmFsR2V0VGFibGVFdgBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUyMEdldE1heWJlQXJlbmFQb2ludGVyRXYAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDE0V2lyZUZvcm1hdExpdGU5U2tpcEZpZWxkRVBOUzBfMmlvMTZDb2RlZElucHV0U3RyZWFtRWoAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFQzFFUktTNV8AX1pOSzZnb29nbGU4cHJvdG9idWY2TWFwS2V5MTRHZXRTdHJpbmdWYWx1ZUV2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMWFyZW5hX2Rlc3RydWN0X29iamVjdElOUzBfMTZSZXBlYXRlZFB0ckZpZWxkSU5TMF83TWVzc2FnZUVFRUVFdlB2AF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwxMExvZ01lc3NhZ2VDMUVOUzBfOExvZ0xldmVsRVBLY2kAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDEwTG9nTWVzc2FnZWxzRVBLYwBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTFMb2dGaW5pc2hlcmFTRVJOUzFfMTBMb2dNZXNzYWdlRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTBMb2dNZXNzYWdlRDFFdgBfWk5LNmdvb2dsZThwcm90b2J1ZjZNYXBLZXk0dHlwZUV2AF9aTlN0M19fMTEzX190cmVlX3JlbW92ZUlQTlNfMTZfX3RyZWVfbm9kZV9iYXNlSVB2RUVFRXZUX1M1XwBiY21wAG1lbWNtcABfWk42Z29vZ2xlOHByb3RvYnVmMTVGaWVsZERlc2NyaXB0b3IxNGtDcHBUeXBlVG9OYW1lRQBfWk42Z29vZ2xlOHByb3RvYnVmNUFyZW5hMTNPd25EZXN0cnVjdG9ySU5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMzXzExY2hhcl90cmFpdHNJY0VFTlMzXzlhbGxvY2F0b3JJY0VFRUVFRXZQVF8AbWVtc2V0AF9aTlN0M19fMTI3X190cmVlX2JhbGFuY2VfYWZ0ZXJfaW5zZXJ0SVBOU18xNl9fdHJlZV9ub2RlX2Jhc2VJUHZFRUVFdlRfUzVfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWw5QXJlbmFJbXBsMTBBZGRDbGVhbnVwRVB2UEZ2UzNfRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTlhcmVuYV9kZWxldGVfb2JqZWN0SU5TMF83TWVzc2FnZUVFRXZQdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMjFhcmVuYV9kZXN0cnVjdF9vYmplY3RJTlMxXzI5SW50ZXJuYWxNZXRhZGF0YVdpdGhBcmVuYUJhc2VJTlMwXzE1VW5rbm93bkZpZWxkU2V0RU5TMV8yNUludGVybmFsTWV0YWRhdGFXaXRoQXJlbmFFRTlDb250YWluZXJFRUV2UHYAX1pONmdvb2dsZThwcm90b2J1ZjNBbnk5TWVyZ2VGcm9tRVJLUzFfAF9aTjZnb29nbGU4cHJvdG9idWY4aW50ZXJuYWwyMWFyZW5hX2Rlc3RydWN0X29iamVjdElOUzFfMTJXcmFwcGVkTXV0ZXhFRUV2UHYAX1pOU3QzX18xNW11dGV4RDFFdgBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtMTJTa2lwRmFsbGJhY2tFaWkAX1pONmdvb2dsZThwcm90b2J1ZjhpbnRlcm5hbDExR2VuZXJpY1N3YXBFUE5TMF8xMU1lc3NhZ2VMaXRlRVMzXwBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRBZGREZXNjcmlwdG9yc0VQS05TMV8xNURlc2NyaXB0b3JUYWJsZUUAc2NjX2luZm9fVGltZXN0YW1wX2dvb2dsZV8yZnByb3RvYnVmXzJmdGltZXN0YW1wXzJlcHJvdG8Ac2NjX2luZm9fQW55X2dvb2dsZV8yZnByb3RvYnVmXzJmYW55XzJlcHJvdG8AZGVzY3JpcHRvcl90YWJsZV9nb29nbGVfMmZwcm90b2J1Zl8yZmFueV8yZXByb3RvAGRlc2NyaXB0b3JfdGFibGVfZ29vZ2xlXzJmcHJvdG9idWZfMmZ0aW1lc3RhbXBfMmVwcm90bwBfWk5LNmdvb2dsZThwcm90b2J1ZjdNZXNzYWdlMTFHZXRUeXBlTmFtZUV2AF9aTks2Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UyNUluaXRpYWxpemF0aW9uRXJyb3JTdHJpbmdFdgBfWk42Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UyMUNoZWNrVHlwZUFuZE1lcmdlRnJvbUVSS05TMF8xMU1lc3NhZ2VMaXRlRQBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUzMVNlcmlhbGl6ZVdpdGhDYWNoZWRTaXplc1RvQXJyYXlFUGgAX1pONmdvb2dsZThwcm90b2J1ZjdNZXNzYWdlMjBEaXNjYXJkVW5rbm93bkZpZWxkc0V2AF9aTks2Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UxM1NwYWNlVXNlZExvbmdFdgBfWk42Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2U4Q29weUZyb21FUktTMV8AX1pOSzZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTEzU2V0Q2FjaGVkU2l6ZUVpAF9fY3hhX3B1cmVfdmlydHVhbABfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRBcmVuYVN0cmluZ1B0cjIxQ3JlYXRlSW5zdGFuY2VOb0FyZW5hRVBLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRQBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGU4R2V0QXJlbmFFdgBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTEwV3JpdGVCeXRlc0VpUktOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TM18xMWNoYXJfdHJhaXRzSWNFRU5TM185YWxsb2NhdG9ySWNFRUVFUE5TMF8yaW8xN0NvZGVkT3V0cHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmOGludGVybmFsMTRXaXJlRm9ybWF0TGl0ZTExV3JpdGVVSW50MzJFaWpQTlMwXzJpbzE3Q29kZWRPdXRwdXRTdHJlYW1FAF9aTlN0M19fMTVtdXRleDZ1bmxvY2tFdgBfWk5LU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFN2NvbXBhcmVFbW1QS2NtAF9aTlN0M19fMTVtdXRleDRsb2NrRXYAX1pOSzRsbHZtNVJlZ2V4NW1hdGNoRU5TXzlTdHJpbmdSZWZFUE5TXzE1U21hbGxWZWN0b3JJbXBsSVMxX0VFUE5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlM1XzExY2hhcl90cmFpdHNJY0VFTlM1XzlhbGxvY2F0b3JJY0VFRUUAZnJlZQBfWk40bGx2bTVSZWdleEQxRXYAbWVtY3B5AF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTZpbnNlcnRFbVBLYwBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2YXBwZW5kRVBLYwBfWk40bGx2bTVSZWdleEMxRU5TXzlTdHJpbmdSZWZFTlMwXzEwUmVnZXhGbGFnc0UAX1pOSzRsbHZtNVJlZ2V4N2lzVmFsaWRFUk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMxXzExY2hhcl90cmFpdHNJY0VFTlMxXzlhbGxvY2F0b3JJY0VFRUUAc3RkZXJyAF9aTktTdDNfXzEyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRTIwX190aHJvd19sZW5ndGhfZXJyb3JFdgBzdHJsZW4AX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFQzFFUktTNV9tbVJLUzRfAF9aTlN0M19fMTZ2ZWN0b3JJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TNF9JUzZfRUVFMjFfX3B1c2hfYmFja19zbG93X3BhdGhJUktTNl9FRXZPVF8AX1pOU3QzX18xNnZlY3RvcklOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlM0X0lTNl9FRUUyMV9fcHVzaF9iYWNrX3Nsb3dfcGF0aElTNl9FRXZPVF8AYWJvcnQAX1pOS1N0M19fMTIwX192ZWN0b3JfYmFzZV9jb21tb25JTGIxRUUyMF9fdGhyb3dfbGVuZ3RoX2Vycm9yRXYAX1pONGxsdm0yNERpc2FibGVBQklCcmVha2luZ0NoZWNrc0UAX1pOSzVjbGFuZzE1RGlyZWN0b3J5TG9va3VwN2dldE5hbWVFdgBfWk43YW5kcm9pZDRiYXNlOVNob3VsZExvZ0VOUzBfMTFMb2dTZXZlcml0eUVQS2MAX19lcnJub19sb2NhdGlvbgBfWk43YW5kcm9pZDRiYXNlMTBMb2dNZXNzYWdlQzFFUEtjak5TMF8xMUxvZ1NldmVyaXR5RVMzX2kAX1pON2FuZHJvaWQ0YmFzZTEwTG9nTWVzc2FnZTZzdHJlYW1FdgBfWk5TdDNfXzEyNF9fcHV0X2NoYXJhY3Rlcl9zZXF1ZW5jZUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRVJOU18xM2Jhc2ljX29zdHJlYW1JVF9UMF9FRVM3X1BLUzRfbQBfWk5TdDNfXzFsc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFUk5TXzEzYmFzaWNfb3N0cmVhbUlUX1QwX0VFUzlfUktOU18xMmJhc2ljX3N0cmluZ0lTNl9TN19UMV9FRQBfWk43YW5kcm9pZDRiYXNlMTBMb2dNZXNzYWdlRDFFdgBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRTZzZW50cnlDMUVSUzNfAF9aTktTdDNfXzE4aW9zX2Jhc2U2Z2V0bG9jRXYAX1pOU3QzX18xNWN0eXBlSWNFMmlkRQBfWk5LU3QzX18xNmxvY2FsZTl1c2VfZmFjZXRFUk5TMF8yaWRFAF9aTlN0M19fMTZsb2NhbGVEMUV2AF9aTlN0M19fMThpb3NfYmFzZTVjbGVhckVqAF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnNlbnRyeUQxRXYAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmFwcGVuZEVQS2NtAF9aTks2Z29vZ2xlOHByb3RvYnVmN01lc3NhZ2UxNlNob3J0RGVidWdTdHJpbmdFdgBfWk5LNmdvb2dsZThwcm90b2J1ZjNBbnk4VW5wYWNrVG9FUE5TMF83TWVzc2FnZUUAX1pONmdvb2dsZThwcm90b2J1ZjNBbnk4UGFja0Zyb21FUktOUzBfN01lc3NhZ2VFAF9aTlN0M19fMTZfX3RyZWVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRsZXNzSVM2X0VFTlM0X0lTNl9FRUU0ZmluZElTNl9FRU5TXzE1X190cmVlX2l0ZXJhdG9ySVM2X1BOU18xMV9fdHJlZV9ub2RlSVM2X1B2RUVsRUVSS1RfAF9aTjRsbHZtM3ZmczE3Z2V0UmVhbEZpbGVTeXN0ZW1FdgBfWk5TdDNfXzE2X190cmVlSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU180bGVzc0lTNl9FRU5TNF9JUzZfRUVFMTJfX2ZpbmRfZXF1YWxJUzZfRUVSUE5TXzE2X190cmVlX25vZGVfYmFzZUlQdkVFUlBOU18xNV9fdHJlZV9lbmRfbm9kZUlTRl9FRVJLVF8AX1pOS1N0M19fMTZfX3RyZWVJTlNfMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRU5TXzRsZXNzSVM2X0VFTlM0X0lTNl9FRUUxNF9fY291bnRfdW5pcXVlSVM2X0VFbVJLVF8AX1pONGxsdm0zdmZzMTBGaWxlU3lzdGVtMTZnZXRCdWZmZXJGb3JGaWxlRVJLTlNfNVR3aW5lRWxiYgBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU5X19ncm93X2J5RW1tbW1tbQBfWk5TdDNfXzE2X190cmVlSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU180bGVzc0lTNl9FRU5TNF9JUzZfRUVFN2Rlc3Ryb3lFUE5TXzExX190cmVlX25vZGVJUzZfUHZFRQBfWk40bGx2bTE1U21hbGxWZWN0b3JCYXNlSW1FOGdyb3dfcG9kRVB2bW0AX1pONGxsdm0zc3lzMmZzMTNtYWtlX2Fic29sdXRlRVJOU18xNVNtYWxsVmVjdG9ySW1wbEljRUUAX1pOS1N0M19fMTEwZXJyb3JfY29kZTdtZXNzYWdlRXYAbWVtY2hyAF9aTjVjbGFuZzE0RnJvbnRlbmRBY3Rpb25DMkV2AF9aTjRsbHZtM3ZmczE4SW5NZW1vcnlGaWxlU3lzdGVtQzFFYgBfWk40bGx2bTNzeXM0cGF0aDZhcHBlbmRFUk5TXzE1U21hbGxWZWN0b3JJbXBsSWNFRVJLTlNfNVR3aW5lRVM3X1M3X1M3XwBfWk40bGx2bTEyTWVtb3J5QnVmZmVyMTJnZXRNZW1CdWZmZXJFTlNfOVN0cmluZ1JlZkVTMV9iAF9aTjRsbHZtM3ZmczE4SW5NZW1vcnlGaWxlU3lzdGVtN2FkZEZpbGVFUktOU181VHdpbmVFbE5TdDNfXzExMHVuaXF1ZV9wdHJJTlNfMTJNZW1vcnlCdWZmZXJFTlM1XzE0ZGVmYXVsdF9kZWxldGVJUzdfRUVFRU5TXzhPcHRpb25hbElqRUVTQ19OU0JfSU5TXzNzeXMyZnM5ZmlsZV90eXBlRUVFTlNCX0lOU0VfNXBlcm1zRUVFAF9aTjRsbHZtM3ZmczE3T3ZlcmxheUZpbGVTeXN0ZW1DMUVOU18xOEludHJ1c2l2ZVJlZkNudFB0cklOUzBfMTBGaWxlU3lzdGVtRUVFAF9aTjRsbHZtM3ZmczE3T3ZlcmxheUZpbGVTeXN0ZW0xMXB1c2hPdmVybGF5RU5TXzE4SW50cnVzaXZlUmVmQ250UHRySU5TMF8xMEZpbGVTeXN0ZW1FRUUAZXhpdABfWk5TdDNfXzE2dmVjdG9ySU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOUzRfSVM2X0VFRTVlcmFzZUVOU18xMV9fd3JhcF9pdGVySVBLUzZfRUVTQ18ATExWTUluaXRpYWxpemVBQXJjaDY0VGFyZ2V0SW5mbwBMTFZNSW5pdGlhbGl6ZUFSTVRhcmdldEluZm8ATExWTUluaXRpYWxpemVCUEZUYXJnZXRJbmZvAExMVk1Jbml0aWFsaXplWDg2VGFyZ2V0SW5mbwBfWk41Y2xhbmc3dG9vbGluZzMwYWRkVGFyZ2V0QW5kTW9kZUZvclByb2dyYW1OYW1lRVJOU3QzX18xNnZlY3RvcklOUzFfMTJiYXNpY19zdHJpbmdJY05TMV8xMWNoYXJfdHJhaXRzSWNFRU5TMV85YWxsb2NhdG9ySWNFRUVFTlM2X0lTOF9FRUVFTjRsbHZtOVN0cmluZ1JlZkUAZ2V0ZW52AF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTZhc3NpZ25FUEtjAF9aTjVjbGFuZzExRmlsZU1hbmFnZXJDMUVSS05TXzE3RmlsZVN5c3RlbU9wdGlvbnNFTjRsbHZtMThJbnRydXNpdmVSZWZDbnRQdHJJTlM0XzN2ZnMxMEZpbGVTeXN0ZW1FRUUAX1pONWNsYW5nMjJQQ0hDb250YWluZXJPcGVyYXRpb25zQzFFdgBfWk41Y2xhbmc3dG9vbGluZzE0VG9vbEludm9jYXRpb25DMUVOU3QzX18xNnZlY3RvcklOUzJfMTJiYXNpY19zdHJpbmdJY05TMl8xMWNoYXJfdHJhaXRzSWNFRU5TMl85YWxsb2NhdG9ySWNFRUVFTlM3X0lTOV9FRUVFTlMyXzEwdW5pcXVlX3B0cklOU18xNEZyb250ZW5kQWN0aW9uRU5TMl8xNGRlZmF1bHRfZGVsZXRlSVNEX0VFRUVQTlNfMTFGaWxlTWFuYWdlckVOUzJfMTBzaGFyZWRfcHRySU5TXzIyUENIQ29udGFpbmVyT3BlcmF0aW9uc0VFRQBfWk5TdDNfXzExOV9fc2hhcmVkX3dlYWtfY291bnQxNF9fcmVsZWFzZV93ZWFrRXYAX1pONWNsYW5nN3Rvb2xpbmcxNFRvb2xJbnZvY2F0aW9uM3J1bkV2AF9aTjVjbGFuZzd0b29saW5nMTRUb29sSW52b2NhdGlvbkQxRXYAX1pONWNsYW5nMTFGaWxlTWFuYWdlckQxRXYAX1pONGxsdm0zdmZzMTBGaWxlU3lzdGVtRDJFdgBfWk5LNGxsdm0zdmZzNlN0YXR1czExaXNEaXJlY3RvcnlFdgBfWk5LNGxsdm01VHdpbmUzc3RyRXYAX1pOU3QzX18xMjFfX211cm11cjJfb3JfY2l0eWhhc2hJbUxtNjRFRWNsRVBLdm0AX1pOU3QzX18xMjFfX211cm11cjJfb3JfY2l0eWhhc2hJbUxtNjRFRTE4X19oYXNoX2xlbl8wX3RvXzE2RVBLY20AX1pONGxsdm0xNVNtYWxsVmVjdG9ySW1wbElONWNsYW5nMTdGcm9udGVuZElucHV0RmlsZUVFYVNFUktTM18AX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVsc0VpAF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFbHNFbQBfWk41Y2xhbmcxN0RpYWdub3N0aWNzRW5naW5lMTFzZXRTZXZlcml0eUVqTlNfNGRpYWc4U2V2ZXJpdHlFTlNfMTRTb3VyY2VMb2NhdGlvbkUAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IxNkFkZFByYWdtYUhhbmRsZXJFTjRsbHZtOVN0cmluZ1JlZkVQTlNfMTNQcmFnbWFIYW5kbGVyRQBfWlRWTjVjbGFuZzE4UFBDaGFpbmVkQ2FsbGJhY2tzRQBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjE5RW50ZXJNYWluU291cmNlRmlsZUV2AF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yM0xleEVSTlNfNVRva2VuRQBfWk41Y2xhbmcxNEZyb250ZW5kQWN0aW9uRDJFdgBfWk40bGx2bTIzU21hbGxWZWN0b3JUZW1wbGF0ZUJhc2VJTjVjbGFuZzE3RnJvbnRlbmRJbnB1dEZpbGVFTGIwRUU0Z3Jvd0VtAF9aTjRsbHZtMTVTbWFsbFZlY3RvckJhc2VJakUxM21hbGxvY0Zvckdyb3dFbW1SbQBfWk41Y2xhbmcxMVBQQ2FsbGJhY2tzRDJFdgBfWk5LNWNsYW5nMTNTb3VyY2VNYW5hZ2VyMTNsb2FkU0xvY0VudHJ5RWpQYgBfX2N4YV9ndWFyZF9hY3F1aXJlAF9fY3hhX2d1YXJkX3JlbGVhc2UAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVsc0VQS3YAX1pONWNsYW5nMTRNYWNyb0RpcmVjdGl2ZTEzZ2V0RGVmaW5pdGlvbkV2AF9aTks1Y2xhbmcxM1NvdXJjZU1hbmFnZXIyM2dldEV4cGFuc2lvbkxvY1Nsb3dDYXNlRU5TXzE0U291cmNlTG9jYXRpb25FAF9aTjVjbGFuZzEzUHJhZ21hSGFuZGxlckQyRXYAX1pONWNsYW5nMTFGaWxlTWFuYWdlcjEyZ2V0RGlyZWN0b3J5RU40bGx2bTlTdHJpbmdSZWZFYgBfWk41Y2xhbmcxMUZpbGVNYW5hZ2VyN2dldEZpbGVFTjRsbHZtOVN0cmluZ1JlZkViYgBfWk40bGx2bTNzeXM0cGF0aDExaXNfYWJzb2x1dGVFUktOU181VHdpbmVFTlMxXzVTdHlsZUUAX1pONGxsdm0zc3lzNHBhdGgxMXBhcmVudF9wYXRoRU5TXzlTdHJpbmdSZWZFTlMxXzVTdHlsZUUAX1pONWNsYW5nMTNTb3VyY2VNYW5hZ2VyMjhnZXRNZW1vcnlCdWZmZXJGb3JGaWxlT3JOb25lRVBLTlNfOUZpbGVFbnRyeUUAX1pOSzVjbGFuZzEzU291cmNlTWFuYWdlcjI0Z2V0RmFrZUJ1ZmZlckZvclJlY292ZXJ5RXYAX1pOSzZnb29nbGU4cHJvdG9idWY3TWVzc2FnZTExRGVidWdTdHJpbmdFdgBfWk5TdDNfXzFwbEljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFTlNfMTJiYXNpY19zdHJpbmdJVF9UMF9UMV9FRVBLUzZfUktTOV8AY2VpbGYAX1pOU3QzX18xMTJfX25leHRfcHJpbWVFbQBtZW1tb3ZlAF9aTks1Y2xhbmcxM1NvdXJjZU1hbmFnZXIxM2dldEZpbGVJRFNsb3dFagBfWk5LNWNsYW5nMTNTb3VyY2VNYW5hZ2VyMTFnZXRGaWxlbmFtZUVOU18xNFNvdXJjZUxvY2F0aW9uRQBfWk5LNWNsYW5nMTRTb3VyY2VMb2NhdGlvbjEzcHJpbnRUb1N0cmluZ0VSS05TXzEzU291cmNlTWFuYWdlckUAX1pOU3QzX18xMTlfX3NoYXJlZF93ZWFrX2NvdW50RDJFdgBfWk40bGx2bTE3ZGVhbGxvY2F0ZV9idWZmZXJFUHZtbQBfWk5LNGxsdm0zdmZzMTBGaWxlU3lzdGVtMTFnZXRSZWFsUGF0aEVSS05TXzVUd2luZUVSTlNfMTVTbWFsbFZlY3RvckltcGxJY0VFAF9aTjRsbHZtM3ZmczEwRmlsZVN5c3RlbTdpc0xvY2FsRVJLTlNfNVR3aW5lRVJiAF9aTks0bGx2bTN2ZnMxMEZpbGVTeXN0ZW0xMm1ha2VBYnNvbHV0ZUVSTlNfMTVTbWFsbFZlY3RvckltcGxJY0VFAF9aTjVjbGFuZzI2UHJlcHJvY2Vzc29yRnJvbnRlbmRBY3Rpb24xN0NyZWF0ZUFTVENvbnN1bWVyRVJOU18xNkNvbXBpbGVySW5zdGFuY2VFTjRsbHZtOVN0cmluZ1JlZkUAX1pONWNsYW5nMTRGcm9udGVuZEFjdGlvbjIyc2hvdWxkRXJhc2VPdXRwdXRGaWxlc0V2AF9aTjVjbGFuZzE0RnJvbnRlbmRBY3Rpb24xM0VuZFNvdXJjZUZpbGVFdgBfWk41Y2xhbmcxMVBQQ2FsbGJhY2tzMTBIYXNJbmNsdWRlRU5TXzE0U291cmNlTG9jYXRpb25FTjRsbHZtOVN0cmluZ1JlZkViTlMyXzhPcHRpb25hbElOU18xMkZpbGVFbnRyeVJlZkVFRU5TXzZTcmNNZ3IxOENoYXJhY3RlcmlzdGljS2luZEUAX1pOS1N0M19fMTE5X19zaGFyZWRfd2Vha19jb3VudDEzX19nZXRfZGVsZXRlckVSS1N0OXR5cGVfaW5mbwBfWk42Z29vZ2xlOHByb3RvYnVmMjNTaHV0ZG93blByb3RvYnVmTGlicmFyeUV2AF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yMTNMZXhIZWFkZXJOYW1lRVJOU181VG9rZW5FYgBfWk5LNWNsYW5nMTJQcmVwcm9jZXNzb3IxMWdldFNwZWxsaW5nRVJLTlNfNVRva2VuRVJONGxsdm0xNVNtYWxsVmVjdG9ySW1wbEljRUVQYgBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjI2R2V0SW5jbHVkZUZpbGVuYW1lU3BlbGxpbmdFTlNfMTRTb3VyY2VMb2NhdGlvbkVSTjRsbHZtOVN0cmluZ1JlZkUAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IxOUNoZWNrRW5kT2ZEaXJlY3RpdmVFUEtjYgBfWk5LNGxsdm0xM1N0cmluZ01hcEltcGw3RmluZEtleUVOU185U3RyaW5nUmVmRQBfWk41Y2xhbmcxMlByZXByb2Nlc3NvcjI2RGlzY2FyZFVudGlsRW5kT2ZEaXJlY3RpdmVFdgBfWk40bGx2bTNzeXM0cGF0aDZuYXRpdmVFUk5TXzE1U21hbGxWZWN0b3JJbXBsSWNFRU5TMV81U3R5bGVFAF9aTjVjbGFuZzEyUHJlcHJvY2Vzc29yMTBMb29rdXBGaWxlRU5TXzE0U291cmNlTG9jYXRpb25FTjRsbHZtOVN0cmluZ1JlZkViUEtOU18xNURpcmVjdG9yeUxvb2t1cEVQS05TXzlGaWxlRW50cnlFUlM2X1BOUzJfMTVTbWFsbFZlY3RvckltcGxJY0VFU0RfUE5TXzlNb2R1bGVNYXAxMUtub3duSGVhZGVyRVBiU0hfYgBfWk41Y2xhbmc1TGV4ZXIxOWdldExvY0ZvckVuZE9mVG9rZW5FTlNfMTRTb3VyY2VMb2NhdGlvbkVqUktOU18xM1NvdXJjZU1hbmFnZXJFUktOU18xMUxhbmdPcHRpb25zRQBfWk5LNWNsYW5nMTJGdW5jdGlvbkRlY2wyOWdldFRlbXBsYXRlU3BlY2lhbGl6YXRpb25JbmZvRXYAX1pOSzVjbGFuZzEzQ1hYUmVjb3JkRGVjbDI5Z2V0VGVtcGxhdGVTcGVjaWFsaXphdGlvbktpbmRFdgBfWk5LNWNsYW5nN1ZhckRlY2wyOWdldFRlbXBsYXRlU3BlY2lhbGl6YXRpb25LaW5kRXYAX1pONWNsYW5nMTFBU1ROb2RlS2luZDExZ2V0RnJvbU5vZGVFUktOU180RGVjbEUAX1pOSzVjbGFuZzEyRnVuY3Rpb25EZWNsMjdnZXRNZW1iZXJTcGVjaWFsaXphdGlvbkluZm9FdgBfWk40bGx2bTE1U21hbGxWZWN0b3JCYXNlSWpFOGdyb3dfcG9kRVB2bW0AX1pONGxsdm0xNWFsbG9jYXRlX2J1ZmZlckVtbQBfWk41Y2xhbmcxMURlY2xDb250ZXh0N2NsYXNzb2ZFUEtOU180RGVjbEUAX1pONWNsYW5nNERlY2wxN2Nhc3RUb0RlY2xDb250ZXh0RVBLUzBfAF9aTks1Y2xhbmcxMURlY2xDb250ZXh0MTFkZWNsc19iZWdpbkV2AF9aTks1Y2xhbmc0RGVjbDhnZXRBdHRyc0V2AF9aTks1Y2xhbmcxMkNhcHR1cmVkRGVjbDdnZXRCb2R5RXYAX1pOSzVjbGFuZzE3T2JqQ0ludGVyZmFjZURlY2wyMkxvYWRFeHRlcm5hbERlZmluaXRpb25FdgBfWk5LNWNsYW5nMTdDbGFzc1RlbXBsYXRlRGVjbDE4Z2V0U3BlY2lhbGl6YXRpb25zRXYAX1pOSzVjbGFuZzEwUmVjb3JkRGVjbDE5aXNJbmplY3RlZENsYXNzTmFtZUV2AF9aTks1Y2xhbmcyMEZ1bmN0aW9uVGVtcGxhdGVEZWNsMThnZXRTcGVjaWFsaXphdGlvbnNFdgBfWk5LNWNsYW5nMTJGdW5jdGlvbkRlY2wyOWdldFRlbXBsYXRlU3BlY2lhbGl6YXRpb25LaW5kRXYAX1pOSzVjbGFuZzE1VmFyVGVtcGxhdGVEZWNsMThnZXRTcGVjaWFsaXphdGlvbnNFdgBfWkdWWk5LNWNsYW5nMjRUZW1wbGF0ZVRlbXBsYXRlUGFybURlY2wxOGdldERlZmF1bHRBcmd1bWVudEV2RTdOb25lTG9jAF9aWk5LNWNsYW5nMjRUZW1wbGF0ZVRlbXBsYXRlUGFybURlY2wxOGdldERlZmF1bHRBcmd1bWVudEV2RTdOb25lTG9jAF9aTjVjbGFuZzdWYXJEZWNsN2dldEluaXRFdgBfWk5LNWNsYW5nMTFQYXJtVmFyRGVjbDEzaGFzRGVmYXVsdEFyZ0V2AF9aTjVjbGFuZzExUGFybVZhckRlY2wyN2dldFVuaW5zdGFudGlhdGVkRGVmYXVsdEFyZ0V2AF9aTjVjbGFuZzExUGFybVZhckRlY2wxM2dldERlZmF1bHRBcmdFdgBfWk41Y2xhbmcxMU9NUENoaWxkcmVuMTFnZXRDaGlsZHJlbkV2AF9aTjVjbGFuZzExQVNUTm9kZUtpbmQxMWdldEZyb21Ob2RlRVJLTlNfNFN0bXRFAF9aTjVjbGFuZzRTdG10OGNoaWxkcmVuRXYAX1pOSzVjbGFuZzE2U3RtdEl0ZXJhdG9yQmFzZTExR2V0RGVjbEV4cHJFdgBfWk41Y2xhbmcxNlN0bXRJdGVyYXRvckJhc2U4TmV4dERlY2xFYgBfWk41Y2xhbmcxNlN0bXRJdGVyYXRvckJhc2U2TmV4dFZBRXYAX1pOSzVjbGFuZzEwTGFtYmRhRXhwcjEzY2FwdHVyZV9iZWdpbkV2AF9aTks1Y2xhbmcxMExhbWJkYUV4cHIxM2lzSW5pdENhcHR1cmVFUEtOU18xM0xhbWJkYUNhcHR1cmVFAF9aTks1Y2xhbmcxMExhbWJkYUV4cHIxNGdldExhbWJkYUNsYXNzRXYAX1pOSzVjbGFuZzREZWNsMTNnZXRBU1RDb250ZXh0RXYAX1pOSzVjbGFuZzEwQVNUQ29udGV4dDIwZ2V0T2JqQ0ludGVyZmFjZVR5cGVFUEtOU18xN09iakNJbnRlcmZhY2VEZWNsRVBTMV8AX1pONWNsYW5nMTJDYXB0dXJlZFN0bXQxNWdldENhcHR1cmVkRGVjbEV2AF9aTks1Y2xhbmcxOU5lc3RlZE5hbWVTcGVjaWZpZXI3Z2V0S2luZEV2AF9aTks1Y2xhbmcyMk5lc3RlZE5hbWVTcGVjaWZpZXJMb2MxMGdldFR5cGVMb2NFdgBfWk41Y2xhbmcxMlRlbXBsYXRlTmFtZUMxRVBOU18xMlRlbXBsYXRlRGVjbEUAX1pOSzVjbGFuZzEyVGVtcGxhdGVOYW1lMjZnZXRBc0RlcGVuZGVudFRlbXBsYXRlTmFtZUV2AF9aTks1Y2xhbmcxMlRlbXBsYXRlTmFtZTI2Z2V0QXNRdWFsaWZpZWRUZW1wbGF0ZU5hbWVFdgBfWk41Y2xhbmc3VHlwZUxvYzI0Z2V0TG9jYWxBbGlnbm1lbnRGb3JUeXBlRU5TXzhRdWFsVHlwZUUAX1pOSzVjbGFuZzI5U3Vic3RUZW1wbGF0ZVR5cGVQYXJtUGFja1R5cGUxNWdldEFyZ3VtZW50UGFja0V2AF9aTks1Y2xhbmcxOURlcGVuZGVudEV4dEludFR5cGUxNGdldE51bUJpdHNFeHByRXYAX1pOSzVjbGFuZzExQXV0b1R5cGVMb2MxOGdldENvbmNlcHROYW1lSW5mb0V2AF9aTks1Y2xhbmc0VHlwZTI3Z2V0VW5xdWFsaWZpZWREZXN1Z2FyZWRUeXBlRXYAX1pONWNsYW5nMTJUZW1wbGF0ZU5hbWVDMUVQdgBfWk5LNWNsYW5nMjNPTVBVc2VzQWxsb2NhdG9yc0NsYXVzZTE2Z2V0QWxsb2NhdG9yRGF0YUVqAF9aTks1Y2xhbmcxM0NYWFJlY29yZERlY2wxNERlZmluaXRpb25EYXRhMTZnZXRCYXNlc1Nsb3dDYXNlRXYAX1pOSzVjbGFuZzEyRnVuY3Rpb25EZWNsMTJnZXROdW1QYXJhbXNFdgBfWk5LNWNsYW5nMThDWFhDb25zdHJ1Y3RvckRlY2wxMGluaXRfYmVnaW5FdgBfWk5LNWNsYW5nNERlY2wxNWhhc0RlZmluaW5nQXR0ckV2AF9aTjVjbGFuZzREZWNsMTljYXN0RnJvbURlY2xDb250ZXh0RVBLTlNfMTFEZWNsQ29udGV4dEUAX1pOSzVjbGFuZzEzQ1hYUmVjb3JkRGVjbDIxZ2V0TGFtYmRhQ2FsbE9wZXJhdG9yRXYAX1pOSzVjbGFuZzEzU291cmNlTWFuYWdlcjE2Z2V0Q2hhcmFjdGVyRGF0YUVOU18xNFNvdXJjZUxvY2F0aW9uRVBiAF9aTks0bGx2bTlTdHJpbmdSZWYxN2ZpbmRfZmlyc3Rfbm90X29mRVMwX20AX1pOSzRsbHZtOVN0cmluZ1JlZjE2ZmluZF9sYXN0X25vdF9vZkVTMF9tAF9aTjVjbGFuZzVMZXhlcjExZ2V0U3BlbGxpbmdFUktOU181VG9rZW5FUktOU18xM1NvdXJjZU1hbmFnZXJFUktOU18xMUxhbmdPcHRpb25zRVBiAF9aTks1Y2xhbmc5TWFjcm9BcmdzMTZnZXRVbmV4cEFyZ3VtZW50RWoAX1pOSzVjbGFuZzlNYWNyb0FyZ3MyMEFyZ05lZWRzUHJlZXhwYW5zaW9uRVBLTlNfNVRva2VuRVJOU18xMlByZXByb2Nlc3NvckUAX1pONWNsYW5nOU1hY3JvQXJnczE3Z2V0UHJlRXhwQXJndW1lbnRFalJOU18xMlByZXByb2Nlc3NvckUAX1pONWNsYW5nOU1hY3JvQXJnczEyZ2V0QXJnTGVuZ3RoRVBLTlNfNVRva2VuRQBfWk41Y2xhbmc1TGV4ZXIxM2dldFNvdXJjZVRleHRFTlNfMTVDaGFyU291cmNlUmFuZ2VFUktOU18xM1NvdXJjZU1hbmFnZXJFUktOU18xMUxhbmdPcHRpb25zRVBiAF9aTks1Y2xhbmcxMlByZXByb2Nlc3NvcjI1dXBkYXRlT3V0T2ZEYXRlSWRlbnRpZmllckVSTlNfMTRJZGVudGlmaWVySW5mb0UAX1pONWNsYW5nMTJQcmVwcm9jZXNzb3IyMXVwZGF0ZU1vZHVsZU1hY3JvSW5mb0VQS05TXzE0SWRlbnRpZmllckluZm9FUk5TMF8xNU1vZHVsZU1hY3JvSW5mb0UAZm9wZW4AZnNlZWsAZnRlbGwAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNnJlc2l6ZUVtYwBmcmVhZABmY2xvc2UAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVsc0VsAF9aTlN0M19fMTExX19jYWxsX29uY2VFUlZtUHZQRnZTMl9FAHJlYWxsb2MAbWFsbG9jAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUMySURuRUVQS2MAX1pONmdvb2dsZThwcm90b2J1ZjExU3RyaW5nUGllY2VDMklOU3QzX18xOWFsbG9jYXRvckljRUVFRVJLTlMzXzEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVUX0VFAF9aTks2Z29vZ2xlOHByb3RvYnVmMTFNZXNzYWdlTGl0ZTE3U2VyaWFsaXplQXNTdHJpbmdFdgBfWk42Z29vZ2xlOHByb3RvYnVmNHV0aWwxOEJpbmFyeVRvSnNvblN0cmluZ0VQTlMxXzEyVHlwZVJlc29sdmVyRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzRfMTFjaGFyX3RyYWl0c0ljRUVOUzRfOWFsbG9jYXRvckljRUVFRVNDX1BTQV9SS05TMV8xNkpzb25QcmludE9wdGlvbnNFAF9aTjZnb29nbGU4cHJvdG9idWYxMVN0cmluZ1BpZWNlMThMb2dGYXRhbFNpemVUb29CaWdFbVBLYwBfWk42Z29vZ2xlOHByb3RvYnVmNHV0aWwxOEpzb25Ub0JpbmFyeVN0cmluZ0VQTlMxXzEyVHlwZVJlc29sdmVyRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzRfMTFjaGFyX3RyYWl0c0ljRUVOUzRfOWFsbG9jYXRvckljRUVFRU5TMF8xMVN0cmluZ1BpZWNlRVBTQV9SS05TMV8xNkpzb25QYXJzZU9wdGlvbnNFAF9aTks2Z29vZ2xlOHByb3RvYnVmNHV0aWw2U3RhdHVzOFRvU3RyaW5nRXYAX1pONmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUxNVBhcnNlRnJvbVN0cmluZ0VSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMyXzExY2hhcl90cmFpdHNJY0VFTlMyXzlhbGxvY2F0b3JJY0VFRUUAX1pONmdvb2dsZThwcm90b2J1ZjE0RGVzY3JpcHRvclBvb2wxNGdlbmVyYXRlZF9wb29sRXYAX1pONmdvb2dsZThwcm90b2J1ZjR1dGlsMzJOZXdUeXBlUmVzb2x2ZXJGb3JEZXNjcmlwdG9yUG9vbEVSS05TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlMyXzExY2hhcl90cmFpdHNJY0VFTlMyXzlhbGxvY2F0b3JJY0VFRUVQS05TMF8xNERlc2NyaXB0b3JQb29sRQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMThTdHJpbmdPdXRwdXRTdHJlYW1DMUVQTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzNfMTFjaGFyX3RyYWl0c0ljRUVOUzNfOWFsbG9jYXRvckljRUVFRQBfWk42Z29vZ2xlOHByb3RvYnVmNHV0aWwxOEpzb25Ub0JpbmFyeVN0cmVhbUVQTlMxXzEyVHlwZVJlc29sdmVyRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzRfMTFjaGFyX3RyYWl0c0ljRUVOUzRfOWFsbG9jYXRvckljRUVFRVBOUzBfMmlvMTlaZXJvQ29weUlucHV0U3RyZWFtRVBOU0RfMjBaZXJvQ29weU91dHB1dFN0cmVhbUVSS05TMV8xNkpzb25QYXJzZU9wdGlvbnNFAF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkFycmF5SW5wdXRTdHJlYW1DMUVQS3ZpaQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTdDb2RlZE91dHB1dFN0cmVhbUMxRVBOUzFfMjBaZXJvQ29weU91dHB1dFN0cmVhbUUAX1pOSzZnb29nbGU4cHJvdG9idWYxMU1lc3NhZ2VMaXRlMjJTZXJpYWxpemVUb0NvZGVkU3RyZWFtRVBOUzBfMmlvMTdDb2RlZE91dHB1dFN0cmVhbUUAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE3Q29kZWRPdXRwdXRTdHJlYW1EMUV2AF9aTjZnb29nbGU4cHJvdG9idWYyaW8xNkNvZGVkSW5wdXRTdHJlYW0yNGRlZmF1bHRfcmVjdXJzaW9uX2xpbWl0X0UAX1pONmdvb2dsZThwcm90b2J1ZjJpbzE2Q29kZWRJbnB1dFN0cmVhbTdSZWZyZXNoRXYAX1pONmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUyMFBhcnNlRnJvbUNvZGVkU3RyZWFtRVBOUzBfMmlvMTZDb2RlZElucHV0U3RyZWFtRQBfWk42Z29vZ2xlOHByb3RvYnVmMmlvMTZDb2RlZElucHV0U3RyZWFtRDFFdgBfWk5LU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNXJmaW5kRWNtAF9aTjlaaXBXcml0ZXIxOFN0YXJ0RW50cnlXaXRoVGltZUVOU3QzX18xMTdiYXNpY19zdHJpbmdfdmlld0ljTlMwXzExY2hhcl90cmFpdHNJY0VFRUVtbABfWk45WmlwV3JpdGVyMTBXcml0ZUJ5dGVzRVBLdm0AX1pOOVppcFdyaXRlcjExRmluaXNoRW50cnlFdgBfWk45WmlwV3JpdGVyMTVFcnJvckNvZGVTdHJpbmdFaQBfWk45WmlwV3JpdGVyQzFFUDhfSU9fRklMRQBzdHJlcnJvcgBfWk5LNmdvb2dsZThwcm90b2J1ZjExTWVzc2FnZUxpdGUxN1NlcmlhbGl6ZVRvU3RyaW5nRVBOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TMl8xMWNoYXJfdHJhaXRzSWNFRU5TMl85YWxsb2NhdG9ySWNFRUVFAF9aTlN0M19fMTEyX19oYXNoX3RhYmxlSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU180aGFzaElTNl9FRU5TXzhlcXVhbF90b0lTNl9FRU5TNF9JUzZfRUVFMjVfX2VtcGxhY2VfdW5pcXVlX2tleV9hcmdzSVM2X0pSS1M2X0VFRU5TXzRwYWlySU5TXzE1X19oYXNoX2l0ZXJhdG9ySVBOU18xMV9faGFzaF9ub2RlSVM2X1B2RUVFRWJFRVJLVF9EcE9UMF8AX1pOOVppcFdyaXRlcjZGaW5pc2hFdgBzdHJjYXNlY21wAF9aTlN0M19fMTEyX19oYXNoX3RhYmxlSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU180aGFzaElTNl9FRU5TXzhlcXVhbF90b0lTNl9FRU5TNF9JUzZfRUVFNnJlaGFzaEVtAF9aTlN0M19fMTEyX19oYXNoX3RhYmxlSU5TXzEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVOU180aGFzaElTNl9FRU5TXzhlcXVhbF90b0lTNl9FRU5TNF9JUzZfRUVFOF9fcmVoYXNoRW0AcmVhbHBhdGgAZ2V0Y3dkAF9aVENOU3QzX18xMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUAX1pUVk5TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBfWlRWTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAX1pUVE5TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBfWk5TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRDFFdgBfWk5TdDNfXzExOWJhc2ljX29zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRDBFdgBfWlR2MF9uMjRfTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMUV2AF9aVHYwX24yNF9OU3QzX18xMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUQwRXYAX1pOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRDJFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMEV2AF9aTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTdzZWVrb2ZmRXhOU184aW9zX2Jhc2U3c2Vla2RpckVqAF9aTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTl1bmRlcmZsb3dFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU5cGJhY2tmYWlsRWkAX1pOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFOG92ZXJmbG93RWkAX1pOS1N0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTNzdHJFdgBfWlRJTlN0M19fMTE5YmFzaWNfb3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAF9aVFNOU3QzX18xMTliYXNpY19vc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUAX1pUSU5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAF9aVFNOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQBfWk5TdDNfXzE2dmVjdG9ySWlOU185YWxsb2NhdG9ySWlFRUUyMV9fcHVzaF9iYWNrX3Nsb3dfcGF0aElSS2lFRXZPVF8AX1pOU3QzX18xNl9fdHJlZUlOU18xMl9fdmFsdWVfdHlwZUlpaUVFTlNfMTlfX21hcF92YWx1ZV9jb21wYXJlSWlTMl9OU180bGVzc0lpRUVMYjFFRUVOU185YWxsb2NhdG9ySVMyX0VFRTdkZXN0cm95RVBOU18xMV9fdHJlZV9ub2RlSVMyX1B2RUUAX1pOU3QzX18xNnZlY3RvcklpTlNfOWFsbG9jYXRvcklpRUVFMjFfX3B1c2hfYmFja19zbG93X3BhdGhJaUVFdk9UXwBfWk5TdDNfXzE2dmVjdG9ySWlOU185YWxsb2NhdG9ySWlFRUU4X19hcHBlbmRFbQBfWk5TdDNfXzE2X190cmVlSU5TXzEyX192YWx1ZV90eXBlSWlOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFRUVOU18xOV9fbWFwX3ZhbHVlX2NvbXBhcmVJaVM4X05TXzRsZXNzSWlFRUxiMUVFRU5TNV9JUzhfRUVFN2Rlc3Ryb3lFUE5TXzExX190cmVlX25vZGVJUzhfUHZFRQBfWk5TdDNfXzE4aW9zX2Jhc2U0aW5pdEVQdgBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFQzJFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDJFdgBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQyRXYAX1pOU3QzX18xOWJhc2ljX2lvc0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDJFdgBfX2N0eXBlX2JfbG9jAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTdyZXBsYWNlRW1tUEtjbQBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU5cHVzaF9iYWNrRWMAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFN3Jlc2VydmVFbQBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2YXNzaWduRVBLY20AX19tZW1tb3ZlX2NoawBzdHJ0b2wAc3RydG91bABzdHJ0b2xsAHN0cnRvdWxsAHN0cnRvZgBzdHJ0b2QAZndyaXRlAF9aVElOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAF9aTlN0M19fMTEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDFFdgBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQwRXYAX1pUdjBfbjI0X05TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQxRXYAX1pUdjBfbjI0X05TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQwRXYAX1pUVk4xMF9fY3h4YWJpdjEyMF9fc2lfY2xhc3NfdHlwZV9pbmZvRQBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNWltYnVlRVJLTlNfNmxvY2FsZUUAX1pOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTZzZXRidWZFUGNsAF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU0c3luY0V2AF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU5c2hvd21hbnljRXYAX1pOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTZ4c2dldG5FUGNsAF9aTlN0M19fMTE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU1dWZsb3dFdgBfWk5TdDNfXzExNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnhzcHV0bkVQS2NsAF9aVElOU3QzX18xMTViYXNpY19zdHJlYW1idWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAX1pUVk4xMF9fY3h4YWJpdjExN19fY2xhc3NfdHlwZV9pbmZvRQBzdHJjaHIAc25wcmludGYAX192c25wcmludGZfY2hrAHB0aHJlYWRfcndsb2NrX2luaXQAcHRocmVhZF9yd2xvY2tfZGVzdHJveQBfWk5TdDNfXzE2X19zb3J0SVJOU182X19sZXNzSWlpRUVQaUVFdlQwX1M1X1RfAHB0aHJlYWRfcndsb2NrX3dybG9jawBwdGhyZWFkX3J3bG9ja191bmxvY2sAcHRocmVhZF9yd2xvY2tfcmRsb2NrAG1lbXJjaHIAX1pOU3QzX18xMTJiYXNpY19zdHJpbmdJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFNmFwcGVuZEVtYwBfWk5TdDNfXzExM2Jhc2ljX29zdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRWxzRXQAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU1d3JpdGVFUEtjbABfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU1ZXJhc2VFbW0AX190bHNfZ2V0X2FkZHIAc2lnZW1wdHlzZXQAc2lnYWN0aW9uAHN5c2NvbmYAbW1hcABzaWdhbHRzdGFjawBzY2hlZF9nZXRjcHUAYWxhcm0Ac2lnbmFsAG5hbm9zbGVlcAByYWlzZQB0aW1lAHN5c2NhbGwAX1pOU3QzX18xNnRocmVhZDIwaGFyZHdhcmVfY29uY3VycmVuY3lFdgBvcGVuAHJlYWQAY2xvc2UAY2xvY2tfZ2V0dGltZQBwZXJyb3IAZ2V0cGFnZXNpemUAZ2V0cGlkAHBpcGUAZmNudGwAc3RyZHVwAGxzZWVrAHN0cm5sZW4Ac3RyY21wAHN0cm5jcHkAZ2V0YXV4dmFsAHNpZ2ZpbGxzZXQAcHRocmVhZF9zaWdtYXNrAG11bm1hcABfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVEMkV2AF9aTlN0OWV4Y2VwdGlvbkQyRXYAX1pUSVN0OWV4Y2VwdGlvbgBfX21lbWNweV9jaGsAX1pOU3QzX18xMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVsc0VqAGxvZzIAcmludABsZGV4cABfX2lzbmFubABfX2lzaW5mbABmcmV4cGwAbGRleHBsAF9faXNuYW4AX19pc2luZgBmcmV4cABsZGV4cGYAdHJ1bmNsAF9aTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRTZpbnNlcnRFbW1jAGZlcnJvcgBuYW4AbmFuZgBzY2hlZF95aWVsZABzdHJjcHkAZ2V0dGltZW9mZGF5AHB0aHJlYWRfc2VsZgBwdGhyZWFkX2dldHNjaGVkcGFyYW0AcHRocmVhZF9zZXRzcGVjaWZpYwBwdGhyZWFkX2tleV9jcmVhdGUAcHRocmVhZF9nZXRzcGVjaWZpYwBtb2RmAGNlaWwAZmxvb3IAX1pUVE5TdDNfXzExNGJhc2ljX2lmc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAF9aVENOU3QzX18xMTRiYXNpY19pZnN0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRQBfWlRWTlN0M19fMTE0YmFzaWNfaWZzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUUAX1pOU3QzX18xMTNiYXNpY19maWxlYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVDMkV2AF9aTlN0M19fMTdnZXRsaW5lSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUVSTlNfMTNiYXNpY19pc3RyZWFtSVRfVDBfRUVTOV9STlNfMTJiYXNpY19zdHJpbmdJUzZfUzdfVDFfRUVTNl8AX1pOU3QzX18xMTNiYXNpY19maWxlYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVEMkV2AF9aVFZOU3QzX18xMTNiYXNpY19maWxlYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAF9aTlN0M19fMTEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNHN5bmNFdgBfWk5TdDNfXzExM2Jhc2ljX2ZpbGVidWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUQwRXYAX1pOU3QzX18xMTNiYXNpY19maWxlYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU1aW1idWVFUktOU182bG9jYWxlRQBfWk5TdDNfXzExM2Jhc2ljX2ZpbGVidWZJY05TXzExY2hhcl90cmFpdHNJY0VFRTZzZXRidWZFUGNsAF9aTlN0M19fMTEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFN3NlZWtvZmZFeE5TXzhpb3NfYmFzZTdzZWVrZGlyRWoAX1pOU3QzX18xMTNiYXNpY19maWxlYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUU3c2Vla3Bvc0VOU180ZnBvc0kxMV9fbWJzdGF0ZV90RUVqAF9aTlN0M19fMTEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFOXVuZGVyZmxvd0V2AF9aTlN0M19fMTEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFOXBiYWNrZmFpbEVpAF9aTlN0M19fMTEzYmFzaWNfZmlsZWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFOG92ZXJmbG93RWkAX1pOU3QzX18xNmNocm9ubzEyc3lzdGVtX2Nsb2NrMTFmcm9tX3RpbWVfdEVsAF9aTktTdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU3Y29tcGFyZUVtbVBLYwBfWk5TdDNfXzExMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUU2YXBwZW5kRVJLUzVfbW0AX1pOU3QzX18xMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVEMkV2AF9aTlN0M19fMTZsb2NhbGVDMUVSS1MwXwBfWk5TdDNfXzE3Y29kZWN2dEljYzExX19tYnN0YXRlX3RFMmlkRQBfWk5LU3QzX18xNmxvY2FsZTloYXNfZmFjZXRFUk5TMF8yaWRFAGZzZWVrbwBmdGVsbG8AZmZsdXNoAF9aTlN0M19fMTEzYmFzaWNfaXN0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFNnNlbnRyeUMxRVJTM19iAF9aVElOU3QzX18xMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAF9aTlN0M19fMTEzYmFzaWNfaXN0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRDFFdgBfWk5TdDNfXzExM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQwRXYAX1pUdjBfbjI0X05TdDNfXzExM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQxRXYAX1pUdjBfbjI0X05TdDNfXzExM2Jhc2ljX2lzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFRUQwRXYAbG9jYWx0aW1lX3IAZ210aW1lX3IAbWt0aW1lAF9fbWVtc2V0X2NoawBtYWR2aXNlAF9fZnByaW50Zl9jaGsAX19pc29jOTlfc3NjYW5mAE9QRU5TU0xfbWVtb3J5X2FsbG9jAE9QRU5TU0xfbWVtb3J5X2ZyZWUAc2RhbGxvY3gAT1BFTlNTTF9tZW1vcnlfZ2V0X3NpemUAYnNlYXJjaABmcHV0cwBwdGhyZWFkX29uY2UAcHRocmVhZF9tdXRleF9sb2NrAHB0aHJlYWRfbXV0ZXhfdW5sb2NrAHFzb3J0AGxpYnB0aHJlYWQuc28uMABHTElCQ18yLjIuNQBsaWJtLnNvLjYAbGlicnQuc28uMQBsaWJjLnNvLjYAR0xJQkNfMi4zAEdMSUJDXzIuMy40AEdMSUJDXzIuNABHTElCQ18yLjYAR0xJQkNfMi43AEdMSUJDXzIuMTQAR0xJQkNfMi4xNgBsZC1saW51eC14ODYtNjQuc28uMgAkT1JJR0lOLy4uL2xpYjY0OiRPUklHSU4vbGliNjQAbGlicHJvdG9idWYtY3BwLWZ1bGwuc28AbGliYmFzZS5zbwBsaWJjbGFuZy1jcHAuc28uMTRnaXQAbGliemlwYXJjaGl2ZS5zbwBsaWJjKysuc28AbGliZGwuc28uMgBsaWJnY2Nfcy5zby4xAJCneAEAAAAACAAAAAAAAACQVnkBAAAAAJineAEAAAAACAAAAAAAAACoVnkBAAAAAKCneAEAAAAACAAAAAAAAADAVnkBAAAAAKineAEAAAAACAAAAAAAAADYVnkBAAAAALCneAEAAAAACAAAAAAAAADwVnkBAAAAALineAEAAAAACAAAAAAAAAAQV3kBAAAAAMCneAEAAAAACAAAAAAAAABAV3kBAAAAAMineAEAAAAACAAAAAAAAABYV3kBAAAAANCneAEAAAAACAAAAAAAAACAV3kBAAAAANineAEAAAAACAAAAAAAAACYV3kBAAAAAOCneAEAAAAACAAAAAAAAACwV3kBAAAAAOineAEAAAAACAAAAAAAAADIV3kBAAAAAPCneAEAAAAACAAAAAAAAADoV3kBAAAAAPineAEAAAAACAAAAAAAAAAAWHkBAAAAAACoeAEAAAAACAAAAAAAAAAYWHkBAAAAAAioeAEAAAAACAAAAAAAAAAwWHkBAAAAABCoeAEAAAAACAAAAAAAAABQWHkBAAAAABioeAEAAAAACAAAAAAAAABoWHkBAAAAACCoeAEAAAAACAAAAAAAAACAWHkBAAAAAECoeAEAAAAACAAAAAAAAACA23gBAAAAAFCoeAEAAAAACAAAAAAAAABQY3kBAAAAAFioeAEAAAAACAAAAAAAAACIY3kBAAAAAGCoeAEAAAAACAAAAAAAAACwY3kBAAAAAGioeAEAAAAACAAAAAAAAADQY3kBAAAAAHCoeAEAAAAACAAAAAAAAAAQZHkBAAAAAHioeAEAAAAACAAAAAAAAAA4ZHkBAAAAAICoeAEAAAAACAAAAAAAAADoZHkBAAAAAIioeAEAAAAACAAAAAAAAAAAZXkBAAAAAJCoeAEAAAAACAAAAAAAAAAwZXkBAAAAAJioeAEAAAAACAAAAAAAAABgZXkBAAAAAKCoeAEAAAAACAAAAAAAAABIZnkBAAAAAKioeAEAAAAACAAAAAAAAAB4ZnkBAAAAALCoeAEAAAAACAAAAAAAAAAwZ3kBAAAAALioeAEAAAAACAAAAAAAAABQZ3kBAAAAAMCoeAEAAAAACAAAAAAAAACAZ3kBAAAAAMioeAEAAAAACAAAAAAAAACoZ3kBAAAAANCoeAEAAAAACAAAAAAAAADQZ3kBAAAAANioeAEAAAAACAAAAAAAAAAIaHkBAAAAAOCoeAEAAAAACAAAAAAAAAA4aHkBAAAAAOioeAEAAAAACAAAAAAAAABgaHkBAAAAAPCoeAEAAAAACAAAAAAAAACwIQIAAAAAAPioeAEAAAAACAAAAAAAAABglFEBAAAAAAipeAEAAAAACAAAAAAAAABoaHkBAAAAABCpeAEAAAAACAAAAAAAAACQp3gBAAAAABipeAEAAAAACAAAAAAAAAAwqHgBAAAAACipeAEAAAAACAAAAAAAAACgKgIAAAAAADCpeAEAAAAACAAAAAAAAABQqHgBAAAAADipeAEAAAAACAAAAAAAAABQHwIAAAAAAECpeAEAAAAACAAAAAAAAABwaHkBAAAAAFCpeAEAAAAACAAAAAAAAACgaXkBAAAAAHCpeAEAAAAACAAAAAAAAACQ/2ABAAAAAHipeAEAAAAACAAAAAAAAAAAAGEBAAAAAIipeAEAAAAACAAAAAAAAACAEmIBAAAAAJCpeAEAAAAACAAAAAAAAACQEmIBAAAAAJipeAEAAAAACAAAAAAAAACgEmIBAAAAAKCpeAEAAAAACAAAAAAAAADAEmIBAAAAAKipeAEAAAAACAAAAAAAAADAAGEBAAAAALCpeAEAAAAACAAAAAAAAACgEWEBAAAAAMipeAEAAAAACAAAAAAAAACgAWEBAAAAANCpeAEAAAAACAAAAAAAAADwB2EBAAAAANipeAEAAAAACAAAAAAAAAAABWEBAAAAAOipeAEAAAAACAAAAAAAAADQEmIBAAAAAPCpeAEAAAAACAAAAAAAAADgEmIBAAAAAPipeAEAAAAACAAAAAAAAABQBmEBAAAAAACqeAEAAAAACAAAAAAAAADwEGEBAAAAAAiqeAEAAAAACAAAAAAAAAAACWEBAAAAACCqeAEAAAAACAAAAAAAAACAAGEBAAAAACiqeAEAAAAACAAAAAAAAACQEmEBAAAAAECqeAEAAAAACAAAAAAAAAAgFWEBAAAAAEiqeAEAAAAACAAAAAAAAADQFWEBAAAAAFiqeAEAAAAACAAAAAAAAADwEmIBAAAAAGCqeAEAAAAACAAAAAAAAAAAE2IBAAAAAGiqeAEAAAAACAAAAAAAAAAQE2IBAAAAAHCqeAEAAAAACAAAAAAAAAAwE2IBAAAAAHiqeAEAAAAACAAAAAAAAABAFmEBAAAAAICqeAEAAAAACAAAAAAAAADQHmEBAAAAAJiqeAEAAAAACAAAAAAAAADQFmEBAAAAAKCqeAEAAAAACAAAAAAAAADgGWEBAAAAAKiqeAEAAAAACAAAAAAAAACwGGEBAAAAALiqeAEAAAAACAAAAAAAAABAE2IBAAAAAMCqeAEAAAAACAAAAAAAAADgEmIBAAAAAMiqeAEAAAAACAAAAAAAAAAwGWEBAAAAANCqeAEAAAAACAAAAAAAAAAgHWEBAAAAANiqeAEAAAAACAAAAAAAAAAAG2EBAAAAAPCqeAEAAAAACAAAAAAAAAAAFmEBAAAAAPiqeAEAAAAACAAAAAAAAACQH2EBAAAAABCreAEAAAAACAAAAAAAAAAAIWEBAAAAABireAEAAAAACAAAAAAAAACQIWEBAAAAACireAEAAAAACAAAAAAAAABQE2IBAAAAADCreAEAAAAACAAAAAAAAABgE2IBAAAAADireAEAAAAACAAAAAAAAABwE2IBAAAAAECreAEAAAAACAAAAAAAAACQE2IBAAAAAEireAEAAAAACAAAAAAAAAAAImEBAAAAAFCreAEAAAAACAAAAAAAAACwJ2EBAAAAAGireAEAAAAACAAAAAAAAABQImEBAAAAAHCreAEAAAAACAAAAAAAAACQJWEBAAAAAHireAEAAAAACAAAAAAAAAAQJGEBAAAAAIireAEAAAAACAAAAAAAAACgE2IBAAAAAJCreAEAAAAACAAAAAAAAADgEmIBAAAAAJireAEAAAAACAAAAAAAAACwJGEBAAAAAKCreAEAAAAACAAAAAAAAACAJmEBAAAAAKireAEAAAAACAAAAAAAAAAQJmEBAAAAAMCreAEAAAAACAAAAAAAAADAIWEBAAAAAMireAEAAAAACAAAAAAAAABwKGEBAAAAAOCreAEAAAAACAAAAAAAAADALGEBAAAAAOireAEAAAAACAAAAAAAAACwLWEBAAAAAPireAEAAAAACAAAAAAAAACwE2IBAAAAAACseAEAAAAACAAAAAAAAADAE2IBAAAAAAiseAEAAAAACAAAAAAAAADQE2IBAAAAABCseAEAAAAACAAAAAAAAADwE2IBAAAAABiseAEAAAAACAAAAAAAAAAgLmEBAAAAACCseAEAAAAACAAAAAAAAADwOWEBAAAAADiseAEAAAAACAAAAAAAAAAgL2EBAAAAAECseAEAAAAACAAAAAAAAAAQNGEBAAAAAEiseAEAAAAACAAAAAAAAAAAMmEBAAAAAFiseAEAAAAACAAAAAAAAAAAFGIBAAAAAGCseAEAAAAACAAAAAAAAADgEmIBAAAAAGiseAEAAAAACAAAAAAAAACwMmEBAAAAAHCseAEAAAAACAAAAAAAAABAOWEBAAAAAHiseAEAAAAACAAAAAAAAACQNWEBAAAAAJCseAEAAAAACAAAAAAAAADgLWEBAAAAAJiseAEAAAAACAAAAAAAAADwOmEBAAAAALCseAEAAAAACAAAAAAAAACgPGEBAAAAALiseAEAAAAACAAAAAAAAABgPWEBAAAAAMiseAEAAAAACAAAAAAAAAAQFGIBAAAAANCseAEAAAAACAAAAAAAAAAgFGIBAAAAANiseAEAAAAACAAAAAAAAAAwFGIBAAAAAOCseAEAAAAACAAAAAAAAABQFGIBAAAAAOiseAEAAAAACAAAAAAAAADQPWEBAAAAAPCseAEAAAAACAAAAAAAAACQRWEBAAAAAAiteAEAAAAACAAAAAAAAABAPmEBAAAAABCteAEAAAAACAAAAAAAAAAQQmEBAAAAABiteAEAAAAACAAAAAAAAABQQGEBAAAAACiteAEAAAAACAAAAAAAAABgFGIBAAAAADCteAEAAAAACAAAAAAAAADgEmIBAAAAADiteAEAAAAACAAAAAAAAAAwQWEBAAAAAECteAEAAAAACAAAAAAAAAAgRGEBAAAAAEiteAEAAAAACAAAAAAAAACwQmEBAAAAAGCteAEAAAAACAAAAAAAAACQPWEBAAAAAGiteAEAAAAACAAAAAAAAABQRmEBAAAAAICteAEAAAAACAAAAAAAAABgTmEBAAAAAIiteAEAAAAACAAAAAAAAADwT2EBAAAAAJiteAEAAAAACAAAAAAAAABwFGIBAAAAAKCteAEAAAAACAAAAAAAAACAFGIBAAAAAKiteAEAAAAACAAAAAAAAACQFGIBAAAAALCteAEAAAAACAAAAAAAAACwFGIBAAAAALiteAEAAAAACAAAAAAAAABgUGEBAAAAAMCteAEAAAAACAAAAAAAAACgZ2EBAAAAANiteAEAAAAACAAAAAAAAADAU2EBAAAAAOCteAEAAAAACAAAAAAAAAAQY2EBAAAAAOiteAEAAAAACAAAAAAAAABAXGEBAAAAAPiteAEAAAAACAAAAAAAAADAFGIBAAAAAACueAEAAAAACAAAAAAAAADgEmIBAAAAAAiueAEAAAAACAAAAAAAAAAgX2EBAAAAABCueAEAAAAACAAAAAAAAADwZmEBAAAAABiueAEAAAAACAAAAAAAAACAZmEBAAAAADCueAEAAAAACAAAAAAAAAAgUGEBAAAAADiueAEAAAAACAAAAAAAAADAaWEBAAAAAFCueAEAAAAACAAAAAAAAACQamEBAAAAAFiueAEAAAAACAAAAAAAAAAAa2EBAAAAAGiueAEAAAAACAAAAAAAAADQFGIBAAAAAHCueAEAAAAACAAAAAAAAADgFGIBAAAAAHiueAEAAAAACAAAAAAAAADwFGIBAAAAAICueAEAAAAACAAAAAAAAAAQFWIBAAAAAIiueAEAAAAACAAAAAAAAADAa2EBAAAAAJCueAEAAAAACAAAAAAAAADwb2EBAAAAAKiueAEAAAAACAAAAAAAAADwa2EBAAAAALCueAEAAAAACAAAAAAAAADAbWEBAAAAALiueAEAAAAACAAAAAAAAAAQbWEBAAAAAMiueAEAAAAACAAAAAAAAAAgFWIBAAAAANCueAEAAAAACAAAAAAAAADgEmIBAAAAANiueAEAAAAACAAAAAAAAABgbWEBAAAAAOCueAEAAAAACAAAAAAAAAAgb2EBAAAAAOiueAEAAAAACAAAAAAAAAAQbmEBAAAAAACveAEAAAAACAAAAAAAAACAa2EBAAAAAAiveAEAAAAACAAAAAAAAACgcGEBAAAAACCveAEAAAAACAAAAAAAAADggWIBAAAAACiveAEAAAAACAAAAAAAAACQGGIBAAAAADCveAEAAAAACAAAAAAAAACwGGIBAAAAADiveAEAAAAACAAAAAAAAADQGGIBAAAAAECveAEAAAAACAAAAAAAAAAQGWIBAAAAAEiveAEAAAAACAAAAAAAAAAgGWIBAAAAAFCveAEAAAAACAAAAAAAAAAwGWIBAAAAAFiveAEAAAAACAAAAAAAAABAGWIBAAAAAGCveAEAAAAACAAAAAAAAACgGWIBAAAAAHCveAEAAAAACAAAAAAAAACwGWIBAAAAAHiveAEAAAAACAAAAAAAAADAGWIBAAAAAICveAEAAAAACAAAAAAAAABgG2IBAAAAAIiveAEAAAAACAAAAAAAAAAwHGIBAAAAAJiveAEAAAAACAAAAAAAAACAHGIBAAAAAKCveAEAAAAACAAAAAAAAADgEmIBAAAAAKiveAEAAAAACAAAAAAAAAAQHWIBAAAAALiveAEAAAAACAAAAAAAAABQcWEBAAAAAMiveAEAAAAACAAAAAAAAADwHWIBAAAAANiveAEAAAAACAAAAAAAAAAwcWEBAAAAAOCveAEAAAAACAAAAAAAAAAQHmIBAAAAAOiveAEAAAAACAAAAAAAAAAgHmIBAAAAAACweAEAAAAACAAAAAAAAAAgg2IBAAAAAAiweAEAAAAACAAAAAAAAABAHmIBAAAAABCweAEAAAAACAAAAAAAAABgHmIBAAAAABiweAEAAAAACAAAAAAAAACAHmIBAAAAACCweAEAAAAACAAAAAAAAADAHmIBAAAAACiweAEAAAAACAAAAAAAAADQHmIBAAAAADCweAEAAAAACAAAAAAAAAAwGWIBAAAAADiweAEAAAAACAAAAAAAAADgHmIBAAAAAECweAEAAAAACAAAAAAAAABAH2IBAAAAAFCweAEAAAAACAAAAAAAAABQH2IBAAAAAFiweAEAAAAACAAAAAAAAABgH2IBAAAAAGCweAEAAAAACAAAAAAAAAAAIWIBAAAAAGiweAEAAAAACAAAAAAAAADQIWIBAAAAAHiweAEAAAAACAAAAAAAAAAgImIBAAAAAICweAEAAAAACAAAAAAAAADgEmIBAAAAAIiweAEAAAAACAAAAAAAAACwImIBAAAAAJiweAEAAAAACAAAAAAAAADwcWEBAAAAAKiweAEAAAAACAAAAAAAAACQI2IBAAAAALiweAEAAAAACAAAAAAAAADQcWEBAAAAAMCweAEAAAAACAAAAAAAAACwI2IBAAAAAMiweAEAAAAACAAAAAAAAADAI2IBAAAAAOCweAEAAAAACAAAAAAAAABwdWEBAAAAAOiweAEAAAAACAAAAAAAAACQdmEBAAAAAPiweAEAAAAACAAAAAAAAAAwFWIBAAAAAACxeAEAAAAACAAAAAAAAABAFWIBAAAAAAixeAEAAAAACAAAAAAAAABQFWIBAAAAABCxeAEAAAAACAAAAAAAAABwFWIBAAAAABixeAEAAAAACAAAAAAAAAAAd2EBAAAAACCxeAEAAAAACAAAAAAAAABAiGEBAAAAADixeAEAAAAACAAAAAAAAADwd2EBAAAAAECxeAEAAAAACAAAAAAAAABQhGEBAAAAAEixeAEAAAAACAAAAAAAAADwe2EBAAAAAFixeAEAAAAACAAAAAAAAACAFWIBAAAAAGCxeAEAAAAACAAAAAAAAADgEmIBAAAAAGixeAEAAAAACAAAAAAAAADQgWEBAAAAAHCxeAEAAAAACAAAAAAAAACQh2EBAAAAAHixeAEAAAAACAAAAAAAAABghmEBAAAAAJCxeAEAAAAACAAAAAAAAADAdmEBAAAAAJixeAEAAAAACAAAAAAAAABgiWEBAAAAALCxeAEAAAAACAAAAAAAAABghGIBAAAAALixeAEAAAAACAAAAAAAAADgI2IBAAAAAMCxeAEAAAAACAAAAAAAAAAAJGIBAAAAAMixeAEAAAAACAAAAAAAAAAgJGIBAAAAANCxeAEAAAAACAAAAAAAAABgJGIBAAAAANixeAEAAAAACAAAAAAAAABwJGIBAAAAAOCxeAEAAAAACAAAAAAAAAAwGWIBAAAAAOixeAEAAAAACAAAAAAAAACAJGIBAAAAAPCxeAEAAAAACAAAAAAAAADAJGIBAAAAAACyeAEAAAAACAAAAAAAAADQJGIBAAAAAAiyeAEAAAAACAAAAAAAAADgJGIBAAAAABCyeAEAAAAACAAAAAAAAACAJmIBAAAAABiyeAEAAAAACAAAAAAAAAAQJ2IBAAAAACiyeAEAAAAACAAAAAAAAABgJ2IBAAAAADCyeAEAAAAACAAAAAAAAADgEmIBAAAAADiyeAEAAAAACAAAAAAAAADwJ2IBAAAAAEiyeAEAAAAACAAAAAAAAAAQimEBAAAAAFiyeAEAAAAACAAAAAAAAACAKGIBAAAAAGiyeAEAAAAACAAAAAAAAADwiWEBAAAAAHCyeAEAAAAACAAAAAAAAACgKGIBAAAAAHiyeAEAAAAACAAAAAAAAACwKGIBAAAAAJCyeAEAAAAACAAAAAAAAABwjWEBAAAAAJiyeAEAAAAACAAAAAAAAABAjmEBAAAAAKiyeAEAAAAACAAAAAAAAACQFWIBAAAAALCyeAEAAAAACAAAAAAAAACgFWIBAAAAALiyeAEAAAAACAAAAAAAAACwFWIBAAAAAMCyeAEAAAAACAAAAAAAAADQFWIBAAAAAMiyeAEAAAAACAAAAAAAAACwjmEBAAAAANCyeAEAAAAACAAAAAAAAACgoWEBAAAAAOiyeAEAAAAACAAAAAAAAACwkGEBAAAAAPCyeAEAAAAACAAAAAAAAACwnGEBAAAAAPiyeAEAAAAACAAAAAAAAAAglmEBAAAAAAizeAEAAAAACAAAAAAAAADgFWIBAAAAABCzeAEAAAAACAAAAAAAAADgEmIBAAAAABizeAEAAAAACAAAAAAAAAAQmmEBAAAAACCzeAEAAAAACAAAAAAAAADwoGEBAAAAACizeAEAAAAACAAAAAAAAAAgn2EBAAAAAECzeAEAAAAACAAAAAAAAABwjmEBAAAAAEizeAEAAAAACAAAAAAAAABAo2EBAAAAAGCzeAEAAAAACAAAAAAAAAAgpWEBAAAAAGizeAEAAAAACAAAAAAAAACgpWEBAAAAAHizeAEAAAAACAAAAAAAAADwFWIBAAAAAICzeAEAAAAACAAAAAAAAAAAFmIBAAAAAIizeAEAAAAACAAAAAAAAAAQFmIBAAAAAJCzeAEAAAAACAAAAAAAAAAwFmIBAAAAAJizeAEAAAAACAAAAAAAAABwpmEBAAAAAKCzeAEAAAAACAAAAAAAAAAgrGEBAAAAALizeAEAAAAACAAAAAAAAADgpmEBAAAAAMCzeAEAAAAACAAAAAAAAAAwqWEBAAAAAMizeAEAAAAACAAAAAAAAABQqGEBAAAAANizeAEAAAAACAAAAAAAAABAFmIBAAAAAOCzeAEAAAAACAAAAAAAAADgEmIBAAAAAOizeAEAAAAACAAAAAAAAACwqGEBAAAAAPCzeAEAAAAACAAAAAAAAADAqmEBAAAAAPizeAEAAAAACAAAAAAAAACgqWEBAAAAABC0eAEAAAAACAAAAAAAAAAwpmEBAAAAABi0eAEAAAAACAAAAAAAAADQrGEBAAAAADC0eAEAAAAACAAAAAAAAAAQr2EBAAAAADi0eAEAAAAACAAAAAAAAADgr2EBAAAAAEi0eAEAAAAACAAAAAAAAABQFmIBAAAAAFC0eAEAAAAACAAAAAAAAABgFmIBAAAAAFi0eAEAAAAACAAAAAAAAABwFmIBAAAAAGC0eAEAAAAACAAAAAAAAACQFmIBAAAAAGi0eAEAAAAACAAAAAAAAABQsGEBAAAAAHC0eAEAAAAACAAAAAAAAACwt2EBAAAAAIi0eAEAAAAACAAAAAAAAABAsWEBAAAAAJC0eAEAAAAACAAAAAAAAAAAtGEBAAAAAJi0eAEAAAAACAAAAAAAAADgsmEBAAAAAKi0eAEAAAAACAAAAAAAAACgFmIBAAAAALC0eAEAAAAACAAAAAAAAADgEmIBAAAAALi0eAEAAAAACAAAAAAAAABQs2EBAAAAAMC0eAEAAAAACAAAAAAAAAAAt2EBAAAAAMi0eAEAAAAACAAAAAAAAAAwtWEBAAAAAOC0eAEAAAAACAAAAAAAAAAQsGEBAAAAAOi0eAEAAAAACAAAAAAAAACAuGEBAAAAAAC1eAEAAAAACAAAAAAAAAAwumEBAAAAAAi1eAEAAAAACAAAAAAAAADwumEBAAAAABi1eAEAAAAACAAAAAAAAACwFmIBAAAAACC1eAEAAAAACAAAAAAAAADAFmIBAAAAACi1eAEAAAAACAAAAAAAAADQFmIBAAAAADC1eAEAAAAACAAAAAAAAADwFmIBAAAAADi1eAEAAAAACAAAAAAAAABgu2EBAAAAAEC1eAEAAAAACAAAAAAAAAAgwmEBAAAAAFi1eAEAAAAACAAAAAAAAADQu2EBAAAAAGC1eAEAAAAACAAAAAAAAACgv2EBAAAAAGi1eAEAAAAACAAAAAAAAADgvWEBAAAAAHi1eAEAAAAACAAAAAAAAAAAF2IBAAAAAIC1eAEAAAAACAAAAAAAAADgEmIBAAAAAIi1eAEAAAAACAAAAAAAAADAvmEBAAAAAJC1eAEAAAAACAAAAAAAAACwwGEBAAAAAJi1eAEAAAAACAAAAAAAAABAwGEBAAAAALC1eAEAAAAACAAAAAAAAAAgu2EBAAAAALi1eAEAAAAACAAAAAAAAADgwmEBAAAAANC1eAEAAAAACAAAAAAAAADwxGEBAAAAANi1eAEAAAAACAAAAAAAAACgxWEBAAAAAOi1eAEAAAAACAAAAAAAAAAQF2IBAAAAAPC1eAEAAAAACAAAAAAAAAAgF2IBAAAAAPi1eAEAAAAACAAAAAAAAAAwF2IBAAAAAAC2eAEAAAAACAAAAAAAAABQF2IBAAAAAAi2eAEAAAAACAAAAAAAAAAQxmEBAAAAABC2eAEAAAAACAAAAAAAAADAzmEBAAAAACi2eAEAAAAACAAAAAAAAACwxmEBAAAAADC2eAEAAAAACAAAAAAAAABAymEBAAAAADi2eAEAAAAACAAAAAAAAADgyGEBAAAAAEi2eAEAAAAACAAAAAAAAABgF2IBAAAAAFC2eAEAAAAACAAAAAAAAADgEmIBAAAAAFi2eAEAAAAACAAAAAAAAACAyWEBAAAAAGC2eAEAAAAACAAAAAAAAAAAzWEBAAAAAGi2eAEAAAAACAAAAAAAAACAy2EBAAAAAIC2eAEAAAAACAAAAAAAAADQxWEBAAAAAIi2eAEAAAAACAAAAAAAAACQz2EBAAAAAKC2eAEAAAAACAAAAAAAAACA0mEBAAAAAKi2eAEAAAAACAAAAAAAAABg02EBAAAAALi2eAEAAAAACAAAAAAAAABwF2IBAAAAAMC2eAEAAAAACAAAAAAAAACAF2IBAAAAAMi2eAEAAAAACAAAAAAAAACQF2IBAAAAANC2eAEAAAAACAAAAAAAAACwF2IBAAAAANi2eAEAAAAACAAAAAAAAADQ02EBAAAAAOC2eAEAAAAACAAAAAAAAADg3GEBAAAAAPi2eAEAAAAACAAAAAAAAABA1WEBAAAAAAC3eAEAAAAACAAAAAAAAAAg2WEBAAAAAAi3eAEAAAAACAAAAAAAAACA12EBAAAAABi3eAEAAAAACAAAAAAAAADAF2IBAAAAACC3eAEAAAAACAAAAAAAAADgEmIBAAAAACi3eAEAAAAACAAAAAAAAAAQ2GEBAAAAADC3eAEAAAAACAAAAAAAAAAw3GEBAAAAADi3eAEAAAAACAAAAAAAAADg2WEBAAAAAFC3eAEAAAAACAAAAAAAAACQ02EBAAAAAFi3eAEAAAAACAAAAAAAAADQ3WEBAAAAAHC3eAEAAAAACAAAAAAAAABA32EBAAAAAHi3eAEAAAAACAAAAAAAAACw32EBAAAAAIi3eAEAAAAACAAAAAAAAADQF2IBAAAAAJC3eAEAAAAACAAAAAAAAADgF2IBAAAAAJi3eAEAAAAACAAAAAAAAADwF2IBAAAAAKC3eAEAAAAACAAAAAAAAAAQGGIBAAAAAKi3eAEAAAAACAAAAAAAAABw4GEBAAAAALC3eAEAAAAACAAAAAAAAACA6GEBAAAAAMi3eAEAAAAACAAAAAAAAABA4WEBAAAAANC3eAEAAAAACAAAAAAAAACw5GEBAAAAANi3eAEAAAAACAAAAAAAAABA42EBAAAAAOi3eAEAAAAACAAAAAAAAAAgGGIBAAAAAPC3eAEAAAAACAAAAAAAAADgEmIBAAAAAPi3eAEAAAAACAAAAAAAAADw42EBAAAAAAC4eAEAAAAACAAAAAAAAABQ5mEBAAAAAAi4eAEAAAAACAAAAAAAAABA5WEBAAAAACC4eAEAAAAACAAAAAAAAAAw4GEBAAAAACi4eAEAAAAACAAAAAAAAABQ6WEBAAAAAEC4eAEAAAAACAAAAAAAAACg62EBAAAAAEi4eAEAAAAACAAAAAAAAAAw7GEBAAAAAFi4eAEAAAAACAAAAAAAAAAwGGIBAAAAAGC4eAEAAAAACAAAAAAAAABAGGIBAAAAAGi4eAEAAAAACAAAAAAAAABQGGIBAAAAAHC4eAEAAAAACAAAAAAAAABwGGIBAAAAAHi4eAEAAAAACAAAAAAAAACg7GEBAAAAAIC4eAEAAAAACAAAAAAAAADQ9WEBAAAAAJi4eAEAAAAACAAAAAAAAABQ7WEBAAAAAKC4eAEAAAAACAAAAAAAAABQ8WEBAAAAAKi4eAEAAAAACAAAAAAAAABQ72EBAAAAALi4eAEAAAAACAAAAAAAAACAGGIBAAAAAMC4eAEAAAAACAAAAAAAAADgEmIBAAAAAMi4eAEAAAAACAAAAAAAAADA72EBAAAAANC4eAEAAAAACAAAAAAAAADQ82EBAAAAANi4eAEAAAAACAAAAAAAAABg8mEBAAAAAPC4eAEAAAAACAAAAAAAAABg7GEBAAAAAPi4eAEAAAAACAAAAAAAAACQ9mEBAAAAABC5eAEAAAAACAAAAAAAAACwCGIBAAAAABi5eAEAAAAACAAAAAAAAABQKWIBAAAAACC5eAEAAAAACAAAAAAAAADAKWIBAAAAACi5eAEAAAAACAAAAAAAAABAKmIBAAAAADC5eAEAAAAACAAAAAAAAABgK2IBAAAAADi5eAEAAAAACAAAAAAAAADgK2IBAAAAAEC5eAEAAAAACAAAAAAAAADwK2IBAAAAAEi5eAEAAAAACAAAAAAAAACALGIBAAAAAFC5eAEAAAAACAAAAAAAAABwCGIBAAAAAFi5eAEAAAAACAAAAAAAAADgDWIBAAAAAGC5eAEAAAAACAAAAAAAAACgLGIBAAAAAGi5eAEAAAAACAAAAAAAAADgCWIBAAAAAHC5eAEAAAAACAAAAAAAAADALGIBAAAAAHi5eAEAAAAACAAAAAAAAAAALmIBAAAAAIC5eAEAAAAACAAAAAAAAAAQMWIBAAAAAIi5eAEAAAAACAAAAAAAAAAQM2IBAAAAAJC5eAEAAAAACAAAAAAAAABAM2IBAAAAAJi5eAEAAAAACAAAAAAAAABQM2IBAAAAAKC5eAEAAAAACAAAAAAAAAAANGIBAAAAAKi5eAEAAAAACAAAAAAAAAAwNGIBAAAAALC5eAEAAAAACAAAAAAAAABANGIBAAAAALi5eAEAAAAACAAAAAAAAABwNGIBAAAAANC5eAEAAAAACAAAAAAAAAAQCWIBAAAAANi5eAEAAAAACAAAAAAAAAAQVGIBAAAAAOC5eAEAAAAACAAAAAAAAACAVGIBAAAAAOi5eAEAAAAACAAAAAAAAAAAVWIBAAAAAPC5eAEAAAAACAAAAAAAAAAgVmIBAAAAAPi5eAEAAAAACAAAAAAAAADgK2IBAAAAAAC6eAEAAAAACAAAAAAAAADwK2IBAAAAAAi6eAEAAAAACAAAAAAAAACALGIBAAAAABC6eAEAAAAACAAAAAAAAAAwCGIBAAAAABi6eAEAAAAACAAAAAAAAACgDWIBAAAAACC6eAEAAAAACAAAAAAAAACgVmIBAAAAACi6eAEAAAAACAAAAAAAAABwCWIBAAAAADC6eAEAAAAACAAAAAAAAADAVmIBAAAAADi6eAEAAAAACAAAAAAAAAAAWGIBAAAAAEC6eAEAAAAACAAAAAAAAAAQW2IBAAAAAEi6eAEAAAAACAAAAAAAAAAQM2IBAAAAAFC6eAEAAAAACAAAAAAAAABAM2IBAAAAAFi6eAEAAAAACAAAAAAAAABQM2IBAAAAAGC6eAEAAAAACAAAAAAAAAAANGIBAAAAAGi6eAEAAAAACAAAAAAAAAAQXWIBAAAAAHC6eAEAAAAACAAAAAAAAAAgXWIBAAAAAHi6eAEAAAAACAAAAAAAAABQXWIBAAAAAJC6eAEAAAAACAAAAAAAAAAgD2IBAAAAAJi6eAEAAAAACAAAAAAAAADQXmIBAAAAAKC6eAEAAAAACAAAAAAAAABAX2IBAAAAAKi6eAEAAAAACAAAAAAAAADAX2IBAAAAALC6eAEAAAAACAAAAAAAAADgYGIBAAAAALi6eAEAAAAACAAAAAAAAABgYWIBAAAAAMC6eAEAAAAACAAAAAAAAABwYWIBAAAAAMi6eAEAAAAACAAAAAAAAAAAYmIBAAAAANC6eAEAAAAACAAAAAAAAADgDmIBAAAAANi6eAEAAAAACAAAAAAAAABAEmIBAAAAAOC6eAEAAAAACAAAAAAAAAAgYmIBAAAAAOi6eAEAAAAACAAAAAAAAACAD2IBAAAAAPC6eAEAAAAACAAAAAAAAABAYmIBAAAAAPi6eAEAAAAACAAAAAAAAACAY2IBAAAAAAC7eAEAAAAACAAAAAAAAAAgZmIBAAAAAAi7eAEAAAAACAAAAAAAAADgZ2IBAAAAABC7eAEAAAAACAAAAAAAAAAQaGIBAAAAABi7eAEAAAAACAAAAAAAAAAgaGIBAAAAACC7eAEAAAAACAAAAAAAAADQaGIBAAAAACi7eAEAAAAACAAAAAAAAAAAaWIBAAAAADC7eAEAAAAACAAAAAAAAAAQaWIBAAAAADi7eAEAAAAACAAAAAAAAABAaWIBAAAAAFC7eAEAAAAACAAAAAAAAADggWIBAAAAAFi7eAEAAAAACAAAAAAAAACggmIBAAAAAGC7eAEAAAAACAAAAAAAAACwGGIBAAAAAGi7eAEAAAAACAAAAAAAAADQGGIBAAAAAHC7eAEAAAAACAAAAAAAAAAQGWIBAAAAAHi7eAEAAAAACAAAAAAAAAAgGWIBAAAAAIC7eAEAAAAACAAAAAAAAAAwGWIBAAAAAIi7eAEAAAAACAAAAAAAAABAGWIBAAAAAJC7eAEAAAAACAAAAAAAAACgGWIBAAAAAKC7eAEAAAAACAAAAAAAAACwGWIBAAAAAKi7eAEAAAAACAAAAAAAAADAGWIBAAAAALC7eAEAAAAACAAAAAAAAABgG2IBAAAAALi7eAEAAAAACAAAAAAAAAAwHGIBAAAAAMi7eAEAAAAACAAAAAAAAACAHGIBAAAAANC7eAEAAAAACAAAAAAAAADgEmIBAAAAANi7eAEAAAAACAAAAAAAAAAQHWIBAAAAAPi7eAEAAAAACAAAAAAAAADwHWIBAAAAABC8eAEAAAAACAAAAAAAAAAQHmIBAAAAABi8eAEAAAAACAAAAAAAAAAgHmIBAAAAADC8eAEAAAAACAAAAAAAAACwgmIBAAAAADi8eAEAAAAACAAAAAAAAAAQg2IBAAAAAEC8eAEAAAAACAAAAAAAAACwGGIBAAAAAEi8eAEAAAAACAAAAAAAAADQGGIBAAAAAFC8eAEAAAAACAAAAAAAAAAQGWIBAAAAAFi8eAEAAAAACAAAAAAAAAAgGWIBAAAAAGC8eAEAAAAACAAAAAAAAAAwGWIBAAAAAGi8eAEAAAAACAAAAAAAAABAGWIBAAAAAHC8eAEAAAAACAAAAAAAAACgGWIBAAAAAIC8eAEAAAAACAAAAAAAAACwGWIBAAAAAIi8eAEAAAAACAAAAAAAAADAGWIBAAAAAJC8eAEAAAAACAAAAAAAAABgG2IBAAAAAJi8eAEAAAAACAAAAAAAAAAwHGIBAAAAAKi8eAEAAAAACAAAAAAAAACAHGIBAAAAALC8eAEAAAAACAAAAAAAAADgEmIBAAAAALi8eAEAAAAACAAAAAAAAAAQHWIBAAAAAPC8eAEAAAAACAAAAAAAAAAQHmIBAAAAAPi8eAEAAAAACAAAAAAAAAAgHmIBAAAAABC9eAEAAAAACAAAAAAAAAAgg2IBAAAAABi9eAEAAAAACAAAAAAAAADgg2IBAAAAACC9eAEAAAAACAAAAAAAAABgHmIBAAAAACi9eAEAAAAACAAAAAAAAACAHmIBAAAAADC9eAEAAAAACAAAAAAAAADAHmIBAAAAADi9eAEAAAAACAAAAAAAAADQHmIBAAAAAEC9eAEAAAAACAAAAAAAAAAwGWIBAAAAAEi9eAEAAAAACAAAAAAAAADgHmIBAAAAAFC9eAEAAAAACAAAAAAAAABAH2IBAAAAAGC9eAEAAAAACAAAAAAAAABQH2IBAAAAAGi9eAEAAAAACAAAAAAAAABgH2IBAAAAAHC9eAEAAAAACAAAAAAAAAAAIWIBAAAAAHi9eAEAAAAACAAAAAAAAADQIWIBAAAAAIi9eAEAAAAACAAAAAAAAAAgImIBAAAAAJC9eAEAAAAACAAAAAAAAADgEmIBAAAAAJi9eAEAAAAACAAAAAAAAACwImIBAAAAALi9eAEAAAAACAAAAAAAAACQI2IBAAAAANC9eAEAAAAACAAAAAAAAACwI2IBAAAAANi9eAEAAAAACAAAAAAAAADAI2IBAAAAAPC9eAEAAAAACAAAAAAAAADwg2IBAAAAAPi9eAEAAAAACAAAAAAAAABQhGIBAAAAAAC+eAEAAAAACAAAAAAAAABgHmIBAAAAAAi+eAEAAAAACAAAAAAAAACAHmIBAAAAABC+eAEAAAAACAAAAAAAAADAHmIBAAAAABi+eAEAAAAACAAAAAAAAADQHmIBAAAAACC+eAEAAAAACAAAAAAAAAAwGWIBAAAAACi+eAEAAAAACAAAAAAAAADgHmIBAAAAADC+eAEAAAAACAAAAAAAAABAH2IBAAAAAEC+eAEAAAAACAAAAAAAAABQH2IBAAAAAEi+eAEAAAAACAAAAAAAAABgH2IBAAAAAFC+eAEAAAAACAAAAAAAAAAAIWIBAAAAAFi+eAEAAAAACAAAAAAAAADQIWIBAAAAAGi+eAEAAAAACAAAAAAAAAAgImIBAAAAAHC+eAEAAAAACAAAAAAAAADgEmIBAAAAAHi+eAEAAAAACAAAAAAAAACwImIBAAAAALC+eAEAAAAACAAAAAAAAACwI2IBAAAAALi+eAEAAAAACAAAAAAAAADAI2IBAAAAANC+eAEAAAAACAAAAAAAAABghGIBAAAAANi+eAEAAAAACAAAAAAAAAAghWIBAAAAAOC+eAEAAAAACAAAAAAAAAAAJGIBAAAAAOi+eAEAAAAACAAAAAAAAAAgJGIBAAAAAPC+eAEAAAAACAAAAAAAAABgJGIBAAAAAPi+eAEAAAAACAAAAAAAAABwJGIBAAAAAAC/eAEAAAAACAAAAAAAAAAwGWIBAAAAAAi/eAEAAAAACAAAAAAAAACAJGIBAAAAABC/eAEAAAAACAAAAAAAAADAJGIBAAAAACC/eAEAAAAACAAAAAAAAADQJGIBAAAAACi/eAEAAAAACAAAAAAAAADgJGIBAAAAADC/eAEAAAAACAAAAAAAAACAJmIBAAAAADi/eAEAAAAACAAAAAAAAAAQJ2IBAAAAAEi/eAEAAAAACAAAAAAAAABgJ2IBAAAAAFC/eAEAAAAACAAAAAAAAADgEmIBAAAAAFi/eAEAAAAACAAAAAAAAADwJ2IBAAAAAHi/eAEAAAAACAAAAAAAAACAKGIBAAAAAJC/eAEAAAAACAAAAAAAAACgKGIBAAAAAJi/eAEAAAAACAAAAAAAAACwKGIBAAAAALC/eAEAAAAACAAAAAAAAAAwhWIBAAAAALi/eAEAAAAACAAAAAAAAACQhWIBAAAAAMC/eAEAAAAACAAAAAAAAAAAJGIBAAAAAMi/eAEAAAAACAAAAAAAAAAgJGIBAAAAANC/eAEAAAAACAAAAAAAAABgJGIBAAAAANi/eAEAAAAACAAAAAAAAABwJGIBAAAAAOC/eAEAAAAACAAAAAAAAAAwGWIBAAAAAOi/eAEAAAAACAAAAAAAAACAJGIBAAAAAPC/eAEAAAAACAAAAAAAAADAJGIBAAAAAADAeAEAAAAACAAAAAAAAADQJGIBAAAAAAjAeAEAAAAACAAAAAAAAADgJGIBAAAAABDAeAEAAAAACAAAAAAAAACAJmIBAAAAABjAeAEAAAAACAAAAAAAAAAQJ2IBAAAAACjAeAEAAAAACAAAAAAAAABgJ2IBAAAAADDAeAEAAAAACAAAAAAAAADgEmIBAAAAADjAeAEAAAAACAAAAAAAAADwJ2IBAAAAAHDAeAEAAAAACAAAAAAAAACgKGIBAAAAAHjAeAEAAAAACAAAAAAAAACwKGIBAAAAAIDAeAEAAAAACAAAAAAAAACYWHkBAAAAAIjAeAEAAAAACAAAAAAAAACwaXkBAAAAAJDAeAEAAAAACAAAAAAAAADgaXkBAAAAAJjAeAEAAAAACAAAAAAAAABAD1sBAAAAAKDAeAEAAAAACAAAAAAAAAByHlYBAAAAALDAeAEAAAAACAAAAAAAAADoaXkBAAAAALjAeAEAAAAACAAAAAAAAACAwHgBAAAAAMDAeAEAAAAACAAAAAAAAAAAEFsBAAAAANDAeAEAAAAACAAAAAAAAAAIEFsBAAAAANjAeAEAAAAACAAAAAAAAACIwHgBAAAAAODAeAEAAAAACAAAAAAAAAAgD1sBAAAAAOjAeAEAAAAACAAAAAAAAADwaXkBAAAAABjBeAEAAAAACAAAAAAAAABg22IBAAAAACDBeAEAAAAACAAAAAAAAADQ22IBAAAAADDBeAEAAAAACAAAAAAAAAAQ52IBAAAAADjBeAEAAAAACAAAAAAAAAAg52IBAAAAAEDBeAEAAAAACAAAAAAAAAAw52IBAAAAAEjBeAEAAAAACAAAAAAAAAAwGWIBAAAAAFDBeAEAAAAACAAAAAAAAACA3GIBAAAAAFjBeAEAAAAACAAAAAAAAADg5GIBAAAAAHDBeAEAAAAACAAAAAAAAAAg3WIBAAAAAHjBeAEAAAAACAAAAAAAAADQ4WIBAAAAAIDBeAEAAAAACAAAAAAAAABg32IBAAAAAJDBeAEAAAAACAAAAAAAAABA52IBAAAAAJjBeAEAAAAACAAAAAAAAADgEmIBAAAAAKDBeAEAAAAACAAAAAAAAACQ4GIBAAAAAKjBeAEAAAAACAAAAAAAAAAw5GIBAAAAALDBeAEAAAAACAAAAAAAAACg4mIBAAAAAMjBeAEAAAAACAAAAAAAAABA3GIBAAAAANDBeAEAAAAACAAAAAAAAADA5WIBAAAAAODBeAEAAAAACAAAAAAAAACwWHkBAAAAAOjBeAEAAAAACAAAAAAAAADIWHkBAAAAAPDBeAEAAAAACAAAAAAAAADgWHkBAAAAAPjBeAEAAAAACAAAAAAAAAD4WHkBAAAAAADCeAEAAAAACAAAAAAAAAAQWXkBAAAAAAjCeAEAAAAACAAAAAAAAAAoWXkBAAAAABDCeAEAAAAACAAAAAAAAABAWXkBAAAAABjCeAEAAAAACAAAAAAAAABYWXkBAAAAACDCeAEAAAAACAAAAAAAAABwWXkBAAAAACjCeAEAAAAACAAAAAAAAACIWXkBAAAAADDCeAEAAAAACAAAAAAAAACgWXkBAAAAADjCeAEAAAAACAAAAAAAAADAWXkBAAAAAEDCeAEAAAAACAAAAAAAAADYWXkBAAAAAFDCeAEAAAAACAAAAAAAAAAAankBAAAAAFjCeAEAAAAACAAAAAAAAAAoankBAAAAAGDCeAEAAAAACAAAAAAAAABIankBAAAAAGjCeAEAAAAACAAAAAAAAABwankBAAAAAHDCeAEAAAAACAAAAAAAAACgankBAAAAAHjCeAEAAAAACAAAAAAAAAAoa3kBAAAAAIDCeAEAAAAACAAAAAAAAABga3kBAAAAAIjCeAEAAAAACAAAAAAAAACIa3kBAAAAAJDCeAEAAAAACAAAAAAAAAC4a3kBAAAAAJjCeAEAAAAACAAAAAAAAADoa3kBAAAAAKDCeAEAAAAACAAAAAAAAABYbHkBAAAAAKjCeAEAAAAACAAAAAAAAACAbHkBAAAAALDCeAEAAAAACAAAAAAAAADIbHkBAAAAALjCeAEAAAAACAAAAAAAAAAAbXkBAAAAAMDCeAEAAAAACAAAAAAAAAAgElsBAAAAAMjCeAEAAAAACAAAAAAAAACnlxsAAAAAANjCeAEAAAAACAAAAAAAAAAIbXkBAAAAAODCeAEAAAAACAAAAAAAAADgwXgBAAAAAOjCeAEAAAAACAAAAAAAAABIwngBAAAAAPjCeAEAAAAACAAAAAAAAACwGFsBAAAAAADDeAEAAAAACAAAAAAAAABQwngBAAAAAAjDeAEAAAAACAAAAAAAAABwEFsBAAAAABDDeAEAAAAACAAAAAAAAAAQbXkBAAAAACDDeAEAAAAACAAAAAAAAADgbXkBAAAAAEDDeAEAAAAACAAAAAAAAABQ8GIBAAAAAEjDeAEAAAAACAAAAAAAAAAQ8WIBAAAAAFjDeAEAAAAACAAAAAAAAACwoGMBAAAAAGDDeAEAAAAACAAAAAAAAADAoGMBAAAAAGjDeAEAAAAACAAAAAAAAAAw52IBAAAAAHDDeAEAAAAACAAAAAAAAAAwGWIBAAAAAHjDeAEAAAAACAAAAAAAAABw8WIBAAAAAIDDeAEAAAAACAAAAAAAAABg+GIBAAAAAJjDeAEAAAAACAAAAAAAAADg8WIBAAAAAKDDeAEAAAAACAAAAAAAAAAA9WIBAAAAAKjDeAEAAAAACAAAAAAAAACQ82IBAAAAALjDeAEAAAAACAAAAAAAAADQoGMBAAAAAMDDeAEAAAAACAAAAAAAAADgEmIBAAAAAMjDeAEAAAAACAAAAAAAAABA9GIBAAAAANDDeAEAAAAACAAAAAAAAADw9mIBAAAAANjDeAEAAAAACAAAAAAAAACg9WIBAAAAAPDDeAEAAAAACAAAAAAAAAAw8WIBAAAAAPjDeAEAAAAACAAAAAAAAAAg+WIBAAAAABDEeAEAAAAACAAAAAAAAADQ+WIBAAAAABjEeAEAAAAACAAAAAAAAABA+mIBAAAAACjEeAEAAAAACAAAAAAAAADgoGMBAAAAADDEeAEAAAAACAAAAAAAAADwoGMBAAAAADjEeAEAAAAACAAAAAAAAAAw52IBAAAAAEDEeAEAAAAACAAAAAAAAAAwGWIBAAAAAEjEeAEAAAAACAAAAAAAAADw+mIBAAAAAFDEeAEAAAAACAAAAAAAAADwAGMBAAAAAGjEeAEAAAAACAAAAAAAAAAg+2IBAAAAAHDEeAEAAAAACAAAAAAAAAAg/mIBAAAAAHjEeAEAAAAACAAAAAAAAADQ/GIBAAAAAIjEeAEAAAAACAAAAAAAAAAAoWMBAAAAAJDEeAEAAAAACAAAAAAAAADgEmIBAAAAAJjEeAEAAAAACAAAAAAAAABA/WIBAAAAAKDEeAEAAAAACAAAAAAAAAAAAGMBAAAAAKjEeAEAAAAACAAAAAAAAACw/mIBAAAAAMDEeAEAAAAACAAAAAAAAACw+mIBAAAAAMjEeAEAAAAACAAAAAAAAADAAWMBAAAAAODEeAEAAAAACAAAAAAAAACwA2MBAAAAAOjEeAEAAAAACAAAAAAAAABABGMBAAAAAPjEeAEAAAAACAAAAAAAAAAQoWMBAAAAAADFeAEAAAAACAAAAAAAAAAgoWMBAAAAAAjFeAEAAAAACAAAAAAAAAAw52IBAAAAABDFeAEAAAAACAAAAAAAAAAwGWIBAAAAABjFeAEAAAAACAAAAAAAAACgBGMBAAAAACDFeAEAAAAACAAAAAAAAABwDWMBAAAAADjFeAEAAAAACAAAAAAAAAAABWMBAAAAAEDFeAEAAAAACAAAAAAAAACwCWMBAAAAAEjFeAEAAAAACAAAAAAAAABwBmMBAAAAAFjFeAEAAAAACAAAAAAAAAAwoWMBAAAAAGDFeAEAAAAACAAAAAAAAADgEmIBAAAAAGjFeAEAAAAACAAAAAAAAADgBmMBAAAAAHDFeAEAAAAACAAAAAAAAABADGMBAAAAAHjFeAEAAAAACAAAAAAAAABACmMBAAAAAJDFeAEAAAAACAAAAAAAAABgBGMBAAAAAJjFeAEAAAAACAAAAAAAAAAwDmMBAAAAALDFeAEAAAAACAAAAAAAAADwomMBAAAAALjFeAEAAAAACAAAAAAAAABgo2MBAAAAAMDFeAEAAAAACAAAAAAAAADgo2MBAAAAAMjFeAEAAAAACAAAAAAAAAAApGMBAAAAANDFeAEAAAAACAAAAAAAAABApGMBAAAAANjFeAEAAAAACAAAAAAAAABQpGMBAAAAAODFeAEAAAAACAAAAAAAAAAwGWIBAAAAAOjFeAEAAAAACAAAAAAAAABgpGMBAAAAAPDFeAEAAAAACAAAAAAAAADApGMBAAAAAADGeAEAAAAACAAAAAAAAADQpGMBAAAAAAjGeAEAAAAACAAAAAAAAADgpGMBAAAAABDGeAEAAAAACAAAAAAAAAAwpmMBAAAAABjGeAEAAAAACAAAAAAAAADQpmMBAAAAACjGeAEAAAAACAAAAAAAAAAgp2MBAAAAADDGeAEAAAAACAAAAAAAAADgEmIBAAAAADjGeAEAAAAACAAAAAAAAACwp2MBAAAAAEjGeAEAAAAACAAAAAAAAADwDmMBAAAAAFjGeAEAAAAACAAAAAAAAAAAqGMBAAAAAGjGeAEAAAAACAAAAAAAAADQDmMBAAAAAHDGeAEAAAAACAAAAAAAAAAQqGMBAAAAAHjGeAEAAAAACAAAAAAAAAAgqGMBAAAAAJDGeAEAAAAACAAAAAAAAACwEGMBAAAAAJjGeAEAAAAACAAAAAAAAACgEWMBAAAAAKjGeAEAAAAACAAAAAAAAABAoWMBAAAAALDGeAEAAAAACAAAAAAAAABQoWMBAAAAALjGeAEAAAAACAAAAAAAAAAw52IBAAAAAMDGeAEAAAAACAAAAAAAAAAwGWIBAAAAAMjGeAEAAAAACAAAAAAAAAAAEmMBAAAAANDGeAEAAAAACAAAAAAAAADwHmMBAAAAAOjGeAEAAAAACAAAAAAAAADQEmMBAAAAAPDGeAEAAAAACAAAAAAAAAAQG2MBAAAAAPjGeAEAAAAACAAAAAAAAADgFWMBAAAAAAjHeAEAAAAACAAAAAAAAABgoWMBAAAAABDHeAEAAAAACAAAAAAAAADgEmIBAAAAABjHeAEAAAAACAAAAAAAAABAGWMBAAAAACDHeAEAAAAACAAAAAAAAABAHmMBAAAAACjHeAEAAAAACAAAAAAAAADwHGMBAAAAAEDHeAEAAAAACAAAAAAAAADAEWMBAAAAAEjHeAEAAAAACAAAAAAAAADgH2MBAAAAAGDHeAEAAAAACAAAAAAAAACwIWMBAAAAAGjHeAEAAAAACAAAAAAAAAAgImMBAAAAAHjHeAEAAAAACAAAAAAAAABwoWMBAAAAAIDHeAEAAAAACAAAAAAAAACAoWMBAAAAAIjHeAEAAAAACAAAAAAAAAAw52IBAAAAAJDHeAEAAAAACAAAAAAAAAAwGWIBAAAAAJjHeAEAAAAACAAAAAAAAADQImMBAAAAAKDHeAEAAAAACAAAAAAAAAAwLWMBAAAAALjHeAEAAAAACAAAAAAAAACQI2MBAAAAAMDHeAEAAAAACAAAAAAAAACgKWMBAAAAAMjHeAEAAAAACAAAAAAAAACwJmMBAAAAANjHeAEAAAAACAAAAAAAAACQoWMBAAAAAODHeAEAAAAACAAAAAAAAADgEmIBAAAAAOjHeAEAAAAACAAAAAAAAAAAKGMBAAAAAPDHeAEAAAAACAAAAAAAAACALGMBAAAAAPjHeAEAAAAACAAAAAAAAACwKmMBAAAAABDIeAEAAAAACAAAAAAAAACQImMBAAAAABjIeAEAAAAACAAAAAAAAAAgLmMBAAAAADDIeAEAAAAACAAAAAAAAACQL2MBAAAAADjIeAEAAAAACAAAAAAAAAAgMGMBAAAAAEjIeAEAAAAACAAAAAAAAACgoWMBAAAAAFDIeAEAAAAACAAAAAAAAACwoWMBAAAAAFjIeAEAAAAACAAAAAAAAAAw52IBAAAAAGDIeAEAAAAACAAAAAAAAAAwGWIBAAAAAGjIeAEAAAAACAAAAAAAAACAMGMBAAAAAHDIeAEAAAAACAAAAAAAAAAAOGMBAAAAAIjIeAEAAAAACAAAAAAAAADgMGMBAAAAAJDIeAEAAAAACAAAAAAAAADgM2MBAAAAAJjIeAEAAAAACAAAAAAAAACgMmMBAAAAAKjIeAEAAAAACAAAAAAAAADAoWMBAAAAALDIeAEAAAAACAAAAAAAAADgEmIBAAAAALjIeAEAAAAACAAAAAAAAAAQM2MBAAAAAMDIeAEAAAAACAAAAAAAAADQNmMBAAAAAMjIeAEAAAAACAAAAAAAAABwNGMBAAAAAODIeAEAAAAACAAAAAAAAABAMGMBAAAAAOjIeAEAAAAACAAAAAAAAADAOGMBAAAAAADJeAEAAAAACAAAAAAAAABAOmMBAAAAAAjJeAEAAAAACAAAAAAAAACwOmMBAAAAABjJeAEAAAAACAAAAAAAAADQoWMBAAAAACDJeAEAAAAACAAAAAAAAADgoWMBAAAAACjJeAEAAAAACAAAAAAAAAAw52IBAAAAADDJeAEAAAAACAAAAAAAAAAwGWIBAAAAADjJeAEAAAAACAAAAAAAAABgO2MBAAAAAEDJeAEAAAAACAAAAAAAAACgQmMBAAAAAFjJeAEAAAAACAAAAAAAAAAAPGMBAAAAAGDJeAEAAAAACAAAAAAAAACwQGMBAAAAAGjJeAEAAAAACAAAAAAAAABAPmMBAAAAAHjJeAEAAAAACAAAAAAAAADwoWMBAAAAAIDJeAEAAAAACAAAAAAAAADgEmIBAAAAAIjJeAEAAAAACAAAAAAAAABwP2MBAAAAAJDJeAEAAAAACAAAAAAAAADwQWMBAAAAAJjJeAEAAAAACAAAAAAAAACAQWMBAAAAALDJeAEAAAAACAAAAAAAAAAgO2MBAAAAALjJeAEAAAAACAAAAAAAAACAQ2MBAAAAANDJeAEAAAAACAAAAAAAAACwRGMBAAAAANjJeAEAAAAACAAAAAAAAAAgRWMBAAAAAOjJeAEAAAAACAAAAAAAAAAAomMBAAAAAPDJeAEAAAAACAAAAAAAAAAQomMBAAAAAPjJeAEAAAAACAAAAAAAAAAw52IBAAAAAADKeAEAAAAACAAAAAAAAAAwGWIBAAAAAAjKeAEAAAAACAAAAAAAAADQRWMBAAAAABDKeAEAAAAACAAAAAAAAADgTWMBAAAAACjKeAEAAAAACAAAAAAAAACgRmMBAAAAADDKeAEAAAAACAAAAAAAAAAQSmMBAAAAADjKeAEAAAAACAAAAAAAAACgSGMBAAAAAEjKeAEAAAAACAAAAAAAAAAgomMBAAAAAFDKeAEAAAAACAAAAAAAAADgEmIBAAAAAFjKeAEAAAAACAAAAAAAAABQSWMBAAAAAGDKeAEAAAAACAAAAAAAAACwS2MBAAAAAGjKeAEAAAAACAAAAAAAAACgSmMBAAAAAIDKeAEAAAAACAAAAAAAAACQRWMBAAAAAIjKeAEAAAAACAAAAAAAAACwTmMBAAAAAKDKeAEAAAAACAAAAAAAAADAUmMBAAAAAKjKeAEAAAAACAAAAAAAAADgU2MBAAAAALjKeAEAAAAACAAAAAAAAAAwomMBAAAAAMDKeAEAAAAACAAAAAAAAABAomMBAAAAAMjKeAEAAAAACAAAAAAAAAAw52IBAAAAANDKeAEAAAAACAAAAAAAAAAwGWIBAAAAANjKeAEAAAAACAAAAAAAAABAVGMBAAAAAODKeAEAAAAACAAAAAAAAADAZ2MBAAAAAPjKeAEAAAAACAAAAAAAAABQVmMBAAAAAADLeAEAAAAACAAAAAAAAADgYGMBAAAAAAjLeAEAAAAACAAAAAAAAABQW2MBAAAAABjLeAEAAAAACAAAAAAAAABQomMBAAAAACDLeAEAAAAACAAAAAAAAADgEmIBAAAAACjLeAEAAAAACAAAAAAAAAAwXWMBAAAAADDLeAEAAAAACAAAAAAAAAAQZ2MBAAAAADjLeAEAAAAACAAAAAAAAABAY2MBAAAAAFDLeAEAAAAACAAAAAAAAAAAVGMBAAAAAFjLeAEAAAAACAAAAAAAAAAwaWMBAAAAAHDLeAEAAAAACAAAAAAAAACAamMBAAAAAHjLeAEAAAAACAAAAAAAAABAa2MBAAAAAIjLeAEAAAAACAAAAAAAAABgomMBAAAAAJDLeAEAAAAACAAAAAAAAABwomMBAAAAAJjLeAEAAAAACAAAAAAAAAAw52IBAAAAAKDLeAEAAAAACAAAAAAAAAAwGWIBAAAAAKjLeAEAAAAACAAAAAAAAACga2MBAAAAALDLeAEAAAAACAAAAAAAAAAAc2MBAAAAAMjLeAEAAAAACAAAAAAAAAAQbGMBAAAAANDLeAEAAAAACAAAAAAAAACgb2MBAAAAANjLeAEAAAAACAAAAAAAAADgbWMBAAAAAOjLeAEAAAAACAAAAAAAAACAomMBAAAAAPDLeAEAAAAACAAAAAAAAADgEmIBAAAAAPjLeAEAAAAACAAAAAAAAADAbmMBAAAAAADMeAEAAAAACAAAAAAAAACQcWMBAAAAAAjMeAEAAAAACAAAAAAAAABAcGMBAAAAACDMeAEAAAAACAAAAAAAAABga2MBAAAAACjMeAEAAAAACAAAAAAAAADAc2MBAAAAAEDMeAEAAAAACAAAAAAAAADgdWMBAAAAAEjMeAEAAAAACAAAAAAAAADAdmMBAAAAAFjMeAEAAAAACAAAAAAAAACQomMBAAAAAGDMeAEAAAAACAAAAAAAAACgomMBAAAAAGjMeAEAAAAACAAAAAAAAAAw52IBAAAAAHDMeAEAAAAACAAAAAAAAAAwGWIBAAAAAHjMeAEAAAAACAAAAAAAAAAgd2MBAAAAAIDMeAEAAAAACAAAAAAAAADggmMBAAAAAJjMeAEAAAAACAAAAAAAAABQeGMBAAAAAKDMeAEAAAAACAAAAAAAAAAQf2MBAAAAAKjMeAEAAAAACAAAAAAAAADQe2MBAAAAALjMeAEAAAAACAAAAAAAAACwomMBAAAAAMDMeAEAAAAACAAAAAAAAADgEmIBAAAAAMjMeAEAAAAACAAAAAAAAABAfWMBAAAAANDMeAEAAAAACAAAAAAAAAAwgmMBAAAAANjMeAEAAAAACAAAAAAAAABAgGMBAAAAAPDMeAEAAAAACAAAAAAAAADgdmMBAAAAAPjMeAEAAAAACAAAAAAAAADwg2MBAAAAABDNeAEAAAAACAAAAAAAAABwhWMBAAAAABjNeAEAAAAACAAAAAAAAAAQhmMBAAAAACjNeAEAAAAACAAAAAAAAADAomMBAAAAADDNeAEAAAAACAAAAAAAAADQomMBAAAAADjNeAEAAAAACAAAAAAAAAAw52IBAAAAAEDNeAEAAAAACAAAAAAAAAAwGWIBAAAAAEjNeAEAAAAACAAAAAAAAABwhmMBAAAAAFDNeAEAAAAACAAAAAAAAACQkWMBAAAAAGjNeAEAAAAACAAAAAAAAABgh2MBAAAAAHDNeAEAAAAACAAAAAAAAACgjGMBAAAAAHjNeAEAAAAACAAAAAAAAAAwimMBAAAAAIjNeAEAAAAACAAAAAAAAADgomMBAAAAAJDNeAEAAAAACAAAAAAAAADgEmIBAAAAAJjNeAEAAAAACAAAAAAAAABAi2MBAAAAAKDNeAEAAAAACAAAAAAAAAAAj2MBAAAAAKjNeAEAAAAACAAAAAAAAACQjWMBAAAAAMDNeAEAAAAACAAAAAAAAAAwhmMBAAAAAMjNeAEAAAAACAAAAAAAAACQkmMBAAAAAODNeAEAAAAACAAAAAAAAACgm2MBAAAAAOjNeAEAAAAACAAAAAAAAAAwqGMBAAAAAPDNeAEAAAAACAAAAAAAAACgqGMBAAAAAPjNeAEAAAAACAAAAAAAAAAgqWMBAAAAAADOeAEAAAAACAAAAAAAAABAqmMBAAAAAAjOeAEAAAAACAAAAAAAAADAqmMBAAAAABDOeAEAAAAACAAAAAAAAADQqmMBAAAAABjOeAEAAAAACAAAAAAAAABgq2MBAAAAACDOeAEAAAAACAAAAAAAAABgm2MBAAAAACjOeAEAAAAACAAAAAAAAACgnmMBAAAAADDOeAEAAAAACAAAAAAAAACAq2MBAAAAADjOeAEAAAAACAAAAAAAAAAAnGMBAAAAAEDOeAEAAAAACAAAAAAAAACgq2MBAAAAAEjOeAEAAAAACAAAAAAAAADArGMBAAAAAFDOeAEAAAAACAAAAAAAAABQr2MBAAAAAFjOeAEAAAAACAAAAAAAAADwsGMBAAAAAGDOeAEAAAAACAAAAAAAAAAgsWMBAAAAAGjOeAEAAAAACAAAAAAAAAAwsWMBAAAAAHDOeAEAAAAACAAAAAAAAADgsWMBAAAAAHjOeAEAAAAACAAAAAAAAAAQsmMBAAAAAIDOeAEAAAAACAAAAAAAAAAgsmMBAAAAAIjOeAEAAAAACAAAAAAAAABQsmMBAAAAAKDOeAEAAAAACAAAAAAAAADwomMBAAAAAKjOeAEAAAAACAAAAAAAAABgymMBAAAAALDOeAEAAAAACAAAAAAAAADgo2MBAAAAALjOeAEAAAAACAAAAAAAAAAApGMBAAAAAMDOeAEAAAAACAAAAAAAAABApGMBAAAAAMjOeAEAAAAACAAAAAAAAABQpGMBAAAAANDOeAEAAAAACAAAAAAAAAAwGWIBAAAAANjOeAEAAAAACAAAAAAAAABgpGMBAAAAAODOeAEAAAAACAAAAAAAAADApGMBAAAAAPDOeAEAAAAACAAAAAAAAADQpGMBAAAAAPjOeAEAAAAACAAAAAAAAADgpGMBAAAAAADPeAEAAAAACAAAAAAAAAAwpmMBAAAAAAjPeAEAAAAACAAAAAAAAADQpmMBAAAAABjPeAEAAAAACAAAAAAAAAAgp2MBAAAAACDPeAEAAAAACAAAAAAAAADgEmIBAAAAACjPeAEAAAAACAAAAAAAAACwp2MBAAAAAEjPeAEAAAAACAAAAAAAAAAAqGMBAAAAAGDPeAEAAAAACAAAAAAAAAAQqGMBAAAAAGjPeAEAAAAACAAAAAAAAAAgqGMBAAAAAIDPeAEAAAAACAAAAAAAAABwymMBAAAAAIjPeAEAAAAACAAAAAAAAADwymMBAAAAAJDPeAEAAAAACAAAAAAAAADgo2MBAAAAAJjPeAEAAAAACAAAAAAAAAAApGMBAAAAAKDPeAEAAAAACAAAAAAAAABApGMBAAAAAKjPeAEAAAAACAAAAAAAAABQpGMBAAAAALDPeAEAAAAACAAAAAAAAAAwGWIBAAAAALjPeAEAAAAACAAAAAAAAABgpGMBAAAAAMDPeAEAAAAACAAAAAAAAADApGMBAAAAANDPeAEAAAAACAAAAAAAAADQpGMBAAAAANjPeAEAAAAACAAAAAAAAADgpGMBAAAAAODPeAEAAAAACAAAAAAAAAAwpmMBAAAAAOjPeAEAAAAACAAAAAAAAADQpmMBAAAAAPjPeAEAAAAACAAAAAAAAAAgp2MBAAAAAADQeAEAAAAACAAAAAAAAADgEmIBAAAAAAjQeAEAAAAACAAAAAAAAACwp2MBAAAAAEDQeAEAAAAACAAAAAAAAAAQqGMBAAAAAEjQeAEAAAAACAAAAAAAAAAgqGMBAAAAAFDQeAEAAAAACAAAAAAAAADwWXkBAAAAAFjQeAEAAAAACAAAAAAAAAAYWnkBAAAAAGDQeAEAAAAACAAAAAAAAAAwWnkBAAAAAGjQeAEAAAAACAAAAAAAAABIWnkBAAAAAHDQeAEAAAAACAAAAAAAAABgWnkBAAAAAIDQeAEAAAAACAAAAAAAAADwbXkBAAAAAIjQeAEAAAAACAAAAAAAAAAYbnkBAAAAAJDQeAEAAAAACAAAAAAAAABQbnkBAAAAAJjQeAEAAAAACAAAAAAAAABwbnkBAAAAAKDQeAEAAAAACAAAAAAAAACQbnkBAAAAAKjQeAEAAAAACAAAAAAAAADgbnkBAAAAALDQeAEAAAAACAAAAAAAAAAgGlsBAAAAALjQeAEAAAAACAAAAAAAAADFHccAAAAAAMjQeAEAAAAACAAAAAAAAADobnkBAAAAANDQeAEAAAAACAAAAAAAAABQ0HgBAAAAANjQeAEAAAAACAAAAAAAAADQHFsBAAAAAOjQeAEAAAAACAAAAAAAAADgHFsBAAAAAPDQeAEAAAAACAAAAAAAAACA0HgBAAAAAPjQeAEAAAAACAAAAAAAAACAGVsBAAAAAADReAEAAAAACAAAAAAAAADwbnkBAAAAADDReAEAAAAACAAAAAAAAAAw9GMBAAAAADjReAEAAAAACAAAAAAAAADA9GMBAAAAAEjReAEAAAAACAAAAAAAAAAwMWQBAAAAAFDReAEAAAAACAAAAAAAAABAMWQBAAAAAFjReAEAAAAACAAAAAAAAAAw52IBAAAAAGDReAEAAAAACAAAAAAAAAAwGWIBAAAAAGjReAEAAAAACAAAAAAAAAAg9WMBAAAAAHDReAEAAAAACAAAAAAAAADQ+2MBAAAAAIjReAEAAAAACAAAAAAAAABw9WMBAAAAAJDReAEAAAAACAAAAAAAAADg+GMBAAAAAJjReAEAAAAACAAAAAAAAABQ92MBAAAAAKjReAEAAAAACAAAAAAAAABQMWQBAAAAALDReAEAAAAACAAAAAAAAADgEmIBAAAAALjReAEAAAAACAAAAAAAAAAA+GMBAAAAAMDReAEAAAAACAAAAAAAAACA+mMBAAAAAMjReAEAAAAACAAAAAAAAABw+WMBAAAAAODReAEAAAAACAAAAAAAAADg9GMBAAAAAOjReAEAAAAACAAAAAAAAACg/GMBAAAAAADSeAEAAAAACAAAAAAAAACg/mMBAAAAAAjSeAEAAAAACAAAAAAAAABw/2MBAAAAABjSeAEAAAAACAAAAAAAAABgMWQBAAAAACDSeAEAAAAACAAAAAAAAABwMWQBAAAAACjSeAEAAAAACAAAAAAAAAAw52IBAAAAADDSeAEAAAAACAAAAAAAAAAwGWIBAAAAADjSeAEAAAAACAAAAAAAAADQ/2MBAAAAAEDSeAEAAAAACAAAAAAAAADwCGQBAAAAAFjSeAEAAAAACAAAAAAAAACgAGQBAAAAAGDSeAEAAAAACAAAAAAAAADgBGQBAAAAAGjSeAEAAAAACAAAAAAAAAAAA2QBAAAAAHjSeAEAAAAACAAAAAAAAACAMWQBAAAAAIDSeAEAAAAACAAAAAAAAADgEmIBAAAAAIjSeAEAAAAACAAAAAAAAACQA2QBAAAAAJDSeAEAAAAACAAAAAAAAABACGQBAAAAAJjSeAEAAAAACAAAAAAAAABABmQBAAAAALDSeAEAAAAACAAAAAAAAACQ/2MBAAAAALjSeAEAAAAACAAAAAAAAADwCWQBAAAAANDSeAEAAAAACAAAAAAAAAAAC2QBAAAAANjSeAEAAAAACAAAAAAAAACQC2QBAAAAAOjSeAEAAAAACAAAAAAAAACQMWQBAAAAAPDSeAEAAAAACAAAAAAAAACgMWQBAAAAAPjSeAEAAAAACAAAAAAAAAAw52IBAAAAAADTeAEAAAAACAAAAAAAAAAwGWIBAAAAAAjTeAEAAAAACAAAAAAAAADwC2QBAAAAABDTeAEAAAAACAAAAAAAAADQEWQBAAAAACjTeAEAAAAACAAAAAAAAABADGQBAAAAADDTeAEAAAAACAAAAAAAAAAgD2QBAAAAADjTeAEAAAAACAAAAAAAAADgDWQBAAAAAEjTeAEAAAAACAAAAAAAAACwMWQBAAAAAFDTeAEAAAAACAAAAAAAAADgEmIBAAAAAFjTeAEAAAAACAAAAAAAAACADmQBAAAAAGDTeAEAAAAACAAAAAAAAACgEGQBAAAAAGjTeAEAAAAACAAAAAAAAACQD2QBAAAAAIDTeAEAAAAACAAAAAAAAACwC2QBAAAAAIjTeAEAAAAACAAAAAAAAACQEmQBAAAAAKDTeAEAAAAACAAAAAAAAACgE2QBAAAAAKjTeAEAAAAACAAAAAAAAAAwFGQBAAAAALjTeAEAAAAACAAAAAAAAADAMWQBAAAAAMDTeAEAAAAACAAAAAAAAADQMWQBAAAAAMjTeAEAAAAACAAAAAAAAAAw52IBAAAAANDTeAEAAAAACAAAAAAAAAAwGWIBAAAAANjTeAEAAAAACAAAAAAAAACQFGQBAAAAAODTeAEAAAAACAAAAAAAAADQGWQBAAAAAPjTeAEAAAAACAAAAAAAAADgFGQBAAAAAADUeAEAAAAACAAAAAAAAABAF2QBAAAAAAjUeAEAAAAACAAAAAAAAAAwFmQBAAAAABjUeAEAAAAACAAAAAAAAADgMWQBAAAAACDUeAEAAAAACAAAAAAAAADgEmIBAAAAACjUeAEAAAAACAAAAAAAAACwFmQBAAAAADDUeAEAAAAACAAAAAAAAACgGGQBAAAAADjUeAEAAAAACAAAAAAAAACgF2QBAAAAAFDUeAEAAAAACAAAAAAAAABQFGQBAAAAAFjUeAEAAAAACAAAAAAAAACAGmQBAAAAAHDUeAEAAAAACAAAAAAAAADgHWQBAAAAAHjUeAEAAAAACAAAAAAAAAAQH2QBAAAAAIjUeAEAAAAACAAAAAAAAADwMWQBAAAAAJDUeAEAAAAACAAAAAAAAAAAMmQBAAAAAJjUeAEAAAAACAAAAAAAAAAw52IBAAAAAKDUeAEAAAAACAAAAAAAAAAwGWIBAAAAAKjUeAEAAAAACAAAAAAAAABwH2QBAAAAALDUeAEAAAAACAAAAAAAAAAQLWQBAAAAAMjUeAEAAAAACAAAAAAAAADAIGQBAAAAANDUeAEAAAAACAAAAAAAAABwJ2QBAAAAANjUeAEAAAAACAAAAAAAAADgI2QBAAAAAOjUeAEAAAAACAAAAAAAAAAQMmQBAAAAAPDUeAEAAAAACAAAAAAAAADgEmIBAAAAAPjUeAEAAAAACAAAAAAAAACgJGQBAAAAAADVeAEAAAAACAAAAAAAAABgLGQBAAAAAAjVeAEAAAAACAAAAAAAAAAwKWQBAAAAACDVeAEAAAAACAAAAAAAAAAwH2QBAAAAACjVeAEAAAAACAAAAAAAAAAwLmQBAAAAADDVeAEAAAAACAAAAAAAAAB4WnkBAAAAADjVeAEAAAAACAAAAAAAAACQWnkBAAAAAEDVeAEAAAAACAAAAAAAAACoWnkBAAAAAFDVeAEAAAAACAAAAAAAAABAb3kBAAAAAFjVeAEAAAAACAAAAAAAAABgb3kBAAAAAGDVeAEAAAAACAAAAAAAAACYb3kBAAAAAGjVeAEAAAAACAAAAAAAAADIb3kBAAAAAHDVeAEAAAAACAAAAAAAAACAHVsBAAAAAHjVeAEAAAAACAAAAAAAAADzH+IAAAAAAIjVeAEAAAAACAAAAAAAAADQb3kBAAAAAJDVeAEAAAAACAAAAAAAAAAw1XgBAAAAAJjVeAEAAAAACAAAAAAAAADoHlsBAAAAAKjVeAEAAAAACAAAAAAAAADwHlsBAAAAALDVeAEAAAAACAAAAAAAAABQ1XgBAAAAALjVeAEAAAAACAAAAAAAAAAgHVsBAAAAAMDVeAEAAAAACAAAAAAAAADgb3kBAAAAAPDVeAEAAAAACAAAAAAAAAAgNWQBAAAAAPjVeAEAAAAACAAAAAAAAACwNWQBAAAAAAjWeAEAAAAACAAAAAAAAADgV2QBAAAAABDWeAEAAAAACAAAAAAAAADwV2QBAAAAABjWeAEAAAAACAAAAAAAAAAw52IBAAAAACDWeAEAAAAACAAAAAAAAAAwGWIBAAAAACjWeAEAAAAACAAAAAAAAAAQNmQBAAAAADDWeAEAAAAACAAAAAAAAAAwPGQBAAAAAEjWeAEAAAAACAAAAAAAAABgNmQBAAAAAFDWeAEAAAAACAAAAAAAAACAOWQBAAAAAFjWeAEAAAAACAAAAAAAAAAAOGQBAAAAAGjWeAEAAAAACAAAAAAAAAAAWGQBAAAAAHDWeAEAAAAACAAAAAAAAADgEmIBAAAAAHjWeAEAAAAACAAAAAAAAACgOGQBAAAAAIDWeAEAAAAACAAAAAAAAAAAO2QBAAAAAIjWeAEAAAAACAAAAAAAAAAAOmQBAAAAAKDWeAEAAAAACAAAAAAAAADQNWQBAAAAAKjWeAEAAAAACAAAAAAAAADwPGQBAAAAAMDWeAEAAAAACAAAAAAAAAAwP2QBAAAAAMjWeAEAAAAACAAAAAAAAAAgQGQBAAAAANjWeAEAAAAACAAAAAAAAAAQWGQBAAAAAODWeAEAAAAACAAAAAAAAAAgWGQBAAAAAOjWeAEAAAAACAAAAAAAAAAw52IBAAAAAPDWeAEAAAAACAAAAAAAAAAwGWIBAAAAAPjWeAEAAAAACAAAAAAAAACAQGQBAAAAAADXeAEAAAAACAAAAAAAAAAQSmQBAAAAABjXeAEAAAAACAAAAAAAAABwQWQBAAAAACDXeAEAAAAACAAAAAAAAADQRWQBAAAAACjXeAEAAAAACAAAAAAAAADgQ2QBAAAAADjXeAEAAAAACAAAAAAAAAAwWGQBAAAAAEDXeAEAAAAACAAAAAAAAADgEmIBAAAAAEjXeAEAAAAACAAAAAAAAADARGQBAAAAAFDXeAEAAAAACAAAAAAAAABgSWQBAAAAAFjXeAEAAAAACAAAAAAAAAAwR2QBAAAAAHDXeAEAAAAACAAAAAAAAABAQGQBAAAAAHjXeAEAAAAACAAAAAAAAAAQS2QBAAAAAJDXeAEAAAAACAAAAAAAAAAQTWQBAAAAAJjXeAEAAAAACAAAAAAAAADgTWQBAAAAAKjXeAEAAAAACAAAAAAAAABAWGQBAAAAALDXeAEAAAAACAAAAAAAAABQWGQBAAAAALjXeAEAAAAACAAAAAAAAAAw52IBAAAAAMDXeAEAAAAACAAAAAAAAAAwGWIBAAAAAMjXeAEAAAAACAAAAAAAAABATmQBAAAAANDXeAEAAAAACAAAAAAAAAAwVWQBAAAAAOjXeAEAAAAACAAAAAAAAACwTmQBAAAAAPDXeAEAAAAACAAAAAAAAABwUWQBAAAAAPjXeAEAAAAACAAAAAAAAABQUGQBAAAAAAjYeAEAAAAACAAAAAAAAABgWGQBAAAAABDYeAEAAAAACAAAAAAAAADgEmIBAAAAABjYeAEAAAAACAAAAAAAAADAUGQBAAAAACDYeAEAAAAACAAAAAAAAADQU2QBAAAAACjYeAEAAAAACAAAAAAAAAAAUmQBAAAAAEDYeAEAAAAACAAAAAAAAAAATmQBAAAAAEjYeAEAAAAACAAAAAAAAAAAVmQBAAAAAFDYeAEAAAAACAAAAAAAAADAWnkBAAAAAFjYeAEAAAAACAAAAAAAAADYWnkBAAAAAGDYeAEAAAAACAAAAAAAAACA23gBAAAAAHDYeAEAAAAACAAAAAAAAAAQcHkBAAAAAHjYeAEAAAAACAAAAAAAAABAcHkBAAAAAIDYeAEAAAAACAAAAAAAAACQcHkBAAAAAIjYeAEAAAAACAAAAAAAAACwH1sBAAAAAJDYeAEAAAAACAAAAAAAAADwMQIAAAAAAKDYeAEAAAAACAAAAAAAAACYcHkBAAAAAKjYeAEAAAAACAAAAAAAAABQ2HgBAAAAALDYeAEAAAAACAAAAAAAAABg2HgBAAAAAMDYeAEAAAAACAAAAAAAAACgIlsBAAAAAMjYeAEAAAAACAAAAAAAAABw2HgBAAAAANDYeAEAAAAACAAAAAAAAABQH1sBAAAAANjYeAEAAAAACAAAAAAAAACgcHkBAAAAAOjYeAEAAAAACAAAAAAAAADAcHkBAAAAAAjZeAEAAAAACAAAAAAAAABwXGQBAAAAABDZeAEAAAAACAAAAAAAAABAXWQBAAAAACDZeAEAAAAACAAAAAAAAAAwe2QBAAAAACjZeAEAAAAACAAAAAAAAABAe2QBAAAAADDZeAEAAAAACAAAAAAAAAAw52IBAAAAADjZeAEAAAAACAAAAAAAAAAwGWIBAAAAAEDZeAEAAAAACAAAAAAAAACgXWQBAAAAAEjZeAEAAAAACAAAAAAAAACwZWQBAAAAAGDZeAEAAAAACAAAAAAAAAAgXmQBAAAAAGjZeAEAAAAACAAAAAAAAACgYWQBAAAAAHDZeAEAAAAACAAAAAAAAAAgYGQBAAAAAIDZeAEAAAAACAAAAAAAAABQe2QBAAAAAIjZeAEAAAAACAAAAAAAAADgEmIBAAAAAJDZeAEAAAAACAAAAAAAAACgYGQBAAAAAJjZeAEAAAAACAAAAAAAAABAZGQBAAAAAKDZeAEAAAAACAAAAAAAAABQYmQBAAAAALjZeAEAAAAACAAAAAAAAABgXWQBAAAAAMDZeAEAAAAACAAAAAAAAACgZmQBAAAAANjZeAEAAAAACAAAAAAAAADAaGQBAAAAAODZeAEAAAAACAAAAAAAAACAaWQBAAAAAPDZeAEAAAAACAAAAAAAAABge2QBAAAAAPjZeAEAAAAACAAAAAAAAABwe2QBAAAAAADaeAEAAAAACAAAAAAAAAAw52IBAAAAAAjaeAEAAAAACAAAAAAAAAAwGWIBAAAAABDaeAEAAAAACAAAAAAAAADgaWQBAAAAABjaeAEAAAAACAAAAAAAAACQeGQBAAAAADDaeAEAAAAACAAAAAAAAABwamQBAAAAADjaeAEAAAAACAAAAAAAAAAQdGQBAAAAAEDaeAEAAAAACAAAAAAAAABQb2QBAAAAAFDaeAEAAAAACAAAAAAAAACAe2QBAAAAAFjaeAEAAAAACAAAAAAAAADgEmIBAAAAAGDaeAEAAAAACAAAAAAAAACwcGQBAAAAAGjaeAEAAAAACAAAAAAAAADgd2QBAAAAAHDaeAEAAAAACAAAAAAAAADgdWQBAAAAAIjaeAEAAAAACAAAAAAAAACgaWQBAAAAAJDaeAEAAAAACAAAAAAAAADgeWQBAAAAAKDaeAEAAAAACAAAAAAAAADwWnkBAAAAAKjaeAEAAAAACAAAAAAAAAAIW3kBAAAAALDaeAEAAAAACAAAAAAAAAAgW3kBAAAAALjaeAEAAAAACAAAAAAAAAA4W3kBAAAAAMDaeAEAAAAACAAAAAAAAABQW3kBAAAAAMjaeAEAAAAACAAAAAAAAABoW3kBAAAAANDaeAEAAAAACAAAAAAAAACAW3kBAAAAANjaeAEAAAAACAAAAAAAAACYW3kBAAAAAODaeAEAAAAACAAAAAAAAACwW3kBAAAAAOjaeAEAAAAACAAAAAAAAADIW3kBAAAAAPDaeAEAAAAACAAAAAAAAADgW3kBAAAAAPjaeAEAAAAACAAAAAAAAAD4W3kBAAAAAADbeAEAAAAACAAAAAAAAAAQXHkBAAAAAAjbeAEAAAAACAAAAAAAAAAwXHkBAAAAABDbeAEAAAAACAAAAAAAAADgcHkBAAAAABjbeAEAAAAACAAAAAAAAAAgcXkBAAAAACDbeAEAAAAACAAAAAAAAABAcXkBAAAAACjbeAEAAAAACAAAAAAAAACAcXkBAAAAADDbeAEAAAAACAAAAAAAAACwcXkBAAAAADjbeAEAAAAACAAAAAAAAADYcXkBAAAAAEDbeAEAAAAACAAAAAAAAAAQcnkBAAAAAEjbeAEAAAAACAAAAAAAAABIcnkBAAAAAFDbeAEAAAAACAAAAAAAAABgcnkBAAAAAFjbeAEAAAAACAAAAAAAAACQcnkBAAAAAGDbeAEAAAAACAAAAAAAAAC4cnkBAAAAAGjbeAEAAAAACAAAAAAAAADYcnkBAAAAAHDbeAEAAAAACAAAAAAAAAAAc3kBAAAAAHjbeAEAAAAACAAAAAAAAAAoc3kBAAAAAIDbeAEAAAAACAAAAAAAAABYc3kBAAAAAIjbeAEAAAAACAAAAAAAAADAJFsBAAAAAJDbeAEAAAAACAAAAAAAAAD9LAsBAAAAAKDbeAEAAAAACAAAAAAAAABgc3kBAAAAAKjbeAEAAAAACAAAAAAAAACg2ngBAAAAALDbeAEAAAAACAAAAAAAAAAoKVsBAAAAAMDbeAEAAAAACAAAAAAAAAAwKVsBAAAAAMjbeAEAAAAACAAAAAAAAAAQ23gBAAAAANDbeAEAAAAACAAAAAAAAAAQI1sBAAAAANjbeAEAAAAACAAAAAAAAABwc3kBAAAAAAjceAEAAAAACAAAAAAAAABQhGQBAAAAABDceAEAAAAACAAAAAAAAADAhGQBAAAAACDceAEAAAAACAAAAAAAAADAImUBAAAAACjceAEAAAAACAAAAAAAAADQImUBAAAAADDceAEAAAAACAAAAAAAAAAw52IBAAAAADjceAEAAAAACAAAAAAAAAAwGWIBAAAAAEDceAEAAAAACAAAAAAAAABwhWQBAAAAAEjceAEAAAAACAAAAAAAAABgkWQBAAAAAGDceAEAAAAACAAAAAAAAABghmQBAAAAAGjceAEAAAAACAAAAAAAAABQjWQBAAAAAHDceAEAAAAACAAAAAAAAACgiWQBAAAAAIDceAEAAAAACAAAAAAAAADgImUBAAAAAIjceAEAAAAACAAAAAAAAADgEmIBAAAAAJDceAEAAAAACAAAAAAAAABwi2QBAAAAAJjceAEAAAAACAAAAAAAAACwkGQBAAAAAKDceAEAAAAACAAAAAAAAACgjmQBAAAAALjceAEAAAAACAAAAAAAAAAwhWQBAAAAAMDceAEAAAAACAAAAAAAAABgkmQBAAAAANjceAEAAAAACAAAAAAAAAAgk2QBAAAAAODceAEAAAAACAAAAAAAAACQk2QBAAAAAPDceAEAAAAACAAAAAAAAADwImUBAAAAAPjceAEAAAAACAAAAAAAAAAAI2UBAAAAAADdeAEAAAAACAAAAAAAAAAw52IBAAAAAAjdeAEAAAAACAAAAAAAAAAwGWIBAAAAABDdeAEAAAAACAAAAAAAAABAlGQBAAAAABjdeAEAAAAACAAAAAAAAADQmmQBAAAAADDdeAEAAAAACAAAAAAAAABwlGQBAAAAADjdeAEAAAAACAAAAAAAAAAAmGQBAAAAAEDdeAEAAAAACAAAAAAAAADglmQBAAAAAFDdeAEAAAAACAAAAAAAAAAQI2UBAAAAAFjdeAEAAAAACAAAAAAAAADgEmIBAAAAAGDdeAEAAAAACAAAAAAAAACQl2QBAAAAAGjdeAEAAAAACAAAAAAAAADQmWQBAAAAAHDdeAEAAAAACAAAAAAAAABgmGQBAAAAAIjdeAEAAAAACAAAAAAAAAAAlGQBAAAAAJDdeAEAAAAACAAAAAAAAADQm2QBAAAAAKjdeAEAAAAACAAAAAAAAAAAnmQBAAAAALDdeAEAAAAACAAAAAAAAABwnmQBAAAAAMDdeAEAAAAACAAAAAAAAAAgI2UBAAAAAMjdeAEAAAAACAAAAAAAAAAwI2UBAAAAANDdeAEAAAAACAAAAAAAAAAw52IBAAAAANjdeAEAAAAACAAAAAAAAAAwGWIBAAAAAODdeAEAAAAACAAAAAAAAAAgn2QBAAAAAOjdeAEAAAAACAAAAAAAAAAgqmQBAAAAAADeeAEAAAAACAAAAAAAAADwn2QBAAAAAAjeeAEAAAAACAAAAAAAAAAwpmQBAAAAABDeeAEAAAAACAAAAAAAAAAgo2QBAAAAACDeeAEAAAAACAAAAAAAAABAI2UBAAAAACjeeAEAAAAACAAAAAAAAADgEmIBAAAAADDeeAEAAAAACAAAAAAAAABgpGQBAAAAADjeeAEAAAAACAAAAAAAAABwqWQBAAAAAEDeeAEAAAAACAAAAAAAAABwp2QBAAAAAFjeeAEAAAAACAAAAAAAAADgnmQBAAAAAGDeeAEAAAAACAAAAAAAAAAgq2QBAAAAAHjeeAEAAAAACAAAAAAAAAAgrWQBAAAAAIDeeAEAAAAACAAAAAAAAADwrWQBAAAAAJDeeAEAAAAACAAAAAAAAABQI2UBAAAAAJjeeAEAAAAACAAAAAAAAABgI2UBAAAAAKDeeAEAAAAACAAAAAAAAAAw52IBAAAAAKjeeAEAAAAACAAAAAAAAAAwGWIBAAAAALDeeAEAAAAACAAAAAAAAABQrmQBAAAAALjeeAEAAAAACAAAAAAAAABAtWQBAAAAANDeeAEAAAAACAAAAAAAAADArmQBAAAAANjeeAEAAAAACAAAAAAAAACAsWQBAAAAAODeeAEAAAAACAAAAAAAAABgsGQBAAAAAPDeeAEAAAAACAAAAAAAAABwI2UBAAAAAPjeeAEAAAAACAAAAAAAAADgEmIBAAAAAADfeAEAAAAACAAAAAAAAADQsGQBAAAAAAjfeAEAAAAACAAAAAAAAADgs2QBAAAAABDfeAEAAAAACAAAAAAAAAAQsmQBAAAAACjfeAEAAAAACAAAAAAAAAAQrmQBAAAAADDfeAEAAAAACAAAAAAAAAAQtmQBAAAAAEjfeAEAAAAACAAAAAAAAABwt2QBAAAAAFDfeAEAAAAACAAAAAAAAAAguGQBAAAAAGDfeAEAAAAACAAAAAAAAACAI2UBAAAAAGjfeAEAAAAACAAAAAAAAACQI2UBAAAAAHDfeAEAAAAACAAAAAAAAAAw52IBAAAAAHjfeAEAAAAACAAAAAAAAAAwGWIBAAAAAIDfeAEAAAAACAAAAAAAAACAuGQBAAAAAIjfeAEAAAAACAAAAAAAAADAv2QBAAAAAKDfeAEAAAAACAAAAAAAAADwuGQBAAAAAKjfeAEAAAAACAAAAAAAAACAvGQBAAAAALDfeAEAAAAACAAAAAAAAADgumQBAAAAAMDfeAEAAAAACAAAAAAAAACgI2UBAAAAAMjfeAEAAAAACAAAAAAAAADgEmIBAAAAANDfeAEAAAAACAAAAAAAAACQu2QBAAAAANjfeAEAAAAACAAAAAAAAABwvmQBAAAAAODfeAEAAAAACAAAAAAAAAAgvWQBAAAAAPjfeAEAAAAACAAAAAAAAABAuGQBAAAAAADgeAEAAAAACAAAAAAAAACAwGQBAAAAABjgeAEAAAAACAAAAAAAAABQwmQBAAAAACDgeAEAAAAACAAAAAAAAADAwmQBAAAAADDgeAEAAAAACAAAAAAAAACwI2UBAAAAADjgeAEAAAAACAAAAAAAAADAI2UBAAAAAEDgeAEAAAAACAAAAAAAAAAw52IBAAAAAEjgeAEAAAAACAAAAAAAAAAwGWIBAAAAAFDgeAEAAAAACAAAAAAAAABww2QBAAAAAFjgeAEAAAAACAAAAAAAAABQzWQBAAAAAHDgeAEAAAAACAAAAAAAAAAwxGQBAAAAAHjgeAEAAAAACAAAAAAAAADAyWQBAAAAAIDgeAEAAAAACAAAAAAAAAAwx2QBAAAAAJDgeAEAAAAACAAAAAAAAADQI2UBAAAAAJjgeAEAAAAACAAAAAAAAADgEmIBAAAAAKDgeAEAAAAACAAAAAAAAABQyGQBAAAAAKjgeAEAAAAACAAAAAAAAACgzGQBAAAAALDgeAEAAAAACAAAAAAAAADQymQBAAAAAMjgeAEAAAAACAAAAAAAAAAww2QBAAAAANDgeAEAAAAACAAAAAAAAABAzmQBAAAAAOjgeAEAAAAACAAAAAAAAACQ0GQBAAAAAPDgeAEAAAAACAAAAAAAAABw0WQBAAAAAADheAEAAAAACAAAAAAAAADgI2UBAAAAAAjheAEAAAAACAAAAAAAAADwI2UBAAAAABDheAEAAAAACAAAAAAAAAAw52IBAAAAABjheAEAAAAACAAAAAAAAAAwGWIBAAAAACDheAEAAAAACAAAAAAAAADQ0WQBAAAAACjheAEAAAAACAAAAAAAAACg2mQBAAAAAEDheAEAAAAACAAAAAAAAABg0mQBAAAAAEjheAEAAAAACAAAAAAAAAAg1mQBAAAAAFDheAEAAAAACAAAAAAAAACA1GQBAAAAAGDheAEAAAAACAAAAAAAAAAAJGUBAAAAAGjheAEAAAAACAAAAAAAAADgEmIBAAAAAHDheAEAAAAACAAAAAAAAAAQ1WQBAAAAAHjheAEAAAAACAAAAAAAAAAQ2WQBAAAAAIDheAEAAAAACAAAAAAAAADg1mQBAAAAAJjheAEAAAAACAAAAAAAAACQ0WQBAAAAAKDheAEAAAAACAAAAAAAAACQ22QBAAAAALjheAEAAAAACAAAAAAAAAAg3GQBAAAAAMDheAEAAAAACAAAAAAAAACQ3GQBAAAAANDheAEAAAAACAAAAAAAAAAQJGUBAAAAANjheAEAAAAACAAAAAAAAAAgJGUBAAAAAODheAEAAAAACAAAAAAAAAAw52IBAAAAAOjheAEAAAAACAAAAAAAAAAwGWIBAAAAAPDheAEAAAAACAAAAAAAAABA3WQBAAAAAPjheAEAAAAACAAAAAAAAADQ32QBAAAAABDieAEAAAAACAAAAAAAAABg3WQBAAAAABjieAEAAAAACAAAAAAAAAAg3mQBAAAAACDieAEAAAAACAAAAAAAAADg3WQBAAAAADDieAEAAAAACAAAAAAAAAAwJGUBAAAAADjieAEAAAAACAAAAAAAAADgEmIBAAAAAEDieAEAAAAACAAAAAAAAAAA3mQBAAAAAEjieAEAAAAACAAAAAAAAAAg32QBAAAAAFDieAEAAAAACAAAAAAAAABA3mQBAAAAAGjieAEAAAAACAAAAAAAAAAA3WQBAAAAAHDieAEAAAAACAAAAAAAAABw4GQBAAAAAIjieAEAAAAACAAAAAAAAAAA4mQBAAAAAJDieAEAAAAACAAAAAAAAADQ4mQBAAAAAKDieAEAAAAACAAAAAAAAABAJGUBAAAAAKjieAEAAAAACAAAAAAAAABQJGUBAAAAALDieAEAAAAACAAAAAAAAAAw52IBAAAAALjieAEAAAAACAAAAAAAAAAwGWIBAAAAAMDieAEAAAAACAAAAAAAAAAw42QBAAAAAMjieAEAAAAACAAAAAAAAACQ7GQBAAAAAODieAEAAAAACAAAAAAAAADA42QBAAAAAOjieAEAAAAACAAAAAAAAABw6GQBAAAAAPDieAEAAAAACAAAAAAAAAAg5mQBAAAAAADjeAEAAAAACAAAAAAAAABgJGUBAAAAAAjjeAEAAAAACAAAAAAAAADgEmIBAAAAABDjeAEAAAAACAAAAAAAAAAg52QBAAAAABjjeAEAAAAACAAAAAAAAADg6mQBAAAAACDjeAEAAAAACAAAAAAAAABQ6WQBAAAAADjjeAEAAAAACAAAAAAAAADw4mQBAAAAAEDjeAEAAAAACAAAAAAAAABw7WQBAAAAAFjjeAEAAAAACAAAAAAAAAAw7mQBAAAAAGDjeAEAAAAACAAAAAAAAACg7mQBAAAAAHDjeAEAAAAACAAAAAAAAABwJGUBAAAAAHjjeAEAAAAACAAAAAAAAACAJGUBAAAAAIDjeAEAAAAACAAAAAAAAAAw52IBAAAAAIjjeAEAAAAACAAAAAAAAAAwGWIBAAAAAJDjeAEAAAAACAAAAAAAAABQ72QBAAAAAJjjeAEAAAAACAAAAAAAAABQ9GQBAAAAALDjeAEAAAAACAAAAAAAAACA72QBAAAAALjjeAEAAAAACAAAAAAAAADQ8WQBAAAAAMDjeAEAAAAACAAAAAAAAADQ8GQBAAAAANDjeAEAAAAACAAAAAAAAACQJGUBAAAAANjjeAEAAAAACAAAAAAAAADgEmIBAAAAAODjeAEAAAAACAAAAAAAAAAw8WQBAAAAAOjjeAEAAAAACAAAAAAAAABw82QBAAAAAPDjeAEAAAAACAAAAAAAAABA8mQBAAAAAAjkeAEAAAAACAAAAAAAAAAQ72QBAAAAABDkeAEAAAAACAAAAAAAAAAQ9WQBAAAAACjkeAEAAAAACAAAAAAAAADA9WQBAAAAADDkeAEAAAAACAAAAAAAAAAw9mQBAAAAAEDkeAEAAAAACAAAAAAAAACgJGUBAAAAAEjkeAEAAAAACAAAAAAAAACwJGUBAAAAAFDkeAEAAAAACAAAAAAAAAAw52IBAAAAAFjkeAEAAAAACAAAAAAAAAAwGWIBAAAAAGDkeAEAAAAACAAAAAAAAADg9mQBAAAAAGjkeAEAAAAACAAAAAAAAAAg+2QBAAAAAIDkeAEAAAAACAAAAAAAAAAQ92QBAAAAAIjkeAEAAAAACAAAAAAAAADg+GQBAAAAAJDkeAEAAAAACAAAAAAAAAAw+GQBAAAAAKDkeAEAAAAACAAAAAAAAADAJGUBAAAAAKjkeAEAAAAACAAAAAAAAADgEmIBAAAAALDkeAEAAAAACAAAAAAAAACA+GQBAAAAALjkeAEAAAAACAAAAAAAAABQ+mQBAAAAAMDkeAEAAAAACAAAAAAAAAAw+WQBAAAAANjkeAEAAAAACAAAAAAAAACg9mQBAAAAAODkeAEAAAAACAAAAAAAAADQ+2QBAAAAAPjkeAEAAAAACAAAAAAAAACQ/GQBAAAAAADleAEAAAAACAAAAAAAAAAA/WQBAAAAABDleAEAAAAACAAAAAAAAADQJGUBAAAAABjleAEAAAAACAAAAAAAAADgJGUBAAAAACDleAEAAAAACAAAAAAAAAAw52IBAAAAACjleAEAAAAACAAAAAAAAAAwGWIBAAAAADDleAEAAAAACAAAAAAAAACw/WQBAAAAADjleAEAAAAACAAAAAAAAACwAmUBAAAAAFDleAEAAAAACAAAAAAAAADg/WQBAAAAAFjleAEAAAAACAAAAAAAAAAwAGUBAAAAAGDleAEAAAAACAAAAAAAAAAw/2QBAAAAAHDleAEAAAAACAAAAAAAAADwJGUBAAAAAHjleAEAAAAACAAAAAAAAADgEmIBAAAAAIDleAEAAAAACAAAAAAAAACQ/2QBAAAAAIjleAEAAAAACAAAAAAAAADQAWUBAAAAAJDleAEAAAAACAAAAAAAAACgAGUBAAAAAKjleAEAAAAACAAAAAAAAABw/WQBAAAAALDleAEAAAAACAAAAAAAAABwA2UBAAAAAMjleAEAAAAACAAAAAAAAADQBGUBAAAAANDleAEAAAAACAAAAAAAAACABWUBAAAAAODleAEAAAAACAAAAAAAAAAAJWUBAAAAAOjleAEAAAAACAAAAAAAAAAQJWUBAAAAAPDleAEAAAAACAAAAAAAAAAw52IBAAAAAPjleAEAAAAACAAAAAAAAAAwGWIBAAAAAADmeAEAAAAACAAAAAAAAADgBWUBAAAAAAjmeAEAAAAACAAAAAAAAAAQDWUBAAAAACDmeAEAAAAACAAAAAAAAABQBmUBAAAAACjmeAEAAAAACAAAAAAAAADQCWUBAAAAADDmeAEAAAAACAAAAAAAAAAwCGUBAAAAAEDmeAEAAAAACAAAAAAAAAAgJWUBAAAAAEjmeAEAAAAACAAAAAAAAADgEmIBAAAAAFDmeAEAAAAACAAAAAAAAADgCGUBAAAAAFjmeAEAAAAACAAAAAAAAADAC2UBAAAAAGDmeAEAAAAACAAAAAAAAABwCmUBAAAAAHjmeAEAAAAACAAAAAAAAACgBWUBAAAAAIDmeAEAAAAACAAAAAAAAADQDWUBAAAAAJjmeAEAAAAACAAAAAAAAADQD2UBAAAAAKDmeAEAAAAACAAAAAAAAACgEGUBAAAAALDmeAEAAAAACAAAAAAAAAAwJWUBAAAAALjmeAEAAAAACAAAAAAAAABAJWUBAAAAAMDmeAEAAAAACAAAAAAAAAAw52IBAAAAAMjmeAEAAAAACAAAAAAAAAAwGWIBAAAAANDmeAEAAAAACAAAAAAAAAAAEWUBAAAAANjmeAEAAAAACAAAAAAAAACwF2UBAAAAAPDmeAEAAAAACAAAAAAAAADgEWUBAAAAAPjmeAEAAAAACAAAAAAAAACgFGUBAAAAAADneAEAAAAACAAAAAAAAACAE2UBAAAAABDneAEAAAAACAAAAAAAAABQJWUBAAAAABjneAEAAAAACAAAAAAAAADgEmIBAAAAACDneAEAAAAACAAAAAAAAADwE2UBAAAAACjneAEAAAAACAAAAAAAAAAAF2UBAAAAADDneAEAAAAACAAAAAAAAAAwFWUBAAAAAEjneAEAAAAACAAAAAAAAADAEGUBAAAAAFDneAEAAAAACAAAAAAAAACAGGUBAAAAAHDneAEAAAAACAAAAAAAAACAX2UBAAAAAHjneAEAAAAACAAAAAAAAACwYmUBAAAAAIDneAEAAAAACAAAAAAAAAAgZGUBAAAAAIjneAEAAAAACAAAAAAAAADAZmUBAAAAAJDneAEAAAAACAAAAAAAAADgZ2UBAAAAAKDneAEAAAAACAAAAAAAAAAfIOIAAAAAALDneAEAAAAACAAAAAAAAABVmMYAAAAAAMDneAEAAAAACAAAAAAAAABw/xUAAAAAAODneAEAAAAACAAAAAAAAAAQXWYBAAAAAPDneAEAAAAACAAAAAAAAAAgXWYBAAAAAPjneAEAAAAACAAAAAAAAAAwXWYBAAAAAADoeAEAAAAACAAAAAAAAAAA1WUBAAAAAAjoeAEAAAAACAAAAAAAAAAg2mUBAAAAABjoeAEAAAAACAAAAAAAAAAA3GUBAAAAACDoeAEAAAAACAAAAAAAAACQ3GUBAAAAACjoeAEAAAAACAAAAAAAAABAXWYBAAAAADDoeAEAAAAACAAAAAAAAABQXWYBAAAAADjoeAEAAAAACAAAAAAAAABgXWYBAAAAAEDoeAEAAAAACAAAAAAAAABwXWYBAAAAAEjoeAEAAAAACAAAAAAAAACAXWYBAAAAAFDoeAEAAAAACAAAAAAAAACQXWYBAAAAAFjoeAEAAAAACAAAAAAAAACgXWYBAAAAAHjoeAEAAAAACAAAAAAAAAAw3WUBAAAAAIDoeAEAAAAACAAAAAAAAABg3WUBAAAAAIjoeAEAAAAACAAAAAAAAACg3WUBAAAAAJDoeAEAAAAACAAAAAAAAACgYWYBAAAAAJjoeAEAAAAACAAAAAAAAACwYWYBAAAAAKDoeAEAAAAACAAAAAAAAAAw4mUBAAAAAKjoeAEAAAAACAAAAAAAAADAYWYBAAAAALDoeAEAAAAACAAAAAAAAADQYWYBAAAAALjoeAEAAAAACAAAAAAAAADgYWYBAAAAAMDoeAEAAAAACAAAAAAAAABg5mUBAAAAAMjoeAEAAAAACAAAAAAAAADwYWYBAAAAANDoeAEAAAAACAAAAAAAAAAAYmYBAAAAANjoeAEAAAAACAAAAAAAAAAQYmYBAAAAAODoeAEAAAAACAAAAAAAAAAgYmYBAAAAAOjoeAEAAAAACAAAAAAAAAAwYmYBAAAAAPDoeAEAAAAACAAAAAAAAABAYmYBAAAAAPjoeAEAAAAACAAAAAAAAABQYmYBAAAAAADpeAEAAAAACAAAAAAAAABgYmYBAAAAAAjpeAEAAAAACAAAAAAAAABwYmYBAAAAABDpeAEAAAAACAAAAAAAAACAYmYBAAAAABjpeAEAAAAACAAAAAAAAACQYmYBAAAAACDpeAEAAAAACAAAAAAAAACgYmYBAAAAACjpeAEAAAAACAAAAAAAAACwYmYBAAAAADDpeAEAAAAACAAAAAAAAADAYmYBAAAAADjpeAEAAAAACAAAAAAAAADQYmYBAAAAAEDpeAEAAAAACAAAAAAAAADgYmYBAAAAAEjpeAEAAAAACAAAAAAAAADwYmYBAAAAAFDpeAEAAAAACAAAAAAAAAAAY2YBAAAAAFjpeAEAAAAACAAAAAAAAACg6GUBAAAAAGDpeAEAAAAACAAAAAAAAABw6mUBAAAAAGjpeAEAAAAACAAAAAAAAADA62UBAAAAAHDpeAEAAAAACAAAAAAAAABQ7WUBAAAAAIDpeAEAAAAACAAAAAAAAAAQY2YBAAAAAIjpeAEAAAAACAAAAAAAAACw7mUBAAAAAJDpeAEAAAAACAAAAAAAAABg8GUBAAAAAJjpeAEAAAAACAAAAAAAAAAQ8mUBAAAAAKDpeAEAAAAACAAAAAAAAAAgY2YBAAAAAKjpeAEAAAAACAAAAAAAAAAwY2YBAAAAALDpeAEAAAAACAAAAAAAAABg9GUBAAAAALjpeAEAAAAACAAAAAAAAABAY2YBAAAAAMDpeAEAAAAACAAAAAAAAABQY2YBAAAAAMjpeAEAAAAACAAAAAAAAABgY2YBAAAAANDpeAEAAAAACAAAAAAAAABwY2YBAAAAAPDpeAEAAAAACAAAAAAAAACw9mUBAAAAAPjpeAEAAAAACAAAAAAAAADQ9mUBAAAAAADqeAEAAAAACAAAAAAAAACAY2YBAAAAACDqeAEAAAAACAAAAAAAAADA92UBAAAAACjqeAEAAAAACAAAAAAAAADg92UBAAAAADDqeAEAAAAACAAAAAAAAACAY2YBAAAAAEjqeAEAAAAACAAAAAAAAADgeGYBAAAAAFDqeAEAAAAACAAAAAAAAABQLGYBAAAAAFjqeAEAAAAACAAAAAAAAABgLGYBAAAAAGDqeAEAAAAACAAAAAAAAACQLGYBAAAAAGjqeAEAAAAACAAAAAAAAACwLGYBAAAAAHDqeAEAAAAACAAAAAAAAADALGYBAAAAAHjqeAEAAAAACAAAAAAAAADQLGYBAAAAAJDqeAEAAAAACAAAAAAAAAAQQ2YBAAAAAJjqeAEAAAAACAAAAAAAAABQQ2YBAAAAAKDqeAEAAAAACAAAAAAAAACQQ2YBAAAAAKjqeAEAAAAACAAAAAAAAABARGYBAAAAALDqeAEAAAAACAAAAAAAAABARWYBAAAAALjqeAEAAAAACAAAAAAAAABgRWYBAAAAAMDqeAEAAAAACAAAAAAAAABwRWYBAAAAAPDqeAEAAAAACAAAAAAAAADweGYBAAAAAPjqeAEAAAAACAAAAAAAAAAQeWYBAAAAAADreAEAAAAACAAAAAAAAABAeWYBAAAAABDreAEAAAAACAAAAAAAAABQeWYBAAAAABjreAEAAAAACAAAAAAAAADIlFEBAAAAACDreAEAAAAACAAAAAAAAAAh/REBAAAAACjreAEAAAAACAAAAAAAAAAD1AoBAAAAADDreAEAAAAACAAAAAAAAAAbZh0AAAAAADjreAEAAAAACAAAAAAAAAAr7RgAAAAAAEDreAEAAAAACAAAAAAAAABGI8cAAAAAAEjreAEAAAAACAAAAAAAAAD437sAAAAAAFDreAEAAAAACAAAAAAAAAB1dxAAAAAAAFjreAEAAAAACAAAAAAAAADH2RIBAAAAAGDreAEAAAAACAAAAAAAAAA9/REBAAAAAGjreAEAAAAACAAAAAAAAABXXuQAAAAAAHDreAEAAAAACAAAAAAAAABt1xkBAAAAAHjreAEAAAAACAAAAAAAAAAamBsAAAAAAIDreAEAAAAACAAAAAAAAABX/REBAAAAAIjreAEAAAAACAAAAAAAAAAwZh0AAAAAAJDreAEAAAAACAAAAAAAAADFvlcBAAAAAJjreAEAAAAACAAAAAAAAABmBbwAAAAAAKDreAEAAAAACAAAAAAAAADqvlcBAAAAAKjreAEAAAAACAAAAAAAAAC4tOQAAAAAALDreAEAAAAACAAAAAAAAAAGSgUAAAAAALjreAEAAAAACAAAAAAAAAD0lFEBAAAAAMDreAEAAAAACAAAAAAAAAAp8uQAAAAAAMjreAEAAAAACAAAAAAAAADLhRYAAAAAANDreAEAAAAACAAAAAAAAABtH1YBAAAAANjreAEAAAAACAAAAAAAAACFIBsBAAAAAODreAEAAAAACAAAAAAAAABSfSoBAAAAAOjreAEAAAAACAAAAAAAAAAs1BYAAAAAAPDreAEAAAAACAAAAAAAAABK8uQAAAAAAPjreAEAAAAACAAAAAAAAAAg5woBAAAAAADseAEAAAAACAAAAAAAAADtJ/0AAAAAAAjseAEAAAAACAAAAAAAAAAxoRsBAAAAABDseAEAAAAACAAAAAAAAABpNRkAAAAAABjseAEAAAAACAAAAAAAAABr/REBAAAAACDseAEAAAAACAAAAAAAAAAJv1cBAAAAACjseAEAAAAACAAAAAAAAAAaSgUAAAAAADDseAEAAAAACAAAAAAAAAB+NRkAAAAAADjseAEAAAAACAAAAAAAAABlUwUAAAAAAEDseAEAAAAACAAAAAAAAABh8uQAAAAAAEjseAEAAAAACAAAAAAAAAD22A8AAAAAAFDseAEAAAAACAAAAAAAAACh9g8AAAAAAFjseAEAAAAACAAAAAAAAACP1xkBAAAAAGDseAEAAAAACAAAAAAAAAB66goBAAAAAGjseAEAAAAACAAAAAAAAACG6goBAAAAAHDseAEAAAAACAAAAAAAAAClJuQAAAAAAHjseAEAAAAACAAAAAAAAACVdxAAAAAAAIDseAEAAAAACAAAAAAAAAArph0AAAAAAIjseAEAAAAACAAAAAAAAAAVv1cBAAAAAJDseAEAAAAACAAAAAAAAAB4BRIBAAAAAJjseAEAAAAACAAAAAAAAABmI8cAAAAAAKDseAEAAAAACAAAAAAAAAD2VA8BAAAAAKjseAEAAAAACAAAAAAAAAARpscAAAAAALDseAEAAAAACAAAAAAAAACEvBMBAAAAALjseAEAAAAACAAAAAAAAACU4RYAAAAAAMDseAEAAAAACAAAAAAAAAC31xoAAAAAAMjseAEAAAAACAAAAAAAAABt8uQAAAAAANDseAEAAAAACAAAAAAAAABwfSoBAAAAANjseAEAAAAACAAAAAAAAAB7fSoBAAAAAODseAEAAAAACAAAAAAAAAABVQ8BAAAAAOjseAEAAAAACAAAAAAAAADnvscAAAAAAPDseAEAAAAACAAAAAAAAABNMgIAAAAAAPjseAEAAAAACAAAAAAAAACAH1YBAAAAAADteAEAAAAACAAAAAAAAACAUh0AAAAAAAjteAEAAAAACAAAAAAAAACCBRIBAAAAABDteAEAAAAACAAAAAAAAAAG7xsAAAAAABjteAEAAAAACAAAAAAAAADHtRsBAAAAACDteAEAAAAACAAAAAAAAAA2ph0AAAAAACjteAEAAAAACAAAAAAAAABbXVEBAAAAADDteAEAAAAACAAAAAAAAAALVQ8BAAAAADjteAEAAAAACAAAAAAAAACINRkAAAAAAEDteAEAAAAACAAAAAAAAABfrPwAAAAAAEjteAEAAAAACAAAAAAAAACR3xsBAAAAAFDteAEAAAAACAAAAAAAAAC42BAAAAAAAFjteAEAAAAACAAAAAAAAADGJhoBAAAAAGDteAEAAAAACAAAAAAAAACSfQ8BAAAAAGjteAEAAAAACAAAAAAAAAB8JrwAAAAAAHDteAEAAAAACAAAAAAAAAAZ7xsAAAAAAHjteAEAAAAACAAAAAAAAADQVbwAAAAAAIDteAEAAAAACAAAAAAAAACn/xUAAAAAAIjteAEAAAAACAAAAAAAAAASTsIAAAAAAJDteAEAAAAACAAAAAAAAABLph0AAAAAAJjteAEAAAAACAAAAAAAAACddyAAAAAAAKDteAEAAAAACAAAAAAAAABtmMYAAAAAAKjteAEAAAAACAAAAAAAAABzJRcAAAAAALDteAEAAAAACAAAAAAAAAA6wVcBAAAAALjteAEAAAAACAAAAAAAAACCmMYAAAAAAMDteAEAAAAACAAAAAAAAABPvcQAAAAAAMjteAEAAAAACAAAAAAAAAC6/xUAAAAAANDteAEAAAAACAAAAAAAAABjLQsBAAAAANjteAEAAAAACAAAAAAAAACdqsYAAAAAAODteAEAAAAACAAAAAAAAABeph0AAAAAAOjteAEAAAAACAAAAAAAAABXMgIAAAAAAPDteAEAAAAACAAAAAAAAAAI8BsBAAAAAPjteAEAAAAACAAAAAAAAACMIOIAAAAAAADueAEAAAAACAAAAAAAAAAzNxcAAAAAAAjueAEAAAAACAAAAAAAAABwrPwAAAAAABDueAEAAAAACAAAAAAAAADMIlYBAAAAABjueAEAAAAACAAAAAAAAAAUaOIAAAAAACDueAEAAAAACAAAAAAAAACNUh0AAAAAACjueAEAAAAACAAAAAAAAADfIlYBAAAAADDueAEAAAAACAAAAAAAAACgUh0AAAAAADjueAEAAAAACAAAAAAAAABM/lEBAAAAAEDueAEAAAAACAAAAAAAAADB1xoAAAAAAEjueAEAAAAACAAAAAAAAABKNxcAAAAAAFDueAEAAAAACAAAAAAAAAAcVQ8BAAAAAFjueAEAAAAACAAAAAAAAADJ2BAAAAAAAGDueAEAAAAACAAAAAAAAACCQVYBAAAAAGjueAEAAAAACAAAAAAAAACjfQ8BAAAAAHDueAEAAAAACAAAAAAAAAD+ZlEBAAAAAHjueAEAAAAACAAAAAAAAABzph0AAAAAAIDueAEAAAAACAAAAAAAAAAtVQ8BAAAAAIjueAEAAAAACAAAAAAAAABoNBYAAAAAAJDueAEAAAAACAAAAAAAAAD4iBgAAAAAAJjueAEAAAAACAAAAAAAAACQYhoAAAAAAKDueAEAAAAACAAAAAAAAACt9g8AAAAAAKjueAEAAAAACAAAAAAAAABwBAkBAAAAALDueAEAAAAACAAAAAAAAAD/J/0AAAAAALjueAEAAAAACAAAAAAAAAAz8d8AAAAAAMDueAEAAAAACAAAAAAAAACwJuQAAAAAAMjueAEAAAAACAAAAAAAAABevfwAAAAAANDueAEAAAAACAAAAAAAAAAv+d8AAAAAANjueAEAAAAACAAAAAAAAAD0t1IBAAAAAODueAEAAAAACAAAAAAAAACH5A8BAAAAAOjueAEAAAAACAAAAAAAAAB+ucYAAAAAAPDueAEAAAAACAAAAAAAAAAPEAkBAAAAAPjueAEAAAAACAAAAAAAAABLwVcBAAAAAADveAEAAAAACAAAAAAAAABjvcQAAAAAAAjveAEAAAAACAAAAAAAAAAx48YAAAAAABDveAEAAAAACAAAAAAAAADKnhIBAAAAABjveAEAAAAACAAAAAAAAADKJuQAAAAAACDveAEAAAAACAAAAAAAAADHvlUBAAAAACjveAEAAAAACAAAAAAAAADI9g8AAAAAADDveAEAAAAACAAAAAAAAACX5A8BAAAAADjveAEAAAAACAAAAAAAAADW1xoAAAAAAEDveAEAAAAACAAAAAAAAAAXKP0AAAAAAEjveAEAAAAACAAAAAAAAACwKeQAAAAAAFDveAEAAAAACAAAAAAAAACYQVYBAAAAAFjveAEAAAAACAAAAAAAAADA/A8AAAAAAGDveAEAAAAACAAAAAAAAAB2LQsBAAAAAGjveAEAAAAACAAAAAAAAAALiRgAAAAAAHDveAEAAAAACAAAAAAAAACrQVYBAAAAAHjveAEAAAAACAAAAAAAAAAp7xsAAAAAAIDveAEAAAAACAAAAAAAAACDLQsBAAAAAIjveAEAAAAACAAAAAAAAAAeABAAAAAAAJDveAEAAAAACAAAAAAAAACv8xsAAAAAAJjveAEAAAAACAAAAAAAAAAbTgIAAAAAAKDveAEAAAAACAAAAAAAAACRgSAAAAAAAKjveAEAAAAACAAAAAAAAABKVQ8BAAAAALDveAEAAAAACAAAAAAAAACdyvwAAAAAALjveAEAAAAACAAAAAAAAAAcEAkBAAAAAMDveAEAAAAACAAAAAAAAADZjRgAAAAAAMjveAEAAAAACAAAAAAAAACqyvwAAAAAANDveAEAAAAACAAAAAAAAADVnhIBAAAAANjveAEAAAAACAAAAAAAAADg3PwAAAAAAODveAEAAAAACAAAAAAAAAD54hoAAAAAAOjveAEAAAAACAAAAAAAAAAoKP0AAAAAAPDveAEAAAAACAAAAAAAAAATZ1EBAAAAAPjveAEAAAAACAAAAAAAAABo7goBAAAAAADweAEAAAAACAAAAAAAAAAEYQ8BAAAAAAjweAEAAAAACAAAAAAAAABWIQUAAAAAABDweAEAAAAACAAAAAAAAACeJQkBAAAAABjweAEAAAAACAAAAAAAAACggSAAAAAAACDweAEAAAAACAAAAAAAAABvvcQAAAAAACjweAEAAAAACAAAAAAAAAB9Q/0AAAAAADDweAEAAAAACAAAAAAAAAAF4xoAAAAAADjweAEAAAAACAAAAAAAAACj5A8BAAAAAEDweAEAAAAACAAAAAAAAADNvlUBAAAAAEjweAEAAAAACAAAAAAAAAAd8BsBAAAAAFDweAEAAAAACAAAAAAAAADKERsBAAAAAFjweAEAAAAACAAAAAAAAAC6QVYBAAAAAGDweAEAAAAACAAAAAAAAAB58hEBAAAAAGjweAEAAAAACAAAAAAAAAA7+d8AAAAAAHDweAEAAAAACAAAAAAAAADinhIBAAAAAHjweAEAAAAACAAAAAAAAABOylcBAAAAAIDweAEAAAAACAAAAAAAAAAvRhYAAAAAAIjweAEAAAAACAAAAAAAAACLLQsBAAAAAJDweAEAAAAACAAAAAAAAADhjRgAAAAAAJjweAEAAAAACAAAAAAAAADtjRgAAAAAAKDweAEAAAAACAAAAAAAAADCXQ8BAAAAAKjweAEAAAAACAAAAAAAAADk2h0AAAAAALDweAEAAAAACAAAAAAAAACaXwsBAAAAALjweAEAAAAACAAAAAAAAACz+QoBAAAAAMDweAEAAAAACAAAAAAAAAClXwsBAAAAAMjweAEAAAAACAAAAAAAAABA2hgAAAAAANDweAEAAAAACAAAAAAAAACP9RsBAAAAANjweAEAAAAACAAAAAAAAADhTh4AAAAAAODweAEAAAAACAAAAAAAAACcKhAAAAAAAOjweAEAAAAACAAAAAAAAAC78xsAAAAAAPDweAEAAAAACAAAAAAAAACY9RsBAAAAAPjweAEAAAAACAAAAAAAAACzUh0AAAAAAADxeAEAAAAACAAAAAAAAABoLuQAAAAAAAjxeAEAAAAACAAAAAAAAABFHeAAAAAAABDxeAEAAAAACAAAAAAAAAAZIuQAAAAAABjxeAEAAAAACAAAAAAAAAD/vyAAAAAAACDxeAEAAAAACAAAAAAAAAC1XwsBAAAAACjxeAEAAAAA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AAAAANgBeQEAAAAACAAAAAAAAAAQAnkBAAAAAOABeQEAAAAACAAAAAAAAADgbWsBAAAAAOgBeQEAAAAACAAAAAAAAAAgdmsBAAAAAPABeQEAAAAACAAAAAAAAACQdmsBAAAAAPgBeQEAAAAACAAAAAAAAADgzWkBAAAAAAACeQEAAAAACAAAAAAAAABwzWkBAAAAAAgCeQEAAAAACAAAAAAAAACwd2sBAAAAABgCeQEAAAAACAAAAAAAAADiWlsBAAAAACACeQEAAAAACAAAAAAAAADI+HgBAAAAADACeQEAAAAACAAAAAAAAABoAnkBAAAAADgCeQEAAAAACAAAAAAAAACwnGsBAAAAAEACeQEAAAAACAAAAAAAAAAAnGsBAAAAAEgCeQEAAAAACAAAAAAAAABQnGsBAAAAAFACeQEAAAAACAAAAAAAAABwhWsBAAAAAFgCeQEAAAAACAAAAAAAAADAg2sBAAAAAGACeQEAAAAACAAAAAAAAADQg2sBAAAAAHACeQEAAAAACAAAAAAAAAAAXFsBAAAAAHgCeQEAAAAACAAAAAAAAADYAnkBAAAAAIgCeQEAAAAACAAAAAAAAADAAnkBAAAAAJACeQEAAAAACAAAAAAAAACwnGsBAAAAAJgCeQEAAAAACAAAAAAAAABgnGsBAAAAAKACeQEAAAAACAAAAAAAAAAQkWsBAAAAAKgCeQEAAAAACAAAAAAAAAAwkWsBAAAAALACeQEAAAAACAAAAAAAAABgj2sBAAAAALgCeQEAAAAACAAAAAAAAABwj2sBAAAAAMgCeQEAAAAACAAAAAAAAAAXXFsBAAAAANACeQEAAAAACAAAAAAAAADYAnkBAAAAAOACeQEAAAAACAAAAAAAAAAuXFsBAAAAAPACeQEAAAAACAAAAAAAAADYAnkBAAAAAPgCeQEAAAAACAAAAAAAAACwnGsBAAAAAAADeQEAAAAACAAAAAAAAADwnGsBAAAAAAgDeQEAAAAACAAAAAAAAABQnGsBAAAAABADeQEAAAAACAAAAAAAAAAAnWsBAAAAABgDeQEAAAAACAAAAAAAAAAQnWsBAAAAADADeQEAAAAACAAAAAAAAABoA3kBAAAAADgDeQEAAAAACAAAAAAAAADgzGkBAAAAAEADeQEAAAAACAAAAAAAAADAwWsBAAAAAEgDeQEAAAAA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CAAAAAAAAAABlsYAAAAAAKgreQEAAAAACAAAAAAAAAA0KgsBAAAAALgreQEAAAAACAAAAAAAAADFeQ8BAAAAAMAreQEAAAAACAAAAAAAAAD3JP0AAAAAANAreQEAAAAACAAAAAAAAACk+xEBAAAAANgreQEAAAAACAAAAAAAAAAlIOIAAAAAAOgreQEAAAAACAAAAAAAAAD9dBAAAAAAAPAreQEAAAAACAAAAAAAAAB6eA8BAAAAAAAseQEAAAAACAAAAAAAAABwI+QAAAAAAAgseQEAAAAACAAAAAAAAABjSAUAAAAAABgseQEAAAAACAAAAAAAAAC0HeIAAAAAACAseQEAAAAACAAAAAAAAAAoIOIAAAAAADAseQEAAAAACAAAAAAAAADpdSAAAAAAADgseQEAAAAACAAAAAAAAACn+xEBAAAAAEgseQEAAAAACAAAAAAAAADplhsAAAAAAFAseQEAAAAACAAAAAAAAACncxAAAAAAAGAseQEAAAAACAAAAAAAAAA/0QoBAAAAAGgseQEAAAAACAAAAAAAAAC3HeIAAAAAAHgseQEAAAAACAAAAAAAAADG6xgAAAAAAIAseQEAAAAACAAAAAAAAAAH1hkBAAAAAJAseQEAAAAACAAAAAAAAAAgXeQAAAAAAJgseQEAAAAACAAAAAAAAACvAgkBAAAAAKgseQEAAAAACAAAAAAAAABa/RUAAAAAALAseQEAAAAACAAAAAAAAABlSAUAAAAAAMAseQEAAAAACAAAAAAAAABoSAUAAAAAAMgseQEAAAAACAAAAAAAAADgklEBAAAAANgseQEAAAAACAAAAAAAAADjklEBAAAAAOAseQEAAAAACAAAAAAAAABD3LsAAAAAAPAseQEAAAAACAAAAAAAAABC0QoBAAAAAPgseQEAAAAACAAAAAAAAAAElsYAAAAAAAgteQEAAAAACAAAAAAAAAAAt1cBAAAAABAteQEAAAAACAAAAAAAAABrUw8BAAAAACAteQEAAAAACAAAAAAAAABkZB0AAAAAACgteQEAAAAACAAAAAAAAAD0HFYBAAAAADgteQEAAAAACAAAAAAAAAB0ZB0AAAAAAEAteQEAAAAACAAAAAAAAAADt1cBAAAAAFAteQEAAAAACAAAAAAAAAC+1hoAAAAAAFgteQEAAAAACAAAAAAAAAB3lcYAAAAAAGgteQEAAAAACAAAAAAAAABL3bsAAAAAAHAteQEAAAAACAAAAAAAAABi1xIBAAAAAIAteQEAAAAACAAAAAAAAABbAwkBAAAAAIgteQEAAAAACAAAAAAAAABi1xIBAAAAALAteQEAAAAACAAAAAAAAAAAdRAAAAAAALgteQEAAAAACAAAAAAAAAA7IBsBAAAAAMgteQEAAAAACAAAAAAAAACq+xEBAAAAANAteQEAAAAACAAAAAAAAAD3HFYBAAAAAOAteQEAAAAACAAAAAAAAAAK1hkBAAAAAOgteQEAAAAACAAAAAAAAADVeioBAAAAAPgteQEAAAAACAAAAAAAAAANXw8BAAAAAAAueQEAAAAACAAAAAAAAABzI+QAAAAAABAueQEAAAAACAAAAAAAAABd/RUAAAAAABgueQEAAAAACAAAAAAAAAD7JP0AAAAAACgueQEAAAAACAAAAAAAAACEJP0AAAAAADAueQEAAAAACAAAAAAAAAB6I+QAAAAAAEAueQEAAAAACAAAAAAAAADJ6xgAAAAAAEgueQEAAAAACAAAAAAAAABuUw8BAAAAAHAueQEAAAAACAAAAAAAAABwLnkBAAAAAIAueQEAAAAACAAAAAAAAACgLnkBAAAAAIgueQEAAAAACAAAAAAAAACg0WwBAAAAAJAueQEAAAAACAAAAAAAAADg0WwBAAAAAJgueQEAAAAACAAAAAAAAABAzGwBAAAAAKgueQEAAAAACAAAAAAAAADA5lsBAAAAAMAueQEAAAAACAAAAAAAAADYLnkBAAAAAMgueQEAAAAACAAAAAAAAAAALm4BAAAAANAueQEAAAAACAAAAAAAAABQLm4BAAAAAOAueQEAAAAACAAAAAAAAACs8lsBAAAAAOgueQEAAAAACAAAAAAAAAAQL3kBAAAAAPgueQEAAAAACAAAAAAAAAAQL3kBAAAAAAAveQEAAAAACAAAAAAAAADAOW4BAAAAAAgveQEAAAAACAAAAAAAAABQO24BAAAAABgveQEAAAAACAAAAAAAAADb8lsBAAAAACgveQEAAAAACAAAAAAAAAC5AwkBAAAAADgveQEAAAAACAAAAAAAAAATlxsAAAAAAEgveQEAAAAACAAAAAAAAAAz0goBAAAAAFgveQEAAAAACAAAAAAAAABN1hkBAAAAAGgveQEAAAAACAAAAAAAAABM0goBAAAAAHgveQEAAAAACAAAAAAAAAAp2BIBAAAAAIgveQEAAAAACAAAAAAAAACOJf0AAAAAAJgveQEAAAAACAAAAAAAAADLSAUAAAAAAKgveQEAAAAACAAAAAAAAACXKwsBAAAAALgveQEAAAAACAAAAAAAAACUHuIAAAAAAMgveQEAAAAACAAAAAAAAAAXHccAAAAAANgveQEAAAAACAAAAAAAAACfKwsBAAAAAOgveQEAAAAACAAAAAAAAAAe1xoAAAAAAPgveQEAAAAACAAAAAAAAAA52BIBAAAAAAAweQEAAAAACAAAAAAAAAA3diAAAAAAACAweQEAAAAACAAAAAAAAACvUR0AAAAAAEAweQEAAAAACAAAAAAAAABH2BIBAAAAAGAweQEAAAAACAAAAAAAAAAFUR0AAAAAAIgweQEAAAAACAAAAAAAAADQMHkBAAAAAJAweQEAAAAACAAAAAAAAACQNHABAAAAAJgweQEAAAAACAAAAAAAAACgNHABAAAAANgweQEAAAAACAAAAAAAAADBL1wBAAAAAOgweQEAAAAACAAAAAAAAAAwMXkBAAAAAPAweQEAAAAACAAAAAAAAABwhXABAAAAAPgweQEAAAAACAAAAAAAAADwhXABAAAAAAAxeQEAAAAACAAAAAAAAADwUXABAAAAAAgxeQEAAAAACAAAAAAAAABQVnABAAAAABAxeQEAAAAACAAAAAAAAABQaHABAAAAABgxeQEAAAAACAAAAAAAAADgaXABAAAAACAxeQEAAAAACAAAAAAAAADAZXABAAAAACgxeQEAAAAACAAAAAAAAADgZXABAAAAADgxeQEAAAAACAAAAAAAAABgMFwBAAAAAEAxeQEAAAAACAAAAAAAAADQMHkBAAAAAFAxeQEAAAAACAAAAAAAAACgMXkBAAAAAFgxeQEAAAAACAAAAAAAAADwkHABAAAAAGAxeQEAAAAACAAAAAAAAADQa3ABAAAAAGgxeQEAAAAACAAAAAAAAADga3ABAAAAAHAxeQEAAAAACAAAAAAAAAAAbHABAAAAAHgxeQEAAAAACAAAAAAAAAAQbHABAAAAAIAxeQEAAAAACAAAAAAAAAAgbHABAAAAAIgxeQEAAAAACAAAAAAAAAAwbHABAAAAAJAxeQEAAAAACAAAAAAAAACwd3ABAAAAAJgxeQEAAAAACAAAAAAAAADQd3ABAAAAAKgxeQEAAAAACAAAAAAAAABYMVwBAAAAALAxeQEAAAAACAAAAAAAAADQMnkBAAAAAMAxeQEAAAAACAAAAAAAAADwMXkBAAAAAMgxeQEAAAAACAAAAAAAAADgd3ABAAAAANAxeQEAAAAACAAAAAAAAAAQeHABAAAAANgxeQEAAAAACAAAAAAAAABQeHABAAAAAOAxeQEAAAAACAAAAAAAAACAeHABAAAAAOgxeQEAAAAACAAAAAAAAADAeHABAAAAAPgxeQEAAAAACAAAAAAAAABDMlwBAAAAAAAyeQEAAAAACAAAAAAAAACINHkBAAAAABAyeQEAAAAACAAAAAAAAABAMnkBAAAAABgyeQEAAAAACAAAAAAAAADgeHABAAAAACAyeQEAAAAACAAAAAAAAAAweXABAAAAACgyeQEAAAAACAAAAAAAAABQeHABAAAAADAyeQEAAAAACAAAAAAAAACAeHABAAAAADgyeQEAAAAACAAAAAAAAACAeXABAAAAAEgyeQEAAAAACAAAAAAAAACPMlwBAAAAAFAyeQEAAAAACAAAAAAAAADwMXkBAAAAAFgyeQEAAAAACAAAAAAAAAB3k1EBAAAAAGAyeQEAAAAACAAAAAAAAACDlsYAAAAAAGgyeQEAAAAACAAAAAAAAAAN3rsAAAAAAHgyeQEAAAAACAAAAAAAAACoMnkBAAAAAIAyeQEAAAAACAAAAAAAAACgeXABAAAAAIgyeQEAAAAACAAAAAAAAADweXABAAAAAJAyeQEAAAAACAAAAAAAAABQeHABAAAAAJgyeQEAAAAACAAAAAAAAACAeHABAAAAAKAyeQEAAAAACAAAAAAAAABAenABAAAAALAyeQEAAAAACAAAAAAAAADeMlwBAAAAALgyeQEAAAAACAAAAAAAAADwMXkBAAAAAMgyeQEAAAAACAAAAAAAAAAtM1wBAAAAANgyeQEAAAAACAAAAAAAAACyM1wBAAAAAPAyeQEAAAAACAAAAAAAAACgM3kBAAAAAPgyeQEAAAAACAAAAAAAAAAAkXABAAAAAAAzeQEAAAAACAAAAAAAAABgknABAAAAABgzeQEAAAAACAAAAAAAAACgM3kBAAAAACAzeQEAAAAACAAAAAAAAADAknABAAAAACgzeQEAAAAACAAAAAAAAAAwk3ABAAAAADAzeQEAAAAACAAAAAAAAAD4MnkBAAAAADgzeQEAAAAACAAAAAAAAABoM3kBAAAAAEAzeQEAAAAACAAAAAAAAACQM3kBAAAAAEgzeQEAAAAACAAAAAAAAAAgM3kBAAAAAKgzeQEAAAAACAAAAAAAAAByNFwBAAAAAMAzeQEAAAAACAAAAAAAAAA4NHkBAAAAAMgzeQEAAAAACAAAAAAAAACgk3ABAAAAANAzeQEAAAAACAAAAAAAAAAwlHABAAAAANgzeQEAAAAACAAAAAAAAABQlHABAAAAAOAzeQEAAAAACAAAAAAAAABAlXABAAAAAOgzeQEAAAAACAAAAAAAAABQlnABAAAAAPAzeQEAAAAACAAAAAAAAAAAl3ABAAAAAPgzeQEAAAAACAAAAAAAAABgl3ABAAAAABA0eQEAAAAACAAAAAAAAACgmXABAAAAACA0eQEAAAAACAAAAAAAAAAwnHABAAAAADA0eQEAAAAACAAAAAAAAACAnHABAAAAAEA0eQEAAAAACAAAAAAAAACiNFwBAAAAAFg0eQEAAAAACAAAAAAAAACINHkBAAAAAGA0eQEAAAAACAAAAAAAAADgrnABAAAAAGg0eQEAAAAACAAAAAAAAADwrnABAAAAAIA0eQEAAAAACAAAAAAAAAAAr3ABAAAAAJA0eQEAAAAACAAAAAAAAADnNFwBAAAAAKA0eQEAAAAACAAAAAAAAADoNHkBAAAAAKg0eQEAAAAACAAAAAAAAACQNHABAAAAALA0eQEAAAAACAAAAAAAAACAuXABAAAAALg0eQEAAAAACAAAAAAAAACwr3ABAAAAAMA0eQEAAAAACAAAAAAAAABQsXABAAAAAMg0eQEAAAAACAAAAAAAAABwuHABAAAAANA0eQEAAAAACAAAAAAAAACAuHABAAAAANg0eQEAAAAACAAAAAAAAACQuHABAAAAAOA0eQEAAAAACAAAAAAAAACwuHABAAAAAPA0eQEAAAAACAAAAAAAAAAwNVwBAAAAAPg0eQEAAAAACAAAAAAAAADQMHkBAAAAAAA1eQEAAAAACAAAAAAAAAB8ZR0AAAAAAAg1eQEAAAAACAAAAAAAAABp1xoAAAAAABA1eQEAAAAACAAAAAAAAABUdhAAAAAAABg1eQEAAAAACAAAAAAAAAAr/hUAAAAAACA1eQEAAAAACAAAAAAAAACU2BIBAAAAADA1eQEAAAAACAAAAAAAAAC8diAAAAAAADg1eQEAAAAACAAAAAAAAAA5/hUAAAAAAEA1eQEAAAAACAAAAAAAAABfSQUAAAAAAEg1eQEAAAAACAAAAAAAAAA67BgAAAAAAFA1eQEAAAAACAAAAAAAAADHDlsBAAAAAFg1eQEAAAAACAAAAAAAAABWH+IAAAAAAGA1eQEAAAAACAAAAAAAAACk2BIBAAAAAGg1eQEAAAAACAAAAAAAAAD/Jv0AAAAAAHA1eQEAAAAACAAAAAAAAADw1hkBAAAAAHg1eQEAAAAACAAAAAAAAAC2JOQAAAAAAIA1eQEAAAAACAAAAAAAAADbXeQAAAAAAIg1eQEAAAAACAAAAAAAAADDJOQAAAAAAJA1eQEAAAAACAAAAAAAAAA23rsAAAAAAJg1eQEAAAAACAAAAAAAAABJ/hUAAAAAAKA1eQEAAAAACAAAAAAAAADeJOQAAAAAAKg1eQEAAAAACAAAAAAAAABO3rsAAAAAALA1eQEAAAAACAAAAAAAAABidhAAAAAAALg1eQEAAAAACAAAAAAAAAAeuFcBAAAAAMA1eQEAAAAACAAAAAAAAADUDlsBAAAAAMg1eQEAAAAACAAAAAAAAABl/hUAAAAAANA1eQEAAAAACAAAAAAAAAD4JOQAAAAAANg1eQEAAAAACAAAAAAAAADjDlsBAAAAAOA1eQEAAAAACAAAAAAAAABl/BEBAAAAAOg1eQEAAAAACAAAAAAAAAAJJeQAAAAAAPA1eQEAAAAACAAAAAAAAAAkhRYAAAAAAPg1eQEAAAAACAAAAAAAAABm3rsAAAAAAAA2eQEAAAAACAAAAAAAAAAXJeQAAAAAAAg2eQEAAAAACAAAAAAAAABuH+IAAAAAABA2eQEAAAAACAAAAAAAAAAwhRYAAAAAABg2eQEAAAAACAAAAAAAAAA7Uh0AAAAAACA2eQEAAAAACAAAAAAAAADQdiAAAAAAACg2eQEAAAAACAAAAAAAAAAWJ/0AAAAAADA2eQEAAAAACAAAAAAAAAD7DlsBAAAAADg2eQEAAAAACAAAAAAAAABvdhAAAAAAAEA2eQEAAAAACAAAAAAAAABg2WIBAAAAAEg2eQEAAAAACAAAAAAAAACQ52IBAAAAAFA2eQEAAAAACAAAAAAAAABw8GMBAAAAAFg2eQEAAAAACAAAAAAAAACgMmQBAAAAAGA2eQEAAAAACAAAAAAAAADAWGQBAAAAAGg2eQEAAAAACAAAAAAAAADAe2QBAAAAAHA2eQEAAAAACAAAAAAAAABwJmUBAAAAAHg2eQEAAAAACAAAAAAAAACAQngBAAAAANA4eQEAAAAACAAAAAAAAAAwe3gBAAAAANg4eQEAAAAACAAAAAAAAACgengBAAAAAOA4eQEAAAAACAAAAAAAAABQemYBAAAAAFg5eQEAAAAACAAAAAAAAAAAXVsBAAAAAGA5eQEAAAAACAAAAAAAAACAz2sBAAAAAGg5eQEAAAAACAAAAAAAAACAFGwBAAAAAHA5eQEAAAAACAAAAAAAAADU5FsBAAAAAHg5eQEAAAAACAAAAAAAAACgyWwBAAAAALA5eQEAAAAACAAAAAAAAACQelwBAAAAAIhWeQEAAAAACAAAAAAAAACIVnkBAAAAAJhWeQEAAAAACAAAAAAAAADw8WABAAAAAKBWeQEAAAAACAAAAAAAAADAVnkBAAAAALBWeQEAAAAACAAAAAAAAACA8mABAAAAALhWeQEAAAAACAAAAAAAAAAQV3kBAAAAAMhWeQEAAAAACAAAAAAAAAAg82ABAAAAAOBWeQEAAAAACAAAAAAAAACg82ABAAAAAPhWeQEAAAAACAAAAAAAAAAg9GABAAAAAABXeQEAAAAACAAAAAAAAAAQV3kBAAAAAAhXeQEAAAAACAAAAAAAAACAV3kBAAAAABhXeQEAAAAACAAAAAAAAACw9GABAAAAACBXeQEAAAAACAAAAAAAAACYW3kBAAAAAChXeQEAAAAACAAAAAAAAABYV3kBAAAAADBXeQEAAAAACAAAAAAAAABAV3kBAAAAAEhXeQEAAAAACAAAAAAAAACQ9WABAAAAAGBXeQEAAAAACAAAAAAAAAAQ9mABAAAAAGhXeQEAAAAACAAAAAAAAACYW3kBAAAAAHBXeQEAAAAACAAAAAAAAACYV3kBAAAAAIhXeQEAAAAACAAAAAAAAACw9mABAAAAAJBXeQEAAAAACAAAAAAAAACYV3kBAAAAAKBXeQEAAAAACAAAAAAAAABQ92ABAAAAALhXeQEAAAAACAAAAAAAAADQ92ABAAAAAMBXeQEAAAAACAAAAAAAAACYV3kBAAAAANBXeQEAAAAACAAAAAAAAABA+GABAAAAANhXeQEAAAAACAAAAAAAAAAQV3kBAAAAAOBXeQEAAAAACAAAAAAAAADoV3kBAAAAAPBXeQEAAAAACAAAAAAAAADQ+GABAAAAAAhYeQEAAAAACAAAAAAAAABA+WABAAAAABBYeQEAAAAACAAAAAAAAAAYWHkBAAAAACBYeQEAAAAACAAAAAAAAAAg+mABAAAAAChYeQEAAAAACAAAAAAAAAAwWHkBAAAAADhYeQEAAAAACAAAAAAAAACQ+mABAAAAAEBYeQEAAAAACAAAAAAAAABQWHkBAAAAAEhYeQEAAAAACAAAAAAAAABoWHkBAAAAAFhYeQEAAAAACAAAAAAAAACw+2ABAAAAAGBYeQEAAAAACAAAAAAAAACAWHkBAAAAAHBYeQEAAAAACAAAAAAAAAAg/GABAAAAAHhYeQEAAAAACAAAAAAAAACAWHkBAAAAAIhYeQEAAAAACAAAAAAAAACQ/GABAAAAAKBYeQEAAAAACAAAAAAAAABw2WIBAAAAALhYeQEAAAAACAAAAAAAAACg52IBAAAAANBYeQEAAAAACAAAAAAAAAAw6GIBAAAAANhYeQEAAAAACAAAAAAAAADAWXkBAAAAAOhYeQEAAAAACAAAAAAAAADQ6GIBAAAAAABZeQEAAAAACAAAAAAAAABQ6WIBAAAAABhZeQEAAAAACAAAAAAAAADg6WIBAAAAADBZeQEAAAAACAAAAAAAAABQ6mIBAAAAADhZeQEAAAAACAAAAAAAAAAQWXkBAAAAAEhZeQEAAAAACAAAAAAAAAAA62IBAAAAAFBZeQEAAAAACAAAAAAAAABYWXkBAAAAAGBZeQEAAAAACAAAAAAAAADQ62IBAAAAAHhZeQEAAAAACAAAAAAAAAAw7GIBAAAAAJBZeQEAAAAACAAAAAAAAADQ7GIBAAAAAKhZeQEAAAAACAAAAAAAAAAg7WIBAAAAALBZeQEAAAAACAAAAAAAAACwWHkBAAAAALhZeQEAAAAACAAAAAAAAADIWHkBAAAAAMhZeQEAAAAACAAAAAAAAACw7WIBAAAAANBZeQEAAAAACAAAAAAAAACIWXkBAAAAAOBZeQEAAAAACAAAAAAAAABA7mIBAAAAAPhZeQEAAAAACAAAAAAAAACA8GMBAAAAAABaeQEAAAAACAAAAAAAAAAwWnkBAAAAAAhaeQEAAAAACAAAAAAAAABgWnkBAAAAABBaeQEAAAAACAAAAAAAAABIWnkBAAAAACBaeQEAAAAACAAAAAAAAAAg8WMBAAAAADhaeQEAAAAACAAAAAAAAACw8WMBAAAAAEBaeQEAAAAACAAAAAAAAAAYWnkBAAAAAFBaeQEAAAAACAAAAAAAAAAw8mMBAAAAAGhaeQEAAAAACAAAAAAAAACw8mMBAAAAAIBaeQEAAAAACAAAAAAAAACwMmQBAAAAAIhaeQEAAAAACAAAAAAAAACoWnkBAAAAAJhaeQEAAAAACAAAAAAAAAAgM2QBAAAAALBaeQEAAAAACAAAAAAAAACgM2QBAAAAALhaeQEAAAAACAAAAAAAAACQWnkBAAAAAMhaeQEAAAAACAAAAAAAAADQWGQBAAAAANBaeQEAAAAACAAAAAAAAADYWnkBAAAAAOBaeQEAAAAACAAAAAAAAABQWWQBAAAAAOhaeQEAAAAACAAAAAAAAACYW3kBAAAAAPhaeQEAAAAACAAAAAAAAADQe2QBAAAAABBbeQEAAAAACAAAAAAAAAAgfGQBAAAAAChbeQEAAAAACAAAAAAAAABwfGQBAAAAADBbeQEAAAAACAAAAAAAAAA4W3kBAAAAAEBbeQEAAAAACAAAAAAAAADgfGQBAAAAAEhbeQEAAAAACAAAAAAAAACYW3kBAAAAAFhbeQEAAAAACAAAAAAAAACQfWQBAAAAAGBbeQEAAAAACAAAAAAAAACYW3kBAAAAAHBbeQEAAAAACAAAAAAAAAAgfmQBAAAAAHhbeQEAAAAACAAAAAAAAACYW3kBAAAAAIhbeQEAAAAACAAAAAAAAADAfmQBAAAAAKBbeQEAAAAACAAAAAAAAAAQf2QBAAAAALhbeQEAAAAACAAAAAAAAACgf2QBAAAAANBbeQEAAAAACAAAAAAAAAAAgGQBAAAAANhbeQEAAAAACAAAAAAAAACYW3kBAAAAAOhbeQEAAAAACAAAAAAAAACQgGQBAAAAAPBbeQEAAAAACAAAAAAAAADIW3kBAAAAAABceQEAAAAACAAAAAAAAAAAgWQBAAAAABhceQEAAAAACAAAAAAAAABQgWQBAAAAACBceQEAAAAACAAAAAAAAACYW3kBAAAAAChceQEAAAAACAAAAAAAAAAwXHkB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AAAAACjBeAEAAAAAAQAAAFcAAAAAAAAAAAAAAFDDeAEAAAAAAQAAAFcAAAAAAAAAAAAAACDEeAEAAAAAAQAAAFcAAAAAAAAAAAAAAPDEeAEAAAAAAQAAAFcAAAAAAAAAAAAAAKDGeAEAAAAAAQAAAFcAAAAAAAAAAAAAAHDHeAEAAAAAAQAAAFcAAAAAAAAAAAAAAEDIeAEAAAAAAQAAAFcAAAAAAAAAAAAAABDJeAEAAAAAAQAAAFcAAAAAAAAAAAAAAODJeAEAAAAAAQAAAFcAAAAAAAAAAAAAALDKeAEAAAAAAQAAAFcAAAAAAAAAAAAAAIDLeAEAAAAAAQAAAFcAAAAAAAAAAAAAAFDMeAEAAAAAAQAAAFcAAAAAAAAAAAAAACDNeAEAAAAAAQAAAFcAAAAAAAAAAAAAAEDReAEAAAAAAQAAAFcAAAAAAAAAAAAAABDSeAEAAAAAAQAAAFcAAAAAAAAAAAAAAODSeAEAAAAAAQAAAFcAAAAAAAAAAAAAALDTeAEAAAAAAQAAAFcAAAAAAAAAAAAAAIDUeAEAAAAAAQAAAFcAAAAAAAAAAAAAAADWeAEAAAAAAQAAAFcAAAAAAAAAAAAAANDWeAEAAAAAAQAAAFcAAAAAAAAAAAAAAKDXeAEAAAAAAQAAAFcAAAAAAAAAAAAAABjZeAEAAAAAAQAAAFcAAAAAAAAAAAAAAOjZeAEAAAAAAQAAAFcAAAAAAAAAAAAAABjceAEAAAAAAQAAAFcAAAAAAAAAAAAAAOjceAEAAAAAAQAAAFcAAAAAAAAAAAAAALjdeAEAAAAAAQAAAFcAAAAAAAAAAAAAAIjeeAEAAAAAAQAAAFcAAAAAAAAAAAAAAFjfeAEAAAAAAQAAAFcAAAAAAAAAAAAAACjgeAEAAAAAAQAAAFcAAAAAAAAAAAAAAPjgeAEAAAAAAQAAAFcAAAAAAAAAAAAAAMjheAEAAAAAAQAAAFcAAAAAAAAAAAAAAJjieAEAAAAAAQAAAFcAAAAAAAAAAAAAAGjjeAEAAAAAAQAAAFcAAAAAAAAAAAAAADjkeAEAAAAAAQAAAFcAAAAAAAAAAAAAAAjleAEAAAAAAQAAAFcAAAAAAAAAAAAAANjleAEAAAAAAQAAAFcAAAAAAAAAAAAAAKjmeAEAAAAAAQAAAFcAAAAAAAAAAAAAALipeAEAAAAA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AQAAAFkAAAAAAAAAAAAAAFC1eAEAAAAAAQAAAFkAAAAAAAAAAAAAACC2eAEAAAAAAQAAAFkAAAAAAAAAAAAAAPC2eAEAAAAAAQAAAFkAAAAAAAAAAAAAAMC3eAEAAAAAAQAAAFkAAAAAAAAAAAAAAJC4eAEAAAAAAQAAAFkAAAAAAAAAAAAAAGjBeAEAAAAAAQAAAFkAAAAAAAAAAAAAAJDDeAEAAAAAAQAAAFkAAAAAAAAAAAAAAGDEeAEAAAAAAQAAAFkAAAAAAAAAAAAAADDFeAEAAAAAAQAAAFkAAAAAAAAAAAAAAODGeAEAAAAAAQAAAFkAAAAAAAAAAAAAALDHeAEAAAAAAQAAAFkAAAAAAAAAAAAAAIDIeAEAAAAAAQAAAFkAAAAAAAAAAAAAAFDJeAEAAAAAAQAAAFkAAAAAAAAAAAAAACDKeAEAAAAAAQAAAFkAAAAAAAAAAAAAAPDKeAEAAAAAAQAAAFkAAAAAAAAAAAAAAMDLeAEAAAAAAQAAAFkAAAAAAAAAAAAAAJDMeAEAAAAAAQAAAFkAAAAAAAAAAAAAAGDNeAEAAAAAAQAAAFkAAAAAAAAAAAAAAIDReAEAAAAAAQAAAFkAAAAAAAAAAAAAAFDSeAEAAAAAAQAAAFkAAAAAAAAAAAAAACDTeAEAAAAAAQAAAFkAAAAAAAAAAAAAAPDTeAEAAAAAAQAAAFkAAAAAAAAAAAAAAMDUeAEAAAAAAQAAAFkAAAAAAAAAAAAAAEDWeAEAAAAAAQAAAFkAAAAAAAAAAAAAABDXeAEAAAAAAQAAAFkAAAAAAAAAAAAAAODXeAEAAAAAAQAAAFkAAAAAAAAAAAAAAFjZeAEAAAAAAQAAAFkAAAAAAAAAAAAAACjaeAEAAAAAAQAAAFkAAAAAAAAAAAAAAFjceAEAAAAAAQAAAFkAAAAAAAAAAAAAACjdeAEAAAAAAQAAAFkAAAAAAAAAAAAAAPjdeAEAAAAAAQAAAFkAAAAAAAAAAAAAAMjeeAEAAAAAAQAAAFkAAAAAAAAAAAAAAJjfeAEAAAAAAQAAAFkAAAAAAAAAAAAAAGjgeAEAAAAAAQAAAFkAAAAAAAAAAAAAADjheAEAAAAAAQAAAFkAAAAAAAAAAAAAAAjieAEAAAAAAQAAAFkAAAAAAAAAAAAAANjieAEAAAAAAQAAAFkAAAAAAAAAAAAAAKjjeAEAAAAAAQAAAFkAAAAAAAAAAAAAAHjkeAEAAAAAAQAAAFkAAAAAAAAAAAAAAEjleAEAAAAAAQAAAFkAAAAAAAAAAAAAABjmeAEAAAAAAQAAAFkAAAAAAAAAAAAAAOjmeAEAAAAAAQAAAFkAAAAAAAAAAAAAAOCpeAEAAAAAAQAAAFoAAAAAAAAAAAAAALCqeAEAAAAAAQAAAFoAAAAAAAAAAAAAAICreAEAAAAAAQAAAFoAAAAAAAAAAAAAAFCseAEAAAAAAQAAAFoAAAAAAAAAAAAAACCteAEAAAAAAQAAAFoAAAAAAAAAAAAAAPCteAEAAAAAAQAAAFoAAAAAAAAAAAAAAMCueAEAAAAAAQAAAFoAAAAAAAAAAAAAAJCveAEAAAAAAQAAAFoAAAAAAAAAAAAAAHCweAEAAAAAAQAAAFoAAAAAAAAAAAAAAFCxeAEAAAAAAQAAAFoAAAAAAAAAAAAAACCyeAEAAAAAAQAAAFoAAAAAAAAAAAAAAACzeAEAAAAAAQAAAFoAAAAAAAAAAAAAANCzeAEAAAAAAQAAAFoAAAAAAAAAAAAAAKC0eAEAAAAAAQAAAFoAAAAAAAAAAAAAAHC1eAEAAAAAAQAAAFoAAAAAAAAAAAAAAEC2eAEAAAAAAQAAAFoAAAAAAAAAAAAAABC3eAEAAAAAAQAAAFoAAAAAAAAAAAAAAOC3eAEAAAAAAQAAAFoAAAAAAAAAAAAAALC4eAEAAAAAAQAAAFoAAAAAAAAAAAAAAMC7eAEAAAAAAQAAAFoAAAAAAAAAAAAAAKC8eAEAAAAAAQAAAFoAAAAAAAAAAAAAAIC9eAEAAAAAAQAAAFoAAAAAAAAAAAAAAGC+eAEAAAAAAQAAAFoAAAAAAAAAAAAAAEC/eAEAAAAAAQAAAFoAAAAAAAAAAAAAACDAeAEAAAAAAQAAAFoAAAAAAAAAAAAAAIjBeAEAAAAAAQAAAFoAAAAAAAAAAAAAALDDeAEAAAAAAQAAAFoAAAAAAAAAAAAAAIDEeAEAAAAAAQAAAFoAAAAAAAAAAAAAAFDFeAEAAAAAAQAAAFoAAAAAAAAAAAAAACDGeAEAAAAAAQAAAFoAAAAAAAAAAAAAAADHeAEAAAAAAQAAAFoAAAAAAAAAAAAAANDHeAEAAAAAAQAAAFoAAAAAAAAAAAAAAKDIeAEAAAAAAQAAAFoAAAAAAAAAAAAAAHDJeAEAAAAAAQAAAFoAAAAAAAAAAAAAAEDKeAEAAAAAAQAAAFoAAAAAAAAAAAAAABDLeAEAAAAAAQAAAFoAAAAAAAAAAAAAAODLeAEAAAAAAQAAAFoAAAAAAAAAAAAAALDMeAEAAAAAAQAAAFoAAAAAAAAAAAAAAIDNeAEAAAAAAQAAAFoAAAAAAAAAAAAAABDPeAEAAAAAAQAAAFoAAAAAAAAAAAAAAPDPeAEAAAAAAQAAAFoAAAAAAAAAAAAAAKDReAEAAAAAAQAAAFoAAAAAAAAAAAAAAHDSeAEAAAAAAQAAAFoAAAAAAAAAAAAAAEDTeAEAAAAAAQAAAFoAAAAAAAAAAAAAABDUeAEAAAAAAQAAAFoAAAAAAAAAAAAAAODUeAEAAAAAAQAAAFoAAAAAAAAAAAAAAGDWeAEAAAAAAQAAAFoAAAAAAAAAAAAAADDXeAEAAAAAAQAAAFoAAAAAAAAAAAAAAADYeAEAAAAAAQAAAFoAAAAAAAAAAAAAAHjZeAEAAAAAAQAAAFoAAAAAAAAAAAAAAEjaeAEAAAAAAQAAAFoAAAAAAAAAAAAAAHjceAEAAAAAAQAAAFoAAAAAAAAAAAAAAEjdeAEAAAAAAQAAAFoAAAAAAAAAAAAAABjeeAEAAAAAAQAAAFoAAAAAAAAAAAAAAOjeeAEAAAAAAQAAAFoAAAAAAAAAAAAAALjfeAEAAAAAAQAAAFoAAAAAAAAAAAAAAIjgeAEAAAAAAQAAAFoAAAAAAAAAAAAAAFjheAEAAAAAAQAAAFoAAAAAAAAAAAAAACjieAEAAAAAAQAAAFoAAAAAAAAAAAAAAPjieAEAAAAAAQAAAFoAAAAAAAAAAAAAAMjjeAEAAAAAAQAAAFoAAAAAAAAAAAAAAJjkeAEAAAAAAQAAAFoAAAAAAAAAAAAAAGjleAEAAAAAAQAAAFoAAAAAAAAAAAAAADjmeAEAAAAAAQAAAFoAAAAAAAAAAAAAAAjneAEAAAAAAQAAAFoAAAAAAAAAAAAAABCqeAEAAAAAAQAAAFsAAAAAAAAAAAAAAOCqeAEAAAAAAQAAAFsAAAAAAAAAAAAAALCreAEAAAAAAQAAAFsAAAAAAAAAAAAAAICseAEAAAAAAQAAAFsAAAAAAAAAAAAAAFCteAEAAAAAAQAAAFsAAAAAAAAAAAAAACCueAEAAAAAAQAAAFsAAAAAAAAAAAAAAPCueAEAAAAAAQAAAFsAAAAAAAAAAAAAAMCveAEAAAAAAQAAAFsAAAAAAAAAAAAAAKCweAEAAAAAAQAAAFsAAAAAAAAAAAAAAICxeAEAAAAAAQAAAFsAAAAAAAAAAAAAAFCyeAEAAAAAAQAAAFsAAAAAAAAAAAAAADCzeAEAAAAAAQAAAFsAAAAAAAAAAAAAAAC0eAEAAAAAAQAAAFsAAAAAAAAAAAAAANC0eAEAAAAAAQAAAFsAAAAAAAAAAAAAAKC1eAEAAAAAAQAAAFsAAAAAAAAAAAAAAHC2eAEAAAAAAQAAAFsAAAAAAAAAAAAAAEC3eAEAAAAAAQAAAFsAAAAAAAAAAAAAABC4eAEAAAAAAQAAAFsAAAAAAAAAAAAAAOC4eAEAAAAAAQAAAFsAAAAAAAAAAAAAAPC7eAEAAAAAAQAAAFsAAAAAAAAAAAAAANC8eAEAAAAAAQAAAFsAAAAAAAAAAAAAALC9eAEAAAAAAQAAAFsAAAAAAAAAAAAAAJC+eAEAAAAAAQAAAFsAAAAAAAAAAAAAAHC/eAEAAAAAAQAAAFsAAAAAAAAAAAAAAFDAeAEAAAAAAQAAAFsAAAAAAAAAAAAAALjBeAEAAAAAAQAAAFsAAAAAAAAAAAAAAODDeAEAAAAAAQAAAFsAAAAAAAAAAAAAALDEeAEAAAAAAQAAAFsAAAAAAAAAAAAAAIDFeAEAAAAAAQAAAFsAAAAAAAAAAAAAAFDGeAEAAAAAAQAAAFsAAAAAAAAAAAAAADDHeAEAAAAAAQAAAFsAAAAAAAAAAAAAAADIeAEAAAAAAQAAAFsAAAAAAAAAAAAAANDIeAEAAAAAAQAAAFsAAAAAAAAAAAAAAKDJeAEAAAAAAQAAAFsAAAAAAAAAAAAAAHDKeAEAAAAAAQAAAFsAAAAAAAAAAAAAAEDLeAEAAAAAAQAAAFsAAAAAAAAAAAAAABDMeAEAAAAAAQAAAFsAAAAAAAAAAAAAAODMeAEAAAAAAQAAAFsAAAAAAAAAAAAAALDNeAEAAAAAAQAAAFsAAAAAAAAAAAAAAEDPeAEAAAAAAQAAAFsAAAAAAAAAAAAAACDQeAEAAAAAAQAAAFsAAAAAAAAAAAAAANDReAEAAAAAAQAAAFsAAAAAAAAAAAAAAKDSeAEAAAAA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AQAAAFwAAAAAAAAAAAAAANDkeAEAAAAAAQAAAFwAAAAAAAAAAAAAAKDleAEAAAAAAQAAAFwAAAAAAAAAAAAAAHDmeAEAAAAAAQAAAFwAAAAAAAAAAAAAAEDneAEAAAAAAQAAAFwAAAAAAAAAAAAAALCveAEAAAAAAQAAAF0AAAAAAAAAAAAAAJCweAEAAAAAAQAAAF0AAAAAAAAAAAAAAECyeAEAAAAAAQAAAF0AAAAAAAAAAAAAAOC7eAEAAAAAAQAAAF0AAAAAAAAAAAAAAMC8eAEAAAAAAQAAAF0AAAAAAAAAAAAAAKC9eAEAAAAAAQAAAF0AAAAAAAAAAAAAAIC+eAEAAAAAAQAAAF0AAAAAAAAAAAAAAGC/eAEAAAAAAQAAAF0AAAAAAAAAAAAAAEDAeAEAAAAAAQAAAF0AAAAAAAAAAAAAAEDGeAEAAAAAAQAAAF0AAAAAAAAAAAAAADDPeAEAAAAAAQAAAF0AAAAAAAAAAAAAABDQeAEAAAAAAQAAAF0AAAAAAAAAAAAAANCveAEAAAAAAQAAAF4AAAAAAAAAAAAAALCweAEAAAAAAQAAAF4AAAAAAAAAAAAAAGCyeAEAAAAAAQAAAF4AAAAAAAAAAAAAAAC8eAEAAAAAAQAAAF4AAAAAAAAAAAAAAOC8eAEAAAAAAQAAAF4AAAAAAAAAAAAAAMC9eAEAAAAAAQAAAF4AAAAAAAAAAAAAAKC+eAEAAAAAAQAAAF4AAAAAAAAAAAAAAIC/eAEAAAAAAQAAAF4AAAAAAAAAAAAAAGDAeAEAAAAAAQAAAF4AAAAAAAAAAAAAAGDGeAEAAAAAAQAAAF4AAAAAAAAAAAAAAFDPeAEAAAAAAQAAAF4AAAAAAAAAAAAAADDQeAEAAAAAAQAAAF4AAAAAAAAAAAAAAAi8eAEAAAAAAQAAAF8AAAAAAAAAAAAAAOi8eAEAAAAAAQAAAF8AAAAAAAAAAAAAAMi9eAEAAAAAAQAAAF8AAAAAAAAAAAAAAKi+eAEAAAAAAQAAAF8AAAAAAAAAAAAAAIi/eAEAAAAAAQAAAF8AAAAAAAAAAAAAAGjAeAEAAAAAAQAAAF8AAAAAAAAAAAAAAFjPeAEAAAAAAQAAAF8AAAAAAAAAAAAAADjQeAEAAAAAAQAAAF8AAAAAAAAAAAAAABD5eAEAAAAAAQAAAF8AAAAAAAAAAAAAACAAeQEAAAAAAQAAAF8AAAAAAAAAAAAAACADeQEAAAAAAQAAAF8AAAAAAAAAAAAAAKAweQEAAAAAAQAAAF8AAAAAAAAAAAAAAKgweQEAAAAAAQAAAF8AAAAAAAAAAAAAALAweQEAAAAAAQAAAF8AAAAAAAAAAAAAALgweQEAAAAAAQAAAF8AAAAAAAAAAAAAAMAweQEAAAAAAQAAAF8AAAAAAAAAAAAAAMgweQEAAAAAAQAAAF8AAAAAAAAAAAAAAHA0eQEAAAAAAQAAAF8AAAAAAAAAAAAAAHg0eQEAAAAAAQAAAF8AAAAAAAAAAAAAADg5eQEAAAAABgAAAG0AAAAAAAAAAAAAAEhceQEAAAAAAQAAAHMAAAAAAAAAAAAAAFBceQEAAAAAAQAAAHMAAAAAAAAAAAAAAFhceQEAAAAAAQAAAHMAAAAAAAAAAAAAAGBceQEAAAAAAQAAAHMAAAAAAAAAAAAAAGhceQEAAAAAAQAAAHMAAAAAAAAAAAAAAHBceQEAAAAAAQAAAHMAAAAAAAAAAAAAAHhceQEAAAAAAQAAAHMAAAAAAAAAAAAAAIBceQEAAAAAAQAAAHMAAAAAAAAAAAAAAIhceQEAAAAAAQAAAHMAAAAAAAAAAAAAAEA5eQEAAAAABgAAAHwAAAAAAAAAAAAAAEg5eQEAAAAABgAAAKkAAAAAAAAAAAAAAOjpeAEAAAAAAQAAALUAAAAAAAAAAAAAABjqeAEAAAAAAQAAALUAAAAAAAAAAAAAAMjqeAEAAAAAAQAAAMYAAAAAAAAAAAAAANDqeAEAAAAAAQAAAMcAAAAAAAAAAAAAANjqeAEAAAAAAQAAAMgAAAAAAAAAAAAAAOjneAEAAAAAAQAAAMkAAAAAAAAAAAAAABDoeAEAAAAAAQAAAMoAAAAAAAAAAAAAAGDoeAEAAAAAAQAAAMsAAAAAAAAAAAAAAHjpeAEAAAAAAQAAAMwAAAAAAAAAAAAAAAjreAEAAAAAAQAAAM0AAAAAAAAAAAAAAIj2eAEAAAAAAQAAAM0AAAAAAAAAAAAAAIA5eQEAAAAABgAAABwBAAAAAAAAAAAAAFA5eQEAAAAABgAAAC8BAAAAAAAAAAAAAID3eAEAAAAAAQAAAFEBAAAAAAAAAAAAAKj3eAEAAAAAAQAAAFEBAAAAAAAAAAAAAND3eAEAAAAAAQAAAFEBAAAAAAAAAAAAAIj3eAEAAAAAAQAAAFIBAAAAAAAAAAAAAJD3eAEAAAAAAQAAAFMBAAAAAAAAAAAAALD3eAEAAAAAAQAAAFQBAAAAAAAAAAAAALj3eAEAAAAAAQAAAFUBAAAAAAAAAAAAAMD3eAEAAAAAAQAAAFYBAAAQAAAAAAAAAFj4eAEAAAAAAQAAAFYBAAAQAAAAAAAAALD4eAEAAAAAAQAAAFYBAAAQAAAAAAAAAMD/eAEAAAAAAQAAAFYBAAAQAAAAAAAAAGABeQEAAAAAAQAAAFYBAAAQAAAAAAAAALgBeQEAAAAAAQAAAFYBAAAQAAAAAAAAABACeQEAAAAAAQAAAFYBAAAQAAAAAAAAAGgCeQEAAAAAAQAAAFYBAAAQAAAAAAAAAMACeQEAAAAAAQAAAFYBAAAQAAAAAAAAAGgDeQEAAAAAAQAAAFYBAAAQAAAAAAAAAKAueQEAAAAAAQAAAFYBAAAQAAAAAAAAANgueQEAAAAAAQAAAFYBAAAQAAAAAAAAADAxeQEAAAAAAQAAAFYBAAAQAAAAAAAAAKAxeQEAAAAAAQAAAFYBAAAQAAAAAAAAAPAxeQEAAAAAAQAAAFYBAAAQAAAAAAAAAEAyeQEAAAAAAQAAAFYBAAAQAAAAAAAAAKgyeQEAAAAAAQAAAFYBAAAQAAAAAAAAAKAzeQEAAAAAAQAAAFYBAAAQAAAAAAAAADg0eQEAAAAAAQAAAFYBAAAQAAAAAAAAAOg0eQEAAAAAAQAAAFYBAAAQAAAAAAAAAPj3eAEAAAAAAQAAAFcBAAAAAAAAAAAAAAD4eAEAAAAAAQAAAFgBAAAAAAAAAAAAABj4eAEAAAAAAQAAAFkBAAAAAAAAAAAAACD4eAEAAAAAAQAAAFoBAAAAAAAAAAAAAAA0eQEAAAAAAQAAAFoBAAAAAAAAAAAAACj4eAEAAAAAAQAAAFsBAAAAAAAAAAAAAAg0eQEAAAAAAQAAAFsBAAAAAAAAAAAAADj4eAEAAAAAAQAAAFwBAAAAAAAAAAAAABg0eQEAAAAAAQAAAFwBAAAAAAAAAAAAAEj4eAEAAAAAAQAAAF0BAAAAAAAAAAAAACg0eQEAAAAAAQAAAF0BAAAAAAAAAAAAAGj4eAEAAAAAAQAAAF4BAAAAAAAAAAAAAEg0eQEAAAAAAQAAAF4BAAAAAAAAAAAAAMj4eAEAAAAAAQAAAF8BAAAQAAAAAAAAANj/eAEAAAAAAQAAAF8BAAAQAAAAAAAAANgCeQEAAAAAAQAAAF8BAAAQAAAAAAAAABAveQEAAAAAAQAAAF8BAAAQAAAAAAAAANAweQEAAAAAAQAAAF8BAAAQAAAAAAAAAMAyeQEAAAAAAQAAAF8BAAAQAAAAAAAAANAyeQEAAAAAAQAAAF8BAAAQAAAAAAAAAIg0eQEAAAAAAQAAAF8BAAAQAAAAAAAAALAueQEAAAAAAQAAAJABAAAAAAAAAAAAAIg5eQEAAAAABgAAALMBAAAAAAAAAAAAAGAzeQEAAAAAAQAAALkBAAAAAAAAAAAAAIgzeQEAAAAAAQAAALkBAAAAAAAAAAAAALAzeQEAAAAAAQAAALkBAAAAAAAAAAAAAGgzeQEAAAAAAQAAALoBAAAAAAAAAAAAAHAzeQEAAAAAAQAAALsBAAAAAAAAAAAAAJAzeQEAAAAAAQAAALwBAAAAAAAAAAAAAJgzeQEAAAAAAQAAAL0BAAAAAAAAAAAAAJA5eQEAAAAABgAAAMUBAAAAAAAAAAAAAJg5eQEAAAAABgAAAMYBAAAAAAAAAAAAAKA5eQEAAAAABgAAAMcBAAAAAAAAAAAAAKg5eQEAAAAABgAAAMgBAAAAAAAAAAAAANA5eQEAAAAABwAAAAEAAAAAAAAAAAAAANg5eQEAAAAABwAAAAIAAAAAAAAAAAAAAOA5eQEAAAAABwAAAAUAAAAAAAAAAAAAAOg5eQEAAAAABwAAAAcAAAAAAAAAAAAAAPA5eQEAAAAABwAAAAoAAAAAAAAAAAAAAPg5eQEAAAAABwAAAAsAAAAAAAAAAAAAAAA6eQEAAAAABwAAAA0AAAAAAAAAAAAAAAg6eQEAAAAABwAAAA4AAAAAAAAAAAAAABA6eQEAAAAABwAAAA8AAAAAAAAAAAAAABg6eQEAAAAABwAAABAAAAAAAAAAAAAAACA6eQEAAAAABwAAABEAAAAAAAAAAAAAACg6eQEAAAAABwAAABIAAAAAAAAAAAAAADA6eQEAAAAABwAAABMAAAAAAAAAAAAAADg6eQEAAAAABwAAABQAAAAAAAAAAAAAAEA6eQEAAAAABwAAABUAAAAAAAAAAAAAAEg6eQEAAAAABwAAABYAAAAAAAAAAAAAAFA6eQEAAAAABwAAABcAAAAAAAAAAAAAAFg6eQEAAAAABwAAABgAAAAAAAAAAAAAAGA6eQEAAAAABwAAABkAAAAAAAAAAAAAAGg6eQEAAAAABwAAABoAAAAAAAAAAAAAAHA6eQEAAAAABwAAABsAAAAAAAAAAAAAAHg6eQEAAAAABwAAABwAAAAAAAAAAAAAAIA6eQEAAAAABwAAAB0AAAAAAAAAAAAAAIg6eQEAAAAABwAAAB4AAAAAAAAAAAAAAJA6eQEAAAAABwAAAB8AAAAAAAAAAAAAAJg6eQEAAAAABwAAACAAAAAAAAAAAAAAAKA6eQEAAAAABwAAACEAAAAAAAAAAAAAAKg6eQEAAAAABwAAACIAAAAAAAAAAAAAALA6eQEAAAAABwAAACMAAAAAAAAAAAAAALg6eQEAAAAABwAAACQAAAAAAAAAAAAAAMA6eQEAAAAABwAAACUAAAAAAAAAAAAAAMg6eQEAAAAABwAAACYAAAAAAAAAAAAAANA6eQEAAAAABwAAACcAAAAAAAAAAAAAANg6eQEAAAAABwAAACgAAAAAAAAAAAAAAOA6eQEAAAAABwAAACkAAAAAAAAAAAAAAOg6eQEAAAAABwAAACoAAAAAAAAAAAAAAPA6eQEAAAAABwAAACsAAAAAAAAAAAAAAPg6eQEAAAAABwAAACwAAAAAAAAAAAAAAAA7eQEAAAAABwAAAC0AAAAAAAAAAAAAAAg7eQEAAAAABwAAAC4AAAAAAAAAAAAAABA7eQEAAAAABwAAAC8AAAAAAAAAAAAAABg7eQEAAAAABwAAADAAAAAAAAAAAAAAACA7eQEAAAAABwAAADEAAAAAAAAAAAAAACg7eQEAAAAABwAAADIAAAAAAAAAAAAAADA7eQEAAAAABwAAADQAAAAAAAAAAAAAADg7eQEAAAAABwAAADUAAAAAAAAAAAAAAEA7eQEAAAAABwAAADYAAAAAAAAAAAAAAEg7eQEAAAAABwAAADcAAAAAAAAAAAAAAFA7eQEAAAAABwAAADgAAAAAAAAAAAAAAFg7eQEAAAAABwAAADkAAAAAAAAAAAAAAGA7eQEAAAAABwAAADsAAAAAAAAAAAAAAGg7eQEAAAAABwAAADwAAAAAAAAAAAAAAHA7eQEAAAAABwAAAD0AAAAAAAAAAAAAAHg7eQEAAAAABwAAAD4AAAAAAAAAAAAAAIA7eQEAAAAABwAAAD8AAAAAAAAAAAAAAIg7eQEAAAAABwAAAEAAAAAAAAAAAAAAAJA7eQEAAAAABwAAAEEAAAAAAAAAAAAAAJg7eQEAAAAABwAAAEIAAAAAAAAAAAAAAKA7eQEAAAAABwAAADoAAAAAAAAAAAAAAKg7eQEAAAAABwAAAEMAAAAAAAAAAAAAALA7eQEAAAAABwAAAEQAAAAAAAAAAAAAALg7eQEAAAAABwAAAEUAAAAAAAAAAAAAAMA7eQEAAAAABwAAAEYAAAAAAAAAAAAAAMg7eQEAAAAABwAAAEcAAAAAAAAAAAAAANA7eQEAAAAABwAAAEgAAAAAAAAAAAAAANg7eQEAAAAABwAAAEkAAAAAAAAAAAAAAOA7eQEAAAAABwAAAEoAAAAAAAAAAAAAAOg7eQEAAAAABwAAAEwAAAAAAAAAAAAAAPA7eQEAAAAABwAAAE0AAAAAAAAAAAAAAPg7eQEAAAAABwAAAE4AAAAAAAAAAAAAAAA8eQEAAAAABwAAAE8AAAAAAAAAAAAAAAg8eQEAAAAABwAAAFAAAAAAAAAAAAAAABA8eQEAAAAABwAAAFEAAAAAAAAAAAAAABg8eQEAAAAABwAAAFIAAAAAAAAAAAAAACA8eQEAAAAABwAAAGEAAAAAAAAAAAAAACg8eQEAAAAABwAAAGAAAAAAAAAAAAAAADA8eQEAAAAABwAAAGIAAAAAAAAAAAAAADg8eQEAAAAABwAAAGMAAAAAAAAAAAAAAEA8eQEAAAAABwAAAGQAAAAAAAAAAAAAAEg8eQEAAAAABwAAAGUAAAAAAAAAAAAAAFA8eQEAAAAABwAAAGYAAAAAAAAAAAAAAFg8eQEAAAAABwAAAGcAAAAAAAAAAAAAAGA8eQEAAAAABwAAAGgAAAAAAAAAAAAAAGg8eQEAAAAABwAAAGkAAAAAAAAAAAAAAHA8eQEAAAAABwAAAGoAAAAAAAAAAAAAAHg8eQEAAAAABwAAAGsAAAAAAAAAAAAAAIA8eQEAAAAABwAAAGwAAAAAAAAAAAAAAIg8eQEAAAAABwAAAG4AAAAAAAAAAAAAAJA8eQEAAAAABwAAAHAAAAAAAAAAAAAAAJg8eQEAAAAABwAAAHEAAAAAAAAAAAAAAKA8eQEAAAAABwAAAG8AAAAAAAAAAAAAAKg8eQEAAAAABwAAAHIAAAAAAAAAAAAAALA8eQEAAAAABwAAAHQAAAAAAAAAAAAAALg8eQEAAAAABwAAAHUAAAAAAAAAAAAAAMA8eQEAAAAABwAAAHYAAAAAAAAAAAAAAMg8eQEAAAAABwAAAHcAAAAAAAAAAAAAANA8eQEAAAAABwAAAHgAAAAAAAAAAAAAANg8eQEAAAAABwAAAHkAAAAAAAAAAAAAAOA8eQEAAAAABwAAAHoAAAAAAAAAAAAAAOg8eQEAAAAABwAAAHsAAAAAAAAAAAAAAPA8eQEAAAAABwAAAH0AAAAAAAAAAAAAAPg8eQEAAAAABwAAAH4AAAAAAAAAAAAAAAA9eQEAAAAABwAAAH8AAAAAAAAAAAAAAAg9eQEAAAAABwAAAIAAAAAAAAAAAAAAABA9eQEAAAAABwAAAIEAAAAAAAAAAAAAABg9eQEAAAAABwAAAIIAAAAAAAAAAAAAACA9eQEAAAAABwAAAIMAAAAAAAAAAAAAACg9eQEAAAAABwAAAIQAAAAAAAAAAAAAADA9eQEAAAAABwAAAIUAAAAAAAAAAAAAADg9eQEAAAAABwAAAIYAAAAAAAAAAAAAAEA9eQEAAAAABwAAAIcAAAAAAAAAAAAAAEg9eQEAAAAABwAAAIgAAAAAAAAAAAAAAFA9eQEAAAAABwAAAIkAAAAAAAAAAAAAAFg9eQEAAAAABwAAAIoAAAAAAAAAAAAAAGA9eQEAAAAABwAAAIsAAAAAAAAAAAAAAGg9eQEAAAAABwAAAIwAAAAAAAAAAAAAAHA9eQEAAAAABwAAAI0AAAAAAAAAAAAAAHg9eQEAAAAABwAAAI4AAAAAAAAAAAAAAIA9eQEAAAAABwAAAI8AAAAAAAAAAAAAAIg9eQEAAAAABwAAAJAAAAAAAAAAAAAAAJA9eQEAAAAABwAAAJEAAAAAAAAAAAAAAJg9eQEAAAAABwAAAJIAAAAAAAAAAAAAAKA9eQEAAAAABwAAAJMAAAAAAAAAAAAAAKg9eQEAAAAABwAAAJQAAAAAAAAAAAAAALA9eQEAAAAABwAAAJUAAAAAAAAAAAAAALg9eQEAAAAABwAAAJYAAAAAAAAAAAAAAMA9eQEAAAAABwAAAJcAAAAAAAAAAAAAAMg9eQEAAAAABwAAAJgAAAAAAAAAAAAAANA9eQEAAAAABwAAAJkAAAAAAAAAAAAAANg9eQEAAAAABwAAAJoAAAAAAAAAAAAAAOA9eQEAAAAABwAAAJsAAAAAAAAAAAAAAOg9eQEAAAAABwAAAJwAAAAAAAAAAAAAAPA9eQEAAAAABwAAAJ0AAAAAAAAAAAAAAPg9eQEAAAAABwAAAJ4AAAAAAAAAAAAAAAA+eQEAAAAABwAAAJ8AAAAAAAAAAAAAAAg+eQEAAAAABwAAAKAAAAAAAAAAAAAAABA+eQEAAAAABwAAAKEAAAAAAAAAAAAAABg+eQEAAAAABwAAAKUAAAAAAAAAAAAAACA+eQEAAAAABwAAAKYAAAAAAAAAAAAAACg+eQEAAAAABwAAAKcAAAAAAAAAAAAAADA+eQEAAAAABwAAAKgAAAAAAAAAAAAAADg+eQEAAAAABwAAAKoAAAAAAAAAAAAAAEA+eQEAAAAABwAAAKsAAAAAAAAAAAAAAEg+eQEAAAAABwAAAKwAAAAAAAAAAAAAAFA+eQEAAAAABwAAAK4AAAAAAAAAAAAAAFg+eQEAAAAABwAAAK8AAAAAAAAAAAAAAGA+eQEAAAAABwAAALAAAAAAAAAAAAAAAGg+eQEAAAAABwAAALEAAAAAAAAAAAAAAHA+eQEAAAAABwAAALIAAAAAAAAAAAAAAHg+eQEAAAAABwAAALMAAAAAAAAAAAAAAIA+eQEAAAAABwAAALQAAAAAAAAAAAAAAIg+eQEAAAAABwAAALUAAAAAAAAAAAAAAJA+eQEAAAAABwAAALYAAAAAAAAAAAAAAJg+eQEAAAAABwAAALcAAAAAAAAAAAAAAKA+eQEAAAAABwAAALgAAAAAAAAAAAAAAKg+eQEAAAAABwAAALkAAAAAAAAAAAAAALA+eQEAAAAABwAAALoAAAAAAAAAAAAAALg+eQEAAAAABwAAALsAAAAAAAAAAAAAAMA+eQEAAAAABwAAALwAAAAAAAAAAAAAAMg+eQEAAAAABwAAAL0AAAAAAAAAAAAAANA+eQEAAAAABwAAAMAAAAAAAAAAAAAAANg+eQEAAAAABwAAAMIAAAAAAAAAAAAAAOA+eQEAAAAABwAAAMMAAAAAAAAAAAAAAOg+eQEAAAAABwAAAKIAAAAAAAAAAAAAAPA+eQEAAAAABwAAAKMAAAAAAAAAAAAAAPg+eQEAAAAABwAAAKQAAAAAAAAAAAAAAAA/eQEAAAAABwAAAK0AAAAAAAAAAAAAAAg/eQEAAAAABwAAAL4AAAAAAAAAAAAAABA/eQEAAAAABwAAAL8AAAAAAAAAAAAAABg/eQEAAAAABwAAAMEAAAAAAAAAAAAAACA/eQEAAAAABwAAAMQAAAAAAAAAAAAAACg/eQEAAAAABwAAAMUAAAAAAAAAAAAAADA/eQEAAAAABwAAAM4AAAAAAAAAAAAAADg/eQEAAAAABwAAAM8AAAAAAAAAAAAAAEA/eQEAAAAABwAAANAAAAAAAAAAAAAAAEg/eQEAAAAABwAAANEAAAAAAAAAAAAAAFA/eQEAAAAABwAAANIAAAAAAAAAAAAAAFg/eQEAAAAABwAAANMAAAAAAAAAAAAAAGA/eQEAAAAABwAAANQAAAAAAAAAAAAAAGg/eQEAAAAABwAAANUAAAAAAAAAAAAAAHA/eQEAAAAABwAAANYAAAAAAAAAAAAAAHg/eQEAAAAABwAAANcAAAAAAAAAAAAAAIA/eQEAAAAABwAAANgAAAAAAAAAAAAAAIg/eQEAAAAABwAAANkAAAAAAAAAAAAAAJA/eQEAAAAABwAAANoAAAAAAAAAAAAAAJg/eQEAAAAABwAAANsAAAAAAAAAAAAAAKA/eQEAAAAABwAAANwAAAAAAAAAAAAAAKg/eQEAAAAABwAAAN0AAAAAAAAAAAAAALA/eQEAAAAABwAAAN8AAAAAAAAAAAAAALg/eQEAAAAABwAAAOAAAAAAAAAAAAAAAMA/eQEAAAAABwAAAOEAAAAAAAAAAAAAAMg/eQEAAAAABwAAAOIAAAAAAAAAAAAAANA/eQEAAAAABwAAAOMAAAAAAAAAAAAAANg/eQEAAAAABwAAAOQAAAAAAAAAAAAAAOA/eQEAAAAABwAAAOUAAAAAAAAAAAAAAOg/eQEAAAAABwAAAOYAAAAAAAAAAAAAAPA/eQEAAAAABwAAAOcAAAAAAAAAAAAAAPg/eQEAAAAABwAAAOgAAAAAAAAAAAAAAABAeQEAAAAABwAAAOkAAAAAAAAAAAAAAAhAeQEAAAAABwAAAOoAAAAAAAAAAAAAABBAeQEAAAAABwAAAOsAAAAAAAAAAAAAABhAeQEAAAAABwAAAOwAAAAAAAAAAAAAACBAeQEAAAAABwAAAO0AAAAAAAAAAAAAAChAeQEAAAAABwAAAO4AAAAAAAAAAAAAADBAeQEAAAAABwAAAO8AAAAAAAAAAAAAADhAeQEAAAAABwAAAPAAAAAAAAAAAAAAAEBAeQEAAAAABwAAAPEAAAAAAAAAAAAAAEhAeQEAAAAABwAAAPIAAAAAAAAAAAAAAFBAeQEAAAAABwAAAPMAAAAAAAAAAAAAAFhAeQEAAAAABwAAAPQAAAAAAAAAAAAAAGBAeQEAAAAABwAAAPUAAAAAAAAAAAAAAGhAeQEAAAAABwAAAPYAAAAAAAAAAAAAAHBAeQEAAAAABwAAAPcAAAAAAAAAAAAAAHhAeQEAAAAABwAAAPgAAAAAAAAAAAAAAIBAeQEAAAAABwAAAPkAAAAAAAAAAAAAAIhAeQEAAAAABwAAAPoAAAAAAAAAAAAAAJBAeQEAAAAABwAAAPsAAAAAAAAAAAAAAJhAeQEAAAAABwAAAPwAAAAAAAAAAAAAAKBAeQEAAAAABwAAAP0AAAAAAAAAAAAAAKhAeQEAAAAABwAAAP4AAAAAAAAAAAAAALBAeQEAAAAABwAAAP8AAAAAAAAAAAAAALhAeQEAAAAABwAAAAABAAAAAAAAAAAAAMBAeQEAAAAABwAAAAEBAAAAAAAAAAAAAMhAeQEAAAAABwAAAAIBAAAAAAAAAAAAANBAeQEAAAAABwAAAAMBAAAAAAAAAAAAANhAeQEAAAAABwAAAAQBAAAAAAAAAAAAAOBAeQEAAAAABwAAAAUBAAAAAAAAAAAAAOhAeQEAAAAABwAAAAcBAAAAAAAAAAAAAPBAeQEAAAAABwAAAAgBAAAAAAAAAAAAAPhAeQEAAAAABwAAAAkBAAAAAAAAAAAAAABBeQEAAAAABwAAAAoBAAAAAAAAAAAAAAhBeQEAAAAABwAAAAsBAAAAAAAAAAAAABBBeQEAAAAABwAAAN4AAAAAAAAAAAAAABhBeQEAAAAABwAAAAYBAAAAAAAAAAAAACBBeQEAAAAABwAAAAwBAAAAAAAAAAAAAChBeQEAAAAABwAAAA0BAAAAAAAAAAAAADBBeQEAAAAABwAAAA4BAAAAAAAAAAAAADhBeQEAAAAABwAAAA8BAAAAAAAAAAAAAEBBeQEAAAAABwAAABABAAAAAAAAAAAAAEhBeQEAAAAABwAAABEBAAAAAAAAAAAAAFBBeQEAAAAABwAAABIBAAAAAAAAAAAAAFhBeQEAAAAABwAAABMBAAAAAAAAAAAAAGBBeQEAAAAABwAAABQBAAAAAAAAAAAAAGhBeQEAAAAABwAAABUBAAAAAAAAAAAAAHBBeQEAAAAABwAAABYBAAAAAAAAAAAAAHhBeQEAAAAABwAAABcBAAAAAAAAAAAAAIBBeQEAAAAABwAAABgBAAAAAAAAAAAAAIhBeQEAAAAABwAAABkBAAAAAAAAAAAAAJBBeQEAAAAABwAAABoBAAAAAAAAAAAAAJhBeQEAAAAABwAAABsBAAAAAAAAAAAAAKBBeQEAAAAABwAAABwBAAAAAAAAAAAAAKhBeQEAAAAABwAAAB0BAAAAAAAAAAAAALBBeQEAAAAABwAAAB4BAAAAAAAAAAAAALhBeQEAAAAABwAAAB8BAAAAAAAAAAAAAMBBeQEAAAAABwAAACABAAAAAAAAAAAAAMhBeQEAAAAABwAAACEBAAAAAAAAAAAAANBBeQEAAAAABwAAACIBAAAAAAAAAAAAANhBeQEAAAAABwAAACMBAAAAAAAAAAAAAOBBeQEAAAAABwAAACQBAAAAAAAAAAAAAOhBeQEAAAAABwAAACUBAAAAAAAAAAAAAPBBeQEAAAAABwAAACYBAAAAAAAAAAAAAPhBeQEAAAAABwAAACcBAAAAAAAAAAAAAABCeQEAAAAABwAAACgBAAAAAAAAAAAAAAhCeQEAAAAABwAAACkBAAAAAAAAAAAAABBCeQEAAAAABwAAACoBAAAAAAAAAAAAABhCeQEAAAAABwAAACsBAAAAAAAAAAAAACBCeQEAAAAABwAAACwBAAAAAAAAAAAAAChCeQEAAAAABwAAAC0BAAAAAAAAAAAAADBCeQEAAAAABwAAAC4BAAAAAAAAAAAAADhCeQEAAAAABwAAADABAAAAAAAAAAAAAEBCeQEAAAAABwAAADEBAAAAAAAAAAAAAEhCeQEAAAAABwAAADIBAAAAAAAAAAAAAFBCeQEAAAAABwAAADMBAAAAAAAAAAAAAFhCeQEAAAAABwAAADQBAAAAAAAAAAAAAGBCeQEAAAAABwAAADUBAAAAAAAAAAAAAGhCeQEAAAAABwAAADYBAAAAAAAAAAAAAHBCeQEAAAAABwAAADcBAAAAAAAAAAAAAHhCeQEAAAAABwAAADgBAAAAAAAAAAAAAIBCeQEAAAAABwAAADkBAAAAAAAAAAAAAIhCeQEAAAAABwAAADoBAAAAAAAAAAAAAJBCeQEAAAAABwAAADsBAAAAAAAAAAAAAJhCeQEAAAAABwAAADwBAAAAAAAAAAAAAKBCeQEAAAAABwAAAD0BAAAAAAAAAAAAAKhCeQEAAAAABwAAAD4BAAAAAAAAAAAAALBCeQEAAAAABwAAAD8BAAAAAAAAAAAAALhCeQEAAAAABwAAAEABAAAAAAAAAAAAAMBCeQEAAAAABwAAAEEBAAAAAAAAAAAAAMhCeQEAAAAABwAAAEIBAAAAAAAAAAAAANBCeQEAAAAABwAAAEMBAAAAAAAAAAAAANhCeQEAAAAABwAAAEQBAAAAAAAAAAAAAOBCeQEAAAAABwAAAEUBAAAAAAAAAAAAAOhCeQEAAAAABwAAAEYBAAAAAAAAAAAAAPBCeQEAAAAABwAAAEcBAAAAAAAAAAAAAPhCeQEAAAAABwAAAEgBAAAAAAAAAAAAAABDeQEAAAAABwAAAEkBAAAAAAAAAAAAAAhDeQEAAAAABwAAAEoBAAAAAAAAAAAAABBDeQEAAAAABwAAAEsBAAAAAAAAAAAAABhDeQEAAAAABwAAAEwBAAAAAAAAAAAAACBDeQEAAAAABwAAAE0BAAAAAAAAAAAAAChDeQEAAAAABwAAAE4BAAAAAAAAAAAAADBDeQEAAAAABwAAAE8BAAAAAAAAAAAAADhDeQEAAAAABwAAAFABAAAAAAAAAAAAAEBDeQEAAAAABwAAAGABAAAAAAAAAAAAAEhDeQEAAAAABwAAAGEBAAAAAAAAAAAAAFBDeQEAAAAABwAAAGIBAAAAAAAAAAAAAFhDeQEAAAAABwAAAGMBAAAAAAAAAAAAAGBDeQEAAAAABwAAAGQBAAAAAAAAAAAAAGhDeQEAAAAABwAAAGUBAAAAAAAAAAAAAHBDeQEAAAAABwAAAGYBAAAAAAAAAAAAAHhDeQEAAAAABwAAAGcBAAAAAAAAAAAAAIBDeQEAAAAABwAAAGgBAAAAAAAAAAAAAIhDeQEAAAAABwAAAGoBAAAAAAAAAAAAAJBDeQEAAAAABwAAAGkBAAAAAAAAAAAAAJhDeQEAAAAABwAAAGsBAAAAAAAAAAAAAKBDeQEAAAAABwAAAGwBAAAAAAAAAAAAAKhDeQEAAAAABwAAAG0BAAAAAAAAAAAAALBDeQEAAAAABwAAAG8BAAAAAAAAAAAAALhDeQEAAAAABwAAAHABAAAAAAAAAAAAAMBDeQEAAAAABwAAAHEBAAAAAAAAAAAAAMhDeQEAAAAABwAAAHIBAAAAAAAAAAAAANBDeQEAAAAABwAAAHMBAAAAAAAAAAAAANhDeQEAAAAABwAAAHQBAAAAAAAAAAAAAOBDeQEAAAAABwAAAHUBAAAAAAAAAAAAAOhDeQEAAAAABwAAAHYBAAAAAAAAAAAAAPBDeQEAAAAABwAAAHcBAAAAAAAAAAAAAPhDeQEAAAAABwAAAHgBAAAAAAAAAAAAAABEeQEAAAAABwAAAHkBAAAAAAAAAAAAAAhEeQEAAAAABwAAAHoBAAAAAAAAAAAAABBEeQEAAAAABwAAAHsBAAAAAAAAAAAAABhEeQEAAAAABwAAAHwBAAAAAAAAAAAAACBEeQEAAAAABwAAAH0BAAAAAAAAAAAAAChEeQEAAAAABwAAAH4BAAAAAAAAAAAAADBEeQEAAAAABwAAAH8BAAAAAAAAAAAAADhEeQEAAAAABwAAAIABAAAAAAAAAAAAAEBEeQEAAAAABwAAAIEBAAAAAAAAAAAAAEhEeQEAAAAABwAAAIIBAAAAAAAAAAAAAFBEeQEAAAAABwAAAIMBAAAAAAAAAAAAAFhEeQEAAAAABwAAAIQBAAAAAAAAAAAAAGBEeQEAAAAABwAAAIUBAAAAAAAAAAAAAGhEeQEAAAAABwAAAIYBAAAAAAAAAAAAAHBEeQEAAAAABwAAAIcBAAAAAAAAAAAAAHhEeQEAAAAABwAAAIgBAAAAAAAAAAAAAIBEeQEAAAAABwAAAIkBAAAAAAAAAAAAAIhEeQEAAAAABwAAAIoBAAAAAAAAAAAAAJBEeQEAAAAABwAAAIsBAAAAAAAAAAAAAJhEeQEAAAAABwAAAIwBAAAAAAAAAAAAAKBEeQEAAAAABwAAAI0BAAAAAAAAAAAAAKhEeQEAAAAABwAAAI4BAAAAAAAAAAAAALBEeQEAAAAABwAAAI8BAAAAAAAAAAAAALhEeQEAAAAABwAAAJEBAAAAAAAAAAAAAMBEeQEAAAAABwAAAJIBAAAAAAAAAAAAAMhEeQEAAAAABwAAAJMBAAAAAAAAAAAAANBEeQEAAAAABwAAAJQBAAAAAAAAAAAAANhEeQEAAAAABwAAAJUBAAAAAAAAAAAAAOBEeQEAAAAABwAAAJYBAAAAAAAAAAAAAOhEeQEAAAAABwAAAJcBAAAAAAAAAAAAAPBEeQEAAAAABwAAAJgBAAAAAAAAAAAAAPhEeQEAAAAABwAAAJkBAAAAAAAAAAAAAABFeQEAAAAABwAAAJoBAAAAAAAAAAAAAAhFeQEAAAAABwAAAJsBAAAAAAAAAAAAABBFeQEAAAAABwAAAJwBAAAAAAAAAAAAABhFeQEAAAAABwAAAJ0BAAAAAAAAAAAAACBFeQEAAAAABwAAAJ4BAAAAAAAAAAAAAChFeQEAAAAABwAAAJ8BAAAAAAAAAAAAADBFeQEAAAAABwAAAKABAAAAAAAAAAAAADhFeQEAAAAABwAAAKEBAAAAAAAAAAAAAEBFeQEAAAAABwAAAKIBAAAAAAAAAAAAAEhFeQEAAAAABwAAAKMBAAAAAAAAAAAAAFBFeQEAAAAABwAAAKQBAAAAAAAAAAAAAFhFeQEAAAAABwAAAKUBAAAAAAAAAAAAAGBFeQEAAAAABwAAAKYBAAAAAAAAAAAAAGhFeQEAAAAABwAAAKcBAAAAAAAAAAAAAHBFeQEAAAAABwAAAKgBAAAAAAAAAAAAAHhFeQEAAAAABwAAAKkBAAAAAAAAAAAAAIBFeQEAAAAABwAAAKoBAAAAAAAAAAAAAIhFeQEAAAAABwAAAKsBAAAAAAAAAAAAAJBFeQEAAAAABwAAAKwBAAAAAAAAAAAAAJhFeQEAAAAABwAAAK0BAAAAAAAAAAAAAKBFeQEAAAAABwAAAK4BAAAAAAAAAAAAAKhFeQEAAAAABwAAAK8BAAAAAAAAAAAAALBFeQEAAAAABwAAALABAAAAAAAAAAAAALhFeQEAAAAABwAAALEBAAAAAAAAAAAAAMBFeQEAAAAABwAAALIBAAAAAAAAAAAAAMhFeQEAAAAABwAAALQBAAAAAAAAAAAAANBFeQEAAAAABwAAALUBAAAAAAAAAAAAANhFeQEAAAAABwAAALYBAAAAAAAAAAAAAOBFeQEAAAAABwAAALcBAAAAAAAAAAAAAOhFeQEAAAAABwAAALgBAAAAAAAAAAAAAPBFeQEAAAAABwAAAL4BAAAAAAAAAAAAAPhFeQEAAAAABwAAAL8BAAAAAAAAAAAAAABGeQEAAAAABwAAAMABAAAAAAAAAAAAAAhGeQEAAAAABwAAAMEBAAAAAAAAAAAAABBGeQEAAAAABwAAAMIBAAAAAAAAAAAAABhGeQEAAAAABwAAAMMBAAAAAAAAAAAAACBGeQEAAAAABwAAAMQBAAAAAAAAAAAAAChGeQEAAAAABwAAAMUBAAAAAAAAAAAAADBGeQEAAAAABwAAAMYBAAAAAAAAAAAAADhGeQEAAAAABwAAAMcBAAAAAAAAAAAAAEBGeQEAAAAABwAAAMgBAAAAAAAAAAAAAEhGeQEAAAAABwAAAMkBAAAAAAAAAAAAAFBGeQEAAAAABwAAAMoBAAAAAAAAAAAAAFhGeQEAAAAABwAAAMsBAAAAAAAAAAAAAGBGeQEAAAAABwAAAMwBAAAAAAAAAAAAAGhGeQEAAAAABwAAAM0BAAAAAAAAAAAAAHBGeQEAAAAABwAAAM4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA/AACAfwAAgP8AAACAAACAvwEAAgD//39/AAAAX///f/8AAAAAAAAAAAAAAABl414Bu+NeAT/kXgHD5F4BljVfAVM1XwHuNV8BJDZfAVI2XwGMNl8BxjZfAVM3XwHgN18BbThfAaM4XwE/cl8BZHNfAWRzXwH0cl8BsXJfASJzXwEAAAAAAAAAAAAAAAD/////CAAAAP///////////////ygAAAAQAAAAGAAAACAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8YAAAAEAAAAP////8IAAAA////////////////KAAAADAAAAAQAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////oAAAABAAAACoAAAAKAAAAEAAAACIAAAAkAAAAJgAAABYAAAAcAAAAP////8IAAAA////////////////EAAAACAAAAAoAAAA////////////////CAAAABAAAAAAAAAAAQAAACAAAAAoAAAA////////////////CAAAABAAAAAAAAAAAQAAAP////8IAAAA////////////////EAAAAHgAAAAgAAAAKAAAAP///////////////wgAAAAQAAAAAAAAAAEAAAD/////CAAAAP///////////////xAAAACoAAAAkAAAAHgAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAAGAAAACAAAAD/////CAAAAP///////////////ygAAAAQAAAA/////wgAAAD///////////////8QAAAA/////wgAAAD///////////////8QAAAAGAAAAAAAAAAAAAAAAAAAAAoaa3l0aGUvcHJvdG8vYW5hbHlzaXMucHJvdG8SC2t5dGhlLnByb3RvGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGhlreXRoZS9wcm90by9zdG9yYWdlLnByb3RvIoMBCg9BbmFseXNpc1JlcXVlc3QSMQoLY29tcGlsYXRpb24YASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSGQoRZmlsZV9kYXRhX3NlcnZpY2UYAiABKAkSEAoIcmV2aXNpb24YAyABKAkSEAoIYnVpbGRfaWQYBCABKAkiUgoOQW5hbHlzaXNPdXRwdXQSDQoFdmFsdWUYASABKAwSMQoMZmluYWxfcmVzdWx0GAogASgLMhsua3l0aGUucHJvdG8uQW5hbHlzaXNSZXN1bHQikgEKDkFuYWx5c2lzUmVzdWx0EjIKBnN0YXR1cxgBIAEoDjIiLmt5dGhlLnByb3RvLkFuYWx5c2lzUmVzdWx0LlN0YXR1cxIPCgdzdW1tYXJ5GAIgASgJIjsKBlN0YXR1cxIMCghDT01QTEVURRAAEg4KCklOQ09NUExFVEUQARITCg9JTlZBTElEX1JFUVVFU1QQAiKKBAoPQ29tcGlsYXRpb25Vbml0EiIKBnZfbmFtZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEj4KDnJlcXVpcmVkX2lucHV0GAMgAygLMiYua3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LkZpbGVJbnB1dBIaChJoYXNfY29tcGlsZV9lcnJvcnMYBCABKAgSEAoIYXJndW1lbnQYBSADKAkSEwoLc291cmNlX2ZpbGUYBiADKAkSEgoKb3V0cHV0X2tleRgHIAEoCRIZChF3b3JraW5nX2RpcmVjdG9yeRgIIAEoCRIVCg1lbnRyeV9jb250ZXh0GAkgASgJEjUKC2Vudmlyb25tZW50GAogAygLMiAua3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LkVudhIlCgdkZXRhaWxzGAsgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueRqBAQoJRmlsZUlucHV0EiIKBnZfbmFtZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEiMKBGluZm8YAiABKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbxIlCgdkZXRhaWxzGAQgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUoECAMQBBoiCgNFbnYSDAoEbmFtZRgBIAEoCRINCgV2YWx1ZRgCIAEoCUoECAIQAyKtBQoIS3ppcEluZm8SMwoHY29ycG9yYRgBIAMoCzIiLmt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnBvcmFFbnRyeRIMCgRzaXplGAQgASgDEhYKDmFic29sdXRlX3BhdGhzGAYgAygJEhwKFGNyaXRpY2FsX2t6aXBfZXJyb3JzGAUgAygJGskDCgpDb3JwdXNJbmZvEl4KGGxhbmd1YWdlX3JlcXVpcmVkX2lucHV0cxgEIAMoCzI8Lmt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnB1c0luZm8uTGFuZ3VhZ2VSZXF1aXJlZElucHV0c0VudHJ5Ek8KEGxhbmd1YWdlX3NvdXJjZXMYBSADKAsyNS5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLkxhbmd1YWdlU291cmNlc0VudHJ5Gh8KDlJlcXVpcmVkSW5wdXRzEg0KBWNvdW50GAEgASgFGm4KG0xhbmd1YWdlUmVxdWlyZWRJbnB1dHNFbnRyeRILCgNrZXkYASABKAkSPgoFdmFsdWUYAiABKAsyLy5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLlJlcXVpcmVkSW5wdXRzOgI4ARpnChRMYW5ndWFnZVNvdXJjZXNFbnRyeRILCgNrZXkYASABKAkSPgoFdmFsdWUYAiABKAsyLy5reXRoZS5wcm90by5LemlwSW5mby5Db3JwdXNJbmZvLlJlcXVpcmVkSW5wdXRzOgI4AUoECAEQAkoECAIQA0oECAMQBBpQCgxDb3Jwb3JhRW50cnkSCwoDa2V5GAEgASgJEi8KBXZhbHVlGAIgASgLMiAua3l0aGUucHJvdG8uS3ppcEluZm8uQ29ycHVzSW5mbzoCOAFKBAgCEANKBAgDEAQiRQoNQnVpbGRNZXRhZGF0YRI0ChBjb21taXRfdGltZXN0YW1wGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCI0CgxGaWxlc1JlcXVlc3QSJAoFZmlsZXMYASADKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbyIoCghGaWxlSW5mbxIMCgRwYXRoGAEgASgJEg4KBmRpZ2VzdBgCIAEoCSJRCghGaWxlRGF0YRIPCgdjb250ZW50GAEgASgMEiMKBGluZm8YAiABKAsyFS5reXRoZS5wcm90by5GaWxlSW5mbxIPCgdtaXNzaW5nGAMgASgIImUKEUNvbXBpbGF0aW9uQnVuZGxlEioKBHVuaXQYASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSJAoFZmlsZXMYAiADKAsyFS5reXRoZS5wcm90by5GaWxlRGF0YSKSAQoSSW5kZXhlZENvbXBpbGF0aW9uEioKBHVuaXQYASABKAsyHC5reXRoZS5wcm90by5Db21waWxhdGlvblVuaXQSNAoFaW5kZXgYAiABKAsyJS5reXRoZS5wcm90by5JbmRleGVkQ29tcGlsYXRpb24uSW5kZXgaGgoFSW5kZXgSEQoJcmV2aXNpb25zGAEgAygJQjcKH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9aEWFuYWx5c2lzX2dvX3Byb3Rv+AEBYgZwcm90bzMAAAAAAAAAAAAAAAAAAAAAAP////84AAAACQAAAP////8oAAAAEAAAAP////8gAAAAFwAAAP////9AAAAAHwAAAP////8oAAAAJgAAAP////+wAAAANQAAAP////8YAAAAOwAAAEIAAAAwAAAARAAAAEsAAAAwAAAATQAAAP/////oAAAAVAAAAFsAAAAwAAAAXQAAAP////+4AAAAZgAAAP////8gAAAAbAAAAP////8wAAAAcgAAAP////8oAAAAeQAAAP////8oAAAAgQAAAP////84AAAAiAAAAP////8wAAAA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IFZCTUkgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2Ym1pdmxpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fVkJNSVZMSU5UUklOX0gKI2RlZmluZSBfX1ZCTUlWTElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmJtaSxhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2Ym1pLGF2eDUxMnZsIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJxaTEyOCgoX192MTZxaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2sxNiBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXgydmFyX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpOChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJxaTI1NigoX192MzJxaSlfX0EsIChfX3YzMnFpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4MnZhcl9lcGk4KF9fbTI1NmkgX19BLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2syX3Blcm11dGV4MnZhcl9lcGk4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwgX19tbWFzazMyIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fSSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleDJ2YXJfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV4dmFyX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFycWkxMjgoKF9fdjE2cWkpX19CLCAoX192MTZxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXh2YXJfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV4dmFyX2VwaTggKF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwKICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4dmFyX2VwaTggKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFycWkyNTYoKF9fdjMycWkpIF9fQiwgKF9fdjMycWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleHZhcl9lcGk4IChfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwKICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRleHZhcl9lcGk4IChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsCiAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbXVsdGlzaGlmdHFiMTI4KChfX3YxNnFpKV9fWCwgKF9fdjE2cWkpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cG11bHRpc2hpZnRxYjI1NigoX192MzJxaSlfX1gsIChfX3YzMnFpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX211bHRpc2hpZnRfZXBpNjRfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgAvKj09PS0tLS0gZW1taW50cmluLmggLSBTU0UyIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fRU1NSU5UUklOX0gKI2RlZmluZSBfX0VNTUlOVFJJTl9ICgojaW5jbHVkZSA8eG1taW50cmluLmg+Cgp0eXBlZGVmIGRvdWJsZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwoKdHlwZWRlZiBkb3VibGUgX19tMTI4ZF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDEpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fbTEyOGlfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxKSkpOwoKLyogVHlwZSBkZWZpbmVzLiAgKi8KdHlwZWRlZiBkb3VibGUgX192MmRmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX3YyZGkgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYpKSk7CnR5cGVkZWYgc2hvcnQgX192OGhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKdHlwZWRlZiBjaGFyIF9fdjE2cWkgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSkpOwoKLyogVW5zaWduZWQgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX192MmR1IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdjhodSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3YxNnF1IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKCi8qIFdlIG5lZWQgYW4gZXhwbGljaXRseSBzaWduZWQgdmFyaWFudCBmb3IgY2hhci4gTm90ZSB0aGF0IHRoaXMgc2hvdWxkbid0CiAqIGFwcGVhciBpbiB0aGUgaW50ZXJmYWNlIHRob3VnaC4gKi8KdHlwZWRlZiBzaWduZWQgY2hhciBfX3YxNnFzIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19NTVggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtbXgsc3NlMiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKLy8vIEFkZHMgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaW4gYm90aCBvcGVyYW5kcyBhbmQgcmV0dXJucyB0aGUKLy8vICAgIHN1bSBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0Ci8vLyAgICBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFNEIC8gQUREU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHN1bSBvZiB0aGUgbG93ZXIgNjQgYml0cyBvZiBib3RoIG9wZXJhbmRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkCi8vLyAgICBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX2FbMF0gKz0gX19iWzBdOwogIHJldHVybiBfX2E7Cn0KCi8vLyBBZGRzIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERQRCAvIEFERFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkoKF9fdjJkZilfX2EgKyAoX192MmRmKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kCi8vLyAgICBmcm9tIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgZGlmZmVyZW5jZSBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZgovLy8gICAgdGhlIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJTRCAvIFNVQlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWludWVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBkaWZmZXJlbmNlIG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSAtPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIFN1YnRyYWN0cyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1VCUEQgLyBTVUJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hIC0gKF9fdjJkZilfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpbiBib3RoIG9wZXJhbmRzIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgcHJvZHVjdCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNVUxTRCAvIE1VTFNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBwcm9kdWN0IG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSAqPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIE11bHRpcGxpZXMgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1VTFBEIC8gTVVMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hICogKF9fdjJkZilfX2IpOwp9CgovLy8gRGl2aWRlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiB0aGUgZmlyc3Qgb3BlcmFuZCBieSB0aGUKLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcXVvdGllbnQgaW4gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWU0QgLyBESVZTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBkaXZpc29yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgcXVvdGllbnQgb2YgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlCi8vLyAgICBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9kaXZfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19hWzBdIC89IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gUGVyZm9ybXMgYW4gZWxlbWVudC1ieS1lbGVtZW50IGRpdmlzaW9uIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWUEQgLyBESVZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGl2aXNvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Rpdl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpKChfX3YyZGYpX19hIC8gKF9fdjJkZilfX2IpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YKLy8vICAgIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyBpdCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gICAgVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUU0QgLyBTUVJUU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgdXBwZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIGNvcGllZCB0byB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBzcXVhcmUgcm9vdCBpcyBjYWxjdWxhdGVkIHVzaW5nIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoaXMgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHNxdWFyZSByb290IG9mIHRoZSBsb3dlciA2NCBiaXRzIG9mIG9wZXJhbmQgXGEgX19iLCBhbmQgd2hvc2UgdXBwZXIgNjQKLy8vICAgIGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIG9wZXJhbmQgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3FydF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX20xMjhkIF9fYyA9IF9fYnVpbHRpbl9pYTMyX3NxcnRzZCgoX192MmRmKV9fYik7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290IG9mIHRoZSBlYWNoIG9mIHR3byB2YWx1ZXMgc3RvcmVkIGluIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1FSVFBEIC8gU1FSVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlCi8vLyAgICB2YWx1ZXMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcXJ0X3BkKF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NxcnRwZCgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyBsb3dlciA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgYm90aCBvcGVyYW5kcywgYW5kCi8vLyAgICByZXR1cm5zIHRoZSBsZXNzZXIgb2YgdGhlIHBhaXIgb2YgdmFsdWVzIGluIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1JTlNEIC8gTUlOU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtaW5pbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21pbnNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBkb3VibGVdIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVzc2VyIG9mIGVhY2ggcGFpciBvZgovLy8gICAgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNSU5QRCAvIE1JTlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZXMKLy8vICAgIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21pbl9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbWlucGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGxvd2VyIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiBib3RoIG9wZXJhbmRzLCBhbmQKLy8vICAgIHJldHVybnMgdGhlIGdyZWF0ZXIgb2YgdGhlIHBhaXIgb2YgdmFsdWVzIGluIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BWFNEIC8gTUFYU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZQovLy8gICAgbG93ZXIgNjQgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtYXhpbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBkb3VibGVdIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgY29udGFpbmluZyB0aGUgZ3JlYXRlciBvZiBlYWNoIHBhaXIKLy8vICAgIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFYUEQgLyBNQVhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21heHBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5EIC8gUEFORCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYW5kX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkoKF9fdjJkdSlfX2EgJiAoX192MmR1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLCB1c2luZwovLy8gICAgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5ETiAvIFBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4gVGhlCi8vLyAgICBvbmUncyBjb21wbGVtZW50IG9mIHRoaXMgdmFsdWUgaXMgdXNlZCBpbiB0aGUgYml0d2lzZSBBTkQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByaWdodCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgQU5EIG9mIHRoZQovLy8gICAgdmFsdWVzIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYW5kbm90X3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZCkofihfX3YyZHUpX19hICYgKF9fdjJkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIE9SIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQT1IgLyBQT1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgT1Igb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fb3JfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKSgoX192MmR1KV9fYSB8IChfX3YyZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBYT1Igb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBYT1IgLyBQWE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBiaXR3aXNlIFhPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV94b3JfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKSgoX192MmR1KV9fYSBeIChfX3YyZHUpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAKLy8vICAgIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBFUVBEIC8gQ01QRVFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBlcXBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIGxlc3MgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuIEVhY2ggY29tcGFyaXNvbgovLy8gICAgeWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRQRCAvIENNUExUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsdF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbHRwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVBEIC8gQ01QTEVQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGxlX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsZXBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExUUEQgLyBDTVBMVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcGx0cGQoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTEVQRCAvIENNUExFUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBnZV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbGVwZCgoX192MmRmKV9fYiwgKF9fdjJkZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBvcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgQSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIGVhY2gKLy8vICAgIG90aGVyIGlmIG5laXRoZXIgdmFsdWUgaXMgYSBOYU4uIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwKLy8vICAgIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QT1JEUEQgLyBDTVBPUkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG9yZF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wb3JkcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgdW5vcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgQSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAidW5vcmRlcmVkIiB3aXRoIHJlc3BlY3QgdG8gZWFjaAovLy8gICAgb3RoZXIgaWYgb25lIG9yIGJvdGggdmFsdWVzIGFyZSBOYU4uIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvcgovLy8gICAgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QVU5PUkRQRCAvIENNUFVOT1JEUEQgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXB1bm9yZF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wdW5vcmRwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSB1bmVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkVRUEQgLyBDTVBORVFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5lcV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbmVxcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGxlc3MgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFBEIC8gQ01QTkxUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sdHBkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIG5vdCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTEVQRCAvIENNUE5MRVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmxlX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBubGVwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUUEQgLyBDTVBOTFRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5ndF9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY21wbmx0cGQoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MRVBEIC8gQ01QTkxFUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBuZ2VfcGQoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sZXBkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIGZvciBlcXVhbGl0eS4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBFUVNEIC8gQ01QRVFTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBlcXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFNEIC8gQ01QTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsdHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVNEIC8gQ01QTEVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGxlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBsZXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlCi8vLyAgICBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMVFNEIC8gQ01QTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3Rfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19tMTI4ZCBfX2MgPSBfX2J1aWx0aW5faWEzMl9jbXBsdHNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExFU0QgLyBDTVBMRVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ2Vfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgX19tMTI4ZCBfX2MgPSBfX2J1aWx0aW5faWEzMl9jbXBsZXNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLiBBIHBhaXIKLy8vICAgIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAib3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIGVhY2ggb3RoZXIgaWYKLy8vICAgIG5laXRoZXIgdmFsdWUgaXMgYSBOYU4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE9SRFNEIC8gQ01QT1JEU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBvcmRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG9yZHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgInVub3JkZXJlZCIgd2l0aCByZXNwZWN0IHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLiBBIHBhaXIKLy8vICAgIG9mIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGFyZSAidW5vcmRlcmVkIiB3aXRoIHJlc3BlY3QgdG8gZWFjaCBvdGhlciBpZgovLy8gICAgb25lIG9yIGJvdGggdmFsdWVzIGFyZSBOYU4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFVOT1JEU0QgLyBDTVBVTk9SRFNEIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wdW5vcmRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcHVub3Jkc2QoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyB1bmVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBORVFTRCAvIENNUE5FUVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmVxX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBuZXFzZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIG5vdCBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcKLy8vICAgIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGRkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFNEIC8gQ01QTkxUU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sdHNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFU0QgLyBDTVBOTEVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyAgQSAxMjgtYml0IHZlY3Rvci4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbnMgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiBcYSBfX2EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubGVfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcG5sZXNkKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbm90IGdyZWF0ZXIgdGhhbiB0aGUgY29ycmVzcG9uZGluZwovLy8gICAgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRkZGRkZGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUU0QgLyBDTVBOTFRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWlucyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIFxhIF9fYS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5ndF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICBfX20xMjhkIF9fYyA9IF9fYnVpbHRpbl9pYTMyX2NtcG5sdHNkKChfX3YyZGYpX19iLCAoX192MmRmKV9fYSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpIHsgX19jWzBdLCBfX2FbMV0gfTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBub3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRkZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTEVTRCAvIENNUE5MRVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW5zIHRoZSBjb21wYXJpc29uCi8vLyAgICByZXN1bHRzLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmdlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fbTEyOGQgX19jID0gX19idWlsdGluX2lhMzJfY21wbmxlc2QoKF9fdjJkZilfX2IsIChfX3YyZGYpX19hKTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4ZCkgeyBfX2NbMF0sIF9fYVsxXSB9Owp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSBmb3IgZXF1YWxpdHkuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWllcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkZXEoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4KLy8vICAgIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNEIC8gQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pc2RsdCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlsZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkbGUoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBncmVhdGVyIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUKLy8vICAgIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNEIC8gQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWd0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pc2RndCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU0QgLyBDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19hLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlnZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taXNkZ2UoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyB1bmVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTRCAvIENPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWluZXFfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWlzZG5lcSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSBmb3IgZXF1YWxpdHkuIFRoZQovLy8gICAgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWllcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGVxKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluCi8vLyAgICB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU0QgLyBVQ09NSVNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taWx0X3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taXNkbHQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiBlYWNoIG9mCi8vLyAgICB0aGUgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0gdG8gZGV0ZXJtaW5lIGlmCi8vLyAgICB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IHBhcmFtZXRlciBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMSBmb3IgdHJ1ZS4gSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVUNPTUlTRCAvIFVDT01JU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaXMKLy8vICAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pbGVfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOGQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pc2RsZSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzIGluIGVhY2ggb2YKLy8vICAgIHRoZSB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSB0byBkZXRlcm1pbmUgaWYKLy8vICAgIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyIGlzIGdyZWF0ZXIgdGhhbiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZQovLy8gICAgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlcgovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgIGNvbXBhcmVkIHRvIHRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIG9mIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlndF9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGd0KChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDEgZm9yIHRydWUuICBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlnZV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZGdlKChfX3YyZGYpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gZWFjaCBvZgovLy8gICAgdGhlIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdIHRvIGRldGVybWluZSBpZgovLy8gICAgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIgaXMgdW5lcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbgovLy8gICAgdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAxIGZvciB0cnVlLiBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlcgovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNEIC8gVUNPTUlTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpcwovLy8gICAgY29tcGFyZWQgdG8gdGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgb2YgXGEgX19iLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIGlzCi8vLyAgICBjb21wYXJlZCB0byB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0LiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaXMgTmFOLCAxIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taW5lcV9zZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlzZG5lcSgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gQ29udmVydHMgdGhlIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIHR3byBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50Ci8vLyAgICB2YWx1ZXMsIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyAgICBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IHZlY3RvciBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBEMlBTIC8gQ1ZUUEQyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRwZF9wcyhfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRwZDJwcygoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgbG93ZXIgdHdvIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludAovLy8gICAgdmFsdWVzLCByZXR1cm5lZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIHR3bwovLy8gICAgZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJQRCAvIENWVFBTMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIHR3byBzaW5nbGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBhcmUgY29udmVydGVkIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLiBUaGUKLy8vICAgIHVwcGVyIHR3byBlbGVtZW50cyBhcmUgdW51c2VkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHBzX3BkKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDAsIDEpLCBfX3YyZGYpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvd2VyIHR3byBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggaTMyXSBpbnRvIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcywgcmV0dXJuZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vICAgIFRoZSB1cHBlciB0d28gZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlREUTJQRCAvIENWVERRMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIGxvd2VyIHR3byBpbnRlZ2VyIGVsZW1lbnRzIGFyZQovLy8gICAgY29udmVydGVkIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLgovLy8KLy8vICAgIFRoZSB1cHBlciB0d28gZWxlbWVudHMgYXJlIHVudXNlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkzMl9wZChfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19hLCAoX192NHNpKV9fYSwgMCwgMSksIF9fdjJkZik7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgdHdvIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGludG8gdHdvIHNpZ25lZCAzMi1iaXQgaW50ZWdlciB2YWx1ZXMsCi8vLyAgICByZXR1cm5lZCBpbiB0aGUgbG93ZXIgNjQgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIG9mIHRoZSByZXN1bHQgdmVjdG9yIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUEQyRFEgLyBDVlRQRDJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlcy4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0cGRfZXBpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0cGQyZHEoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvdy1vcmRlciBlbGVtZW50IG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdCi8vLyAgICBpbnRvIGEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTRDJTSSAvIENWVFNEMlNJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2Rfc2kzMihfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzZDJzaSgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50IG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIsIGludG8gYQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSwgcmV0dXJuZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSByZXN1bHQgdmVjdG9yIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDk2IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0QyU1MgLyBDVlRTRDJTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA5NiBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgaXMgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgZnJvbSB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzZF9zcyhfX20xMjggX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHNkMnNzKChfX3Y0c2YpX19hLCAoX192MmRmKV9fYik7Cn0KCi8vLyBDb252ZXJ0cyBhIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSwgaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIsIGludG8KLy8vICAgIGEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSwgcmV0dXJuZWQgaW4gdGhlIGxvd2VyIDY0IGJpdHMgb2YKLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0IHZlY3RvcgovLy8gICAgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNJMlNEIC8gQ1ZUU0kyU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlCi8vLyAgICBjb3BpZWQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIGZyb20gdGhlIHNlY29uZCBwYXJhbWV0ZXIuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQKLy8vICAgIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMzJfc2QoX19tMTI4ZCBfX2EsIGludCBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSBsb3dlciBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0sIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLCBpbnRvIGEKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUsIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCB2ZWN0b3IKLy8vICAgIGFyZSBjb3BpZWQgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTUzJTRCAvIENWVFNTMlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB1cHBlciA2NCBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyB1c2VkIGluIHRoZSBjb252ZXJzaW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgZnJvbSB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c3Nfc2QoX19tMTI4ZCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byB0d28gc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcywKLy8vICAgIHJldHVybmVkIGluIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8KLy8vICAgIElmIHRoZSByZXN1bHQgb2YgZWl0aGVyIGNvbnZlcnNpb24gaXMgaW5leGFjdCwgdGhlIHJlc3VsdCBpcyB0cnVuY2F0ZWQKLy8vICAgIChyb3VuZGVkIHRvd2FyZHMgemVybykgcmVnYXJkbGVzcyBvZiB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nLiBUaGUgdXBwZXIKLy8vICAgIDY0IGJpdHMgb2YgdGhlIHJlc3VsdCB2ZWN0b3IgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUUEQyRFEgLyBDVlRUUEQyRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGNvbnZlcnRlZCB2YWx1ZXMuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRwZF9lcGkzMihfX20xMjhkIF9fYSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHEoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIGxvdy1vcmRlciBlbGVtZW50IG9mIGEgWzIgeCBkb3VibGVdIHZlY3RvciBpbnRvIGEgMzItYml0Ci8vLyAgICBzaWduZWQgaW50ZWdlciB2YWx1ZSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNEMlNJIC8gQ1ZUVFNEMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dHNkX3NpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNkMnNpKChfX3YyZGYpX19hKTsKfQoKLy8vIENvbnZlcnRzIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byB0d28gc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcywKLy8vICAgIHJldHVybmVkIGluIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEQyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGRfcGkzMihfX20xMjhkIF9fYSkKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfY3Z0cGQycGkoKF9fdjJkZilfX2EpOwp9CgovLy8gQ29udmVydHMgdGhlIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIHR3byBzaWduZWQgMzItYml0IGludGVnZXIgdmFsdWVzLAovLy8gICAgcmV0dXJuZWQgaW4gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyAgICBJZiB0aGUgcmVzdWx0IG9mIGVpdGhlciBjb252ZXJzaW9uIGlzIGluZXhhY3QsIHRoZSByZXN1bHQgaXMgdHJ1bmNhdGVkCi8vLyAgICAocm91bmRlZCB0b3dhcmRzIHplcm8pIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgTVhDU1Igc2V0dGluZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRUUEQyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0dHBkX3BpMzIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJwaSgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgdHdvIHNpZ25lZCAzMi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhIDY0LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggaTMyXSBpbnRvIHR3byBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcywgcmV0dXJuZWQgaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGkzMl9wZChfX202NCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0cGkycGQoKF9fdjJzaSlfX2EpOwp9CgovLy8gUmV0dXJucyB0aGUgbG93LW9yZGVyIGVsZW1lbnQgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gYXMKLy8vICAgIGEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSByZXR1cm5lZC4KLy8vIFxyZXR1cm5zIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSBjb3BpZWQgZnJvbSB0aGUgbG93ZXIgNjQKLy8vICAgIGJpdHMgb2YgXGEgX19hLgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzZF9mNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CgovLy8gTG9hZHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gZnJvbSBhbiBhbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQRCAvIE1PVkFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gaGFzIHRvIGJlIDE2LWJ5dGUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkX3BkKGRvdWJsZSBjb25zdCAqX19kcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTEyOGQqKV9fZHA7Cn0KCi8vLyBMb2FkcyBhIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgZnJvbSBhIHNwZWNpZmllZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGFuZCBkdXBsaWNhdGVzIGl0IHRvIGJvdGggdmVjdG9yIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRERVUCAvIE1PVkREVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIGFuZAovLy8gICAgZHVwbGljYXRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkMV9wZChkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkMV9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBkb3VibGUgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkMV9wZF9zdHJ1Y3QqKV9fZHApLT5fX3U7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3UsIF9fdSB9Owp9CgojZGVmaW5lICAgICAgICBfbW1fbG9hZF9wZDEoZHApICAgICAgICBfbW1fbG9hZDFfcGQoZHApCgovLy8gTG9hZHMgdHdvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLCBpbiByZXZlcnNlIG9yZGVyLCBmcm9tIGFuIGFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUEQgLyBNT1ZBUEQgPC9jPiBpbnN0cnVjdGlvbiArCi8vLyBuZWVkZWQgc2h1ZmZsaW5nIGluc3RydWN0aW9ucy4gSW4gQVZYIG1vZGUsIHRoZSBzaHVmZmxpbmcgbWF5IGJlIGNvbWJpbmVkCi8vLyB3aXRoIHRoZSBcYyBWTU9WQVBELCByZXN1bHRpbmcgaW4gb25seSBhIFxjIFZQRVJNSUxQRCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSAxNi1ieXRlIGFsaWduZWQgcG9pbnRlciB0byBhbiBhcnJheSBvZiBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyB0byBiZQovLy8gICAgbG9hZGVkIGluIHJldmVyc2Ugb3JkZXIuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByZXZlcnNlZCBsb2FkZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRyX3BkKGRvdWJsZSBjb25zdCAqX19kcCkKewogIF9fbTEyOGQgX191ID0gKihjb25zdCBfX20xMjhkKilfX2RwOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fdSwgKF9fdjJkZilfX3UsIDEsIDApOwp9CgovLy8gTG9hZHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gZnJvbSBhbgovLy8gICAgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBEIC8gTU9WVVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHVfcGQoZG91YmxlIGNvbnN0ICpfX2RwKQp7CiAgc3RydWN0IF9fbG9hZHVfcGQgewogICAgX19tMTI4ZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wZCopX19kcCktPl9fdjsKfQoKLy8vIExvYWRzIGEgNjQtYml0IGludGVnZXIgdmFsdWUgdG8gdGhlIGxvdyBlbGVtZW50IG9mIGEgMTI4LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IgYW5kIGNsZWFycyB0aGUgdXBwZXIgZWxlbWVudC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkdV9zaTY0KHZvaWQgY29uc3QgKl9fYSkKewogIHN0cnVjdCBfX2xvYWR1X3NpNjQgewogICAgbG9uZyBsb25nIF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBsb25nIGxvbmcgX191ID0gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9zaTY0KilfX2EpLT5fX3Y7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjJkaSl7X191LCAwTEx9Owp9CgovLy8gTG9hZHMgYSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWR1X3NpMzIodm9pZCBjb25zdCAqX19hKQp7CiAgc3RydWN0IF9fbG9hZHVfc2kzMiB7CiAgICBpbnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludCBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3NpMzIqKV9fYSktPl9fdjsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192NHNpKXtfX3UsIDAsIDAsIDB9Owp9CgovLy8gTG9hZHMgYSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBwb2ludGVyIHRvIGEgMTYtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZHVfc2kxNih2b2lkIGNvbnN0ICpfX2EpCnsKICBzdHJ1Y3QgX19sb2FkdV9zaTE2IHsKICAgIHNob3J0IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBzaG9ydCBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3NpMTYqKV9fYSktPl9fdjsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192OGhpKXtfX3UsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Owp9CgovLy8gTG9hZHMgYSA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSB0byB0aGUgbG93IGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhbmQgY2xlYXJzIHRoZSB1cHBlciBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTRCAvIE1PVlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgZG91YmxlLXByZWNpc2lvbiB2YWx1ZS4KLy8vICAgIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9zZChkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkX3NkX3N0cnVjdCB7CiAgICBkb3VibGUgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGRvdWJsZSBfX3UgPSAoKGNvbnN0IHN0cnVjdCBfX21tX2xvYWRfc2Rfc3RydWN0KilfX2RwKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX191LCAwIH07Cn0KCi8vLyBMb2FkcyBhIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaW50byB0aGUgaGlnaC1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdAovLy8gICAgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvdy1vcmRlciBiaXRzIGFyZSBjb3BpZWQgZnJvbSB0aGUgbG93LW9yZGVyCi8vLyAgICBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZIUEQgLyBNT1ZIUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNjQtYml0IG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgdmFsdWUgdGhhdCBpcyBsb2FkZWQuIFRoZSBsb2FkZWQgdmFsdWUgaXMgd3JpdHRlbiB0byBiaXRzCi8vLyAgICBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90IGhhdmUKLy8vICAgIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkaF9wZChfX20xMjhkIF9fYSwgZG91YmxlIGNvbnN0ICpfX2RwKQp7CiAgc3RydWN0IF9fbW1fbG9hZGhfcGRfc3RydWN0IHsKICAgIGRvdWJsZSBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgZG91YmxlIF9fdSA9ICgoY29uc3Qgc3RydWN0IF9fbW1fbG9hZGhfcGRfc3RydWN0KilfX2RwKS0+X191OwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX19hWzBdLCBfX3UgfTsKfQoKLy8vIExvYWRzIGEgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpbnRvIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBoaWdoLW9yZGVyIGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZQovLy8gICAgaGlnaC1vcmRlciBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUEQgLyBNT1ZMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBhIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlIHRoYXQgaXMgbG9hZGVkLiBUaGUgbG9hZGVkIHZhbHVlIGlzIHdyaXR0ZW4gdG8gYml0cwovLy8gICAgWzYzOjBdIG9mIHRoZSByZXN1bHQuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0bwovLy8gICAgYmUgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRsX3BkKF9fbTEyOGQgX19hLCBkb3VibGUgY29uc3QgKl9fZHApCnsKICBzdHJ1Y3QgX19tbV9sb2FkbF9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBkb3VibGUgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkbF9wZF9zdHJ1Y3QqKV9fZHApLT5fX3U7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3UsIF9fYVsxXSB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aXRoCi8vLyAgICB1bnNwZWNpZmllZCBjb250ZW50LiBUaGlzIGNvdWxkIGJlIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gYW5vdGhlcgovLy8gICAgaW50cmluc2ljIGZ1bmN0aW9uIHdoZXJlIHRoZSBhcmd1bWVudCBpcyByZXF1aXJlZCBidXQgdGhlIHZhbHVlIGlzIG5vdAovLy8gICAgYWN0dWFsbHkgdXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2l0aCB1bnNwZWNpZmllZAovLy8gICAgY29udGVudC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VuZGVmaW5lZF9wZCh2b2lkKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3VuZGVmMTI4KCk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgb2YgdGhlIHZlY3RvciBhcmUgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0aW5nLXBvaW50IHZhbHVlLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG93ZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfc2QoZG91YmxlIF9fdykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX193LCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLCB3aXRoIGVhY2gKLy8vICAgIG9mIHRoZSB0d28gZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkREVVAgLyBNT1ZMSFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9wZChkb3VibGUgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX3csIF9fdyB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgd2l0aCBlYWNoCi8vLyAgICBvZiB0aGUgdHdvIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUKLy8vICAgIHNwZWNpZmllZCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQIC8gTU9WTEhQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9wZDEoZG91YmxlIF9fdykKewogIHJldHVybiBfbW1fc2V0MV9wZChfX3cpOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXQovLy8gICAgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQRCAvIFVOUENLTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3gKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDY0Ci8vLyAgICBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcGQoZG91YmxlIF9fdywgZG91YmxlIF9feCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX194LCBfX3cgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0sCi8vLyAgICBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyIHdpdGggdGhlIHNwZWNpZmllZCBkb3VibGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLTFBEIC8gVU5QQ0tMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciA2NAovLy8gICAgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9feAovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfcGQoZG91YmxlIF9fdywgZG91YmxlIF9feCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX193LCBfX3ggfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0KLy8vICAgIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIC8gWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2l0aAovLy8gICAgYWxsIGVsZW1lbnRzIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0emVyb19wZCh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyAwLCAwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIKLy8vICAgIDY0IGJpdHMgYXJlIHNldCB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgc2Vjb25kIHBhcmFtZXRlci4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRQRCAvIEJMRU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIHdyaXR0ZW4gdG8gdGhlCi8vLyAgICB1cHBlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIHdyaXR0ZW4gdG8gdGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlX3NkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIF9fYVswXSA9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0QgLyBNT1ZTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVfc2QoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX21tX3N0b3JlX3NkX3N0cnVjdCB7CiAgICBkb3VibGUgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fbW1fc3RvcmVfc2Rfc3RydWN0KilfX2RwKS0+X191ID0gX19hWzBdOwp9CgovLy8gTW92ZXMgcGFja2VkIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdIHRvIGEgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+Vk1PVkFQRCAvIE1PVkFQUzwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhbiBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBzdG9yZSB0d28KLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBwYWNrZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZQovLy8gICAgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9wZChkb3VibGUgKl9fZHAsIF9fbTEyOGQgX19hKQp7CiAgKihfX20xMjhkKilfX2RwID0gX19hOwp9CgovLy8gTW92ZXMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdHdpY2UgdG8KLy8vICAgIHRoZSB1cHBlciBhbmQgbG93ZXIgNjQgYml0cyBvZiBhIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgIDxjPiBWTU9WRERVUCArIFZNT1ZBUEQgLyBNT1ZMSFBTICsgTU9WQVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBzdG9yZSB0d28gZG91YmxlLXByZWNpc2lvbgovLy8gICAgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBhcmUgY29waWVkIHRvIGVhY2gKLy8vICAgIG9mIHRoZSB2YWx1ZXMgaW4gXGEgX19kcC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlMV9wZChkb3VibGUgKl9fZHAsIF9fbTEyOGQgX19hKQp7CiAgX19hID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19hLCAwLCAwKTsKICBfbW1fc3RvcmVfcGQoX19kcCwgX19hKTsKfQoKLy8vIE1vdmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHR3aWNlIHRvCi8vLyAgICB0aGUgdXBwZXIgYW5kIGxvd2VyIDY0IGJpdHMgb2YgYSBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICA8Yz4gVk1PVkREVVAgKyBWTU9WQVBEIC8gTU9WTEhQUyArIE1PVkFQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjYW4gc3RvcmUgdHdvIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHdob3NlIGxvd2VyIDY0IGJpdHMgYXJlIGNvcGllZCB0byBlYWNoCi8vLyAgICBvZiB0aGUgdmFsdWVzIGluIFxhIF9fZHAuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9wZDEoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIF9tbV9zdG9yZTFfcGQoX19kcCwgX19hKTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGFuIHVuYWxpZ25lZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZVUEQgLyBNT1ZVUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX3N0b3JldV9wZCB7CiAgICBfX20xMjhkX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BkKilfX2RwKS0+X192ID0gX19hOwp9CgovLy8gU3RvcmVzIHR3byBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcywgaW4gcmV2ZXJzZSBvcmRlciwgZnJvbSBhIDEyOC1iaXQKLy8vICAgIHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYSAxNi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byBhIHNodWZmbGluZyBpbnN0cnVjdGlvbiBmb2xsb3dlZCBieSBhCi8vLyA8Yz4gVk1PVkFQRCAvIE1PVkFQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxNi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgY2FuIHN0b3JlIHR3bwovLy8gICAgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgcmV2ZXJzZWQgYW5kCi8vLyAgICBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXJfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19hLCAoX192MmRmKV9fYSwgMSwgMCk7CiAgKihfX20xMjhkICopX19kcCA9IF9fYTsKfQoKLy8vIFN0b3JlcyB0aGUgdXBwZXIgNjQgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkhQRCAvIE1PVkhQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2RwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVoX3BkKGRvdWJsZSAqX19kcCwgX19tMTI4ZCBfX2EpCnsKICBzdHJ1Y3QgX19tbV9zdG9yZWhfcGRfc3RydWN0IHsKICAgIGRvdWJsZSBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWhfcGRfc3RydWN0KilfX2RwKS0+X191ID0gX19hWzFdOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTFBEIC8gTU9WTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHAKLy8vICAgIEEgcG9pbnRlciB0byBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZWxfcGQoZG91YmxlICpfX2RwLCBfX20xMjhkIF9fYSkKewogIHN0cnVjdCBfX21tX3N0b3JlaF9wZF9zdHJ1Y3QgewogICAgZG91YmxlIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX21tX3N0b3JlaF9wZF9zdHJ1Y3QqKV9fZHApLT5fX3UgPSBfX2FbMF07Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzE2IHggaThdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciA4IGJpdHMgb2YgZWFjaCBzdW0gaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhCi8vLyAgICAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8KLy8vICAgIFRoZSBpbnRlZ2VyIGVsZW1lbnRzIG9mIGJvdGggcGFyYW1ldGVycyBjYW4gYmUgZWl0aGVyIHNpZ25lZCBvciB1bnNpZ25lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFEREIgLyBQQUREQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YxNnF1KV9fYSArIChfX3YxNnF1KV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzggeCBpMTZdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciAxNiBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERXIC8gUEFERFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjhodSlfX2EgKyAoX192OGh1KV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBpMzJdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciAzMiBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBREREIC8gUEFEREQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjRzdSlfX2EgKyAoX192NHN1KV9fYik7Cn0KCi8vLyBBZGRzIHR3byBzaWduZWQgb3IgdW5zaWduZWQgNjQtYml0IGludGVnZXIgdmFsdWVzLCByZXR1cm5pbmcgdGhlCi8vLyAgICBsb3dlciA2NCBiaXRzIG9mIHRoZSBzdW0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlci4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgc3VtIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fYWRkX3NpNjQoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGRxKChfX3YxZGkpX19hLCAoX192MWRpKV9fYik7Cn0KCi8vLyBBZGRzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBpNjRdLAovLy8gICAgc2F2aW5nIHRoZSBsb3dlciA2NCBiaXRzIG9mIGVhY2ggc3VtIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYQovLy8gICAgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vCi8vLyAgICBUaGUgaW50ZWdlciBlbGVtZW50cyBvZiBib3RoIHBhcmFtZXRlcnMgY2FuIGJlIGVpdGhlciBzaWduZWQgb3IgdW5zaWduZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERRIC8gUEFERFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgKyAoX192MmR1KV9fYik7Cn0KCi8vLyBBZGRzLCB3aXRoIHNhdHVyYXRpb24sIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0Ci8vLyAgICBzaWduZWQgWzE2IHggaThdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mCi8vLyAgICBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlCi8vLyAgICBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERTQiAvIFBBRERTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBzaWduZWQgWzE2IHggaThdIHZlY3RvciBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQgc3VtcyBvZgovLy8gICAgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc19lcGk4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWRkc2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3JzLCBzYXZpbmcgZWFjaCBzdW0gaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZgovLy8gICAgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBQb3NpdGl2ZSBzdW1zIGdyZWF0ZXIgdGhhbiAweDdGRkYKLy8vICAgIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBOZWdhdGl2ZSBzdW1zIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0bwovLy8gICAgMHg4MDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQUREU1cgLyBQQUREU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2F0dXJhdGVkIHN1bXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhZGRzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgdW5zaWduZWQgWzE2IHggaThdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50Ci8vLyAgICBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuIDB4RkYKLy8vICAgIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gTmVnYXRpdmUgc3VtcyBhcmUgc2F0dXJhdGVkIHRvIDB4MDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERVU0IgLyBQQUREVVNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZCBzdW1zCi8vLyAgICBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX2VwdTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhZGR1c2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQWRkcywgd2l0aCBzYXR1cmF0aW9uLCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdAovLy8gICAgdW5zaWduZWQgWzggeCBpMTZdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHN1bSBpbiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50Ci8vLyAgICBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFBvc2l0aXZlIHN1bXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweEZGRkYgYXJlIHNhdHVyYXRlZCB0byAweEZGRkYuIE5lZ2F0aXZlIHN1bXMgYXJlIHNhdHVyYXRlZCB0byAweDAwMDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBRERVU0IgLyBQQUREVVNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZCBzdW1zCi8vLyAgICBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWRkdXN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBDb21wdXRlcyB0aGUgcm91bmRlZCBhdmVyYWdlcyBvZiBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3bwovLy8gICAgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9ycywgc2F2aW5nIGVhY2ggcmVzdWx0IGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFWR0IgLyBQQVZHQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZGVkCi8vLyAgICBhdmVyYWdlcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hdmdfZXB1OChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGF2Z2IxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQ29tcHV0ZXMgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28KLy8vICAgIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3RvcnMsIHNhdmluZyBlYWNoIHJlc3VsdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBVkdXIC8gUEFWR1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgcm91bmRlZAovLy8gICAgYXZlcmFnZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYXZnX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYXZndzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBwcm9kdWNpbmcgZWlnaHQgaW50ZXJtZWRpYXRlIDMyLWJpdCBzaWduZWQgaW50ZWdlciBwcm9kdWN0cywgYW5kCi8vLyAgICBhZGRzIHRoZSBjb25zZWN1dGl2ZSBwYWlycyBvZiAzMi1iaXQgcHJvZHVjdHMgdG8gZm9ybSBhIDEyOC1iaXQgc2lnbmVkCi8vLyAgICBbNCB4IGkzMl0gdmVjdG9yLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFsxNTowXSBvZiBib3RoIHBhcmFtZXRlcnMgYXJlIG11bHRpcGxpZWQgcHJvZHVjaW5nIGEKLy8vICAgIDMyLWJpdCBwcm9kdWN0LCBiaXRzIFszMToxNl0gb2YgYm90aCBwYXJhbWV0ZXJzIGFyZSBtdWx0aXBsaWVkIHByb2R1Y2luZwovLy8gICAgYSAzMi1iaXQgcHJvZHVjdCwgYW5kIHRoZSBzdW0gb2YgdGhvc2UgdHdvIHByb2R1Y3RzIGJlY29tZXMgYml0cyBbMzE6MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNQUREV0QgLyBQTUFERFdEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHNpZ25lZCBbNCB4IGkzMl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMKLy8vICAgIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGRfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtYWRkd2QxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XQovLy8gICAgdmVjdG9ycywgc2F2aW5nIHRoZSBncmVhdGVyIHZhbHVlIGZyb20gZWFjaCBjb21wYXJpc29uIGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFNXIC8gUE1BWFNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWUgb2YKLy8vICAgIGVhY2ggY29tcGFyaXNvbi4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1heHN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XQovLy8gICAgdmVjdG9ycywgc2F2aW5nIHRoZSBncmVhdGVyIHZhbHVlIGZyb20gZWFjaCBjb21wYXJpc29uIGluIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIGEgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFVCIC8gUE1BWFVCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWUgb2YKLy8vICAgIGVhY2ggY29tcGFyaXNvbi4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcHU4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWF4dWIxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHNtYWxsZXIgdmFsdWUgZnJvbSBlYWNoIGNvbXBhcmlzb24gaW4gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOU1cgLyBQTUlOU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc21hbGxlciB2YWx1ZSBvZgovLy8gICAgZWFjaCBjb21wYXJpc29uLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWluc3cxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHNtYWxsZXIgdmFsdWUgZnJvbSBlYWNoIGNvbXBhcmlzb24gaW4gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgYSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOVUIgLyBQTUlOVUIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzE2IHggaThdIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB1bnNpZ25lZCBbMTYgeCBpOF0gdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHVuc2lnbmVkIFsxNiB4IGk4XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgc21hbGxlciB2YWx1ZSBvZgovLy8gICAgZWFjaCBjb21wYXJpc29uLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwdTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtaW51YjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHVwcGVyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSByZXN1bHQgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMSFcgLyBQTVVMSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgdXBwZXIgMTYgYml0cyBvZgovLy8gICAgZWFjaCBvZiB0aGUgZWlnaHQgMzItYml0IHByb2R1Y3RzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsaGlfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtdWxodzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gdW5zaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIHVwcGVyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHJlc3VsdCB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNVUxIVVcgLyBQTVVMSFVXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHVuc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdW5zaWduZWQgWzggeCBpMTZdIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB1bnNpZ25lZCBbOCB4IGkxNl0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHVwcGVyIDE2IGJpdHMKLy8vICAgIG9mIGVhY2ggb2YgdGhlIGVpZ2h0IDMyLWJpdCBwcm9kdWN0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhpX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbXVsaHV3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byBzaWduZWQgWzggeCBpMTZdCi8vLyAgICB2ZWN0b3JzLCBzYXZpbmcgdGhlIGxvd2VyIDE2IGJpdHMgb2YgZWFjaCAzMi1iaXQgcHJvZHVjdCBpbiB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiBhIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSByZXN1bHQgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMTFcgLyBQTVVMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgc2lnbmVkIFs4IHggaTE2XSB2ZWN0b3IgY29udGFpbmluZyB0aGUgbG93ZXIgMTYgYml0cyBvZgovLy8gICAgZWFjaCBvZiB0aGUgZWlnaHQgMzItYml0IHByb2R1Y3RzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsbG9fZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGh1KV9fYSAqIChfX3Y4aHUpX19iKTsKfQoKLy8vIE11bHRpcGxpZXMgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgYml0cwovLy8gICAgb2YgdGhlIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIGFuZCByZXR1cm5zIHRoZSA2NC1iaXQgdW5zaWduZWQKLy8vICAgIHByb2R1Y3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1VTFVEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3Qgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbXVsX3N1MzIoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG11bHVkcSgoX192MnNpKV9fYSwgKF9fdjJzaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBsb3dlcgovLy8gICAgYml0cyBvZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gWzIgeCBpNjRdIHZlY3RvcnMsIGFuZCByZXR1cm5zCi8vLyAgICB0aGUgNjQtYml0IHByb2R1Y3RzIGluIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIGEgWzIgeCBpNjRdIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1VTFVEUSAvIFBNVUxVRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIFsyIHggaTY0XSB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgWzIgeCBpNjRdIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSBbMiB4IGk2NF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3Qgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9lcHUzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcG11bHVkcTEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IpOwp9CgovLy8gQ29tcHV0ZXMgdGhlIGFic29sdXRlIGRpZmZlcmVuY2VzIG9mIGNvcnJlc3BvbmRpbmcgOC1iaXQgaW50ZWdlcgovLy8gICAgdmFsdWVzIGluIHR3byAxMjgtYml0IHZlY3RvcnMuIFN1bXMgdGhlIGZpcnN0IDggYWJzb2x1dGUgZGlmZmVyZW5jZXMsIGFuZAovLy8gICAgc2VwYXJhdGVseSBzdW1zIHRoZSBzZWNvbmQgOCBhYnNvbHV0ZSBkaWZmZXJlbmNlcy4gUGFja3MgdGhlc2UgdHdvCi8vLyAgICB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlciBzdW1zIGludG8gdGhlIHVwcGVyIGFuZCBsb3dlciBlbGVtZW50cyBvZiBhCi8vLyAgICBbMiB4IGk2NF0gdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0FEQlcgLyBQU0FEQlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSBbMiB4IGk2NF0gdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgdGhlIHNldHMgb2YgYWJzb2x1dGUKLy8vICAgIGRpZmZlcmVuY2VzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NhZF9lcHU4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2FkYncxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IGludGVnZXIgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQkIgLyBQU1VCQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzCi8vLyAgICBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YxNnF1KV9fYSAtIChfX3YxNnF1KV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXIgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlcgLyBQU1VCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzCi8vLyAgICBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGh1KV9fYSAtIChfX3Y4aHUpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIG9wZXJhbmRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1VCRCAvIFBTVUJEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y0c3UpX19hIC0gKF9fdjRzdSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIHNpZ25lZCBvciB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB2YWx1ZXMgYW5kIHdyaXRlcyB0aGUKLy8vICAgIGRpZmZlcmVuY2UgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNVQlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2Ugb2YgdGhlIHZhbHVlcyBpbgovLy8gICAgdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zdWJfc2k2NChfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnEoKF9fdjFkaSlfX2EsIChfX3YxZGkpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gWzIgeCBpNjRdIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTVUJRIC8gUFNVQlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YgdGhlIHZhbHVlcwovLy8gICAgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgLSAoX192MmR1KV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgY29ycmVzcG9uZGluZyA4LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0IGFuZAovLy8gICAgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gICAgRGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLCBhbmQgZGlmZmVyZW5jZXMgbGVzcwovLy8gICAgdGhhbiAweDgwIGFyZSBzYXR1cmF0ZWQgdG8gMHg4MC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlNCIC8gUFNVQlNCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHN1YnNiMTI4KChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyBjb3JyZXNwb25kaW5nIDE2LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0IGFuZAovLy8gICAgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gICAgRGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRiwgYW5kIHZhbHVlcyBsZXNzCi8vLyAgICB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlNXIC8gUFNVQlNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzdWJzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gU3VidHJhY3RzIGNvcnJlc3BvbmRpbmcgOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0Ci8vLyAgICBhbmQgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gRGlmZmVyZW5jZXMgbGVzcyB0aGFuIDB4MDAgYXJlIHNhdHVyYXRlZCB0byAweDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1VCVVNCIC8gUFNVQlVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICBkaWZmZXJlbmNlcyBvZiB0aGUgdmFsdWVzIGluIHRoZSBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfZXB1OChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHN1YnVzYjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgaW4gdGhlIGlucHV0Ci8vLyAgICBhbmQgcmV0dXJucyB0aGUgZGlmZmVyZW5jZXMgaW4gdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZXMgaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gRGlmZmVyZW5jZXMgbGVzcyB0aGFuIDB4MDAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4MDAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNVQlVTVyAvIFBTVUJVU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgZGlmZmVyZW5jZXMgb2YgdGhlIHZhbHVlcyBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJzX2VwdTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3VidXN3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFORCAvIFBBTkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGJpdHdpc2UgQU5EIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hbmRfc2kxMjgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MmR1KV9fYSAmIChfX3YyZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdHdvIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzLCB1c2luZyB0aGUKLy8vICAgIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIHZhbHVlcyBjb250YWluZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQU5ETiAvIFBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0IHNvdXJjZSBvcGVyYW5kLiBUaGUgb25lJ3MgY29tcGxlbWVudAovLy8gICAgb2YgdGhpcyB2YWx1ZSBpcyB1c2VkIGluIHRoZSBiaXR3aXNlIEFORC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIG9uZSdzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCB0aGUgdmFsdWVzIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZG5vdF9zaTEyOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKH4oX192MmR1KV9fYSAmIChfX3YyZHUpX19iKTsKfQovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIE9SIG9mIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE9SIC8gUE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIE9SIG9mIHRoZSB2YWx1ZXMKLy8vICAgIGluIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9vcl9zaTEyOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZHUpX19hIHwgKF9fdjJkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiB0d28gMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBYT1IgLyBQWE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBpbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1feG9yX3NpMTI4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgXiAoX192MmR1KV9fYik7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQKLy8vICAgIG51bWJlciBvZiBieXRlcy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9zbGxpX3NpMTI4KF9fbTEyOGkgYSwgY29uc3QgaW50IGltbSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEUSAvIFBTTExEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gaW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJ5dGVzIHRvIGxlZnQtc2hpZnQgb3BlcmFuZAovLy8gICAgXGEgYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQgdmFsdWUuCiNkZWZpbmUgX21tX3NsbGlfc2kxMjgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGxkcWkxMjhfYnl0ZXNoaWZ0KChfX3YyZGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX2JzbGxpX3NpMTI4KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsZHFpMTI4X2J5dGVzaGlmdCgoX192MmRpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExXIC8gUFNMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTE2KF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsd2kxMjgoKF9fdjhoaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExXIC8gUFNMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGx3MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEIC8gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExEIC8gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGxkMTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCA2NC1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExRIC8gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX2VwaTY0KF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2xscWkxMjgoKF9fdjJkaSlfX2EsIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCA2NC1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gTG93LW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTTExRIC8gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byBsZWZ0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzbGxxMTI4KChfX3YyZGkpX19hLCAoX192MmRpKV9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IHZhbHVlIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQKLy8vICAgIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24KLy8vICAgIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSQVcgLyBQU1JBVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBiaXRzIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhaV9lcGkxNihfX20xMjhpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXdpMTI4KChfX3Y4aGkpX19hLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIDE2LWJpdCB2YWx1ZSBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kCi8vLyAgICBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduCi8vLyAgICBiaXQgb2YgdGhlIGluaXRpYWwgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkFXIC8gUFNSQVcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXcxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgdmFsdWUgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZAovLy8gICAgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBmaWxsZWQgd2l0aCB0aGUgc2lnbgovLy8gICAgYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JBRCAvIFBTUkFEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEFuIGludGVnZXIgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZQovLy8gICAgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMzItYml0IHZhbHVlIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQKLy8vICAgIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24KLy8vICAgIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSQUQgLyBQU1JBRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgaW4gd2hpY2ggYml0cyBbNjM6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhZDEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQKLy8vICAgIG51bWJlciBvZiBieXRlcy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fc3JsaV9zaTEyOChfX20xMjhpIGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMRFEgLyBQU1JMRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIGltbQovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBieXRlcyB0byByaWdodC1zaGlmdCBvcGVyYW5kCi8vLyAgICBcYSBhLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWUuCiNkZWZpbmUgX21tX3NybGlfc2kxMjgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzcmxkcWkxMjhfYnl0ZXNoaWZ0KChfX3YyZGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX2JzcmxpX3NpMTI4KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsZHFpMTI4X2J5dGVzaGlmdCgoX192MmRpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggb2YgMTYtYml0IHZhbHVlcyBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZCBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkxXIC8gUFNSTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSBzcGVjaWZ5aW5nIHRoZSBudW1iZXIgb2YgYml0cyB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlCi8vLyAgICBpbiBvcGVyYW5kIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfZXBpMTYoX19tMTI4aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Bzcmx3aTEyOCgoX192OGhpKV9fYSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCBvZiAxNi1iaXQgdmFsdWVzIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSTFcgLyBQU1JMVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgaW4gd2hpY2ggYml0cyBbNjM6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIG9mIDMyLWJpdCB2YWx1ZXMgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMRCAvIFBTUkxEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEFuIGludGVnZXIgdmFsdWUgc3BlY2lmeWluZyB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZQovLy8gICAgaW4gb3BlcmFuZCBcYSBfX2EuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxpX2VwaTMyKF9fbTEyOGkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsZGkxMjgoKF9fdjRzaSlfX2EsIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggb2YgMzItYml0IHZhbHVlcyBpbiB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZCBieSB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBiaXRzLiBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTUkxEIC8gUFNSTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGluIHdoaWNoIGJpdHMgWzYzOjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICB0byByaWdodC1zaGlmdCBlYWNoIHZhbHVlIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JsX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fY291bnQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNybGQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCBvZiA2NC1iaXQgdmFsdWVzIGluIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kIGJ5IHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMuIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNSTFEgLyBQU1JMUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHNwZWNpZnlpbmcgdGhlIG51bWJlciBvZiBiaXRzIHRvIHJpZ2h0LXNoaWZ0IGVhY2ggdmFsdWUKLy8vICAgIGluIG9wZXJhbmQgXGEgX19hLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JsaV9lcGk2NChfX20xMjhpIF9fYSwgaW50IF9fY291bnQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHNybHFpMTI4KChfX3YyZGkpX19hLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIG9mIDY0LWJpdCB2YWx1ZXMgaW4gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgYnkgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgYml0cy4gSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU1JMUSAvIFBTUkxRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbiB3aGljaCBiaXRzIFs2MzowXSBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgdG8gcmlnaHQtc2hpZnQgZWFjaCB2YWx1ZSBpbiBvcGVyYW5kIFxhIF9fYS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzcmxxMTI4KChfX3YyZGkpX19hLCAoX192MmRpKV9fY291bnQpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyBmb3IgZXF1YWxpdHkuIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRgovLy8gICAgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFUUIgLyBQQ01QRVFCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MTZxaSlfX2EgPT0gKF9fdjE2cWkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLAovLy8gICAgMHhGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVFXIC8gUENNUEVRVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y4aGkpX19hID09IChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIGZvciBlcXVhbGl0eS4gRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLAovLy8gICAgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVRRCAvIFBDTVBFUUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192NHNpKV9fYSA9PSAoX192NHNpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCB2YWx1ZXMgb2YgdGhlIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBhcmUKLy8vICAgIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvcgovLy8gICAgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBHVEIgLyBQQ01QR1RCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGd0X2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgY29tcGFyaXNvbiwgYnV0IF9fdjE2cWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjE2cXMuICovCiAgcmV0dXJuIChfX20xMjhpKSgoX192MTZxcylfX2EgPiAoX192MTZxcylfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgMTYtYml0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdCBvcGVyYW5kCi8vLyAgICBhcmUgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUVyAvIFBDTVBHVFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192OGhpKV9fYSA+IChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDMyLWJpdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9ycyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3Qgb3BlcmFuZAovLy8gICAgYXJlIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gICAgRWFjaCBjb21wYXJpc29uIHlpZWxkcyAweDAgZm9yIGZhbHNlLCAweEZGRkZGRkZGIGZvciB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QR1REIC8gUENNUEdURCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBndF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y0c2kpX19hID4gKF9fdjRzaSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgOC1iaXQgdmFsdWVzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvcnMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0IG9wZXJhbmQgYXJlIGxlc3MKLy8vICAgIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUQiAvIFBDTVBHVEIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gX21tX2NtcGd0X2VwaTgoX19iLCBfX2EpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzaWduZWQgMTYtYml0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdCBvcGVyYW5kCi8vLyAgICBhcmUgbGVzcyB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyAgICBFYWNoIGNvbXBhcmlzb24geWllbGRzIDB4MCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUVyAvIFBDTVBHVFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIF9tbV9jbXBndF9lcGkxNihfX2IsIF9fYSk7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNpZ25lZCAzMi1iaXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcnMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0IG9wZXJhbmQKLy8vICAgIGFyZSBsZXNzIHRoYW4gdGhvc2UgaW4gdGhlIHNlY29uZCBvcGVyYW5kLgovLy8KLy8vICAgIEVhY2ggY29tcGFyaXNvbiB5aWVsZHMgMHgwIGZvciBmYWxzZSwgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdURCAvIFBDTVBHVEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIF9tbV9jbXBndF9lcGkzMihfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBDb252ZXJ0cyBhIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSBmcm9tIHRoZSBzZWNvbmQgb3BlcmFuZCBpbnRvIGEKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgYW5kIHJldHVybnMgaXQgaW4gdGhlIGxvd2VyIGVsZW1lbnQgb2YgYSBbMiB4Ci8vLyAgICBkb3VibGVdIHZlY3RvcjsgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIHJldHVybmVkIHZlY3RvciBpcyBjb3BpZWQgZnJvbQovLy8gICAgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFNJMlNEIC8gQ1ZUU0kyU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpNjRfc2QoX19tMTI4ZCBfX2EsIGxvbmcgbG9uZyBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIHRoZSBmaXJzdCAobG93ZXIpIGVsZW1lbnQgb2YgYSB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGludG8gYQovLy8gICAgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLCBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgcm91bmRpbmcgbW9kZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0QyU0kgLyBDVlRTRDJTSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgbG93ZXIgNjQgYml0cyBhcmUgdXNlZCBpbiB0aGUKLy8vICAgIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBzaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNkX3NpNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0c2Qyc2k2NCgoX192MmRmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0aGUgZmlyc3QgKGxvd2VyKSBlbGVtZW50IG9mIGEgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGEKLy8vICAgIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNEMlNJIC8gQ1ZUVFNEMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZSB1c2VkIGluIHRoZQovLy8gICAgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dHNkX3NpNjQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNkMnNpNjQoKF9fdjJkZilfX2EpOwp9CiNlbmRpZgoKLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs0IHggaTMyXSBpbnRvIGEgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlREUTJQUyAvIENWVERRMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkzMl9wcyhfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0c2kpX19hLCBfX3Y0c2YpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMkRRIC8gQ1ZUUFMyRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHBzX2VwaTMyKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHEoKF9fdjRzZilfX2EpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbNCB4IGkzMl0sCi8vLyAgICB0cnVuY2F0aW5nIHRoZSByZXN1bHQgd2hlbiBpdCBpcyBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUUFMyRFEgLyBDVlRUUFMyRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRwc19lcGkzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcSgoX192NHNmKV9fYSk7Cn0KCi8vLyBSZXR1cm5zIGEgdmVjdG9yIG9mIFs0IHggaTMyXSB3aGVyZSB0aGUgbG93ZXN0IGVsZW1lbnQgaXMgdGhlIGlucHV0Ci8vLyAgICBvcGVyYW5kIGFuZCB0aGUgcmVtYWluaW5nIGVsZW1lbnRzIGFyZSB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMzJfc2kxMjgoaW50IF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y0c2kpeyBfX2EsIDAsIDAsIDAgfTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFJldHVybnMgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdoZXJlIHRoZSBsb3dlciBlbGVtZW50IGlzIHRoZSBpbnB1dAovLy8gICAgb3BlcmFuZCBhbmQgdGhlIHVwcGVyIGVsZW1lbnQgaXMgemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBzaWduZWQgaW50ZWdlciBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpNjRfc2kxMjgobG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3YyZGkpeyBfX2EsIDAgfTsKfQojZW5kaWYKCi8vLyBNb3ZlcyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBhIHZlY3RvciBvZiBbNCB4IGkzMl0gdG8gYQovLy8gICAgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIGxlYXN0IHNpZ25pZmljYW50IDMyIGJpdHMgYXJlIG1vdmVkIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBzaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2kxMjhfc2kzMihfX20xMjhpIF9fYSkKewogIF9fdjRzaSBfX2IgPSAoX192NHNpKV9fYTsKICByZXR1cm4gX19iWzBdOwp9CgojaWZkZWYgX194ODZfNjRfXwovLy8gTW92ZXMgdGhlIGxlYXN0IHNpZ25pZmljYW50IDY0IGJpdHMgb2YgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHRvIGEKLy8vICAgIDY0LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSBsZWFzdCBzaWduaWZpY2FudCA2NCBiaXRzIGFyZSBtb3ZlZCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNpMTI4X3NpNjQoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CiNlbmRpZgoKLy8vIE1vdmVzIHBhY2tlZCBpbnRlZ2VyIHZhbHVlcyBmcm9tIGFuIGFsaWduZWQgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24KLy8vICAgIHRvIGVsZW1lbnRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRFFBIC8gTU9WRFFBIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQW4gYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgaW50ZWdlciB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9zaTEyOChfX20xMjhpIGNvbnN0ICpfX3ApCnsKICByZXR1cm4gKl9fcDsKfQoKLy8vIE1vdmVzIHBhY2tlZCBpbnRlZ2VyIHZhbHVlcyBmcm9tIGFuIHVuYWxpZ25lZCAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbgovLy8gICAgdG8gZWxlbWVudHMgaW4gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEUVUgLyBNT1ZEUVUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkdV9zaTEyOChfX20xMjhpX3UgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3NpMTI4IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfc2kxMjgqKV9fcCktPl9fdjsKfQoKLy8vIFJldHVybnMgYSB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdoZXJlIHRoZSBsb3dlciBlbGVtZW50IGlzIHRha2VuIGZyb20KLy8vICAgIHRoZSBsb3dlciBlbGVtZW50IG9mIHRoZSBvcGVyYW5kLCBhbmQgdGhlIHVwcGVyIGVsZW1lbnQgaXMgemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WUSAvIE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgbG93ZXIgb3JkZXIgYml0cyBjb250YWluIHRoZQovLy8gICAgbW92ZWQgdmFsdWUuIFRoZSBoaWdoZXIgb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRsX2VwaTY0KF9fbTEyOGlfdSBjb25zdCAqX19wKQp7CiAgc3RydWN0IF9fbW1fbG9hZGxfZXBpNjRfc3RydWN0IHsKICAgIGxvbmcgbG9uZyBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpIHsgKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkbF9lcGk2NF9zdHJ1Y3QqKV9fcCktPl9fdSwgMH07Cn0KCi8vLyBHZW5lcmF0ZXMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2l0aCB1bnNwZWNpZmllZCBjb250ZW50LgovLy8gICAgVGhpcyBjb3VsZCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50IHRvIGFub3RoZXIgaW50cmluc2ljIGZ1bmN0aW9uIHdoZXJlIHRoZQovLy8gICAgYXJndW1lbnQgaXMgcmVxdWlyZWQgYnV0IHRoZSB2YWx1ZSBpcyBub3QgYWN0dWFsbHkgdXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gd2l0aCB1bnNwZWNpZmllZCBjb250ZW50LgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5kZWZpbmVkX3NpMTI4KHZvaWQpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdW5kZWYxMjgoKTsKfQoKLy8vIEluaXRpYWxpemVzIGJvdGggNjQtYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3ExCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccGFyYW0gX19xMAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbiB2ZWN0b3Igb2YgWzIgeCBpNjRdLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcwovLy8gICAgcHJvdmlkZWQgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0X2VwaTY0eChsb25nIGxvbmcgX19xMSwgbG9uZyBsb25nIF9fcTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgX19xMCwgX19xMSB9Owp9CgovLy8gSW5pdGlhbGl6ZXMgYm90aCA2NC1iaXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIHdpdGgKLy8vICAgIHRoZSBzcGVjaWZpZWQgNjQtYml0IGludGVnZXIgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yIG9mIFsyIHggaTY0XS4KLy8vIFxwYXJhbSBfX3EwCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpNjQoX19tNjQgX19xMSwgX19tNjQgX19xMCkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0eCgobG9uZyBsb25nKV9fcTEsIChsb25nIGxvbmcpX19xMCk7Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgMzItYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDMyLWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9faTIKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2kxCi8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzozMl0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpMzIoaW50IF9faTMsIGludCBfX2kyLCBpbnQgX19pMSwgaW50IF9faTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192NHNpKXsgX19pMCwgX19pMSwgX19pMiwgX19pM307Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgMTYtYml0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSB3aXRoCi8vLyAgICB0aGUgc3BlY2lmaWVkIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3c3Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6MTEyXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3c2Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6OTZdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fdzUKLy8vICAgIEEgMTYtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjgwXSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3c0Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX193MwovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSBkZXN0aW5hdGlvbgovLy8gICAgdmVjdG9yLgovLy8gXHBhcmFtIF9fdzIKLy8vICAgIEEgMTYtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjMyXSBvZiB0aGUgZGVzdGluYXRpb24KLy8vICAgIHZlY3Rvci4KLy8vIFxwYXJhbSBfX3cxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6MF0gb2YgdGhlIGRlc3RpbmF0aW9uCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgdmFsdWVzCi8vLyAgICBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfZXBpMTYoc2hvcnQgX193Nywgc2hvcnQgX193Niwgc2hvcnQgX193NSwgc2hvcnQgX193NCwgc2hvcnQgX193Mywgc2hvcnQgX193Miwgc2hvcnQgX193MSwgc2hvcnQgX193MCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y4aGkpeyBfX3cwLCBfX3cxLCBfX3cyLCBfX3czLCBfX3c0LCBfX3c1LCBfX3c2LCBfX3c3IH07Cn0KCi8vLyBJbml0aWFsaXplcyB0aGUgOC1iaXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHdpdGgKLy8vICAgIHRoZSBzcGVjaWZpZWQgOC1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19iMTUKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzEyNzoxMjBdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTQKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzExOToxMTJdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTMKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzExMToxMDRdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzEwMzo5Nl0gb2YgdGhlIGRlc3RpbmF0aW9uIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IxMQovLy8gICAgSW5pdGlhbGl6ZXMgYml0cyBbOTU6ODhdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMTAKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzg3OjgwXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjkKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzc5OjcyXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjgKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzcxOjY0XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjcKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzYzOjU2XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjYKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzU1OjQ4XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjUKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzQ3OjQwXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjQKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzM5OjMyXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjMKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzMxOjI0XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjIKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzIzOjE2XSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHBhcmFtIF9fYjEKLy8vICAgIEluaXRpYWxpemVzIGJpdHMgWzE1OjhdIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IuCi8vLyBccGFyYW0gX19iMAovLy8gICAgSW5pdGlhbGl6ZXMgYml0cyBbNzowXSBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcwovLy8gICAgcHJvdmlkZWQgaW4gdGhlIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0X2VwaTgoY2hhciBfX2IxNSwgY2hhciBfX2IxNCwgY2hhciBfX2IxMywgY2hhciBfX2IxMiwgY2hhciBfX2IxMSwgY2hhciBfX2IxMCwgY2hhciBfX2I5LCBjaGFyIF9fYjgsIGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLCBjaGFyIF9fYjIsIGNoYXIgX19iMSwgY2hhciBfX2IwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjE2cWkpeyBfX2IwLCBfX2IxLCBfX2IyLCBfX2IzLCBfX2I0LCBfX2I1LCBfX2I2LCBfX2I3LCBfX2I4LCBfX2I5LCBfX2IxMCwgX19iMTEsIF9fYjEyLCBfX2IxMywgX19iMTQsIF9fYjE1IH07Cn0KCi8vLyBJbml0aWFsaXplcyBib3RoIHZhbHVlcyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igd2l0aCB0aGUKLy8vICAgIHNwZWNpZmllZCA2NC1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3EKLy8vICAgIEludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCBib3RoCi8vLyAgICBlbGVtZW50cyBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpNjR4KGxvbmcgbG9uZyBfX3EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NHgoX19xLCBfX3EpOwp9CgovLy8gSW5pdGlhbGl6ZXMgYm90aCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCB0aGUKLy8vICAgIHNwZWNpZmllZCA2NC1iaXQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19xCi8vLyAgICBBIDY0LWJpdCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gd2l0aCBhbGwgZWxlbWVudHMKLy8vICAgIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHByb3ZpZGVkIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9lcGk2NChfX202NCBfX3EpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NChfX3EsIF9fcSk7Cn0KCi8vLyBJbml0aWFsaXplcyBhbGwgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdpdGggdGhlCi8vLyAgICBzcGVjaWZpZWQgMzItYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faQovLy8gICAgQSAzMi1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpMzIoaW50IF9faSkKewogIHJldHVybiBfbW1fc2V0X2VwaTMyKF9faSwgX19pLCBfX2ksIF9faSk7Cn0KCi8vLyBJbml0aWFsaXplcyBhbGwgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIHdpdGggdGhlCi8vLyAgICBzcGVjaWZpZWQgMTYtYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSAxNi1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpMTYoc2hvcnQgX193KQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpMTYoX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3cpOwp9CgovLy8gSW5pdGlhbGl6ZXMgYWxsIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB3aXRoIHRoZQovLy8gICAgc3BlY2lmaWVkIDgtYml0IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gOC1iaXQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHdpdGggYWxsIGVsZW1lbnRzCi8vLyAgICBjb250YWluaW5nIHRoZSB2YWx1ZSBwcm92aWRlZCBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfZXBpOChjaGFyIF9fYikKewogIHJldHVybiBfbW1fc2V0X2VwaTgoX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19xMAovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHBhcmFtIF9fcTEKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX2VwaTY0KF9fbTY0IF9fcTAsIF9fbTY0IF9fcTEpCnsKICByZXR1cm4gX21tX3NldF9lcGk2NChfX3ExLCBfX3EwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTIKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfZXBpMzIoaW50IF9faTAsIGludCBfX2kxLCBpbnQgX19pMiwgaW50IF9faTMpCnsKICByZXR1cm4gX21tX3NldF9lcGkzMihfX2kzLCBfX2kyLCBfX2kxLCBfX2kwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCBpbml0aWFsaXplZCBpbiByZXZlcnNlIG9yZGVyCi8vLyAgICAgd2l0aCB0aGUgc3BlY2lmaWVkIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzIKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3czCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193NAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzUKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3c2Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTExOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzcKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6MTEyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfZXBpMTYoc2hvcnQgX193MCwgc2hvcnQgX193MSwgc2hvcnQgX193Miwgc2hvcnQgX193Mywgc2hvcnQgX193NCwgc2hvcnQgX193NSwgc2hvcnQgX193Niwgc2hvcnQgX193NykKewogIHJldHVybiBfbW1fc2V0X2VwaTE2KF9fdzcsIF9fdzYsIF9fdzUsIF9fdzQsIF9fdzMsIF9fdzIsIF9fdzEsIF9fdzApOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgICB3aXRoIHRoZSBzcGVjaWZpZWQgOC1iaXQgaW50ZWdyYWwgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYjAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzk6MzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjQwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjYKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iOAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzcxOjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo3Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjExCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzoxMjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0cl9lcGk4KGNoYXIgX19iMCwgY2hhciBfX2IxLCBjaGFyIF9fYjIsIGNoYXIgX19iMywgY2hhciBfX2I0LCBjaGFyIF9fYjUsIGNoYXIgX19iNiwgY2hhciBfX2I3LCBjaGFyIF9fYjgsIGNoYXIgX19iOSwgY2hhciBfX2IxMCwgY2hhciBfX2IxMSwgY2hhciBfX2IxMiwgY2hhciBfX2IxMywgY2hhciBfX2IxNCwgY2hhciBfX2IxNSkKewogIHJldHVybiBfbW1fc2V0X2VwaTgoX19iMTUsIF9fYjE0LCBfX2IxMywgX19iMTIsIF9fYjExLCBfX2IxMCwgX19iOSwgX19iOCwgX19iNywgX19iNiwgX19iNSwgX19iNCwgX19iMywgX19iMiwgX19iMSwgX19iMCk7Cn0KCi8vLyBDcmVhdGVzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyAvIFhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8KLy8vICAgIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXR6ZXJvX3NpMTI4KHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgMExMLCAwTEwgfTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYSBtZW1vcnkgbG9jYXRpb24gYWxpZ25lZCBvbiBhCi8vLyAgICAxMjgtYml0IGJvdW5kYXJ5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYW4gYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGludGVnZXIKLy8vICAgIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9zaTEyOChfX20xMjhpICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgKl9fcCA9IF9fYjsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBTIC8gTU9WVVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kxMjgoX19tMTI4aV91ICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMTI4IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfc2kxMjgqKV9fcCktPl9fdiA9IF9fYjsKfQoKLy8vIFN0b3JlcyBhIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIGZyb20gdGhlIGxvdyBlbGVtZW50IG9mIGEgMTI4LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNjQtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JldV9zaTY0KHZvaWQgKl9fcCwgX19tMTI4aSBfX2IpCnsKICBzdHJ1Y3QgX19zdG9yZXVfc2k2NCB7CiAgICBsb25nIGxvbmcgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3NpNjQqKV9fcCktPl9fdiA9ICgoX192MmRpKV9fYilbMF07Cn0KCi8vLyBTdG9yZXMgYSAzMi1iaXQgaW50ZWdlciB2YWx1ZSBmcm9tIHRoZSBsb3cgZWxlbWVudCBvZiBhIDEyOC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZEIC8gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kzMih2b2lkICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMzIgewogICAgaW50IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9zaTMyKilfX3ApLT5fX3YgPSAoKF9fdjRzaSlfX2IpWzBdOwp9CgovLy8gU3RvcmVzIGEgMTYtYml0IGludGVnZXIgdmFsdWUgZnJvbSB0aGUgbG93IGVsZW1lbnQgb2YgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDE2LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGRvZXMgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZXVfc2kxNih2b2lkICpfX3AsIF9fbTEyOGkgX19iKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpMTYgewogICAgc2hvcnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3NpMTYqKV9fcCktPl9fdiA9ICgoX192OGhpKV9fYilbMF07Cn0KCi8vLyBNb3ZlcyBieXRlcyBzZWxlY3RlZCBieSB0aGUgbWFzayBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFdoZW4gYSBtYXNrIGJpdCBpcyAxLCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgYnl0ZSBpcyB3cml0dGVuLCBvdGhlcndpc2UgaXQgaXMgbm90IHdyaXR0ZW4uCi8vLwovLy8gICAgVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlCi8vLyAgICB1c2VkIGFnYWluIHNvb24pLiBFeGNlcHRpb24gYW5kIHRyYXAgYmVoYXZpb3IgZm9yIGVsZW1lbnRzIG5vdCBzZWxlY3RlZAovLy8gICAgZm9yIHN0b3JhZ2UgdG8gbWVtb3J5IGFyZSBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZEUVUgLyBNQVNLTU9WRFFVIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4KLy8vIFxwYXJhbSBfX24KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtYXNrLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgb2YKLy8vICAgIGVhY2ggYnl0ZSByZXByZXNlbnRzIHRoZSBtYXNrIGJpdHMuCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYW4gdW5hbGlnbmVkIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIHdoZXJlIHRoZSBzcGVjaWZpZWQKLy8vICAgIHZhbHVlcyBhcmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXNrbW92ZXVfc2kxMjgoX19tMTI4aSBfX2QsIF9fbTEyOGkgX19uLCBjaGFyICpfX3ApCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrbW92ZHF1KChfX3YxNnFpKV9fZCwgKF9fdjE2cWkpX19uLCBfX3ApOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGk2NF0gdG8KLy8vICAgIGEgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUFMgLyBNT1ZMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBsb3dlciA2NCBiaXRzCi8vLyAgICBvZiB0aGUgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlbF9lcGk2NChfX20xMjhpX3UgKl9fcCwgX19tMTI4aSBfX2EpCnsKICBzdHJ1Y3QgX19tbV9zdG9yZWxfZXBpNjRfc3RydWN0IHsKICAgIGxvbmcgbG9uZyBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWxfZXBpNjRfc3RydWN0KilfX3ApLT5fX3UgPSBfX2FbMF07Cn0KCi8vLyBTdG9yZXMgYSAxMjgtYml0IGZsb2F0aW5nIHBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYSAxMjgtYml0Ci8vLyAgICBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyAgICBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUKLy8vICAgIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5UUFMgLyBNT1ZOVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHRoZSAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIDY0LWJpdCB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RyZWFtX3BkKGRvdWJsZSAqX19wLCBfX20xMjhkIF9fYSkKewogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192MmRmKV9fYSwgKF9fdjJkZiopX19wKTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYSAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vICAgIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZQovLy8gICAgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlRQUyAvIE1PVk5UUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gdGhlIDEyOC1iaXQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdXNlZCB0byBzdG9yZSB0aGUgdmFsdWUuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9zaTEyOChfX20xMjhpICpfX3AsIF9fbTEyOGkgX19hKQp7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3YyZGkpX19hLCAoX192MmRpKilfX3ApOwp9CgovLy8gU3RvcmVzIGEgMzItYml0IGludGVnZXIgdmFsdWUgaW4gdGhlIHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gICAgVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlCi8vLyAgICB1c2VkIGFnYWluIHNvb24pLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVk5USSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0aGUgMzItYml0IG1lbW9yeSBsb2NhdGlvbiB1c2VkIHRvIHN0b3JlIHRoZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlMiIpKSkKX21tX3N0cmVhbV9zaTMyKGludCAqX19wLCBpbnQgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbW92bnRpKF9fcCwgX19hKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFN0b3JlcyBhIDY0LWJpdCBpbnRlZ2VyIHZhbHVlIGluIHRoZSBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vICAgIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZQovLy8gICAgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZOVElRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHRoZSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UyIikpKQpfbW1fc3RyZWFtX3NpNjQobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZudGk2NChfX3AsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIFRoZSBjYWNoZSBsaW5lIGNvbnRhaW5pbmcgXGEgX19wIGlzIGZsdXNoZWQgYW5kIGludmFsaWRhdGVkIGZyb20gYWxsCi8vLyAgICBjYWNoZXMgaW4gdGhlIGNvaGVyZW5jeSBkb21haW4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ0xGTFVTSCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNhY2hlIGxpbmUgdG8gYmUKLy8vICAgIGZsdXNoZWQuCnZvaWQgX21tX2NsZmx1c2godm9pZCBjb25zdCAqIF9fcCk7CgovLy8gRm9yY2VzIHN0cm9uZyBtZW1vcnkgb3JkZXJpbmcgKHNlcmlhbGl6YXRpb24pIGJldHdlZW4gbG9hZAovLy8gICAgaW5zdHJ1Y3Rpb25zIHByZWNlZGluZyB0aGlzIGluc3RydWN0aW9uIGFuZCBsb2FkIGluc3RydWN0aW9ucyBmb2xsb3dpbmcKLy8vICAgIHRoaXMgaW5zdHJ1Y3Rpb24sIGVuc3VyaW5nIHRoZSBzeXN0ZW0gY29tcGxldGVzIGFsbCBwcmV2aW91cyBsb2FkcyBiZWZvcmUKLy8vICAgIGV4ZWN1dGluZyBzdWJzZXF1ZW50IGxvYWRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExGRU5DRSA8L2M+IGluc3RydWN0aW9uLgovLy8Kdm9pZCBfbW1fbGZlbmNlKHZvaWQpOwoKLy8vIEZvcmNlcyBzdHJvbmcgbWVtb3J5IG9yZGVyaW5nIChzZXJpYWxpemF0aW9uKSBiZXR3ZWVuIGxvYWQgYW5kIHN0b3JlCi8vLyAgICBpbnN0cnVjdGlvbnMgcHJlY2VkaW5nIHRoaXMgaW5zdHJ1Y3Rpb24gYW5kIGxvYWQgYW5kIHN0b3JlIGluc3RydWN0aW9ucwovLy8gICAgZm9sbG93aW5nIHRoaXMgaW5zdHJ1Y3Rpb24sIGVuc3VyaW5nIHRoYXQgdGhlIHN5c3RlbSBjb21wbGV0ZXMgYWxsCi8vLyAgICBwcmV2aW91cyBtZW1vcnkgYWNjZXNzZXMgYmVmb3JlIGV4ZWN1dGluZyBzdWJzZXF1ZW50IG1lbW9yeSBhY2Nlc3Nlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNRkVOQ0UgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCnZvaWQgX21tX21mZW5jZSh2b2lkKTsKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgovLy8gQ29udmVydHMgMTYtYml0IHNpZ25lZCBpbnRlZ2VycyBmcm9tIGJvdGggMTI4LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb3BlcmFuZHMgaW50byA4LWJpdCBzaWduZWQgaW50ZWdlcnMsIGFuZCBwYWNrcyB0aGUgcmVzdWx0cyBpbnRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFBvc2l0aXZlIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RiBhcmUgc2F0dXJhdGVkIHRvIDB4N0YuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQUNLU1NXQiAvIFBBQ0tTU1dCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMKLy8vICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBWYWx1ZXMgbGVzcwovLy8gICB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkIFs4IHggaThdIHZhbHVlcyBhcmUKLy8vICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMKLy8vICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBWYWx1ZXMgbGVzcwovLy8gICB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkIFs4IHggaThdIHZhbHVlcyBhcmUKLy8vICAgd3JpdHRlbiB0byB0aGUgaGlnaGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9wYWNrc19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFja3Nzd2IxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIENvbnZlcnRzIDMyLWJpdCBzaWduZWQgaW50ZWdlcnMgZnJvbSBib3RoIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmRzIGludG8gMTYtYml0IHNpZ25lZCBpbnRlZ2VycywgYW5kIHBhY2tzIHRoZSByZXN1bHRzIGludG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFDS1NTRFcgLyBQQUNLU1NEVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGhpZ2hlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcGFja3NfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhY2tzc2R3MTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fYik7Cn0KCi8vLyBDb252ZXJ0cyAxNi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCAxMjgtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvcGVyYW5kcyBpbnRvIDgtYml0IHVuc2lnbmVkIGludGVnZXJzLCBhbmQgcGFja3MgdGhlIHJlc3VsdHMgaW50byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAweDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEFDS1VTV0IgLyBQQUNLVVNXQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0uIEVhY2ggMTYtYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcwovLy8gICAgYSBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGFuIDgtYml0IHVuc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gVmFsdWVzIGdyZWF0ZXIgdGhhbiAweEZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gVmFsdWVzIGxlc3MKLy8vICAgIHRoYW4gMHgwMCBhcmUgc2F0dXJhdGVkIHRvIDB4MDAuIFRoZSBjb252ZXJ0ZWQgWzggeCBpOF0gdmFsdWVzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XS4gRWFjaCAxNi1iaXQgZWxlbWVudCBpcyB0cmVhdGVkIGFzCi8vLyAgICBhIHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAweDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHgwMC4gVGhlIGNvbnZlcnRlZCBbOCB4IGk4XSB2YWx1ZXMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSBoaWdoZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2t1c19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFja3Vzd2IxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEV4dHJhY3RzIDE2IGJpdHMgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLCB1c2luZwovLy8gICAgdGhlIGltbWVkaWF0ZS12YWx1ZSBwYXJhbWV0ZXIgYXMgYSBzZWxlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVYVFJXIC8gUEVYVFJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUuIEJpdHMgWzI6MF0gc2VsZWN0cyB2YWx1ZXMgZnJvbSBcYSBfX2EgdG8gYmUgYXNzaWduZWQKLy8vICAgIHRvIGJpdHNbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIDAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzE1OjBdIG9mIFxhIF9fYS4gXG4KLy8vICAgIDAwMTogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzMxOjE2XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAwMTA6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs0NzozMl0gb2YgXGEgX19hLiBcbgovLy8gICAgMDExOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbNjM6NDhdIG9mIFxhIF9fYS4gXG4KLy8vICAgIDEwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzc5OjY0XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAxMDE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo4MF0gb2YgXGEgX19hLiBcbgovLy8gICAgMTEwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTExOjk2XSBvZiBcYSBfX2EuIFxuCi8vLyAgICAxMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFsxMjc6MTEyXSBvZiBcYSBfX2EuCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyLCB3aG9zZSBsb3dlciAxNiBiaXRzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIgYW5kIHRoZSByZW1haW5pbmcgYml0cyBhcmUgYXNzaWduZWQgemVyb3MuCiNkZWZpbmUgX21tX2V4dHJhY3RfZXBpMTYoYSwgaW1tKSBcCiAgKChpbnQpKHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjhoaSgoX192OGhpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSkpCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgZmlyc3QgbWFraW5nIGEgY29weSBvZiB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyLCBhbmQgdGhlbiBpbnNlcnRpbmcgdGhlIGxvd2VyIDE2IGJpdHMKLy8vICAgIG9mIGFuIGludGVnZXIgcGFyYW1ldGVyIGludG8gYW4gb2Zmc2V0IHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlLXZhbHVlCi8vLyAgICBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBJTlNSVyAvIFBJTlNSVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUKLy8vICAgIHJlc3VsdCBhbmQgdGhlbiBvbmUgb2YgdGhlIGVpZ2h0IGVsZW1lbnRzIGluIHRoZSByZXN1bHQgaXMgcmVwbGFjZWQgYnkKLy8vICAgIHRoZSBsb3dlciAxNiBiaXRzIG9mIFxhIF9fYi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEFuIGludGVnZXIuIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZSB3cml0dGVuIHRvIHRoZQovLy8gICAgcmVzdWx0IGJlZ2lubmluZyBhdCBhbiBvZmZzZXQgc3BlY2lmaWVkIGJ5IFxhIF9faW1tLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgc3BlY2lmeWluZyB0aGUgYml0IG9mZnNldCBpbiB0aGUgcmVzdWx0IGF0IHdoaWNoIHRoZQovLy8gICAgbG93ZXIgMTYgYml0cyBvZiBcYSBfX2IgYXJlIHdyaXR0ZW4uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9pbnNlcnRfZXBpMTYoYSwgYiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjhoaSgoX192OGhpKShfX20xMjhpKShhKSwgKGludCkoYiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSkpKQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIG9mIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIDgtYml0Ci8vLyAgICBlbGVtZW50IGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMTYgeCBpOF0gdG8gY3JlYXRlIGEgMTYtYml0IG1hc2sKLy8vICAgIHZhbHVlLCB6ZXJvLWV4dGVuZHMgdGhlIHZhbHVlLCBhbmQgd3JpdGVzIGl0IHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVk1TS0IgLyBQTU9WTVNLQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgd2l0aCBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgZnJvbSBlYWNoIDgtYml0IGVsZW1lbnQgaW4gXGEgX19hLAovLy8gICAgd3JpdHRlbiB0byBiaXRzIFsxNTowXS4gVGhlIG90aGVyIGJpdHMgYXJlIGFzc2lnbmVkIHplcm9zLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbWFza19lcGk4KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Btb3Ztc2tiMTI4KChfX3YxNnFpKV9fYSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBzaHVmZmxpbmcgZm91ciAzMi1iaXQKLy8vICAgIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIsIHVzaW5nIHRoZSBpbW1lZGlhdGUtdmFsdWUKLy8vICAgIHBhcmFtZXRlciBhcyBhIHNwZWNpZmllci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX3NodWZmbGVfZXBpMzIoX19tMTI4aSBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZEIC8gUFNIVUZEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIGltbQovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIGNvbnRhaW5pbmcgYW4gOC1iaXQgdmFsdWUgc3BlY2lmeWluZyB3aGljaCBlbGVtZW50cyB0bwovLy8gICAgY29weSBmcm9tIGEuIFRoZSBkZXN0aW5hdGlvbnMgd2l0aGluIHRoZSAxMjgtYml0IGRlc3RpbmF0aW9uIGFyZSBhc3NpZ25lZAovLy8gICAgdmFsdWVzIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBCaXRzIFsxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2MzozMl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU6NF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXQgdmFsdWUgYXNzaWdubWVudHM6IFxuCi8vLyAgICAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzMxOjBdIG9mIFxhIGEuIFxuCi8vLyAgICAwMTogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzYzOjMyXSBvZiBcYSBhLiBcbgovLy8gICAgMTA6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo2NF0gb2YgXGEgYS4gXG4KLy8vICAgIDExOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTI3Ojk2XSBvZiBcYSBhLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fc2h1ZmZsZV9lcGkzMihhLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNodWZkKChfX3Y0c2kpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBzaHVmZmxpbmcgZm91ciBsb3dlciAxNi1iaXQKLy8vICAgIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0sIHVzaW5nIHRoZSBpbW1lZGlhdGUKLy8vICAgIHZhbHVlIHBhcmFtZXRlciBhcyBhIHNwZWNpZmllci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX3NodWZmbGVsb19lcGkxNihfX20xMjhpIGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0hVRkxXIC8gUFNIVUZMVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLiBCaXRzIFsxMjc6NjRdIGFyZSBjb3BpZWQgdG8gYml0cwovLy8gICAgWzEyNzo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvIGNvcHkgZnJvbSBcYSBhLiBcbgovLy8gICAgQml0c1sxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbMzoyXSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzMxOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0c1s1OjRdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbNDc6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdCB2YWx1ZSBhc3NpZ25tZW50czogXG4KLy8vICAgIDAwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTU6MF0gb2YgXGEgYS4gXG4KLy8vICAgIDAxOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMzE6MTZdIG9mIFxhIGEuIFxuCi8vLyAgICAxMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzQ3OjMyXSBvZiBcYSBhLiBcbgovLy8gICAgMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs2Mzo0OF0gb2YgXGEgYS4gXG4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVsb19lcGkxNihhLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNodWZsdygoX192OGhpKShfX20xMjhpKShhKSwgKGludCkoaW1tKSkpCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgc2h1ZmZsaW5nIGZvdXIgdXBwZXIgMTYtYml0Ci8vLyAgICBlbGVtZW50cyBvZiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdLCB1c2luZyB0aGUgaW1tZWRpYXRlCi8vLyAgICB2YWx1ZSBwYXJhbWV0ZXIgYXMgYSBzcGVjaWZpZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9zaHVmZmxlaGlfZXBpMTYoX19tMTI4aSBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFNIVUZIVyAvIFBTSFVGSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XS4gQml0cyBbNjM6MF0gYXJlIGNvcGllZCB0byBiaXRzCi8vLyAgICBbNjM6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvIGNvcHkgZnJvbSBcYSBhLiBcbgovLy8gICAgQml0c1sxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbNzk6NjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo4MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbNTo0XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHNbNzo2XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzEyNzoxMTJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXQgdmFsdWUgYXNzaWdubWVudHM6IFxuCi8vLyAgICAwMDogYXNzaWduIHZhbHVlcyBmcm9tIGJpdHMgWzc5OjY0XSBvZiBcYSBhLiBcbgovLy8gICAgMDE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFs5NTo4MF0gb2YgXGEgYS4gXG4KLy8vICAgIDEwOiBhc3NpZ24gdmFsdWVzIGZyb20gYml0cyBbMTExOjk2XSBvZiBcYSBhLiBcbgovLy8gICAgMTE6IGFzc2lnbiB2YWx1ZXMgZnJvbSBiaXRzIFsxMjc6MTEyXSBvZiBcYSBhLiBcbgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNodWZmbGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fc2h1ZmZsZWhpX2VwaTE2KGEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2h1Zmh3KChfX3Y4aGkpKF9fbTEyOGkpKGEpLCAoaW50KShpbW0pKSkKCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIChpbmRleCA4LTE1KSB2YWx1ZXMgZnJvbSB0d28gMTI4LWJpdCB2ZWN0b3JzCi8vLyAgICBvZiBbMTYgeCBpOF0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFVOUENLSEJXIC8gUFVOUENLSEJXIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyAgICBCaXRzIFs3MTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNzowXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNzk6NzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbODc6ODBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbOTU6ODhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTAzOjk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzExMToxMDRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTE5OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTAzOjk2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjEyMF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBcbgovLy8gICAgQml0cyBbNzE6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs3OTo3Ml0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs4Nzo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMDM6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjcyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTExOjEwNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTk6MTEyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjEyMF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjEyMF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTgoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iLCA4LCAxNis4LCA5LCAxNis5LCAxMCwgMTYrMTAsIDExLCAxNisxMSwgMTIsIDE2KzEyLCAxMywgMTYrMTMsIDE0LCAxNisxNCwgMTUsIDE2KzE1KTsKfQoKLy8vIFVucGFja3MgdGhlIGhpZ2gtb3JkZXIgKGluZGV4IDQtNykgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzggeCBpMTZdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0hXRCAvIFBVTlBDS0hXRCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gICAgQml0cyBbNzk6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE1OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTE6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTExOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyAgICBCaXRzIFs3OTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs5NTo4MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxMTE6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjgwXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTI3OjExMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IsIDQsIDgrNCwgNSwgOCs1LCA2LCA4KzYsIDcsIDgrNyk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIChpbmRleCAyLDMpIHZhbHVlcyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTMyXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVU5QQ0tIRFEgLyBQVU5QQ0tIRFEgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMTowXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2NDozMl0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbMTI3Ojk2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IsIDIsIDQrMiwgMywgNCszKTsKfQoKLy8vIFVucGFja3MgdGhlIGhpZ2gtb3JkZXIgNjQtYml0IGVsZW1lbnRzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpNjRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0hRRFEgLyBQVU5QQ0tIUURRIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFxuCi8vLyAgICBCaXRzIFsxMjc6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBcbgovLy8gICAgQml0cyBbMTI3OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2hpX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgKF9fdjJkaSlfX2IsIDEsIDIrMSk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgKGluZGV4IDAtNykgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzE2IHggaThdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xCVyAvIFBVTlBDS0xCVyA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLiBcbgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsxNTo4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzIzOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjI0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzM5OjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzQ3OjQwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs4Nzo4MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU1OjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo1Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTU6OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsyMzoxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszOTozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNzk6NzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0Nzo0MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs1NTo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTExOjEwNF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjU2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6MTIwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNrbG9fZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IsIDAsIDE2KzAsIDEsIDE2KzEsIDIsIDE2KzIsIDMsIDE2KzMsIDQsIDE2KzQsIDUsIDE2KzUsIDYsIDE2KzYsIDcsIDE2KzcpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93LW9yZGVyIChpbmRleCAwLTMpIHZhbHVlcyBmcm9tIGVhY2ggb2YgdGhlIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFs4IHggaTE2XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFVOUENLTFdEIC8gUFVOUENLTFdEIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyAgICBCaXRzIFsxNTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMzE6MTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzQ3OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNDc6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc5OjY0XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbNjM6NDhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gICAgQml0cyBbMTU6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6ODBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IsIDAsIDgrMCwgMSwgOCsxLCAyLCA4KzIsIDMsIDgrMyk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgKGluZGV4IDAsMSkgdmFsdWVzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMzJdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xEUSAvIFBVTlBDS0xEUSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBcbgovLy8gICAgQml0cyBbMzE6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzY0OjMyXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs2MzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2tsb19lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iLCAwLCA0KzAsIDEsIDQrMSk7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3ctb3JkZXIgNjQtYml0IGVsZW1lbnRzIGZyb20gdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpNjRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xRRFEgLyBQVU5QQ0tMUURRIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXSBvZiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gXG4KLy8vICAgIEJpdHMgWzYzOjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNrbG9fZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19hLCAoX192MmRpKV9fYiwgMCwgMiswKTsKfQoKLy8vIFJldHVybnMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGFzIGEgNjQtYml0Ci8vLyAgICBpbnRlZ2VyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVkRRMlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZC4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIG1vdmVkIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlcGk2NF9waTY0KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIChfX202NClfX2FbMF07Cn0KCi8vLyBNb3ZlcyB0aGUgNjQtYml0IG9wZXJhbmQgdG8gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLCB6ZXJvaW5nIHRoZQovLy8gICAgdXBwZXIgYml0cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZEK1ZNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIGZyb20KLy8vICAgIHRoZSBvcGVyYW5kLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgYXNzaWduZWQgemVyb3MuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZwaTY0X2VwaTY0KF9fbTY0IF9fYSkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3YyZGkpeyAobG9uZyBsb25nKV9fYSwgMCB9Owp9CgovLy8gTW92ZXMgdGhlIGxvd2VyIDY0IGJpdHMgb2YgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHRvIGEgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IsIHplcm9pbmcgdGhlIHVwcGVyIGJpdHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQuIFRoZSBsb3dlciA2NCBiaXRzIGFyZSBtb3ZlZCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLiBUaGUgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZSB2YWx1ZSBmcm9tCi8vLyAgICB0aGUgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMgYXJlIGFzc2lnbmVkIHplcm9zLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZV9lcGk2NChfX20xMjhpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKV9fYSwgX21tX3NldHplcm9fc2kxMjgoKSwgMCwgMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSBoaWdoLW9yZGVyIDY0LWJpdCBlbGVtZW50cyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsyIHggZG91YmxlXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeAovLy8gICAgZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUEQgLyBVTlBDS0hQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbMTI3OjY0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iLCAxLCAyKzEpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93LW9yZGVyIDY0LWJpdCBlbGVtZW50cyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMKLy8vICAgIG9mIFsyIHggZG91YmxlXSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeAovLy8gICAgZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUEQgLyBVTlBDS0xQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfX2IsIDAsIDIrMCk7Cn0KCi8vLyBFeHRyYWN0cyB0aGUgc2lnbiBiaXRzIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBpbiB0aGUgMTI4LWJpdAovLy8gICAgdmVjdG9yIG9mIFsyIHggZG91YmxlXSwgemVyby1leHRlbmRzIHRoZSB2YWx1ZSwgYW5kIHdyaXRlcyBpdCB0byB0aGUKLy8vICAgIGxvdy1vcmRlciBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTVNLUEQgLyBNT1ZNU0tQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB3aXRoIHNpZ24gYml0cyB0bwovLy8gICAgYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgVGhlIHNpZ24gYml0cyBmcm9tIGVhY2ggb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgaW4gXGEgX19hLAovLy8gICAgd3JpdHRlbiB0byBiaXRzIFsxOjBdLiBUaGUgcmVtYWluaW5nIGJpdHMgYXJlIGFzc2lnbmVkIHZhbHVlcyBvZiB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlbWFza19wZChfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9tb3Ztc2twZCgoX192MmRmKV9fYSk7Cn0KCgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBmcm9tIHR3bwovLy8gICAgMTI4LWJpdCB2ZWN0b3IgcGFyYW1ldGVycyBvZiBbMiB4IGRvdWJsZV0sIHVzaW5nIHRoZSBpbW1lZGlhdGUtdmFsdWUKLy8vICAgICBwYXJhbWV0ZXIgYXMgYSBzcGVjaWZpZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9zaHVmZmxlX3BkKF9fbTEyOGQgYSwgX19tMTI4ZCBiLCBjb25zdCBpbnQgaSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNIVUZQRCAvIFNIVUZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBpCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgdmFsdWUuIFRoZSBsZWFzdCBzaWduaWZpY2FudCB0d28gYml0cyBzcGVjaWZ5IHdoaWNoCi8vLyAgICBlbGVtZW50cyB0byBjb3B5IGZyb20gXGEgYSBhbmQgXGEgYjogXG4KLy8vICAgIEJpdFswXSA9IDA6IGxvd2VyIGVsZW1lbnQgb2YgXGEgYSBjb3BpZWQgdG8gbG93ZXIgZWxlbWVudCBvZiByZXN1bHQuIFxuCi8vLyAgICBCaXRbMF0gPSAxOiB1cHBlciBlbGVtZW50IG9mIFxhIGEgY29waWVkIHRvIGxvd2VyIGVsZW1lbnQgb2YgcmVzdWx0LiBcbgovLy8gICAgQml0WzFdID0gMDogbG93ZXIgZWxlbWVudCBvZiBcYSBiIGNvcGllZCB0byB1cHBlciBlbGVtZW50IG9mIHJlc3VsdC4gXG4KLy8vICAgIEJpdFsxXSA9IDE6IHVwcGVyIGVsZW1lbnQgb2YgXGEgYiBjb3BpZWQgdG8gdXBwZXIgZWxlbWVudCBvZiByZXN1bHQuIFxuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVfcGQoYSwgYiwgaSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zaHVmcGQoKF9fdjJkZikoX19tMTI4ZCkoYSksIChfX3YyZGYpKF9fbTEyOGQpKGIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpKSkpCgovLy8gQ2FzdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW50byBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNhbWUKLy8vICAgIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jYXN0cGRfcHMoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2E7Cn0KCi8vLyBDYXN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBpbnRvIGEgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2FzdHBkX3NpMTI4KF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Nhc3Rwc19wZChfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2FzdHBzX3NpMTI4KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19hOwp9CgovLy8gQ2FzdHMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGludG8gYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc2FtZQovLy8gICAgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Nhc3RzaTEyOF9wcyhfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYTsKfQoKLy8vIENhc3RzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3IKLy8vICAgIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc2FtZQovLy8gICAgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jYXN0c2kxMjhfcGQoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gKF9fbTEyOGQpX19hOwp9CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8vIEluZGljYXRlcyB0aGF0IGEgc3BpbiBsb29wIGlzIGJlaW5nIGV4ZWN1dGVkIGZvciB0aGUgcHVycG9zZXMgb2YKLy8vICAgIG9wdGltaXppbmcgcG93ZXIgY29uc3VtcHRpb24gZHVyaW5nIHRoZSBsb29wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBVVNFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwp2b2lkIF9tbV9wYXVzZSh2b2lkKTsKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19NTVgKCiNkZWZpbmUgX01NX1NIVUZGTEUyKHgsIHkpICgoKHgpIDw8IDEpIHwgKHkpKQoKI2RlZmluZSBfTU1fREVOT1JNQUxTX1pFUk9fT04gICAoMHgwMDQwVSkKI2RlZmluZSBfTU1fREVOT1JNQUxTX1pFUk9fT0ZGICAoMHgwMDAwVSkKCiNkZWZpbmUgX01NX0RFTk9STUFMU19aRVJPX01BU0sgKDB4MDA0MFUpCgojZGVmaW5lIF9NTV9HRVRfREVOT1JNQUxTX1pFUk9fTU9ERSgpIChfbW1fZ2V0Y3NyKCkgJiBfTU1fREVOT1JNQUxTX1pFUk9fTUFTSykKI2RlZmluZSBfTU1fU0VUX0RFTk9STUFMU19aRVJPX01PREUoeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fREVOT1JNQUxTX1pFUk9fTUFTSykgfCAoeCkpKQoKI2VuZGlmIC8qIF9fRU1NSU5UUklOX0ggKi8KAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0gZ2ZuaWludHJpbi5oIC0gR0ZOSSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxnZm5paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0dGTklJTlRSSU5fSAojZGVmaW5lIF9fR0ZOSUlOVFJJTl9ICgovKiBEZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHNpbXBsZSBmb3JtIChubyBtYXNraW5nKS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBZTU0gdW5tYXNrZWQgZm9ybS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfWSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eCxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBaTU0gZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX1ogX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBWTFggZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX1ZMMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYncsYXZ4NTEydmwsZ2ZuaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfVkwyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyxhdng1MTJ2bCxnZm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKI2RlZmluZSBfbW1fZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZnZjJwOGFmZmluZWludnFiX3YxNnFpKChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKCiNkZWZpbmUgX21tX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVxYl92MTZxaSgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZ2YycDhtdWxfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11bGJfdjE2cWkoKF9fdjE2cWkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19CKTsKfQoKI2lmZGVmIF9fQVZYSU5UUklOX0gKI2RlZmluZSBfbW0yNTZfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZnZjJwOGFmZmluZWludnFiX3YzMnFpKChfX3YzMnFpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKCiNkZWZpbmUgX21tMjU2X2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVxYl92MzJxaSgoX192MzJxaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19ZCl9tbTI1Nl9nZjJwOG11bF9lcGk4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdmdmMnA4bXVsYl92MzJxaSgoX192MzJxaSkgX19BLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX0IpOwp9CiNlbmRpZiAvKiBfX0FWWElOVFJJTl9IICovCgojaWZkZWYgX19BVlg1MTJCV0lOVFJJTl9ICiNkZWZpbmUgX21tNTEyX2dmMnA4YWZmaW5laW52X2VwaTY0X2VwaTgoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Z2YycDhhZmZpbmVpbnZxYl92NjRxaSgoX192NjRxaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dmMnA4YWZmaW5laW52X2VwaTY0X2VwaTgoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KShVKSwgXAogICAgICAgICAoX192NjRxaSlfbW01MTJfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChBLCBCLCBJKSwgXAogICAgICAgICAoX192NjRxaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChVLCBBLCBCLCBJKSBcCiAgX21tNTEyX21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOCgoX19tNTEyaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgIFUsIEEsIEIsIEkpCgojZGVmaW5lIF9tbTUxMl9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmdmMnA4YWZmaW5lcWJfdjY0cWkoKF9fdjY0cWkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19nZjJwOGFmZmluZV9lcGk2NF9lcGk4KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NCkoVSksIFwKICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoVSwgQSwgQiwgSSkgXAogIF9tbTUxMl9tYXNrX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoKF9fbTUxMmkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICBVLCBBLCBCLCBJKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfWgpfbW01MTJfZ2YycDhtdWxfZXBpOChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3ZnZjJwOG11bGJfdjY0cWkoKF9fdjY0cWkpIF9fQSwKICAgICAgICAgICAgICAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfWgpfbW01MTJfbWFza19nZjJwOG11bF9lcGk4KF9fbTUxMmkgX19TLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fVSwKICAgICAgICAgICAgICAoX192NjRxaSkgX21tNTEyX2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSU19aCl9tbTUxMl9tYXNrel9nZjJwOG11bF9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19nZjJwOG11bF9lcGk4KChfX201MTJpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VLCBfX0EsIF9fQik7Cn0KI2VuZGlmIC8qIF9fQVZYNTEyQldJTlRSSU5fSCAqLwoKI2lmZGVmIF9fQVZYNTEyVkxCV0lOVFJJTl9ICiNkZWZpbmUgX21tX21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgIChfX3YxNnFpKV9tbV9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW1fbWFza19nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KChfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFwKICAgICAgICAgVSwgQSwgQiwgSSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZ2YycDhhZmZpbmVpbnZfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW0yNTZfbWFza19nZjJwOGFmZmluZWludl9lcGk2NF9lcGk4KChfX20yNTZpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgVSwgQSwgQiwgSSkKCiNkZWZpbmUgX21tX21hc2tfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgIChfX3YxNnFpKV9tbV9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KEEsIEIsIEkpLCBcCiAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZjJwOGFmZmluZV9lcGk2NF9lcGk4KFUsIEEsIEIsIEkpIFwKICBfbW1fbWFza19nZjJwOGFmZmluZV9lcGk2NF9lcGk4KChfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFUsIEEsIEIsIEkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2dmMnA4YWZmaW5lX2VwaTY0X2VwaTgoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAoX192MzJxaSlfbW0yNTZfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChBLCBCLCBJKSwgXAogICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOChVLCBBLCBCLCBJKSBcCiAgX21tMjU2X21hc2tfZ2YycDhhZmZpbmVfZXBpNjRfZXBpOCgoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgIFUsIEEsIEIsIEkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSU19WTDEyOApfbW1fbWFza19nZjJwOG11bF9lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fVSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSU19WTDEyOApfbW1fbWFza3pfZ2YycDhtdWxfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfZ2YycDhtdWxfZXBpOCgoX19tMTI4aSlfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgpfbW0yNTZfbWFza19nZjJwOG11bF9lcGk4KF9fbTI1NmkgX19TLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KF9fVSwKICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X2dmMnA4bXVsX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgpfbW0yNTZfbWFza3pfZ2YycDhtdWxfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfZ2YycDhtdWxfZXBpOCgoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CiNlbmRpZiAvKiBfX0FWWDUxMlZMQldJTlRSSU5fSCAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX1kKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19aCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfVkwxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19WTDI1NgoKI2VuZGlmIC8qIF9fR0ZOSUlOVFJJTl9IICovCgoALyo9PT0tLS0tIHBjb25maWdpbnRyaW4uaCAtIFg4NiBwbGF0Zm9ybSBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cGNvbmZpZ2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19QQ09ORklHSU5UUklOX0gKI2RlZmluZSBfX1BDT05GSUdJTlRSSU5fSAoKI2RlZmluZSBfX1BDT05GSUdfS0VZX1BST0dSQU0gMHgwMDAwMDAwMQoKI2lmIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKQoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygicGNvbmZpZyIpKSkKCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9wY29uZmlnX3UzMih1bnNpZ25lZCBpbnQgX19sZWFmLCBfX1NJWkVfVFlQRV9fIF9fZFtdKQp7CiAgdW5zaWduZWQgaW50IF9fcmVzdWx0OwogIF9fYXNtX18gKCJwY29uZmlnIgogICAgICAgICAgIDogIj1hIiAoX19yZXN1bHQpLCAiPWIiIChfX2RbMF0pLCAiPWMiIChfX2RbMV0pLCAiPWQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiYSIgKF9fbGVhZiksICJiIiAoX19kWzBdKSwgImMiIChfX2RbMV0pLCAiZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJjYyIpOwogIHJldHVybiBfX3Jlc3VsdDsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKSAqLwoKI2VuZGlmCgAvKj09PS0tLS0geHNhdmVjaW50cmluLmggLSBYU0FWRUMgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHhzYXZlY2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19YU0FWRUNJTlRSSU5fSAojZGVmaW5lIF9fWFNBVkVDSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygieHNhdmVjIikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlYyh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94c2F2ZWMoX19wLCBfX20pOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmVjNjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmVjNjQoX19wLCBfX20pOwp9CiNlbmRpZgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAgaW4gcmVnZXhwIABwYXR0ZXJuIHRvbyBsYXJnZSAtIHJldmVyc2UgY29tcGlsZSBmYWlsZWQAWzpwdW5jdDpdAHVuaGFuZGxlZCBvcGNvZGU6IABqb2JfLnNpemUoKSA9IAB7JWQsJWR9ACg/LW06XikAKD8tbTokKQBPbGRfU29nZGlhbgAlczogdW5hYmxlIHRvIGZpbmQgTE9BRCBzZWdtZW50IGZvciBwYzogJXAsIHN0YXJ0X2FkZHI6ICV6eABsZW4gKyAxIDwgc2l6ZW9mKHN5bWJvbF9idWZfKQBhbgBhUwA8ACsrAG1tAFN1YnN0cmluZywgbGVuID0gACwgZW5kX3BvcyA9IAAgd2hpY2ggYXJlIG91dHNpZGUgb2YgdGhlIGNoaWxkJ3MgbGVuZ3RoIG9mIAAlZAB7AG91dCAhPSBudWxscHRyAFJlYWRlckxvY2sgcmV0dXJuaW5nIABUWkRJUgB0emRhdGEAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9jaXBoZXIvY2lwaGVyLmMARmFpbGVkIHRvIGNyZWF0ZSBQLTI1NiBncm91cC4KAERSQkcgQ2xlYXIgS0FUADx1bmtub3duPgBzeXN0ZW0gbGlicmFyeQBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvZXh0cmFjdG9yL2N4eF9leHRyYWN0b3IuY2MALS1jdWRhLWhvc3Qtb25seQAtREtZVEhFX0lTX1JVTk5JTkc9MQBvYmplY3RpdmVjAENoZWNrIGZhaWxlZDogbm9kZS5nZXRNZW1vaXphdGlvbkRhdGEoKSAhPSBudWxscHRyAF9fY2xhbmdfaGlwX2NtYXRoLmgALyo9PT0tLS0tIGFkeGludHJpbi5oIC0gQURYIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhZHhpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQURYSU5UUklOX0gKI2RlZmluZSBfX0FEWElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgovKiBJbnRyaW5zaWNzIHRoYXQgYXJlIGF2YWlsYWJsZSBvbmx5IGlmIF9fQURYX18gZGVmaW5lZCAqLwpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFkeCIpKSkKX2FkZGNhcnJ5eF91MzIodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBpbnQgX194LCB1bnNpZ25lZCBpbnQgX195LAogICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZGRjYXJyeXhfdTMyKF9fY2YsIF9feCwgX195LCBfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFkeCIpKSkKX2FkZGNhcnJ5eF91NjQodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBsb25nIGxvbmcgX194LAogICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX195LCB1bnNpZ25lZCBsb25nIGxvbmcgICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkY2Fycnl4X3U2NChfX2NmLCBfX3gsIF9feSwgX19wKTsKfQojZW5kaWYKCi8qIEludHJpbnNpY3MgdGhhdCBhcmUgYWxzbyBhdmFpbGFibGUgaWYgX19BRFhfXyB1bmRlZmluZWQgKi8Kc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9hZGRjYXJyeV91MzIodW5zaWduZWQgY2hhciBfX2NmLCB1bnNpZ25lZCBpbnQgX194LCB1bnNpZ25lZCBpbnQgX195LAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2FkZGNhcnJ5eF91MzIoX19jZiwgX194LCBfX3ksIF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfYWRkY2FycnlfdTY0KHVuc2lnbmVkIGNoYXIgX19jZiwgdW5zaWduZWQgbG9uZyBsb25nIF9feCwKICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX195LCB1bnNpZ25lZCBsb25nIGxvbmcgICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWRkY2Fycnl4X3U2NChfX2NmLCBfX3gsIF9feSwgX19wKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfc3ViYm9ycm93X3UzMih1bnNpZ25lZCBjaGFyIF9fY2YsIHVuc2lnbmVkIGludCBfX3gsIHVuc2lnbmVkIGludCBfX3ksCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc3ViYm9ycm93X3UzMihfX2NmLCBfX3gsIF9feSwgX19wKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9zdWJib3Jyb3dfdTY0KHVuc2lnbmVkIGNoYXIgX19jZiwgdW5zaWduZWQgbG9uZyBsb25nIF9feCwKICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9feSwgdW5zaWduZWQgbG9uZyBsb25nICAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3N1YmJvcnJvd191NjQoX19jZiwgX194LCBfX3ksIF9fcCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19BRFhJTlRSSU5fSCAqLwoALyo9PT0tLS0tIGFsdGl2ZWMuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgdHlwZSBnZW5lcmljIG1hdGggLS0tLS0tLS0tLS0tLS0tPT09KlwKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKXCo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ki8KCiNpZm5kZWYgX19BTFRJVkVDX0gKI2RlZmluZSBfX0FMVElWRUNfSAoKI2lmbmRlZiBfX0FMVElWRUNfXwojZXJyb3IgIkFsdGlWZWMgc3VwcG9ydCBub3QgZW5hYmxlZCIKI2VuZGlmCgovKiBDb25zdGFudHMgZm9yIG1hcHBpbmcgQ1I2IGJpdHMgdG8gcHJlZGljYXRlIHJlc3VsdC4gKi8KCiNkZWZpbmUgX19DUjZfRVEgMAojZGVmaW5lIF9fQ1I2X0VRX1JFViAxCiNkZWZpbmUgX19DUjZfTFQgMgojZGVmaW5lIF9fQ1I2X0xUX1JFViAzCgovKiBDb25zdGFudHMgZm9yIHZlY190ZXN0X2RhdGFfY2xhc3MgKi8KI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfTiAoMSA8PCAwKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9QICgxIDw8IDEpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMIChfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUxfUCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1pFUk9fTiAoMTw8MikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9aRVJPX1AgKDE8PDMpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfWkVSTyAoX19WRUNfQ0xBU1NfRlBfWkVST19QICAgICAgICAgICB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9aRVJPX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfTiAoMTw8NCkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QICgxPDw1KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZIChfX1ZFQ19DTEFTU19GUF9JTkZJTklUWV9QICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTkFOICgxPDw2KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX05PVF9OT1JNQUwgKF9fVkVDX0NMQVNTX0ZQX05BTiAgICAgICAgfCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMICB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9aRVJPICAgICAgIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZKQoKI2RlZmluZSBfX0FUVFJTX29fYWkgX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19hbHdheXNfaW5saW5lX18pKQoKI2luY2x1ZGUgPHN0ZGRlZi5oPgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfcGVybSgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Blcm0oCiAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfcGVybSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19wZXJtKAogICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfcGVybSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKTsKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpOwojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKTsKCi8qIHZlY19hYnMgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzX3YxNnFpIHZlY19hYnMKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY19hYnNfdjhoaSB2ZWNfYWJzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzX3Y0c2kgdmVjX2FicwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hYnModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAtX19hKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWJzKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2QoX19hLCAtX19hKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2Ficyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZhYnNzcChfX2EpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludCkoMHg3RkZGRkZGRik7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYWJzKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZhYnNkcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2Fic3MgKi8KI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY19hYnNzX3YxNnFpIHZlY19hYnNzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzc192OGhpIHZlY19hYnNzCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfYWJzc192NHNpIHZlY19hYnNzCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hYnNzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKAogICAgICBfX2EsIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoKHZlY3RvciBzaWduZWQgY2hhcikoMCksIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWJzcyh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2goCiAgICAgIF9fYSwgX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNpZ25lZCBzaG9ydCkoMCksIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2Fic3ModmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygKICAgICAgX19hLCBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKCh2ZWN0b3Igc2lnbmVkIGludCkoMCksIF9fYSkpOwp9CgovKiB2ZWNfYWJzZCAqLwojaWYgZGVmaW5lZChfX1BPV0VSOV9WRUNUT1JfXykKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWJzZHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhYnNkdWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWJzZCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhYnNkdXcoX19hLCBfX2IpOwp9CgojZW5kaWYgLyogRW5kIF9fUE9XRVI5X1ZFQ1RPUl9fICovCgovKiB2ZWNfYWRkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYWRkKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2FkZF91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1cW0oX19hLCBfX2IpOwp9CiNlbGlmIGRlZmluZWQoX19WU1hfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hZGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgLy8gTGl0dGxlIGVuZGlhbiBzeXN0ZW1zIG9uIENQVSdzIHByaW9yIHRvIFBvd2VyOCBkb24ndCByZWFsbHkgZXhpc3QKICAvLyBzbyBzY2FsYXJpemluZyBpcyBmaW5lLgogIHJldHVybiBfX2EgKyBfX2I7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSArICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fY2FycnkgPSBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3V3KAogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7CiAgX19jYXJyeSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2NhcnJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19jYXJyeSwgMCwgMCwgMCwgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTUsIDAsIDAsIDAsIDApOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fcmVzICsgX19jYXJyeSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYWRkKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfYWRkKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmIC8vIF9fUE9XRVI4X1ZFQ1RPUl9fCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hZGQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYWRkKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQojZW5kaWYgLy8gX19WU1hfXwoKLyogdmVjX2FkZGUgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRldXFtKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkZV91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmFkZGV1cW0oX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYykgewogIHZlY3RvciBzaWduZWQgaW50IF9fbWFzayA9IHsxLCAxLCAxLCAxfTsKICB2ZWN0b3Igc2lnbmVkIGludCBfX2NhcnJ5ID0gX19jICYgX19tYXNrOwogIHJldHVybiB2ZWNfYWRkKHZlY19hZGQoX19hLCBfX2IpLCBfX2NhcnJ5KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19tYXNrID0gezEsIDEsIDEsIDF9OwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZCh2ZWNfYWRkKF9fYSwgX19iKSwgX19jYXJyeSk7Cn0KCi8qIHZlY19hZGRlYyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkZWModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2FkZGVjKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRlY3VxKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkZWNfdTEyOCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192YWRkZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKI2lmZGVmIF9fcG93ZXJwYzY0X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRlYyh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50IF9fYykgewoKICBzaWduZWQgaW50IF9fcmVzdWx0WzRdOwogIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICB1bnNpZ25lZCBpbnQgX190ZW1wYSA9ICh1bnNpZ25lZCBpbnQpIF9fYVtpXTsKICAgIHVuc2lnbmVkIGludCBfX3RlbXBiID0gKHVuc2lnbmVkIGludCkgX19iW2ldOwogICAgdW5zaWduZWQgaW50IF9fdGVtcGMgPSAodW5zaWduZWQgaW50KSBfX2NbaV07CiAgICBfX3RlbXBjID0gX190ZW1wYyAmIDB4MDAwMDAwMDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYiA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGI7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYyA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fdGVtcGM7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19zdW0gPSBfX2xvbmdhICsgX19sb25nYiArIF9fbG9uZ2M7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPSAoX19zdW0gPj4gMzIpICYgMHgwMTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3RlbXByZXMgPSAodW5zaWduZWQgaW50KSBfX3JlczsKICAgIF9fcmVzdWx0W2ldID0gKHNpZ25lZCBpbnQpIF9fdGVtcHJlczsKICB9CgogIHZlY3RvciBzaWduZWQgaW50IHJldCA9IHsgX19yZXN1bHRbMF0sIF9fcmVzdWx0WzFdLCBfX3Jlc3VsdFsyXSwgX19yZXN1bHRbM10gfTsKICByZXR1cm4gcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWRkZWModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKCiAgdW5zaWduZWQgaW50IF9fcmVzdWx0WzRdOwogIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CiAgICB1bnNpZ25lZCBpbnQgX190ZW1wYyA9IF9fY1tpXSAmIDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19sb25nYSA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYVtpXTsKICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xvbmdiID0gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19iW2ldOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fbG9uZ2MgPSAodW5zaWduZWQgbG9uZyBsb25nKSBfX3RlbXBjOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fc3VtID0gX19sb25nYSArIF9fbG9uZ2IgKyBfX2xvbmdjOwogICAgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKF9fc3VtID4+IDMyKSAmIDB4MDE7CiAgICB1bnNpZ25lZCBsb25nIGxvbmcgX190ZW1wcmVzID0gKHVuc2lnbmVkIGludCkgX19yZXM7CiAgICBfX3Jlc3VsdFtpXSA9IChzaWduZWQgaW50KSBfX3RlbXByZXM7CiAgfQoKICB2ZWN0b3IgdW5zaWduZWQgaW50IHJldCA9IHsgX19yZXN1bHRbMF0sIF9fcmVzdWx0WzFdLCBfX3Jlc3VsdFsyXSwgX19yZXN1bHRbM10gfTsKICByZXR1cm4gcmV0Owp9CiNlbmRpZiAvLyBfX3Bvd2VycGM2NF9fCiNlbmRpZiAvLyBfX1BPV0VSOF9WRUNUT1JfXwoKLyogdmVjX3ZhZGR1Ym0gKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFkZHVibSB2ZWNfdmFkZHVibQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVibSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKyAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKLyogdmVjX3ZhZGR1aG0gKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFkZHVobSB2ZWNfdmFkZHVobQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFkZHVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkdWhtKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkdWhtKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhtKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFkZHVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCi8qIHZlY192YWRkdXdtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d20gdmVjX3ZhZGR1d20KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkdXdtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkdXdtKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSArIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhZGR1d20odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFkZHV3bSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICsgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFkZHV3bSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSArICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKLyogdmVjX3ZhZGRmcCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192YWRkZnAgdmVjX3ZhZGRmcAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZhZGRmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYSArIF9fYjsKfQoKLyogdmVjX2FkZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRjKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3V3KF9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1cSgKICAgICAgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOClfX2EsICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfYWRkYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRjdXEoX19hLCBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfYWRkY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192YWRkY3VxKF9fYSwgX19iKTsKfQojZW5kaWYgLy8gZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQoKLyogdmVjX3ZhZGRjdXcgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmFkZGN1dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGN1dyhfX2EsIF9fYik7Cn0KCi8qIHZlY19hZGRzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicygodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2JzKF9fYSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1YnMoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGRzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hZGRzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzaHMoX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWhzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocygodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYWRkcyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZHModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzd3MoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYWRkcyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc3dzKCh2ZWN0b3IgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FkZHModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHN3cyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdXdzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FkZHModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHV3cygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hZGRzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d3MoX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgovKiB2ZWNfdmFkZHNicyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHNicyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkc2JzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzYnMoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhZGRzYnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHNicyhfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZhZGR1YnMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFkZHVicyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWJzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YWRkdWJzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVicygodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1YnModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdWJzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qIHZlY192YWRkc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkc2hzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFkZHNocyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc2hzKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YWRkc2hzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzaHMoX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCi8qIHZlY192YWRkdWhzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YWRkdWhzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHVocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1aHModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1aHMoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1aHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1aHMoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192YWRkc3dzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFkZHN3cyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHN3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YWRkc3dzKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRzd3MoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFkZHN3cyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkc3dzKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKLyogdmVjX3ZhZGR1d3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkdXdzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1d3ModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZHV3cygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YWRkdXdzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGR1d3MoX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKLyogdmVjX3ZhZGR1cW0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkdXFtKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZhZGR1cW0odmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgKyBfX2I7Cn0KCi8qIHZlY192YWRkZXVxbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZhZGRldXFtKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRldXFtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkZXVxbSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3ZhZGRjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkY3VxKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdmFkZGN1cSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhZGRjdXEoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmFkZGVjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192YWRkZWN1cSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YWRkZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdmFkZGVjdXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmFkZGVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmIC8vIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKCi8qIHZlY19hbmQgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFuZCB2ZWNfYW5kCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2FuZCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2FuZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19hbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2FuZCh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19hbmQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CiNlbmRpZgoKLyogdmVjX3ZhbmQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdmFuZCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdmFuZCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192YW5kKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZhbmQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hICYgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZhbmQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgX19iOwp9CiNlbmRpZgoKLyogdmVjX2FuZGMgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdmFuZGMgdmVjX2FuZGMKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hbmRjKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19hbmRjKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfYW5kYyh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2FuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfYW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KI2VuZGlmCgovKiB2ZWNfdmFuZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZhbmRjKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZhbmRjKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdmFuZGModmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192YW5kYyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YW5kYyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmFuZGModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CiNlbmRpZgoKLyogdmVjX2F2ZyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYXZnKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3NiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19hdmcodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3ViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfYXZnKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhdmdzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2F2Zyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zhdmd1aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19hdmcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3N3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2F2Zyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3V3KF9fYSwgX19iKTsKfQoKLyogdmVjX3ZhdmdzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZhdmdzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZhdmdzYihfX2EsIF9fYik7Cn0KCi8qIHZlY192YXZndWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1Yih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YXZndWIoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmF2Z3NoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmF2Z3NoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3NoKF9fYSwgX19iKTsKfQoKLyogdmVjX3Zhdmd1aCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zhdmd1aChfX2EsIF9fYik7Cn0KCi8qIHZlY192YXZnc3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmF2Z3N3KHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YXZnc3coX19hLCBfX2IpOwp9CgovKiB2ZWNfdmF2Z3V3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zhdmd1dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmF2Z3V3KF9fYSwgX19iKTsKfQoKLyogdmVjX2NlaWwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2NlaWwodmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaXAoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaXAoX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19jZWlsKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5kcCAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZHAodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfY2VpbChfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmRwKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIHZlY19jZWlsKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJmaXAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cmZpcCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZmlwKF9fYSk7Cn0KCi8qIHZlY19jbXBiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2NtcGIodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBiZnAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGJmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBiZnAoX19hLCBfX2IpOwp9CgovKiB2ZWNfY21wZXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfY21wZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWgoKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoKCh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBlcSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1dyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3KCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBlcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoCiAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkKAogICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYik7Cn0KI2VsaWYgZGVmaW5lZChfX1ZTWF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciBib29sIGludCBfX3dvcmRjbXAgPQogICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fd29yZGNtcCAmPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3dvcmRjbXAsIF9fd29yZGNtcCwgMywgMCwgMSwgMik7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX193b3JkY21wLCBfX3dvcmRjbXAsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwgMywgMyk7CiNlbHNlCiAgX193b3JkY21wICY9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fd29yZGNtcCwgX193b3JkY21wLCAxLCAyLCAzLCAwKTsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3dvcmRjbXAsIF9fd29yZGNtcCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAyLCAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGVxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZXEodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZjbXBlcXNwKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBlcSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h2Y21wZXFkcChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cSgKICAgICAgKHZlY3RvciBib29sIF9faW50MTI4KV9fYSwgKHZlY3RvciBib29sIF9faW50MTI4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wZXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXEoCiAgICAgICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2EsICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCi8qIHZlY19jbXBuZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192Y21wbmViKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWIoKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5laCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5laCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZWgoKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV3KCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXcoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIF9faW50MTI4KSB+KF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVxKAogICAgICAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19hLCAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBfX2ludDEyOCkgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cSgKICAgICAgKHZlY3RvciBib29sIF9faW50MTI4KV9fYSwgKHZlY3RvciBib29sIF9faW50MTI4KV9fYikpOwp9CiNlbmRpZgoKLyogdmVjX2NtcG5leiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpiKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbmV6KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpiKCh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBuZXpoKCh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV6aCgodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfY21wbmV6KHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcG5lencoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5leih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wbmV6dygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2NudGx6X2xzYmIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emxzYmIoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemxzYmIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnRsel9sc2JiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emxzYmIoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemxzYmIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnR0el9sc2JiKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpsc2JiKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpsc2JiKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfY250dHpfbHNiYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpsc2JiKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpsc2JiKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHlidyhfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwcnR5YncoX19hKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3Bhcml0eV9sc2JiKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHlicShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19wYXJpdHlfbHNiYih2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cHJ0eWJxKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBydHliZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGFyaXR5X2xzYmIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwcnR5YmQoX19hKTsKfQoKI2Vsc2UKLyogdmVjX2NtcG5lICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KHZlY19jbXBlcShfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGVxKF9fYSwgX19iKSk7Cn0KI2VuZGlmCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKQogICAgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZCgodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKQogICAgfihfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZCgodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZykKICAgIH4oX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoKHZlY3RvciBsb25nIGxvbmcpX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpKTsKfQojZWxpZiBkZWZpbmVkKF9fVlNYX18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZyl+KAogICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKX4oCiAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcG5lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKX4oCiAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKSk7Cn0KI2VuZGlmCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBuZSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZykKICAgIH4oX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWQoKHZlY3RvciBsb25nIGxvbmcpX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpKTsKfQojZW5kaWYKCi8qIHZlY19jbXBndCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2NtcGd0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2goX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZ3QodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3coX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBndCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1dyhfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBndCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWQoX19hLCBfX2IpOwp9CiNlbGlmIGRlZmluZWQoX19WU1hfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGludCBfX3NndHcgPSAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX2NtcGd0KAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHNpZ25lZCBpbnQpX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fdWd0dyA9ICh2ZWN0b3IgdW5zaWduZWQgaW50KXZlY19jbXBndCgKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19lcXcgPSAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfY21wZXEoCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2EsICh2ZWN0b3Igc2lnbmVkIGludClfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX3VndHcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3VndHcsIF9fdWd0dywgMywgMCwgMSwgMikgJiBfX2VxdzsKICBfX3NndHcgfD0gKHZlY3RvciBzaWduZWQgaW50KV9fdWd0dzsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3NndHcsIF9fc2d0dywgMSwgMSwgMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzKTsKI2Vsc2UKICBfX3VndHcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3VndHcsIF9fdWd0dywgMSwgMiwgMywgMCkgJiBfX2VxdzsKICBfX3NndHcgfD0gKHZlY3RvciBzaWduZWQgaW50KV9fdWd0dzsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3NndHcsIF9fc2d0dywgMCwgMCwgMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX191Z3R3ID0gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX2NtcGd0KAogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2VxdyA9ICh2ZWN0b3IgdW5zaWduZWQgaW50KXZlY19jbXBlcSgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fZXF3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX191Z3R3LCBfX3VndHcsIDMsIDAsIDEsIDIpICYgX19lcXc7CiAgX191Z3R3IHw9IF9fZXF3OwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdWd0dywgX191Z3R3LCAxLCAxLCAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMpOwojZWxzZQogIF9fZXF3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX191Z3R3LCBfX3VndHcsIDEsIDIsIDMsIDApICYgX19lcXc7CiAgX191Z3R3IHw9IF9fZXF3OwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdWd0dywgX191Z3R3LCAwLCAwLCAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIpOwojZW5kaWYKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX2NtcGd0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY21wZ3QodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF94dmNtcGd0ZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3EoCiAgICAgICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2EsICh2ZWN0b3IgYm9vbCBfX2ludDEyOClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGd0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIF9faW50MTI4KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxKAogICAgICAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19hLCAodmVjdG9yIGJvb2wgX19pbnQxMjgpX19iKTsKfQojZW5kaWYKCi8qIHZlY19jbXBnZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZ2UodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY21wZ2UodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZjbXBnZXNwKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBnZSh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4odmVjX2NtcGd0KF9fYiwgX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiB+KHZlY19jbXBndChfX2IsIF9fYSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGdlKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gfih2ZWNfY21wZ3QoX19iLCBfX2EpKTsKfQojZW5kaWYKCi8qIHZlY192Y21wZ2VmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBnZWZwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcChfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3RzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3RzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndHViICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBndHViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndHNoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3RzaCh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaChfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3R1aCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGd0dWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWgoX19hLCBfX2IpOwp9CgovKiB2ZWNfdmNtcGd0c3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192Y21wZ3Rzdyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzdyhfX2EsIF9fYik7Cn0KCi8qIHZlY192Y21wZ3R1dyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZjbXBndHV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3KF9fYSwgX19iKTsKfQoKLyogdmVjX3ZjbXBndGZwICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmNtcGd0ZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwKF9fYSwgX19iKTsKfQoKLyogdmVjX2NtcGxlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbGUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY21wbGUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBsZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGxlKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZ2UoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGdlKF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19jbXBsZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIHZlY19jbXBnZShfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfY21wbHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBsdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbXBsdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2NtcGx0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGd0KF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfY21wbHQodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19jbXBsdCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gdmVjX2NtcGd0KF9fYiwgX19hKTsKfQojZW5kaWYKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19jbXBndChfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NtcGx0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfY21wZ3QoX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY19wb3BjbnQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250aChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnRoKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwb3BjbnR3KF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BvcGNudCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcG9wY250KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cG9wY250ZChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wb3BjbnQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBvcGNudGQoX19hKTsKfQoKI2RlZmluZSB2ZWNfdmNseiB2ZWNfY250bHoKLyogdmVjX2NudGx6ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpiKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemIoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfY250bHoodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemgoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHpoKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsencoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfY250bHoodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsencoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudGx6KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2x6ZChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19jbnRseih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2x6ZChfX2EpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCgovKiB2ZWNfY250dHogKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emIoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6YihfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19jbnR0eih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6aChfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emgoX19hKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19jbnR0eih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y3R6dyhfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfY250dHoodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpkKF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudHR6KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjdHpkKF9fYSk7Cn0KCi8qIHZlY19maXJzdF9tYXRjaF9pbmRleCAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gMzsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWF0Y2hfaW5kZXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBlcShfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gNDsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDQ7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWF0Y2hfaW5kZXgodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcGVxKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKLyogdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIC8qIENvbXBhcmUgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBvZiB0d28gdmVjdG9ycyB3aXRoIGVpdGhlciBhbmQgT1IgdGhlCiAgICAgcmVzdWx0LiBFaXRoZXIgdGhlIGVsZW1lbnRzIGFyZSBlcXVhbCBvciBvbmUgd2lsbCBlcXVhbCB0aGUgY29tcGFyaXNvbgogICAgIHJlc3VsdCBpZiBlaXRoZXIgaXMgemVyby4KICAqLwogIHZlY3RvciBib29sIGNoYXIgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBjaGFyIF9fdG1wMiA9IF9fdG1wMSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgY2hhcilfX3RtcDEsIF9fYSkgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIGJvb2wgY2hhciBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIGNoYXIgX190bXAyID0gX190bXAxIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX190bXAxLCBfX2EpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgYm9vbCBzaG9ydCBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIHNob3J0IF9fdG1wMiA9IF9fdG1wMSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fdG1wMSwgX19iKTsKCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2Vsc2UKICAgICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdG1wMik7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9tYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgdmVjdG9yIGJvb2wgc2hvcnQgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBzaG9ydCBfX3RtcDIgPSBfX3RtcDEgfAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciBib29sIGludCBfX3RtcDEgPSB2ZWNfY21wZXEoX19hLCBfX2IpOwogIHZlY3RvciBib29sIGludCBfX3RtcDIgPSBfX3RtcDEgfCB2ZWNfY21wZXEoKHZlY3RvciBzaWduZWQgaW50KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHNpZ25lZCBpbnQpX190bXAxLCBfX2IpOwoKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX190bXAyKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICB2ZWN0b3IgYm9vbCBpbnQgX190bXAxID0gdmVjX2NtcGVxKF9fYSwgX19iKTsKICB2ZWN0b3IgYm9vbCBpbnQgX190bXAyID0gX190bXAxIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjX2NtcGVxKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fdG1wMSwgX19hKSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY19jbXBlcSgodmVjdG9yIHVuc2lnbmVkIGludClfX3RtcDEsIF9fYik7CgogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3RtcDIpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdG1wMik7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKLyogdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5lKF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA0OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNDsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX2luZGV4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmUoX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDU7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA1Owp9CgovKiB2ZWNfZmlyc3RfbWlzbWF0Y2hfb3JfZW9zX2luZGV4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDM7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiAzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiAzOwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gMzsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19BVFRSU19vX2FpCnZlY19maXJzdF9taXNtYXRjaF9vcl9lb3NfaW5kZXgodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICB2ZWNfY250dHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZWxzZQogICAgdmVjX2NudGx6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2VuZGlmCiAgaWYgKF9fcmVzWzBdID09IDY0KSB7CiAgICByZXR1cm4gKF9fcmVzWzFdICsgNjQpID4+IDQ7CiAgfQogIHJldHVybiBfX3Jlc1swXSA+PiA0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBfX0FUVFJTX29fYWkKdmVjX2ZpcnN0X21pc21hdGNoX29yX2Vvc19pbmRleCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXMgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHZlY19jbnR0eigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbHNlCiAgICB2ZWNfY250bHooKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpdmVjX2NtcG5leihfX2EsIF9fYikpOwojZW5kaWYKICBpZiAoX19yZXNbMF0gPT0gNjQpIHsKICAgIHJldHVybiAoX19yZXNbMV0gKyA2NCkgPj4gNTsKICB9CiAgcmV0dXJuIF9fcmVzWzBdID4+IDU7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fQVRUUlNfb19haQp2ZWNfZmlyc3RfbWlzbWF0Y2hfb3JfZW9zX2luZGV4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgdmVjX2NudHR6KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKXZlY19jbXBuZXooX19hLCBfX2IpKTsKI2Vsc2UKICAgIHZlY19jbnRseigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZWNfY21wbmV6KF9fYSwgX19iKSk7CiNlbmRpZgogIGlmIChfX3Jlc1swXSA9PSA2NCkgewogICAgcmV0dXJuIChfX3Jlc1sxXSArIDY0KSA+PiA1OwogIH0KICByZXR1cm4gX19yZXNbMF0gPj4gNTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2aWV4cGRwKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSxfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlICBfX0FUVFJTX29fYWkKdmVjX2luc2VydF9leHAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZpZXhwZHAoX19hLF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZpZXhwc3AoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCAgX19BVFRSU19vX2FpCnZlY19pbnNlcnRfZXhwKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2aWV4cHNwKF9fYSxfX2IpOwp9CgojaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGNoYXIgKl9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeGxfbGVuKGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfeGxfbGVuKGNvbnN0IHNpZ25lZCBzaG9ydCAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2bChfX2EsIChfX2IgPDwgNTYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGludCAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgaW50ICpfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hsX2xlbihjb25zdCBmbG9hdCAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbihjb25zdCBzaWduZWQgX19pbnQxMjggKl9fYSwgc2l6ZV90IF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBfX2ludDEyOClfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbihjb25zdCB1bnNpZ25lZCBfX2ludDEyOCAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19hLCBzaXplX3QgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X2x4dmwoX19hLCAoX19iIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bF9sZW4oY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX2EsIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeGxfbGVuKGNvbnN0IGRvdWJsZSAqX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19idWlsdGluX3ZzeF9seHZsKF9fYSwgKF9fYiA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2xlbl9yKGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYSwgc2l6ZV90IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2bGwoX19hLCAoX19iIDw8IDU2KSk7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19tYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoMTYgLSBfX2IsIChpbnQgKilOVUxMKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgKICAgICAgKHZlY3RvciBpbnQpX19yZXMsICh2ZWN0b3IgaW50KV9fcmVzLCBfX21hc2spOwp9CgovLyB2ZWNfeHN0X2xlbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3N0eHZsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCAoX19jIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIHNob3J0ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmwoKHZlY3RvciBpbnQpX19hLCBfX2IsIChfX2MgPDwgNTYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9sZW4odmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgaW50ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2IsIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgZmxvYXQgX19hLCBmbG9hdCAqX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmwoKHZlY3RvciBpbnQpX19hLCBfX2IsIChfX2MgPDwgNTYpKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgX19pbnQxMjggKl9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3N0eHZsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCAoX19jIDw8IDU2KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfbGVuKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4ICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9sZW4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbih2ZWN0b3IgZG91YmxlIF9fYSwgZG91YmxlICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF9zdHh2bCgodmVjdG9yIGludClfX2EsIF9fYiwgKF9fYyA8PCA1NikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2xlbl9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKDE2IC0gX19jLCAoaW50ICopTlVMTCk7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19yZXMgPQogICAgICBfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2EsIF9fbWFzayk7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfc3R4dmxsKCh2ZWN0b3IgaW50KV9fcmVzLCBfX2IsIChfX2MgPDwgNTYpKTsKfQojZW5kaWYKI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSOV9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQojZGVmaW5lIF9fdmVjX2xkcm1iKFBUUiwgQ05UKSB2ZWNfeGxfbGVuX3IoKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikoUFRSKSwgKENOVCkpCiNkZWZpbmUgX192ZWNfc3RybWIoUFRSLCBDTlQsIFZBTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgdmVjX3hzdF9sZW5fcigoVkFMKSwgKHVuc2lnbmVkIGNoYXIgKikoUFRSKSwgKENOVCkpCiNlbHNlCiNkZWZpbmUgX192ZWNfbGRybWIgX19idWlsdGluX3ZzeF9sZHJtYgojZGVmaW5lIF9fdmVjX3N0cm1iIF9fYnVpbHRpbl92c3hfc3RybWIKI2VuZGlmCgovKiB2ZWNfY3BzZ24gKi8KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2Nwc2duKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNwc2duc3AoX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfY3BzZ24odmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3BzZ25kcChfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfY3RmICovCgojaWZkZWYgX19WU1hfXwovLyBUaGVyZSBhcmUgc29tZSBmdW5jdGlvbnMgdGhhdCBoYXZlIGRpZmZlcmVudCBzaWduYXR1cmVzIHdpdGggdGhlIFhMIGNvbXBpbGVyCi8vIGZyb20gdGhvc2UgaW4gQ2xhbmcvR0NDIGFuZCBkb2N1bWVudGVkIGluIHRoZSBQVklQUi4gVGhpcyBtYWNybyBlbnN1cmVzIHRoYXQKLy8gdGhlIFhMLWNvbXBhdGlibGUgc2lnbmF0dXJlcyBhcmUgdXNlZCBmb3IgdGhvc2UgZnVuY3Rpb25zLgojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0ZihfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjZnN4KCh2ZWN0b3IgaW50KShfX2EpLCAoX19iKSksICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZjZnV4KCh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IpKSwgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAoX19idWlsdGluX3ZzeF94dmN2dXhkc3AoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYSkpICogICAgICBcCiAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiAtIChfX2IpKSA8PCAyMykpLCAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiAoX19idWlsdGluX3ZzeF94dmN2c3hkc3AoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2EpKSAqICAgICAgICBcCiAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiAtIChfX2IpKSA8PCAyMykpKQojZWxzZSAvLyBfX1hMX0NPTVBBVF9BTFRJVkVDX18KI2RlZmluZSB2ZWNfY3RmKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdmNmc3goKHZlY3RvciBpbnQpKF9fYSksIChfX2IpKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdmNmdXgoKHZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fYikpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IChfX2J1aWx0aW5fY29udmVydHZlY3RvcigodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoX19hKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlKSAqICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMIC0gKF9fYikpICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IChfX2J1aWx0aW5fY29udmVydHZlY3RvcigodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlKSAqICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMIC0gKF9fYikpICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpKSkKI2VuZGlmIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZWxzZQojZGVmaW5lIHZlY19jdGYoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192Y2ZzeCgodmVjdG9yIGludCkoX19hKSwgKF9fYikpLCAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192Y2Z1eCgodmVjdG9yIHVuc2lnbmVkIGludCkoX19hKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19iKSkpCiNlbmRpZgoKLyogdmVjX2N0ZCAqLwojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY19jdGQoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3Igc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY19kb3VibGVlKCh2ZWN0b3Igc2lnbmVkIGludCkoX19hKSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKHZlY19kb3VibGVlKCh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpKSAqICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUpICogICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogKF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoX19hKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUpICogICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgLSAoX19iKSkgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1MikpKQojZW5kaWYgLy8gX19WU1hfXwoKLyogdmVjX3ZjZnN4ICovCgojZGVmaW5lIHZlY192Y2Z1eCBfX2J1aWx0aW5fYWx0aXZlY192Y2Z1eAovKiB2ZWNfdmNmdXggKi8KCiNkZWZpbmUgdmVjX3ZjZnN4KF9fYSwgX19iKSBfX2J1aWx0aW5fYWx0aXZlY192Y2ZzeCgodmVjdG9yIGludCkoX19hKSwgKF9fYikpCgovKiB2ZWNfY3RzICovCgojaWZkZWYgX19WU1hfXwojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0cyhfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fYWx0aXZlY192Y3RzeHMoKHZlY3RvciBmbG9hdCkoX19hKSwgKF9fYikpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIChfX2IpKSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbHNlIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZGVmaW5lIHZlY19jdHMoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmN0c3hzKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyAoX19iKSkgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsgICAgICAgICAgXAogICAgICAgICAgIH0pKQojZW5kaWYgLy8gX19YTF9DT01QQVRfQUxUSVZFQ19fCiNlbHNlCiNkZWZpbmUgdmVjX2N0cyBfX2J1aWx0aW5fYWx0aXZlY192Y3RzeHMKI2VuZGlmCgovKiB2ZWNfdmN0c3hzICovCgojZGVmaW5lIHZlY192Y3RzeHMgX19idWlsdGluX2FsdGl2ZWNfdmN0c3hzCgovKiB2ZWNfY3R1ICovCgojaWZkZWYgX19WU1hfXwojaWZkZWYgX19YTF9DT01QQVRfQUxUSVZFQ19fCiNkZWZpbmUgdmVjX2N0dShfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMoKHZlY3RvciBmbG9hdCkoX19hKSwgKF9fYikpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbHNlIC8vIF9fWExfQ09NUEFUX0FMVElWRUNfXwojZGVmaW5lIHZlY19jdHUoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmN0dXhzKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyBfX2IpICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpOyAgICAgICAgXAogICAgICAgICAgIH0pKQojZW5kaWYgLy8gX19YTF9DT01QQVRfQUxUSVZFQ19fCiNlbHNlCiNkZWZpbmUgdmVjX2N0dSBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KLyogdmVjX2N0c2wgKi8KCiNpZmRlZiBfX1ZTWF9fCiNkZWZpbmUgdmVjX2N0c2woX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KSh2ZWN0b3IgdW5zaWduZWQpKCgweDdmICsgKF9fYikpIDw8IDIzKTsgICAgICBcCiAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHZjdnNwc3hkcyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h4c2xkd2koX19yZXQsIF9fcmV0LCAxKSk7ICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3JldCwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpOyAgICAgICAgICBcCiAgICAgICAgICAgfSkpCgovKiB2ZWNfY3R1bCAqLwoKI2RlZmluZSB2ZWNfY3R1bChfX2EsIF9fYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIGZsb2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgZmxvYXQpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgZmxvYXQpKHZlY3RvciB1bnNpZ25lZCkoKDB4N2YgKyAoX19iKSkgPDwgMjMpOyAgICAgIFwKICAgICAgICAgICAgICAgX19idWlsdGluX3ZzeF94dmN2c3B1eGRzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHhzbGR3aShfX3JldCwgX19yZXQsIDEpKTsgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIH0pLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19yZXQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkoX19hKSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAodmVjdG9yIGRvdWJsZSkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKDB4M2ZmVUxMICsgX19iKSAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgNTIpOyAgICAgICAgICAgIFwKICAgICAgICAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fcmV0LCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTsgICAgICAgIFwKICAgICAgICAgICB9KSkKI2VuZGlmCiNlbHNlIC8vIF9fTElUVExFX0VORElBTl9fCi8qIHZlY19jdHNsICovCgojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY19jdHNsKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgZmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19yZXQgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkoX19hKSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgKHZlY3RvciBmbG9hdCkodmVjdG9yIHVuc2lnbmVkKSgoMHg3ZiArIChfX2IpKSA8PCAyMyk7ICAgICAgXAogICAgICAgICAgICAgICBfX2J1aWx0aW5fdnN4X3h2Y3ZzcHN4ZHMoX19yZXQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgfSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICh2ZWN0b3IgZG91YmxlKSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgoMHgzZmZVTEwgKyBfX2IpICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PCA1Mik7ICAgICAgICAgICAgXAogICAgICAgICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19yZXQsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsgICAgICAgICAgXAogICAgICAgICAgIH0pKQoKLyogdmVjX2N0dWwgKi8KCiNkZWZpbmUgdmVjX2N0dWwoX19hLCBfX2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX3JldCA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KShfX2EpICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAodmVjdG9yIGZsb2F0KSh2ZWN0b3IgdW5zaWduZWQpKCgweDdmICsgKF9fYikpIDw8IDIzKTsgICAgICBcCiAgICAgICAgICAgICAgIF9fYnVpbHRpbl92c3hfeHZjdnNwdXhkcyhfX3JldCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB9KSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fcmV0ID0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKF9fYSkgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgKHZlY3RvciBkb3VibGUpKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKCgweDNmZlVMTCArIF9fYikgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw8IDUyKTsgICAgICAgICAgICBcCiAgICAgICAgICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3JldCwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyk7ICAgICAgICBcCiAgICAgICAgICAgfSkpCiNlbmRpZgojZW5kaWYgLy8gX19MSVRUTEVfRU5ESUFOX18KCi8qIHZlY192Y3R1eHMgKi8KCiNkZWZpbmUgdmVjX3ZjdHV4cyBfX2J1aWx0aW5fYWx0aXZlY192Y3R1eHMKCi8qIHZlY19zaWduZXh0ICovCgojaWZkZWYgX19QT1dFUjlfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zaWduZXh0aSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRzYjJ3KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmV4dGkodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHNoMncoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zaWduZXh0bGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2IyZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRsbCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2gyZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRsbCh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHN3MmQoX19hKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NpZ25leHRxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0c2QycShfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3NpZ25lZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHNpZ25lZCBpbnQsIHZlY3RvciBzaWduZWQgaW50LCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3Igc2lnbmVkIGludCk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19zaWduZWQyKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpIHsgX19hWzBdLCBfX2FbMV0sIF9fYlswXSwgX19iWzFdIH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkZSh2ZWN0b3IgZG91YmxlIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3Igc2lnbmVkIGludCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdmRwc3h3cyhfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2lnbmVkbyh2ZWN0b3IgZG91YmxlIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHBzeHdzKF9fYSk7CiNlbHNlCiAgdmVjdG9yIHNpZ25lZCBpbnQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHN4d3MoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdW5zaWduZWQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHVuc2lnbmVkIGludCwgdmVjdG9yIHVuc2lnbmVkIGludCwgdW5zaWduZWQgY29uc3QgaW50IF9fYyk7CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY191bnNpZ25lZDIodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KSB7IF9fYVswXSwgX19hWzFdLCBfX2JbMF0sIF9fYlsxXSB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWRlKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHB1eHdzKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5zaWduZWRvKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHV4d3MoX19hKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmV0ID0gX19idWlsdGluX3ZzeF94dmN2ZHB1eHdzKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX2Zsb2F0ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIGZsb2F0LCB2ZWN0b3IgZmxvYXQsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpOwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgdmVjdG9yIGZsb2F0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgZmxvYXQpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdDIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdCkgeyBfX2FbMF0sIF9fYVsxXSwgX19iWzBdLCBfX2JbMV0gfTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXQyKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KSB7IF9fYVswXSwgX19hWzFdLCBfX2JbMF0sIF9fYlsxXSB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdDIodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpIHsgX19hWzBdLCBfX2FbMV0sIF9fYlswXSwgX19iWzFdIH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2Zsb2F0ZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIGZsb2F0IF9fcmV0ID0gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2Zsb2F0ZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRlKHZlY3RvciBkb3VibGUgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciBmbG9hdCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdmRwc3AoX19hKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDEyKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2ZHBzcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRvKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3hkc3AoX19hKTsKI2Vsc2UKICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZzeGRzcChfX2EpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgMTIpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZmxvYXRvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eGRzcChfX2EpOwojZWxzZQogIHZlY3RvciBmbG9hdCBfX3JldCA9IF9fYnVpbHRpbl92c3hfeHZjdnV4ZHNwKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19mbG9hdG8odmVjdG9yIGRvdWJsZSBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdmRwc3AoX19hKTsKI2Vsc2UKICB2ZWN0b3IgZmxvYXQgX19yZXQgPSBfX2J1aWx0aW5fdnN4X3h2Y3ZkcHNwKF9fYSk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCAxMik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX2RvdWJsZSAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCB2ZWN0b3IgZG91YmxlKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIHZlY3RvciBkb3VibGUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdnN4d2RwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3h3ZHAoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19kb3VibGVlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3Z1eHdkcCh2ZWNfc2xkKF9fYSwgX19hLCA0KSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdnV4d2RwKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzcGRwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3BkcChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWgodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIGRvdWJsZSBfX3JldCA9IHtfX2FbMF0sIF9fYVsxXX07CiAgcmV0dXJuIF9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzBdLCBfX2FbMV19OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWgodmVjdG9yIGZsb2F0IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzBdLCBfX2FbMV19OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWwodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIGRvdWJsZSBfX3JldCA9IHtfX2FbMl0sIF9fYVszXX07CiAgcmV0dXJuIF9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91YmxlbCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzJdLCBfX2FbM119OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZWwodmVjdG9yIGZsb2F0IF9fYSkgewogIHZlY3RvciBkb3VibGUgX19yZXQgPSB7X19hWzJdLCBfX2FbM119OwogIHJldHVybiBfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZW8odmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzeHdkcChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzeHdkcCh2ZWNfc2xkKF9fYSwgX19hLCA0KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfZG91Ymxlbyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2dXh3ZHAoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2dXh3ZHAodmVjX3NsZChfX2EsIF9fYSwgNCkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2RvdWJsZW8odmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmN2c3BkcChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZzcGRwKHZlY19zbGQoX19hLCBfX2EsIDQpKTsKI2VuZGlmCn0KCi8qIHZlY19jdmYgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2N2Zih2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIHZlY19kb3VibGVlKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2N2Zih2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfZmxvYXRlKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfZGl2ICovCgovKiBJbnRlZ2VyIHZlY3RvciBkaXZpZGVzICh2ZWN0b3JzIGFyZSBzY2FsYXJpemVkLCBlbGVtZW50cyBkaXZpZGVkCiAgIGFuZCB0aGUgdmVjdG9ycyByZWFzc2VtYmxlZCkuCiovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19kaXYodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19kaXYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2Rpdih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19kaXYodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfZGl2KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSAvIF9fYjsKfQojZW5kaWYKCi8qIHZlY19kaXZlICovCgojaWZkZWYgX19QT1dFUjEwX1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZGl2ZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZkaXZldXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmRpdmVzZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19kaXZlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXVkKF9fYSwgX19iKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZGl2ZXVxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2RpdmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZkaXZlc3EoX19hLCBfX2IpOwp9CiNlbmRpZgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hIC8gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfZGl2KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgLyBfX2I7Cn0KI2VuZGlmIC8qIF9fUE9XRVIxMF9WRUNUT1JfXyAqLwoKLyogdmVjX3h2dGRpdiAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfdGVzdF9zd2Rpdih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGRpdmRwKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfdGVzdF9zd2RpdnModmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGRpdnNwKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19kc3MgKi8KCiNkZWZpbmUgdmVjX2RzcyBfX2J1aWx0aW5fYWx0aXZlY19kc3MKCi8qIHZlY19kc3NhbGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKSB2ZWNfZHNzYWxsKHZvaWQpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19kc3NhbGwoKTsKfQoKLyogdmVjX2RzdCAqLwojZGVmaW5lIHZlY19kc3QoX19QVFIsIF9fQ1csIF9fU1RSKSBcCiAgX19idWlsdGluX2FsdGl2ZWNfZHN0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHN0ICovCiNkZWZpbmUgdmVjX2RzdHN0KF9fUFRSLCBfX0NXLCBfX1NUUikgXAogIF9fYnVpbHRpbl9hbHRpdmVjX2RzdHN0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHN0dCAqLwojZGVmaW5lIHZlY19kc3RzdHQoX19QVFIsIF9fQ1csIF9fU1RSKSBcCiAgX19idWlsdGluX2FsdGl2ZWNfZHN0c3R0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2RzdHQgKi8KI2RlZmluZSB2ZWNfZHN0dChfX1BUUiwgX19DVywgX19TVFIpIFwKICBfX2J1aWx0aW5fYWx0aXZlY19kc3R0KChjb25zdCB2b2lkICopKF9fUFRSKSwgKF9fQ1cpLCAoX19TVFIpKQoKLyogdmVjX2VxdiAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXF2KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2Vxdih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHhsZXF2KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfZXF2KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX3ZzeF94eGxlcXYoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h4bGVxdigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXF2KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fdnN4X3h4bGVxdigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19lcXYodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfeHhsZXF2KCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19lcXYodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2Vxdih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X3h4bGVxdigodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfZXhwdGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19leHB0ZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHB0ZWZwKF9fYSk7Cn0KCi8qIHZlY192ZXhwdGVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZleHB0ZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4cHRlZnAoX19hKTsKfQoKLyogdmVjX2Zsb29yICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19mbG9vcih2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpbShfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpbShfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2Zsb29yKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpbShfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5kbSAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZG0odmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfZmxvb3IoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JvdW5kbSh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfZmxvb3IoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmZpbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZmltKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaW0oX19hKTsKfQoKLyogdmVjX2xkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX2xkKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgcGl4ZWwgKl9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sZChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGQobG9uZyBfX2EsIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgovKiB2ZWNfbHZ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdngobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2eChsb25nIF9fYSwgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdngobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2eChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZ4KGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4KF9fYSwgX19iKTsKfQoKLyogdmVjX2xkZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZlYngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkZShsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdmVieChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2xkZShsb25nIF9fYSwgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWh4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfbHZlaHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdmV3eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZGUobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZXd4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRlKGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZld3goX19hLCBfX2IpOwp9CgovKiB2ZWNfbHZlYnggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2ZWJ4KGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZlYngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2ZWJ4KGxvbmcgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWJ4KF9fYSwgX19iKTsKfQoKLyogdmVjX2x2ZWh4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmVoeChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZWh4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZlaHgobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdmVoeChfX2EsIF9fYik7Cn0KCi8qIHZlY19sdmV3eCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2ZXd4KGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdmV3eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdmV3eChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZld3goX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmV3eChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX2x2ZXd4KF9fYSwgX19iKTsKfQoKLyogdmVjX2xkbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sZGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgcGl4ZWwgKl9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2xkbChsb25nIF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sZGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2xkbChsb25nIF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbGRsKGxvbmcgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCi8qIHZlY19sdnhsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZ4bChsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZ4bChsb25nIF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19sdnhsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2eGwobG9uZyBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnhsKGxvbmcgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnhsKGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfbHZ4bChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2eGwobG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX2x2eGwoX19hLCBfX2IpOwp9CgovKiB2ZWNfbG9nZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2xvZ2UodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bG9nZWZwKF9fYSk7Cn0KCi8qIHZlY192bG9nZWZwICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdmxvZ2VmcCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zsb2dlZnAoX19hKTsKfQoKLyogdmVjX2x2c2wgKi8KCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c2woaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c2woaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IHNob3J0ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX2x2c2woaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c2woX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c2woaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNsKGludCBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZzbChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzbChfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzbChpbnQgX19hLCBjb25zdCBmbG9hdCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNsKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19sdnNyICovCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnNyKGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnNyKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBzaG9ydCAqX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgbWFzayA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciByZXZlcnNlID0gezE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA3LCAgNiwgIDUsICA0LCAgMywgIDIsICAxLCAwfTsKICByZXR1cm4gdmVjX3Blcm0obWFzaywgbWFzaywgcmV2ZXJzZSk7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19sdnNyKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY19sdnNyKF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKICAgIF9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2UgYXNzaWdubWVudCBmb3IgdW5hbGlnbmVkIGxpdHRsZSBlbmRpYW4gXApsb2Fkcy9zdG9yZXMiKSkpIHZlY19sdnNyKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIGFzc2lnbm1lbnQgZm9yIHVuYWxpZ25lZCBsaXR0bGUgZW5kaWFuIFwKbG9hZHMvc3RvcmVzIikpKSB2ZWNfbHZzcihpbnQgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbHZzcihpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBtYXNrID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIHJldmVyc2UgPSB7MTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcsICA2LCAgNSwgIDQsICAzLCAgMiwgIDEsIDB9OwogIHJldHVybiB2ZWNfcGVybShtYXNrLCBtYXNrLCByZXZlcnNlKTsKfQojZWxzZQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX2x2c3IoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQogICAgX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBhc3NpZ25tZW50IGZvciB1bmFsaWduZWQgbGl0dGxlIGVuZGlhbiBcCmxvYWRzL3N0b3JlcyIpKSkgdmVjX2x2c3IoaW50IF9fYSwgY29uc3QgZmxvYXQgKl9fYikgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIG1hc2sgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgcmV2ZXJzZSA9IHsxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNywgIDYsICA1LCAgNCwgIDMsICAyLCAgMSwgMH07CiAgcmV0dXJuIHZlY19wZXJtKG1hc2ssIG1hc2ssIHJldmVyc2UpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbHZzcihpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfbHZzcihfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfbWFkZCAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWxhZGQodmVjdG9yIHNpZ25lZCBzaG9ydCwgdmVjdG9yIHNpZ25lZCBzaG9ydCwgdmVjdG9yIHNpZ25lZCBzaG9ydCk7CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3Igc2lnbmVkIHNob3J0LCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCk7CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciBzaWduZWQgc2hvcnQsIHZlY3RvciBzaWduZWQgc2hvcnQpOwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCwgdmVjdG9yIHVuc2lnbmVkIHNob3J0KTsKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19tYWRkKAogICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiB2ZWNfbWxhZGQoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYWRkKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX21hZGQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIHZlY19tbGFkZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbWFkZCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYykgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWFkZGFzcChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1hZGRmcChfX2EsIF9fYiwgX19jKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tYWRkKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dm1hZGRhZHAoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdm1hZGRmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtYWRkZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYiwgdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWFkZGZwKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfbWFkZHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfbWFkZHModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1oYWRkc2hzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdm1oYWRkc2hzICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1oYWRkc2hzKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWhhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19tc3ViICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19tc3ViKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtc3ViYXNwKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbXN1Yih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtc3ViYWRwKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX21heCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWF4KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWF4KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tYXgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tYXgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c2QoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzZChfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWF4KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1ZCgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tYXgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHVkKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWF4c3AoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4ZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX21heCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWF4ZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZtYXhzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1heHNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtYXh1YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWF4dWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtYXhzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1heHNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtYXhzaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1heHNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdm1heHVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWF4dWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWF4dWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1heHVoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192bWF4c3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWF4c3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZtYXhzdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhzdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWF4c3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4c3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfdm1heHV3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1heHV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWF4dXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1heHV3KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXh1dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bWF4dXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1heHV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZtYXhmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtYXhmcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtYXhzcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtYXhmcChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfbWVyZ2VoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tZXJnZWgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDEwLCAweDAxLCAweDExLCAweDAyLCAweDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDMsIDB4MTMsIDB4MDQsIDB4MTQsIDB4MDUsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgxNiwgMHgwNywgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tZXJnZWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgMHgwMiwgMHgwMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VoKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21lcmdlaCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tZXJnZWgodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgwNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VoKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgKHZlY3RvciBkb3VibGUpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDQsIDB4MDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX21lcmdlaCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA0LCAweDA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MDcsIDB4MTAsIDB4MTEsIDB4MTIsIDB4MTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CiNlbmRpZgoKLyogdmVjX3ZtcmdoYiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnaGIgdmVjX3ZtcmdoYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1yZ2hiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bXJnaGIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZtcmdoYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgxMCwgMHgwMSwgMHgxMSwgMHgwMiwgMHgxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAzLCAweDEzLCAweDA0LCAweDE0LCAweDA1LCAweDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDYsIDB4MTYsIDB4MDcsIDB4MTcpKTsKfQoKLyogdmVjX3ZtcmdoaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnaGggdmVjX3ZtcmdoaAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2hoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtcmdoaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1yZ2hoKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDIsIDB4MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA2LCAweDA3LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZtcmdoaCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDEwLCAweDExLCAweDAyLCAweDAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNiwgMHgwNywgMHgxNiwgMHgxNykpOwp9CgovKiB2ZWNfdm1yZ2h3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZtcmdodyB2ZWNfdm1yZ2h3CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2h3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bXJnaHcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MTAsIDB4MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3Ztcmdodyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192bXJnaHcodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgxMCwgMHgxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcpKTsKfQoKLyogdmVjX21lcmdlbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VsKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX21lcmdlbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDE4LCAweDE5LCAweDBBLCAweDBCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MUMsIDB4MUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDE4LCAweDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19tZXJnZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgxOCwgMHgxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAweDFCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tZXJnZWwodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDE4LCAwWDE5LCAweDFBLCAweDFCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VsKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgKHZlY3RvciBkb3VibGUpX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxOCwgMFgxOSwgMHgxQSwgMHgxQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX21lcmdlbCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MEYsIDB4MTgsIDBYMTksIDB4MUEsIDB4MUIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CiNlbmRpZgoKLyogdmVjX3ZtcmdsYiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnbGIgdmVjX3ZtcmdsYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1yZ2xiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bXJnbGIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZtcmdsYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgxOCwgMHgwOSwgMHgxOSwgMHgwQSwgMHgxQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBCLCAweDFCLCAweDBDLCAweDFDLCAweDBELCAweDFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MEUsIDB4MUUsIDB4MEYsIDB4MUYpKTsKfQoKLyogdmVjX3ZtcmdsaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192bXJnbGggdmVjX3ZtcmdsaAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2xoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtcmdsaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1yZ2xoKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MTgsIDB4MTksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgxQywgMHgxRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBFLCAweDBGLCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZtcmdsaCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDE4LCAweDE5LCAweDBBLCAweDBCLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MUMsIDB4MUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRikpOwp9CgovKiB2ZWNfdm1yZ2x3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZtcmdsdyB2ZWNfdm1yZ2x3CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm1yZ2x3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bXJnbHcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsIDB4MTgsIDB4MTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQSwgMHgxQiwgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3Ztcmdsdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA4LCAweDA5LCAweDBBLCAweDBCLCAweDE4LCAweDE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUEsIDB4MUIsIDB4MEMsIDB4MEQsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192bXJnbHcodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwgMHgxOCwgMHgxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFBLCAweDFCLCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY19tZXJnZWUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX21lcmdlZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21lcmdlZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX21lcmdlaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19tZXJnZWUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDEwLCAweDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VlKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VoKF9fYSwgX19iKTsKfQoKLyogdmVjX21lcmdlbyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfbWVyZ2VvKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWVyZ2VvKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tZXJnZW8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWwoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB2ZWNfbWVyZ2VsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX21lcmdlbChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX21lcmdlbyh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDQsIDB4MDUsIDB4MDYsIDB4MDcsIDB4MTQsIDB4MTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxNiwgMHgxNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDFDLCAweDFELCAweDFFLCAweDFGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19tZXJnZW8odmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIHZlY19tZXJnZWwoX19hLCBfX2IpOwp9CgojZW5kaWYKCi8qIHZlY19tZnZzY3IgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19tZnZzY3Iodm9pZCkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tZnZzY3IoKTsKfQoKLyogdmVjX21pbiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWluKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWluKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19taW4odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19taW4odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc2QoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zZChfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbWluKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51ZCgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19taW4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnVkKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWluc3AoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluZnAoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX21pbih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bWluZHAoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZtaW5zYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm1pbnNiKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zYihfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtaW51YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnViKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bWludWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWIoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyogdmVjX3ZtaW5zaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1pbnNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtaW5zaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm1pbnNoKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdm1pbnVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWludWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWludWgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51aCgodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm1pbnVoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCi8qIHZlY192bWluc3cgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWluc3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZtaW5zdyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192bWluc3codmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc3coX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfdm1pbnV3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1pbnV3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWludXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm1pbnV3KHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW51dygodmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192bWludXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnV3KF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZtaW5mcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtaW5mcCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZtaW5zcChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5mcChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfbWxhZGQgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdm1sYWRkdWhtIHZlY19tbGFkZAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbWxhZGQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX21sYWRkKAogICAgdmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiAodmVjdG9yIHNob3J0KV9fYiArICh2ZWN0b3Igc2hvcnQpX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tbGFkZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCi8qIHZlY192bWxhZGR1aG0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZtbGFkZHVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192bWxhZGR1aG0oCiAgICB2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqICh2ZWN0b3Igc2hvcnQpX19iICsgKHZlY3RvciBzaG9ydClfX2M7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZtbGFkZHVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bWxhZGR1aG0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKLyogdmVjX21yYWRkcyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX21yYWRkcyh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaHJhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY192bWhyYWRkc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1ocmFkZHNocyh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3Igc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaHJhZGRzaHMoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19tc3VtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXN1bSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3VtbWJtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXN1bSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW11Ym0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19tc3VtKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3Vtc2htKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXN1bSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX21zdW1jICovCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX21zdW1jKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW1jdWQoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdm1zdW1tYm0gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1zdW1tYm0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bW1ibShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3VtdWJtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3VtdWJtKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1zdW11Ym0oX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY192bXN1bXNobSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXN1bXNobSh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3Igc2hvcnQgX19iLCB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXNobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3VtdWhtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3VtdWhtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVobShfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX21zdW1zICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXN1bXModmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXNocyhfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX21zdW1zKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXN1bXVocyhfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3Ztc3Vtc2hzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Ztc3Vtc2hzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3Vtc2hzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdm1zdW11aHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm1zdW11aHModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Ztc3VtdWhzKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfbXR2c2NyICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBzaG9ydCBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIHBpeGVsIF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfbXR2c2NyKHZlY3RvciBpbnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19tdHZzY3IoKHZlY3RvciBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX210dnNjcih2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfbXR2c2NyKCh2ZWN0b3IgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19tdHZzY3IodmVjdG9yIGZsb2F0IF9fYSkgewogIF9fYnVpbHRpbl9hbHRpdmVjX210dnNjcigodmVjdG9yIGludClfX2EpOwp9CgovKiB2ZWNfbXVsICovCgovKiBJbnRlZ2VyIHZlY3RvciBtdWx0aXBsaWNhdGlvbiB3aWxsIGludm9sdmUgbXVsdGlwbGljYXRpb24gb2YgdGhlIG9kZC9ldmVuCiAgIGVsZW1lbnRzIHNlcGFyYXRlbHksIHRoZW4gdHJ1bmNhdGluZyB0aGUgcmVzdWx0cyBhbmQgbW92aW5nIHRvIHRoZQogICByZXN1bHQgdmVjdG9yLgoqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbXVsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tdWwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAqIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX211bCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgKiBfX2I7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19tdWwodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19hICogX19iOwp9CiNlbmRpZgoKLyogVGhlIHZtdWxvcyogYW5kIHZtdWxlcyogaW5zdHJ1Y3Rpb25zIGhhdmUgYSBiaWcgZW5kaWFuIGJpYXMsIHNvCiAgIHdlIG11c3QgcmV2ZXJzZSB0aGUgbWVhbmluZyBvZiAiZXZlbiIgYW5kICJvZGQiIGZvciBsaXR0bGUgZW5kaWFuLiAgKi8KCi8qIHZlY19tdWxlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19tdWxlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2IoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91YihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWIoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX211bGUodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zaChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2goX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX211bGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWgoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zdyhfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc3coX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3V3KF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1dyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zZChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2QoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfbXVsZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvdWQoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVkKF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdm11bGVzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxlc2IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxlc2IoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZtdWxldWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXVsZXViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3ViKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1YihfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdm11bGVzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192bXVsZXNoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvc2goX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNoKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192bXVsZXVoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxldWgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWgoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX211bGggKi8KCiNpZmRlZiBfX1BPV0VSMTBfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tdWxoKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxoc3coX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsaCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGh1dyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsaCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsaHNkKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX211bGgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxodWQoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX211bG8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX211bG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNiKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXViKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91YihfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbXVsbyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zaChfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbXVsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXN3KF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zdyhfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbXVsbyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldXcoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3V3KF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNkKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zZChfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tdWxvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGV1ZChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvdWQoX19hLCBfX2IpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY192bXVsb3NiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm11bG9zYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXNiKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG9zYihfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdm11bG91YiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxvdWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxldWIoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsb3ViKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192bXVsb3NoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZtdWxvc2godmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bGVzaChfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtdWxvc2goX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZtdWxvdWggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdm11bG91aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bXVsZXVoKF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm11bG91aChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiAgdmVjX25hbmQgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19uYW5kKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX25hbmQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKH4oKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19uYW5kKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbmFuZCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX25hbmQodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSh+KCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYikpOwp9CgojZW5kaWYKCi8qIHZlY19ubWFkZCAqLwoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbm1hZGQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2bm1hZGRhc3AoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19ubWFkZCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dm5tYWRkYWRwKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX25tc3ViICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19ubXN1Yih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19jKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZubXN1YmFzcChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm5tc3ViZnAoX19hLCBfX2IsIF9fYyk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbm1zdWIodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZubXN1YmFkcChfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCi8qIHZlY192bm1zdWJmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZubXN1YmZwKHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IsIHZlY3RvciBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm5tc3ViZnAoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19ub3IgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdm5vciB2ZWNfbm9yCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX25vcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX25vcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbm9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19ub3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19ub3IodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgfigodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbm9yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9CiAgICAgIH4oKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19yZXM7Cn0KI2VuZGlmCgovKiB2ZWNfdm5vciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm5vcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192bm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Zub3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdm5vcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192bm9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zub3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm5vcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm5vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY192bm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Zub3IodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgIH4oKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19ub3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbm9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX25vcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19vciAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192b3IgdmVjX29yCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX29yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19vcih2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQojZW5kaWYKCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfb3JjKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfb3JjKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX29yYyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogcmV0dXJuICh2ZWN0b3IgZmxvYXQpKF9fYSB8IH4odmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KSgodmVjdG9yIHVuc2lnbmVkIGludClfX2EgfCB+X19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfb3JjKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX29yYyh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwgfl9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY19vcmModmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpKF9fYSB8IH4odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZvciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192b3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192b3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdm9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdm9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8ICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Zvcih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KI2VuZGlmCgovKiB2ZWNfcGFjayAqLwoKLyogVGhlIHZhcmlvdXMgdmVjdG9yIHBhY2sgaW5zdHJ1Y3Rpb25zIGhhdmUgYSBiaWctZW5kaWFuIGJpYXMsIHNvIGZvcgogICBsaXR0bGUgZW5kaWFuIHdlIG11c3QgaGFuZGxlIHJldmVyc2VkIGVsZW1lbnQgbnVtYmVyaW5nLiAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAyLCAweDA0LCAweDA2LCAweDA4LCAweDBBLCAweDBDLCAweDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTIsIDB4MTQsIDB4MTYsIDB4MTgsIDB4MUEsIDB4MUMsIDB4MUUpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAyLCAweDA0LCAweDA2LCAweDA4LCAweDBBLCAweDBDLCAweDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTIsIDB4MTQsIDB4MTYsIDB4MTgsIDB4MUEsIDB4MUMsIDB4MUUpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAxLCAweDAzLCAweDA1LCAweDA3LCAweDA5LCAweDBCLCAweDBELCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEsIDB4MTMsIDB4MTUsIDB4MTcsIDB4MTksIDB4MUIsIDB4MUQsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAxLCAweDAzLCAweDA1LCAweDA3LCAweDA5LCAweDBCLCAweDBELCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTEsIDB4MTMsIDB4MTUsIDB4MTcsIDB4MTksIDB4MUIsIDB4MUQsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2sodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDQsIDB4MDUsIDB4MDgsIDB4MDksIDB4MEMsIDB4MEQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxNCwgMHgxNSwgMHgxOCwgMHgxOSwgMHgxQywgMHgxRCkpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAyLCAweDAzLCAweDA2LCAweDA3LCAweDBBLCAweDBCLCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MTMsIDB4MTYsIDB4MTcsIDB4MUEsIDB4MUIsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDA0LCAweDA1LCAweDA4LCAweDA5LCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTEsIDB4MTQsIDB4MTUsIDB4MTgsIDB4MTksIDB4MUMsIDB4MUQpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2sodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE4LCAweDE5LCAweDFBLCAweDFCKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19wYWNrKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX3BhY2sodmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpIChfX2FbMF0sIF9fYVsxXSwgX19iWzBdLCBfX2JbMV0pOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tfdG9fc2hvcnRfZnAzMih2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIGZsb2F0IF9fcmVzYSA9IF9fYnVpbHRpbl92c3hfeHZjdnNwaHAoX19hKTsKICB2ZWN0b3IgZmxvYXQgX19yZXNiID0gX19idWlsdGluX3ZzeF94dmN2c3BocChfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfbWVyZ2VlKF9fcmVzYSwgX19yZXNiKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfbWVyZ2VvKF9fcmVzYSwgX19yZXNiKTsKI2VuZGlmCn0KCiNlbmRpZgovKiB2ZWNfdnBrdWh1bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVtIHZlY192cGt1aHVtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGt1aHVtKHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDEsIDB4MDMsIDB4MDUsIDB4MDcsIDB4MDksIDB4MEIsIDB4MEQsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMSwgMHgxMywgMHgxNSwgMHgxNywgMHgxOSwgMHgxQiwgMHgxRCwgMHgxRikpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGt1aHVtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMiwgMHgwNCwgMHgwNiwgMHgwOCwgMHgwQSwgMHgwQywgMHgwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDEyLCAweDE0LCAweDE2LCAweDE4LCAweDFBLCAweDFDLCAweDFFKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnBrdWh1bSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDIsIDB4MDQsIDB4MDYsIDB4MDgsIDB4MEEsIDB4MEMsIDB4MEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMiwgMHgxNCwgMHgxNiwgMHgxOCwgMHgxQSwgMHgxQywgMHgxRSkpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgY2hhcil2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMSwgMHgwMywgMHgwNSwgMHgwNywgMHgwOSwgMHgwQiwgMHgwRCwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDExLCAweDEzLCAweDE1LCAweDE3LCAweDE5LCAweDFCLCAweDFELCAweDFGKSk7CiNlbmRpZgp9CgovKiB2ZWNfdnBrdXd1bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VtIHZlY192cGt1d3VtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192cGt1d3VtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHNob3J0KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDAwLCAweDAxLCAweDA0LCAweDA1LCAweDA4LCAweDA5LCAweDBDLCAweDBELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTAsIDB4MTEsIDB4MTQsIDB4MTUsIDB4MTgsIDB4MTksIDB4MUMsIDB4MUQpKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cGt1d3VtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDIsIDB4MDMsIDB4MDYsIDB4MDcsIDB4MEEsIDB4MEIsIDB4MEUsIDB4MEYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMiwgMHgxMywgMHgxNiwgMHgxNywgMHgxQSwgMHgxQiwgMHgxRSwgMHgxRikpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cGt1d3VtKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwNCwgMHgwNSwgMHgwOCwgMHgwOSwgMHgwQywgMHgwRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDE0LCAweDE1LCAweDE4LCAweDE5LCAweDFDLCAweDFEKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMiwgMHgwMywgMHgwNiwgMHgwNywgMHgwQSwgMHgwQiwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEyLCAweDEzLCAweDE2LCAweDE3LCAweDFBLCAweDFCLCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgovKiB2ZWNfdnBrdWR1bSAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1bSB2ZWNfdnBrdWR1bQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zwa3VkdW0odmVjdG9yIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE4LCAweDE5LCAweDFBLCAweDFCKSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgaW50KXZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGt1ZHVtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LCAweDFDLCAweDFELCAweDFFLCAweDFGKSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192cGt1ZHVtKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpdmVjX3Blcm0oCiAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBsb25nIGxvbmcpX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDB4MDAsIDB4MDEsIDB4MDIsIDB4MDMsIDB4MDgsIDB4MDksIDB4MEEsIDB4MEIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQikpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KXZlY19wZXJtKAogICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2EsICh2ZWN0b3IgbG9uZyBsb25nKV9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgweDA0LCAweDA1LCAweDA2LCAweDA3LCAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTQsIDB4MTUsIDB4MTYsIDB4MTcsIDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYpKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfcGFja3B4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfcGFja3B4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192cGtweChfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnBrcHgoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3Zwa3B4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrcHgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zwa3B4KF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192cGtweChfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfcGFja3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3BhY2tzKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3Noc3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHNzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3ModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3BhY2tzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3c3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3NzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdXd1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19wYWNrcyh2ZWN0b3IgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzZHNzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2RzcyhfX2EsIF9fYik7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFja3ModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1cyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3Noc3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cGtzaHNzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3Noc3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHNzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192cGtzZHNzICovCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zwa3Nkc3ModmVjdG9yIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzZHNzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2RzcyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3VodXMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zwa3VodXModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3Zwa3VkdXMgKi8KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3Zwa3VkdXModmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWR1cyhfX2EsIF9fYik7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3Zwa3N3c3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrc3dzcyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3c3MoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3NzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY192cGt1d3VzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnBrdXd1cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCi8qIHZlY19wYWNrc3UgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3V3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGFja3N1KHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2R1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NkdXMoX19hLCBfX2IpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3BhY2tzdSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3VkdXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1ZHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KI2VuZGlmCgovKiB2ZWNfdnBrc2h1cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGtzaHVzKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NodXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzaHVzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnBrc2h1cyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1aHVzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdWh1cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdnBrc3d1cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnBrc3d1cyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3N3dXMoX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGtzd3VzKF9fYSwgX19iKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zwa3N3dXModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGt1d3VzKF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrdXd1cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfdnBrc2R1cyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGtzZHVzKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnBrc2R1cyhfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Zwa3NkdXMoX19hLCBfX2IpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY19wZXJtICovCgovLyBUaGUgdnBlcm0gaW5zdHJ1Y3Rpb24gaXMgZGVmaW5lZCBhcmNoaXRlY3R1cmFsbHkgd2l0aCBhIGJpZy1lbmRpYW4gYmlhcy4KLy8gRm9yIGxpdHRsZSBlbmRpYW4sIHdlIHN3YXAgdGhlIGlucHV0IG9wZXJhbmRzIGFuZCBpbnZlcnQgdGhlIHBlcm11dGUKLy8gY29udHJvbCB2ZWN0b3IuICBPbmx5IHRoZSByaWdodG1vc3QgNSBiaXRzIG1hdHRlciwgc28gd2UgY291bGQgdXNlCi8vIGEgdmVjdG9yIG9mIGFsbCAzMXMgaW5zdGVhZCBvZiBhbGwgMjU1cyB0byBwZXJmb3JtIHRoZSBpbnZlcnNpb24uCi8vIEhvd2V2ZXIsIHdoZW4gdGhlIFBDViBpcyBub3QgYSBjb25zdGFudCwgdXNpbmcgMjU1IGhhcyBhbiBhZHZhbnRhZ2UKLy8gaW4gdGhhdCB0aGUgdmVjX3hvciBjYW4gYmUgcmVjb2duaXplZCBhcyBhIHZlY19ub3IgKGFuZCBmb3IgUDggYW5kCi8vIGxhdGVyLCBwb3NzaWJseSBhIHZlY19uYW5kKS4KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Blcm0oCiAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgKICAgICAgKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Blcm0odmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY19wZXJtKAogICAgdmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koX19iLCBfX2EsIF9fZCk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koX19hLCBfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2QgPSB7MjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1fTsKICBfX2QgPSB2ZWNfeG9yKF9fYywgX19kKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19wZXJtKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKCh2ZWN0b3IgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYiwgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYiwgX19jKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZXJtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fZCA9IHsyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTV9OwogIF9fZCA9IHZlY194b3IoX19jLCBfX2QpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYiwgKHZlY3RvciBpbnQpX19hLCBfX2QpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcGVybSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnBlcm1fNHNpKAogICAgICAodmVjdG9yIGludClfX2IsICh2ZWN0b3IgaW50KV9fYSwgX19kKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192cGVybV80c2koCiAgICAgICh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iLCBfX2MpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3Blcm0odmVjdG9yIGRvdWJsZSBfX2EsIHZlY3RvciBkb3VibGUgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19kID0gezI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NX07CiAgX19kID0gdmVjX3hvcihfX2MsIF9fZCk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2EsIF9fZCk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9hbHRpdmVjX3ZwZXJtXzRzaSgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IsIF9fYyk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3ZwZXJtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY192cGVybSgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192cGVybSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3ZwZXJtKAogICAgdmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnBlcm0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY192cGVybSgKICAgIHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBwaXhlbCBfX2EsIHZlY3RvciBwaXhlbCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZwZXJtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192cGVybSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciBib29sIGludCBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfdnBlcm0odmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLCBfX2MpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfdnBlcm0oCiAgICB2ZWN0b3IgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGxvbmcgbG9uZyBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3ZwZXJtKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyogdmVjX3JlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yZSh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZXNwKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZWZwKF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcmUodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJlZHAoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJlZnAoX19hKTsKfQoKLyogdmVjX3JsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ybCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192cmxiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZybGIoKHZlY3RvciBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfcmwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZybGgoKHZlY3RvciBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19ybCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19ybCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGQoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfcmwodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKF9fYiA8PCBfX2EpfChfX2IgPj4gKChfX0NIQVJfQklUX18gKiBzaXplb2YodmVjdG9yIHNpZ25lZCBfX2ludDEyOCkpIC0gX19hKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JsKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKF9fYiA8PCBfX2EpfChfX2IgPj4gKChfX0NIQVJfQklUX18gKiBzaXplb2YodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSkgLSBfX2EpKTsKfQojZW5kaWYKCi8qIHZlY19ybG1pICovCiNpZmRlZiBfX1BPV0VSOV9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmxtaSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHdtaShfX2EsIF9fYywgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3JsbWkodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxkbWkoX19hLCBfX2MsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JsbWkodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxxbWkoX19hLCBfX2MsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19ybG1pKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJscW1pKF9fYSwgX19jLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3Jsbm0gKi8KI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ybG5tKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IE9uZUJ5dGUgPSB7IDB4OCwgMHg4LCAweDgsIDB4OCB9OwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmx3bm0oX19hLCAoKF9fYyA8PCBPbmVCeXRlKSB8IF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmxubSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBPbmVCeXRlID0geyAweDgsIDB4OCB9OwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmxkbm0oX19hLCAoKF9fYyA8PCBPbmVCeXRlKSB8IF9fYikpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19ybG5tKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICAvLyBNZXJnZSBfX2IgYW5kIF9fYyB1c2luZyBhbiBhcHByb3ByaWF0ZSBzaHVmZmxlLgogIHZlY3RvciB1bnNpZ25lZCBjaGFyIFRtcEIgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIFRtcEMgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19jOwogIHZlY3RvciB1bnNpZ25lZCBjaGFyIE1hc2tBbmRTaGlmdCA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihUbXBCLCBUbXBDLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDE2LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwojZWxzZQogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihUbXBCLCBUbXBDLCAtMSwgLTEsIC0xLCAtMSwgLTEsIDMxLCAzMCwgMTUsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiNlbmRpZgogICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJscW5tKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkgTWFza0FuZFNoaWZ0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3Jsbm0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIC8vIE1lcmdlIF9fYiBhbmQgX19jIHVzaW5nIGFuIGFwcHJvcHJpYXRlIHNodWZmbGUuCiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgVG1wQiA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgVG1wQyA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2M7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgTWFza0FuZFNoaWZ0ID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKFRtcEIsIFRtcEMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMTYsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiNlbHNlCiAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKFRtcEIsIFRtcEMsIC0xLCAtMSwgLTEsIC0xLCAtMSwgMzEsIDMwLCAxNSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKI2VuZGlmCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHFubShfX2EsICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpIE1hc2tBbmRTaGlmdCk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJsYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnJsYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192cmxiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnJsYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnJsYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnJsaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnJsaCh2ZWN0b3Igc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybGgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192cmxoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192cmxoKCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnJsdyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZybHcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZybHcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnJsdyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnJsdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCi8qIHZlY19yb3VuZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfcm91bmQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpbihfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJkcGkoX19hKTsKfQoKLyogdmVjX3JpbnQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JpbnQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaWMoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JpbnQodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnJkcGljKF9fYSk7Cn0KCi8qIHZlY19yb3VuZGMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JvdW5kYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpYyhfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcm91bmRjKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpYyhfX2EpOwp9CgovKiB2ZWNfbmVhcmJ5aW50ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19uZWFyYnlpbnQodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNwaShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfbmVhcmJ5aW50KHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnJmaW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192cmZpbih2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZyZmluKF9fYSk7Cn0KCi8qIHZlY19zcXJ0ICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcXJ0KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnNxcnRzcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2c3FydGRwKF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfcnNxcnRlICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yc3FydGUodmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2cnNxcnRlc3AoX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJzcXJ0ZWZwKF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcnNxcnRlKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3FydGVkcChfX2EpOwp9CiNlbmRpZgoKc3RhdGljIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3JzcXJ0KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3BwY19yc3FydGYoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19yc3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fcHBjX3JzcXJ0ZChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3Zyc3FydGVmcCAqLwoKc3RhdGljIF9faW5saW5lX18gX192ZWN0b3IgZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnJzcXJ0ZWZwKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJzcXJ0ZWZwKF9fYSk7Cn0KCi8qIHZlY194dnRzcXJ0ICovCgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY190ZXN0X3N3c3FydCh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dHNxcnRkcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY190ZXN0X3N3c3FydHModmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dHNxcnRzcChfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3NlbCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c2VsXzRzaSB2ZWNfc2VsCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19zZWwoCiAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2VsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgY2hhcilfX2MpIHwgKF9fYiAmICh2ZWN0b3IgYm9vbCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NlbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYykgfAogICAgICAgICAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NlbCgKICAgIHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciBib29sIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBib29sIHNob3J0KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGludClfX2MpIHwgKF9fYiAmICh2ZWN0b3IgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NlbCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBpbnQpX19jKSB8IChfX2IgJiAodmVjdG9yIHVuc2lnbmVkIGludClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYiwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBib29sIGludClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciBpbnQgX19yZXMgPSAoKHZlY3RvciBpbnQpX19hICYgfih2ZWN0b3IgaW50KV9fYykgfAogICAgICAgICAgICAgICAgICAgICAoKHZlY3RvciBpbnQpX19iICYgKHZlY3RvciBpbnQpX19jKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2VsKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHZlY3RvciBpbnQgX19yZXMgPSAoKHZlY3RvciBpbnQpX19hICYgfih2ZWN0b3IgaW50KV9fYykgfAogICAgICAgICAgICAgICAgICAgICAoKHZlY3RvciBpbnQpX19iICYgKHZlY3RvciBpbnQpX19jKTsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2MpIHsKICB2ZWN0b3IgbG9uZyBsb25nIF9fcmVzID0gKCh2ZWN0b3IgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIGxvbmcgbG9uZylfX2MpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2ZWN0b3IgbG9uZyBsb25nKV9fYiAmICh2ZWN0b3IgbG9uZyBsb25nKV9fYyk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICB2ZWN0b3IgbG9uZyBsb25nIF9fcmVzID0gKCh2ZWN0b3IgbG9uZyBsb25nKV9fYSAmIH4odmVjdG9yIGxvbmcgbG9uZylfX2MpIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh2ZWN0b3IgbG9uZyBsb25nKV9fYiAmICh2ZWN0b3IgbG9uZyBsb25nKV9fYyk7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2VsKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zZWwodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKSB8CiAgICAgICAgIChfX2IgJiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYykgfAogICAgICAgICAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NlbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KI2VuZGlmCgovKiB2ZWNfdnNlbCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfdnNlbCgKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3Igc2lnbmVkIGNoYXIpX19jKSB8IChfX2IgJiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciBzaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX19hICYgfl9fYykgfCAoX19iICYgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY192c2VsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYiwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciBib29sIGNoYXIpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfdnNlbCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIHNob3J0KV9fYykgfCAoX19iICYgKHZlY3RvciBzaG9ydClfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzZWwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+KHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MpIHwKICAgICAgICAgKF9fYiAmICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2VsKAogICAgdmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGJvb2wgc2hvcnQpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgc2hvcnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2VsKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH4odmVjdG9yIGludClfX2MpIHwgKF9fYiAmICh2ZWN0b3IgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX2EgJiB+X19jKSB8IChfX2IgJiBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNlbCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdmVjdG9yIGJvb2wgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgdW5zaWduZWQgaW50KV9fYykgfCAoX19iICYgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNlbCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoX19hICYgfih2ZWN0b3IgYm9vbCBpbnQpX19jKSB8IChfX2IgJiAodmVjdG9yIGJvb2wgaW50KV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2MpIHsKICByZXR1cm4gKF9fYSAmIH5fX2MpIHwgKF9fYiAmIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzZWwodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICgodmVjdG9yIGludClfX2EgJiB+KHZlY3RvciBpbnQpX19jKSB8CiAgICAgICAgICAgICAgICAgICAgICgodmVjdG9yIGludClfX2IgJiAodmVjdG9yIGludClfX2MpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192c2VsKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19jKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICgodmVjdG9yIGludClfX2EgJiB+KHZlY3RvciBpbnQpX19jKSB8CiAgICAgICAgICAgICAgICAgICAgICgodmVjdG9yIGludClfX2IgJiAodmVjdG9yIGludClfX2MpOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgovKiB2ZWNfc2wgKi8KCi8vIHZlY19zbCBkb2VzIG1vZHVsbyBhcml0aG1ldGljIG9uIF9fYiBmaXJzdCwgc28gX19iIGlzIGFsbG93ZWQgdG8gYmUgbW9yZQovLyB0aGFuIHRoZSBsZW5ndGggb2YgX19hLgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSA8PCAoX19iICUKICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKHNpemVvZih1bnNpZ25lZCBjaGFyKSAqIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcil2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgPDwgKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKHNpemVvZih1bnNpZ25lZCBzaG9ydCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpdmVjX3NsKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSA8PCAoX19iICUKICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludCkoc2l6ZW9mKHVuc2lnbmVkIGludCkgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpdmVjX3NsKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIDw8IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNwbHRiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpOwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgX19iICU9ICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShzaXplb2YodW5zaWduZWQgbG9uZyBsb25nKSAqIF9fQ0hBUl9CSVRfXyk7CgogIC8vIEJpZyBlbmRpYW4gZWxlbWVudCBvbmUgKHRoZSByaWdodCBkb3VibGV3b3JkKSBjYW4gYmUgbGVmdCBzaGlmdGVkIGFzLWlzLgogIC8vIFRoZSBvdGhlciBlbGVtZW50IG5lZWRzIHRvIGJlIHN3YXBwZWQgaW50byB0aGUgcmlnaHQgZG91Ymxld29yZCBhbmQKICAvLyBzaGlmdGVkLiBUaGVuIHRoZSByaWdodCBkb3VibGV3b3JkcyBvZiB0aGUgdHdvIHJlc3VsdCB2ZWN0b3JzIGFyZSBtZXJnZWQuCiAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19yaWdodGVsdCA9CiAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2IpOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKI2Vsc2UKICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDE1KSk7CiNlbmRpZgogIF9fYSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxLCAwKTsKICBfX2IgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMSwgMCk7CiAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19sZWZ0ZWx0ID0KICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYik7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fbGVmdGVsdCA9ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2woCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2xlZnRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yaWdodGVsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19sZWZ0ZWx0LCAwLCAyKTsKI2Vsc2UKICBfX2xlZnRlbHQgPSAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19sZWZ0ZWx0LAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3ZzcGx0YigodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAxNSkpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2xlZnRlbHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmlnaHRlbHQsIDEsIDMpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc2woKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbGIgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNsYiB2ZWNfdnNsYgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NsKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2xiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zbChfX2EsIF9fYik7Cn0KCi8qIHZlY192c2xoICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGggdmVjX3ZzbGgKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbGgodmVjdG9yIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2woX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2xoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NsKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzbHcgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNsdyB2ZWNfdnNsdwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbHcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIHZlY19zbChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2x3KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2woX19hLCBfX2IpOwp9CgovKiB2ZWNfc2xkICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRvaV80c2kgdmVjX3NsZAoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2xkKAogICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbGQoCiAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xkKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iLCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbGQodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3Igc2lnbmVkIGludCBfX2EsIHZlY3RvciBzaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NsZCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xkKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xkKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xkKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbGQodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3NsZCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3NsZHcgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xkdyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsZHcoCiAgICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsZHcodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGR3KHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLCB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19zbGQoX19hLCBfX2IsICgoX19jIDw8IDIpICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBmbG9hdCBfX2EsIHZlY3RvciBmbG9hdCBfX2IsIHVuc2lnbmVkIGNvbnN0IGludCBfX2MpIHsKICByZXR1cm4gdmVjX3NsZChfX2EsIF9fYiwgKChfX2MgPDwgMikgJiAweDBGKSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xkdyh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsZHcodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICB1bnNpZ25lZCBjb25zdCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19zbGQoX19hLCBfX2IsICgoX19jIDw8IDIpICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc2xkdygKICAgIHZlY3RvciBkb3VibGUgX19hLCB2ZWN0b3IgZG91YmxlIF9fYiwgdW5zaWduZWQgY29uc3QgaW50IF9fYykgewogIHJldHVybiB2ZWNfc2xkKF9fYSwgX19iLCAoKF9fYyA8PCAyKSAmIDB4MEYpKTsKfQojZW5kaWYKCiNpZmRlZiBfX1BPV0VSOV9WRUNUT1JfXwovKiB2ZWNfc2x2ICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2x2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbHYoX19hLCBfX2IpOwp9CgovKiB2ZWNfc3J2ICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3J2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcnYoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbGRvaSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsZG9pKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnNsZG9pKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c2xkb2kodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgewogIHVuc2lnbmVkIGNoYXIgX19kID0gX19jICYgMHgwRjsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2IsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgxNiAtIF9fZCwgMTcgLSBfX2QsIDE4IC0gX19kLCAxOSAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjAgLSBfX2QsIDIxIC0gX19kLCAyMiAtIF9fZCwgMjMgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI0IC0gX19kLCAyNSAtIF9fZCwgMjYgLSBfX2QsIDI3IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCAtIF9fZCwgMjkgLSBfX2QsIDMwIC0gX19kLCAzMSAtIF9fZCkpOwojZWxzZQogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19hLCBfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19kLCBfX2QgKyAxLCBfX2QgKyAyLCBfX2QgKyAzLCBfX2QgKyA0LCBfX2QgKyA1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDYsIF9fZCArIDcsIF9fZCArIDgsIF9fZCArIDksIF9fZCArIDEwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fZCArIDExLCBfX2QgKyAxMiwgX19kICsgMTMsIF9fZCArIDE0LCBfX2QgKyAxNSkpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgY2hhciBfX2MpIHsKICB1bnNpZ25lZCBjaGFyIF9fZCA9IF9fYyAmIDB4MEY7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiB2ZWNfcGVybSgKICAgICAgX19iLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMTYgLSBfX2QsIDE3IC0gX19kLCAxOCAtIF9fZCwgMTkgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwIC0gX19kLCAyMSAtIF9fZCwgMjIgLSBfX2QsIDIzIC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCAtIF9fZCwgMjUgLSBfX2QsIDI2IC0gX19kLCAyNyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjggLSBfX2QsIDI5IC0gX19kLCAzMCAtIF9fZCwgMzEgLSBfX2QpKTsKI2Vsc2UKICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYSwgX19iLAogICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fZCwgX19kICsgMSwgX19kICsgMiwgX19kICsgMywgX19kICsgNCwgX19kICsgNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyA2LCBfX2QgKyA3LCBfX2QgKyA4LCBfX2QgKyA5LCBfX2QgKyAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2QgKyAxMSwgX19kICsgMTIsIF9fZCArIDEzLCBfX2QgKyAxNCwgX19kICsgMTUpKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzbGRvaSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgdW5zaWduZWQgY2hhciBfX2QgPSBfX2MgJiAweDBGOwojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gdmVjX3Blcm0oCiAgICAgIF9fYiwgX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDE2IC0gX19kLCAxNyAtIF9fZCwgMTggLSBfX2QsIDE5IC0gX19kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCAtIF9fZCwgMjEgLSBfX2QsIDIyIC0gX19kLCAyMyAtIF9fZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQgLSBfX2QsIDI1IC0gX19kLCAyNiAtIF9fZCwgMjcgLSBfX2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI4IC0gX19kLCAyOSAtIF9fZCwgMzAgLSBfX2QsIDMxIC0gX19kKSk7CiNlbHNlCiAgcmV0dXJuIHZlY19wZXJtKAogICAgICBfX2EsIF9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2QsIF9fZCArIDEsIF9fZCArIDIsIF9fZCArIDMsIF9fZCArIDQsIF9fZCArIDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgNiwgX19kICsgNywgX19kICsgOCwgX19kICsgOSwgX19kICsgMTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19kICsgMTEsIF9fZCArIDEyLCBfX2QgKyAxMywgX19kICsgMTQsIF9fZCArIDE1KSk7CiNlbmRpZgp9CgovKiB2ZWNfc2xsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbGwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbGwodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NsbCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zbGwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NsbCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnNsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2wodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c2wodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbCgodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c2wodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c2woKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc2xvICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Nsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Nsbyh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zbG8odmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc2xvKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc2xvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zbG8odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzbG8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzbG8odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNsbyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzbG8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c2xvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c2xvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNsbygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNsbyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c2xvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNsbyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzbG8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3BsYXQgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iICYgMHgwRikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IgJiAweDBGKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwNykgKiAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDE7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwNykgKiAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDE7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDcpICogMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDcpICogMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIwLCBiMSwgYjAsIGIxLCBiMCwgYjEsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMCwgYjEsIGIwLCBiMSwgYjAsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBjb25zdCBpbnQgX19iKSB7CiAgdW5zaWduZWQgY2hhciBiMCA9IChfX2IgJiAweDAzKSAqIDQ7CiAgdW5zaWduZWQgY2hhciBiMSA9IGIwICsgMSwgYjIgPSBiMCArIDIsIGIzID0gYjAgKyAzOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMykgKiA0OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzLCBiMCwgYjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjIsIGIzLCBiMCwgYjEsIGIyLCBiMykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCB1bnNpZ25lZCBjb25zdCBpbnQgX19iKSB7CiAgdW5zaWduZWQgY2hhciBiMCA9IChfX2IgJiAweDAzKSAqIDQ7CiAgdW5zaWduZWQgY2hhciBiMSA9IGIwICsgMSwgYjIgPSBiMCArIDIsIGIzID0gYjAgKyAzOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGIwLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDMpICogNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxLCBiMiA9IGIwICsgMiwgYjMgPSBiMCArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKGIwLCBiMSwgYjIsIGIzLCBiMCwgYjEsIGIyLCBiMywgYjAsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIyLCBiMywgYjAsIGIxLCBiMiwgYjMpKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3NwbGF0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3BsYXQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHVuc2lnbmVkIGNvbnN0IGludCBfX2IpIHsKICB1bnNpZ25lZCBjaGFyIGIwID0gKF9fYiAmIDB4MDEpICogODsKICB1bnNpZ25lZCBjaGFyIGIxID0gYjAgKyAxLCBiMiA9IGIwICsgMiwgYjMgPSBiMCArIDMsIGI0ID0gYjAgKyA0LCBiNSA9IGIwICsgNSwKICAgICAgICAgICAgICAgIGI2ID0gYjAgKyA2LCBiNyA9IGIwICsgNzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoYjAsIGIxLCBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3LCBiMCwgYjEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjIsIGIzLCBiNCwgYjUsIGI2LCBiNykpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgY29uc3QgaW50IF9fYikgewogIHVuc2lnbmVkIGNoYXIgYjAgPSAoX19iICYgMHgwMSkgKiA4OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBiMCArIDEsIGIyID0gYjAgKyAyLCBiMyA9IGIwICsgMywgYjQgPSBiMCArIDQsIGI1ID0gYjAgKyA1LAogICAgICAgICAgICAgICAgYjYgPSBiMCArIDYsIGI3ID0gYjAgKyA3OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShiMCwgYjEsIGIyLCBiMywgYjQsIGI1LCBiNiwgYjcsIGIwLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMiwgYjMsIGI0LCBiNSwgYjYsIGI3KSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnNwbHRiICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcGx0YiB2ZWNfdnNwbHRiCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3BsdGIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNwbHRiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY192c3BsdGIodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iKSk7Cn0KCi8qIHZlY192c3BsdGggKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnNwbHRoIHZlY192c3BsdGgKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0aCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gMjsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iLCBiMSwgX19iLCBiMSwgX19iLCBiMSwgX19iLCBiMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcGx0aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3BsdGgodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfdnNwbHRoKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSAyOwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxOwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwKICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLCBfX2IsIGIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEsIF9fYiwgYjEpKTsKfQoKLyogdmVjX3ZzcGx0dyAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdHcgdmVjX3ZzcGx0dwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYikgewogIF9fYiAqPSA0OwogIHVuc2lnbmVkIGNoYXIgYjEgPSBfX2IgKyAxLCBiMiA9IF9fYiArIDIsIGIzID0gX19iICsgMzsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoX19iLCBiMSwgYjIsIGIzLCBfX2IsIGIxLCBiMiwgYjMsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiMSwgYjIsIGIzLCBfX2IsIGIxLCBiMiwgYjMpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzcGx0dyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0dyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX2IgKj0gNDsKICB1bnNpZ25lZCBjaGFyIGIxID0gX19iICsgMSwgYjIgPSBfX2IgKyAyLCBiMyA9IF9fYiArIDM7CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYiwgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYjEsIGIyLCBiMywgX19iLCBiMSwgYjIsIGIzKSk7Cn0KCi8qIHZlY19zcGxhdF9zOCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdGlzYiB2ZWNfc3BsYXRfczgKCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3BsYXRfczgoc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCi8qIHZlY192c3BsdGlzYiAqLwoKLy8gRklYTUU6IHBhcmFtZXRlciBzaG91bGQgYmUgdHJlYXRlZCBhcyA1LWJpdCBzaWduZWQgbGl0ZXJhbApzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3BsdGlzYihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcikoX19hKTsKfQoKLyogdmVjX3NwbGF0X3MxNiAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3BsdGlzaCB2ZWNfc3BsYXRfczE2CgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0X3MxNihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCkoX19hKTsKfQoKLyogdmVjX3ZzcGx0aXNoICovCgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzcGx0aXNoKHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHNob3J0KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfczMyICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcGx0aXN3IHZlY19zcGxhdF9zMzIKCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0X3MzMihzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpKF9fYSk7Cn0KCi8qIHZlY192c3BsdGlzdyAqLwoKLy8gRklYTUU6IHBhcmFtZXRlciBzaG91bGQgYmUgdHJlYXRlZCBhcyA1LWJpdCBzaWduZWQgbGl0ZXJhbApzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNwbHRpc3coc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfdTggKi8KCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcGxhdF91OCh1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCi8qIHZlY19zcGxhdF91MTYgKi8KCi8vIEZJWE1FOiBwYXJhbWV0ZXIgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgNS1iaXQgc2lnbmVkIGxpdGVyYWwKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRfdTE2KHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShfX2EpOwp9CgovKiB2ZWNfc3BsYXRfdTMyICovCgovLyBGSVhNRTogcGFyYW1ldGVyIHNob3VsZCBiZSB0cmVhdGVkIGFzIDUtYml0IHNpZ25lZCBsaXRlcmFsCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdF91MzIoc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KShfX2EpOwp9CgovKiB2ZWNfc3IgKi8KCi8vIHZlY19zciBkb2VzIG1vZHVsbyBhcml0aG1ldGljIG9uIF9fYiBmaXJzdCwgc28gX19iIGlzIGFsbG93ZWQgdG8gYmUgbW9yZQovLyB0aGFuIHRoZSBsZW5ndGggb2YgX19hLgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSA+PgogICAgICAgICAoX19iICUgKHZlY3RvciB1bnNpZ25lZCBjaGFyKShzaXplb2YodW5zaWduZWQgY2hhcikgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hID4+CiAgICAgICAgIChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShzaXplb2YodW5zaWduZWQgc2hvcnQpICogX19DSEFSX0JJVF9fKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NyKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCl2ZWNfc3IoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hID4+CiAgICAgICAgIChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGludCkoc2l6ZW9mKHVuc2lnbmVkIGludCkgKiBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hID4+IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NyKHZlY3RvciBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGxvbmcgbG9uZyl2ZWNfc3IoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CiNlbHNlCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX2IgJT0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKHNpemVvZih1bnNpZ25lZCBsb25nIGxvbmcpICogX19DSEFSX0JJVF9fKTsKCiAgLy8gQmlnIGVuZGlhbiBlbGVtZW50IHplcm8gKHRoZSBsZWZ0IGRvdWJsZXdvcmQpIGNhbiBiZSByaWdodCBzaGlmdGVkIGFzLWlzLgogIC8vIEhvd2V2ZXIgdGhlIHNoaWZ0IGFtb3VudCBtdXN0IGJlIGluIHRoZSByaWdodCBkb3VibGV3b3JkLgogIC8vIFRoZSBvdGhlciBlbGVtZW50IG5lZWRzIHRvIGJlIHN3YXBwZWQgaW50byB0aGUgbGVmdCBkb3VibGV3b3JkIGFuZAogIC8vIHNoaWZ0ZWQuIFRoZW4gdGhlIGxlZnQgZG91Ymxld29yZHMgb2YgdGhlIHR3byByZXN1bHQgdmVjdG9ycyBhcmUgbWVyZ2VkLgogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19zd2Fwc2hpZnQgPQogICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMSwgMCk7CiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2xlZnRlbHQgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKAogICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwgKHZlY3RvciBzaWduZWQgaW50KV9fc3dhcHNoaWZ0KTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19sZWZ0ZWx0ID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19sZWZ0ZWx0LAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3ZzcGx0YigodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19zd2Fwc2hpZnQsIDApKTsKI2Vsc2UKICBfX2xlZnRlbHQgPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3IoCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludClfX2xlZnRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX3N3YXBzaGlmdCwgMTUpKTsKI2VuZGlmCiAgX19hID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDEsIDApOwogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yaWdodGVsdCA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19iKTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19yaWdodGVsdCA9ICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigKICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fcmlnaHRlbHQsCiAgICAgICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfdnNwbHRiKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yaWdodGVsdCwgX19sZWZ0ZWx0LCAxLCAzKTsKI2Vsc2UKICBfX3JpZ2h0ZWx0ID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKAogICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19yaWdodGVsdCwKICAgICAgKHZlY3RvciBzaWduZWQgaW50KXZlY192c3BsdGIoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTUpKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19sZWZ0ZWx0LCBfX3JpZ2h0ZWx0LCAwLCAyKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcih2ZWN0b3IgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBsb25nIGxvbmcpdmVjX3NyKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY192c3JiICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcmIgdmVjX3ZzcmIKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzcmIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zcihfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyYih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB2ZWNfc3IoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnNyaCAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3JoIHZlY192c3JoCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3JoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNyaCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIHZlY19zcihfX2EsIF9fYik7Cn0KCi8qIHZlY192c3J3ICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzcncgdmVjX3ZzcncKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3J3KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc3IoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNydyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gdmVjX3NyKF9fYSwgX19iKTsKfQoKLyogdmVjX3NyYSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcmFiKCh2ZWN0b3IgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcmEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoKHZlY3RvciBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zcmEodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYXcoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c3JhdygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1BPV0VSOF9WRUNUT1JfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSA+PiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSgodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hID4+IF9fYik7Cn0KI2Vsc2UKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fYiAlPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKiBfX0NIQVJfQklUX18pOwogIHJldHVybiBfX2EgPj4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JhKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIF9fYiAlPSAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoc2l6ZW9mKHVuc2lnbmVkIGxvbmcgbG9uZykgKiBfX0NIQVJfQklUX18pOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSA+PiBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3ZzcmFiICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3JhYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzcmFiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JhYigodmVjdG9yIGNoYXIpX19hLCBfX2IpOwp9CgovKiB2ZWNfdnNyYWggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcmFoKHZlY3RvciBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnNyYWgoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzcmFoKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JhaCgodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKLyogdmVjX3ZzcmF3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyYXcodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3JhdyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3Jhdyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyYXcoKHZlY3RvciBpbnQpX19hLCBfX2IpOwp9CgovKiB2ZWNfc3JsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcmwodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zcmwodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JsKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3NybCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19zcmwodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3NybCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnNyICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGNoYXIpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY192c3IodmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnNyKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zzcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzcigodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNyKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnNyKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192c3IodmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192c3IoKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3JvICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Nybyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Nybyh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHBpeGVsKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcm8odmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfc3JvKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3JvKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcm8odmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CiNlbmRpZgoKLyogdmVjX3Zzcm8gKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Zzcm8odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnNybyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgcGl4ZWwpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIHBpeGVsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBwaXhlbClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Zzcm8odmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3JvKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3JvKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnNybygodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNybyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fYWx0aXZlY192c3JvKCh2ZWN0b3IgaW50KV9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnNybyh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9hbHRpdmVjX3Zzcm8oKHZlY3RvciBpbnQpX19hLCAodmVjdG9yIGludClfX2IpOwp9CgovKiB2ZWNfc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIHBpeGVsIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBpbnQgX19hLCBsb25nIF9fYiwgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3QodmVjdG9yIGZsb2F0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dnggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3Igc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHBpeGVsIF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dngodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBib29sIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dngoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4KHZlY3RvciBmbG9hdCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0ZSAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWJ4KCh2ZWN0b3IgY2hhcilfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVieCgodmVjdG9yIGNoYXIpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RlKHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoKHZlY3RvciBzaG9ydClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWh4KCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGludCBfX2EsIGxvbmcgX19iLCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0ZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGJvb2wgaW50IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZld3goKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGUodmVjdG9yIGZsb2F0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dmVieCAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVieCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWJ4KCh2ZWN0b3IgY2hhcilfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVieCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfX2IsIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVieCgodmVjdG9yIGNoYXIpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZlYngodmVjdG9yIGJvb2wgY2hhciBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWJ4KHZlY3RvciBib29sIGNoYXIgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlYngoKHZlY3RvciBjaGFyKV9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfc3R2ZWh4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBzaG9ydCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZlaHgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9fYiwgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBib29sIHNob3J0IF9fYSwgbG9uZyBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmVoeCgodmVjdG9yIHNob3J0KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZWh4KHZlY3RvciBwaXhlbCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZlaHgoKHZlY3RvciBzaG9ydClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmVoeCh2ZWN0b3IgcGl4ZWwgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZWh4KCh2ZWN0b3Igc2hvcnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZld3ggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZld3godmVjdG9yIGludCBfX2EsIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZXd4KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2ZXd4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dmV3eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmV3eCh2ZWN0b3IgZmxvYXQgX19hLCBsb25nIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2ZXd4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfc3RsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBib29sIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGJvb2wgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3RsKHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdGwodmVjdG9yIGZsb2F0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZ4bCAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgcGl4ZWwgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl9hbHRpdmVjX3N0dnhsKCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2eGwodmVjdG9yIGJvb2wgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZ4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fYWx0aXZlY19zdHZ4bCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnhsKHZlY3RvciBmbG9hdCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19jKSB7CiAgX19idWlsdGluX2FsdGl2ZWNfc3R2eGwoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdWIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC0gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19zdWIodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWIodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3ViKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYgLy8gZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJgogICAgICAgLy8gZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3ViKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3N1Yih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3ViKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3N1Yih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCi8qIHZlY192c3VidWJtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1Ym0gdmVjX3ZzdWJ1Ym0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgY2hhcilfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1Ym0odmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIC0gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVibSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCi8qIHZlY192c3VidWhtICovCgojZGVmaW5lIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aG0gdmVjX3ZzdWJ1aG0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJ1aG0odmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnVobSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnVobSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVobSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVobSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1aG0odmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iOwp9CgovKiB2ZWNfdnN1YnV3bSAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdtIHZlY192c3VidXdtCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnV3bSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnV3bSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIGludClfX2EgLSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192c3VidXdtKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1d20odmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1d20odmVjdG9yIGJvb2wgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIC0gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3bSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgLSAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCi8qIHZlY192c3ViZnAgKi8KCiNkZWZpbmUgX19idWlsdGluX2FsdGl2ZWNfdnN1YmZwIHZlY192c3ViZnAKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192c3ViZnAodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2EgLSBfX2I7Cn0KCi8qIHZlY19zdWJjICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludCkgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoX19hLCBfX2IpOwp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18KI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3N1YmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXEoX19hLCBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfc3ViY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQojZW5kaWYgLy8gX19QT1dFUjhfVkVDVE9SX18KCi8qIHZlY192c3ViY3V3ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdWJjdXcodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXcoX19hLCBfX2IpOwp9CgovKiB2ZWNfc3VicyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNicyhfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWJzKCh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoX19hLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3Vicyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3N1YnModmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfc3Vicyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2hzKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N1YnModmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoX19hLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdWJzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3N1YnModmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnN3cygodmVjdG9yIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdWJzKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzd3MoX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnV3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJzKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1d3MoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3Vicyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKLyogdmVjX3ZzdWJzYnMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJzYnModmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2JzKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnNicyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2JzKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3Vic2JzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzYnMoX19hLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qIHZlY192c3VidWJzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1YnModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN1YnVicyh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1YnMoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3VidWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnVicyhfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovKiB2ZWNfdnN1YnNocyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnNocyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzaHModmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnNocygodmVjdG9yIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnN1YnNocyh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic2hzKF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdnN1YnVocyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVocyh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1aHMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3VidWhzKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWhzKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3VidWhzKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidWhzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgovKiB2ZWNfdnN1YnN3cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzd3ModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJzd3MoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdnN1YnN3cyh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3Vic3dzKCh2ZWN0b3IgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3ZzdWJzd3ModmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnN3cyhfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCi8qIHZlY192c3VidXdzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YnV3cyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3VidXdzKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1d3MoKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN1YnV3cyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VidXdzKF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCi8qIHZlY192c3VidXFtICovCgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJ1cW0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YnVxbSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYSAtIF9fYjsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1Yl91MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJ1cW0oX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1YmV1cW0gKi8KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmV1cW0odmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmV1cW0oX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3ZzdWJldXFtKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJldXFtKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZXVxbShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iLAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZXVxbShfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1YmVfdTEyOCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJldXFtKF9fYSwgX19iLCBfX2MpOwp9CgovKiB2ZWNfdnN1YmN1cSAqLwoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192c3ViY3VxKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViY3VxKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmN1cSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJjdXEoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1YmVjdXEgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY192c3ViZWN1cSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfdnN1YmVjdXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgojaWZkZWYgX19wb3dlcnBjNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmVjKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIHZlY19hZGRlYyhfX2EsIH5fX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJlYyh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiB2ZWNfYWRkZWMoX19hLCB+X19iLCBfX2MpOwp9CiNlbmRpZgoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19zdWJlYyh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IsCiAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3ViZWN1cShfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3ViZWModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYiwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1YmVjdXEoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19zdWJlY191MTI4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9hbHRpdmVjX3ZzdWJlY3VxKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZiAvLyBfX1BPV0VSOF9WRUNUT1JfXwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zdWJlKHZlY3RvciBzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICB2ZWN0b3Igc2lnbmVkIGludCBfX21hc2sgPSB7MSwgMSwgMSwgMX07CiAgdmVjdG9yIHNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZGUoX19hLCB+X19iLCBfX2NhcnJ5KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3N1YmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19tYXNrID0gezEsIDEsIDEsIDF9OwogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jYXJyeSA9IF9fYyAmIF9fbWFzazsKICByZXR1cm4gdmVjX2FkZGUoX19hLCB+X19iLCBfX2NhcnJ5KTsKfQovKiB2ZWNfc3VtNHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdW00cyh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTRzYnMoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfc3VtNHModmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VtNHVicyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19zdW00cyh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2hzKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzdW00c2JzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW00c2JzKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2JzKF9fYSwgX19iKTsKfQoKLyogdmVjX3ZzdW00dWJzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW00dWJzKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTR1YnMoX19hLCBfX2IpOwp9CgovKiB2ZWNfdnN1bTRzaHMgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfdnN1bTRzaHModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW00c2hzKF9fYSwgX19iKTsKfQoKLyogdmVjX3N1bTJzICovCgovKiBUaGUgdnN1bTJzd3MgaW5zdHJ1Y3Rpb24gaGFzIGEgYmlnLWVuZGlhbiBiaWFzLCBzbyB0aGF0IHRoZSBzZWNvbmQKICAgaW5wdXQgdmVjdG9yIGFuZCB0aGUgcmVzdWx0IGFsd2F5cyByZWZlcmVuY2UgYmlnLWVuZGlhbiBlbGVtZW50cwogICAxIGFuZCAzIChsaXR0bGUtZW5kaWFuIGVsZW1lbnQgMCBhbmQgMikuICBGb3IgZWFzZSBvZiBwb3J0aW5nIHRoZQogICBwcm9ncmFtbWVyIHdhbnRzIGVsZW1lbnRzIDEgYW5kIDMgaW4gYm90aCBjYXNlcywgc28gZm9yIGxpdHRsZQogICBlbmRpYW4gd2UgbXVzdCBwZXJmb3JtIHNvbWUgcGVybXV0ZXMuICAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQp2ZWNfc3VtMnModmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHZlY3RvciBpbnQgX19jID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19wZXJtKAogICAgICBfX2IsIF9fYiwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSg0LCA1LCA2LCA3LCAwLCAxLCAyLCAzLCAxMiwgMTMsIDE0LCAxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwgOSwgMTAsIDExKSk7CiAgX19jID0gX19idWlsdGluX2FsdGl2ZWNfdnN1bTJzd3MoX19hLCBfX2MpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYywgX19jLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDQsIDUsIDYsIDcsIDAsIDEsIDIsIDMsIDEyLCAxMywgMTQsIDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEpKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN1bTJzd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZzdW0yc3dzICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY192c3VtMnN3cyh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdmVjdG9yIGludCBfX2MgPSAodmVjdG9yIHNpZ25lZCBpbnQpdmVjX3Blcm0oCiAgICAgIF9fYiwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDQsIDUsIDYsIDcsIDAsIDEsIDIsIDMsIDEyLCAxMywgMTQsIDE1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCA5LCAxMCwgMTEpKTsKICBfX2MgPSBfX2J1aWx0aW5fYWx0aXZlY192c3VtMnN3cyhfX2EsIF9fYyk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCl2ZWNfcGVybSgKICAgICAgX19jLCBfX2MsICh2ZWN0b3IgdW5zaWduZWQgY2hhcikoNCwgNSwgNiwgNywgMCwgMSwgMiwgMywgMTIsIDEzLCAxNCwgMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDgsIDksIDEwLCAxMSkpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3VtMnN3cyhfX2EsIF9fYik7CiNlbmRpZgp9CgovKiB2ZWNfc3VtcyAqLwoKLyogVGhlIHZzdW1zd3MgaW5zdHJ1Y3Rpb24gaGFzIGEgYmlnLWVuZGlhbiBiaWFzLCBzbyB0aGF0IHRoZSBzZWNvbmQKICAgaW5wdXQgdmVjdG9yIGFuZCB0aGUgcmVzdWx0IGFsd2F5cyByZWZlcmVuY2UgYmlnLWVuZGlhbiBlbGVtZW50IDMKICAgKGxpdHRsZS1lbmRpYW4gZWxlbWVudCAwKS4gIEZvciBlYXNlIG9mIHBvcnRpbmcgdGhlIHByb2dyYW1tZXIKICAgd2FudHMgZWxlbWVudCAzIGluIGJvdGggY2FzZXMsIHNvIGZvciBsaXR0bGUgZW5kaWFuIHdlIG11c3QgcGVyZm9ybQogICBzb21lIHBlcm11dGVzLiAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3N1bXModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19iID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdChfX2IsIDMpOwogIF9fYiA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKDAsIDAsIDAsIF9fYlswXSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3ZzdW1zd3MgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZzdW1zd3ModmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19iID0gKHZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdChfX2IsIDMpOwogIF9fYiA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKDAsIDAsIDAsIF9fYlswXSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdW1zd3MoX19hLCBfX2IpOwojZW5kaWYKfQoKLyogdmVjX3RydW5jICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY190cnVuYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyc3BpeihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cmZpeihfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3RydW5jKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZyZHBpeihfX2EpOwp9CiNlbmRpZgoKLyogdmVjX3JvdW5keiAqLwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yb3VuZHoodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiB2ZWNfdHJ1bmMoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX3JvdW5keih2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiB2ZWNfdHJ1bmMoX19hKTsKfQojZW5kaWYKCi8qIHZlY192cmZpeiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX3ZyZml6KHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnJmaXooX19hKTsKfQoKLyogdmVjX3VucGFja2ggKi8KCi8qIFRoZSB2ZWN0b3IgdW5wYWNrIGluc3RydWN0aW9ucyBhbGwgaGF2ZSBhIGJpZy1lbmRpYW4gYmlhcywgc28gZm9yCiAgIGxpdHRsZSBlbmRpYW4gd2UgbXVzdCByZXZlcnNlIHRoZSBtZWFuaW5ncyBvZiAiaGlnaCIgYW5kICJsb3cuIiAgKi8KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmVjX3Z1cGtocHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNkZWZpbmUgdmVjX3Z1cGtscHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNlbHNlCiNkZWZpbmUgdmVjX3Z1cGtocHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNkZWZpbmUgdmVjX3Z1cGtscHgoX19hKSBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpKF9fYSkpCiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNraCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY191bnBhY2toKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfdW5wYWNraCh2ZWN0b3Igc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2goKHZlY3RvciBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goKHZlY3RvciBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIHBpeGVsIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtocHgoKHZlY3RvciBzaG9ydClfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY191bnBhY2toKHZlY3RvciBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGJvb2wgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzdygodmVjdG9yIGludClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3VucGFja2godmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoX19hWzBdLCBfX2FbMV0pOwp9CiNlbmRpZgoKLyogdmVjX3Z1cGtoc2IgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3Z1cGtoc2IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzYigodmVjdG9yIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzYih2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKLyogdmVjX3Z1cGtoc2ggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192dXBraHNoKHZlY3RvciBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2goX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzaCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnVwa2hzaCh2ZWN0b3IgcGl4ZWwgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfdnVwa2hzdyAqLwoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY192dXBraHN3KHZlY3RvciBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z1cGtoc3codmVjdG9yIGJvb2wgaW50IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBsb25nIGxvbmcpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzdygodmVjdG9yIGludClfX2EpOwojZW5kaWYKfQojZW5kaWYKCi8qIHZlY191bnBhY2tsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpCnZlY191bnBhY2tsKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3VucGFja2wodmVjdG9yIGJvb2wgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzYigodmVjdG9yIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY191bnBhY2tsKHZlY3RvciBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc2goX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaChfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzaCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgcGl4ZWwgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBraHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2xweCgodmVjdG9yIHNob3J0KV9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX3VucGFja2wodmVjdG9yIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzdyhfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coKHZlY3RvciBpbnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfdW5wYWNrbCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKShfX2FbMl0sIF9fYVszXSk7Cn0KI2VuZGlmCgovKiB2ZWNfdnVwa2xzYiAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnVwa2xzYih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBraHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNiKCh2ZWN0b3IgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNiKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgc2hvcnQpX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzYigodmVjdG9yIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIHNob3J0KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtsc2IoKHZlY3RvciBjaGFyKV9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfdnVwa2xzaCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Z1cGtsc2godmVjdG9yIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2hzaChfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNoKHZlY3RvciBib29sIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBraHNoKCh2ZWN0b3Igc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHNoKCh2ZWN0b3Igc2hvcnQpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192dXBrbHNoKHZlY3RvciBwaXhlbCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtocHgoKHZlY3RvciBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY192dXBrbHB4KCh2ZWN0b3Igc2hvcnQpX19hKTsKI2VuZGlmCn0KCi8qIHZlY192dXBrbHN3ICovCgojaWZkZWYgX19QT1dFUjhfVkVDVE9SX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX3Z1cGtsc3codmVjdG9yIGludCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnVwa2xzdyhfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnVwa2xzdyh2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX3Z1cGtoc3coKHZlY3RvciBpbnQpX19hKTsKI2Vsc2UKICByZXR1cm4gKHZlY3RvciBib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fYWx0aXZlY192dXBrbHN3KCh2ZWN0b3IgaW50KV9fYSk7CiNlbmRpZgp9CiNlbmRpZgoKLyogdmVjX3ZzeF9sZCAqLwoKI2lmZGVmIF9fVlNYX18KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCBzaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192c3hfbGQoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgbG9uZyBsb25nICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfbHh2ZDJ4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZkMngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBkb3VibGUgKl9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X2x4dmQyeChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgZG91YmxlICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpX19idWlsdGluX3ZzeF9seHZkMngoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCBzaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dnc0eChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgYm9vbCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnN4X2xkKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192c3hfbGQoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX3ZzeF9seHZ3NHgoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZzeF9sZChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl92c3hfbHh2dzR4KF9fYSwgX19iKTsKfQoKI2VuZGlmCgovKiB2ZWNfdnN4X3N0ICovCgojaWZkZWYgX19WU1hfXwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGZsb2F0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeCgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeCgodmVjdG9yIGRvdWJsZSlfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgZG91YmxlIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMngoKHZlY3RvciBkb3VibGUpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGRvdWJsZSBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMngoKHZlY3RvciBkb3VibGUpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3ZzeF9zdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBib29sIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4KCh2ZWN0b3IgaW50KV9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfdnN4X3N0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHgoKHZlY3RvciBpbnQpX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY192c3hfc3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIF9fYnVpbHRpbl92c3hfc3R4dnc0eCgodmVjdG9yIGludClfX2EsIF9fYiwgX19jKTsKfQoKI2VuZGlmCgojaWZkZWYgX19WU1hfXwojZGVmaW5lIHZlY194eHBlcm1kaSBfX2J1aWx0aW5fdnN4X3h4cGVybWRpCiNkZWZpbmUgdmVjX3h4c2xkd2kgX19idWlsdGluX3ZzeF94eHNsZHdpCiNkZWZpbmUgdmVjX3Blcm1pKF9fYSwgX19iLCBfX2MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9fYSksIHZlY3RvciBzaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSksICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSksICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX19hKSwgKF9fYiksICgoKF9fYykgPj4gMSkgJiAweDEpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKChfX2MpJjB4MSkgKyAyKSkpCiNlbmRpZgoKLyogdmVjX3hvciAqLwoKI2RlZmluZSBfX2J1aWx0aW5fYWx0aXZlY192eG9yIHZlY194b3IKCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3hvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfeG9yKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeG9yKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgZG91YmxlKSgodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgXgogICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3hvcih2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4KICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY194b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSkoKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4KICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfdnhvciAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2hvcnQpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3Igc2hvcnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciBib29sIHNob3J0IF9fYSwgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3IgaW50KV9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBpbnQpX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgYm9vbCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY192eG9yKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSBeICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY192eG9yKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPQogICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Z4b3IodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGludCBfX3JlcyA9CiAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSBeICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYjsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfdnhvcih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fcmVzID0KICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19hIF4gKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiAodmVjdG9yIGZsb2F0KV9fcmVzOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIF4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSBeIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIF4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdnhvcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Z4b3IodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KI2VuZGlmCgovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZXh0ZW5zaW9ucyBmb3IgQ0JFQSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwoKLyogdmVjX2V4dHJhY3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHhmXTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweGZdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHhmXTsKfQoKc3RhdGljIF9faW5saW5lX18gc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDddOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHg3XTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hW19fYiAmIDB4N107Cn0KCnN0YXRpYyBfX2lubGluZV9fIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDNdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19leHRyYWN0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDFdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYVtfX2IgJiAweDFdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hW19fYiAmIDB4MV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX2V4dHJhY3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgxXTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2FbX19iICYgMHgzXTsKfQoKI2lmZGVmIF9fUE9XRVI5X1ZFQ1RPUl9fCgojZGVmaW5lIHZlY19pbnNlcnQ0YiBfX2J1aWx0aW5fdnN4X2luc2VydHdvcmQKI2RlZmluZSB2ZWNfZXh0cmFjdDRiIF9fYnVpbHRpbl92c3hfZXh0cmFjdHV3b3JkCgovKiB2ZWNfZXh0cmFjdF9leHAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X2V4cCh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZ4ZXhwc3AoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3RfZXhwKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZ4ZXhwZHAoX19hKTsKfQoKLyogdmVjX2V4dHJhY3Rfc2lnICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdF9zaWcodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2eHNpZ3NwKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X3NpZyAodmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnhzaWdkcChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0X2ZwMzJfZnJvbV9zaG9ydGgodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IgPQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIC0xLCAxLCAtMSwgMiwgLTEsIDMsIC0xKTsKI2Vsc2UKICAgICAgICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIC0xLCAwLCAtMSwgMSwgLTEsIDIsIC0xLCAzKTsKI2VuZGlmCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjdmhwc3AoX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdF9mcDMyX2Zyb21fc2hvcnRsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgICAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA0LCAtMSwgNSwgLTEsIDYsIC0xLCA3LCAtMSk7CiNlbHNlCiAgICAgICAgICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAtMSwgNCwgLTEsIDUsIC0xLCA2LCAtMSwgNyk7CiNlbmRpZgogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y3ZocHNwKF9fYik7Cn0KI2VuZGlmIC8qIF9fUE9XRVI5X1ZFQ1RPUl9fICovCgovKiB2ZWNfaW5zZXJ0ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19pbnNlcnQoc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpIHZlY19pbnNlcnQodW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQoc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19pbnNlcnQodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IsIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydChzaWduZWQgaW50IF9fYSwgdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkgdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydChzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iLCBpbnQgX19jKSB7CiAgX19iW19fY10gPSBfX2E7CiAgcmV0dXJuIF9fYjsKfQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfaW5zZXJ0KGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYykgewogIF9fYltfX2NdID0gX19hOwogIHJldHVybiBfX2I7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19pbnNlcnQoZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2MpIHsKICBfX2JbX19jXSA9IF9fYTsKICByZXR1cm4gX19iOwp9CgovKiB2ZWNfbHZseCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciBib29sIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2bHgoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3Igc2hvcnQpKDApLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkKF9fYSwgX19iKSwgKHZlY3RvciBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgYm9vbCBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZseChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgcGl4ZWwpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsIGNvbnN0IGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2bHgoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGludCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdmx4KGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGludCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmx4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGQoX19hLCBfX2IpLCAodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZseChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZChfX2EsIF9fYiksICh2ZWN0b3IgZmxvYXQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCi8qIHZlY19sdmx4bCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZseGwoaW50IF9fYSwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciBzaWduZWQgY2hhcikoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgYm9vbCBjaGFyKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdmx4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHNob3J0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3Igc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdmx4bChpbnQgX19hLCBjb25zdCB2ZWN0b3IgYm9vbCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgc2hvcnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBwaXhlbCBfX0FUVFJTX29fYWkgdmVjX2x2bHhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBwaXhlbCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIHBpeGVsKSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2bHhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZseGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSh2ZWNfbGRsKF9fYSwgX19iKSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGludCBfX0FUVFJTX29fYWkKdmVjX2x2bHhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGJvb2wgaW50KSgwKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdmx4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKHZlY19sZGwoX19hLCBfX2IpLCAodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbHZseGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0odmVjX2xkbChfX2EsIF9fYiksICh2ZWN0b3IgZmxvYXQpKDApLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCi8qIHZlY19sdnJ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGJvb2wgY2hhcikoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbHZyeChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNob3J0KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBzaG9ydCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgc2hvcnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIHNob3J0KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgcGl4ZWwgX19BVFRSU19vX2FpIHZlY19sdnJ4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBwaXhlbCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGludCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwgY29uc3QgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZyeChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2x2cngoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4KGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgYm9vbCBpbnQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2cngoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgZmxvYXQpKDApLCB2ZWNfbGQoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnJ4KGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBmbG9hdCkoMCksIHZlY19sZChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKLyogdmVjX2x2cnhsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19sdnJ4bChpbnQgX19hLCBjb25zdCBzaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGNoYXIpKDApLCB2ZWNfbGRsKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCBfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgY2hhciAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciB1bnNpZ25lZCBjaGFyKSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgY2hhciBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIGNoYXIgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGJvb2wgY2hhcikoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX2x2cnhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBzaG9ydCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3Igc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciB1bnNpZ25lZCBzaG9ydCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApLCB2ZWNfbGRsKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgdmVjX2x2c2woX19hLCAodW5zaWduZWQgY2hhciAqKV9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgYm9vbCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2x2cnhsKGludCBfX2EsIGNvbnN0IHZlY3RvciBib29sIHNob3J0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIHNob3J0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHBpeGVsIF9fQVRUUlNfb19haSB2ZWNfbHZyeGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmVjdG9yIHBpeGVsICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBwaXhlbCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBpbnQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLCBjb25zdCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfbHZyeGwoaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZlY3RvciBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sdnJ4bChpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIHVuc2lnbmVkIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIHVuc2lnbmVkIGludCAqX19iKSB7CiAgcmV0dXJuIHZlY19wZXJtKCh2ZWN0b3IgdW5zaWduZWQgaW50KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfbHZyeGwoaW50IF9fYSwgY29uc3QgdmVjdG9yIGJvb2wgaW50ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBib29sIGludCkoMCksIHZlY19sZGwoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICB2ZWNfbHZzbChfX2EsICh1bnNpZ25lZCBjaGFyICopX19iKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX2x2cnhsKGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2IpIHsKICByZXR1cm4gdmVjX3Blcm0oKHZlY3RvciBmbG9hdCkoMCksIHZlY19sZGwoX19hLCBfX2IpLCB2ZWNfbHZzbChfX2EsIF9fYikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19sdnJ4bChpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ZWN0b3IgZmxvYXQgKl9fYikgewogIHJldHVybiB2ZWNfcGVybSgodmVjdG9yIGZsb2F0KSgwKSwgdmVjX2xkbChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAgIHZlY19sdnNsKF9fYSwgKHVuc2lnbmVkIGNoYXIgKilfX2IpKTsKfQoKLyogdmVjX3N0dmx4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHgodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZseGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3Igc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0odmVjX2x2cngoX19iLCBfX2MpLCBfX2EsIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2bHhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybSh2ZWNfbHZyeChfX2IsIF9fYyksIF9fYSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZseGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dmx4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKHZlY19sdnJ4KF9fYiwgX19jKSwgX19hLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKLyogdmVjX3N0dnJ4ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHBpeGVsIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBwaXhlbCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgaW50IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3QoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsIF9fYykpLCBfX2IsCiAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cngodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0KAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCi8qIHZlY19zdHZyeGwgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBjaGFyICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIGJvb2wgY2hhciBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3Igc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHNob3J0IF9fYSwgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19iLCB1bnNpZ25lZCBzaG9ydCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIGJvb2wgc2hvcnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBwaXhlbCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCgKICAgICAgdmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgKHVuc2lnbmVkIGNoYXIgKilfX2MpKSwKICAgICAgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwodmVjX3Blcm0oX19hLCB2ZWNfbHZseChfX2IsIF9fYyksIHZlY19sdnNyKF9fYiwgX19jKSksIF9fYiwKICAgICAgICAgICAgICAgICBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfc3R2cnhsKHZlY3RvciBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgKl9fYykgewogIHJldHVybiB2ZWNfc3RsKAogICAgICB2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCAodW5zaWduZWQgY2hhciAqKV9fYykpLAogICAgICBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2MpIHsKICByZXR1cm4gdmVjX3N0bCh2ZWNfcGVybShfX2EsIHZlY19sdmx4KF9fYiwgX19jKSwgdmVjX2x2c3IoX19iLCBfX2MpKSwgX19iLAogICAgICAgICAgICAgICAgIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY19zdHZyeGwodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3IgYm9vbCBpbnQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3N0dnJ4bCh2ZWN0b3IgZmxvYXQgX19hLCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIHZlY19zdGwoCiAgICAgIHZlY19wZXJtKF9fYSwgdmVjX2x2bHgoX19iLCBfX2MpLCB2ZWNfbHZzcihfX2IsICh1bnNpZ25lZCBjaGFyICopX19jKSksCiAgICAgIF9fYiwgX19jKTsKfQoKLyogdmVjX3Byb21vdGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUoc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19yZXMgPSAodmVjdG9yIHNpZ25lZCBjaGFyKSgwKTsKICBfX3Jlc1tfX2IgJiAweDddID0gX19hOwogIHJldHVybiBfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19yZXMgPSAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2hvcnQgX19BVFRSU19vX2FpIHZlY19wcm9tb3RlKHNob3J0IF9fYSwgaW50IF9fYikgewogIHZlY3RvciBzaG9ydCBfX3JlcyA9ICh2ZWN0b3Igc2hvcnQpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIHNob3J0IF9fYSwgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3JlcyA9ICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpKDApOwogIF9fcmVzW19fYiAmIDB4N10gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfcHJvbW90ZShpbnQgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIGludCBfX3JlcyA9ICh2ZWN0b3IgaW50KSgwKTsKICBfX3Jlc1tfX2IgJiAweDNdID0gX19hOwogIHJldHVybiBfX3JlczsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUodW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYikgewogIHZlY3RvciB1bnNpZ25lZCBpbnQgX19yZXMgPSAodmVjdG9yIHVuc2lnbmVkIGludCkoMCk7CiAgX19yZXNbX19iICYgMHgzXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkgdmVjX3Byb21vdGUoZmxvYXQgX19hLCBpbnQgX19iKSB7CiAgdmVjdG9yIGZsb2F0IF9fcmVzID0gKHZlY3RvciBmbG9hdCkoMCk7CiAgX19yZXNbX19iICYgMHgzXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpIHZlY19wcm9tb3RlKGRvdWJsZSBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3IgZG91YmxlIF9fcmVzID0gKHZlY3RvciBkb3VibGUpKDApOwogIF9fcmVzW19fYiAmIDB4MV0gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3Byb21vdGUoc2lnbmVkIGxvbmcgbG9uZyBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3JlcyA9ICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoMCk7CiAgX19yZXNbX19iICYgMHgxXSA9IF9fYTsKICByZXR1cm4gX19yZXM7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wcm9tb3RlKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIGludCBfX2IpIHsKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKDApOwogIF9fcmVzW19fYiAmIDB4MV0gPSBfX2E7CiAgcmV0dXJuIF9fcmVzOwp9CiNlbmRpZgoKLyogdmVjX3NwbGF0cyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBjaGFyKShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3NwbGF0cyh1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGNoYXIpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0cyhzaG9ydCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaG9ydCkoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIHNob3J0KShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgaW50IF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKGludCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBpbnQpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19zcGxhdHModW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCkoX19hKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19zcGxhdHMoc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYSk7Cn0KCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRzKHNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NwbGF0cyh1bnNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkoX19hKTsKfQoKI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRzKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gKHZlY3RvciBkb3VibGUpKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19zcGxhdHMoZmxvYXQgX19hKSB7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKF9fYSk7Cn0KCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHByZWRpY2F0ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgovKiB2ZWNfYWxsX2VxICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVCwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFQsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFQsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVCwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xULCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVCwgX19hLCAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfTFQsICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVCwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2VxKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9lcSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX2dlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2IsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNob3J0KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUSwgKHZlY3RvciBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVEsIF9fYiwgKHZlY3RvciBzaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9nZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2dlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3FfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ2UodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXFfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xULCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0xULCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVCwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RkcF9wKF9fQ1I2X0xULCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ndCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2d0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfTFQsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfaW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19hbGxfaW4odmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKLyogdmVjX2FsbF9sZSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0VRLCBfX2EsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRLCBfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUSwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVEsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9FUSwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUSwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVEsICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGdlZnBfcChfX0NSNl9MVCwgX19iLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2xlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlZHBfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzcV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX2x0ICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCBfX2IsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xULCAodmVjdG9yIHNob3J0KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xULCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfTFQsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVCwgKHZlY3RvciBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFQsIF9fYiwgKHZlY3RvciBzaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgX19iLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFQsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xULCAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVCwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFQsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVCwgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVCwgX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbHQodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RkcF9wKF9fQ1I2X0xULCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9sdCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX2x0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfTFQsIF9fYiwgX19hKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmFuICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmFuKHZlY3RvciBmbG9hdCBfX2EpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9FUSwgX19hLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmFuKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfRVEsIF9fYSwgX19hKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmUgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0VRLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUSwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUSwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVEsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsIF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9FUSwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9FUSwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVEsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUSwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVEsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9FUSwgKHZlY3RvciBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25lKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYWxsX25nZSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX25nZSh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlc3BfcChfX0NSNl9FUSwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmdlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbGxfbmd0ICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbGxfbmd0KHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfRVEsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9uZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUSwgX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ubGUgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX2FsbF9ubGUodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ubGUodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlZHBfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9ubHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX2FsbF9ubHQodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfRVEsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FsbF9ubHQodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUSwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FsbF9udW1lcmljICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpCnZlY19hbGxfbnVtZXJpYyh2ZWN0b3IgZmxvYXQgX19hKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfTFQsIF9fYSwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVCwgX19hLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYWxsX251bWVyaWModmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxZHBfcChfX0NSNl9MVCwgX19hLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9lcSAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgX19hLCAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgcGl4ZWwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHBpeGVsIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsIF9fYSwgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9FUV9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9lcSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKAogICAgICBfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2VxKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcXNwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcWZwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZXFkcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZXEodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXFfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfZ2UgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfTFRfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaG9ydClfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgaW50KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9MVF9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2dlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0xUX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGdlc3BfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGdlZnBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9nZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUV9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfRVFfUkVWLCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVoX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRX1JFViwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0VRX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfZ3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfRVFfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ndCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ3RzcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RmcF9wKF9fQ1I2X0VRX1JFViwgX19hLCBfX2IpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3FfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2d0KHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVxX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X2xlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2JfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9MVF9SRVYsIF9fYSwgKHZlY3RvciBzaG9ydClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBpbnQgX19hLCB2ZWN0b3IgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3Rzd19wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCBfX2EsICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHV3X3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfTFRfUkVWLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sZSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9MVF9SRVYsIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzZF9wKF9fQ1I2X0xUX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHVkX3AoX19DUjZfTFRfUkVWLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2xlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjEwX1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzcV9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbGUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXFfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfbHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzYl9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHViX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1Yl9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNiX3AoX19DUjZfRVFfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWJfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3RzaF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciBzaG9ydClfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2hfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1aF9wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGludCBfX2EsIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHN3X3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsICh2ZWN0b3IgaW50KV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dXdfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c3dfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1d19wKF9fQ1I2X0VRX1JFViwgKHZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0c2RfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X2x0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1ZF9wKF9fQ1I2X0VRX1JFViwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNkX3AoX19DUjZfRVFfUkVWLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0dWRfcChfX0NSNl9FUV9SRVYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnBfcChfX0NSNl9FUV9SRVYsIF9fYiwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndGRwX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndHNxX3AoX19DUjZfRVFfUkVWLCBfX2IsIF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9sdCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ3R1cV9wKF9fQ1I2X0VRX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9uYW4gKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uYW4odmVjdG9yIGZsb2F0IF9fYSkgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZXFzcF9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXFmcF9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2EpOwojZW5kaWYKfQojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmFuKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X25lICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWJfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBjaGFyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXViX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGJvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1Yl9wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGNoYXIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCBfX2EsICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWhfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3Igc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2hvcnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBwaXhlbCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgcGl4ZWwgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVoX3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgaW50IF9fYSwgdmVjdG9yIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgX19hLCAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdXdfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGludClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGJvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXV3X3AoX19DUjZfTFRfUkVWLCAodmVjdG9yIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBpbnQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1d19wKF9fQ1I2X0xUX1JFViwgKHZlY3RvciBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgaW50KV9fYik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcChfX0NSNl9MVF9SRVYsICh2ZWN0b3IgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1ZF9wKF9fQ1I2X0xUX1JFViwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxdWRfcCgKICAgICAgX19DUjZfTFRfUkVWLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25lKHZlY3RvciBib29sIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVkX3AoCiAgICAgIF9fQ1I2X0xUX1JFViwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgKHZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmUodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBlcXVxX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZXF1cV9wKF9fQ1I2X0xUX1JFViwgX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9uZ2UgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZ2UodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZXNwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBnZWZwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmdlKHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBnZWRwX3AoX19DUjZfTFRfUkVWLCBfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X25ndCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25ndCh2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBmbG9hdCBfX2IpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0c3BfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGd0ZnBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9uZ3QodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGd0ZHBfcChfX0NSNl9MVF9SRVYsIF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIHZlY19hbnlfbmxlICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmxlKHZlY3RvciBmbG9hdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewojaWZkZWYgX19WU1hfXwogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VzcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wZ2VmcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfYW55X25sZSh2ZWN0b3IgZG91YmxlIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2Y21wZ2VkcF9wKF9fQ1I2X0xUX1JFViwgX19iLCBfX2EpOwp9CiNlbmRpZgoKLyogdmVjX2FueV9ubHQgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9ubHQodmVjdG9yIGZsb2F0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgZmxvYXQgX19iKSB7CiNpZmRlZiBfX1ZTWF9fCiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndHNwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbXBndGZwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7CiNlbmRpZgp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19hbnlfbmx0KHZlY3RvciBkb3VibGUgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBndGRwX3AoX19DUjZfTFRfUkVWLCBfX2IsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X251bWVyaWMgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9udW1lcmljKHZlY3RvciBmbG9hdCBfX2EpIHsKI2lmZGVmIF9fVlNYX18KICByZXR1cm4gX19idWlsdGluX3ZzeF94dmNtcGVxc3BfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNtcGVxZnBfcChfX0NSNl9FUV9SRVYsIF9fYSwgX19hKTsKI2VuZGlmCn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX2FueV9udW1lcmljKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHZjbXBlcWRwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYSk7Cn0KI2VuZGlmCgovKiB2ZWNfYW55X291dCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKdmVjX2FueV9vdXQodmVjdG9yIGZsb2F0IF9fYSwgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y21wYmZwX3AoX19DUjZfRVFfUkVWLCBfX2EsIF9fYik7Cn0KCi8qIFBvd2VyIDggQ3J5cHRvIGZ1bmN0aW9ucwpOb3RlOiBXZSBkaXZlcmdlIGZyb20gdGhlIGN1cnJlbnQgR0NDIGltcGxlbWVudGF0aW9uIHdpdGggcmVnYXJkCnRvIGNyeXB0b2dyYXBoeSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMgYXMgZm9sbG93czoKLSBPbmx5IHRoZSBTSEEgYW5kIEFFUyBpbnN0cnVjdGlvbnMgYW5kIGJ1aWx0aW5zIGFyZSBkaXNhYmxlZCBieSAtbW5vLWNyeXB0bwotIFRoZSByZW1haW5pbmcgb25lcyBhcmUgb25seSBhdmFpbGFibGUgb24gUG93ZXI4IGFuZCB1cCBzbwogIHJlcXVpcmUgLW1wb3dlcjgtdmVjdG9yClRoZSBqdXN0aWZpY2F0aW9uIGZvciB0aGlzIGlzIHRoYXQgZXhwb3J0IHJlcXVpcmVtZW50cyByZXF1aXJlIHRoYXQKQ2F0ZWdvcnk6VmVjdG9yLkNyeXB0byBpcyBvcHRpb25hbCAoaS5lLiBjb21wbGlhbnQgaGFyZHdhcmUgbWF5IG5vdCBwcm92aWRlCnN1cHBvcnQpLiBBcyBhIHJlc3VsdCwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHR1cm4gb2ZmIHN1cHBvcnQgZm9yIHRob3NlLgpUaGUgcmVtYWluaW5nIG9uZXMgKGN1cnJlbnRseSBjb250cm9sbGVkIGJ5IC1tY3J5cHRvIGZvciBHQ0MpIHN0aWxsCm5lZWQgdG8gYmUgcHJvdmlkZWQgb24gY29tcGxpYW50IGhhcmR3YXJlIGV2ZW4gaWYgVmVjdG9yLkNyeXB0byBpcyBub3QKcHJvdmlkZWQuCiovCiNpZmRlZiBfX0NSWVBUT19fCiNkZWZpbmUgdmVjX3Nib3hfYmUgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzYm94CiNkZWZpbmUgdmVjX2NpcGhlcl9iZSBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdmNpcGhlcgojZGVmaW5lIHZlY19jaXBoZXJsYXN0X2JlIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192Y2lwaGVybGFzdAojZGVmaW5lIHZlY19uY2lwaGVyX2JlIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192bmNpcGhlcgojZGVmaW5lIHZlY19uY2lwaGVybGFzdF9iZSBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdm5jaXBoZXJsYXN0CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKX19idWlsdGluX2NyeXB0b192c2JveCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnNib3goX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdmNpcGhlcih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192Y2lwaGVyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdmNpcGhlcmxhc3QodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZjaXBoZXJsYXN0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdm5jaXBoZXIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZuY2lwaGVyKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fYnVpbHRpbl9jcnlwdG9fdm5jaXBoZXJsYXN0KHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdm5jaXBoZXJsYXN0KF9fYSwgX19iKTsKfQoKI2RlZmluZSBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYWQgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzaGFzaWdtYWQKI2RlZmluZSBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYXcgX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZzaGFzaWdtYXcKCiNkZWZpbmUgdmVjX3NoYXNpZ21hX2JlKFgsIFksIFopICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKFgpLCB2ZWN0b3IgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYXcsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICBcCiAgICAgICAgICAgOiBfX2J1aWx0aW5fY3J5cHRvX3ZzaGFzaWdtYWQpKChYKSwgKFkpLCAoWikpCiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19wZXJteG9yKHZlY3RvciBib29sIGNoYXIgX19hLCB2ZWN0b3IgYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgdmVjdG9yIGJvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwZXJteG9yKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19wZXJteG9yKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHZlY3RvciBzaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwZXJteG9yKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3Blcm14b3IodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKX19idWlsdGluX2NyeXB0b192cGVybXhvcih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haSBfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKAogICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBlcm14b3IoCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwZXJteG9yKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cGVybXhvcigKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQpfX2J1aWx0aW5fY3J5cHRvX3ZwbXN1bWIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfY3J5cHRvX3ZwbXN1bWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCl9fYnVpbHRpbl9jcnlwdG9fdnBtc3VtYih2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cG1zdW1oKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKX19idWlsdGluX2NyeXB0b192cG1zdW1iKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19jcnlwdG9fdnBtc3VtdyhfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCl9fYnVpbHRpbl9jcnlwdG9fdnBtc3VtYih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX2NyeXB0b192cG1zdW1kKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfdmdiYmQodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Z2JiZCgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKI2RlZmluZSB2ZWNfcG1zdW1fYmUgX19idWlsdGluX2NyeXB0b192cG1zdW1iCiNkZWZpbmUgdmVjX2diIF9fYnVpbHRpbl9hbHRpdmVjX3ZnYmJkCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3ZnYmJkKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Z2JiZChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2diYih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmdiYmQoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19nYmIodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmdiYmQoKHZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY192YnBlcm1xKHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmJwZXJtcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfdmJwZXJtcSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192YnBlcm1xKF9fYSwgX19iKTsKfQoKI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCnZlY19icGVybSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmJwZXJtcSgodmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CiNlbmRpZgojZW5kaWYKCgovKiB2ZWNfcmV2ZSAqLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgY2hhciB2ZWNfcmV2ZSh2ZWN0b3IgYm9vbCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNSwgNCwgMywgMiwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBzaWduZWQgY2hhciB2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JldmUodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgaW50IHZlY19yZXZlKHZlY3RvciBib29sIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIGludCB2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgaW50CnZlY19yZXZlKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGJvb2wgc2hvcnQgdmVjX3JldmUodmVjdG9yIGJvb2wgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcmV2ZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmV2ZSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIGZsb2F0IHZlY19yZXZlKHZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDMsIDIsIDEsIDApOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgYm9vbCBsb25nIGxvbmcKdmVjX3JldmUodmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19yZXZlKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMSwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3JldmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDEsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgZG91YmxlIHZlY19yZXZlKHZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAxLCAwKTsKfQojZW5kaWYKCi8qIHZlY19yZXZiICovCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIGNoYXIgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciBib29sIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBib29sIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQgfTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsIF9faW5kaWNlcyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2LCA5LCA4LCAxMSwgMTAsIDEzLCAxMiwgMTUsIDE0IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19yZXZiKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgIHsgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgaW50IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBpbnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyIH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyIH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgMywgMiwgMSwgMCwgNywgNiwgNSwgNCwgMTEsIDEwLCA5LCA4LCAxNSwgMTQsIDEzLCAxMiB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgZmxvYXQgX19hKSB7CiB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIgfTsKIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGJvb2wgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgYm9vbCBsb25nIGxvbmcgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19pbmRpY2VzID0KICAgICAgeyA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4IH07CiAgcmV0dXJuIHZlY19wZXJtKF9fYSwgX19hLCBfX2luZGljZXMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfcmV2Yih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCB9OwogIHJldHVybiB2ZWNfcGVybShfX2EsIF9fYSwgX19pbmRpY2VzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIGRvdWJsZSBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDggfTsKICByZXR1cm4gdmVjX3Blcm0oX19hLCBfX2EsIF9faW5kaWNlcyk7Cn0KI2VuZGlmIC8qIEVuZCBfX1ZTWF9fICovCgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2luZGljZXMgPQogICAgICB7IDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAgfTsKICByZXR1cm4gKHZlY3RvciBzaWduZWQgX19pbnQxMjgpdmVjX3Blcm0oKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW5kaWNlcyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3JldmIodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9faW5kaWNlcyA9CiAgICAgIHsgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCB9OwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KXZlY19wZXJtKCh2ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbmRpY2VzKTsKfQojZW5kaWYgLyogRU5EIF9fUE9XRVI4X1ZFQ1RPUl9fICYmIF9fcG93ZXJwYzY0X18gKi8KCi8qIHZlY194bCAqLwoKI2RlZmluZSB2ZWNfeGxkMiB2ZWNfeGwKI2RlZmluZSB2ZWNfeGx3NCB2ZWNfeGwKdHlwZWRlZiB2ZWN0b3Igc2lnbmVkIGNoYXIgdW5hbGlnbmVkX3ZlY19zY2hhciBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHVuc2lnbmVkIGNoYXIgdW5hbGlnbmVkX3ZlY191Y2hhciBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBzaG9ydCB1bmFsaWduZWRfdmVjX3NzaG9ydCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdmVjdG9yIHVuc2lnbmVkIHNob3J0IHVuYWxpZ25lZF92ZWNfdXNob3J0IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3Igc2lnbmVkIGludCB1bmFsaWduZWRfdmVjX3NpbnQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciB1bnNpZ25lZCBpbnQgdW5hbGlnbmVkX3ZlY191aW50IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdW5hbGlnbmVkX3ZlY19mbG9hdCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEpKSk7CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIGNoYXIgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NjaGFyICopKF9fcHRyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfdWNoYXIqKShfX3B0ciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY19zc2hvcnQgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3VzaG9ydCAqKV9fYWRkcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBpbnQgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY19zaW50ICopX19hZGRyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgaW50CnZlY194bChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3VpbnQgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBmbG9hdCB2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfZmxvYXQgKilfX2FkZHI7Cn0KCiNpZmRlZiBfX1ZTWF9fCnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgdW5hbGlnbmVkX3ZlY19zbGwgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgdW5hbGlnbmVkX3ZlY191bGwgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHZlY3RvciBkb3VibGUgdW5hbGlnbmVkX3ZlY19kb3VibGUgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NsbCAqKV9fYWRkcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfeGwocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY191bGwgKilfX2FkZHI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZlY3RvciBkb3VibGUgdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZG91YmxlICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogIHJldHVybiAqKHVuYWxpZ25lZF92ZWNfZG91YmxlICopX19hZGRyOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgICAgICAgICAgICAgICAgICAgIFwKICAgIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnR5cGVkZWYgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCB1bmFsaWduZWRfdmVjX3NpMTI4IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMSkpKTsKdHlwZWRlZiB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggdW5hbGlnbmVkX3ZlY191aTEyOAogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxKSkpOwpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3Igc2lnbmVkIF9faW50MTI4CnZlY194bChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBfX2ludDEyOCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICByZXR1cm4gKih1bmFsaWduZWRfdmVjX3NpMTI4ICopX19hZGRyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgKdmVjX3hsKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgX19pbnQxMjggKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgcmV0dXJuICoodW5hbGlnbmVkX3ZlY191aTEyOCAqKV9fYWRkcjsKfQojZW5kaWYKCi8qIHZlY194bF9iZSAqLwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjID0gKHZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYyA9ICh2ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfeGxfYmUocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYyA9ICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl92c3hfbHh2ZDJ4X2JlKF9fb2Zmc2V0LCBfX3B0cik7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjID0gKHZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3ZzeF9seHZ3NHhfYmUoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl92c3hfbHh2dzR4X2JlKF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICByZXR1cm4gKHZlY3RvciBmbG9hdClfX2J1aWx0aW5fdnN4X2x4dnc0eF9iZShfX29mZnNldCwgX19wdHIpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3ZzeF9seHZkMnhfYmUoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3hsX2JlKHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfbHh2ZDJ4X2JlKF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBkb3VibGUgX19BVFRSU19vX2FpCnZlY194bF9iZShzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwgY29uc3QgZG91YmxlICpfX3B0cikgewogIHJldHVybiAodmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fdnN4X2x4dmQyeF9iZShfX29mZnNldCwgX19wdHIpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19QT1dFUjhfVkVDVE9SX18pICYmIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgICAgICAgICAgICAgICAgICAgIFwKICAgIGRlZmluZWQoX19TSVpFT0ZfSU5UMTI4X18pCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF9iZShzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwgY29uc3Qgc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHJldHVybiB2ZWNfeGwoX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfYmUoc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHJldHVybiB2ZWNfeGwoX19vZmZzZXQsIF9fcHRyKTsKfQojZW5kaWYKI2Vsc2UKICAjZGVmaW5lIHZlY194bF9iZSB2ZWNfeGwKI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSMTBfVkVDVE9SX18pICYmIGRlZmluZWQoX19WU1hfXykgJiYgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKCi8qIHZlY3RfeGxfc2V4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBjaGFyICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wb2ludGVyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKihfX3BvaW50ZXIgKyBfX29mZnNldCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3hsX3NleHQocHRyZGlmZl90IF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfc2V4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgovKiB2ZWNfeGxfemV4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfemV4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF96ZXh0KHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcG9pbnRlcikgewogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSooX19wb2ludGVyICsgX19vZmZzZXQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY194bF96ZXh0KHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3BvaW50ZXIpIHsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkqKF9fcG9pbnRlciArIF9fb2Zmc2V0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfeGxfemV4dChwdHJkaWZmX3QgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wb2ludGVyKSB7CiAgcmV0dXJuICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKihfX3BvaW50ZXIgKyBfX29mZnNldCk7Cn0KCiNlbmRpZgoKLyogdmVjX3hsZHMgKi8KI2lmZGVmIF9fVlNYX18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bGRzKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgbG9uZyBsb25nICpfX2FkZHIgPSAoc2lnbmVkIGxvbmcgbG9uZyopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpICpfX2FkZHI7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY194bGRzKHB0cmRpZmZfdCBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHVuc2lnbmVkIGxvbmcgbG9uZyAqX19hZGRyID0gKHVuc2lnbmVkIGxvbmcgbG9uZyAqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHVuYWxpZ25lZF92ZWNfdWxsKSAqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfeGxkcyhwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRvdWJsZSAqX19wdHIpIHsKICBkb3VibGUgKl9fYWRkciA9IChkb3VibGUqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHVuYWxpZ25lZF92ZWNfZG91YmxlKSAqX19hZGRyOwp9CgovKiB2ZWNfbG9hZF9zcGxhdHMgKi8Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19sb2FkX3NwbGF0cyhzaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIHNpZ25lZCBpbnQgKl9fYWRkciA9IChzaWduZWQgaW50KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3Igc2lnbmVkIGludCkqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgaW50ICpfX2FkZHIgPSAoc2lnbmVkIGludCopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHNpZ25lZCBpbnQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICB1bnNpZ25lZCBpbnQgKl9fYWRkciA9ICh1bnNpZ25lZCBpbnQqKSgoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KTsKICByZXR1cm4gKHZlY3RvciB1bnNpZ25lZCBpbnQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2xvYWRfc3BsYXRzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0cikgewogIHVuc2lnbmVkIGludCAqX19hZGRyID0gKHVuc2lnbmVkIGludCopKChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpOwogIHJldHVybiAodmVjdG9yIHVuc2lnbmVkIGludCkqX19hZGRyOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpCnZlY19sb2FkX3NwbGF0cyhzaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICBmbG9hdCAqX19hZGRyID0gKGZsb2F0KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKl9fYWRkcjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfbG9hZF9zcGxhdHModW5zaWduZWQgbG9uZyBsb25nIF9fb2Zmc2V0LCBjb25zdCBmbG9hdCAqX19wdHIpIHsKICBmbG9hdCAqX19hZGRyID0gKGZsb2F0KikoKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldCk7CiAgcmV0dXJuICh2ZWN0b3IgZmxvYXQpKl9fYWRkcjsKfQojZW5kaWYKCi8qIHZlY194c3QgKi8KCiNkZWZpbmUgdmVjX3hzdGQyIHZlY194c3QKI2RlZmluZSB2ZWNfeHN0dzQgdmVjX3hzdApzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QodmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsIHNpZ25lZCBjaGFyICpfX3B0cikgewogICoodW5hbGlnbmVkX3ZlY19zY2hhciAqKShfX3B0ciArIF9fb2Zmc2V0KSA9IF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QodmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICAqKHVuYWxpZ25lZF92ZWNfdWNoYXIgKikoX19wdHIgKyBfX29mZnNldCkgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KHZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY19zc2hvcnQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY191c2hvcnQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LCBzaWduZWQgaW50ICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY19zaW50ICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsIHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfdWludCAqKV9fYWRkciA9IF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3QodmVjdG9yIGZsb2F0IF9fdmVjLCBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfZmxvYXQgKilfX2FkZHIgPSBfX3ZlYzsKfQoKI2lmZGVmIF9fVlNYX18Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfc2xsICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIHNpZ25lZCBjaGFyICpfX2FkZHIgPSAoc2lnbmVkIGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0OwogICoodW5hbGlnbmVkX3ZlY191bGwgKilfX2FkZHIgPSBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBkb3VibGUgX192ZWMsIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfZG91YmxlICopX19hZGRyID0gX192ZWM7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX1BPV0VSOF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX1NJWkVPRl9JTlQxMjhfXykKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0KHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgX19pbnQxMjggKl9fcHRyKSB7CiAgc2lnbmVkIGNoYXIgKl9fYWRkciA9IChzaWduZWQgY2hhciAqKV9fcHRyICsgX19vZmZzZXQ7CiAgKih1bmFsaWduZWRfdmVjX3NpMTI4ICopX19hZGRyID0gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdCh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDEyOCAqX19wdHIpIHsKICBzaWduZWQgY2hhciAqX19hZGRyID0gKHNpZ25lZCBjaGFyICopX19wdHIgKyBfX29mZnNldDsKICAqKHVuYWxpZ25lZF92ZWNfdWkxMjggKilfX2FkZHIgPSBfX3ZlYzsKfQojZW5kaWYKCi8qIHZlY194c3RfdHJ1bmMgKi8KCiNpZiBkZWZpbmVkKF9fUE9XRVIxMF9WRUNUT1JfXykgJiYgZGVmaW5lZChfX1ZTWF9fKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAoc2lnbmVkIGNoYXIpX192ZWNbMF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdF90cnVuYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgY2hhcilfX3ZlY1swXTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZCB2ZWNfeHN0X3RydW5jKHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgc2hvcnQpX192ZWNbMF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQgdmVjX3hzdF90cnVuYyh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICAqKF9fcHRyICsgX19vZmZzZXQpID0gKHVuc2lnbmVkIHNob3J0KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgaW50KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgaW50KV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0cmRpZmZfdCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgKihfX3B0ciArIF9fb2Zmc2V0KSA9IChzaWduZWQgbG9uZyBsb25nKV9fdmVjWzBdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkIHZlY194c3RfdHJ1bmModmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyZGlmZl90IF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogICooX19wdHIgKyBfX29mZnNldCkgPSAodW5zaWduZWQgbG9uZyBsb25nKV9fdmVjWzBdOwp9CiNlbmRpZgoKLyogdmVjX3hzdF9iZSAqLwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBjaGFyICpfX3B0cikgewogIHZlY3RvciBzaWduZWQgY2hhciBfX3RtcCA9CiAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX192ZWMsIF9fdmVjLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHR5cGVkZWYgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoc2l6ZW9mKF9fdG1wKSkpKSBkb3VibGUgX192ZWN0b3JfZG91YmxlOwogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgoX192ZWN0b3JfZG91YmxlKV9fdG1wLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX190bXAgPQogICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEzLCAxMiwgMTEsIDEwLCA5LCA4KTsKICB0eXBlZGVmIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKHNpemVvZihfX3RtcCkpKSkgZG91YmxlIF9fdmVjdG9yX2RvdWJsZTsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMnhfYmUoKF9fdmVjdG9yX2RvdWJsZSlfX3RtcCwgX19vZmZzZXQsIF9fcHRyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0FUVFJTX29fYWkgdmVjX3hzdF9iZSh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fdG1wID0KICAgICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3ZlYywgX192ZWMsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHR5cGVkZWYgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoc2l6ZW9mKF9fdG1wKSkpKSBkb3VibGUgX192ZWN0b3JfZG91YmxlOwogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgoX192ZWN0b3JfZG91YmxlKV9fdG1wLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX190bXAgPQogICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fdmVjLCBfX3ZlYywgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZShzaXplb2YoX190bXApKSkpIGRvdWJsZSBfX3ZlY3Rvcl9kb3VibGU7CiAgX19idWlsdGluX3ZzeF9zdHh2ZDJ4X2JlKChfX3ZlY3Rvcl9kb3VibGUpX190bXAsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHhfYmUoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2dzR4X2JlKCh2ZWN0b3IgaW50KV9fdmVjLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBmbG9hdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZ3NHhfYmUoKHZlY3RvciBpbnQpX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX2J1aWx0aW5fdnN4X3N0eHZkMnhfYmUoKHZlY3RvciBkb3VibGUpX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduZWQgbG9uZyBsb25nICBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX19idWlsdGluX3ZzeF9zdHh2ZDJ4X2JlKCh2ZWN0b3IgZG91YmxlKV9fdmVjLCBfX29mZnNldCwgX19wdHIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBkb3VibGUgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlICpfX3B0cikgewogIF9fYnVpbHRpbl92c3hfc3R4dmQyeF9iZSgodmVjdG9yIGRvdWJsZSlfX3ZlYywgX19vZmZzZXQsIF9fcHRyKTsKfQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fUE9XRVI4X1ZFQ1RPUl9fKSAmJiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICBcCiAgICBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fQVRUUlNfb19haSB2ZWNfeHN0X2JlKHZlY3RvciBzaWduZWQgX19pbnQxMjggX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHZlY194c3QoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19BVFRSU19vX2FpIHZlY194c3RfYmUodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgIF9fb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4ICpfX3B0cikgewogIHZlY194c3QoX192ZWMsIF9fb2Zmc2V0LCBfX3B0cik7Cn0KI2VuZGlmCiNlbHNlCiAgI2RlZmluZSB2ZWNfeHN0X2JlIHZlY194c3QKI2VuZGlmCgojaWZkZWYgX19QT1dFUjlfVkVDVE9SX18KI2RlZmluZSB2ZWNfdGVzdF9kYXRhX2NsYXNzKF9fYSwgX19iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fYSksIHZlY3RvciBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAodmVjdG9yIGJvb2wgaW50KV9fYnVpbHRpbl92c3hfeHZ0c3RkY3NwKCh2ZWN0b3IgZmxvYXQpKF9fYSksIChfX2IpKSwgIFwKICAgICAgICB2ZWN0b3IgZG91YmxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgOiAodmVjdG9yIGJvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl92c3hfeHZ0c3RkY2RwKCh2ZWN0b3IgZG91YmxlKShfX2EpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IpKSkKCiNlbmRpZiAvKiAjaWZkZWYgX19QT1dFUjlfVkVDVE9SX18gKi8KCnN0YXRpYyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiAtX19hOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX25lZyh2ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiAtX19hOwp9CgojZW5kaWYKCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfbmVnKHZlY3RvciBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KI2VuZGlmCgpzdGF0aWMgdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haSB2ZWNfbmVnKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIC1fX2E7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19uZWcodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAtX19hOwp9CgpzdGF0aWMgdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haSB2ZWNfbmFicyh2ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIC0gdmVjX2FicyhfX2EpOwp9CgojaWZkZWYgX19WU1hfXwpzdGF0aWMgdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gLSB2ZWNfYWJzKF9fYSk7Cn0KCiNlbmRpZgoKI2lmZGVmIF9fUE9XRVI4X1ZFQ1RPUl9fCnN0YXRpYyB2ZWN0b3IgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfbmFicyh2ZWN0b3IgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192bWluc2QoX19hLCAtX19hKTsKfQojZW5kaWYKCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZtaW5zdyhfX2EsIC1fX2EpOwp9CgpzdGF0aWMgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkgdmVjX25hYnModmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNoKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpIHZlY19uYWJzKHZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdm1pbnNiKF9fYSwgLV9fYSk7Cn0KCnN0YXRpYyB2ZWN0b3IgZmxvYXQgX19BVFRSU19vX2FpIHZlY19yZWNpcGRpdih2ZWN0b3IgZmxvYXQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fcHBjX3JlY2lwZGl2ZihfX2EsIF9fYik7Cn0KCiNpZmRlZiBfX1ZTWF9fCnN0YXRpYyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfcmVjaXBkaXYodmVjdG9yIGRvdWJsZSBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3BwY19yZWNpcGRpdmQoX19hLCBfX2IpOwp9CiNlbmRpZgoKI2lmZGVmIF9fUE9XRVIxMF9WRUNUT1JfXwoKLyogdmVjX2V4dHJhY3RtICovCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHJhY3RibShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRyYWN0aG0oX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZXh0cmFjdG0odmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dHJhY3R3bShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0cmFjdGRtKF9fYSk7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHRyYWN0bSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRyYWN0cW0oX19hKTsKfQojZW5kaWYKCi8qIHZlY19leHBhbmRtICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2V4cGFuZG0odmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHBhbmRibShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19leHBhbmRtKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4cGFuZGhtKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19leHBhbmRtKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHBhbmR3bShfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfZXhwYW5kbSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXhwYW5kZG0oX19hKTsKfQoKI2lmZGVmIF9fU0laRU9GX0lOVDEyOF9fCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX2V4cGFuZG0odmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXhwYW5kcW0oX19hKTsKfQojZW5kaWYKCi8qIHZlY19jbnRtICovCgojZGVmaW5lIHZlY19jbnRtKF9fYSwgX19tcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9HZW5lcmljKChfX2EpLCB2ZWN0b3IgdW5zaWduZWQgY2hhciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iYigoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iaCgoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1idygoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpLCAgICAgICAgICAgXAogICAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgIDogX19idWlsdGluX2FsdGl2ZWNfdmNudG1iZCgoX19hKSwgKHVuc2lnbmVkIGludCkoX19tcCkpKQoKLyogdmVjX2dlbltifGh8d3xkfHFdbSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19nZW5ibSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcmJtKF9fYm0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19nZW5obSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcmhtKF9fYm0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfZ2Vud20odW5zaWduZWQgbG9uZyBsb25nIF9fYm0pIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfbXR2c3J3bShfX2JtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2dlbmRtKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2JtKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX210dnNyZG0oX19ibSk7Cn0KCiNpZmRlZiBfX1NJWkVPRl9JTlQxMjhfXwpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19nZW5xbSh1bnNpZ25lZCBsb25nIGxvbmcgX19ibSkgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY19tdHZzcnFtKF9fYm0pOwp9CiNlbmRpZgoKLyogdmVjX3BkZXAgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19wZGVwKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192cGRlcGQoX19hLCBfX2IpOwp9CgovKiB2ZWNfcGV4dCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX3BleHQodmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZwZXh0ZChfX2EsIF9fYik7Cn0KCi8qIHZlY19jZnVnZSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NmdWdlKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2Z1Z2VkKF9fYSwgX19iKTsKfQoKLyogdmVjX2duYiAqLwoKI2RlZmluZSB2ZWNfZ25iKF9fYSwgX19iKSBfX2J1aWx0aW5fYWx0aXZlY192Z25iKF9fYSwgX19iKQoKLyogdmVjX3Rlcm5hcnlsb2dpYyAqLwojaWZkZWYgX19WU1hfXwojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18KI2RlZmluZSB2ZWNfdGVybmFyeWxvZ2ljKF9fYSwgX19iLCBfX2MsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSkKI2Vsc2UKI2RlZmluZSB2ZWNfdGVybmFyeWxvZ2ljKF9fYSwgX19iLCBfX2MsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSwgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhldmFsKCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2EpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2IpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2MpLCAoX19pbW0pKSkKI2VuZGlmIC8qIF9fU0laRU9GX0lOVDEyOF9fICovCiNlbmRpZiAvKiBfX1ZTWF9fICovCgovKiB2ZWNfZ2VucGN2bSAqLwoKI2lmZGVmIF9fVlNYX18KI2RlZmluZSB2ZWNfZ2VucGN2bShfX2EsIF9faW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZibSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZobSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3Z3bSgoX19hKSwgKGludCkoX19pbW0pKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6IF9fYnVpbHRpbl92c3hfeHhnZW5wY3ZkbSgoX19hKSwgKGludCkoX19pbW0pKSkKI2VuZGlmIC8qIF9fVlNYX18gKi8KCi8qIHZlY19jbHJfZmlyc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Nscl9maXJzdCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBpbnQgX19uKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xycmIoX19hLCBfX24pOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xybGIoIF9fYSwgX19uKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfY2xyX2ZpcnN0KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgaW50IF9fbikgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNscnJiKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX24pOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192Y2xybGIoKHZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fbik7CiNlbmRpZgp9CgovKiB2ZWNfY2xyX2xhc3QgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2Nscl9sYXN0KHZlY3RvciBzaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGludCBfX24pIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJsYihfX2EsIF9fbik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJyYiggX19hLCBfX24pOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19jbHJfbGFzdCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHVuc2lnbmVkIGludCBfX24pIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZjbHJsYigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19uKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNscnJiKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX24pOwojZW5kaWYKfQoKLyogdmVjX2NudGx6bSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudGx6bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmNsemRtKF9fYSwgX19iKTsKfQoKLyogdmVjX2NudHR6bSAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2NudHR6bSh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmN0emRtKF9fYSwgX19iKTsKfQoKLyogdmVjX21vZCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19tb2QodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfbW9kKHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgJSBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfbW9kKHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAlIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX21vZCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX21vZCh2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hICUgX19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19tb2QodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiAgX19hICUgX19iOwp9CiNlbmRpZgoKLyogdmVjX3NsZGJpICovCgojZGVmaW5lIHZlY19zbGRiKF9fYSwgX19iLCBfX2MpIF9fYnVpbHRpbl9hbHRpdmVjX3ZzbGRiaShfX2EsIF9fYiwgKF9fYyAmIDB4NykpCgovKiB2ZWNfc3JkYmkgKi8KCiNkZWZpbmUgdmVjX3NyZGIoX19hLCBfX2IsIF9fYykgX19idWlsdGluX2FsdGl2ZWNfdnNyZGJpKF9fYSwgX19iLCAoX19jICYgMHg3KSkKCi8qIHZlY19pbnNlcnRsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHJ4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaGx4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGwodW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3cngoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3bHgoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2J2cngoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnNidmx4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHZyeChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2h2bHgoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0bCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3dnJ4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zd3ZseChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCi8qIHZlY19pbnNlcnRoICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2JyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaGx4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHJ4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkKdmVjX2luc2VydGgodW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3bHgoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3cngoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2RyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2J2bHgoX19iLCBfX2MsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnNidnJ4KF9fYiwgX19jLCBfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zaHZseChfX2IsIF9fYywgX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmluc2h2cngoX19iLCBfX2MsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgaW50IF9fQVRUUlNfb19haQp2ZWNfaW5zZXJ0aCh2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZpbnN3dmx4KF9fYiwgX19jLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192aW5zd3ZyeChfX2IsIF9fYywgX19hKTsKI2VuZGlmCn0KCi8qIHZlY19leHRyYWN0bCAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkgdmVjX2V4dHJhY3RsKAogICAgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWJ2cngoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWJ2bHgoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0bCgKICAgIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWh2cngoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdWh2bHgoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0bCgKICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdmV4dGR1d3ZyeChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmV0ID0gX19idWlsdGluX2FsdGl2ZWNfdmV4dGR1d3ZseChfX2EsIF9fYiwgX19jKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDgpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2V4dHJhY3RsKHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkZHZyeChfX2EsIF9fYiwgX19jKTsKI2Vsc2UKICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fcmV0ID0gX19idWlsdGluX2FsdGl2ZWNfdmV4dGRkdmx4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgovKiB2ZWNfZXh0cmFjdGggKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpIHZlY19leHRyYWN0aCgKICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVidmx4KF9fYSwgX19iLCBfX2MpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQgPSBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVidnJ4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdGgoCiAgICB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVodmx4KF9fYSwgX19iLCBfX2MpOwojZWxzZQogIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19yZXQgPSBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZHVodnJ4KF9fYSwgX19iLCBfX2MpOwogIHJldHVybiB2ZWNfc2xkKF9fcmV0LCBfX3JldCwgOCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fQVRUUlNfb19haSB2ZWNfZXh0cmFjdGgoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdXd2bHgoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkdXd2cngoX19hLCBfX2IsIF9fYyk7CiAgcmV0dXJuIHZlY19zbGQoX19yZXQsIF9fcmV0LCA4KTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19BVFRSU19vX2FpCnZlY19leHRyYWN0aCh2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192ZXh0ZGR2bHgoX19hLCBfX2IsIF9fYyk7CiNlbHNlCiAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3JldCA9IF9fYnVpbHRpbl9hbHRpdmVjX3ZleHRkZHZyeChfX2EsIF9fYiwgX19jKTsKICByZXR1cm4gdmVjX3NsZChfX3JldCwgX19yZXQsIDgpOwojZW5kaWYKfQoKI2lmZGVmIF9fVlNYX18KCi8qIHZlY19wZXJteCAqLwoKI2RlZmluZSB2ZWNfcGVybXgoX19hLCBfX2IsIF9fYywgX19kKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5fdnN4X3h4cGVybXgoKF9fYSksIChfX2IpLCAoX19jKSwgKF9fZCkpCgovKiB2ZWNfYmxlbmR2ICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmIoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfYmxlbmR2KHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2YihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2aChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fQVRUUlNfb19haQp2ZWNfYmxlbmR2KHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2aChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHNpZ25lZCBpbnQgX19hLCB2ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdncoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBpbnQgX19BVFRSU19vX2FpCnZlY19ibGVuZHYodmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIHZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgIHZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl92c3hfeHhibGVuZHZ3KF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICB2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2ZChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmQoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBmbG9hdCBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgZmxvYXQgX19hLCB2ZWN0b3IgZmxvYXQgX19iLCB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h4YmxlbmR2dyhfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGRvdWJsZSBfX0FUVFJTX29fYWkKdmVjX2JsZW5kdih2ZWN0b3IgZG91YmxlIF9fYSwgdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgICAgdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94eGJsZW5kdmQoX19hLCBfX2IsIF9fYyk7Cn0KCi8qIHZlY19yZXBsYWNlX2VsdCAqLwoKI2RlZmluZSB2ZWNfcmVwbGFjZV9lbHQgX19idWlsdGluX2FsdGl2ZWNfdmVjX3JlcGxhY2VfZWx0CgovKiB2ZWNfcmVwbGFjZV91bmFsaWduZWQgKi8KCiNkZWZpbmUgdmVjX3JlcGxhY2VfdW5hbGlnbmVkIF9fYnVpbHRpbl9hbHRpdmVjX3ZlY19yZXBsYWNlX3VuYWxpZ25lZAoKLyogdmVjX3NwbGF0aSAqLwoKI2RlZmluZSB2ZWNfc3BsYXRpKF9fYSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfR2VuZXJpYygoX19hKSwgc2lnbmVkIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIHNpZ25lZCBpbnQpX19hKSwgdW5zaWduZWQgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIHVuc2lnbmVkIGludClfX2EpLCBmbG9hdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICA6ICgodmVjdG9yIGZsb2F0KV9fYSkpCgovKiB2ZWNfc3BhdGlkICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgZG91YmxlIF9fQVRUUlNfb19haSB2ZWNfc3BsYXRpZChjb25zdCBmbG9hdCBfX2EpIHsKICByZXR1cm4gKCh2ZWN0b3IgZG91YmxlKSgoZG91YmxlKV9fYSkpOwp9CgovKiB2ZWNfc3BsYXRpX2lucyAqLwoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBpbnQgX19BVFRSU19vX2FpIHZlY19zcGxhdGlfaW5zKAogICAgdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgX19iLCBjb25zdCBzaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX2FbMSAtIF9fYl0gPSBfX2M7CiAgX19hWzMgLSBfX2JdID0gX19jOwojZWxzZQogIF9fYVtfX2JdID0gX19jOwogIF9fYVsyICsgX19iXSA9IF9fYzsKI2VuZGlmCiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIGludCBfX0FUVFJTX29fYWkgdmVjX3NwbGF0aV9pbnMoCiAgICB2ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgY29uc3QgdW5zaWduZWQgaW50IF9fYiwgY29uc3QgdW5zaWduZWQgaW50IF9fYykgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICBfX2FbMSAtIF9fYl0gPSBfX2M7CiAgX19hWzMgLSBfX2JdID0gX19jOwojZWxzZQogIF9fYVtfX2JdID0gX19jOwogIF9fYVsyICsgX19iXSA9IF9fYzsKI2VuZGlmCiAgcmV0dXJuIF9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIGZsb2F0IF9fQVRUUlNfb19haQp2ZWNfc3BsYXRpX2lucyh2ZWN0b3IgZmxvYXQgX19hLCBjb25zdCB1bnNpZ25lZCBpbnQgX19iLCBjb25zdCBmbG9hdCBfX2MpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgX19hWzEgLSBfX2JdID0gX19jOwogIF9fYVszIC0gX19iXSA9IF9fYzsKI2Vsc2UKICBfX2FbX19iXSA9IF9fYzsKICBfX2FbMiArIF9fYl0gPSBfX2M7CiNlbmRpZgogIHJldHVybiBfX2E7Cn0KCi8qIHZlY190ZXN0X2xzYmJfYWxsX29uZXMgKi8KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkKdmVjX3Rlc3RfbHNiYl9hbGxfb25lcyh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3ZzeF94dnRsc2JiKF9fYSwgMSk7Cn0KCi8qIHZlY190ZXN0X2xzYmJfYWxsX3plcm9zICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpCnZlY190ZXN0X2xzYmJfYWxsX3plcm9zKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fdnN4X3h2dGxzYmIoX19hLCAwKTsKfQojZW5kaWYgLyogX19WU1hfXyAqLwoKLyogdmVjX3N0cmlsICovCgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgY2hhciBfX0FUVFJTX29fYWkKdmVjX3N0cmlsKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYmwoKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3RyaWwodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdHJpbCh2ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhyKCh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaGwoKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgc2hvcnQgX19BVFRSU19vX2FpCnZlY19zdHJpbCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocihfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsKF9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfc3RyaWxfcCAqLwoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaWxfcCh2ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX3N0cmlsX3AodmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicl9wKF9fQ1I2X0VRLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsIF9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpbF9wKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlobF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaWxfcCh2ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocl9wKF9fQ1I2X0VRLCBfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsX3AoX19DUjZfRVEsIF9fYSk7CiNlbmRpZgp9CgovKiB2ZWNfc3RyaXIgKi8KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fQVRUUlNfb19haQp2ZWNfc3RyaXIodmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKCh2ZWN0b3Igc2lnbmVkIGNoYXIpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlicigodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIGNoYXIgX19BVFRSU19vX2FpCnZlY19zdHJpcih2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnIoX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N0cmlyKHZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaGwoKHZlY3RvciBzaWduZWQgc2hvcnQpX19hKTsKI2Vsc2UKICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlocigodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHNpZ25lZCBzaG9ydCBfX0FUVFJTX29fYWkKdmVjX3N0cmlyKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsKF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHIoX19hKTsKI2VuZGlmCn0KCi8qIHZlY19zdHJpcl9wICovCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpcl9wKHZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlibF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBjaGFyKV9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgKHZlY3RvciBzaWduZWQgY2hhcilfX2EpOwojZW5kaWYKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fQVRUUlNfb19haSB2ZWNfc3RyaXJfcCh2ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWJsX3AoX19DUjZfRVEsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpYnJfcChfX0NSNl9FUSwgX19hKTsKI2VuZGlmCn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0FUVFJTX29fYWkgdmVjX3N0cmlyX3AodmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gX19idWlsdGluX2FsdGl2ZWNfdnN0cmlobF9wKF9fQ1I2X0VRLCAodmVjdG9yIHNpZ25lZCBzaG9ydClfX2EpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhyX3AoX19DUjZfRVEsICh2ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19BVFRSU19vX2FpIHZlY19zdHJpcl9wKHZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJldHVybiBfX2J1aWx0aW5fYWx0aXZlY192c3RyaWhsX3AoX19DUjZfRVEsIF9fYSk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hbHRpdmVjX3ZzdHJpaHJfcChfX0NSNl9FUSwgX19hKTsKI2VuZGlmCn0KCi8qIHZzW2wgfCByIHwgcmFdICovCgojaWZkZWYgX19TSVpFT0ZfSU5UMTI4X18Kc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgPDwgKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKHNpemVvZih1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc2wodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hIDw8IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YodW5zaWduZWQgX19pbnQxMjgpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKc3RhdGljIF9faW5saW5lX18gdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYSwgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4IF9fYikgewogIHJldHVybiBfX2EgPj4gKF9fYiAlICh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjgpKHNpemVvZih1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fQ0hBUl9CSVRfXykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2ZWN0b3Igc2lnbmVkIF9faW50MTI4IF9fQVRUUlNfb19haQp2ZWNfc3IodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gKAogICAgICB2ZWN0b3Igc2lnbmVkIF9faW50MTI4KSgoKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOClfX2EpID4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCkoc2l6ZW9mKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50MTI4KSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX0FUVFJTX29fYWkKdmVjX3NyYSh2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19hLCB2ZWN0b3IgdW5zaWduZWQgX19pbnQxMjggX19iKSB7CiAgcmV0dXJuICgKICAgICAgdmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KSgoKHZlY3RvciBzaWduZWQgX19pbnQxMjgpX19hKSA+PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2IgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDEyOCkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZlY3RvciBzaWduZWQgX19pbnQxMjggX19BVFRSU19vX2FpCnZlY19zcmEodmVjdG9yIHNpZ25lZCBfX2ludDEyOCBfX2EsIHZlY3RvciB1bnNpZ25lZCBfX2ludDEyOCBfX2IpIHsKICByZXR1cm4gX19hID4+IChfX2IgJSAodmVjdG9yIHVuc2lnbmVkIF9faW50MTI4KShzaXplb2YodW5zaWduZWQgX19pbnQxMjgpICoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX0NIQVJfQklUX18pKTsKfQoKI2VuZGlmIC8qIF9fU0laRU9GX0lOVDEyOF9fICovCiNlbmRpZiAvKiBfX1BPV0VSMTBfVkVDVE9SX18gKi8KCiN1bmRlZiBfX0FUVFJTX29fYWkKCiNlbmRpZiAvKiBfX0FMVElWRUNfSCAqLwoALyo9PT0tLS0tIGFtbWludHJpbi5oIC0gU1NFNGEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FNTUlOVFJJTl9ICiNkZWZpbmUgX19BTU1JTlRSSU5fSAoKI2luY2x1ZGUgPHBtbWludHJpbi5oPgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNzZTRhIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGF0IHRoZSBpbmRleCBcYSBpZHggYW5kIG9mIHRoZSBsZW5ndGggXGEgbGVuLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fZXh0cmFjdGlfc2k2NChfX20xMjhpIHgsIGNvbnN0IGludCBsZW4sIGNvbnN0IGludCBpZHgpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEVYVFJRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIHgKLy8vICAgIFRoZSB2YWx1ZSBmcm9tIHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBsZW4KLy8vICAgIEJpdHMgWzU6MF0gc3BlY2lmeSB0aGUgbGVuZ3RoOyB0aGUgb3RoZXIgYml0cyBhcmUgaWdub3JlZC4gSWYgYml0cyBbNTowXQovLy8gICAgYXJlIHplcm8sIHRoZSBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuCi8vLyBccGFyYW0gaWR4Ci8vLyAgICBCaXRzIFs1OjBdIHNwZWNpZnkgdGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQ7IHRoZSBvdGhlcgovLy8gICAgYml0cyBhcmUgaWdub3JlZC4gSWYgdGhlIHN1bSBvZiB0aGUgaW5kZXggYW5kIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gNjQsCi8vLyAgICB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4gSWYgdGhlIGxlbmd0aCBhbmQgaW5kZXggYXJlIGJvdGggemVybywgYml0cwovLy8gICAgWzYzOjBdIG9mIHBhcmFtZXRlciBcYSB4IGFyZSBleHRyYWN0ZWQuIElmIHRoZSBsZW5ndGggaXMgemVybyBidXQgdGhlCi8vLyAgICBpbmRleCBpcyBub24temVybywgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igd2hvc2UgbG93ZXIgNjQgYml0cyBjb250YWluIHRoZSBiaXRzCi8vLyAgICBleHRyYWN0ZWQgZnJvbSB0aGUgc291cmNlIG9wZXJhbmQuCiNkZWZpbmUgX21tX2V4dHJhY3RpX3NpNjQoeCwgbGVuLCBpZHgpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cnFpKChfX3YyZGkpKF9fbTEyOGkpKHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikobGVuKSwgKGNoYXIpKGlkeCkpKQoKLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIGF0IHRoZSBpbmRleCBhbmQgb2YgdGhlIGxlbmd0aCBzcGVjaWZpZWQgYnkKLy8vICAgIFxhIF9feS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFWFRSUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3gKLy8vICAgIFRoZSB2YWx1ZSBmcm9tIHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBfX3kKLy8vICAgIFNwZWNpZmllcyB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBhdCBbMTM6OF0gYW5kIHRoZQovLy8gICAgbGVuZ3RoIGF0IFs1OjBdOyBhbGwgb3RoZXIgYml0cyBhcmUgaWdub3JlZC4gSWYgYml0cyBbNTowXSBhcmUgemVybywgdGhlCi8vLyAgICBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuIElmIHRoZSBzdW0gb2YgdGhlIGluZGV4IGFuZCBsZW5ndGggaXMKLy8vICAgIGdyZWF0ZXIgdGhhbiA2NCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZSBsZW5ndGggYW5kIGluZGV4IGFyZQovLy8gICAgYm90aCB6ZXJvLCBiaXRzIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgX194IGFyZSBleHRyYWN0ZWQuIElmIHRoZSBsZW5ndGgKLy8vICAgIGlzIHplcm8gYnV0IHRoZSBpbmRleCBpcyBub24temVybywgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIHdob3NlIGxvd2VyIDY0IGJpdHMgY29udGFpbiB0aGUgYml0cyBleHRyYWN0ZWQKLy8vICAgIGZyb20gdGhlIHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZXh0cmFjdF9zaTY0KF9fbTEyOGkgX194LCBfX20xMjhpIF9feSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRycSgoX192MmRpKV9feCwgKF9fdjE2cWkpX195KTsKfQoKLy8vIEluc2VydHMgYml0cyBvZiBhIHNwZWNpZmllZCBsZW5ndGggZnJvbSB0aGUgc291cmNlIGludGVnZXIgdmVjdG9yCi8vLyAgICBcYSB5IGludG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uIGludGVnZXIgdmVjdG9yIFxhIHggYXQKLy8vICAgIHRoZSBpbmRleCBcYSBpZHggYW5kIG9mIHRoZSBsZW5ndGggXGEgbGVuLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1faW5zZXJ0aV9zaTY0KF9fbTEyOGkgeCwgX19tMTI4aSB5LCBjb25zdCBpbnQgbGVuLAovLy8gY29uc3QgaW50IGlkeCk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gSU5TRVJUUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSB4Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gb3BlcmFuZCB3aGVyZSBiaXRzIHdpbGwgYmUgaW5zZXJ0ZWQuIFRoZSBpbnNlcnRlZCBiaXRzCi8vLyAgICBhcmUgZGVmaW5lZCBieSB0aGUgbGVuZ3RoIFxhIGxlbiBhbmQgYnkgdGhlIGluZGV4IFxhIGlkeCBzcGVjaWZ5aW5nIHRoZQovLy8gICAgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LgovLy8gXHBhcmFtIHkKLy8vICAgIFRoZSBzb3VyY2Ugb3BlcmFuZCBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIGV4dHJhY3RlZC4gVGhlIGV4dHJhY3RlZAovLy8gICAgYml0cyBhcmUgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2Ygb3BlcmFuZCBcYSB5IG9mIGxlbmd0aCBcYSBsZW4uCi8vLyBccGFyYW0gbGVuCi8vLyAgICBCaXRzIFs1OjBdIHNwZWNpZnkgdGhlIGxlbmd0aDsgdGhlIG90aGVyIGJpdHMgYXJlIGlnbm9yZWQuIElmIGJpdHMgWzU6MF0KLy8vICAgIGFyZSB6ZXJvLCB0aGUgbGVuZ3RoIGlzIGludGVycHJldGVkIGFzIDY0LgovLy8gXHBhcmFtIGlkeAovLy8gICAgQml0cyBbNTowXSBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0OyB0aGUgb3RoZXIKLy8vICAgIGJpdHMgYXJlIGlnbm9yZWQuIElmIHRoZSBzdW0gb2YgdGhlIGluZGV4IGFuZCBsZW5ndGggaXMgZ3JlYXRlciB0aGFuIDY0LAovLy8gICAgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZSBsZW5ndGggYW5kIGluZGV4IGFyZSBib3RoIHplcm8sIGJpdHMKLy8vICAgIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgeSBhcmUgaW5zZXJ0ZWQgaW50byBwYXJhbWV0ZXIgXGEgeC4gSWYgdGhlIGxlbmd0aAovLy8gICAgaXMgemVybyBidXQgdGhlIGluZGV4IGlzIG5vbi16ZXJvLCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBvcmlnaW5hbCBsb3dlciA2NC1iaXRzIG9mCi8vLyAgICBkZXN0aW5hdGlvbiBvcGVyYW5kIFxhIHggd2l0aCB0aGUgc3BlY2lmaWVkIGJpdGZpZWxkcyByZXBsYWNlZCBieSB0aGUKLy8vICAgIGxvd2VyIGJpdHMgb2Ygc291cmNlIG9wZXJhbmQgXGEgeS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJldHVybiB2YWx1ZQovLy8gICAgYXJlIHVuZGVmaW5lZC4KI2RlZmluZSBfbW1faW5zZXJ0aV9zaTY0KHgsIHksIGxlbiwgaWR4KSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2luc2VydHFpKChfX3YyZGkpKF9fbTEyOGkpKHgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFyKShsZW4pLCAoY2hhcikoaWR4KSkpCgovLy8gSW5zZXJ0cyBiaXRzIG9mIGEgc3BlY2lmaWVkIGxlbmd0aCBmcm9tIHRoZSBzb3VyY2UgaW50ZWdlciB2ZWN0b3IKLy8vICAgIFxhIF9feSBpbnRvIHRoZSBsb3dlciA2NCBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbiBpbnRlZ2VyIHZlY3RvciBcYSBfX3gKLy8vICAgIGF0IHRoZSBpbmRleCBhbmQgb2YgdGhlIGxlbmd0aCBzcGVjaWZpZWQgYnkgXGEgX195LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IElOU0VSVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX194Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gb3BlcmFuZCB3aGVyZSBiaXRzIHdpbGwgYmUgaW5zZXJ0ZWQuIFRoZSBpbnNlcnRlZCBiaXRzCi8vLyAgICBhcmUgZGVmaW5lZCBieSB0aGUgbGVuZ3RoIGFuZCBieSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdAovLy8gICAgc3BlY2lmaWVkIGJ5IG9wZXJhbmQgXGEgX195LgovLy8gXHBhcmFtIF9feQovLy8gICAgVGhlIHNvdXJjZSBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIGJpdHMgdG8gYmUgZXh0cmFjdGVkLiBUaGUgZXh0cmFjdGVkCi8vLyAgICBiaXRzIGFyZSB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBvcGVyYW5kIFxhIF9feSB3aXRoIGxlbmd0aAovLy8gICAgc3BlY2lmaWVkIGJ5IGJpdHMgWzY5OjY0XS4gVGhlc2UgYXJlIGluc2VydGVkIGludG8gdGhlIGRlc3RpbmF0aW9uIGF0IHRoZQovLy8gICAgaW5kZXggc3BlY2lmaWVkIGJ5IGJpdHMgWzc3OjcyXTsgYWxsIG90aGVyIGJpdHMgYXJlIGlnbm9yZWQuIElmIGJpdHMKLy8vICAgIFs2OTo2NF0gYXJlIHplcm8sIHRoZSBsZW5ndGggaXMgaW50ZXJwcmV0ZWQgYXMgNjQuIElmIHRoZSBzdW0gb2YgdGhlCi8vLyAgICBpbmRleCBhbmQgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiA2NCwgdGhlIHJlc3VsdCBpcyB1bmRlZmluZWQuIElmIHRoZQovLy8gICAgbGVuZ3RoIGFuZCBpbmRleCBhcmUgYm90aCB6ZXJvLCBiaXRzIFs2MzowXSBvZiBwYXJhbWV0ZXIgXGEgX195IGFyZQovLy8gICAgaW5zZXJ0ZWQgaW50byBwYXJhbWV0ZXIgXGEgX194LiBJZiB0aGUgbGVuZ3RoIGlzIHplcm8gYnV0IHRoZSBpbmRleCBpcwovLy8gICAgbm9uLXplcm8sIHRoZSByZXN1bHQgaXMgdW5kZWZpbmVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG9yaWdpbmFsIGxvd2VyIDY0LWJpdHMgb2YKLy8vICAgIGRlc3RpbmF0aW9uIG9wZXJhbmQgXGEgX194IHdpdGggdGhlIHNwZWNpZmllZCBiaXRmaWVsZHMgcmVwbGFjZWQgYnkgdGhlCi8vLyAgICBsb3dlciBiaXRzIG9mIHNvdXJjZSBvcGVyYW5kIFxhIF9feS4gVGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJldHVybgovLy8gICAgdmFsdWUgYXJlIHVuZGVmaW5lZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2luc2VydF9zaTY0KF9fbTEyOGkgX194LCBfX20xMjhpIF9feSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9pbnNlcnRxKChfX3YyZGkpX194LCAoX192MmRpKV9feSk7Cn0KCi8vLyBTdG9yZXMgYSA2NC1iaXQgZG91YmxlLXByZWNpc2lvbiB2YWx1ZSBpbiBhIDY0LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyAgICBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUKLy8vICAgIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WTlRTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIFRoZSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHJlZ2lzdGVyIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHJlZ2lzdGVyIHZhbHVlIHRvIGJlIHN0b3JlZC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9zZChkb3VibGUgKl9fcCwgX19tMTI4ZCBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZudHNkKF9fcCwgKF9fdjJkZilfX2EpOwp9CgovLy8gU3RvcmVzIGEgMzItYml0IHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgaW4gYSAzMi1iaXQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbi4gVG8gbWluaW1pemUgY2FjaGluZywgdGhlIGRhdGEgaXMgZmxhZ2dlZCBhcwovLy8gICAgbm9uLXRlbXBvcmFsICh1bmxpa2VseSB0byBiZSB1c2VkIGFnYWluIHNvb24pLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVk5UU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBUaGUgMzItYml0IG1lbW9yeSBsb2NhdGlvbiB1c2VkIHRvIHN0b3JlIHRoZSByZWdpc3RlciB2YWx1ZS4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIFRoZSAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCByZWdpc3RlciB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdHJlYW1fc3MoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21vdm50c3MoX19wLCAoX192NHNmKV9fYSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX0FNTUlOVFJJTl9IICovCgBhbXhpbnRyaW4uaABhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaAAvKj09PS0tLS0tLSBjZXQuaCAtQ29udHJvbC1mbG93IEVuZm9yY2VtZW50IFRlY2hub2xvZ3kgIGZlYXR1cmUgLS0tLS0tLS0tLS0tPT09CiAqIEFkZCB4ODYgZmVhdHVyZSB3aXRoIElCVCBhbmQvb3IgU0hTVEsgYml0cyB0byBFTEYgcHJvZ3JhbSBwcm9wZXJ0eSBpZiB0aGV5CiAqIGFyZSBlbmFibGVkLiBPdGhlcndpc2UsIGNvbnRlbnRzIGluIHRoaXMgaGVhZGVyIGZpbGUgYXJlIHVudXNlZC4gVGhpcyBmaWxlCiAqIGlzIG1haW5seSBkZXNpZ24gZm9yIGFzc2VtYmx5IHNvdXJjZSBjb2RlIHdoaWNoIHdhbnQgdG8gZW5hYmxlIENFVC4KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NFVF9ICiNkZWZpbmUgX19DRVRfSAoKI2lmZGVmIF9fQVNTRU1CTEVSX18KCiNpZm5kZWYgX19DRVRfXwojIGRlZmluZSBfQ0VUX0VOREJSCiNlbmRpZgoKI2lmZGVmIF9fQ0VUX18KCiMgaWZkZWYgX19MUDY0X18KIyAgaWYgX19DRVRfXyAmIDB4MQojICAgIGRlZmluZSBfQ0VUX0VOREJSIGVuZGJyNjQKIyAgZWxzZQojICAgIGRlZmluZSBfQ0VUX0VOREJSCiMgIGVuZGlmCiMgZWxzZQojICBpZiBfX0NFVF9fICYgMHgxCiMgICAgZGVmaW5lIF9DRVRfRU5EQlIgZW5kYnIzMgojICBlbHNlCiMgICAgZGVmaW5lIF9DRVRfRU5EQlIKIyAgZW5kaWYKIyBlbmRpZgoKCiMgIGlmZGVmIF9fTFA2NF9fCiMgICBkZWZpbmUgX19QUk9QRVJUWV9BTElHTiAzCiMgIGVsc2UKIyAgIGRlZmluZSBfX1BST1BFUlRZX0FMSUdOIDIKIyAgZW5kaWYKCgkucHVzaHNlY3Rpb24gIi5ub3RlLmdudS5wcm9wZXJ0eSIsICJhIgoJLnAyYWxpZ24gX19QUk9QRVJUWV9BTElHTgoJLmxvbmcgMWYgLSAwZgkJLyogbmFtZSBsZW5ndGguICAqLwoJLmxvbmcgNGYgLSAxZgkJLyogZGF0YSBsZW5ndGguICAqLwoJLyogTlRfR05VX1BST1BFUlRZX1RZUEVfMC4gICAqLwoJLmxvbmcgNQkJCS8qIG5vdGUgdHlwZS4gICovCjA6CgkuYXNjaXogIkdOVSIJCS8qIHZlbmRvciBuYW1lLiAgKi8KMToKCS5wMmFsaWduIF9fUFJPUEVSVFlfQUxJR04KCS8qIEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8xX0FORC4gICovCgkubG9uZyAweGMwMDAwMDAyCS8qIHByX3R5cGUuICAqLwoJLmxvbmcgM2YgLSAyZgkJLyogcHJfZGF0YXN6LiAgKi8KMjoKCS8qIEdOVV9QUk9QRVJUWV9YODZfRkVBVFVSRV8xX1hYWC4gICovCgkubG9uZyBfX0NFVF9fCjM6CgkucDJhbGlnbiBfX1BST1BFUlRZX0FMSUdOCjQ6CgkucG9wc2VjdGlvbgojZW5kaWYKI2VuZGlmCiNlbmRpZgoALyo9PT0tLS0tIGNsZmx1c2hvcHRpbnRyaW4uaCAtIENMRkxVU0hPUFQgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxjbGZsdXNob3B0aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0NMRkxVU0hPUFRJTlRSSU5fSAojZGVmaW5lIF9fQ0xGTFVTSE9QVElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImNsZmx1c2hvcHQiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY2xmbHVzaG9wdCh2b2lkIGNvbnN0ICogX19tKSB7CiAgX19idWlsdGluX2lhMzJfY2xmbHVzaG9wdChfX20pOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSBjcHVpZC5oIC0gWDg2IGNwdSBtb2RlbCBkZXRlY3Rpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DUFVJRF9ICiNkZWZpbmUgX19DUFVJRF9ICgojaWYgIShfX3g4Nl82NF9fIHx8IF9faTM4Nl9fKQojZXJyb3IgdGhpcyBoZWFkZXIgaXMgZm9yIHg4NiBvbmx5CiNlbmRpZgoKLyogUmVzcG9uc2VzIGlkZW50aWZpY2F0aW9uIHJlcXVlc3Qgd2l0aCAlZWF4IDAgKi8KLyogQU1EOiAgICAgIkF1dGhlbnRpY0FNRCIgKi8KI2RlZmluZSBzaWduYXR1cmVfQU1EX2VieCAweDY4NzQ3NTQxCiNkZWZpbmUgc2lnbmF0dXJlX0FNRF9lZHggMHg2OTc0NmU2NQojZGVmaW5lIHNpZ25hdHVyZV9BTURfZWN4IDB4NDQ0ZDQxNjMKLyogQ0VOVEFVUjogIkNlbnRhdXJIYXVscyIgKi8KI2RlZmluZSBzaWduYXR1cmVfQ0VOVEFVUl9lYnggMHg3NDZlNjU0MwojZGVmaW5lIHNpZ25hdHVyZV9DRU5UQVVSX2VkeCAweDQ4NzI3NTYxCiNkZWZpbmUgc2lnbmF0dXJlX0NFTlRBVVJfZWN4IDB4NzM2Yzc1NjEKLyogQ1lSSVg6ICAgIkN5cml4SW5zdGVhZCIgKi8KI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWJ4IDB4Njk3Mjc5NDMKI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWR4IDB4NzM2ZTQ5NzgKI2RlZmluZSBzaWduYXR1cmVfQ1lSSVhfZWN4IDB4NjQ2MTY1NzQKLyogSFlHT046ICAgIkh5Z29uR2VudWluZSIgKi8KI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWJ4IDB4NmY2Nzc5NDgKI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWR4IDB4NmU2NTQ3NmUKI2RlZmluZSBzaWduYXR1cmVfSFlHT05fZWN4IDB4NjU2ZTY5NzUKLyogSU5URUw6ICAgIkdlbnVpbmVJbnRlbCIgKi8KI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWJ4IDB4NzU2ZTY1NDcKI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWR4IDB4NDk2NTZlNjkKI2RlZmluZSBzaWduYXR1cmVfSU5URUxfZWN4IDB4NmM2NTc0NmUKLyogVE0xOiAgICAgIlRyYW5zbWV0YUNQVSIgKi8KI2RlZmluZSBzaWduYXR1cmVfVE0xX2VieCAweDZlNjE3MjU0CiNkZWZpbmUgc2lnbmF0dXJlX1RNMV9lZHggMHg3NDY1NmQ3MwojZGVmaW5lIHNpZ25hdHVyZV9UTTFfZWN4IDB4NTU1MDQzNjEKLyogVE0yOiAgICAgIkdlbnVpbmVUTXg4NiIgKi8KI2RlZmluZSBzaWduYXR1cmVfVE0yX2VieCAweDc1NmU2NTQ3CiNkZWZpbmUgc2lnbmF0dXJlX1RNMl9lZHggMHg1NDY1NmU2OQojZGVmaW5lIHNpZ25hdHVyZV9UTTJfZWN4IDB4MzYzODc4NGQKLyogTlNDOiAgICAgIkdlb2RlIGJ5IE5TQyIgKi8KI2RlZmluZSBzaWduYXR1cmVfTlNDX2VieCAweDY0NmY2NTQ3CiNkZWZpbmUgc2lnbmF0dXJlX05TQ19lZHggMHg3OTYyMjA2NQojZGVmaW5lIHNpZ25hdHVyZV9OU0NfZWN4IDB4NDM1MzRlMjAKLyogTkVYR0VOOiAgIk5leEdlbkRyaXZlbiIgKi8KI2RlZmluZSBzaWduYXR1cmVfTkVYR0VOX2VieCAweDQ3Nzg2NTRlCiNkZWZpbmUgc2lnbmF0dXJlX05FWEdFTl9lZHggMHg3MjQ0NmU2NQojZGVmaW5lIHNpZ25hdHVyZV9ORVhHRU5fZWN4IDB4NmU2NTc2NjkKLyogUklTRTogICAgIlJpc2VSaXNlUmlzZSIgKi8KI2RlZmluZSBzaWduYXR1cmVfUklTRV9lYnggMHg2NTczNjk1MgojZGVmaW5lIHNpZ25hdHVyZV9SSVNFX2VkeCAweDY1NzM2OTUyCiNkZWZpbmUgc2lnbmF0dXJlX1JJU0VfZWN4IDB4NjU3MzY5NTIKLyogU0lTOiAgICAgIlNpUyBTaVMgU2lTICIgKi8KI2RlZmluZSBzaWduYXR1cmVfU0lTX2VieCAweDIwNTM2OTUzCiNkZWZpbmUgc2lnbmF0dXJlX1NJU19lZHggMHgyMDUzNjk1MwojZGVmaW5lIHNpZ25hdHVyZV9TSVNfZWN4IDB4MjA1MzY5NTMKLyogVU1DOiAgICAgIlVNQyBVTUMgVU1DICIgKi8KI2RlZmluZSBzaWduYXR1cmVfVU1DX2VieCAweDIwNDM0ZDU1CiNkZWZpbmUgc2lnbmF0dXJlX1VNQ19lZHggMHgyMDQzNGQ1NQojZGVmaW5lIHNpZ25hdHVyZV9VTUNfZWN4IDB4MjA0MzRkNTUKLyogVklBOiAgICAgIlZJQSBWSUEgVklBICIgKi8KI2RlZmluZSBzaWduYXR1cmVfVklBX2VieCAweDIwNDE0OTU2CiNkZWZpbmUgc2lnbmF0dXJlX1ZJQV9lZHggMHgyMDQxNDk1NgojZGVmaW5lIHNpZ25hdHVyZV9WSUFfZWN4IDB4MjA0MTQ5NTYKLyogVk9SVEVYOiAgIlZvcnRleDg2IFNvQyIgKi8KI2RlZmluZSBzaWduYXR1cmVfVk9SVEVYX2VieCAweDc0NzI2ZjU2CiNkZWZpbmUgc2lnbmF0dXJlX1ZPUlRFWF9lZHggMHgzNjM4Nzg2NQojZGVmaW5lIHNpZ25hdHVyZV9WT1JURVhfZWN4IDB4NDM2ZjUzMjAKCi8qIEZlYXR1cmVzIGluICVlY3ggZm9yIGxlYWYgMSAqLwojZGVmaW5lIGJpdF9TU0UzICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgYml0X1BDTE1VTFFEUSAgIDB4MDAwMDAwMDIKI2RlZmluZSBiaXRfUENMTVVMICAgICAgYml0X1BDTE1VTFFEUSAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X0RURVM2NCAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBiaXRfTU9OSVRPUiAgICAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9EU0NQTCAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgYml0X1ZNWCAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfU01YICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9FSVNUICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X1RNMiAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfU1NTRTMgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9DTlhUSUQgICAgICAweDAwMDAwNDAwCiNkZWZpbmUgYml0X0ZNQSAgICAgICAgIDB4MDAwMDEwMDAKI2RlZmluZSBiaXRfQ01QWENIRzE2QiAgMHgwMDAwMjAwMAojZGVmaW5lIGJpdF94VFBSICAgICAgICAweDAwMDA0MDAwCiNkZWZpbmUgYml0X1BEQ00gICAgICAgIDB4MDAwMDgwMDAKI2RlZmluZSBiaXRfUENJRCAgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIGJpdF9EQ0EgICAgICAgICAweDAwMDQwMDAwCiNkZWZpbmUgYml0X1NTRTQxICAgICAgIDB4MDAwODAwMDAKI2RlZmluZSBiaXRfU1NFNF8xICAgICAgYml0X1NTRTQxICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X1NTRTQyICAgICAgIDB4MDAxMDAwMDAKI2RlZmluZSBiaXRfU1NFNF8yICAgICAgYml0X1NTRTQyICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X3gyQVBJQyAgICAgIDB4MDAyMDAwMDAKI2RlZmluZSBiaXRfTU9WQkUgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9QT1BDTlQgICAgICAweDAwODAwMDAwCiNkZWZpbmUgYml0X1RTQ0RlYWRsaW5lIDB4MDEwMDAwMDAKI2RlZmluZSBiaXRfQUVTTkkgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9BRVMgICAgICAgICBiaXRfQUVTTkkgICAgICAgLyogZm9yIGdjYyBjb21wYXQgKi8KI2RlZmluZSBiaXRfWFNBVkUgICAgICAgMHgwNDAwMDAwMAojZGVmaW5lIGJpdF9PU1hTQVZFICAgICAweDA4MDAwMDAwCiNkZWZpbmUgYml0X0FWWCAgICAgICAgIDB4MTAwMDAwMDAKI2RlZmluZSBiaXRfRjE2QyAgICAgICAgMHgyMDAwMDAwMAojZGVmaW5lIGJpdF9SRFJORCAgICAgICAweDQwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWR4IGZvciBsZWFmIDEgKi8KI2RlZmluZSBiaXRfRlBVICAgICAgICAgMHgwMDAwMDAwMQojZGVmaW5lIGJpdF9WTUUgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgYml0X0RFICAgICAgICAgIDB4MDAwMDAwMDQKI2RlZmluZSBiaXRfUFNFICAgICAgICAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9UU0MgICAgICAgICAweDAwMDAwMDEwCiNkZWZpbmUgYml0X01TUiAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfUEFFICAgICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9NQ0UgICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X0NYOCAgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfQ01QWENIRzhCICAgYml0X0NYOCAgICAgICAgIC8qIGZvciBnY2MgY29tcGF0ICovCiNkZWZpbmUgYml0X0FQSUMgICAgICAgIDB4MDAwMDAyMDAKI2RlZmluZSBiaXRfU0VQICAgICAgICAgMHgwMDAwMDgwMAojZGVmaW5lIGJpdF9NVFJSICAgICAgICAweDAwMDAxMDAwCiNkZWZpbmUgYml0X1BHRSAgICAgICAgIDB4MDAwMDIwMDAKI2RlZmluZSBiaXRfTUNBICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIGJpdF9DTU9WICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgYml0X1BBVCAgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBiaXRfUFNFMzYgICAgICAgMHgwMDAyMDAwMAojZGVmaW5lIGJpdF9QU04gICAgICAgICAweDAwMDQwMDAwCiNkZWZpbmUgYml0X0NMRlNIICAgICAgIDB4MDAwODAwMDAKI2RlZmluZSBiaXRfRFMgICAgICAgICAgMHgwMDIwMDAwMAojZGVmaW5lIGJpdF9BQ1BJICAgICAgICAweDAwNDAwMDAwCiNkZWZpbmUgYml0X01NWCAgICAgICAgIDB4MDA4MDAwMDAKI2RlZmluZSBiaXRfRlhTUiAgICAgICAgMHgwMTAwMDAwMAojZGVmaW5lIGJpdF9GWFNBVkUgICAgICBiaXRfRlhTUiAgICAgICAgLyogZm9yIGdjYyBjb21wYXQgKi8KI2RlZmluZSBiaXRfU1NFICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9TU0UyICAgICAgICAweDA0MDAwMDAwCiNkZWZpbmUgYml0X1NTICAgICAgICAgIDB4MDgwMDAwMDAKI2RlZmluZSBiaXRfSFRUICAgICAgICAgMHgxMDAwMDAwMAojZGVmaW5lIGJpdF9UTSAgICAgICAgICAweDIwMDAwMDAwCiNkZWZpbmUgYml0X1BCRSAgICAgICAgIDB4ODAwMDAwMDAKCi8qIEZlYXR1cmVzIGluICVlYnggZm9yIGxlYWYgNyBzdWItbGVhZiAwICovCiNkZWZpbmUgYml0X0ZTR1NCQVNFICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfU0dYICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIGJpdF9CTUkgICAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgYml0X0hMRSAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBiaXRfQVZYMiAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9TTUVQICAgICAgICAweDAwMDAwMDgwCiNkZWZpbmUgYml0X0JNSTIgICAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfRU5IX01PVlNCICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9JTlZQQ0lEICAgICAweDAwMDAwNDAwCiNkZWZpbmUgYml0X1JUTSAgICAgICAgIDB4MDAwMDA4MDAKI2RlZmluZSBiaXRfTVBYICAgICAgICAgMHgwMDAwNDAwMAojZGVmaW5lIGJpdF9BVlg1MTJGICAgICAweDAwMDEwMDAwCiNkZWZpbmUgYml0X0FWWDUxMkRRICAgIDB4MDAwMjAwMDAKI2RlZmluZSBiaXRfUkRTRUVEICAgICAgMHgwMDA0MDAwMAojZGVmaW5lIGJpdF9BRFggICAgICAgICAweDAwMDgwMDAwCiNkZWZpbmUgYml0X0FWWDUxMklGTUEgIDB4MDAyMDAwMDAKI2RlZmluZSBiaXRfQ0xGTFVTSE9QVCAgMHgwMDgwMDAwMAojZGVmaW5lIGJpdF9DTFdCICAgICAgICAweDAxMDAwMDAwCiNkZWZpbmUgYml0X0FWWDUxMlBGICAgIDB4MDQwMDAwMDAKI2RlZmluZSBiaXRfQVZYNTEyRVIgICAgMHgwODAwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJDRCAgICAweDEwMDAwMDAwCiNkZWZpbmUgYml0X1NIQSAgICAgICAgIDB4MjAwMDAwMDAKI2RlZmluZSBiaXRfQVZYNTEyQlcgICAgMHg0MDAwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJWTCAgICAweDgwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWN4IGZvciBsZWFmIDcgc3ViLWxlYWYgMCAqLwojZGVmaW5lIGJpdF9QUkVGVENIV1QxICAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfQVZYNTEyVkJNSSAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgYml0X1BLVSAgICAgICAgICAgICAgMHgwMDAwMDAwNAojZGVmaW5lIGJpdF9PU1BLRSAgICAgICAgICAgIDB4MDAwMDAwMTAKI2RlZmluZSBiaXRfV0FJVFBLRyAgICAgICAgICAweDAwMDAwMDIwCiNkZWZpbmUgYml0X0FWWDUxMlZCTUkyICAgICAgMHgwMDAwMDA0MAojZGVmaW5lIGJpdF9TSFNUSyAgICAgICAgICAgIDB4MDAwMDAwODAKI2RlZmluZSBiaXRfR0ZOSSAgICAgICAgICAgICAweDAwMDAwMTAwCiNkZWZpbmUgYml0X1ZBRVMgICAgICAgICAgICAgMHgwMDAwMDIwMAojZGVmaW5lIGJpdF9WUENMTVVMUURRICAgICAgIDB4MDAwMDA0MDAKI2RlZmluZSBiaXRfQVZYNTEyVk5OSSAgICAgICAweDAwMDAwODAwCiNkZWZpbmUgYml0X0FWWDUxMkJJVEFMRyAgICAgMHgwMDAwMTAwMAojZGVmaW5lIGJpdF9BVlg1MTJWUE9QQ05URFEgIDB4MDAwMDQwMDAKI2RlZmluZSBiaXRfUkRQSUQgICAgICAgICAgICAweDAwNDAwMDAwCiNkZWZpbmUgYml0X0NMREVNT1RFICAgICAgICAgMHgwMjAwMDAwMAojZGVmaW5lIGJpdF9NT1ZESVJJICAgICAgICAgIDB4MDgwMDAwMDAKI2RlZmluZSBiaXRfTU9WRElSNjRCICAgICAgICAweDEwMDAwMDAwCiNkZWZpbmUgYml0X0VOUUNNRCAgICAgICAgICAgMHgyMDAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVkeCBmb3IgbGVhZiA3IHN1Yi1sZWFmIDAgKi8KI2RlZmluZSBiaXRfQVZYNTEyNFZOTklXICAweDAwMDAwMDA0CiNkZWZpbmUgYml0X0FWWDUxMjRGTUFQUyAgMHgwMDAwMDAwOAojZGVmaW5lIGJpdF9VSU5UUiAgICAgICAgIDB4MDAwMDAwMjAKI2RlZmluZSBiaXRfU0VSSUFMSVpFICAgICAweDAwMDA0MDAwCiNkZWZpbmUgYml0X1RTWExEVFJLICAgICAgMHgwMDAxMDAwMAojZGVmaW5lIGJpdF9QQ09ORklHICAgICAgIDB4MDAwNDAwMDAKI2RlZmluZSBiaXRfSUJUICAgICAgICAgICAweDAwMTAwMDAwCiNkZWZpbmUgYml0X0FNWEJGMTYgICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9BVlg1MTJGUDE2ICAgIDB4MDA4MDAwMDAKI2RlZmluZSBiaXRfQU1YVElMRSAgICAgICAweDAxMDAwMDAwCiNkZWZpbmUgYml0X0FNWElOVDggICAgICAgMHgwMjAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVheCBmb3IgbGVhZiA3IHN1Yi1sZWFmIDEgKi8KI2RlZmluZSBiaXRfQVZYVk5OSSAgICAgICAweDAwMDAwMDA4CiNkZWZpbmUgYml0X0FWWDUxMkJGMTYgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9IUkVTRVQgICAgICAgIDB4MDA0MDAwMDAKCi8qIEZlYXR1cmVzIGluICVlYXggZm9yIGxlYWYgMTMgc3ViLWxlYWYgMSAqLwojZGVmaW5lIGJpdF9YU0FWRU9QVCAgICAweDAwMDAwMDAxCiNkZWZpbmUgYml0X1hTQVZFQyAgICAgIDB4MDAwMDAwMDIKI2RlZmluZSBiaXRfWFNBVkVTICAgICAgMHgwMDAwMDAwOAoKLyogRmVhdHVyZXMgaW4gJWVheCBmb3IgbGVhZiAweDE0IHN1Yi1sZWFmIDAgKi8KI2RlZmluZSBiaXRfUFRXUklURSAgICAgMHgwMDAwMDAxMAoKLyogRmVhdHVyZXMgaW4gJWVjeCBmb3IgbGVhZiAweDgwMDAwMDAxICovCiNkZWZpbmUgYml0X0xBSEZfTE0gICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfQUJNICAgICAgICAgMHgwMDAwMDAyMAojZGVmaW5lIGJpdF9MWkNOVCAgICAgICBiaXRfQUJNICAgICAgICAvKiBmb3IgZ2NjIGNvbXBhdCAqLwojZGVmaW5lIGJpdF9TU0U0YSAgICAgICAweDAwMDAwMDQwCiNkZWZpbmUgYml0X1BSRkNIVyAgICAgIDB4MDAwMDAxMDAKI2RlZmluZSBiaXRfWE9QICAgICAgICAgMHgwMDAwMDgwMAojZGVmaW5lIGJpdF9MV1AgICAgICAgICAweDAwMDA4MDAwCiNkZWZpbmUgYml0X0ZNQTQgICAgICAgIDB4MDAwMTAwMDAKI2RlZmluZSBiaXRfVEJNICAgICAgICAgMHgwMDIwMDAwMAojZGVmaW5lIGJpdF9NV0FJVFggICAgICAweDIwMDAwMDAwCgovKiBGZWF0dXJlcyBpbiAlZWR4IGZvciBsZWFmIDB4ODAwMDAwMDEgKi8KI2RlZmluZSBiaXRfTU1YRVhUICAgICAgMHgwMDQwMDAwMAojZGVmaW5lIGJpdF9MTSAgICAgICAgICAweDIwMDAwMDAwCiNkZWZpbmUgYml0XzNETk9XUCAgICAgIDB4NDAwMDAwMDAKI2RlZmluZSBiaXRfM0ROT1cgICAgICAgMHg4MDAwMDAwMAoKLyogRmVhdHVyZXMgaW4gJWVieCBmb3IgbGVhZiAweDgwMDAwMDA4ICovCiNkZWZpbmUgYml0X0NMWkVSTyAgICAgIDB4MDAwMDAwMDEKI2RlZmluZSBiaXRfV0JOT0lOVkQgICAgMHgwMDAwMDIwMAoKCiNpZiBfX2kzODZfXwojZGVmaW5lIF9fY3B1aWQoX19sZWFmLCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXAogICAgX19hc20oImNwdWlkIiA6ICI9YSIoX19lYXgpLCAiPWIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgICAgICAgICAgIDogIjAiKF9fbGVhZikpCgojZGVmaW5lIF9fY3B1aWRfY291bnQoX19sZWFmLCBfX2NvdW50LCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgXAogICAgX19hc20oImNwdWlkIiA6ICI9YSIoX19lYXgpLCAiPWIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgICAgICAgICAgIDogIjAiKF9fbGVhZiksICIyIihfX2NvdW50KSkKI2Vsc2UKLyogeDg2LTY0IHVzZXMgJXJieCBhcyB0aGUgYmFzZSByZWdpc3Rlciwgc28gcHJlc2VydmUgaXQuICovCiNkZWZpbmUgX19jcHVpZChfX2xlYWYsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KSBcCiAgICBfX2FzbSgiICB4Y2hncSAgJSVyYngsJXExXG4iIFwKICAgICAgICAgICIgIGNwdWlkXG4iIFwKICAgICAgICAgICIgIHhjaGdxICAlJXJieCwlcTEiIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPXIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgOiAiMCIoX19sZWFmKSkKCiNkZWZpbmUgX19jcHVpZF9jb3VudChfX2xlYWYsIF9fY291bnQsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KSBcCiAgICBfX2FzbSgiICB4Y2hncSAgJSVyYngsJXExXG4iIFwKICAgICAgICAgICIgIGNwdWlkXG4iIFwKICAgICAgICAgICIgIHhjaGdxICAlJXJieCwlcTEiIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPXIiIChfX2VieCksICI9YyIoX19lY3gpLCAiPWQiKF9fZWR4KSBcCiAgICAgICAgOiAiMCIoX19sZWFmKSwgIjIiKF9fY291bnQpKQojZW5kaWYKCnN0YXRpYyBfX2lubGluZSBpbnQgX19nZXRfY3B1aWRfbWF4ICh1bnNpZ25lZCBpbnQgX19sZWFmLCB1bnNpZ25lZCBpbnQgKl9fc2lnKQp7CiAgICB1bnNpZ25lZCBpbnQgX19lYXgsIF9fZWJ4LCBfX2VjeCwgX19lZHg7CiNpZiBfX2kzODZfXwogICAgaW50IF9fY3B1aWRfc3VwcG9ydGVkOwoKICAgIF9fYXNtKCIgIHB1c2hmbFxuIgogICAgICAgICAgIiAgcG9wbCAgICUlZWF4XG4iCiAgICAgICAgICAiICBtb3ZsICAgJSVlYXgsJSVlY3hcbiIKICAgICAgICAgICIgIHhvcmwgICAkMHgwMDIwMDAwMCwlJWVheFxuIgogICAgICAgICAgIiAgcHVzaGwgICUlZWF4XG4iCiAgICAgICAgICAiICBwb3BmbFxuIgogICAgICAgICAgIiAgcHVzaGZsXG4iCiAgICAgICAgICAiICBwb3BsICAgJSVlYXhcbiIKICAgICAgICAgICIgIG1vdmwgICAkMCwlMFxuIgogICAgICAgICAgIiAgY21wbCAgICUlZWF4LCUlZWN4XG4iCiAgICAgICAgICAiICBqZSAgICAgMWZcbiIKICAgICAgICAgICIgIG1vdmwgICAkMSwlMFxuIgogICAgICAgICAgIjE6IgogICAgICAgIDogIj1yIiAoX19jcHVpZF9zdXBwb3J0ZWQpIDogOiAiZWF4IiwgImVjeCIpOwogICAgaWYgKCFfX2NwdWlkX3N1cHBvcnRlZCkKICAgICAgICByZXR1cm4gMDsKI2VuZGlmCgogICAgX19jcHVpZChfX2xlYWYsIF9fZWF4LCBfX2VieCwgX19lY3gsIF9fZWR4KTsKICAgIGlmIChfX3NpZykKICAgICAgICAqX19zaWcgPSBfX2VieDsKICAgIHJldHVybiBfX2VheDsKfQoKc3RhdGljIF9faW5saW5lIGludCBfX2dldF9jcHVpZCAodW5zaWduZWQgaW50IF9fbGVhZiwgdW5zaWduZWQgaW50ICpfX2VheCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2VieCwgdW5zaWduZWQgaW50ICpfX2VjeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50ICpfX2VkeCkKewogICAgdW5zaWduZWQgaW50IF9fbWF4X2xlYWYgPSBfX2dldF9jcHVpZF9tYXgoX19sZWFmICYgMHg4MDAwMDAwMCwgMCk7CgogICAgaWYgKF9fbWF4X2xlYWYgPT0gMCB8fCBfX21heF9sZWFmIDwgX19sZWFmKQogICAgICAgIHJldHVybiAwOwoKICAgIF9fY3B1aWQoX19sZWFmLCAqX19lYXgsICpfX2VieCwgKl9fZWN4LCAqX19lZHgpOwogICAgcmV0dXJuIDE7Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQgX19nZXRfY3B1aWRfY291bnQgKHVuc2lnbmVkIGludCBfX2xlYWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3N1YmxlYWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19lYXgsIHVuc2lnbmVkIGludCAqX19lYngsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqX19lY3gsIHVuc2lnbmVkIGludCAqX19lZHgpCnsKICAgIHVuc2lnbmVkIGludCBfX21heF9sZWFmID0gX19nZXRfY3B1aWRfbWF4KF9fbGVhZiAmIDB4ODAwMDAwMDAsIDApOwoKICAgIGlmIChfX21heF9sZWFmID09IDAgfHwgX19tYXhfbGVhZiA8IF9fbGVhZikKICAgICAgICByZXR1cm4gMDsKCiAgICBfX2NwdWlkX2NvdW50KF9fbGVhZiwgX19zdWJsZWFmLCAqX19lYXgsICpfX2VieCwgKl9fZWN4LCAqX19lZHgpOwogICAgcmV0dXJuIDE7Cn0KCiNlbmRpZiAvKiBfX0NQVUlEX0ggKi8KAGtleWxvY2tlcmludHJpbi5oAC8qPT09LS0tLSBubW1pbnRyaW4uaCAtIFNTRTQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19OTU1JTlRSSU5fSAojZGVmaW5lIF9fTk1NSU5UUklOX0gKCi8qIFRvIG1hdGNoIGV4cGVjdGF0aW9ucyBvZiBnY2Mgd2UgcHV0IHRoZSBzc2U0LjIgZGVmaW5pdGlvbnMgaW50byBzbW1pbnRyaW4uaCwKICAganVzdCBpbmNsdWRlIGl0IG5vdyB0aGVuLiAgKi8KI2luY2x1ZGUgPHNtbWludHJpbi5oPgojZW5kaWYgLyogX19OTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tIHN0ZGJvb2wuaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgYm9vbGVhbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1NUREJPT0xfSAojZGVmaW5lIF9fU1REQk9PTF9ICgovKiBEb24ndCBkZWZpbmUgYm9vbCwgdHJ1ZSwgYW5kIGZhbHNlIGluIEMrKywgZXhjZXB0IGFzIGEgR05VIGV4dGVuc2lvbi4gKi8KI2lmbmRlZiBfX2NwbHVzcGx1cwojZGVmaW5lIGJvb2wgX0Jvb2wKI2RlZmluZSB0cnVlIDEKI2RlZmluZSBmYWxzZSAwCiNlbGlmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKLyogRGVmaW5lIF9Cb29sIGFzIGEgR05VIGV4dGVuc2lvbi4gKi8KI2RlZmluZSBfQm9vbCBib29sCiNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKLyogRm9yIEMrKzk4LCBkZWZpbmUgYm9vbCwgZmFsc2UsIHRydWUgYXMgYSBHTlUgZXh0ZW5zaW9uLiAqLwojZGVmaW5lIGJvb2wgIGJvb2wKI2RlZmluZSBmYWxzZSBmYWxzZQojZGVmaW5lIHRydWUgIHRydWUKI2VuZGlmCiNlbmRpZgoKI2RlZmluZSBfX2Jvb2xfdHJ1ZV9mYWxzZV9hcmVfZGVmaW5lZCAxCgojZW5kaWYgLyogX19TVERCT09MX0ggKi8KAC8qPT09LS0tLSB0Ym1pbnRyaW4uaCAtIFRCTSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8dGJtaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1RCTUlOVFJJTl9ICiNkZWZpbmUgX19UQk1JTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInRibSIpKSkKCiNkZWZpbmUgX19iZXh0cmlfdTMyKGEsIGIpIFwKICAoKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl9iZXh0cmlfdTMyKCh1bnNpZ25lZCBpbnQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjZmlsbF91MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiBfX2EgJiAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNpX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIF9fYSB8IH4oX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNpY191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hICYgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjbXNrX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIF9fYSBeIChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY3NfdTMyKHVuc2lnbmVkIGludCBfX2EpCnsKICByZXR1cm4gX19hIHwgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzZmlsbF91MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiBfX2EgfCAoX19hIC0gMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibHNpY191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hIHwgKF9fYSAtIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fdDFtc2tjX3UzMih1bnNpZ25lZCBpbnQgX19hKQp7CiAgcmV0dXJuIH5fX2EgfCAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX190em1za191MzIodW5zaWduZWQgaW50IF9fYSkKewogIHJldHVybiB+X19hICYgKF9fYSAtIDEpOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9fYmV4dHJpX3U2NChhLCBiKSBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfYmV4dHJpX3U2NCgodW5zaWduZWQgbG9uZyBsb25nKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcgbG9uZykoYikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY2ZpbGxfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gX19hICYgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjaV91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2EgfCB+KF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxjaWNfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSAmIChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2JsY21za191NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiBfX2EgXiAoX19hICsgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibGNzX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKQp7CiAgcmV0dXJuIF9fYSB8IChfX2EgKyAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc2ZpbGxfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gX19hIHwgKF9fYSAtIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzaWNfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSB8IChfX2EgLSAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX3QxbXNrY191NjQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIHJldHVybiB+X19hIHwgKF9fYSArIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fdHptc2tfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpCnsKICByZXR1cm4gfl9fYSAmIChfX2EgLSAxKTsKfQojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX1RCTUlOVFJJTl9IICovCgAvKi0KICogQ29weXJpZ2h0IChjKSAyMDExIEVkIFNjaG91dGVuIDxlZEBGcmVlQlNELm9yZz4KICogICAgICAgICAgICAgICAgICAgIERhdmlkIENoaXNuYWxsIDx0aGVyYXZlbkBGcmVlQlNELm9yZz4KICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICoKICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogKiBhcmUgbWV0OgogKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICoKICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAogKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCiAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCiAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgogKiBTVUNIIERBTUFHRS4KICoKICogJEZyZWVCU0QkCiAqLwoKI3ByYWdtYSBvbmNlCgojaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KI2luY2x1ZGUgPHN0ZGJvb2wuaD4KCi8qCiAqIEM6IERvIGl0IG91cnNlbHZlcy4KICogTm90ZSB0aGF0IHRoZSBydW50aW1lIHJlcHJlc2VudGF0aW9uIGRlZmluZWQgaGVyZSBzaG91bGQgYmUgY29tcGF0aWJsZQogKiB3aXRoIHRoZSBDKysgb25lLCBpLmUuIGFuIF9BdG9taWMoVCkgbmVlZHMgdG8gY29udGFpbiB0aGUgc2FtZQogKiBiaXRzIGFzIGEgVC4KICovCgojaW5jbHVkZSA8c3RkZGVmLmg+ICAvKiBGb3IgcHRyZGlmZl90LiAqLwojaW5jbHVkZSA8c3RkaW50Lmg+Ci8vIEluY2x1ZGUgdWNoYXIuaCBvbmx5IHdoZW4gYXZhaWxhYmxlLiAgQmlvbmljJ3Mgc3RkYXRvbWljLmggaXMgYWxzbyB1c2VkIGZvcgovLyB0aGUgaG9zdCAodmlhIGEgY29weSBpbiBwcmVidWlsdHMvY2xhbmcpIGFuZCB1Y2hhci5oIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlCi8vIGdsaWJjIHVzZWQgZm9yIHRoZSBob3N0LgojaWYgZGVmaW5lZChfX0JJT05JQ19fKQojIGluY2x1ZGUgPHVjaGFyLmg+ICAvKiBGb3IgY2hhcjE2X3QgYW5kIGNoYXIzMl90LiAgICAgICAgICAgICAgKi8KI2VuZGlmCgovKgogKiA3LjE3LjEgQXRvbWljIGxvY2stZnJlZSBtYWNyb3MuCiAqLwoKI2lmZGVmIF9fR0NDX0FUT01JQ19CT09MX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19CT09MX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX0JPT0xfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0NIQVJfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0NIQVJfTE9DS19GUkVFCQlfX0dDQ19BVE9NSUNfQ0hBUl9MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfQ0hBUjE2X1RfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0NIQVIxNl9UX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfQ0hBUjE2X1RfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0NIQVIzMl9UX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19DSEFSMzJfVF9MT0NLX0ZSRUUJX19HQ0NfQVRPTUlDX0NIQVIzMl9UX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19XQ0hBUl9UX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19XQ0hBUl9UX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfV0NIQVJfVF9MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfU0hPUlRfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX1NIT1JUX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX1NIT1JUX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19JTlRfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0lOVF9MT0NLX0ZSRUUJCV9fR0NDX0FUT01JQ19JTlRfTE9DS19GUkVFCiNlbmRpZgojaWZkZWYgX19HQ0NfQVRPTUlDX0xPTkdfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0xPTkdfTE9DS19GUkVFCQlfX0dDQ19BVE9NSUNfTE9OR19MT0NLX0ZSRUUKI2VuZGlmCiNpZmRlZiBfX0dDQ19BVE9NSUNfTExPTkdfTE9DS19GUkVFCiNkZWZpbmUJQVRPTUlDX0xMT05HX0xPQ0tfRlJFRQkJX19HQ0NfQVRPTUlDX0xMT05HX0xPQ0tfRlJFRQojZW5kaWYKI2lmZGVmIF9fR0NDX0FUT01JQ19QT0lOVEVSX0xPQ0tfRlJFRQojZGVmaW5lCUFUT01JQ19QT0lOVEVSX0xPQ0tfRlJFRQlfX0dDQ19BVE9NSUNfUE9JTlRFUl9MT0NLX0ZSRUUKI2VuZGlmCgovKgogKiA3LjE3LjIgSW5pdGlhbGl6YXRpb24uCiAqLwoKI2RlZmluZQlBVE9NSUNfVkFSX0lOSVQodmFsdWUpCQkodmFsdWUpCiNkZWZpbmUJYXRvbWljX2luaXQob2JqLCB2YWx1ZSkJCV9fYzExX2F0b21pY19pbml0KG9iaiwgdmFsdWUpCgovKgogKiBDbGFuZyBhbmQgcmVjZW50IEdDQyBib3RoIHByb3ZpZGUgcHJlZGVmaW5lZCBtYWNyb3MgZm9yIHRoZSBtZW1vcnkKICogb3JkZXJpbmdzLiAgSWYgd2UgYXJlIHVzaW5nIGEgY29tcGlsZXIgdGhhdCBkb2Vzbid0IGRlZmluZSB0aGVtLCB1c2UgdGhlCiAqIGNsYW5nIHZhbHVlcyAtIHRoZXNlIHdpbGwgYmUgaWdub3JlZCBpbiB0aGUgZmFsbGJhY2sgcGF0aC4KICovCgojaWZuZGVmIF9fQVRPTUlDX1JFTEFYRUQKI2RlZmluZSBfX0FUT01JQ19SRUxBWEVECQkwCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0NPTlNVTUUKI2RlZmluZSBfX0FUT01JQ19DT05TVU1FCQkxCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0FDUVVJUkUKI2RlZmluZSBfX0FUT01JQ19BQ1FVSVJFCQkyCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX1JFTEVBU0UKI2RlZmluZSBfX0FUT01JQ19SRUxFQVNFCQkzCiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX0FDUV9SRUwKI2RlZmluZSBfX0FUT01JQ19BQ1FfUkVMCQk0CiNlbmRpZgojaWZuZGVmIF9fQVRPTUlDX1NFUV9DU1QKI2RlZmluZSBfX0FUT01JQ19TRVFfQ1NUCQk1CiNlbmRpZgoKLyoKICogNy4xNy4zIE9yZGVyIGFuZCBjb25zaXN0ZW5jeS4KICoKICogVGhlIG1lbW9yeV9vcmRlcl8qIGNvbnN0YW50cyB0aGF0IGRlbm90ZSB0aGUgYmFycmllciBiZWhhdmlvdXIgb2YgdGhlCiAqIGF0b21pYyBvcGVyYXRpb25zLgogKiBUaGUgZW51bSB2YWx1ZXMgbXVzdCBiZSBpZGVudGljYWwgdG8gdGhvc2UgdXNlZCBieSB0aGUKICogQysrIDxhdG9taWM+IGhlYWRlci4KICovCgp0eXBlZGVmIGVudW0gewoJbWVtb3J5X29yZGVyX3JlbGF4ZWQgPSBfX0FUT01JQ19SRUxBWEVELAoJbWVtb3J5X29yZGVyX2NvbnN1bWUgPSBfX0FUT01JQ19DT05TVU1FLAoJbWVtb3J5X29yZGVyX2FjcXVpcmUgPSBfX0FUT01JQ19BQ1FVSVJFLAoJbWVtb3J5X29yZGVyX3JlbGVhc2UgPSBfX0FUT01JQ19SRUxFQVNFLAoJbWVtb3J5X29yZGVyX2FjcV9yZWwgPSBfX0FUT01JQ19BQ1FfUkVMLAoJbWVtb3J5X29yZGVyX3NlcV9jc3QgPSBfX0FUT01JQ19TRVFfQ1NUCn0gbWVtb3J5X29yZGVyOwoKLyoKICogNy4xNy40IEZlbmNlcy4KICovCgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfdGhyZWFkX2ZlbmNlKG1lbW9yeV9vcmRlciBfX29yZGVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKSB7CglfX2MxMV9hdG9taWNfdGhyZWFkX2ZlbmNlKF9fb3JkZXIpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfc2lnbmFsX2ZlbmNlKG1lbW9yeV9vcmRlciBfX29yZGVyIF9fYXR0cmlidXRlX18oKHVudXNlZCkpKSB7CglfX2MxMV9hdG9taWNfc2lnbmFsX2ZlbmNlKF9fb3JkZXIpOwp9CgovKgogKiA3LjE3LjUgTG9jay1mcmVlIHByb3BlcnR5LgogKi8KCiNkZWZpbmUJYXRvbWljX2lzX2xvY2tfZnJlZShvYmopIF9fYzExX2F0b21pY19pc19sb2NrX2ZyZWUoc2l6ZW9mKCoob2JqKSkpCgovKgogKiA3LjE3LjYgQXRvbWljIGludGVnZXIgdHlwZXMuCiAqLwoKdHlwZWRlZiBfQXRvbWljKGJvb2wpCQkJYXRvbWljX2Jvb2w7CnR5cGVkZWYgX0F0b21pYyhjaGFyKQkJCWF0b21pY19jaGFyOwp0eXBlZGVmIF9BdG9taWMoc2lnbmVkIGNoYXIpCQlhdG9taWNfc2NoYXI7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBjaGFyKQkJYXRvbWljX3VjaGFyOwp0eXBlZGVmIF9BdG9taWMoc2hvcnQpCQkJYXRvbWljX3Nob3J0Owp0eXBlZGVmIF9BdG9taWModW5zaWduZWQgc2hvcnQpCQlhdG9taWNfdXNob3J0Owp0eXBlZGVmIF9BdG9taWMoaW50KQkJCWF0b21pY19pbnQ7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBpbnQpCQlhdG9taWNfdWludDsKdHlwZWRlZiBfQXRvbWljKGxvbmcpCQkJYXRvbWljX2xvbmc7CnR5cGVkZWYgX0F0b21pYyh1bnNpZ25lZCBsb25nKQkJYXRvbWljX3Vsb25nOwp0eXBlZGVmIF9BdG9taWMobG9uZyBsb25nKQkJYXRvbWljX2xsb25nOwp0eXBlZGVmIF9BdG9taWModW5zaWduZWQgbG9uZyBsb25nKQlhdG9taWNfdWxsb25nOwojaWYgZGVmaW5lZChfX0JJT05JQ19fKSB8fCAoZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkKICB0eXBlZGVmIF9BdG9taWMoY2hhcjE2X3QpCQlhdG9taWNfY2hhcjE2X3Q7CiAgdHlwZWRlZiBfQXRvbWljKGNoYXIzMl90KQkJYXRvbWljX2NoYXIzMl90OwojZW5kaWYKdHlwZWRlZiBfQXRvbWljKHdjaGFyX3QpCQlhdG9taWNfd2NoYXJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDhfdCkJCWF0b21pY19pbnRfbGVhc3Q4X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2xlYXN0OF90KQlhdG9taWNfdWludF9sZWFzdDhfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDE2X3QpCWF0b21pY19pbnRfbGVhc3QxNl90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDE2X3QpCWF0b21pY191aW50X2xlYXN0MTZfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDMyX3QpCWF0b21pY19pbnRfbGVhc3QzMl90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDMyX3QpCWF0b21pY191aW50X2xlYXN0MzJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9sZWFzdDY0X3QpCWF0b21pY19pbnRfbGVhc3Q2NF90Owp0eXBlZGVmIF9BdG9taWModWludF9sZWFzdDY0X3QpCWF0b21pY191aW50X2xlYXN0NjRfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0OF90KQkJYXRvbWljX2ludF9mYXN0OF90Owp0eXBlZGVmIF9BdG9taWModWludF9mYXN0OF90KQkJYXRvbWljX3VpbnRfZmFzdDhfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0MTZfdCkJCWF0b21pY19pbnRfZmFzdDE2X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3QxNl90KQlhdG9taWNfdWludF9mYXN0MTZfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0MzJfdCkJCWF0b21pY19pbnRfZmFzdDMyX3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3QzMl90KQlhdG9taWNfdWludF9mYXN0MzJfdDsKdHlwZWRlZiBfQXRvbWljKGludF9mYXN0NjRfdCkJCWF0b21pY19pbnRfZmFzdDY0X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50X2Zhc3Q2NF90KQlhdG9taWNfdWludF9mYXN0NjRfdDsKdHlwZWRlZiBfQXRvbWljKGludHB0cl90KQkJYXRvbWljX2ludHB0cl90Owp0eXBlZGVmIF9BdG9taWModWludHB0cl90KQkJYXRvbWljX3VpbnRwdHJfdDsKdHlwZWRlZiBfQXRvbWljKHNpemVfdCkJCWF0b21pY19zaXplX3Q7CnR5cGVkZWYgX0F0b21pYyhwdHJkaWZmX3QpCQlhdG9taWNfcHRyZGlmZl90Owp0eXBlZGVmIF9BdG9taWMoaW50bWF4X3QpCQlhdG9taWNfaW50bWF4X3Q7CnR5cGVkZWYgX0F0b21pYyh1aW50bWF4X3QpCQlhdG9taWNfdWludG1heF90OwoKLyoKICogNy4xNy43IE9wZXJhdGlvbnMgb24gYXRvbWljIHR5cGVzLgogKi8KCi8qCiAqIENvbXBpbGVyLXNwZWNpZmljIG9wZXJhdGlvbnMuCiAqLwoKI2RlZmluZQlhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQob2JqZWN0LCBleHBlY3RlZCwJXAogICAgZGVzaXJlZCwgc3VjY2VzcywgZmFpbHVyZSkJCQkJCQlcCglfX2MxMV9hdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcob2JqZWN0LCBleHBlY3RlZCwgZGVzaXJlZCwJXAoJICAgIHN1Y2Nlc3MsIGZhaWx1cmUpCiNkZWZpbmUJYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdChvYmplY3QsIGV4cGVjdGVkLAkJXAogICAgZGVzaXJlZCwgc3VjY2VzcywgZmFpbHVyZSkJCQkJCQlcCglfX2MxMV9hdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKG9iamVjdCwgZXhwZWN0ZWQsIGRlc2lyZWQsCVwKCSAgICBzdWNjZXNzLCBmYWlsdXJlKQojZGVmaW5lCWF0b21pY19leGNoYW5nZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG9yZGVyKQkJXAoJX19jMTFfYXRvbWljX2V4Y2hhbmdlKG9iamVjdCwgZGVzaXJlZCwgb3JkZXIpCiNkZWZpbmUJYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdChvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQkJXAoJX19jMTFfYXRvbWljX2ZldGNoX2FkZChvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQojZGVmaW5lCWF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9hbmQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikKI2RlZmluZQlhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9vcihvYmplY3QsIG9wZXJhbmQsIG9yZGVyKQojZGVmaW5lCWF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikJCVwKCV9fYzExX2F0b21pY19mZXRjaF9zdWIob2JqZWN0LCBvcGVyYW5kLCBvcmRlcikKI2RlZmluZQlhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgb3JkZXIpCQlcCglfX2MxMV9hdG9taWNfZmV0Y2hfeG9yKG9iamVjdCwgb3BlcmFuZCwgb3JkZXIpCiNkZWZpbmUJYXRvbWljX2xvYWRfZXhwbGljaXQob2JqZWN0LCBvcmRlcikJCQkJXAoJX19jMTFfYXRvbWljX2xvYWQob2JqZWN0LCBvcmRlcikKI2RlZmluZQlhdG9taWNfc3RvcmVfZXhwbGljaXQob2JqZWN0LCBkZXNpcmVkLCBvcmRlcikJCQlcCglfX2MxMV9hdG9taWNfc3RvcmUob2JqZWN0LCBkZXNpcmVkLCBvcmRlcikKCi8qCiAqIENvbnZlbmllbmNlIGZ1bmN0aW9ucy4KICovCgojZGVmaW5lCWF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyhvYmplY3QsIGV4cGVjdGVkLCBkZXNpcmVkKQlcCglhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQob2JqZWN0LCBleHBlY3RlZCwJXAoJICAgIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKG9iamVjdCwgZXhwZWN0ZWQsIGRlc2lyZWQpCQlcCglhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KG9iamVjdCwgZXhwZWN0ZWQsCQlcCgkgICAgZGVzaXJlZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19leGNoYW5nZShvYmplY3QsIGRlc2lyZWQpCQkJCVwKCWF0b21pY19leGNoYW5nZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19mZXRjaF9hZGQob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX2ZldGNoX2FuZChvYmplY3QsIG9wZXJhbmQpCQkJCVwKCWF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfZmV0Y2hfb3Iob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQob2JqZWN0LCBvcGVyYW5kLCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkKI2RlZmluZQlhdG9taWNfZmV0Y2hfc3ViKG9iamVjdCwgb3BlcmFuZCkJCQkJXAoJYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdChvYmplY3QsIG9wZXJhbmQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQojZGVmaW5lCWF0b21pY19mZXRjaF94b3Iob2JqZWN0LCBvcGVyYW5kKQkJCQlcCglhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KG9iamVjdCwgb3BlcmFuZCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX2xvYWQob2JqZWN0KQkJCQkJCVwKCWF0b21pY19sb2FkX2V4cGxpY2l0KG9iamVjdCwgbWVtb3J5X29yZGVyX3NlcV9jc3QpCiNkZWZpbmUJYXRvbWljX3N0b3JlKG9iamVjdCwgZGVzaXJlZCkJCQkJCVwKCWF0b21pY19zdG9yZV9leHBsaWNpdChvYmplY3QsIGRlc2lyZWQsIG1lbW9yeV9vcmRlcl9zZXFfY3N0KQoKLyoKICogNy4xNy44IEF0b21pYyBmbGFnIHR5cGUgYW5kIG9wZXJhdGlvbnMuCiAqCiAqIFhYWDogQXNzdW1lIGF0b21pY19ib29sIGNhbiBiZSB1c2VkIGFzIGFuIGF0b21pY19mbGFnLiBJcyB0aGVyZSBzb21lCiAqIGtpbmQgb2YgY29tcGlsZXIgYnVpbHQtaW4gdHlwZSB3ZSBjb3VsZCB1c2U/CiAqLwoKdHlwZWRlZiBzdHJ1Y3QgewoJYXRvbWljX2Jvb2wJX19mbGFnOwp9IGF0b21pY19mbGFnOwoKI2RlZmluZQlBVE9NSUNfRkxBR19JTklUCQl7IEFUT01JQ19WQVJfSU5JVChmYWxzZSkgfQoKc3RhdGljIF9faW5saW5lIGJvb2wgYXRvbWljX2ZsYWdfdGVzdF9hbmRfc2V0X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpfX29iamVjdCwgbWVtb3J5X29yZGVyIF9fb3JkZXIpIHsKCXJldHVybiAoYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KCZfX29iamVjdC0+X19mbGFnLCAxLCBfX29yZGVyKSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIGF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpfX29iamVjdCwgbWVtb3J5X29yZGVyIF9fb3JkZXIpIHsKCWF0b21pY19zdG9yZV9leHBsaWNpdCgmX19vYmplY3QtPl9fZmxhZywgMCwgX19vcmRlcik7Cn0KCnN0YXRpYyBfX2lubGluZSBib29sIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqX19vYmplY3QpIHsKCXJldHVybiAoYXRvbWljX2ZsYWdfdGVzdF9hbmRfc2V0X2V4cGxpY2l0KF9fb2JqZWN0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBhdG9taWNfZmxhZ19jbGVhcih2b2xhdGlsZSBhdG9taWNfZmxhZyAqX19vYmplY3QpIHsKCWF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KF9fb2JqZWN0LCBtZW1vcnlfb3JkZXJfc2VxX2NzdCk7Cn0KAHBwY193cmFwcGVycy9tbV9tYWxsb2MuaAAvKj09PS0tLS0gc21taW50cmluLmggLSBJbXBsZW1lbnRhdGlvbiBvZiBTU0U0IGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4KCiAgIE5PVEU6IFRoaXMgaXMgTk9UIGEgY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNTRTQgaW50cmluc2ljcyEgICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgaXMgZGlzdHJpYnV0ZWQgdG8gc2ltcGxpZnkgcG9ydGluZyB4ODZfNjQgY29kZSB0aGF0CiAgIG1ha2VzIGV4cGxpY2l0IHVzZSBvZiBJbnRlbCBpbnRyaW5zaWNzIHRvIHBvd2VycDY0L3Bvd2VycGM2NGxlLgoKICAgSXQgaXMgdGhlIHVzZXIncyByZXNwb25zaWJpbGl0eSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdHMgYXJlCiAgIGFjY2VwdGFibGUgYW5kIG1ha2UgYWRkaXRpb25hbCBjaGFuZ2VzIGFzIG5lY2Vzc2FyeS4KCiAgIE5vdGUgdGhhdCBtdWNoIGNvZGUgdGhhdCB1c2VzIEludGVsIGludHJpbnNpY3MgY2FuIGJlIHJld3JpdHRlbiBpbgogICBzdGFuZGFyZCBDIG9yIEdOVSBDIGV4dGVuc2lvbnMsIHdoaWNoIGFyZSBtb3JlIHBvcnRhYmxlIGFuZCBiZXR0ZXIKICAgb3B0aW1pemVkIGFjcm9zcyBtdWx0aXBsZSB0YXJnZXRzLiAgKi8KI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgU01NSU5UUklOX0hfCiNkZWZpbmUgU01NSU5UUklOX0hfCgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKI2luY2x1ZGUgPGFsdGl2ZWMuaD4KI2luY2x1ZGUgPGVtbWludHJpbi5oPgoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fZXh0cmFjdF9lcGk4KF9fbTEyOGkgX19YLCBjb25zdCBpbnQgX19OKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKSgoX192MTZxaSlfX1gpW19fTiAmIDE1XTsKfQoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fZXh0cmFjdF9lcGkzMihfX20xMjhpIF9fWCwgY29uc3QgaW50IF9fTikgewogIHJldHVybiAoKF9fdjRzaSlfX1gpW19fTiAmIDNdOwp9CgpleHRlcm4gX19pbmxpbmUgaW50CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9leHRyYWN0X2VwaTY0KF9fbTEyOGkgX19YLCBjb25zdCBpbnQgX19OKSB7CiAgcmV0dXJuICgoX192MmRpKV9fWClbX19OICYgMV07Cn0KCmV4dGVybiBfX2lubGluZSBpbnQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2V4dHJhY3RfcHMoX19tMTI4IF9fWCwgY29uc3QgaW50IF9fTikgewogIHJldHVybiAoKF9fdjRzaSlfX1gpW19fTiAmIDNdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYmxlbmRfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBjb25zdCBpbnQgX19pbW04KSB7CiAgX192MTZxaSBfX2NoYXJtYXNrID0gdmVjX3NwbGF0cygoc2lnbmVkIGNoYXIpX19pbW04KTsKICBfX2NoYXJtYXNrID0gdmVjX2diKF9fY2hhcm1hc2spOwogIF9fdjhodSBfX3Nob3J0bWFzayA9IChfX3Y4aHUpdmVjX3VucGFja2goX19jaGFybWFzayk7CiNpZmRlZiBfX0JJR19FTkRJQU5fXwogIF9fc2hvcnRtYXNrID0gdmVjX3JldmUoX19zaG9ydG1hc2spOwojZW5kaWYKICByZXR1cm4gKF9fbTEyOGkpdmVjX3NlbCgoX192OGh1KV9fQSwgKF9fdjhodSlfX0IsIF9fc2hvcnRtYXNrKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2JsZW5kdl9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX21hc2spIHsKICBjb25zdCBfX3YxNnF1IF9fc2V2ZW4gPSB2ZWNfc3BsYXRzKCh1bnNpZ25lZCBjaGFyKTB4MDcpOwogIF9fdjE2cXUgX19sbWFzayA9IHZlY19zcmEoKF9fdjE2cXUpX19tYXNrLCBfX3NldmVuKTsKICByZXR1cm4gKF9fbTEyOGkpdmVjX3NlbCgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQiwgX19sbWFzayk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpOChfX20xMjhpIGNvbnN0IF9fQSwgaW50IGNvbnN0IF9fRCwgaW50IGNvbnN0IF9fTikgewogIF9fdjE2cWkgcmVzdWx0ID0gKF9fdjE2cWkpX19BOwogIHJlc3VsdFtfX04gJiAweGZdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpMzIoX19tMTI4aSBjb25zdCBfX0EsIGludCBjb25zdCBfX0QsIGludCBjb25zdCBfX04pIHsKICBfX3Y0c2kgcmVzdWx0ID0gKF9fdjRzaSlfX0E7CiAgcmVzdWx0W19fTiAmIDNdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9pbnNlcnRfZXBpNjQoX19tMTI4aSBjb25zdCBfX0EsIGxvbmcgbG9uZyBjb25zdCBfX0QsIGludCBjb25zdCBfX04pIHsKICBfX3YyZGkgcmVzdWx0ID0gKF9fdjJkaSlfX0E7CiAgcmVzdWx0W19fTiAmIDFdID0gX19EOwogIHJldHVybiAoX19tMTI4aSlyZXN1bHQ7Cn0KCiNlbHNlCiNpbmNsdWRlX25leHQgPHNtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIF9TTU1JTlRSSU5fSF8gKi8KAHNhbml0aXplci9kZnNhbl9pbnRlcmZhY2UuaAAgKGZzZWVrKGhhbmRsZSwgMCwgMik9AD49AHByZWZlci1yZWxhdGl2ZQBpbnZhbGlkIHJld3JpdGUgcGF0dGVybjogAGNhcHR1cmUgJWQgLT4gJWQAKCVwKQBNb25nb2xpYW4AT2xkX0h1bmdhcmlhbgBPc2FnZQBQZABXYXJhbmdfQ2l0aQBQQzogAFVuc29ydGVkIGFkZHIgbWFwIGVudHJ5OiAweCVseDogJXMgPC0+IDB4JWx4OiAlcwBSZWFkaW5nICV6ZCBieXRlcyBmcm9tIG9mZnNldCAlanUgcmV0dXJuZWQgJXpkIHdoaWNoIGlzIG5vdCBhIG11bHRpcGxlIG9mICV6dS4AYmFzZSAhPSBrSW52YWxpZEJhc2UAbWF5IG5vdCBkZWxldGUgZGVmYXVsdCBhcmVuYQByZWdpb24tPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBsb25nAGNoYXIzMl90AG1MAG5lAFN0AFBFUk1JU1NJT05fREVOSUVEACFvaygpAFN0cmluZyBjYW5ub3QgZW5kIHdpdGggXAAsIGJlZ2luID0gAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9iYXNlL2ludGVybmFsL3Rocm93X2RlbGVnYXRlLmNjADBYAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL251bWJlcnMuY2MAY29uZGl0aW9uIHVudHJ1ZSBvbiByZXR1cm4gZnJvbSBBd2FpdABFbnF1ZXVlIHRvIGVtcHR5IGxpc3QgZmFpbGVkAHdhaXRlcnMgZGlzYXBwZWFyZWQgZHVyaW5nIEVucXVldWUoKSEAVW53YWl0ACN0cmFucz0AZmFpbGVkIHRvIHNldCBGRF9DTE9FWEVDIG9uIHVyYW5kb20gZmQACkNhbGN1bGF0ZWQ6IABidWlsdCBvbjogbi9hAFNTTCByb3V0aW5lcwBVc2VyIGRlZmluZWQgZnVuY3Rpb25zAG1hbGxvYyBmYWlsdXJlAGV4dGVybmFsL3Byb3RvYnVmL3NyYy9nb29nbGUvcHJvdG9idWYvbWFwX2ZpZWxkLmgAICBFeHBlY3RlZCA6IABreXRoZS5wcm90by5TY2FuUmVxdWVzdC5mYWN0X3ByZWZpeAAtWGFuYWx5emVyAC5remlwAC8AQ2FuJ3QgZ2V0IHdvcmtpbmcgZGlyZWN0b3J5OiAALgBreXRoZV9tZXRhZGF0YQBGb3VuZCBudWxsIGZpbGU6IABTZWFyY2ggcGF0aCB3YXMgAFN5c3Jvb3Qgc2V0IHRvIAAjdW5kZWYAX19jbGFuZ19jdWRhX2RldmljZV9mdW5jdGlvbnMuaAAvKj09PS0tLS0gYXJtX2FjbGUuaCAtIEFSTSBOb24tTmVvbiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQVJNX0FDTEVfSAojZGVmaW5lIF9fQVJNX0FDTEVfSAoKI2lmbmRlZiBfX0FSTV9BQ0xFCiNlcnJvciAiQUNMRSBpbnRyaW5zaWNzIHN1cHBvcnQgbm90IGVuYWJsZWQuIgojZW5kaWYKCiNpbmNsdWRlIDxzdGRpbnQuaD4KCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQpleHRlcm4gIkMiIHsKI2VuZGlmCgovKiA4IFNZTkNIUk9OSVpBVElPTiwgQkFSUklFUiBBTkQgSElOVCBJTlRSSU5TSUNTICovCi8qIDguMyBNZW1vcnkgYmFycmllcnMgKi8KI2lmICFfX2hhc19idWlsdGluKF9fZG1iKQojZGVmaW5lIF9fZG1iKGkpIF9fYnVpbHRpbl9hcm1fZG1iKGkpCiNlbmRpZgojaWYgIV9faGFzX2J1aWx0aW4oX19kc2IpCiNkZWZpbmUgX19kc2IoaSkgX19idWlsdGluX2FybV9kc2IoaSkKI2VuZGlmCiNpZiAhX19oYXNfYnVpbHRpbihfX2lzYikKI2RlZmluZSBfX2lzYihpKSBfX2J1aWx0aW5fYXJtX2lzYihpKQojZW5kaWYKCi8qIDguNCBIaW50cyAqLwoKI2lmICFfX2hhc19idWlsdGluKF9fd2ZpKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpIF9fd2ZpKHZvaWQpIHsKICBfX2J1aWx0aW5fYXJtX3dmaSgpOwp9CiNlbmRpZgoKI2lmICFfX2hhc19idWlsdGluKF9fd2ZlKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpIF9fd2ZlKHZvaWQpIHsKICBfX2J1aWx0aW5fYXJtX3dmZSgpOwp9CiNlbmRpZgoKI2lmICFfX2hhc19idWlsdGluKF9fc2V2KQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpIF9fc2V2KHZvaWQpIHsKICBfX2J1aWx0aW5fYXJtX3NldigpOwp9CiNlbmRpZgoKI2lmICFfX2hhc19idWlsdGluKF9fc2V2bCkKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKSBfX3Nldmwodm9pZCkgewogIF9fYnVpbHRpbl9hcm1fc2V2bCgpOwp9CiNlbmRpZgoKI2lmICFfX2hhc19idWlsdGluKF9feWllbGQpCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkgX195aWVsZCh2b2lkKSB7CiAgX19idWlsdGluX2FybV95aWVsZCgpOwp9CiNlbmRpZgoKI2lmIF9fQVJNXzMyQklUX1NUQVRFCiNkZWZpbmUgX19kYmcodCkgX19idWlsdGluX2FybV9kYmcodCkKI2VuZGlmCgovKiA4LjUgU3dhcCAqLwpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3N3cCh1aW50MzJfdCBfX3gsIHZvbGF0aWxlIHVpbnQzMl90ICpfX3ApIHsKICB1aW50MzJfdCB2OwogIGRvCiAgICB2ID0gX19idWlsdGluX2FybV9sZHJleChfX3ApOwogIHdoaWxlIChfX2J1aWx0aW5fYXJtX3N0cmV4KF9feCwgX19wKSk7CiAgcmV0dXJuIHY7Cn0KCi8qIDguNiBNZW1vcnkgcHJlZmV0Y2ggaW50cmluc2ljcyAqLwovKiA4LjYuMSBEYXRhIHByZWZldGNoICovCiNkZWZpbmUgX19wbGQoYWRkcikgX19wbGR4KDAsIDAsIDAsIGFkZHIpCgojaWYgX19BUk1fMzJCSVRfU1RBVEUKI2RlZmluZSBfX3BsZHgoYWNjZXNzX2tpbmQsIGNhY2hlX2xldmVsLCByZXRlbnRpb25fcG9saWN5LCBhZGRyKSBcCiAgX19idWlsdGluX2FybV9wcmVmZXRjaChhZGRyLCBhY2Nlc3Nfa2luZCwgMSkKI2Vsc2UKI2RlZmluZSBfX3BsZHgoYWNjZXNzX2tpbmQsIGNhY2hlX2xldmVsLCByZXRlbnRpb25fcG9saWN5LCBhZGRyKSBcCiAgX19idWlsdGluX2FybV9wcmVmZXRjaChhZGRyLCBhY2Nlc3Nfa2luZCwgY2FjaGVfbGV2ZWwsIHJldGVudGlvbl9wb2xpY3ksIDEpCiNlbmRpZgoKLyogOC42LjIgSW5zdHJ1Y3Rpb24gcHJlZmV0Y2ggKi8KI2RlZmluZSBfX3BsaShhZGRyKSBfX3BsaXgoMCwgMCwgYWRkcikKCiNpZiBfX0FSTV8zMkJJVF9TVEFURQojZGVmaW5lIF9fcGxpeChjYWNoZV9sZXZlbCwgcmV0ZW50aW9uX3BvbGljeSwgYWRkcikgXAogIF9fYnVpbHRpbl9hcm1fcHJlZmV0Y2goYWRkciwgMCwgMCkKI2Vsc2UKI2RlZmluZSBfX3BsaXgoY2FjaGVfbGV2ZWwsIHJldGVudGlvbl9wb2xpY3ksIGFkZHIpIFwKICBfX2J1aWx0aW5fYXJtX3ByZWZldGNoKGFkZHIsIDAsIGNhY2hlX2xldmVsLCByZXRlbnRpb25fcG9saWN5LCAwKQojZW5kaWYKCi8qIDguNyBOT1AgKi8KI2lmICFkZWZpbmVkKF9NU0NfVkVSKSB8fCAhZGVmaW5lZChfX2FhcmNoNjRfXykKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKSBfX25vcCh2b2lkKSB7CiAgX19idWlsdGluX2FybV9ub3AoKTsKfQojZW5kaWYKCi8qIDkgREFUQS1QUk9DRVNTSU5HIElOVFJJTlNJQ1MgKi8KLyogOS4yIE1pc2NlbGxhbmVvdXMgZGF0YS1wcm9jZXNzaW5nIGludHJpbnNpY3MgKi8KLyogUk9SICovCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcm9yKHVpbnQzMl90IF9feCwgdWludDMyX3QgX195KSB7CiAgX195ICU9IDMyOwogIGlmIChfX3kgPT0gMCkKICAgIHJldHVybiBfX3g7CiAgcmV0dXJuIChfX3ggPj4gX195KSB8IChfX3ggPDwgKDMyIC0gX195KSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcm9ybGwodWludDY0X3QgX194LCB1aW50MzJfdCBfX3kpIHsKICBfX3kgJT0gNjQ7CiAgaWYgKF9feSA9PSAwKQogICAgcmV0dXJuIF9feDsKICByZXR1cm4gKF9feCA+PiBfX3kpIHwgKF9feCA8PCAoNjQgLSBfX3kpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JvcmwodW5zaWduZWQgbG9uZyBfX3gsIHVpbnQzMl90IF9feSkgewojaWYgX19TSVpFT0ZfTE9OR19fID09IDQKICByZXR1cm4gX19yb3IoX194LCBfX3kpOwojZWxzZQogIHJldHVybiBfX3JvcmxsKF9feCwgX195KTsKI2VuZGlmCn0KCgovKiBDTFogKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHoodWludDMyX3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jbHooX190KTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NsemwodW5zaWduZWQgbG9uZyBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2NsemwoX190KTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHpsbCh1aW50NjRfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2NsemxsKF9fdCk7Cn0KCi8qIENMUyAqLwpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2Nscyh1aW50MzJfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jbHMoX190KTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jbHNsKHVuc2lnbmVkIGxvbmcgX190KSB7CiNpZiBfX1NJWkVPRl9MT05HX18gPT0gNAogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NscyhfX3QpOwojZWxzZQogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NsczY0KF9fdCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2Nsc2xsKHVpbnQ2NF90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NsczY0KF9fdCk7Cn0KCi8qIFJFViAqLwpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Jldih1aW50MzJfdCBfX3QpIHsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwMzIoX190KTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JldmwodW5zaWduZWQgbG9uZyBfX3QpIHsKI2lmIF9fU0laRU9GX0xPTkdfXyA9PSA0CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDMyKF9fdCk7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDY0KF9fdCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JldmxsKHVpbnQ2NF90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fYnN3YXA2NChfX3QpOwp9CgovKiBSRVYxNiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JldjE2KHVpbnQzMl90IF9fdCkgewogIHJldHVybiBfX3JvcihfX3JldihfX3QpLCAxNik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcmV2MTZsbCh1aW50NjRfdCBfX3QpIHsKICByZXR1cm4gKCgodWludDY0X3QpX19yZXYxNihfX3QgPj4gMzIpKSA8PCAzMikgfCBfX3JldjE2KF9fdCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yZXYxNmwodW5zaWduZWQgbG9uZyBfX3QpIHsKI2lmIF9fU0laRU9GX0xPTkdfXyA9PSA0CiAgICByZXR1cm4gX19yZXYxNihfX3QpOwojZWxzZQogICAgcmV0dXJuIF9fcmV2MTZsbChfX3QpOwojZW5kaWYKfQoKLyogUkVWU0ggKi8Kc3RhdGljIF9faW5saW5lX18gaW50MTZfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JldnNoKGludDE2X3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDE2KF9fdCk7Cn0KCi8qIFJCSVQgKi8Kc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yYml0KHVpbnQzMl90IF9fdCkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3JiaXQoX190KTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19yYml0bGwodWludDY0X3QgX190KSB7CiNpZiBfX0FSTV8zMkJJVF9TVEFURQogIHJldHVybiAoKCh1aW50NjRfdClfX2J1aWx0aW5fYXJtX3JiaXQoX190KSkgPDwgMzIpIHwKICAgICAgICAgX19idWlsdGluX2FybV9yYml0KF9fdCA+PiAzMik7CiNlbHNlCiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcmJpdDY0KF9fdCk7CiNlbmRpZgp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcmJpdGwodW5zaWduZWQgbG9uZyBfX3QpIHsKI2lmIF9fU0laRU9GX0xPTkdfXyA9PSA0CiAgcmV0dXJuIF9fcmJpdChfX3QpOwojZWxzZQogIHJldHVybiBfX3JiaXRsbChfX3QpOwojZW5kaWYKfQoKLyoKICogOS4zIDE2LWJpdCBtdWx0aXBsaWNhdGlvbnMKICovCiNpZiBfX0FSTV9GRUFUVVJFX0RTUApzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsYmIoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bGJiKF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsYnQoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bGJ0KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsdGIoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bHRiKF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsdHQoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bHR0KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsd2IoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bHdiKF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLF9fbm9kZWJ1Z19fKSkKX19zbXVsd3QoaW50MzJfdCBfX2EsIGludDMyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211bHd0KF9fYSwgX19iKTsKfQojZW5kaWYKCi8qCiAqIDkuNCBTYXR1cmF0aW5nIGludHJpbnNpY3MKICoKICogRklYTUU6IENoYW5nZSBndWFyZCB0byB0aGVpciBjb3Jyb3Nwb25kaW5nIF9fQVJNX0ZFQVRVUkUgZmxhZyB3aGVuIFEgZmxhZwogKiBpbnRyaW5zaWNzIGFyZSBpbXBsZW1lbnRlZCBhbmQgdGhlIGZsYWcgaXMgZW5hYmxlZC4KICovCi8qIDkuNC4xIFdpZHRoLXNwZWNpZmllZCBzYXR1cmF0aW9uIGludHJpbnNpY3MgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0FUCiNkZWZpbmUgX19zc2F0KHgsIHkpIF9fYnVpbHRpbl9hcm1fc3NhdCh4LCB5KQojZGVmaW5lIF9fdXNhdCh4LCB5KSBfX2J1aWx0aW5fYXJtX3VzYXQoeCwgeSkKI2VuZGlmCgovKiA5LjQuMiBTYXR1cmF0aW5nIGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiBpbnRyaW5zaWNzICovCiNpZiBfX0FSTV9GRUFUVVJFX0RTUApzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcWFkZChpbnQzMl90IF9fdCwgaW50MzJfdCBfX3YpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9xYWRkKF9fdCwgX192KTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3FzdWIoaW50MzJfdCBfX3QsIGludDMyX3QgX192KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcXN1YihfX3QsIF9fdik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19xZGJsKGludDMyX3QgX190KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcWFkZChfX3QsIF9fdCk7Cn0KI2VuZGlmCgovKiA5LjQuMyBBY2N1bXVsdGF0aW5nIG11bHRpcGxpY2F0aW9ucyAqLwojaWYgX19BUk1fRkVBVFVSRV9EU1AKc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGFiYihpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYWJiKF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhYnQoaW50MzJfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbGFidChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYXRiKGludDMyX3QgX19hLCBpbnQzMl90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhdGIoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGF0dChpbnQzMl90IF9fYSwgaW50MzJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYXR0KF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhd2IoaW50MzJfdCBfX2EsIGludDMyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbGF3YihfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYXd0KGludDMyX3QgX19hLCBpbnQzMl90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhd3QoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgoKLyogOS41LjQgUGFyYWxsZWwgMTYtYml0IHNhdHVyYXRpb24gKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0lNRDMyCiNkZWZpbmUgX19zc2F0MTYoeCwgeSkgX19idWlsdGluX2FybV9zc2F0MTYoeCwgeSkKI2RlZmluZSBfX3VzYXQxNih4LCB5KSBfX2J1aWx0aW5fYXJtX3VzYXQxNih4LCB5KQojZW5kaWYKCi8qIDkuNS41IFBhY2tpbmcgYW5kIHVucGFja2luZyAqLwojaWYgX19BUk1fRkVBVFVSRV9TSU1EMzIKdHlwZWRlZiBpbnQzMl90IGludDh4NF90Owp0eXBlZGVmIGludDMyX3QgaW50MTZ4Ml90Owp0eXBlZGVmIHVpbnQzMl90IHVpbnQ4eDRfdDsKdHlwZWRlZiB1aW50MzJfdCB1aW50MTZ4Ml90OwoKc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc3h0YWIxNihpbnQxNngyX3QgX19hLCBpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zeHRhYjE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zeHRiMTYoaW50OHg0X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3h0YjE2KF9fYSk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXh0YWIxNihpbnQxNngyX3QgX19hLCBpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91eHRhYjE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191eHRiMTYoaW50OHg0X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXh0YjE2KF9fYSk7Cn0KI2VuZGlmCgovKiA5LjUuNiBQYXJhbGxlbCBzZWxlY3Rpb24gKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0lNRDMyCnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NlbCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2VsKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIDkuNS43IFBhcmFsbGVsIDgtYml0IGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiAqLwojaWYgX19BUk1fRkVBVFVSRV9TSU1EMzIKc3RhdGljIF9faW5saW5lX18gaW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19xYWRkOChpbnQ4eDRfdCBfX2EsIGludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FhZGQ4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3FzdWI4KGludDh4NF90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcXN1YjgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2FkZDgoaW50OHg0X3QgX19hLCBpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zYWRkOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zaGFkZDgoaW50OHg0X3QgX19hLCBpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zaGFkZDgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2hzdWI4KGludDh4NF90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hzdWI4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NzdWI4KGludDh4NF90IF9fYSwgaW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3N1YjgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VhZGQ4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91YWRkOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWhhZGQ4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91aGFkZDgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Voc3ViOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhzdWI4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50OHg0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191cWFkZDgodWludDh4NF90IF9fYSwgdWludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VxYWRkOChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDh4NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXFzdWI4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91cXN1YjgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ4eDRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VzdWI4KHVpbnQ4eDRfdCBfX2EsIHVpbnQ4eDRfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91c3ViOChfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiA5LjUuOCBTdW0gb2YgOC1iaXQgYWJzb2x1dGUgZGlmZmVyZW5jZXMgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfU0lNRDMyCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXNhZDgodWludDh4NF90IF9fYSwgdWludDh4NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VzYWQ4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VzYWRhOCh1aW50OHg0X3QgX19hLCB1aW50OHg0X3QgX19iLCB1aW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91c2FkYTgoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgovKiA5LjUuOSBQYXJhbGxlbCAxNi1iaXQgYWRkaXRpb24gYW5kIHN1YnRyYWN0aW9uICovCiNpZiBfX0FSTV9GRUFUVVJFX1NJTUQzMgpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19xYWRkMTYoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3FhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcWFzeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcWFzeChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcXNheChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fcXNheChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fcXN1YjE2KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9xc3ViMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NhZGQxNihpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2FkZDE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zYXN4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zYXN4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zaGFkZDE2KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zaGFkZDE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zaGFzeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hhc3goX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Noc2F4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zaHNheChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc2hzdWIxNihpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc2hzdWIxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc3NheChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc3NheChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc3N1YjE2KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zc3ViMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191YWRkMTYodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWFkZDE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWFzeCh1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91YXN4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWhhZGQxNih1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91aGFkZDE2KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdWhhc3godWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhhc3goX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191aHNheCh1aW50MTZ4Ml90IF9fYSwgdWludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV91aHNheChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3Voc3ViMTYodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdWhzdWIxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VxYWRkMTYodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXFhZGQxNihfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDE2eDJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3VxYXN4KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VxYXN4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB1aW50MTZ4Ml90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fdXFzYXgodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXFzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191cXN1YjE2KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3Vxc3ViMTYoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191c2F4KHVpbnQxNngyX3QgX19hLCB1aW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3VzYXgoX19hLCBfX2IpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQxNngyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX191c3ViMTYodWludDE2eDJfdCBfX2EsIHVpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fdXN1YjE2KF9fYSwgX19iKTsKfQojZW5kaWYKCi8qIDkuNS4xMCBQYXJhbGxlbCAxNi1iaXQgbXVsdGlwbGljYXRpb25zICovCiNpZiBfX0FSTV9GRUFUVVJFX1NJTUQzMgpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYWQoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhZChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sYWR4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IsIGludDMyX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc21sYWR4KF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxhbGQoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50NjRfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhbGQoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbGFsZHgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50NjRfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxhbGR4KF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxzZChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iLCBpbnQzMl90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbHNkKF9fYSwgX19iLCBfX2MpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19zbWxzZHgoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYiwgaW50MzJfdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbWxzZHgoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50NjRfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtbHNsZChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iLCBpbnQ2NF90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbHNsZChfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc21sc2xkeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iLCBpbnQ2NF90IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtbHNsZHgoX19hLCBfX2IsIF9fYyk7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtdWFkKGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbXVhZChfX2EsIF9fYik7Cn0Kc3RhdGljIF9faW5saW5lX18gaW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3NtdWFkeChpbnQxNngyX3QgX19hLCBpbnQxNngyX3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fc211YWR4KF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc211c2QoaW50MTZ4Ml90IF9fYSwgaW50MTZ4Ml90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3NtdXNkKF9fYSwgX19iKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fc211c2R4KGludDE2eDJfdCBfX2EsIGludDE2eDJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9zbXVzZHgoX19hLCBfX2IpOwp9CiNlbmRpZgoKLyogOS43IENSQzMyIGludHJpbnNpY3MgKi8KI2lmIF9fQVJNX0ZFQVRVUkVfQ1JDMzIKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jcmMzMmIodWludDMyX3QgX19hLCB1aW50OF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJoKHVpbnQzMl90IF9fYSwgdWludDE2X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY3JjMzJoKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jcmMzMncodWludDMyX3QgX19hLCB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jcmMzMncoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NyYzMyZCh1aW50MzJfdCBfX2EsIHVpbnQ2NF90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyZChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJjYih1aW50MzJfdCBfX2EsIHVpbnQ4X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY3JjMzJjYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fY3JjMzJjaCh1aW50MzJfdCBfX2EsIHVpbnQxNl90IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2NyYzMyY2goX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2NyYzMyY3codWludDMyX3QgX19hLCB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9jcmMzMmN3KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19jcmMzMmNkKHVpbnQzMl90IF9fYSwgdWludDY0X3QgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fY3JjMzJjZChfX2EsIF9fYik7Cn0KI2VuZGlmCgovKiBBcm12OC4zLUEgSmF2YXNjcmlwdCBjb252ZXJzaW9uIGludHJpbnNpYyAqLwojaWYgX19BUk1fNjRCSVRfU1RBVEUgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0pDVlQpCnN0YXRpYyBfX2lubGluZV9fIGludDMyX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19qY3Z0KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9qY3Z0KF9fYSk7Cn0KI2VuZGlmCgovKiBBcm12OC41LUEgRlAgcm91bmRpbmcgaW50cmluc2ljcyAqLwojaWYgX19BUk1fNjRCSVRfU1RBVEUgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZSSU5UKQpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50MzJ6ZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDMyemYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fZnJpbnQzMnooZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2ZyaW50MzJ6KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fZnJpbnQ2NHpmKGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2ZyaW50NjR6ZihfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19mcmludDY0eihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZnJpbnQ2NHooX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19mcmludDMyeGYoZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hcm1fZnJpbnQzMnhmKF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50MzJ4KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDMyeChfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2ZyaW50NjR4ZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2FybV9mcmludDY0eGYoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fZnJpbnQ2NHgoZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX2ZyaW50NjR4KF9fYSk7Cn0KI2VuZGlmCgovKiBBcm12OC43LUEgbG9hZC9zdG9yZSA2NC1ieXRlIGludHJpbnNpY3MgKi8KI2lmIF9fQVJNXzY0QklUX1NUQVRFICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9MUzY0KQp0eXBlZGVmIHN0cnVjdCB7CiAgICB1aW50NjRfdCB2YWxbOF07Cn0gZGF0YTUxMl90OwoKc3RhdGljIF9faW5saW5lX18gZGF0YTUxMl90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYXJtX2xkNjRiKGNvbnN0IHZvaWQgKl9fYWRkcikgewogICAgZGF0YTUxMl90IF9fdmFsdWU7CiAgICBfX2J1aWx0aW5fYXJtX2xkNjRiKF9fYWRkciwgX192YWx1ZS52YWwpOwogICAgcmV0dXJuIF9fdmFsdWU7Cn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX2FybV9zdDY0Yih2b2lkICpfX2FkZHIsIGRhdGE1MTJfdCBfX3ZhbHVlKSB7CiAgICBfX2J1aWx0aW5fYXJtX3N0NjRiKF9fYWRkciwgX192YWx1ZS52YWwpOwp9CnN0YXRpYyBfX2lubGluZV9fIHVpbnQ2NF90IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYXJtX3N0NjRidih2b2lkICpfX2FkZHIsIGRhdGE1MTJfdCBfX3ZhbHVlKSB7CiAgICByZXR1cm4gX19idWlsdGluX2FybV9zdDY0YnYoX19hZGRyLCBfX3ZhbHVlLnZhbCk7Cn0Kc3RhdGljIF9faW5saW5lX18gdWludDY0X3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19hcm1fc3Q2NGJ2MCh2b2lkICpfX2FkZHIsIGRhdGE1MTJfdCBfX3ZhbHVlKSB7CiAgICByZXR1cm4gX19idWlsdGluX2FybV9zdDY0YnYwKF9fYWRkciwgX192YWx1ZS52YWwpOwp9CiNlbmRpZgoKLyogMTAuMSBTcGVjaWFsIHJlZ2lzdGVyIGludHJpbnNpY3MgKi8KI2RlZmluZSBfX2FybV9yc3Ioc3lzcmVnKSBfX2J1aWx0aW5fYXJtX3JzcihzeXNyZWcpCiNkZWZpbmUgX19hcm1fcnNyNjQoc3lzcmVnKSBfX2J1aWx0aW5fYXJtX3JzcjY0KHN5c3JlZykKI2RlZmluZSBfX2FybV9yc3JwKHN5c3JlZykgX19idWlsdGluX2FybV9yc3JwKHN5c3JlZykKI2RlZmluZSBfX2FybV9yc3JmKHN5c3JlZykgX19idWlsdGluX2JpdF9jYXN0KGZsb2F0LCBfX2FybV9yc3Ioc3lzcmVnKSkKI2RlZmluZSBfX2FybV9yc3JmNjQoc3lzcmVnKSBfX2J1aWx0aW5fYml0X2Nhc3QoZG91YmxlLCBfX2FybV9yc3I2NChzeXNyZWcpKQojZGVmaW5lIF9fYXJtX3dzcihzeXNyZWcsIHYpIF9fYnVpbHRpbl9hcm1fd3NyKHN5c3JlZywgdikKI2RlZmluZSBfX2FybV93c3I2NChzeXNyZWcsIHYpIF9fYnVpbHRpbl9hcm1fd3NyNjQoc3lzcmVnLCB2KQojZGVmaW5lIF9fYXJtX3dzcnAoc3lzcmVnLCB2KSBfX2J1aWx0aW5fYXJtX3dzcnAoc3lzcmVnLCB2KQojZGVmaW5lIF9fYXJtX3dzcmYoc3lzcmVnLCB2KSBfX2FybV93c3Ioc3lzcmVnLCBfX2J1aWx0aW5fYml0X2Nhc3QodWludDMyX3QsIHYpKQojZGVmaW5lIF9fYXJtX3dzcmY2NChzeXNyZWcsIHYpIF9fYXJtX3dzcjY0KHN5c3JlZywgX19idWlsdGluX2JpdF9jYXN0KHVpbnQ2NF90LCB2KSkKCi8qIE1lbW9yeSBUYWdnaW5nIEV4dGVuc2lvbnMgKE1URSkgSW50cmluc2ljcyAqLwojaWYgX19BUk1fRkVBVFVSRV9NRU1PUllfVEFHR0lORwojZGVmaW5lIF9fYXJtX210ZV9jcmVhdGVfcmFuZG9tX3RhZyhfX3B0ciwgX19tYXNrKSAgX19idWlsdGluX2FybV9pcmcoX19wdHIsIF9fbWFzaykKI2RlZmluZSBfX2FybV9tdGVfaW5jcmVtZW50X3RhZyhfX3B0ciwgX190YWdfb2Zmc2V0KSAgX19idWlsdGluX2FybV9hZGRnKF9fcHRyLCBfX3RhZ19vZmZzZXQpCiNkZWZpbmUgX19hcm1fbXRlX2V4Y2x1ZGVfdGFnKF9fcHRyLCBfX2V4Y2x1ZGVkKSAgX19idWlsdGluX2FybV9nbWkoX19wdHIsIF9fZXhjbHVkZWQpCiNkZWZpbmUgX19hcm1fbXRlX2dldF90YWcoX19wdHIpIF9fYnVpbHRpbl9hcm1fbGRnKF9fcHRyKQojZGVmaW5lIF9fYXJtX210ZV9zZXRfdGFnKF9fcHRyKSBfX2J1aWx0aW5fYXJtX3N0ZyhfX3B0cikKI2RlZmluZSBfX2FybV9tdGVfcHRyZGlmZihfX3B0cmEsIF9fcHRyYikgX19idWlsdGluX2FybV9zdWJwKF9fcHRyYSwgX19wdHJiKQojZW5kaWYKCi8qIFRyYW5zYWN0aW9uYWwgTWVtb3J5IEV4dGVuc2lvbiAoVE1FKSBJbnRyaW5zaWNzICovCiNpZiBfX0FSTV9GRUFUVVJFX1RNRQoKI2RlZmluZSBfVE1GQUlMVVJFX1JFQVNPTiAgMHgwMDAwN2ZmZnUKI2RlZmluZSBfVE1GQUlMVVJFX1JUUlkgICAgMHgwMDAwODAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX0NOQ0wgICAgMHgwMDAxMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX01FTSAgICAgMHgwMDAyMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX0lNUCAgICAgMHgwMDA0MDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX0VSUiAgICAgMHgwMDA4MDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX1NJWkUgICAgMHgwMDEwMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX05FU1QgICAgMHgwMDIwMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX0RCRyAgICAgMHgwMDQwMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX0lOVCAgICAgMHgwMDgwMDAwMHUKI2RlZmluZSBfVE1GQUlMVVJFX1RSSVZJQUwgMHgwMTAwMDAwMHUKCiNkZWZpbmUgX190c3RhcnQoKSAgICAgICAgX19idWlsdGluX2FybV90c3RhcnQoKQojZGVmaW5lIF9fdGNvbW1pdCgpICAgICAgIF9fYnVpbHRpbl9hcm1fdGNvbW1pdCgpCiNkZWZpbmUgX190Y2FuY2VsKF9fYXJnKSAgX19idWlsdGluX2FybV90Y2FuY2VsKF9fYXJnKQojZGVmaW5lIF9fdHRlc3QoKSAgICAgICAgIF9fYnVpbHRpbl9hcm1fdHRlc3QoKQoKI2VuZGlmIC8qIF9fQVJNX0ZFQVRVUkVfVE1FICovCgovKiBBcm12OC41LUEgUmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGludHJpbnNpY3MgKi8KI2lmIF9fQVJNXzY0QklUX1NUQVRFICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9STkcpCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX3JuZHIodWludDY0X3QgKl9fcCkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3JuZHIoX19wKTsKfQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19ybmRycnModWludDY0X3QgKl9fcCkgewogIHJldHVybiBfX2J1aWx0aW5fYXJtX3JuZHJycyhfX3ApOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0KI2VuZGlmCgojZW5kaWYgLyogX19BUk1fQUNMRV9IICovCgBhdng1MTJkcWludHJpbi5oAC8qPT09LS0tLSBhdng1MTJ2bGludHJpbi5oIC0gQVZYNTEyVkwgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVkxJTlRSSU5fSAoKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnR5cGVkZWYgc2hvcnQgX192MmhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg0KSkpOwp0eXBlZGVmIGNoYXIgX192NHFpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg0KSkpOwp0eXBlZGVmIGNoYXIgX192MnFpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyKSkpOwoKLyogSW50ZWdlciBjb21wYXJlICovCgojZGVmaW5lIF9tbV9jbXBlcV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwaTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwaTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwdTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwdTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwaTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwaTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwdTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwdTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2FkZF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2FkZF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9hZGRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3N1Yl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1Yl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zdWJfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3N1Yl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1Yl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zdWJfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2FkZF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2FkZF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hZGRfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3N1Yl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1Yl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zdWJfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3N1Yl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1Yl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zdWJfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X211bF9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bF9lcGkzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tdWxfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX211bF9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bF9lcGkzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tdWxfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxfZXB1MzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X211bF9lcHUzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bF9lcHUzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tdWxfZXB1MzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfZXB1MzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX211bF9lcHUzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bF9lcHUzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tdWxfZXB1MzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbXVsbG9fZXBpMzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbXVsbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxsb19lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbXVsbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxsb19lcGkzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tdWxsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bGxvX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tdWxsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FuZF9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y4c3UpX19hICYgKF9fdjhzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2FuZF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza19hbmRfZXBpMzIoX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9hbmRfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192NHN1KV9fYSAmIChfX3Y0c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hbmRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfYW5kX2VwaTMyKF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYW5kbm90X2VwaTMyKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkofihfX3Y4c3UpX19BICYgKF9fdjhzdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRub3RfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2FuZG5vdF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZG5vdF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza19hbmRub3RfZXBpMzIoX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYW5kbm90X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkofihfX3Y0c3UpX19BICYgKF9fdjRzdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hbmRub3RfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2FuZG5vdF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FuZG5vdF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfbW1fbWFza19hbmRub3RfZXBpMzIoX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9vcl9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y4c3UpX19hIHwgKF9fdjhzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19vcl9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X29yX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfb3JfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX21tMjU2X21hc2tfb3JfZXBpMzIoX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9vcl9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3Y0c3UpX19hIHwgKF9fdjRzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19vcl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fb3JfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9vcl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfbW1fbWFza19vcl9lcGkzMihfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3hvcl9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y4c3UpX19hIF4gKF9fdjhzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza194b3JfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3hvcl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3hvcl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfbW0yNTZfbWFza194b3JfZXBpMzIoX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV94b3JfZXBpMzIoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192NHN1KV9fYSBeIChfX3Y0c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfeG9yX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV94b3JfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel94b3JfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfeG9yX2VwaTMyKF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYW5kX2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkdSlfX2EgJiAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FuZF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYW5kX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYW5kX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9tYXNrX2FuZF9lcGk2NChfbW0yNTZfc2V0emVyb19zaTI1NigpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2FuZF9lcGk2NChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICByZXR1cm4gKF9fbTEyOGkpKChfX3YyZHUpX19hICYgKF9fdjJkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hbmRfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2FuZF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FuZF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfbW1fbWFza19hbmRfZXBpNjQoX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hbmRub3RfZXBpNjQoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSh+KF9fdjRkdSlfX0EgJiAoX192NGR1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FuZG5vdF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYW5kbm90X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYW5kbm90X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9tYXNrX2FuZG5vdF9lcGk2NChfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9hbmRub3RfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSh+KF9fdjJkdSlfX0EgJiAoX192MmR1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FuZG5vdF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fYW5kbm90X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYW5kbm90X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9tbV9tYXNrX2FuZG5vdF9lcGk2NChfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X29yX2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkdSlfX2EgfCAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX29yX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9vcl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X29yX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9tYXNrX29yX2VwaTY0KF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fb3JfZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgcmV0dXJuIChfX20xMjhpKSgoX192MmR1KV9fYSB8IChfX3YyZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfb3JfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX29yX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfb3JfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfb3JfZXBpNjQoX21tX3NldHplcm9fc2kxMjgoKSwgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl94b3JfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSBeIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfeG9yX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl94b3JfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel94b3JfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX21tMjU2X21hc2tfeG9yX2VwaTY0KF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIF9fVSwgX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1feG9yX2VwaTY0KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkdSlfX2EgXiAoX192MmR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3hvcl9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwKICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV94b3JfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel94b3JfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX21tX21hc2tfeG9yX2VwaTY0KF9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BLCBfX0IpOwp9CgojZGVmaW5lIF9tbV9jbXBfZXBpMzJfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBkMTI4X21hc2soKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXBpMzJfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBkMTI4X21hc2soKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9lcHUzMl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2soKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcHUzMl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBkMTI4X21hc2soKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwaTMyX21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wZDI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX2VwaTMyX21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wZDI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXB1MzJfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wZDI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXB1MzJfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wZDI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9lcGk2NF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9lcGk2NF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW1fY21wX2VwdTY0X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfdWNtcHExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX2VwdTY0X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfdWNtcHExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbTI1Nl9jbXBfZXBpNjRfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXBpNjRfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBxMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tMjU2X2NtcF9lcHU2NF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9lcHU2NF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX3VjbXBxMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX3BzX21hc2soYSwgYiwgcCkgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfcHNfbWFzayhtLCBhLCBiLCBwKSAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX3BkX21hc2soYSwgYiwgcCkgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9wZF9tYXNrKG0sIGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9wc19tYXNrKGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3BzX21hc2sobSwgYSwgYiwgcCkgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tX2NtcF9wZF9tYXNrKGEsIGIsIHApICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfcGRfbWFzayhtLCBhLCBiLCBwKSAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZF9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Ztc3ViX3BkKF9fbTEyOGQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZubWFkZF9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoLShfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKC0oX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgtKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1hZGRfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbWFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1zdWJfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm5tYWRkX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgtKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZubWFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoLShfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbm1zdWJfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKC0oX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZF9wcyhfX20xMjggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Ztc3ViX3BzKF9fbTEyOCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1Yl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMgKC0oX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoLShfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubXN1Yl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgtKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1hZGRfcHMoX19tMjU2IF9fQSwgX19tbWFzazggX19VLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1hZGRfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1hZGRfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbXN1Yl9wcyhfX20yNTYgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1zdWJfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZubWFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2ICgtKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm5tYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKC0oX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbm1zdWJfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoLShfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZHN1Yl9wZChfX20xMjhkIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRzdWJfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Ztc3ViYWRkX3BkKF9fbTEyOGQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1hZGRzdWJfcGQoX19tMjU2ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbWFkZHN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtYWRkc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbXN1YmFkZF9wZChfX20yNTZkIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbXN1YmFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRzdWJfcHMoX19tMTI4IF9fQSwgX19tbWFzazggX19VLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1hZGRzdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRzdWJfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbXN1YmFkZF9wcyhfX20xMjggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJhZGRfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1hZGRzdWJfcHMoX19tMjU2IF9fQSwgX19tbWFzazggX19VLCBfX20yNTYgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZtYWRkc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZtYWRkc3ViX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1zdWJhZGRfcHMoX19tMjU2IF9fQSwgX19tbWFzazggX19VLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Ztc3ViYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1zdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1zdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NiAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1YmFkZF9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbXN1YmFkZF9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2Ztc3ViYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbXN1YmFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2ICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tYWRkX3BkKF9fbTEyOGQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm5tYWRkX3BkKF9fbTI1NmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2ICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1hZGRfcHMoX19tMTI4IF9fQSwgX19tbWFzazggX19VLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwcyAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm5tYWRkX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1zdWJfcGQoX19tMTI4ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZubXN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0ZGYpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZubXN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NiAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRkZikgX19DKSwKICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubXN1Yl9wcyhfX20xMjggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZubXN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKSBfX0MpLAogICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm5tc3ViX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm5tc3ViX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4c2YpIF9fQyksCiAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2FkZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2FkZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2FkZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9hZGRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZF9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfYWRkX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2FkZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2JsZW5kX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fVykgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgKF9fdjRzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYmxlbmRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19XKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAoX192OHNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19ibGVuZF9wZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX1cpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fVykgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192NGRmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19ibGVuZF9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19XKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX1cpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2JsZW5kX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fVykgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYmxlbmRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19XKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGYxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RmMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RmMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19wZCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkZjI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2NvbXByZXNzX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkaTEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY29tcHJlc3NfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGkxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192MmRpKQogICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc19lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGkyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2NvbXByZXNzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RpMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRkaSkKICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2YxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY29tcHJlc3NzZjEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NmMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19wcyAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2YyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2kxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NpMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NpMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19lcGkzMiAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NzaTI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2NvbXByZXNzc3RvcmV1X3BkICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlZGYxMjhfbWFzayAoKF9fdjJkZiAqKSBfX1AsCiAgICAgICAgICAgIChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc3N0b3JldV9wZCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZWRmMjU2X21hc2sgKChfX3Y0ZGYgKikgX19QLAogICAgICAgICAgICAoX192NGRmKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NzdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVkaTEyOF9tYXNrICgoX192MmRpICopIF9fUCwKICAgICAgICAgICAgKF9fdjJkaSkgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlZGkyNTZfbWFzayAoKF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgIChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9wcyAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3Jlc2YxMjhfbWFzayAoKF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc3N0b3JldV9wcyAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3Jlc2YyNTZfbWFzayAoKF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgIChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZXNpMTI4X21hc2sgKChfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAoX192NHNpKSBfX0EsCiAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY29tcHJlc3NzdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVzaTI1Nl9tYXNrICgoX192OHNpICopIF9fUCwKICAgICAgICAgICAgKF9fdjhzaSkgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcGkzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTMyX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcGkzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpMzJfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fY3Z0ZXBpMzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGkzMl9wcyAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9jdnRlcGkzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTMyX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2N2dGVwaTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfY3Z0ZXBpMzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGRfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwZF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQyZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwZF9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW0yNTZfY3Z0cGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW0yNTZfY3Z0cGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwZF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnRwZDJwc19tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwZF9wcyAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnRwZDJwc19tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW0yNTZfY3Z0cGRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwZF9wcyAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbTI1Nl9jdnRwZF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cGRfZXB1MzIgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBkX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGRfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwZF9lcHUzMiAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGRfZXB1MzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwZF9lcHUzMiAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cHNfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cHNfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRwc19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwc19lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRwc19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwc19lcGkzMiAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dHBzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBzX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY3Z0cHNfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBzX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRwc19wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cHNfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRwc19wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cHNfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2N2dHBzX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cHNfZXB1MzIgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cHNfZXB1MzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBzX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwc19lcHUzMiAoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydWRxMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwc19lcHUzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydWRxMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cHNfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydWRxMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBkX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBkX2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQyZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGRfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dHRwZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW0yNTZfY3Z0dHBkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0cGRfZXB1MzIgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGRfZXB1MzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cGRfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192NHNpKQogICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBkX2VwdTMyIChfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBkX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBkX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkKICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBzX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dHRwc19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cHNfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnR0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBzX2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dHRwc19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cHNfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnR0cHNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRwc19lcHUzMiAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBzX2VwdTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydWRxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cHNfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cHNfZXB1MzIgKF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHEyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwc19lcHUzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dHBzX2VwdTMyIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHEyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXB1MzJfcGQgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzdSlfX0EsIChfX3Y0c3UpX19BLCAwLCAxKSwgX192MmRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXB1MzJfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwdTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHUzMl9wZCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTMyX3BkIChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHN1KV9fQSwgX192NGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1MzJfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2N2dGVwdTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHUzMl9wZCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXB1MzJfcHMgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzdSlfX0EsIF9fdjRzZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXB1MzJfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fY3Z0ZXB1MzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHUzMl9wcyAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9jdnRlcHUzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUzMl9wcyAoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHN1KV9fQSwgX192OHNmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHUzMl9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9jdnRlcHUzMl9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwdTMyX3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2N2dGVwdTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Rpdl9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9kaXZfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZGl2X3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Rpdl9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9kaXZfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZGl2X3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZGl2X3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9kaXZfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Rpdl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fZGl2X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19kaXZfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2Rpdl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZGl2X3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9kaXZfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkZjEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRmMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX3BkIChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kZGYyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkZjI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRpMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2V4cGFuZF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kZGkxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGkpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkaTI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGRpMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NGRpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kbG9hZHVfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRmMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2V4cGFuZGxvYWR1X3BkIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRmMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRsb2FkdV9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGYyNTZfbWFzayAoKGNvbnN0IF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kbG9hZHVfcGQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGYyNTZfbWFzayAoKGNvbnN0IF9fdjRkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZGxvYWR1X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTEyOF9tYXNrICgoY29uc3QgX192MmRpICopIF9fUCwKICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRsb2FkdV9lcGk2NCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTEyOF9tYXNrICgoY29uc3QgX192MmRpICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjJkaSkKICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kbG9hZHVfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTI1Nl9tYXNrICgoY29uc3QgX192NGRpICopIF9fUCwKICAgICAgICAgICAgICAoX192NGRpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGk2NCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTI1Nl9tYXNrICgoY29uc3QgX192NGRpICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjRkaSkKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRsb2FkdV9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNmMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19QLAogICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRsb2FkdV9wcyAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNmMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kbG9hZHVfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZXhwYW5kbG9hZHVfcHMgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRsb2FkdV9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2kxMjhfbWFzayAoKGNvbnN0IF9fdjRzaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpMzIgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2kxMjhfbWFzayAoKGNvbnN0IF9fdjRzaSAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRsb2FkdV9lcGkzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpMjU2X21hc2sgKChjb25zdCBfX3Y4c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZGxvYWR1X2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpMjU2X21hc2sgKChjb25zdCBfX3Y4c2kgKikgX19QLAogICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNmMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2V4cGFuZF9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNmMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9leHBhbmRzZjI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9leHBhbmRzZjI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNpMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2V4cGFuZF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kc2kxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRzaTI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNpMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2dldGV4cF9wZCAoX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19nZXRleHBfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9nZXRleHBfcGQgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2dldGV4cF9wZCAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19nZXRleHBfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9nZXRleHBfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZ2V0ZXhwX3BzIChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2dldGV4cF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2dldGV4cF9wcyAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZ2V0ZXhwX3BzIChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2dldGV4cF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2dldGV4cF9wcyAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX21heF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X21heF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX21heF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tYXhfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbWF4X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21heF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9taW5fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9taW5fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9taW5fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbWluX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21pbl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9taW5fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbXVsX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbXVsX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bF9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bF9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbXVsX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX211bF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9tdWxfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bF9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbXVsX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWJzX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2Fic19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hYnNfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWJzX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Fic19lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hYnNfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Fic19lcGk2NCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFic3ExMjgoKF9fdjJkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hYnNfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2Fic19lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hYnNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fYWJzX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hYnNfZXBpNjQgKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhYnNxMjU2ICgoX192NGRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Fic19lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYWJzX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Fic19lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9hYnNfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcGkzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tYXhfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21heF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcGkzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9tYXhfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21heF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21heF9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtYXhzcTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYXhfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYXhfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXhfZXBpNjQgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWF4c3EyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcGk2NCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWF4X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWF4X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X2VwdTMyKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21heF9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9lcHUzMihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbWF4X2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X2VwdTMyKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21heF9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9lcHUzMihfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWF4X2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWF4X2VwdTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1heHVxMTI4KChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfZXB1NjQgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21heF9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21heF9lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21heF9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcHU2NCAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtYXh1cTI1NigoX192NGRpKV9fQSwgKF9fdjRkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfZXB1NjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXBpMzIoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fbWluX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9taW5fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fZXBpMzIoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWluX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9taW5fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9taW5fZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbWluc3ExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbWluX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9taW5fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWluX2VwaTY0IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnNxMjU2KChfX3Y0ZGkpX19BLCAoX192NGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21pbl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcGk2NCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWluX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9lcHUzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9taW5fZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fZXB1MzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX21pbl9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcHUzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9taW5fZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fZXB1MzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X21pbl9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21pbl9lcHU2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BtaW51cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19taW5fZXB1NjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9taW5fZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXB1NjQgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21pbl9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9taW5fZXB1NjQgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWludXEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWluX2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9taW5fZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgojZGVmaW5lIF9tbV9yb3VuZHNjYWxlX3BkKEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkXzEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3BkKFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkXzEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9wZChVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF8xMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCgojZGVmaW5lIF9tbTI1Nl9yb3VuZHNjYWxlX3BkKEEsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkXzI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgoKI2RlZmluZSBfbW0yNTZfbWFza19yb3VuZHNjYWxlX3BkKFcsIFUsIEEsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkXzI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKI2RlZmluZSBfbW0yNTZfbWFza3pfcm91bmRzY2FsZV9wZChVLCBBLCBpbW0pICBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9yb3VuZHNjYWxlX3BzKEEsIGltbSkgIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzXzEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfcHMoVywgVSwgQSwgaW1tKSAgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9wcyhVLCBBLCBpbW0pICBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc18xMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcm91bmRzY2FsZV9wcyhBLCBpbW0pICBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc18yNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3JvdW5kc2NhbGVfcHMoVywgVSwgQSwgaW1tKSAgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgoKI2RlZmluZSBfbW0yNTZfbWFza3pfcm91bmRzY2FsZV9wcyhVLCBBLCBpbW0pICBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc18yNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NjYWxlZl9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2NhbGVmX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwKICAgICAgICBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2NhbGVmX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikKICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2NhbGVmX3BkIChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zY2FsZWZfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLAogICAgICAgICAgIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zY2FsZWZfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NjYWxlZl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NjYWxlZl9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2NhbGVmX3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2NhbGVmcHMxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NjYWxlZl9wcyAoX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NjYWxlZl9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLAogICAgICAgICAgIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2NhbGVmcHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zY2FsZWZfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKI2RlZmluZSBfbW1faTY0c2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjJkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pNjRzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MmRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTY0c2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjJkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pNjRzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MmRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTY0c2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2NGRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTY0c2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2NGRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTY0c2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIChfX3Y0c2YpKF9fbTEyOCkodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9tYXNrX2k2NHNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgKF9fdjRzZikoX19tMTI4KSh2MSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX2k2NHNjYXR0ZXJfZXBpMzIoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY0c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0c2NhdHRlcl9lcGkzMihhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjRzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X2k2NHNjYXR0ZXJfcHMoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY4c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCAoX192NHNmKShfX20xMjgpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRzY2F0dGVyX3BzKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpbmRleCksIChfX3Y0c2YpKF9fbTEyOCkodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9pNjRzY2F0dGVyX2VwaTMyKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2k2NHNjYXR0ZXJfZXBpMzIoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJkaXY4c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9pMzJzY2F0dGVyX3BkKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2MmRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9tYXNrX2kzMnNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjJkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9pMzJzY2F0dGVyX2VwaTY0KGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXYyZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9tYXNrX2kzMnNjYXR0ZXJfZXBpNjQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjJkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9pMzJzY2F0dGVyX3BkKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0ZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMnNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjRkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9pMzJzY2F0dGVyX2VwaTY0KGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0ZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMnNjYXR0ZXJfZXBpNjQoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjRkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbV9pMzJzY2F0dGVyX3BzKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIChfX3Y0c2YpKF9fbTEyOCkodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tX21hc2tfaTMyc2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgKF9fdjRzZikoX19tMTI4KSh2MSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1faTMyc2NhdHRlcl9lcGkzMihhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2NHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW1fbWFza19pMzJzY2F0dGVyX2VwaTMyKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICAgIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY0c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW0yNTZfaTMyc2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2OHNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCAoX192OHNmKShfX20yNTYpKHYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMnNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIChfX3Y4c2YpKF9fbTI1NikodjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X2kzMnNjYXR0ZXJfZXBpMzIoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogICAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTMyc2NhdHRlcl9lcGkzMihhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyc2l2OHNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKSh2MSksIChpbnQpKHNjYWxlKSkKCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19zcXJ0X3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NxcnRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfc3FydF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NxcnRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfc3FydF9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3NxcnRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfc3FydF9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NxcnRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3NxcnRfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zcXJ0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19zcXJ0X3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogICAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc3FydF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfc3FydF9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NxcnRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19zdWJfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3N1Yl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3N1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zdWJfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19zdWJfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3N1Yl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3N1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zdWJfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX3N1Yl9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3N1Yl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9zdWJfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zdWJfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfc3ViX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogICAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc3ViX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3N1Yl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3N1Yl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX3Blcm11dGV4MnZhcl9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmQxMjgoKF9fdjRzaSkgX19BLCAoX192NHNpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQik7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX3Blcm11dGV4MnZhcl9lcGkzMihfX20xMjhpIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3Blcm11dGV4MnZhcl9lcGkzMihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFzazJfcGVybXV0ZXgydmFyX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3Blcm11dGV4MnZhcl9lcGkzMihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0kpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfcGVybXV0ZXgydmFyX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3Blcm11dGV4MnZhcl9lcGkzMihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X3Blcm11dGV4MnZhcl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmQyNTYoKF9fdjhzaSlfX0EsIChfX3Y4c2kpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19wZXJtdXRleDJ2YXJfZXBpMzIoX19tMjU2aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2syX3Blcm11dGV4MnZhcl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3Blcm11dGV4MnZhcl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9wZXJtdXRleDJ2YXJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGkgX19JLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJwZDEyOCgoX192MmRmKV9fQSwgKF9fdjJkaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19CKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfcGVybXV0ZXgydmFyX3BkKF9fbTEyOGQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19JLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFzazJfcGVybXV0ZXgydmFyX3BkKF9fbTEyOGQgX19BLCBfX20xMjhpIF9fSSwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZClfX0kpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfcGVybXV0ZXgydmFyX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGkgX19JLCBfX20xMjhkIF9fQikgewogICAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X3Blcm11dGV4MnZhcl9wZChfX20yNTZkIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmQgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19wZXJtdXRleDJ2YXJfcGQoX19tMjU2ZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmQgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXgydmFyX3BkKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fQSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrMl9wZXJtdXRleDJ2YXJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZkIF9fQikgewogICAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZClfX0kpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfcGVybXV0ZXgydmFyX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2ZCBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX3Blcm11dGV4MnZhcl9wcyhfX20xMjggX19BLCBfX20xMjhpIF9fSSwgX19tMTI4IF9fQikgewogICAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnBzMTI4KChfX3Y0c2YpX19BLCAoX192NHNpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQik7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfcGVybXV0ZXgydmFyX3BzKF9fbTEyOCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0ksIF9fbTEyOCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrMl9wZXJtdXRleDJ2YXJfcHMoX19tMTI4IF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQikgewogICAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fcGVybXV0ZXgydmFyX3BzKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfcGVybXV0ZXgydmFyX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOCBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfcGVybXV0ZXgydmFyX3BzKF9fbTI1NiBfX0EsIF9fbTI1NmkgX19JLCBfX20yNTYgX19CKSB7CiAgICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92cGVybWkydmFycHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2kpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fQik7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfcGVybXV0ZXgydmFyX3BzKF9fbTI1NiBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0ksIF9fbTI1NiBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrMl9wZXJtdXRleDJ2YXJfcHMoX19tMjU2IF9fQSwgX19tMjU2aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NiBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KV9fSSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X3Blcm11dGV4MnZhcl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2IF9fQikgewogICAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfcGVybXV0ZXgydmFyX3BzKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fcGVybXV0ZXgydmFyX2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwgX19tMTI4aSBfX0IpIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGVybWkydmFycTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX0IpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19wZXJtdXRleDJ2YXJfZXBpNjQoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19BKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2syX3Blcm11dGV4MnZhcl9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19JKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X3Blcm11dGV4MnZhcl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGkgX19CKSB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfcGVybXV0ZXgydmFyX2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwgX19tMjU2aSBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGVybWkydmFycTI1NigoX192NGRpKV9fQSwgKF9fdjRkaSkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fQik7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX3Blcm11dGV4MnZhcl9lcGk2NChfX20yNTZpIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGk2NChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0EpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFzazJfcGVybXV0ZXgydmFyX2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fSSwgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGk2NChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0kpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfcGVybXV0ZXgydmFyX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aSBfX0IpIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGk2NChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXBpOF9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcGk4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXBpOF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dGVwaThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcGk4X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRlcGk4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXBpOF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jdnRlcGk4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXBpOF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcGk4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXBpOF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwaThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcGk4X2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwaThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcGk4X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXBpOF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwaTMyX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwaTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXBpMzJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwaTMyX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwaTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwaTE2X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dGVwaTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXBpMTZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcGkxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrX2N2dGVwaTE2X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwaTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXBpMTZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0ZXBpMTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza19jdnRlcGkxNl9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcGkxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwaTE2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXBpMTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcGkxNl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcGkxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2t6X2N2dGVwaTE2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXBpMTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwogIH0KCgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXB1OF9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9jdnRlcHU4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKICBfbW1fbWFza3pfY3Z0ZXB1OF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dGVwdThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza19jdnRlcHU4X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwdThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcHU4X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0ZXB1OF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrX2N2dGVwdThfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2t6X2N2dGVwdThfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jdnRlcHU4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXB1OF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcHU4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwogIH0KCiAgc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKICBfbW0yNTZfbWFza3pfY3Z0ZXB1OF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKICB7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9jdnRlcHU4X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXB1MzJfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXB1MzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9jdnRlcHUzMl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwdTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXB1MzJfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXB1MzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcHUzMl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwdTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXB1MTZfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fY3Z0ZXB1MTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9jdnRlcHUxNl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2N2dGVwdTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXB1MTZfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfY3Z0ZXB1MTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcHUxNl9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2N2dGVwdTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiAgX21tX21hc2tfY3Z0ZXB1MTZfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fY3Z0ZXB1MTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOAogIF9tbV9tYXNrel9jdnRlcHUxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2N2dGVwdTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKICB9CgogIHN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CiAgX21tMjU2X21hc2tfY3Z0ZXB1MTZfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCiAgewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY3Z0ZXB1MTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7CiAgfQoKICBzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgogIF9tbTI1Nl9tYXNrel9jdnRlcHUxNl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQogIHsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2N2dGVwdTE2X2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKICB9CgoKI2RlZmluZSBfbW1fcm9sX2VwaTMyKGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvbGQxMjgoKF9fdjRzaSkoX19tMTI4aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tX21hc2tfcm9sX2VwaTMyKHcsIHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9yb2xfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKHcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvbF9lcGkzMih1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfcm9sX2VwaTMyKGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvbGQyNTYoKF9fdjhzaSkoX19tMjU2aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcm9sX2VwaTMyKHcsIHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb2xfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKHcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JvbF9lcGkzMih1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fcm9sX2VwaTY0KGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvbHExMjgoKF9fdjJkaSkoX19tMTI4aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tX21hc2tfcm9sX2VwaTY0KHcsIHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb2xfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKHcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvbF9lcGk2NCh1LCBhLCBiKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fcm9sX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfcm9sX2VwaTY0KGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvbHEyNTYoKF9fdjRkaSkoX19tMjU2aSkoYSksIChpbnQpKGIpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcm9sX2VwaTY0KHcsIHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb2xfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKHcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JvbF9lcGk2NCh1LCBhLCBiKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkodSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9sX2VwaTY0KChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JvbHZfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wcm9sdmQxMjgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcm9sdl9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fcm9sdl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JvbHZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fcm9sdl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yb2x2X2VwaTMyIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHJvbHZkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3JvbHZfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcm9sdl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcm9sdl9lcGkzMiAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3JvbHZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yb2x2X2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvbHZxMTI4KChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JvbHZfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3JvbHZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yb2x2X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3JvbHZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcm9sdl9lcGk2NCAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Byb2x2cTI1NigoX192NGRpKV9fQSwgKF9fdjRkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19yb2x2X2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3JvbHZfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JvbHZfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgojZGVmaW5lIF9tbV9yb3JfZXBpMzIoYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wcm9yZDEyOCgoX192NHNpKShfX20xMjhpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW1fbWFza19yb3JfZXBpMzIodywgdSwgYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3Jvcl9lcGkzMigoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkodykpKQoKI2RlZmluZSBfbW1fbWFza3pfcm9yX2VwaTMyKHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9yb3JfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9yb3JfZXBpMzIoYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wcm9yZDI1NigoX192OHNpKShfX20yNTZpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yb3JfZXBpMzIodywgdSwgYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3Jvcl9lcGkzMigoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkodykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcm9yX2VwaTMyKHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb3JfZXBpMzIoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9yb3JfZXBpNjQoYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wcm9ycTEyOCgoX192MmRpKShfX20xMjhpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW1fbWFza19yb3JfZXBpNjQodywgdSwgYSwgYikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3Jvcl9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkodykpKQoKI2RlZmluZSBfbW1fbWFza3pfcm9yX2VwaTY0KHUsIGEsIGIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb3JfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9yb3JfZXBpNjQoYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wcm9ycTI1NigoX192NGRpKShfX20yNTZpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yb3JfZXBpNjQodywgdSwgYSwgYikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKHUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3Jvcl9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkodykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcm9yX2VwaTY0KHUsIGEsIGIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KSh1KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb3JfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGxfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NsbF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NsbF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zbGxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGxfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NsbF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zbGxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGxpX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NsbGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGxpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2xsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NsbGlfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2xsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbGlfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zbGxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zbGxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGxfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2xsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zbGxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zbGxfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2xsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsaV9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zbGxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NsbGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGxpX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NsbGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zbGxpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2xsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yb3J2X2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHJvcnZkMTI4KChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JvcnZfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3JvcnZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yb3J2X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3JvcnZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcm9ydl9lcGkzMiAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Byb3J2ZDI1NigoX192OHNpKV9fQSwgKF9fdjhzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19yb3J2X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3JvcnZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JvcnZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9yb3J2X2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcm9ydl9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Byb3J2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yb3J2X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb3J2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcm9ydl9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9yb3J2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JvcnZfZXBpNjQgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wcm9ydnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcm9ydl9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9yb3J2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9yb3J2X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcm9ydl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsdl9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2xsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NsbHZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2xsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NsbHZfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2xsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2xsdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NsbHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NsbHZfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NsbHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGx2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NsbHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zbGx2X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NsbHZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbHZfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmx2X2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Jsdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jsdl9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmx2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3Jsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Jsdl9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmx2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jsdl9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmx2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JsX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmxfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3JsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JsX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmxfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JsaV9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JsaV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NybGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmxpX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NybGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmxpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JsaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NybF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3JsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NybF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybGlfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NybGlfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3JsaV9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JsaV9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NybGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmF2X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NyYXZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NyYXZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmF2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmF2X2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NyYXZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYXZfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmF2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3Jhdl9lcGk2NChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXZxMTI4KChfX3YyZGkpX19YLCAoX192MmRpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NyYXZfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NyYXZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmF2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NyYXZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Jhdl9lcGk2NChfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNyYXZxMjU2KChfX3Y0ZGkpX19YLCAoX192NGRpKSBfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmF2X2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmF2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Jhdl9lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3Jhdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdl9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCAoKSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZfZXBpMzIgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2xvYWRfZXBpMzIgKHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAqKGNvbnN0IF9fbTEyOGkgKikgX19QOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMybG9hZDEyOF9tYXNrICgoY29uc3QgX192NHNpICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkX2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbW92ZHFhMzJsb2FkMTI4X21hc2sgKChjb25zdCBfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KQogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZF9lcGkzMiAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tMjU2aSAqKSBfX1A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWRfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbW92ZHFhMzJsb2FkMjU2X21hc2sgKChjb25zdCBfX3Y4c2kgKikgX19QLAogICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2xvYWRfZXBpMzIgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMmxvYWQyNTZfbWFzayAoKGNvbnN0IF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zdG9yZV9lcGkzMiAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogICooX19tMTI4aSAqKSBfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JlX2VwaTMyICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMnN0b3JlMTI4X21hc2sgKChfX3Y0c2kgKikgX19QLAogICAgICAgICAgKF9fdjRzaSkgX19BLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N0b3JlX2VwaTMyICh2b2lkICpfX1AsIF9fbTI1NmkgX19BKQp7CiAgKihfX20yNTZpICopIF9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMyc3RvcmUyNTZfbWFzayAoKF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAoX192OHNpKSBfX0EsCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdl9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdl9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21vdl9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21vdl9lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbG9hZF9lcGk2NCAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tMTI4aSAqKSBfX1A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2xvYWRfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbW92ZHFhNjRsb2FkMTI4X21hc2sgKChjb25zdCBfX3YyZGkgKikgX19QLAogICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NGxvYWQxMjhfbWFzayAoKGNvbnN0IF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjJkaSkKICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkX2VwaTY0ICh2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKihjb25zdCBfX20yNTZpICopIF9fUDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NGxvYWQyNTZfbWFzayAoKGNvbnN0IF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZF9lcGk2NCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0bG9hZDI1Nl9tYXNrICgoY29uc3QgX192NGRpICopIF9fUCwKICAgICAgICAgICAgICAoX192NGRpKQogICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3N0b3JlX2VwaTY0ICh2b2lkICpfX1AsIF9fbTEyOGkgX19BKQp7CiAgKihfX20xMjhpICopIF9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX21vdmRxYTY0c3RvcmUxMjhfbWFzayAoKF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAoX192MmRpKSBfX0EsCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3RvcmVfZXBpNjQgKHZvaWQgKl9fUCwgX19tMjU2aSBfX0EpCnsKICAqKF9fbTI1NmkgKikgX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZV9lcGk2NCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfbW92ZHFhNjRzdG9yZTI1Nl9tYXNrICgoX192NGRpICopIF9fUCwKICAgICAgICAgIChfX3Y0ZGkpIF9fQSwKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92ZWR1cF9wZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9tb3ZlZHVwX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZlZHVwX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fbW92ZWR1cF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92ZWR1cF9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9tb3ZlZHVwX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZlZHVwX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfbW92ZWR1cF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2V0MV9lcGkzMihfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBpbnQgX19BKQp7CiAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0MV9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2V0MV9lcGkzMiggX19tbWFzazggX19NLCBpbnQgX19BKQp7CiAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0MV9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2V0MV9lcGkzMihfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBpbnQgX19BKQp7CiAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0MV9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2V0MV9lcGkzMiggX19tbWFzazggX19NLCBpbnQgX19BKQp7CiAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0MV9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NldDFfZXBpNjQgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXQxX2VwaTY0eChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NldDFfZXBpNjQgKF9fbW1hc2s4IF9fTSwgbG9uZyBsb25nIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldDFfZXBpNjR4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2V0MV9lcGk2NCAoX19tMjU2aSBfX08sIF9fbW1hc2s4IF9fTSwgbG9uZyBsb25nIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldDFfZXBpNjR4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfX08pIDsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NldDFfZXBpNjQgKF9fbW1hc2s4IF9fTSwgbG9uZyBsb25nIF9fQSkKewogICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0MV9lcGk2NHgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW1fZml4dXBpbW1fcGQoQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19maXh1cGltbV9wZChBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfZml4dXBpbW1fcGQoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQxMjhfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9maXh1cGltbV9wZChBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2ZpeHVwaW1tX3BkKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9maXh1cGltbV9wZChVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDI1Nl9tYXNreigoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX2ZpeHVwaW1tX3BzKEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZml4dXBpbW1fcHMoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3BzKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHMxMjhfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZml4dXBpbW1fcHMoQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19maXh1cGltbV9wcyhBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZml4dXBpbW1fcHMoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczI1Nl9tYXNreigoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQxMjhfbWFzayAoKGNvbnN0IF9fdjJkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZF9wZCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQxMjhfbWFzayAoKGNvbnN0IF9fdjJkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWRfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfbG9hZGFwZDI1Nl9tYXNrICgoY29uc3QgX192NGRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkX3BkIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfbG9hZGFwZDI1Nl9tYXNrICgoY29uc3QgX192NGRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkX3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9sb2FkYXBzMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19QLAogICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWRfcHMgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcHMxMjhfbWFzayAoKGNvbnN0IF9fdjRzZiAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfbG9hZGFwczI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkX3BzIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9sb2FkYXBzMjU2X21hc2sgKChjb25zdCBfX3Y4c2YgKikgX19QLAogICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2xvYWR1X2VwaTY0ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGk2NCB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTY0KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2xvYWR1X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVkaTEyOF9tYXNrICgoY29uc3QgX192MmRpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZHVfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1ZGkxMjhfbWFzayAoKGNvbnN0IF9fdjJkaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjJkaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZHVfZXBpNjQgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTY0IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpNjQqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZHVfZXBpNjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWRpMjU2X21hc2sgKChjb25zdCBfX3Y0ZGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkdV9lcGk2NCAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVkaTI1Nl9tYXNrICgoY29uc3QgX192NGRpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192NGRpKQogICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9sb2FkdV9lcGkzMiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpMzIgewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGkzMiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkdV9lcGkzMiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1c2kxMjhfbWFzayAoKGNvbnN0IF9fdjRzaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWR1X2VwaTMyIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXNpMTI4X21hc2sgKChjb25zdCBfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3Y0c2kpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2xvYWR1X2VwaTMyICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGkzMiB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTMyKilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2xvYWR1X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVzaTI1Nl9tYXNrICgoY29uc3QgX192OHNpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192OHNpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZHVfZXBpMzIgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1c2kyNTZfbWFzayAoKGNvbnN0IF9fdjhzaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2xvYWR1X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2xvYWR1cGQxMjhfbWFzayAoKGNvbnN0IF9fdjJkZiAqKSBfX1AsCiAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZHVfcGQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBkMTI4X21hc2sgKChjb25zdCBfX3YyZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkdV9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBkMjU2X21hc2sgKChjb25zdCBfX3Y0ZGYgKikgX19QLAogICAgICAgICAgICAgICAoX192NGRmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2xvYWR1X3BkIChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfbG9hZHVwZDI1Nl9tYXNrICgoY29uc3QgX192NGRmICopIF9fUCwKICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19sb2FkdV9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbG9hZHVwczEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9sb2FkdV9wcyAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfbG9hZHVwczEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192NHNmKQogICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19sb2FkdV9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfbG9hZHVwczI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkdV9wcyAoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfbG9hZHVwczI1Nl9tYXNrICgoY29uc3QgX192OHNmICopIF9fUCwKICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmVfcGQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlYXBkMTI4X21hc2sgKChfX3YyZGYgKikgX19QLAogICAgICAgICAgIChfX3YyZGYpIF9fQSwKICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N0b3JlX3BkICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwZDI1Nl9tYXNrICgoX192NGRmICopIF9fUCwKICAgICAgICAgICAoX192NGRmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZV9wcyAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwczEyOF9tYXNrICgoX192NHNmICopIF9fUCwKICAgICAgICAgICAoX192NHNmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZV9wcyAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWFwczI1Nl9tYXNrICgoX192OHNmICopIF9fUCwKICAgICAgICAgICAoX192OHNmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3N0b3JldV9lcGk2NCAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGk2NCB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTY0KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9lcGk2NCAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVkaTEyOF9tYXNrICgoX192MmRpICopIF9fUCwKICAgICAgICAgICAgIChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tMjU2aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpNjQgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGk2NCopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfZXBpNjQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1ZGkyNTZfbWFzayAoKF9fdjRkaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3RvcmV1X2VwaTMyICh2b2lkICpfX1AsIF9fbTEyOGkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTMyIHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpMzIqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmV1X2VwaTMyICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdXNpMTI4X21hc2sgKChfX3Y0c2kgKikgX19QLAogICAgICAgICAgICAgKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX20yNTZpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGkzMiB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTMyKilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVzaTI1Nl9tYXNrICgoX192OHNpICopIF9fUCwKICAgICAgICAgICAgIChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmV1X3BkICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXVwZDEyOF9tYXNrICgoX192MmRmICopIF9fUCwKICAgICAgICAgICAoX192MmRmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfcGQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JldXBkMjU2X21hc2sgKChfX3Y0ZGYgKikgX19QLAogICAgICAgICAgIChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JldV9wcyAodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXVwczEyOF9tYXNrICgoX192NHNmICopIF9fUCwKICAgICAgICAgICAoX192NHNmKSBfX0EsCiAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdG9yZXVfcHMgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmV1cHMyNTZfbWFzayAoKF9fdjhzZiAqKSBfX1AsCiAgICAgICAgICAgKF9fdjhzZikgX19BLAogICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3VucGFja2hpX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VucGFja2hpX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fdW5wYWNraGlfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNraGlfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfdW5wYWNraGlfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfdW5wYWNraGlfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl91bnBhY2toaV9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3VucGFja2hpX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfdW5wYWNraGlfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3VucGFja2hpX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2toaV9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3VucGFja2hpX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfdW5wYWNraGlfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2tsb19wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV91bnBhY2tsb19wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2tsb19wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VucGFja2xvX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2xvX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3VucGFja2xvX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2xvX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfdW5wYWNrbG9fcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2tsb19wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fdW5wYWNrbG9fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2xvX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bnBhY2tsb19wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNrbG9fcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl91bnBhY2tsb19wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2xvX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfdW5wYWNrbG9fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JjcDE0X3BkIChfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcmNwMTRfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3JjcDE0X3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBkMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JjcDE0X3BkIChfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZCkgX19idWlsdGluX2lhMzJfcmNwMTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcmNwMTRfcGQgKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBkMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JjcDE0X3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBkMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGYpCiAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcmNwMTRfcHMgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcmNwMTRwczEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yY3AxNF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHMxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcmNwMTRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcmNwMTRfcHMgKF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfcmNwMTRwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpCiAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19yY3AxNF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcmNwMTRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzMjU2X21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKI2RlZmluZSBfbW1fbWFza19wZXJtdXRlX3BkKFcsIFUsIFgsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGVfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9wZXJtdXRlX3BkKFUsIFgsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGVfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19wZXJtdXRlX3BkKFcsIFUsIFgsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGVfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9wZXJtdXRlX3BkKFUsIFgsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGVfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW1fbWFza19wZXJtdXRlX3BzKFcsIFUsIFgsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9wZXJtdXRlX3BzKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3Blcm11dGVfcHMoVSwgWCwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGVfcHMoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3Blcm11dGVfcHMoVywgVSwgWCwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGVfcHMoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcGVybXV0ZV9wcyhVLCBYLCBDKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfcGVybXV0ZV9wcygoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV2YXJfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3Blcm11dGV2YXJfcGQoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3Blcm11dGV2YXJfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fcGVybXV0ZXZhcl9wZChfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXZhcl9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXZhcl9wZChfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXZhcl9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRldmFyX3BkKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV2YXJfcHMoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3Blcm11dGV2YXJfcHMoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXZhcl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fcGVybXV0ZXZhcl9wcyhfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRldmFyX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfcGVybXV0ZXZhcl9wcyhfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXZhcl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV2YXJfcHMoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RfZXBpMzJfbWFzayAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jbXBuZXFfZXBpMzJfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RfZXBpMzJfbWFzayAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfY21wbmVxX2VwaTMyX21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdF9lcGkzMl9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcG5lcV9lcGkzMl9tYXNrIChfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza190ZXN0X2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrIChfX1UsIF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RfZXBpNjRfbWFzayAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jbXBuZXFfZXBpNjRfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RfZXBpNjRfbWFzayAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfY21wbmVxX2VwaTY0X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdF9lcGk2NF9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcG5lcV9lcGk2NF9tYXNrIChfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza190ZXN0X2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrIChfX1UsIF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RuX2VwaTMyX21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wZXFfZXBpMzJfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RuX2VwaTMyX21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcGVxX2VwaTMyX21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl90ZXN0bl9lcGkzMl9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcGVxX2VwaTMyX21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdG5fZXBpMzJfbWFzayAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfY21wZXFfZXBpMzJfbWFzayAoX19VLCBfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3RuX2VwaTY0X21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wZXFfZXBpNjRfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Rlc3RuX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcGVxX2VwaTY0X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl90ZXN0bl9lcGk2NF9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcGVxX2VwaTY0X21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdG5fZXBpNjRfbWFzayAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfY21wZXFfZXBpNjRfbWFzayAoX19VLCBfbW0yNTZfYW5kX3NpMjU2IChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2toaV9lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VucGFja2hpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2toaV9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3VucGFja2hpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2hpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2toaV9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3VucGFja2hpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2hpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2toaV9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3VucGFja2hpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2hpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2tsb19lcGkzMihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VucGFja2xvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2xvX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bnBhY2tsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2tsb19lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3VucGFja2xvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2xvX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl91bnBhY2tsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2tsb19lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3VucGFja2xvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3VucGFja2xvX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2tsb19lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3VucGFja2xvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2xvX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl91bnBhY2tsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmFfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NyYV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NyYV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zcmFfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmFfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NyYV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYV9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmFfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmFpX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NyYWlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmFpX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc3JhaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NyYWlfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc3JhaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYWlfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zcmFpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NyYV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXExMjgoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JhX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NyYV9lcGk2NChfX0EsIF9fQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JhX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc3JhX2VwaTY0KF9fQSwgX19CKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JhX2VwaTY0KF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JhcTI1NigoX192NGRpKSBfX0EsIChfX3YyZGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NyYV9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc3JhX2VwaTY0KF9fQSwgX19CKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JhX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX1UsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NyYV9lcGk2NChfX0EsIF9fQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmFpX2VwaTY0KF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19pbW0pCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXFpMTI4KChfX3YyZGkpX19BLCBfX2ltbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NyYWlfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX2ltbSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmFpX2VwaTY0KF9fQSwgX19pbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcmFpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIHVuc2lnbmVkIGludCBfX2ltbSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zcmFpX2VwaTY0KF9fQSwgX19pbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3JhaV9lcGk2NChfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9faW1tKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmFxaTI1NigoX192NGRpKV9fQSwgX19pbW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmFpX2VwaTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2ltbSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmFpX2VwaTY0KF9fQSwgX19pbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmFpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX2ltbSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zcmFpX2VwaTY0KF9fQSwgX19pbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgojZGVmaW5lIF9tbV90ZXJuYXJ5bG9naWNfZXBpMzIoQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDEyOF9tYXNrKChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX3Rlcm5hcnlsb2dpY19lcGkzMihBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkMTI4X21hc2soKF9fdjRzaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel90ZXJuYXJ5bG9naWNfZXBpMzIoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDEyOF9tYXNreigoX192NHNpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X3Rlcm5hcnlsb2dpY19lcGkzMihBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkMjU2X21hc2soKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfdGVybmFyeWxvZ2ljX2VwaTMyKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ2QyNTZfbWFzaygoX192OHNpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3Rlcm5hcnlsb2dpY19lcGkzMihVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkMjU2X21hc2t6KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fdGVybmFyeWxvZ2ljX2VwaTY0KEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3ExMjhfbWFzaygoX192MmRpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza190ZXJuYXJ5bG9naWNfZXBpNjQoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9ncTEyOF9tYXNrKChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfdGVybmFyeWxvZ2ljX2VwaTY0KFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3ExMjhfbWFza3ooKF9fdjJkaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl90ZXJuYXJ5bG9naWNfZXBpNjQoQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9ncTI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3Rlcm5hcnlsb2dpY19lcGk2NChBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dxMjU2X21hc2soKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel90ZXJuYXJ5bG9naWNfZXBpNjQoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9ncTI1Nl9tYXNreigoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCgoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9mMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zaHVmX2YzMng0XzI1NigoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVfZjMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2h1ZmZsZV9mMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZV9mMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zaHVmZmxlX2YzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tMjU2X3NodWZmbGVfZjY0eDIoQSwgQiwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NodWZfZjY0eDJfMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2h1ZmZsZV9mNjR4MihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2h1ZmZsZV9mNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfZjY0eDIoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NodWZmbGVfZjY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9pMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NF8yNTYoKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX2kzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NodWZmbGVfaTMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaHVmZmxlX2kzMng0KFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NodWZmbGVfaTMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9pNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2h1Zl9pNjR4Ml8yNTYoKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX2k2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NodWZmbGVfaTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShXKSkpCgoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZV9pNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaHVmZmxlX2k2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX21hc2tfc2h1ZmZsZV9wZChXLCBVLCBBLCBCLCBNKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zaHVmZmxlX3BkKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHVmZmxlX3BkKFUsIEEsIEIsIE0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NodWZmbGVfcGQoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVfcGQoVywgVSwgQSwgQiwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2h1ZmZsZV9wZCgoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZV9wZChVLCBBLCBCLCBNKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zaHVmZmxlX3BkKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW1fbWFza19zaHVmZmxlX3BzKFcsIFUsIEEsIEIsIE0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zaHVmZmxlX3BzKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2h1ZmZsZV9wcyhVLCBBLCBCLCBNKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlX3BzKFcsIFUsIEEsIEIsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zaHVmZmxlX3BzKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2h1ZmZsZV9wcyhVLCBBLCBCLCBNKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JzcXJ0MTRfcGQgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JzcXJ0MTRfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydDE0X3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQxMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcnNxcnQxNF9wZCAoX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcnNxcnQxNF9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JzcXJ0MTRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwZDI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRkZikKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JzcXJ0MTRfcHMgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3JzcXJ0MTRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHMxMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydDE0X3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcnNxcnQxNF9wcyAoX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcnNxcnQxNF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwczI1Nl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JzcXJ0MTRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHMyNTZfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikKICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RfZjMyeDQoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RfZjMyeDQoX19tMjU2IF9fTywgX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfYnJvYWRjYXN0X2YzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RfZjMyeDQgKF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2Jyb2FkY2FzdF9mMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RfaTMyeDQoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0X2kzMng0KF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYnJvYWRjYXN0X2kzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0X2kzMng0KF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9icm9hZGNhc3RfaTMyeDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RzZF9wZCAoX19tMjU2ZCBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9tbTI1Nl9icm9hZGNhc3RzZF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdHNkX3BkIChfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKSBfbW0yNTZfYnJvYWRjYXN0c2RfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpIF9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Jyb2FkY2FzdHNzX3BzIChfX20xMjggX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fYnJvYWRjYXN0c3NfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYnJvYWRjYXN0c3NfcHMgKF9fbW1hc2s4IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9icm9hZGNhc3Rzc19wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3Rzc19wcyAoX19tMjU2IF9fTywgX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X2Jyb2FkY2FzdHNzX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdHNzX3BzIChfX21tYXNrOCBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfYnJvYWRjYXN0c3NfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Jyb2FkY2FzdGRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX2Jyb2FkY2FzdGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Jyb2FkY2FzdGRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fYnJvYWRjYXN0ZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0ZF9lcGkzMiAoX19tMjU2aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfYnJvYWRjYXN0ZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0ZF9lcGkzMiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl9icm9hZGNhc3RkX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19icm9hZGNhc3RxX2VwaTY0IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9icm9hZGNhc3RxX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9icm9hZGNhc3RxX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX2Jyb2FkY2FzdHFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdHFfZXBpNjQgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X2Jyb2FkY2FzdHFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdHFfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfYnJvYWRjYXN0cV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNlcGkzMl9lcGk4IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRzZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNkYjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y0c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHNlcGkzMl9lcGk4IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGkzMl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRzZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNkYjI1Nm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNlcGkzMl9lcGkxNiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTMyX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpX19PLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2VwaTMyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3MTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c2R3MTI4bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192NHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpMzJfZXBpMTYgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3MjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3MjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0c2VwaTMyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2R3MjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c2R3MjU2bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192OHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZXBpNjRfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2VwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIxMjhtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpNjRfZXBpOCAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0c2VwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWIyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c2VwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3FkMTI4bWVtX21hc2sgKChfX3Y0c2kgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRzZXBpNjRfZXBpMzIgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRzZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjRzaSlfX08sCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRzZXBpNjRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWQyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGkzMiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWQyNTZtZW1fbWFzayAoKF9fdjRzaSAqKSBfX1AsIChfX3Y0ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcxMjhtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHNlcGk2NF9lcGkxNiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcXcyNTZtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y0ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHVzZXBpMzJfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMTI4X21hc2sgKChfX3Y0c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpMzJfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjRzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGkzMl9lcGk4IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2RiMjU2X21hc2sgKChfX3Y4c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dXNlcGkzMl9lcGk4IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzZGIyNTZtZW1fbWFzayAoKF9fdjE2cWkqKSBfX1AsIChfX3Y4c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHVzZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzEyOF9tYXNrICgoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTMyX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dXNlcGkzMl9lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3MTI4bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192NHNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR1c2VwaTMyX2VwaTE2IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHcyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR1c2VwaTMyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpMzJfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzZHcyNTZtZW1fbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y4c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHVzZXBpNjRfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTY0X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGk2NF9lcGk4IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWIyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dXNlcGk2NF9lcGk4IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcWIyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTY0X2VwaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9lcGkzMiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpNjRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDEyOG1lbV9tYXNrICgoX192NHNpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGk2NF9lcGkzMiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FkMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR1c2VwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxZDI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHVzZXBpNjRfc3RvcmV1X2VwaTMyICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcWQyNTZtZW1fbWFzayAoKF9fdjRzaSAqKSBfX1AsIChfX3Y0ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHVzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxdzEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGhpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTY0X2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dXNlcGk2NF9lcGkxNiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MTI4bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192MmRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR1c2VwaTY0X2VwaTE2IChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcXcyNTZfbWFzayAoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dXNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHVzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3MjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNxdzI1Nm1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpMzJfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0c2kpX19BLCBfX3Y0cWkpLCAoX192NHFpKXswLCAwLCAwLCAwfSwgMCwgMSwKICAgICAgMiwgMywgNCwgNSwgNiwgNywgNywgNywgNywgNywgNywgNywgNywgNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGkzMl9lcGk4IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGIxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKQogICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdmRiMTI4bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjRzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMzJfZXBpOCAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19BLCBfX3Y4cWkpLAogICAgICAoX192OHFpKXswLCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLAogICAgICAxMiwgMTMsIDE0LCAxNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcGkzMl9lcGk4IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGIyNTZfbWFzayAoKF9fdjhzaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZkYjI1Nm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTMyX2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigKICAgICAgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzaSlfX0EsIF9fdjRoaSksIChfX3Y0aGkpezAsIDAsIDAsIDB9LCAwLCAxLAogICAgICAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpMzJfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTMyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHcxMjhfbWFzayAoKF9fdjRzaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTMyX3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzEyOG1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjRzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMzJfZXBpMTYgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19BLCBfX3Y4aGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkzMl9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzI1Nl9tYXNrICgoX192OHNpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpMzJfc3RvcmV1X2VwaTE2ICh2b2lkICogIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzI1Nm1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjhzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpNjRfZXBpOCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YyZGkpX19BLCBfX3YycWkpLCAoX192MnFpKXswLCAwfSwgMCwgMSwgMiwgMywKICAgICAgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMywgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTY0X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9lcGk4IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cWIxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxYjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X2VwaTggKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGRpKV9fQSwgX192NHFpKSwgKF9fdjRxaSl7MCwgMCwgMCwgMH0sIDAsIDEsCiAgICAgIDIsIDMsIDQsIDUsIDYsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGk2NF9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpNjRfZXBpOCAoX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiMjU2X21hc2sgKChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cWIyNTZtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRlcGk2NF9lcGkzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YyZGkpX19BLCBfX3Yyc2kpLCAoX192MnNpKXswLCAwfSwgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTY0X2VwaTMyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFkMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NHNpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92cWQxMjhtZW1fbWFzayAoKF9fdjRzaSAqKSBfX1AsIChfX3YyZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X2VwaTMyIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGRpKV9fQSwgX192NHNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfZXBpMzIgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dGVwaTY0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X2VwaTMyIChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tMjU2X2N2dGVwaTY0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGkzMiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxZDI1Nm1lbV9tYXNrICgoX192NHNpICopIF9fUCwgKF9fdjRkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MmRpKV9fQSwgX192MmhpKSwgKF9fdjJoaSl7MCwgMH0sIDAsIDEsIDIsIDMsCiAgICAgIDMsIDMsIDMsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSlfX08sCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXcxMjhfbWFzayAoKF9fdjJkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGkxNiAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzEyOG1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjJkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpNjRfZXBpMTYgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NGRpKV9fQSwgX192NGhpKSwgKF9fdjRoaSl7MCwgMCwgMCwgMH0sIDAsIDEsCiAgICAgIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzI1Nl9tYXNrICgoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnF3MjU2bWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192NGRpKSBfX0EsIF9fTSk7Cn0KCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RmMzJ4NF9wcyhBLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDRfMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2V4dHJhY3RmMzJ4NF9wcyhXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDRfMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9leHRyYWN0ZjMyeDRfcHMoVSwgQSwgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng0XzI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0aTMyeDRfZXBpMzIoQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4NF8yNTZfbWFzaygoX192OHNpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2V4dHJhY3RpMzJ4NF9lcGkzMihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGkzMng0XzI1Nl9tYXNrKChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9leHRyYWN0aTMyeDRfZXBpMzIoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4NF8yNTZfbWFzaygoX192OHNpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2luc2VydGYzMng0KEEsIEIsIGltbSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2luc2VydGYzMng0XzI1NigoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pbnNlcnRmMzJ4NChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfaW5zZXJ0ZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9pbnNlcnRmMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfaW5zZXJ0ZjMyeDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tMjU2X2luc2VydGkzMng0KEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9pbnNlcnRpMzJ4NF8yNTYoKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaW5zZXJ0aTMyeDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2luc2VydGkzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2luc2VydGkzMng0KFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9pbnNlcnRpMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9wZChBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZ2V0bWFudF9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X2dldG1hbnRfcGQoVSwgQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfZ2V0bWFudF9wZChBLCBCLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZ2V0bWFudF9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2dldG1hbnRfcGQoVSwgQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9wcyhBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfcHMoVywgVSwgQSwgQiwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3BzKFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50cHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9nZXRtYW50X3BzKEEsIEIsIEMpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9nZXRtYW50cHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZ2V0bWFudF9wcyhXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2dldG1hbnRfcHMoVSwgQSwgQiwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21tYXNrX2k2NGdhdGhlcl9wZCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2MmRmKChfX3YyZGYpKF9fbTEyOGQpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbV9tbWFza19pNjRnYXRoZXJfZXBpNjQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyM2RpdjJkaSgoX192MmRpKShfX20xMjhpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfbW1hc2tfaTY0Z2F0aGVyX3BkKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNkaXY0ZGYoKF9fdjRkZikoX19tMjU2ZCkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X21tYXNrX2k2NGdhdGhlcl9lcGk2NCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2NGRpKChfX3Y0ZGkpKF9fbTI1NmkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbV9tbWFza19pNjRnYXRoZXJfcHModjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2NHNmKChfX3Y0c2YpKF9fbTEyOCkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tX21tYXNrX2k2NGdhdGhlcl9lcGkzMih2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2NHNpKChfX3Y0c2kpKF9fbTEyOGkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pNjRnYXRoZXJfcHModjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2OHNmKChfX3Y0c2YpKF9fbTEyOCkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X21tYXNrX2k2NGdhdGhlcl9lcGkzMih2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXIzZGl2OHNpKChfX3Y0c2kpKF9fbTEyOGkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbV9tbWFza19pMzJnYXRoZXJfcGQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjJkZigoX192MmRmKShfX20xMjhkKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTMyZ2F0aGVyX2VwaTY0KHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcjNzaXYyZGkoKF9fdjJkaSkoX19tMTI4aSkodjFfb2xkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tMjU2X21tYXNrX2kzMmdhdGhlcl9wZCh2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nYXRoZXIzc2l2NGRmKChfX3Y0ZGYpKF9fbTI1NmQpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pMzJnYXRoZXJfZXBpNjQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjRkaSgoX192NGRpKShfX20yNTZpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW1fbW1hc2tfaTMyZ2F0aGVyX3BzKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjRzZigoX192NHNmKShfX20xMjgpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbV9tbWFza19pMzJnYXRoZXJfZXBpMzIodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjRzaSgoX192NHNpKShfX20xMjhpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfbW1hc2tfaTMyZ2F0aGVyX3BzKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjhzZigoX192OHNmKShfX20yNTYpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTI1Nl9tbWFza19pMzJnYXRoZXJfZXBpMzIodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyM3NpdjhzaSgoX192OHNpKShfX20yNTZpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZXhfcGQoWCwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9wZXJtZGYyNTYoKF9fdjRkZikoX19tMjU2ZCkoWCksIChpbnQpKEMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcGVybXV0ZXhfcGQoVywgVSwgWCwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9wZXJtdXRleF9wZCgoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcGVybXV0ZXhfcGQoVSwgWCwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfcGVybXV0ZXhfcGQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZXhfZXBpNjQoWCwgQykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtZGkyNTYoKF9fdjRkaSkoX19tMjU2aSkoWCksIChpbnQpKEMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcGVybXV0ZXhfZXBpNjQoVywgVSwgWCwgQykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcGVybXV0ZXhfZXBpNjQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoVykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcGVybXV0ZXhfZXBpNjQoVSwgWCwgQykgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcGVybXV0ZXhfZXBpNjQoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleHZhcl9wZCAoX19tMjU2aSBfX1gsIF9fbTI1NmQgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJkZjI1NigoX192NGRmKV9fWSwgKF9fdjRkaSlfX1gpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRleHZhcl9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsCiAgICAgICAgICBfX20yNTZkIF9fWSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV4dmFyX3BkKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV4dmFyX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZkIF9fWSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3Blcm11dGV4dmFyX3BkKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleHZhcl9lcGk2NCAoIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFyZGkyNTYoKF9fdjRkaSkgX19ZLCAoX192NGRpKSBfX1gpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXh2YXJfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wZXJtdXRleHZhcl9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsCiAgICAgICAgICAgICBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRleHZhcl9wcyhBLCBCKSBfbW0yNTZfcGVybXV0ZXZhcjh4MzJfcHMoKEIpLCAoQSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4dmFyX3BzKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gsIF9fbTI1NiBfX1kpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3Blcm11dGV4dmFyX3BzKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGVybXV0ZXh2YXJfcHMoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCwgX19tMjU2IF9fWSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfcGVybXV0ZXh2YXJfcHMoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZXh2YXJfZXBpMzIoQSwgQikgX21tMjU2X3Blcm11dGV2YXI4eDMyX2VwaTMyKChCKSwgKEEpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGVybXV0ZXh2YXJfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9wZXJtdXRleHZhcl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wZXJtdXRleHZhcl9lcGkzMihfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfcGVybXV0ZXh2YXJfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW1fYWxpZ25yX2VwaTMyKEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hbGlnbmQxMjgoKF9fdjRzaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX21hc2tfYWxpZ25yX2VwaTMyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2FsaWducl9lcGkzMigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FsaWducl9lcGkzMihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfYWxpZ25yX2VwaTMyKEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9hbGlnbmQyNTYoKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfYWxpZ25yX2VwaTMyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2FsaWducl9lcGkzMigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2FsaWducl9lcGkzMihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fYWxpZ25yX2VwaTY0KEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hbGlnbnExMjgoKF9fdjJkaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tX21hc2tfYWxpZ25yX2VwaTY0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX2FsaWducl9lcGk2NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FsaWducl9lcGk2NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfYWxpZ25yX2VwaTY0KEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9hbGlnbnEyNTYoKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfYWxpZ25yX2VwaTY0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X2FsaWducl9lcGk2NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2FsaWducl9lcGk2NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZlaGR1cF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX21vdmVoZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbW92ZWhkdXBfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tb3ZlaGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21vdmVoZHVwX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfbW92ZWhkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZlaGR1cF9wcyAoX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21vdmVoZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbW92ZWxkdXBfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9tb3ZlbGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21vdmVsZHVwX3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fbW92ZWxkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZlbGR1cF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X21vdmVsZHVwX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92ZWxkdXBfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9tb3ZlbGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVfZXBpMzIoVywgVSwgQSwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVfZXBpMzIoVSwgQSwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9tYXNrX3NodWZmbGVfZXBpMzIoVywgVSwgQSwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFcpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NodWZmbGVfZXBpMzIoVSwgQSwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZfcGQgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAoX192MmRmKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbW92X3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAoX192MmRmKSBfbW1fc2V0emVyb19wZCAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21vdl9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjRkZikgX19BLAogICAgICAgICAgICAgIChfX3Y0ZGYpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjRkZikgX19BLAogICAgICAgICAgICAgIChfX3Y0ZGYpIF9tbTI1Nl9zZXR6ZXJvX3BkICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgKF9fdjRzZikgX19BLAogICAgICAgICAgICAgKF9fdjRzZikgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbW92X3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tb3ZfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgKF9fdjhzZikgX19BLAogICAgICAgICAgICAgKF9fdjhzZikgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbW92X3BzIChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgIChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwaF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHNfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9wcyAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHNfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczI1Nl9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczI1Nl9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKQogICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kcHNfcGgoVywgVSwgQSwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHBzX3BoKFUsIEEsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza19jdnRwc19waCAgX21tX21hc2tfY3Z0X3JvdW5kcHNfcGgKI2RlZmluZSBfbW1fbWFza3pfY3Z0cHNfcGggX21tX21hc2t6X2N2dF9yb3VuZHBzX3BoCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2N2dF9yb3VuZHBzX3BoKFcsIFUsIEEsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9jdnRfcm91bmRwc19waChVLCBBLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaDI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY3Z0cHNfcGggIF9tbTI1Nl9tYXNrX2N2dF9yb3VuZHBzX3BoCiNkZWZpbmUgX21tMjU2X21hc2t6X2N2dHBzX3BoIF9tbTI1Nl9tYXNrel9jdnRfcm91bmRwc19waAoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmIC8qIF9fQVZYNTEyVkxJTlRSSU5fSCAqLwoALyo9PT0tLS0tIG13YWl0eGludHJpbi5oIC0gTU9OSVRPUlgvTVdBSVRYIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1g4NklOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxtd2FpdHhpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fTVdBSVRYSU5UUklOX0gKI2RlZmluZSBfX01XQUlUWElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIm13YWl0eCIpKSkKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21vbml0b3J4KHZvaWQgKiBfX3AsIHVuc2lnbmVkIF9fZXh0ZW5zaW9ucywgdW5zaWduZWQgX19oaW50cykKewogIF9fYnVpbHRpbl9pYTMyX21vbml0b3J4KF9fcCwgX19leHRlbnNpb25zLCBfX2hpbnRzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX213YWl0eCh1bnNpZ25lZCBfX2V4dGVuc2lvbnMsIHVuc2lnbmVkIF9faGludHMsIHVuc2lnbmVkIF9fY2xvY2spCnsKICBfX2J1aWx0aW5faWEzMl9td2FpdHgoX19leHRlbnNpb25zLCBfX2hpbnRzLCBfX2Nsb2NrKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fTVdBSVRYSU5UUklOX0ggKi8KAG9wZW5jbC1jLWJhc2UuaABwa3VpbnRyaW4uaAAvKj09PS0tLS0gcG1taW50cmluLmggLSBJbXBsZW1lbnRhdGlvbiBvZiBTU0UzIGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4gICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgaXMgZGlzdHJpYnV0ZWQgdG8gc2ltcGxpZnkgcG9ydGluZyB4ODZfNjQgY29kZSB0aGF0CiAgIG1ha2VzIGV4cGxpY2l0IHVzZSBvZiBJbnRlbCBpbnRyaW5zaWNzIHRvIHBvd2VycGM2NGxlLgogICBJdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGRldGVybWluZSBpZiB0aGUgcmVzdWx0cyBhcmUKICAgYWNjZXB0YWJsZSBhbmQgbWFrZSBhZGRpdGlvbmFsIGNoYW5nZXMgYXMgbmVjZXNzYXJ5LgogICBOb3RlIHRoYXQgbXVjaCBjb2RlIHRoYXQgdXNlcyBJbnRlbCBpbnRyaW5zaWNzIGNhbiBiZSByZXdyaXR0ZW4gaW4KICAgc3RhbmRhcmQgQyBvciBHTlUgQyBleHRlbnNpb25zLCB3aGljaCBhcmUgbW9yZSBwb3J0YWJsZSBhbmQgYmV0dGVyCiAgIG9wdGltaXplZCBhY3Jvc3MgbXVsdGlwbGUgdGFyZ2V0cy4KCiAgIEluIHRoZSBzcGVjaWZpYyBjYXNlIG9mIFg4NiBTU0UzIGludHJpbnNpY3MsIHRoZSBQb3dlclBDIFZNWC9WU1ggSVNBCiAgIGlzIGEgZ29vZCBtYXRjaCBmb3IgbW9zdCBTSU1EIG9wZXJhdGlvbnMuICBIb3dldmVyIHRoZSBIb3Jpem9udGFsCiAgIGFkZC9zdWIgcmVxdWlyZXMgdGhlIGRhdGEgcGFpcnMgYmUgcGVybXV0ZWQgaW50byBhIHNlcGFyYXRlCiAgIHJlZ2lzdGVycyB3aXRoIHZlcnRpY2FsIGV2ZW4vb2RkIGFsaWdubWVudCBmb3IgdGhlIG9wZXJhdGlvbi4KICAgQW5kIHRoZSBhZGRzdWIgb3BlcmF0aW9uIHJlcXVpcmVzIHRoZSBzaWduIG9mIG9ubHkgdGhlIGV2ZW4gbnVtYmVyZWQKICAgZWxlbWVudHMgYmUgZmxpcHBlZCAoeG9yZWQgd2l0aCAtMC4wKS4KICAgRm9yIGxhcmdlciBibG9ja3Mgb2YgY29kZSB1c2luZyB0aGVzZSBpbnRyaW5zaWMgaW1wbGVtZW50YXRpb25zLAogICB0aGUgY29tcGlsZXIgYmUgc2hvdWxkIGJlIGFibGUgdG8gc2NoZWR1bGUgaW5zdHJ1Y3Rpb25zIHRvIGF2b2lkCiAgIGFkZGl0aW9uYWwgbGF0ZW5jeS4KCiAgIEluIHRoZSBzcGVjaWZpYyBjYXNlIG9mIHRoZSBtb25pdG9yIGFuZCBtd2FpdCBpbnN0cnVjdGlvbnMgdGhlcmUgYXJlCiAgIG5vIGRpcmVjdCBlcXVpdmFsZW50IGluIHRoZSBQb3dlcklTQSBhdCB0aGlzIHRpbWUuICBTbyB0aG9zZQogICBpbnRyaW5zaWNzIGFyZSBub3QgaW1wbGVtZW50ZWQuICAqLwojZXJyb3IgIlBsZWFzZSByZWFkIGNvbW1lbnQgYWJvdmUuICBVc2UgLUROT19XQVJOX1g4Nl9JTlRSSU5TSUNTIHRvIGRpc2FibGUgdGhpcyB3YXJuaW5nLiIKI2VuZGlmCgojaWZuZGVmIFBNTUlOVFJJTl9IXwojZGVmaW5lIFBNTUlOVFJJTl9IXwoKI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykKCi8qIFdlIG5lZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFMiBhbmQgU1NFIGhlYWRlciBmaWxlcyovCiNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRzdWJfcHMgKF9fbTEyOCBfX1gsIF9fbTEyOCBfX1kpCnsKICBjb25zdCBfX3Y0c2YgZXZlbl9uMCA9IHstMC4wLCAwLjAsIC0wLjAsIDAuMH07CiAgX192NHNmIGV2ZW5fbmVnX1kgPSB2ZWNfeG9yKF9fWSwgZXZlbl9uMCk7CiAgcmV0dXJuIChfX20xMjgpIHZlY19hZGQgKF9fWCwgZXZlbl9uZWdfWSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc3ViX3BkIChfX20xMjhkIF9fWCwgX19tMTI4ZCBfX1kpCnsKICBjb25zdCBfX3YyZGYgZXZlbl9uMCA9IHstMC4wLCAwLjB9OwogIF9fdjJkZiBldmVuX25lZ19ZID0gdmVjX3hvcihfX1ksIGV2ZW5fbjApOwogIHJldHVybiAoX19tMTI4ZCkgdmVjX2FkZCAoX19YLCBldmVuX25lZ19ZKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hhZGRfcHMgKF9fbTEyOCBfX1gsIF9fbTEyOCBfX1kpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHhmb3JtMiA9IHsKICAgICAgMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywKICAgICAgMHgwOCwgMHgwOSwgMHgwQSwgMHgwQiwKICAgICAgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMywKICAgICAgMHgxOCwgMHgxOSwgMHgxQSwgMHgxQgogICAgfTsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHhmb3JtMSA9IHsKICAgICAgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywKICAgICAgMHgwQywgMHgwRCwgMHgwRSwgMHgwRiwKICAgICAgMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywKICAgICAgMHgxQywgMHgxRCwgMHgxRSwgMHgxRgogICAgfTsKICByZXR1cm4gKF9fbTEyOCkgdmVjX2FkZCAodmVjX3Blcm0gKChfX3Y0c2YpIF9fWCwgKF9fdjRzZikgX19ZLCB4Zm9ybTIpLAoJCQkgICB2ZWNfcGVybSAoKF9fdjRzZikgX19YLCAoX192NHNmKSBfX1ksIHhmb3JtMSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faHN1Yl9wcyAoX19tMTI4IF9fWCwgX19tMTI4IF9fWSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgeGZvcm0yID0gewogICAgICAweDAwLCAweDAxLCAweDAyLCAweDAzLAogICAgICAweDA4LCAweDA5LCAweDBBLCAweDBCLAogICAgICAweDEwLCAweDExLCAweDEyLCAweDEzLAogICAgICAweDE4LCAweDE5LCAweDFBLCAweDFCCiAgICB9OwogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgeGZvcm0xID0gewogICAgICAweDA0LCAweDA1LCAweDA2LCAweDA3LAogICAgICAweDBDLCAweDBELCAweDBFLCAweDBGLAogICAgICAweDE0LCAweDE1LCAweDE2LCAweDE3LAogICAgICAweDFDLCAweDFELCAweDFFLCAweDFGCiAgICB9OwogIHJldHVybiAoX19tMTI4KSB2ZWNfc3ViICh2ZWNfcGVybSAoKF9fdjRzZikgX19YLCAoX192NHNmKSBfX1ksIHhmb3JtMiksCgkJCSAgIHZlY19wZXJtICgoX192NHNmKSBfX1gsIChfX3Y0c2YpIF9fWSwgeGZvcm0xKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faGFkZF9wZCAoX19tMTI4ZCBfX1gsIF9fbTEyOGQgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfYWRkICh2ZWNfbWVyZ2VoICgoX192MmRmKSBfX1gsIChfX3YyZGYpX19ZKSwKCQkJCSAgdmVjX21lcmdlbCAoKF9fdjJkZikgX19YLCAoX192MmRmKV9fWSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJfcGQgKF9fbTEyOGQgX19YLCBfX20xMjhkIF9fWSkKewogIHJldHVybiAoX19tMTI4ZCkgdmVjX3N1YiAodmVjX21lcmdlaCAoKF9fdjJkZikgX19YLCAoX192MmRmKV9fWSksCgkJCSAgICB2ZWNfbWVyZ2VsICgoX192MmRmKSBfX1gsIChfX3YyZGYpX19ZKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlaGR1cF9wcyAoX19tMTI4IF9fWCkKewogIHJldHVybiAoX19tMTI4KXZlY19tZXJnZW8gKChfX3Y0c3UpX19YLCAoX192NHN1KV9fWCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlbGR1cF9wcyAoX19tMTI4IF9fWCkKewogIHJldHVybiAoX19tMTI4KXZlY19tZXJnZWUgKChfX3Y0c3UpX19YLCAoX192NHN1KV9fWCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZGR1cF9wZCAoZG91YmxlIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19zcGxhdHMgKCpfX1ApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVkdXBfcGQgKF9fbTEyOGQgX19YKQp7CiAgcmV0dXJuIF9tbV9zaHVmZmxlX3BkIChfX1gsIF9fWCwgX01NX1NIVUZGTEUyICgwLDApKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sZGRxdV9zaTEyOCAoX19tMTI4aSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSAodmVjX3ZzeF9sZCgwLCAoc2lnbmVkIGludCBjb25zdCAqKV9fUCkpOwp9CgovKiBQT1dFUjggLyBQT1dFUjkgaGF2ZSBubyBlcXVpdmFsZW50IGZvciBfbW1fbW9uaXRvciBub3IgX21tX3dhaXQuICAqLwoKI2Vsc2UKI2luY2x1ZGVfbmV4dCA8cG1taW50cmluLmg+CiNlbmRpZiAvKiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pICovCgojZW5kaWYgLyogUE1NSU5UUklOX0hfICovCgAsICgtMSk9AFVua25vd24gZW5jb2RpbmcgAHBhdHRlcm4gdG9vIGxhcmdlIC0gY29tcGlsZSBmYWlsZWQAXHcAdHJhaWxpbmcgXABBaG9tAEthdGFrYW5hAEx5Y2lhbgBQYWxteXJlbmUAUwBUYW5ndXQAU0lHQlVTACUuKnMAL3Byb2Mvc2VsZi9leGUAJXM6IG9wZW4gZmFpbGVkOiBlcnJubz0lZAB3Y2hhcl90AGRlY2x0eXBlKGF1dG8pAHBwAFNpAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdGF0dXMvc3RhdHVzb3IuY2MAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3MvaW50ZXJuYWwvY29yZF9yZXBfYnRyZWUuY2MAdHJlZSAhPSBudWxscHRyAGluZgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL3JzYS9ibGluZGluZy5jAEFFUy1HQ00gRGVjcnlwdGlvbiBLQVQAcGxhdGZvcm06IG4vYQB1bmtub3duIGxpYnJhcnkAY29uZmlndXJhdGlvbiBmaWxlIHJvdXRpbmVzAFBLQ1M4IHJvdXRpbmVzAFByb3RvY29sIEJ1ZmZlciBtYXAgdXNhZ2UgZXJyb3I6CgBreXRoZS5wcm90by5jb21tb24uTm9kZUluZm8uZGVmaW5pdGlvbgBreXRoZS5wcm90by5jb21tb24uQ29ycHVzUGF0aC5jb3JwdXMAa3l0aGUucHJvdG8uY29tbW9uLkxhbmd1YWdlLm5hbWUAb3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9zdG9yYWdlLnBiLmNjAC9reXRoZV9jeHhfZXh0cmFjdG9yX3Jvb3QAPHN0ZGluOgBQcmV2aW91cyByZWNvcmQgZm9yIABhdng1MTJmcDE2aW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnZibWkyaW50cmluLmggLSBWQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZibWkyaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZCTUkySU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZCTUkySU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2Ym1pMiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19jb21wcmVzc19lcGkxNihfX201MTJpIF9fUywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGk1MTJfbWFzayAoKF9fdjMyaGkpIF9fRCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9jb21wcmVzc19lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTUxMl9tYXNrICgoX192MzJoaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzX2VwaTgoX19tNTEyaSBfX1MsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3FpNTEyX21hc2sgKChfX3Y2NHFpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfY29tcHJlc3NfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTE2KHZvaWQgKl9fUCwgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGk1MTJfbWFzayAoKF9fdjMyaGkgKikgX19QLCAoX192MzJoaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTgodm9pZCAqX19QLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fRCkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVxaTUxMl9tYXNrICgoX192NjRxaSAqKSBfX1AsIChfX3Y2NHFpKSBfX0QsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZXhwYW5kX2VwaTE2KF9fbTUxMmkgX19TLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fRCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGk1MTJfbWFzayAoKF9fdjMyaGkpIF9fRCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0QpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpNTEyX21hc2sgKChfX3YzMmhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZXhwYW5kX2VwaTgoX19tNTEyaSBfX1MsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2V4cGFuZF9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19EKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTUxMl9tYXNrICgoX192NjRxaSkgX19ELAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2V4cGFuZGxvYWR1X2VwaTE2KF9fbTUxMmkgX19TLCBfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTUxMl9tYXNrICgoY29uc3QgX192MzJoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9lcGkxNihfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTUxMl9tYXNrICgoY29uc3QgX192MzJoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19leHBhbmRsb2FkdV9lcGk4KF9fbTUxMmkgX19TLCBfX21tYXNrNjQgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTUxMl9tYXNrICgoY29uc3QgX192NjRxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192NjRxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9leHBhbmRsb2FkdV9lcGk4KF9fbW1hc2s2NCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHFpNTEyX21hc2sgKChjb25zdCBfX3Y2NHFpICopX19QLAogICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCiNkZWZpbmUgX21tNTEyX3NobGRpX2VwaTY0KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaGxkcTUxMigoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NobGRpX2VwaTY0KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NobGRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9zaGxkaV9lcGkzMihBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZGQ1MTIoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NobGRpX2VwaTMyKFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShTKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaGxkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NobGRpX2VwaTE2KEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaGxkdzUxMigoX192MzJoaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hsZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NobGRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NobGRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2hyZGlfZXBpNjQoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmRxNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hyZGlfZXBpNjQoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2hyZGlfZXBpNjQoVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NocmRpX2VwaTMyKEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJkZDUxMigoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2hyZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2hyZGlfZXBpMzIoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NocmRpX2VwaTMyKFUsIEEsIEIsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NocmRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2hyZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR3NTEyKChfX3YzMmhpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKShfX201MTJpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHJkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zaHJkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoUykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2hyZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hsZHZfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNobGR2cTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hsZHZfZXBpNjQoX19tNTEyaSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9zaGxkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NobGR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9zaGxkdl9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19zaGxkdl9lcGkzMihfX201MTJpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9zaGxkdl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hsZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNobGR2dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hsZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hsZHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX3NocmR2X2VwaTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBzaHJkdnE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX3NocmR2X2VwaTY0KF9fbTUxMmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2hyZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hyZHZfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hyZHZfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR2ZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hyZHZfZXBpMzIoX19tNTEyaSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NocmR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3NocmR2X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQiwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zaHJkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfc2hyZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cHNocmR2dzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfc2hyZHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoKAC8qPT09LS0tLS0tIGF2eDUxMnZsdnAyaW50ZXJzZWN0aW50cmluLmggLSBWTCBWUDJJTlRFUlNFQ1QgaW50cmluc2ljcyAtLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmx2cDJpbnRlcnNlY3RpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9BVlg1MTJWTFZQMklOVEVSU0VDVF9ICiNkZWZpbmUgX0FWWDUxMlZMVlAySU5URVJTRUNUX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJ2cDJpbnRlcnNlY3QiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZwMmludGVyc2VjdCIpLCBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIGR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1REIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGkzMl0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggaTMyXQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2XzJpbnRlcnNlY3RfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfZF8yNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iLCBfX20wLCBfX20xKTsKfQoKLy8vIFN0b3JlLCBpbiBhbiBldmVuL29kZCBwYWlyIG9mIG1hc2sgcmVnaXN0ZXJzLCB0aGUgaW5kaWNhdG9ycyBvZiB0aGUKLy8vIGxvY2F0aW9ucyBvZiB2YWx1ZSBtYXRjaGVzIGJldHdlZW4gcXVhZHdvcmRzIGluIG9wZXJhbmRzIF9fYSBhbmQgX19iLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQMklOVEVSU0VDVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggaTY0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBpNjRdCi8vLyBccGFyYW0gX19tMAovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gOC1iaXQgbWFzawpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfMmludGVyc2VjdF9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IsIF9fbW1hc2s4ICpfX20wLCBfX21tYXNrOCAqX19tMSkgewogIF9fYnVpbHRpbl9pYTMyX3ZwMmludGVyc2VjdF9xXzI1NigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IsIF9fbTAsIF9fbTEpOwp9CgovLy8gU3RvcmUsIGluIGFuIGV2ZW4vb2RkIHBhaXIgb2YgbWFzayByZWdpc3RlcnMsIHRoZSBpbmRpY2F0b3JzIG9mIHRoZQovLy8gbG9jYXRpb25zIG9mIHZhbHVlIG1hdGNoZXMgYmV0d2VlbiBkd29yZHMgaW4gb3BlcmFuZHMgX19hIGFuZCBfX2IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlAySU5URVJTRUNURCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0KLy8vIFxwYXJhbSBfX20wCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gOC1iaXQgbWFzawovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV8yaW50ZXJzZWN0X2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYiwgX19tbWFzazggKl9fbTAsIF9fbW1hc2s4ICpfX20xKSB7CiAgX19idWlsdGluX2lhMzJfdnAyaW50ZXJzZWN0X2RfMTI4KChfX3Y0c2kpX19hLCAoX192NHNpKV9fYiwgX19tMCwgX19tMSk7Cn0KCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIHF1YWR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1RRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tXzJpbnRlcnNlY3RfZXBpNjQoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfcV8xMjgoKF9fdjJkaSlfX2EsIChfX3YyZGkpX19iLCBfX20wLCBfX20xKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGlhMzJpbnRyaW4uaABydG1pbnRyaW4uaAB2cGNsbXVscWRxaW50cmluLmgAZnV6emVyL0Z1enplZERhdGFQcm92aWRlci5oAG9wZW5tcF93cmFwcGVycy9jb21wbGV4X2NtYXRoLmgALy89PT0tLSBzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gQ29tbW9uIHBhcnQgb2YgdGhlIHB1YmxpYyBzYW5pdGl6ZXIgaW50ZXJmYWNlLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKI2RlZmluZSBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKCiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKLy8gR0NDIGRvZXMgbm90IHVuZGVyc3RhbmQgX19oYXNfZmVhdHVyZS4KI2lmICFkZWZpbmVkKF9faGFzX2ZlYXR1cmUpCiNkZWZpbmUgX19oYXNfZmVhdHVyZSh4KSAwCiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKLy8gQXJndW1lbnRzIGZvciBfX3Nhbml0aXplcl9zYW5kYm94X29uX25vdGlmeSgpIGJlbG93Lgp0eXBlZGVmIHN0cnVjdCB7CiAgLy8gRW5hYmxlIHNhbmRib3ggc3VwcG9ydCBpbiBzYW5pdGl6ZXIgY292ZXJhZ2UuCiAgaW50IGNvdmVyYWdlX3NhbmRib3hlZDsKICAvLyBGaWxlIGRlc2NyaXB0b3IgdG8gd3JpdGUgY292ZXJhZ2UgZGF0YSB0by4gSWYgLTEgaXMgcGFzc2VkLCBhIGZpbGUgd2lsbAogIC8vIGJlIHByZS1vcGVuZWQgYnkgX19zYW5pdGl6ZXJfc2FuZG9ieF9vbl9ub3RpZnkoKS4gVGhpcyBmaWVsZCBoYXMgbm8KICAvLyBlZmZlY3QgaWYgY292ZXJhZ2Vfc2FuZGJveGVkID09IDAuCiAgaW50cHRyX3QgY292ZXJhZ2VfZmQ7CiAgLy8gSWYgbm9uLXplcm8sIHNwbGl0IHRoZSBjb3ZlcmFnZSBkYXRhIGludG8gd2VsbC1mb3JtZWQgYmxvY2tzLiBUaGlzIGlzCiAgLy8gdXNlZnVsIHdoZW4gY292ZXJhZ2VfZmQgaXMgYSBzb2NrZXQgZGVzY3JpcHRvci4gRWFjaCBibG9jayB3aWxsIGNvbnRhaW4KICAvLyBhIGhlYWRlciwgYWxsb3dpbmcgZGF0YSBmcm9tIG11bHRpcGxlIHByb2Nlc3NlcyB0byBiZSBzZW50IG92ZXIgdGhlIHNhbWUKICAvLyBzb2NrZXQuCiAgdW5zaWduZWQgaW50IGNvdmVyYWdlX21heF9ibG9ja19zaXplOwp9IF9fc2FuaXRpemVyX3NhbmRib3hfYXJndW1lbnRzOwoKLy8gVGVsbCB0aGUgdG9vbHMgdG8gd3JpdGUgdGhlaXIgcmVwb3J0cyB0byAicGF0aC48cGlkPiIgaW5zdGVhZCBvZiBzdGRlcnIuCnZvaWQgX19zYW5pdGl6ZXJfc2V0X3JlcG9ydF9wYXRoKGNvbnN0IGNoYXIgKnBhdGgpOwovLyBUZWxsIHRoZSB0b29scyB0byB3cml0ZSB0aGVpciByZXBvcnRzIHRvIHRoZSBwcm92aWRlZCBmaWxlIGRlc2NyaXB0b3IKLy8gKGNhc3RlZCB0byB2b2lkICopLgp2b2lkIF9fc2FuaXRpemVyX3NldF9yZXBvcnRfZmQodm9pZCAqZmQpOwovLyBHZXQgdGhlIGN1cnJlbnQgZnVsbCByZXBvcnQgZmlsZSBwYXRoLCBpZiBhIHBhdGggd2FzIHNwZWNpZmllZCBieQovLyBhbiBlYXJsaWVyIGNhbGwgdG8gX19zYW5pdGl6ZXJfc2V0X3JlcG9ydF9wYXRoLiBSZXR1cm5zIG51bGwgb3RoZXJ3aXNlLgpjb25zdCBjaGFyICpfX3Nhbml0aXplcl9nZXRfcmVwb3J0X3BhdGgoKTsKCi8vIE5vdGlmeSB0aGUgdG9vbHMgdGhhdCB0aGUgc2FuZGJveCBpcyBnb2luZyB0byBiZSB0dXJuZWQgb24uIFRoZSByZXNlcnZlZAovLyBwYXJhbWV0ZXIgd2lsbCBiZSB1c2VkIGluIHRoZSBmdXR1cmUgdG8gaG9sZCBhIHN0cnVjdHVyZSB3aXRoIGZ1bmN0aW9ucwovLyB0aGF0IHRoZSB0b29scyBtYXkgY2FsbCB0byBieXBhc3MgdGhlIHNhbmRib3guCnZvaWQgX19zYW5pdGl6ZXJfc2FuZGJveF9vbl9ub3RpZnkoX19zYW5pdGl6ZXJfc2FuZGJveF9hcmd1bWVudHMgKmFyZ3MpOwoKLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIHRvb2wgd2hlbiBpdCBoYXMganVzdCBmaW5pc2hlZCByZXBvcnRpbmcKLy8gYW4gZXJyb3IuICdlcnJvcl9zdW1tYXJ5JyBpcyBhIG9uZS1saW5lIHN0cmluZyB0aGF0IHN1bW1hcml6ZXMKLy8gdGhlIGVycm9yIG1lc3NhZ2UuIFRoaXMgZnVuY3Rpb24gY2FuIGJlIG92ZXJyaWRkZW4gYnkgdGhlIGNsaWVudC4Kdm9pZCBfX3Nhbml0aXplcl9yZXBvcnRfZXJyb3Jfc3VtbWFyeShjb25zdCBjaGFyICplcnJvcl9zdW1tYXJ5KTsKCi8vIFNvbWUgb2YgdGhlIHNhbml0aXplcnMgKGZvciBleGFtcGxlIEFTYW4vVFNhbikgY291bGQgbWlzcyBidWdzIHRoYXQgaGFwcGVuCi8vIGluIHVuYWxpZ25lZCBsb2Fkcy9zdG9yZXMuIFRvIGZpbmQgc3VjaCBidWdzIHJlbGlhYmx5LCB5b3UgbmVlZCB0byByZXBsYWNlCi8vIHBsYWluIHVuYWxpZ25lZCBsb2Fkcy9zdG9yZXMgd2l0aCB0aGVzZSBjYWxscy4KCi8vLyBMb2FkcyBhIDE2LWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDE2X3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQxNihjb25zdCB2b2lkICpwKTsKCi8vLyBMb2FkcyBhIDMyLWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDMyX3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQzMihjb25zdCB2b2lkICpwKTsKCi8vLyBMb2FkcyBhIDY0LWJpdCB1bmFsaWduZWQgdmFsdWUuCi8vLwovLy8gXHBhcmFtIHAgUG9pbnRlciB0byB1bmFsaWduZWQgbWVtb3J5LgovLy8KLy8vIFxyZXR1cm5zIExvYWRlZCB2YWx1ZS4KdWludDY0X3QgX19zYW5pdGl6ZXJfdW5hbGlnbmVkX2xvYWQ2NChjb25zdCB2b2lkICpwKTsKCi8vLyBTdG9yZXMgYSAxNi1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDE2LWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmUxNih2b2lkICpwLCB1aW50MTZfdCB4KTsKCi8vLyBTdG9yZXMgYSAzMi1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDMyLWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmUzMih2b2lkICpwLCB1aW50MzJfdCB4KTsKCi8vLyBTdG9yZXMgYSA2NC1iaXQgdW5hbGlnbmVkIHZhbHVlLgovLy8KLy8vIFxwYXJhbSBwIFBvaW50ZXIgdG8gdW5hbGlnbmVkIG1lbW9yeS4KLy8vIFxwYXJhbSB4IDY0LWJpdCB2YWx1ZSB0byBzdG9yZS4Kdm9pZCBfX3Nhbml0aXplcl91bmFsaWduZWRfc3RvcmU2NCh2b2lkICpwLCB1aW50NjRfdCB4KTsKCi8vIFJldHVybnMgMSBvbiB0aGUgZmlyc3QgY2FsbCwgdGhlbiByZXR1cm5zIDAgdGhlcmVhZnRlci4gIENhbGxlZCBieSB0aGUgdG9vbAovLyB0byBlbnN1cmUgb25seSBvbmUgcmVwb3J0IGlzIHByaW50ZWQgd2hlbiBtdWx0aXBsZSBlcnJvcnMgb2NjdXIKLy8gc2ltdWx0YW5lb3VzbHkuCmludCBfX3Nhbml0aXplcl9hY3F1aXJlX2NyYXNoX3N0YXRlKCk7CgovLy8gQW5ub3RhdGVzIHRoZSBjdXJyZW50IHN0YXRlIG9mIGEgY29udGlndW91cyBjb250YWluZXIsIHN1Y2ggYXMKLy8vIDxjPnN0ZDo6dmVjdG9yPC9jPiwgPGM+c3RkOjpzdHJpbmc8L2M+LCBvciBzaW1pbGFyLgovLy8KLy8vIEEgY29udGlndW91cyBjb250YWluZXIgaXMgYSBjb250YWluZXIgdGhhdCBrZWVwcyBhbGwgb2YgaXRzIGVsZW1lbnRzCi8vLyBpbiBhIGNvbnRpZ3VvdXMgcmVnaW9uIG9mIG1lbW9yeS4gVGhlIGNvbnRhaW5lciBvd25zIHRoZSByZWdpb24gb2YgbWVtb3J5Ci8vLyA8Yz5bYmVnLCBlbmQpPC9jPjsgdGhlIG1lbW9yeSA8Yz5bYmVnLCBtaWQpPC9jPiBpcyB1c2VkIHRvIHN0b3JlIHRoZQovLy8gY3VycmVudCBlbGVtZW50cywgYW5kIHRoZSBtZW1vcnkgPGM+W21pZCwgZW5kKTwvYz4gaXMgcmVzZXJ2ZWQgZm9yIGZ1dHVyZQovLy8gZWxlbWVudHMgKDxjPmJlZyA8PSBtaWQgPD0gZW5kPC9jPikuIEZvciBleGFtcGxlLCBpbgovLy8gPGM+c3RkOjp2ZWN0b3I8PiB2PC9jPjoKLy8vCi8vLyBcY29kZQovLy8gICBiZWcgPSAmdlswXTsKLy8vICAgZW5kID0gYmVnICsgdi5jYXBhY2l0eSgpICogc2l6ZW9mKHZbMF0pOwovLy8gICBtaWQgPSBiZWcgKyB2LnNpemUoKSAgICAgKiBzaXplb2YodlswXSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgYW5ub3RhdGlvbiB0ZWxscyB0aGUgU2FuaXRpemVyIHRvb2wgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlCi8vLyBjb250YWluZXIgc28gdGhhdCB0aGUgdG9vbCBjYW4gcmVwb3J0IGVycm9ycyB3aGVuIG1lbW9yeSBmcm9tCi8vLyA8Yz5bbWlkLCBlbmQpPC9jPiBpcyBhY2Nlc3NlZC4gSW5zZXJ0IHRoaXMgYW5ub3RhdGlvbiBpbnRvIG1ldGhvZHMgbGlrZQovLy8gPGM+cHVzaF9iYWNrKCk8L2M+IG9yIDxjPnBvcF9iYWNrKCk8L2M+LiBTdXBwbHkgdGhlIG9sZCBhbmQgbmV3IHZhbHVlcyBvZgovLy8gPGM+bWlkPC9jPig8Yz48aT5vbGRfbWlkPC9pPjwvYz4gYW5kIDxjPjxpPm5ld19taWQ8L2k+PC9jPikuIEluIHRoZSBpbml0aWFsCi8vLyBzdGF0ZSA8Yz5taWQgPT0gZW5kPC9jPiwgc28gdGhhdCBzaG91bGQgYmUgdGhlIGZpbmFsIHN0YXRlIHdoZW4gdGhlCi8vLyBjb250YWluZXIgaXMgZGVzdHJveWVkIG9yIHdoZW4gdGhlIGNvbnRhaW5lciByZWFsbG9jYXRlcyB0aGUgc3RvcmFnZS4KLy8vCi8vLyBGb3IgQVNhbiwgPGM+PGk+YmVnPC9pPjwvYz4gc2hvdWxkIGJlIDgtYWxpZ25lZCBhbmQgPGM+PGk+ZW5kPC9pPjwvYz4KLy8vIHNob3VsZCBiZSBlaXRoZXIgOC1hbGlnbmVkIG9yIGl0IHNob3VsZCBwb2ludCB0byB0aGUgZW5kIG9mIGEgc2VwYXJhdGUKLy8vIGhlYXAtLCBzdGFjay0sIG9yIGdsb2JhbC1hbGxvY2F0ZWQgYnVmZmVyLiBTbyB0aGUgZm9sbG93aW5nIGV4YW1wbGUgd2lsbAovLy8gbm90IHdvcms6Ci8vLwovLy8gXGNvZGUKLy8vICAgaW50NjRfdCB4WzJdOyAvLyAxNiBieXRlcywgOC1hbGlnbmVkCi8vLyAgIGNoYXIgKmJlZyA9IChjaGFyICopJnhbMF07Ci8vLyAgIGNoYXIgKmVuZCA9IGJlZyArIDEyOyAvLyBOb3QgOC1hbGlnbmVkLCBub3QgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCi8vLyBcZW5kY29kZQovLy8KLy8vIFRoZSBmb2xsb3dpbmcsIGhvd2V2ZXIsIHdpbGwgd29yazoKLy8vIFxjb2RlCi8vLyAgIGludDMyX3QgeFszXTsgLy8gMTIgYnl0ZXMsIGJ1dCA4LWFsaWduZWQgdW5kZXIgQVNhbi4KLy8vICAgY2hhciAqYmVnID0gKGNoYXIqKSZ4WzBdOwovLy8gICBjaGFyICplbmQgPSBiZWcgKyAxMjsgLy8gTm90IDgtYWxpZ25lZCwgYnV0IGlzIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlcgovLy8gXGVuZGNvZGUKLy8vCi8vLyBcbm90ZSAgVXNlIHRoaXMgZnVuY3Rpb24gd2l0aCBjYXV0aW9uIGFuZCBkbyBub3QgdXNlIGZvciBhbnl0aGluZyBvdGhlcgovLy8gdGhhbiB2ZWN0b3ItbGlrZSBjbGFzc2VzLgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gZW5kIEVuZCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIG9sZF9taWQgT2xkIG1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIG5ld19taWQgTmV3IG1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgp2b2lkIF9fc2FuaXRpemVyX2Fubm90YXRlX2NvbnRpZ3VvdXNfY29udGFpbmVyKGNvbnN0IHZvaWQgKmJlZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqb2xkX21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpuZXdfbWlkKTsKCi8vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbnRpZ3VvdXMgY29udGFpbmVyIDxjPltiZWcsIGVuZCk8L2M+IGlzIHByb3Blcmx5Ci8vLyBwb2lzb25lZC4KLy8vCi8vLyBQcm9wZXIgcG9pc29uaW5nIGNvdWxkIG9jY3VyLCBmb3IgZXhhbXBsZSwgd2l0aAovLy8gPGM+X19zYW5pdGl6ZXJfYW5ub3RhdGVfY29udGlndW91c19jb250YWluZXI8L2M+KSwgdGhhdCBpcywgaWYKLy8vIDxjPltiZWcsIG1pZCk8L2M+IGlzIGFkZHJlc3NhYmxlIGFuZCA8Yz5bbWlkLCBlbmQpPC9jPiBpcyB1bmFkZHJlc3NhYmxlLgovLy8gRnVsbCB2ZXJpZmljYXRpb24gcmVxdWlyZXMgTyAoPGM+ZW5kIC0gYmVnPC9jPikgdGltZTsgdGhpcyBmdW5jdGlvbiB0cmllcwovLy8gdG8gYXZvaWQgc3VjaCBjb21wbGV4aXR5IGJ5IHRvdWNoaW5nIG9ubHkgcGFydHMgb2YgdGhlIGNvbnRhaW5lciBhcm91bmQKLy8vIDxjPjxpPmJlZzwvaT48L2M+LCA8Yz48aT5taWQ8L2k+PC9jPiwgYW5kIDxjPjxpPmVuZDwvaT48L2M+LgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gbWlkIE1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIGVuZCBPbGQgZW5kIG9mIG1lbW9yeSByZWdpb24uCi8vLwovLy8gXHJldHVybnMgVHJ1ZSBpZiB0aGUgY29udGlndW91cyBjb250YWluZXIgPGM+W2JlZywgZW5kKTwvYz4gaXMgcHJvcGVybHkKLy8vICBwb2lzb25lZC4KaW50IF9fc2FuaXRpemVyX3ZlcmlmeV9jb250aWd1b3VzX2NvbnRhaW5lcihjb25zdCB2b2lkICpiZWcsIGNvbnN0IHZvaWQgKm1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQpOwoKLy8vIFNpbWlsYXIgdG8gPGM+X19zYW5pdGl6ZXJfdmVyaWZ5X2NvbnRpZ3VvdXNfY29udGFpbmVyKCk8L2M+IGJ1dCBhbHNvCi8vLyByZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCBpbXByb3Blcmx5IHBvaXNvbmVkIGJ5dGUuCi8vLwovLy8gUmV0dXJucyBOVUxMIGlmIHRoZSBhcmVhIGlzIHBvaXNvbmVkIHByb3Blcmx5LgovLy8KLy8vIFxwYXJhbSBiZWcgQmVnaW5uaW5nIG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gbWlkIE1pZGRsZSBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIGVuZCBPbGQgZW5kIG9mIG1lbW9yeSByZWdpb24uCi8vLwovLy8gXHJldHVybnMgVGhlIGJhZCBhZGRyZXNzIG9yIE5VTEwuCmNvbnN0IHZvaWQgKl9fc2FuaXRpemVyX2NvbnRpZ3VvdXNfY29udGFpbmVyX2ZpbmRfYmFkX2FkZHJlc3MoY29uc3Qgdm9pZCAqYmVnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKm1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICplbmQpOwoKLy8vIFByaW50cyB0aGUgc3RhY2sgdHJhY2UgbGVhZGluZyB0byB0aGlzIGNhbGwgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tIHRoZQovLy8gZGVidWdnZXIpLgp2b2lkIF9fc2FuaXRpemVyX3ByaW50X3N0YWNrX3RyYWNlKHZvaWQpOwoKLy8gU3ltYm9saXplcyB0aGUgc3VwcGxpZWQgJ3BjJyB1c2luZyB0aGUgZm9ybWF0IHN0cmluZyAnZm10Jy4KLy8gT3V0cHV0cyBhdCBtb3N0ICdvdXRfYnVmX3NpemUnIGJ5dGVzIGludG8gJ291dF9idWYnLgovLyBJZiAnb3V0X2J1ZicgaXMgbm90IGVtcHR5IHRoZW4gb3V0cHV0IGlzIHplcm8gb3IgbW9yZSBub24gZW1wdHkgQyBzdHJpbmdzCi8vIGZvbGxvd2VkIGJ5IHNpbmdsZSBlbXB0eSBDIHN0cmluZy4gTXVsdGlwbGUgc3RyaW5ncyBjYW4gYmUgcmV0dXJuZWQgaWYgUEMKLy8gY29ycmVzcG9uZHMgdG8gaW5saW5lZCBmdW5jdGlvbi4gSW5saW5lZCBmcmFtZXMgYXJlIHByaW50ZWQgaW4gdGhlIG9yZGVyCi8vIGZyb20gIm1vc3QtaW5saW5lZCIgdG8gdGhlICJsZWFzdC1pbmxpbmVkIiwgc28gdGhlIGxhc3QgZnJhbWUgc2hvdWxkIGJlIHRoZQovLyBub3QgaW5saW5lZCBmdW5jdGlvbi4KLy8gSW5saW5lZCBmcmFtZXMgY2FuIGJlIHJlbW92ZWQgd2l0aCAnc3ltYm9saXplX2lubGluZV9mcmFtZXM9MCcuCi8vIFRoZSBmb3JtYXQgc3ludGF4IGlzIGRlc2NyaWJlZCBpbgovLyBsaWIvc2FuaXRpemVyX2NvbW1vbi9zYW5pdGl6ZXJfc3RhY2t0cmFjZV9wcmludGVyLmguCnZvaWQgX19zYW5pdGl6ZXJfc3ltYm9saXplX3BjKHZvaWQgKnBjLCBjb25zdCBjaGFyICpmbXQsIGNoYXIgKm91dF9idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBvdXRfYnVmX3NpemUpOwovLyBTYW1lIGFzIF9fc2FuaXRpemVyX3N5bWJvbGl6ZV9wYywgYnV0IGZvciBkYXRhIHNlY3Rpb24gKGkuZS4gZ2xvYmFscykuCnZvaWQgX19zYW5pdGl6ZXJfc3ltYm9saXplX2dsb2JhbCh2b2lkICpkYXRhX3B0ciwgY29uc3QgY2hhciAqZm10LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqb3V0X2J1Ziwgc2l6ZV90IG91dF9idWZfc2l6ZSk7CgovLy8gU2V0cyB0aGUgY2FsbGJhY2sgdG8gYmUgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZSBkZWF0aCBvbiBlcnJvci4KLy8vCi8vLyBQYXNzaW5nIDAgd2lsbCB1bnNldCB0aGUgY2FsbGJhY2suCi8vLwovLy8gXHBhcmFtIGNhbGxiYWNrIFVzZXItcHJvdmlkZWQgY2FsbGJhY2suCnZvaWQgX19zYW5pdGl6ZXJfc2V0X2RlYXRoX2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykodm9pZCkpOwoKCi8vIEludGVyY2VwdG9yIGhvb2tzLgovLyBXaGVuZXZlciBhIGxpYmMgZnVuY3Rpb24gaW50ZXJjZXB0b3IgaXMgY2FsbGVkLCBpdCBjaGVja3MgaWYgdGhlCi8vIGNvcnJlc3BvbmRpbmcgd2VhayBob29rIGlzIGRlZmluZWQsIGFuZCBjYWxscyBpdCBpZiBpdCBpcyBpbmRlZWQgZGVmaW5lZC4KLy8gVGhlIHByaW1hcnkgdXNlLWNhc2UgaXMgZGF0YS1mbG93LWd1aWRlZCBmdXp6aW5nLCB3aGVyZSB0aGUgZnV6emVyIG5lZWRzCi8vIHRvIGtub3cgd2hhdCBpcyBiZWluZyBwYXNzZWQgdG8gbGliYyBmdW5jdGlvbnMgKGZvciBleGFtcGxlIG1lbWNtcCkuCi8vIEZJWE1FOiBpbXBsZW1lbnQgbW9yZSBob29rcy4KCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5tZW1jbXAoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIGNvbXBhcmUuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfbWVtY21wKHZvaWQgKmNhbGxlZF9wYywgY29uc3Qgdm9pZCAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICpzMiwgc2l6ZV90IG4sIGludCByZXN1bHQpOwoKLy8vIEludGVyY2VwdG9yIGhvb2sgZm9yIDxjPnN0cm5jbXAoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIG4gTnVtYmVyIG9mIGJ5dGVzIHRvIGNvbXBhcmUuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RybmNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIHNpemVfdCBuLCBpbnQgcmVzdWx0KTsKCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5zdHJuY2FzZWNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gbiBOdW1iZXIgb2YgYnl0ZXMgdG8gY29tcGFyZS4KLy8vIFxwYXJhbSByZXN1bHQgVmFsdWUgcmV0dXJuZWQgYnkgdGhlIGludGVyY2VwdGVkIGZ1bmN0aW9uLgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19zdHJuY2FzZWNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzMiwgc2l6ZV90IG4sIGludCByZXN1bHQpOwoKLy8vIEludGVyY2VwdG9yIGhvb2sgZm9yIDxjPnN0cmNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RyY21wKHZvaWQgKmNhbGxlZF9wYywgY29uc3QgY2hhciAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzMiwgaW50IHJlc3VsdCk7CgovLy8gSW50ZXJjZXB0b3IgaG9vayBmb3IgPGM+c3RyY2FzZWNtcCgpPC9jPi4KLy8vCi8vLyBccGFyYW0gY2FsbGVkX3BjIFBDIChwcm9ncmFtIGNvdW50ZXIpIGFkZHJlc3Mgb2YgdGhlIG9yaWdpbmFsIGNhbGwuCi8vLyBccGFyYW0gczEgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gczIgUG9pbnRlciB0byBibG9jayBvZiBtZW1vcnkuCi8vLyBccGFyYW0gcmVzdWx0IFZhbHVlIHJldHVybmVkIGJ5IHRoZSBpbnRlcmNlcHRlZCBmdW5jdGlvbi4Kdm9pZCBfX3Nhbml0aXplcl93ZWFrX2hvb2tfc3RyY2FzZWNtcCh2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMyLCBpbnQgcmVzdWx0KTsKCi8vLyBJbnRlcmNlcHRvciBob29rIGZvciA8Yz5zdHJzdHIoKTwvYz4uCi8vLwovLy8gXHBhcmFtIGNhbGxlZF9wYyBQQyAocHJvZ3JhbSBjb3VudGVyKSBhZGRyZXNzIG9mIHRoZSBvcmlnaW5hbCBjYWxsLgovLy8gXHBhcmFtIHMxIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHMyIFBvaW50ZXIgdG8gYmxvY2sgb2YgbWVtb3J5LgovLy8gXHBhcmFtIHJlc3VsdCBWYWx1ZSByZXR1cm5lZCBieSB0aGUgaW50ZXJjZXB0ZWQgZnVuY3Rpb24uCnZvaWQgX19zYW5pdGl6ZXJfd2Vha19ob29rX3N0cnN0cih2b2lkICpjYWxsZWRfcGMsIGNvbnN0IGNoYXIgKnMxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIGNoYXIgKnJlc3VsdCk7Cgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19zdHJjYXNlc3RyKHZvaWQgKmNhbGxlZF9wYywgY29uc3QgY2hhciAqczEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqczIsIGNoYXIgKnJlc3VsdCk7Cgp2b2lkIF9fc2FuaXRpemVyX3dlYWtfaG9va19tZW1tZW0odm9pZCAqY2FsbGVkX3BjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqczEsIHNpemVfdCBsZW4xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqczIsIHNpemVfdCBsZW4yLCB2b2lkICpyZXN1bHQpOwoKLy8gUHJpbnRzIHN0YWNrIHRyYWNlcyBmb3IgYWxsIGxpdmUgaGVhcCBhbGxvY2F0aW9ucyBvcmRlcmVkIGJ5IHRvdGFsCi8vIGFsbG9jYXRpb24gc2l6ZSB1bnRpbCB0b3BfcGVyY2VudCBvZiB0b3RhbCBsaXZlIGhlYXAgaXMgc2hvd24uIHRvcF9wZXJjZW50Ci8vIHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDEwMC4gQXQgbW9zdCBtYXhfbnVtYmVyX29mX2NvbnRleHRzIGNvbnRleHRzCi8vIChzdGFjayB0cmFjZXMpIGFyZSBwcmludGVkLgovLyBFeHBlcmltZW50YWwgZmVhdHVyZSBjdXJyZW50bHkgYXZhaWxhYmxlIG9ubHkgd2l0aCBBU2FuIG9uIExpbnV4L3g4Nl82NC4Kdm9pZCBfX3Nhbml0aXplcl9wcmludF9tZW1vcnlfcHJvZmlsZShzaXplX3QgdG9wX3BlcmNlbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG1heF9udW1iZXJfb2ZfY29udGV4dHMpOwoKLy8vIE5vdGlmeSBBU2FuIHRoYXQgYSBmaWJlciBzd2l0Y2ggaGFzIHN0YXJ0ZWQgKHJlcXVpcmVkIG9ubHkgaWYgaW1wbGVtZW50aW5nCi8vLyB5b3VyIG93biBmaWJlciBsaWJyYXJ5KS4KLy8vCi8vLyBCZWZvcmUgc3dpdGNoaW5nIHRvIGEgZGlmZmVyZW50IHN0YWNrLCB5b3UgbXVzdCBjYWxsCi8vLyA8Yz5fX3Nhbml0aXplcl9zdGFydF9zd2l0Y2hfZmliZXIoKTwvYz4gd2l0aCBhIHBvaW50ZXIgdG8gdGhlIGJvdHRvbSBvZiB0aGUKLy8vIGRlc3RpbmF0aW9uIHN0YWNrIGFuZCB3aXRoIGl0cyBzaXplLiBXaGVuIGNvZGUgc3RhcnRzIHJ1bm5pbmcgb24gdGhlIG5ldwovLy8gc3RhY2ssIGl0IG11c3QgY2FsbCA8Yz5fX3Nhbml0aXplcl9maW5pc2hfc3dpdGNoX2ZpYmVyKCk8L2M+IHRvIGZpbmFsaXplCi8vLyB0aGUgc3dpdGNoLiBUaGUgPGM+X19zYW5pdGl6ZXJfc3RhcnRfc3dpdGNoX2ZpYmVyKCk8L2M+IGZ1bmN0aW9uIHRha2VzIGEKLy8vIDxjPnZvaWQqKjwvYz4gcG9pbnRlciBhcmd1bWVudCB0byBzdG9yZSB0aGUgY3VycmVudCBmYWtlIHN0YWNrIGlmIHRoZXJlIGlzCi8vLyBvbmUgKGl0IGlzIG5lY2Vzc2FyeSB3aGVuIHRoZSBydW50aW1lIG9wdGlvbgovLy8gPGM+ZGV0ZWN0X3N0YWNrX3VzZV9hZnRlcl9yZXR1cm48L2M+IGlzIGVuYWJsZWQpLgovLy8KLy8vIFdoZW4gcmVzdG9yaW5nIGEgc3RhY2ssIHRoaXMgPGM+dm9pZCoqPC9jPiBwb2ludGVyIG11c3QgYmUgZ2l2ZW4gdG8gdGhlCi8vLyA8Yz5fX3Nhbml0aXplcl9maW5pc2hfc3dpdGNoX2ZpYmVyKCk8L2M+IGZ1bmN0aW9uLiBJbiBtb3N0IGNhc2VzLCB0aGlzCi8vLyBwb2ludGVyIGNhbiBiZSBzdG9yZWQgb24gdGhlIHN0YWNrIGltbWVkaWF0ZWx5IGJlZm9yZSBzd2l0Y2hpbmcuIFdoZW4KLy8vIGxlYXZpbmcgYSBmaWJlciBkZWZpbml0ZWx5LCBOVUxMIG11c3QgYmUgcGFzc2VkIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0bwovLy8gdGhlIDxjPl9fc2FuaXRpemVyX3N0YXJ0X3N3aXRjaF9maWJlcigpPC9jPiBmdW5jdGlvbiBzbyB0aGF0IHRoZSBmYWtlIHN0YWNrCi8vLyBpcyBkZXN0cm95ZWQuIElmIHlvdXIgcHJvZ3JhbSBkb2VzIG5vdCBuZWVkIHN0YWNrIHVzZS1hZnRlci1yZXR1cm4KLy8vIGRldGVjdGlvbiwgeW91IGNhbiBhbHdheXMgcGFzcyBOVUxMIHRvIHRoZXNlIHR3byBmdW5jdGlvbnMuCi8vLwovLy8gXG5vdGUgVGhlIGZha2Ugc3RhY2sgbWVjaGFuaXNtIGlzIGRpc2FibGVkIGR1cmluZyBmaWJlciBzd2l0Y2gsIHNvIGlmIGEKLy8vIHNpZ25hbCBjYWxsYmFjayBydW5zIGR1cmluZyB0aGUgc3dpdGNoLCBpdCB3aWxsIG5vdCBiZW5lZml0IGZyb20gc3RhY2sKLy8vIHVzZS1hZnRlci1yZXR1cm4gZGV0ZWN0aW9uLgovLy8KLy8vIFxwYXJhbVtvdXRdIGZha2Vfc3RhY2tfc2F2ZSBGYWtlIHN0YWNrIHNhdmUgbG9jYXRpb24uCi8vLyBccGFyYW0gYm90dG9tIEJvdHRvbSBhZGRyZXNzIG9mIHN0YWNrLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBvZiBzdGFjayBpbiBieXRlcy4Kdm9pZCBfX3Nhbml0aXplcl9zdGFydF9zd2l0Y2hfZmliZXIodm9pZCAqKmZha2Vfc3RhY2tfc2F2ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAqYm90dG9tLCBzaXplX3Qgc2l6ZSk7CgovLy8gTm90aWZ5IEFTYW4gdGhhdCBhIGZpYmVyIHN3aXRjaCBoYXMgY29tcGxldGVkIChyZXF1aXJlZCBvbmx5IGlmCi8vLyBpbXBsZW1lbnRpbmcgeW91ciBvd24gZmliZXIgbGlicmFyeSkuCi8vLwovLy8gV2hlbiBjb2RlIHN0YXJ0cyBydW5uaW5nIG9uIHRoZSBuZXcgc3RhY2ssIGl0IG11c3QgY2FsbAovLy8gPGM+X19zYW5pdGl6ZXJfZmluaXNoX3N3aXRjaF9maWJlcigpPC9jPiB0byBmaW5hbGl6ZQovLy8gdGhlIHN3aXRjaC4gRm9yIHVzYWdlIGRldGFpbHMsIHNlZSB0aGUgZGVzY3JpcHRpb24gb2YKLy8vIDxjPl9fc2FuaXRpemVyX3N0YXJ0X3N3aXRjaF9maWJlcigpPC9jPi4KLy8vCi8vLyBccGFyYW0gZmFrZV9zdGFja19zYXZlIEZha2Ugc3RhY2sgc2F2ZSBsb2NhdGlvbi4KLy8vIFxwYXJhbVtvdXRdIGJvdHRvbV9vbGQgQm90dG9tIGFkZHJlc3Mgb2Ygb2xkIHN0YWNrLgovLy8gXHBhcmFtW291dF0gc2l6ZV9vbGQgU2l6ZSBvZiBvbGQgc3RhY2sgaW4gYnl0ZXMuCnZvaWQgX19zYW5pdGl6ZXJfZmluaXNoX3N3aXRjaF9maWJlcih2b2lkICpmYWtlX3N0YWNrX3NhdmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2b2lkICoqYm90dG9tX29sZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqc2l6ZV9vbGQpOwoKLy8gR2V0IGZ1bGwgbW9kdWxlIG5hbWUgYW5kIGNhbGN1bGF0ZSBwYyBvZmZzZXQgd2l0aGluIGl0LgovLyBSZXR1cm5zIDEgaWYgcGMgYmVsb25ncyB0byBzb21lIG1vZHVsZSwgMCBpZiBtb2R1bGUgd2FzIG5vdCBmb3VuZC4KaW50IF9fc2FuaXRpemVyX2dldF9tb2R1bGVfYW5kX29mZnNldF9mb3JfcGModm9pZCAqcGMsIGNoYXIgKm1vZHVsZV9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbW9kdWxlX3BhdGhfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICoqcGNfb2Zmc2V0KTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfQ09NTU9OX0lOVEVSRkFDRV9ERUZTX0gKAE51bWJlciB0b28gYmlnIHRvIGJlIHN0b3JlZCBpbiBkb3VibGUuAGV4dGVybmFsL2t5dGhlL2t5dGhlL2N4eC9jb21tb24vanNvbl9wcm90by5jYwBJbnZhbGlkIHBhdGggcG9saWN5IHByb3ZpZGVkOiAAVW5hYmxlIHRvIHJlc29sdmUgACBmbGFnPSUjeABpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZQBiYWQgcmVwZXRpdGlvbiBvcGVyYXRvcgBbAE1hbGF5YWxhbQBNZQBNeWFubWFyAE9naGFtAFJlamFuZwBTYwBUYW1pbABWYWkAYXJlbmEgIT0gbnVsbHB0cgBlID09IGZvdW5kAHQAdW5zaWduZWQgX19pbnQxMjgAPj4AXHgAU2hhcmVkKAAgYW5kIGVuZF9wb3MgAE1heGltdW0gY2FwYWNpdHkgZXhjZWVkZWQAIwBMb2NrAE11dGV4IHF1ZXVlIGNoYW5nZWQgYmVuZWF0aCB1cwB0aHJlYWQgc2hvdWxkIGhvbGQgd3JpdGUgbG9jayBvbiBNdXRleCAlcCAlcwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL3ByaW1lLmMARkZESCBmYWlsZWQuCgBVSSByb3V0aW5lcwBITUFDIHJvdXRpbmVzAE1hcEtleTo6R2V0U3RyaW5nVmFsdWUAa3l0aGUucHJvdG8uY29tbW9uLkRpYWdub3N0aWMuZGV0YWlscwBreXRoZS5wcm90by5jb21tb24uRGlhZ25vc3RpYy5jb250ZXh0X3VybAAtcGllAEtZVEhFX0FOQUxZU0lTX1RBUkdFVABub3RfTVNNb2RlAC8qPT09LS0tLSBfX2NsYW5nX2hpcF9saWJkZXZpY2VfZGVjbGFyZXMuaCAtIEhJUCBkZXZpY2UgbGlicmFyeSBkZWNscyAtLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfSElQX0xJQkRFVklDRV9ERUNMQVJFU19IX18KI2RlZmluZSBfX0NMQU5HX0hJUF9MSUJERVZJQ0VfREVDTEFSRVNfSF9fCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKLy8gQkVHSU4gRkxPQVQKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9hY29zX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9hY29zaF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2FzaW5fZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2FzaW5oX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfYXRhbjJfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfYXRhbl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfYXRhbmhfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2NicnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9jZWlsX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9jb3B5c2lnbl9mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9jb3NfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfbmF0aXZlX2Nvc19mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9jb3NoX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2Nvc3BpX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2kwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2kxX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9lcmZjX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9lcmZjaW52X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9lcmZjeF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXJmX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9lcmZpbnZfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2V4cDEwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9uYXRpdmVfZXhwMTBfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2V4cDJfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2V4cF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbmF0aXZlX2V4cF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfZXhwbTFfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mYWJzX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZmRpbV9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbG9vcl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2ZtYV9mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZm1heF9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWluX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX19kZXZpY2VfXyBmbG9hdCBfX29jbWxfZm1vZF9mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2ZyZXhwX2YzMihmbG9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfaHlwb3RfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lsb2diX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzZmluaXRlX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzaW5mX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzbmFuX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2owX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX2oxX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbGRleHBfZjMyKGZsb2F0LCBpbnQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9sZ2FtbWFfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2xvZzEwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9uYXRpdmVfbG9nMTBfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2xvZzFwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9sb2cyX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9uYXRpdmVfbG9nMl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2xvZ2JfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX2xvZ19mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfbmF0aXZlX2xvZ19mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9tb2RmX2YzMihmbG9hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX25lYXJieWludF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX25leHRhZnRlcl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9sZW4zX2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9sZW40X2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX25jZGZfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX25jZGZpbnZfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX3Bvd19mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZmxvYXQgX19vY21sX3Bvd25fZjMyKGZsb2F0LCBpbnQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfcmNicnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9yZW1haW5kZXJfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX3JlbXF1b19mMzIoZmxvYXQsIGZsb2F0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfcmh5cG90X2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3JpbnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9ybGVuM19mMzIoZmxvYXQsIGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfcmxlbjRfZjMyKGZsb2F0LCBmbG9hdCwgZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9yb3VuZF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfcnNxcnRfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zY2FsYl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zY2FsYm5fZjMyKGZsb2F0LCBpbnQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9zaWduYml0X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX3NpbmNvc19mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9zaW5jb3NwaV9mMzIoZmxvYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgZmxvYXQgKik7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX3Npbl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF9uYXRpdmVfc2luX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGZsb2F0IF9fb2NtbF9zaW5oX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX3NpbnBpX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3FydF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX25hdGl2ZV9zcXJ0X2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gZmxvYXQgX19vY21sX3Rhbl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBmbG9hdCBfX29jbWxfdGFuaF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF90Z2FtbWFfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF90cnVuY19mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF95MF9mMzIoZmxvYXQpOwpfX2RldmljZV9fIGZsb2F0IF9fb2NtbF95MV9mMzIoZmxvYXQpOwoKLy8gQkVHSU4gSU5UUklOU0lDUwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2FkZF9ydGVfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfYWRkX3J0bl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9hZGRfcnRwX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2FkZF9ydHpfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3ViX3J0ZV9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zdWJfcnRuX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3N1Yl9ydHBfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3ViX3J0el9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9tdWxfcnRlX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX211bF9ydG5fZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfbXVsX3J0cF9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9tdWxfcnR6X2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2Rpdl9ydGVfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfZGl2X3J0bl9mMzIoZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9kaXZfcnRwX2YzMihmbG9hdCwgZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX2Rpdl9ydHpfZjMyKGZsb2F0LCBmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3FydF9ydGVfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9zcXJ0X3J0bl9mMzIoZmxvYXQpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY21sX3NxcnRfcnRwX2YzMihmbG9hdCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdCBfX29jbWxfc3FydF9ydHpfZjMyKGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWFfcnRlX2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWFfcnRuX2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWFfcnRwX2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0IF9fb2NtbF9mbWFfcnR6X2YzMihmbG9hdCwgZmxvYXQsIGZsb2F0KTsKCl9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQKX19sbHZtX2FtZGdjbl9jb3NfZjMyKGZsb2F0IF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fYW1kZ2NuX2Nvc2YoX194KTsKfQpfX2RldmljZV9fIGlubGluZSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGZsb2F0Cl9fbGx2bV9hbWRnY25fcmNwX2YzMihmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2FtZGdjbl9yY3BmKF9feCk7Cn0KX19kZXZpY2VfXyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoY29uc3QpKSBmbG9hdApfX2xsdm1fYW1kZ2NuX3JzcV9mMzIoZmxvYXQgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbWRnY25fcnNxZihfX3gpOwp9Cl9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQKX19sbHZtX2FtZGdjbl9zaW5fZjMyKGZsb2F0IF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fYW1kZ2NuX3NpbmYoX194KTsKfQovLyBFTkQgSU5UUklOU0lDUwovLyBFTkQgRkxPQVQKCi8vIEJFR0lOIERPVUJMRQpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hY29zX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2Fjb3NoX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hc2luX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2FzaW5oX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hdGFuMl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hdGFuX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2F0YW5oX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2NicnRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2NlaWxfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2NvcHlzaWduX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9jb3NfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfY29zaF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX2Nvc3BpX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfaTBfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9pMV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9lcmZjX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2VyZmNpbnZfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXJmY3hfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfZXJmX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2VyZmludl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9leHAxMF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9leHAyX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2V4cF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9leHBtMV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZmFic19mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZmRpbV9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9mbG9vcl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1hX2Y2NChkb3VibGUsIGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1heF9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9mbWluX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2Ztb2RfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX2ZyZXhwX2Y2NChkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGludCAqKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfaHlwb3RfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfaWxvZ2JfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX2lzZmluaXRlX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgaW50IF9fb2NtbF9pc2luZl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfaXNuYW5fZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9qMF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX2oxX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9sZGV4cF9mNjQoZG91YmxlLCBpbnQpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfbGdhbW1hX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2xvZzEwX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2xvZzFwX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX2xvZzJfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2xvZ2JfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfbG9nX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfbW9kZl9mNjQoZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbmVhcmJ5aW50X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9uZXh0YWZ0ZXJfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbGVuM19mNjQoZG91YmxlLCBkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2xlbjRfZjY0KGRvdWJsZSwgZG91YmxlLCBkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfbmNkZl9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9uY2RmaW52X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX3Bvd19mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX3Bvd25fZjY0KGRvdWJsZSwgaW50KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9yY2JydF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcmVtYWluZGVyX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9yZW1xdW9fZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9yaHlwb3RfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcmludF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcmxlbjNfZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfcmxlbjRfZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9yb3VuZF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgZG91YmxlIF9fb2NtbF9yc3FydF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc2NhbGJfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc2NhbGJuX2Y2NChkb3VibGUsIGludCk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBpbnQgX19vY21sX3NpZ25iaXRfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9zaW5jb3NfZjY0KGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKTsKX19kZXZpY2VfXyBkb3VibGUKX19vY21sX3NpbmNvc3BpX2Y2NChkb3VibGUsIF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBkb3VibGUgKik7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF9zaW5fZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIGRvdWJsZSBfX29jbWxfc2luaF9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBkb3VibGUgX19vY21sX3NpbnBpX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zcXJ0X2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfdGFuX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBkb3VibGUgX19vY21sX3RhbmhfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF90Z2FtbWFfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3RydW5jX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIGRvdWJsZSBfX29jbWxfeTBfZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gZG91YmxlIF9fb2NtbF95MV9mNjQoZG91YmxlKTsKCi8vIEJFR0lOIElOVFJJTlNJQ1MKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYWRkX3J0ZV9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9hZGRfcnRuX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2FkZF9ydHBfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfYWRkX3J0el9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zdWJfcnRlX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3N1Yl9ydG5fZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3ViX3J0cF9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zdWJfcnR6X2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX211bF9ydGVfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfbXVsX3J0bl9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9tdWxfcnRwX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX211bF9ydHpfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZGl2X3J0ZV9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9kaXZfcnRuX2Y2NChkb3VibGUsIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2Rpdl9ydHBfZjY0KGRvdWJsZSwgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZGl2X3J0el9mNjQoZG91YmxlLCBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zcXJ0X3J0ZV9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfc3FydF9ydG5fZjY0KGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX3NxcnRfcnRwX2Y2NChkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9zcXJ0X3J0el9mNjQoZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1hX3J0ZV9mNjQoZG91YmxlLCBkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBkb3VibGUgX19vY21sX2ZtYV9ydG5fZjY0KGRvdWJsZSwgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlIF9fb2NtbF9mbWFfcnRwX2Y2NChkb3VibGUsIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlKTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZSBfX29jbWxfZm1hX3J0el9mNjQoZG91YmxlLCBkb3VibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSk7CgpfX2RldmljZV9fIGlubGluZSBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGRvdWJsZQpfX2xsdm1fYW1kZ2NuX3JjcF9mNjQoZG91YmxlIF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fYW1kZ2NuX3JjcChfX3gpOwp9Cl9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZG91YmxlCl9fbGx2bV9hbWRnY25fcnNxX2Y2NChkb3VibGUgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9hbWRnY25fcnNxKF9feCk7Cn0KCl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfRmxvYXQxNiBfX29jbWxfY2VpbF9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9GbG9hdDE2IF9fb2NtbF9jb3NfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2V4cF9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfRmxvYXQxNiBfX29jbWxfZXhwMTBfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2V4cDJfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF9mbG9vcl9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX2ZtYV9mMTYoX0Zsb2F0MTYsIF9GbG9hdDE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX2ZhYnNfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfaXNpbmZfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIGludCBfX29jbWxfaXNuYW5fZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2xvZ19mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfRmxvYXQxNiBfX29jbWxfbG9nMTBfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX0Zsb2F0MTYgX19vY21sX2xvZzJfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fbGx2bV9hbWRnY25fcmNwX2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfRmxvYXQxNiBfX29jbWxfcmludF9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX3JzcXJ0X2YxNihfRmxvYXQxNik7Cl9fZGV2aWNlX18gX0Zsb2F0MTYgX19vY21sX3Npbl9mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX0Zsb2F0MTYgX19vY21sX3NxcnRfZjE2KF9GbG9hdDE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9GbG9hdDE2IF9fb2NtbF90cnVuY19mMTYoX0Zsb2F0MTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfRmxvYXQxNiBfX29jbWxfcG93bl9mMTYoX0Zsb2F0MTYsIGludCk7Cgp0eXBlZGVmIF9GbG9hdDE2IF9fMmYxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBzaG9ydCBfXzJpMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CgpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgZmxvYXQgX19vY2tsX2Zkb3QyKF9fMmYxNiBhLCBfXzJmMTYgYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBjLCBib29sIHMpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9jZWlsXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfZmFic18yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX18yZjE2IF9fb2NtbF9jb3NfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfXzJmMTYgX19vY21sX2V4cF8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygocHVyZSkpIF9fMmYxNiBfX29jbWxfZXhwMTBfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfXzJmMTYgX19vY21sX2V4cDJfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9mbG9vcl8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKQpfXzJmMTYgX19vY21sX2ZtYV8yZjE2KF9fMmYxNiwgX18yZjE2LCBfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yaTE2IF9fb2NtbF9pc2luZl8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfXzJpMTYgX19vY21sX2lzbmFuXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX18yZjE2IF9fb2NtbF9sb2dfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKHB1cmUpKSBfXzJmMTYgX19vY21sX2xvZzEwXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChwdXJlKSkgX18yZjE2IF9fb2NtbF9sb2cyXzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBpbmxpbmUgX18yZjE2Cl9fbGx2bV9hbWRnY25fcmNwXzJmMTYoX18yZjE2IF9feCkgLy8gTm90IGN1cnJlbnRseSBleHBvc2VkIGJ5IFJPQ0RMLgp7CiAgcmV0dXJuIChfXzJmMTYpKF9fbGx2bV9hbWRnY25fcmNwX2YxNihfX3gueCksIF9fbGx2bV9hbWRnY25fcmNwX2YxNihfX3gueSkpOwp9Cl9fZGV2aWNlX18gX19hdHRyaWJ1dGVfXygoY29uc3QpKSBfXzJmMTYgX19vY21sX3JpbnRfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9yc3FydF8yZjE2KF9fMmYxNik7Cl9fZGV2aWNlX18gX18yZjE2IF9fb2NtbF9zaW5fMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9zcXJ0XzJmMTYoX18yZjE2KTsKX19kZXZpY2VfXyBfX2F0dHJpYnV0ZV9fKChjb25zdCkpIF9fMmYxNiBfX29jbWxfdHJ1bmNfMmYxNihfXzJmMTYpOwpfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGNvbnN0KSkgX18yZjE2IF9fb2NtbF9wb3duXzJmMTYoX18yZjE2LCBfXzJpMTYpOwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAvLyBfX0NMQU5HX0hJUF9MSUJERVZJQ0VfREVDTEFSRVNfSF9fCgAvKj09PS0tLS0gX19jbGFuZ19oaXBfcnVudGltZV93cmFwcGVyLmggLSBISVAgcnVudGltZSBzdXBwb3J0IC0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyoKICogV0FSTklORzogVGhpcyBoZWFkZXIgaXMgaW50ZW5kZWQgdG8gYmUgZGlyZWN0bHkgLWluY2x1ZGUnZCBieQogKiB0aGUgY29tcGlsZXIgYW5kIGlzIG5vdCBzdXBwb3NlZCB0byBiZSBpbmNsdWRlZCBieSB1c2Vycy4KICoKICovCgojaWZuZGVmIF9fQ0xBTkdfSElQX1JVTlRJTUVfV1JBUFBFUl9IX18KI2RlZmluZSBfX0NMQU5HX0hJUF9SVU5USU1FX1dSQVBQRVJfSF9fCgojaWYgX19ISVBfXwoKI2RlZmluZSBfX2hvc3RfXyBfX2F0dHJpYnV0ZV9fKChob3N0KSkKI2RlZmluZSBfX2RldmljZV9fIF9fYXR0cmlidXRlX18oKGRldmljZSkpCiNkZWZpbmUgX19nbG9iYWxfXyBfX2F0dHJpYnV0ZV9fKChnbG9iYWwpKQojZGVmaW5lIF9fc2hhcmVkX18gX19hdHRyaWJ1dGVfXygoc2hhcmVkKSkKI2RlZmluZSBfX2NvbnN0YW50X18gX19hdHRyaWJ1dGVfXygoY29uc3RhbnQpKQojZGVmaW5lIF9fbWFuYWdlZF9fIF9fYXR0cmlidXRlX18oKG1hbmFnZWQpKQoKI2lmICFkZWZpbmVkKF9fY3BsdXNwbHVzKSB8fCBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKICAjZGVmaW5lIG51bGxwdHIgTlVMTDsKI2VuZGlmCgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiAgX19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImRlZmF1bHQiKSkpCiAgX19hdHRyaWJ1dGVfXygod2VhaykpCiAgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQogIF9fZGV2aWNlX18gdm9pZCBfX2N4YV9wdXJlX3ZpcnR1YWwodm9pZCkgewogICAgX19idWlsdGluX3RyYXAoKTsKICB9CiAgX19hdHRyaWJ1dGVfXygoX192aXNpYmlsaXR5X18oImRlZmF1bHQiKSkpCiAgX19hdHRyaWJ1dGVfXygod2VhaykpCiAgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQogIF9fZGV2aWNlX18gdm9pZCBfX2N4YV9kZWxldGVkX3ZpcnR1YWwodm9pZCkgewogICAgX19idWlsdGluX3RyYXAoKTsKICB9Cn0KI2VuZGlmIC8vX19jcGx1c3BsdXMKCiNpZiAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8c3RkbGliLmg+CiNlbHNlCnR5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7Ci8vIERlZmluZSBtYWNyb3Mgd2hpY2ggYXJlIG5lZWRlZCB0byBkZWNsYXJlIEhJUCBkZXZpY2UgQVBJJ3Mgd2l0aG91dCBzdGFuZGFyZAovLyBDL0MrKyBoZWFkZXJzLiBUaGlzIGlzIGZvciByZWFkYWJpbGl0eSBzbyB0aGF0IHRoZXNlIEFQSSdzIGNhbiBiZSB3cml0dGVuCi8vIHRoZSBzYW1lIHdheSBhcyBub24taGlwUlRDIHVzZSBjYXNlLiBUaGVzZSBtYWNyb3MgbmVlZCB0byBiZSBwb3BwZWQgc28gdGhhdAovLyB0aGV5IGRvIG5vdCBwb2xsdXRlIHVzZXJzJyBuYW1lIHNwYWNlLgojcHJhZ21hIHB1c2hfbWFjcm8oIk5VTEwiKQojcHJhZ21hIHB1c2hfbWFjcm8oInVpbnQzMl90IikKI3ByYWdtYSBwdXNoX21hY3JvKCJ1aW50NjRfdCIpCiNwcmFnbWEgcHVzaF9tYWNybygiQ0hBUl9CSVQiKQojcHJhZ21hIHB1c2hfbWFjcm8oIklOVF9NQVgiKQojZGVmaW5lIE5VTEwgKHZvaWQgKikwCiNkZWZpbmUgdWludDMyX3QgX19VSU5UMzJfVFlQRV9fCiNkZWZpbmUgdWludDY0X3QgX19VSU5UNjRfVFlQRV9fCiNkZWZpbmUgQ0hBUl9CSVQgX19DSEFSX0JJVF9fCiNkZWZpbmUgSU5UX01BWCBfX0lOVE1BWF9NQVhfXwojZW5kaWYgLy8gX19ISVBDQ19SVENfXwoKdHlwZWRlZiBfX1NJWkVfVFlQRV9fIF9faGlwX3NpemVfdDsKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmIC8vX19jcGx1c3BsdXMKCiNpZiBfX0hJUF9FTkFCTEVfREVWSUNFX01BTExPQ19fCl9fZGV2aWNlX18gdm9pZCAqX19oaXBfbWFsbG9jKF9faGlwX3NpemVfdCBfX3NpemUpOwpfX2RldmljZV9fIHZvaWQgKl9faGlwX2ZyZWUodm9pZCAqX19wdHIpOwpfX2F0dHJpYnV0ZV9fKCh3ZWFrKSkgaW5saW5lIF9fZGV2aWNlX18gdm9pZCAqbWFsbG9jKF9faGlwX3NpemVfdCBfX3NpemUpIHsKICByZXR1cm4gX19oaXBfbWFsbG9jKF9fc2l6ZSk7Cn0KX19hdHRyaWJ1dGVfXygod2VhaykpIGlubGluZSBfX2RldmljZV9fIHZvaWQgKmZyZWUodm9pZCAqX19wdHIpIHsKICByZXR1cm4gX19oaXBfZnJlZShfX3B0cik7Cn0KI2Vsc2UKX19hdHRyaWJ1dGVfXygod2VhaykpIGlubGluZSBfX2RldmljZV9fIHZvaWQgKm1hbGxvYyhfX2hpcF9zaXplX3QgX19zaXplKSB7CiAgX19idWlsdGluX3RyYXAoKTsKICByZXR1cm4gKHZvaWQgKikwOwp9Cl9fYXR0cmlidXRlX18oKHdlYWspKSBpbmxpbmUgX19kZXZpY2VfXyB2b2lkICpmcmVlKHZvaWQgKl9fcHRyKSB7CiAgX19idWlsdGluX3RyYXAoKTsKICByZXR1cm4gKHZvaWQgKikwOwp9CiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYgLy9fX2NwbHVzcGx1cwoKI2luY2x1ZGUgPF9fY2xhbmdfaGlwX2xpYmRldmljZV9kZWNsYXJlcy5oPgojaW5jbHVkZSA8X19jbGFuZ19oaXBfbWF0aC5oPgoKI2lmIGRlZmluZWQoX19ISVBDQ19SVENfXykKI2luY2x1ZGUgPF9fY2xhbmdfaGlwX2NtYXRoLmg+CiNlbHNlCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfbWF0aF9mb3J3YXJkX2RlY2xhcmVzLmg+CiNpbmNsdWRlIDxfX2NsYW5nX2hpcF9jbWF0aC5oPgojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2NvbXBsZXhfYnVpbHRpbnMuaD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGNvbXBsZXg+CiNpbmNsdWRlIDxuZXc+CiNlbmRpZiAvLyBfX0hJUENDX1JUQ19fCgojZGVmaW5lIF9fQ0xBTkdfSElQX1JVTlRJTUVfV1JBUFBFUl9JTkNMVURFRF9fIDEKI2lmIGRlZmluZWQoX19ISVBDQ19SVENfXykKI3ByYWdtYSBwb3BfbWFjcm8oIk5VTEwiKQojcHJhZ21hIHBvcF9tYWNybygidWludDMyX3QiKQojcHJhZ21hIHBvcF9tYWNybygidWludDY0X3QiKQojcHJhZ21hIHBvcF9tYWNybygiQ0hBUl9CSVQiKQojcHJhZ21hIHBvcF9tYWNybygiSU5UX01BWCIpCiNlbmRpZiAvLyBfX0hJUENDX1JUQ19fCiNlbmRpZiAvLyBfX0hJUF9fCiNlbmRpZiAvLyBfX0NMQU5HX0hJUF9SVU5USU1FX1dSQVBQRVJfSF9fCgAvKj09PS0tLS0gYXJtX2ZwMTYuaCAtIEFSTSBGUDE2IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4KICogVEhFIFNPRlRXQVJFLgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FSTV9GUDE2X0gKI2RlZmluZSBfX0FSTV9GUDE2X0gKCiNpbmNsdWRlIDxzdGRpbnQuaD4KCnR5cGVkZWYgX19mcDE2IGZsb2F0MTZfdDsKI2RlZmluZSBfX2FpIHN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZQMTZfU0NBTEFSX0FSSVRITUVUSUMpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNkZWZpbmUgdmFiZGhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmFiZGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2YWJzaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWJzaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZhZGRoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNhZ2VoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2FnZWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2FndGhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWd0aF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjYWxlaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNhbGVoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNhbHRoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2FsdGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2VxaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNlcWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2VxemhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjZ2VoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2dlaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjZ2V6aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNnZXpoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNndGhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3RoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNndHpoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0emhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2xlaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNsZWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y2xlemhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjbHRoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2x0aF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjbHR6aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmNsdHpoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9zMTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX3MxNl9mMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fczMyX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9zMzJfZjE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX3M2NF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fczY0X2YxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl91MTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fdTE2X2YxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl91MzJfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fdTMyX2YxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl91NjRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fdTY0X2YxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfczE2X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfczE2X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfczMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGhfczMyX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfczY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGhfczY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfdTE2X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF91MTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF91MzJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX3UzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX3U2NF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGhfdTY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGFoX3MxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhaF9zMTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0YWhfczMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGFoX3MzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRhaF9zNjRfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YWhfczY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGFoX3UxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dGFoX3UxNl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRhaF91MzJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhaF91MzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0YWhfdTY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YWhfdTY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfZjE2X3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfZjE2X3UxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfZjE2X3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9mMTZfczE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9mMTZfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9mMTZfdTMyKF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9mMTZfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX2YxNl9zMzIoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX2YxNl91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX2YxNl91NjQoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX2YxNl9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfZjE2X3M2NChfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9mMTZfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX2YxNl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fZjE2X3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9uX2YxNl9zMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRoX25fZjE2X3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9mMTZfdTY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX2YxNl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmN2dGhfbl9mMTZfczY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0aF9uX2YxNl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fZjE2X3UxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGhfbl9mMTZfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRoX25fZjE2X3MxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG1oX3MxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtaF9zMTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bWhfczMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG1oX3MzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRtaF9zNjRfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bWhfczY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG1oX3UxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dG1oX3UxNl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRtaF91MzJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtaF91MzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bWhfdTY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bWhfdTY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG5oX3MxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuaF9zMTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bmhfczMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG5oX3MzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRuaF9zNjRfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bmhfczY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dG5oX3UxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dG5oX3UxNl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRuaF91MzJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuaF91MzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0bmhfdTY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bmhfdTY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHBoX3MxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwaF9zMTZfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0cGhfczMyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHBoX3MzMl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRwaF9zNjRfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cGhfczY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHBoX3UxNl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmN2dHBoX3UxNl9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRwaF91MzJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwaF91MzJfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0cGhfdTY0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cGhfdTY0X2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmRpdmhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmRpdmhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Zm1haF9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1haF9mMTYoX19zMCwgX19zMSwgX19zMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZmbXNoX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbXNoX2YxNihfX3MwLCBfX3MxLCBfX3MyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdm1heGhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heGhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bWF4bm1oX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubWhfZjE2KF9fczAsIF9fczEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bWluaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWluaF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZtaW5ubWhfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbm5taF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZtdWxoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdm11bHhoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4aF9mMTYoX19zMCwgX19zMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZuZWdoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZuZWdoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJlY3BlaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJlY3BzaF9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHNoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJlY3B4aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHhoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJuZGhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJuZGhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cm5kYWhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJuZGFoX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJuZGloX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZybmRtaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cm5kbWhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cm5kbmhfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdnJuZG5oX2YxNihfX3MwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJuZHBoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZybmR4aF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cm5keGhfZjE2KF9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cnNxcnRlaF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlaF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyc3FydHNoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNxcnRoX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0aF9mMTYoX19zMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzdWJoX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJoX2YxNihfX3MwLCBfX3MxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI3VuZGVmIF9fYWkKCiNlbmRpZiAvKiBfX0FSTV9GUDE2X0ggKi8KAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJpZm1hdmxpbnRyaW4uaCAtIElGTUEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJpZm1hdmxpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fSUZNQVZMSU5UUklOX0gKI2RlZmluZSBfX0lGTUFWTElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyaWZtYSxhdng1MTJ2bCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJpZm1hLGF2eDUxMnZsIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFkZDUyaGlfZXB1NjQgKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSwgX19tMTI4aSBfX1opCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWRkNTJodXExMjgoKF9fdjJkaSkgX19YLCAoX192MmRpKSBfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21hZGQ1MmhpX2VwdTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21hZGQ1MmhpX2VwdTY0KF9fVywgX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21hZGQ1MmhpX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSwgX19tMTI4aSBfX1opCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX21hZGQ1MmhpX2VwdTY0KF9fWCwgX19ZLCBfX1opLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYWRkNTJoaV9lcHU2NCAoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZLCBfX20yNTZpIF9fWikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cG1hZGQ1Mmh1cTI1NigoX192NGRpKV9fWCwgKF9fdjRkaSlfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19aKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWFkZDUyaGlfZXB1NjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWFkZDUyaGlfZXB1NjQoX19XLCBfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWFkZDUyaGlfZXB1NjQgKF9fbW1hc2s4IF9fTSwgX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZLCBfX20yNTZpIF9fWikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbWFkZDUyaGlfZXB1NjQoX19YLCBfX1ksIF9fWiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hZGQ1MmxvX2VwdTY0IChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1ksIF9fbTEyOGkgX19aKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkZDUybHVxMTI4KChfX3YyZGkpX19YLCAoX192MmRpKV9fWSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYWRkNTJsb19lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYWRkNTJsb19lcHU2NChfX1csIF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYWRkNTJsb19lcHU2NCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1ksIF9fbTEyOGkgX19aKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9tYWRkNTJsb19lcHU2NChfX1gsIF9fWSwgX19aKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFkZDUybG9fZXB1NjQgKF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSwgX19tMjU2aSBfX1opCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBtYWRkNTJsdXEyNTYoKF9fdjRkaSlfX1gsIChfX3Y0ZGkpX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21hZGQ1MmxvX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19NLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21hZGQ1MmxvX2VwdTY0KF9fVywgX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21hZGQ1MmxvX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSwgX19tMjU2aSBfX1opCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X21hZGQ1MmxvX2VwdTY0KF9fWCwgX19ZLCBfX1opLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZgoAYXZ4NTEydmxiaXRhbGdpbnRyaW4uaAAvKj09PS0tLS0tLS0tLS0gYXZ4NTEydmxmcDE2aW50cmluLmggLSBBVlg1MTItRlAxNiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIk5ldmVyIHVzZSA8YXZ4NTEydmxmcDE2aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZMRlAxNklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTEZQMTZJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIF9fdGFyZ2V0X18oImF2eDUxMmZwMTYsIGF2eDUxMnZsIiksICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIF9fdGFyZ2V0X18oImF2eDUxMmZwMTYsIGF2eDUxMnZsIiksICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzaF9oKF9fbTEyOGggX19hKSB7CiAgcmV0dXJuIF9fYVswXTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jdnRzaF9oKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIF9fYVswXTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NldF9zaChfRmxvYXQxNiBfX2gpIHsKICByZXR1cm4gX19leHRlbnNpb25fXyhfX20xMjhoKXtfX2gsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NldDFfcGgoX0Zsb2F0MTYgX19oKSB7CiAgcmV0dXJuIChfX20xMjhoKShfX3Y4aGYpe19faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19ofTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9zZXQxX3BoKF9GbG9hdDE2IF9faCkgewogIHJldHVybiAoX19tMjU2aCkoX192MTZoZil7X19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2V0X3BoKF9GbG9hdDE2IF9faDEsIF9GbG9hdDE2IF9faDIsIF9GbG9hdDE2IF9faDMsIF9GbG9hdDE2IF9faDQsCiAgICAgICAgICAgX0Zsb2F0MTYgX19oNSwgX0Zsb2F0MTYgX19oNiwgX0Zsb2F0MTYgX19oNywgX0Zsb2F0MTYgX19oOCkgewogIHJldHVybiAoX19tMTI4aCkoX192OGhmKXtfX2g4LCBfX2g3LCBfX2g2LCBfX2g1LCBfX2g0LCBfX2gzLCBfX2gyLCBfX2gxfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zZXRfcGgoX0Zsb2F0MTYgX19oMSwgX0Zsb2F0MTYgX19oMiwgX0Zsb2F0MTYgX19oMywgX0Zsb2F0MTYgX19oNCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2g1LCBfRmxvYXQxNiBfX2g2LCBfRmxvYXQxNiBfX2g3LCBfRmxvYXQxNiBfX2g4LAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDksIF9GbG9hdDE2IF9faDEwLCBfRmxvYXQxNiBfX2gxMSwgX0Zsb2F0MTYgX19oMTIsCiAgICAgICAgICAgICAgX0Zsb2F0MTYgX19oMTMsIF9GbG9hdDE2IF9faDE0LCBfRmxvYXQxNiBfX2gxNSwgX0Zsb2F0MTYgX19oMTYpIHsKICByZXR1cm4gKF9fbTI1NmgpKF9fdjE2aGYpe19faDE2LCBfX2gxNSwgX19oMTQsIF9faDEzLCBfX2gxMiwgX19oMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gxMCwgX19oOSwgIF9faDgsICBfX2g3LCAgX19oNiwgIF9faDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2g0LCAgX19oMywgIF9faDIsICBfX2gxfTsKfQoKI2RlZmluZSBfbW1fc2V0cl9waChoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBoNywgaDgpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfbW1fc2V0X3BoKChoOCksIChoNyksIChoNiksIChoNSksIChoNCksIChoMyksIChoMiksIChoMSkpCgojZGVmaW5lIF9tbTI1Nl9zZXRyX3BoKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3LCBoOCwgaDksIGgxMCwgaDExLCBoMTIsIGgxMywgXAogICAgICAgICAgICAgICAgICAgICAgIGgxNCwgaDE1LCBoMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9tbTI1Nl9zZXRfcGgoKGgxNiksIChoMTUpLCAoaDE0KSwgKGgxMyksIChoMTIpLCAoaDExKSwgKGgxMCksIChoOSksIChoOCksICAgXAogICAgICAgICAgICAgICAgKGg3KSwgKGg2KSwgKGg1KSwgKGg0KSwgKGgzKSwgKGgyKSwgKGgxKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9hZGRfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpKChfX3YxNmhmKV9fQSArIChfX3YxNmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfYWRkX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICBfX1UsIChfX3YxNmhmKV9tbTI1Nl9hZGRfcGgoX19BLCBfX0IpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2FkZF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aCkoKF9fdjhoZilfX0EgKyAoX192OGhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2FkZF9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fYWRkX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X2FkZF9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fYWRkX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9zdWJfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpKChfX3YxNmhmKV9fQSAtIChfX3YxNmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N1Yl9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfc3ViX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1Yl9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICBfX1UsIChfX3YxNmhmKV9tbTI1Nl9zdWJfcGgoX19BLCBfX0IpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3N1Yl9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aCkoKF9fdjhoZilfX0EgLSAoX192OGhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX3N1Yl9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fc3ViX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X3N1Yl9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fc3ViX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9tdWxfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpKChfX3YxNmhmKV9fQSAqIChfX3YxNmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX211bF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfbXVsX3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICBfX1UsIChfX3YxNmhmKV9tbTI1Nl9tdWxfcGgoX19BLCBfX0IpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX211bF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aCkoKF9fdjhoZilfX0EgKiAoX192OGhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX211bF9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fbXVsX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X211bF9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fbXVsX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9kaXZfcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpKChfX3YxNmhmKV9fQSAvIChfX3YxNmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Rpdl9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgX19VLCAoX192MTZoZilfbW0yNTZfZGl2X3BoKF9fQSwgX19CKSwgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Rpdl9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICBfX1UsIChfX3YxNmhmKV9tbTI1Nl9kaXZfcGgoX19BLCBfX0IpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Rpdl9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aCkoKF9fdjhoZilfX0EgLyAoX192OGhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2Rpdl9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fZGl2X3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X2Rpdl9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KF9fVSwgKF9fdjhoZilfbW1fZGl2X3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9taW5fcGgoX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfbWlucGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICAoX192MTZoZilfX2J1aWx0aW5faWEzMl9taW5waDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiksCiAgICAgIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIChfX3YxNmhmKV9fYnVpbHRpbl9pYTMyX21pbnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9taW5fcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWlucGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfbWluX3BoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX19idWlsdGluX2lhMzJfbWlucGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKSwKICAgICAgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfbWluX3BoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX19idWlsdGluX2lhMzJfbWlucGgxMjgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X21heF9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9tYXhwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIChfX3YxNmhmKV9fYnVpbHRpbl9pYTMyX21heHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CKSwKICAgICAgKF9fdjE2aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgKF9fdjE2aGYpX19idWlsdGluX2lhMzJfbWF4cGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IpLAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21heF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tYXhwaDEyOCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19tYXhfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfX2J1aWx0aW5faWEzMl9tYXhwaDEyOCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IpLAogICAgICAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9tYXhfcGgoX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfX2J1aWx0aW5faWEzMl9tYXhwaDEyOCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfYWJzX3BoKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9tbTI1Nl9hbmRfZXBpMzIoX21tMjU2X3NldDFfZXBpMzIoMHg3RkZGN0ZGRiksIChfX20yNTZpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9hYnNfcGgoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX21tX2FuZF9lcGkzMihfbW1fc2V0MV9lcGkzMigweDdGRkY3RkZGKSwgKF9fbTEyOGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X2NvbmpfcGNoKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9tbTI1Nl94b3JfcHMoKF9fbTI1NilfX0EsIF9tbTI1Nl9zZXQxX3BzKC0wLjBmKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbmpfcGNoKF9fbTI1NmggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhzZilfbW0yNTZfY29ual9wY2goX19BKSwgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29ual9wY2goX19tbWFzazggX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4c2YpX21tMjU2X2NvbmpfcGNoKF9fQSksIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jb25qX3BjaChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfbW1feG9yX3BzKChfX20xMjgpX19BLCBfbW1fc2V0MV9wcygtMC4wZikpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19jb25qX3BjaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y0c2YpX21tX2NvbmpfcGNoKF9fQSksIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbmpfcGNoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192NHNmKV9tbV9jb25qX3BjaChfX0EpLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbTI1Nl9jbXBfcGhfbWFzayhhLCBiLCBwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2NtcHBoMjU2X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoYSksIChfX3YxNmhmKShfX20yNTZoKShiKSwgKGludCkocCksIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfcGhfbWFzayhtLCBhLCBiLCBwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBwaDI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKF9fbTI1NmgpKGEpLCAoX192MTZoZikoX19tMjU2aCkoYiksIChpbnQpKHApLCAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfcGhfbWFzayhhLCBiLCBwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGgxMjhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShhKSwgKF9fdjhoZikoX19tMTI4aCkoYiksIChpbnQpKHApLCAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfcGhfbWFzayhtLCBhLCBiLCBwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBoMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoYSksIChfX3Y4aGYpKF9fbTEyOGgpKGIpLCAoaW50KShwKSwgKF9fbW1hc2s4KShtKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfcmNwX3BoKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JjcHBoMjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazE2KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcmNwX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9yY3BwaDI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3JjcF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9yY3BwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3JjcF9waChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yY3BwaDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX3JjcF9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JjcHBoMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfcmNwX3BoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yY3BwaDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3JzcXJ0X3BoKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfbW0yNTZfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMTYpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19yc3FydF9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcnNxcnRwaDI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcnNxcnRfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcnNxcnRwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3JzcXJ0X3BoKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19yc3FydF9waChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yc3FydHBoMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydF9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9nZXRleHBfcGgoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZ2V0ZXhwX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZ2V0ZXhwX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9nZXRleHBfcGgoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGgyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZ2V0ZXhwX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2dldGV4cF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VKTsKfQoKI2RlZmluZSBfbW1fZ2V0bWFudF9waChBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIFwKICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZ2V0bWFudF9waChXLCBVLCBBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICBcCiAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9waChVLCBBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIFwKICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9nZXRtYW50X3BoKEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGgyNTZfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfZ2V0bWFudF9waChXLCBVLCBBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShfX20yNTZoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksIChfX3YxNmhmKShfX20yNTZoKShXKSwgICBcCiAgICAgIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2dldG1hbnRfcGgoVSwgQSwgQiwgQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShfX20yNTZoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpKFUpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zY2FsZWZfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmcGgxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NjYWxlZl9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmcGgxMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2NhbGVmX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3NjYWxlZl9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NjYWxlZl9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoMjU2X21hc2soKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX19XLCAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zY2FsZWZfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoMjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSk7Cn0KCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfcGgoQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfcGgoVywgVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoXzEyOF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9waChVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF8xMjhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKGltbSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9yb3VuZHNjYWxlX3BoKEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoXzI1Nl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKGltbSksIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksICAgICAgICAgXAogICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcm91bmRzY2FsZV9waChXLCBVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfMjU2X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShfX20yNTZoKShBKSwgKGludCkoaW1tKSwgKF9fdjE2aGYpKF9fbTI1NmgpKFcpLCAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JvdW5kc2NhbGVfcGgoVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfMjU2X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShfX20yNTZoKShBKSwgKGludCkoaW1tKSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgICAgICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9waChBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoMTI4X21hc2soKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKGltbSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3BoKFcsIFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoMTI4X21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAoX192OGhmKShfX20xMjhoKShXKSwgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2VfcGgoVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDEyOF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoaW50KShpbW0pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcmVkdWNlX3BoKEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGgyNTZfbWFzaygoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcmVkdWNlX3BoKFcsIFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoMjU2X21hc2soKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpKF9fbTI1NmgpKFcpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfcmVkdWNlX3BoKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGgyNTZfbWFzaygoX192MTZoZikoX19tMjU2aCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fc3FydF9waChfX20xMjhoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zcXJ0cGgoKF9fdjhoZilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19zcXJ0X3BoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tX3NxcnRfcGgoX19BKSwgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfc3FydF9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW1fc3FydF9waChfX0EpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3NxcnRfcGgoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc3FydHBoMjU2KChfX3YxNmhmKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NxcnRfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsIChfX3YxNmhmKV9tbTI1Nl9zcXJ0X3BoKF9fQSksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcXJ0X3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9tbTI1Nl9zcXJ0X3BoKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKI2RlZmluZSBfbW1fbWFza19mcGNsYXNzX3BoX21hc2soVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwaDEyOF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fZnBjbGFzc19waF9tYXNrKEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwaDEyOF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2ZwY2xhc3NfcGhfbWFzayhVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwaDI1Nl9tYXNrKChfX3YxNmhmKShfX20yNTZoKShBKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2ZwY2xhc3NfcGhfbWFzayhBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfZnBjbGFzc3BoMjU2X21hc2soKF9fdjE2aGYpKF9fbTI1NmgpKEEpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2sxNiktMSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGRfcGgoX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMTI4X21hc2soCiAgICAgIChfX3YyZGYpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0cGRfcGgoX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMTI4X21hc2soKF9fdjJkZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBkX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMTI4X21hc2soCiAgICAgIChfX3YyZGYpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY3Z0cGRfcGgoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZGYpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGRfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMjU2X21hc2soKF9fdjRkZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBkX3BoKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBkMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZGYpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfcGQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRmKV9tbV91bmRlZmluZWRfcGQoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0cGhfcGQoX19tMTI4ZCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY3Z0cGhfcGQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGRmKV9tbTI1Nl91bmRlZmluZWRfcGQoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGhfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y0ZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX3BkKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfZXBpMTYoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMncxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwaF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMncxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwaF9lcGkxNihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzI1Nl9tYXNrKChfX3YxNmhmKV9fQSwgKF9fdjE2aGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3MjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHBoX2VwaTE2KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwaF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMncxMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBoX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3MTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBoX2VwaTE2KF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmhpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwaF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3MjU2X21hc2soKF9fdjE2aGYpX19BLCAoX192MTZoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwaF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMncyNTZfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRlcGkxNl9waChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhoaSlfX0EsIF9fdjhoZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTE2X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW1fY3Z0ZXBpMTZfcGgoX19BKSwgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMTZfcGgoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tX2N2dGVwaTE2X3BoKF9fQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGkxNl9waChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2aGkpX19BLCBfX3YxNmhmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpMTZfcGgoX19tMjU2aCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsIChfX3YxNmhmKV9tbTI1Nl9jdnRlcGkxNl9waChfX0EpLCAoX192MTZoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMTZfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X2N2dGVwaTE2X3BoKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHBoX2VwdTE2KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhodSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBoX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGh1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRwaF9lcHUxNihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhodSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX2VwdTE2KF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmh1KV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2sxNiktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXcyNTZfbWFzaygoX192MTZoZilfX0EsIChfX3YxNmh1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGhfZXB1MTYoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3MjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aHUpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2sxNilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHBoX2VwdTE2KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXcxMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aHUpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGhfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGh1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBoX2VwdTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhodSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwaF9lcHUxNihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnV3MjU2X21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2aHUpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazE2KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBoX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnV3MjU2X21hc2soKF9fdjE2aGYpX19BLCAoX192MTZodSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXB1MTYoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzI1Nl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNmh1KV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrMTYpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dGVwdTE2X3BoKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGh1KV9fQSwgX192OGhmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXB1MTZfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbV9jdnRlcHUxNl9waChfX0EpLCAoX192OGhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHUxNl9waChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW1fY3Z0ZXB1MTZfcGgoX19BKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTE2X3BoKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MTZodSlfX0EsIF9fdjE2aGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHUxNl9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwgKF9fdjE2aGYpX21tMjU2X2N2dGVwdTE2X3BoKF9fQSksIChfX3YxNmhmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHUxNl9waChfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfY3Z0ZXB1MTZfcGgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfZXBpMzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGhfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y0c2kpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGhfZXBpMzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGhfZXBpMzIoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y4c2kpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfZXB1MzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzdSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBoX2VwdTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHExMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjRzdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX2VwdTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzdSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX2VwdTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4c3UpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwaF9lcHUzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y4c3UpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwaF9lcHUzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4c3UpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRlcGkzMl9waChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGgxMjhfbWFzaygKICAgICAgKF9fdjRzaSlfX0EsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkzMl9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGgxMjhfbWFzaygoX192NHNpKV9fQSwgKF9fdjhoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXBpMzJfcGgoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGgxMjhfbWFzaygKICAgICAgKF9fdjRzaSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGkzMl9waChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzaSlfX0EsIF9fdjhoZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTMyX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfbW0yNTZfY3Z0ZXBpMzJfcGgoX19BKSwgKF9fdjhoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpMzJfcGgoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tMjU2X2N2dGVwaTMyX3BoKF9fQSksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRlcHUzMl9waChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dWRxMnBoMTI4X21hc2soCiAgICAgIChfX3Y0c3UpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXB1MzJfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDEyOF9tYXNrKChfX3Y0c3UpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1MzJfcGgoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dWRxMnBoMTI4X21hc2soCiAgICAgIChfX3Y0c3UpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1MzJfcGgoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c3UpX19BLCBfX3Y4aGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHUzMl9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4aGYpX21tMjU2X2N2dGVwdTMyX3BoKF9fQSksIChfX3Y4aGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwdTMyX3BoKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192OGhmKV9tbTI1Nl9jdnRlcHUzMl9waChfX0EpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHBoX2VwaTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c2kpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGhfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192NHNpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBoX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwaF9lcGkzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMmRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBoX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHEyNTZfbWFzaygoX192OGhmKV9fQSwgKF9fdjhzaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwaF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnR0cGhfZXB1MzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0c3UpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cGhfZXB1MzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHExMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjRzdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cGhfZXB1MzIoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzdSlfbW1fc2V0emVyb19zaTEyOCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwaF9lcHUzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhzdSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwaF9lcHUzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTI1Nl9tYXNrKChfX3Y4aGYpX19BLCAoX192OHN1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwaF9lcHUzMihfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydWRxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHN1KV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0ZXBpNjRfcGgoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMTI4X21hc2soCiAgICAgIChfX3YyZGkpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpNjRfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMTI4X21hc2soKF9fdjJkaSlfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTY0X3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMTI4X21hc2soCiAgICAgIChfX3YyZGkpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpNjRfcGgoX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZGkpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXBpNjRfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMjU2X21hc2soKF9fdjRkaSlfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dGVwaTY0X3BoKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHFxMnBoMjU2X21hc2soCiAgICAgIChfX3Y0ZGkpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0cGhfZXBpNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGhfZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3YyZGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBoX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGhfZXBpNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGRpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGhfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y0ZGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0ZXB1NjRfcGgoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDEyOF9tYXNrKAogICAgICAoX192MmR1KV9fQSwgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTY0X3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGgxMjhfbWFzaygoX192MmR1KV9fQSwgKF9fdjhoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwdTY0X3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDEyOF9tYXNrKAogICAgICAoX192MmR1KV9fQSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTY0X3BoKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGgyNTZfbWFzaygKICAgICAgKF9fdjRkdSlfX0EsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHU2NF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoMjU2X21hc2soKF9fdjRkdSlfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHU2NF9waChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGgyNTZfbWFzaygKICAgICAgKF9fdjRkdSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRwaF9lcHU2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmR1KV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cGhfZXB1NjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTEyOF9tYXNrKChfX3Y4aGYpX19BLCAoX192MmR1KV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0cGhfZXB1NjQoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmR1KV9tbV9zZXR6ZXJvX3NpMTI4KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGhfZXB1NjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkdSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBoX2VwdTY0KF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXEyNTZfbWFzaygoX192OGhmKV9fQSwgKF9fdjRkdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkdSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRwaF9lcGk2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmRpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBoX2VwaTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXExMjhfbWFzaygoX192OGhmKV9fQSwgKF9fdjJkaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHRwaF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGhfZXBpNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwaF9lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxMjU2X21hc2soKF9fdjhoZilfX0EsIChfX3Y0ZGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxMjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0dHBoX2VwdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxMTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192MmR1KV9tbV91bmRlZmluZWRfc2kxMjgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBoX2VwdTY0KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxMTI4X21hc2soKF9fdjhoZilfX0EsIChfX3YyZHUpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0dHBoX2VwdTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXExMjhfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3YyZHUpX21tX3NldHplcm9fc2kxMjgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cGhfZXB1NjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXEyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y0ZHUpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGhfZXB1NjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXEyNTZfbWFzaygoX192OGhmKV9fQSwgKF9fdjRkdSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR0cGhfZXB1NjQoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTI1Nl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRkdSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0eHBoX3BzKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDEyOF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0eHBoX3BzKF9fbTEyOCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4MTI4X21hc2soKF9fdjhoZilfX0EsIChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0eHBoX3BzKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4MTI4X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jdnR4cGhfcHMoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4MjU2X21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OHNmKV9tbTI1Nl91bmRlZmluZWRfcHMoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR4cGhfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3gyNTZfbWFzaygoX192OGhmKV9fQSwgKF9fdjhzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnR4cGhfcHMoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3gyNTZfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnR4cHNfcGgoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4MTI4X21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfY3Z0eHBzX3BoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4MTI4X21hc2soKF9fdjRzZilfX0EsIChfX3Y4aGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR4cHNfcGgoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaHgxMjhfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jdnR4cHNfcGgoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4MjU2X21hc2soCiAgICAgIChfX3Y4c2YpX19BLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0eHBzX3BoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDI1Nl9tYXNrKChfX3Y4c2YpX19BLCAoX192OGhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0eHBzX3BoKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4MjU2X21hc2soCiAgICAgIChfX3Y4c2YpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm1hZGRfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19mbWFkZF9waChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1hZGRfcGgoX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZtYWRkX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm1zdWJfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfZm1zdWJfcGgoX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgX21tX2Ztc3ViX3BoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1Yl9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLCBfbW1fZm1zdWJfcGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1hZGRfcGgoX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoLShfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfcGgoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoLShfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tc3ViX3BoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKC0oX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9mbWFkZF9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkX3BoKF9fbTI1NmggX19BLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbWFkZF9waChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DLCBfX21tYXNrMTYgX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAoX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1hZGRfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9mbXN1Yl9waChfX20yNTZoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbXN1Yl9waChfX20yNTZoIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Ztc3ViX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZubWFkZF9waChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DLCBfX21tYXNrMTYgX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KC0oX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZubWFkZF9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KC0oX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbm1zdWJfcGgoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigtKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZtYWRkc3ViX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRzdWJfcGgoX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZtYWRkc3ViX3BoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZHN1Yl9waChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Ztc3ViYWRkX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Ztc3ViYWRkX3BoKF9fbTEyOGggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgLShfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJhZGRfcGgoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgoKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAtKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm1hZGRzdWJfcGgoX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm1hZGRzdWJfcGgoX19tMjU2aCBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2ZtYWRkc3ViX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIChfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mbWFkZHN1Yl9waChfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAoX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Ztc3ViYWRkX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbXN1YmFkZF9waChfX20yNTZoIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoMjU2KChfX3YxNmhmKV9fQSwgKF9fdjE2aGYpX19CLCAtKF9fdjE2aGYpX19DKSwKICAgICAgKF9fdjE2aGYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Ztc3ViYWRkX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2Ztc3ViX3BoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgLShfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZm1zdWJfcGgoX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazE2IF9fVSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIChfX3YxNmhmKV9fQiwgLShfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1YmFkZF9waChfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaCgoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQyksCiAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2szX2Ztc3ViYWRkX3BoKF9fbTI1NmggX19BLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGgyNTYoKF9fdjE2aGYpX19BLCAoX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm5tYWRkX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tYWRkX3BoKF9fbTEyOGggX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoCiAgICAgIChfX21tYXNrOClfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm5tYWRkX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgLShfX3YxNmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZm5tYWRkX3BoKF9fbTI1NmggX19BLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMjU2KAogICAgICAoX19tbWFzazE2KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgyNTYoKF9fdjE2aGYpX19BLCAtKF9fdjE2aGYpX19CLCAoX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm5tc3ViX3BoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoKChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubXN1Yl9waChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfMTI4KAogICAgICAoX19tbWFzazgpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaCgoX192OGhmKV9fQSwgLShfX3Y4aGYpX19CLCAtKF9fdjhoZilfX0MpLAogICAgICAoX192OGhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbm1zdWJfcGgoX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkcGgoKF9fdjhoZilfX0EsIC0oX192OGhmKV9fQiwgLShfX3Y4aGYpX19DKSwKICAgICAgKF9fdjhoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm5tc3ViX3BoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgLShfX3YxNmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNmhmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZubXN1Yl9waChfX20yNTZoIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzI1NigKICAgICAgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoMjU2KChfX3YxNmhmKV9fQSwgLShfX3YxNmhmKV9fQiwgLShfX3YxNmhmKV9fQyksCiAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbm1zdWJfcGgoX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazE2IF9fVSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoCiAgICAgIChfX21tYXNrMTYpX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDI1NigoX192MTZoZilfX0EsIC0oX192MTZoZilfX0IsIC0oX192MTZoZilfX0MpLAogICAgICAoX192MTZoZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZmNtdWxfcGNoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDEyOF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mY211bF9wY2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDEyOF9tYXNrKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZmNtdWxfcGNoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDEyOF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbTI1Nl9mY211bF9wY2goX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoMjU2X21hc2soCiAgICAgIChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfbW0yNTZfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZjbXVsX3BjaChfX20yNTZoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoMjU2X21hc2soKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fVywgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9mY211bF9wY2goX19tbWFzazggX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoMjU2X21hc2soCiAgICAgIChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZjbWFkZF9wY2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoMTI4X21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZjbWFkZF9wY2goX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgKICAgICAgX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoMTI4X21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpKF9fbTEyOGgpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UpLAogICAgICAoX192NHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mY21hZGRfcGNoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoMTI4X21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZmNtYWRkX3BjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDEyOF9tYXNreigKICAgICAgKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9mY21hZGRfcGNoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19CLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mY21hZGRfcGNoKF9fbTI1NmggX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoCiAgICAgIF9fVSwKICAgICAgX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKSwKICAgICAgKF9fdjhzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFzazNfZmNtYWRkX3BjaChfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19CLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2ZjbWFkZF9wY2goX19tbWFzazggX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IsIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGgyNTZfbWFza3ooCiAgICAgIChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm11bF9wY2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDEyOF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19mbXVsX3BjaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgxMjhfbWFzaygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm11bF9wY2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgxMjhfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm11bF9wY2goX19tMjU2aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDI1Nl9tYXNrKAogICAgICAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIChfX3Y4c2YpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19mbXVsX3BjaChfX20yNTZoIF9fVywgX19tbWFzazggX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgyNTZfbWFzaygoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1csIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm11bF9wY2goX19tbWFzazggX19VLCBfX20yNTZoIF9fQSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGgyNTZfbWFzaygKICAgICAgKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fZm1hZGRfcGNoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZtYWRkX3BjaChfX20xMjhoIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpLAogICAgICAoX192NHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9wY2goX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDEyOF9tYXNrKChfX3Y0c2YpX19DLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRfcGNoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgxMjhfbWFza3ooKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfZm1hZGRfcGNoKF9fbTI1NmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmggX19DKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX0IsIChfX21tYXNrOCktMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2ZtYWRkX3BjaChfX20yNTZoIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZoIF9fQiwgX19tMjU2aCBfX0MpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpLAogICAgICAoX192OHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrM19mbWFkZF9wY2goX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQywgX19tbWFzazggX19VKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDI1Nl9tYXNrKChfX3Y4c2YpX19DLCAoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZm1hZGRfcGNoKF9fbW1hc2s4IF9fVSwgX19tMjU2aCBfX0EsIF9fbTI1NmggX19CLCBfX20yNTZoIF9fQykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGgyNTZfbWFza3ooKF9fdjhzZilfX0MsIChfX3Y4c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX0IsIChfX21tYXNrOClfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19ibGVuZF9waChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fVykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8xMjgoKF9fbW1hc2s4KV9fVSwgKF9fdjhoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX3BoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BLCBfX20yNTZoIF9fVykgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF8yNTYoKF9fbW1hc2sxNilfX1UsIChfX3YxNmhmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wZXJtdXRleDJ2YXJfcGgoX19tMTI4aCBfX0EsIF9fbTEyOGkgX19JLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92cGVybWkydmFyaGkxMjgoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGVybXV0ZXgydmFyX3BoKF9fbTI1NmggX19BLCBfX20yNTZpIF9fSSwgX19tMjU2aCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpMjU2KChfX3YxNmhpKV9fQSwgKF9fdjE2aGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV4dmFyX3BoKF9fbTEyOGkgX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9wZXJtdmFyaGkxMjgoKF9fdjhoaSlfX0IsIChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4dmFyX3BoKF9fbTI1NmkgX19BLCBfX20yNTZoIF9fQikgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl9wZXJtdmFyaGkyNTYoKF9fdjE2aGkpX19CLCAoX192MTZoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3JlZHVjZV9hZGRfcGgoX19tMjU2aCBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcGgyNTYoLTAuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yZWR1Y2VfbXVsX3BoKF9fbTI1NmggX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BoMjU2KDEuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9yZWR1Y2VfbWF4X3BoKF9fbTI1NmggX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BoMjU2KF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcmVkdWNlX21pbl9waChfX20yNTZoIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9waDI1NihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JlZHVjZV9hZGRfcGgoX19tMTI4aCBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcGgxMjgoLTAuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yZWR1Y2VfbXVsX3BoKF9fbTEyOGggX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BoMTI4KDEuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yZWR1Y2VfbWF4X3BoKF9fbTEyOGggX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BoMTI4KF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcmVkdWNlX21pbl9waChfX20xMjhoIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9waDEyOChfX1YpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZgoAYXZ4NTEydm5uaWludHJpbi5oAC8qPT09LS0tLSBjbHdiaW50cmluLmggLSBDTFdCIGludHJpbnNpYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8Y2x3YmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19DTFdCSU5UUklOX0gKI2RlZmluZSBfX0NMV0JJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJjbHdiIikpKQoKLy8vIFdyaXRlcyBiYWNrIHRvIG1lbW9yeSB0aGUgY2FjaGUgbGluZSAoaWYgbW9kaWZpZWQpIHRoYXQgY29udGFpbnMgdGhlCi8vLyBsaW5lYXIgYWRkcmVzcyBzcGVjaWZpZWQgaW4gXGEgX19wIGZyb20gYW55IGxldmVsIG9mIHRoZSBjYWNoZSBoaWVyYXJjaHkgaW4KLy8vIHRoZSBjYWNoZSBjb2hlcmVuY2UgZG9tYWluCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ0xXQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0aGUgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGNhY2hlIGxpbmUgdG8gYmUKLy8vICAgIHdyaXR0ZW4gYmFjay4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Nsd2Iodm9pZCBjb25zdCAqX19wKSB7CiAgX19idWlsdGluX2lhMzJfY2x3YihfX3ApOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAGZsb2F0LmgAaW1taW50cmluLmgALyo9PT0tLS0tIGltbWludHJpbi5oIC0gSW50ZWwgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNkZWZpbmUgX19JTU1JTlRSSU5fSAoKI2luY2x1ZGUgPHg4NmdwcmludHJpbi5oPgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19NTVhfXykKI2luY2x1ZGUgPG1taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TU0VfXykKI2luY2x1ZGUgPHhtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fU1NFMl9fKQojaW5jbHVkZSA8ZW1taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TU0UzX18pCiNpbmNsdWRlIDxwbW1pbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1NTU0UzX18pCiNpbmNsdWRlIDx0bW1pbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19TU0U0XzJfXykgfHwgZGVmaW5lZChfX1NTRTRfMV9fKSkKI2luY2x1ZGUgPHNtbWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FFU19fKSB8fCBkZWZpbmVkKF9fUENMTVVMX18pKQojaW5jbHVkZSA8d21taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19DTEZMVVNIT1BUX18pCiNpbmNsdWRlIDxjbGZsdXNob3B0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19DTFdCX18pCiNpbmNsdWRlIDxjbHdiaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlhfXykKI2luY2x1ZGUgPGF2eGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYMl9fKQojaW5jbHVkZSA8YXZ4MmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fRjE2Q19fKQojaW5jbHVkZSA8ZjE2Y2ludHJpbi5oPgojZW5kaWYKCi8qIE5vIGZlYXR1cmUgY2hlY2sgZGVzaXJlZCBkdWUgdG8gaW50ZXJuYWwgY2hlY2tzICovCiNpbmNsdWRlIDxibWlpbnRyaW4uaD4KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQk1JMl9fKQojaW5jbHVkZSA8Ym1pMmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fTFpDTlRfXykKI2luY2x1ZGUgPGx6Y250aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19QT1BDTlRfXykKI2luY2x1ZGUgPHBvcGNudGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fRk1BX18pCiNpbmNsdWRlIDxmbWFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMkZfXykKI2luY2x1ZGUgPGF2eDUxMmZpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMlZMX18pCiNpbmNsdWRlIDxhdng1MTJ2bGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyQldfXykKI2luY2x1ZGUgPGF2eDUxMmJ3aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJCSVRBTEdfXykKI2luY2x1ZGUgPGF2eDUxMmJpdGFsZ2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyQ0RfXykKI2luY2x1ZGUgPGF2eDUxMmNkaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJWUE9QQ05URFFfXykKI2luY2x1ZGUgPGF2eDUxMnZwb3BjbnRkcWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZMX18pICYmIGRlZmluZWQoX19BVlg1MTJWUE9QQ05URFFfXykpCiNpbmNsdWRlIDxhdng1MTJ2cG9wY250ZHF2bGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyVk5OSV9fKQojaW5jbHVkZSA8YXZ4NTEydm5uaWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZMX18pICYmIGRlZmluZWQoX19BVlg1MTJWTk5JX18pKQojaW5jbHVkZSA8YXZ4NTEydmx2bm5paW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlhWTk5JX18pCiNpbmNsdWRlIDxhdnh2bm5paW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJEUV9fKQojaW5jbHVkZSA8YXZ4NTEyZHFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyQklUQUxHX18pKQojaW5jbHVkZSA8YXZ4NTEydmxiaXRhbGdpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyQldfXykpCiNpbmNsdWRlIDxhdng1MTJ2bGJ3aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fQVZYNTEyVkxfXykgJiYgZGVmaW5lZChfX0FWWDUxMkNEX18pKQojaW5jbHVkZSA8YXZ4NTEydmxjZGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZMX18pICYmIGRlZmluZWQoX19BVlg1MTJEUV9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsZHFpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMkVSX18pCiNpbmNsdWRlIDxhdng1MTJlcmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEySUZNQV9fKQojaW5jbHVkZSA8YXZ4NTEyaWZtYWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMklGTUFfXykgJiYgZGVmaW5lZChfX0FWWDUxMlZMX18pKQojaW5jbHVkZSA8YXZ4NTEyaWZtYXZsaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19BVlg1MTJWQk1JX18pCiNpbmNsdWRlIDxhdng1MTJ2Ym1paW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIChkZWZpbmVkKF9fQVZYNTEyVkJNSV9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVkxfXykpCiNpbmNsdWRlIDxhdng1MTJ2Ym1pdmxpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMlZCTUkyX18pCiNpbmNsdWRlIDxhdng1MTJ2Ym1pMmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZCTUkyX18pICYmIGRlZmluZWQoX19BVlg1MTJWTF9fKSkKI2luY2x1ZGUgPGF2eDUxMnZsdmJtaTJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FWWDUxMlBGX18pCiNpbmNsdWRlIDxhdng1MTJwZmludHJpbi5oPgojZW5kaWYKCi8qCiAqIEZJWE1FOiBfRmxvYXQxNiB0eXBlIGlzIGxlZ2FsIG9ubHkgd2hlbiBIVyBzdXBwb3J0IGZsb2F0MTYgb3BlcmF0aW9uLgogKiBXZSB1c2UgX19BVlg1MTJGUDE2X18gdG8gaWRlbnRpZnkgaWYgZmxvYXQxNiBpcyBzdXBwb3J0ZWQgb3Igbm90LCBzbwogKiB3aGVuIGZsb2F0MTYgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHJlbGF0ZWQgaGVhZGVyIGlzIG5vdCBpbmNsdWRlZC4KICoKICovCiNpZiBkZWZpbmVkKF9fQVZYNTEyRlAxNl9fKQojaW5jbHVkZSA8YXZ4NTEyZnAxNmludHJpbi5oPgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fQVZYNTEyRlAxNl9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVkxfXykKI2luY2x1ZGUgPGF2eDUxMnZsZnAxNmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyQkYxNl9fKQojaW5jbHVkZSA8YXZ4NTEyYmYxNmludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICAoZGVmaW5lZChfX0FWWDUxMlZMX18pICYmIGRlZmluZWQoX19BVlg1MTJCRjE2X18pKQojaW5jbHVkZSA8YXZ4NTEydmxiZjE2aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19QS1VfXykKI2luY2x1ZGUgPHBrdWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fVlBDTE1VTFFEUV9fKQojaW5jbHVkZSA8dnBjbG11bHFkcWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fVkFFU19fKQojaW5jbHVkZSA8dmFlc2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fR0ZOSV9fKQojaW5jbHVkZSA8Z2ZuaWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fUkRQSURfXykKLy8vIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBJQTMyX1RTQ19BVVggTVNSICgweGMwMDAwMTAzKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBSRFBJRCA8L2M+IGluc3RydWN0aW9uLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJyZHBpZCIpKSkKX3JkcGlkX3UzMih2b2lkKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkcGlkKCk7Cn0KI2VuZGlmIC8vIF9fUkRQSURfXwoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19SRFJORF9fKQpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJyZHJuZCIpKSkKX3JkcmFuZDE2X3N0ZXAodW5zaWduZWQgc2hvcnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHJhbmQxNl9zdGVwKF9fcCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInJkcm5kIikpKQpfcmRyYW5kMzJfc3RlcCh1bnNpZ25lZCBpbnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHJhbmQzMl9zdGVwKF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInJkcm5kIikpKQpfcmRyYW5kNjRfc3RlcCh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHJhbmQ2NF9zdGVwKF9fcCk7Cn0KI2VuZGlmCiNlbmRpZiAvKiBfX1JEUk5EX18gKi8KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fRlNHU0JBU0VfXykKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl9yZWFkZnNiYXNlX3UzMih2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkZnNiYXNlMzIoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl9yZWFkZnNiYXNlX3U2NCh2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkZnNiYXNlNjQoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl9yZWFkZ3NiYXNlX3UzMih2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkZ3NiYXNlMzIoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl9yZWFkZ3NiYXNlX3U2NCh2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkZ3NiYXNlNjQoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfd3JpdGVmc2Jhc2VfdTMyKHVuc2lnbmVkIGludCBfX1YpCnsKICBfX2J1aWx0aW5faWEzMl93cmZzYmFzZTMyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJmc2dzYmFzZSIpKSkKX3dyaXRlZnNiYXNlX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19WKQp7CiAgX19idWlsdGluX2lhMzJfd3Jmc2Jhc2U2NChfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZnNnc2Jhc2UiKSkpCl93cml0ZWdzYmFzZV91MzIodW5zaWduZWQgaW50IF9fVikKewogIF9fYnVpbHRpbl9pYTMyX3dyZ3NiYXNlMzIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZzZ3NiYXNlIikpKQpfd3JpdGVnc2Jhc2VfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1YpCnsKICBfX2J1aWx0aW5faWEzMl93cmdzYmFzZTY0KF9fVik7Cn0KCiNlbmRpZgojZW5kaWYgLyogX19GU0dTQkFTRV9fICovCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX01PVkJFX18pCgovKiBUaGUgc3RydWN0cyB1c2VkIGJlbG93IGFyZSB0byBmb3JjZSB0aGUgbG9hZC9zdG9yZSB0byBiZSB1bmFsaWduZWQuIFRoaXMKICogaXMgYWNjb21wbGlzaGVkIHdpdGggdGhlIF9fcGFja2VkX18gYXR0cmlidXRlLiBUaGUgX19tYXlfYWxpYXNfXyBwcmV2ZW50cwogKiB0YmFhIG1ldGFkYXRhIGZyb20gYmVpbmcgZ2VuZXJhdGVkIGJhc2VkIG9uIHRoZSBzdHJ1Y3QgYW5kIHRoZSB0eXBlIG9mIHRoZQogKiBmaWVsZCBpbnNpZGUgb2YgaXQuCiAqLwoKc3RhdGljIF9faW5saW5lX18gc2hvcnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtb3ZiZSIpKSkKX2xvYWRiZV9pMTYodm9pZCBjb25zdCAqIF9fUCkgewogIHN0cnVjdCBfX2xvYWR1X2kxNiB7CiAgICBzaG9ydCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDE2KCgoY29uc3Qgc3RydWN0IF9fbG9hZHVfaTE2KilfX1ApLT5fX3YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygibW92YmUiKSkpCl9zdG9yZWJlX2kxNih2b2lkICogX19QLCBzaG9ydCBfX0QpIHsKICBzdHJ1Y3QgX19zdG9yZXVfaTE2IHsKICAgIHNob3J0IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9pMTYqKV9fUCktPl9fdiA9IF9fYnVpbHRpbl9ic3dhcDE2KF9fRCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1vdmJlIikpKQpfbG9hZGJlX2kzMih2b2lkIGNvbnN0ICogX19QKSB7CiAgc3RydWN0IF9fbG9hZHVfaTMyIHsKICAgIGludCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9ic3dhcDMyKCgoY29uc3Qgc3RydWN0IF9fbG9hZHVfaTMyKilfX1ApLT5fX3YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygibW92YmUiKSkpCl9zdG9yZWJlX2kzMih2b2lkICogX19QLCBpbnQgX19EKSB7CiAgc3RydWN0IF9fc3RvcmV1X2kzMiB7CiAgICBpbnQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2kzMiopX19QKS0+X192ID0gX19idWlsdGluX2Jzd2FwMzIoX19EKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygibW92YmUiKSkpCl9sb2FkYmVfaTY0KHZvaWQgY29uc3QgKiBfX1ApIHsKICBzdHJ1Y3QgX19sb2FkdV9pNjQgewogICAgbG9uZyBsb25nIF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwNjQoKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9pNjQqKV9fUCktPl9fdik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtb3ZiZSIpKSkKX3N0b3JlYmVfaTY0KHZvaWQgKiBfX1AsIGxvbmcgbG9uZyBfX0QpIHsKICBzdHJ1Y3QgX19zdG9yZXVfaTY0IHsKICAgIGxvbmcgbG9uZyBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfaTY0KilfX1ApLT5fX3YgPSBfX2J1aWx0aW5fYnN3YXA2NChfX0QpOwp9CiNlbmRpZgojZW5kaWYgLyogX19NT1ZCRSAqLwoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19SVE1fXykKI2luY2x1ZGUgPHJ0bWludHJpbi5oPgojaW5jbHVkZSA8eHRlc3RpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1NIQV9fKQojaW5jbHVkZSA8c2hhaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19GWFNSX18pCiNpbmNsdWRlIDxmeHNyaW50cmluLmg+CiNlbmRpZgoKLyogTm8gZmVhdHVyZSBjaGVjayBkZXNpcmVkIGR1ZSB0byBpbnRlcm5hbCBNU0NfVkVSIGNoZWNrcyAqLwojaW5jbHVkZSA8eHNhdmVpbnRyaW4uaD4KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fWFNBVkVPUFRfXykKI2luY2x1ZGUgPHhzYXZlb3B0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19YU0FWRUNfXykKI2luY2x1ZGUgPHhzYXZlY2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fWFNBVkVTX18pCiNpbmNsdWRlIDx4c2F2ZXNpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1NIU1RLX18pCiNpbmNsdWRlIDxjZXRpbnRyaW4uaD4KI2VuZGlmCgovKiBTb21lIGludHJpbnNpY3MgaW5zaWRlIGFkeGludHJpbi5oIGFyZSBhdmFpbGFibGUgb25seSBvbiBwcm9jZXNzb3JzIHdpdGggQURYLAogKiB3aGVyZWFzIG90aGVycyBhcmUgYWxzbyBhdmFpbGFibGUgYXQgYWxsIHRpbWVzLiAqLwojaW5jbHVkZSA8YWR4aW50cmluLmg+CgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1JEU0VFRF9fKQojaW5jbHVkZSA8cmRzZWVkaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19XQk5PSU5WRF9fKQojaW5jbHVkZSA8d2Jub2ludmRpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0NMREVNT1RFX18pCiNpbmNsdWRlIDxjbGRlbW90ZWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fV0FJVFBLR19fKQojaW5jbHVkZSA8d2FpdHBrZ2ludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fTU9WRElSSV9fKSB8fCBkZWZpbmVkKF9fTU9WRElSNjRCX18pCiNpbmNsdWRlIDxtb3ZkaXJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1BDT05GSUdfXykKI2luY2x1ZGUgPHBjb25maWdpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1NHWF9fKQojaW5jbHVkZSA8c2d4aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19QVFdSSVRFX18pCiNpbmNsdWRlIDxwdHdyaXRlaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19JTlZQQ0lEX18pCiNpbmNsdWRlIDxpbnZwY2lkaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19LTF9fKSB8fCBkZWZpbmVkKF9fV0lERUtMX18pCiNpbmNsdWRlIDxrZXlsb2NrZXJpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0FNWFRJTEVfXykgfHwgZGVmaW5lZChfX0FNWElOVDhfXykgfHwgZGVmaW5lZChfX0FNWEJGMTZfXykKI2luY2x1ZGUgPGFteGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQVZYNTEyVlAySU5URVJTRUNUX18pCiNpbmNsdWRlIDxhdng1MTJ2cDJpbnRlcnNlY3RpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgKGRlZmluZWQoX19BVlg1MTJWTF9fKSAmJiBkZWZpbmVkKF9fQVZYNTEyVlAySU5URVJTRUNUX18pKQojaW5jbHVkZSA8YXZ4NTEydmx2cDJpbnRlcnNlY3RpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0VOUUNNRF9fKQojaW5jbHVkZSA8ZW5xY21kaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TRVJJQUxJWkVfXykKI2luY2x1ZGUgPHNlcmlhbGl6ZWludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fVFNYTERUUktfXykKI2luY2x1ZGUgPHRzeGxkdHJraW50cmluLmg+CiNlbmRpZgoKI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9faGFzX2V4dGVuc2lvbihnbnVfYXNtKQovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlc2UgaW50cmluc2ljcyAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBFeGNoYW5nZSBITEUKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKc3RhdGljIF9faW5saW5lX18gbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX0ludGVybG9ja2VkRXhjaGFuZ2VfSExFQWNxdWlyZShsb25nIHZvbGF0aWxlICpfVGFyZ2V0LCBsb25nIF9WYWx1ZSkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYyIDsgbG9jayA7IHhjaGcgJTAsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIityIiAoX1ZhbHVlKSwgIittIiAoKl9UYXJnZXQpIDo6ICJtZW1vcnkiKTsKICByZXR1cm4gX1ZhbHVlOwp9CnN0YXRpYyBfX2lubGluZV9fIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZEV4Y2hhbmdlX0hMRVJlbGVhc2UobG9uZyB2b2xhdGlsZSAqX1RhcmdldCwgbG9uZyBfVmFsdWUpIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLmJ5dGUgMHhmMyA7IGxvY2sgOyB4Y2hnICUwLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrciIgKF9WYWx1ZSksICIrbSIgKCpfVGFyZ2V0KSA6OiAibWVtb3J5Iik7CiAgcmV0dXJuIF9WYWx1ZTsKfQojZW5kaWYKI2lmIGRlZmluZWQoX194ODZfNjRfXykKc3RhdGljIF9faW5saW5lX18gX19pbnQ2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX0ludGVybG9ja2VkRXhjaGFuZ2U2NF9ITEVBY3F1aXJlKF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjIgOyBsb2NrIDsgeGNoZyAlMCwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK3IiIChfVmFsdWUpLCAiK20iICgqX1RhcmdldCkgOjogIm1lbW9yeSIpOwogIHJldHVybiBfVmFsdWU7Cn0Kc3RhdGljIF9faW5saW5lX18gX19pbnQ2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX0ludGVybG9ja2VkRXhjaGFuZ2U2NF9ITEVSZWxlYXNlKF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjMgOyBsb2NrIDsgeGNoZyAlMCwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK3IiIChfVmFsdWUpLCAiK20iICgqX1RhcmdldCkgOjogIm1lbW9yeSIpOwogIHJldHVybiBfVmFsdWU7Cn0KI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIENvbXBhcmUgRXhjaGFuZ2UgSExFClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZV9ITEVBY3F1aXJlKGxvbmcgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfRXhjaGFuZ2UsIGxvbmcgX0NvbXBhcmFuZCkgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCIuYnl0ZSAweGYyIDsgbG9jayA7IGNtcHhjaGcgJTIsICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIithIiAoX0NvbXBhcmFuZCksICIrbSIgKCpfRGVzdGluYXRpb24pCiAgICAgICAgICAgICAgICAgICAgICAgOiAiciIgKF9FeGNoYW5nZSkgOiAibWVtb3J5Iik7CiAgcmV0dXJuIF9Db21wYXJhbmQ7Cn0Kc3RhdGljIF9faW5saW5lX18gbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlX0hMRVJlbGVhc2UobG9uZyB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9FeGNoYW5nZSwgbG9uZyBfQ29tcGFyYW5kKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjMgOyBsb2NrIDsgY21weGNoZyAlMiwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK2EiIChfQ29tcGFyYW5kKSwgIittIiAoKl9EZXN0aW5hdGlvbikKICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAoX0V4Y2hhbmdlKSA6ICJtZW1vcnkiKTsKICByZXR1cm4gX0NvbXBhcmFuZDsKfQojZW5kaWYKI2lmIGRlZmluZWQoX194ODZfNjRfXykKc3RhdGljIF9faW5saW5lX18gX19pbnQ2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlNjRfSExFQWNxdWlyZShfX2ludDY0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlLCBfX2ludDY0IF9Db21wYXJhbmQpIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygiLmJ5dGUgMHhmMiA7IGxvY2sgOyBjbXB4Y2hnICUyLCAlMSIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrYSIgKF9Db21wYXJhbmQpLCAiK20iICgqX0Rlc3RpbmF0aW9uKQogICAgICAgICAgICAgICAgICAgICAgIDogInIiIChfRXhjaGFuZ2UpIDogIm1lbW9yeSIpOwogIHJldHVybiBfQ29tcGFyYW5kOwp9CnN0YXRpYyBfX2lubGluZV9fIF9faW50NjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTY0X0hMRVJlbGVhc2UoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZSwgX19pbnQ2NCBfQ29tcGFyYW5kKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIi5ieXRlIDB4ZjMgOyBsb2NrIDsgY21weGNoZyAlMiwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK2EiIChfQ29tcGFyYW5kKSwgIittIiAoKl9EZXN0aW5hdGlvbikKICAgICAgICAgICAgICAgICAgICAgICA6ICJyIiAoX0V4Y2hhbmdlKSA6ICJtZW1vcnkiKTsKICByZXR1cm4gX0NvbXBhcmFuZDsKfQojZW5kaWYKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogZGVmaW5lZChfTVNDX1ZFUikgJiYgX19oYXNfZXh0ZW5zaW9uKGdudV9hc20pICovCgojZW5kaWYgLyogX19JTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0tIGludnBjaWRpbnRyaW4uaCAtIElOVlBDSUQgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxpbnZwY2lkaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0lOVlBDSURJTlRSSU5fSAojZGVmaW5lIF9fSU5WUENJRElOVFJJTl9ICgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygiaW52cGNpZCIpKSkKX2ludnBjaWQodW5zaWduZWQgaW50IF9fdHlwZSwgdm9pZCAqX19kZXNjcmlwdG9yKSB7CiAgX19idWlsdGluX2lhMzJfaW52cGNpZChfX3R5cGUsIF9fZGVzY3JpcHRvcik7Cn0KCiNlbmRpZiAvKiBfX0lOVlBDSURJTlRSSU5fSCAqLwoAcGNvbmZpZ2ludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tIHB0d3JpdGVpbnRyaW4uaCAtIFBUV1JJVEUgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxwdHdyaXRlaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1BUV1JJVEVJTlRSSU5fSAojZGVmaW5lIF9fUFRXUklURUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJwdHdyaXRlIikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3B0d3JpdGUzMih1bnNpZ25lZCBpbnQgX192YWx1ZSkgewogIF9fYnVpbHRpbl9pYTMyX3B0d3JpdGUzMihfX3ZhbHVlKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9wdHdyaXRlNjQodW5zaWduZWQgbG9uZyBsb25nIF9fdmFsdWUpIHsKICBfX2J1aWx0aW5faWEzMl9wdHdyaXRlNjQoX192YWx1ZSk7Cn0KCiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19QVFdSSVRFSU5UUklOX0ggKi8KAC8qPT09LS0tLS0tLS0tLS0tLS0tIHNlcmlhbGl6ZWludHJpbi5oIC0gc2VyaWFsaXplIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8c2VyaWFsaXplaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1NFUklBTElaRUlOVFJJTl9ICiNkZWZpbmUgX19TRVJJQUxJWkVJTlRSSU5fSAoKLy8vIFNlcmlhbGl6ZSBpbnN0cnVjdGlvbiBmZXRjaCBhbmQgZXhlY3V0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNFUklBTElaRSA8L2M+IGluc3RydWN0aW9uLgovLy8Kc3RhdGljIF9faW5saW5lX18gdm9pZApfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNlcmlhbGl6ZSIpKSkKX3NlcmlhbGl6ZSAodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX3NlcmlhbGl6ZSAoKTsKfQoKI2VuZGlmIC8qIF9fU0VSSUFMSVpFSU5UUklOX0ggKi8KAHdhaXRwa2dpbnRyaW4uaAB4c2F2ZWludHJpbi5oAC8vPT09LS0gc2FuaXRpemVyL3NjdWRvX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vLyBQdWJsaWMgU2N1ZG8gaW50ZXJmYWNlIGhlYWRlci4KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KI2lmbmRlZiBTQU5JVElaRVJfU0NVRE9fSU5URVJGQUNFX0hfCiNkZWZpbmUgU0FOSVRJWkVSX1NDVURPX0lOVEVSRkFDRV9IXwoKI2luY2x1ZGUgPHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCiAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUgb3B0aW9uYWxseSBwcm92aWRlZCBieSBhIHVzZXIgYW5kIHNob3VsZCByZXR1cm4KICAvLyBhIHN0cmluZyBjb250YWluaW5nIFNjdWRvIHJ1bnRpbWUgb3B0aW9ucy4gU2VlIHNjdWRvX2ZsYWdzLmggZm9yIGRldGFpbHMuCiAgY29uc3QgY2hhciogX19zY3Vkb19kZWZhdWx0X29wdGlvbnModm9pZCk7CgogIC8vIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHRvIHNldCB0aGUgUlNTIGxpbWl0IGF0IHJ1bnRpbWUuIFRoaXMgY2FuIGJlIGVpdGhlcgogIC8vIHRoZSBoYXJkIGxpbWl0IChIYXJkTGltaXQ9MSkgb3IgdGhlIHNvZnQgbGltaXQgKEhhcmRMaW1pdD0wKS4gVGhlIGxpbWl0CiAgLy8gY2FuIGJlIHJlbW92ZWQgYnkgc2V0dGluZyBMaW1pdE1iIHRvIDAuIFRoaXMgZnVuY3Rpb24ncyBwYXJhbWV0ZXJzIHNob3VsZAogIC8vIGJlIGZ1bGx5IHRydXN0ZWQgdG8gYXZvaWQgc2VjdXJpdHkgbWlzaGFwcy4KICB2b2lkIF9fc2N1ZG9fc2V0X3Jzc19saW1pdChzaXplX3QgTGltaXRNYiwgaW50IEhhcmRMaW1pdCk7CgogIC8vIFRoaXMgZnVuY3Rpb24gb3V0cHV0cyB2YXJpb3VzIGFsbG9jYXRvciBzdGF0aXN0aWNzIGZvciBib3RoIHRoZSBQcmltYXJ5CiAgLy8gYW5kIFNlY29uZGFyeSBhbGxvY2F0b3JzLCBpbmNsdWRpbmcgbWVtb3J5IHVzYWdlLCBudW1iZXIgb2YgYWxsb2NhdGlvbnMKICAvLyBhbmQgZGVhbGxvY2F0aW9ucy4KICB2b2lkIF9fc2N1ZG9fcHJpbnRfc3RhdHModm9pZCk7CiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfU0NVRE9fSU5URVJGQUNFX0hfCgBmY2xvc2UoaGFuZGxlKQAoLTEpAFNlYXJjaERGQSBpbmNvbnNpc3RlbmN5AFJld3JpdGUgc2NoZW1hIGVycm9yOiAnXCcgbm90IGFsbG93ZWQgYXQgZW5kLgAgaW4gQWRkVG9UaHJlYWRxAFVuZXhwZWN0ZWQgb3AgaW4gUmVnZXhwOjpFcXVhbDogAEJoYWlrc3VraQBFbGJhc2FuAE1vZGkAIG9uIGNwdSAlZAB1bm9yZGVyZWQgZnJlZWxpc3QAe2xhbWJkYSgpIwBmAHN0ZDo6bnVsbHB0cl90AHJNAGFhAFNkAEZBSUxFRF9QUkVDT05ESVRJT04AXHUgbXVzdCBiZSBmb2xsb3dlZCBieSA0IGhleCBkaWdpdHM6IFwAXCIAIi4uLgApIHsKAHllcwBsZW5ndGggPiAwAFVubG9jawBEUkJHIFJlc2VlZCBLQVQAYmlnbnVtIHJvdXRpbmVzAGt5dGhlLnByb3RvLkNvbXBpbGF0aW9uVW5pdC5lbnRyeV9jb250ZXh0AGt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuU3lzdGVtSGVhZGVyUHJlZml4LnByZWZpeABreXRoZS5wcm90by5WTmFtZVJld3JpdGVSdWxlLnBhdHRlcm4AY3BwLW91dHB1dAAgAC0td2l0aF9leGVjdXRhYmxlAEtZVEhFX0NBTk9OSUNBTElaRV9WTkFNRV9QQVRIUwBtYXRoX2J1aWx0aW4ATVNNb2RlAC8qPT09LS0tLSBfX2NsYW5nX2N1ZGFfY21hdGguaCAtIERldmljZS1zaWRlIENVREEgY21hdGggc3VwcG9ydCAtLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NMQU5HX0NVREFfQ01BVEhfSF9fCiNkZWZpbmUgX19DTEFOR19DVURBX0NNQVRIX0hfXwojaWZuZGVmIF9fQ1VEQV9fCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBDVURBIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZm5kZWYgX19PUEVOTVBfTlZQVFhfXwojaW5jbHVkZSA8bGltaXRzPgojZW5kaWYKCi8vIENVREEgbGV0cyB1cyB1c2UgdmFyaW91cyBzdGQgbWF0aCBmdW5jdGlvbnMgb24gdGhlIGRldmljZSBzaWRlLiAgVGhpcyBmaWxlCi8vIHdvcmtzIGluIGNvbmNlcnQgd2l0aCBfX2NsYW5nX2N1ZGFfbWF0aF9mb3J3YXJkX2RlY2xhcmVzLmggdG8gbWFrZSB0aGlzIHdvcmsuCi8vCi8vIFNwZWNpZmljYWxseSwgdGhlIGZvcndhcmQtZGVjbGFyZXMgaGVhZGVyIGRlY2xhcmVzIF9fZGV2aWNlX18gb3ZlcmxvYWRzIGZvcgovLyB0aGVzZSBmdW5jdGlvbnMgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UsIHRoZW4gcHVsbHMgdGhlbSBpbnRvIG5hbWVzcGFjZSBzdGQKLy8gd2l0aCAndXNpbmcnIHN0YXRlbWVudHMuICBUaGVuIHRoaXMgZmlsZSBpbXBsZW1lbnRzIHRob3NlIGZ1bmN0aW9ucywgYWZ0ZXIKLy8gdGhlaXIgaW1wbGVtZW50YXRpb25zIGhhdmUgYmVlbiBwdWxsZWQgaW4uCi8vCi8vIEl0J3MgaW1wb3J0YW50IHRoYXQgd2UgZGVjbGFyZSB0aGUgZnVuY3Rpb25zIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGFuZCBwdWxsCi8vIHRoZW0gaW50byBuYW1lc3BhY2Ugc3RkIHdpdGggdXNpbmcgc3RhdGVtZW50cywgYXMgb3Bwb3NlZCB0byBzaW1wbHkgZGVjbGFyaW5nCi8vIHRoZXNlIGZ1bmN0aW9ucyBpbiBuYW1lc3BhY2Ugc3RkLCBiZWNhdXNlIG91ciBkZXZpY2UgZnVuY3Rpb25zIG5lZWQgdG8KLy8gb3ZlcmxvYWQgdGhlIHN0YW5kYXJkIGxpYnJhcnkgZnVuY3Rpb25zLCB3aGljaCBtYXkgYmUgZGVjbGFyZWQgaW4gdGhlIGdsb2JhbAovLyBuYW1lc3BhY2Ugb3IgaW4gc3RkLCBkZXBlbmRpbmcgb24gdGhlIGRlZ3JlZSBvZiBjb25mb3JtYW5jZSBvZiB0aGUgc3RkbGliCi8vIGltcGxlbWVudGF0aW9uLiAgRGVjbGFyaW5nIGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlIGFuZCBwdWxsaW5nIGludG8gbmFtZXNwYWNlCi8vIHN0ZCBjb3ZlcnMgYWxsIG9mIHRoZSBrbm93biBrbm93bnMuCgojaWZkZWYgX19PUEVOTVBfTlZQVFhfXwojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIGNvbnN0ZXhwciBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lLCBub3Rocm93KSkKI2Vsc2UKI2RlZmluZSBfX0RFVklDRV9fIHN0YXRpYyBfX2RldmljZV9fIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpCiNlbmRpZgoKX19ERVZJQ0VfXyBsb25nIGxvbmcgYWJzKGxvbmcgbG9uZyBfX24pIHsgcmV0dXJuIDo6bGxhYnMoX19uKTsgfQpfX0RFVklDRV9fIGxvbmcgYWJzKGxvbmcgX19uKSB7IHJldHVybiA6OmxhYnMoX19uKTsgfQpfX0RFVklDRV9fIGZsb2F0IGFicyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6ZmFic2YoX194KTsgfQpfX0RFVklDRV9fIGRvdWJsZSBhYnMoZG91YmxlIF9feCkgeyByZXR1cm4gOjpmYWJzKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhY29zKGZsb2F0IF9feCkgeyByZXR1cm4gOjphY29zZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgYXNpbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6YXNpbmYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGF0YW4oZmxvYXQgX194KSB7IHJldHVybiA6OmF0YW5mKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBhdGFuMihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gOjphdGFuMmYoX194LCBfX3kpOyB9Cl9fREVWSUNFX18gZmxvYXQgY2VpbChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y2VpbGYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGNvcyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y29zZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgY29zaChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6Y29zaGYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGV4cChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6ZXhwZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgZmFicyhmbG9hdCBfX3gpIHsgcmV0dXJuIDo6ZmFic2YoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGZsb29yKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmbG9vcmYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGZtb2QoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIDo6Zm1vZGYoX194LCBfX3kpOyB9Cl9fREVWSUNFX18gaW50IGZwY2xhc3NpZnkoZmxvYXQgX194KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9mcGNsYXNzaWZ5KEZQX05BTiwgRlBfSU5GSU5JVEUsIEZQX05PUk1BTCwgRlBfU1VCTk9STUFMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUF9aRVJPLCBfX3gpOwp9Cl9fREVWSUNFX18gaW50IGZwY2xhc3NpZnkoZG91YmxlIF9feCkgewogIHJldHVybiBfX2J1aWx0aW5fZnBjbGFzc2lmeShGUF9OQU4sIEZQX0lORklOSVRFLCBGUF9OT1JNQUwsIEZQX1NVQk5PUk1BTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlBfWkVSTywgX194KTsKfQpfX0RFVklDRV9fIGZsb2F0IGZyZXhwKGZsb2F0IF9fYXJnLCBpbnQgKl9fZXhwKSB7CiAgcmV0dXJuIDo6ZnJleHBmKF9fYXJnLCBfX2V4cCk7Cn0KCi8vIEZvciBpbnNjcnV0YWJsZSByZWFzb25zLCB0aGUgQ1VEQSBoZWFkZXJzIGRlZmluZSB0aGVzZSBmdW5jdGlvbnMgZm9yIHVzIG9uCi8vIFdpbmRvd3MuCiNpZiAhZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKQoKLy8gRm9yIE9wZW5NUCB3ZSB3b3JrIGFyb3VuZCBzb21lIG9sZCBzeXN0ZW0gaGVhZGVycyB0aGF0IGhhdmUgbm9uLWNvbmZvcm1pbmcKLy8gYGlzaW5mKGZsb2F0KWAgYW5kIGBpc25hbihmbG9hdClgIGltcGxlbWVudGF0aW9ucyB0aGF0IHJldHVybiBhbiBgaW50YC4gV2UgZG8KLy8gdGhpcyBieSBwcm92aWRpbmcgdHdvIHZlcnNpb25zIG9mIHRoZXNlIGZ1bmN0aW9ucywgZGlmZmVyaW5nIG9ubHkgaW4gdGhlCi8vIHJldHVybiB0eXBlLiBUbyBhdm9pZCBjb25mbGljdGluZyBkZWZpbml0aW9ucyB3ZSBkaXNhYmxlIGltcGxpY2l0IGJhc2UKLy8gZnVuY3Rpb24gZ2VuZXJhdGlvbi4gVGhhdCBtZWFucyB3ZSB3aWxsIGVuZCB1cCB3aXRoIHR3byBzcGVjaWFsaXphdGlvbnMsIG9uZQovLyBwZXIgdHlwZSwgYnV0IG9ubHkgb25lIGhhcyBhIGJhc2UgZnVuY3Rpb24gZGVmaW5lZCBieSB0aGUgc3lzdGVtIGhlYWRlci4KI2lmIGRlZmluZWQoX19PUEVOTVBfTlZQVFhfXykKI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIGltcGxlbWVudGF0aW9uID0ge2V4dGVuc2lvbihkaXNhYmxlX2ltcGxpY2l0X2Jhc2UpfSkKCi8vIEZJWE1FOiBXZSBsYWNrIGFuIGV4dGVuc2lvbiB0byBjdXN0b21pemUgdGhlIG1hbmdsaW5nIG9mIHRoZSB2YXJpYW50cywgZS5nLiwKLy8gICAgICAgIGFkZCBhIHN1ZmZpeC4gVGhpcyBtZWFucyB3ZSB3b3VsZCBjbGFzaCB3aXRoIHRoZSBuYW1lcyBvZiB0aGUgdmFyaWFudHMKLy8gICAgICAgIChub3RlIHRoYXQgd2UgZG8gbm90IGNyZWF0ZSBpbXBsaWNpdCBiYXNlIGZ1bmN0aW9ucyBoZXJlKS4gVG8gYXZvaWQKLy8gICAgICAgIHRoaXMgY2xhc2ggd2UgYWRkIGEgbmV3IHRyYWl0IHRvIHNvbWUgb2YgdGhlbSB0aGF0IGlzIGFsd2F5cyB0cnVlCi8vICAgICAgICAodGhpcyBpcyBMTFZNIGFmdGVyIGFsbCA7KSkuIEl0IHdpbGwgb25seSBpbmZsdWVuY2UgdGhlIG1hbmdsZWQgbmFtZQovLyAgICAgICAgb2YgdGhlIHZhcmlhbnRzIGluc2lkZSB0aGUgaW5uZXIgcmVnaW9uIGFuZCBhdm9pZCB0aGUgY2xhc2guCiNwcmFnbWEgb21wIGJlZ2luIGRlY2xhcmUgdmFyaWFudCBtYXRjaChpbXBsZW1lbnRhdGlvbiA9IHt2ZW5kb3IobGx2bSl9KQoKX19ERVZJQ0VfXyBpbnQgaXNpbmYoZmxvYXQgX194KSB7IHJldHVybiA6Ol9faXNpbmZmKF9feCk7IH0KX19ERVZJQ0VfXyBpbnQgaXNpbmYoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBpbnQgaXNmaW5pdGUoZmxvYXQgX194KSB7IHJldHVybiA6Ol9fZmluaXRlZihfX3gpOyB9Cl9fREVWSUNFX18gaW50IGlzZmluaXRlKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19pc2Zpbml0ZWQoX194KTsgfQpfX0RFVklDRV9fIGludCBpc25hbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc25hbmYoX194KTsgfQpfX0RFVklDRV9fIGludCBpc25hbihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNuYW4oX194KTsgfQoKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAoKI2VuZGlmCgpfX0RFVklDRV9fIGJvb2wgaXNpbmYoZmxvYXQgX194KSB7IHJldHVybiA6Ol9faXNpbmZmKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIGlzaW5mKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19pc2luZihfX3gpOyB9Cl9fREVWSUNFX18gYm9vbCBpc2Zpbml0ZShmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGVmKF9feCk7IH0KLy8gRm9yIGluc2NydXRhYmxlIHJlYXNvbnMsIF9fZmluaXRlKCksIHRoZSBkb3VibGUtcHJlY2lzaW9uIHZlcnNpb24gb2YKLy8gX19maW5pdGVmLCBkb2VzIG5vdCBleGlzdCB3aGVuIGNvbXBpbGluZyBmb3IgTWFjT1MuICBfX2lzZmluaXRlZCBpcyBhdmFpbGFibGUKLy8gZXZlcnl3aGVyZSBhbmQgaXMganVzdCBhcyBnb29kLgpfX0RFVklDRV9fIGJvb2wgaXNmaW5pdGUoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzZmluaXRlZChfX3gpOyB9Cl9fREVWSUNFX18gYm9vbCBpc25hbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc25hbmYoX194KTsgfQpfX0RFVklDRV9fIGJvb2wgaXNuYW4oZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzbmFuKF9feCk7IH0KCiNpZiBkZWZpbmVkKF9fT1BFTk1QX05WUFRYX18pCiNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHZhcmlhbnQKI2VuZGlmCgojZW5kaWYKCl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXIoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2dyZWF0ZXIoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNncmVhdGVyZXF1YWwoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2dyZWF0ZXJlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzbGVzcyhmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzcyhfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzbGVzc2VxdWFsKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzbGVzc2VxdWFsKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzc2VxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZ3JlYXRlcihmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzbGVzc2dyZWF0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBib29sIGlzbm9ybWFsKGZsb2F0IF9feCkgeyByZXR1cm4gX19idWlsdGluX2lzbm9ybWFsKF9feCk7IH0KX19ERVZJQ0VfXyBib29sIGlzbm9ybWFsKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fYnVpbHRpbl9pc25vcm1hbChfX3gpOyB9Cl9fREVWSUNFX18gYm9vbCBpc3Vub3JkZXJlZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXN1bm9yZGVyZWQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gYm9vbCBpc3Vub3JkZXJlZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc3Vub3JkZXJlZChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBsZGV4cChmbG9hdCBfX2FyZywgaW50IF9fZXhwKSB7CiAgcmV0dXJuIDo6bGRleHBmKF9fYXJnLCBfX2V4cCk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBsb2coZmxvYXQgX194KSB7IHJldHVybiA6OmxvZ2YoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IGxvZzEwKGZsb2F0IF9feCkgeyByZXR1cm4gOjpsb2cxMGYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IG1vZGYoZmxvYXQgX194LCBmbG9hdCAqX19pcHRyKSB7IHJldHVybiA6Om1vZGZmKF9feCwgX19pcHRyKTsgfQpfX0RFVklDRV9fIGZsb2F0IHBvdyhmbG9hdCBfX2Jhc2UsIGZsb2F0IF9fZXhwKSB7CiAgcmV0dXJuIDo6cG93ZihfX2Jhc2UsIF9fZXhwKTsKfQpfX0RFVklDRV9fIGZsb2F0IHBvdyhmbG9hdCBfX2Jhc2UsIGludCBfX2lleHApIHsKICByZXR1cm4gOjpwb3dpZihfX2Jhc2UsIF9faWV4cCk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgcG93KGRvdWJsZSBfX2Jhc2UsIGludCBfX2lleHApIHsKICByZXR1cm4gOjpwb3dpKF9fYmFzZSwgX19pZXhwKTsKfQpfX0RFVklDRV9fIGJvb2wgc2lnbmJpdChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19zaWduYml0ZihfX3gpOyB9Cl9fREVWSUNFX18gYm9vbCBzaWduYml0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19zaWduYml0ZChfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgc2luKGZsb2F0IF9feCkgeyByZXR1cm4gOjpzaW5mKF9feCk7IH0KX19ERVZJQ0VfXyBmbG9hdCBzaW5oKGZsb2F0IF9feCkgeyByZXR1cm4gOjpzaW5oZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgc3FydChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6c3FydGYoX194KTsgfQpfX0RFVklDRV9fIGZsb2F0IHRhbihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6dGFuZihfX3gpOyB9Cl9fREVWSUNFX18gZmxvYXQgdGFuaChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6dGFuaGYoX194KTsgfQoKLy8gVGhlcmUgd2FzIGEgcmVkZWZpbml0aW9uIGVycm9yIGZvciB0aGlzIHRoaXMgb3ZlcmxvYWQgaW4gQ1VEQSBtb2RlLgovLyBXZSByZXN0cmljdCBpdCB0byBPcGVuTVAgbW9kZSBmb3Igbm93LCB0aGF0IGlzIHdoZXJlIGl0IGlzIGFjdHVhbGx5IG5lZWRlZAovLyBhbnl3YXkuCiNpZmRlZiBfX09QRU5NUF9OVlBUWF9fCl9fREVWSUNFX18gZmxvYXQgcmVtcXVvKGZsb2F0IF9fbiwgZmxvYXQgX19kLCBpbnQgKl9fcSkgewogIHJldHVybiA6OnJlbXF1b2YoX19uLCBfX2QsIF9fcSk7Cn0KI2VuZGlmCgovLyBOb3RhYmx5IG1pc3NpbmcgYWJvdmUgaXMgbmV4dHRvd2FyZC4gIFdlIG9taXQgaXQgYmVjYXVzZQovLyBsaWJkZXZpY2UgZG9lc24ndCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBiZSBpbiB0aGUKLy8gYnVzaW5lc3Mgb2YgaW1wbGVtZW50aW5nIHRyaWNreSBsaWJtIGZ1bmN0aW9ucyBpbiB0aGlzIGhlYWRlci4KCiNpZm5kZWYgX19PUEVOTVBfTlZQVFhfXwoKLy8gTm93IHdlJ3ZlIGRlZmluZWQgZXZlcnl0aGluZyB3ZSBwcm9taXNlZCB3ZSdkIGRlZmluZSBpbgovLyBfX2NsYW5nX2N1ZGFfbWF0aF9mb3J3YXJkX2RlY2xhcmVzLmguICBXZSBuZWVkIHRvIGRvIHR3byBhZGRpdGlvbmFsIHRoaW5ncyB0bwovLyBmaXggdXAgb3VyIG1hdGggZnVuY3Rpb25zLgovLwovLyAxKSBEZWZpbmUgX19kZXZpY2VfXyBvdmVybG9hZHMgZm9yIGUuZy4gc2luKGludCkuICBUaGUgQ1VEQSBoZWFkZXJzIGRlZmluZQovLyAgICBvbmx5IHNpbihmbG9hdCkgYW5kIHNpbihkb3VibGUpLCB3aGljaCBtZWFucyB0aGF0IGUuZy4gc2luKDApIGlzCi8vICAgIGFtYmlndW91cy4KLy8KLy8gMikgUHVsbCB0aGUgX19kZXZpY2VfXyBvdmVybG9hZHMgb2YgImZvb2JhcmYiIG1hdGggZnVuY3Rpb25zIGludG8gbmFtZXNwYWNlCi8vICAgIHN0ZC4gIFRoZXNlIGFyZSBkZWZpbmVkIGluIHRoZSBDVURBIGhlYWRlcnMgaW4gdGhlIGdsb2JhbCBuYW1lc3BhY2UsCi8vICAgIGluZGVwZW5kZW50IG9mIGV2ZXJ5dGhpbmcgZWxzZSB3ZSd2ZSBkb25lIGhlcmUuCgovLyBXZSBjYW4ndCB1c2Ugc3RkOjplbmFibGVfaWYsIGJlY2F1c2Ugd2Ugd2FudCB0byBiZSBwcmUtQysrMTEgY29tcGF0aWJsZS4gIEJ1dAovLyB3ZSBnbyBhaGVhZCBhbmQgdW5jb25kaXRpb25hbGx5IGRlZmluZSBmdW5jdGlvbnMgdGhhdCBhcmUgb25seSBhdmFpbGFibGUgd2hlbgovLyBjb21waWxpbmcgZm9yIEMrKzExIHRvIG1hdGNoIHRoZSBiZWhhdmlvciBvZiB0aGUgQ1VEQSBoZWFkZXJzLgp0ZW1wbGF0ZTxib29sIF9fQiwgY2xhc3MgX19UID0gdm9pZD4Kc3RydWN0IF9fY2xhbmdfY3VkYV9lbmFibGVfaWYge307Cgp0ZW1wbGF0ZSA8Y2xhc3MgX19UPiBzdHJ1Y3QgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjx0cnVlLCBfX1Q+IHsKICB0eXBlZGVmIF9fVCB0eXBlOwp9OwoKLy8gRGVmaW5lcyBhbiBvdmVybG9hZCBvZiBfX2ZuIHRoYXQgYWNjZXB0cyBvbmUgaW50ZWdyYWwgYXJndW1lbnQsIGNhbGxzCi8vIF9fZm4oKGRvdWJsZSl4KSwgYW5kIHJldHVybnMgX19yZXR0eS4KI2RlZmluZSBfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKF9fcmV0dHksIF9fZm4pICAgICAgICAgICAgICAgICAgICAgIFwKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjxzdGQ6Om51bWVyaWNfbGltaXRzPF9fVD46OmlzX2ludGVnZXIsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3JldHR5Pjo6dHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19mbihfX1QgX194KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiA6Ol9fZm4oKGRvdWJsZSlfX3gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgovLyBEZWZpbmVzIGFuIG92ZXJsb2FkIG9mIF9fZm4gdGhhdCBhY2NlcHRzIG9uZSB0d28gYXJpdGhtZXRpYyBhcmd1bWVudHMsIGNhbGxzCi8vIF9fZm4oKGRvdWJsZSl4LCAoZG91YmxlKXkpLCBhbmQgcmV0dXJucyBhIGRvdWJsZS4KLy8KLy8gTm90ZSB0aGlzIGlzIGRpZmZlcmVudCBmcm9tIE9WRVJMT0FEXzEsIHdoaWNoIGdlbmVyYXRlcyBhbiBvdmVybG9hZCB0aGF0Ci8vIGFjY2VwdHMgb25seSAqaW50ZWdyYWwqIGFyZ3VtZW50cy4KI2RlZmluZSBfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKF9fcmV0dHksIF9fZm4pICAgICAgICAgICAgICAgICAgICAgIFwKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UMSwgdHlwZW5hbWUgX19UMj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIHR5cGVuYW1lIF9fY2xhbmdfY3VkYV9lbmFibGVfaWY8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxfX1QxPjo6aXNfc3BlY2lhbGl6ZWQgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8X19UMj46OmlzX3NwZWNpYWxpemVkLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19yZXR0eT46OnR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2ZuKF9fVDEgX194LCBfX1QyIF9feSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX2ZuKChkb3VibGUpX194LCAoZG91YmxlKV9feSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYWNvcykKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGFjb3NoKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYXNpbikKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGFzaW5oKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgYXRhbikKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGF0YW4yKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGF0YW5oKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgY2JydCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGNlaWwpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCBjb3B5c2lnbik7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBjb3MpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBjb3NoKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZXJmKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgZXJmYykKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGV4cCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGV4cDIpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBleHBtMSkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGZhYnMpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCBmZGltKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGZsb29yKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgZm1heCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCBmbWluKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGZtb2QpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGludCwgZnBjbGFzc2lmeSkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIGh5cG90KTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShpbnQsIGlsb2diKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGJvb2wsIGlzZmluaXRlKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGJvb2wsIGlzZ3JlYXRlcik7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoYm9vbCwgaXNncmVhdGVyZXF1YWwpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGJvb2wsIGlzaW5mKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihib29sLCBpc2xlc3MpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGJvb2wsIGlzbGVzc2VxdWFsKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihib29sLCBpc2xlc3NncmVhdGVyKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShib29sLCBpc25hbik7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoYm9vbCwgaXNub3JtYWwpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoYm9vbCwgaXN1bm9yZGVyZWQpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgbGdhbW1hKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgbG9nKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgbG9nMTApCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBsb2cxcCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIGxvZzIpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBsb2diKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGxvbmcgbG9uZywgbGxyaW50KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGxvbmcgbG9uZywgbGxyb3VuZCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShsb25nLCBscmludCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShsb25nLCBscm91bmQpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBuZWFyYnlpbnQpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yKGRvdWJsZSwgbmV4dGFmdGVyKTsKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMihkb3VibGUsIHBvdyk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzIoZG91YmxlLCByZW1haW5kZXIpOwpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgcmludCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCByb3VuZCk7Cl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoYm9vbCwgc2lnbmJpdCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHNpbikKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHNpbmgpCl9fQ1VEQV9DTEFOR19GTl9JTlRFR0VSX09WRVJMT0FEXzEoZG91YmxlLCBzcXJ0KQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgdGFuKQpfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xKGRvdWJsZSwgdGFuaCkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHRnYW1tYSkKX19DVURBX0NMQU5HX0ZOX0lOVEVHRVJfT1ZFUkxPQURfMShkb3VibGUsIHRydW5jKTsKCiN1bmRlZiBfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8xCiN1bmRlZiBfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF8yCgovLyBPdmVybG9hZHMgZm9yIGZ1bmN0aW9ucyB0aGF0IGRvbid0IG1hdGNoIHRoZSBwYXR0ZXJucyBleHBlY3RlZCBieQovLyBfX0NVREFfQ0xBTkdfRk5fSU5URUdFUl9PVkVSTE9BRF97MSwyfS4KdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDIsIHR5cGVuYW1lIF9fVDM+Cl9fREVWSUNFX18gdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjwKICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8X19UMT46OmlzX3NwZWNpYWxpemVkICYmCiAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxfX1QyPjo6aXNfc3BlY2lhbGl6ZWQgJiYKICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPF9fVDM+Ojppc19zcGVjaWFsaXplZCwKICAgIGRvdWJsZT46OnR5cGUKZm1hKF9fVDEgX194LCBfX1QyIF9feSwgX19UMyBfX3opIHsKICByZXR1cm4gc3RkOjpmbWEoKGRvdWJsZSlfX3gsIChkb3VibGUpX195LCAoZG91YmxlKV9feik7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+Cl9fREVWSUNFX18gdHlwZW5hbWUgX19jbGFuZ19jdWRhX2VuYWJsZV9pZjxzdGQ6Om51bWVyaWNfbGltaXRzPF9fVD46OmlzX2ludGVnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGU+Ojp0eXBlCmZyZXhwKF9fVCBfX3gsIGludCAqX19leHApIHsKICByZXR1cm4gc3RkOjpmcmV4cCgoZG91YmxlKV9feCwgX19leHApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPgpfX0RFVklDRV9fIHR5cGVuYW1lIF9fY2xhbmdfY3VkYV9lbmFibGVfaWY8c3RkOjpudW1lcmljX2xpbWl0czxfX1Q+Ojppc19pbnRlZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlPjo6dHlwZQpsZGV4cChfX1QgX194LCBpbnQgX19leHApIHsKICByZXR1cm4gc3RkOjpsZGV4cCgoZG91YmxlKV9feCwgX19leHApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UMSwgdHlwZW5hbWUgX19UMj4KX19ERVZJQ0VfXyB0eXBlbmFtZSBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPAogICAgc3RkOjpudW1lcmljX2xpbWl0czxfX1QxPjo6aXNfc3BlY2lhbGl6ZWQgJiYKICAgICAgICBzdGQ6Om51bWVyaWNfbGltaXRzPF9fVDI+Ojppc19zcGVjaWFsaXplZCwKICAgIGRvdWJsZT46OnR5cGUKcmVtcXVvKF9fVDEgX194LCBfX1QyIF9feSwgaW50ICpfX3F1bykgewogIHJldHVybiBzdGQ6OnJlbXF1bygoZG91YmxlKV9feCwgKGRvdWJsZSlfX3ksIF9fcXVvKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyB0eXBlbmFtZSBfX2NsYW5nX2N1ZGFfZW5hYmxlX2lmPHN0ZDo6bnVtZXJpY19saW1pdHM8X19UPjo6aXNfaW50ZWdlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZT46OnR5cGUKc2NhbGJsbihfX1QgX194LCBsb25nIF9fZXhwKSB7CiAgcmV0dXJuIHN0ZDo6c2NhbGJsbigoZG91YmxlKV9feCwgX19leHApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPgpfX0RFVklDRV9fIHR5cGVuYW1lIF9fY2xhbmdfY3VkYV9lbmFibGVfaWY8c3RkOjpudW1lcmljX2xpbWl0czxfX1Q+Ojppc19pbnRlZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlPjo6dHlwZQpzY2FsYm4oX19UIF9feCwgaW50IF9fZXhwKSB7CiAgcmV0dXJuIHN0ZDo6c2NhbGJuKChkb3VibGUpX194LCBfX2V4cCk7Cn0KCi8vIFdlIG5lZWQgdG8gZGVmaW5lIHRoZXNlIG92ZXJsb2FkcyBpbiBleGFjdGx5IHRoZSBuYW1lc3BhY2Ugb3VyIHN0YW5kYXJkCi8vIGxpYnJhcnkgdXNlcyAoaW5jbHVkaW5nIHRoZSByaWdodCBpbmxpbmUgbmFtZXNwYWNlKSwgb3RoZXJ3aXNlIHRoZXkgd29uJ3QgYmUKLy8gcGlja2VkIHVwIGJ5IG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSAoZS5nLiBmdW5jdGlvbnMgaW4KLy8gPGNvbXBsZXg+KS4gIFRodXMgdGhlIHVnbGluZXNzIGJlbG93LgojaWZkZWYgX0xJQkNQUF9CRUdJTl9OQU1FU1BBQ0VfU1RECl9MSUJDUFBfQkVHSU5fTkFNRVNQQUNFX1NURAojZWxzZQpuYW1lc3BhY2Ugc3RkIHsKI2lmZGVmIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCl9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiNlbmRpZgojZW5kaWYKCi8vIFB1bGwgdGhlIG5ldyBvdmVybG9hZHMgd2UgZGVmaW5lZCBhYm92ZSBpbnRvIG5hbWVzcGFjZSBzdGQuCnVzaW5nIDo6YWNvczsKdXNpbmcgOjphY29zaDsKdXNpbmcgOjphc2luOwp1c2luZyA6OmFzaW5oOwp1c2luZyA6OmF0YW47CnVzaW5nIDo6YXRhbjI7CnVzaW5nIDo6YXRhbmg7CnVzaW5nIDo6Y2JydDsKdXNpbmcgOjpjZWlsOwp1c2luZyA6OmNvcHlzaWduOwp1c2luZyA6OmNvczsKdXNpbmcgOjpjb3NoOwp1c2luZyA6OmVyZjsKdXNpbmcgOjplcmZjOwp1c2luZyA6OmV4cDsKdXNpbmcgOjpleHAyOwp1c2luZyA6OmV4cG0xOwp1c2luZyA6OmZhYnM7CnVzaW5nIDo6ZmRpbTsKdXNpbmcgOjpmbG9vcjsKdXNpbmcgOjpmbWE7CnVzaW5nIDo6Zm1heDsKdXNpbmcgOjpmbWluOwp1c2luZyA6OmZtb2Q7CnVzaW5nIDo6ZnBjbGFzc2lmeTsKdXNpbmcgOjpmcmV4cDsKdXNpbmcgOjpoeXBvdDsKdXNpbmcgOjppbG9nYjsKdXNpbmcgOjppc2Zpbml0ZTsKdXNpbmcgOjppc2dyZWF0ZXI7CnVzaW5nIDo6aXNncmVhdGVyZXF1YWw7CnVzaW5nIDo6aXNsZXNzOwp1c2luZyA6OmlzbGVzc2VxdWFsOwp1c2luZyA6OmlzbGVzc2dyZWF0ZXI7CnVzaW5nIDo6aXNub3JtYWw7CnVzaW5nIDo6aXN1bm9yZGVyZWQ7CnVzaW5nIDo6bGRleHA7CnVzaW5nIDo6bGdhbW1hOwp1c2luZyA6OmxscmludDsKdXNpbmcgOjpsbHJvdW5kOwp1c2luZyA6OmxvZzsKdXNpbmcgOjpsb2cxMDsKdXNpbmcgOjpsb2cxcDsKdXNpbmcgOjpsb2cyOwp1c2luZyA6OmxvZ2I7CnVzaW5nIDo6bHJpbnQ7CnVzaW5nIDo6bHJvdW5kOwp1c2luZyA6Om5lYXJieWludDsKdXNpbmcgOjpuZXh0YWZ0ZXI7CnVzaW5nIDo6cG93Owp1c2luZyA6OnJlbWFpbmRlcjsKdXNpbmcgOjpyZW1xdW87CnVzaW5nIDo6cmludDsKdXNpbmcgOjpyb3VuZDsKdXNpbmcgOjpzY2FsYmxuOwp1c2luZyA6OnNjYWxibjsKdXNpbmcgOjpzaWduYml0Owp1c2luZyA6OnNpbjsKdXNpbmcgOjpzaW5oOwp1c2luZyA6OnNxcnQ7CnVzaW5nIDo6dGFuOwp1c2luZyA6OnRhbmg7CnVzaW5nIDo6dGdhbW1hOwp1c2luZyA6OnRydW5jOwoKLy8gV2VsbCB0aGlzIGlzIGZ1bjogV2UgbmVlZCB0byBwdWxsIHRoZXNlIHN5bWJvbHMgaW4gZm9yIGxpYmMrKywgYnV0IHdlIGNhbid0Ci8vIHB1bGwgdGhlbSBpbiB3aXRoIGxpYnN0ZGMrKywgYmVjYXVzZSBpdHMgOjppc2luZiBhbmQgOjppc25hbiBhcmUgZGlmZmVyZW50Ci8vIHRoYW4gaXRzIHN0ZDo6aXNpbmYgYW5kIHN0ZDo6aXNuYW4uCiNpZm5kZWYgX19HTElCQ1hYX18KdXNpbmcgOjppc2luZjsKdXNpbmcgOjppc25hbjsKI2VuZGlmCgovLyBGaW5hbGx5LCBwdWxsIHRoZSAiZm9vYmFyZiIgZnVuY3Rpb25zIHRoYXQgQ1VEQSBkZWZpbmVzIGluIGl0cyBoZWFkZXJzIGludG8KLy8gbmFtZXNwYWNlIHN0ZC4KdXNpbmcgOjphY29zZjsKdXNpbmcgOjphY29zaGY7CnVzaW5nIDo6YXNpbmY7CnVzaW5nIDo6YXNpbmhmOwp1c2luZyA6OmF0YW4yZjsKdXNpbmcgOjphdGFuZjsKdXNpbmcgOjphdGFuaGY7CnVzaW5nIDo6Y2JydGY7CnVzaW5nIDo6Y2VpbGY7CnVzaW5nIDo6Y29weXNpZ25mOwp1c2luZyA6OmNvc2Y7CnVzaW5nIDo6Y29zaGY7CnVzaW5nIDo6ZXJmY2Y7CnVzaW5nIDo6ZXJmZjsKdXNpbmcgOjpleHAyZjsKdXNpbmcgOjpleHBmOwp1c2luZyA6OmV4cG0xZjsKdXNpbmcgOjpmYWJzZjsKdXNpbmcgOjpmZGltZjsKdXNpbmcgOjpmbG9vcmY7CnVzaW5nIDo6Zm1hZjsKdXNpbmcgOjpmbWF4ZjsKdXNpbmcgOjpmbWluZjsKdXNpbmcgOjpmbW9kZjsKdXNpbmcgOjpmcmV4cGY7CnVzaW5nIDo6aHlwb3RmOwp1c2luZyA6Omlsb2diZjsKdXNpbmcgOjpsZGV4cGY7CnVzaW5nIDo6bGdhbW1hZjsKdXNpbmcgOjpsbHJpbnRmOwp1c2luZyA6Omxscm91bmRmOwp1c2luZyA6OmxvZzEwZjsKdXNpbmcgOjpsb2cxcGY7CnVzaW5nIDo6bG9nMmY7CnVzaW5nIDo6bG9nYmY7CnVzaW5nIDo6bG9nZjsKdXNpbmcgOjpscmludGY7CnVzaW5nIDo6bHJvdW5kZjsKdXNpbmcgOjptb2RmZjsKdXNpbmcgOjpuZWFyYnlpbnRmOwp1c2luZyA6Om5leHRhZnRlcmY7CnVzaW5nIDo6cG93ZjsKdXNpbmcgOjpyZW1haW5kZXJmOwp1c2luZyA6OnJlbXF1b2Y7CnVzaW5nIDo6cmludGY7CnVzaW5nIDo6cm91bmRmOwp1c2luZyA6OnNjYWxibG5mOwp1c2luZyA6OnNjYWxibmY7CnVzaW5nIDo6c2luZjsKdXNpbmcgOjpzaW5oZjsKdXNpbmcgOjpzcXJ0ZjsKdXNpbmcgOjp0YW5mOwp1c2luZyA6OnRhbmhmOwp1c2luZyA6OnRnYW1tYWY7CnVzaW5nIDo6dHJ1bmNmOwoKI2lmZGVmIF9MSUJDUFBfRU5EX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURAojZWxzZQojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCiNlbmRpZgp9IC8vIG5hbWVzcGFjZSBzdGQKI2VuZGlmCgojZW5kaWYgLy8gX19PUEVOTVBfTlZQVFhfXwoKI3VuZGVmIF9fREVWSUNFX18KCiNlbmRpZgoAX193bW1pbnRyaW5fcGNsbXVsLmgAYWx0aXZlYy5oAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJid2ludHJpbi5oIC0gQVZYNTEyQlcgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJid2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJCV0lOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJCV0lOVFJJTl9ICgp0eXBlZGVmIHVuc2lnbmVkIGludCBfX21tYXNrMzI7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fbW1hc2s2NDsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJidyIpKSkKCnN0YXRpYyBfX2lubGluZSBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rbm90X21hc2szMihfX21tYXNrMzIgX19NKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2tub3RzaShfX00pOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfa25vdF9tYXNrNjQoX19tbWFzazY0IF9fTSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9rbm90ZGkoX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfa2FuZF9tYXNrMzIoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2thbmRzaSgoX19tbWFzazMyKV9fQSwgKF9fbW1hc2szMilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9rYW5kX21hc2s2NChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa2FuZGRpKChfX21tYXNrNjQpX19BLCAoX19tbWFzazY0KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX2thbmRuX21hc2szMihfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa2FuZG5zaSgoX19tbWFzazMyKV9fQSwgKF9fbW1hc2szMilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9rYW5kbl9tYXNrNjQoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2thbmRuZGkoKF9fbW1hc2s2NClfX0EsIChfX21tYXNrNjQpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29yX21hc2szMihfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa29yc2koKF9fbW1hc2szMilfX0EsIChfX21tYXNrMzIpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfa29yX21hc2s2NChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa29yZGkoKF9fbW1hc2s2NClfX0EsIChfX21tYXNrNjQpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3hub3JfbWFzazMyKF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9reG5vcnNpKChfX21tYXNrMzIpX19BLCAoX19tbWFzazMyKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2t4bm9yX21hc2s2NChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa3hub3JkaSgoX19tbWFzazY0KV9fQSwgKF9fbW1hc2s2NClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9reG9yX21hc2szMihfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa3hvcnNpKChfX21tYXNrMzIpX19BLCAoX19tbWFzazMyKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2t4b3JfbWFzazY0KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9reG9yZGkoKF9fbW1hc2s2NClfX0EsIChfX21tYXNrNjQpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3RjX21hc2szMl91OChfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3Rjc2koX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdHpfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdHpzaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0X21hc2szMl91OChfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CLCB1bnNpZ25lZCBjaGFyICpfX0MpIHsKICAqX19DID0gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdGNzaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3R6c2koX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdGNfbWFzazY0X3U4KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdGNkaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0el9tYXNrNjRfdTgoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0emRpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3RfbWFzazY0X3U4KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y2RpKF9fQSwgX19CKTsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdHpkaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdGNfbWFzazMyX3U4KF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3Rjc2koX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3R6X21hc2szMl91OChfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0enNpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0X21hc2szMl91OChfX21tYXNrMzIgX19BLCBfX21tYXNrMzIgX19CLCB1bnNpZ25lZCBjaGFyICpfX0MpIHsKICAqX19DID0gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3Rjc2koX19BLCBfX0IpOwogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdHpzaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdGNfbWFzazY0X3U4KF9fbW1hc2s2NCBfX0EsIF9fbW1hc2s2NCBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3RjZGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3R6X21hc2s2NF91OChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0emRpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0X21hc2s2NF91OChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CLCB1bnNpZ25lZCBjaGFyICpfX0MpIHsKICAqX19DID0gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3RjZGkoX19BLCBfX0IpOwogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdHpkaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMKX2thZGRfbWFzazMyKF9fbW1hc2szMiBfX0EsIF9fbW1hc2szMiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rYWRkc2koKF9fbW1hc2szMilfX0EsIChfX21tYXNrMzIpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfa2FkZF9tYXNrNjQoX19tbWFzazY0IF9fQSwgX19tbWFzazY0IF9fQikKewogIHJldHVybiAoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2thZGRkaSgoX19tbWFzazY0KV9fQSwgKF9fbW1hc2s2NClfX0IpOwp9CgojZGVmaW5lIF9rc2hpZnRsaV9tYXNrMzIoQSwgSSkgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2tzaGlmdGxpc2koKF9fbW1hc2szMikoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCiNkZWZpbmUgX2tzaGlmdHJpX21hc2szMihBLCBJKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfa3NoaWZ0cmlzaSgoX19tbWFzazMyKShBKSwgKHVuc2lnbmVkIGludCkoSSkpKQoKI2RlZmluZSBfa3NoaWZ0bGlfbWFzazY0KEEsIEkpIFwKICAoKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9rc2hpZnRsaWRpKChfX21tYXNrNjQpKEEpLCAodW5zaWduZWQgaW50KShJKSkpCgojZGVmaW5lIF9rc2hpZnRyaV9tYXNrNjQoQSwgSSkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2tzaGlmdHJpZGkoKF9fbW1hc2s2NCkoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dG1hc2szMl91MzIoX19tbWFzazMyIF9fQSkgewogIHJldHVybiAodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX2ttb3ZkKChfX21tYXNrMzIpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0bWFzazY0X3U2NChfX21tYXNrNjQgX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfa21vdnEoKF9fbW1hc2s2NClfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9jdnR1MzJfbWFzazMyKHVuc2lnbmVkIGludCBfX0EpIHsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rbW92ZCgoX19tbWFzazMyKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dHU2NF9tYXNrNjQodW5zaWduZWQgbG9uZyBsb25nIF9fQSkgewogIHJldHVybiAoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2ttb3ZxKChfX21tYXNrNjQpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUwpfbG9hZF9tYXNrMzIoX19tbWFzazMyICpfX0EpIHsKICByZXR1cm4gKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9rbW92ZCgqKF9fbW1hc2szMiAqKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX2xvYWRfbWFzazY0KF9fbW1hc2s2NCAqX19BKSB7CiAgcmV0dXJuIChfX21tYXNrNjQpX19idWlsdGluX2lhMzJfa21vdnEoKihfX21tYXNrNjQgKilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfc3RvcmVfbWFzazMyKF9fbW1hc2szMiAqX19BLCBfX21tYXNrMzIgX19CKSB7CiAgKihfX21tYXNrMzIgKilfX0EgPSBfX2J1aWx0aW5faWEzMl9rbW92ZCgoX19tbWFzazMyKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9zdG9yZV9tYXNrNjQoX19tbWFzazY0ICpfX0EsIF9fbW1hc2s2NCBfX0IpIHsKICAqKF9fbW1hc2s2NCAqKV9fQSA9IF9fYnVpbHRpbl9pYTMyX2ttb3ZxKChfX21tYXNrNjQpX19CKTsKfQoKLyogSW50ZWdlciBjb21wYXJlICovCgojZGVmaW5lIF9tbTUxMl9jbXBfZXBpOF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl9jbXBiNTEyX21hc2soKF9fdjY0cWkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s2NCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcGk4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX2NtcGI1MTJfbWFzaygoX192NjRxaSkoX19tNTEyaSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazY0KShtKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfZXB1OF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s2NClfX2J1aWx0aW5faWEzMl91Y21wYjUxMl9tYXNrKChfX3Y2NHFpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s2NCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcHU4X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazY0KV9fYnVpbHRpbl9pYTMyX3VjbXBiNTEyX21hc2soKF9fdjY0cWkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazY0KShtKSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfZXBpMTZfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfY21wdzUxMl9tYXNrKChfX3YzMmhpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfZXBpMTZfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfY21wdzUxMl9tYXNrKChfX3YzMmhpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKG0pKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9lcHUxNl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl91Y21wdzUxMl9tYXNrKChfX3YzMmhpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl91Y21wdzUxMl9tYXNrKChfX3YzMmhpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikobSkpKQoKI2RlZmluZSBfbW01MTJfY21wZXFfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBnZV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcGk4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfY21wbGVfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsdF9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW01MTJfY21wZXFfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBnZV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9jbXBndF9lcHU4X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfY21wbGVfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsdF9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9jbXBuZXFfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW01MTJfY21wZXFfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9jbXBnZV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBnZV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX2NtcGd0X2VwaTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGd0X2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfY21wbGVfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9jbXBsdF9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsdF9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBuZXFfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKI2RlZmluZSBfbW01MTJfY21wZXFfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0VRKQojZGVmaW5lIF9tbTUxMl9jbXBnZV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBnZV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tNTEyX2NtcGd0X2VwdTE2X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGd0X2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW01MTJfY21wbGVfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0xFKQojZGVmaW5lIF9tbTUxMl9jbXBsdF9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsdF9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9ORSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBuZXFfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZF9lcGk4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpICgoX192NjRxdSkgX19BICsgKF9fdjY0cXUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZF9lcGk4KF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3ViX2VwaTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3Y2NHF1KSBfX0EgLSAoX192NjRxdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3ViX2VwaTgoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3N1Yl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1Yl9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3N1Yl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRfZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3YzMmh1KSBfX0EgKyAoX192MzJodSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2FkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3ViX2VwaTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpICgoX192MzJodSkgX19BIC0gKF9fdjMyaHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3ViX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1Yl9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zdWJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGxvX2VwaTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpICgoX192MzJodSkgX19BICogKF9fdjMyaHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bGxvX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxsb19lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tdWxsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19ibGVuZF9lcGk4IChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX1cpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyICgoX19tbWFzazY0KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fVywKICAgICAgICAgICAgICAoX192NjRxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYmxlbmRfZXBpMTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fVykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIgKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAoX192MzJoaSkgX19XLAogICAgICAgICAgICAgIChfX3YzMmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWJzX2VwaTggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhYnNiNTEyKChfX3Y2NHFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Fic19lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hYnNfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWJzX2VwaTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfYWJzX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhYnN3NTEyKChfX3YzMmhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Fic19lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWJzX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hYnNfZXBpMTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWJzX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGFja3NfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhY2tzc2R3NTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3BhY2tzX2VwaTMyKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3BhY2tzX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9wYWNrc19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wYWNrc19lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFja3Nzd2I1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGFja3NfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9wYWNrc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGFja3NfZXBpMTYoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3BhY2tzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGFja3VzX2VwaTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWNrdXNkdzUxMigoX192MTZzaSkgX19BLCAoX192MTZzaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3BhY2t1c19lcGkzMihfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9wYWNrdXNfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGFja3VzX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9wYWNrdXNfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGFja3VzX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWNrdXN3YjUxMigoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGFja3VzX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfcGFja3VzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wYWNrdXNfZXBpMTYoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3BhY2t1c19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZHNfZXBpOCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhZGRzYjUxMigoX192NjRxaSlfX0EsIChfX3Y2NHFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZHNfZXBpOCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hZGRzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FkZHNfZXBpOCAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FkZHNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FkZHNfZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWRkc3c1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hZGRzX2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2FkZHNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FkZHNfZXBpMTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hZGRzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkc19lcHU4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFkZHVzYjUxMigoX192NjRxaSkgX19BLCAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkc19lcHU4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2FkZHNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkc19lcHU4IChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfYWRkc19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkc19lcHUxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhZGR1c3c1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjMyaGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZHNfZXB1MTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfYWRkc19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkc19lcHUxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2FkZHNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hdmdfZXB1OCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhdmdiNTEyKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYXZnX2VwdTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwKICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hdmdfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2F2Z19lcHU4IChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX2F2Z19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2F2Z19lcHUxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Bhdmd3NTEyKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYXZnX2VwdTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2F2Z19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2F2Z19lcHUxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9hdmdfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9lcGk4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1heHNiNTEyKChfX3Y2NHFpKSBfX0EsIChfX3Y2NHFpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X2VwaTggKF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX21heF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfbWF4X2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWF4X2VwaTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1heHN3NTEyKChfX3YzMmhpKSBfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X2VwaTE2IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLAogICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9tYXhfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXB1OCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYXh1YjUxMigoX192NjRxaSlfX0EsIChfX3Y2NHFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXB1OCAoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfbWF4X2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwdTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tYXhfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXB1MTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4dXc1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X2VwdTE2IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21heF9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9lcHUxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWF4X2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX2VwaTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWluc2I1MTIoKF9fdjY0cWkpIF9fQSwgKF9fdjY0cWkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXBpOCAoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfbWluX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9taW5fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXBpMTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWluc3c1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjMyaGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXBpMTYgKF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWluX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXB1OCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW51YjUxMigoX192NjRxaSlfX0EsIChfX3Y2NHFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXB1OCAoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfbWluX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwdTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9taW5fZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXB1MTYgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWludXc1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX2VwdTE2IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21pbl9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9lcHUxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2h1ZmZsZV9lcGk4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2h1ZmI1MTIoKF9fdjY0cWkpX19BLChfX3Y2NHFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NodWZmbGVfZXBpOChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zaHVmZmxlX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zaHVmZmxlX2VwaTgoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zaHVmZmxlX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3Vic19lcGk4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHN1YnNiNTEyKChfX3Y2NHFpKV9fQSwgKF9fdjY0cWkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3Vic19lcGk4IChfX201MTJpIF9fVywgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3N1YnNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Vic19lcGk4IChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc3Vic19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3Vic19lcGkxNiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzdWJzdzUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1YnNfZXBpMTYgKF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Vic19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Vic19lcGkxNiAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3N1YnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJzX2VwdTggKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3VidXNiNTEyKChfX3Y2NHFpKSBfX0EsIChfX3Y2NHFpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJzX2VwdTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoKF9fbW1hc2s2NClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc3Vic19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJzX2VwdTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zdWJzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJzX2VwdTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHN1YnVzdzUxMigoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3Vic19lcHUxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zdWJzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJzX2VwdTE2IChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Vic19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4MnZhcl9lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJoaTUxMigoX192MzJoaSlfX0EsIChfX3YzMmhpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4MnZhcl9lcGkxNihfX201MTJpIF9fQSwgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrMzIgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4MnZhcl9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTE2KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGhyc19lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG11bGhyc3c1MTIoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxocnNfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaHJzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsaHJzX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaHJzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGhpX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbXVsaHc1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjMyaGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bGhpX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwKICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsaGlfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGhpX2VwdTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbXVsaHV3NTEyKChfX3YzMmhpKSBfX0EsIChfX3YzMmhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxoaV9lcHUxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbXVsaGlfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsaGlfZXB1MTYgKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX211bGhpX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYWRkdWJzX2VwaTE2KF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWFkZHVic3c1MTIoKF9fdjY0cWkpX19YLCAoX192NjRxaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYWRkdWJzX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fWSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfbWFkZHVic19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWFkZHVic19lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX21hZGR1YnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYWRkX2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWFkZHdkNTEyKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWFkZF9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21hZGRfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpMTZfZXBpOCAoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2I1MTJfbWFzayAoKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2szMikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpMTZfZXBpOCAoX19tMjU2aSBfX08sIF9fbW1hc2szMiBfX00sIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YzMnFpKV9fTywKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHNlcGkxNl9lcGk4IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjUxMl9tYXNrICgoX192MzJoaSkgX19BLAogICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHVzZXBpMTZfZXBpOCAoX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrMzIpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGkxNl9lcGk4IChfX20yNTZpIF9fTywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHVzZXBpMTZfZXBpOCAoX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3diNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGkxNl9lcGk4IChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdndiNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwKICAgICAgICAgICAgICAoX19tbWFzazMyKSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTE2X2VwaTggKF9fbTI1NmkgX19PLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdndiNTEyX21hc2sgKChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9fTywKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMTZfZXBpOCAoX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z3YjUxMl9tYXNrICgoX192MzJoaSkgX19BLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z3YjUxMm1lbV9tYXNrICgoX192MzJxaSAqKSBfX1AsIChfX3YzMmhpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3diNTEybWVtX21hc2sgKChfX3YzMnFpICopIF9fUCwgKF9fdjMyaGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjUxMm1lbV9tYXNrICgoX192MzJxaSAqKSBfX1AsIChfX3YzMmhpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2toaV9lcGk4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NjRxaSlfX0EsIChfX3Y2NHFpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOCwgIDY0KzgsICAgOSwgNjQrOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAsIDY0KzEwLCAxMSwgNjQrMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLCA2NCsxMiwgMTMsIDY0KzEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNCwgNjQrMTQsIDE1LCA2NCsxNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjQsIDY0KzI0LCAyNSwgNjQrMjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI2LCA2NCsyNiwgMjcsIDY0KzI3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOCwgNjQrMjgsIDI5LCA2NCsyOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzAsIDY0KzMwLCAzMSwgNjQrMzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQwLCA2NCs0MCwgNDEsIDY0KzQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0MiwgNjQrNDIsIDQzLCA2NCs0MywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNDQsIDY0KzQ0LCA0NSwgNjQrNDUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ2LCA2NCs0NiwgNDcsIDY0KzQ3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NiwgNjQrNTYsIDU3LCA2NCs1NywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTgsIDY0KzU4LCA1OSwgNjQrNTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYwLCA2NCs2MCwgNjEsIDY0KzYxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2MiwgNjQrNjIsIDYzLCA2NCs2Myk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2hpX2VwaTgoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2toaV9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNraGlfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAgMzIrNCwgICA1LCAzMis1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LCAgMzIrNiwgICA3LCAzMis3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMiwgMzIrMTIsIDEzLCAzMisxMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTQsIDMyKzE0LCAxNSwgMzIrMTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLCAzMisyMCwgMjEsIDMyKzIxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMiwgMzIrMjIsIDIzLCAzMisyMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjgsIDMyKzI4LCAyOSwgMzIrMjksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMwLCAzMiszMCwgMzEsIDMyKzMxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNraGlfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3VucGFja2hpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2hpX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3VucGFja2hpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2tsb19lcGk4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NjRxaSlfX0EsIChfX3Y2NHFpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgIDY0KzAsICAgMSwgNjQrMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiwgIDY0KzIsICAgMywgNjQrMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNCwgIDY0KzQsICAgNSwgNjQrNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNiwgIDY0KzYsICAgNywgNjQrNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsIDY0KzE2LCAxNywgNjQrMTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LCA2NCsxOCwgMTksIDY0KzE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyMCwgNjQrMjAsIDIxLCA2NCsyMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjIsIDY0KzIyLCAyMywgNjQrMjMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyLCA2NCszMiwgMzMsIDY0KzMzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzNCwgNjQrMzQsIDM1LCA2NCszNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMzYsIDY0KzM2LCAzNywgNjQrMzcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDM4LCA2NCszOCwgMzksIDY0KzM5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0OCwgNjQrNDgsIDQ5LCA2NCs0OSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTAsIDY0KzUwLCA1MSwgNjQrNTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUyLCA2NCs1MiwgNTMsIDY0KzUzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1NCwgNjQrNTQsIDU1LCA2NCs1NSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2xvX2VwaTgoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl91bnBhY2tsb19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2tsb19lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMigoX19tbWFzazY0KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl91bnBhY2tsb19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNrbG9fZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAgMzIrMCwgICAxLCAzMisxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCAgMzIrMiwgICAzLCAzMiszLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4LCAgMzIrOCwgICA5LCAzMis5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMCwgMzIrMTAsIDExLCAzMisxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTYsIDMyKzE2LCAxNywgMzIrMTcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE4LCAzMisxOCwgMTksIDMyKzE5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNCwgMzIrMjQsIDI1LCAzMisyNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjYsIDMyKzI2LCAyNywgMzIrMjcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2tsb19lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNrbG9fZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaThfZXBpMTYoX19tMjU2aSBfX0EpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YzMnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YzMnFzLiAqLwogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MzJxcylfX0EsIF9fdjMyaGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk4X2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dGVwaThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaThfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9jdnRlcGk4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1OF9lcGkxNihfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MzJxdSlfX0EsIF9fdjMyaGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHU4X2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdThfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9jdnRlcHU4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZWhpX2VwaTE2KEEsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2h1Zmh3NTEyKChfX3YzMmhpKShfX201MTJpKShBKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVoaV9lcGkxNihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NodWZmbGVoaV9lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVoaV9lcGkxNihVLCBBLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NodWZmbGVoaV9lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlbG9fZXBpMTYoQSwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzaHVmbHc1MTIoKF9fdjMyaGkpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVsb19lcGkxNihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NodWZmbGVsb19lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpKF9fbTUxMmkpKFcpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlbG9fZXBpMTYoVSwgQSwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zaHVmZmxlbG9fZXBpMTYoKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbHZfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGx2MzJoaSgoX192MzJoaSkgX19BLCAoX192MzJoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsdl9lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zbGx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGx2X2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zbGx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsX2VwaTE2KF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2xsdzUxMigoX192MzJoaSkgX19BLCAoX192OGhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zbGxfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NsbF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2xsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zbGxpX2VwaTE2KF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGx3aTUxMigoX192MzJoaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbGlfZXBpMTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NsbGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxpX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zbGxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfYnNsbGlfZXBpMTI4KGEsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc2xsZHFpNTEyX2J5dGVzaGlmdCgoX192OGRpKShfX201MTJpKShhKSwgKGludCkoaW1tKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3Jsdl9lcGkxNihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybHYzMmhpKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3Jsdl9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybHZfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmF2X2VwaTE2KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhdjMyaGkoKF9fdjMyaGkpX19BLCAoX192MzJoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmF2X2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Jhdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jhdl9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3Jhdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYV9lcGkxNihfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYXc1MTIoKF9fdjMyaGkpIF9fQSwgKF9fdjhoaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JhX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmFfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JhX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NyYV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JhaV9lcGkxNihfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3Jhd2k1MTIoKF9fdjMyaGkpX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmFpX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmFpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3JhaV9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3JhaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmxfZXBpMTYoX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Bzcmx3NTEyKChfX3YzMmhpKSBfX0EsIChfX3Y4aGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybF9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3JsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybF9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zcmxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybGlfZXBpMTYoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybHdpNTEyKChfX3YzMmhpKV9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JsaV9lcGkxNihfX201MTJpIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc3JsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybGlfZXBpMTYoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NybGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9ic3JsaV9lcGkxMjgoYSwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmxkcWk1MTJfYnl0ZXNoaWZ0KChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCAoaW50KShpbW0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdl9lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMiAoKF9fbW1hc2szMikgX19VLAogICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92X2VwaTE2IChfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIgKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldHplcm9fc2k1MTIgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tb3ZfZXBpOCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMiAoKF9fbW1hc2s2NCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92X2VwaTggKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMiAoKF9fbW1hc2s2NCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NldDFfZXBpOCAoX19tNTEyaSBfX08sIF9fbW1hc2s2NCBfX00sIGNoYXIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NldDFfZXBpOCAoX19tbWFzazY0IF9fTSwgY2hhciBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2t1bnBhY2tkIChfX21tYXNrNjQgX19BLCBfX21tYXNrNjQgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpIF9fYnVpbHRpbl9pYTMyX2t1bnBja2RpICgoX19tbWFzazY0KSBfX0EsCiAgICAgICAgICAgICAgICAoX19tbWFzazY0KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9rdW5wYWNrdyAoX19tbWFzazMyIF9fQSwgX19tbWFzazMyIF9fQikKewogIHJldHVybiAoX19tbWFzazMyKSBfX2J1aWx0aW5faWEzMl9rdW5wY2tzaSAoKF9fbW1hc2szMikgX19BLAogICAgICAgICAgICAgICAgKF9fbW1hc2szMikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkdV9lcGkxNiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpMTYgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGkxNiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9lcGkxNiAoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWhpNTEyX21hc2sgKChjb25zdCBfX3YzMmhpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MzJoaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMzIpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkdV9lcGkxNiAoX19tbWFzazMyIF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1aGk1MTJfbWFzayAoKGNvbnN0IF9fdjMyaGkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YzMmhpKQogICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMzIpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZHVfZXBpOCAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpOCB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTgqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZHVfZXBpOCAoX19tNTEyaSBfX1csIF9fbW1hc2s2NCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXFpNTEyX21hc2sgKChjb25zdCBfX3Y2NHFpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192NjRxaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrNjQpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkdV9lcGk4IChfX21tYXNrNjQgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVxaTUxMl9tYXNrICgoY29uc3QgX192NjRxaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjY0cWkpCiAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s2NCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpMTYgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGkxNiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdWhpNTEyX21hc2sgKChfX3YzMmhpICopIF9fUCwKICAgICAgICAgICAgIChfX3YzMmhpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazMyKSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9lcGk4ICh2b2lkICpfX1AsIF9fbTUxMmkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTggewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGk4KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N0b3JldV9lcGk4ICh2b2lkICpfX1AsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVxaTUxMl9tYXNrICgoX192NjRxaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192NjRxaSkgX19BLAogICAgICAgICAgICAgKF9fbW1hc2s2NCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdF9lcGk4X21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wbmVxX2VwaThfbWFzayAoX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s2NCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdF9lcGk4X21hc2sgKF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19jbXBuZXFfZXBpOF9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Rlc3RfZXBpMTZfbWFzayAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9jbXBuZXFfZXBpMTZfbWFzayAoX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RfZXBpMTZfbWFzayAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGkxNl9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0bl9lcGk4X21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wZXFfZXBpOF9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RuX2VwaThfbWFzayAoX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcGVxX2VwaThfbWFzayAoX19VLCBfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Rlc3RuX2VwaTE2X21hc2sgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfY21wZXFfZXBpMTZfbWFzayAoX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdGVzdG5fZXBpMTZfbWFzayAoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcGVxX2VwaTE2X21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbW92ZXBpOF9tYXNrIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tbWFzazY0KSBfX2J1aWx0aW5faWEzMl9jdnRiMm1hc2s1MTIgKChfX3Y2NHFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlcGkxNl9tYXNrIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tbWFzazMyKSBfX2J1aWx0aW5faWEzMl9jdnR3Mm1hc2s1MTIgKChfX3YzMmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbW92bV9lcGk4IChfX21tYXNrNjQgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMmI1MTIgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZtX2VwaTE2IChfX21tYXNrMzIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMnc1MTIgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RiX2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFpKSBfX0EsIChfX3YxNnFpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RiX2VwaTggKF9fbTUxMmkgX19PLCBfX21tYXNrNjQgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0Yl9lcGk4IChfX21tYXNrNjQgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2V0MV9lcGkxNiAoX19tNTEyaSBfX08sIF9fbW1hc2szMiBfX00sIHNob3J0IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NldDFfZXBpMTYgKF9fbW1hc2szMiBfX00sIHNob3J0IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3R3X2VwaTE2IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKSBfX0EsIChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdHdfZXBpMTYgKF9fbTUxMmkgX19PLCBfX21tYXNrMzIgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfYnJvYWRjYXN0d19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdHdfZXBpMTYgKF9fbW1hc2szMiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9icm9hZGNhc3R3X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKSBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX2VwaTE2IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGVybXZhcmhpNTEyKChfX3YzMmhpKV9fQiwgKF9fdjMyaGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4dmFyX2VwaTE2IChfX21tYXNrMzIgX19NLCBfX201MTJpIF9fQSwKICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4dmFyX2VwaTE2IChfX201MTJpIF9fVywgX19tbWFzazMyIF9fTSwgX19tNTEyaSBfX0EsCiAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19XKTsKfQoKI2RlZmluZSBfbW01MTJfYWxpZ25yX2VwaTgoQSwgQiwgTikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wYWxpZ25yNTEyKChfX3Y2NHFpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShCKSwgKGludCkoTikpKQoKI2RlZmluZSBfbW01MTJfbWFza19hbGlnbnJfZXBpOChXLCBVLCBBLCBCLCBOKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9hbGlnbnJfZXBpOChVLCBBLCBCLCBOKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfZGJzYWRfZXB1OChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfZGJwc2FkYnc1MTIoKF9fdjY0cWkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKShfX201MTJpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Ric2FkX2VwdTgoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfZGJzYWRfZXB1OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZGJzYWRfZXB1OChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0d181MTIoKF9fbW1hc2szMikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9kYnNhZF9lcHU4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NhZF9lcHU4IChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfcHNhZGJ3NTEyICgoX192NjRxaSkgX19BLAogICAgICAgICAgICAgICAoX192NjRxaSkgX19CKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzUxMgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJ2bm5paW50cmluLmggLSBWTk5JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydm5uaWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTk5JSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZOTklJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZubmkiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNTEyKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2RwYnVzZF9lcGkzMihfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkNTEyKChfX3YxNnNpKV9fUywgKF9fdjE2c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19kcGJ1c2RfZXBpMzIoX19tNTEyaSBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcGJ1c2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9kcGJ1c2RfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcGJ1c2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfZHBidXNkc19lcGkzMihfX201MTJpIF9fUywgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkczUxMigoX192MTZzaSlfX1MsIChfX3YxNnNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2RwYnVzZHNfZXBpMzIoX19tNTEyaSBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2RwYnVzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2RwYnVzZHNfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2RwYnVzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9kcHdzc2RfZXBpMzIoX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZDUxMigoX192MTZzaSlfX1MsIChfX3YxNnNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfZHB3c3NkX2VwaTMyKF9fbTUxMmkgX19TLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfZHB3c3NkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfZHB3c3NkX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19TLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfZHB3c3NkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2Rwd3NzZHNfZXBpMzIoX19tNTEyaSBfX1MsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZHM1MTIoKF9fdjE2c2kpX19TLCAoX192MTZzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19kcHdzc2RzX2VwaTMyKF9fbTUxMmkgX19TLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcHdzc2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9kcHdzc2RzX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19TLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9kcHdzc2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSBydG1pbnRyaW4uaCAtIFJUTSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cnRtaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1JUTUlOVFJJTl9ICiNkZWZpbmUgX19SVE1JTlRSSU5fSAoKI2RlZmluZSBfWEJFR0lOX1NUQVJURUQgICAofjB1KQojZGVmaW5lIF9YQUJPUlRfRVhQTElDSVQgICgxIDw8IDApCiNkZWZpbmUgX1hBQk9SVF9SRVRSWSAgICAgKDEgPDwgMSkKI2RlZmluZSBfWEFCT1JUX0NPTkZMSUNUICAoMSA8PCAyKQojZGVmaW5lIF9YQUJPUlRfQ0FQQUNJVFkgICgxIDw8IDMpCiNkZWZpbmUgX1hBQk9SVF9ERUJVRyAgICAgKDEgPDwgNCkKI2RlZmluZSBfWEFCT1JUX05FU1RFRCAgICAoMSA8PCA1KQojZGVmaW5lIF9YQUJPUlRfQ09ERSh4KSAgICgoKHgpID4+IDI0KSAmIDB4RkYpCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicnRtIikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfeGJlZ2luKHZvaWQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfeGJlZ2luKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94ZW5kKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl94ZW5kKCk7Cn0KCiNkZWZpbmUgX3hhYm9ydChpbW0pIF9fYnVpbHRpbl9pYTMyX3hhYm9ydCgoaW1tKSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX1JUTUlOVFJJTl9IICovCgAvKj09PS0tLS0gc3RkaW50LmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIHNpemVkIGludGVnZXIgdHlwZXMgLS0tLS0tLS0tLS0tLS09PT0qXAogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgpcKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0qLwoKI2lmbmRlZiBfX0NMQU5HX1NURElOVF9ICi8vIEFJWCBzeXN0ZW0gaGVhZGVycyBuZWVkIHN0ZGludC5oIHRvIGJlIHJlLWVudGVyYWJsZSB3aGlsZSBfU1REX1RZUEVTX1QKLy8gaXMgZGVmaW5lZCB1bnRpbCBhbiBpbmNsdXNpb24gb2YgaXQgd2l0aG91dCBfU1REX1RZUEVTX1Qgb2NjdXJzLCBpbiB3aGljaAovLyBjYXNlIHRoZSBoZWFkZXIgZ3VhcmQgbWFjcm8gaXMgZGVmaW5lZC4KI2lmICFkZWZpbmVkKF9BSVgpIHx8ICFkZWZpbmVkKF9TVERfVFlQRVNfVCkgfHwgIWRlZmluZWQoX19TVERDX0hPU1RFRF9fKQojZGVmaW5lIF9fQ0xBTkdfU1RESU5UX0gKI2VuZGlmCgovKiBJZiB3ZSdyZSBob3N0ZWQsIGZhbGwgYmFjayB0byB0aGUgc3lzdGVtJ3Mgc3RkaW50LmgsIHdoaWNoIG1pZ2h0IGhhdmUKICogYWRkaXRpb25hbCBkZWZpbml0aW9ucy4KICovCiNpZiBfX1NURENfSE9TVEVEX18gJiYgX19oYXNfaW5jbHVkZV9uZXh0KDxzdGRpbnQuaD4pCgovLyBDOTkgNy4xOC4zIExpbWl0cyBvZiBvdGhlciBpbnRlZ2VyIHR5cGVzCi8vCi8vICBGb290bm90ZSAyMTksIDIyMDogQysrIGltcGxlbWVudGF0aW9ucyBzaG91bGQgZGVmaW5lIHRoZXNlIG1hY3JvcyBvbmx5IHdoZW4KLy8gIF9fU1REQ19MSU1JVF9NQUNST1MgaXMgZGVmaW5lZCBiZWZvcmUgPHN0ZGludC5oPiBpcyBpbmNsdWRlZC4KLy8KLy8gIEZvb3Rub3RlIDIyMjogQysrIGltcGxlbWVudGF0aW9ucyBzaG91bGQgZGVmaW5lIHRoZXNlIG1hY3JvcyBvbmx5IHdoZW4KLy8gIF9fU1REQ19DT05TVEFOVF9NQUNST1MgaXMgZGVmaW5lZCBiZWZvcmUgPHN0ZGludC5oPiBpcyBpbmNsdWRlZC4KLy8KLy8gQysrMTEgW2NzdGRpbnQuc3luXXAyOgovLwovLyAgVGhlIG1hY3JvcyBkZWZpbmVkIGJ5IDxjc3RkaW50PiBhcmUgcHJvdmlkZWQgdW5jb25kaXRpb25hbGx5LiBJbiBwYXJ0aWN1bGFyLAovLyAgdGhlIHN5bWJvbHMgX19TVERDX0xJTUlUX01BQ1JPUyBhbmQgX19TVERDX0NPTlNUQU5UX01BQ1JPUyAobWVudGlvbmVkIGluCi8vICBmb290bm90ZXMgMjE5LCAyMjAsIGFuZCAyMjIgaW4gdGhlIEMgc3RhbmRhcmQpIHBsYXkgbm8gcm9sZSBpbiBDKysuCi8vCi8vIEMxMSByZW1vdmVkIHRoZSBwcm9ibGVtYXRpYyBmb290bm90ZXMuCi8vCi8vIFdvcmsgYXJvdW5kIHRoaXMgaW5jb25zaXN0ZW5jeSBieSBhbHdheXMgZGVmaW5pbmcgdGhvc2UgbWFjcm9zIGluIEMrKyBtb2RlLAovLyBzbyB0aGF0IGEgQyBsaWJyYXJ5IGltcGxlbWVudGF0aW9uIHdoaWNoIGZvbGxvd3MgdGhlIEM5OSBzdGFuZGFyZCBjYW4gYmUKLy8gdXNlZCBpbiBDKysuCiMgaWZkZWYgX19jcGx1c3BsdXMKIyAgaWYgIWRlZmluZWQoX19TVERDX0xJTUlUX01BQ1JPUykKIyAgIGRlZmluZSBfX1NURENfTElNSVRfTUFDUk9TCiMgICBkZWZpbmUgX19TVERDX0xJTUlUX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgIGVuZGlmCiMgIGlmICFkZWZpbmVkKF9fU1REQ19DT05TVEFOVF9NQUNST1MpCiMgICBkZWZpbmUgX19TVERDX0NPTlNUQU5UX01BQ1JPUwojICAgZGVmaW5lIF9fU1REQ19DT05TVEFOVF9NQUNST1NfREVGSU5FRF9CWV9DTEFORwojICBlbmRpZgojIGVuZGlmCgojIGluY2x1ZGVfbmV4dCA8c3RkaW50Lmg+CgojIGlmZGVmIF9fU1REQ19MSU1JVF9NQUNST1NfREVGSU5FRF9CWV9DTEFORwojICB1bmRlZiBfX1NURENfTElNSVRfTUFDUk9TCiMgIHVuZGVmIF9fU1REQ19MSU1JVF9NQUNST1NfREVGSU5FRF9CWV9DTEFORwojIGVuZGlmCiMgaWZkZWYgX19TVERDX0NPTlNUQU5UX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgIHVuZGVmIF9fU1REQ19DT05TVEFOVF9NQUNST1MKIyAgdW5kZWYgX19TVERDX0NPTlNUQU5UX01BQ1JPU19ERUZJTkVEX0JZX0NMQU5HCiMgZW5kaWYKCiNlbHNlCgovKiBDOTkgNy4xOC4xLjEgRXhhY3Qtd2lkdGggaW50ZWdlciB0eXBlcy4KICogQzk5IDcuMTguMS4yIE1pbmltdW0td2lkdGggaW50ZWdlciB0eXBlcy4KICogQzk5IDcuMTguMS4zIEZhc3Rlc3QgbWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzLgogKgogKiBUaGUgc3RhbmRhcmQgcmVxdWlyZXMgdGhhdCBleGFjdC13aWR0aCB0eXBlIGJlIGRlZmluZWQgZm9yIDgtLCAxNi0sIDMyLSwgYW5kCiAqIDY0LWJpdCB0eXBlcyBpZiB0aGV5IGFyZSBpbXBsZW1lbnRlZC4gT3RoZXIgZXhhY3Qgd2lkdGggdHlwZXMgYXJlIG9wdGlvbmFsLgogKiBUaGlzIGltcGxlbWVudGF0aW9uIGRlZmluZXMgYW4gZXhhY3Qtd2lkdGggdHlwZXMgZm9yIGV2ZXJ5IGludGVnZXIgd2lkdGgKICogdGhhdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3RhbmRhcmQgaW50ZWdlciB0eXBlcy4KICoKICogVGhlIHN0YW5kYXJkIGFsc28gcmVxdWlyZXMgbWluaW11bS13aWR0aCB0eXBlcyBiZSBkZWZpbmVkIGZvciA4LSwgMTYtLCAzMi0sCiAqIGFuZCA2NC1iaXQgd2lkdGhzIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGVyZSBhcmUgY29ycmVzcG9uZGluZyBleGFjdC13aWR0aAogKiB0eXBlcy4KICoKICogVG8gYWNjb21tb2RhdGUgdGFyZ2V0cyB0aGF0IGFyZSBtaXNzaW5nIHR5cGVzIHRoYXQgYXJlIGV4YWN0bHkgOCwgMTYsIDMyLCBvcgogKiA2NCBiaXRzIHdpZGUsIHRoaXMgaW1wbGVtZW50YXRpb24gdGFrZXMgYW4gYXBwcm9hY2ggb2YgY2FzY2FkaW5nCiAqIHJlZGVmaW5pdGlvbnMsIHJlZGVmaW5pbmcgX19pbnRfbGVhc3ROX3QgdG8gc3VjY2Vzc2l2ZWx5IHNtYWxsZXIgZXhhY3Qtd2lkdGgKICogdHlwZXMuIEl0IGlzIHRoZXJlZm9yZSBpbXBvcnRhbnQgdGhhdCB0aGUgdHlwZXMgYXJlIGRlZmluZWQgaW4gb3JkZXIgb2YKICogZGVzY2VuZGluZyB3aWR0aHMuCiAqCiAqIFdlIGN1cnJlbnRseSBhc3N1bWUgdGhhdCB0aGUgbWluaW11bS13aWR0aCB0eXBlcyBhbmQgdGhlIGZhc3Rlc3QKICogbWluaW11bS13aWR0aCB0eXBlcyBhcmUgdGhlIHNhbWUuIFRoaXMgaXMgYWxsb3dlZCBieSB0aGUgc3RhbmRhcmQsIGJ1dCBpcwogKiBzdWJvcHRpbWFsLgogKgogKiBJbiB2aW9sYXRpb24gb2YgdGhlIHN0YW5kYXJkLCBzb21lIHRhcmdldHMgZG8gbm90IGltcGxlbWVudCBhIHR5cGUgdGhhdCBpcwogKiB3aWRlIGVub3VnaCB0byByZXByZXNlbnQgYWxsIG9mIHRoZSByZXF1aXJlZCB3aWR0aHMgKDgtLCAxNi0sIDMyLSwgNjQtYml0KS4KICogVG8gYWNjb21tb2RhdGUgdGhlc2UgdGFyZ2V0cywgYSByZXF1aXJlZCBtaW5pbXVtLXdpZHRoIHR5cGUgaXMgb25seQogKiBkZWZpbmVkIGlmIHRoZXJlIGV4aXN0cyBhbiBleGFjdC13aWR0aCB0eXBlIG9mIGVxdWFsIG9yIGdyZWF0ZXIgd2lkdGguCiAqLwoKI2lmZGVmIF9fSU5UNjRfVFlQRV9fCiMgaWZuZGVmIF9faW50OF90X2RlZmluZWQgLyogZ2xpYmMgc3lzL3R5cGVzLmggYWxzbyBkZWZpbmVzIGludDY0X3QqLwp0eXBlZGVmIF9fSU5UNjRfVFlQRV9fIGludDY0X3Q7CiMgZW5kaWYgLyogX19pbnQ4X3RfZGVmaW5lZCAqLwp0eXBlZGVmIF9fVUlOVDY0X1RZUEVfXyB1aW50NjRfdDsKIyBkZWZpbmUgX19pbnRfbGVhc3Q2NF90IGludDY0X3QKIyBkZWZpbmUgX191aW50X2xlYXN0NjRfdCB1aW50NjRfdAojIGRlZmluZSBfX2ludF9sZWFzdDMyX3QgaW50NjRfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QzMl90IHVpbnQ2NF90CiMgZGVmaW5lIF9faW50X2xlYXN0MTZfdCBpbnQ2NF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDE2X3QgdWludDY0X3QKIyBkZWZpbmUgX19pbnRfbGVhc3Q4X3QgaW50NjRfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q4X3QgdWludDY0X3QKI2VuZGlmIC8qIF9fSU5UNjRfVFlQRV9fICovCgojaWZkZWYgX19pbnRfbGVhc3Q2NF90CnR5cGVkZWYgX19pbnRfbGVhc3Q2NF90IGludF9sZWFzdDY0X3Q7CnR5cGVkZWYgX191aW50X2xlYXN0NjRfdCB1aW50X2xlYXN0NjRfdDsKdHlwZWRlZiBfX2ludF9sZWFzdDY0X3QgaW50X2Zhc3Q2NF90Owp0eXBlZGVmIF9fdWludF9sZWFzdDY0X3QgdWludF9mYXN0NjRfdDsKI2VuZGlmIC8qIF9faW50X2xlYXN0NjRfdCAqLwoKI2lmZGVmIF9fSU5UNTZfVFlQRV9fCnR5cGVkZWYgX19JTlQ1Nl9UWVBFX18gaW50NTZfdDsKdHlwZWRlZiBfX1VJTlQ1Nl9UWVBFX18gdWludDU2X3Q7CnR5cGVkZWYgaW50NTZfdCBpbnRfbGVhc3Q1Nl90Owp0eXBlZGVmIHVpbnQ1Nl90IHVpbnRfbGVhc3Q1Nl90Owp0eXBlZGVmIGludDU2X3QgaW50X2Zhc3Q1Nl90Owp0eXBlZGVmIHVpbnQ1Nl90IHVpbnRfZmFzdDU2X3Q7CiMgZGVmaW5lIF9faW50X2xlYXN0MzJfdCBpbnQ1Nl90CiMgZGVmaW5lIF9fdWludF9sZWFzdDMyX3QgdWludDU2X3QKIyBkZWZpbmUgX19pbnRfbGVhc3QxNl90IGludDU2X3QKIyBkZWZpbmUgX191aW50X2xlYXN0MTZfdCB1aW50NTZfdAojIGRlZmluZSBfX2ludF9sZWFzdDhfdCBpbnQ1Nl90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50NTZfdAojZW5kaWYgLyogX19JTlQ1Nl9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQ0OF9UWVBFX18KdHlwZWRlZiBfX0lOVDQ4X1RZUEVfXyBpbnQ0OF90Owp0eXBlZGVmIF9fVUlOVDQ4X1RZUEVfXyB1aW50NDhfdDsKdHlwZWRlZiBpbnQ0OF90IGludF9sZWFzdDQ4X3Q7CnR5cGVkZWYgdWludDQ4X3QgdWludF9sZWFzdDQ4X3Q7CnR5cGVkZWYgaW50NDhfdCBpbnRfZmFzdDQ4X3Q7CnR5cGVkZWYgdWludDQ4X3QgdWludF9mYXN0NDhfdDsKIyBkZWZpbmUgX19pbnRfbGVhc3QzMl90IGludDQ4X3QKIyBkZWZpbmUgX191aW50X2xlYXN0MzJfdCB1aW50NDhfdAojIGRlZmluZSBfX2ludF9sZWFzdDE2X3QgaW50NDhfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QxNl90IHVpbnQ0OF90CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDQ4X3QKIyBkZWZpbmUgX191aW50X2xlYXN0OF90IHVpbnQ0OF90CiNlbmRpZiAvKiBfX0lOVDQ4X1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDQwX1RZUEVfXwp0eXBlZGVmIF9fSU5UNDBfVFlQRV9fIGludDQwX3Q7CnR5cGVkZWYgX19VSU5UNDBfVFlQRV9fIHVpbnQ0MF90Owp0eXBlZGVmIGludDQwX3QgaW50X2xlYXN0NDBfdDsKdHlwZWRlZiB1aW50NDBfdCB1aW50X2xlYXN0NDBfdDsKdHlwZWRlZiBpbnQ0MF90IGludF9mYXN0NDBfdDsKdHlwZWRlZiB1aW50NDBfdCB1aW50X2Zhc3Q0MF90OwojIGRlZmluZSBfX2ludF9sZWFzdDMyX3QgaW50NDBfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QzMl90IHVpbnQ0MF90CiMgZGVmaW5lIF9faW50X2xlYXN0MTZfdCBpbnQ0MF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDE2X3QgdWludDQwX3QKIyBkZWZpbmUgX19pbnRfbGVhc3Q4X3QgaW50NDBfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q4X3QgdWludDQwX3QKI2VuZGlmIC8qIF9fSU5UNDBfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UMzJfVFlQRV9fCgojIGlmbmRlZiBfX2ludDhfdF9kZWZpbmVkIC8qIGdsaWJjIHN5cy90eXBlcy5oIGFsc28gZGVmaW5lcyBpbnQzMl90Ki8KdHlwZWRlZiBfX0lOVDMyX1RZUEVfXyBpbnQzMl90OwojIGVuZGlmIC8qIF9faW50OF90X2RlZmluZWQgKi8KCiMgaWZuZGVmIF9fdWludDMyX3RfZGVmaW5lZCAgLyogbW9yZSBnbGliYyBjb21wYXRpYmlsaXR5ICovCiMgZGVmaW5lIF9fdWludDMyX3RfZGVmaW5lZAp0eXBlZGVmIF9fVUlOVDMyX1RZUEVfXyB1aW50MzJfdDsKIyBlbmRpZiAvKiBfX3VpbnQzMl90X2RlZmluZWQgKi8KCiMgZGVmaW5lIF9faW50X2xlYXN0MzJfdCBpbnQzMl90CiMgZGVmaW5lIF9fdWludF9sZWFzdDMyX3QgdWludDMyX3QKIyBkZWZpbmUgX19pbnRfbGVhc3QxNl90IGludDMyX3QKIyBkZWZpbmUgX191aW50X2xlYXN0MTZfdCB1aW50MzJfdAojIGRlZmluZSBfX2ludF9sZWFzdDhfdCBpbnQzMl90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50MzJfdAojZW5kaWYgLyogX19JTlQzMl9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDMyX3QKdHlwZWRlZiBfX2ludF9sZWFzdDMyX3QgaW50X2xlYXN0MzJfdDsKdHlwZWRlZiBfX3VpbnRfbGVhc3QzMl90IHVpbnRfbGVhc3QzMl90Owp0eXBlZGVmIF9faW50X2xlYXN0MzJfdCBpbnRfZmFzdDMyX3Q7CnR5cGVkZWYgX191aW50X2xlYXN0MzJfdCB1aW50X2Zhc3QzMl90OwojZW5kaWYgLyogX19pbnRfbGVhc3QzMl90ICovCgojaWZkZWYgX19JTlQyNF9UWVBFX18KdHlwZWRlZiBfX0lOVDI0X1RZUEVfXyBpbnQyNF90Owp0eXBlZGVmIF9fVUlOVDI0X1RZUEVfXyB1aW50MjRfdDsKdHlwZWRlZiBpbnQyNF90IGludF9sZWFzdDI0X3Q7CnR5cGVkZWYgdWludDI0X3QgdWludF9sZWFzdDI0X3Q7CnR5cGVkZWYgaW50MjRfdCBpbnRfZmFzdDI0X3Q7CnR5cGVkZWYgdWludDI0X3QgdWludF9mYXN0MjRfdDsKIyBkZWZpbmUgX19pbnRfbGVhc3QxNl90IGludDI0X3QKIyBkZWZpbmUgX191aW50X2xlYXN0MTZfdCB1aW50MjRfdAojIGRlZmluZSBfX2ludF9sZWFzdDhfdCBpbnQyNF90CiMgZGVmaW5lIF9fdWludF9sZWFzdDhfdCB1aW50MjRfdAojZW5kaWYgLyogX19JTlQyNF9UWVBFX18gKi8KCiNpZmRlZiBfX0lOVDE2X1RZUEVfXwojaWZuZGVmIF9faW50OF90X2RlZmluZWQgLyogZ2xpYmMgc3lzL3R5cGVzLmggYWxzbyBkZWZpbmVzIGludDE2X3QqLwp0eXBlZGVmIF9fSU5UMTZfVFlQRV9fIGludDE2X3Q7CiNlbmRpZiAvKiBfX2ludDhfdF9kZWZpbmVkICovCnR5cGVkZWYgX19VSU5UMTZfVFlQRV9fIHVpbnQxNl90OwojIGRlZmluZSBfX2ludF9sZWFzdDE2X3QgaW50MTZfdAojIGRlZmluZSBfX3VpbnRfbGVhc3QxNl90IHVpbnQxNl90CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDE2X3QKIyBkZWZpbmUgX191aW50X2xlYXN0OF90IHVpbnQxNl90CiNlbmRpZiAvKiBfX0lOVDE2X1RZUEVfXyAqLwoKI2lmZGVmIF9faW50X2xlYXN0MTZfdAp0eXBlZGVmIF9faW50X2xlYXN0MTZfdCBpbnRfbGVhc3QxNl90Owp0eXBlZGVmIF9fdWludF9sZWFzdDE2X3QgdWludF9sZWFzdDE2X3Q7CnR5cGVkZWYgX19pbnRfbGVhc3QxNl90IGludF9mYXN0MTZfdDsKdHlwZWRlZiBfX3VpbnRfbGVhc3QxNl90IHVpbnRfZmFzdDE2X3Q7CiNlbmRpZiAvKiBfX2ludF9sZWFzdDE2X3QgKi8KCgojaWZkZWYgX19JTlQ4X1RZUEVfXwojaWZuZGVmIF9faW50OF90X2RlZmluZWQgIC8qIGdsaWJjIHN5cy90eXBlcy5oIGFsc28gZGVmaW5lcyBpbnQ4X3QqLwp0eXBlZGVmIF9fSU5UOF9UWVBFX18gaW50OF90OwojZW5kaWYgLyogX19pbnQ4X3RfZGVmaW5lZCAqLwp0eXBlZGVmIF9fVUlOVDhfVFlQRV9fIHVpbnQ4X3Q7CiMgZGVmaW5lIF9faW50X2xlYXN0OF90IGludDhfdAojIGRlZmluZSBfX3VpbnRfbGVhc3Q4X3QgdWludDhfdAojZW5kaWYgLyogX19JTlQ4X1RZUEVfXyAqLwoKI2lmZGVmIF9faW50X2xlYXN0OF90CnR5cGVkZWYgX19pbnRfbGVhc3Q4X3QgaW50X2xlYXN0OF90Owp0eXBlZGVmIF9fdWludF9sZWFzdDhfdCB1aW50X2xlYXN0OF90Owp0eXBlZGVmIF9faW50X2xlYXN0OF90IGludF9mYXN0OF90Owp0eXBlZGVmIF9fdWludF9sZWFzdDhfdCB1aW50X2Zhc3Q4X3Q7CiNlbmRpZiAvKiBfX2ludF9sZWFzdDhfdCAqLwoKLyogcHJldmVudCBnbGliYyBzeXMvdHlwZXMuaCBmcm9tIGRlZmluaW5nIGNvbmZsaWN0aW5nIHR5cGVzICovCiNpZm5kZWYgX19pbnQ4X3RfZGVmaW5lZAojIGRlZmluZSBfX2ludDhfdF9kZWZpbmVkCiNlbmRpZiAvKiBfX2ludDhfdF9kZWZpbmVkICovCgovKiBDOTkgNy4xOC4xLjQgSW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIGhvbGRpbmcgb2JqZWN0IHBvaW50ZXJzLgogKi8KI2RlZmluZSBfX3N0ZGludF9qb2luMyhhLGIsYykgYSAjIyBiICMjIGMKCiNpZm5kZWYgX0lOVFBUUl9UCiNpZm5kZWYgX19pbnRwdHJfdF9kZWZpbmVkCnR5cGVkZWYgX19JTlRQVFJfVFlQRV9fIGludHB0cl90OwojZGVmaW5lIF9faW50cHRyX3RfZGVmaW5lZAojZGVmaW5lIF9JTlRQVFJfVAojZW5kaWYKI2VuZGlmCgojaWZuZGVmIF9VSU5UUFRSX1QKdHlwZWRlZiBfX1VJTlRQVFJfVFlQRV9fIHVpbnRwdHJfdDsKI2RlZmluZSBfVUlOVFBUUl9UCiNlbmRpZgoKLyogQzk5IDcuMTguMS41IEdyZWF0ZXN0LXdpZHRoIGludGVnZXIgdHlwZXMuCiAqLwp0eXBlZGVmIF9fSU5UTUFYX1RZUEVfXyAgaW50bWF4X3Q7CnR5cGVkZWYgX19VSU5UTUFYX1RZUEVfXyB1aW50bWF4X3Q7CgovKiBDOTkgNy4xOC40IE1hY3JvcyBmb3IgbWluaW11bS13aWR0aCBpbnRlZ2VyIGNvbnN0YW50cy4KICoKICogVGhlIHN0YW5kYXJkIHJlcXVpcmVzIHRoYXQgaW50ZWdlciBjb25zdGFudCBtYWNyb3MgYmUgZGVmaW5lZCBmb3IgYWxsIHRoZQogKiBtaW5pbXVtLXdpZHRoIHR5cGVzIGRlZmluZWQgYWJvdmUuIEFzIDgtLCAxNi0sIDMyLSwgYW5kIDY0LWJpdCBtaW5pbXVtLXdpZHRoCiAqIHR5cGVzIGFyZSByZXF1aXJlZCwgdGhlIGNvcnJlc3BvbmRpbmcgaW50ZWdlciBjb25zdGFudCBtYWNyb3MgYXJlIGRlZmluZWQKICogaGVyZS4gVGhpcyBpbXBsZW1lbnRhdGlvbiBhbHNvIGRlZmluZXMgbWluaW11bS13aWR0aCB0eXBlcyBmb3IgZXZlcnkgb3RoZXIKICogaW50ZWdlciB3aWR0aCB0aGF0IHRoZSB0YXJnZXQgaW1wbGVtZW50cywgc28gY29ycmVzcG9uZGluZyBtYWNyb3MgYXJlCiAqIGRlZmluZWQgYmVsb3csIHRvby4KICoKICogVGhlc2UgbWFjcm9zIGFyZSBkZWZpbmVkIHVzaW5nIHRoZSBzYW1lIHN1Y2Nlc3NpdmUtc2hyaW5raW5nIGFwcHJvYWNoIGFzCiAqIHRoZSB0eXBlIGRlZmluaXRpb25zIGFib3ZlLiBJdCBpcyBsaWtld2lzZSBpbXBvcnRhbnQgdGhhdCBtYWNyb3MgYXJlIGRlZmluZWQKICogaW4gb3JkZXIgb2YgZGVjZW5kaW5nIHdpZHRoLgogKgogKiBOb3RlIHRoYXQgQysrIHNob3VsZCBub3QgY2hlY2sgX19TVERDX0NPTlNUQU5UX01BQ1JPUyBoZXJlLCBjb250cmFyeSB0byB0aGUKICogY2xhaW1zIG9mIHRoZSBDIHN0YW5kYXJkIChzZWUgQysrIDE4LjMuMXAyLCBbY3N0ZGludC5zeW5dKS4KICovCgojZGVmaW5lIF9faW50X2Nfam9pbihhLCBiKSBhICMjIGIKI2RlZmluZSBfX2ludF9jKHYsIHN1ZmZpeCkgX19pbnRfY19qb2luKHYsIHN1ZmZpeCkKI2RlZmluZSBfX3VpbnRfYyh2LCBzdWZmaXgpIF9faW50X2Nfam9pbih2IyNVLCBzdWZmaXgpCgoKI2lmZGVmIF9fSU5UNjRfVFlQRV9fCiMgaWZkZWYgX19JTlQ2NF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDY0X2Nfc3VmZml4IF9fSU5UNjRfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQzMl9jX3N1ZmZpeCBfX0lOVDY0X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50MTZfY19zdWZmaXggX19JTlQ2NF9DX1NVRkZJWF9fCiMgIGRlZmluZSAgX19pbnQ4X2Nfc3VmZml4IF9fSU5UNjRfQ19TVUZGSVhfXwojIGVsc2UKIyAgdW5kZWYgX19pbnQ2NF9jX3N1ZmZpeAojICB1bmRlZiBfX2ludDMyX2Nfc3VmZml4CiMgIHVuZGVmIF9faW50MTZfY19zdWZmaXgKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UNjRfQ19TVUZGSVhfXyAqLwojZW5kaWYgLyogX19JTlQ2NF9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDY0X3QKIyBpZmRlZiBfX2ludDY0X2Nfc3VmZml4CiMgIGRlZmluZSBJTlQ2NF9DKHYpIF9faW50X2ModiwgX19pbnQ2NF9jX3N1ZmZpeCkKIyAgZGVmaW5lIFVJTlQ2NF9DKHYpIF9fdWludF9jKHYsIF9faW50NjRfY19zdWZmaXgpCiMgZWxzZQojICBkZWZpbmUgSU5UNjRfQyh2KSB2CiMgIGRlZmluZSBVSU5UNjRfQyh2KSB2ICMjIFUKIyBlbmRpZiAvKiBfX2ludDY0X2Nfc3VmZml4ICovCiNlbmRpZiAvKiBfX2ludF9sZWFzdDY0X3QgKi8KCgojaWZkZWYgX19JTlQ1Nl9UWVBFX18KIyBpZmRlZiBfX0lOVDU2X0NfU1VGRklYX18KIyAgZGVmaW5lIElOVDU2X0ModikgX19pbnRfYyh2LCBfX0lOVDU2X0NfU1VGRklYX18pCiMgIGRlZmluZSBVSU5UNTZfQyh2KSBfX3VpbnRfYyh2LCBfX0lOVDU2X0NfU1VGRklYX18pCiMgIGRlZmluZSBfX2ludDMyX2Nfc3VmZml4IF9fSU5UNTZfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQxNl9jX3N1ZmZpeCBfX0lOVDU2X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50OF9jX3N1ZmZpeCAgX19JTlQ1Nl9DX1NVRkZJWF9fCiMgZWxzZQojICBkZWZpbmUgSU5UNTZfQyh2KSB2CiMgIGRlZmluZSBVSU5UNTZfQyh2KSB2ICMjIFUKIyAgdW5kZWYgX19pbnQzMl9jX3N1ZmZpeAojICB1bmRlZiBfX2ludDE2X2Nfc3VmZml4CiMgIHVuZGVmICBfX2ludDhfY19zdWZmaXgKIyBlbmRpZiAvKiBfX0lOVDU2X0NfU1VGRklYX18gKi8KI2VuZGlmIC8qIF9fSU5UNTZfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UNDhfVFlQRV9fCiMgaWZkZWYgX19JTlQ0OF9DX1NVRkZJWF9fCiMgIGRlZmluZSBJTlQ0OF9DKHYpIF9faW50X2ModiwgX19JTlQ0OF9DX1NVRkZJWF9fKQojICBkZWZpbmUgVUlOVDQ4X0ModikgX191aW50X2ModiwgX19JTlQ0OF9DX1NVRkZJWF9fKQojICBkZWZpbmUgX19pbnQzMl9jX3N1ZmZpeCBfX0lOVDQ4X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50MTZfY19zdWZmaXggX19JTlQ0OF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDhfY19zdWZmaXggIF9fSU5UNDhfQ19TVUZGSVhfXwojIGVsc2UKIyAgZGVmaW5lIElOVDQ4X0ModikgdgojICBkZWZpbmUgVUlOVDQ4X0ModikgdiAjIyBVCiMgIHVuZGVmIF9faW50MzJfY19zdWZmaXgKIyAgdW5kZWYgX19pbnQxNl9jX3N1ZmZpeAojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQ0OF9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDQ4X1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDQwX1RZUEVfXwojIGlmZGVmIF9fSU5UNDBfQ19TVUZGSVhfXwojICBkZWZpbmUgSU5UNDBfQyh2KSBfX2ludF9jKHYsIF9fSU5UNDBfQ19TVUZGSVhfXykKIyAgZGVmaW5lIFVJTlQ0MF9DKHYpIF9fdWludF9jKHYsIF9fSU5UNDBfQ19TVUZGSVhfXykKIyAgZGVmaW5lIF9faW50MzJfY19zdWZmaXggX19JTlQ0MF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDE2X2Nfc3VmZml4IF9fSU5UNDBfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQ4X2Nfc3VmZml4ICBfX0lOVDQwX0NfU1VGRklYX18KIyBlbHNlCiMgIGRlZmluZSBJTlQ0MF9DKHYpIHYKIyAgZGVmaW5lIFVJTlQ0MF9DKHYpIHYgIyMgVQojICB1bmRlZiBfX2ludDMyX2Nfc3VmZml4CiMgIHVuZGVmIF9faW50MTZfY19zdWZmaXgKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UNDBfQ19TVUZGSVhfXyAqLwojZW5kaWYgLyogX19JTlQ0MF9UWVBFX18gKi8KCgojaWZkZWYgX19JTlQzMl9UWVBFX18KIyBpZmRlZiBfX0lOVDMyX0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50MzJfY19zdWZmaXggX19JTlQzMl9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDE2X2Nfc3VmZml4IF9fSU5UMzJfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQ4X2Nfc3VmZml4ICBfX0lOVDMyX0NfU1VGRklYX18KI2Vsc2UKIyAgdW5kZWYgX19pbnQzMl9jX3N1ZmZpeAojICB1bmRlZiBfX2ludDE2X2Nfc3VmZml4CiMgIHVuZGVmICBfX2ludDhfY19zdWZmaXgKIyBlbmRpZiAvKiBfX0lOVDMyX0NfU1VGRklYX18gKi8KI2VuZGlmIC8qIF9fSU5UMzJfVFlQRV9fICovCgojaWZkZWYgX19pbnRfbGVhc3QzMl90CiMgaWZkZWYgX19pbnQzMl9jX3N1ZmZpeAojICBkZWZpbmUgSU5UMzJfQyh2KSBfX2ludF9jKHYsIF9faW50MzJfY19zdWZmaXgpCiMgIGRlZmluZSBVSU5UMzJfQyh2KSBfX3VpbnRfYyh2LCBfX2ludDMyX2Nfc3VmZml4KQojIGVsc2UKIyAgZGVmaW5lIElOVDMyX0ModikgdgojICBkZWZpbmUgVUlOVDMyX0ModikgdiAjIyBVCiMgZW5kaWYgLyogX19pbnQzMl9jX3N1ZmZpeCAqLwojZW5kaWYgLyogX19pbnRfbGVhc3QzMl90ICovCgoKI2lmZGVmIF9fSU5UMjRfVFlQRV9fCiMgaWZkZWYgX19JTlQyNF9DX1NVRkZJWF9fCiMgIGRlZmluZSBJTlQyNF9DKHYpIF9faW50X2ModiwgX19JTlQyNF9DX1NVRkZJWF9fKQojICBkZWZpbmUgVUlOVDI0X0ModikgX191aW50X2ModiwgX19JTlQyNF9DX1NVRkZJWF9fKQojICBkZWZpbmUgX19pbnQxNl9jX3N1ZmZpeCBfX0lOVDI0X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50OF9jX3N1ZmZpeCAgX19JTlQyNF9DX1NVRkZJWF9fCiMgZWxzZQojICBkZWZpbmUgSU5UMjRfQyh2KSB2CiMgIGRlZmluZSBVSU5UMjRfQyh2KSB2ICMjIFUKIyAgdW5kZWYgX19pbnQxNl9jX3N1ZmZpeAojICB1bmRlZiAgX19pbnQ4X2Nfc3VmZml4CiMgZW5kaWYgLyogX19JTlQyNF9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDI0X1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDE2X1RZUEVfXwojIGlmZGVmIF9fSU5UMTZfQ19TVUZGSVhfXwojICBkZWZpbmUgX19pbnQxNl9jX3N1ZmZpeCBfX0lOVDE2X0NfU1VGRklYX18KIyAgZGVmaW5lIF9faW50OF9jX3N1ZmZpeCAgX19JTlQxNl9DX1NVRkZJWF9fCiNlbHNlCiMgIHVuZGVmIF9faW50MTZfY19zdWZmaXgKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UMTZfQ19TVUZGSVhfXyAqLwojZW5kaWYgLyogX19JTlQxNl9UWVBFX18gKi8KCiNpZmRlZiBfX2ludF9sZWFzdDE2X3QKIyBpZmRlZiBfX2ludDE2X2Nfc3VmZml4CiMgIGRlZmluZSBJTlQxNl9DKHYpIF9faW50X2ModiwgX19pbnQxNl9jX3N1ZmZpeCkKIyAgZGVmaW5lIFVJTlQxNl9DKHYpIF9fdWludF9jKHYsIF9faW50MTZfY19zdWZmaXgpCiMgZWxzZQojICBkZWZpbmUgSU5UMTZfQyh2KSB2CiMgIGRlZmluZSBVSU5UMTZfQyh2KSB2ICMjIFUKIyBlbmRpZiAvKiBfX2ludDE2X2Nfc3VmZml4ICovCiNlbmRpZiAvKiBfX2ludF9sZWFzdDE2X3QgKi8KCgojaWZkZWYgX19JTlQ4X1RZUEVfXwojIGlmZGVmIF9fSU5UOF9DX1NVRkZJWF9fCiMgIGRlZmluZSBfX2ludDhfY19zdWZmaXggX19JTlQ4X0NfU1VGRklYX18KI2Vsc2UKIyAgdW5kZWYgIF9faW50OF9jX3N1ZmZpeAojIGVuZGlmIC8qIF9fSU5UOF9DX1NVRkZJWF9fICovCiNlbmRpZiAvKiBfX0lOVDhfVFlQRV9fICovCgojaWZkZWYgX19pbnRfbGVhc3Q4X3QKIyBpZmRlZiBfX2ludDhfY19zdWZmaXgKIyAgZGVmaW5lIElOVDhfQyh2KSBfX2ludF9jKHYsIF9faW50OF9jX3N1ZmZpeCkKIyAgZGVmaW5lIFVJTlQ4X0ModikgX191aW50X2ModiwgX19pbnQ4X2Nfc3VmZml4KQojIGVsc2UKIyAgZGVmaW5lIElOVDhfQyh2KSB2CiMgIGRlZmluZSBVSU5UOF9DKHYpIHYgIyMgVQojIGVuZGlmIC8qIF9faW50OF9jX3N1ZmZpeCAqLwojZW5kaWYgLyogX19pbnRfbGVhc3Q4X3QgKi8KCgovKiBDOTkgNy4xOC4yLjEgTGltaXRzIG9mIGV4YWN0LXdpZHRoIGludGVnZXIgdHlwZXMuCiAqIEM5OSA3LjE4LjIuMiBMaW1pdHMgb2YgbWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzLgogKiBDOTkgNy4xOC4yLjMgTGltaXRzIG9mIGZhc3Rlc3QgbWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzLgogKgogKiBUaGUgcHJlc2VuY2Ugb2YgbGltaXQgbWFjcm9zIGFyZSBjb21wbGV0ZWx5IG9wdGlvbmFsIGluIEM5OS4gIFRoaXMKICogaW1wbGVtZW50YXRpb24gZGVmaW5lcyBsaW1pdHMgZm9yIGFsbCBvZiB0aGUgdHlwZXMgKGV4YWN0LSBhbmQKICogbWluaW11bS13aWR0aCkgdGhhdCBpdCBkZWZpbmVzIGFib3ZlLCB1c2luZyB0aGUgbGltaXRzIG9mIHRoZSBtaW5pbXVtLXdpZHRoCiAqIHR5cGUgZm9yIGFueSB0eXBlcyB0aGF0IGRvIG5vdCBoYXZlIGV4YWN0LXdpZHRoIHJlcHJlc2VudGF0aW9ucy4KICoKICogQXMgaW4gdGhlIHR5cGUgZGVmaW5pdGlvbnMsIHRoaXMgc2VjdGlvbiB0YWtlcyBhbiBhcHByb2FjaCBvZgogKiBzdWNjZXNzaXZlLXNocmlua2luZyB0byBkZXRlcm1pbmUgd2hpY2ggbGltaXRzIHRvIHVzZSBmb3IgdGhlIHN0YW5kYXJkICg4LAogKiAxNiwgMzIsIDY0KSBiaXQgd2lkdGhzIHdoZW4gdGhleSBkb24ndCBoYXZlIGV4YWN0IHJlcHJlc2VudGF0aW9ucy4gSXQgaXMKICogdGhlcmVmb3JlIGltcG9ydGFudCB0aGF0IHRoZSBkZWZpbml0aW9ucyBiZSBrZXB0IGluIG9yZGVyIG9mIGRlY2VuZGluZwogKiB3aWR0aHMuCiAqCiAqIE5vdGUgdGhhdCBDKysgc2hvdWxkIG5vdCBjaGVjayBfX1NURENfTElNSVRfTUFDUk9TIGhlcmUsIGNvbnRyYXJ5IHRvIHRoZQogKiBjbGFpbXMgb2YgdGhlIEMgc3RhbmRhcmQgKHNlZSBDKysgMTguMy4xcDIsIFtjc3RkaW50LnN5bl0pLgogKi8KCiNpZmRlZiBfX0lOVDY0X1RZUEVfXwojIGRlZmluZSBJTlQ2NF9NQVggICAgICAgICAgIElOVDY0X0MoIDkyMjMzNzIwMzY4NTQ3NzU4MDcpCiMgZGVmaW5lIElOVDY0X01JTiAgICAgICAgICgtSU5UNjRfQyggOTIyMzM3MjAzNjg1NDc3NTgwNyktMSkKIyBkZWZpbmUgVUlOVDY0X01BWCAgICAgICAgIFVJTlQ2NF9DKDE4NDQ2NzQ0MDczNzA5NTUxNjE1KQojIGRlZmluZSBfX0lOVF9MRUFTVDY0X01JTiAgIElOVDY0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDY0X01BWCAgIElOVDY0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q2NF9NQVggVUlOVDY0X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01JTiAgIElOVDY0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDMyX01BWCAgIElOVDY0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QzMl9NQVggVUlOVDY0X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01JTiAgIElOVDY0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDE2X01BWCAgIElOVDY0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1QxNl9NQVggVUlOVDY0X01BWAojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUlOICAgIElOVDY0X01JTgojIGRlZmluZSBfX0lOVF9MRUFTVDhfTUFYICAgIElOVDY0X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q4X01BWCAgVUlOVDY0X01BWAojZW5kaWYgLyogX19JTlQ2NF9UWVBFX18gKi8KCiNpZmRlZiBfX0lOVF9MRUFTVDY0X01JTgojIGRlZmluZSBJTlRfTEVBU1Q2NF9NSU4gICBfX0lOVF9MRUFTVDY0X01JTgojIGRlZmluZSBJTlRfTEVBU1Q2NF9NQVggICBfX0lOVF9MRUFTVDY0X01BWAojIGRlZmluZSBVSU5UX0xFQVNUNjRfTUFYIF9fVUlOVF9MRUFTVDY0X01BWAojIGRlZmluZSBJTlRfRkFTVDY0X01JTiAgICBfX0lOVF9MRUFTVDY0X01JTgojIGRlZmluZSBJTlRfRkFTVDY0X01BWCAgICBfX0lOVF9MRUFTVDY0X01BWAojIGRlZmluZSBVSU5UX0ZBU1Q2NF9NQVggIF9fVUlOVF9MRUFTVDY0X01BWAojZW5kaWYgLyogX19JTlRfTEVBU1Q2NF9NSU4gKi8KCgojaWZkZWYgX19JTlQ1Nl9UWVBFX18KIyBkZWZpbmUgSU5UNTZfTUFYICAgICAgICAgICBJTlQ1Nl9DKDM2MDI4Nzk3MDE4OTYzOTY3KQojIGRlZmluZSBJTlQ1Nl9NSU4gICAgICAgICAoLUlOVDU2X0MoMzYwMjg3OTcwMTg5NjM5NjcpLTEpCiMgZGVmaW5lIFVJTlQ1Nl9NQVggICAgICAgICBVSU5UNTZfQyg3MjA1NzU5NDAzNzkyNzkzNSkKIyBkZWZpbmUgSU5UX0xFQVNUNTZfTUlOICAgICBJTlQ1Nl9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUNTZfTUFYICAgICBJTlQ1Nl9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDU2X01BWCAgIFVJTlQ1Nl9NQVgKIyBkZWZpbmUgSU5UX0ZBU1Q1Nl9NSU4gICAgICBJTlQ1Nl9NSU4KIyBkZWZpbmUgSU5UX0ZBU1Q1Nl9NQVggICAgICBJTlQ1Nl9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUNTZfTUFYICAgIFVJTlQ1Nl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NSU4gICBJTlQ1Nl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NQVggICBJTlQ1Nl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMzJfTUFYIFVJTlQ1Nl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQ1Nl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQ1Nl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQ1Nl9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQ1Nl9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQ1Nl9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQ1Nl9NQVgKI2VuZGlmIC8qIF9fSU5UNTZfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UNDhfVFlQRV9fCiMgZGVmaW5lIElOVDQ4X01BWCAgICAgICAgICAgSU5UNDhfQygxNDA3Mzc0ODgzNTUzMjcpCiMgZGVmaW5lIElOVDQ4X01JTiAgICAgICAgICgtSU5UNDhfQygxNDA3Mzc0ODgzNTUzMjcpLTEpCiMgZGVmaW5lIFVJTlQ0OF9NQVggICAgICAgICBVSU5UNDhfQygyODE0NzQ5NzY3MTA2NTUpCiMgZGVmaW5lIElOVF9MRUFTVDQ4X01JTiAgICAgSU5UNDhfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDQ4X01BWCAgICAgSU5UNDhfTUFYCiMgZGVmaW5lIFVJTlRfTEVBU1Q0OF9NQVggICBVSU5UNDhfTUFYCiMgZGVmaW5lIElOVF9GQVNUNDhfTUlOICAgICAgSU5UNDhfTUlOCiMgZGVmaW5lIElOVF9GQVNUNDhfTUFYICAgICAgSU5UNDhfTUFYCiMgZGVmaW5lIFVJTlRfRkFTVDQ4X01BWCAgICBVSU5UNDhfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUlOICAgSU5UNDhfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUFYICAgSU5UNDhfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDMyX01BWCBVSU5UNDhfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUlOICAgSU5UNDhfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUFYICAgSU5UNDhfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDE2X01BWCBVSU5UNDhfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NSU4gICAgSU5UNDhfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NQVggICAgSU5UNDhfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDhfTUFYICBVSU5UNDhfTUFYCiNlbmRpZiAvKiBfX0lOVDQ4X1RZUEVfXyAqLwoKCiNpZmRlZiBfX0lOVDQwX1RZUEVfXwojIGRlZmluZSBJTlQ0MF9NQVggICAgICAgICAgIElOVDQwX0MoNTQ5NzU1ODEzODg3KQojIGRlZmluZSBJTlQ0MF9NSU4gICAgICAgICAoLUlOVDQwX0MoNTQ5NzU1ODEzODg3KS0xKQojIGRlZmluZSBVSU5UNDBfTUFYICAgICAgICAgVUlOVDQwX0MoMTA5OTUxMTYyNzc3NSkKIyBkZWZpbmUgSU5UX0xFQVNUNDBfTUlOICAgICBJTlQ0MF9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUNDBfTUFYICAgICBJTlQ0MF9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDQwX01BWCAgIFVJTlQ0MF9NQVgKIyBkZWZpbmUgSU5UX0ZBU1Q0MF9NSU4gICAgICBJTlQ0MF9NSU4KIyBkZWZpbmUgSU5UX0ZBU1Q0MF9NQVggICAgICBJTlQ0MF9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUNDBfTUFYICAgIFVJTlQ0MF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NSU4gICBJTlQ0MF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QzMl9NQVggICBJTlQ0MF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMzJfTUFYIFVJTlQ0MF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQ0MF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQ0MF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQ0MF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQ0MF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQ0MF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQ0MF9NQVgKI2VuZGlmIC8qIF9fSU5UNDBfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UMzJfVFlQRV9fCiMgZGVmaW5lIElOVDMyX01BWCAgICAgICAgICAgSU5UMzJfQygyMTQ3NDgzNjQ3KQojIGRlZmluZSBJTlQzMl9NSU4gICAgICAgICAoLUlOVDMyX0MoMjE0NzQ4MzY0NyktMSkKIyBkZWZpbmUgVUlOVDMyX01BWCAgICAgICAgIFVJTlQzMl9DKDQyOTQ5NjcyOTUpCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUlOICAgSU5UMzJfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMzJfTUFYICAgSU5UMzJfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDMyX01BWCBVSU5UMzJfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUlOICAgSU5UMzJfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUFYICAgSU5UMzJfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDE2X01BWCBVSU5UMzJfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NSU4gICAgSU5UMzJfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NQVggICAgSU5UMzJfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDhfTUFYICBVSU5UMzJfTUFYCiNlbmRpZiAvKiBfX0lOVDMyX1RZUEVfXyAqLwoKI2lmZGVmIF9fSU5UX0xFQVNUMzJfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDMyX01JTiAgIF9fSU5UX0xFQVNUMzJfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDMyX01BWCAgIF9fSU5UX0xFQVNUMzJfTUFYCiMgZGVmaW5lIFVJTlRfTEVBU1QzMl9NQVggX19VSU5UX0xFQVNUMzJfTUFYCiMgZGVmaW5lIElOVF9GQVNUMzJfTUlOICAgIF9fSU5UX0xFQVNUMzJfTUlOCiMgZGVmaW5lIElOVF9GQVNUMzJfTUFYICAgIF9fSU5UX0xFQVNUMzJfTUFYCiMgZGVmaW5lIFVJTlRfRkFTVDMyX01BWCAgX19VSU5UX0xFQVNUMzJfTUFYCiNlbmRpZiAvKiBfX0lOVF9MRUFTVDMyX01JTiAqLwoKCiNpZmRlZiBfX0lOVDI0X1RZUEVfXwojIGRlZmluZSBJTlQyNF9NQVggICAgICAgICAgIElOVDI0X0MoODM4ODYwNykKIyBkZWZpbmUgSU5UMjRfTUlOICAgICAgICAgKC1JTlQyNF9DKDgzODg2MDcpLTEpCiMgZGVmaW5lIFVJTlQyNF9NQVggICAgICAgICBVSU5UMjRfQygxNjc3NzIxNSkKIyBkZWZpbmUgSU5UX0xFQVNUMjRfTUlOICAgICBJTlQyNF9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUMjRfTUFYICAgICBJTlQyNF9NQVgKIyBkZWZpbmUgVUlOVF9MRUFTVDI0X01BWCAgIFVJTlQyNF9NQVgKIyBkZWZpbmUgSU5UX0ZBU1QyNF9NSU4gICAgICBJTlQyNF9NSU4KIyBkZWZpbmUgSU5UX0ZBU1QyNF9NQVggICAgICBJTlQyNF9NQVgKIyBkZWZpbmUgVUlOVF9GQVNUMjRfTUFYICAgIFVJTlQyNF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NSU4gICBJTlQyNF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1QxNl9NQVggICBJTlQyNF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUMTZfTUFYIFVJTlQyNF9NQVgKIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01JTiAgICBJTlQyNF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQyNF9NQVgKIyBkZWZpbmUgX19VSU5UX0xFQVNUOF9NQVggIFVJTlQyNF9NQVgKI2VuZGlmIC8qIF9fSU5UMjRfVFlQRV9fICovCgoKI2lmZGVmIF9fSU5UMTZfVFlQRV9fCiNkZWZpbmUgSU5UMTZfTUFYICAgICAgICAgICAgSU5UMTZfQygzMjc2NykKI2RlZmluZSBJTlQxNl9NSU4gICAgICAgICAgKC1JTlQxNl9DKDMyNzY3KS0xKQojZGVmaW5lIFVJTlQxNl9NQVggICAgICAgICAgVUlOVDE2X0MoNjU1MzUpCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUlOICAgSU5UMTZfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUMTZfTUFYICAgSU5UMTZfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDE2X01BWCBVSU5UMTZfTUFYCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NSU4gICAgSU5UMTZfTUlOCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NQVggICAgSU5UMTZfTUFYCiMgZGVmaW5lIF9fVUlOVF9MRUFTVDhfTUFYICBVSU5UMTZfTUFYCiNlbmRpZiAvKiBfX0lOVDE2X1RZUEVfXyAqLwoKI2lmZGVmIF9fSU5UX0xFQVNUMTZfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDE2X01JTiAgIF9fSU5UX0xFQVNUMTZfTUlOCiMgZGVmaW5lIElOVF9MRUFTVDE2X01BWCAgIF9fSU5UX0xFQVNUMTZfTUFYCiMgZGVmaW5lIFVJTlRfTEVBU1QxNl9NQVggX19VSU5UX0xFQVNUMTZfTUFYCiMgZGVmaW5lIElOVF9GQVNUMTZfTUlOICAgIF9fSU5UX0xFQVNUMTZfTUlOCiMgZGVmaW5lIElOVF9GQVNUMTZfTUFYICAgIF9fSU5UX0xFQVNUMTZfTUFYCiMgZGVmaW5lIFVJTlRfRkFTVDE2X01BWCAgX19VSU5UX0xFQVNUMTZfTUFYCiNlbmRpZiAvKiBfX0lOVF9MRUFTVDE2X01JTiAqLwoKCiNpZmRlZiBfX0lOVDhfVFlQRV9fCiMgZGVmaW5lIElOVDhfTUFYICAgICAgICAgICAgSU5UOF9DKDEyNykKIyBkZWZpbmUgSU5UOF9NSU4gICAgICAgICAgKC1JTlQ4X0MoMTI3KS0xKQojIGRlZmluZSBVSU5UOF9NQVggICAgICAgICAgVUlOVDhfQygyNTUpCiMgZGVmaW5lIF9fSU5UX0xFQVNUOF9NSU4gICAgSU5UOF9NSU4KIyBkZWZpbmUgX19JTlRfTEVBU1Q4X01BWCAgICBJTlQ4X01BWAojIGRlZmluZSBfX1VJTlRfTEVBU1Q4X01BWCAgVUlOVDhfTUFYCiNlbmRpZiAvKiBfX0lOVDhfVFlQRV9fICovCgojaWZkZWYgX19JTlRfTEVBU1Q4X01JTgojIGRlZmluZSBJTlRfTEVBU1Q4X01JTiAgIF9fSU5UX0xFQVNUOF9NSU4KIyBkZWZpbmUgSU5UX0xFQVNUOF9NQVggICBfX0lOVF9MRUFTVDhfTUFYCiMgZGVmaW5lIFVJTlRfTEVBU1Q4X01BWCBfX1VJTlRfTEVBU1Q4X01BWAojIGRlZmluZSBJTlRfRkFTVDhfTUlOICAgIF9fSU5UX0xFQVNUOF9NSU4KIyBkZWZpbmUgSU5UX0ZBU1Q4X01BWCAgICBfX0lOVF9MRUFTVDhfTUFYCiMgZGVmaW5lIFVJTlRfRkFTVDhfTUFYICBfX1VJTlRfTEVBU1Q4X01BWAojZW5kaWYgLyogX19JTlRfTEVBU1Q4X01JTiAqLwoKLyogU29tZSB1dGlsaXR5IG1hY3JvcyAqLwojZGVmaW5lICBfX0lOVE5fTUlOKG4pICBfX3N0ZGludF9qb2luMyggSU5ULCBuLCBfTUlOKQojZGVmaW5lICBfX0lOVE5fTUFYKG4pICBfX3N0ZGludF9qb2luMyggSU5ULCBuLCBfTUFYKQojZGVmaW5lIF9fVUlOVE5fTUFYKG4pICBfX3N0ZGludF9qb2luMyhVSU5ULCBuLCBfTUFYKQojZGVmaW5lICBfX0lOVE5fQyhuLCB2KSBfX3N0ZGludF9qb2luMyggSU5ULCBuLCBfQyh2KSkKI2RlZmluZSBfX1VJTlROX0MobiwgdikgX19zdGRpbnRfam9pbjMoVUlOVCwgbiwgX0ModikpCgovKiBDOTkgNy4xOC4yLjQgTGltaXRzIG9mIGludGVnZXIgdHlwZXMgY2FwYWJsZSBvZiBob2xkaW5nIG9iamVjdCBwb2ludGVycy4gKi8KLyogQzk5IDcuMTguMyBMaW1pdHMgb2Ygb3RoZXIgaW50ZWdlciB0eXBlcy4gKi8KCiNkZWZpbmUgIElOVFBUUl9NSU4gICgtX19JTlRQVFJfTUFYX18tMSkKI2RlZmluZSAgSU5UUFRSX01BWCAgICBfX0lOVFBUUl9NQVhfXwojZGVmaW5lIFVJTlRQVFJfTUFYICAgX19VSU5UUFRSX01BWF9fCiNkZWZpbmUgUFRSRElGRl9NSU4gKC1fX1BUUkRJRkZfTUFYX18tMSkKI2RlZmluZSBQVFJESUZGX01BWCAgIF9fUFRSRElGRl9NQVhfXwojZGVmaW5lICAgIFNJWkVfTUFYICAgICAgX19TSVpFX01BWF9fCgovKiBJU085ODk5OjIwMTEgNy4yMCAoQzExIEFubmV4IEspOiBEZWZpbmUgUlNJWkVfTUFYIGlmIF9fU1REQ19XQU5UX0xJQl9FWFQxX18KICogaXMgZW5hYmxlZC4gKi8KI2lmIGRlZmluZWQoX19TVERDX1dBTlRfTElCX0VYVDFfXykgJiYgX19TVERDX1dBTlRfTElCX0VYVDFfXyA+PSAxCiNkZWZpbmUgICBSU0laRV9NQVggICAgICAgICAgICAoU0laRV9NQVggPj4gMSkKI2VuZGlmCgovKiBDOTkgNy4xOC4yLjUgTGltaXRzIG9mIGdyZWF0ZXN0LXdpZHRoIGludGVnZXIgdHlwZXMuICovCiNkZWZpbmUgIElOVE1BWF9NSU4gKC1fX0lOVE1BWF9NQVhfXy0xKQojZGVmaW5lICBJTlRNQVhfTUFYICAgX19JTlRNQVhfTUFYX18KI2RlZmluZSBVSU5UTUFYX01BWCAgX19VSU5UTUFYX01BWF9fCgovKiBDOTkgNy4xOC4zIExpbWl0cyBvZiBvdGhlciBpbnRlZ2VyIHR5cGVzLiAqLwojZGVmaW5lIFNJR19BVE9NSUNfTUlOIF9fSU5UTl9NSU4oX19TSUdfQVRPTUlDX1dJRFRIX18pCiNkZWZpbmUgU0lHX0FUT01JQ19NQVggX19JTlROX01BWChfX1NJR19BVE9NSUNfV0lEVEhfXykKI2lmZGVmIF9fV0lOVF9VTlNJR05FRF9fCiMgZGVmaW5lIFdJTlRfTUlOICAgICAgIF9fVUlOVE5fQyhfX1dJTlRfV0lEVEhfXywgMCkKIyBkZWZpbmUgV0lOVF9NQVggICAgICAgX19VSU5UTl9NQVgoX19XSU5UX1dJRFRIX18pCiNlbHNlCiMgZGVmaW5lIFdJTlRfTUlOICAgICAgIF9fSU5UTl9NSU4oX19XSU5UX1dJRFRIX18pCiMgZGVmaW5lIFdJTlRfTUFYICAgICAgIF9fSU5UTl9NQVgoX19XSU5UX1dJRFRIX18pCiNlbmRpZgoKI2lmbmRlZiBXQ0hBUl9NQVgKIyBkZWZpbmUgV0NIQVJfTUFYIF9fV0NIQVJfTUFYX18KI2VuZGlmCiNpZm5kZWYgV0NIQVJfTUlOCiMgaWYgX19XQ0hBUl9NQVhfXyA9PSBfX0lOVE5fTUFYKF9fV0NIQVJfV0lEVEhfXykKIyAgZGVmaW5lIFdDSEFSX01JTiBfX0lOVE5fTUlOKF9fV0NIQVJfV0lEVEhfXykKIyBlbHNlCiMgIGRlZmluZSBXQ0hBUl9NSU4gX19VSU5UTl9DKF9fV0NIQVJfV0lEVEhfXywgMCkKIyBlbmRpZgojZW5kaWYKCi8qIDcuMTguNC4yIE1hY3JvcyBmb3IgZ3JlYXRlc3Qtd2lkdGggaW50ZWdlciBjb25zdGFudHMuICovCiNkZWZpbmUgIElOVE1BWF9DKHYpIF9faW50X2ModiwgIF9fSU5UTUFYX0NfU1VGRklYX18pCiNkZWZpbmUgVUlOVE1BWF9DKHYpIF9faW50X2ModiwgX19VSU5UTUFYX0NfU1VGRklYX18pCgojZW5kaWYgLyogX19TVERDX0hPU1RFRF9fICovCiNlbmRpZiAvKiBfX0NMQU5HX1NURElOVF9IICovCgB3YXNtX3NpbWQxMjguaAAvKj09PS0tIGNvbXBsZXggLS0tIE9wZW5NUCBjb21wbGV4IHdyYXBwZXIgZm9yIHRhcmdldCByZWdpb25zIC0tLS0tLS0tLSBjKysgLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0NMQU5HX09QRU5NUF9DT01QTEVYX0hfXwojZGVmaW5lIF9fQ0xBTkdfT1BFTk1QX0NPTVBMRVhfSF9fCgojaWZuZGVmIF9PUEVOTVAKI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIE9wZW5NUCBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgovLyBXZSByZXF1aXJlIG1hdGggZnVuY3Rpb25zIGluIHRoZSBjb21wbGV4IGJ1aWx0aW5zIGJlbG93LgojaW5jbHVkZSA8bWF0aC5oPgoKI2lmZGVmIF9fTlZQVFhfXwojZGVmaW5lIF9fT1BFTk1QX05WUFRYX18KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9jb21wbGV4X2J1aWx0aW5zLmg+CiN1bmRlZiBfX09QRU5NUF9OVlBUWF9fCiNlbmRpZgoKI2lmZGVmIF9fQU1ER0NOX18KI2RlZmluZSBfX09QRU5NUF9BTURHQ05fXwojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2NvbXBsZXhfYnVpbHRpbnMuaD4KI3VuZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNlbmRpZgoKI2VuZGlmCgovLyBHcmFiIHRoZSBob3N0IGhlYWRlciB0b28uCiNpbmNsdWRlX25leHQgPGNvbXBsZXguaD4KAHBwY193cmFwcGVycy9lbW1pbnRyaW4uaABwcGNfd3JhcHBlcnMveG1taW50cmluLmgAc2FuaXRpemVyL3Vic2FuX2ludGVyZmFjZS5oAE1pc3NpbmcgYSBjb21tYSBvciAnfScgYWZ0ZXIgYW4gb2JqZWN0IG1lbWJlci4ALy8AWzpeY250cmw6XQBoZWxsbywgd29ybGQAZmFpbABOVUxMIHN0YXRlIGluIFJ1blN0YXRlT25CeXRlAFNpbXBsaWZ5V2Fsa2VyOjpTaG9ydFZpc2l0IGNhbGxlZABDAEdyYW50aGEATGlzdQBOZABObwBPbGRfTm9ydGhfQXJhYmlhbgBPbGRfUGVybWljAFBhaGF3aF9IbW9uZwBQYwBQaQBQbwAlcwAvc3lzL2RldmljZXMvc3lzdGVtL2NwdS9jcHUwL3RzY19mcmVxX2toegBpbmRleCA8IGVoZHJfLT5lX3BobnVtAGxpbmtfYmFzZV8gPCBzeW0tPnN0X3ZhbHVlAGFyZW5hLT5hbGxvY2F0aW9uX2NvdW50ID4gMABmLT5oZWFkZXIubWFnaWMgPT0gTWFnaWMoa01hZ2ljQWxsb2NhdGVkLCAmZi0+aGVhZGVyKQB2AHVuc2lnbmVkIGNoYXIAaQB5AHF1AC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgB0cmVlLT5sZW5ndGgALCBlbmQgPSAAXS5lbmRfcG9zIABFbnF1ZXVlIHRvIGxpc3QgZmFpbGVkAFNpZ25hbCBvbiAAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9zcXJ0LmMAUlNBIFNpZ24gS0FUAGNvbXBpbGVyOiBuL2EAa3l0aGUucHJvdG8uS3ppcEluZm8uQ29ycG9yYUVudHJ5LmtleQBLWVRIRV9WTkFNRVMAZnJlZXN0YW5kaW5nAGFybV9tdmUuaABhdng1MTJ2bGZwMTZpbnRyaW4uaAAvKj09PS0tLS0gY2V0aW50cmluLmggLSBDRVQgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGNldGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19DRVRJTlRSSU5fSAojZGVmaW5lIF9fQ0VUSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNoc3RrIikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY3NzcGQoaW50IF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcGQoX19hKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY3NzcHEodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcHEoX19hKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2luY19zc3AodW5zaWduZWQgaW50IF9fYSkgewogIF9fYnVpbHRpbl9pYTMyX2luY3NzcHEoX19hKTsKfQojZWxzZSAvKiBfX3g4Nl82NF9fICovCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9pbmNfc3NwKHVuc2lnbmVkIGludCBfX2EpIHsKICBfX2J1aWx0aW5faWEzMl9pbmNzc3BkKChpbnQpX19hKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUyBfcmRzc3BkKHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzc3BkKF9fYSk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMgX3Jkc3NwcSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc3NwcShfX2EpOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTIF9nZXRfc3NwKHZvaWQpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzc3BxKDApOwp9CiNlbHNlIC8qIF9feDg2XzY0X18gKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUyBfZ2V0X3NzcCh2b2lkKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc3NwZCgwKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX3NhdmVwcmV2c3NwKCkgewogIF9fYnVpbHRpbl9pYTMyX3NhdmVwcmV2c3NwKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9yc3RvcnNzcCh2b2lkICogX19wKSB7CiAgX19idWlsdGluX2lhMzJfcnN0b3Jzc3AoX19wKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX3dyc3NkKHVuc2lnbmVkIGludCBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnNzZChfX2EsIF9fcCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF93cnNzcSh1bnNpZ25lZCBsb25nIGxvbmcgX19hLCB2b2lkICogX19wKSB7CiAgX19idWlsdGluX2lhMzJfd3Jzc3EoX19hLCBfX3ApOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfd3J1c3NkKHVuc2lnbmVkIGludCBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnVzc2QoX19hLCBfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfd3J1c3NxKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl93cnVzc3EoX19hLCBfX3ApOwp9CiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfc2V0c3Nic3koKSB7CiAgX19idWlsdGluX2lhMzJfc2V0c3Nic3koKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX2NscnNzYnN5KHZvaWQgKiBfX3ApIHsKICBfX2J1aWx0aW5faWEzMl9jbHJzc2JzeShfX3ApOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19DRVRJTlRSSU5fSCAqLwoAZm1haW50cmluLmgAaGV4YWdvbl90eXBlcy5oAC8qPT09LS0tLSBtbV9tYWxsb2MuaCAtIEFsbG9jYXRpbmcgYW5kIEZyZWVpbmcgQWxpZ25lZCBNZW1vcnkgQmxvY2tzIC0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19NTV9NQUxMT0NfSAojZGVmaW5lIF9fTU1fTUFMTE9DX0gKCiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNpZmRlZiBfV0lOMzIKI2luY2x1ZGUgPG1hbGxvYy5oPgojZWxzZQojaWZuZGVmIF9fY3BsdXNwbHVzCmV4dGVybiBpbnQgcG9zaXhfbWVtYWxpZ24odm9pZCAqKl9fbWVtcHRyLCBzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpOwojZWxzZQovLyBTb21lIHN5c3RlbXMgKGUuZy4gdGhvc2Ugd2l0aCBHTlUgbGliYykgZGVjbGFyZSBwb3NpeF9tZW1hbGlnbiB3aXRoIGFuCi8vIGV4Y2VwdGlvbiBzcGVjaWZpZXIuIFZpYSBhbiAiZWdyZWdpb3VzIHdvcmthcm91bmQiIGluCi8vIFNlbWE6OkNoZWNrRXF1aXZhbGVudEV4Y2VwdGlvblNwZWMsIENsYW5nIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBhcyBhIHZhbGlkCi8vIHJlZGVjbGFyYXRpb24gb2YgZ2xpYmMncyBkZWNsYXJhdGlvbi4KZXh0ZXJuICJDIiBpbnQgcG9zaXhfbWVtYWxpZ24odm9pZCAqKl9fbWVtcHRyLCBzaXplX3QgX19hbGlnbm1lbnQsIHNpemVfdCBfX3NpemUpOwojZW5kaWYKI2VuZGlmCgojaWYgIShkZWZpbmVkKF9XSU4zMikgJiYgZGVmaW5lZChfbW1fbWFsbG9jKSkKc3RhdGljIF9faW5saW5lX18gdm9pZCAqX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hbGxvY19fKSkKX21tX21hbGxvYyhzaXplX3QgX19zaXplLCBzaXplX3QgX19hbGlnbikKewogIGlmIChfX2FsaWduID09IDEpIHsKICAgIHJldHVybiBtYWxsb2MoX19zaXplKTsKICB9CgogIGlmICghKF9fYWxpZ24gJiAoX19hbGlnbiAtIDEpKSAmJiBfX2FsaWduIDwgc2l6ZW9mKHZvaWQgKikpCiAgICBfX2FsaWduID0gc2l6ZW9mKHZvaWQgKik7CgogIHZvaWQgKl9fbWFsbG9jZWRNZW1vcnk7CiNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQogIF9fbWFsbG9jZWRNZW1vcnkgPSBfX21pbmd3X2FsaWduZWRfbWFsbG9jKF9fc2l6ZSwgX19hbGlnbik7CiNlbGlmIGRlZmluZWQoX1dJTjMyKQogIF9fbWFsbG9jZWRNZW1vcnkgPSBfYWxpZ25lZF9tYWxsb2MoX19zaXplLCBfX2FsaWduKTsKI2Vsc2UKICBpZiAocG9zaXhfbWVtYWxpZ24oJl9fbWFsbG9jZWRNZW1vcnksIF9fYWxpZ24sIF9fc2l6ZSkpCiAgICByZXR1cm4gMDsKI2VuZGlmCgogIHJldHVybiBfX21hbGxvY2VkTWVtb3J5Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9tbV9mcmVlKHZvaWQgKl9fcCkKewojaWYgZGVmaW5lZChfX01JTkdXMzJfXykKICBfX21pbmd3X2FsaWduZWRfZnJlZShfX3ApOwojZWxpZiBkZWZpbmVkKF9XSU4zMikKICBfYWxpZ25lZF9mcmVlKF9fcCk7CiNlbHNlCiAgZnJlZShfX3ApOwojZW5kaWYKfQojZW5kaWYKCiNlbmRpZiAvKiBfX01NX01BTExPQ19IICovCgBtb3ZkaXJpbnRyaW4uaAB1bndpbmQuaAAvKj09PS0tLS0gbW1pbnRyaW4uaCAtIEltcGxlbWVudGF0aW9uIG9mIE1NWCBpbnRyaW5zaWNzIG9uIFBvd2VyUEMgLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4gICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgZmlsZSBpcyB0byBoZWxwIHBvcnRpbmcgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzCiAgIGV4cGxpY2l0bHkgZnJvbSB4ODZfNjQgdG8gcG93ZXJwYzY0L3Bvd2VycGM2NGxlLgoKICAgU2luY2UgUG93ZXJQQyB0YXJnZXQgZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSA2NC1iaXQgdmVjdG9yIHR5cGUsIHdlCiAgIHR5cGVkZWYgX19tNjQgdG8gNjQtYml0IHVuc2lnbmVkIGxvbmcgbG9uZyBpbiBNTVggaW50cmluc2ljcywgd2hpY2gKICAgd29ya3Mgd2VsbCBmb3IgX3NpNjQgYW5kIHNvbWUgX3BpMzIgb3BlcmF0aW9ucy4KCiAgIEZvciBfcGkxNiBhbmQgX3BpOCBvcGVyYXRpb25zLCBpdCdzIGJldHRlciB0byB0cmFuc2ZlciBfX202NCBpbnRvCiAgIDEyOC1iaXQgUG93ZXJQQyB2ZWN0b3IgZmlyc3QuIFBvd2VyOCBpbnRyb2R1Y2VkIGRpcmVjdCByZWdpc3RlcgogICBtb3ZlIGluc3RydWN0aW9ucyB3aGljaCBoZWxwcyBmb3IgbW9yZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24uCgogICBJdCdzIHVzZXIncyByZXNwb25zaWJpbGl0eSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdHMgb2Ygc3VjaCBwb3J0CiAgIGFyZSBhY2NlcHRhYmxlIG9yIGZ1cnRoZXIgY2hhbmdlcyBhcmUgbmVlZGVkLiBQbGVhc2Ugbm90ZSB0aGF0IG11Y2gKICAgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzIENBTiBCRSBSRVdSSVRURU4gaW4gbW9yZSBwb3J0YWJsZSBhbmQKICAgZWZmaWNpZW50IHN0YW5kYXJkIEMgb3IgR05VIEMgZXh0ZW5zaW9ucyB3aXRoIDY0LWJpdCBzY2FsYXIKICAgb3BlcmF0aW9ucywgb3IgMTI4LWJpdCBTU0UvQWx0aXZlYyBvcGVyYXRpb25zLCB3aGljaCBhcmUgbW9yZQogICByZWNvbW1lbmRlZC4gKi8KI2Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICJQbGVhc2UgcmVhZCBjb21tZW50IGFib3ZlLiAgVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgX01NSU5UUklOX0hfSU5DTFVERUQKI2RlZmluZSBfTU1JTlRSSU5fSF9JTkNMVURFRAoKI2lmIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykKCiNpbmNsdWRlIDxhbHRpdmVjLmg+Ci8qIFRoZSBJbnRlbCBBUEkgaXMgZmxleGlibGUgZW5vdWdoIHRoYXQgd2UgbXVzdCBhbGxvdyBhbGlhc2luZyB3aXRoIG90aGVyCiAgIHZlY3RvciB0eXBlcywgYW5kIHRoZWlyIHNjYWxhciBjb21wb25lbnRzLiAgKi8KdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXyg4KSkpIHVuc2lnbmVkIGxvbmcgbG9uZyBfX202NDsKCnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oOCkpKSB1bmlvbiB7CiAgX19tNjQgYXNfbTY0OwogIGNoYXIgYXNfY2hhcls4XTsKICBzaWduZWQgY2hhciBhc19zaWduZWRfY2hhcls4XTsKICBzaG9ydCBhc19zaG9ydFs0XTsKICBpbnQgYXNfaW50WzJdOwogIGxvbmcgbG9uZyBhc19sb25nX2xvbmc7CiAgZmxvYXQgYXNfZmxvYXRbMl07CiAgZG91YmxlIGFzX2RvdWJsZTsKfSBfX202NF91bmlvbjsKCi8qIEVtcHR5IHRoZSBtdWx0aW1lZGlhIHN0YXRlLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2VtcHR5KHZvaWQpIHsKICAvKiBub3RoaW5nIHRvIGRvIG9uIFBvd2VyUEMuICAqLwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9lbXB0eSh2b2lkKSB7CiAgLyogbm90aGluZyB0byBkbyBvbiBQb3dlclBDLiAgKi8KfQoKLyogQ29udmVydCBJIHRvIGEgX19tNjQgb2JqZWN0LiAgVGhlIGludGVnZXIgaXMgemVyby1leHRlbmRlZCB0byA2NC1iaXRzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jdnRzaTMyX3NpNjQoaW50IF9faSkgewogIHJldHVybiAoX19tNjQpKHVuc2lnbmVkIGludClfX2k7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9mcm9tX2ludChpbnQgX19pKSB7CiAgcmV0dXJuIF9tbV9jdnRzaTMyX3NpNjQoX19pKTsKfQoKLyogQ29udmVydCB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgX19tNjQgb2JqZWN0IGludG8gYW4gaW50ZWdlci4gICovCmV4dGVybiBfX2lubGluZSBpbnQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjRfc2kzMihfX202NCBfX2kpIHsKICByZXR1cm4gKChpbnQpX19pKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV90b19pbnQoX19tNjQgX19pKSB7CiAgcmV0dXJuIF9tbV9jdnRzaTY0X3NpMzIoX19pKTsKfQoKLyogQ29udmVydCBJIHRvIGEgX19tNjQgb2JqZWN0LiAgKi8KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9mcm9tX2ludDY0KGxvbmcgbG9uZyBfX2kpIHsKICByZXR1cm4gKF9fbTY0KV9faTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jdnRzaTY0X202NChsb25nIGxvbmcgX19pKSB7CiAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8qIE1pY3Jvc29mdCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjR4X3NpNjQobG9uZyBsb25nIF9faSkgewogIHJldHVybiAoX19tNjQpX19pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldF9waTY0eChsb25nIGxvbmcgX19pKSB7CiAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8qIENvbnZlcnQgdGhlIF9fbTY0IG9iamVjdCB0byBhIDY0Yml0IGludGVnZXIuICAqLwoKLyogSW50ZWwgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZwogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV90b19pbnQ2NChfX202NCBfX2kpIHsKICByZXR1cm4gKGxvbmcgbG9uZylfX2k7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dG02NF9zaTY0KF9fbTY0IF9faSkgewogIHJldHVybiAobG9uZyBsb25nKV9faTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2N2dHNpNjRfc2k2NHgoX19tNjQgX19pKSB7CiAgcmV0dXJuIChsb25nIGxvbmcpX19pOwp9CgojaWZkZWYgX0FSQ0hfUFdSOAovKiBQYWNrIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgZnJvbSBNMSBpbnRvIHRoZSBsb3dlciBmb3VyIDgtYml0IHZhbHVlcyBvZgogICB0aGUgcmVzdWx0LCBhbmQgdGhlIGZvdXIgMTYtYml0IHZhbHVlcyBmcm9tIE0yIGludG8gdGhlIHVwcGVyIGZvdXIgOC1iaXQKICAgdmFsdWVzIG9mIHRoZSByZXN1bHQsIGFsbCB3aXRoIHNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdm0xOwogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIHZyZXN1bHQ7CgogIHZtMSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICB2cmVzdWx0ID0gdmVjX3BhY2tzKHZtMSwgdm0xKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXZyZXN1bHQpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFja3Nzd2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fcGFja3NfcGkxNihfX20xLCBfX20yKTsKfQoKLyogUGFjayB0aGUgdHdvIDMyLWJpdCB2YWx1ZXMgZnJvbSBNMSBpbiB0byB0aGUgbG93ZXIgdHdvIDE2LWJpdCB2YWx1ZXMgb2YKICAgdGhlIHJlc3VsdCwgYW5kIHRoZSB0d28gMzItYml0IHZhbHVlcyBmcm9tIE0yIGludG8gdGhlIHVwcGVyIHR3byAxNi1iaXQKICAgdmFsdWVzIG9mIHRoZSByZXN1bHQsIGFsbCB3aXRoIHNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IHZtMTsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgdnJlc3VsdDsKCiAgdm0xID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICB2cmVzdWx0ID0gdmVjX3BhY2tzKHZtMSwgdm0xKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXZyZXN1bHQpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFja3NzZHcoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fcGFja3NfcGkzMihfX20xLCBfX20yKTsKfQoKLyogUGFjayB0aGUgZm91ciAxNi1iaXQgdmFsdWVzIGZyb20gTTEgaW50byB0aGUgbG93ZXIgZm91ciA4LWJpdCB2YWx1ZXMgb2YKICAgdGhlIHJlc3VsdCwgYW5kIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgZnJvbSBNMiBpbnRvIHRoZSB1cHBlciBmb3VyIDgtYml0CiAgIHZhbHVlcyBvZiB0aGUgcmVzdWx0LCBhbGwgd2l0aCB1bnNpZ25lZCBzYXR1cmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9wYWNrc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHI7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IHZtMSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpKF9fdmVjdG9yIGxvbmcgbG9uZykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIHtfX20xLCBfX20yfTsKI2Vsc2UKICAgICAge19fbTIsIF9fbTF9OwojZW5kaWYKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX196ZXJvID0gezB9OwogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX3NlbGVjdCA9IHZlY19jbXBsdCh2bTEsIF9femVybyk7CiAgciA9IHZlY19wYWNrcygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdm0xLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdm0xKTsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBwYWNrc2VsID0gdmVjX3BhY2soX19zZWxlY3QsIF9fc2VsZWN0KTsKICByID0gdmVjX3NlbChyLCAoY29uc3QgX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3plcm8sIHBhY2tzZWwpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpcilbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWNrdXN3YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9wYWNrc19wdTE2KF9fbTEsIF9fbTIpOwp9CiNlbmRpZiAvKiBlbmQgQVJDSF9QV1I4ICovCgovKiBJbnRlcmxlYXZlIHRoZSBmb3VyIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBoaWdoIGhhbGYgb2YgTTEgd2l0aCB0aGUgZm91cgogICA4LWJpdCB2YWx1ZXMgZnJvbSB0aGUgaGlnaCBoYWxmIG9mIE0yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV91bnBhY2toaV9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19tZXJnZWwoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVsxXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IG0xLmFzX2NoYXJbNF07CiAgcmVzLmFzX2NoYXJbMV0gPSBtMi5hc19jaGFyWzRdOwogIHJlcy5hc19jaGFyWzJdID0gbTEuYXNfY2hhcls1XTsKICByZXMuYXNfY2hhclszXSA9IG0yLmFzX2NoYXJbNV07CiAgcmVzLmFzX2NoYXJbNF0gPSBtMS5hc19jaGFyWzZdOwogIHJlcy5hc19jaGFyWzVdID0gbTIuYXNfY2hhcls2XTsKICByZXMuYXNfY2hhcls2XSA9IG0xLmFzX2NoYXJbN107CiAgcmVzLmFzX2NoYXJbN10gPSBtMi5hc19jaGFyWzddOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHVucGNraGJ3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3VucGFja2hpX3BpOChfX20xLCBfX20yKTsKfQoKLyogSW50ZXJsZWF2ZSB0aGUgdHdvIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgaGlnaCBoYWxmIG9mIE0xIHdpdGggdGhlIHR3bwogICAxNi1iaXQgdmFsdWVzIGZyb20gdGhlIGhpZ2ggaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNraGlfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX3Nob3J0WzBdID0gbTEuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzFdID0gbTIuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzJdID0gbTEuYXNfc2hvcnRbM107CiAgcmVzLmFzX3Nob3J0WzNdID0gbTIuYXNfc2hvcnRbM107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3B1bnBja2h3ZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV91bnBhY2toaV9waTE2KF9fbTEsIF9fbTIpOwp9Ci8qIEludGVybGVhdmUgdGhlIDMyLWJpdCB2YWx1ZSBmcm9tIHRoZSBoaWdoIGhhbGYgb2YgTTEgd2l0aCB0aGUgMzItYml0CiAgIHZhbHVlIGZyb20gdGhlIGhpZ2ggaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNraGlfcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2ludFswXSA9IG0xLmFzX2ludFsxXTsKICByZXMuYXNfaW50WzFdID0gbTIuYXNfaW50WzFdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2toZHEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNraGlfcGkzMihfX20xLCBfX20yKTsKfQovKiBJbnRlcmxlYXZlIHRoZSBmb3VyIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMSB3aXRoIHRoZSBmb3VyCiAgIDgtYml0IHZhbHVlcyBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNrbG9fcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfbWVyZ2VsKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2NoYXJbMF0gPSBtMS5hc19jaGFyWzBdOwogIHJlcy5hc19jaGFyWzFdID0gbTIuYXNfY2hhclswXTsKICByZXMuYXNfY2hhclsyXSA9IG0xLmFzX2NoYXJbMV07CiAgcmVzLmFzX2NoYXJbM10gPSBtMi5hc19jaGFyWzFdOwogIHJlcy5hc19jaGFyWzRdID0gbTEuYXNfY2hhclsyXTsKICByZXMuYXNfY2hhcls1XSA9IG0yLmFzX2NoYXJbMl07CiAgcmVzLmFzX2NoYXJbNl0gPSBtMS5hc19jaGFyWzNdOwogIHJlcy5hc19jaGFyWzddID0gbTIuYXNfY2hhclszXTsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3B1bnBja2xidyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV91bnBhY2tsb19waTgoX19tMSwgX19tMik7Cn0KLyogSW50ZXJsZWF2ZSB0aGUgdHdvIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgbG93IGhhbGYgb2YgTTEgd2l0aCB0aGUgdHdvCiAgIDE2LWJpdCB2YWx1ZXMgZnJvbSB0aGUgbG93IGhhbGYgb2YgTTIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3VucGFja2xvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19zaG9ydFswXSA9IG0xLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsxXSA9IG0yLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsyXSA9IG0xLmFzX3Nob3J0WzFdOwogIHJlcy5hc19zaG9ydFszXSA9IG0yLmFzX3Nob3J0WzFdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2tsd2QoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNrbG9fcGkxNihfX20xLCBfX20yKTsKfQoKLyogSW50ZXJsZWF2ZSB0aGUgMzItYml0IHZhbHVlIGZyb20gdGhlIGxvdyBoYWxmIG9mIE0xIHdpdGggdGhlIDMyLWJpdAogICB2YWx1ZSBmcm9tIHRoZSBsb3cgaGFsZiBvZiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fdW5wYWNrbG9fcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX2ludFswXSA9IG0xLmFzX2ludFswXTsKICByZXMuYXNfaW50WzFdID0gbTIuYXNfaW50WzBdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wdW5wY2tsZHEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fdW5wYWNrbG9fcGkzMihfX20xLCBfX20yKTsKfQoKLyogQWRkIHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTEgdG8gdGhlIDgtYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX2FkZChhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19jaGFyWzBdID0gbTEuYXNfY2hhclswXSArIG0yLmFzX2NoYXJbMF07CiAgcmVzLmFzX2NoYXJbMV0gPSBtMS5hc19jaGFyWzFdICsgbTIuYXNfY2hhclsxXTsKICByZXMuYXNfY2hhclsyXSA9IG0xLmFzX2NoYXJbMl0gKyBtMi5hc19jaGFyWzJdOwogIHJlcy5hc19jaGFyWzNdID0gbTEuYXNfY2hhclszXSArIG0yLmFzX2NoYXJbM107CiAgcmVzLmFzX2NoYXJbNF0gPSBtMS5hc19jaGFyWzRdICsgbTIuYXNfY2hhcls0XTsKICByZXMuYXNfY2hhcls1XSA9IG0xLmFzX2NoYXJbNV0gKyBtMi5hc19jaGFyWzVdOwogIHJlcy5hc19jaGFyWzZdID0gbTEuYXNfY2hhcls2XSArIG0yLmFzX2NoYXJbNl07CiAgcmVzLmFzX2NoYXJbN10gPSBtMS5hc19jaGFyWzddICsgbTIuYXNfY2hhcls3XTsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BhZGRiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FkZF9waTgoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGQoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfc2hvcnRbMF0gPSBtMS5hc19zaG9ydFswXSArIG0yLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsxXSA9IG0xLmFzX3Nob3J0WzFdICsgbTIuYXNfc2hvcnRbMV07CiAgcmVzLmFzX3Nob3J0WzJdID0gbTEuYXNfc2hvcnRbMl0gKyBtMi5hc19zaG9ydFsyXTsKICByZXMuYXNfc2hvcnRbM10gPSBtMS5hc19zaG9ydFszXSArIG0yLmFzX3Nob3J0WzNdOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHcoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMzItYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMzItYml0IHZhbHVlcyBpbiBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGQoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gbTEuYXNfaW50WzBdICsgbTIuYXNfaW50WzBdOwogIHJlcy5hc19pbnRbMV0gPSBtMS5hc19pbnRbMV0gKyBtMi5hc19pbnRbMV07CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWRkZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hZGRfcGkzMihfX20xLCBfX20yKTsKfQoKLyogU3VidHJhY3QgdGhlIDgtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1Yl9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWIoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IG0xLmFzX2NoYXJbMF0gLSBtMi5hc19jaGFyWzBdOwogIHJlcy5hc19jaGFyWzFdID0gbTEuYXNfY2hhclsxXSAtIG0yLmFzX2NoYXJbMV07CiAgcmVzLmFzX2NoYXJbMl0gPSBtMS5hc19jaGFyWzJdIC0gbTIuYXNfY2hhclsyXTsKICByZXMuYXNfY2hhclszXSA9IG0xLmFzX2NoYXJbM10gLSBtMi5hc19jaGFyWzNdOwogIHJlcy5hc19jaGFyWzRdID0gbTEuYXNfY2hhcls0XSAtIG0yLmFzX2NoYXJbNF07CiAgcmVzLmFzX2NoYXJbNV0gPSBtMS5hc19jaGFyWzVdIC0gbTIuYXNfY2hhcls1XTsKICByZXMuYXNfY2hhcls2XSA9IG0xLmFzX2NoYXJbNl0gLSBtMi5hc19jaGFyWzZdOwogIHJlcy5hc19jaGFyWzddID0gbTEuYXNfY2hhcls3XSAtIG0yLmFzX2NoYXJbN107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3ViYihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGk4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zdWJfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX3N1YihhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19zaG9ydFswXSA9IG0xLmFzX3Nob3J0WzBdIC0gbTIuYXNfc2hvcnRbMF07CiAgcmVzLmFzX3Nob3J0WzFdID0gbTEuYXNfc2hvcnRbMV0gLSBtMi5hc19zaG9ydFsxXTsKICByZXMuYXNfc2hvcnRbMl0gPSBtMS5hc19zaG9ydFsyXSAtIG0yLmFzX3Nob3J0WzJdOwogIHJlcy5hc19zaG9ydFszXSA9IG0xLmFzX3Nob3J0WzNdIC0gbTIuYXNfc2hvcnRbM107CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3VidyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGkxNihfX20xLCBfX20yKTsKfQoKLyogU3VidHJhY3QgdGhlIDMyLWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgMzItYml0IHZhbHVlcyBpbiBNMS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3ViX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWIoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gbTEuYXNfaW50WzBdIC0gbTIuYXNfaW50WzBdOwogIHJlcy5hc19pbnRbMV0gPSBtMS5hc19pbnRbMV0gLSBtMi5hc19pbnRbMV07CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3ViZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJfcGkzMihfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hZGRfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xICsgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3ViX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tMSAtIF9fbTIpOwp9CgovKiBTaGlmdCB0aGUgNjQtYml0IHZhbHVlIGluIE0gbGVmdCBieSBDT1VOVC4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2xsX3NpNjQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIChfX20gPDwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc2xscShfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NsbF9zaTY0KF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2xsaV9zaTY0KF9fbTY0IF9fbSwgY29uc3QgaW50IF9fY291bnQpIHsKICByZXR1cm4gKF9fbSA8PCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGxxaShfX202NCBfX20sIGNvbnN0IGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxpX3NpNjQoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdGhlIDY0LWJpdCB2YWx1ZSBpbiBNIGxlZnQgYnkgQ09VTlQ7IHNoaWZ0IGluIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxfc2k2NChfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gKF9fbSA+PiBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzcmxxKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JsX3NpNjQoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxpX3NpNjQoX19tNjQgX19tLCBjb25zdCBpbnQgX19jb3VudCkgewogIHJldHVybiAoX19tID4+IF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybHFpKF9fbTY0IF9fbSwgY29uc3QgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NybGlfc2k2NChfX20sIF9fY291bnQpOwp9CgovKiBCaXQtd2lzZSBBTkQgdGhlIDY0LWJpdCB2YWx1ZXMgaW4gTTEgYW5kIE0yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hbmRfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xICYgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYW5kKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FuZF9zaTY0KF9fbTEsIF9fbTIpOwp9CgovKiBCaXQtd2lzZSBjb21wbGVtZW50IHRoZSA2NC1iaXQgdmFsdWUgaW4gTTEgYW5kIGJpdC13aXNlIEFORCBpdCB3aXRoIHRoZQogICA2NC1iaXQgdmFsdWUgaW4gTTIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2FuZG5vdF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKH5fX20xICYgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYW5kbihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hbmRub3Rfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQml0LXdpc2UgaW5jbHVzaXZlIE9SIHRoZSA2NC1iaXQgdmFsdWVzIGluIE0xIGFuZCBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fb3Jfc2k2NChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX20xIHwgX19tMik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wb3IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fb3Jfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQml0LXdpc2UgZXhjbHVzaXZlIE9SIHRoZSA2NC1iaXQgdmFsdWVzIGluIE0xIGFuZCBNMi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1feG9yX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tMSBeIF9fbTIpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHhvcihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV94b3Jfc2k2NChfX20xLCBfX20yKTsKfQoKLyogQ3JlYXRlcyBhIDY0LWJpdCB6ZXJvLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXR6ZXJvX3NpNjQodm9pZCkgewogIHJldHVybiAoX19tNjQpMDsKfQoKLyogQ29tcGFyZSBlaWdodCA4LWJpdCB2YWx1ZXMuICBUaGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGlzIDB4RkYgaWYgdGhlCiAgIHRlc3QgaXMgdHJ1ZSBhbmQgemVybyBpZiBmYWxzZS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fY21wZXFfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIGRlZmluZWQoX0FSQ0hfUFdSNikgJiYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQogIF9fbTY0IHJlczsKICBfX2FzbV9fKCJjbXBiICUwLCUxLCUyO1xuIiA6ICI9ciIocmVzKSA6ICJyIihfX20xKSwgInIiKF9fbTIpIDopOwogIHJldHVybiAocmVzKTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IChtMS5hc19jaGFyWzBdID09IG0yLmFzX2NoYXJbMF0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzFdID0gKG0xLmFzX2NoYXJbMV0gPT0gbTIuYXNfY2hhclsxXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbMl0gPSAobTEuYXNfY2hhclsyXSA9PSBtMi5hc19jaGFyWzJdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhclszXSA9IChtMS5hc19jaGFyWzNdID09IG0yLmFzX2NoYXJbM10pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzRdID0gKG0xLmFzX2NoYXJbNF0gPT0gbTIuYXNfY2hhcls0XSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbNV0gPSAobTEuYXNfY2hhcls1XSA9PSBtMi5hc19jaGFyWzVdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhcls2XSA9IChtMS5hc19jaGFyWzZdID09IG0yLmFzX2NoYXJbNl0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzddID0gKG0xLmFzX2NoYXJbN10gPT0gbTIuYXNfY2hhcls3XSkgPyAtMSA6IDA7CgogIHJldHVybiAoX19tNjQpcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wY21wZXFiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2NtcGVxX3BpOChfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jbXBndF9waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfY21wZ3QoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfY2hhclswXSA9IChtMS5hc19jaGFyWzBdID4gbTIuYXNfY2hhclswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbMV0gPSAobTEuYXNfY2hhclsxXSA+IG0yLmFzX2NoYXJbMV0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzJdID0gKG0xLmFzX2NoYXJbMl0gPiBtMi5hc19jaGFyWzJdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhclszXSA9IChtMS5hc19jaGFyWzNdID4gbTIuYXNfY2hhclszXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbNF0gPSAobTEuYXNfY2hhcls0XSA+IG0yLmFzX2NoYXJbNF0pID8gLTEgOiAwOwogIHJlcy5hc19jaGFyWzVdID0gKG0xLmFzX2NoYXJbNV0gPiBtMi5hc19jaGFyWzVdKSA/IC0xIDogMDsKICByZXMuYXNfY2hhcls2XSA9IChtMS5hc19jaGFyWzZdID4gbTIuYXNfY2hhcls2XSkgPyAtMSA6IDA7CiAgcmVzLmFzX2NoYXJbN10gPSAobTEuYXNfY2hhcls3XSA+IG0yLmFzX2NoYXJbN10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTgoX19tMSwgX19tMik7Cn0KCi8qIENvbXBhcmUgZm91ciAxNi1iaXQgdmFsdWVzLiAgVGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpcyAweEZGRkYgaWYKICAgdGhlIHRlc3QgaXMgdHJ1ZSBhbmQgemVybyBpZiBmYWxzZS4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fY21wZXFfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfY21wZXEoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfc2hvcnRbMF0gPSAobTEuYXNfc2hvcnRbMF0gPT0gbTIuYXNfc2hvcnRbMF0pID8gLTEgOiAwOwogIHJlcy5hc19zaG9ydFsxXSA9IChtMS5hc19zaG9ydFsxXSA9PSBtMi5hc19zaG9ydFsxXSkgPyAtMSA6IDA7CiAgcmVzLmFzX3Nob3J0WzJdID0gKG0xLmFzX3Nob3J0WzJdID09IG0yLmFzX3Nob3J0WzJdKSA/IC0xIDogMDsKICByZXMuYXNfc2hvcnRbM10gPSAobTEuYXNfc2hvcnRbM10gPT0gbTIuYXNfc2hvcnRbM10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGVxdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBlcV9waTE2KF9fbTEsIF9fbTIpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2NtcGd0X3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX2NtcGd0KGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CgogIG0xLmFzX202NCA9IF9fbTE7CiAgbTIuYXNfbTY0ID0gX19tMjsKCiAgcmVzLmFzX3Nob3J0WzBdID0gKG0xLmFzX3Nob3J0WzBdID4gbTIuYXNfc2hvcnRbMF0pID8gLTEgOiAwOwogIHJlcy5hc19zaG9ydFsxXSA9IChtMS5hc19zaG9ydFsxXSA+IG0yLmFzX3Nob3J0WzFdKSA/IC0xIDogMDsKICByZXMuYXNfc2hvcnRbMl0gPSAobTEuYXNfc2hvcnRbMl0gPiBtMi5hc19zaG9ydFsyXSkgPyAtMSA6IDA7CiAgcmVzLmFzX3Nob3J0WzNdID0gKG0xLmFzX3Nob3J0WzNdID4gbTIuYXNfc2hvcnRbM10pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0dyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTE2KF9fbTEsIF9fbTIpOwp9CgovKiBDb21wYXJlIHR3byAzMi1iaXQgdmFsdWVzLiAgVGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpcyAweEZGRkZGRkZGIGlmCiAgIHRoZSB0ZXN0IGlzIHRydWUgYW5kIHplcm8gaWYgZmFsc2UuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX2NtcGVxX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewojaWYgX0FSQ0hfUFdSOQogIF9fdmVjdG9yIHNpZ25lZCBpbnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19zcGxhdHMoX19tMik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KXZlY19jbXBlcShhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX20xOwogIG0yLmFzX202NCA9IF9fbTI7CgogIHJlcy5hc19pbnRbMF0gPSAobTEuYXNfaW50WzBdID09IG0yLmFzX2ludFswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2ludFsxXSA9IChtMS5hc19pbnRbMV0gPT0gbTIuYXNfaW50WzFdKSA/IC0xIDogMDsKCiAgcmV0dXJuIChfX202NClyZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BjbXBlcWQoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fY21wZXFfcGkzMihfX20xLCBfX20yKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9jbXBndF9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKI2lmIF9BUkNIX1BXUjkKICBfX3ZlY3RvciBzaWduZWQgaW50IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfc3BsYXRzKF9fbTEpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSAoX192ZWN0b3Igc2lnbmVkIGludCl2ZWNfY21wZ3QoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19tMTsKICBtMi5hc19tNjQgPSBfX20yOwoKICByZXMuYXNfaW50WzBdID0gKG0xLmFzX2ludFswXSA+IG0yLmFzX2ludFswXSkgPyAtMSA6IDA7CiAgcmVzLmFzX2ludFsxXSA9IChtMS5hc19pbnRbMV0gPiBtMi5hc19pbnRbMV0pID8gLTEgOiAwOwoKICByZXR1cm4gKF9fbTY0KXJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGNtcGd0ZChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9jbXBndF9waTMyKF9fbTEsIF9fbTIpOwp9CgojaWYgX0FSQ0hfUFdSOAovKiBBZGQgdGhlIDgtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgOC1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19waTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19hZGRzKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wYWRkc2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkc19waTgoX19tMSwgX19tMik7Cn0KLyogQWRkIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHRvIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfYWRkcyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHN3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX2FkZHNfcGkxNihfX20xLCBfX20yKTsKfQovKiBBZGQgdGhlIDgtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgOC1iaXQgdmFsdWVzIGluIE0yIHVzaW5nIHVuc2lnbmVkCiAgIHNhdHVyYXRlZCBhcml0aG1ldGljLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9hZGRzX3B1OChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX2FkZHMoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BhZGR1c2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fYWRkc19wdTgoX19tMSwgX19tMik7Cn0KCi8qIEFkZCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMSB0byB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiB1c2luZyB1bnNpZ25lZAogICBzYXR1cmF0ZWQgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fYWRkc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfYWRkcyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcGFkZHVzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9hZGRzX3B1MTYoX19tMSwgX19tMik7Cn0KCi8qIFN1YnRyYWN0IHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgOC1iaXQgdmFsdWVzIGluIE0xIHVzaW5nIHNpZ25lZAogICBzYXR1cmF0aW5nIGFyaXRobWV0aWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1YnNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfc3VicyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHN1YnNiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3N1YnNfcGk4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHNpZ25lZCBzYXR1cmF0aW5nIGFyaXRobWV0aWMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3N1YnNfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20yKTsKICBjID0gdmVjX3N1YnMoYSwgYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzdWJzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJzX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIFN1YnRyYWN0IHRoZSA4LWJpdCB2YWx1ZXMgaW4gTTIgZnJvbSB0aGUgOC1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHVuc2lnbmVkIHNhdHVyYXRpbmcgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3Vic19wdTgoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMoX19tMik7CiAgYyA9IHZlY19zdWJzKGEsIGIpOwogIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3VidXNiKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX3N1YnNfcHU4KF9fbTEsIF9fbTIpOwp9CgovKiBTdWJ0cmFjdCB0aGUgMTYtYml0IHZhbHVlcyBpbiBNMiBmcm9tIHRoZSAxNi1iaXQgdmFsdWVzIGluIE0xIHVzaW5nCiAgIHVuc2lnbmVkIHNhdHVyYXRpbmcgYXJpdGhtZXRpYy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3Vic19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBhLCBiLCBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX19tMSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfc3VicyhhLCBiKTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHN1YnVzdyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIF9tbV9zdWJzX3B1MTYoX19tMSwgX19tMik7Cn0KCi8qIE11bHRpcGx5IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNMSBieSBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTTIgcHJvZHVjaW5nCiAgIGZvdXIgMzItYml0IGludGVybWVkaWF0ZSByZXN1bHRzLCB3aGljaCBhcmUgdGhlbiBzdW1tZWQgYnkgcGFpcnMgdG8KICAgcHJvZHVjZSB0d28gMzItYml0IHJlc3VsdHMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX21hZGRfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGI7CiAgX192ZWN0b3Igc2lnbmVkIGludCBjOwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgemVybyA9IHswLCAwLCAwLCAwfTsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSB2ZWNfdm1zdW1zaG0oYSwgYiwgemVybyk7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyljKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BtYWRkd2QoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiBfbW1fbWFkZF9waTE2KF9fbTEsIF9fbTIpOwp9Ci8qIE11bHRpcGx5IGZvdXIgc2lnbmVkIDE2LWJpdCB2YWx1ZXMgaW4gTTEgYnkgZm91ciBzaWduZWQgMTYtYml0IHZhbHVlcyBpbgogICBNMiBhbmQgcHJvZHVjZSB0aGUgaGlnaCAxNiBiaXRzIG9mIHRoZSAzMi1iaXQgcmVzdWx0cy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fbXVsaGlfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGEsIGI7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IGM7CiAgX192ZWN0b3Igc2lnbmVkIGludCB3MCwgdzE7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB4Zm9ybTEgPSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAweDAyLCAweDAzLCAweDEyLCAweDEzLCAweDA2LCAweDA3LCAweDE2LCAweDE3LCAweDBBLAogICAgICAweDBCLCAweDFBLCAweDFCLCAweDBFLCAweDBGLCAweDFFLCAweDFGCiNlbHNlCiAgICAgIDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsIDB4MDAsCiAgICAgIDB4MDEsIDB4MTAsIDB4MTEsIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUKI2VuZGlmCiAgfTsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwoKICB3MCA9IHZlY192bXVsZXNoKGEsIGIpOwogIHcxID0gdmVjX3ZtdWxvc2goYSwgYik7CiAgYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3Blcm0odzAsIHcxLCB4Zm9ybTEpOwoKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcG11bGh3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX211bGhpX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIE11bHRpcGx5IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNMSBieSBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTTIgYW5kIHByb2R1Y2UKICAgdGhlIGxvdyAxNiBiaXRzIG9mIHRoZSByZXN1bHRzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9tdWxsb19waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20xKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbTIpOwogIGMgPSBhICogYjsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKWMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcG11bGx3KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gX21tX211bGxvX3BpMTYoX19tMSwgX19tMik7Cn0KCi8qIFNoaWZ0IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNIGxlZnQgYnkgQ09VTlQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NsbF9waTE2KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBtLCByOwogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IGM7CgogIGlmIChfX2NvdW50IDw9IDE1KSB7CiAgICBtID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbSk7CiAgICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoKHVuc2lnbmVkIHNob3J0KV9fY291bnQpOwogICAgciA9IHZlY19zbChtLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpYyk7CiAgICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXIpWzBdOwogIH0gZWxzZQogICAgcmV0dXJuICgwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGx3KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc2xsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zbGxpX3BpMTYoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIC8qIFByb21vdGUgaW50IHRvIGxvbmcgdGhlbiBpbnZva2UgbW1fc2xsX3BpMTYuICAqLwogIHJldHVybiBfbW1fc2xsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3BzbGx3aShfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxpX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdHdvIDMyLWJpdCB2YWx1ZXMgaW4gTSBsZWZ0IGJ5IENPVU5ULiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zbGxfcGkzMihfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICBfX202NF91bmlvbiBtLCByZXM7CgogIG0uYXNfbTY0ID0gX19tOwoKICByZXMuYXNfaW50WzBdID0gbS5hc19pbnRbMF0gPDwgX19jb3VudDsKICByZXMuYXNfaW50WzFdID0gbS5hc19pbnRbMV0gPDwgX19jb3VudDsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNsbGQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zbGxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NsbGlfcGkzMihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zbGxfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zbGxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNsbGRpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NsbGlfcGkzMihfX20sIF9fY291bnQpOwp9CgovKiBTaGlmdCBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gTSByaWdodCBieSBDT1VOVDsgc2hpZnQgaW4gdGhlIHNpZ24gYml0LiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmFfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgbSwgcjsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBjOwoKICBpZiAoX19jb3VudCA8PSAxNSkgewogICAgbSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyhfX20pOwogICAgYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKCh1bnNpZ25lZCBzaG9ydClfX2NvdW50KTsKICAgIHIgPSB2ZWNfc3JhKG0sIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCljKTsKICAgIHJldHVybiAoX19tNjQpKChfX3ZlY3RvciBsb25nIGxvbmcpcilbMF07CiAgfSBlbHNlCiAgICByZXR1cm4gKDApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNyYXcoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmFfcGkxNihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NyYWlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zcmFfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zcmFfcGkxNihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNyYXdpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NyYWlfcGkxNihfX20sIF9fY291bnQpOwp9CgovKiBTaGlmdCB0d28gMzItYml0IHZhbHVlcyBpbiBNIHJpZ2h0IGJ5IENPVU5UOyBzaGlmdCBpbiB0aGUgc2lnbiBiaXQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NyYV9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fbTY0X3VuaW9uIG0sIHJlczsKCiAgbS5hc19tNjQgPSBfX207CgogIHJlcy5hc19pbnRbMF0gPSBtLmFzX2ludFswXSA+PiBfX2NvdW50OwogIHJlcy5hc19pbnRbMV0gPSBtLmFzX2ludFsxXSA+PiBfX2NvdW50OwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3JhZChfX202NCBfX20sIF9fbTY0IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NyYV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3JhaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICAvKiBQcm9tb3RlIGludCB0byBsb25nIHRoZW4gaW52b2tlIG1tX3NyYV9waTMyLiAgKi8KICByZXR1cm4gX21tX3NyYV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbV9wc3JhZGkoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JhaV9waTMyKF9fbSwgX19jb3VudCk7Cn0KCi8qIFNoaWZ0IGZvdXIgMTYtYml0IHZhbHVlcyBpbiBNIHJpZ2h0IGJ5IENPVU5UOyBzaGlmdCBpbiB6ZXJvcy4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc3JsX3BpMTYoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgbSwgcjsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBjOwoKICBpZiAoX19jb3VudCA8PSAxNSkgewogICAgbSA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzKF9fbSk7CiAgICBjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoKHVuc2lnbmVkIHNob3J0KV9fY291bnQpOwogICAgciA9IHZlY19zcihtLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpYyk7CiAgICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXIpWzBdOwogIH0gZWxzZQogICAgcmV0dXJuICgwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3Bzcmx3KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIHJldHVybiBfbW1fc3JsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zcmxpX3BpMTYoX19tNjQgX19tLCBpbnQgX19jb3VudCkgewogIC8qIFByb21vdGUgaW50IHRvIGxvbmcgdGhlbiBpbnZva2UgbW1fc3JhX3BpMzIuICAqLwogIHJldHVybiBfbW1fc3JsX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tX3Bzcmx3aShfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmxpX3BpMTYoX19tLCBfX2NvdW50KTsKfQoKLyogU2hpZnQgdHdvIDMyLWJpdCB2YWx1ZXMgaW4gTSByaWdodCBieSBDT1VOVDsgc2hpZnQgaW4gemVyb3MuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NybF9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkgewogIF9fbTY0X3VuaW9uIG0sIHJlczsKCiAgbS5hc19tNjQgPSBfX207CgogIHJlcy5hc19pbnRbMF0gPSAodW5zaWduZWQgaW50KW0uYXNfaW50WzBdID4+IF9fY291bnQ7CiAgcmVzLmFzX2ludFsxXSA9ICh1bnNpZ25lZCBpbnQpbS5hc19pbnRbMV0gPj4gX19jb3VudDsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybGQoX19tNjQgX19tLCBfX202NCBfX2NvdW50KSB7CiAgcmV0dXJuIF9tbV9zcmxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NybGlfcGkzMihfX202NCBfX20sIGludCBfX2NvdW50KSB7CiAgLyogUHJvbW90ZSBpbnQgdG8gbG9uZyB0aGVuIGludm9rZSBtbV9zcmxfcGkzMi4gICovCiAgcmV0dXJuIF9tbV9zcmxfcGkzMihfX20sIF9fY291bnQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21fcHNybGRpKF9fbTY0IF9fbSwgaW50IF9fY291bnQpIHsKICByZXR1cm4gX21tX3NybGlfcGkzMihfX20sIF9fY291bnQpOwp9CiNlbmRpZiAvKiBfQVJDSF9QV1I4ICovCgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIHR3byAzMi1iaXQgdmFsdWVzOyBJMCBpcyBsZWFzdCBzaWduaWZpY2FudC4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0X3BpMzIoaW50IF9faTEsIGludCBfX2kwKSB7CiAgX19tNjRfdW5pb24gcmVzOwoKICByZXMuYXNfaW50WzBdID0gX19pMDsKICByZXMuYXNfaW50WzFdID0gX19pMTsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIGZvdXIgMTYtYml0IHZhbHVlczsgVzAgaXMgbGVhc3Qgc2lnbmlmaWNhbnQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldF9waTE2KHNob3J0IF9fdzMsIHNob3J0IF9fdzIsIHNob3J0IF9fdzEsIHNob3J0IF9fdzApIHsKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19zaG9ydFswXSA9IF9fdzA7CiAgcmVzLmFzX3Nob3J0WzFdID0gX193MTsKICByZXMuYXNfc2hvcnRbMl0gPSBfX3cyOwogIHJlcy5hc19zaG9ydFszXSA9IF9fdzM7CiAgcmV0dXJuIChyZXMuYXNfbTY0KTsKfQoKLyogQ3JlYXRlcyBhIHZlY3RvciBvZiBlaWdodCA4LWJpdCB2YWx1ZXM7IEIwIGlzIGxlYXN0IHNpZ25pZmljYW50LiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXRfcGk4KGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLAogICAgICAgICAgICAgICAgY2hhciBfX2IyLCBjaGFyIF9fYjEsIGNoYXIgX19iMCkgewogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX2NoYXJbMF0gPSBfX2IwOwogIHJlcy5hc19jaGFyWzFdID0gX19iMTsKICByZXMuYXNfY2hhclsyXSA9IF9fYjI7CiAgcmVzLmFzX2NoYXJbM10gPSBfX2IzOwogIHJlcy5hc19jaGFyWzRdID0gX19iNDsKICByZXMuYXNfY2hhcls1XSA9IF9fYjU7CiAgcmVzLmFzX2NoYXJbNl0gPSBfX2I2OwogIHJlcy5hc19jaGFyWzddID0gX19iNzsKICByZXR1cm4gKHJlcy5hc19tNjQpOwp9CgovKiBTaW1pbGFyLCBidXQgd2l0aCB0aGUgYXJndW1lbnRzIGluIHJldmVyc2Ugb3JkZXIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldHJfcGkzMihpbnQgX19pMCwgaW50IF9faTEpIHsKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19pbnRbMF0gPSBfX2kwOwogIHJlcy5hc19pbnRbMV0gPSBfX2kxOwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0cl9waTE2KHNob3J0IF9fdzAsIHNob3J0IF9fdzEsIHNob3J0IF9fdzIsIHNob3J0IF9fdzMpIHsKICByZXR1cm4gX21tX3NldF9waTE2KF9fdzMsIF9fdzIsIF9fdzEsIF9fdzApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKICAgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQogICAgX21tX3NldHJfcGk4KGNoYXIgX19iMCwgY2hhciBfX2IxLCBjaGFyIF9fYjIsIGNoYXIgX19iMywgY2hhciBfX2I0LAogICAgICAgICAgICAgICAgIGNoYXIgX19iNSwgY2hhciBfX2I2LCBjaGFyIF9fYjcpIHsKICByZXR1cm4gX21tX3NldF9waTgoX19iNywgX19iNiwgX19iNSwgX19iNCwgX19iMywgX19iMiwgX19iMSwgX19iMCk7Cn0KCi8qIENyZWF0ZXMgYSB2ZWN0b3Igb2YgdHdvIDMyLWJpdCB2YWx1ZXMsIGJvdGggZWxlbWVudHMgY29udGFpbmluZyBJLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXQxX3BpMzIoaW50IF9faSkgewogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX2ludFswXSA9IF9faTsKICByZXMuYXNfaW50WzFdID0gX19pOwogIHJldHVybiAocmVzLmFzX202NCk7Cn0KCi8qIENyZWF0ZXMgYSB2ZWN0b3Igb2YgZm91ciAxNi1iaXQgdmFsdWVzLCBhbGwgZWxlbWVudHMgY29udGFpbmluZyBXLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0CiAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKICAgIF9tbV9zZXQxX3BpMTYoc2hvcnQgX193KSB7CiNpZiBfQVJDSF9QV1I5CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IHc7CgogIHcgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMoX193KTsKICByZXR1cm4gKF9fbTY0KSgoX192ZWN0b3IgbG9uZyBsb25nKXcpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIHJlczsKCiAgcmVzLmFzX3Nob3J0WzBdID0gX193OwogIHJlcy5hc19zaG9ydFsxXSA9IF9fdzsKICByZXMuYXNfc2hvcnRbMl0gPSBfX3c7CiAgcmVzLmFzX3Nob3J0WzNdID0gX193OwogIHJldHVybiAocmVzLmFzX202NCk7CiNlbmRpZgp9CgovKiBDcmVhdGVzIGEgdmVjdG9yIG9mIGVpZ2h0IDgtYml0IHZhbHVlcywgYWxsIGVsZW1lbnRzIGNvbnRhaW5pbmcgQi4gICovCmV4dGVybiBfX2lubGluZSBfX202NAogICAgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCiAgICBfbW1fc2V0MV9waTgoc2lnbmVkIGNoYXIgX19iKSB7CiNpZiBfQVJDSF9QV1I4CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgYjsKCiAgYiA9IChfX3ZlY3RvciBzaWduZWQgY2hhcil2ZWNfc3BsYXRzKF9fYik7CiAgcmV0dXJuIChfX202NCkoKF9fdmVjdG9yIGxvbmcgbG9uZyliKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiByZXM7CgogIHJlcy5hc19jaGFyWzBdID0gX19iOwogIHJlcy5hc19jaGFyWzFdID0gX19iOwogIHJlcy5hc19jaGFyWzJdID0gX19iOwogIHJlcy5hc19jaGFyWzNdID0gX19iOwogIHJlcy5hc19jaGFyWzRdID0gX19iOwogIHJlcy5hc19jaGFyWzVdID0gX19iOwogIHJlcy5hc19jaGFyWzZdID0gX19iOwogIHJlcy5hc19jaGFyWzddID0gX19iOwogIHJldHVybiAocmVzLmFzX202NCk7CiNlbmRpZgp9CgojZWxzZQojaW5jbHVkZV9uZXh0IDxtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIF9NTUlOVFJJTl9IX0lOQ0xVREVEICovCgBBZGRGb2xkZWRSYW5nZSByZWN1cnNlcyB0b28gbXVjaC4AQW55AFs6XnVwcGVyOl0AaW52YWxpZCBwZXJsIG9wZXJhdG9yAENoYWttYQBMYW8ATGF0aW4ATWFuaWNoYWVhbgBUYWdiYW53YQBUYWlfVmlldABZaQBaAENoZWNrICVzIGZhaWxlZDogJXMAdG9vIGZldyBsZXZlbHMgaW4gTmV4dCgpAG9wZXJhdG9yAG5ldwAtPQAvPQBnZQBzdGQAPScAdHJlZS0+ZW5kKCkgPD0gdHJlZS0+Y2FwYWNpdHkoKQBUcnlMb2NrIGZhaWxlZCAAcy0+d2FpdHAgPT0gbnVsbHB0ciB8fCBzLT53YWl0cCA9PSB3YWl0cCB8fCBzLT5zdXBwcmVzc19mYXRhbF9lcnJvcnMAcHctPnNraXAgPT0gbnVsbHB0cgBFQ0RTQSB2ZXJpZmljYXRpb24gS0FUIGZhaWxlZC4KAE5JU1QgUC0yMjQAa3l0aGUvcHJvdG8vY29tbW9uLnByb3RvAGt5dGhlLnByb3RvLmNvbW1vbi5TeW1ib2xJbmZvLnF1YWxpZmllZF9uYW1lAFteLV0uKlwuKGN8aSkAW14tXS4qXC4oc3xTfHN4KQBjLWhlYWRlcgAtAC1vAC8qPT09LS0gX19jbGFuZ19jdWRhX2xpYmRldmljZV9kZWNsYXJlcy5oIC0gZGVjbHMgZm9yIGxpYmRldmljZSBmdW5jdGlvbnMgLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19DVURBX0xJQkRFVklDRV9ERUNMQVJFU19IX18KI2RlZmluZSBfX0NMQU5HX0NVREFfTElCREVWSUNFX0RFQ0xBUkVTX0hfXwoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYKCiNpZiBkZWZpbmVkKF9fT1BFTk1QX05WUFRYX18pCiNkZWZpbmUgX19ERVZJQ0VfXwojZWxpZiBkZWZpbmVkKF9fQ1VEQV9fKQojZGVmaW5lIF9fREVWSUNFX18gX19kZXZpY2VfXwojZW5kaWYKCl9fREVWSUNFX18gaW50IF9fbnZfYWJzKGludCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Fjb3MoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hY29zZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Fjb3NoKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfYWNvc2hmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfYXNpbihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2FzaW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfYXNpbmgoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hc2luaGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9hdGFuMihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2F0YW4yZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfYXRhbihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2F0YW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfYXRhbmgoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9hdGFuaGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9icmV2KGludCBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2JyZXZsbChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9ieXRlX3Blcm0oaW50IF9fYSwgaW50IF9fYiwgaW50IF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY2JydChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2NicnRmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY2VpbChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2NlaWxmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfY2x6KGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2NsemxsKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2NvcHlzaWduKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfY29weXNpZ25mKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9jb3MoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9jb3NmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY29zaChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Nvc2hmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfY29zcGkoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9jb3NwaWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9jeWxfYmVzc2VsX2kwKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfY3lsX2Jlc3NlbF9pMGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9jeWxfYmVzc2VsX2kxKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfY3lsX2Jlc3NlbF9pMWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kYWRkX3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RhZGRfcm4oZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZGFkZF9ydShkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kYWRkX3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RkaXZfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZGRpdl9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kZGl2X3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RkaXZfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZG11bF9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kbXVsX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RtdWxfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZG11bF9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2RvdWJsZTJmbG9hdF9yZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2RvdWJsZTJmbG9hdF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2RvdWJsZTJmbG9hdF9ydShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2RvdWJsZTJmbG9hdF9yeihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9kb3VibGUyaGlpbnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZG91YmxlMmludF9yZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9kb3VibGUyaW50X3JuKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2RvdWJsZTJpbnRfcnUoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZG91YmxlMmludF9yeihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9kb3VibGUybGxfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZG91YmxlMmxsX3JuKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2RvdWJsZTJsbF9ydShkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9kb3VibGUybGxfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfZG91YmxlMmxvaW50KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2RvdWJsZTJ1aW50X3JkKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2RvdWJsZTJ1aW50X3JuKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2RvdWJsZTJ1aW50X3J1KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2RvdWJsZTJ1aW50X3J6KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX252X2RvdWJsZTJ1bGxfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZG91YmxlMnVsbF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9kb3VibGUydWxsX3J1KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX252X2RvdWJsZTJ1bGxfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fbnZfZG91YmxlX2FzX2xvbmdsb25nKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RyY3BfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHJjcF9ybihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kcmNwX3J1KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RyY3BfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHNxcnRfcmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHNxcnRfcm4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHNxcnRfcnUoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHNxcnRfcnooZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHN1Yl9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9kc3ViX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2RzdWJfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZHN1Yl9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9lcmZjKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXJmY2YoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9lcmZjaW52KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXJmY2ludmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9lcmZjeChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2VyZmN4ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2VyZihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2VyZmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9lcmZpbnYoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9lcmZpbnZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXhwMTAoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9leHAxMGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9leHAyKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZXhwMmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9leHAoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9leHBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZXhwbTEoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9leHBtMWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mYWJzKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFic2YoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZhZGRfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFkZF9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYWRkX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZhZGRfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9jb3NmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X2V4cDEwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9leHBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X2ZkaXZpZGVmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Zhc3RfbG9nMTBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X2xvZzJmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X2xvZ2YoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2Zhc3RfcG93ZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gdm9pZCBfX252X2Zhc3Rfc2luY29zZihmbG9hdCBfX2EsIGZsb2F0ICpfX3MsIGZsb2F0ICpfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmFzdF9zaW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mYXN0X3RhbmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mZGltKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmRpbWYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmRpdl9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mZGl2X3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZkaXZfcnUoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZmRpdl9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfZmZzKGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2Zmc2xsKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2Zpbml0ZWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBzaG9ydCBfX252X2Zsb2F0MmhhbGZfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mbG9hdDJpbnRfcmQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mbG9hdDJpbnRfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mbG9hdDJpbnRfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mbG9hdDJpbnRfcnooZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9mbG9hdDJsbF9yZChmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2Zsb2F0MmxsX3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfZmxvYXQybGxfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9mbG9hdDJsbF9yeihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2Zsb2F0MnVpbnRfcmQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9mbG9hdDJ1aW50X3JuKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfZmxvYXQydWludF9ydShmbG9hdCBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X2Zsb2F0MnVpbnRfcnooZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9mbG9hdDJ1bGxfcmQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9mbG9hdDJ1bGxfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9mbG9hdDJ1bGxfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl9mbG9hdDJ1bGxfcnooZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9mbG9hdF9hc19pbnQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl9mbG9hdF9hc191aW50KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZmxvb3IoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbG9vcmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbWEoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYyk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbWFmKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9pZWVlX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9pZWVlX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9pZWVlX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9pZWVlX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYWZfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYyk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbWFmX3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1hZl9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbWFfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1hX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2ZtYV9ydShkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbWFfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYyk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfZm1heChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtYXhmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mbWluKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm1pbmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2Ztb2QoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbW9kZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbXVsX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZtdWxfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZm11bF9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mbXVsX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZyY3BfcmQoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZyY3Bfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZyY3BfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZyY3BfcnooZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9mcmV4cChkb3VibGUgX19hLCBpbnQgKl9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcmV4cGYoZmxvYXQgX19hLCBpbnQgKl9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mcnNxcnRfcm4oZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZzcXJ0X3JkKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3FydF9ybihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnNxcnRfcnUoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZzcXJ0X3J6KGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3ViX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2ZzdWJfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfZnN1Yl9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9mc3ViX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9oYWRkKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaGFsZjJmbG9hdCh1bnNpZ25lZCBzaG9ydCBfX2gpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2hpbG9pbnQyZG91YmxlKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2h5cG90KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaHlwb3RmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9pbG9nYihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9pbG9nYmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9pbnQyZG91YmxlX3JuKGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaW50MmZsb2F0X3JkKGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaW50MmZsb2F0X3JuKGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaW50MmZsb2F0X3J1KGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaW50MmZsb2F0X3J6KGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfaW50X2FzX2Zsb2F0KGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2lzZmluaXRlZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9pc2luZmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfaXNpbmZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfaXNuYW5kKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X2lzbmFuZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2owKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfajBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfajEoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9qMWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2puZihpbnQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2puKGludCBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xkZXhwKGRvdWJsZSBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbGRleHBmKGZsb2F0IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbGdhbW1hKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbGdhbW1hZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xsMmRvdWJsZV9yZChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sbDJkb3VibGVfcm4obG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbGwyZG91YmxlX3J1KGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xsMmRvdWJsZV9yeihsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xsMmZsb2F0X3JkKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbGwyZmxvYXRfcm4obG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9sbDJmbG9hdF9ydShsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X2xsMmZsb2F0X3J6KGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2xsYWJzKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2xsbWF4KGxvbmcgbG9uZyBfX2EsIGxvbmcgbG9uZyBfX2IpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2xsbWluKGxvbmcgbG9uZyBfX2EsIGxvbmcgbG9uZyBfX2IpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X2xscmludChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbHJpbnRmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbnZfbGxyb3VuZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgX19udl9sbHJvdW5kZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X2xvZzEwKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbG9nMTBmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbG9nMXAoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9sb2cxcGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sb2cyKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbG9nMmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sb2diKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbG9nYmYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9sb2coZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9sb2dmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbG9uZ2xvbmdfYXNfZG91YmxlKGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X21heChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9taW4oaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbW9kZihkb3VibGUgX19hLCBkb3VibGUgKl9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9tb2RmZihmbG9hdCBfX2EsIGZsb2F0ICpfX2IpOwpfX0RFVklDRV9fIGludCBfX252X211bDI0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX252X211bDY0aGkobG9uZyBsb25nIF9fYSwgbG9uZyBsb25nIF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfbXVsaGkoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbmFuKGNvbnN0IHNpZ25lZCBjaGFyICpfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbmFuZihjb25zdCBzaWduZWQgY2hhciAqX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9uZWFyYnlpbnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9uZWFyYnlpbnRmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbmV4dGFmdGVyKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbmV4dGFmdGVyZihmbG9hdCBfX2EsIGZsb2F0IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbm9ybTNkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfbm9ybTNkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9ub3JtNGQoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYywgZG91YmxlIF9fZCk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ub3JtNGRmKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MsIGZsb2F0IF9fZCk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbm9ybWNkZihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X25vcm1jZGZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfbm9ybWNkZmludihkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X25vcm1jZGZpbnZmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ub3JtZihpbnQgX19hLCBjb25zdCBmbG9hdCAqX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9ub3JtKGludCBfX2EsIGNvbnN0IGRvdWJsZSAqX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9wb3BjKGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3BvcGNsbChsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9wb3coZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9wb3dmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9wb3dpKGRvdWJsZSBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcG93aWYoZmxvYXQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yY2JydChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3JjYnJ0ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3JjcDY0aChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yZW1haW5kZXIoZG91YmxlIF9fYSwgZG91YmxlIF9fYik7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yZW1haW5kZXJmKGZsb2F0IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yZW1xdW8oZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgaW50ICpfX2MpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcmVtcXVvZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgaW50ICpfX2MpOwpfX0RFVklDRV9fIGludCBfX252X3JoYWRkKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3JoeXBvdChkb3VibGUgX19hLCBkb3VibGUgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3JoeXBvdGYoZmxvYXQgX19hLCBmbG9hdCBfX2IpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3JpbnQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yaW50ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3Jub3JtM2QoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYyk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9ybm9ybTNkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9ybm9ybTRkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsIGRvdWJsZSBfX2QpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfcm5vcm00ZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3Jub3JtZihpbnQgX19hLCBjb25zdCBmbG9hdCAqX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9ybm9ybShpbnQgX19hLCBjb25zdCBkb3VibGUgKl9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfcm91bmQoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9yb3VuZGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9yc3FydChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3JzcXJ0ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3NhZChpbnQgX19hLCBpbnQgX19iLCBpbnQgX19jKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3NhdHVyYXRlZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3NjYWxibihkb3VibGUgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3NjYWxibmYoZmxvYXQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl9zaWduYml0ZChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl9zaWduYml0ZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIHZvaWQgX19udl9zaW5jb3MoZG91YmxlIF9fYSwgZG91YmxlICpfX2IsIGRvdWJsZSAqX19jKTsKX19ERVZJQ0VfXyB2b2lkIF9fbnZfc2luY29zZihmbG9hdCBfX2EsIGZsb2F0ICpfX2IsIGZsb2F0ICpfX2MpOwpfX0RFVklDRV9fIHZvaWQgX19udl9zaW5jb3NwaShkb3VibGUgX19hLCBkb3VibGUgKl9fYiwgZG91YmxlICpfX2MpOwpfX0RFVklDRV9fIHZvaWQgX19udl9zaW5jb3NwaWYoZmxvYXQgX19hLCBmbG9hdCAqX19iLCBmbG9hdCAqX19jKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9zaW4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9zaW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfc2luaChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3NpbmhmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfc2lucGkoZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl9zaW5waWYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl9zcXJ0KGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfc3FydGYoZmxvYXQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl90YW4oZG91YmxlIF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl90YW5mKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdGFuaChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3RhbmhmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdGdhbW1hKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdGdhbW1hZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3RydW5jKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdHJ1bmNmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdWhhZGQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYik7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdWludDJkb3VibGVfcm4odW5zaWduZWQgaW50IF9faSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl91aW50MmZsb2F0X3JkKHVuc2lnbmVkIGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWludDJmbG9hdF9ybih1bnNpZ25lZCBpbnQgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3VpbnQyZmxvYXRfcnUodW5zaWduZWQgaW50IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl91aW50MmZsb2F0X3J6KHVuc2lnbmVkIGludCBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWludF9hc19mbG9hdCh1bnNpZ25lZCBpbnQgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl91bGwyZG91YmxlX3JkKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3VsbDJkb3VibGVfcm4odW5zaWduZWQgbG9uZyBsb25nIF9fYSk7Cl9fREVWSUNFX18gZG91YmxlIF9fbnZfdWxsMmRvdWJsZV9ydSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl91bGwyZG91YmxlX3J6KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWxsMmZsb2F0X3JkKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWxsMmZsb2F0X3JuKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWxsMmZsb2F0X3J1KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfdWxsMmZsb2F0X3J6KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX252X3VsbG1heCh1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl91bGxtaW4odW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfdW1heCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl91bWluKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X3VtdWwyNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19udl91bXVsNjRoaSh1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpOwpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX252X3VtdWxoaSh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKTsKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19udl91cmhhZGQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYik7Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fbnZfdXNhZCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYyk7CiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMCAmJiBDVURBX1ZFUlNJT04gPCA5MDIwCl9fREVWSUNFX18gaW50IF9fbnZfdmFiczIoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFiczQoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFic2RpZmZzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWJzZGlmZnM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhYnNkaWZmdTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFic2RpZmZ1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWJzc3MyKGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZhYnNzczQoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFkZDIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFkZDQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFkZHNzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YWRkc3M0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZhZGR1czIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmFkZHVzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YXZnczIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmF2Z3M0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3Zhdmd1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92YXZndTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmNtcGVxMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92Y21wZXE0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBnZXMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBnZXM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBnZXUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBnZXU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBndHMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBndHM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBndHUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBndHU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsZXMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsZXM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsZXUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsZXU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsdHMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsdHM0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsdHUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBsdHU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZjbXBuZTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdmNtcG5lNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92aGFkZHUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZoYWRkdTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm1heHMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtYXhzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bWF4dTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm1heHU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtaW5zMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bWluczQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdm1pbnUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZtaW51NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bmVnMihpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bmVnNChpbnQgX19hKTsKX19ERVZJQ0VfXyBpbnQgX19udl92bmVnc3MyKGludCBfX2EpOwpfX0RFVklDRV9fIGludCBfX252X3ZuZWdzczQoaW50IF9fYSk7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNhZHMyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzYWRzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2FkdTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNhZHU0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzZXRlcTIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnNldGVxNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z2VzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z2VzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z2V1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z2V1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z3RzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z3RzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z3R1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0Z3R1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bGVzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bGVzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bGV1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bGV1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bHRzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bHRzNChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bHR1MihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bHR1NChpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c2V0bmUyKGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzZXRuZTQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnN1YjIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnN1YjQoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnN1YnNzMihpbnQgX19hLCBpbnQgX19iKTsKX19ERVZJQ0VfXyBpbnQgX19udl92c3Vic3M0KGludCBfX2EsIGludCBfX2IpOwpfX0RFVklDRV9fIGludCBfX252X3ZzdWJ1czIoaW50IF9fYSwgaW50IF9fYik7Cl9fREVWSUNFX18gaW50IF9fbnZfdnN1YnVzNChpbnQgX19hLCBpbnQgX19iKTsKI2VuZGlmICAvLyBDVURBX1ZFUlNJT04KX19ERVZJQ0VfXyBkb3VibGUgX19udl95MChkb3VibGUgX19hKTsKX19ERVZJQ0VfXyBmbG9hdCBfX252X3kwZihmbG9hdCBfX2EpOwpfX0RFVklDRV9fIGRvdWJsZSBfX252X3kxKGRvdWJsZSBfX2EpOwpfX0RFVklDRV9fIGZsb2F0IF9fbnZfeTFmKGZsb2F0IF9fYSk7Cl9fREVWSUNFX18gZmxvYXQgX19udl95bmYoaW50IF9fYSwgZmxvYXQgX19iKTsKX19ERVZJQ0VfXyBkb3VibGUgX19udl95bihpbnQgX19hLCBkb3VibGUgX19iKTsKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKI2VuZGlmIC8vIF9fQ0xBTkdfQ1VEQV9MSUJERVZJQ0VfREVDTEFSRVNfSF9fCgBhdng1MTJiZjE2aW50cmluLmgAYXZ4NTEyZmludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY2x6ZXJvaW50cmluLmggLSBDTFpFUk8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxjbHplcm9pbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQ0xaRVJPSU5UUklOX0gKI2RlZmluZSBfX0NMWkVST0lOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJjbHplcm8iKSkpCgovLy8gTG9hZHMgdGhlIGNhY2hlIGxpbmUgYWRkcmVzcyBhbmQgemVybydzIG91dCB0aGUgY2FjaGVsaW5lCi8vLwovLy8gXGhlYWRlcmZpbGUgPGNsemVyb2ludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ0xaRVJPIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbGluZQovLy8gICAgQSBwb2ludGVyIHRvIGEgY2FjaGVsaW5lIHdoaWNoIG5lZWRzIHRvIGJlIHplcm9lZCBvdXQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbHplcm8gKHZvaWQgKiBfX2xpbmUpCnsKICBfX2J1aWx0aW5faWEzMl9jbHplcm8gKCh2b2lkICopX19saW5lKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fQ0xaRVJPSU5UUklOX0ggKi8KAGVtbWludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0ga2V5bG9ja2VyaW50cmluLmggLSBLTCBJbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGtleWxvY2tlcmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX0tFWUxPQ0tFUklOVFJJTl9ICiNkZWZpbmUgX0tFWUxPQ0tFUklOVFJJTl9ICgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0tMX18pCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImtsIiksXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIExvYWQgaW50ZXJuYWwgd3JhcHBpbmcga2V5IGZyb20gX19pbnRrZXksIF9fZW5rZXlfbG8gYW5kIF9fZW5rZXlfaGkuIF9fY3RsCi8vLyB3aWxsIGFzc2lnbmVkIHRvIEVBWCwgd2hjaCBzcGVjaWZpZXMgdGhlIEtleVNvdXJjZSBhbmQgd2hldGhlciBiYWNraW5nIHVwCi8vLyB0aGUga2V5IGlzIHBlcm1pdHRlZC4gVGhlIDI1Ni1iaXQgZW5jcnlwdGlvbiBrZXkgaXMgbG9hZGVkIGZyb20gdGhlIHR3bwovLy8gZXhwbGljaXQgb3BlcmFuZHMgKF9fZW5rZXlfbG8gYW5kIF9fZW5rZXlfaGkpLiBUaGUgMTI4LWJpdCBpbnRlZ3JpdHkga2V5IGlzCi8vLyBsb2FkZWQgZnJvbSB0aGUgaW1wbGljaXQgb3BlcmFuZCBYTU0wIHdoaWNoIGFzc2lnbmVkIGJ5IF9faW50a2V5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IExPQURJV0tFWSA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBJRiBDUEwgPiAwIC8vIExPQURLV0tFWSBvbmx5IGFsbG93ZWQgYXQgcmluZyAwIChzdXBlcnZpc29yIG1vZGUpCi8vLyAgIEdQICgwKQovLy8gRkkKLy8vIElGIOKAnExPQURJV0tFWSBleGl0aW5n4oCdIFZNIGV4ZWN1dGlvbiBjb250cm9sIHNldAovLy8gICBWTWV4aXQKLy8vIEZJCi8vLyBJRiBfX2N0bFs0OjFdID4gMSAvLyBSZXNlcnZlZCBLZXlTb3VyY2UgZW5jb2RpbmcgdXNlZAovLy8gICBHUCAoMCkKLy8vIEZJCi8vLyBJRiBfX2N0bFszMTo1XSAhPSAwIC8vIFJlc2VydmVkIGJpdCBpbiBfX2N0bCBpcyBzZXQKLy8vICAgR1AgKDApCi8vLyBGSQovLy8gSUYgX19jdGxbMF0gQU5EIChDUFVJRC4xOUguRUNYWzBdID09IDApIC8vIE5vQmFja3VwIGlzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwYXJ0Ci8vLyAgIEdQICgwKQovLy8gRkkKLy8vIElGIChfX2N0bFs0OjFdID09IDEpIEFORCAoQ1BVSUQuMTlILkVDWFsxXSA9PSAwKSAvLyBLZXlTb3VyY2Ugb2YgMSBpcyBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGFydAovLy8gICBHUCAoMCkKLy8vIEZJCi8vLyBJRiAoX19jdGxbNDoxXSA9PSAwKSAvLyBLZXlTb3VyY2Ugb2YgMC4KLy8vICAgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMTI3OjBdIDo9IF9fZW5rZXlfaGlbMTI3OjBdOgovLy8gICBJV0tleS5FbmNyeXB0aW9uIEtleVsyNTU6MTI4XSA6PSBfX2Vua2V5X2xvWzEyNzowXQovLy8gICBJV0tleS5JbnRlZ3JpdHlLZXlbMTI3OjBdIDo9IF9faW50a2V5WzEyNzowXQovLy8gICBJV0tleS5Ob0JhY2t1cCA6PSBfX2N0bFswXQovLy8gICBJV0tleS5LZXlTb3VyY2UgOj0gX19jdGxbNDoxXQovLy8gICBaRiA6PSAwCi8vLyBFTFNFIC8vIEtleVNvdXJjZSBvZiAxLiBTZWUgUkRTRUVEIGRlZmluaXRpb24gZm9yIGRldGFpbHMgb2YgcmFuZG9tbmVzcwovLy8gICBJRiBIV19OUk5EX0dFTi5yZWFkeSA9PSAxIC8vIEZ1bGwtZW50cm9weSByYW5kb20gZGF0YSBmcm9tIFJEU0VFRCB3YXMgcmVjZWl2ZWQKLy8vICAgICBJV0tleS5FbmNyeXB0aW9uIEtleVsxMjc6MF0gOj0gX19lbmtleV9oaVsxMjc6MF0gWE9SIEhXX05STkRfR0VOLmRhdGFbMTI3OjBdCi8vLyAgICAgSVdLZXkuRW5jcnlwdGlvbiBLZXlbMjU1OjEyOF0gOj0gX19lbmtleV9sb1sxMjc6MF0gWE9SIEhXX05STkRfR0VOLmRhdGFbMjU1OjEyOF0KLy8vICAgICBJV0tleS5FbmNyeXB0aW9uIEtleVsyNTU6MF0gOj0gX19lbmtleV9oaVsxMjc6MF06X19lbmtleV9sb1sxMjc6MF0gWE9SIEhXX05STkRfR0VOLmRhdGFbMjU1OjBdCi8vLyAgICAgSVdLZXkuSW50ZWdyaXR5S2V5WzEyNzowXSA6PSBfX2ludGtleVsxMjc6MF0gWE9SIEhXX05STkRfR0VOLmRhdGFbMzgzOjI1Nl0KLy8vICAgICBJV0tleS5Ob0JhY2t1cCA6PSBfX2N0bFswXQovLy8gICAgIElXS2V5LktleVNvdXJjZSA6PSBfX2N0bFs0OjFdCi8vLyAgICAgWkYgOj0gMAovLy8gICBFTFNFIC8vIFJhbmRvbSBkYXRhIHdhcyBub3QgcmV0dXJuZWQgZnJvbSBSRFNFRUQuIElXS2V5IHdhcyBub3QgbG9hZGVkCi8vLyAgICAgWkYgOj0gMQovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZGl3a2V5ICh1bnNpZ25lZCBpbnQgX19jdGwsIF9fbTEyOGkgX19pbnRrZXksCiAgICAgICAgICAgICAgIF9fbTEyOGkgX19lbmtleV9sbywgX19tMTI4aSBfX2Vua2V5X2hpKSB7CiAgX19idWlsdGluX2lhMzJfbG9hZGl3a2V5IChfX2ludGtleSwgX19lbmtleV9sbywgX19lbmtleV9oaSwgX19jdGwpOwp9CgovLy8gV3JhcCBhIDEyOC1iaXQgQUVTIGtleSBmcm9tIF9fa2V5IGludG8gYSBrZXkgaGFuZGxlIGFuZCBvdXRwdXQgaW4KLy8vICgoX19tMTI4aSopX19oKSB0byAoKF9fbTEyOGkqKV9faCkgKyA1ICBhbmQgYSAzMi1iaXQgdmFsdWUgYXMgcmV0dXJuLgovLy8gVGhlIGV4cGxpY2l0IHNvdXJjZSBvcGVyYW5kIF9faHR5cGUgc3BlY2lmaWVzIGhhbmRsZSByZXN0cmljdGlvbnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRU5DT0RFS0VZMTI4IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIElucHV0S2V5WzEyNzowXSA6PSBfX2tleVsxMjc6MF0KLy8vIEtleU1ldGFkYXRhWzI6MF0gOj0gX19odHlwZVsyOjBdCi8vLyBLZXlNZXRhZGF0YVsyMzozXSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIEtleU1ldGFkYXRhWzI3OjI0XSA6PSAwIC8vIEtleVR5cGUgaXMgQUVTLTEyOCAodmFsdWUgb2YgMCkKLy8vIEtleU1ldGFkYXRhWzEyNzoyOF0gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBIYW5kbGVbMzgzOjBdIDo9IFdyYXBLZXkxMjgoSW5wdXRLZXlbMTI3OjBdLCBLZXlNZXRhZGF0YVsxMjc6MF0sCi8vLyAgICAgICAgICAgICAgICAgIElXS2V5LkludGVncml0eSBLZXlbMTI3OjBdLCBJV0tleS5FbmNyeXB0aW9uIEtleVsyNTU6MF0pCi8vLyBkc3RbMF0gOj0gSVdLZXkuTm9CYWNrdXAKLy8vIGRzdFs0OjFdIDo9IElXS2V5LktleVNvdXJjZVszOjBdCi8vLyBkc3RbMzE6NV0gOj0gMAovLy8gTUVNW19faCsxMjc6X19oXSA6PSBIYW5kbGVbMTI3OjBdICAgLy8gQUFECi8vLyBNRU1bX19oKzI1NTpfX2grMTI4XSA6PSBIYW5kbGVbMjU1OjEyOF0gLy8gSW50ZWdyaXR5IFRhZwovLy8gTUVNW19faCszODM6X19oKzI1Nl0gOj0gSGFuZGxlWzM4MzoyNTZdIC8vIENpcGhlclRleHQKLy8vIE1FTVtfX2grNTExOl9faCszODRdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gTUVNW19faCs2Mzk6X19oKzUxMl0gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBNRU1bX19oKzc2NzpfX2grNjQwXSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIFpGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZW5jb2Rla2V5MTI4X3UzMih1bnNpZ25lZCBpbnQgX19odHlwZSwgX19tMTI4aSBfX2tleSwgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2VuY29kZWtleTEyOF91MzIoX19odHlwZSwgKF9fdjJkaSlfX2tleSwgX19oKTsKfQoKLy8vIFdyYXAgYSAyNTYtYml0IEFFUyBrZXkgZnJvbSBfX2tleV9oaTpfX2tleV9sbyBpbnRvIGEga2V5IGhhbmRsZSwgdGhlbgovLy8gb3V0cHV0IGhhbmRsZSBpbiAoKF9fbTEyOGkqKV9faCkgdG8gKChfX20xMjhpKilfX2gpICsgNiBhbmQKLy8vIGEgMzItYml0IHZhbHVlIGFzIHJldHVybi4KLy8vIFRoZSBleHBsaWNpdCBzb3VyY2Ugb3BlcmFuZCBfX2h0eXBlIHNwZWNpZmllcyBoYW5kbGUgcmVzdHJpY3Rpb25zLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEVOQ09ERUtFWTI1NiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBJbnB1dEtleVsxMjc6MF0gOj0gX19rZXlfbG9bMTI3OjBdCi8vLyBJbnB1dEtleVsyNTU6MTI4XSA6PSBfX2tleV9oaVsyNTU6MTI4XQovLy8gS2V5TWV0YWRhdGFbMjowXSA6PSBfX2h0eXBlWzI6MF0KLy8vIEtleU1ldGFkYXRhWzIzOjNdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gS2V5TWV0YWRhdGFbMjc6MjRdIDo9IDEgLy8gS2V5VHlwZSBpcyBBRVMtMjU2ICh2YWx1ZSBvZiAxKQovLy8gS2V5TWV0YWRhdGFbMTI3OjI4XSA6PSAwIC8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIEhhbmRsZVs1MTE6MF0gOj0gV3JhcEtleTI1NihJbnB1dEtleVsyNTU6MF0sIEtleU1ldGFkYXRhWzEyNzowXSwKLy8vICAgICAgICAgICAgICAgICAgSVdLZXkuSW50ZWdyaXR5IEtleVsxMjc6MF0sIElXS2V5LkVuY3J5cHRpb24gS2V5WzI1NTowXSkKLy8vIGRzdFswXSA6PSBJV0tleS5Ob0JhY2t1cAovLy8gZHN0WzQ6MV0gOj0gSVdLZXkuS2V5U291cmNlWzM6MF0KLy8vIGRzdFszMTo1XSA6PSAwCi8vLyBNRU1bX19oKzEyNzpfX2hdICAgOj0gSGFuZGxlWzEyNzowXSAvLyBBQUQKLy8vIE1FTVtfX2grMjU1Ol9faCsxMjhdIDo9IEhhbmRsZVsyNTU6MTI4XSAvLyBUYWcKLy8vIE1FTVtfX2grMzgzOl9faCsyNTZdIDo9IEhhbmRsZVszODM6MjU2XSAvLyBDaXBoZXJUZXh0WzEyNzowXQovLy8gTUVNW19faCs1MTE6X19oKzM4NF0gOj0gSGFuZGxlWzUxMTozODRdIC8vIENpcGhlclRleHRbMjU1OjEyOF0KLy8vIE1FTVtfX2grNjM5Ol9faCs1MTJdIDo9IDAgLy8gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2FnZQovLy8gTUVNW19faCs3Njc6X19oKzY0MF0gOj0gMCAvLyBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzYWdlCi8vLyBNRU1bX19oKzg5NTpfX2grNzY4XSA6PSAwIEludGVncml0eS8vIFJlc2VydmVkIGZvciBmdXR1cmUgdXNhZ2UKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIFpGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZW5jb2Rla2V5MjU2X3UzMih1bnNpZ25lZCBpbnQgX19odHlwZSwgX19tMTI4aSBfX2tleV9sbywgX19tMTI4aSBfX2tleV9oaSwKICAgICAgICAgICAgICAgICAgICAgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2VuY29kZWtleTI1Nl91MzIoX19odHlwZSwgKF9fdjJkaSlfX2tleV9sbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fa2V5X2hpLCBfX2gpOwp9CgovLy8gVGhlIEFFU0VOQzEyOEtMIHBlcmZvcm1zIDEwIHJvdW5kcyBvZiBBRVMgdG8gZW5jcnlwdCB0aGUgX19pZGF0YSB1c2luZwovLy8gdGhlIDEyOC1iaXQga2V5IGluIHRoZSBoYW5kbGUgZnJvbSB0aGUgX19oLiBJdCBzdG9yZXMgdGhlIHJlc3VsdCBpbiB0aGUKLy8vIF9fb2RhdGEuIEFuZCByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0VOQzEyOEtMIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEhhbmRsZVszODM6MF0gOj0gTUVNW19faCszODM6X19oXSAvLyBMb2FkIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIGF0b21pYy4KLy8vIElsbGVnYWxIYW5kbGUgOj0gKCBIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzM4MzowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICAoSGFuZGxlWzEyNzowXSBBTkQgKENQTCA+IDApKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZVszODM6MjU2XSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZVszODM6MF0pICE9IEhBTkRMRV9LRVlfVFlQRV9BRVMxMjggKQovLy8gSUYgKElsbGVnYWxIYW5kbGUpCi8vLyAgIFpGIDo9IDEKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGUzODQgKEhhbmRsZVszODM6MF0sIElXS2V5KQovLy8gICBJRiAoQXV0aGVudGljID09IDApCi8vLyAgICAgWkYgOj0gMQovLy8gICBFTFNFCi8vLyAgICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IEFFUzEyOEVuY3J5cHQgKF9faWRhdGFbMTI3OjBdLCBVbndyYXBwZWRLZXkpCi8vLyAgICAgWkYgOj0gMAovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZW5jMTI4a2xfdTgoX19tMTI4aSogX19vZGF0YSwgX19tMTI4aSBfX2lkYXRhLCBjb25zdCB2b2lkICpfX2gpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWVzZW5jMTI4a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsIChfX3YyZGkpX19pZGF0YSwgX19oKTsKfQoKLy8vIFRoZSBBRVNFTkMyNTZLTCBwZXJmb3JtcyAxNCByb3VuZHMgb2YgQUVTIHRvIGVuY3J5cHQgdGhlIF9faWRhdGEgdXNpbmcKLy8vIHRoZSAyNTYtYml0IGtleSBpbiB0aGUgaGFuZGxlIGZyb20gdGhlIF9faC4gSXQgc3RvcmVzIHRoZSByZXN1bHQgaW4gdGhlCi8vLyBfX29kYXRhLiBBbmQgcmV0dXJuIHRoZSBhZmZlY3RlZCBaRiBmbGFnIHN0YXR1cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBRVNFTkMyNTZLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbNTExOjBdIDo9IE1FTVtfX2grNTExOl9faF0gLy8gTG9hZCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBhdG9taWMuCi8vLyBJbGxlZ2FsSGFuZGxlIDo9ICggSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVs1MTE6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVbMjU1OjEyOF0gfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbNTExOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMjU2ICkKLy8vIElGIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSAwCi8vLyBFTFNFCi8vLyAgIChVbndyYXBwZWRLZXksIEF1dGhlbnRpYykgOj0gVW53cmFwS2V5QW5kQXV0aGVudGljYXRlNTEyIChIYW5kbGVbNTExOjBdLCBJV0tleSkKLy8vICAgSUYgKEF1dGhlbnRpYyA9PSAwKQovLy8gICAgIFpGIDo9IDEKLy8vICAgICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gMAovLy8gICBFTFNFCi8vLyAgICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IEFFUzI1NkVuY3J5cHQgKF9faWRhdGFbMTI3OjBdLCBVbndyYXBwZWRLZXkpCi8vLyAgICAgWkYgOj0gMAovLy8gICBGSQovLy8gRkkKLy8vIGRzdCA6PSBaRgovLy8gT0YgOj0gMAovLy8gU0YgOj0gMAovLy8gQUYgOj0gMAovLy8gUEYgOj0gMAovLy8gQ0YgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZW5jMjU2a2xfdTgoX19tMTI4aSogX19vZGF0YSwgX19tMTI4aSBfX2lkYXRhLCBjb25zdCB2b2lkICpfX2gpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYWVzZW5jMjU2a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsIChfX3YyZGkpX19pZGF0YSwgX19oKTsKfQoKLy8vIFRoZSBBRVNERUMxMjhLTCBwZXJmb3JtcyAxMCByb3VuZHMgb2YgQUVTIHRvIGRlY3J5cHQgdGhlIF9faWRhdGEgdXNpbmcKLy8vIHRoZSAxMjgtYml0IGtleSBpbiB0aGUgaGFuZGxlIGZyb20gdGhlIF9faC4gSXQgc3RvcmVzIHRoZSByZXN1bHQgaW4gdGhlCi8vLyBfX29kYXRhLiBBbmQgcmV0dXJuIHRoZSBhZmZlY3RlZCBaRiBmbGFnIHN0YXR1cy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBRVNERUMxMjhLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbMzgzOjBdIDo9IE1FTVtfX2grMzgzOl9faF0gLy8gTG9hZCBpcyBub3QgZ3VhcmFudGVlZCB0byBiZSBhdG9taWMuCi8vLyBJbGxlZ2FsSGFuZGxlIDo9IChIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzM4MzowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgSGFuZGxlWzM4MzoyNTZdIHx8Ci8vLyAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZVszODM6MF0pICE9IEhBTkRMRV9LRVlfVFlQRV9BRVMxMjgpCi8vLyBJRiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gMAovLy8gRUxTRQovLy8gICAoVW53cmFwcGVkS2V5LCBBdXRoZW50aWMpIDo9IFVud3JhcEtleUFuZEF1dGhlbnRpY2F0ZTM4NCAoSGFuZGxlWzM4MzowXSwgSVdLZXkpCi8vLyAgIElGIChBdXRoZW50aWMgPT0gMCkKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IDAKLy8vICAgRUxTRQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSBBRVMxMjhEZWNyeXB0IChfX2lkYXRhWzEyNzowXSwgVW53cmFwcGVkS2V5KQovLy8gICAgIFpGIDo9IDAKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2RlYzEyOGtsX3U4KF9fbTEyOGkqIF9fb2RhdGEsIF9fbTEyOGkgX19pZGF0YSwgY29uc3Qgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2Flc2RlYzEyOGtsX3U4KChfX3YyZGkgKilfX29kYXRhLCAoX192MmRpKV9faWRhdGEsIF9faCk7Cn0KCi8vLyBUaGUgQUVTREVDMjU2S0wgcGVyZm9ybXMgMTAgcm91bmRzIG9mIEFFUyB0byBkZWNyeXB0IHRoZSBfX2lkYXRhIHVzaW5nCi8vLyB0aGUgMjU2LWJpdCBrZXkgaW4gdGhlIGhhbmRsZSBmcm9tIHRoZSBfX2guIEl0IHN0b3JlcyB0aGUgcmVzdWx0IGluIHRoZQovLy8gX19vZGF0YS4gQW5kIHJldHVybiB0aGUgYWZmZWN0ZWQgWkYgZmxhZyBzdGF0dXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQUVTREVDMjU2S0wgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gSGFuZGxlWzUxMTowXSA6PSBNRU1bX19oKzUxMTpfX2hdCi8vLyBJbGxlZ2FsSGFuZGxlIDo9IChIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzUxMTowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgICBIYW5kbGVbMzgzOjI1Nl0gfHwKLy8vICAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZVs1MTE6MF0pICE9IEhBTkRMRV9LRVlfVFlQRV9BRVMyNTYpCi8vLyBJRiAoSWxsZWdhbEhhbmRsZSkKLy8vICAgWkYgOj0gMQovLy8gICBNRU1bX19vZGF0YSsxMjc6X19vZGF0YV0gOj0gMAovLy8gRUxTRQovLy8gICAoVW53cmFwcGVkS2V5LCBBdXRoZW50aWMpIDo9IFVud3JhcEtleUFuZEF1dGhlbnRpY2F0ZTUxMiAoSGFuZGxlWzUxMTowXSwgSVdLZXkpCi8vLyAgIElGIChBdXRoZW50aWMgPT0gMCkKLy8vICAgICBaRiA6PSAxCi8vLyAgICAgTUVNW19fb2RhdGErMTI3Ol9fb2RhdGFdIDo9IDAKLy8vICAgRUxTRQovLy8gICAgIE1FTVtfX29kYXRhKzEyNzpfX29kYXRhXSA6PSBBRVMyNTZEZWNyeXB0IChfX2lkYXRhWzEyNzowXSwgVW53cmFwcGVkS2V5KQovLy8gICAgIFpGIDo9IDAKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2RlYzI1NmtsX3U4KF9fbTEyOGkqIF9fb2RhdGEsIF9fbTEyOGkgX19pZGF0YSwgY29uc3Qgdm9pZCAqX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2Flc2RlYzI1NmtsX3U4KChfX3YyZGkgKilfX29kYXRhLCAoX192MmRpKV9faWRhdGEsIF9faCk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgXAogICAgICAgICAgfHwgZGVmaW5lZChfX0tMX18pICovCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1dJREVLTF9fKQoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJrbCx3aWRla2wiKSxcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCgovLy8gRW5jcnlwdCBfX2lkYXRhWzBdIHRvIF9faWRhdGFbN10gdXNpbmcgMTI4LWJpdCBBRVMga2V5IGluZGljYXRlZCBieSBoYW5kbGUKLy8vIGF0IF9faCBhbmQgc3RvcmUgZWFjaCByZXN1bHRhbnQgYmxvY2sgYmFjayBmcm9tIF9fb2RhdGEgdG8gX19vZGF0YSs3LiBBbmQKLy8vIHJldHVybiB0aGUgYWZmZWN0ZWQgWkYgZmxhZyBzdGF0dXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQUVTRU5DV0lERTEyOEtMIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEhhbmRsZSA6PSBNRU1bX19oKzM4MzpfX2hdCi8vLyBJbGxlZ2FsSGFuZGxlIDo9ICggSGFuZGxlUmVzZXJ2ZWRCaXRTZXQgKEhhbmRsZVszODM6MF0pIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVbMjU1OjEyOF0gfHwKLy8vICAgICAgICAgICAgICAgICAgICBIYW5kbGVLZXlUeXBlIChIYW5kbGVbMzgzOjBdKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMTI4ICkKLy8vIElGIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICBFTkRGT1IKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGUzODQgKEhhbmRsZVszODM6MF0sIElXS2V5KQovLy8gICBJRiBBdXRoZW50aWMgPT0gMAovLy8gICAgIFpGIDo9IDEKLy8vICAgICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICAgIEVOREZPUgovLy8gICBFTFNFCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IEFFUzEyOEVuY3J5cHQgKF9faWRhdGFbaV0sIFVud3JhcHBlZEtleSkKLy8vICAgICBFTkRGT1IKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNlbmN3aWRlMTI4a2xfdTgoX19tMTI4aSBfX29kYXRhWzhdLCBjb25zdCBfX20xMjhpIF9faWRhdGFbOF0sIGNvbnN0IHZvaWQqIF9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNlbmN3aWRlMTI4a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgX192MmRpICopX19pZGF0YSwgX19oKTsKfQoKLy8vIEVuY3J5cHQgX19pZGF0YVswXSB0byBfX2lkYXRhWzddIHVzaW5nIDI1Ni1iaXQgQUVTIGtleSBpbmRpY2F0ZWQgYnkgaGFuZGxlCi8vLyBhdCBfX2ggYW5kIHN0b3JlIGVhY2ggcmVzdWx0YW50IGJsb2NrIGJhY2sgZnJvbSBfX29kYXRhIHRvIF9fb2RhdGErNy4gQW5kCi8vLyByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0VOQ1dJREUyNTZLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbNTExOjBdIDo9IE1FTVtfX2grNTExOl9faF0KLy8vIElsbGVnYWxIYW5kbGUgOj0gKCBIYW5kbGVSZXNlcnZlZEJpdFNldCAoSGFuZGxlWzUxMTowXSkgfHwKLy8vICAgICAgICAgICAgICAgICAgICAoSGFuZGxlWzEyNzowXSBBTkQgKENQTCA+IDApKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZVsyNTU6MTI4XSB8fAovLy8gICAgICAgICAgICAgICAgICAgIEhhbmRsZUtleVR5cGUgKEhhbmRsZVs1MTE6MF0pICE9IEhBTkRMRV9LRVlfVFlQRV9BRVM1MTIgKQovLy8gSUYgKElsbGVnYWxIYW5kbGUpCi8vLyAgIFpGIDo9IDEKLy8vICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgX19vZGF0YVtpXSA6PSAwCi8vLyAgIEVOREZPUgovLy8gRUxTRQovLy8gICAoVW53cmFwcGVkS2V5LCBBdXRoZW50aWMpIDo9IFVud3JhcEtleUFuZEF1dGhlbnRpY2F0ZTUxMiAoSGFuZGxlWzUxMTowXSwgSVdLZXkpCi8vLyAgIElGIEF1dGhlbnRpYyA9PSAwCi8vLyAgICAgWkYgOj0gMQovLy8gICAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgICAgX19vZGF0YVtpXSA6PSAwCi8vLyAgICAgRU5ERk9SCi8vLyAgIEVMU0UKLy8vICAgICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICAgIF9fb2RhdGFbaV0gOj0gQUVTMjU2RW5jcnlwdCAoX19pZGF0YVtpXSwgVW53cmFwcGVkS2V5KQovLy8gICAgIEVOREZPUgovLy8gICAgIFpGIDo9IDAKLy8vICAgRkkKLy8vIEZJCi8vLyBkc3QgOj0gWkYKLy8vIE9GIDo9IDAKLy8vIFNGIDo9IDAKLy8vIEFGIDo9IDAKLy8vIFBGIDo9IDAKLy8vIENGIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2VuY3dpZGUyNTZrbF91OChfX20xMjhpIF9fb2RhdGFbOF0sIGNvbnN0IF9fbTEyOGkgX19pZGF0YVs4XSwgY29uc3Qgdm9pZCogX19oKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2Flc2VuY3dpZGUyNTZrbF91OCgoX192MmRpICopX19vZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdCBfX3YyZGkgKilfX2lkYXRhLCBfX2gpOwp9CgovLy8gRGVjcnlwdCBfX2lkYXRhWzBdIHRvIF9faWRhdGFbN10gdXNpbmcgMTI4LWJpdCBBRVMga2V5IGluZGljYXRlZCBieSBoYW5kbGUKLy8vIGF0IF9faCBhbmQgc3RvcmUgZWFjaCByZXN1bHRhbnQgYmxvY2sgYmFjayBmcm9tIF9fb2RhdGEgdG8gX19vZGF0YSs3LiBBbmQKLy8vIHJldHVybiB0aGUgYWZmZWN0ZWQgWkYgZmxhZyBzdGF0dXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQUVTREVDV0lERTEyOEtMIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEhhbmRsZVszODM6MF0gOj0gTUVNW19faCszODM6X19oXQovLy8gSWxsZWdhbEhhbmRsZSA6PSAoIEhhbmRsZVJlc2VydmVkQml0U2V0IChIYW5kbGVbMzgzOjBdKSB8fAovLy8gICAgICAgICAgICAgICAgICAgIChIYW5kbGVbMTI3OjBdIEFORCAoQ1BMID4gMCkpIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlWzI1NToxMjhdIHx8Ci8vLyAgICAgICAgICAgICAgICAgICAgSGFuZGxlS2V5VHlwZSAoSGFuZGxlKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTMTI4ICkKLy8vIElGIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICBFTkRGT1IKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGUzODQgKEhhbmRsZVszODM6MF0sIElXS2V5KQovLy8gICBJRiBBdXRoZW50aWMgPT0gMAovLy8gICAgIFpGIDo9IDEKLy8vICAgICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICAgIEVOREZPUgovLy8gICBFTFNFCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IEFFUzEyOERlY3J5cHQgKF9faWRhdGFbaV0sIFVud3JhcHBlZEtleSkKLy8vICAgICBFTkRGT1IKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNkZWN3aWRlMTI4a2xfdTgoX19tMTI4aSBfX29kYXRhWzhdLCBjb25zdCBfX20xMjhpIF9faWRhdGFbOF0sIGNvbnN0IHZvaWQqIF9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNkZWN3aWRlMTI4a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgX192MmRpICopX19pZGF0YSwgX19oKTsKfQoKLy8vIERlY3J5cHQgX19pZGF0YVswXSB0byBfX2lkYXRhWzddIHVzaW5nIDI1Ni1iaXQgQUVTIGtleSBpbmRpY2F0ZWQgYnkgaGFuZGxlCi8vLyBhdCBfX2ggYW5kIHN0b3JlIGVhY2ggcmVzdWx0YW50IGJsb2NrIGJhY2sgZnJvbSBfX29kYXRhIHRvIF9fb2RhdGErNy4gQW5kCi8vLyByZXR1cm4gdGhlIGFmZmVjdGVkIFpGIGZsYWcgc3RhdHVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0RFQ1dJREUyNTZLTCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBIYW5kbGVbNTExOjBdIDo9IE1FTVtfX2grNTExOl9faF0KLy8vIElsbGVnYWxIYW5kbGUgPSAoIEhhbmRsZVJlc2VydmVkQml0U2V0IChIYW5kbGVbNTExOjBdKSB8fAovLy8gICAgICAgICAgICAgICAgICAgKEhhbmRsZVsxMjc6MF0gQU5EIChDUEwgPiAwKSkgfHwKLy8vICAgICAgICAgICAgICAgICAgIEhhbmRsZVsyNTU6MTI4XSB8fAovLy8gICAgICAgICAgICAgICAgICAgSGFuZGxlS2V5VHlwZSAoSGFuZGxlKSAhPSBIQU5ETEVfS0VZX1RZUEVfQUVTNTEyICkKLy8vIElmIChJbGxlZ2FsSGFuZGxlKQovLy8gICBaRiA6PSAxCi8vLyAgIEZPUiBpIDo9IDAgdG8gNwovLy8gICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICBFTkRGT1IKLy8vIEVMU0UKLy8vICAgKFVud3JhcHBlZEtleSwgQXV0aGVudGljKSA6PSBVbndyYXBLZXlBbmRBdXRoZW50aWNhdGU1MTIgKEhhbmRsZVs1MTE6MF0sIElXS2V5KQovLy8gICBJRiBBdXRoZW50aWMgPT0gMAovLy8gICAgIFpGIDo9IDEKLy8vICAgICBGT1IgaSA6PSAwIHRvIDcKLy8vICAgICAgIF9fb2RhdGFbaV0gOj0gMAovLy8gICAgIEVOREZPUgovLy8gICBFTFNFCi8vLyAgICAgRk9SIGkgOj0gMCB0byA3Ci8vLyAgICAgICBfX29kYXRhW2ldIDo9IEFFUzI1NkRlY3J5cHQgKF9faWRhdGFbaV0sIFVud3JhcHBlZEtleSkKLy8vICAgICBFTkRGT1IKLy8vICAgICBaRiA6PSAwCi8vLyAgIEZJCi8vLyBGSQovLy8gZHN0IDo9IFpGCi8vLyBPRiA6PSAwCi8vLyBTRiA6PSAwCi8vLyBBRiA6PSAwCi8vLyBQRiA6PSAwCi8vLyBDRiA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNkZWN3aWRlMjU2a2xfdTgoX19tMTI4aSBfX29kYXRhWzhdLCBjb25zdCBfX20xMjhpIF9faWRhdGFbOF0sIGNvbnN0IHZvaWQqIF9faCkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZXNkZWN3aWRlMjU2a2xfdTgoKF9fdjJkaSAqKV9fb2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3QgX192MmRpICopX19pZGF0YSwgX19oKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSBcCiAgICAgICAgICB8fCBkZWZpbmVkKF9fV0lERUtMX18pICovCgojZW5kaWYgLyogX0tFWUxPQ0tFUklOVFJJTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0gdHN4bGR0cmtpbnRyaW4uaCAtIHRzeGxkdHJrIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHRzeGxkdHJraW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1RTWExEVFJLSU5UUklOX0gKI2RlZmluZSBfX1RTWExEVFJLSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSAqLwojZGVmaW5lIF9ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInRzeGxkdHJrIikpKQoKLy8vIE1hcmtzIHRoZSBzdGFydCBvZiBhbiBUU1ggKFJUTSkgc3VzcGVuZCBsb2FkIGFkZHJlc3MgdHJhY2tpbmcgcmVnaW9uLiBJZgovLy8gICAgdGhpcyBpbnRyaW5zaWMgaXMgdXNlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbmFsIHJlZ2lvbiwgc3Vic2VxdWVudCBsb2FkcwovLy8gICAgYXJlIG5vdCBhZGRlZCB0byB0aGUgcmVhZCBzZXQgb2YgdGhlIHRyYW5zYWN0aW9uLiBJZiBpdCdzIHVzZWQgaW5zaWRlIGEKLy8vICAgIHN1c3BlbmQgbG9hZCBhZGRyZXNzIHRyYWNraW5nIHJlZ2lvbiBpdCB3aWxsIGNhdXNlIHRyYW5zYWN0aW9uIGFib3J0LgovLy8gICAgSWYgaXQncyB1c2VkIG91dHNpZGUgb2YgYSB0cmFuc2FjdGlvbmFsIHJlZ2lvbiBpdCBiZWhhdmVzIGxpa2UgYSBOT1AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBYU1VTTERUUksgaW5zdHJ1Y3Rpb24uCi8vLwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9ERUZBVUxUX0ZOX0FUVFJTCl94c3VzbGR0cmsgKHZvaWQpCnsKICAgIF9fYnVpbHRpbl9pYTMyX3hzdXNsZHRyaygpOwp9CgovLy8gTWFya3MgdGhlIGVuZCBvZiBhbiBUU1ggKFJUTSkgc3VzcGVuZCBsb2FkIGFkZHJlc3MgdHJhY2tpbmcgcmVnaW9uLiBJZiB0aGlzCi8vLyAgICBpbnRyaW5zaWMgaXMgdXNlZCBpbnNpZGUgYSBzdXNwZW5kIGxvYWQgYWRkcmVzcyB0cmFja2luZyByZWdpb24gaXQgd2lsbAovLy8gICAgZW5kIHRoZSBzdXNwZW5kIHJlZ2lvbiBhbmQgYWxsIGZvbGxvd2luZyBsb2FkIGFkZHJlc3NlcyB3aWxsIGJlIGFkZGVkIHRvCi8vLyAgICB0aGUgdHJhbnNhY3Rpb24gcmVhZCBzZXQuIElmIGl0J3MgdXNlZCBpbnNpZGUgYW4gYWN0aXZlIHRyYW5zYWN0aW9uIGJ1dAovLy8gICAgbm90IGluIGEgc3VzcGVuZCByZWdpb24gaXQgd2lsbCBjYXVzZSB0cmFuc2FjdGlvbiBhYm9ydC4gSWYgaXQncyB1c2VkCi8vLyAgICBvdXRzaWRlIG9mIGEgdHJhbnNhY3Rpb25hbCByZWdpb24gaXQgYmVoYXZlcyBsaWtlIGEgTk9QLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgWFJFU0xEVFJLIGluc3RydWN0aW9uLgovLy8Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfREVGQVVMVF9GTl9BVFRSUwpfeHJlc2xkdHJrICh2b2lkKQp7CiAgICBfX2J1aWx0aW5faWEzMl94cmVzbGR0cmsoKTsKfQoKI3VuZGVmIF9ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19UU1hMRFRSS0lOVFJJTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0tIHdibm9pbnZkaW50cmluLmggLSB3Ym5vaW52ZCBpbnRyaW5zaWMtLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx3Ym5vaW52ZGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19XQk5PSU5WRElOVFJJTl9ICiNkZWZpbmUgX19XQk5PSU5WRElOVFJJTl9ICgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygid2Jub2ludmQiKSkpCl93Ym5vaW52ZCAodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX3dibm9pbnZkICgpOwp9CgojZW5kaWYgLyogX19XQk5PSU5WRElOVFJJTl9IICovCgAvKj09PS0gX19jbGFuZ19vcGVubXBfZGV2aWNlX2Z1bmN0aW9ucy5oIC0gT3Blbk1QIGRldmljZSBmdW5jdGlvbiBkZWNsYXJlcyAtPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfT1BFTk1QX0RFVklDRV9GVU5DVElPTlNfSF9fCiNkZWZpbmUgX19DTEFOR19PUEVOTVBfREVWSUNFX0ZVTkNUSU9OU19IX18KCiNpZm5kZWYgX09QRU5NUAojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgT3Blbk1QIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGV2aWNlID0ge2FyY2gobnZwdHgsIG52cHR4NjQpfSwgaW1wbGVtZW50YXRpb24gPSB7ZXh0ZW5zaW9uKG1hdGNoX2FueSl9KQoKI2RlZmluZSBfX0NVREFfXwojZGVmaW5lIF9fT1BFTk1QX05WUFRYX18KCi8vLyBJbmNsdWRlIGRlY2xhcmF0aW9ucyBmb3IgbGliZGV2aWNlIGZ1bmN0aW9ucy4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9saWJkZXZpY2VfZGVjbGFyZXMuaD4KCi8vLyBQcm92aWRlIGRlZmluaXRpb25zIGZvciB0aGVzZSBmdW5jdGlvbnMuCiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfZGV2aWNlX2Z1bmN0aW9ucy5oPgoKI3VuZGVmIF9fT1BFTk1QX05WUFRYX18KI3VuZGVmIF9fQ1VEQV9fCgojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CgojaWZkZWYgX19BTURHQ05fXwojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goZGV2aWNlID0ge2FyY2goYW1kZ2NuKX0pCgovLyBJbXBvcnQgdHlwZXMgd2hpY2ggd2lsbCBiZSB1c2VkIGJ5IF9fY2xhbmdfaGlwX2xpYmRldmljZV9kZWNsYXJlcy5oCiNpZm5kZWYgX19jcGx1c3BsdXMKI2luY2x1ZGUgPHN0ZGJvb2wuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojZW5kaWYKCiNkZWZpbmUgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBwdXNoX21hY3JvKCJfX2RldmljZV9fIikKI2RlZmluZSBfX2RldmljZV9fCgovLy8gSW5jbHVkZSBkZWNsYXJhdGlvbnMgZm9yIGxpYmRldmljZSBmdW5jdGlvbnMuCiNpbmNsdWRlIDxfX2NsYW5nX2hpcF9saWJkZXZpY2VfZGVjbGFyZXMuaD4KCiNwcmFnbWEgcG9wX21hY3JvKCJfX2RldmljZV9fIikKI3VuZGVmIF9fT1BFTk1QX0FNREdDTl9fCgojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCi8vIEVuc3VyZSB3ZSBtYWtlIGBfWmRsUHZgLCBha2EuIGBvcGVyYXRvciBkZWxldGUodm9pZCopYCBhdmFpbGFibGUgd2l0aG91dCB0aGUKLy8gbmVlZCB0byBgaW5jbHVkZSA8bmV3PmAgaW4gQysrIG1vZGUuCiNpZmRlZiBfX2NwbHVzcGx1cwoKLy8gV2UgcmVxdWlyZSBtYWxsb2MvZnJlZS4KI2luY2x1ZGUgPGNzdGRsaWI+CgojcHJhZ21hIHB1c2hfbWFjcm8oIk9QRU5NUF9OT0VYQ0VQVCIpCiNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCiNkZWZpbmUgT1BFTk1QX05PRVhDRVBUIG5vZXhjZXB0CiNlbHNlCiNkZWZpbmUgT1BFTk1QX05PRVhDRVBUCiNlbmRpZgoKLy8gRGV2aWNlIG92ZXJyaWRlcyBmb3Igbm9uLXBsYWNlbWVudCBuZXcgYW5kIGRlbGV0ZS4KaW5saW5lIHZvaWQgKm9wZXJhdG9yIG5ldyhfX1NJWkVfVFlQRV9fIHNpemUpIHsKICBpZiAoc2l6ZSA9PSAwKQogICAgc2l6ZSA9IDE7CiAgcmV0dXJuIDo6bWFsbG9jKHNpemUpOwp9CgppbmxpbmUgdm9pZCAqb3BlcmF0b3IgbmV3W10oX19TSVpFX1RZUEVfXyBzaXplKSB7IHJldHVybiA6Om9wZXJhdG9yIG5ldyhzaXplKTsgfQoKaW5saW5lIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0cilPUEVOTVBfTk9FWENFUFQgeyA6OmZyZWUocHRyKTsgfQoKaW5saW5lIHZvaWQgb3BlcmF0b3IgZGVsZXRlW10odm9pZCAqcHRyKSBPUEVOTVBfTk9FWENFUFQgewogIDo6b3BlcmF0b3IgZGVsZXRlKHB0cik7Cn0KCi8vIFNpemVkIGRlbGV0ZSwgQysrMTQgb25seS4KI2lmIF9fY3BsdXNwbHVzID49IDIwMTQwMkwKaW5saW5lIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZvaWQgKnB0ciwgX19TSVpFX1RZUEVfXyBzaXplKU9QRU5NUF9OT0VYQ0VQVCB7CiAgOjpvcGVyYXRvciBkZWxldGUocHRyKTsKfQppbmxpbmUgdm9pZCBvcGVyYXRvciBkZWxldGVbXSh2b2lkICpwdHIsIF9fU0laRV9UWVBFX18gc2l6ZSkgT1BFTk1QX05PRVhDRVBUIHsKICA6Om9wZXJhdG9yIGRlbGV0ZShwdHIpOwp9CiNlbmRpZgoKI3ByYWdtYSBwb3BfbWFjcm8oIk9QRU5NUF9OT0VYQ0VQVCIpCiNlbmRpZgoKI2VuZGlmCgAvKj09PS0tLS0geG1taW50cmluLmggLSBJbXBsZW1lbnRhdGlvbiBvZiBTU0UgaW50cmluc2ljcyBvbiBQb3dlclBDIC0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4gICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgZmlsZSBpcyB0byBoZWxwIHBvcnRpbmcgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzCiAgIGV4cGxpY2l0bHkgZnJvbSB4ODZfNjQgdG8gcG93ZXJwYzY0L3Bvd2VycGM2NGxlLgoKICAgU2luY2UgWDg2IFNTRSBpbnRyaW5zaWNzIG1haW5seSBoYW5kbGVzIF9fbTEyOCB0eXBlLCBQb3dlclBDCiAgIFZNWC9WU1ggSVNBIGlzIGEgZ29vZCBtYXRjaCBmb3IgdmVjdG9yIGZsb2F0IFNJTUQgb3BlcmF0aW9ucy4KICAgSG93ZXZlciBzY2FsYXIgZmxvYXQgb3BlcmF0aW9ucyBpbiB2ZWN0b3IgKFhNTSkgcmVnaXN0ZXJzIHJlcXVpcmUKICAgdGhlIFBPV0VSOCBWU1ggSVNBICgyLjA3KSBsZXZlbC4gVGhlcmUgYXJlIGRpZmZlcmVuY2VzIGZvciBkYXRhCiAgIGZvcm1hdCBhbmQgcGxhY2VtZW50IG9mIGZsb2F0IHNjYWxhcnMgaW4gdGhlIHZlY3RvciByZWdpc3Rlciwgd2hpY2gKICAgcmVxdWlyZSBleHRyYSBzdGVwcyB0byBtYXRjaCBTU0Ugc2NhbGFyIGZsb2F0IHNlbWFudGljcyBvbiBQT1dFUi4KCiAgIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZXJlJ3MgbXVjaCBkaWZmZXJlbmNlIGJldHdlZW4gWDg2XzY0J3MKICAgTVhTQ1IgYW5kIFBvd2VySVNBJ3MgRlBTQ1IvVlNDUiByZWdpc3RlcnMuIEl0J3MgcmVjb21tZW5kZWQgdG8gdXNlCiAgIHBvcnRhYmxlIDxmZW52Lmg+IGluc3RlYWQgb2YgYWNjZXNzIE1YU0NSIGRpcmVjdGx5LgoKICAgTW9zdCBTU0Ugc2NhbGFyIGZsb2F0IGludHJpbnNpYyBvcGVyYXRpb25zIGNhbiBiZSBwZXJmb3JtZWQgbW9yZQogICBlZmZpY2llbnRseSBhcyBDIGxhbmd1YWdlIGZsb2F0IHNjYWxhciBvcGVyYXRpb25zIG9yIG9wdGltaXplZCB0bwogICB1c2UgdmVjdG9yIFNJTUQgb3BlcmF0aW9ucy4gV2UgcmVjb21tZW5kIHRoaXMgZm9yIG5ldyBhcHBsaWNhdGlvbnMuICovCiNlcnJvciAiUGxlYXNlIHJlYWQgY29tbWVudCBhYm92ZS4gVXNlIC1ETk9fV0FSTl9YODZfSU5UUklOU0lDUyB0byBkaXNhYmxlIHRoaXMgZXJyb3IuIgojZW5kaWYKCiNpZm5kZWYgX1hNTUlOVFJJTl9IX0lOQ0xVREVECiNkZWZpbmUgX1hNTUlOVFJJTl9IX0lOQ0xVREVECgojaWYgZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKQoKLyogRGVmaW5lIGZvdXIgdmFsdWUgcGVybXV0ZSBtYXNrICovCiNkZWZpbmUgX01NX1NIVUZGTEUodyx4LHkseikgKCgodykgPDwgNikgfCAoKHgpIDw8IDQpIHwgKCh5KSA8PCAyKSB8ICh6KSkKCiNpbmNsdWRlIDxhbHRpdmVjLmg+CgovKiBBdm9pZCBjb2xsaXNpb25zIGJldHdlZW4gYWx0aXZlYy5oIGFuZCBzdHJpY3QgYWRoZXJlbmNlIHRvIEMrKyBhbmQKICAgQzExIHN0YW5kYXJkcy4gIFRoaXMgc2hvdWxkIGV2ZW50dWFsbHkgYmUgZG9uZSBpbnNpZGUgYWx0aXZlYy5oIGl0c2VsZiwKICAgYnV0IG9ubHkgYWZ0ZXIgdGVzdGluZyBhIGZ1bGwgZGlzdHJvIGJ1aWxkLiAgKi8KI2lmIGRlZmluZWQoX19TVFJJQ1RfQU5TSV9fKSAmJiAoZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgXAoJCQkJIChkZWZpbmVkKF9fU1REQ19WRVJTSU9OX18pICYmCVwKCQkJCSAgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMKSkKI3VuZGVmIHZlY3RvcgojdW5kZWYgcGl4ZWwKI3VuZGVmIGJvb2wKI2VuZGlmCgovKiBXZSBuZWVkIHR5cGUgZGVmaW5pdGlvbnMgZnJvbSB0aGUgTU1YIGhlYWRlciBmaWxlLiAgKi8KI2luY2x1ZGUgPG1taW50cmluLmg+CgovKiBHZXQgX21tX21hbGxvYyAoKSBhbmQgX21tX2ZyZWUgKCkuICAqLwojaWYgX19TVERDX0hPU1RFRF9fCiNpbmNsdWRlIDxtbV9tYWxsb2MuaD4KI2VuZGlmCgovKiBUaGUgSW50ZWwgQVBJIGlzIGZsZXhpYmxlIGVub3VnaCB0aGF0IHdlIG11c3QgYWxsb3cgYWxpYXNpbmcgd2l0aCBvdGhlcgogICB2ZWN0b3IgdHlwZXMsIGFuZCB0aGVpciBzY2FsYXIgY29tcG9uZW50cy4gICovCnR5cGVkZWYgdmVjdG9yIGZsb2F0IF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX21heV9hbGlhc19fKSk7CgovKiBVbmFsaWduZWQgdmVyc2lvbiBvZiB0aGUgc2FtZSB0eXBlLiAgKi8KdHlwZWRlZiB2ZWN0b3IgZmxvYXQgX19tMTI4X3UgX19hdHRyaWJ1dGVfXygoX19tYXlfYWxpYXNfXywgX19hbGlnbmVkX18oMSkpKTsKCi8qIEludGVybmFsIGRhdGEgdHlwZXMgZm9yIGltcGxlbWVudGluZyB0aGUgaW50cmluc2ljcy4gICovCnR5cGVkZWYgdmVjdG9yIGZsb2F0IF9fdjRzZjsKCi8qIENyZWF0ZSBhbiB1bmRlZmluZWQgdmVjdG9yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VuZGVmaW5lZF9wcyAodm9pZCkKewogIF9fbTEyOCBfX1kgPSBfX1k7CiAgcmV0dXJuIF9fWTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIG9mIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHplcm9fcHMgKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgMC4wZiwgMC4wZiwgMC4wZiwgMC4wZiB9Owp9CgovKiBMb2FkIGZvdXIgU1BGUCB2YWx1ZXMgZnJvbSBQLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZF9wcyAoZmxvYXQgY29uc3QgKl9fUCkKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfbGQoMCwgKF9fdjRzZiopX19QKSk7Cn0KCi8qIExvYWQgZm91ciBTUEZQIHZhbHVlcyBmcm9tIFAuICBUaGUgYWRkcmVzcyBuZWVkIG5vdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZHVfcHMgKGZsb2F0IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKHZlY192c3hfbGQoMCwgX19QKSk7Cn0KCi8qIExvYWQgZm91ciBTUEZQIHZhbHVlcyBpbiByZXZlcnNlIG9yZGVyLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRyX3BzIChmbG9hdCBjb25zdCAqX19QKQp7CiAgX192NHNmICAgX190bXA7CiAgX19tMTI4IHJlc3VsdDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgY2hhciBwZXJtdXRlX3ZlY3RvciA9CiAgICB7IDB4MUMsIDB4MUQsIDB4MUUsIDB4MUYsIDB4MTgsIDB4MTksIDB4MUEsIDB4MUIsIDB4MTQsIDB4MTUsIDB4MTYsCgkweDE3LCAweDEwLCAweDExLCAweDEyLCAweDEzIH07CgogIF9fdG1wID0gdmVjX2xkICgwLCAoX192NHNmICopIF9fUCk7CiAgcmVzdWx0ID0gKF9fbTEyOCkgdmVjX3Blcm0gKF9fdG1wLCBfX3RtcCwgcGVybXV0ZV92ZWN0b3IpOwogIHJldHVybiByZXN1bHQ7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGFsbCBmb3VyIGVsZW1lbnRzIGVxdWFsIHRvIEYuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0MV9wcyAoZmxvYXQgX19GKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCkoX192NHNmKXsgX19GLCBfX0YsIF9fRiwgX19GIH07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfcHMxIChmbG9hdCBfX0YpCnsKICByZXR1cm4gX21tX3NldDFfcHMgKF9fRik7Cn0KCi8qIENyZWF0ZSB0aGUgdmVjdG9yIFtaIFkgWCBXXS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfcHMgKGNvbnN0IGZsb2F0IF9fWiwgY29uc3QgZmxvYXQgX19ZLCBjb25zdCBmbG9hdCBfX1gsIGNvbnN0IGZsb2F0IF9fVykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjgpKF9fdjRzZil7IF9fVywgX19YLCBfX1ksIF9fWiB9Owp9CgovKiBDcmVhdGUgdGhlIHZlY3RvciBbVyBYIFkgWl0uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0cl9wcyAoZmxvYXQgX19aLCBmbG9hdCBfX1ksIGZsb2F0IF9fWCwgZmxvYXQgX19XKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCkoX192NHNmKXsgX19aLCBfX1ksIF9fWCwgX19XIH07Cn0KCi8qIFN0b3JlIGZvdXIgU1BGUCB2YWx1ZXMuICBUaGUgYWRkcmVzcyBtdXN0IGJlIDE2LWJ5dGUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVfcHMgKGZsb2F0ICpfX1AsIF9fbTEyOCBfX0EpCnsKICB2ZWNfc3QoKF9fdjRzZilfX0EsIDAsIChfX3Y0c2YqKV9fUCk7Cn0KCi8qIFN0b3JlIGZvdXIgU1BGUCB2YWx1ZXMuICBUaGUgYWRkcmVzcyBuZWVkIG5vdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JldV9wcyAoZmxvYXQgKl9fUCwgX19tMTI4IF9fQSkKewogICooX19tMTI4X3UgKilfX1AgPSBfX0E7Cn0KCi8qIFN0b3JlIGZvdXIgU1BGUCB2YWx1ZXMgaW4gcmV2ZXJzZSBvcmRlci4gIFRoZSBhZGRyZXNzIG11c3QgYmUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVyX3BzIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgX192NHNmICAgX190bXA7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgcGVybXV0ZV92ZWN0b3IgPQogICAgeyAweDFDLCAweDFELCAweDFFLCAweDFGLCAweDE4LCAweDE5LCAweDFBLCAweDFCLCAweDE0LCAweDE1LCAweDE2LAoJMHgxNywgMHgxMCwgMHgxMSwgMHgxMiwgMHgxMyB9OwoKICBfX3RtcCA9IChfX20xMjgpIHZlY19wZXJtIChfX0EsIF9fQSwgcGVybXV0ZV92ZWN0b3IpOwoKICBfbW1fc3RvcmVfcHMgKF9fUCwgX190bXApOwp9CgovKiBTdG9yZSB0aGUgbG93ZXIgU1BGUCB2YWx1ZSBhY3Jvc3MgZm91ciB3b3Jkcy4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmUxX3BzIChmbG9hdCAqX19QLCBfX20xMjggX19BKQp7CiAgX192NHNmIF9fdmEgPSB2ZWNfc3BsYXQoKF9fdjRzZilfX0EsIDApOwogIF9tbV9zdG9yZV9wcyAoX19QLCBfX3ZhKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZV9wczEgKGZsb2F0ICpfX1AsIF9fbTEyOCBfX0EpCnsKICBfbW1fc3RvcmUxX3BzIChfX1AsIF9fQSk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGVsZW1lbnQgMCBhcyBGIGFuZCB0aGUgcmVzdCB6ZXJvLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9zcyAoZmxvYXQgX19GKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCkoX192NHNmKXsgX19GLCAwLjBmLCAwLjBmLCAwLjBmIH07Cn0KCi8qIFNldHMgdGhlIGxvdyBTUEZQIHZhbHVlIG9mIEEgZnJvbSB0aGUgbG93IHZhbHVlIG9mIEIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKCiAgcmV0dXJuICh2ZWNfc2VsICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIG1hc2spKTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggZWxlbWVudCAwIGFzICpQIGFuZCB0aGUgcmVzdCB6ZXJvLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRfc3MgKGZsb2F0IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gX21tX3NldF9zcyAoKl9fUCk7Cn0KCi8qIFN0b3JlcyB0aGUgbG93ZXIgU1BGUCB2YWx1ZS4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVfc3MgKGZsb2F0ICpfX1AsIF9fbTEyOCBfX0EpCnsKICAqX19QID0gKChfX3Y0c2YpX19BKVswXTsKfQoKLyogUGVyZm9ybSB0aGUgcmVzcGVjdGl2ZSBvcGVyYXRpb24gb24gdGhlIGxvd2VyIFNQRlAgKHNpbmdsZS1wcmVjaXNpb24KICAgZmxvYXRpbmctcG9pbnQpIHZhbHVlcyBvZiBBIGFuZCBCOyB0aGUgdXBwZXIgdGhyZWUgU1BGUCB2YWx1ZXMgYXJlCiAgIHBhc3NlZCB0aHJvdWdoIGZyb20gQS4gICovCgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiNpZmRlZiBfQVJDSF9QV1I3CiAgX19tMTI4IGEsIGIsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBkb3VibGUpCiAgICAgcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgICAoZnJvbSB0aGUgdXBwZXIgZG91YmxlIHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGRvdWJsZQogICAgIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAgKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKF9fQiwgMCk7CiAgYyA9IGEgKyBiOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAgIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwojZWxzZQogIF9fQVswXSA9IF9fQVswXSArIF9fQlswXTsKICByZXR1cm4gKF9fQSk7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3ViX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiNpZmRlZiBfQVJDSF9QV1I3CiAgX19tMTI4IGEsIGIsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBkb3VibGUpCiAgICAgcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgICAoZnJvbSB0aGUgdXBwZXIgZG91YmxlIHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGRvdWJsZQogICAgIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAgKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKF9fQiwgMCk7CiAgYyA9IGEgLSBiOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAgIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwojZWxzZQogIF9fQVswXSA9IF9fQVswXSAtIF9fQlswXTsKICByZXR1cm4gKF9fQSk7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiNpZmRlZiBfQVJDSF9QV1I3CiAgX19tMTI4IGEsIGIsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBkb3VibGUpCiAgICAgcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgICAoZnJvbSB0aGUgdXBwZXIgZG91YmxlIHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGRvdWJsZQogICAgIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAgKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKF9fQiwgMCk7CiAgYyA9IGEgKiBiOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAgIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwojZWxzZQogIF9fQVswXSA9IF9fQVswXSAqIF9fQlswXTsKICByZXR1cm4gKF9fQSk7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fZGl2X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiNpZmRlZiBfQVJDSF9QV1I3CiAgX19tMTI4IGEsIGIsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBkb3VibGUpCiAgICAgcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgICAoZnJvbSB0aGUgdXBwZXIgZG91YmxlIHZhbHVlcykgd2Ugc3BsYXQgdGhlIGxvd2VyIGRvdWJsZQogICAgIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAgKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKF9fQiwgMCk7CiAgYyA9IGEgLyBiOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAgIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKHZlY19zZWwgKF9fQSwgYywgbWFzaykpOwojZWxzZQogIF9fQVswXSA9IF9fQVswXSAvIF9fQlswXTsKICByZXR1cm4gKF9fQSk7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3FydF9zcyAoX19tMTI4IF9fQSkKewogIF9fbTEyOCBhLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGMgPSB2ZWNfc3FydCAoYSk7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAodmVjX3NlbCAoX19BLCBjLCBtYXNrKSk7Cn0KCi8qIFBlcmZvcm0gdGhlIHJlc3BlY3RpdmUgb3BlcmF0aW9uIG9uIHRoZSBmb3VyIFNQRlAgdmFsdWVzIGluIEEgYW5kIEIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpICgoX192NHNmKV9fQSArIChfX3Y0c2YpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSAoKF9fdjRzZilfX0EgLSAoX192NHNmKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgKChfX3Y0c2YpX19BICogKF9fdjRzZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fZGl2X3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpICgoX192NHNmKV9fQSAvIChfX3Y0c2YpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NxcnRfcHMgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKHZlY19zcXJ0ICgoX192NHNmKV9fQSkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcmNwX3BzIChfX20xMjggX19BKQp7CiAgcmV0dXJuICh2ZWNfcmUgKChfX3Y0c2YpX19BKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9yc3FydF9wcyAoX19tMTI4IF9fQSkKewogIHJldHVybiAodmVjX3JzcXJ0ZSAoX19BKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9yY3Bfc3MgKF9fbTEyOCBfX0EpCnsKICBfX20xMjggYSwgYzsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPSB7MHhmZmZmZmZmZiwgMCwgMCwgMH07CiAgLyogUG93ZXJJU0EgVlNYIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGxvd2VyIGRvdWJsZSkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBkb3VibGUgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZG91YmxlCiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoX19BLCAwKTsKICBjID0gX21tX3JjcF9wcyAoYSk7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAodmVjX3NlbCAoX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9yc3FydF9zcyAoX19tMTI4IF9fQSkKewogIF9fbTEyOCBhLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0IChfX0EsIDApOwogIGMgPSB2ZWNfcnNxcnRlIChhKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsIChfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIF9fdjRzZiBhLCBiLCBjOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9IHsweGZmZmZmZmZmLCAwLCAwLCAwfTsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZmxvYXQpCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZmxvYXQgdmFsdWVzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKV9fQSwgMCk7CiAgYiA9IHZlY19zcGxhdCAoKF9fdjRzZilfX0IsIDApOwogIGMgPSB2ZWNfbWluIChhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICh2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgX192NHNmIGEsIGIsIGM7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0gezB4ZmZmZmZmZmYsIDAsIDAsIDB9OwogIC8qIFBvd2VySVNBIFZTWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBsb3dlciBmbG9hdCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBmbG9hdCB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBmbG9hdAogICAqIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAqLwogIGEgPSB2ZWNfc3BsYXQgKF9fQSwgMCk7CiAgYiA9IHZlY19zcGxhdCAoX19CLCAwKTsKICBjID0gdmVjX21heCAoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAodmVjX3NlbCAoKF9fdjRzZilfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIF9fdmVjdG9yIF9fYm9vbCBpbnQgbSA9IHZlY19jbXBndCAoKF9fdjRzZikgX19CLCAoX192NHNmKSBfX0EpOwogIHJldHVybiB2ZWNfc2VsIChfX0IsIF9fQSwgbSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tYXhfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3ZlY3RvciBfX2Jvb2wgaW50IG0gPSB2ZWNfY21wZ3QgKChfX3Y0c2YpIF9fQSwgKF9fdjRzZikgX19CKTsKICByZXR1cm4gdmVjX3NlbCAoX19CLCBfX0EsIG0pOwp9CgovKiBQZXJmb3JtIGxvZ2ljYWwgYml0LXdpc2Ugb3BlcmF0aW9ucyBvbiAxMjgtYml0IHZhbHVlcy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2FuZCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Ci8vICByZXR1cm4gX19idWlsdGluX2lhMzJfYW5kcHMgKF9fQSwgX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FuZG5vdF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfYW5kYyAoKF9fdjRzZilfX0IsIChfX3Y0c2YpX19BKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9vcl9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfb3IgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1feG9yX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY194b3IgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgovKiBQZXJmb3JtIGEgY29tcGFyaXNvbiBvbiB0aGUgZm91ciBTUEZQIHZhbHVlcyBvZiBBIGFuZCBCLiAgRm9yIGVhY2gKICAgZWxlbWVudCwgaWYgdGhlIGNvbXBhcmlzb24gaXMgdHJ1ZSwgcGxhY2UgYSBtYXNrIG9mIGFsbCBvbmVzIGluIHRoZQogICByZXN1bHQsIG90aGVyd2lzZSBhIG1hc2sgb2YgemVyb3MuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZXFfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2NtcGVxICgoX192NHNmKV9fQSwoX192NHNmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGx0X3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBsdCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsZV9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wbGUgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3RfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2NtcGd0ICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGdlX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBnZSAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSAgX19tMTI4ICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5lcV9wcyAoX19tMTI4ICBfX0EsIF9fbTEyOCAgX19CKQp7CiAgX192NHNmIHRlbXAgPSAoX192NHNmICkgdmVjX2NtcGVxICgoX192NHNmKSBfX0EsIChfX3Y0c2YpX19CKTsKICByZXR1cm4gKChfX20xMjgpdmVjX25vciAodGVtcCwgdGVtcCkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmx0X3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBnZSAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBubGVfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKChfX20xMjgpdmVjX2NtcGd0ICgoX192NHNmKV9fQSwgKF9fdjRzZilfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5ndF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoKF9fbTEyOCl2ZWNfY21wbGUgKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmdlX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jbXBsdCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSAgX19tMTI4ICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG9yZF9wcyAoX19tMTI4ICBfX0EsIF9fbTEyOCAgX19CKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IGMsIGQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBmbG9hdF9leHBfbWFzayA9CiAgICB7IDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAsIDB4N2Y4MDAwMDAgfTsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2FicyAoKF9fdjRzZilfX0IpOwogIGMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfY21wZ3QgKGZsb2F0X2V4cF9tYXNrLCBhKTsKICBkID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChmbG9hdF9leHBfbWFzaywgYik7CiAgcmV0dXJuICgoX19tMTI4ICkgdmVjX2FuZCAoYywgZCkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wdW5vcmRfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYSwgYjsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYywgZDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IGZsb2F0X2V4cF9tYXNrID0KICAgIHsgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCB9OwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2FicyAoKF9fdjRzZilfX0EpOwogIGIgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfYWJzICgoX192NHNmKV9fQik7CiAgYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19jbXBndCAoYSwgZmxvYXRfZXhwX21hc2spOwogIGQgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfY21wZ3QgKGIsIGZsb2F0X2V4cF9tYXNrKTsKICByZXR1cm4gKChfX20xMjggKSB2ZWNfb3IgKGMsIGQpKTsKfQoKLyogUGVyZm9ybSBhIGNvbXBhcmlzb24gb24gdGhlIGxvd2VyIFNQRlAgdmFsdWVzIG9mIEEgYW5kIEIuICBJZiB0aGUKICAgY29tcGFyaXNvbiBpcyB0cnVlLCBwbGFjZSBhIG1hc2sgb2YgYWxsIG9uZXMgaW4gdGhlIHJlc3VsdCwgb3RoZXJ3aXNlIGEKICAgbWFzayBvZiB6ZXJvcy4gIFRoZSB1cHBlciB0aHJlZSBTUEZQIHZhbHVlcyBhcmUgcGFzc2VkIHRocm91Z2ggZnJvbSBBLiAgKi8KZXh0ZXJuIF9faW5saW5lICBfX20xMjggIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZXFfc3MgKF9fbTEyOCAgX19BLCBfX20xMjggIF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBlcShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsdF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBsdChhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBsZShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBndF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBndChhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBnZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBnZShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZXFfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZXEoYSwgYik7CiAgYyA9IHZlY19ub3IgKGMsIGMpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKChfX20xMjgpdmVjX3NlbCAoKF9fdjRzZilfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5sdF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgdG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBnZShhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBubGVfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IG1hc2sgPQogICAgeyAweGZmZmZmZmZmLCAwLCAwLCAwIH07CiAgX192NHNmIGEsIGIsIGM7CiAgLyogUG93ZXJJU0EgVk1YIGRvZXMgbm90IGFsbG93IHBhcnRpYWwgKGZvciBqdXN0IGVsZW1lbnQgMCkKICAgKiByZXN1bHRzLiBTbyB0byBpbnN1cmUgd2UgZG9uJ3QgZ2VuZXJhdGUgc3B1cmlvdXMgZXhjZXB0aW9ucwogICAqIChmcm9tIHRoZSB1cHBlciBlbGVtZW50cykgd2Ugc3BsYXQgdGhlIGxvd2VyIGZsb2F0CiAgICogYmVmb3JlIHdlIHRvIHRoZSBvcGVyYXRpb24uICovCiAgYSA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19BLCAwKTsKICBiID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0IsIDApOwogIGMgPSAoX192NHNmKSB2ZWNfY21wZ3QoYSwgYik7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmd0X3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBtYXNrID0KICAgIHsgMHhmZmZmZmZmZiwgMCwgMCwgMCB9OwogIF9fdjRzZiBhLCBiLCBjOwogIC8qIFBvd2VySVNBIFZNWCBkb2VzIG5vdCBhbGxvdyBwYXJ0aWFsIChmb3IganVzdCBlbGVtZW50IDApCiAgICogcmVzdWx0cy4gU28gdG8gaW5zdXJlIHdlIGRvbid0IGdlbmVyYXRlIHNwdXJpb3VzIGV4Y2VwdGlvbnMKICAgKiAoZnJvbSB0aGUgdXBwZXIgZWxlbWVudHMpIHdlIHNwbGF0IHRoZSBsb3dlciBmbG9hdAogICAqIGJlZm9yZSB3ZSB0byB0aGUgb3BlcmF0aW9uLiAqLwogIGEgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQSwgMCk7CiAgYiA9IHZlY19zcGxhdCAoKF9fdjRzZikgX19CLCAwKTsKICBjID0gKF9fdjRzZikgdmVjX2NtcGxlKGEsIGIpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKChfX20xMjgpdmVjX3NlbCAoKF9fdjRzZilfX0EsIGMsIG1hc2spKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5nZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKICBfX3Y0c2YgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWTVggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgZWxlbWVudCAwKQogICAqIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICogKGZyb20gdGhlIHVwcGVyIGVsZW1lbnRzKSB3ZSBzcGxhdCB0aGUgbG93ZXIgZmxvYXQKICAgKiBiZWZvcmUgd2UgZG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0ICgoX192NHNmKSBfX0EsIDApOwogIGIgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpIF9fQiwgMCk7CiAgYyA9IChfX3Y0c2YpIHZlY19jbXBsdChhLCBiKTsKICAvKiBUaGVuIHdlIG1lcmdlIHRoZSBsb3dlciBmbG9hdCByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgKiBmbG9hdCBlbGVtZW50cyBmcm9tIF9fQS4gICovCiAgcmV0dXJuICgoX19tMTI4KXZlY19zZWwgKChfX3Y0c2YpX19BLCBjLCBtYXNrKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBvcmRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYSwgYjsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYywgZDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IGZsb2F0X2V4cF9tYXNrID0KICAgIHsgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCB9OwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2FicyAoKF9fdjRzZilfX0IpOwogIGMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfY21wZ3QgKGZsb2F0X2V4cF9tYXNrLCBhKTsKICBkID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChmbG9hdF9leHBfbWFzaywgYik7CiAgYyA9IHZlY19hbmQgKGMsIGQpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGZsb2F0IHJlc3VsdCB3aXRoIHRoZSBvcmlnaW5hbCB1cHBlcgogICAqIGZsb2F0IGVsZW1lbnRzIGZyb20gX19BLiAgKi8KICByZXR1cm4gKChfX20xMjgpdmVjX3NlbCAoKF9fdjRzZilfX0EsIChfX3Y0c2YpYywgbWFzaykpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wdW5vcmRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYSwgYjsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgYywgZDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IGZsb2F0X2V4cF9tYXNrID0KICAgIHsgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCwgMHg3ZjgwMDAwMCB9OwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgbWFzayA9CiAgICB7IDB4ZmZmZmZmZmYsIDAsIDAsIDAgfTsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19hYnMgKChfX3Y0c2YpX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2FicyAoKF9fdjRzZilfX0IpOwogIGMgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfY21wZ3QgKGEsIGZsb2F0X2V4cF9tYXNrKTsKICBkID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkgdmVjX2NtcGd0IChiLCBmbG9hdF9leHBfbWFzayk7CiAgYyA9IHZlY19vciAoYywgZCk7CiAgLyogVGhlbiB3ZSBtZXJnZSB0aGUgbG93ZXIgZmxvYXQgcmVzdWx0IHdpdGggdGhlIG9yaWdpbmFsIHVwcGVyCiAgICogZmxvYXQgZWxlbWVudHMgZnJvbSBfX0EuICAqLwogIHJldHVybiAoKF9fbTEyOCl2ZWNfc2VsICgoX192NHNmKV9fQSwgKF9fdjRzZiljLCBtYXNrKSk7Cn0KCi8qIENvbXBhcmUgdGhlIGxvd2VyIFNQRlAgdmFsdWVzIG9mIEEgYW5kIEIgYW5kIHJldHVybiAxIGlmIHRydWUKICAgYW5kIDAgaWYgZmFsc2UuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWVxX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWlsdF9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdIDwgX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWlsZV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdIDw9IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pZ3Rfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA+IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pZ2Vfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA+PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taW5lcV9zcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19BWzBdICE9IF9fQlswXSk7Cn0KCi8qIEZJWE1FCiAqIFRoZSBfX21tX3Vjb21pPz9fc3MgaW1wbGVtZW50YXRpb25zIGJlbG93IGFyZSBleGFjdGx5IHRoZSBzYW1lIGFzCiAqIF9fbW1fY29taT8/X3NzIGJlY2F1c2UgR0NDIGZvciBQb3dlclBDIG9ubHkgZ2VuZXJhdGVzIHVub3JkZXJlZAogKiBjb21wYXJlcyAoc2NhbGFyIGFuZCB2ZWN0b3IpLgogKiBUZWNobmljYWxseSBfX21tX2NvbWllcV9zcyBldCBhbCBzaG91bGQgYmUgdXNpbmcgdGhlIG9yZGVyZWQKICogY29tcGFyZSBhbmQgc2lnbmFsIGZvciBRTmFOcy4KICogVGhlIF9fbW1fdWNvbWllcV9zZCBldCBhbGwgc2hvdWxkIGJlIE9LLCBhcyBpcy4KICovCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWVxX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pbHRfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA8IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWxlX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPD0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pZ3Rfc3MgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA+IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWdlX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPj0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pbmVxX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gIT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGZsb2F0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c3NfZjMyIChfX20xMjggX19BKQp7CiAgcmV0dXJuICgoX192NHNmKV9fQSlbMF07Cn0KCi8qIENvbnZlcnQgdGhlIGxvd2VyIFNQRlAgdmFsdWUgdG8gYSAzMi1iaXQgaW50ZWdlciBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQKICAgcm91bmRpbmcgbW9kZS4gICovCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzc19zaTMyIChfX20xMjggX19BKQp7CiAgX19tNjQgcmVzID0gMDsKI2lmZGVmIF9BUkNIX1BXUjgKICBkb3VibGUgZHRtcDsKICBfX2FzbV9fKAojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgInh4c2xkd2kgJXgwLCV4MCwleDAsMztcbiIKI2VuZGlmCiAgICAgICJ4c2N2c3BkcCAleDIsJXgwO1xuIgogICAgICAiZmN0aXcgICUyLCUyO1xuIgogICAgICAibWZ2c3JkICAlMSwleDI7XG4iCiAgICAgIDogIit3YSIgKF9fQSksCiAgICAgICAgIj1yIiAocmVzKSwKICAgICAgICAiPWYiIChkdG1wKQogICAgICA6ICk7CiNlbHNlCiAgcmVzID0gX19idWlsdGluX3JpbnQoX19BWzBdKTsKI2VuZGlmCiAgcmV0dXJuIChyZXMpOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0X3NzMnNpIChfX20xMjggX19BKQp7CiAgcmV0dXJuIF9tbV9jdnRzc19zaTMyIChfX0EpOwp9CgovKiBDb252ZXJ0IHRoZSBsb3dlciBTUEZQIHZhbHVlIHRvIGEgMzItYml0IGludGVnZXIgYWNjb3JkaW5nIHRvIHRoZQogICBjdXJyZW50IHJvdW5kaW5nIG1vZGUuICAqLwoKLyogSW50ZWwgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNzX3NpNjQgKF9fbTEyOCBfX0EpCnsKICBfX202NCByZXMgPSAwOwojaWZkZWYgX0FSQ0hfUFdSOAogIGRvdWJsZSBkdG1wOwogIF9fYXNtX18oCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAieHhzbGR3aSAleDAsJXgwLCV4MCwzO1xuIgojZW5kaWYKICAgICAgInhzY3ZzcGRwICV4MiwleDA7XG4iCiAgICAgICJmY3RpZCAgJTIsJTI7XG4iCiAgICAgICJtZnZzcmQgICUxLCV4MjtcbiIKICAgICAgOiAiK3dhIiAoX19BKSwKICAgICAgICAiPXIiIChyZXMpLAogICAgICAgICI9ZiIgKGR0bXApCiAgICAgIDogKTsKI2Vsc2UKICByZXMgPSBfX2J1aWx0aW5fbGxyaW50KF9fQVswXSk7CiNlbmRpZgogIHJldHVybiAocmVzKTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzc19zaTY0eCAoX19tMTI4IF9fQSkKewogIHJldHVybiBfbW1fY3Z0c3Nfc2k2NCAoKF9fdjRzZikgX19BKTsKfQoKLyogQ29uc3RhbnRzIGZvciB1c2Ugd2l0aCBfbW1fcHJlZmV0Y2guICAqLwplbnVtIF9tbV9oaW50CnsKICAvKiBfTU1fSElOVF9FVCBpcyBfTU1fSElOVF9UIHdpdGggc2V0IDNyZCBiaXQuICAqLwogIF9NTV9ISU5UX0VUMCA9IDcsCiAgX01NX0hJTlRfRVQxID0gNiwKICBfTU1fSElOVF9UMCA9IDMsCiAgX01NX0hJTlRfVDEgPSAyLAogIF9NTV9ISU5UX1QyID0gMSwKICBfTU1fSElOVF9OVEEgPSAwCn07CgovKiBMb2FkcyBvbmUgY2FjaGUgbGluZSBmcm9tIGFkZHJlc3MgUCB0byBhIGxvY2F0aW9uICJjbG9zZXIiIHRvIHRoZQogICBwcm9jZXNzb3IuICBUaGUgc2VsZWN0b3IgSSBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgcHJlZmV0Y2ggb3BlcmF0aW9uLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9wcmVmZXRjaCAoY29uc3Qgdm9pZCAqX19QLCBlbnVtIF9tbV9oaW50IF9fSSkKewogIC8qIEN1cnJlbnQgUG93ZXJQQyB3aWxsIGlnbm9yZXMgdGhlIGhpbnQgcGFyYW1ldGVycy4gICovCiAgX19idWlsdGluX3ByZWZldGNoIChfX1ApOwp9CgovKiBDb252ZXJ0IHRoZSB0d28gbG93ZXIgU1BGUCB2YWx1ZXMgdG8gMzItYml0IGludGVnZXJzIGFjY29yZGluZyB0byB0aGUKICAgY3VycmVudCByb3VuZGluZyBtb2RlLiAgUmV0dXJuIHRoZSBpbnRlZ2VycyBpbiBwYWNrZWQgZm9ybS4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBzX3BpMzIgKF9fbTEyOCBfX0EpCnsKICAvKiBTcGxhdCB0d28gbG93ZXIgU1BGUCB2YWx1ZXMgdG8gYm90aCBoYWx2ZXMuICAqLwogIF9fdjRzZiB0ZW1wLCByb3VuZGVkOwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CgogIC8qIFNwbGF0IHR3byBsb3dlciBTUEZQIHZhbHVlcyB0byBib3RoIGhhbHZlcy4gICovCiAgdGVtcCA9IChfX3Y0c2YpIHZlY19zcGxhdCAoKF9fdmVjdG9yIGxvbmcgbG9uZylfX0EsIDApOwogIHJvdW5kZWQgPSB2ZWNfcmludCh0ZW1wKTsKICByZXN1bHQgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB2ZWNfY3RzIChyb3VuZGVkLCAwKTsKCiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIHJlc3VsdClbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dF9wczJwaSAoX19tMTI4IF9fQSkKewogIHJldHVybiBfbW1fY3Z0cHNfcGkzMiAoX19BKTsKfQoKLyogVHJ1bmNhdGUgdGhlIGxvd2VyIFNQRlAgdmFsdWUgdG8gYSAzMi1iaXQgaW50ZWdlci4gICovCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0c3Nfc2kzMiAoX19tMTI4IF9fQSkKewogIC8qIEV4dHJhY3QgdGhlIGxvd2VyIGZsb2F0IGVsZW1lbnQuICAqLwogIGZsb2F0IHRlbXAgPSBfX0FbMF07CiAgLyogdHJ1bmNhdGUgdG8gMzItYml0IGludGVnZXIgYW5kIHJldHVybi4gICovCiAgcmV0dXJuIHRlbXA7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0X3NzMnNpIChfX20xMjggX19BKQp7CiAgcmV0dXJuIF9tbV9jdnR0c3Nfc2kzMiAoX19BKTsKfQoKLyogSW50ZWwgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHRzc19zaTY0IChfX20xMjggX19BKQp7CiAgLyogRXh0cmFjdCB0aGUgbG93ZXIgZmxvYXQgZWxlbWVudC4gICovCiAgZmxvYXQgdGVtcCA9IF9fQVswXTsKICAvKiB0cnVuY2F0ZSB0byAzMi1iaXQgaW50ZWdlciBhbmQgcmV0dXJuLiAgKi8KICByZXR1cm4gdGVtcDsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0c3Nfc2k2NHggKF9fbTEyOCBfX0EpCnsKICAvKiBFeHRyYWN0IHRoZSBsb3dlciBmbG9hdCBlbGVtZW50LiAgKi8KICBmbG9hdCB0ZW1wID0gX19BWzBdOwogIC8qIHRydW5jYXRlIHRvIDMyLWJpdCBpbnRlZ2VyIGFuZCByZXR1cm4uICAqLwogIHJldHVybiB0ZW1wOwp9CgovKiBUcnVuY2F0ZSB0aGUgdHdvIGxvd2VyIFNQRlAgdmFsdWVzIHRvIDMyLWJpdCBpbnRlZ2Vycy4gIFJldHVybiB0aGUKICAgaW50ZWdlcnMgaW4gcGFja2VkIGZvcm0uICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0cHNfcGkzMiAoX19tMTI4IF9fQSkKewogIF9fdjRzZiB0ZW1wOwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CgogIC8qIFNwbGF0IHR3byBsb3dlciBTUEZQIHZhbHVlcyB0byBib3RoIGhhbHZlcy4gICovCiAgdGVtcCA9IChfX3Y0c2YpIHZlY19zcGxhdCAoKF9fdmVjdG9yIGxvbmcgbG9uZylfX0EsIDApOwogIHJlc3VsdCA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIHZlY19jdHMgKHRlbXAsIDApOwoKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcmVzdWx0KVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dF9wczJwaSAoX19tMTI4IF9fQSkKewogIHJldHVybiBfbW1fY3Z0dHBzX3BpMzIgKF9fQSk7Cn0KCi8qIENvbnZlcnQgQiB0byBhIFNQRlAgdmFsdWUgYW5kIGluc2VydCBpdCBhcyBlbGVtZW50IHplcm8gaW4gQS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTMyX3NzIChfX20xMjggX19BLCBpbnQgX19CKQp7CiAgZmxvYXQgdGVtcCA9IF9fQjsKICBfX0FbMF0gPSB0ZW1wOwoKICByZXR1cm4gX19BOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0X3NpMnNzIChfX20xMjggX19BLCBpbnQgX19CKQp7CiAgcmV0dXJuIF9tbV9jdnRzaTMyX3NzIChfX0EsIF9fQik7Cn0KCi8qIENvbnZlcnQgQiB0byBhIFNQRlAgdmFsdWUgYW5kIGluc2VydCBpdCBhcyBlbGVtZW50IHplcm8gaW4gQS4gICovCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTY0X3NzIChfX20xMjggX19BLCBsb25nIGxvbmcgX19CKQp7CiAgZmxvYXQgdGVtcCA9IF9fQjsKICBfX0FbMF0gPSB0ZW1wOwoKICByZXR1cm4gX19BOwp9CgovKiBNaWNyb3NvZnQgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpNjR4X3NzIChfX20xMjggX19BLCBsb25nIGxvbmcgX19CKQp7CiAgcmV0dXJuIF9tbV9jdnRzaTY0X3NzIChfX0EsIF9fQik7Cn0KCi8qIENvbnZlcnQgdGhlIHR3byAzMi1iaXQgdmFsdWVzIGluIEIgdG8gU1BGUCBmb3JtIGFuZCBpbnNlcnQgdGhlbQogICBhcyB0aGUgdHdvIGxvd2VyIGVsZW1lbnRzIGluIEEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cGkzMl9wcyAoX19tMTI4ICAgICAgICBfX0EsIF9fbTY0ICAgICAgICBfX0IpCnsKICBfX3ZlY3RvciBzaWduZWQgaW50IHZtMTsKICBfX3ZlY3RvciBmbG9hdCB2ZjE7CgogIHZtMSA9IChfX3ZlY3RvciBzaWduZWQgaW50KSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7X19CLCBfX0J9OwogIHZmMSA9IChfX3ZlY3RvciBmbG9hdCkgdmVjX2N0ZiAodm0xLCAwKTsKCiAgcmV0dXJuICgoX19tMTI4KSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQogICAgeyAoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyl2ZjEpIFswXSwKCSgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQSkgWzFdfSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRfcGkycHMgKF9fbTEyOCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fY3Z0cGkzMl9wcyAoX19BLCBfX0IpOwp9CgovKiBDb252ZXJ0IHRoZSBmb3VyIHNpZ25lZCAxNi1iaXQgdmFsdWVzIGluIEEgdG8gU1BGUCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBpMTZfcHMgKF9fbTY0IF9fQSkKewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCB2czg7CiAgX192ZWN0b3Igc2lnbmVkIGludCB2aTQ7CiAgX192ZWN0b3IgZmxvYXQgdmYxOwoKICB2czggPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IF9fQSwgX19BIH07CiAgdmk0ID0gdmVjX3Z1cGtsc2ggKHZzOCk7CiAgdmYxID0gKF9fdmVjdG9yIGZsb2F0KSB2ZWNfY3RmICh2aTQsIDApOwoKICByZXR1cm4gKF9fbTEyOCkgdmYxOwp9CgovKiBDb252ZXJ0IHRoZSBmb3VyIHVuc2lnbmVkIDE2LWJpdCB2YWx1ZXMgaW4gQSB0byBTUEZQIGZvcm0uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cHUxNl9wcyAoX19tNjQgX19BKQp7CiAgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgemVybyA9CiAgICB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCB2czg7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IHZpNDsKICBfX3ZlY3RvciBmbG9hdCB2ZjE7CgogIHZzOCA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBfX0EsIF9fQSB9OwogIHZpNCA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpIHZlY19tZXJnZWwKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodnM4LCB6ZXJvKTsKI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJvLCB2czgpOwojZW5kaWYKICB2ZjEgPSAoX192ZWN0b3IgZmxvYXQpIHZlY19jdGYgKHZpNCwgMCk7CgogIHJldHVybiAoX19tMTI4KSB2ZjE7Cn0KCi8qIENvbnZlcnQgdGhlIGxvdyBmb3VyIHNpZ25lZCA4LWJpdCB2YWx1ZXMgaW4gQSB0byBTUEZQIGZvcm0uICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cGk4X3BzIChfX202NCBfX0EpCnsKICBfX3ZlY3RvciBzaWduZWQgY2hhciB2YzE2OwogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCB2czg7CiAgX192ZWN0b3Igc2lnbmVkIGludCB2aTQ7CiAgX192ZWN0b3IgZmxvYXQgdmYxOwoKICB2YzE2ID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IF9fQSwgX19BIH07CiAgdnM4ID0gdmVjX3Z1cGtoc2IgKHZjMTYpOwogIHZpNCA9IHZlY192dXBraHNoICh2czgpOwogIHZmMSA9IChfX3ZlY3RvciBmbG9hdCkgdmVjX2N0ZiAodmk0LCAwKTsKCiAgcmV0dXJuIChfX20xMjgpIHZmMTsKfQoKLyogQ29udmVydCB0aGUgbG93IGZvdXIgdW5zaWduZWQgOC1iaXQgdmFsdWVzIGluIEEgdG8gU1BGUCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lICBfX20xMjggIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQoKX21tX2N2dHB1OF9wcyAoX19tNjQgIF9fQSkKewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgemVybyA9CiAgICB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIHZjMTY7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgdnM4OwogIF9fdmVjdG9yIHVuc2lnbmVkIGludCB2aTQ7CiAgX192ZWN0b3IgZmxvYXQgdmYxOwoKICB2YzE2ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIHsgX19BLCBfX0EgfTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdnM4ID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSB2ZWNfbWVyZ2VsICh2YzE2LCB6ZXJvKTsKICB2aTQgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfbWVyZ2VoICh2czgsCgkJCQkJICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkgemVybyk7CiNlbHNlCiAgdnM4ID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSB2ZWNfbWVyZ2VsICh6ZXJvLCB2YzE2KTsKICB2aTQgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB2ZWNfbWVyZ2VoICgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpIHplcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnM4KTsKI2VuZGlmCiAgdmYxID0gKF9fdmVjdG9yIGZsb2F0KSB2ZWNfY3RmICh2aTQsIDApOwoKICByZXR1cm4gKF9fbTEyOCkgdmYxOwp9CgovKiBDb252ZXJ0IHRoZSBmb3VyIHNpZ25lZCAzMi1iaXQgdmFsdWVzIGluIEEgYW5kIEIgdG8gU1BGUCBmb3JtLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBpMzJ4Ml9wcyAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3ZlY3RvciBzaWduZWQgaW50IHZpNDsKICBfX3ZlY3RvciBmbG9hdCB2ZjQ7CgogIHZpNCA9IChfX3ZlY3RvciBzaWduZWQgaW50KSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB7IF9fQSwgX19CIH07CiAgdmY0ID0gKF9fdmVjdG9yIGZsb2F0KSB2ZWNfY3RmICh2aTQsIDApOwogIHJldHVybiAoX19tMTI4KSB2ZjQ7Cn0KCi8qIENvbnZlcnQgdGhlIGZvdXIgU1BGUCB2YWx1ZXMgaW4gQSB0byBmb3VyIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwc19waTE2IChfX20xMjggX19BKQp7CiAgX192NHNmIHJvdW5kZWQ7CiAgX192ZWN0b3Igc2lnbmVkIGludCB0ZW1wOwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CgogIHJvdW5kZWQgPSB2ZWNfcmludChfX0EpOwogIHRlbXAgPSB2ZWNfY3RzIChyb3VuZGVkLCAwKTsKICByZXN1bHQgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKSB2ZWNfcGFjayAodGVtcCwgdGVtcCk7CgogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByZXN1bHQpWzBdOwp9CgovKiBDb252ZXJ0IHRoZSBmb3VyIFNQRlAgdmFsdWVzIGluIEEgdG8gZm91ciBzaWduZWQgOC1iaXQgaW50ZWdlcnMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwc19waTggKF9fbTEyOCBfX0EpCnsKICBfX3Y0c2Ygcm91bmRlZDsKICBfX3ZlY3RvciBzaWduZWQgaW50IHRtcF9pOwogIHN0YXRpYyBjb25zdCBfX3ZlY3RvciBzaWduZWQgaW50IHplcm8gPSB7MCwgMCwgMCwgMH07CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IHRtcF9zOwogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIHJlc192OwoKICByb3VuZGVkID0gdmVjX3JpbnQoX19BKTsKICB0bXBfaSA9IHZlY19jdHMgKHJvdW5kZWQsIDApOwogIHRtcF9zID0gdmVjX3BhY2sgKHRtcF9pLCB6ZXJvKTsKICByZXNfdiA9IHZlY19wYWNrICh0bXBfcywgdG1wX3MpOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByZXNfdilbMF07Cn0KCi8qIFNlbGVjdHMgZm91ciBzcGVjaWZpYyBTUEZQIHZhbHVlcyBmcm9tIEEgYW5kIEIgYmFzZWQgb24gTUFTSy4gICovCmV4dGVybiBfX2lubGluZSAgX19tMTI4ICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKCl9tbV9zaHVmZmxlX3BzIChfX20xMjggIF9fQSwgX19tMTI4ICBfX0IsIGludCBjb25zdCBfX21hc2spCnsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfMTAgPSBfX21hc2sgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8zMiA9IChfX21hc2sgPj4gMikgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl81NCA9IChfX21hc2sgPj4gNCkgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl83NiA9IChfX21hc2sgPj4gNikgJiAweDAzOwogIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgcGVybXV0ZV9zZWxlY3RvcnNbNF0gPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgMHgwMzAyMDEwMCwgMHgwNzA2MDUwNCwgMHgwQjBBMDkwOCwgMHgwRjBFMEQwQwojZWxzZQogICAgICAweDAwMDEwMjAzLCAweDA0MDUwNjA3LCAweDA4MDkwQTBCLCAweDBDMEQwRTBGCiNlbmRpZgogICAgfTsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgdDsKCiAgdFswXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfMTBdOwogIHRbMV0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzMyXTsKICB0WzJdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl81NF0gKyAweDEwMTAxMDEwOwogIHRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzc2XSArIDB4MTAxMDEwMTA7CiAgcmV0dXJuIHZlY19wZXJtICgoX192NHNmKSBfX0EsIChfX3Y0c2YpX19CLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil0KTsKfQoKLyogU2VsZWN0cyBhbmQgaW50ZXJsZWF2ZXMgdGhlIHVwcGVyIHR3byBTUEZQIHZhbHVlcyBmcm9tIEEgYW5kIEIuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNraGlfcHMgKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgdmVjX3ZtcmdsdyAoKF9fdjRzZikgX19BLCAoX192NHNmKV9fQik7Cn0KCi8qIFNlbGVjdHMgYW5kIGludGVybGVhdmVzIHRoZSBsb3dlciB0d28gU1BGUCB2YWx1ZXMgZnJvbSBBIGFuZCBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2xvX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIHZlY192bXJnaHcgKChfX3Y0c2YpIF9fQSwgKF9fdjRzZilfX0IpOwp9CgovKiBTZXRzIHRoZSB1cHBlciB0d28gU1BGUCB2YWx1ZXMgd2l0aCA2NC1iaXRzIG9mIGRhdGEgbG9hZGVkIGZyb20gUDsKICAgdGhlIGxvd2VyIHR3byB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGZyb20gQS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkaF9waSAoX19tMTI4IF9fQSwgX19tNjQgY29uc3QgKl9fUCkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQTsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19wID0gdmVjX3NwbGF0cygqX19QKTsKICBfX2EgWzFdID0gX19wIFsxXTsKCiAgcmV0dXJuIChfX20xMjgpX19hOwp9CgovKiBTdG9yZXMgdGhlIHVwcGVyIHR3byBTUEZQIHZhbHVlcyBvZiBBIGludG8gUC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVoX3BpIChfX202NCAqX19QLCBfX20xMjggX19BKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIF9fQTsKCiAgKl9fUCA9IF9fYVsxXTsKfQoKLyogTW92ZXMgdGhlIHVwcGVyIHR3byB2YWx1ZXMgb2YgQiBpbnRvIHRoZSBsb3dlciB0d28gdmFsdWVzIG9mIEEuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZWhsX3BzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIHZlY19tZXJnZWwgKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19CLAoJCQkgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQSk7Cn0KCi8qIE1vdmVzIHRoZSBsb3dlciB0d28gdmFsdWVzIG9mIEIgaW50byB0aGUgdXBwZXIgdHdvIHZhbHVlcyBvZiBBLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVsaF9wcyAoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSB2ZWNfbWVyZ2VoICgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQSwKCQkJICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX0IpOwp9CgovKiBTZXRzIHRoZSBsb3dlciB0d28gU1BGUCB2YWx1ZXMgd2l0aCA2NC1iaXRzIG9mIGRhdGEgbG9hZGVkIGZyb20gUDsKICAgdGhlIHVwcGVyIHR3byB2YWx1ZXMgYXJlIHBhc3NlZCB0aHJvdWdoIGZyb20gQS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkbF9waSAoX19tMTI4IF9fQSwgX19tNjQgY29uc3QgKl9fUCkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fQTsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19wID0gdmVjX3NwbGF0cygqX19QKTsKICBfX2EgWzBdID0gX19wIFswXTsKCiAgcmV0dXJuIChfX20xMjgpX19hOwp9CgovKiBTdG9yZXMgdGhlIGxvd2VyIHR3byBTUEZQIHZhbHVlcyBvZiBBIGludG8gUC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVsX3BpIChfX202NCAqX19QLCBfX20xMjggX19BKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIF9fQTsKCiAgKl9fUCA9IF9fYVswXTsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKLyogSW50cmluc2ljIGZ1bmN0aW9ucyB0aGF0IHJlcXVpcmUgUG93ZXJJU0EgMi4wNyBtaW5pbXVtLiAgKi8KCi8qIENyZWF0ZXMgYSA0LWJpdCBtYXNrIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgU1BGUCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZW1hc2tfcHMgKF9fbTEyOCAgX19BKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IHBlcm1fbWFzayA9CiAgICB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJMHgwMDIwNDA2MCwgMHg4MDgwODA4MCwgMHg4MDgwODA4MCwgMHg4MDgwODA4MAojZWxzZQogICAgICAweDgwODA4MDgwLCAweDgwODA4MDgwLCAweDgwODA4MDgwLCAweDAwMjA0MDYwCiNlbmRpZgogICAgfTsKCiAgcmVzdWx0ID0gKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpCgkgICAgdmVjX3ZicGVybXEgKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBfX0EsCgkJCSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgcGVybV9tYXNrKSk7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByZXR1cm4gcmVzdWx0WzFdOwojZWxzZQogIHJldHVybiByZXN1bHRbMF07CiNlbmRpZgp9CiNlbmRpZiAvKiBfQVJDSF9QV1I4ICovCgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBhbGwgZm91ciBlbGVtZW50cyBlcXVhbCB0byAqUC4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkMV9wcyAoZmxvYXQgY29uc3QgKl9fUCkKewogIHJldHVybiBfbW1fc2V0MV9wcyAoKl9fUCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkX3BzMSAoZmxvYXQgY29uc3QgKl9fUCkKewogIHJldHVybiBfbW1fbG9hZDFfcHMgKF9fUCk7Cn0KCi8qIEV4dHJhY3RzIG9uZSBvZiB0aGUgZm91ciB3b3JkcyBvZiBBLiAgVGhlIHNlbGVjdG9yIE4gbXVzdCBiZSBpbW1lZGlhdGUuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fZXh0cmFjdF9waTE2IChfX202NCBjb25zdCBfX0EsIGludCBjb25zdCBfX04pCnsKICB1bnNpZ25lZCBpbnQgc2hpZnRyID0gX19OICYgMzsKI2lmZGVmIF9fQklHX0VORElBTl9fCiAgc2hpZnRyID0gMyAtIHNoaWZ0cjsKI2VuZGlmCgogIHJldHVybiAoKF9fQSA+PiAoc2hpZnRyICogMTYpKSAmIDB4ZmZmZik7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BleHRydyAoX19tNjQgY29uc3QgX19BLCBpbnQgY29uc3QgX19OKQp7CiAgcmV0dXJuIF9tbV9leHRyYWN0X3BpMTYgKF9fQSwgX19OKTsKfQoKLyogSW5zZXJ0cyB3b3JkIEQgaW50byBvbmUgb2YgZm91ciB3b3JkcyBvZiBBLiAgVGhlIHNlbGVjdG9yIE4gbXVzdCBiZQogICBpbW1lZGlhdGUuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9pbnNlcnRfcGkxNiAoX19tNjQgY29uc3QgX19BLCBpbnQgY29uc3QgX19ELCBpbnQgY29uc3QgX19OKQp7CiAgY29uc3QgaW50IHNoaWZ0bCA9IChfX04gJiAzKSAqIDE2OwogIGNvbnN0IF9fbTY0IHNoaWZ0RCA9IChjb25zdCBfX202NCkgX19EIDw8IHNoaWZ0bDsKICBjb25zdCBfX202NCBtYXNrID0gMHhmZmZmVUwgPDwgc2hpZnRsOwogIF9fbTY0IHJlc3VsdCA9IChfX0EgJiAofm1hc2spKSB8IChzaGlmdEQgJiBtYXNrKTsKCiAgcmV0dXJuIChyZXN1bHQpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BpbnNydyAoX19tNjQgY29uc3QgX19BLCBpbnQgY29uc3QgX19ELCBpbnQgY29uc3QgX19OKQp7CiAgcmV0dXJuIF9tbV9pbnNlcnRfcGkxNiAoX19BLCBfX0QsIF9fTik7Cn0KCi8qIENvbXB1dGUgdGhlIGVsZW1lbnQtd2lzZSBtYXhpbXVtIG9mIHNpZ25lZCAxNi1iaXQgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQoKX21tX21heF9waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBhLCBiLCByOwogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBjOwoKICBhID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzIChfX0EpOwogIGIgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQik7CiAgYyA9IChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpdmVjX2NtcGd0IChhLCBiKTsKICByID0gdmVjX3NlbCAoYiwgYSwgYyk7CiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIHIpWzBdOwojZWxzZQogIF9fbTY0X3VuaW9uIG0xLCBtMiwgcmVzOwoKICBtMS5hc19tNjQgPSBfX0E7CiAgbTIuYXNfbTY0ID0gX19COwoKICByZXMuYXNfc2hvcnRbMF0gPQogICAgICAobTEuYXNfc2hvcnRbMF0gPiBtMi5hc19zaG9ydFswXSkgPyBtMS5hc19zaG9ydFswXSA6IG0yLmFzX3Nob3J0WzBdOwogIHJlcy5hc19zaG9ydFsxXSA9CiAgICAgIChtMS5hc19zaG9ydFsxXSA+IG0yLmFzX3Nob3J0WzFdKSA/IG0xLmFzX3Nob3J0WzFdIDogbTIuYXNfc2hvcnRbMV07CiAgcmVzLmFzX3Nob3J0WzJdID0KICAgICAgKG0xLmFzX3Nob3J0WzJdID4gbTIuYXNfc2hvcnRbMl0pID8gbTEuYXNfc2hvcnRbMl0gOiBtMi5hc19zaG9ydFsyXTsKICByZXMuYXNfc2hvcnRbM10gPQogICAgICAobTEuYXNfc2hvcnRbM10gPiBtMi5hc19zaG9ydFszXSkgPyBtMS5hc19zaG9ydFszXSA6IG0yLmFzX3Nob3J0WzNdOwoKICByZXR1cm4gKF9fbTY0KSByZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wbWF4c3cgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXhfcGkxNiAoX19BLCBfX0IpOwp9CgovKiBDb21wdXRlIHRoZSBlbGVtZW50LXdpc2UgbWF4aW11bSBvZiB1bnNpZ25lZCA4LWJpdCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tYXhfcHU4IChfX202NCBfX0EsIF9fbTY0IF9fQikKewojaWYgX0FSQ0hfUFdSOAogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgYSwgYiwgcjsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBjOwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpdmVjX3NwbGF0cyAoX19CKTsKICBjID0gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKXZlY19jbXBndCAoYSwgYik7CiAgciA9IHZlY19zZWwgKGIsIGEsIGMpOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKICBsb25nIGk7CgogIG0xLmFzX202NCA9IF9fQTsKICBtMi5hc19tNjQgPSBfX0I7CgoKICBmb3IgKGkgPSAwOyBpIDwgODsgaSsrKQogIHJlcy5hc19jaGFyW2ldID0KICAgICAgKCh1bnNpZ25lZCBjaGFyKSBtMS5hc19jaGFyW2ldID4gKHVuc2lnbmVkIGNoYXIpIG0yLmFzX2NoYXJbaV0pID8KCSAgbTEuYXNfY2hhcltpXSA6IG0yLmFzX2NoYXJbaV07CgogIHJldHVybiAoX19tNjQpIHJlcy5hc19tNjQ7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BtYXh1YiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gX21tX21heF9wdTggKF9fQSwgX19CKTsKfQoKLyogQ29tcHV0ZSB0aGUgZWxlbWVudC13aXNlIG1pbmltdW0gb2Ygc2lnbmVkIDE2LWJpdCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgYSwgYiwgcjsKICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgYzsKCiAgYSA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCl2ZWNfc3BsYXRzIChfX0IpOwogIGMgPSAoX192ZWN0b3IgX19ib29sIHNob3J0KXZlY19jbXBsdCAoYSwgYik7CiAgciA9IHZlY19zZWwgKGIsIGEsIGMpOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByKVswXTsKI2Vsc2UKICBfX202NF91bmlvbiBtMSwgbTIsIHJlczsKCiAgbTEuYXNfbTY0ID0gX19BOwogIG0yLmFzX202NCA9IF9fQjsKCiAgcmVzLmFzX3Nob3J0WzBdID0KICAgICAgKG0xLmFzX3Nob3J0WzBdIDwgbTIuYXNfc2hvcnRbMF0pID8gbTEuYXNfc2hvcnRbMF0gOiBtMi5hc19zaG9ydFswXTsKICByZXMuYXNfc2hvcnRbMV0gPQogICAgICAobTEuYXNfc2hvcnRbMV0gPCBtMi5hc19zaG9ydFsxXSkgPyBtMS5hc19zaG9ydFsxXSA6IG0yLmFzX3Nob3J0WzFdOwogIHJlcy5hc19zaG9ydFsyXSA9CiAgICAgIChtMS5hc19zaG9ydFsyXSA8IG0yLmFzX3Nob3J0WzJdKSA/IG0xLmFzX3Nob3J0WzJdIDogbTIuYXNfc2hvcnRbMl07CiAgcmVzLmFzX3Nob3J0WzNdID0KICAgICAgKG0xLmFzX3Nob3J0WzNdIDwgbTIuYXNfc2hvcnRbM10pID8gbTEuYXNfc2hvcnRbM10gOiBtMi5hc19zaG9ydFszXTsKCiAgcmV0dXJuIChfX202NCkgcmVzLmFzX202NDsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcG1pbnN3IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIHJldHVybiBfbW1fbWluX3BpMTYgKF9fQSwgX19CKTsKfQoKLyogQ29tcHV0ZSB0aGUgZWxlbWVudC13aXNlIG1pbmltdW0gb2YgdW5zaWduZWQgOC1iaXQgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWluX3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGIsIHI7CiAgX192ZWN0b3IgX19ib29sIGNoYXIgYzsKCiAgYSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMgKF9fQSk7CiAgYiA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXZlY19zcGxhdHMgKF9fQik7CiAgYyA9IChfX3ZlY3RvciBfX2Jvb2wgY2hhcil2ZWNfY21wbHQgKGEsIGIpOwogIHIgPSB2ZWNfc2VsIChiLCBhLCBjKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgcilbMF07CiNlbHNlCiAgX19tNjRfdW5pb24gbTEsIG0yLCByZXM7CiAgbG9uZyBpOwoKICBtMS5hc19tNjQgPSBfX0E7CiAgbTIuYXNfbTY0ID0gX19COwoKCiAgZm9yIChpID0gMDsgaSA8IDg7IGkrKykKICByZXMuYXNfY2hhcltpXSA9CiAgICAgICgodW5zaWduZWQgY2hhcikgbTEuYXNfY2hhcltpXSA8ICh1bnNpZ25lZCBjaGFyKSBtMi5hc19jaGFyW2ldKSA/CgkgIG0xLmFzX2NoYXJbaV0gOiBtMi5hc19jaGFyW2ldOwoKICByZXR1cm4gKF9fbTY0KSByZXMuYXNfbTY0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wbWludWIgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9taW5fcHU4IChfX0EsIF9fQik7Cn0KCi8qIENyZWF0ZSBhbiA4LWJpdCBtYXNrIG9mIHRoZSBzaWducyBvZiA4LWJpdCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZW1hc2tfcGk4IChfX202NCBfX0EpCnsKICB1bnNpZ25lZCBsb25nIGxvbmcgcCA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAgICAgICAgICAgICAgICAgICAgMHgwMDA4MTAxODIwMjgzMDM4VUw7IC8vIHBlcm11dGUgY29udHJvbCBmb3Igc2lnbiBiaXRzCiNlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICAweDM4MzAyODIwMTgxMDA4MDBVTDsgLy8gcGVybXV0ZSBjb250cm9sIGZvciBzaWduIGJpdHMKI2VuZGlmCiAgcmV0dXJuIF9fYnVpbHRpbl9icGVybWQgKHAsIF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3Btb3Ztc2tiIChfX202NCBfX0EpCnsKICByZXR1cm4gX21tX21vdmVtYXNrX3BpOCAoX19BKTsKfQoKLyogTXVsdGlwbHkgZm91ciB1bnNpZ25lZCAxNi1iaXQgdmFsdWVzIGluIEEgYnkgZm91ciB1bnNpZ25lZCAxNi1iaXQgdmFsdWVzCiAgIGluIEIgYW5kIHByb2R1Y2UgdGhlIGhpZ2ggMTYgYml0cyBvZiB0aGUgMzItYml0IHJlc3VsdHMuICAqLwpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxoaV9wdTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgYzsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgdzAsIHcxOwogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgeGZvcm0xID0gewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgICAgMHgwMiwgMHgwMywgMHgxMiwgMHgxMywgIDB4MDYsIDB4MDcsIDB4MTYsIDB4MTcsCiAgICAgIDB4MEEsIDB4MEIsIDB4MUEsIDB4MUIsICAweDBFLCAweDBGLCAweDFFLCAweDFGCiNlbHNlCiAgICAgIDB4MDAsIDB4MDEsIDB4MTAsIDB4MTEsICAweDA0LCAweDA1LCAweDE0LCAweDE1LAogICAgICAweDAwLCAweDAxLCAweDEwLCAweDExLCAgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNQojZW5kaWYKICAgIH07CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQik7CgogIHcwID0gdmVjX3ZtdWxldWggKGEsIGIpOwogIHcxID0gdmVjX3ZtdWxvdWggKGEsIGIpOwogIGMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdmVjX3Blcm0gKHcwLCB3MSwgeGZvcm0xKTsKCiAgcmV0dXJuIChfX202NCkgKChfX3ZlY3RvciBsb25nIGxvbmcpIGMpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tX3BtdWxodXcgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9tdWxoaV9wdTE2IChfX0EsIF9fQik7Cn0KCi8qIFJldHVybiBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmb3VyIDE2LWJpdCB2YWx1ZXMgaW4gQS4gIFRoZSBzZWxlY3RvcgogICBtdXN0IGJlIGFuIGltbWVkaWF0ZS4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVfcGkxNiAoX19tNjQgX19BLCBpbnQgY29uc3QgX19OKQp7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzEwID0gX19OICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfMzIgPSAoX19OID4+IDIpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfNTQgPSAoX19OID4+IDQpICYgMHgwMzsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfNzYgPSAoX19OID4+IDYpICYgMHgwMzsKICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgcGVybXV0ZV9zZWxlY3RvcnNbNF0gPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCSAgICAgIDB4MDkwOCwgMHgwQjBBLCAweDBEMEMsIDB4MEYwRQojZWxzZQoJICAgICAgMHgwNjA3LCAweDA0MDUsIDB4MDIwMywgMHgwMDAxCiNlbmRpZgogICAgfTsKICBfX202NF91bmlvbiB0OwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBhLCBwLCByOwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgdC5hc19zaG9ydFswXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfMTBdOwogIHQuYXNfc2hvcnRbMV0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzMyXTsKICB0LmFzX3Nob3J0WzJdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl81NF07CiAgdC5hc19zaG9ydFszXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNzZdOwojZWxzZQogIHQuYXNfc2hvcnRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzEwXTsKICB0LmFzX3Nob3J0WzJdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl8zMl07CiAgdC5hc19zaG9ydFsxXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNTRdOwogIHQuYXNfc2hvcnRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzc2XTsKI2VuZGlmCiAgcCA9IHZlY19zcGxhdHMgKHQuYXNfbTY0KTsKICBhID0gdmVjX3NwbGF0cyAoX19BKTsKICByID0gdmVjX3Blcm0gKGEsIGEsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXApOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSByKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wc2h1ZncgKF9fbTY0IF9fQSwgaW50IGNvbnN0IF9fTikKewogIHJldHVybiBfbW1fc2h1ZmZsZV9waTE2IChfX0EsIF9fTik7Cn0KCi8qIENvbmRpdGlvbmFsbHkgc3RvcmUgYnl0ZSBlbGVtZW50cyBvZiBBIGludG8gUC4gIFRoZSBoaWdoIGJpdCBvZiBlYWNoCiAgIGJ5dGUgaW4gdGhlIHNlbGVjdG9yIE4gZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgZnJvbQogICBBIGlzIHN0b3JlZC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWFza21vdmVfc2k2NCAoX19tNjQgX19BLCBfX202NCBfX04sIGNoYXIgKl9fUCkKewogIF9fbTY0IGhpYml0ID0gMHg4MDgwODA4MDgwODA4MDgwVUw7CiAgX19tNjQgbWFzaywgdG1wOwogIF9fbTY0ICpwID0gKF9fbTY0KilfX1A7CgogIHRtcCA9ICpwOwogIG1hc2sgPSBfbW1fY21wZXFfcGk4ICgoX19OICYgaGliaXQpLCBoaWJpdCk7CiAgdG1wID0gKHRtcCAmICh+bWFzaykpIHwgKF9fQSAmIG1hc2spOwogICpwID0gdG1wOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fbWFza21vdnEgKF9fbTY0IF9fQSwgX19tNjQgX19OLCBjaGFyICpfX1ApCnsKICBfbW1fbWFza21vdmVfc2k2NCAoX19BLCBfX04sIF9fUCk7Cn0KCi8qIENvbXB1dGUgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgdGhlIHVuc2lnbmVkIDgtYml0IHZhbHVlcyBpbiBBIGFuZCBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYXZnX3B1OCAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzIChfX0EpOwogIGIgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil2ZWNfc3BsYXRzIChfX0IpOwogIGMgPSB2ZWNfYXZnIChhLCBiKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdmVjdG9yIGxvbmcgbG9uZykgYylbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21fcGF2Z2IgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9hdmdfcHU4IChfX0EsIF9fQik7Cn0KCi8qIENvbXB1dGUgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgdGhlIHVuc2lnbmVkIDE2LWJpdCB2YWx1ZXMgaW4gQSBhbmQgQi4gICovCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2F2Z19wdTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IGEsIGIsIGM7CgogIGEgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpdmVjX3NwbGF0cyAoX19BKTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KXZlY19zcGxhdHMgKF9fQik7CiAgYyA9IHZlY19hdmcgKGEsIGIpOwogIHJldHVybiAoX19tNjQpICgoX192ZWN0b3IgbG9uZyBsb25nKSBjKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wYXZndyAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICByZXR1cm4gX21tX2F2Z19wdTE2IChfX0EsIF9fQik7Cn0KCi8qIENvbXB1dGUgdGhlIHN1bSBvZiB0aGUgYWJzb2x1dGUgZGlmZmVyZW5jZXMgb2YgdGhlIHVuc2lnbmVkIDgtYml0CiAgIHZhbHVlcyBpbiBBIGFuZCBCLiAgUmV0dXJuIHRoZSB2YWx1ZSBpbiB0aGUgbG93ZXIgMTYtYml0IHdvcmQ7IHRoZQogICB1cHBlciB3b3JkcyBhcmUgY2xlYXJlZC4gICovCmV4dGVybiBfX2lubGluZSAgICBfX202NCAgICBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NhZF9wdTggKF9fbTY0ICBfX0EsIF9fbTY0ICBfX0IpCnsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIGEsIGI7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB2bWluLCB2bWF4LCB2YWJzZGlmZjsKICBfX3ZlY3RvciBzaWduZWQgaW50IHZzdW07CiAgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgaW50IHplcm8gPQogICAgeyAwLCAwLCAwLCAwIH07CiAgX19tNjRfdW5pb24gcmVzdWx0ID0gezB9OwoKICBhID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIHsgMFVMLCBfX0EgfTsKICBiID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpIHsgMFVMLCBfX0IgfTsKICB2bWluID0gdmVjX21pbiAoYSwgYik7CiAgdm1heCA9IHZlY19tYXggKGEsIGIpOwogIHZhYnNkaWZmID0gdmVjX3N1YiAodm1heCwgdm1pbik7CiAgLyogU3VtIGZvdXIgZ3JvdXBzIG9mIGJ5dGVzIGludG8gaW50ZWdlcnMuICAqLwogIHZzdW0gPSAoX192ZWN0b3Igc2lnbmVkIGludCkgdmVjX3N1bTRzICh2YWJzZGlmZiwgemVybyk7CiAgLyogU3VtIGFjcm9zcyBmb3VyIGludGVnZXJzIHdpdGggaW50ZWdlciByZXN1bHQuICAqLwogIHZzdW0gPSB2ZWNfc3VtcyAodnN1bSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpIHplcm8pOwogIC8qIFRoZSBzdW0gaXMgaW4gdGhlIHJpZ2h0IG1vc3QgMzItYml0cyBvZiB0aGUgdmVjdG9yIHJlc3VsdC4KICAgICBUcmFuc2ZlciB0byBhIEdQUiBhbmQgdHJ1bmNhdGUgdG8gMTYgYml0cy4gICovCiAgcmVzdWx0LmFzX3Nob3J0WzBdID0gdnN1bVszXTsKICByZXR1cm4gcmVzdWx0LmFzX202NDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbV9wc2FkYncgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgcmV0dXJuIF9tbV9zYWRfcHU4IChfX0EsIF9fQik7Cn0KCi8qIFN0b3JlcyB0aGUgZGF0YSBpbiBBIHRvIHRoZSBhZGRyZXNzIFAgd2l0aG91dCBwb2xsdXRpbmcgdGhlIGNhY2hlcy4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RyZWFtX3BpIChfX202NCAqX19QLCBfX202NCBfX0EpCnsKICAvKiBVc2UgdGhlIGRhdGEgY2FjaGUgYmxvY2sgdG91Y2ggZm9yIHN0b3JlIHRyYW5zaWVudC4gICovCiAgX19hc21fXyAoCiAgICAiCWRjYnRzdHQJMCwlMCIKICAgIDoKICAgIDogImIiIChfX1ApCiAgICA6ICJtZW1vcnkiCiAgKTsKICAqX19QID0gX19BOwp9CgovKiBMaWtld2lzZS4gIFRoZSBhZGRyZXNzIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdHJlYW1fcHMgKGZsb2F0ICpfX1AsIF9fbTEyOCBfX0EpCnsKICAvKiBVc2UgdGhlIGRhdGEgY2FjaGUgYmxvY2sgdG91Y2ggZm9yIHN0b3JlIHRyYW5zaWVudC4gICovCiAgX19hc21fXyAoCiAgICAiCWRjYnRzdHQJMCwlMCIKICAgIDoKICAgIDogImIiIChfX1ApCiAgICA6ICJtZW1vcnkiCiAgKTsKICBfbW1fc3RvcmVfcHMgKF9fUCwgX19BKTsKfQoKLyogR3VhcmFudGVlcyB0aGF0IGV2ZXJ5IHByZWNlZGluZyBzdG9yZSBpcyBnbG9iYWxseSB2aXNpYmxlIGJlZm9yZQogICBhbnkgc3Vic2VxdWVudCBzdG9yZS4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2ZlbmNlICh2b2lkKQp7CiAgLyogR2VuZXJhdGUgYSBsaWdodCB3ZWlnaHQgc3luYy4gICovCiAgX19hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19SRUxFQVNFKTsKfQoKLyogVGhlIGV4ZWN1dGlvbiBvZiB0aGUgbmV4dCBpbnN0cnVjdGlvbiBpcyBkZWxheWVkIGJ5IGFuIGltcGxlbWVudGF0aW9uCiAgIHNwZWNpZmljIGFtb3VudCBvZiB0aW1lLiAgVGhlIGluc3RydWN0aW9uIGRvZXMgbm90IG1vZGlmeSB0aGUKICAgYXJjaGl0ZWN0dXJhbCBzdGF0ZS4gIFRoaXMgaXMgYWZ0ZXIgdGhlIHBvcF9vcHRpb25zIHByYWdtYSBiZWNhdXNlCiAgIGl0IGRvZXMgbm90IHJlcXVpcmUgU1NFIHN1cHBvcnQgaW4gdGhlIHByb2Nlc3Nvci0tdGhlIGVuY29kaW5nIGlzIGEKICAgbm9wIG9uIHByb2Nlc3NvcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBpdC4gICovCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fcGF1c2UgKHZvaWQpCnsKICAvKiBUaGVyZSBpcyBubyBleGFjdCBtYXRjaCB3aXRoIHRoaXMgY29uc3RydWN0LCBidXQgdGhlIGZvbGxvd2luZyBpcwogICAgIGNsb3NlIHRvIHRoZSBkZXNpcmVkIGVmZmVjdC4gICovCiNpZiBfQVJDSF9QV1I4CiAgLyogT24gcG93ZXI4IGFuZCBsYXRlciBwcm9jZXNzb3JzIHdlIGNhbiBkZXBlbmQgb24gUHJvZ3JhbSBQcmlvcml0eQogICAgIChQUkkpIGFuZCBhc3NvY2lhdGVkICJ2ZXJ5IGxvdyIgUFBJIHNldHRpbmcuICBTaW5jZSB3ZSBkb24ndCBrbm93CiAgICAgd2hhdCBQUEkgdGhpcyB0aHJlYWQgaXMgcnVubmluZyBhdCB3ZTogMSkgc2F2ZSB0aGUgY3VycmVudCBQUkkKICAgICBmcm9tIHRoZSBQUFIgU1BSIGludG8gYSBsb2NhbCBHUlAsIDIpIHNldCB0aGUgUFJJIHRvICJ2ZXJ5IGxvdyoKICAgICB2aWEgdGhlIHNwZWNpYWwgb3IgMzEsMzEsMzEgZW5jb2RpbmcuIDMpIGlzc3VlIGFuICJpc3luYyIgdG8KICAgICBpbnN1cmUgdGhlIFBSSSBjaGFuZ2UgdGFrZXMgZWZmZWN0IGJlZm9yZSB3ZSBleGVjdXRlIGFueSBtb3JlCiAgICAgaW5zdHJ1Y3Rpb25zLgogICAgIE5vdyB3ZSBjYW4gZXhlY3V0ZSBhIGx3c3luYyAocmVsZWFzZSBiYXJyaWVyKSB3aGlsZSB3ZSBleGVjdXRlCiAgICAgdGhpcyB0aHJlYWQgYXQgInZlcnkgbG93IiBQUkkuICBGaW5hbGx5IHdlIHJlc3RvcmUgdGhlIG9yaWdpbmFsCiAgICAgUFJJIGFuZCBjb250aW51ZSBleGVjdXRpb24uICAqLwogIHVuc2lnbmVkIGxvbmcgX19QUFI7CgogIF9fYXNtX18gdm9sYXRpbGUgKAogICAgIgltZnBwcgklMDsiCiAgICAiICAgb3IgMzEsMzEsMzE7IgogICAgIiAgIGlzeW5jOyIKICAgICIgICBsd3N5bmM7IgogICAgIiAgIGlzeW5jOyIKICAgICIgICBtdHBwcgklMDsiCiAgICA6ICI9ciIgKF9fUFBSKQogICAgOgogICAgOiAibWVtb3J5IgogICk7CiNlbHNlCiAgLyogRm9yIG9sZGVyIHByb2Nlc3NvciB3aGVyZSB3ZSBtYXkgbm90IGV2ZW4gaGF2ZSBQcm9ncmFtIFByaW9yaXR5CiAgICAgY29udHJvbHMgd2UgY2FuIG9ubHkgZGVwZW5kIG9uIEhlYXZ5IFdlaWdodCBTeW5jLiAgKi8KICBfX2F0b21pY190aHJlYWRfZmVuY2UgKF9fQVRPTUlDX1NFUV9DU1QpOwojZW5kaWYKfQoKLyogVHJhbnNwb3NlIHRoZSA0eDQgbWF0cml4IGNvbXBvc2VkIG9mIHJvd1swLTNdLiAgKi8KI2RlZmluZSBfTU1fVFJBTlNQT1NFNF9QUyhyb3cwLCByb3cxLCByb3cyLCByb3czKQkJCVwKZG8gewkJCQkJCQkJCVwKICBfX3Y0c2YgX19yMCA9IChyb3cwKSwgX19yMSA9IChyb3cxKSwgX19yMiA9IChyb3cyKSwgX19yMyA9IChyb3czKTsJXAogIF9fdjRzZiBfX3QwID0gdmVjX3ZtcmdodyAoX19yMCwgX19yMSk7CQkJXAogIF9fdjRzZiBfX3QxID0gdmVjX3ZtcmdodyAoX19yMiwgX19yMyk7CQkJXAogIF9fdjRzZiBfX3QyID0gdmVjX3ZtcmdsdyAoX19yMCwgX19yMSk7CQkJXAogIF9fdjRzZiBfX3QzID0gdmVjX3ZtcmdsdyAoX19yMiwgX19yMyk7CQkJXAogIChyb3cwKSA9IChfX3Y0c2YpdmVjX21lcmdlaCAoKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QwLCAJXAoJCQkgICAgICAgKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QxKTsJXAogIChyb3cxKSA9IChfX3Y0c2YpdmVjX21lcmdlbCAoKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QwLAlcCgkJCSAgICAgICAoX192ZWN0b3IgbG9uZyBsb25nKV9fdDEpOwlcCiAgKHJvdzIpID0gKF9fdjRzZil2ZWNfbWVyZ2VoICgoX192ZWN0b3IgbG9uZyBsb25nKV9fdDIsCVwKCQkJICAgICAgIChfX3ZlY3RvciBsb25nIGxvbmcpX190Myk7CVwKICAocm93MykgPSAoX192NHNmKXZlY19tZXJnZWwgKChfX3ZlY3RvciBsb25nIGxvbmcpX190MiwJXAoJCQkgICAgICAgKF9fdmVjdG9yIGxvbmcgbG9uZylfX3QzKTsJXAp9IHdoaWxlICgwKQoKLyogRm9yIGJhY2t3YXJkIHNvdXJjZSBjb21wYXRpYmlsaXR5LiAgKi8KLy8jIGluY2x1ZGUgPGVtbWludHJpbi5oPgoKI2Vsc2UKI2luY2x1ZGVfbmV4dCA8eG1taW50cmluLmg+CiNlbmRpZiAvKiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pICovCgojZW5kaWYgLyogX1hNTUlOVFJJTl9IX0lOQ0xVREVEICovCgAvLz09PS0tIHNhbml0aXplci9hc2FuX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotIEMrKyAtKi09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIEhXQWRkcmVzc1Nhbml0aXplci4KLy8KLy8gUHVibGljIGludGVyZmFjZSBoZWFkZXIuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX0hXQVNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9IV0FTQU5fSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgogIC8vIExpYmMgaG9vayBmb3IgcHJvZ3JhbSBzdGFydHVwIGluIHN0YXRpY2FsbHkgbGlua2VkIGV4ZWN1dGFibGVzLgogIC8vIEluaXRpYWxpemVzIGVub3VnaCBvZiB0aGUgcnVudGltZSB0byBydW4gaW5zdHJ1bWVudGVkIGNvZGUuIFRoaXMgZnVuY3Rpb24KICAvLyBzaG91bGQgb25seSBiZSBjYWxsZWQgaW4gc3RhdGljYWxseSBsaW5rZWQgZXhlY3V0YWJsZXMgYmVjYXVzZSBpdCBtb2RpZmllcwogIC8vIHRoZSBHT1QsIHdoaWNoIHdvbid0IHdvcmsgaW4gcmVndWxhciBiaW5hcmllcyBiZWNhdXNlIFJFTFJPIHdpbGwgYWxyZWFkeQogIC8vIGhhdmUgYmVlbiBhcHBsaWVkIGJ5IHRoZSB0aW1lIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQuIFRoaXMgYWxzbyBtZWFucyB0aGF0CiAgLy8gdGhlIGZ1bmN0aW9uIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGxpYmMgYXBwbGllcyBSRUxSTy4KICAvLyBEb2VzIG5vdCBjYWxsIGxpYmMgdW5sZXNzIHRoZXJlIGlzIGFuIGVycm9yLgogIC8vIENhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuCiAgdm9pZCBfX2h3YXNhbl9pbml0X3N0YXRpYyh2b2lkKTsKCiAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUgb3B0aW9uYWxseSBwcm92aWRlZCBieSB1c2VyIGFuZCBzaG91bGQgcmV0dXJuCiAgLy8gYSBzdHJpbmcgY29udGFpbmluZyBIV0FTYW4gcnVudGltZSBvcHRpb25zLiBTZWUgYXNhbl9mbGFncy5oIGZvciBkZXRhaWxzLgogIGNvbnN0IGNoYXIqIF9faHdhc2FuX2RlZmF1bHRfb3B0aW9ucyh2b2lkKTsKCiAgdm9pZCBfX2h3YXNhbl9lbmFibGVfYWxsb2NhdG9yX3RhZ2dpbmcodm9pZCk7CiAgdm9pZCBfX2h3YXNhbl9kaXNhYmxlX2FsbG9jYXRvcl90YWdnaW5nKHZvaWQpOwoKICAvLyBNYXJrIHJlZ2lvbiBvZiBtZW1vcnkgd2l0aCB0aGUgZ2l2ZW4gdGFnLiBCb3RoIGFkZHJlc3MgYW5kIHNpemUgbmVlZCB0byBiZQogIC8vIDE2LWJ5dGUgYWxpZ25lZC4KICB2b2lkIF9faHdhc2FuX3RhZ19tZW1vcnkoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdW5zaWduZWQgY2hhciB0YWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKCiAgLy8vIFNldCBwb2ludGVyIHRhZy4gUHJldmlvdXMgdGFnIGlzIGxvc3QuCiAgdm9pZCAqX19od2FzYW5fdGFnX3BvaW50ZXIoY29uc3Qgdm9sYXRpbGUgdm9pZCAqcCwgdW5zaWduZWQgY2hhciB0YWcpOwoKICAvLyBTZXQgbWVtb3J5IHRhZyBmcm9tIHRoZSBjdXJyZW50IFNQIGFkZHJlc3MgdG8gdGhlIGdpdmVuIGFkZHJlc3MgdG8gemVyby4KICAvLyBUaGlzIGlzIG1lYW50IHRvIGFubm90YXRlIGxvbmdqbXAgYW5kIG90aGVyIG5vbi1sb2NhbCBqdW1wcy4KICAvLyBUaGlzIGZ1bmN0aW9uIG5lZWRzIHRvIGtub3cgdGhlIChhbG1vc3QpIGV4YWN0IGRlc3RpbmF0aW9uIGZyYW1lIGFkZHJlc3M7CiAgLy8gY2xlYXJpbmcgc2hhZG93IGZvciB0aGUgZW50aXJlIHRocmVhZCBzdGFjayBsaWtlIF9fYXNhbl9oYW5kbGVfbm9fcmV0dXJuCiAgLy8gZG9lcyB3b3VsZCBjYXVzZSBmYWxzZSByZXBvcnRzLgogIHZvaWQgX19od2FzYW5faGFuZGxlX2xvbmdqbXAoY29uc3Qgdm9pZCAqc3BfZHN0KTsKCiAgLy8gU2V0IG1lbW9yeSB0YWcgZm9yIHRoZSBwYXJ0IG9mIHRoZSBjdXJyZW50IHRocmVhZCBzdGFjayBiZWxvdyBzcF9kc3QgdG8KICAvLyB6ZXJvLiBDYWxsIHRoaXMgaW4gdmZvcmsoKSBiZWZvcmUgcmV0dXJuaW5nIGluIHRoZSBwYXJlbnQgcHJvY2Vzcy4KICB2b2lkIF9faHdhc2FuX2hhbmRsZV92Zm9yayhjb25zdCB2b2lkICpzcF9kc3QpOwoKICAvLyBMaWJjIGhvb2sgZm9yIHRocmVhZCBjcmVhdGlvbi4gU2hvdWxkIGJlIGNhbGxlZCBpbiB0aGUgY2hpbGQgdGhyZWFkIGJlZm9yZQogIC8vIGFueSBpbnN0cnVtZW50ZWQgY29kZS4KICB2b2lkIF9faHdhc2FuX3RocmVhZF9lbnRlcigpOwoKICAvLyBMaWJjIGhvb2sgZm9yIHRocmVhZCBkZXN0cnVjdGlvbi4gTm8gaW5zdHJ1bWVudGVkIGNvZGUgc2hvdWxkIHJ1biBhZnRlcgogIC8vIHRoaXMgY2FsbC4KICB2b2lkIF9faHdhc2FuX3RocmVhZF9leGl0KCk7CgogIC8vIFByaW50IHNoYWRvdyBhbmQgb3JpZ2luIGZvciB0aGUgbWVtb3J5IHJhbmdlIHRvIHN0ZGVyciBpbiBhIGh1bWFuLXJlYWRhYmxlCiAgLy8gZm9ybWF0LgogIHZvaWQgX19od2FzYW5fcHJpbnRfc2hhZG93KGNvbnN0IHZvbGF0aWxlIHZvaWQgKngsIHNpemVfdCBzaXplKTsKCiAgLy8gUHJpbnQgb25lLWxpbmUgcmVwb3J0IGFib3V0IHRoZSBtZW1vcnkgdXNhZ2Ugb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4KICB2b2lkIF9faHdhc2FuX3ByaW50X21lbW9yeV91c2FnZSgpOwoKICAvKiBSZXR1cm5zIHRoZSBvZmZzZXQgb2YgdGhlIGZpcnN0IGJ5dGUgaW4gdGhlIG1lbW9yeSByYW5nZSB0aGF0IGNhbiBub3QgYmUKICAgKiBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBwb2ludGVyIGluIHgsIG9yIC0xIGlmIHRoZSB3aG9sZSByYW5nZSBpcyBnb29kLiAqLwogIGludHB0cl90IF9faHdhc2FuX3Rlc3Rfc2hhZG93KGNvbnN0IHZvbGF0aWxlIHZvaWQgKngsIHNpemVfdCBzaXplKTsKCiAgLyogU2V0cyB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIGR1cmluZyBIV0FTYW4gZXJyb3IgcmVwb3J0aW5nLiAqLwogIHZvaWQgX19od2FzYW5fc2V0X2Vycm9yX3JlcG9ydF9jYWxsYmFjayh2b2lkICgqY2FsbGJhY2spKGNvbnN0IGNoYXIgKikpOwoKICBpbnQgX19zYW5pdGl6ZXJfcG9zaXhfbWVtYWxpZ24odm9pZCAqKm1lbXB0ciwgc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9tZW1hbGlnbihzaXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCAqIF9fc2FuaXRpemVyX2FsaWduZWRfYWxsb2Moc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9fX2xpYmNfbWVtYWxpZ24oc2l6ZV90IGFsaWdubWVudCwgc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl92YWxsb2Moc2l6ZV90IHNpemUpOwogIHZvaWQgKiBfX3Nhbml0aXplcl9wdmFsbG9jKHNpemVfdCBzaXplKTsKICB2b2lkIF9fc2FuaXRpemVyX2ZyZWUodm9pZCAqcHRyKTsKICB2b2lkIF9fc2FuaXRpemVyX2NmcmVlKHZvaWQgKnB0cik7CiAgc2l6ZV90IF9fc2FuaXRpemVyX21hbGxvY191c2FibGVfc2l6ZShjb25zdCB2b2lkICpwdHIpOwogIHN0cnVjdCBtYWxsaW5mbyBfX3Nhbml0aXplcl9tYWxsaW5mbygpOwogIGludCBfX3Nhbml0aXplcl9tYWxsb3B0KGludCBjbWQsIGludCB2YWx1ZSk7CiAgdm9pZCBfX3Nhbml0aXplcl9tYWxsb2Nfc3RhdHModm9pZCk7CiAgdm9pZCAqIF9fc2FuaXRpemVyX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfcmVhbGxvYyh2b2lkICpwdHIsIHNpemVfdCBzaXplKTsKICB2b2lkICogX19zYW5pdGl6ZXJfcmVhbGxvY2FycmF5KHZvaWQgKnB0ciwgc2l6ZV90IG5tZW1iLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCAqIF9fc2FuaXRpemVyX21hbGxvYyhzaXplX3Qgc2l6ZSk7CiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfSFdBU0FOX0lOVEVSRkFDRV9ICgBjb3JwdXMAUkUyOiBpbnZhbGlkIHN0YXJ0cG9zLCBlbmRwb3MgcGFpci4gWwBSZXBldGl0aW9uV2Fsa2VyOjpTaG9ydFZpc2l0IGNhbGxlZABDb25jYXQgb2YgAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvd2Fsa2VyLWlubC5oAFs6XnB1bmN0Ol0AWyUwMngtJTAyeF0gLT4gJWQKAFwlMDNvAG1pc3NpbmcgXQBDYW5hZGlhbl9BYm9yaWdpbmFsAEhpcmFnYW5hAExpbWJ1AE1pYW8ATgBQaG9lbmljaWFuAFNoYXZpYW4AVGFpX1RoYW0AbGVmdF8AYmFkIGFyZW5hIHBvaW50ZXIgaW4gQWRkVG9GcmVlbGlzdCgpAHMtPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBMb3dMZXZlbEFsbG9jIGFyaXRobWV0aWMgb3ZlcmZsb3cAbmV4dC0+aGVhZGVyLmFyZW5hID09IGFyZW5hAHMAdW5zaWduZWQgc2hvcnQAYXV0bwBEQVRBX0xPU1MAIGV4Y2VlZHMgVW5pY29kZSBsaW1pdCAoMHgxMEZGRkYpACwgdGFpbCA9IAAgZW50cnlbACBhbmQvb3IgdGFpbCAAZmFsc2UAb2xkX2ggPT0gbnVsbHB0ciB8fCBoLT5tYXliZV91bmxvY2tpbmcAbm90IHdhaXRpbmcgd2hlbiBzaG91bGQgYmUAdXMAVFoAbG9jYWx0aW1lAHpvbmVpbmZvL3R6aWYyLwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2N0eC5jADNERVMgRW5jcnlwdGlvbiBLQVQAU0hBLTEgS0FUAGZhaWxlZCB0byBvcGVuIC9kZXYvdXJhbmRvbQBEaWdlc3QgZnVuY3Rpb25zAGt5dGhlLnByb3RvLlZOYW1lLmNvcnB1cwBNaXNzaW5nIHJlcXVpcmVkIGZpbGUgJXMuCgBhdngyaW50cmluLmgAYXZ4NTEydmxjZGludHJpbi5oAGF2eDUxMnZsZHFpbnRyaW4uaAAvKj09PS0tLS0gbGltaXRzLmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIGludGVnZXIgc2l6ZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0qXAogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgpcKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0qLwoKI2lmbmRlZiBfX0NMQU5HX0xJTUlUU19ICiNkZWZpbmUgX19DTEFOR19MSU1JVFNfSAoKLyogVGhlIHN5c3RlbSdzIGxpbWl0cy5oIG1heSwgaW4gdHVybiwgdHJ5IHRvICNpbmNsdWRlX25leHQgR0NDJ3MgbGltaXRzLmguCiAgIEF2ZXJ0IHRoaXMgI2luY2x1ZGVfbmV4dCBtYWRuZXNzLiAqLwojaWYgZGVmaW5lZCBfX0dOVUNfXyAmJiAhZGVmaW5lZCBfR0NDX0xJTUlUU19IXwojZGVmaW5lIF9HQ0NfTElNSVRTX0hfCiNlbmRpZgoKLyogU3lzdGVtIGhlYWRlcnMgaW5jbHVkZSBhIG51bWJlciBvZiBjb25zdGFudHMgZnJvbSBQT1NJWCBpbiA8bGltaXRzLmg+LgogICBJbmNsdWRlIGl0IGlmIHdlJ3JlIGhvc3RlZC4gKi8KI2lmIF9fU1REQ19IT1NURURfXyAmJiBfX2hhc19pbmNsdWRlX25leHQoPGxpbWl0cy5oPikKI2luY2x1ZGVfbmV4dCA8bGltaXRzLmg+CiNlbmRpZgoKLyogTWFueSBzeXN0ZW0gaGVhZGVycyB0cnkgdG8gImhlbHAgdXMgb3V0IiBieSBkZWZpbmluZyB0aGVzZS4gIE5vIHJlYWxseSwgd2UKICAga25vdyBob3cgYmlnIGVhY2ggZGF0YXR5cGUgaXMuICovCiN1bmRlZiAgU0NIQVJfTUlOCiN1bmRlZiAgU0NIQVJfTUFYCiN1bmRlZiAgVUNIQVJfTUFYCiN1bmRlZiAgU0hSVF9NSU4KI3VuZGVmICBTSFJUX01BWAojdW5kZWYgIFVTSFJUX01BWAojdW5kZWYgIElOVF9NSU4KI3VuZGVmICBJTlRfTUFYCiN1bmRlZiAgVUlOVF9NQVgKI3VuZGVmICBMT05HX01JTgojdW5kZWYgIExPTkdfTUFYCiN1bmRlZiAgVUxPTkdfTUFYCgojdW5kZWYgIENIQVJfQklUCiN1bmRlZiAgQ0hBUl9NSU4KI3VuZGVmICBDSEFSX01BWAoKLyogQzkwLzk5IDUuMi40LjIuMSAqLwojZGVmaW5lIFNDSEFSX01BWCBfX1NDSEFSX01BWF9fCiNkZWZpbmUgU0hSVF9NQVggIF9fU0hSVF9NQVhfXwojZGVmaW5lIElOVF9NQVggICBfX0lOVF9NQVhfXwojZGVmaW5lIExPTkdfTUFYICBfX0xPTkdfTUFYX18KCiNkZWZpbmUgU0NIQVJfTUlOICgtX19TQ0hBUl9NQVhfXy0xKQojZGVmaW5lIFNIUlRfTUlOICAoLV9fU0hSVF9NQVhfXyAtMSkKI2RlZmluZSBJTlRfTUlOICAgKC1fX0lOVF9NQVhfXyAgLTEpCiNkZWZpbmUgTE9OR19NSU4gICgtX19MT05HX01BWF9fIC0xTCkKCiNkZWZpbmUgVUNIQVJfTUFYIChfX1NDSEFSX01BWF9fKjIgICsxKQojZGVmaW5lIFVTSFJUX01BWCAoX19TSFJUX01BWF9fICoyICArMSkKI2RlZmluZSBVSU5UX01BWCAgKF9fSU5UX01BWF9fICAqMlUgKzFVKQojZGVmaW5lIFVMT05HX01BWCAoX19MT05HX01BWF9fICoyVUwrMVVMKQoKI2lmbmRlZiBNQl9MRU5fTUFYCiNkZWZpbmUgTUJfTEVOX01BWCAxCiNlbmRpZgoKI2RlZmluZSBDSEFSX0JJVCAgX19DSEFSX0JJVF9fCgojaWZkZWYgX19DSEFSX1VOU0lHTkVEX18gIC8qIC1mdW5zaWduZWQtY2hhciAqLwojZGVmaW5lIENIQVJfTUlOIDAKI2RlZmluZSBDSEFSX01BWCBVQ0hBUl9NQVgKI2Vsc2UKI2RlZmluZSBDSEFSX01JTiBTQ0hBUl9NSU4KI2RlZmluZSBDSEFSX01BWCBfX1NDSEFSX01BWF9fCiNlbmRpZgoKLyogQzk5IDUuMi40LjIuMTogQWRkZWQgbG9uZyBsb25nLgogICBDKysxMSAxOC4zLjMuMjogc2FtZSBjb250ZW50cyBhcyB0aGUgU3RhbmRhcmQgQyBMaWJyYXJ5IGhlYWRlciA8bGltaXRzLmg+LgogKi8KI2lmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCB8fCBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCgojdW5kZWYgIExMT05HX01JTgojdW5kZWYgIExMT05HX01BWAojdW5kZWYgIFVMTE9OR19NQVgKCiNkZWZpbmUgTExPTkdfTUFYICBfX0xPTkdfTE9OR19NQVhfXwojZGVmaW5lIExMT05HX01JTiAgKC1fX0xPTkdfTE9OR19NQVhfXy0xTEwpCiNkZWZpbmUgVUxMT05HX01BWCAoX19MT05HX0xPTkdfTUFYX18qMlVMTCsxVUxMKQojZW5kaWYKCi8qIExPTkdfTE9OR19NSU4vTE9OR19MT05HX01BWC9VTE9OR19MT05HX01BWCBhcmUgYSBHTlUgZXh0ZW5zaW9uLiAgSXQncyB0b28gYmFkCiAgIHRoYXQgd2UgZG9uJ3QgaGF2ZSBzb21ldGhpbmcgbGlrZSAjcHJhZ21hIHBvaXNvbiB0aGF0IGNvdWxkIGJlIHVzZWQgdG8KICAgZGVwcmVjYXRlIGEgbWFjcm8gLSB0aGUgY29kZSBzaG91bGQganVzdCB1c2UgTExPTkdfTUFYIGFuZCBmcmllbmRzLgogKi8KI2lmIGRlZmluZWQoX19HTlVfTElCUkFSWV9fKSA/IGRlZmluZWQoX19VU0VfR05VKSA6ICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykKCiN1bmRlZiAgIExPTkdfTE9OR19NSU4KI3VuZGVmICAgTE9OR19MT05HX01BWAojdW5kZWYgICBVTE9OR19MT05HX01BWAoKI2RlZmluZSBMT05HX0xPTkdfTUFYICBfX0xPTkdfTE9OR19NQVhfXwojZGVmaW5lIExPTkdfTE9OR19NSU4gICgtX19MT05HX0xPTkdfTUFYX18tMUxMKQojZGVmaW5lIFVMT05HX0xPTkdfTUFYIChfX0xPTkdfTE9OR19NQVhfXyoyVUxMKzFVTEwpCiNlbmRpZgoKI2VuZGlmIC8qIF9fQ0xBTkdfTElNSVRTX0ggKi8KAHNtbWludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tIHZwY2xtdWxxZHFpbnRyaW4uaCAtIFZQQ0xNVUxRRFEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx2cGNsbXVscWRxaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1ZQQ0xNVUxRRFFJTlRSSU5fSAojZGVmaW5lIF9fVlBDTE1VTFFEUUlOVFJJTl9ICgojZGVmaW5lIF9tbTI1Nl9jbG11bGVwaTY0X2VwaTEyOChBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BjbG11bHFkcTI1NigoX192NGRpKShfX20yNTZpKShBKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKCiNpZmRlZiBfX0FWWDUxMkZJTlRSSU5fSAojZGVmaW5lIF9tbTUxMl9jbG11bGVwaTY0X2VwaTEyOChBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BjbG11bHFkcTUxMigoX192OGRpKShfX201MTJpKShBKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIpKEkpKSkKI2VuZGlmIC8vIF9fQVZYNTEyRklOVFJJTl9ICgojZW5kaWYgLyogX19WUENMTVVMUURRSU5UUklOX0ggKi8KCgBzYW5pdGl6ZXIvbXNhbl9pbnRlcmZhY2UuaABmcmVhZCgmY29udGVudFswXSwgc2l6ZSwgMSwgaGFuZGxlKQBFeHBlY3RlZCBhbiBhcnJheSBvZiBvYmplY3RzLgBjb250ZW50AFNlYXJjaE9uZVBhc3MgaW5jb25zaXN0ZW5jeQBbOmFsbnVtOl0ATWlzc2luZyBjYXNlIGluIENvbXBpbGVyOiAARmFpbGVkIHRvIGFuYWx5emUgc3RhcnQgc3RhdGUuAEdyb3dTdGFjaygpIGZhaWxlZDogAFxDAEF2ZXN0YW4ARGV2YW5hZ2FyaQBMZXBjaGEAUGUAU2FtYXJpdGFuAFNvcmFfU29tcGVuZwBTSUdUUkFQAFNpZ25hbCAlZCByYWlzZWQgYXQgUEM9JXAgd2hpbGUgYWxyZWFkeSBpbiBBYnNsRmFpbHVyZVNpZ25hbEhhbmRsZXIoKQAqKiogU2lnbmFsICVkIHJlY2VpdmVkIGF0IHRpbWU9JWxkJXMgKioqCgBVbmFibGUgdG8gcmVhZCBmcm9tIGZkICVkIGF0IG9mZnNldCAlenU6IG5fcmVhZCA9ICV6ZABiYWQgcG9pbnRlcgBvZmZzZXQgPCBzdHJzaXplXwB2ZXJzaW9uX2RlZmluaXRpb24tPnZkX2NudCA9PSAxIHx8IHZlcnNpb25fZGVmaW5pdGlvbi0+dmRfY250ID09IDIAYmFkIGFyZW5hIHBvaW50ZXIgaW4gRGVsZXRlQXJlbmEoKQBtYWxmb3JtZWQgZnJlZWxpc3QAaW50AERpAGNsAG5ld1tdAGRlbGV0ZQBpeABPVVRfT0ZfUkFOR0UAQ2hlY2sgbiA8PSBzaXplKCkgZmFpbGVkOiAARXh0biwgbGVuID0gAGNhcGFjaXR5ID09IDAATG9naWMgcHJvYmxlbT8gc3pzcmMgPSAlenUAY29uZGl0aW9uIHVudHJ1ZSBvbiByZXR1cm4gZnJvbSBMb2NrU2xvdwBFbnF1ZXVlIGZhaWxlZABleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjZGgvZWNkaC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvc2ltcGxlLmMAJTAyeABCb3JpbmdTU0wAT1BFTlNTTF9pbnRlcm5hbABreXRoZS5wcm90by5GaWxlSW5mby5wYXRoAGt5dGhlLnByb3RvLmNvbW1vbi5NYXJrZWRTb3VyY2UucG9zdF90ZXh0AC14AGFzc2VtYmxlcgAtZnN5bnRheC1vbmx5AFVzZXIgZW50cnkgKABRdW90ZWQAT2JqQ1N5c3RlbQBBZnRlcgBfX2NsYW5nX2N1ZGFfY21hdGguaAAvKj09PS0tLS0gX19jbGFuZ19jdWRhX21hdGguaCAtIERldmljZS1zaWRlIENVREEgbWF0aCBzdXBwb3J0IC0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19DTEFOR19DVURBX01BVEhfSF9fCiNkZWZpbmUgX19DTEFOR19DVURBX01BVEhfSF9fCiNpZm5kZWYgX19DVURBX18KI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIENVREEgY29tcGlsYXRpb24gb25seS4iCiNlbmRpZgoKI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCiNpZiBDVURBX1ZFUlNJT04gPCA5MDAwCiNlcnJvciBUaGlzIGZpbGUgaXMgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aXRoIENVREEtOSsgb25seS4KI2VuZGlmCiNlbmRpZgoKLy8gX19ERVZJQ0VfXyBpcyBhIGhlbHBlciBtYWNybyB3aXRoIGNvbW1vbiBzZXQgb2YgYXR0cmlidXRlcyBmb3IgdGhlIHdyYXBwZXJzCi8vIHdlIGltcGxlbWVudCBpbiB0aGlzIGZpbGUuIFdlIG5lZWQgc3RhdGljIGluIG9yZGVyIHRvIGF2b2lkIGVtaXR0aW5nIHVudXNlZAovLyBmdW5jdGlvbnMgYW5kIF9fZm9yY2VpbmxpbmVfXyBoZWxwcyBpbmxpbmluZyB0aGVzZSB3cmFwcGVycyBhdCAtTzEuCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERVZJQ0VfXyIpCiNpZmRlZiBfX09QRU5NUF9OVlBUWF9fCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIGNvbnN0ZXhwciBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lLCBub3Rocm93KSkKI2Vsc2UKI2RlZmluZSBfX0RFVklDRV9fIHN0YXRpYyBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lLCBub3Rocm93KSkKI2VuZGlmCiNlbHNlCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgX19kZXZpY2VfXyBfX2ZvcmNlaW5saW5lX18KI2VuZGlmCgovLyBTcGVjaWFsaXplZCB2ZXJzaW9uIG9mIF9fREVWSUNFX18gZm9yIGZ1bmN0aW9ucyB3aXRoIHZvaWQgcmV0dXJuIHR5cGUuIE5lZWRlZAovLyBiZWNhdXNlIHRoZSBPcGVuTVAgb3ZlcmxheSByZXF1aXJlcyBjb25zdGV4cHIgZnVuY3Rpb25zIGhlcmUgYnV0IHByaW9yIHRvCi8vIGMrKzE0IHZvaWQgcmV0dXJuIGZ1bmN0aW9ucyBjb3VsZCBub3QgYmUgY29uc3RleHByLgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX1ZPSURfXyIpCiNpZmRlZiBfX09QRU5NUF9OVlBUWF9fICYmIGRlZmluZWQoX19jcGx1c3BsdXMpICYmIF9fY3BsdXNwbHVzIDwgMjAxNDAyTAojZGVmaW5lIF9fREVWSUNFX1ZPSURfXyBzdGF0aWMgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSwgbm90aHJvdykpCiNlbHNlCiNkZWZpbmUgX19ERVZJQ0VfVk9JRF9fIF9fREVWSUNFX18KI2VuZGlmCgovLyBsaWJkZXZpY2UgcHJvdmlkZXMgZmFzdCBsb3cgcHJlY2lzaW9uIGFuZCBzbG93IGZ1bGwtcmVjaXNpb24gaW1wbGVtZW50YXRpb25zCi8vIGZvciBzb21lIGZ1bmN0aW9ucy4gV2hpY2ggb25lIGdldHMgc2VsZWN0ZWQgZGVwZW5kcyBvbgovLyBfX0NMQU5HX0NVREFfQVBQUk9YX1RSQU5TQ0VOREVOVEFMU19fIHdoaWNoIGdldHMgZGVmaW5lZCBieSBjbGFuZyBpZgovLyAtZmZhc3QtbWF0aCBvciAtZmN1ZGEtYXBwcm94LXRyYW5zY2VuZGVudGFscyBhcmUgaW4gZWZmZWN0LgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fRkFTVF9PUl9TTE9XIikKI2lmIGRlZmluZWQoX19DTEFOR19DVURBX0FQUFJPWF9UUkFOU0NFTkRFTlRBTFNfXykKI2RlZmluZSBfX0ZBU1RfT1JfU0xPVyhmYXN0LCBzbG93KSBmYXN0CiNlbHNlCiNkZWZpbmUgX19GQVNUX09SX1NMT1coZmFzdCwgc2xvdykgc2xvdwojZW5kaWYKCl9fREVWSUNFX18gaW50IGFicyhpbnQgX19hKSB7IHJldHVybiBfX252X2FicyhfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZhYnMoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9mYWJzKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgYWNvcyhkb3VibGUgX19hKSB7IHJldHVybiBfX252X2Fjb3MoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGFjb3NmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9hY29zZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGFjb3NoKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfYWNvc2goX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGFjb3NoZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfYWNvc2hmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgYXNpbihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2FzaW4oX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGFzaW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9hc2luZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGFzaW5oKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfYXNpbmgoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGFzaW5oZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfYXNpbmhmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgYXRhbihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2F0YW4oX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBhdGFuMihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X2F0YW4yKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGF0YW4yZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgeyByZXR1cm4gX19udl9hdGFuMmYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgYXRhbmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2F0YW5mKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgYXRhbmgoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9hdGFuaChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgYXRhbmhmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9hdGFuaGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBjYnJ0KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfY2JydChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgY2JydGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2NicnRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgY2VpbChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2NlaWwoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGNlaWxmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jZWlsZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGNvcHlzaWduKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9jb3B5c2lnbihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBjb3B5c2lnbmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9jb3B5c2lnbmYoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIGNvcyhkb3VibGUgX19hKSB7IHJldHVybiBfX252X2NvcyhfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgY29zZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19GQVNUX09SX1NMT1coX19udl9mYXN0X2Nvc2YsIF9fbnZfY29zZikoX19hKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBjb3NoKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfY29zaChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgY29zaGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Nvc2hmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgY29zcGkoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9jb3NwaShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgY29zcGlmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jb3NwaWYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBjeWxfYmVzc2VsX2kwKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfY3lsX2Jlc3NlbF9pMChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgY3lsX2Jlc3NlbF9pMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2N5bF9iZXNzZWxfaTBmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgY3lsX2Jlc3NlbF9pMShkb3VibGUgX19hKSB7IHJldHVybiBfX252X2N5bF9iZXNzZWxfaTEoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGN5bF9iZXNzZWxfaTFmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9jeWxfYmVzc2VsX2kxZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGVyZihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2VyZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGVyZmMoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9lcmZjKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBlcmZjZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmY2YoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBlcmZjaW52KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZXJmY2ludihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXJmY2ludmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2VyZmNpbnZmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZXJmY3goZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9lcmZjeChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZXJmY3hmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9lcmZjeGYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGVyZmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2VyZmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBlcmZpbnYoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9lcmZpbnYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGVyZmludmYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2VyZmludmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBleHAoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9leHAoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBleHAxMChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2V4cDEwKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBleHAxMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2V4cDEwZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGV4cDIoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9leHAyKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBleHAyZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZXhwMmYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGV4cGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2V4cGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBleHBtMShkb3VibGUgX19hKSB7IHJldHVybiBfX252X2V4cG0xKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBleHBtMWYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2V4cG0xZihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgZmFic2YoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZhYnNmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgZmRpbShkb3VibGUgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X2ZkaW0oX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgZmRpbWYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfZmRpbWYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZkaXZpZGUoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19hIC8gX19iOyB9Cl9fREVWSUNFX18gZmxvYXQgZmRpdmlkZWYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKI2lmIF9fRkFTVF9NQVRIX18gJiYgIV9fQ1VEQV9QUkVDX0RJVgogIHJldHVybiBfX252X2Zhc3RfZmRpdmlkZWYoX19hLCBfX2IpOwojZWxzZQogIHJldHVybiBfX2EgLyBfX2I7CiNlbmRpZgp9Cl9fREVWSUNFX18gZG91YmxlIGZsb29yKGRvdWJsZSBfX2YpIHsgcmV0dXJuIF9fbnZfZmxvb3IoX19mKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZsb29yZihmbG9hdCBfX2YpIHsgcmV0dXJuIF9fbnZfZmxvb3JmKF9fZik7IH0KX19ERVZJQ0VfXyBkb3VibGUgZm1hKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19udl9mbWEoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBmbWFmKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZG91YmxlIGZtYXgoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9mbWF4KF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZtYXhmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X2ZtYXhmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBmbWluKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsgcmV0dXJuIF9fbnZfZm1pbihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBmbWluZihmbG9hdCBfX2EsIGZsb2F0IF9fYikgeyByZXR1cm4gX19udl9mbWluZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgZm1vZChkb3VibGUgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X2Ztb2QoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgZm1vZGYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfZm1vZGYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIGZyZXhwKGRvdWJsZSBfX2EsIGludCAqX19iKSB7IHJldHVybiBfX252X2ZyZXhwKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IGZyZXhwZihmbG9hdCBfX2EsIGludCAqX19iKSB7IHJldHVybiBfX252X2ZyZXhwZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgaHlwb3QoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgeyByZXR1cm4gX19udl9oeXBvdChfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBoeXBvdGYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfaHlwb3RmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGludCBpbG9nYihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2lsb2diKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgaWxvZ2JmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9pbG9nYmYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBqMChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2owKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBqMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2owZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGoxKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfajEoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGoxZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfajFmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgam4oaW50IF9fbiwgZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9qbihfX24sIF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBqbmYoaW50IF9fbiwgZmxvYXQgX19hKSB7IHJldHVybiBfX252X2puZihfX24sIF9fYSk7IH0KI2lmIGRlZmluZWQoX19MUDY0X18pIHx8IGRlZmluZWQoX1dJTjY0KQpfX0RFVklDRV9fIGxvbmcgbGFicyhsb25nIF9fYSkgeyByZXR1cm4gX19udl9sbGFicyhfX2EpOyB9OwojZWxzZQpfX0RFVklDRV9fIGxvbmcgbGFicyhsb25nIF9fYSkgeyByZXR1cm4gX19udl9hYnMoX19hKTsgfTsKI2VuZGlmCl9fREVWSUNFX18gZG91YmxlIGxkZXhwKGRvdWJsZSBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfbGRleHAoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZmxvYXQgbGRleHBmKGZsb2F0IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9sZGV4cGYoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIGxnYW1tYShkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xnYW1tYShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgbGdhbW1hZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbGdhbW1hZihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxsYWJzKGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfbGxhYnMoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbG1heChsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfbGxtYXgoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxsbWluKGxvbmcgbG9uZyBfX2EsIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19udl9sbG1pbihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxyaW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfbGxyaW50KF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxyaW50ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbGxyaW50ZihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscm91bmQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sbHJvdW5kKF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxyb3VuZGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2xscm91bmRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgcm91bmQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9yb3VuZChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgcm91bmRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9yb3VuZGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBsb2coZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9sb2coX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBsb2cxMChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xvZzEwKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBsb2cxMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2xvZzEwZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIGxvZzFwKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfbG9nMXAoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxvZzFwZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbG9nMXBmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgbG9nMihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xvZzIoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxvZzJmKGZsb2F0IF9fYSkgewogIHJldHVybiBfX0ZBU1RfT1JfU0xPVyhfX252X2Zhc3RfbG9nMmYsIF9fbnZfbG9nMmYpKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgbG9nYihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2xvZ2IoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IGxvZ2JmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9sb2diZihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgbG9nZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19GQVNUX09SX1NMT1coX19udl9mYXN0X2xvZ2YsIF9fbnZfbG9nZikoX19hKTsKfQojaWYgZGVmaW5lZChfX0xQNjRfXykgfHwgZGVmaW5lZChfV0lONjQpCl9fREVWSUNFX18gbG9uZyBscmludChkb3VibGUgX19hKSB7IHJldHVybiBsbHJpbnQoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJpbnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19mbG9hdDJsbF9ybihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBscm91bmQoZG91YmxlIF9fYSkgeyByZXR1cm4gbGxyb3VuZChfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBscm91bmRmKGZsb2F0IF9fYSkgeyByZXR1cm4gbGxyb3VuZGYoX19hKTsgfQojZWxzZQpfX0RFVklDRV9fIGxvbmcgbHJpbnQoZG91YmxlIF9fYSkgeyByZXR1cm4gKGxvbmcpcmludChfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBscmludGYoZmxvYXQgX19hKSB7IHJldHVybiBfX2Zsb2F0MmludF9ybihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBscm91bmQoZG91YmxlIF9fYSkgeyByZXR1cm4gcm91bmQoX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbHJvdW5kZihmbG9hdCBfX2EpIHsgcmV0dXJuIHJvdW5kZihfX2EpOyB9CiNlbmRpZgpfX0RFVklDRV9fIGludCBtYXgoaW50IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9tYXgoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gaW50IG1pbihpbnQgX19hLCBpbnQgX19iKSB7IHJldHVybiBfX252X21pbihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgbW9kZihkb3VibGUgX19hLCBkb3VibGUgKl9fYikgeyByZXR1cm4gX19udl9tb2RmKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IG1vZGZmKGZsb2F0IF9fYSwgZmxvYXQgKl9fYikgeyByZXR1cm4gX19udl9tb2RmZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgbmVhcmJ5aW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fYnVpbHRpbl9uZWFyYnlpbnQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IG5lYXJieWludGYoZmxvYXQgX19hKSB7IHJldHVybiBfX2J1aWx0aW5fbmVhcmJ5aW50ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIG5leHRhZnRlcihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfbmV4dGFmdGVyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IG5leHRhZnRlcmYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9uZXh0YWZ0ZXJmKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBub3JtKGludCBfX2RpbSwgY29uc3QgZG91YmxlICpfX3QpIHsKICByZXR1cm4gX19udl9ub3JtKF9fZGltLCBfX3QpOwp9Cl9fREVWSUNFX18gZG91YmxlIG5vcm0zZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfbm9ybTNkKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgbm9ybTNkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfbm9ybTNkZihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBub3JtNGQoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYywgZG91YmxlIF9fZCkgewogIHJldHVybiBfX252X25vcm00ZChfX2EsIF9fYiwgX19jLCBfX2QpOwp9Cl9fREVWSUNFX18gZmxvYXQgbm9ybTRkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jLCBmbG9hdCBfX2QpIHsKICByZXR1cm4gX19udl9ub3JtNGRmKF9fYSwgX19iLCBfX2MsIF9fZCk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgbm9ybWNkZihkb3VibGUgX19hKSB7IHJldHVybiBfX252X25vcm1jZGYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IG5vcm1jZGZmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9ub3JtY2RmZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIG5vcm1jZGZpbnYoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9ub3JtY2RmaW52KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBub3JtY2RmaW52ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfbm9ybWNkZmludmYoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IG5vcm1mKGludCBfX2RpbSwgY29uc3QgZmxvYXQgKl9fdCkgewogIHJldHVybiBfX252X25vcm1mKF9fZGltLCBfX3QpOwp9Cl9fREVWSUNFX18gZG91YmxlIHBvdyhkb3VibGUgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X3BvdyhfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBwb3dmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7IHJldHVybiBfX252X3Bvd2YoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gZG91YmxlIHBvd2koZG91YmxlIF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9wb3dpKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IHBvd2lmKGZsb2F0IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9wb3dpZihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgcmNicnQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9yY2JydChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgcmNicnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9yY2JydGYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSByZW1haW5kZXIoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X3JlbWFpbmRlcihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCByZW1haW5kZXJmKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfcmVtYWluZGVyZihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgcmVtcXVvKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGludCAqX19jKSB7CiAgcmV0dXJuIF9fbnZfcmVtcXVvKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgcmVtcXVvZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgaW50ICpfX2MpIHsKICByZXR1cm4gX19udl9yZW1xdW9mKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZG91YmxlIHJoeXBvdChkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfcmh5cG90KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IHJoeXBvdGYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9yaHlwb3RmKF9fYSwgX19iKTsKfQovLyBfX252X3JpbnQqIGluIGxpYmRldmljZSBpcyBidWdneSBhbmQgcHJvZHVjZXMgaW5jb3JyZWN0IHJlc3VsdHMuCl9fREVWSUNFX18gZG91YmxlIHJpbnQoZG91YmxlIF9fYSkgeyByZXR1cm4gX19idWlsdGluX3JpbnQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHJpbnRmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19idWlsdGluX3JpbnRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgcm5vcm0oaW50IF9fYSwgY29uc3QgZG91YmxlICpfX2IpIHsKICByZXR1cm4gX19udl9ybm9ybShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgcm5vcm0zZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfcm5vcm0zZChfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IHJub3JtM2RmKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9ybm9ybTNkZihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBybm9ybTRkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsIGRvdWJsZSBfX2QpIHsKICByZXR1cm4gX19udl9ybm9ybTRkKF9fYSwgX19iLCBfX2MsIF9fZCk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBybm9ybTRkZihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jLCBmbG9hdCBfX2QpIHsKICByZXR1cm4gX19udl9ybm9ybTRkZihfX2EsIF9fYiwgX19jLCBfX2QpOwp9Cl9fREVWSUNFX18gZmxvYXQgcm5vcm1mKGludCBfX2RpbSwgY29uc3QgZmxvYXQgKl9fdCkgewogIHJldHVybiBfX252X3Jub3JtZihfX2RpbSwgX190KTsKfQpfX0RFVklDRV9fIGRvdWJsZSByc3FydChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3JzcXJ0KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCByc3FydGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3JzcXJ0ZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHNjYWxibihkb3VibGUgX19hLCBpbnQgX19iKSB7IHJldHVybiBfX252X3NjYWxibihfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBmbG9hdCBzY2FsYm5mKGZsb2F0IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9zY2FsYm5mKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBzY2FsYmxuKGRvdWJsZSBfX2EsIGxvbmcgX19iKSB7CiAgaWYgKF9fYiA+IElOVF9NQVgpCiAgICByZXR1cm4gX19hID4gMCA/IEhVR0VfVkFMIDogLUhVR0VfVkFMOwogIGlmIChfX2IgPCBJTlRfTUlOKQogICAgcmV0dXJuIF9fYSA+IDAgPyAwLjAgOiAtMC4wOwogIHJldHVybiBzY2FsYm4oX19hLCAoaW50KV9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBzY2FsYmxuZihmbG9hdCBfX2EsIGxvbmcgX19iKSB7CiAgaWYgKF9fYiA+IElOVF9NQVgpCiAgICByZXR1cm4gX19hID4gMCA/IEhVR0VfVkFMRiA6IC1IVUdFX1ZBTEY7CiAgaWYgKF9fYiA8IElOVF9NSU4pCiAgICByZXR1cm4gX19hID4gMCA/IDAuZiA6IC0wLmY7CiAgcmV0dXJuIHNjYWxibmYoX19hLCAoaW50KV9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgc2luKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfc2luKF9fYSk7IH0KX19ERVZJQ0VfVk9JRF9fIHZvaWQgc2luY29zKGRvdWJsZSBfX2EsIGRvdWJsZSAqX19zLCBkb3VibGUgKl9fYykgewogIHJldHVybiBfX252X3NpbmNvcyhfX2EsIF9fcywgX19jKTsKfQpfX0RFVklDRV9WT0lEX18gdm9pZCBzaW5jb3NmKGZsb2F0IF9fYSwgZmxvYXQgKl9fcywgZmxvYXQgKl9fYykgewogIHJldHVybiBfX0ZBU1RfT1JfU0xPVyhfX252X2Zhc3Rfc2luY29zZiwgX19udl9zaW5jb3NmKShfX2EsIF9fcywgX19jKTsKfQpfX0RFVklDRV9WT0lEX18gdm9pZCBzaW5jb3NwaShkb3VibGUgX19hLCBkb3VibGUgKl9fcywgZG91YmxlICpfX2MpIHsKICByZXR1cm4gX19udl9zaW5jb3NwaShfX2EsIF9fcywgX19jKTsKfQpfX0RFVklDRV9WT0lEX18gdm9pZCBzaW5jb3NwaWYoZmxvYXQgX19hLCBmbG9hdCAqX19zLCBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIF9fbnZfc2luY29zcGlmKF9fYSwgX19zLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgc2luZihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19GQVNUX09SX1NMT1coX19udl9mYXN0X3NpbmYsIF9fbnZfc2luZikoX19hKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBzaW5oKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfc2luaChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgc2luaGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3NpbmhmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgc2lucGkoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9zaW5waShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgc2lucGlmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9zaW5waWYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBzcXJ0KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfc3FydChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgc3FydGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X3NxcnRmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgdGFuKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfdGFuKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCB0YW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl90YW5mKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgdGFuaChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3RhbmgoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHRhbmhmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl90YW5oZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHRnYW1tYShkb3VibGUgX19hKSB7IHJldHVybiBfX252X3RnYW1tYShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgdGdhbW1hZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfdGdhbW1hZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIHRydW5jKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfdHJ1bmMoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHRydW5jZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfdHJ1bmNmKF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgdWxsbWF4KHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfdWxsbWF4KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGxtaW4odW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19udl91bGxtaW4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IHVtYXgodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3VtYXgoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IHVtaW4odW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3VtaW4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIHkwKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfeTAoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IHkwZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfeTBmKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgeTEoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl95MShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgeTFmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl95MWYoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSB5bihpbnQgX19hLCBkb3VibGUgX19iKSB7IHJldHVybiBfX252X3luKF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGZsb2F0IHluZihpbnQgX19hLCBmbG9hdCBfX2IpIHsgcmV0dXJuIF9fbnZfeW5mKF9fYSwgX19iKTsgfQoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX18iKQojcHJhZ21hIHBvcF9tYWNybygiX19ERVZJQ0VfVk9JRF9fIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fRkFTVF9PUl9TTE9XIikKCiNlbmRpZiAvLyBfX0NMQU5HX0NVREFfREVWSUNFX0ZVTkNUSU9OU19IX18KAGFybV9iZjE2LmgAYXZ4NTEyYml0YWxnaW50cmluLmgAYXZ4NTEyaWZtYWludHJpbi5oAGF2eDUxMnZibWl2bGludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJ2bHZubmlpbnRyaW4uaCAtIFZOTkkgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2bHZubmlpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxWTk5JSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMVk5OSUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmwsYXZ4NTEydm5uaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJ2bm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEEgd2l0aAovLy8gY29ycmVzcG9uZGluZyBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmpdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqXSkpCi8vLyAgICAgIHRtcDIud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMV0pKQovLy8gICAgICB0bXAzLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzJdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaiszXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaiszXSkpCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTI1Nl9kcGJ1c2RfZXBpMzIoUywgQSwgQikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZDI1NigoX192OHNpKShTKSwgKF9fdjhzaSkoQSksIChfX3Y4c2kpKEIpKSkKCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIFMgdXNpbmcgc2lnbmVkIHNhdHVyYXRpb24sIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBCVVNEUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgICBGT1IgaiA6PSAwIHRvIDcKLy8vICAgICAgdG1wMS53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmpdKSkKLy8vICAgICAgdG1wMi53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaisxXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMl0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMl0pKQovLy8gICAgICB0bXA0LndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzNdKSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyICsgdG1wMyArIHRtcDQpCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tMjU2X2RwYnVzZHNfZXBpMzIoUywgQSwgQikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMyNTYoKF9fdjhzaSkoUyksIChfX3Y4c2kpKEEpLCAoX192OHNpKShCKSkpCgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDIgYWRqYWNlbnQgcGFpcnMgb2Ygc2lnbmVkIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgUywKLy8vICBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgICBGT1IgaiA6PSAwIHRvIDcKLy8vICAgICAgdG1wMS5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKEIud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihBLndvcmRbMipqKzFdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tMjU2X2Rwd3NzZF9lcGkzMihTLCBBLCBCKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkMjU2KChfX3Y4c2kpKFMpLCAoX192OHNpKShBKSwgKF9fdjhzaSkoQikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBCLCBwcm9kdWNpbmcgMiBpbnRlcm1lZGlhdGUgc2lnbmVkIDMyLWJpdAovLy8gcmVzdWx0cy4gU3VtIHRoZXNlIDIgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluIFxhIFMKLy8vIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKEEud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqXSkKLy8vICAgICAgdG1wMi5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyKQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTI1Nl9kcHdzc2RzX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBkcHdzc2RzMjU2KChfX3Y4c2kpKFMpLCAoX192OHNpKShBKSwgKF9fdjhzaSkoQikpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEEgd2l0aAovLy8gY29ycmVzcG9uZGluZyBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmpdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqXSkpCi8vLyAgICAgIHRtcDIud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMV0pKQovLy8gICAgICB0bXAzLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzJdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaiszXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaiszXSkpCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbV9kcGJ1c2RfZXBpMzIoUywgQSwgQikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZDEyOCgoX192NHNpKShTKSwgKF9fdjRzaSkoQSksIChfX3Y0c2kpKEIpKSkKCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIFMgdXNpbmcgc2lnbmVkIHNhdHVyYXRpb24sIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBCVVNEUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgICBGT1IgaiA6PSAwIHRvIDMKLy8vICAgICAgdG1wMS53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmpdKSkKLy8vICAgICAgdG1wMi53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoQS5ieXRlWzQqaisxXSkgKiBTaWduRXh0ZW5kMTYoQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KEEuYnl0ZVs0KmorMl0pICogU2lnbkV4dGVuZDE2KEIuYnl0ZVs0KmorMl0pKQovLy8gICAgICB0bXA0LndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihBLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihCLmJ5dGVbNCpqKzNdKSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyICsgdG1wMyArIHRtcDQpCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MTI4XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tX2RwYnVzZHNfZXBpMzIoUywgQSwgQikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMxMjgoKF9fdjRzaSkoUyksIChfX3Y0c2kpKEEpLCAoX192NHNpKShCKSkpCgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDIgYWRqYWNlbnQgcGFpcnMgb2Ygc2lnbmVkIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgUywKLy8vIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBXU1NEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gMwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihBLndvcmRbMipqXSkgKiBTaWduRXh0ZW5kMzIoQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKEEud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKEIud29yZFsyKmorMV0pCi8vLyAgICAgIERTVC5kd29yZFtqXSA6PSBTLmR3b3JkW2pdICsgdG1wMSArIHRtcDIKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW1fZHB3c3NkX2VwaTMyKFMsIEEsIEIpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcHdzc2QxMjgoKF9fdjRzaSkoUyksIChfX3Y0c2kpKEEpLCAoX192NHNpKShCKSkpCgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDIgYWRqYWNlbnQgcGFpcnMgb2Ygc2lnbmVkIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBBIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXJzIGluIFxhIEIsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgUwovLy8gdXNpbmcgc2lnbmVkIHNhdHVyYXRpb24sIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBXU1NEUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgICBGT1IgaiA6PSAwIHRvIDMKLy8vICAgICAgdG1wMS5kd29yZCA6PSBTaWduRXh0ZW5kMzIoQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKEIud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihBLndvcmRbMipqKzFdKSAqIFNpZ25FeHRlbmQzMihCLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihTLmR3b3JkW2pdICsgdG1wMSArIHRtcDIpCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MTI4XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tX2Rwd3NzZHNfZXBpMzIoUywgQSwgQikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZHMxMjgoKF9fdjRzaSkoUyksIChfX3Y0c2kpKEEpLCAoX192NHNpKShCKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19kcGJ1c2RfZXBpMzIoX19tMjU2aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2RwYnVzZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHBidXNkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZHBidXNkc19lcGkzMihfX20yNTZpIF9fUywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcGJ1c2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9kcGJ1c2RzX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcGJ1c2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZHB3c3NkX2VwaTMyKF9fbTI1NmkgX19TLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcHdzc2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9kcHdzc2RfZXBpMzIoX19tbWFzazggX19VLCBfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Rwd3NzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Rwd3NzZHNfZXBpMzIoX19tMjU2aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfZHB3c3Nkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZHB3c3Nkc19lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9kcHdzc2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kcGJ1c2RfZXBpMzIoX19tMTI4aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2RwYnVzZF9lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2RwYnVzZF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fZHBidXNkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZHBidXNkc19lcGkzMihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9kcGJ1c2RzX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fUyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kcGJ1c2RzX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2RwYnVzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Rwd3NzZF9lcGkzMihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fZHB3c3NkX2VwaTMyKF9fUywgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZHB3c3NkX2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9kcHdzc2RfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kcHdzc2RzX2VwaTMyKF9fbTEyOGkgX19TLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2Rwd3NzZHNfZXBpMzIoX19TLCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19TKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Rwd3NzZHNfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fZHB3c3Nkc19lcGkzMihfX1MsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAC8qID09PS0tLS0tLS0tIGludHJpbi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogT25seSBpbmNsdWRlIHRoaXMgaWYgd2UncmUgY29tcGlsaW5nIGZvciB0aGUgd2luZG93cyBwbGF0Zm9ybS4gKi8KI2lmbmRlZiBfTVNDX1ZFUgojaW5jbHVkZV9uZXh0IDxpbnRyaW4uaD4KI2Vsc2UKCiNpZm5kZWYgX19JTlRSSU5fSAojZGVmaW5lIF9fSU5UUklOX0gKCi8qIEZpcnN0IGluY2x1ZGUgdGhlIHN0YW5kYXJkIGludHJpbnNpY3MuICovCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCiNpbmNsdWRlIDx4ODZpbnRyaW4uaD4KI2VuZGlmCgojaWYgZGVmaW5lZChfX2FybV9fKQojaW5jbHVkZSA8YXJtaW50ci5oPgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaW5jbHVkZSA8YXJtNjRpbnRyLmg+CiNlbmRpZgoKLyogRm9yIHRoZSBkZWZpbml0aW9uIG9mIGptcF9idWYuICovCiNpZiBfX1NURENfSE9TVEVEX18KI2luY2x1ZGUgPHNldGptcC5oPgojZW5kaWYKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKCiNpZiBfX3g4Nl82NF9fCiNkZWZpbmUgX19MUFRSSU5UX1RZUEVfXyBfX2ludDY0CiNlbHNlCiNkZWZpbmUgX19MUFRSSU5UX1RZUEVfXyBsb25nCiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCiNpZiBkZWZpbmVkKF9fTU1YX18pCi8qIEFuZCB0aGUgcmFuZG9tIG9uZXMgdGhhdCBhcmVuJ3QgaW4gdGhvc2UgZmlsZXMuICovCl9fbTY0IF9tX2Zyb21fZmxvYXQoZmxvYXQpOwpmbG9hdCBfbV90b19mbG9hdChfX202NCk7CiNlbmRpZgoKLyogT3RoZXIgYXNzb3J0ZWQgaW5zdHJ1Y3Rpb24gaW50cmluc2ljcy4gKi8Kdm9pZCBfX2FkZGZzYnl0ZSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBjaGFyKTsKdm9pZCBfX2FkZGZzZHdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CnZvaWQgX19hZGRmc3dvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgc2hvcnQpOwp2b2lkIF9fY29kZV9zZWcoY29uc3QgY2hhciAqKTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX2NwdWlkKGludFs0XSwgaW50KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX2NwdWlkZXgoaW50WzRdLCBpbnQsIGludCk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX19lbXVsKGludCwgaW50KTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgX19pbnQ2NCBfX2VtdWx1KHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKdW5zaWduZWQgaW50IF9fZ2V0Y2FsbGVyc2VmbGFncyh2b2lkKTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX2hhbHQodm9pZCk7CnVuc2lnbmVkIGNoYXIgX19pbmJ5dGUodW5zaWduZWQgc2hvcnQpOwp2b2lkIF9faW5ieXRlc3RyaW5nKHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBjaGFyICosIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9faW5jZnNieXRlKHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9faW5jZnNkd29yZCh1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2luY2Zzd29yZCh1bnNpZ25lZCBsb25nKTsKdW5zaWduZWQgbG9uZyBfX2luZHdvcmQodW5zaWduZWQgc2hvcnQpOwp2b2lkIF9faW5kd29yZHN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgbG9uZyAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2ludDJjKHZvaWQpOwp2b2lkIF9faW52bHBnKHZvaWQgKik7CnVuc2lnbmVkIHNob3J0IF9faW53b3JkKHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX2lud29yZHN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgc2hvcnQgKiwgdW5zaWduZWQgbG9uZyk7CnZvaWQgX19saWR0KHZvaWQgKik7CnVuc2lnbmVkIF9faW50NjQgX19sbF9sc2hpZnQodW5zaWduZWQgX19pbnQ2NCwgaW50KTsKX19pbnQ2NCBfX2xsX3JzaGlmdChfX2ludDY0LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fbW92c2IodW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFyIGNvbnN0ICosIHNpemVfdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19tb3ZzZCh1bnNpZ25lZCBsb25nICosIHVuc2lnbmVkIGxvbmcgY29uc3QgKiwgc2l6ZV90KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX21vdnN3KHVuc2lnbmVkIHNob3J0ICosIHVuc2lnbmVkIHNob3J0IGNvbnN0ICosIHNpemVfdCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19ub3Aodm9pZCk7CnZvaWQgX19udnJlZ19yZXN0b3JlX2ZlbmNlKHZvaWQpOwp2b2lkIF9fbnZyZWdfc2F2ZV9mZW5jZSh2b2lkKTsKdm9pZCBfX291dGJ5dGUodW5zaWduZWQgc2hvcnQsIHVuc2lnbmVkIGNoYXIpOwp2b2lkIF9fb3V0Ynl0ZXN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX291dGR3b3JkKHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX291dGR3b3Jkc3RyaW5nKHVuc2lnbmVkIHNob3J0LCB1bnNpZ25lZCBsb25nICosIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9fb3V0d29yZCh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgc2hvcnQpOwp2b2lkIF9fb3V0d29yZHN0cmluZyh1bnNpZ25lZCBzaG9ydCwgdW5zaWduZWQgc2hvcnQgKiwgdW5zaWduZWQgbG9uZyk7CnVuc2lnbmVkIGxvbmcgX19yZWFkY3IwKHZvaWQpOwp1bnNpZ25lZCBsb25nIF9fcmVhZGNyMih2b2lkKTsKdW5zaWduZWQgX19MUFRSSU5UX1RZUEVfXyBfX3JlYWRjcjModm9pZCk7CnVuc2lnbmVkIGxvbmcgX19yZWFkY3I0KHZvaWQpOwp1bnNpZ25lZCBsb25nIF9fcmVhZGNyOCh2b2lkKTsKdW5zaWduZWQgaW50IF9fcmVhZGRyKHVuc2lnbmVkIGludCk7CiNpZmRlZiBfX2kzODZfXwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBjaGFyIF9fcmVhZGZzYnl0ZSh1bnNpZ25lZCBsb25nKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgc2hvcnQgX19yZWFkZnN3b3JkKHVuc2lnbmVkIGxvbmcpOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBsb25nIF9fcmVhZGZzZHdvcmQodW5zaWduZWQgbG9uZyk7CnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIF9faW50NjQgX19yZWFkZnNxd29yZCh1bnNpZ25lZCBsb25nKTsKI2VuZGlmCnN0YXRpYyBfX2lubGluZV9fCnVuc2lnbmVkIF9faW50NjQgX19yZWFkbXNyKHVuc2lnbmVkIGxvbmcpOwp1bnNpZ25lZCBfX2ludDY0IF9fcmVhZHBtYyh1bnNpZ25lZCBsb25nKTsKdW5zaWduZWQgbG9uZyBfX3NlZ21lbnRsaW1pdCh1bnNpZ25lZCBsb25nKTsKdm9pZCBfX3NpZHQodm9pZCAqKTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX3N0b3NiKHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciwgc2l6ZV90KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX3N0b3NkKHVuc2lnbmVkIGxvbmcgKiwgdW5zaWduZWQgbG9uZywgc2l6ZV90KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX3N0b3N3KHVuc2lnbmVkIHNob3J0ICosIHVuc2lnbmVkIHNob3J0LCBzaXplX3QpOwp2b2lkIF9fc3ZtX2NsZ2kodm9pZCk7CnZvaWQgX19zdm1faW52bHBnYSh2b2lkICosIGludCk7CnZvaWQgX19zdm1fc2tpbml0KGludCk7CnZvaWQgX19zdm1fc3RnaSh2b2lkKTsKdm9pZCBfX3N2bV92bWxvYWQoc2l6ZV90KTsKdm9pZCBfX3N2bV92bXJ1bihzaXplX3QpOwp2b2lkIF9fc3ZtX3Ztc2F2ZShzaXplX3QpOwp2b2lkIF9fdWQyKHZvaWQpOwp1bnNpZ25lZCBfX2ludDY0IF9fdWxsX3JzaGlmdCh1bnNpZ25lZCBfX2ludDY0LCBpbnQpOwp2b2lkIF9fdm14X29mZih2b2lkKTsKdm9pZCBfX3ZteF92bXB0cnN0KHVuc2lnbmVkIF9faW50NjQgKik7CnZvaWQgX193YmludmQodm9pZCk7CnZvaWQgX193cml0ZWNyMCh1bnNpZ25lZCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fd3JpdGVjcjModW5zaWduZWQgX19JTlRQVFJfVFlQRV9fKTsKdm9pZCBfX3dyaXRlY3I0KHVuc2lnbmVkIGludCk7CnZvaWQgX193cml0ZWNyOCh1bnNpZ25lZCBpbnQpOwp2b2lkIF9fd3JpdGVkcih1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CnZvaWQgX193cml0ZWZzYnl0ZSh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBjaGFyKTsKdm9pZCBfX3dyaXRlZnNkd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBsb25nKTsKdm9pZCBfX3dyaXRlZnNxd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBfX2ludDY0KTsKdm9pZCBfX3dyaXRlZnN3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIHNob3J0KTsKdm9pZCBfX3dyaXRlbXNyKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIF9faW50NjQpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkICpfQWRkcmVzc09mUmV0dXJuQWRkcmVzcyh2b2lkKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfQml0U2NhbkZvcndhcmQodW5zaWduZWQgbG9uZyAqX0luZGV4LCB1bnNpZ25lZCBsb25nIF9NYXNrKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfQml0U2NhblJldmVyc2UodW5zaWduZWQgbG9uZyAqX0luZGV4LCB1bnNpZ25lZCBsb25nIF9NYXNrKTsKdW5zaWduZWQgY2hhciBfYml0dGVzdChsb25nIGNvbnN0ICosIGxvbmcpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0YW5kY29tcGxlbWVudChsb25nICosIGxvbmcpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0YW5kcmVzZXQobG9uZyAqLCBsb25nKTsKdW5zaWduZWQgY2hhciBfYml0dGVzdGFuZHNldChsb25nICosIGxvbmcpOwp2b2lkIF9fY2RlY2wgX2Rpc2FibGUodm9pZCk7CnZvaWQgX19jZGVjbCBfZW5hYmxlKHZvaWQpOwpsb25nIF9JbnRlcmxvY2tlZEFkZExhcmdlU3RhdGlzdGljKF9faW50NjQgdm9sYXRpbGUgKl9BZGRlbmQsIGxvbmcgX1ZhbHVlKTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kcmVzZXQobG9uZyB2b2xhdGlsZSAqLCBsb25nKTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kc2V0KGxvbmcgdm9sYXRpbGUgKiwgbG9uZyk7CnZvaWQgKl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXJfSExFQWNxdWlyZSh2b2lkICp2b2xhdGlsZSAqLCB2b2lkICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICopOwp2b2lkICpfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VQb2ludGVyX0hMRVJlbGVhc2Uodm9pZCAqdm9sYXRpbGUgKiwgdm9pZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKTsKbG9uZyBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZF9ITEVBY3F1aXJlKGxvbmcgdm9sYXRpbGUgKiwgbG9uZyk7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGRfSExFUmVsZWFzZShsb25nIHZvbGF0aWxlICosIGxvbmcpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkNjRfSExFQWNxdWlyZShfX2ludDY0IHZvbGF0aWxlICosIF9faW50NjQpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkNjRfSExFUmVsZWFzZShfX2ludDY0IHZvbGF0aWxlICosIF9faW50NjQpOwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCl9fYXR0cmlidXRlX18oKF9fZGVwcmVjYXRlZF9fKCJ1c2Ugb3RoZXIgaW50cmluc2ljcyBvciBDKysxMSBhdG9taWNzIGluc3RlYWQiKSkpCl9SZWFkQmFycmllcih2b2lkKTsKc3RhdGljIF9faW5saW5lX18gdm9pZApfX2F0dHJpYnV0ZV9fKChfX2RlcHJlY2F0ZWRfXygidXNlIG90aGVyIGludHJpbnNpY3Mgb3IgQysrMTEgYXRvbWljcyBpbnN0ZWFkIikpKQpfUmVhZFdyaXRlQmFycmllcih2b2lkKTsKdW5zaWduZWQgaW50IF9yb3J4X3UzMih1bnNpZ25lZCBpbnQsIGNvbnN0IHVuc2lnbmVkIGludCk7CmludCBfc2FyeF9pMzIoaW50LCB1bnNpZ25lZCBpbnQpOwojaWYgX19TVERDX0hPU1RFRF9fCmludCBfX2NkZWNsIF9zZXRqbXAoam1wX2J1Zik7CiNlbmRpZgp1bnNpZ25lZCBpbnQgX3NobHhfdTMyKHVuc2lnbmVkIGludCwgdW5zaWduZWQgaW50KTsKdW5zaWduZWQgaW50IF9zaHJ4X3UzMih1bnNpZ25lZCBpbnQsIHVuc2lnbmVkIGludCk7CnZvaWQgX1N0b3JlX0hMRVJlbGVhc2UobG9uZyB2b2xhdGlsZSAqLCBsb25nKTsKdm9pZCBfU3RvcmU2NF9ITEVSZWxlYXNlKF9faW50NjQgdm9sYXRpbGUgKiwgX19pbnQ2NCk7CnZvaWQgX1N0b3JlUG9pbnRlcl9ITEVSZWxlYXNlKHZvaWQgKnZvbGF0aWxlICosIHZvaWQgKik7CnN0YXRpYyBfX2lubGluZV9fIHZvaWQKX19hdHRyaWJ1dGVfXygoX19kZXByZWNhdGVkX18oInVzZSBvdGhlciBpbnRyaW5zaWNzIG9yIEMrKzExIGF0b21pY3MgaW5zdGVhZCIpKSkKX1dyaXRlQmFycmllcih2b2lkKTsKdW5zaWduZWQgX19pbnQzMiB4YmVnaW4odm9pZCk7CnZvaWQgX3hlbmQodm9pZCk7CgovKiBUaGVzZSBhZGRpdGlvbmFsIGludHJpbnNpY3MgYXJlIHR1cm5lZCBvbiBpbiB4NjQvYW1kNjQveDg2XzY0IG1vZGUuICovCiNpZmRlZiBfX3g4Nl82NF9fCnZvaWQgX19hZGRnc2J5dGUodW5zaWduZWQgbG9uZywgdW5zaWduZWQgY2hhcik7CnZvaWQgX19hZGRnc2R3b3JkKHVuc2lnbmVkIGxvbmcsIHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9fYWRkZ3Nxd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBfX2ludDY0KTsKdm9pZCBfX2FkZGdzd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBzaG9ydCk7CnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX19mYXN0c3RvcmVmZW5jZSh2b2lkKTsKdm9pZCBfX2luY2dzYnl0ZSh1bnNpZ25lZCBsb25nKTsKdm9pZCBfX2luY2dzZHdvcmQodW5zaWduZWQgbG9uZyk7CnZvaWQgX19pbmNnc3F3b3JkKHVuc2lnbmVkIGxvbmcpOwp2b2lkIF9faW5jZ3N3b3JkKHVuc2lnbmVkIGxvbmcpOwpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9fbW92c3EodW5zaWduZWQgbG9uZyBsb25nICosIHVuc2lnbmVkIGxvbmcgbG9uZyBjb25zdCAqLCBzaXplX3QpOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBjaGFyIF9fcmVhZGdzYnl0ZSh1bnNpZ25lZCBsb25nKTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgbG9uZyBfX3JlYWRnc2R3b3JkKHVuc2lnbmVkIGxvbmcpOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBfX2ludDY0IF9fcmVhZGdzcXdvcmQodW5zaWduZWQgbG9uZyk7CnVuc2lnbmVkIHNob3J0IF9fcmVhZGdzd29yZCh1bnNpZ25lZCBsb25nKTsKdW5zaWduZWQgX19pbnQ2NCBfX3NoaWZ0bGVmdDEyOCh1bnNpZ25lZCBfX2ludDY0IF9Mb3dQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9faW50NjQgX0hpZ2hQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX1NoaWZ0KTsKdW5zaWduZWQgX19pbnQ2NCBfX3NoaWZ0cmlnaHQxMjgodW5zaWduZWQgX19pbnQ2NCBfTG93UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgX19pbnQ2NCBfSGlnaFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX1NoaWZ0KTsKc3RhdGljIF9faW5saW5lX18Kdm9pZCBfX3N0b3NxKHVuc2lnbmVkIF9faW50NjQgKiwgdW5zaWduZWQgX19pbnQ2NCwgc2l6ZV90KTsKdW5zaWduZWQgY2hhciBfX3ZteF9vbih1bnNpZ25lZCBfX2ludDY0ICopOwp1bnNpZ25lZCBjaGFyIF9fdm14X3ZtY2xlYXIodW5zaWduZWQgX19pbnQ2NCAqKTsKdW5zaWduZWQgY2hhciBfX3ZteF92bWxhdW5jaCh2b2lkKTsKdW5zaWduZWQgY2hhciBfX3ZteF92bXB0cmxkKHVuc2lnbmVkIF9faW50NjQgKik7CnVuc2lnbmVkIGNoYXIgX192bXhfdm1yZWFkKHNpemVfdCwgc2l6ZV90ICopOwp1bnNpZ25lZCBjaGFyIF9fdm14X3ZtcmVzdW1lKHZvaWQpOwp1bnNpZ25lZCBjaGFyIF9fdm14X3Ztd3JpdGUoc2l6ZV90LCBzaXplX3QpOwp2b2lkIF9fd3JpdGVnc2J5dGUodW5zaWduZWQgbG9uZywgdW5zaWduZWQgY2hhcik7CnZvaWQgX193cml0ZWdzZHdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgbG9uZyk7CnZvaWQgX193cml0ZWdzcXdvcmQodW5zaWduZWQgbG9uZywgdW5zaWduZWQgX19pbnQ2NCk7CnZvaWQgX193cml0ZWdzd29yZCh1bnNpZ25lZCBsb25nLCB1bnNpZ25lZCBzaG9ydCk7CnVuc2lnbmVkIGNoYXIgX2JpdHRlc3Q2NChfX2ludDY0IGNvbnN0ICosIF9faW50NjQpOwp1bnNpZ25lZCBjaGFyIF9iaXR0ZXN0YW5kY29tcGxlbWVudDY0KF9faW50NjQgKiwgX19pbnQ2NCk7CnVuc2lnbmVkIGNoYXIgX2JpdHRlc3RhbmRyZXNldDY0KF9faW50NjQgKiwgX19pbnQ2NCk7CnVuc2lnbmVkIGNoYXIgX2JpdHRlc3RhbmRzZXQ2NChfX2ludDY0ICosIF9faW50NjQpOwpsb25nIF9JbnRlcmxvY2tlZEFuZF9ucChsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRBbmQxNl9ucChzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkQW5kNjRfbnAoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKY2hhciBfSW50ZXJsb2NrZWRBbmQ4X25wKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHJlc2V0NjQoX19pbnQ2NCB2b2xhdGlsZSAqLCBfX2ludDY0KTsKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kc2V0NjQoX19pbnQ2NCB2b2xhdGlsZSAqLCBfX2ludDY0KTsKbG9uZyBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2VfbnAobG9uZyB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLCBsb25nIF9FeGNoYW5nZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfQ29tcGFyYW5kKTsKdW5zaWduZWQgY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxMjhfbnAoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlTG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0ICpfQ29tcGFyYW5kUmVzdWx0KTsKc2hvcnQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTZfbnAoc2hvcnQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgX0V4Y2hhbmdlLCBzaG9ydCBfQ29tcGFyYW5kKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NF9ucChfX2ludDY0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2UsIF9faW50NjQgX0NvbXBhcmFuZCk7CnZvaWQgKl9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZVBvaW50ZXJfbnAodm9pZCAqdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpfRXhjaGFuZ2UsIHZvaWQgKl9Db21wYXJhbmQpOwpsb25nIF9JbnRlcmxvY2tlZE9yX25wKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZE9yMTZfbnAoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZE9yNjRfbnAoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKY2hhciBfSW50ZXJsb2NrZWRPcjhfbnAoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRYb3JfbnAobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkWG9yMTZfbnAoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZFhvcjY0X25wKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkWG9yOF9ucChjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwp1bnNpZ25lZCBfX2ludDY0IF9yb3J4X3U2NCh1bnNpZ25lZCBfX2ludDY0LCBjb25zdCB1bnNpZ25lZCBpbnQpOwpfX2ludDY0IF9zYXJ4X2k2NChfX2ludDY0LCB1bnNpZ25lZCBpbnQpOwp1bnNpZ25lZCBfX2ludDY0IF9zaGx4X3U2NCh1bnNpZ25lZCBfX2ludDY0LCB1bnNpZ25lZCBpbnQpOwp1bnNpZ25lZCBfX2ludDY0IF9zaHJ4X3U2NCh1bnNpZ25lZCBfX2ludDY0LCB1bnNpZ25lZCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXwpfX2ludDY0IF9fbXVsaChfX2ludDY0LCBfX2ludDY0KTsKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgX19pbnQ2NCBfX3VtdWxoKHVuc2lnbmVkIF9faW50NjQsIHVuc2lnbmVkIF9faW50NjQpOwpzdGF0aWMgX19pbmxpbmVfXwpfX2ludDY0IF9tdWwxMjgoX19pbnQ2NCwgX19pbnQ2NCwgX19pbnQ2NCopOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBfX2ludDY0IF91bXVsMTI4KHVuc2lnbmVkIF9faW50NjQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgX19pbnQ2NCwKICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBfX2ludDY0Kik7CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQoKc3RhdGljIF9faW5saW5lX18KdW5zaWduZWQgY2hhciBfQml0U2NhbkZvcndhcmQ2NCh1bnNpZ25lZCBsb25nICpfSW5kZXgsIHVuc2lnbmVkIF9faW50NjQgX01hc2spOwpzdGF0aWMgX19pbmxpbmVfXwp1bnNpZ25lZCBjaGFyIF9CaXRTY2FuUmV2ZXJzZTY0KHVuc2lnbmVkIGxvbmcgKl9JbmRleCwgdW5zaWduZWQgX19pbnQ2NCBfTWFzayk7CgojZW5kaWYKCiNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWREZWNyZW1lbnQ2NChfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZTY0KF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDY0KF9faW50NjQgdm9sYXRpbGUgKl9BZGRlbmQsIF9faW50NjQgX1ZhbHVlKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZVN1YjY0KF9faW50NjQgdm9sYXRpbGUgKl9TdWJlbmQsIF9faW50NjQgX1ZhbHVlKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRJbmNyZW1lbnQ2NChfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRPcjY0KF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CnN0YXRpYyBfX2lubGluZV9fCl9faW50NjQgX0ludGVybG9ja2VkWG9yNjQoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKc3RhdGljIF9faW5saW5lX18KX19pbnQ2NCBfSW50ZXJsb2NrZWRBbmQ2NChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwoKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBFeGNoYW5nZSBBZGQKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKY2hhciBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDhfYWNxKGNoYXIgdm9sYXRpbGUgKl9BZGRlbmQsIGNoYXIgX1ZhbHVlKTsKY2hhciBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDhfbmYoY2hhciB2b2xhdGlsZSAqX0FkZGVuZCwgY2hhciBfVmFsdWUpOwpjaGFyIF9JbnRlcmxvY2tlZEV4Y2hhbmdlQWRkOF9yZWwoY2hhciB2b2xhdGlsZSAqX0FkZGVuZCwgY2hhciBfVmFsdWUpOwpzaG9ydCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX0FkZGVuZCwgc2hvcnQgX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQxNl9uZihzaG9ydCB2b2xhdGlsZSAqX0FkZGVuZCwgc2hvcnQgX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQxNl9yZWwoc2hvcnQgdm9sYXRpbGUgKl9BZGRlbmQsIHNob3J0IF9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGRfYWNxKGxvbmcgdm9sYXRpbGUgKl9BZGRlbmQsIGxvbmcgX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZF9uZihsb25nIHZvbGF0aWxlICpfQWRkZW5kLCBsb25nIF9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGRfcmVsKGxvbmcgdm9sYXRpbGUgKl9BZGRlbmQsIGxvbmcgX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRFeGNoYW5nZUFkZDY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kLCBfX2ludDY0IF9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ2NF9uZihfX2ludDY0IHZvbGF0aWxlICpfQWRkZW5kLCBfX2ludDY0IF9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2VBZGQ2NF9yZWwoX19pbnQ2NCB2b2xhdGlsZSAqX0FkZGVuZCwgX19pbnQ2NCBfVmFsdWUpOwojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgSW5jcmVtZW50ClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCnNob3J0IF9JbnRlcmxvY2tlZEluY3JlbWVudDE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkSW5jcmVtZW50MTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEluY3JlbWVudDE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWRJbmNyZW1lbnRfYWNxKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkSW5jcmVtZW50X25mKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkSW5jcmVtZW50X3JlbChsb25nIHZvbGF0aWxlICpfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEluY3JlbWVudDY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEluY3JlbWVudDY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkSW5jcmVtZW50NjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSk7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBJbnRlcmxvY2tlZCBEZWNyZW1lbnQKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKc2hvcnQgX0ludGVybG9ja2VkRGVjcmVtZW50MTZfYWNxKHNob3J0IHZvbGF0aWxlICpfVmFsdWUpOwpzaG9ydCBfSW50ZXJsb2NrZWREZWNyZW1lbnQxNl9uZihzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRGVjcmVtZW50MTZfcmVsKHNob3J0IHZvbGF0aWxlICpfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZERlY3JlbWVudF9hY3EobG9uZyB2b2xhdGlsZSAqX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWREZWNyZW1lbnRfbmYobG9uZyB2b2xhdGlsZSAqX1ZhbHVlKTsKbG9uZyBfSW50ZXJsb2NrZWREZWNyZW1lbnRfcmVsKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRGVjcmVtZW50NjRfYWNxKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRGVjcmVtZW50NjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWREZWNyZW1lbnQ2NF9yZWwoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIEFuZApcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQpjaGFyIF9JbnRlcmxvY2tlZEFuZDhfYWNxKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkQW5kOF9uZihjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpjaGFyIF9JbnRlcmxvY2tlZEFuZDhfcmVsKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZEFuZDE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZEFuZDE2X25mKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkQW5kMTZfcmVsKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRBbmRfYWNxKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkQW5kX25mKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkQW5kX3JlbChsb25nIHZvbGF0aWxlICpfVmFsdWUsIGxvbmcgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZEFuZDY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZEFuZDY0X25mKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkQW5kNjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7CiNlbmRpZgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBCaXQgQ291bnRpbmcgYW5kIFRlc3RpbmcKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKdW5zaWduZWQgY2hhciBfaW50ZXJsb2NrZWRiaXR0ZXN0YW5kc2V0X2FjcShsb25nIHZvbGF0aWxlICpfQml0QmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRzZXRfbmYobG9uZyB2b2xhdGlsZSAqX0JpdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRzZXRfcmVsKGxvbmcgdm9sYXRpbGUgKl9CaXRCYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0JpdFBvcyk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHJlc2V0X2FjcShsb25nIHZvbGF0aWxlICpfQml0QmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0JpdFBvcyk7CnVuc2lnbmVkIGNoYXIgX2ludGVybG9ja2VkYml0dGVzdGFuZHJlc2V0X25mKGxvbmcgdm9sYXRpbGUgKl9CaXRCYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwp1bnNpZ25lZCBjaGFyIF9pbnRlcmxvY2tlZGJpdHRlc3RhbmRyZXNldF9yZWwobG9uZyB2b2xhdGlsZSAqX0JpdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9CaXRQb3MpOwojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgT3IKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKY2hhciBfSW50ZXJsb2NrZWRPcjhfYWNxKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkT3I4X25mKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkT3I4X3JlbChjaGFyIHZvbGF0aWxlICpfVmFsdWUsIGNoYXIgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRPcjE2X2FjcShzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CnNob3J0IF9JbnRlcmxvY2tlZE9yMTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRPcjE2X3JlbChzaG9ydCB2b2xhdGlsZSAqX1ZhbHVlLCBzaG9ydCBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkT3JfYWNxKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7CmxvbmcgX0ludGVybG9ja2VkT3JfbmYobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRPcl9yZWwobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRPcjY0X2FjcShfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwpfX2ludDY0IF9JbnRlcmxvY2tlZE9yNjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRPcjY0X3JlbChfX2ludDY0IHZvbGF0aWxlICpfVmFsdWUsIF9faW50NjQgX01hc2spOwojZW5kaWYKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogSW50ZXJsb2NrZWQgWG9yClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCmNoYXIgX0ludGVybG9ja2VkWG9yOF9hY3EoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKY2hhciBfSW50ZXJsb2NrZWRYb3I4X25mKGNoYXIgdm9sYXRpbGUgKl9WYWx1ZSwgY2hhciBfTWFzayk7CmNoYXIgX0ludGVybG9ja2VkWG9yOF9yZWwoY2hhciB2b2xhdGlsZSAqX1ZhbHVlLCBjaGFyIF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkWG9yMTZfYWNxKHNob3J0IHZvbGF0aWxlICpfVmFsdWUsIHNob3J0IF9NYXNrKTsKc2hvcnQgX0ludGVybG9ja2VkWG9yMTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpzaG9ydCBfSW50ZXJsb2NrZWRYb3IxNl9yZWwoc2hvcnQgdm9sYXRpbGUgKl9WYWx1ZSwgc2hvcnQgX01hc2spOwpsb25nIF9JbnRlcmxvY2tlZFhvcl9hY3EobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRYb3JfbmYobG9uZyB2b2xhdGlsZSAqX1ZhbHVlLCBsb25nIF9NYXNrKTsKbG9uZyBfSW50ZXJsb2NrZWRYb3JfcmVsKGxvbmcgdm9sYXRpbGUgKl9WYWx1ZSwgbG9uZyBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkWG9yNjRfYWNxKF9faW50NjQgdm9sYXRpbGUgKl9WYWx1ZSwgX19pbnQ2NCBfTWFzayk7Cl9faW50NjQgX0ludGVybG9ja2VkWG9yNjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRYb3I2NF9yZWwoX19pbnQ2NCB2b2xhdGlsZSAqX1ZhbHVlLCBfX2ludDY0IF9NYXNrKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIEV4Y2hhbmdlClwqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCmNoYXIgX0ludGVybG9ja2VkRXhjaGFuZ2U4X2FjcShjaGFyIHZvbGF0aWxlICpfVGFyZ2V0LCBjaGFyIF9WYWx1ZSk7CmNoYXIgX0ludGVybG9ja2VkRXhjaGFuZ2U4X25mKGNoYXIgdm9sYXRpbGUgKl9UYXJnZXQsIGNoYXIgX1ZhbHVlKTsKY2hhciBfSW50ZXJsb2NrZWRFeGNoYW5nZThfcmVsKGNoYXIgdm9sYXRpbGUgKl9UYXJnZXQsIGNoYXIgX1ZhbHVlKTsKc2hvcnQgX0ludGVybG9ja2VkRXhjaGFuZ2UxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9UYXJnZXQsIHNob3J0IF9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlMTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9UYXJnZXQsIHNob3J0IF9WYWx1ZSk7CnNob3J0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlMTZfcmVsKHNob3J0IHZvbGF0aWxlICpfVGFyZ2V0LCBzaG9ydCBfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlX2FjcShsb25nIHZvbGF0aWxlICpfVGFyZ2V0LCBsb25nIF9WYWx1ZSk7CmxvbmcgX0ludGVybG9ja2VkRXhjaGFuZ2VfbmYobG9uZyB2b2xhdGlsZSAqX1RhcmdldCwgbG9uZyBfVmFsdWUpOwpsb25nIF9JbnRlcmxvY2tlZEV4Y2hhbmdlX3JlbChsb25nIHZvbGF0aWxlICpfVGFyZ2V0LCBsb25nIF9WYWx1ZSk7Cl9faW50NjQgX0ludGVybG9ja2VkRXhjaGFuZ2U2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX1RhcmdldCwgX19pbnQ2NCBfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlNjRfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX1RhcmdldCwgX19pbnQ2NCBfVmFsdWUpOwpfX2ludDY0IF9JbnRlcmxvY2tlZEV4Y2hhbmdlNjRfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9UYXJnZXQsIF9faW50NjQgX1ZhbHVlKTsKI2VuZGlmCi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSpcCnwqIEludGVybG9ja2VkIENvbXBhcmUgRXhjaGFuZ2UKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U4X2FjcShjaGFyIHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBfRXhjaGFuZ2UsIGNoYXIgX0NvbXBhcmFuZCk7CmNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlOF9uZihjaGFyIHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciBfRXhjaGFuZ2UsIGNoYXIgX0NvbXBhcmFuZCk7CmNoYXIgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlOF9yZWwoY2hhciB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgX0V4Y2hhbmdlLCBjaGFyIF9Db21wYXJhbmQpOwpzaG9ydCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxNl9hY3Eoc2hvcnQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgX0V4Y2hhbmdlLCBzaG9ydCBfQ29tcGFyYW5kKTsKc2hvcnQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTZfbmYoc2hvcnQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQgX0V4Y2hhbmdlLCBzaG9ydCBfQ29tcGFyYW5kKTsKc2hvcnQgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlMTZfcmVsKHNob3J0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0IF9FeGNoYW5nZSwgc2hvcnQgX0NvbXBhcmFuZCk7CmxvbmcgX0ludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlX2FjcShsb25nIHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0V4Y2hhbmdlLCBsb25nIF9Db21wYXJhbmQpOwpsb25nIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZV9uZihsb25nIHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX0V4Y2hhbmdlLCBsb25nIF9Db21wYXJhbmQpOwpsb25nIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZV9yZWwobG9uZyB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIF9FeGNoYW5nZSwgbG9uZyBfQ29tcGFyYW5kKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZSwgX19pbnQ2NCBfQ29tcGFyYW5kKTsKX19pbnQ2NCBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2U2NF9uZihfX2ludDY0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlLCBfX2ludDY0IF9Db21wYXJhbmQpOwpfX2ludDY0IF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTY0X3JlbChfX2ludDY0IHZvbGF0aWxlICpfRGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlLCBfX2ludDY0IF9Db21wYXJhbmQpOwojZW5kaWYKI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKdW5zaWduZWQgY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxMjgoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlTG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0ICpfQ29tcGFyYW5kUmVzdWx0KTsKI2VuZGlmCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQp1bnNpZ25lZCBjaGFyIF9JbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZTEyOF9hY3EoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2VIaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCBfRXhjaGFuZ2VMb3csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0ICpfQ29tcGFyYW5kUmVzdWx0KTsKdW5zaWduZWQgY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxMjhfbmYoX19pbnQ2NCB2b2xhdGlsZSAqX0Rlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0IF9FeGNoYW5nZUhpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlTG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ludDY0ICpfQ29tcGFyYW5kUmVzdWx0KTsKdW5zaWduZWQgY2hhciBfSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UxMjhfcmVsKF9faW50NjQgdm9sYXRpbGUgKl9EZXN0aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlSGlnaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faW50NjQgX0V4Y2hhbmdlTG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19pbnQ2NCAqX0NvbXBhcmFuZFJlc3VsdCk7CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogbW92cywgc3RvcwpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX21vdnNiKHVuc2lnbmVkIGNoYXIgKl9fZHN0LCB1bnNpZ25lZCBjaGFyIGNvbnN0ICpfX3NyYywgc2l6ZV90IF9fbikgewojaWYgZGVmaW5lZChfX3g4Nl82NF9fKQogIF9fYXNtX18gX192b2xhdGlsZV9fKCJyZXAgbW92c2IiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK0QiKF9fZHN0KSwgIitTIihfX3NyYyksICIrYyIoX19uKQogICAgICAgICAgICAgICAgICAgICAgIDoKICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKI2Vsc2UKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygieGNoZyAlJWVzaSwgJTFcbnJlcCBtb3ZzYlxueGNoZyAlJWVzaSwgJTEiCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK0QiKF9fZHN0KSwgIityIihfX3NyYyksICIrYyIoX19uKQogICAgICAgICAgICAgICAgICAgICAgIDoKICAgICAgICAgICAgICAgICAgICAgICA6ICJtZW1vcnkiKTsKI2VuZGlmCn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX19tb3ZzZCh1bnNpZ25lZCBsb25nICpfX2RzdCwgdW5zaWduZWQgbG9uZyBjb25zdCAqX19zcmMsIHNpemVfdCBfX24pIHsKI2lmIGRlZmluZWQoX194ODZfNjRfXykKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIG1vdnNsIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrUyIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbHNlCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInhjaGcgJSVlc2ksICUxXG5yZXAgbW92c2xcbnhjaGcgJSVlc2ksICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrciIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbmRpZgp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fbW92c3codW5zaWduZWQgc2hvcnQgKl9fZHN0LCB1bnNpZ25lZCBzaG9ydCBjb25zdCAqX19zcmMsIHNpemVfdCBfX24pIHsKI2lmIGRlZmluZWQoX194ODZfNjRfXykKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIG1vdnN3IgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrUyIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbHNlCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInhjaGcgJSVlc2ksICUxXG5yZXAgbW92c3dcbnhjaGcgJSVlc2ksICUxIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrciIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7CiNlbmRpZgp9CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fc3Rvc2QodW5zaWduZWQgbG9uZyAqX19kc3QsIHVuc2lnbmVkIGxvbmcgX194LCBzaXplX3QgX19uKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oInJlcCBzdG9zbCIKICAgICAgICAgICAgICAgICAgICAgICA6ICIrRCIoX19kc3QpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6ICJhIihfX3gpCiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7Cn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX19zdG9zdyh1bnNpZ25lZCBzaG9ydCAqX19kc3QsIHVuc2lnbmVkIHNob3J0IF9feCwgc2l6ZV90IF9fbikgewogIF9fYXNtX18gX192b2xhdGlsZV9fKCJyZXAgc3Rvc3ciCiAgICAgICAgICAgICAgICAgICAgICAgOiAiK0QiKF9fZHN0KSwgIitjIihfX24pCiAgICAgICAgICAgICAgICAgICAgICAgOiAiYSIoX194KQogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwp9CiNlbmRpZgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX21vdnNxKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19kc3QsIHVuc2lnbmVkIGxvbmcgbG9uZyBjb25zdCAqX19zcmMsIHNpemVfdCBfX24pIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIG1vdnNxIgogICAgICAgICAgICAgICAgICAgICAgIDogIitEIihfX2RzdCksICIrUyIoX19zcmMpLCAiK2MiKF9fbikKICAgICAgICAgICAgICAgICAgICAgICA6CiAgICAgICAgICAgICAgICAgICAgICAgOiAibWVtb3J5Iik7Cn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX19zdG9zcSh1bnNpZ25lZCBfX2ludDY0ICpfX2RzdCwgdW5zaWduZWQgX19pbnQ2NCBfX3gsIHNpemVfdCBfX24pIHsKICBfX2FzbV9fIF9fdm9sYXRpbGVfXygicmVwIHN0b3NxIiA6ICIrRCIoX19kc3QpLCAiK2MiKF9fbikgOiAiYSIoX194KQogICAgICAgICAgICAgICAgICAgICAgIDogIm1lbW9yeSIpOwp9CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogTWlzYwpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQojaWYgZGVmaW5lZChfX2kzODZfXykKI2RlZmluZSBfX2NwdWlkX2NvdW50KF9fbGVhZiwgX19jb3VudCwgX19lYXgsIF9fZWJ4LCBfX2VjeCwgX19lZHgpICAgICAgICAgICAgIFwKICBfX2FzbSgiY3B1aWQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6ICI9YSIoX19lYXgpLCAiPWIiKF9fZWJ4KSwgIj1jIihfX2VjeCksICI9ZCIoX19lZHgpICAgICAgICAgICAgICAgICAgIFwKICAgICAgICA6ICIwIihfX2xlYWYpLCAiMiIoX19jb3VudCkpCiNlbHNlCi8qIHg4Ni02NCB1c2VzICVyYnggYXMgdGhlIGJhc2UgcmVnaXN0ZXIsIHNvIHByZXNlcnZlIGl0LiAqLwojZGVmaW5lIF9fY3B1aWRfY291bnQoX19sZWFmLCBfX2NvdW50LCBfX2VheCwgX19lYngsIF9fZWN4LCBfX2VkeCkgICAgICAgICAgICAgXAogIF9fYXNtKCJ4Y2hncSAlJXJieCwlcTFcbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICJjcHVpZFxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICJ4Y2hncSAlJXJieCwlcTEiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDogIj1hIihfX2VheCksICI9ciIoX19lYngpLCAiPWMiKF9fZWN4KSwgIj1kIihfX2VkeCkgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDogIjAiKF9fbGVhZiksICIyIihfX2NvdW50KSkKI2VuZGlmCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIF9fY3B1aWQoaW50IF9faW5mb1s0XSwgaW50IF9fbGV2ZWwpIHsKICBfX2NwdWlkX2NvdW50KF9fbGV2ZWwsIDAsIF9faW5mb1swXSwgX19pbmZvWzFdLCBfX2luZm9bMl0sIF9faW5mb1szXSk7Cn0Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX19jcHVpZGV4KGludCBfX2luZm9bNF0sIGludCBfX2xldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fZWN4KSB7CiAgX19jcHVpZF9jb3VudChfX2xldmVsLCBfX2VjeCwgX19pbmZvWzBdLCBfX2luZm9bMV0sIF9faW5mb1syXSwgX19pbmZvWzNdKTsKfQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyBfX2hhbHQodm9pZCkgewogIF9fYXNtX18gdm9sYXRpbGUoImhsdCIpOwp9CiNlbmRpZgoKI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgX19ub3Aodm9pZCkgewogIF9fYXNtX18gdm9sYXRpbGUoIm5vcCIpOwp9CiNlbmRpZgoKLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKlwKfCogTVMgQUFyY2g2NCBzcGVjaWZpYwpcKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwojaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKdW5zaWduZWQgX19pbnQ2NCBfX2dldFJlZyhpbnQpOwpsb25nIF9JbnRlcmxvY2tlZEFkZChsb25nIHZvbGF0aWxlICpBZGRlbmQsIGxvbmcgVmFsdWUpOwpfX2ludDY0IF9SZWFkU3RhdHVzUmVnKGludCk7CnZvaWQgX1dyaXRlU3RhdHVzUmVnKGludCwgX19pbnQ2NCk7Cgp1bnNpZ25lZCBzaG9ydCBfX2NkZWNsIF9ieXRlc3dhcF91c2hvcnQodW5zaWduZWQgc2hvcnQgdmFsKTsKdW5zaWduZWQgbG9uZyBfX2NkZWNsIF9ieXRlc3dhcF91bG9uZyAodW5zaWduZWQgbG9uZyB2YWwpOwp1bnNpZ25lZCBfX2ludDY0IF9fY2RlY2wgX2J5dGVzd2FwX3VpbnQ2NCh1bnNpZ25lZCBfX2ludDY0IHZhbCk7CgpfX2ludDY0IF9fbXVsaChfX2ludDY0IF9fYSwgX19pbnQ2NCBfX2IpOwp1bnNpZ25lZCBfX2ludDY0IF9fdW11bGgodW5zaWduZWQgX19pbnQ2NCBfX2EsIHVuc2lnbmVkIF9faW50NjQgX19iKTsKI2VuZGlmCgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qXAp8KiBQcml2aWxlZ2VkIGludHJpbnNpY3MKXCotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19pbnQ2NCBfX0RFRkFVTFRfRk5fQVRUUlMKX19yZWFkbXNyKHVuc2lnbmVkIGxvbmcgX19yZWdpc3RlcikgewogIC8vIExvYWRzIHRoZSBjb250ZW50cyBvZiBhIDY0LWJpdCBtb2RlbCBzcGVjaWZpYyByZWdpc3RlciAoTVNSKSBzcGVjaWZpZWQgaW4KICAvLyB0aGUgRUNYIHJlZ2lzdGVyIGludG8gcmVnaXN0ZXJzIEVEWDpFQVguIFRoZSBFRFggcmVnaXN0ZXIgaXMgbG9hZGVkIHdpdGgKICAvLyB0aGUgaGlnaC1vcmRlciAzMiBiaXRzIG9mIHRoZSBNU1IgYW5kIHRoZSBFQVggcmVnaXN0ZXIgaXMgbG9hZGVkIHdpdGggdGhlCiAgLy8gbG93LW9yZGVyIDMyIGJpdHMuIElmIGxlc3MgdGhhbiA2NCBiaXRzIGFyZSBpbXBsZW1lbnRlZCBpbiB0aGUgTVNSIGJlaW5nCiAgLy8gcmVhZCwgdGhlIHZhbHVlcyByZXR1cm5lZCB0byBFRFg6RUFYIGluIHVuaW1wbGVtZW50ZWQgYml0IGxvY2F0aW9ucyBhcmUKICAvLyB1bmRlZmluZWQuCiAgdW5zaWduZWQgbG9uZyBfX2VkeDsKICB1bnNpZ25lZCBsb25nIF9fZWF4OwogIF9fYXNtX18gKCJyZG1zciIgOiAiPWQiKF9fZWR4KSwgIj1hIihfX2VheCkgOiAiYyIoX19yZWdpc3RlcikpOwogIHJldHVybiAoKCh1bnNpZ25lZCBfX2ludDY0KV9fZWR4KSA8PCAzMikgfCAodW5zaWduZWQgX19pbnQ2NClfX2VheDsKfQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIF9fTFBUUklOVF9UWVBFX18gX19ERUZBVUxUX0ZOX0FUVFJTCl9fcmVhZGNyMyh2b2lkKSB7CiAgdW5zaWduZWQgX19MUFRSSU5UX1RZUEVfXyBfX2NyM192YWw7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJtb3YgJSVjcjMsICUwIiA6ICI9ciIoX19jcjNfdmFsKSA6IDogIm1lbW9yeSIpOwogIHJldHVybiBfX2NyM192YWw7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fd3JpdGVjcjModW5zaWduZWQgX19JTlRQVFJfVFlQRV9fIF9fY3IzX3ZhbCkgewogIF9fYXNtX18gKCJtb3YgJTAsICUlY3IzIiA6IDogInIiKF9fY3IzX3ZhbCkgOiAibWVtb3J5Iik7Cn0KCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKI3VuZGVmIF9fTFBUUklOVF9UWVBFX18KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX0lOVFJJTl9IICovCiNlbmRpZiAvKiBfTVNDX1ZFUiAqLwoALyo9PT0tLS0tIGlzbzY0Ni5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBhbHRlcm5hdGUgc3BlbGxpbmdzIG9mIG9wZXJhdG9ycy0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lTTzY0Nl9ICiNkZWZpbmUgX19JU082NDZfSAoKI2lmbmRlZiBfX2NwbHVzcGx1cwojZGVmaW5lIGFuZCAgICAmJgojZGVmaW5lIGFuZF9lcSAmPQojZGVmaW5lIGJpdGFuZCAmCiNkZWZpbmUgYml0b3IgIHwKI2RlZmluZSBjb21wbCAgfgojZGVmaW5lIG5vdCAgICAhCiNkZWZpbmUgbm90X2VxICE9CiNkZWZpbmUgb3IgICAgIHx8CiNkZWZpbmUgb3JfZXEgIHw9CiNkZWZpbmUgeG9yICAgIF4KI2RlZmluZSB4b3JfZXEgXj0KI2VuZGlmCgojZW5kaWYgLyogX19JU082NDZfSCAqLwoAb3BlbmNsLWMuaAAvKj09PS0tLS0gcHJmY2h3aW50cmluLmggLSBQUkVGRVRDSFcgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQoX19YODZJTlRSSU5fSCkgJiYgIWRlZmluZWQoX01NM0ROT1dfSF9JTkNMVURFRCkKI2Vycm9yICJOZXZlciB1c2UgPHByZmNod2ludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IG9yIDxtbTNkbm93Lmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19QUkZDSFdJTlRSSU5fSAojZGVmaW5lIF9fUFJGQ0hXSU5UUklOX0gKCi8vLyBMb2FkcyBhIG1lbW9yeSBzZXF1ZW5jZSBjb250YWluaW5nIHRoZSBzcGVjaWZpZWQgbWVtb3J5IGFkZHJlc3MgaW50bwovLy8gICAgYWxsIGRhdGEgY2FjaGUgbGV2ZWxzLiBUaGUgY2FjaGUtY29oZXJlbmN5IHN0YXRlIGlzIHNldCB0byBleGNsdXNpdmUuCi8vLyAgICBEYXRhIGNhbiBiZSByZWFkIGZyb20gYW5kIHdyaXR0ZW4gdG8gdGhlIGNhY2hlIGxpbmUgd2l0aG91dCBhZGRpdGlvbmFsCi8vLyAgICBkZWxheS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBSRUZFVENIVDAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fUAovLy8gICAgQSBwb2ludGVyIHNwZWNpZnlpbmcgdGhlIG1lbW9yeSBhZGRyZXNzIHRvIGJlIHByZWZldGNoZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX21fcHJlZmV0Y2godm9pZCAqX19QKQp7CiAgX19idWlsdGluX3ByZWZldGNoIChfX1AsIDAsIDMgLyogX01NX0hJTlRfVDAgKi8pOwp9CgovLy8gTG9hZHMgYSBtZW1vcnkgc2VxdWVuY2UgY29udGFpbmluZyB0aGUgc3BlY2lmaWVkIG1lbW9yeSBhZGRyZXNzIGludG8KLy8vICAgIHRoZSBMMSBkYXRhIGNhY2hlIGFuZCBzZXRzIHRoZSBjYWNoZS1jb2hlcmVuY3kgdG8gbW9kaWZpZWQuIFRoaXMKLy8vICAgIHByb3ZpZGVzIGEgaGludCB0byB0aGUgcHJvY2Vzc29yIHRoYXQgdGhlIGNhY2hlIGxpbmUgd2lsbCBiZSBtb2RpZmllZC4KLy8vICAgIEl0IGlzIGludGVuZGVkIGZvciB1c2Ugd2hlbiB0aGUgY2FjaGUgbGluZSB3aWxsIGJlIHdyaXR0ZW4gdG8gc2hvcnRseQovLy8gICAgYWZ0ZXIgdGhlIHByZWZldGNoIGlzIHBlcmZvcm1lZC4KLy8vCi8vLyAgICBOb3RlIHRoYXQgdGhlIGVmZmVjdCBvZiB0aGlzIGludHJpbnNpYyBpcyBkZXBlbmRlbnQgb24gdGhlIHByb2Nlc3NvcgovLy8gICAgaW1wbGVtZW50YXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQUkVGRVRDSFcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fUAovLy8gICAgQSBwb2ludGVyIHNwZWNpZnlpbmcgdGhlIG1lbW9yeSBhZGRyZXNzIHRvIGJlIHByZWZldGNoZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX21fcHJlZmV0Y2h3KHZvbGF0aWxlIGNvbnN0IHZvaWQgKl9fUCkKewojcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAojcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdjYXN0LXF1YWwiCiAgX19idWlsdGluX3ByZWZldGNoICgoY29uc3Qgdm9pZCopX19QLCAxLCAzIC8qIF9NTV9ISU5UX1QwICovKTsKI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAp9CgojZW5kaWYgLyogX19QUkZDSFdJTlRSSU5fSCAqLwoAcHR3cml0ZWludHJpbi5oAHNoYWludHJpbi5oAHRibWludHJpbi5oAC8qPT09LS0tLSB1bndpbmQuaCAtIFN0YWNrIHVud2luZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBTZWUgIkRhdGEgRGVmaW5pdGlvbnMgZm9yIGxpYmdjY19zIiBpbiB0aGUgTGludXggU3RhbmRhcmQgQmFzZS4qLwoKI2lmbmRlZiBfX0NMQU5HX1VOV0lORF9ICiNkZWZpbmUgX19DTEFOR19VTldJTkRfSAoKI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX2hhc19pbmNsdWRlX25leHQoPHVud2luZC5oPikKLyogRGFyd2luIChmcm9tIDExLnggb24pIHByb3ZpZGUgYW4gdW53aW5kLmguIElmIHRoYXQncyBhdmFpbGFibGUsCiAqIHVzZSBpdC4gbGlidW53aW5kIHdyYXBzIHNvbWUgb2YgaXRzIGRlZmluaXRpb25zIGluICNpZmRlZiBfR05VX1NPVVJDRSwKICogc28gZGVmaW5lIHRoYXQgYXJvdW5kIHRoZSBpbmNsdWRlLiovCiMgaWZuZGVmIF9HTlVfU09VUkNFCiMgIGRlZmluZSBfU0hPVUxEX1VOREVGSU5FX0dOVV9TT1VSQ0UKIyAgZGVmaW5lIF9HTlVfU09VUkNFCiMgZW5kaWYKLy8gbGlidW53aW5kJ3MgdW53aW5kLmggcmVmbGVjdHMgdGhlIGN1cnJlbnQgdmlzaWJpbGl0eS4gIEhvd2V2ZXIsIE1vemlsbGEKLy8gYnVpbGRzIHdpdGggLWZ2aXNpYmlsaXR5PWhpZGRlbiBhbmQgcmVsaWVzIG9uIGdjYydzIHVud2luZC5oIHRvIHJlc2V0IHRoZQovLyB2aXNpYmlsaXR5IHRvIGRlZmF1bHQgYW5kIGV4cG9ydCBpdHMgY29udGVudHMuICBnY2MgYWxzbyBhbGxvd3MgdXNlcnMgdG8KLy8gb3ZlcnJpZGUgaXRzIG92ZXJyaWRlIGJ5ICNkZWZpbmluZyBISURFX0VYUE9SVFMgKGJ1dCBub3RlLCB0aGlzIG9ubHkgb2JleXMKLy8gdGhlIHVzZXIncyAtZnZpc2liaWxpdHkgc2V0dGluZzsgaXQgZG9lc24ndCBoaWRlIGFueSBleHBvcnRzIG9uIGl0cyBvd24pLiAgV2UKLy8gaW1pdGF0ZSBnY2MncyBoZWFkZXIgaGVyZToKIyBpZmRlZiBISURFX0VYUE9SVFMKIyAgaW5jbHVkZV9uZXh0IDx1bndpbmQuaD4KIyBlbHNlCiMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwdXNoKGRlZmF1bHQpCiMgIGluY2x1ZGVfbmV4dCA8dW53aW5kLmg+CiMgIHByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwb3AKIyBlbmRpZgojIGlmZGVmIF9TSE9VTERfVU5ERUZJTkVfR05VX1NPVVJDRQojICB1bmRlZiBfR05VX1NPVVJDRQojICB1bmRlZiBfU0hPVUxEX1VOREVGSU5FX0dOVV9TT1VSQ0UKIyBlbmRpZgojZWxzZQoKI2luY2x1ZGUgPHN0ZGludC5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCi8qIEl0IGlzIGEgYml0IHN0cmFuZ2UgZm9yIGEgaGVhZGVyIHRvIHBsYXkgd2l0aCB0aGUgdmlzaWJpbGl0eSBvZiB0aGUKICAgc3ltYm9scyBpdCBkZWNsYXJlcywgYnV0IHRoaXMgbWF0Y2hlcyBnY2MncyBiZWhhdmlvciBhbmQgc29tZSBwcm9ncmFtcwogICBkZXBlbmQgb24gaXQgKi8KI2lmbmRlZiBISURFX0VYUE9SVFMKI3ByYWdtYSBHQ0MgdmlzaWJpbGl0eSBwdXNoKGRlZmF1bHQpCiNlbmRpZgoKdHlwZWRlZiB1aW50cHRyX3QgX1Vud2luZF9Xb3JkIF9fYXR0cmlidXRlX18oKF9fbW9kZV9fKF9fdW53aW5kX3dvcmRfXykpKTsKdHlwZWRlZiBpbnRwdHJfdCBfVW53aW5kX1N3b3JkIF9fYXR0cmlidXRlX18oKF9fbW9kZV9fKF9fdW53aW5kX3dvcmRfXykpKTsKdHlwZWRlZiB1aW50cHRyX3QgX1Vud2luZF9QdHI7CnR5cGVkZWYgdWludHB0cl90IF9VbndpbmRfSW50ZXJuYWxfUHRyOwp0eXBlZGVmIHVpbnQ2NF90IF9VbndpbmRfRXhjZXB0aW9uX0NsYXNzOwoKdHlwZWRlZiBpbnRwdHJfdCBfc2xlYjEyOF90Owp0eXBlZGVmIHVpbnRwdHJfdCBfdWxlYjEyOF90OwoKc3RydWN0IF9VbndpbmRfQ29udGV4dDsKI2lmIGRlZmluZWQoX19hcm1fXykgJiYgIShkZWZpbmVkKF9fVVNJTkdfU0pMSl9FWENFUFRJT05TX18pIHx8IGRlZmluZWQoX19BUk1fRFdBUkZfRUhfXykpCnN0cnVjdCBfVW53aW5kX0NvbnRyb2xfQmxvY2s7CnR5cGVkZWYgc3RydWN0IF9VbndpbmRfQ29udHJvbF9CbG9jayBfVW53aW5kX0V4Y2VwdGlvbjsgLyogQWxpYXMgKi8KI2Vsc2UKc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uOwp0eXBlZGVmIHN0cnVjdCBfVW53aW5kX0V4Y2VwdGlvbiBfVW53aW5kX0V4Y2VwdGlvbjsKI2VuZGlmCnR5cGVkZWYgZW51bSB7CiAgX1VSQ19OT19SRUFTT04gPSAwLAojaWYgZGVmaW5lZChfX2FybV9fKSAmJiAhZGVmaW5lZChfX1VTSU5HX1NKTEpfRVhDRVBUSU9OU19fKSAmJiBcCiAgICAhZGVmaW5lZChfX0FSTV9EV0FSRl9FSF9fKQogIF9VUkNfT0sgPSAwLCAvKiB1c2VkIGJ5IEFSTSBFSEFCSSAqLwojZW5kaWYKICBfVVJDX0ZPUkVJR05fRVhDRVBUSU9OX0NBVUdIVCA9IDEsCgogIF9VUkNfRkFUQUxfUEhBU0UyX0VSUk9SID0gMiwKICBfVVJDX0ZBVEFMX1BIQVNFMV9FUlJPUiA9IDMsCiAgX1VSQ19OT1JNQUxfU1RPUCA9IDQsCgogIF9VUkNfRU5EX09GX1NUQUNLID0gNSwKICBfVVJDX0hBTkRMRVJfRk9VTkQgPSA2LAogIF9VUkNfSU5TVEFMTF9DT05URVhUID0gNywKICBfVVJDX0NPTlRJTlVFX1VOV0lORCA9IDgsCiNpZiBkZWZpbmVkKF9fYXJtX18pICYmICFkZWZpbmVkKF9fVVNJTkdfU0pMSl9FWENFUFRJT05TX18pICYmIFwKICAgICFkZWZpbmVkKF9fQVJNX0RXQVJGX0VIX18pCiAgX1VSQ19GQUlMVVJFID0gOSAvKiB1c2VkIGJ5IEFSTSBFSEFCSSAqLwojZW5kaWYKfSBfVW53aW5kX1JlYXNvbl9Db2RlOwoKdHlwZWRlZiBlbnVtIHsKICBfVUFfU0VBUkNIX1BIQVNFID0gMSwKICBfVUFfQ0xFQU5VUF9QSEFTRSA9IDIsCgogIF9VQV9IQU5ETEVSX0ZSQU1FID0gNCwKICBfVUFfRk9SQ0VfVU5XSU5EID0gOCwKICBfVUFfRU5EX09GX1NUQUNLID0gMTYgLyogZ2NjIGV4dGVuc2lvbiB0byBDKysgQUJJICovCn0gX1Vud2luZF9BY3Rpb247Cgp0eXBlZGVmIHZvaWQgKCpfVW53aW5kX0V4Y2VwdGlvbl9DbGVhbnVwX0ZuKShfVW53aW5kX1JlYXNvbl9Db2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVW53aW5kX0V4Y2VwdGlvbiAqKTsKCiNpZiBkZWZpbmVkKF9fYXJtX18pICYmICEoZGVmaW5lZChfX1VTSU5HX1NKTEpfRVhDRVBUSU9OU19fKSB8fCBkZWZpbmVkKF9fQVJNX0RXQVJGX0VIX18pKQp0eXBlZGVmIHN0cnVjdCBfVW53aW5kX0NvbnRyb2xfQmxvY2sgX1Vud2luZF9Db250cm9sX0Jsb2NrOwp0eXBlZGVmIHVpbnQzMl90IF9VbndpbmRfRUhUX0hlYWRlcjsKCnN0cnVjdCBfVW53aW5kX0NvbnRyb2xfQmxvY2sgewogIHVpbnQ2NF90IGV4Y2VwdGlvbl9jbGFzczsKICB2b2lkICgqZXhjZXB0aW9uX2NsZWFudXApKF9VbndpbmRfUmVhc29uX0NvZGUsIF9VbndpbmRfQ29udHJvbF9CbG9jayAqKTsKICAvKiB1bndpbmRlciBjYWNoZSAocHJpdmF0ZSBmaWVsZHMgZm9yIHRoZSB1bndpbmRlcidzIHVzZSkgKi8KICBzdHJ1Y3QgewogICAgdWludDMyX3QgcmVzZXJ2ZWQxOyAvKiBmb3JjZWQgdW53aW5kIHN0b3AgZnVuY3Rpb24sIDAgaWYgbm90IGZvcmNlZCAqLwogICAgdWludDMyX3QgcmVzZXJ2ZWQyOyAvKiBwZXJzb25hbGl0eSByb3V0aW5lICovCiAgICB1aW50MzJfdCByZXNlcnZlZDM7IC8qIGNhbGxzaXRlICovCiAgICB1aW50MzJfdCByZXNlcnZlZDQ7IC8qIGZvcmNlZCB1bndpbmQgc3RvcCBhcmd1bWVudCAqLwogICAgdWludDMyX3QgcmVzZXJ2ZWQ1OwogIH0gdW53aW5kZXJfY2FjaGU7CiAgLyogcHJvcGFnYXRpb24gYmFycmllciBjYWNoZSAodmFsaWQgYWZ0ZXIgcGhhc2UgMSkgKi8KICBzdHJ1Y3QgewogICAgdWludDMyX3Qgc3A7CiAgICB1aW50MzJfdCBiaXRwYXR0ZXJuWzVdOwogIH0gYmFycmllcl9jYWNoZTsKICAvKiBjbGVhbnVwIGNhY2hlIChwcmVzZXJ2ZWQgb3ZlciBjbGVhbnVwKSAqLwogIHN0cnVjdCB7CiAgICB1aW50MzJfdCBiaXRwYXR0ZXJuWzRdOwogIH0gY2xlYW51cF9jYWNoZTsKICAvKiBwZXJzb25hbGl0eSBjYWNoZSAoZm9yIHBlcnNvbmFsaXR5J3MgYmVuZWZpdCkgKi8KICBzdHJ1Y3QgewogICAgdWludDMyX3QgZm5zdGFydDsgICAgICAgICAvKiBmdW5jdGlvbiBzdGFydCBhZGRyZXNzICovCiAgICBfVW53aW5kX0VIVF9IZWFkZXIgKmVodHA7IC8qIHBvaW50ZXIgdG8gRUhUIGVudHJ5IGhlYWRlciB3b3JkICovCiAgICB1aW50MzJfdCBhZGRpdGlvbmFsOyAgICAgIC8qIGFkZGl0aW9uYWwgZGF0YSAqLwogICAgdWludDMyX3QgcmVzZXJ2ZWQxOwogIH0gcHJfY2FjaGU7CiAgbG9uZyBsb25nIGludCA6IDA7IC8qIGZvcmNlIGFsaWdubWVudCBvZiBuZXh0IGl0ZW0gdG8gOC1ieXRlIGJvdW5kYXJ5ICovCn0gX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oOCkpKTsKI2Vsc2UKc3RydWN0IF9VbndpbmRfRXhjZXB0aW9uIHsKICBfVW53aW5kX0V4Y2VwdGlvbl9DbGFzcyBleGNlcHRpb25fY2xhc3M7CiAgX1Vud2luZF9FeGNlcHRpb25fQ2xlYW51cF9GbiBleGNlcHRpb25fY2xlYW51cDsKI2lmICFkZWZpbmVkIChfX1VTSU5HX1NKTEpfRVhDRVBUSU9OU19fKSAmJiBkZWZpbmVkIChfX1NFSF9fKQogIF9VbndpbmRfV29yZCBwcml2YXRlX1s2XTsKI2Vsc2UKICBfVW53aW5kX1dvcmQgcHJpdmF0ZV8xOwogIF9VbndpbmRfV29yZCBwcml2YXRlXzI7CiNlbmRpZgogIC8qIFRoZSBJdGFuaXVtIEFCSSByZXF1aXJlcyB0aGF0IF9VbndpbmRfRXhjZXB0aW9uIG9iamVjdHMgYXJlICJkb3VibGUtd29yZAogICAqIGFsaWduZWQiLiAgR0NDIGhhcyBpbnRlcnByZXRlZCB0aGlzIHRvIG1lYW4gInVzZSB0aGUgbWF4aW11bSB1c2VmdWwKICAgKiBhbGlnbm1lbnQgZm9yIHRoZSB0YXJnZXQiOyBzbyBkbyB3ZS4gKi8KfSBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXykpOwojZW5kaWYKCnR5cGVkZWYgX1Vud2luZF9SZWFzb25fQ29kZSAoKl9VbndpbmRfU3RvcF9GbikoaW50LCBfVW53aW5kX0FjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVW53aW5kX0V4Y2VwdGlvbl9DbGFzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVW53aW5kX0V4Y2VwdGlvbiAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICopOwoKdHlwZWRlZiBfVW53aW5kX1JlYXNvbl9Db2RlICgqX1Vud2luZF9QZXJzb25hbGl0eV9GbikoaW50LCBfVW53aW5kX0FjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1Vud2luZF9FeGNlcHRpb25fQ2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9VbndpbmRfRXhjZXB0aW9uICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CnR5cGVkZWYgX1Vud2luZF9QZXJzb25hbGl0eV9GbiBfX3BlcnNvbmFsaXR5X3JvdXRpbmU7Cgp0eXBlZGVmIF9VbndpbmRfUmVhc29uX0NvZGUgKCpfVW53aW5kX1RyYWNlX0ZuKShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKik7CgojaWYgZGVmaW5lZChfX2FybV9fKSAmJiAhKGRlZmluZWQoX19VU0lOR19TSkxKX0VYQ0VQVElPTlNfXykgfHwgZGVmaW5lZChfX0FSTV9EV0FSRl9FSF9fKSkKdHlwZWRlZiBlbnVtIHsKICBfVVZSU0NfQ09SRSA9IDAsICAgICAgICAvKiBpbnRlZ2VyIHJlZ2lzdGVyICovCiAgX1VWUlNDX1ZGUCA9IDEsICAgICAgICAgLyogdmZwICovCiAgX1VWUlNDX1dNTVhEID0gMywgICAgICAgLyogSW50ZWwgV01NWCBkYXRhIHJlZ2lzdGVyICovCiAgX1VWUlNDX1dNTVhDID0gNCAgICAgICAgLyogSW50ZWwgV01NWCBjb250cm9sIHJlZ2lzdGVyICovCn0gX1Vud2luZF9WUlNfUmVnQ2xhc3M7Cgp0eXBlZGVmIGVudW0gewogIF9VVlJTRF9VSU5UMzIgPSAwLAogIF9VVlJTRF9WRlBYID0gMSwKICBfVVZSU0RfVUlOVDY0ID0gMywKICBfVVZSU0RfRkxPQVQgPSA0LAogIF9VVlJTRF9ET1VCTEUgPSA1Cn0gX1Vud2luZF9WUlNfRGF0YVJlcHJlc2VudGF0aW9uOwoKdHlwZWRlZiBlbnVtIHsKICBfVVZSU1JfT0sgPSAwLAogIF9VVlJTUl9OT1RfSU1QTEVNRU5URUQgPSAxLAogIF9VVlJTUl9GQUlMRUQgPSAyCn0gX1Vud2luZF9WUlNfUmVzdWx0OwoKdHlwZWRlZiB1aW50MzJfdCBfVW53aW5kX1N0YXRlOwojZGVmaW5lIF9VU19WSVJUVUFMX1VOV0lORF9GUkFNRSAgKChfVW53aW5kX1N0YXRlKTApCiNkZWZpbmUgX1VTX1VOV0lORF9GUkFNRV9TVEFSVElORyAoKF9VbndpbmRfU3RhdGUpMSkKI2RlZmluZSBfVVNfVU5XSU5EX0ZSQU1FX1JFU1VNRSAgICgoX1Vud2luZF9TdGF0ZSkyKQojZGVmaW5lIF9VU19BQ1RJT05fTUFTSyAgICAgICAgICAgKChfVW53aW5kX1N0YXRlKTMpCiNkZWZpbmUgX1VTX0ZPUkNFX1VOV0lORCAgICAgICAgICAoKF9VbndpbmRfU3RhdGUpOCkKCl9VbndpbmRfVlJTX1Jlc3VsdCBfVW53aW5kX1ZSU19HZXQoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqX19jb250ZXh0LAogIF9VbndpbmRfVlJTX1JlZ0NsYXNzIF9fcmVnY2xhc3MsCiAgdWludDMyX3QgX19yZWdubywKICBfVW53aW5kX1ZSU19EYXRhUmVwcmVzZW50YXRpb24gX19yZXByZXNlbnRhdGlvbiwKICB2b2lkICpfX3ZhbHVlcCk7CgpfVW53aW5kX1ZSU19SZXN1bHQgX1Vud2luZF9WUlNfU2V0KHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKl9fY29udGV4dCwKICBfVW53aW5kX1ZSU19SZWdDbGFzcyBfX3JlZ2NsYXNzLAogIHVpbnQzMl90IF9fcmVnbm8sCiAgX1Vud2luZF9WUlNfRGF0YVJlcHJlc2VudGF0aW9uIF9fcmVwcmVzZW50YXRpb24sCiAgdm9pZCAqX192YWx1ZXApOwoKc3RhdGljIF9faW5saW5lX18KX1Vud2luZF9Xb3JkIF9VbndpbmRfR2V0R1Ioc3RydWN0IF9VbndpbmRfQ29udGV4dCAqX19jb250ZXh0LCBpbnQgX19pbmRleCkgewogIF9VbndpbmRfV29yZCBfX3ZhbHVlOwogIF9VbndpbmRfVlJTX0dldChfX2NvbnRleHQsIF9VVlJTQ19DT1JFLCBfX2luZGV4LCBfVVZSU0RfVUlOVDMyLCAmX192YWx1ZSk7CiAgcmV0dXJuIF9fdmFsdWU7Cn0KCnN0YXRpYyBfX2lubGluZV9fCnZvaWQgX1Vud2luZF9TZXRHUihzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpfX2NvbnRleHQsIGludCBfX2luZGV4LAogICAgICAgICAgICAgICAgICAgX1Vud2luZF9Xb3JkIF9fdmFsdWUpIHsKICBfVW53aW5kX1ZSU19TZXQoX19jb250ZXh0LCBfVVZSU0NfQ09SRSwgX19pbmRleCwgX1VWUlNEX1VJTlQzMiwgJl9fdmFsdWUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXwpfVW53aW5kX1dvcmQgX1Vud2luZF9HZXRJUChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICpfX2NvbnRleHQpIHsKICBfVW53aW5kX1dvcmQgX19pcCA9IF9VbndpbmRfR2V0R1IoX19jb250ZXh0LCAxNSk7CiAgcmV0dXJuIF9faXAgJiB+KF9VbndpbmRfV29yZCkoMHgxKTsgLyogUmVtb3ZlIHRodW1iIG1vZGUgYml0LiAqLwp9CgpzdGF0aWMgX19pbmxpbmVfXwp2b2lkIF9VbndpbmRfU2V0SVAoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqX19jb250ZXh0LCBfVW53aW5kX1dvcmQgX192YWx1ZSkgewogIF9VbndpbmRfV29yZCBfX3RodW1iX21vZGVfYml0ID0gX1Vud2luZF9HZXRHUihfX2NvbnRleHQsIDE1KSAmIDB4MTsKICBfVW53aW5kX1NldEdSKF9fY29udGV4dCwgMTUsIF9fdmFsdWUgfCBfX3RodW1iX21vZGVfYml0KTsKfQojZWxzZQpfVW53aW5kX1dvcmQgX1Vud2luZF9HZXRHUihzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIGludCk7CnZvaWQgX1Vud2luZF9TZXRHUihzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIGludCwgX1Vud2luZF9Xb3JkKTsKCl9VbndpbmRfV29yZCBfVW53aW5kX0dldElQKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CnZvaWQgX1Vud2luZF9TZXRJUChzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIF9VbndpbmRfV29yZCk7CiNlbmRpZgoKCl9VbndpbmRfV29yZCBfVW53aW5kX0dldElQSW5mbyhzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICosIGludCAqKTsKCl9VbndpbmRfV29yZCBfVW53aW5kX0dldENGQShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopOwoKX1Vud2luZF9Xb3JkIF9VbndpbmRfR2V0QlNQKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7Cgp2b2lkICpfVW53aW5kX0dldExhbmd1YWdlU3BlY2lmaWNEYXRhKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CgpfVW53aW5kX1B0ciBfVW53aW5kX0dldFJlZ2lvblN0YXJ0KHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7CgovKiBEV0FSRiBFSCBmdW5jdGlvbnM7IGN1cnJlbnRseSBub3QgYXZhaWxhYmxlIG9uIERhcndpbi9BUk0gKi8KI2lmICFkZWZpbmVkKF9fQVBQTEVfXykgfHwgIWRlZmluZWQoX19hcm1fXykKX1Vud2luZF9SZWFzb25fQ29kZSBfVW53aW5kX1JhaXNlRXhjZXB0aW9uKF9VbndpbmRfRXhjZXB0aW9uICopOwpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfRm9yY2VkVW53aW5kKF9VbndpbmRfRXhjZXB0aW9uICosIF9VbndpbmRfU3RvcF9GbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICopOwp2b2lkIF9VbndpbmRfRGVsZXRlRXhjZXB0aW9uKF9VbndpbmRfRXhjZXB0aW9uICopOwp2b2lkIF9VbndpbmRfUmVzdW1lKF9VbndpbmRfRXhjZXB0aW9uICopOwpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfUmVzdW1lX29yX1JldGhyb3coX1Vud2luZF9FeGNlcHRpb24gKik7CgojZW5kaWYKCl9VbndpbmRfUmVhc29uX0NvZGUgX1Vud2luZF9CYWNrdHJhY2UoX1Vud2luZF9UcmFjZV9Gbiwgdm9pZCAqKTsKCi8qIHNldGptcCgzKS9sb25nam1wKDMpIHN0dWZmICovCnR5cGVkZWYgc3RydWN0IFNqTGpfRnVuY3Rpb25fQ29udGV4dCAqX1Vud2luZF9GdW5jdGlvbkNvbnRleHRfdDsKCnZvaWQgX1Vud2luZF9TakxqX1JlZ2lzdGVyKF9VbndpbmRfRnVuY3Rpb25Db250ZXh0X3QpOwp2b2lkIF9VbndpbmRfU2pMal9VbnJlZ2lzdGVyKF9VbndpbmRfRnVuY3Rpb25Db250ZXh0X3QpOwpfVW53aW5kX1JlYXNvbl9Db2RlIF9VbndpbmRfU2pMal9SYWlzZUV4Y2VwdGlvbihfVW53aW5kX0V4Y2VwdGlvbiAqKTsKX1Vud2luZF9SZWFzb25fQ29kZSBfVW53aW5kX1NqTGpfRm9yY2VkVW53aW5kKF9VbndpbmRfRXhjZXB0aW9uICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVW53aW5kX1N0b3BfRm4sIHZvaWQgKik7CnZvaWQgX1Vud2luZF9TakxqX1Jlc3VtZShfVW53aW5kX0V4Y2VwdGlvbiAqKTsKX1Vud2luZF9SZWFzb25fQ29kZSBfVW53aW5kX1NqTGpfUmVzdW1lX29yX1JldGhyb3coX1Vud2luZF9FeGNlcHRpb24gKik7Cgp2b2lkICpfVW53aW5kX0ZpbmRFbmNsb3NpbmdGdW5jdGlvbih2b2lkICopOwoKI2lmZGVmIF9fQVBQTEVfXwoKX1Vud2luZF9QdHIgX1Vud2luZF9HZXREYXRhUmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopCiAgICBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKX1Vud2luZF9QdHIgX1Vud2luZF9HZXRUZXh0UmVsQmFzZShzdHJ1Y3QgX1Vud2luZF9Db250ZXh0ICopCiAgICBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKCi8qIERhcndpbi1zcGVjaWZpYyBmdW5jdGlvbnMgKi8Kdm9pZCBfX3JlZ2lzdGVyX2ZyYW1lKGNvbnN0IHZvaWQgKik7CnZvaWQgX19kZXJlZ2lzdGVyX2ZyYW1lKGNvbnN0IHZvaWQgKik7CgpzdHJ1Y3QgZHdhcmZfZWhfYmFzZXMgewogIHVpbnRwdHJfdCB0YmFzZTsKICB1aW50cHRyX3QgZGJhc2U7CiAgdWludHB0cl90IGZ1bmM7Cn07CnZvaWQgKl9VbndpbmRfRmluZF9GREUoY29uc3Qgdm9pZCAqLCBzdHJ1Y3QgZHdhcmZfZWhfYmFzZXMgKik7Cgp2b2lkIF9fcmVnaXN0ZXJfZnJhbWVfaW5mb19iYXNlcyhjb25zdCB2b2lkICosIHZvaWQgKiwgdm9pZCAqLCB2b2lkICopCiAgX19hdHRyaWJ1dGVfXygoX191bmF2YWlsYWJsZV9fKSk7CnZvaWQgX19yZWdpc3Rlcl9mcmFtZV9pbmZvKGNvbnN0IHZvaWQgKiwgdm9pZCAqKSBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKdm9pZCBfX3JlZ2lzdGVyX2ZyYW1lX2luZm9fdGFibGVfYmFzZXMoY29uc3Qgdm9pZCAqLCB2b2lkKiwgdm9pZCAqLCB2b2lkICopCiAgX19hdHRyaWJ1dGVfXygoX191bmF2YWlsYWJsZV9fKSk7CnZvaWQgX19yZWdpc3Rlcl9mcmFtZV9pbmZvX3RhYmxlKGNvbnN0IHZvaWQgKiwgdm9pZCAqKQogIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwp2b2lkIF9fcmVnaXN0ZXJfZnJhbWVfdGFibGUoY29uc3Qgdm9pZCAqKSBfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKdm9pZCBfX2RlcmVnaXN0ZXJfZnJhbWVfaW5mbyhjb25zdCB2b2lkICopIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXykpOwp2b2lkIF9fZGVyZWdpc3Rlcl9mcmFtZV9pbmZvX2Jhc2VzKGNvbnN0IHZvaWQgKilfX2F0dHJpYnV0ZV9fKChfX3VuYXZhaWxhYmxlX18pKTsKCiNlbHNlCgpfVW53aW5kX1B0ciBfVW53aW5kX0dldERhdGFSZWxCYXNlKHN0cnVjdCBfVW53aW5kX0NvbnRleHQgKik7Cl9VbndpbmRfUHRyIF9VbndpbmRfR2V0VGV4dFJlbEJhc2Uoc3RydWN0IF9VbndpbmRfQ29udGV4dCAqKTsKCiNlbmRpZgoKCiNpZm5kZWYgSElERV9FWFBPUlRTCiNwcmFnbWEgR0NDIHZpc2liaWxpdHkgcG9wCiNlbmRpZgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmCgojZW5kaWYKCiNlbmRpZiAvKiBfX0NMQU5HX1VOV0lORF9IICovCgAvKj09PS0tLS0geG1taW50cmluLmggLSBTU0UgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fWE1NSU5UUklOX0gKI2RlZmluZSBfX1hNTUlOVFJJTl9ICgojaW5jbHVkZSA8bW1pbnRyaW4uaD4KCnR5cGVkZWYgaW50IF9fdjRzaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSk7CnR5cGVkZWYgZmxvYXQgX192NHNmIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNikpKTsKdHlwZWRlZiBmbG9hdCBfX20xMjggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7Cgp0eXBlZGVmIGZsb2F0IF9fbTEyOF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDEpKSk7CgovKiBVbnNpZ25lZCB0eXBlcyAqLwp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3Y0c3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSkpOwoKLyogVGhpcyBoZWFkZXIgc2hvdWxkIG9ubHkgYmUgaW5jbHVkZWQgaW4gYSBob3N0ZWQgZW52aXJvbm1lbnQgYXMgaXQgZGVwZW5kcyBvbgogKiBhIHN0YW5kYXJkIGxpYnJhcnkgdG8gcHJvdmlkZSBhbGxvY2F0aW9uIHJvdXRpbmVzLiAqLwojaWYgX19TVERDX0hPU1RFRF9fCiNpbmNsdWRlIDxtbV9tYWxsb2MuaD4KI2VuZGlmCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19NTVggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtbXgsc3NlIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDY0KSkpCgovLy8gQWRkcyB0aGUgMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlIG9wZXJhbmRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERTUyAvIEFERFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlIHN1bQovLy8gICAgb2YgdGhlIGxvd2VyIDMyIGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgX19hWzBdICs9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gQWRkcyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0cyBvZgovLy8gICAgdGhlIGFkZGl0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERQUyAvIEFERFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkoKF9fdjRzZilfX2EgKyAoX192NHNmKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIDMyLWJpdCBmbG9hdCB2YWx1ZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJTUyAvIFNVQlNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbWludWVuZC4gVGhlIGxvd2VyIDMyIGJpdHMKLy8vICAgIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuIFRoZSBsb3dlciAzMgovLy8gICAgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBkaWZmZXJlbmNlIG9mIHRoZSBsb3dlciAzMiBiaXRzIG9mIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA5NiBiaXRzIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIHVwcGVyIDk2IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIF9fYVswXSAtPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIFN1YnRyYWN0cyBlYWNoIG9mIHRoZSB2YWx1ZXMgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGZyb20gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kLCBib3RoIG9mIHdoaWNoIGFyZSAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gYW5kIHJldHVybnMKLy8vICAgIHRoZSByZXN1bHRzIG9mIHRoZSBzdWJ0cmFjdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1VCUFMgLyBTVUJQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4KLy8vICAgIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1Yl9wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpKChfX3Y0c2YpX19hIC0gKF9fdjRzZilfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlCi8vLyAgICBvcGVyYW5kcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTVVMU1MgLyBNVUxTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcHJvZHVjdCBvZiB0aGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZSB1cHBlciA5NgovLy8gICAgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgX19hWzBdICo9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gTXVsdGlwbGllcyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcmVzdWx0cyBvZiB0aGUgbXVsdGlwbGljYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1VTFBTIC8gTVVMUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbXVsX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkoKF9fdjRzZilfX2EgKiAoX192NHNmKV9fYik7Cn0KCi8vLyBEaXZpZGVzIHRoZSB2YWx1ZSBpbiB0aGUgbG93LW9yZGVyIDMyIGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQgYnkKLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRElWU1MgLyBESVZTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLiBUaGUgbG93ZXIgMzIKLy8vICAgIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aXNvci4gVGhlIGxvd2VyIDMyIGJpdHMKLy8vICAgIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY2FsY3VsYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiB0aGUKLy8vICAgIGxvd2VyIDMyIGJpdHMgb2YgYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tIHRoZQovLy8gICAgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Rpdl9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgX19hWzBdIC89IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgovLy8gRGl2aWRlcyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZESVZQUyAvIERJVlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aWRlbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGRpdmlzb3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZGl2X3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkoKF9fdjRzZilfX2EgLyAoX192NHNmKV9fYik7Cn0KCi8vLyBDYWxjdWxhdGVzIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUgdmFsdWUgc3RvcmVkIGluIHRoZSBsb3ctb3JkZXIgYml0cwovLy8gICAgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1FSVFNTIC8gU1FSVFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzcXVhcmUgcm9vdCBvZiB0aGUKLy8vICAgIHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3FydF9zcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc3FydHNzKChfX3Y0c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290cyBvZiB0aGUgdmFsdWVzIHN0b3JlZCBpbiBhIDEyOC1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU1FSVFBTIC8gU1FSVFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNxdWFyZSByb290cyBvZiB0aGUKLy8vICAgIHZhbHVlcyBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3FydF9wcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NxcnRwcygoX192NHNmKV9fYSk7Cn0KCi8vLyBDYWxjdWxhdGVzIHRoZSBhcHByb3hpbWF0ZSByZWNpcHJvY2FsIG9mIHRoZSB2YWx1ZSBzdG9yZWQgaW4gdGhlCi8vLyAgICBsb3ctb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZSQ1BTUyAvIFJDUFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNhbGN1bGF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBhcHByb3hpbWF0ZQovLy8gICAgcmVjaXByb2NhbCBvZiB0aGUgdmFsdWUgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yY3Bfc3MoX19tMTI4IF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JjcHNzKChfX3Y0c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIGFwcHJveGltYXRlIHJlY2lwcm9jYWxzIG9mIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZSQ1BQUyAvIFJDUFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGFwcHJveGltYXRlCi8vLyAgICByZWNpcHJvY2FscyBvZiB0aGUgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yY3BfcHMoX19tMTI4IF9fYSkKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JjcHBzKChfX3Y0c2YpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIGFwcHJveGltYXRlIHJlY2lwcm9jYWwgb2YgdGhlIHNxdWFyZSByb290IG9mIHRoZSB2YWx1ZQovLy8gICAgc3RvcmVkIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZSU1FSVFNTIC8gUlNRUlRTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjYWxjdWxhdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYXBwcm94aW1hdGUKLy8vICAgIHJlY2lwcm9jYWwgb2YgdGhlIHNxdWFyZSByb290IG9mIHRoZSB2YWx1ZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgdGhlCi8vLyAgICBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yc3FydF9zcyhfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JzcXJ0c3MoKF9fdjRzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgYXBwcm94aW1hdGUgcmVjaXByb2NhbHMgb2YgdGhlIHNxdWFyZSByb290cyBvZiB0aGUKLy8vICAgIHZhbHVlcyBzdG9yZWQgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUlNRUlRQUyAvIFJTUVJUUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYXBwcm94aW1hdGUKLy8vICAgIHJlY2lwcm9jYWxzIG9mIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlIHZhbHVlcyBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcnNxcnRfcHMoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yc3FydHBzKChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyBhbmQgcmV0dXJucyB0aGUgbGVzc2VyIHZhbHVlIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiB0aGUKLy8vICAgIHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUlOU1MgLyBNSU5TUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBtaW5pbXVtIHZhbHVlIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21pbl9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX21pbnNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIGFuZCByZXR1cm5zIHRoZSBsZXNzZXIKLy8vICAgIG9mIGVhY2ggcGFpciBvZiB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1JTlBTIC8gTUlOUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbWluaW11bSB2YWx1ZXMKLy8vICAgIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbWlucHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyBhbmQgcmV0dXJucyB0aGUgZ3JlYXRlciB2YWx1ZSBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSAxMjgtYml0Ci8vLyAgICB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BWFNTIC8gTUFYU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZQovLy8gICAgbWF4aW11bSB2YWx1ZSBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuIFRoZSB1cHBlciA5NiBiaXRzIGFyZSBjb3BpZWQgZnJvbQovLy8gICAgdGhlIHVwcGVyIDk2IGJpdHMgb2YgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9tYXhzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSBhbmQgcmV0dXJucyB0aGUgZ3JlYXRlcgovLy8gICAgb2YgZWFjaCBwYWlyIG9mIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFYUFMgLyBNQVhQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtYXhpbXVtIHZhbHVlcwovLy8gICAgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9tYXhwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIEFORCBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBTkRQUyAvIEFORFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hbmRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHN1KV9fYSAmIChfX3Y0c3UpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSwgdXNpbmcKLy8vICAgIHRoZSBvbmUncyBjb21wbGVtZW50IG9mIHRoZSB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBmaXJzdCBzb3VyY2UKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORE5QUyAvIEFORE5QUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLiBUaGUKLy8vICAgIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhpcyB2YWx1ZSBpcyB1c2VkIGluIHRoZSBiaXR3aXNlIEFORC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQgYW5kIHRoZSB2YWx1ZXMgaW4gdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYW5kbm90X3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkofihfX3Y0c3UpX19hICYgKF9fdjRzdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIE9SIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk9SUFMgLyBPUlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX29yX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOCkoKF9fdjRzdSlfX2EgfCAoX192NHN1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgZXhjbHVzaXZlIE9SIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyAvIFhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBleGNsdXNpdmUgT1IKLy8vICAgIG9mIHRoZSB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV94b3JfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KSgoX192NHN1KV9fYSBeIChfX3Y0c3UpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyBmb3IgZXF1YWxpdHkgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpbiB0aGUKLy8vICAgIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBFUVNTIC8gQ01QRVFTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGVxc3MoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGZsb2F0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSBmb3IgZXF1YWxpdHkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUEVRUFMgLyBDTVBFUVBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGVxX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBlcXBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBsZXNzIHRoYW4gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZQovLy8gICAgY29tcGFyaXNvbiBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExUU1MgLyBDTVBMVFNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsdF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbHRzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbGVzcyB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRQUyAvIENNUExUUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbHRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGx0cHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGxlc3MgdGhhbiBvcgovLy8gICAgZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExFU1MgLyBDTVBMRVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBsZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbGVzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTEVQUyAvIENNUExFUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbGVfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGxlcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlIGluIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGdyZWF0ZXIgdGhhbgovLy8gICAgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YKLy8vICAgIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTFRTUyAvIENNUExUU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGd0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fYnVpbHRpbl9pYTMyX2NtcGx0c3MoKF9fdjRzZilfX2IsIChfX3Y0c2YpX19hKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LCAxLCAyLCAzKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGZsb2F0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSB0byBkZXRlcm1pbmUgaWYgdGhlIHZhbHVlcyBpbiB0aGUgZmlyc3QKLy8vICAgIG9wZXJhbmQgYXJlIGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUExUUFMgLyBDTVBMVFBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcGd0X3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBsdHBzKChfX3Y0c2YpX19iLCAoX192NHNmKV9fYSk7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBncmVhdGVyIHRoYW4KLy8vICAgIG9yIGVxdWFsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucwovLy8gICAgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBMRVNTIC8gQ01QTEVTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ2Vfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19idWlsdGluX2lhMzJfY21wbGVzcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDEsIDIsIDMpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTEVQUyAvIENNUExFUFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ2VfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcGxlcHMoKF9fdjRzZilfX2IsIChfX3Y0c2YpX19hKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyBmb3IgaW5lcXVhbGl0eSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZQovLy8gICAgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5FUVNTIC8gQ01QTkVRU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5lcV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wbmVxc3MoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGZsb2F0IHZhbHVlcyBvZiB0aGUKLy8vICAgIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSBmb3IgaW5lcXVhbGl0eS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkVRUFMgLyBDTVBORVFQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBuZXFfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5lcXBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBub3QgbGVzcyB0aGFuCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZgovLy8gICAgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBOTFRTUyAvIENNUE5MVFNTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sdHNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBub3QgbGVzcyB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxUUFMgLyBDTVBOTFRQUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBubHRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG5sdHBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZSBpbiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBub3QgbGVzcyB0aGFuCi8vLyAgICBvciBlcXVhbCB0byB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMKLy8vICAgIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24gaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QTkxFU1MgLyBDTVBOTEVTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMKLy8vICAgIGluIHRoZSBsb3ctb3JkZXIgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmxlX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBubGVzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MRVBTIC8gQ01QTkxFUFMgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmxlX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBubGVwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgbm90IGdyZWF0ZXIKLy8vICAgIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZQovLy8gICAgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFNTIC8gQ01QTkxUU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5ndF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX2J1aWx0aW5faWEzMl9jbXBubHRzcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDEsIDIsIDMpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGdyZWF0ZXIgdGhhbiB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MVFBTIC8gQ01QTkxUUFMgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmd0X3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBubHRwcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgbm90IGdyZWF0ZXIKLy8vICAgIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZAovLy8gICAgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MRVNTIC8gQ01QTkxFU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzCi8vLyAgICBpbiB0aGUgbG93LW9yZGVyIGJpdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcG5nZV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX2J1aWx0aW5faWEzMl9jbXBubGVzcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDEsIDIsIDMpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgbm90IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE5MRVBTIC8gQ01QTkxFUFMgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wbmdlX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBubGVwcygoX192NHNmKV9fYiwgKF9fdjRzZilfX2EpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgb3JkZXJlZCB3aXRoCi8vLyAgICByZXNwZWN0IHRvIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGluIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUKLy8vICAgIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBPUkRTUyAvIENNUE9SRFNTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBvcmRfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2NtcG9yZHNzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMgb2YgdGhlCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gdG8gZGV0ZXJtaW5lIGlmIHRoZSB2YWx1ZXMgaW4gdGhlIGZpcnN0Ci8vLyAgICBvcGVyYW5kIGFyZSBvcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUE9SRFBTIC8gQ01QT1JEUFMgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wb3JkX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBvcmRwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWUgaW4gdGhlIGZpcnN0IG9wZXJhbmQgaXMgdW5vcmRlcmVkCi8vLyAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIHNlY29uZCBvcGVyYW5kIGFuZAovLy8gICAgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBhIHZlY3RvcgovLy8gICAgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFVOT1JEU1MgLyBDTVBVTk9SRFNTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLiBUaGUgbG93ZXIKLy8vICAgIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZSB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cwovLy8gICAgaW4gdGhlIGxvdy1vcmRlciBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXB1bm9yZF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfY21wdW5vcmRzcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIG9mIHRoZQovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZCBhcmUgdW5vcmRlcmVkIHdpdGggcmVzcGVjdCB0byB0aG9zZSBpbiB0aGUgc2Vjb25kIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFVOT1JEUFMgLyBDTVBVTk9SRFBTIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NtcHVub3JkX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXB1bm9yZHBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgZm9yIGVxdWFsaXR5IGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTUyAvIENPTUlTUyA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlCi8vLyAgICB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWllcV9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWllcSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBsZXNzIHRoYW4gdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU1MgLyBDT01JU1MgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29taWx0X3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY29taWx0KChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMzItYml0IGZsb2F0IHZhbHVlcyBpbiB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUKLy8vICAgIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNPTUlTUyAvIENPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21pbGVfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pbGUoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZpcnN0IG9wZXJhbmQgaXMgZ3JlYXRlciB0aGFuIHRoZSBzZWNvbmQKLy8vICAgIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNTIC8gQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUKLy8vICAgICB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWlndF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NvbWlndCgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgaW4gdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KLy8vICAgIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDT01JU1MgLyBDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21pZ2Vfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pZ2UoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIENvbXBhcmVzIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIGluIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZpcnN0IG9wZXJhbmQgaXMgbm90IGVxdWFsIHRvIHRoZSBzZWNvbmQKLy8vICAgIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMSBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ09NSVNTIC8gQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUKLy8vICAgICB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWluZXFfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jb21pbmVxKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhbiB1bm9yZGVyZWQgY29tcGFyaXNvbiBvZiB0d28gMzItYml0IGZsb2F0IHZhbHVlcyB1c2luZwovLy8gICAgdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGggb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGVxdWFsaXR5IGFuZCByZXR1cm5zCi8vLyAgICB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNTIC8gVUNPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taWVxX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWllcSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gUGVyZm9ybXMgYW4gdW5vcmRlcmVkIGNvbXBhcmlzb24gb2YgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgdXNpbmcKLy8vICAgIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcwovLy8gICAgbGVzcyB0aGFuIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNTIC8gVUNPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pbHRfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taWx0KChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhbiB1bm9yZGVyZWQgY29tcGFyaXNvbiBvZiB0d28gMzItYml0IGZsb2F0IHZhbHVlcyB1c2luZwovLy8gICAgdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGggb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaXJzdCBvcGVyYW5kIGlzCi8vLyAgICBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNlY29uZCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlCi8vLyAgICBjb21wYXJpc29uLgovLy8KLy8vICAgIElmIGVpdGhlciBvZiB0aGUgdHdvIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVQ09NSVNTIC8gVUNPTUlTUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxyZXR1cm5zIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBJZiBlaXRoZXIgb2YgdGhlIHR3bwovLy8gICAgIGxvd2VyIDMyLWJpdCB2YWx1ZXMgaXMgTmFOLCAwIGlzIHJldHVybmVkLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91Y29taWxlX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdWNvbWlsZSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gUGVyZm9ybXMgYW4gdW5vcmRlcmVkIGNvbXBhcmlzb24gb2YgdHdvIDMyLWJpdCBmbG9hdCB2YWx1ZXMgdXNpbmcKLy8vICAgIHRoZSBsb3ctb3JkZXIgYml0cyBvZiBib3RoIG9wZXJhbmRzIHRvIGRldGVybWluZSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcwovLy8gICAgZ3JlYXRlciB0aGFuIHRoZSBzZWNvbmQgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZQovLy8gICAgY29tcGFyaXNvbi4KLy8vCi8vLyAgICBJZiBlaXRoZXIgb2YgdGhlIHR3byBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVUNPTUlTUyAvIFVDT01JU1MgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29tcGFyaXNvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccmV0dXJucyBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gSWYgZWl0aGVyIG9mIHRoZSB0d28KLy8vICAgICBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMCBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWlndF9zcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Vjb21pZ3QoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGFuIHVub3JkZXJlZCBjb21wYXJpc29uIG9mIHR3byAzMi1iaXQgZmxvYXQgdmFsdWVzIHVzaW5nCi8vLyAgICB0aGUgbG93LW9yZGVyIGJpdHMgb2YgYm90aCBvcGVyYW5kcyB0byBkZXRlcm1pbmUgaWYgdGhlIGZpcnN0IG9wZXJhbmQgaXMKLy8vICAgIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHJldHVybnMgdGhlIHJlc3VsdCBvZgovLy8gICAgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU1MgLyBVQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICAgbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDAgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Vjb21pZ2Vfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taWdlKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhbiB1bm9yZGVyZWQgY29tcGFyaXNvbiBvZiB0d28gMzItYml0IGZsb2F0IHZhbHVlcyB1c2luZwovLy8gICAgdGhlIGxvdy1vcmRlciBiaXRzIG9mIGJvdGggb3BlcmFuZHMgdG8gZGV0ZXJtaW5lIGluZXF1YWxpdHkgYW5kIHJldHVybnMKLy8vICAgIHRoZSByZXN1bHQgb2YgdGhlIGNvbXBhcmlzb24uCi8vLwovLy8gICAgSWYgZWl0aGVyIG9mIHRoZSB0d28gbG93ZXIgMzItYml0IHZhbHVlcyBpcyBOYU4sIDEgaXMgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVDT01JU1MgLyBVQ09NSVNTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbXBhcmlzb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb21wYXJpc29uLgovLy8gXHJldHVybnMgQW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIElmIGVpdGhlciBvZiB0aGUgdHdvCi8vLyAgICBsb3dlciAzMi1iaXQgdmFsdWVzIGlzIE5hTiwgMSBpcyByZXR1cm5lZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdWNvbWluZXFfc3MoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91Y29taW5lcSgoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gQ29udmVydHMgYSBmbG9hdCB2YWx1ZSBjb250YWluZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSAzMi1iaXQgaW50ZWdlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU1MyU0kgLyBDVlRTUzJTSSA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb252ZXJzaW9uLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHNzX3NpMzIoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzczJzaSgoX192NHNmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyBhIGZsb2F0IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTUzJTSSAvIENWVFNTMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0X3NzMnNpKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX21tX2N2dHNzX3NpMzIoX19hKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KCi8vLyBDb252ZXJ0cyBhIGZsb2F0IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDY0LWJpdCBpbnRlZ2VyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTUzJTSSAvIENWVFNTMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c3Nfc2k2NChfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2N2dHNzMnNpNjQoKF9fdjRzZilfX2EpOwp9CgojZW5kaWYKCi8vLyBDb252ZXJ0cyB0d28gbG93LW9yZGVyIGZsb2F0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUFMyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cHNfcGkzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9jdnRwczJwaSgoX192NHNmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0d28gbG93LW9yZGVyIGZsb2F0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUFMyUEkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0X3BzMnBpKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX21tX2N2dHBzX3BpMzIoX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgZmxvYXQgdmFsdWUgY29udGFpbmVkIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBpbnRvIGEgMzItYml0IGludGVnZXIsIHRydW5jYXRpbmcgdGhlIHJlc3VsdCB3aGVuIGl0IGlzCi8vLyAgICBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRUU1MyU0kgLyBDVlRUU1MyU0kgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnR0c3Nfc2kzMihfX20xMjggX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2N2dHRzczJzaSgoX192NHNmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyBhIGZsb2F0IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gaW50byBhIDMyLWJpdCBpbnRlZ2VyLCB0cnVuY2F0aW5nIHRoZSByZXN1bHQgd2hlbiBpdCBpcwovLy8gICAgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFNTMlNJIC8gQ1ZUVFNTMlNJIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoaXMgb3BlcmFuZCBhcmUKLy8vICAgIHVzZWQgaW4gdGhlIGNvbnZlcnNpb24uCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0dF9zczJzaShfX20xMjggX19hKQp7CiAgcmV0dXJuIF9tbV9jdnR0c3Nfc2kzMihfX2EpOwp9CgojaWZkZWYgX194ODZfNjRfXwovLy8gQ29udmVydHMgYSBmbG9hdCB2YWx1ZSBjb250YWluZWQgaW4gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSA2NC1iaXQgaW50ZWdlciwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0IHdoZW4gaXQgaXMKLy8vICAgIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFRTUzJTSSAvIENWVFRTUzJTSSA8L2M+Ci8vLyAgIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlCi8vLyAgICB1c2VkIGluIHRoZSBjb252ZXJzaW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dHRzc19zaTY0KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0dHNzMnNpNjQoKF9fdjRzZilfX2EpOwp9CiNlbmRpZgoKLy8vIENvbnZlcnRzIHR3byBsb3ctb3JkZXIgZmxvYXQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdIGludG8gYSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSwgdHJ1bmNhdGluZyB0aGUgcmVzdWx0Ci8vLyAgICB3aGVuIGl0IGlzIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUVFBTMlBJIC8gVlRUUFMyUEkgPC9jPgovLy8gICBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHRwc19waTMyKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX2N2dHRwczJwaSgoX192NHNmKV9fYSk7Cn0KCi8vLyBDb252ZXJ0cyB0d28gbG93LW9yZGVyIGZsb2F0IHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHgKLy8vICAgIGZsb2F0XSBpbnRvIGEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0sIHRydW5jYXRpbmcgdGhlIHJlc3VsdCB3aGVuIGl0Ci8vLyAgICBpcyBpbmV4YWN0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFRQUzJQSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnR0X3BzMnBpKF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX21tX2N2dHRwc19waTMyKF9fYSk7Cn0KCi8vLyBDb252ZXJ0cyBhIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSBpbnRvIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUKLy8vICAgIGFuZCB3cml0ZXMgaXQgdG8gdGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uLiBUaGUgcmVtYWluaW5nCi8vLyAgICBoaWdoZXIgb3JkZXIgZWxlbWVudHMgb2YgdGhlIGRlc3RpbmF0aW9uIHZlY3RvciBhcmUgY29waWVkIGZyb20gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRTSTJTUyAvIENWVFNJMlNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgY29udmVydGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kLiBUaGUgdXBwZXIgOTYgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA5NiBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTMyX3NzKF9fbTEyOCBfX2EsIGludCBfX2IpCnsKICBfX2FbMF0gPSBfX2I7CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnZlcnRzIGEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGludG8gYSBmbG9hdGluZyBwb2ludCB2YWx1ZQovLy8gICAgYW5kIHdyaXRlcyBpdCB0byB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgZGVzdGluYXRpb24uIFRoZSByZW1haW5pbmcKLy8vICAgIGhpZ2hlciBvcmRlciBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlIGNvcGllZCBmcm9tIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGUgZmlyc3Qgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0kyU1MgLyBDVlRTSTJTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDMyLWJpdCBzaWduZWQgaW50ZWdlciBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0X3NpMnNzKF9fbTEyOCBfX2EsIGludCBfX2IpCnsKICByZXR1cm4gX21tX2N2dHNpMzJfc3MoX19hLCBfX2IpOwp9CgojaWZkZWYgX194ODZfNjRfXwoKLy8vIENvbnZlcnRzIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGludG8gYSBmbG9hdGluZyBwb2ludCB2YWx1ZQovLy8gICAgYW5kIHdyaXRlcyBpdCB0byB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgZGVzdGluYXRpb24uIFRoZSByZW1haW5pbmcKLy8vICAgIGhpZ2hlciBvcmRlciBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlIGNvcGllZCBmcm9tIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGUgZmlyc3Qgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUU0kyU1MgLyBDVlRTSTJTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBzaWduZWQgaW50ZWdlciBvcGVyYW5kIGNvbnRhaW5pbmcgdGhlIHZhbHVlIHRvIGJlIGNvbnZlcnRlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2hvc2UgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlIG9mIHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIGNvcGllZCBmcm9tCi8vLyAgICB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2k2NF9zcyhfX20xMjggX19hLCBsb25nIGxvbmcgX19iKQp7CiAgX19hWzBdID0gX19iOwogIHJldHVybiBfX2E7Cn0KCiNlbmRpZgoKLy8vIENvbnZlcnRzIHR3byBlbGVtZW50cyBvZiBhIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGludG8gdHdvCi8vLyAgICBmbG9hdGluZyBwb2ludCB2YWx1ZXMgYW5kIHdyaXRlcyB0aGVtIHRvIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFRoZSByZW1haW5pbmcgaGlnaGVyIG9yZGVyIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUKLy8vICAgIGNvcGllZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSBlbGVtZW50cyBpbiB0aGlzIHZlY3RvciBhcmUgY29udmVydGVkCi8vLyAgICBhbmQgd3JpdHRlbiB0byB0aGUgY29ycmVzcG9uZGluZyBsb3ctb3JkZXIgZWxlbWVudHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUgY29waWVkIGZyb20KLy8vICAgIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGkzMl9wcyhfX20xMjggX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0cGkycHMoKF9fdjRzZilfX2EsIChfX3Yyc2kpX19iKTsKfQoKLy8vIENvbnZlcnRzIHR3byBlbGVtZW50cyBvZiBhIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGludG8gdHdvCi8vLyAgICBmbG9hdGluZyBwb2ludCB2YWx1ZXMgYW5kIHdyaXRlcyB0aGVtIHRvIHRoZSBsb3dlciA2NC1iaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFRoZSByZW1haW5pbmcgaGlnaGVyIG9yZGVyIGVsZW1lbnRzIG9mIHRoZSBkZXN0aW5hdGlvbiBhcmUKLy8vICAgIGNvcGllZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENWVFBJMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSBlbGVtZW50cyBpbiB0aGlzIHZlY3RvciBhcmUgY29udmVydGVkCi8vLyAgICBhbmQgd3JpdHRlbiB0byB0aGUgY29ycmVzcG9uZGluZyBsb3ctb3JkZXIgZWxlbWVudHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb252ZXJ0ZWQgdmFsdWUgZnJvbSB0aGUgc2Vjb25kIG9wZXJhbmQuIFRoZSB1cHBlciA2NCBiaXRzIGFyZSBjb3BpZWQKLy8vICAgIGZyb20gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRfcGkycHMoX19tMTI4IF9fYSwgX19tNjQgX19iKQp7CiAgcmV0dXJuIF9tbV9jdnRwaTMyX3BzKF9fYSwgX19iKTsKfQoKLy8vIEV4dHJhY3RzIGEgZmxvYXQgdmFsdWUgY29udGFpbmVkIGluIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhpcyBvcGVyYW5kIGFyZQovLy8gICAgdXNlZCBpbiB0aGUgZXh0cmFjdGlvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGZsb2F0IGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzc19mMzIoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2FbMF07Cn0KCi8vLyBMb2FkcyB0d28gcGFja2VkIGZsb2F0IHZhbHVlcyBmcm9tIHRoZSBhZGRyZXNzIFxhIF9fcCBpbnRvIHRoZQovLy8gICAgIGhpZ2gtb3JkZXIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93LW9yZGVyIGJpdHMKLy8vICAgICBhcmUgY29waWVkIGZyb20gdGhlIGxvdy1vcmRlciBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZIUEQgLyBNT1ZIUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXQovLy8gICAgb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIHR3byBwYWNrZWQgZmxvYXQgdmFsdWVzLiBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzCi8vLyAgICBbMTI3OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZGhfcGkoX19tMTI4IF9fYSwgY29uc3QgX19tNjQgKl9fcCkKewogIHR5cGVkZWYgZmxvYXQgX19tbV9sb2FkaF9waV92MmYzMiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKICBzdHJ1Y3QgX19tbV9sb2FkaF9waV9zdHJ1Y3QgewogICAgX19tbV9sb2FkaF9waV92MmYzMiBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX19tbV9sb2FkaF9waV92MmYzMiBfX2IgPSAoKGNvbnN0IHN0cnVjdCBfX21tX2xvYWRoX3BpX3N0cnVjdCopX19wKS0+X191OwogIF9fbTEyOCBfX2JiID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19iLCBfX2IsIDAsIDEsIDAsIDEpOwogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYmIsIDAsIDEsIDQsIDUpOwp9CgovLy8gTG9hZHMgdHdvIHBhY2tlZCBmbG9hdCB2YWx1ZXMgZnJvbSB0aGUgYWRkcmVzcyBcYSBfX3AgaW50byB0aGUKLy8vICAgIGxvdy1vcmRlciBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBoaWdoLW9yZGVyIGJpdHMKLy8vICAgIGFyZSBjb3BpZWQgZnJvbSB0aGUgaGlnaC1vcmRlciBiaXRzIG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMUEQgLyBNT1ZMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBCaXRzIFsxMjc6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMKLy8vICAgIFsxMjc6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byB0d28gcGFja2VkIGZsb2F0IHZhbHVlcy4gQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cwovLy8gICAgWzYzOjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9sb2FkbF9waShfX20xMjggX19hLCBjb25zdCBfX202NCAqX19wKQp7CiAgdHlwZWRlZiBmbG9hdCBfX21tX2xvYWRsX3BpX3YyZjMyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwogIHN0cnVjdCBfX21tX2xvYWRsX3BpX3N0cnVjdCB7CiAgICBfX21tX2xvYWRsX3BpX3YyZjMyIF9fdTsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX21tX2xvYWRsX3BpX3YyZjMyIF9fYiA9ICgoY29uc3Qgc3RydWN0IF9fbW1fbG9hZGxfcGlfc3RydWN0KilfX3ApLT5fX3U7CiAgX19tMTI4IF9fYmIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2IsIF9fYiwgMCwgMSwgMCwgMSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19iYiwgNCwgNSwgMiwgMyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBvZiB0aGUgdmVjdG9yIGFyZSBpbml0aWFsaXplZCB3aXRoIHRoZSBzaW5nbGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCB2YWx1ZSBsb2FkZWQgZnJvbSBhIHNwZWNpZmllZCBtZW1vcnkgbG9jYXRpb24uIFRoZSB1cHBlcgovLy8gICAgOTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlNTIC8gTU9WU1MgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAzMi1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSBzaW5nbGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCB2YWx1ZS4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUKLy8vICAgIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUgdmFsdWUgbG9hZGVkIGZyb20gdGhlIG1lbW9yeSBsb2NhdGlvbi4gVGhlCi8vLyAgICB1cHBlciA5NiBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9zcyhjb25zdCBmbG9hdCAqX19wKQp7CiAgc3RydWN0IF9fbW1fbG9hZF9zc19zdHJ1Y3QgewogICAgZmxvYXQgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGZsb2F0IF9fdSA9ICgoY29uc3Qgc3RydWN0IF9fbW1fbG9hZF9zc19zdHJ1Y3QqKV9fcCktPl9fdTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX191LCAwLCAwLCAwIH07Cn0KCi8vLyBMb2FkcyBhIDMyLWJpdCBmbG9hdCB2YWx1ZSBhbmQgZHVwbGljYXRlcyBpdCB0byBhbGwgZm91ciB2ZWN0b3IKLy8vICAgIGVsZW1lbnRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJST0FEQ0FTVFNTIC8gTU9WU1MgKyBzaHVmZmxpbmcgPC9jPgovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgZmxvYXQgdmFsdWUgdG8gYmUgbG9hZGVkIGFuZCBkdXBsaWNhdGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBsb2FkZWQgYW5kCi8vLyAgICBkdXBsaWNhdGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZDFfcHMoY29uc3QgZmxvYXQgKl9fcCkKewogIHN0cnVjdCBfX21tX2xvYWQxX3BzX3N0cnVjdCB7CiAgICBmbG9hdCBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgZmxvYXQgX191ID0gKChjb25zdCBzdHJ1Y3QgX19tbV9sb2FkMV9wc19zdHJ1Y3QqKV9fcCktPl9fdTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgX191LCBfX3UsIF9fdSwgX191IH07Cn0KCiNkZWZpbmUgICAgICAgIF9tbV9sb2FkX3BzMShwKSBfbW1fbG9hZDFfcHMocCkKCi8vLyBMb2FkcyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGZyb20gYW4gYWxpZ25lZAovLy8gICAgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gaGFzIHRvIGJlIDEyOC1iaXQgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbG9hZF9wcyhjb25zdCBmbG9hdCAqX19wKQp7CiAgcmV0dXJuICooY29uc3QgX19tMTI4KilfX3A7Cn0KCi8vLyBMb2FkcyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGZyb20gYW4KLy8vICAgIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlVQUyAvIE1PVlVQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBkb2VzIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGxvYWRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWR1X3BzKGNvbnN0IGZsb2F0ICpfX3ApCnsKICBzdHJ1Y3QgX19sb2FkdV9wcyB7CiAgICBfX20xMjhfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcHMqKV9fcCktPl9fdjsKfQoKLy8vIExvYWRzIGZvdXIgcGFja2VkIGZsb2F0IHZhbHVlcywgaW4gcmV2ZXJzZSBvcmRlciwgZnJvbSBhbiBhbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gdG8gMzItYml0IGVsZW1lbnRzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQUyAvIE1PVkFQUyArIHNodWZmbGluZyA8L2M+Ci8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gaGFzIHRvIGJlIDEyOC1iaXQgYWxpZ25lZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLCBsb2FkZWQKLy8vICAgIGluIHJldmVyc2Ugb3JkZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2xvYWRyX3BzKGNvbnN0IGZsb2F0ICpfX3ApCnsKICBfX20xMjggX19hID0gX21tX2xvYWRfcHMoX19wKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19hLCAzLCAyLCAxLCAwKTsKfQoKLy8vIENyZWF0ZSBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdpdGggdW5kZWZpbmVkIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHVuZGVmaW5lZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VuZGVmaW5lZF9wcyh2b2lkKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdW5kZWYxMjgoKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyCi8vLyAgICAzMiBiaXRzIG9mIHRoZSB2ZWN0b3IgYXJlIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZCBzaW5nbGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZy1wb2ludCB2YWx1ZS4gVGhlIHVwcGVyIDk2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTUyAvIE1PVlNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbG93ZXIgMzIKLy8vICAgIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUKLy8vICAgIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUgdmFsdWUgcHJvdmlkZWQgaW4gdGhlIHNvdXJjZSBvcGVyYW5kLiBUaGUKLy8vICAgIHVwcGVyIDk2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfc3MoZmxvYXQgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCl7IF9fdywgMCwgMCwgMCB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLCB3aXRoIGVhY2gKLy8vICAgIG9mIHRoZSBmb3VyIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUKLy8vICAgIHNwZWNpZmllZCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUyAvIFBFUk1JTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldDFfcHMoZmxvYXQgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCl7IF9fdywgX193LCBfX3csIF9fdyB9Owp9CgovKiBNaWNyb3NvZnQgc3BlY2lmaWMuICovCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0sIHdpdGggZWFjaAovLy8gICAgb2YgdGhlIGZvdXIgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTIC8gUEVSTUlMUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0X3BzMShmbG9hdCBfX3cpCnsKICAgIHJldHVybiBfbW1fc2V0MV9wcyhfX3cpOwp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdCi8vLyAgICBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX196Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo5Nl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX195Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjY0XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3gKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MzJdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMTowXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcHMoZmxvYXQgX196LCBmbG9hdCBfX3ksIGZsb2F0IF9feCwgZmxvYXQgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCl7IF9fdywgX194LCBfX3ksIF9feiB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLAovLy8gICAgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlciB3aXRoIHRoZSBzcGVjaWZpZWQgMzItYml0IHNpbmdsZS1wcmVjaXNpb24KLy8vICAgIGZsb2F0LXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3oKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX195Ci8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3gKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbOTU6NjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6OTZdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldHJfcHMoZmxvYXQgX196LCBmbG9hdCBfX3ksIGZsb2F0IF9feCwgZmxvYXQgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOCl7IF9feiwgX195LCBfX3gsIF9fdyB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGluaXRpYWxpemVkCi8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyAvIFhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gd2l0aAovLy8gICAgYWxsIGVsZW1lbnRzIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXR6ZXJvX3BzKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KXsgMCwgMCwgMCwgMCB9Owp9CgovLy8gU3RvcmVzIHRoZSB1cHBlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYQovLy8gICAgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVhUUlEgLyBQRVhUUlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSA2NC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVoX3BpKF9fbTY0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICB0eXBlZGVmIGZsb2F0IF9fbW1fc3RvcmVoX3BpX3YyZjMyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwogIHN0cnVjdCBfX21tX3N0b3JlaF9waV9zdHJ1Y3QgewogICAgX19tbV9zdG9yZWhfcGlfdjJmMzIgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fbW1fc3RvcmVoX3BpX3N0cnVjdCopX19wKS0+X191ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDIsIDMpOwp9CgovLy8gU3RvcmVzIHRoZSBsb3dlciA2NCBiaXRzIG9mIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYQovLy8gICAgIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTFBTIC8gTU9WTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZWxfcGkoX19tNjQgKl9fcCwgX19tMTI4IF9fYSkKewogIHR5cGVkZWYgZmxvYXQgX19tbV9zdG9yZWhfcGlfdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgc3RydWN0IF9fbW1fc3RvcmVoX3BpX3N0cnVjdCB7CiAgICBfX21tX3N0b3JlaF9waV92MmYzMiBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZWhfcGlfc3RydWN0KilfX3ApLT5fX3UgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSk7Cn0KCi8vLyBTdG9yZXMgdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhCi8vLyAgICAgbWVtb3J5IGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTUyAvIE1PVlNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMzItYml0IG1lbW9yeSBsb2NhdGlvbi4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdmFsdWUgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVfc3MoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIHN0cnVjdCBfX21tX3N0b3JlX3NzX3N0cnVjdCB7CiAgICBmbG9hdCBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZV9zc19zdHJ1Y3QqKV9fcCktPl9fdSA9IF9fYVswXTsKfQoKLy8vIFN0b3JlcyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGFuIHVuYWxpZ25lZCBtZW1vcnkKLy8vICAgIGxvY2F0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZVUFMgLyBNT1ZVUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeQovLy8gICAgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmV1X3BzKGZsb2F0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfcHMgewogICAgX19tMTI4X3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BzKilfX3ApLT5fX3YgPSBfX2E7Cn0KCi8vLyBTdG9yZXMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBpbnRvIGFuIGFsaWduZWQgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WQVBTIC8gTU9WQVBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkKLy8vICAgIGxvY2F0aW9uIGhhcyB0byBiZSAxNi1ieXRlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdG9yZV9wcyhmbG9hdCAqX19wLCBfX20xMjggX19hKQp7CiAgKihfX20xMjgqKV9fcCA9IF9fYTsKfQoKLy8vIFN0b3JlcyB0aGUgbG93ZXIgMzIgYml0cyBvZiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGludG8KLy8vICAgIGZvdXIgY29udGlndW91cyBlbGVtZW50cyBpbiBhbiBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gPGM+IFZNT1ZBUFMgLyBNT1ZBUFMgKyBzaHVmZmxpbmcgPC9jPgovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24uCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdob3NlIGxvd2VyIDMyIGJpdHMgYXJlIHN0b3JlZCB0byBlYWNoCi8vLyAgICBvZiB0aGUgZm91ciBjb250aWd1b3VzIGVsZW1lbnRzIHBvaW50ZWQgYnkgXGEgX19wLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmUxX3BzKGZsb2F0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICBfX2EgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDAsIDAsIDAsIDApOwogIF9tbV9zdG9yZV9wcyhfX3AsIF9fYSk7Cn0KCi8vLyBTdG9yZXMgdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBpbnRvCi8vLyAgICBmb3VyIGNvbnRpZ3VvdXMgZWxlbWVudHMgaW4gYW4gYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIDxjPiBWTU9WQVBTIC8gTU9WQVBTICsgc2h1ZmZsaW5nIDwvYz4KLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciAzMiBiaXRzIGFyZSBzdG9yZWQgdG8gZWFjaAovLy8gICAgb2YgdGhlIGZvdXIgY29udGlndW91cyBlbGVtZW50cyBwb2ludGVkIGJ5IFxhIF9fcC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0b3JlX3BzMShmbG9hdCAqX19wLCBfX20xMjggX19hKQp7CiAgX21tX3N0b3JlMV9wcyhfX3AsIF9fYSk7Cn0KCi8vLyBTdG9yZXMgZmxvYXQgdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhbgovLy8gICAgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gaW4gcmV2ZXJzZSBvcmRlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WQVBTIC8gTU9WQVBTICsgc2h1ZmZsaW5nIDwvYz4KLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBoYXMgdG8gYmUgMTI4LWJpdCBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3RvcmVyX3BzKGZsb2F0ICpfX3AsIF9fbTEyOCBfX2EpCnsKICBfX2EgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDMsIDIsIDEsIDApOwogIF9tbV9zdG9yZV9wcyhfX3AsIF9fYSk7Cn0KCiNkZWZpbmUgX01NX0hJTlRfRVQwIDcKI2RlZmluZSBfTU1fSElOVF9FVDEgNgojZGVmaW5lIF9NTV9ISU5UX1QwICAzCiNkZWZpbmUgX01NX0hJTlRfVDEgIDIKI2RlZmluZSBfTU1fSElOVF9UMiAgMQojZGVmaW5lIF9NTV9ISU5UX05UQSAwCgojaWZuZGVmIF9NU0NfVkVSCi8qIEZJWE1FOiBXZSBoYXZlIHRvICNkZWZpbmUgdGhpcyBiZWNhdXNlICJzZWwiIG11c3QgYmUgYSBjb25zdGFudCBpbnRlZ2VyLCBhbmQKICAgU2VtYSBkb2Vzbid0IGRvIGFueSBmb3JtIG9mIGNvbnN0YW50IHByb3BhZ2F0aW9uIHlldC4gKi8KCi8vLyBMb2FkcyBvbmUgY2FjaGUgbGluZSBvZiBkYXRhIGZyb20gdGhlIHNwZWNpZmllZCBhZGRyZXNzIHRvIGEgbG9jYXRpb24KLy8vICAgIGNsb3NlciB0byB0aGUgcHJvY2Vzc29yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gdm9pZCBfbW1fcHJlZmV0Y2goY29uc3Qgdm9pZCAqIGEsIGNvbnN0IGludCBzZWwpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBSRUZFVENITlRBIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIGEgY2FjaGUgbGluZSBvZiBkYXRhLgovLy8gXHBhcmFtIHNlbAovLy8gICAgQSBwcmVkZWZpbmVkIGludGVnZXIgY29uc3RhbnQgc3BlY2lmeWluZyB0aGUgdHlwZSBvZiBwcmVmZXRjaAovLy8gICAgb3BlcmF0aW9uOiBcbgovLy8gICAgX01NX0hJTlRfTlRBOiBNb3ZlIGRhdGEgdXNpbmcgdGhlIG5vbi10ZW1wb3JhbCBhY2Nlc3MgKE5UQSkgaGludC4gVGhlCi8vLyAgICBQUkVGRVRDSE5UQSBpbnN0cnVjdGlvbiB3aWxsIGJlIGdlbmVyYXRlZC4gXG4KLy8vICAgIF9NTV9ISU5UX1QwOiBNb3ZlIGRhdGEgdXNpbmcgdGhlIFQwIGhpbnQuIFRoZSBQUkVGRVRDSFQwIGluc3RydWN0aW9uIHdpbGwKLy8vICAgIGJlIGdlbmVyYXRlZC4gXG4KLy8vICAgIF9NTV9ISU5UX1QxOiBNb3ZlIGRhdGEgdXNpbmcgdGhlIFQxIGhpbnQuIFRoZSBQUkVGRVRDSFQxIGluc3RydWN0aW9uIHdpbGwKLy8vICAgIGJlIGdlbmVyYXRlZC4gXG4KLy8vICAgIF9NTV9ISU5UX1QyOiBNb3ZlIGRhdGEgdXNpbmcgdGhlIFQyIGhpbnQuIFRoZSBQUkVGRVRDSFQyIGluc3RydWN0aW9uIHdpbGwKLy8vICAgIGJlIGdlbmVyYXRlZC4KI2RlZmluZSBfbW1fcHJlZmV0Y2goYSwgc2VsKSAoX19idWlsdGluX3ByZWZldGNoKChjb25zdCB2b2lkICopKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHNlbCkgPj4gMikgJiAxLCAoc2VsKSAmIDB4MykpCiNlbmRpZgoKLy8vIFN0b3JlcyBhIDY0LWJpdCBpbnRlZ2VyIGluIHRoZSBzcGVjaWZpZWQgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFRvCi8vLyAgICBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUKLy8vICAgIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WTlRRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGFuIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHVzZWQgdG8gc3RvcmUgdGhlIHJlZ2lzdGVyIHZhbHVlLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSB2YWx1ZSB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fc3RyZWFtX3BpKF9fbTY0ICpfX3AsIF9fbTY0IF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21vdm50cShfX3AsIF9fYSk7Cn0KCi8vLyBNb3ZlcyBwYWNrZWQgZmxvYXQgdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhCi8vLyAgICAxMjgtYml0IGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uLiBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkCi8vLyAgICBhcyBub24tdGVtcG9yYWwgKHVubGlrZWx5IHRvIGJlIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5UUFMgLyBNT1ZOVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUKLy8vICAgIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdHJlYW1fcHMoZmxvYXQgKl9fcCwgX19tMTI4IF9fYSkKewogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192NHNmKV9fYSwgKF9fdjRzZiopX19wKTsKfQoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYKCi8vLyBGb3JjZXMgc3Ryb25nIG1lbW9yeSBvcmRlcmluZyAoc2VyaWFsaXphdGlvbikgYmV0d2VlbiBzdG9yZQovLy8gICAgaW5zdHJ1Y3Rpb25zIHByZWNlZGluZyB0aGlzIGluc3RydWN0aW9uIGFuZCBzdG9yZSBpbnN0cnVjdGlvbnMgZm9sbG93aW5nCi8vLyAgICB0aGlzIGluc3RydWN0aW9uLCBlbnN1cmluZyB0aGUgc3lzdGVtIGNvbXBsZXRlcyBhbGwgcHJldmlvdXMgc3RvcmVzCi8vLyAgICBiZWZvcmUgZXhlY3V0aW5nIHN1YnNlcXVlbnQgc3RvcmVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNGRU5DRSA8L2M+IGluc3RydWN0aW9uLgovLy8Kdm9pZCBfbW1fc2ZlbmNlKHZvaWQpOwoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCi8vLyBFeHRyYWN0cyAxNi1iaXQgZWxlbWVudCBmcm9tIGEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gYW5kCi8vLyAgICByZXR1cm5zIGl0LCBhcyBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2V4dHJhY3RfcGkxNihfX202NCBhLCBpbnQgbik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFWFRSVyAvIFBFWFRSVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgdGhhdCBkZXRlcm1pbmVzIHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZDogXG4KLy8vICAgIDA6IEJpdHMgWzE1OjBdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTogQml0cyBbMzE6MTZdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMjogQml0cyBbNDc6MzJdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMzogQml0cyBbNjM6NDhdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxNi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgMTYgYml0cyBvZiBwYWNrZWQgZGF0YS4KI2RlZmluZSBfbW1fZXh0cmFjdF9waTE2KGEsIG4pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0aGkoKF9fdjRoaSlhLCAoaW50KW4pKQoKLy8vIENvcGllcyBkYXRhIGZyb20gdGhlIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIHRvIHRoZSBkZXN0aW5hdGlvbiwKLy8vICAgIGFuZCBpbnNlcnRzIHRoZSBsb3dlciAxNi1iaXRzIG9mIGFuIGludGVnZXIgb3BlcmFuZCBhdCB0aGUgMTYtYml0IG9mZnNldAovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBuLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tNjQgX21tX2luc2VydF9waTE2KF9fbTY0IGEsIGludCBkLCBpbnQgbik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUElOU1JXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gZAovLy8gICAgQW4gaW50ZWdlci4gVGhlIGxvd2VyIDE2LWJpdCB2YWx1ZSBmcm9tIHRoaXMgb3BlcmFuZCBpcyB3cml0dGVuIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24gYXQgdGhlIG9mZnNldCBzcGVjaWZpZWQgYnkgb3BlcmFuZCBcYSBuLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbnQgdGhhdCBkZXRlcm1pbmVzIHdoaWNoIHRoZSBiaXRzIHRvIGJlIHVzZWQKLy8vICAgIGluIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDA6IEJpdHMgWzE1OjBdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTogQml0cyBbMzE6MTZdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMjogQml0cyBbNDc6MzJdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMzogQml0cyBbNjM6NDhdIGFyZSBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uLiAgXG4KLy8vICAgIFRoZSByZW1haW5pbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24gYXJlIGNvcGllZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nCi8vLyAgICBiaXRzIGluIG9wZXJhbmQgXGEgYS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBwYWNrZWQgZGF0YSBmcm9tIHRoZQovLy8gICAgb3BlcmFuZHMuCiNkZWZpbmUgX21tX2luc2VydF9waTE2KGEsIGQsIG4pIFwKICAoKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjRoaSgoX192NGhpKWEsIChpbnQpZCwgKGludCluKSkKCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBhY2tlZCAxNi1iaXQgaW50ZWdlciB2YWx1ZXMgb2YKLy8vICAgIHRoZSA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLCBhbmQgd3JpdGVzIHRoZSBncmVhdGVyIHZhbHVlIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTUFYU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbWF4X3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BtYXhzdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBwYWNrZWQgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgdmFsdWVzIG9mIHRoZSA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLCBhbmQgd3JpdGVzIHRoZSBncmVhdGVyIHZhbHVlIHRvIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTUFYVUIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbWF4X3B1OChfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1heHViKChfX3Y4cWkpX19hLCAoX192OHFpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBhY2tlZCAxNi1iaXQgaW50ZWdlciB2YWx1ZXMgb2YKLy8vICAgIHRoZSA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLCBhbmQgd3JpdGVzIHRoZSBsZXNzZXIgdmFsdWUgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBNSU5TVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9taW5fcGkxNihfX202NCBfX2EsIF9fbTY0IF9fYikKewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1pbnN3KChfX3Y0aGkpX19hLCAoX192NGhpKV9fYik7Cn0KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBhY2tlZCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgb2YgdGhlIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIGFuZCB3cml0ZXMgdGhlIGxlc3NlciB2YWx1ZSB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1JTlVCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX21pbl9wdTgoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BtaW51YigoX192OHFpKV9fYSwgKF9fdjhxaSlfX2IpOwp9CgovLy8gVGFrZXMgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGZyb20gZWFjaCA4LWJpdCBlbGVtZW50IGluIGEgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciB0byBjcmVhdGUgYW4gOC1iaXQgbWFzayB2YWx1ZS4gWmVyby1leHRlbmRzIHRoZSB2YWx1ZSB0bwovLy8gICAgMzItYml0IGludGVnZXIgYW5kIHdyaXRlcyBpdCB0byB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE1PVk1TS0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgd2l0aCBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBmcm9tIGVhY2ggOC1iaXQgZWxlbWVudCBpbiBcYSBfX2EsCi8vLyAgICB3cml0dGVuIHRvIGJpdHMgWzc6MF0uCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tb3ZlbWFza19waTgoX19tNjQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Btb3Ztc2tiKChfX3Y4cWkpX19hKTsKfQoKLy8vIE11bHRpcGxpZXMgcGFja2VkIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlcyBhbmQgd3JpdGVzIHRoZQovLy8gICAgaGlnaC1vcmRlciAxNiBiaXRzIG9mIGVhY2ggMzItYml0IHByb2R1Y3QgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBNVUxIVVcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX211bGhpX3B1MTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BtdWxodXcoKF9fdjRoaSlfX2EsIChfX3Y0aGkpX19iKTsKfQoKLy8vIFNodWZmbGVzIHRoZSA0IDE2LWJpdCBpbnRlZ2VycyBmcm9tIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIHRvIHRoZQovLy8gICAgZGVzdGluYXRpb24sIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIHZhbHVlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX202NCBfbW1fc2h1ZmZsZV9waTE2KF9fbTY0IGEsIGNvbnN0IGludCBuKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU0hVRlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIHNodWZmbGVkLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250YWluaW5nIGFuIDgtYml0IHZhbHVlIHNwZWNpZnlpbmcgd2hpY2ggZWxlbWVudHMgdG8KLy8vICAgIGNvcHkgZnJvbSBcYSBhLiBUaGUgZGVzdGluYXRpb25zIHdpdGhpbiB0aGUgNjQtYml0IGRlc3RpbmF0aW9uIGFyZQovLy8gICAgYXNzaWduZWQgdmFsdWVzIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBCaXRzIFsxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMTU6MF0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFszMToxNl0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzU6NF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs0NzozMl0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2Mzo0OF0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCB2YWx1ZSBhc3NpZ25tZW50czogXG4KLy8vICAgIDAwOiBhc3NpZ25lZCBmcm9tIGJpdHMgWzE1OjBdIG9mIFxhIGEuIFxuCi8vLyAgICAwMTogYXNzaWduZWQgZnJvbSBiaXRzIFszMToxNl0gb2YgXGEgYS4gXG4KLy8vICAgIDEwOiBhc3NpZ25lZCBmcm9tIGJpdHMgWzQ3OjMyXSBvZiBcYSBhLiBcbgovLy8gICAgMTE6IGFzc2lnbmVkIGZyb20gYml0cyBbNjM6NDhdIG9mIFxhIGEuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzaHVmZmxlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3NodWZmbGVfcGkxNihhLCBuKSBcCiAgKChfX202NClfX2J1aWx0aW5faWEzMl9wc2h1ZncoKF9fdjRoaSkoX19tNjQpKGEpLCAobikpKQoKLy8vIENvbmRpdGlvbmFsbHkgY29waWVzIHRoZSB2YWx1ZXMgZnJvbSBlYWNoIDgtYml0IGVsZW1lbnQgaW4gdGhlIGZpcnN0Ci8vLyAgICA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZCB0byB0aGUgc3BlY2lmaWVkIG1lbW9yeSBsb2NhdGlvbiwgYXMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiB0aGUKLy8vICAgIHNlY29uZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZC4KLy8vCi8vLyAgICBUbyBtaW5pbWl6ZSBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbAovLy8gICAgKHVubGlrZWx5IHRvIGJlIHVzZWQgYWdhaW4gc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTUFTS01PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19kCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgd2l0aCBlbGVtZW50cyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19uCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLiBUaGUgbW9zdCBzaWduaWZpY2FudCBiaXQgZnJvbSBlYWNoIDgtYml0Ci8vLyAgICBlbGVtZW50IGRldGVybWluZXMgd2hldGhlciB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19kCi8vLyAgICBpcyBjb3BpZWQuIElmIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGdpdmVuIGVsZW1lbnQgaXMgMSwgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBfX2QgaXMgY29waWVkLgovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNjQtYml0IG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgY29uZGl0aW9uYWxseQovLy8gICAgY29waWVkIGludGVnZXIgdmFsdWVzLiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90IGhhdmUKLy8vICAgIHRvIGJlIGFsaWduZWQuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbWFza21vdmVfc2k2NChfX202NCBfX2QsIF9fbTY0IF9fbiwgY2hhciAqX19wKQp7CiAgX19idWlsdGluX2lhMzJfbWFza21vdnEoKF9fdjhxaSlfX2QsIChfX3Y4cWkpX19uLCBfX3ApOwp9CgovLy8gQ29tcHV0ZXMgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgdGhlIHBhY2tlZCB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgYW5kIHdyaXRlcyB0aGUgYXZlcmFnZXMgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cyBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBVkdCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBhdmVyYWdlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9hdmdfcHU4KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYXZnYigoX192OHFpKV9fYSwgKF9fdjhxaSlfX2IpOwp9CgovLy8gQ29tcHV0ZXMgdGhlIHJvdW5kZWQgYXZlcmFnZXMgb2YgdGhlIHBhY2tlZCB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlcgovLy8gICAgdmFsdWVzIGFuZCB3cml0ZXMgdGhlIGF2ZXJhZ2VzIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQVZHVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYXZlcmFnZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fYXZnX3B1MTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3Bhdmd3KChfX3Y0aGkpX19hLCAoX192NGhpKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdGhlIGNvcnJlc3BvbmRpbmcgOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgb2YgdGhlIHR3bwovLy8gICAgNjQtYml0IHZlY3RvciBvcGVyYW5kcyBhbmQgY29tcHV0ZXMgdGhlIGFic29sdXRlIHZhbHVlIGZvciBlYWNoIG9mIHRoZQovLy8gICAgZGlmZmVyZW5jZS4gVGhlbiBzdW0gb2YgdGhlIDggYWJzb2x1dGUgZGlmZmVyZW5jZXMgaXMgd3JpdHRlbiB0byB0aGUKLy8vICAgIGJpdHMgWzE1OjBdIG9mIHRoZSBkZXN0aW5hdGlvbjsgdGhlIHJlbWFpbmluZyBiaXRzIFs2MzoxNl0gYXJlIGNsZWFyZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNBREJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciB3aG9zZSBsb3dlciAxNiBiaXRzIGNvbnRhaW4gdGhlIHN1bXMgb2YgdGhlCi8vLyAgICBzZXRzIG9mIGFic29sdXRlIGRpZmZlcmVuY2VzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4gVGhlIHVwcGVyIGJpdHMgYXJlCi8vLyAgICBjbGVhcmVkLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zYWRfcHU4KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2FkYncoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYKCi8vLyBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgTVhDU1IgcmVnaXN0ZXIgYXMgYSAzMi1iaXQgdW5zaWduZWQKLy8vICAgIGludGVnZXIgdmFsdWUuCi8vLwovLy8gICAgVGhlcmUgYXJlIHNldmVyYWwgZ3JvdXBzIG9mIG1hY3JvcyBhc3NvY2lhdGVkIHdpdGggdGhpcwovLy8gICAgaW50cmluc2ljLCBpbmNsdWRpbmc6Ci8vLyAgICA8dWw+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBjaGVja2luZyBleGNlcHRpb24gc3RhdGVzOiBfTU1fRVhDRVBUX0lOVkFMSUQsIF9NTV9FWENFUFRfRElWX1pFUk8sCi8vLyAgICAgIF9NTV9FWENFUFRfREVOT1JNLCBfTU1fRVhDRVBUX09WRVJGTE9XLCBfTU1fRVhDRVBUX1VOREVSRkxPVywKLy8vICAgICAgX01NX0VYQ0VQVF9JTkVYQUNULiBUaGVyZSBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIKLy8vICAgICAgX01NX0dFVF9FWENFUFRJT05fU1RBVEUoKS4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBjaGVja2luZyBleGNlcHRpb24gbWFza3M6IF9NTV9NQVNLX1VOREVSRkxPVywgX01NX01BU0tfT1ZFUkZMT1csCi8vLyAgICAgIF9NTV9NQVNLX0lOVkFMSUQsIF9NTV9NQVNLX0RFTk9STSwgX01NX01BU0tfRElWX1pFUk8sIF9NTV9NQVNLX0lORVhBQ1QuCi8vLyAgICAgIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBfTU1fR0VUX0VYQ0VQVElPTl9NQVNLKCkuCi8vLyAgICA8L2xpPgovLy8gICAgPGxpPgovLy8gICAgICBGb3IgY2hlY2tpbmcgcm91bmRpbmcgbW9kZXM6IF9NTV9ST1VORF9ORUFSRVNULCBfTU1fUk9VTkRfRE9XTiwKLy8vICAgICAgX01NX1JPVU5EX1VQLCBfTU1fUk9VTkRfVE9XQVJEX1pFUk8uIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fR0VUX1JPVU5ESU5HX01PREUoKS4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBjaGVja2luZyBmbHVzaC10by16ZXJvIG1vZGU6IF9NTV9GTFVTSF9aRVJPX09OLCBfTU1fRkxVU0hfWkVST19PRkYuCi8vLyAgICAgIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBfTU1fR0VUX0ZMVVNIX1pFUk9fTU9ERSgpLgovLy8gICAgPC9saT4KLy8vICAgIDxsaT4KLy8vICAgICAgRm9yIGNoZWNraW5nIGRlbm9ybWFscy1hcmUtemVybyBtb2RlOiBfTU1fREVOT1JNQUxTX1pFUk9fT04sCi8vLyAgICAgIF9NTV9ERU5PUk1BTFNfWkVST19PRkYuIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fR0VUX0RFTk9STUFMU19aRVJPX01PREUoKS4KLy8vICAgIDwvbGk+Ci8vLyAgICA8L3VsPgovLy8KLy8vICAgIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gY2hlY2tzIGlmIGFuIG92ZXJmbG93IGV4Y2VwdGlvbiBoYXMKLy8vICAgIG9jY3VycmVkOgovLy8gICAgXGNvZGUKLy8vICAgICAgKCBfbW1fZ2V0Y3NyKCkgJiBfTU1fRVhDRVBUX09WRVJGTE9XICkKLy8vICAgIFxlbmRjb2RlCi8vLwovLy8gICAgVGhlIGZvbGxvd2luZyBleHByZXNzaW9uIGdldHMgdGhlIGN1cnJlbnQgcm91bmRpbmcgbW9kZToKLy8vICAgIFxjb2RlCi8vLyAgICAgIF9NTV9HRVRfUk9VTkRJTkdfTU9ERSgpCi8vLyAgICBcZW5kY29kZQovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVE1YQ1NSIC8gU1RNWENTUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgY29udGVudHMgb2YgdGhlIE1YQ1NSCi8vLyAgICByZWdpc3Rlci4KdW5zaWduZWQgaW50IF9tbV9nZXRjc3Iodm9pZCk7CgovLy8gU2V0cyB0aGUgTVhDU1IgcmVnaXN0ZXIgd2l0aCB0aGUgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWUuCi8vLwovLy8gICAgVGhlcmUgYXJlIHNldmVyYWwgZ3JvdXBzIG9mIG1hY3JvcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBpbnRyaW5zaWMsCi8vLyAgICBpbmNsdWRpbmc6Ci8vLyAgICA8dWw+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBzZXR0aW5nIGV4Y2VwdGlvbiBzdGF0ZXM6IF9NTV9FWENFUFRfSU5WQUxJRCwgX01NX0VYQ0VQVF9ESVZfWkVSTywKLy8vICAgICAgX01NX0VYQ0VQVF9ERU5PUk0sIF9NTV9FWENFUFRfT1ZFUkZMT1csIF9NTV9FWENFUFRfVU5ERVJGTE9XLAovLy8gICAgICBfTU1fRVhDRVBUX0lORVhBQ1QuIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fU0VUX0VYQ0VQVElPTl9TVEFURSh4KSB3aGVyZSB4IGlzIG9uZSBvZiB0aGVzZSBtYWNyb3MuCi8vLyAgICA8L2xpPgovLy8gICAgPGxpPgovLy8gICAgICBGb3Igc2V0dGluZyBleGNlcHRpb24gbWFza3M6IF9NTV9NQVNLX1VOREVSRkxPVywgX01NX01BU0tfT1ZFUkZMT1csCi8vLyAgICAgIF9NTV9NQVNLX0lOVkFMSUQsIF9NTV9NQVNLX0RFTk9STSwgX01NX01BU0tfRElWX1pFUk8sIF9NTV9NQVNLX0lORVhBQ1QuCi8vLyAgICAgIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBfTU1fU0VUX0VYQ0VQVElPTl9NQVNLKHgpIHdoZXJlIHggaXMgb25lCi8vLyAgICAgIG9mIHRoZXNlIG1hY3Jvcy4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBzZXR0aW5nIHJvdW5kaW5nIG1vZGVzOiBfTU1fUk9VTkRfTkVBUkVTVCwgX01NX1JPVU5EX0RPV04sCi8vLyAgICAgIF9NTV9ST1VORF9VUCwgX01NX1JPVU5EX1RPV0FSRF9aRVJPLiBUaGVyZSBpcyBhIGNvbnZlbmllbmNlIHdyYXBwZXIKLy8vICAgICAgX01NX1NFVF9ST1VORElOR19NT0RFKHgpIHdoZXJlIHggaXMgb25lIG9mIHRoZXNlIG1hY3Jvcy4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBzZXR0aW5nIGZsdXNoLXRvLXplcm8gbW9kZTogX01NX0ZMVVNIX1pFUk9fT04sIF9NTV9GTFVTSF9aRVJPX09GRi4KLy8vICAgICAgVGhlcmUgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIF9NTV9TRVRfRkxVU0hfWkVST19NT0RFKHgpIHdoZXJlIHggaXMKLy8vICAgICAgb25lIG9mIHRoZXNlIG1hY3Jvcy4KLy8vICAgIDwvbGk+Ci8vLyAgICA8bGk+Ci8vLyAgICAgIEZvciBzZXR0aW5nIGRlbm9ybWFscy1hcmUtemVybyBtb2RlOiBfTU1fREVOT1JNQUxTX1pFUk9fT04sCi8vLyAgICAgIF9NTV9ERU5PUk1BTFNfWkVST19PRkYuIFRoZXJlIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlcgovLy8gICAgICBfTU1fU0VUX0RFTk9STUFMU19aRVJPX01PREUoeCkgd2hlcmUgeCBpcyBvbmUgb2YgdGhlc2UgbWFjcm9zLgovLy8gICAgPC9saT4KLy8vICAgIDwvdWw+Ci8vLwovLy8gICAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBjYXVzZXMgc3Vic2VxdWVudCBmbG9hdGluZy1wb2ludAovLy8gICAgb3BlcmF0aW9ucyB0byByb3VuZCB1cDoKLy8vICAgICAgX21tX3NldGNzcihfbW1fZ2V0Y3NyKCkgfCBfTU1fUk9VTkRfVVApCi8vLwovLy8gICAgVGhlIGZvbGxvd2luZyBleGFtcGxlIHNldHMgdGhlIERBWiBhbmQgRlRaIGZsYWdzOgovLy8gICAgXGNvZGUKLy8vICAgIHZvaWQgc2V0RmxhZ3MoKSB7Ci8vLyAgICAgIF9NTV9TRVRfRkxVU0hfWkVST19NT0RFKF9NTV9GTFVTSF9aRVJPX09OKTsKLy8vICAgICAgX01NX1NFVF9ERU5PUk1BTFNfWkVST19NT0RFKF9NTV9ERU5PUk1BTFNfWkVST19PTik7Ci8vLyAgICB9Ci8vLyAgICBcZW5kY29kZQovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZMRE1YQ1NSIC8gTERNWENTUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdG8gYmUgd3JpdHRlbiB0byB0aGUgTVhDU1IgcmVnaXN0ZXIuCnZvaWQgX21tX3NldGNzcih1bnNpZ25lZCBpbnQgX19pKTsKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgovLy8gU2VsZWN0cyA0IGZsb2F0IHZhbHVlcyBmcm9tIHRoZSAxMjgtYml0IG9wZXJhbmRzIG9mIFs0IHggZmxvYXRdLCBhcwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgdmFsdWUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fc2h1ZmZsZV9wcyhfX20xMjggYSwgX19tMTI4IGIsIGNvbnN0IGludCBtYXNrKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU0hVRlBTIC8gU0hVRlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBtYXNrCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgY29udGFpbmluZyBhbiA4LWJpdCB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvCi8vLyAgICBjb3B5IGZyb20gXGEgYSBhbmQgXGEgYi4gXG4KLy8vICAgIEJpdHMgWzM6MF0gc3BlY2lmeSB0aGUgdmFsdWVzIGNvcGllZCBmcm9tIG9wZXJhbmQgXGEgYS4gXG4KLy8vICAgIEJpdHMgWzc6NF0gc3BlY2lmeSB0aGUgdmFsdWVzIGNvcGllZCBmcm9tIG9wZXJhbmQgXGEgYi4gXG4KLy8vICAgIFRoZSBkZXN0aW5hdGlvbnMgd2l0aGluIHRoZSAxMjgtYml0IGRlc3RpbmF0aW9uIGFyZSBhc3NpZ25lZCB2YWx1ZXMgYXMKLy8vICAgIGZvbGxvd3M6IFxuCi8vLyAgICBCaXRzIFsxOjBdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbMzE6MF0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzM6Ml0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs2MzozMl0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzU6NF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo2NF0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6Nl0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFsxMjc6OTZdIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXQgdmFsdWUgYXNzaWdubWVudHM6IFxuCi8vLyAgICAwMDogQml0cyBbMzE6MF0gY29waWVkIGZyb20gdGhlIHNwZWNpZmllZCBvcGVyYW5kLiBcbgovLy8gICAgMDE6IEJpdHMgWzYzOjMyXSBjb3BpZWQgZnJvbSB0aGUgc3BlY2lmaWVkIG9wZXJhbmQuIFxuCi8vLyAgICAxMDogQml0cyBbOTU6NjRdIGNvcGllZCBmcm9tIHRoZSBzcGVjaWZpZWQgb3BlcmFuZC4gXG4KLy8vICAgIDExOiBCaXRzIFsxMjc6OTZdIGNvcGllZCBmcm9tIHRoZSBzcGVjaWZpZWQgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc2h1ZmZsZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9zaHVmZmxlX3BzKGEsIGIsIG1hc2spIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zaHVmcHMoKF9fdjRzZikoX19tMTI4KShhKSwgKF9fdjRzZikoX19tMTI4KShiKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShtYXNrKSkpCgovLy8gVW5wYWNrcyB0aGUgaGlnaC1vcmRlciAoaW5kZXggMiwzKSB2YWx1ZXMgZnJvbSB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbNCB4IGZsb2F0XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLSFBTIC8gVU5QQ0tIUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbOTU6NjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzMxOjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzEyNzo5Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6NjRdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyAgICBCaXRzIFs5NTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIG9mIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzEyNzo5Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNraGlfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2IsIDIsIDYsIDMsIDcpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93LW9yZGVyIChpbmRleCAwLDEpIHZhbHVlcyBmcm9tIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZmxvYXRdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tMUFMgLyBVTlBDS0xQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFszMTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMTowXSBvZiB0aGUgZGVzdGluYXRpb24uICBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMzE6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIG9mIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzYzOjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2tsb19wcyhfX20xMjggX19hLCBfX20xMjggX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYiwgMCwgNCwgMSwgNSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlcgovLy8gICAgMzIgYml0cyBhcmUgc2V0IHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSBzZWNvbmQgcGFyYW1ldGVyLiBUaGUgdXBwZXIKLy8vICAgIDk2IGJpdHMgYXJlIHNldCB0byB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCTEVORFBTIC8gQkxFTkRQUyAvIE1PVlNTIDwvYz4KLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA5NiBiaXRzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgdXBwZXIgOTYgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDMyIGJpdHMgYXJlCi8vLyAgICB3cml0dGVuIHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tb3ZlX3NzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICBfX2FbMF0gPSBfX2JbMF07CiAgcmV0dXJuIF9fYTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHNlY29uZCBwYXJhbWV0ZXIuIFRoZSB1cHBlcgovLy8gICAgNjQgYml0cyBhcmUgc2V0IHRvIHRoZSB1cHBlciA2NCBiaXRzIG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLSFBEIC8gVU5QQ0tIUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdXBwZXIgNjQgYml0cyBhcmUKLy8vICAgIHdyaXR0ZW4gdG8gdGhlIHVwcGVyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSB1cHBlciA2NCBiaXRzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZWhsX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iLCA2LCA3LCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIGZpcnN0IHBhcmFtZXRlci4gVGhlIHVwcGVyCi8vLyAgICA2NCBiaXRzIGFyZSBzZXQgdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLTFBEIC8gVU5QQ0tMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgbG93ZXIgNjQgYml0cyBhcmUKLy8vICAgIHdyaXR0ZW4gdG8gdGhlIGxvd2VyIDY0IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciA2NCBiaXRzIGFyZQovLy8gICAgd3JpdHRlbiB0byB0aGUgdXBwZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZWxoX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iLCAwLCAxLCA0LCA1KTsKfQoKLy8vIENvbnZlcnRzIGEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHgKLy8vICAgIGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQSTJQUyArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0uIFRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGlzIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgY29udmVydGVkCi8vLyAgICB2YWx1ZXMgZnJvbSB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHBpMTZfcHMoX19tNjQgX19hKQp7CiAgX19tNjQgX19iLCBfX2M7CiAgX19tMTI4IF9fcjsKCiAgX19iID0gX21tX3NldHplcm9fc2k2NCgpOwogIF9fYiA9IF9tbV9jbXBndF9waTE2KF9fYiwgX19hKTsKICBfX2MgPSBfbW1fdW5wYWNraGlfcGkxNihfX2EsIF9fYik7CiAgX19yID0gX21tX3NldHplcm9fcHMoKTsKICBfX3IgPSBfbW1fY3Z0cGkzMl9wcyhfX3IsIF9fYyk7CiAgX19yID0gX21tX21vdmVsaF9wcyhfX3IsIF9fcik7CiAgX19jID0gX21tX3VucGFja2xvX3BpMTYoX19hLCBfX2IpOwogIF9fciA9IF9tbV9jdnRwaTMyX3BzKF9fciwgX19jKTsKCiAgcmV0dXJuIF9fcjsKfQoKLy8vIENvbnZlcnRzIGEgNjQtYml0IHZlY3RvciBvZiAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgaW50byBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQSTJQUyArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMuIFRoZSBlbGVtZW50cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIGFyZSBjb3BpZWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGlzIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgY29udmVydGVkCi8vLyAgICB2YWx1ZXMgZnJvbSB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHB1MTZfcHMoX19tNjQgX19hKQp7CiAgX19tNjQgX19iLCBfX2M7CiAgX19tMTI4IF9fcjsKCiAgX19iID0gX21tX3NldHplcm9fc2k2NCgpOwogIF9fYyA9IF9tbV91bnBhY2toaV9waTE2KF9fYSwgX19iKTsKICBfX3IgPSBfbW1fc2V0emVyb19wcygpOwogIF9fciA9IF9tbV9jdnRwaTMyX3BzKF9fciwgX19jKTsKICBfX3IgPSBfbW1fbW92ZWxoX3BzKF9fciwgX19yKTsKICBfX2MgPSBfbW1fdW5wYWNrbG9fcGkxNihfX2EsIF9fYik7CiAgX19yID0gX21tX2N2dHBpMzJfcHMoX19yLCBfX2MpOwoKICByZXR1cm4gX19yOwp9CgovLy8gQ29udmVydHMgdGhlIGxvd2VyIGZvdXIgOC1iaXQgdmFsdWVzIGZyb20gYSA2NC1iaXQgdmVjdG9yIG9mIFs4IHggaThdCi8vLyAgICBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEkyUFMgKyBDT01QT1NJVEUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzggeCBpOF0uIFRoZSBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlIGNvcGllZAovLy8gICAgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBsb3dlciA0IGVsZW1lbnRzIGluIHRoaXMgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIGFuZCBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcyBmcm9tIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cGk4X3BzKF9fbTY0IF9fYSkKewogIF9fbTY0IF9fYjsKCiAgX19iID0gX21tX3NldHplcm9fc2k2NCgpOwogIF9fYiA9IF9tbV9jbXBndF9waTgoX19iLCBfX2EpOwogIF9fYiA9IF9tbV91bnBhY2tsb19waTgoX19hLCBfX2IpOwoKICByZXR1cm4gX21tX2N2dHBpMTZfcHMoX19iKTsKfQoKLy8vIENvbnZlcnRzIHRoZSBsb3dlciBmb3VyIHVuc2lnbmVkIDgtYml0IGludGVnZXIgdmFsdWVzIGZyb20gYSA2NC1iaXQKLy8vICAgIHZlY3RvciBvZiBbOCB4IHU4XSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEkyUFMgKyBDT01QT1NJVEUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlciB2YWx1ZXMuIFRoZSBlbGVtZW50cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uIGFyZSBjb3BpZWQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBsb3dlciA0IGVsZW1lbnRzIGluIHRoaXMKLy8vICAgIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgY29udmVydGVkCi8vLyAgICB2YWx1ZXMgZnJvbSB0aGUgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9jdnRwdThfcHMoX19tNjQgX19hKQp7CiAgX19tNjQgX19iOwoKICBfX2IgPSBfbW1fc2V0emVyb19zaTY0KCk7CiAgX19iID0gX21tX3VucGFja2xvX3BpOChfX2EsIF9fYik7CgogIHJldHVybiBfbW1fY3Z0cGkxNl9wcyhfX2IpOwp9CgovLy8gQ29udmVydHMgdGhlIHR3byAzMi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWVzIGZyb20gZWFjaCA2NC1iaXQgdmVjdG9yCi8vLyAgICBvcGVyYW5kIG9mIFsyIHggaTMyXSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUEkyUFMgKyBDT01QT1NJVEUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBUaGUgbG93ZXIgZWxlbWVudHMgb2YgdGhlIGRlc3RpbmF0aW9uIGFyZQovLy8gICAgY29waWVkIGZyb20gdGhlIGVsZW1lbnRzIGluIHRoaXMgb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSB1cHBlciBlbGVtZW50cyBvZiB0aGUgZGVzdGluYXRpb24gYXJlCi8vLyAgICBjb3BpZWQgZnJvbSB0aGUgZWxlbWVudHMgaW4gdGhpcyBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBjb3BpZWQgYW5kIGNvbnZlcnRlZCB2YWx1ZXMgZnJvbSB0aGUgZmlyc3Qgb3BlcmFuZC4gVGhlIHVwcGVyIDY0IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIGNvcGllZCBhbmQgY29udmVydGVkIHZhbHVlcyBmcm9tIHRoZSBzZWNvbmQgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHBpMzJ4Ml9wcyhfX202NCBfX2EsIF9fbTY0IF9fYikKewogIF9fbTEyOCBfX2M7CgogIF9fYyA9IF9tbV9zZXR6ZXJvX3BzKCk7CiAgX19jID0gX21tX2N2dHBpMzJfcHMoX19jLCBfX2IpOwogIF9fYyA9IF9tbV9tb3ZlbGhfcHMoX19jLCBfX2MpOwoKICByZXR1cm4gX21tX2N2dHBpMzJfcHMoX19jLCBfX2EpOwp9CgovLy8gQ29udmVydHMgZWFjaCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgb2YgYSAxMjgtYml0Ci8vLyAgICBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDE2LWJpdCBzaWduZWQgaW50ZWdlciwgYW5kCi8vLyAgICBwYWNrcyB0aGUgcmVzdWx0cyBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyAgICBJZiB0aGUgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyBOYU4gb3IgaW5maW5pdHksIG9yIGlmIHRoZQovLy8gICAgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyBncmVhdGVyIHRoYW4gMHg3RkZGRkZGRiBvciBsZXNzIHRoYW4gLTB4ODAwMCwKLy8vICAgIGl0IGlzIGNvbnZlcnRlZCB0byAweDgwMDAuIE90aGVyd2lzZSBpZiB0aGUgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcwovLy8gICAgZ3JlYXRlciB0aGFuIDB4N0ZGRiwgaXQgaXMgY29udmVydGVkIHRvIDB4N0ZGRi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDVlRQUzJQSSArIENPTVBPU0lURSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgY29udmVydGVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2N2dHBzX3BpMTYoX19tMTI4IF9fYSkKewogIF9fbTY0IF9fYiwgX19jOwoKICBfX2IgPSBfbW1fY3Z0cHNfcGkzMihfX2EpOwogIF9fYSA9IF9tbV9tb3ZlaGxfcHMoX19hLCBfX2EpOwogIF9fYyA9IF9tbV9jdnRwc19waTMyKF9fYSk7CgogIHJldHVybiBfbW1fcGFja3NfcGkzMihfX2IsIF9fYyk7Cn0KCi8vLyBDb252ZXJ0cyBlYWNoIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgZWxlbWVudCBvZiBhIDEyOC1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBpbnRvIGFuIDgtYml0IHNpZ25lZCBpbnRlZ2VyLCBhbmQKLy8vICAgIHBhY2tzIHRoZSByZXN1bHRzIGludG8gdGhlIGxvd2VyIDMyIGJpdHMgb2YgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YKLy8vICAgIFs4IHggaThdLiBUaGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgdmVjdG9yIGFyZSBzZXQgdG8gMC4KLy8vCi8vLyAgICBJZiB0aGUgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyBOYU4gb3IgaW5maW5pdHksIG9yIGlmIHRoZQovLy8gICAgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBpcyBncmVhdGVyIHRoYW4gMHg3RkZGRkZGRiBvciBsZXNzIHRoYW4gLTB4ODAsIGl0Ci8vLyAgICBpcyBjb252ZXJ0ZWQgdG8gMHg4MC4gT3RoZXJ3aXNlIGlmIHRoZSBmbG9hdGluZy1wb2ludCBlbGVtZW50IGlzIGdyZWF0ZXIKLy8vICAgIHRoYW4gMHg3RiwgaXQgaXMgY29udmVydGVkIHRvIDB4N0YuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1ZUUFMyUEkgKyBDT01QT1NJVEUgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLiBUaGUgbG93ZXIgMzIgYml0cyBjb250YWluIHRoZQovLy8gICAgY29udmVydGVkIHZhbHVlcyBhbmQgdGhlIHVwcHBlciAzMiBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fY3Z0cHNfcGk4KF9fbTEyOCBfX2EpCnsKICBfX202NCBfX2IsIF9fYzsKCiAgX19iID0gX21tX2N2dHBzX3BpMTYoX19hKTsKICBfX2MgPSBfbW1fc2V0emVyb19zaTY0KCk7CgogIHJldHVybiBfbW1fcGFja3NfcGkxNihfX2IsIF9fYyk7Cn0KCi8vLyBFeHRyYWN0cyB0aGUgc2lnbiBiaXRzIGZyb20gZWFjaCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50Ci8vLyAgICBlbGVtZW50IG9mIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gYW5kIHJldHVybnMgdGhlCi8vLyAgICBzaWduIGJpdHMgaW4gYml0cyBbMDozXSBvZiB0aGUgcmVzdWx0LiBCaXRzIFszMTo0XSBvZiB0aGUgcmVzdWx0IGFyZSBzZXQKLy8vICAgIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk1TS1BTIC8gTU9WTVNLUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZS4gQml0cyBbMzowXSBjb250YWluIHRoZSBzaWduIGJpdHMgZnJvbSBlYWNoCi8vLyAgICBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IGVsZW1lbnQgb2YgdGhlIHBhcmFtZXRlci4gQml0cyBbMzE6NF0gYXJlCi8vLyAgICBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZW1hc2tfcHMoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9tb3Ztc2twcygoX192NHNmKV9fYSk7Cn0KCgojZGVmaW5lIF9NTV9BTElHTjE2IF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTYpKSkKCiNkZWZpbmUgX01NX1NIVUZGTEUoeiwgeSwgeCwgdykgKCgoeikgPDwgNikgfCAoKHkpIDw8IDQpIHwgKCh4KSA8PCAyKSB8ICh3KSkKCiNkZWZpbmUgX01NX0VYQ0VQVF9JTlZBTElEICAgICgweDAwMDFVKQojZGVmaW5lIF9NTV9FWENFUFRfREVOT1JNICAgICAoMHgwMDAyVSkKI2RlZmluZSBfTU1fRVhDRVBUX0RJVl9aRVJPICAgKDB4MDAwNFUpCiNkZWZpbmUgX01NX0VYQ0VQVF9PVkVSRkxPVyAgICgweDAwMDhVKQojZGVmaW5lIF9NTV9FWENFUFRfVU5ERVJGTE9XICAoMHgwMDEwVSkKI2RlZmluZSBfTU1fRVhDRVBUX0lORVhBQ1QgICAgKDB4MDAyMFUpCiNkZWZpbmUgX01NX0VYQ0VQVF9NQVNLICAgICAgICgweDAwM2ZVKQoKI2RlZmluZSBfTU1fTUFTS19JTlZBTElEICAgICAgKDB4MDA4MFUpCiNkZWZpbmUgX01NX01BU0tfREVOT1JNICAgICAgICgweDAxMDBVKQojZGVmaW5lIF9NTV9NQVNLX0RJVl9aRVJPICAgICAoMHgwMjAwVSkKI2RlZmluZSBfTU1fTUFTS19PVkVSRkxPVyAgICAgKDB4MDQwMFUpCiNkZWZpbmUgX01NX01BU0tfVU5ERVJGTE9XICAgICgweDA4MDBVKQojZGVmaW5lIF9NTV9NQVNLX0lORVhBQ1QgICAgICAoMHgxMDAwVSkKI2RlZmluZSBfTU1fTUFTS19NQVNLICAgICAgICAgKDB4MWY4MFUpCgojZGVmaW5lIF9NTV9ST1VORF9ORUFSRVNUICAgICAoMHgwMDAwVSkKI2RlZmluZSBfTU1fUk9VTkRfRE9XTiAgICAgICAgKDB4MjAwMFUpCiNkZWZpbmUgX01NX1JPVU5EX1VQICAgICAgICAgICgweDQwMDBVKQojZGVmaW5lIF9NTV9ST1VORF9UT1dBUkRfWkVSTyAoMHg2MDAwVSkKI2RlZmluZSBfTU1fUk9VTkRfTUFTSyAgICAgICAgKDB4NjAwMFUpCgojZGVmaW5lIF9NTV9GTFVTSF9aRVJPX01BU0sgICAoMHg4MDAwVSkKI2RlZmluZSBfTU1fRkxVU0hfWkVST19PTiAgICAgKDB4ODAwMFUpCiNkZWZpbmUgX01NX0ZMVVNIX1pFUk9fT0ZGICAgICgweDAwMDBVKQoKI2RlZmluZSBfTU1fR0VUX0VYQ0VQVElPTl9NQVNLKCkgKF9tbV9nZXRjc3IoKSAmIF9NTV9NQVNLX01BU0spCiNkZWZpbmUgX01NX0dFVF9FWENFUFRJT05fU1RBVEUoKSAoX21tX2dldGNzcigpICYgX01NX0VYQ0VQVF9NQVNLKQojZGVmaW5lIF9NTV9HRVRfRkxVU0hfWkVST19NT0RFKCkgKF9tbV9nZXRjc3IoKSAmIF9NTV9GTFVTSF9aRVJPX01BU0spCiNkZWZpbmUgX01NX0dFVF9ST1VORElOR19NT0RFKCkgKF9tbV9nZXRjc3IoKSAmIF9NTV9ST1VORF9NQVNLKQoKI2RlZmluZSBfTU1fU0VUX0VYQ0VQVElPTl9NQVNLKHgpIChfbW1fc2V0Y3NyKChfbW1fZ2V0Y3NyKCkgJiB+X01NX01BU0tfTUFTSykgfCAoeCkpKQojZGVmaW5lIF9NTV9TRVRfRVhDRVBUSU9OX1NUQVRFKHgpIChfbW1fc2V0Y3NyKChfbW1fZ2V0Y3NyKCkgJiB+X01NX0VYQ0VQVF9NQVNLKSB8ICh4KSkpCiNkZWZpbmUgX01NX1NFVF9GTFVTSF9aRVJPX01PREUoeCkgKF9tbV9zZXRjc3IoKF9tbV9nZXRjc3IoKSAmIH5fTU1fRkxVU0hfWkVST19NQVNLKSB8ICh4KSkpCiNkZWZpbmUgX01NX1NFVF9ST1VORElOR19NT0RFKHgpIChfbW1fc2V0Y3NyKChfbW1fZ2V0Y3NyKCkgJiB+X01NX1JPVU5EX01BU0spIHwgKHgpKSkKCiNkZWZpbmUgX01NX1RSQU5TUE9TRTRfUFMocm93MCwgcm93MSwgcm93Miwgcm93MykgXApkbyB7IFwKICBfX20xMjggdG1wMywgdG1wMiwgdG1wMSwgdG1wMDsgXAogIHRtcDAgPSBfbW1fdW5wYWNrbG9fcHMoKHJvdzApLCAocm93MSkpOyBcCiAgdG1wMiA9IF9tbV91bnBhY2tsb19wcygocm93MiksIChyb3czKSk7IFwKICB0bXAxID0gX21tX3VucGFja2hpX3BzKChyb3cwKSwgKHJvdzEpKTsgXAogIHRtcDMgPSBfbW1fdW5wYWNraGlfcHMoKHJvdzIpLCAocm93MykpOyBcCiAgKHJvdzApID0gX21tX21vdmVsaF9wcyh0bXAwLCB0bXAyKTsgXAogIChyb3cxKSA9IF9tbV9tb3ZlaGxfcHModG1wMiwgdG1wMCk7IFwKICAocm93MikgPSBfbW1fbW92ZWxoX3BzKHRtcDEsIHRtcDMpOyBcCiAgKHJvdzMpID0gX21tX21vdmVobF9wcyh0bXAzLCB0bXAxKTsgXAp9IHdoaWxlICgwKQoKLyogQWxpYXNlcyBmb3IgY29tcGF0aWJpbGl0eS4gKi8KI2RlZmluZSBfbV9wZXh0cncgX21tX2V4dHJhY3RfcGkxNgojZGVmaW5lIF9tX3BpbnNydyBfbW1faW5zZXJ0X3BpMTYKI2RlZmluZSBfbV9wbWF4c3cgX21tX21heF9waTE2CiNkZWZpbmUgX21fcG1heHViIF9tbV9tYXhfcHU4CiNkZWZpbmUgX21fcG1pbnN3IF9tbV9taW5fcGkxNgojZGVmaW5lIF9tX3BtaW51YiBfbW1fbWluX3B1OAojZGVmaW5lIF9tX3Btb3Ztc2tiIF9tbV9tb3ZlbWFza19waTgKI2RlZmluZSBfbV9wbXVsaHV3IF9tbV9tdWxoaV9wdTE2CiNkZWZpbmUgX21fcHNodWZ3IF9tbV9zaHVmZmxlX3BpMTYKI2RlZmluZSBfbV9tYXNrbW92cSBfbW1fbWFza21vdmVfc2k2NAojZGVmaW5lIF9tX3BhdmdiIF9tbV9hdmdfcHU4CiNkZWZpbmUgX21fcGF2Z3cgX21tX2F2Z19wdTE2CiNkZWZpbmUgX21fcHNhZGJ3IF9tbV9zYWRfcHU4CiNkZWZpbmUgX21fIF9tbV8KI2RlZmluZSBfbV8gX21tXwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX01NWAoKLyogVWdseSBoYWNrIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSAoY29tcGF0aWJsZSB3aXRoIGdjYykgKi8KI2lmIGRlZmluZWQoX19TU0UyX18pICYmICFfX2J1aWxkaW5nX21vZHVsZShfQnVpbHRpbl9pbnRyaW5zaWNzKQojaW5jbHVkZSA8ZW1taW50cmluLmg+CiNlbmRpZgoKI2VuZGlmIC8qIF9fWE1NSU5UUklOX0ggKi8KAC8qPT09LS0tLSB4c2F2ZWludHJpbi5oIC0gWFNBVkUgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8eHNhdmVpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fWFNBVkVJTlRSSU5fSAojZGVmaW5lIF9fWFNBVkVJTlRSSU5fSAoKI2lmZGVmIF9NU0NfVkVSCiNkZWZpbmUgX1hDUl9YRkVBVFVSRV9FTkFCTEVEX01BU0sgMAojZW5kaWYKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygieHNhdmUiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmUodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmUoX19wLCBfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHJzdG9yKHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hyc3RvcihfX3AsIF9fbSk7Cn0KCiNpZm5kZWYgX01TQ19WRVIKI2RlZmluZSBfeGdldGJ2KEEpIF9fYnVpbHRpbl9pYTMyX3hnZXRidigobG9uZyBsb25nKShBKSkKI2RlZmluZSBfeHNldGJ2KEEsIEIpIF9fYnVpbHRpbl9pYTMyX3hzZXRidigodW5zaWduZWQgaW50KShBKSwgKHVuc2lnbmVkIGxvbmcgbG9uZykoQikpCiNlbHNlCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCnVuc2lnbmVkIF9faW50NjQgX19jZGVjbCBfeGdldGJ2KHVuc2lnbmVkIGludCk7CnZvaWQgX19jZGVjbCBfeHNldGJ2KHVuc2lnbmVkIGludCwgdW5zaWduZWQgX19pbnQ2NCk7CiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgojZW5kaWYgLyogX01TQ19WRVIgKi8KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94c2F2ZTY0KHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hzYXZlNjQoX19wLCBfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHJzdG9yNjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHJzdG9yNjQoX19wLCBfX20pOwp9CgojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALy89PT0tIEZ1enplZERhdGFQcm92aWRlci5oIC0gVXRpbGl0eSBoZWFkZXIgZm9yIGZ1enogdGFyZ2V0cyAtLS0qLSBDKysgLSogPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8gQSBzaW5nbGUgaGVhZGVyIGxpYnJhcnkgcHJvdmlkaW5nIGFuIHV0aWxpdHkgY2xhc3MgdG8gYnJlYWsgdXAgYW4gYXJyYXkgb2YKLy8gYnl0ZXMuIFdoZW5ldmVyIHJ1biBvbiB0aGUgc2FtZSBpbnB1dCwgcHJvdmlkZXMgdGhlIHNhbWUgb3V0cHV0LCBhcyBsb25nIGFzCi8vIGl0cyBtZXRob2RzIGFyZSBjYWxsZWQgaW4gdGhlIHNhbWUgb3JkZXIsIHdpdGggdGhlIHNhbWUgYXJndW1lbnRzLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBMTFZNX0ZVWlpFUl9GVVpaRURfREFUQV9QUk9WSURFUl9IXwojZGVmaW5lIExMVk1fRlVaWkVSX0ZVWlpFRF9EQVRBX1BST1ZJREVSX0hfCgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8YXJyYXk+CiNpbmNsdWRlIDxjbGltaXRzPgojaW5jbHVkZSA8Y3N0ZGRlZj4KI2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8aW5pdGlhbGl6ZXJfbGlzdD4KI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHZlY3Rvcj4KCi8vIEluIGFkZGl0aW9uIHRvIHRoZSBjb21tZW50cyBiZWxvdywgdGhlIEFQSSBpcyBhbHNvIGJyaWVmbHkgZG9jdW1lbnRlZCBhdAovLyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2Z1enppbmcvYmxvYi9tYXN0ZXIvZG9jcy9zcGxpdC1pbnB1dHMubWQjZnV6emVkLWRhdGEtcHJvdmlkZXIKY2xhc3MgRnV6emVkRGF0YVByb3ZpZGVyIHsKIHB1YmxpYzoKICAvLyB8ZGF0YXwgaXMgYW4gYXJyYXkgb2YgbGVuZ3RoIHxzaXplfCB0aGF0IHRoZSBGdXp6ZWREYXRhUHJvdmlkZXIgd3JhcHMgdG8KICAvLyBwcm92aWRlIG1vcmUgZ3JhbnVsYXIgYWNjZXNzLiB8ZGF0YXwgbXVzdCBvdXRsaXZlIHRoZSBGdXp6ZWREYXRhUHJvdmlkZXIuCiAgRnV6emVkRGF0YVByb3ZpZGVyKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBzaXplKQogICAgICA6IGRhdGFfcHRyXyhkYXRhKSwgcmVtYWluaW5nX2J5dGVzXyhzaXplKSB7fQogIH5GdXp6ZWREYXRhUHJvdmlkZXIoKSA9IGRlZmF1bHQ7CgogIC8vIFNlZSB0aGUgaW1wbGVtZW50YXRpb24gYmVsb3cgKGFmdGVyIHRoZSBjbGFzcyBkZWZpbml0aW9uKSBmb3IgbW9yZSB2ZXJib3NlCiAgLy8gY29tbWVudHMgZm9yIGVhY2ggb2YgdGhlIG1ldGhvZHMuCgogIC8vIE1ldGhvZHMgcmV0dXJuaW5nIHN0ZDo6dmVjdG9yIG9mIGJ5dGVzLiBUaGVzZSBhcmUgdGhlIG1vc3QgcG9wdWxhciBjaG9pY2UKICAvLyB3aGVuIHNwbGl0dGluZyBmdXp6aW5nIGlucHV0IGludG8gcGllY2VzLCBhcyBldmVyeSBwaWVjZSBpcyBwdXQgaW50byBhCiAgLy8gc2VwYXJhdGUgYnVmZmVyIChpLmUuIEFTYW4gd291bGQgY2F0Y2ggYW55IHVuZGVyLS9vdmVyZmxvdykgYW5kIHRoZSBtZW1vcnkKICAvLyB3aWxsIGJlIHJlbGVhc2VkIGF1dG9tYXRpY2FsbHkuCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0ZDo6dmVjdG9yPFQ+IENvbnN1bWVCeXRlcyhzaXplX3QgbnVtX2J5dGVzKTsKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KICBzdGQ6OnZlY3RvcjxUPiBDb25zdW1lQnl0ZXNXaXRoVGVybWluYXRvcihzaXplX3QgbnVtX2J5dGVzLCBUIHRlcm1pbmF0b3IgPSAwKTsKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RkOjp2ZWN0b3I8VD4gQ29uc3VtZVJlbWFpbmluZ0J5dGVzKCk7CgogIC8vIE1ldGhvZHMgcmV0dXJuaW5nIHN0cmluZ3MuIFVzZSBvbmx5IHdoZW4geW91IG5lZWQgYSBzdGQ6OnN0cmluZyBvciBhIG51bGwKICAvLyB0ZXJtaW5hdGVkIEMtc3RyaW5nLiBPdGhlcndpc2UsIHByZWZlciB0aGUgbWV0aG9kcyByZXR1cm5pbmcgc3RkOjp2ZWN0b3IuCiAgc3RkOjpzdHJpbmcgQ29uc3VtZUJ5dGVzQXNTdHJpbmcoc2l6ZV90IG51bV9ieXRlcyk7CiAgc3RkOjpzdHJpbmcgQ29uc3VtZVJhbmRvbUxlbmd0aFN0cmluZyhzaXplX3QgbWF4X2xlbmd0aCk7CiAgc3RkOjpzdHJpbmcgQ29uc3VtZVJhbmRvbUxlbmd0aFN0cmluZygpOwogIHN0ZDo6c3RyaW5nIENvbnN1bWVSZW1haW5pbmdCeXRlc0FzU3RyaW5nKCk7CgogIC8vIE1ldGhvZHMgcmV0dXJuaW5nIGludGVnZXIgdmFsdWVzLgogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIENvbnN1bWVJbnRlZ3JhbCgpOwogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIENvbnN1bWVJbnRlZ3JhbEluUmFuZ2UoVCBtaW4sIFQgbWF4KTsKCiAgLy8gTWV0aG9kcyByZXR1cm5pbmcgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIENvbnN1bWVGbG9hdGluZ1BvaW50KCk7CiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZUZsb2F0aW5nUG9pbnRJblJhbmdlKFQgbWluLCBUIG1heCk7CgogIC8vIDAgPD0gcmV0dXJuIHZhbHVlIDw9IDEuCiAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgQ29uc3VtZVByb2JhYmlsaXR5KCk7CgogIGJvb2wgQ29uc3VtZUJvb2woKTsKCiAgLy8gUmV0dXJucyBhIHZhbHVlIGNob3NlbiBmcm9tIHRoZSBnaXZlbiBlbnVtLgogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIENvbnN1bWVFbnVtKCk7CgogIC8vIFJldHVybnMgYSB2YWx1ZSBmcm9tIHRoZSBnaXZlbiBhcnJheS4KICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IHNpemU+IFQgUGlja1ZhbHVlSW5BcnJheShjb25zdCBUICgmYXJyYXkpW3NpemVdKTsKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IHNpemU+CiAgVCBQaWNrVmFsdWVJbkFycmF5KGNvbnN0IHN0ZDo6YXJyYXk8VCwgc2l6ZT4gJmFycmF5KTsKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBQaWNrVmFsdWVJbkFycmF5KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxjb25zdCBUPiBsaXN0KTsKCiAgLy8gV3JpdGVzIGRhdGEgdG8gdGhlIGdpdmVuIGRlc3RpbmF0aW9uIGFuZCByZXR1cm5zIG51bWJlciBvZiBieXRlcyB3cml0dGVuLgogIHNpemVfdCBDb25zdW1lRGF0YSh2b2lkICpkZXN0aW5hdGlvbiwgc2l6ZV90IG51bV9ieXRlcyk7CgogIC8vIFJlcG9ydHMgdGhlIHJlbWFpbmluZyBieXRlcyBhdmFpbGFibGUgZm9yIGZ1enplZCBpbnB1dC4KICBzaXplX3QgcmVtYWluaW5nX2J5dGVzKCkgeyByZXR1cm4gcmVtYWluaW5nX2J5dGVzXzsgfQoKIHByaXZhdGU6CiAgRnV6emVkRGF0YVByb3ZpZGVyKGNvbnN0IEZ1enplZERhdGFQcm92aWRlciAmKSA9IGRlbGV0ZTsKICBGdXp6ZWREYXRhUHJvdmlkZXIgJm9wZXJhdG9yPShjb25zdCBGdXp6ZWREYXRhUHJvdmlkZXIgJikgPSBkZWxldGU7CgogIHZvaWQgQ29weUFuZEFkdmFuY2Uodm9pZCAqZGVzdGluYXRpb24sIHNpemVfdCBudW1fYnl0ZXMpOwoKICB2b2lkIEFkdmFuY2Uoc2l6ZV90IG51bV9ieXRlcyk7CgogIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogIHN0ZDo6dmVjdG9yPFQ+IENvbnN1bWVCeXRlcyhzaXplX3Qgc2l6ZSwgc2l6ZV90IG51bV9ieXRlcyk7CgogIHRlbXBsYXRlIDx0eXBlbmFtZSBUUywgdHlwZW5hbWUgVFU+IFRTIENvbnZlcnRVbnNpZ25lZFRvU2lnbmVkKFRVIHZhbHVlKTsKCiAgY29uc3QgdWludDhfdCAqZGF0YV9wdHJfOwogIHNpemVfdCByZW1haW5pbmdfYnl0ZXNfOwp9OwoKLy8gUmV0dXJucyBhIHN0ZDo6dmVjdG9yIGNvbnRhaW5pbmcgfG51bV9ieXRlc3wgb2YgaW5wdXQgZGF0YS4gSWYgZmV3ZXIgdGhhbgovLyB8bnVtX2J5dGVzfCBvZiBkYXRhIHJlbWFpbiwgcmV0dXJucyBhIHNob3J0ZXIgc3RkOjp2ZWN0b3IgY29udGFpbmluZyBhbGwKLy8gb2YgdGhlIGRhdGEgdGhhdCdzIGxlZnQuIENhbiBiZSB1c2VkIHdpdGggYW55IGJ5dGUgc2l6ZWQgdHlwZSwgc3VjaCBhcwovLyBjaGFyLCB1bnNpZ25lZCBjaGFyLCB1aW50OF90LCBldGMuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdGQ6OnZlY3RvcjxUPiBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVCeXRlcyhzaXplX3QgbnVtX2J5dGVzKSB7CiAgbnVtX2J5dGVzID0gc3RkOjptaW4obnVtX2J5dGVzLCByZW1haW5pbmdfYnl0ZXNfKTsKICByZXR1cm4gQ29uc3VtZUJ5dGVzPFQ+KG51bV9ieXRlcywgbnVtX2J5dGVzKTsKfQoKLy8gU2ltaWxhciB0byB8Q29uc3VtZUJ5dGVzfCwgYnV0IGFsc28gYXBwZW5kcyB0aGUgdGVybWluYXRvciB2YWx1ZSBhdCB0aGUgZW5kCi8vIG9mIHRoZSByZXN1bHRpbmcgdmVjdG9yLiBVc2VmdWwsIHdoZW4gYSBtdXRhYmxlIG51bGwtdGVybWluYXRlZCBDLXN0cmluZyBpcwovLyBuZWVkZWQsIGZvciBleGFtcGxlLiBCdXQgdGhhdCBpcyBhIHJhcmUgY2FzZS4gQmV0dGVyIGF2b2lkIGl0LCBpZiBwb3NzaWJsZSwKLy8gYW5kIHByZWZlciB1c2luZyB8Q29uc3VtZUJ5dGVzfCBvciB8Q29uc3VtZUJ5dGVzQXNTdHJpbmd8IG1ldGhvZHMuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdGQ6OnZlY3RvcjxUPiBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVCeXRlc1dpdGhUZXJtaW5hdG9yKHNpemVfdCBudW1fYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCB0ZXJtaW5hdG9yKSB7CiAgbnVtX2J5dGVzID0gc3RkOjptaW4obnVtX2J5dGVzLCByZW1haW5pbmdfYnl0ZXNfKTsKICBzdGQ6OnZlY3RvcjxUPiByZXN1bHQgPSBDb25zdW1lQnl0ZXM8VD4obnVtX2J5dGVzICsgMSwgbnVtX2J5dGVzKTsKICByZXN1bHQuYmFjaygpID0gdGVybWluYXRvcjsKICByZXR1cm4gcmVzdWx0Owp9CgovLyBSZXR1cm5zIGEgc3RkOjp2ZWN0b3IgY29udGFpbmluZyBhbGwgcmVtYWluaW5nIGJ5dGVzIG9mIHRoZSBpbnB1dCBkYXRhLgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kc3RkOjp2ZWN0b3I8VD4gRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lUmVtYWluaW5nQnl0ZXMoKSB7CiAgcmV0dXJuIENvbnN1bWVCeXRlczxUPihyZW1haW5pbmdfYnl0ZXNfKTsKfQoKLy8gUmV0dXJucyBhIHN0ZDo6c3RyaW5nIGNvbnRhaW5pbmcgfG51bV9ieXRlc3wgb2YgaW5wdXQgZGF0YS4gVXNpbmcgdGhpcyBhbmQKLy8gfC5jX3N0cigpfCBvbiB0aGUgcmVzdWx0aW5nIHN0cmluZyBpcyB0aGUgYmVzdCB3YXkgdG8gZ2V0IGFuIGltbXV0YWJsZQovLyBudWxsLXRlcm1pbmF0ZWQgQyBzdHJpbmcuIElmIGZld2VyIHRoYW4gfG51bV9ieXRlc3wgb2YgZGF0YSByZW1haW4sIHJldHVybnMKLy8gYSBzaG9ydGVyIHN0ZDo6c3RyaW5nIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBkYXRhIHRoYXQncyBsZWZ0LgppbmxpbmUgc3RkOjpzdHJpbmcgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lQnl0ZXNBc1N0cmluZyhzaXplX3QgbnVtX2J5dGVzKSB7CiAgc3RhdGljX2Fzc2VydChzaXplb2Yoc3RkOjpzdHJpbmc6OnZhbHVlX3R5cGUpID09IHNpemVvZih1aW50OF90KSwKICAgICAgICAgICAgICAgICJDb25zdW1lQnl0ZXNBc1N0cmluZyBjYW5ub3QgY29udmVydCB0aGUgZGF0YSB0byBhIHN0cmluZy4iKTsKCiAgbnVtX2J5dGVzID0gc3RkOjptaW4obnVtX2J5dGVzLCByZW1haW5pbmdfYnl0ZXNfKTsKICBzdGQ6OnN0cmluZyByZXN1bHQoCiAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgc3RkOjpzdHJpbmc6OnZhbHVlX3R5cGUgKj4oZGF0YV9wdHJfKSwgbnVtX2J5dGVzKTsKICBBZHZhbmNlKG51bV9ieXRlcyk7CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8gUmV0dXJucyBhIHN0ZDo6c3RyaW5nIG9mIGxlbmd0aCBmcm9tIDAgdG8gfG1heF9sZW5ndGh8LiBXaGVuIGl0IHJ1bnMgb3V0IG9mCi8vIGlucHV0IGRhdGEsIHJldHVybnMgd2hhdCByZW1haW5zIG9mIHRoZSBpbnB1dC4gRGVzaWduZWQgdG8gYmUgbW9yZSBzdGFibGUKLy8gd2l0aCByZXNwZWN0IHRvIGEgZnV6emVyIGluc2VydGluZyBjaGFyYWN0ZXJzIHRoYW4ganVzdCBwaWNraW5nIGEgcmFuZG9tCi8vIGxlbmd0aCBhbmQgdGhlbiBjb25zdW1pbmcgdGhhdCBtYW55IGJ5dGVzIHdpdGggfENvbnN1bWVCeXRlc3wuCmlubGluZSBzdGQ6OnN0cmluZwpGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVSYW5kb21MZW5ndGhTdHJpbmcoc2l6ZV90IG1heF9sZW5ndGgpIHsKICAvLyBSZWFkcyBieXRlcyBmcm9tIHRoZSBzdGFydCBvZiB8ZGF0YV9wdHJffC4gTWFwcyAiXFwiIHRvICJcIiwgYW5kIG1hcHMgIlwiCiAgLy8gZm9sbG93ZWQgYnkgYW55dGhpbmcgZWxzZSB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuIEFzIGEgcmVzdWx0IG9mIHRoaXMKICAvLyBsb2dpYywgYSBmdXp6ZXIgY2FuIGluc2VydCBjaGFyYWN0ZXJzIGludG8gdGhlIHN0cmluZywgYW5kIHRoZSBzdHJpbmcKICAvLyB3aWxsIGJlIGxlbmd0aGVuZWQgdG8gaW5jbHVkZSB0aG9zZSBuZXcgY2hhcmFjdGVycywgcmVzdWx0aW5nIGluIGEgbW9yZQogIC8vIHN0YWJsZSBmdXp6ZXIgdGhhbiBwaWNraW5nIHRoZSBsZW5ndGggb2YgYSBzdHJpbmcgaW5kZXBlbmRlbnRseSBmcm9tCiAgLy8gcGlja2luZyBpdHMgY29udGVudHMuCiAgc3RkOjpzdHJpbmcgcmVzdWx0OwoKICAvLyBSZXNlcnZlIHRoZSBhbnRpY2lwYXRlZCBjYXBhdGljaXR5IHRvIHByZXZlbnQgc2V2ZXJhbCByZWFsbG9jYXRpb25zLgogIHJlc3VsdC5yZXNlcnZlKHN0ZDo6bWluKG1heF9sZW5ndGgsIHJlbWFpbmluZ19ieXRlc18pKTsKICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1heF9sZW5ndGggJiYgcmVtYWluaW5nX2J5dGVzXyAhPSAwOyArK2kpIHsKICAgIGNoYXIgbmV4dCA9IENvbnZlcnRVbnNpZ25lZFRvU2lnbmVkPGNoYXI+KGRhdGFfcHRyX1swXSk7CiAgICBBZHZhbmNlKDEpOwogICAgaWYgKG5leHQgPT0gJ1xcJyAmJiByZW1haW5pbmdfYnl0ZXNfICE9IDApIHsKICAgICAgbmV4dCA9IENvbnZlcnRVbnNpZ25lZFRvU2lnbmVkPGNoYXI+KGRhdGFfcHRyX1swXSk7CiAgICAgIEFkdmFuY2UoMSk7CiAgICAgIGlmIChuZXh0ICE9ICdcXCcpCiAgICAgICAgYnJlYWs7CiAgICB9CiAgICByZXN1bHQgKz0gbmV4dDsKICB9CgogIHJlc3VsdC5zaHJpbmtfdG9fZml0KCk7CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8gUmV0dXJucyBhIHN0ZDo6c3RyaW5nIG9mIGxlbmd0aCBmcm9tIDAgdG8gfHJlbWFpbmluZ19ieXRlc198LgppbmxpbmUgc3RkOjpzdHJpbmcgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lUmFuZG9tTGVuZ3RoU3RyaW5nKCkgewogIHJldHVybiBDb25zdW1lUmFuZG9tTGVuZ3RoU3RyaW5nKHJlbWFpbmluZ19ieXRlc18pOwp9CgovLyBSZXR1cm5zIGEgc3RkOjpzdHJpbmcgY29udGFpbmluZyBhbGwgcmVtYWluaW5nIGJ5dGVzIG9mIHRoZSBpbnB1dCBkYXRhLgovLyBQcmVmZXIgdXNpbmcgfENvbnN1bWVSZW1haW5pbmdCeXRlc3wgdW5sZXNzIHlvdSBhY3R1YWxseSBuZWVkIGEgc3RkOjpzdHJpbmcKLy8gb2JqZWN0LgppbmxpbmUgc3RkOjpzdHJpbmcgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lUmVtYWluaW5nQnl0ZXNBc1N0cmluZygpIHsKICByZXR1cm4gQ29uc3VtZUJ5dGVzQXNTdHJpbmcocmVtYWluaW5nX2J5dGVzXyk7Cn0KCi8vIFJldHVybnMgYSBudW1iZXIgaW4gdGhlIHJhbmdlIFtUeXBlJ3MgbWluLCBUeXBlJ3MgbWF4XS4gVGhlIHZhbHVlIG1pZ2h0Ci8vIG5vdCBiZSB1bmlmb3JtbHkgZGlzdHJpYnV0ZWQgaW4gdGhlIGdpdmVuIHJhbmdlLiBJZiB0aGVyZSdzIG5vIGlucHV0IGRhdGEKLy8gbGVmdCwgYWx3YXlzIHJldHVybnMgfG1pbnwuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUludGVncmFsKCkgewogIHJldHVybiBDb25zdW1lSW50ZWdyYWxJblJhbmdlKHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1pbigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Om1heCgpKTsKfQoKLy8gUmV0dXJucyBhIG51bWJlciBpbiB0aGUgcmFuZ2UgW21pbiwgbWF4XSBieSBjb25zdW1pbmcgYnl0ZXMgZnJvbSB0aGUKLy8gaW5wdXQgZGF0YS4gVGhlIHZhbHVlIG1pZ2h0IG5vdCBiZSB1bmlmb3JtbHkgZGlzdHJpYnV0ZWQgaW4gdGhlIGdpdmVuCi8vIHJhbmdlLiBJZiB0aGVyZSdzIG5vIGlucHV0IGRhdGEgbGVmdCwgYWx3YXlzIHJldHVybnMgfG1pbnwuIHxtaW58IG11c3QKLy8gYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHxtYXh8Lgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KVCBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVJbnRlZ3JhbEluUmFuZ2UoVCBtaW4sIFQgbWF4KSB7CiAgc3RhdGljX2Fzc2VydChzdGQ6OmlzX2ludGVncmFsPFQ+Ojp2YWx1ZSwgIkFuIGludGVncmFsIHR5cGUgaXMgcmVxdWlyZWQuIik7CiAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPD0gc2l6ZW9mKHVpbnQ2NF90KSwgIlVuc3VwcG9ydGVkIGludGVncmFsIHR5cGUuIik7CgogIGlmIChtaW4gPiBtYXgpCiAgICBhYm9ydCgpOwoKICAvLyBVc2UgdGhlIGJpZ2dlc3QgdHlwZSBwb3NzaWJsZSB0byBob2xkIHRoZSByYW5nZSBhbmQgdGhlIHJlc3VsdC4KICB1aW50NjRfdCByYW5nZSA9IHN0YXRpY19jYXN0PHVpbnQ2NF90PihtYXgpIC0gbWluOwogIHVpbnQ2NF90IHJlc3VsdCA9IDA7CiAgc2l6ZV90IG9mZnNldCA9IDA7CgogIHdoaWxlIChvZmZzZXQgPCBzaXplb2YoVCkgKiBDSEFSX0JJVCAmJiAocmFuZ2UgPj4gb2Zmc2V0KSA+IDAgJiYKICAgICAgICAgcmVtYWluaW5nX2J5dGVzXyAhPSAwKSB7CiAgICAvLyBQdWxsIGJ5dGVzIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWVkIGRhdGEuIEV4cGVyaW1lbnRhbGx5LCB0aGlzIHNlZW1zIHRvCiAgICAvLyBhbGxvdyB0aGUgZnV6emVyIHRvIG1vcmUgZWFzaWx5IGV4cGxvcmUgdGhlIGlucHV0IHNwYWNlLiBUaGlzIG1ha2VzCiAgICAvLyBzZW5zZSwgc2luY2UgaXQgd29ya3MgYnkgbW9kaWZ5aW5nIGlucHV0cyB0aGF0IGNhdXNlZCBuZXcgY29kZSB0byBydW4sCiAgICAvLyBhbmQgdGhpcyBkYXRhIGlzIG9mdGVuIHVzZWQgdG8gZW5jb2RlIGxlbmd0aCBvZiBkYXRhIHJlYWQgYnkKICAgIC8vIHxDb25zdW1lQnl0ZXN8LiBTZXBhcmF0aW5nIG91dCByZWFkIGxlbmd0aHMgbWFrZXMgaXQgZWFzaWVyIG1vZGlmeSB0aGUKICAgIC8vIGNvbnRlbnRzIG9mIHRoZSBkYXRhIHRoYXQgaXMgYWN0dWFsbHkgcmVhZC4KICAgIC0tcmVtYWluaW5nX2J5dGVzXzsKICAgIHJlc3VsdCA9IChyZXN1bHQgPDwgQ0hBUl9CSVQpIHwgZGF0YV9wdHJfW3JlbWFpbmluZ19ieXRlc19dOwogICAgb2Zmc2V0ICs9IENIQVJfQklUOwogIH0KCiAgLy8gQXZvaWQgZGl2aXNpb24gYnkgMCwgaW4gY2FzZSB8cmFuZ2UgKyAxfCByZXN1bHRzIGluIG92ZXJmbG93LgogIGlmIChyYW5nZSAhPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRlY2x0eXBlKHJhbmdlKT46Om1heCgpKQogICAgcmVzdWx0ID0gcmVzdWx0ICUgKHJhbmdlICsgMSk7CgogIHJldHVybiBzdGF0aWNfY2FzdDxUPihtaW4gKyByZXN1bHQpOwp9CgovLyBSZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgaW4gdGhlIHJhbmdlIFtUeXBlJ3MgbG93ZXN0LCBUeXBlJ3MgbWF4XSBieQovLyBjb25zdW1pbmcgYnl0ZXMgZnJvbSB0aGUgaW5wdXQgZGF0YS4gSWYgdGhlcmUncyBubyBpbnB1dCBkYXRhIGxlZnQsIGFsd2F5cwovLyByZXR1cm5zIGFwcHJveGltYXRlbHkgMC4KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQgRnV6emVkRGF0YVByb3ZpZGVyOjpDb25zdW1lRmxvYXRpbmdQb2ludCgpIHsKICByZXR1cm4gQ29uc3VtZUZsb2F0aW5nUG9pbnRJblJhbmdlPFQ+KHN0ZDo6bnVtZXJpY19saW1pdHM8VD46Omxvd2VzdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkpOwp9CgovLyBSZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgaW4gdGhlIGdpdmVuIHJhbmdlIGJ5IGNvbnN1bWluZyBieXRlcyBmcm9tCi8vIHRoZSBpbnB1dCBkYXRhLiBJZiB0aGVyZSdzIG5vIGlucHV0IGRhdGEgbGVmdCwgcmV0dXJucyB8bWlufC4gTm90ZSB0aGF0Ci8vIHxtaW58IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHxtYXh8Lgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KVCBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVGbG9hdGluZ1BvaW50SW5SYW5nZShUIG1pbiwgVCBtYXgpIHsKICBpZiAobWluID4gbWF4KQogICAgYWJvcnQoKTsKCiAgVCByYW5nZSA9IC4wOwogIFQgcmVzdWx0ID0gbWluOwogIGNvbnN0ZXhwciBUIHplcm8oLjApOwogIGlmIChtYXggPiB6ZXJvICYmIG1pbiA8IHplcm8gJiYgbWF4ID4gbWluICsgc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCkpIHsKICAgIC8vIFRoZSBkaWZmIHxtYXggLSBtaW58IHdvdWxkIG92ZXJmbG93IHRoZSBnaXZlbiBmbG9hdGluZyBwb2ludCB0eXBlLiBVc2UKICAgIC8vIHRoZSBoYWxmIG9mIHRoZSBkaWZmIGFzIHRoZSByYW5nZSBhbmQgY29uc3VtZSBhIGJvb2wgdG8gZGVjaWRlIHdoZXRoZXIKICAgIC8vIHRoZSByZXN1bHQgaXMgaW4gdGhlIGZpcnN0IG9mIHRoZSBzZWNvbmQgcGFydCBvZiB0aGUgZGlmZi4KICAgIHJhbmdlID0gKG1heCAvIDIuMCkgLSAobWluIC8gMi4wKTsKICAgIGlmIChDb25zdW1lQm9vbCgpKSB7CiAgICAgIHJlc3VsdCArPSByYW5nZTsKICAgIH0KICB9IGVsc2UgewogICAgcmFuZ2UgPSBtYXggLSBtaW47CiAgfQoKICByZXR1cm4gcmVzdWx0ICsgcmFuZ2UgKiBDb25zdW1lUHJvYmFiaWxpdHk8VD4oKTsKfQoKLy8gUmV0dXJucyBhIGZsb2F0aW5nIHBvaW50IG51bWJlciBpbiB0aGUgcmFuZ2UgWzAuMCwgMS4wXS4gSWYgdGhlcmUncyBubwovLyBpbnB1dCBkYXRhIGxlZnQsIGFsd2F5cyByZXR1cm5zIDAuCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBUIEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZVByb2JhYmlsaXR5KCkgewogIHN0YXRpY19hc3NlcnQoc3RkOjppc19mbG9hdGluZ19wb2ludDxUPjo6dmFsdWUsCiAgICAgICAgICAgICAgICAiQSBmbG9hdGluZyBwb2ludCB0eXBlIGlzIHJlcXVpcmVkLiIpOwoKICAvLyBVc2UgZGlmZmVyZW50IGludGVncmFsIHR5cGVzIGZvciBkaWZmZXJlbnQgZmxvYXRpbmcgcG9pbnQgdHlwZXMgaW4gb3JkZXIKICAvLyB0byBwcm92aWRlIGJldHRlciBkZW5zaXR5IG9mIHRoZSByZXN1bHRpbmcgdmFsdWVzLgogIHVzaW5nIEludGVncmFsVHlwZSA9CiAgICAgIHR5cGVuYW1lIHN0ZDo6Y29uZGl0aW9uYWw8KHNpemVvZihUKSA8PSBzaXplb2YodWludDMyX3QpKSwgdWludDMyX3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Q+Ojp0eXBlOwoKICBUIHJlc3VsdCA9IHN0YXRpY19jYXN0PFQ+KENvbnN1bWVJbnRlZ3JhbDxJbnRlZ3JhbFR5cGU+KCkpOwogIHJlc3VsdCAvPSBzdGF0aWNfY2FzdDxUPihzdGQ6Om51bWVyaWNfbGltaXRzPEludGVncmFsVHlwZT46Om1heCgpKTsKICByZXR1cm4gcmVzdWx0Owp9CgovLyBSZWFkcyBvbmUgYnl0ZSBhbmQgcmV0dXJucyBhIGJvb2wsIG9yIGZhbHNlIHdoZW4gbm8gZGF0YSByZW1haW5zLgppbmxpbmUgYm9vbCBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVCb29sKCkgewogIHJldHVybiAxICYgQ29uc3VtZUludGVncmFsPHVpbnQ4X3Q+KCk7Cn0KCi8vIFJldHVybnMgYW4gZW51bSB2YWx1ZS4gVGhlIGVudW0gbXVzdCBzdGFydCBhdCAwIGFuZCBiZSBjb250aWd1b3VzLiBJdCBtdXN0Ci8vIGFsc28gY29udGFpbiB8a01heFZhbHVlfCBhbGlhc2VkIHRvIGl0cyBsYXJnZXN0IChpbmNsdXNpdmUpIHZhbHVlLiBTdWNoIGFzOgovLyBlbnVtIGNsYXNzIEZvbyB7IFNvbWVWYWx1ZSwgT3RoZXJWYWx1ZSwga01heFZhbHVlID0gT3RoZXJWYWx1ZSB9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gVCBGdXp6ZWREYXRhUHJvdmlkZXI6OkNvbnN1bWVFbnVtKCkgewogIHN0YXRpY19hc3NlcnQoc3RkOjppc19lbnVtPFQ+Ojp2YWx1ZSwgInxUfCBtdXN0IGJlIGFuIGVudW0gdHlwZS4iKTsKICByZXR1cm4gc3RhdGljX2Nhc3Q8VD4oCiAgICAgIENvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8dWludDMyX3Q+KDAsIHN0YXRpY19jYXN0PHVpbnQzMl90PihUOjprTWF4VmFsdWUpKSk7Cn0KCi8vIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzZWxlY3RlZCBmcm9tIHRoZSBnaXZlbiBmaXhlZC1zaXplIHxhcnJheXwuCnRlbXBsYXRlIDx0eXBlbmFtZSBULCBzaXplX3Qgc2l6ZT4KVCBGdXp6ZWREYXRhUHJvdmlkZXI6OlBpY2tWYWx1ZUluQXJyYXkoY29uc3QgVCAoJmFycmF5KVtzaXplXSkgewogIHN0YXRpY19hc3NlcnQoc2l6ZSA+IDAsICJUaGUgYXJyYXkgbXVzdCBiZSBub24gZW1wdHkuIik7CiAgcmV0dXJuIGFycmF5W0NvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8c2l6ZV90PigwLCBzaXplIC0gMSldOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgc2l6ZV90IHNpemU+ClQgRnV6emVkRGF0YVByb3ZpZGVyOjpQaWNrVmFsdWVJbkFycmF5KGNvbnN0IHN0ZDo6YXJyYXk8VCwgc2l6ZT4gJmFycmF5KSB7CiAgc3RhdGljX2Fzc2VydChzaXplID4gMCwgIlRoZSBhcnJheSBtdXN0IGJlIG5vbiBlbXB0eS4iKTsKICByZXR1cm4gYXJyYXlbQ29uc3VtZUludGVncmFsSW5SYW5nZTxzaXplX3Q+KDAsIHNpemUgLSAxKV07Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpUIEZ1enplZERhdGFQcm92aWRlcjo6UGlja1ZhbHVlSW5BcnJheShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Y29uc3QgVD4gbGlzdCkgewogIC8vIFRPRE8oRG9yMXMpOiBzd2l0Y2ggdG8gc3RhdGljX2Fzc2VydCBvbmNlIEMrKzE0IGlzIGFsbG93ZWQuCiAgaWYgKCFsaXN0LnNpemUoKSkKICAgIGFib3J0KCk7CgogIHJldHVybiAqKGxpc3QuYmVnaW4oKSArIENvbnN1bWVJbnRlZ3JhbEluUmFuZ2U8c2l6ZV90PigwLCBsaXN0LnNpemUoKSAtIDEpKTsKfQoKLy8gV3JpdGVzIHxudW1fYnl0ZXN8IG9mIGlucHV0IGRhdGEgdG8gdGhlIGdpdmVuIGRlc3RpbmF0aW9uIHBvaW50ZXIuIElmIHRoZXJlCi8vIGlzIG5vdCBlbm91Z2ggZGF0YSBsZWZ0LCB3cml0ZXMgYWxsIHJlbWFpbmluZyBieXRlcy4gUmV0dXJuIHZhbHVlIGlzIHRoZQovLyBudW1iZXIgb2YgYnl0ZXMgd3JpdHRlbi4KLy8gSW4gZ2VuZXJhbCwgaXQncyBiZXR0ZXIgdG8gYXZvaWQgdXNpbmcgdGhpcyBmdW5jdGlvbiwgYnV0IGl0IG1heSBiZSB1c2VmdWwKLy8gaW4gY2FzZXMgd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBmaWxsIGEgY2VydGFpbiBidWZmZXIgb3Igb2JqZWN0IHdpdGgKLy8gZnV6emluZyBkYXRhLgppbmxpbmUgc2l6ZV90IEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZURhdGEodm9pZCAqZGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgbnVtX2J5dGVzKSB7CiAgbnVtX2J5dGVzID0gc3RkOjptaW4obnVtX2J5dGVzLCByZW1haW5pbmdfYnl0ZXNfKTsKICBDb3B5QW5kQWR2YW5jZShkZXN0aW5hdGlvbiwgbnVtX2J5dGVzKTsKICByZXR1cm4gbnVtX2J5dGVzOwp9CgovLyBQcml2YXRlIG1ldGhvZHMuCmlubGluZSB2b2lkIEZ1enplZERhdGFQcm92aWRlcjo6Q29weUFuZEFkdmFuY2Uodm9pZCAqZGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG51bV9ieXRlcykgewogIHN0ZDo6bWVtY3B5KGRlc3RpbmF0aW9uLCBkYXRhX3B0cl8sIG51bV9ieXRlcyk7CiAgQWR2YW5jZShudW1fYnl0ZXMpOwp9CgppbmxpbmUgdm9pZCBGdXp6ZWREYXRhUHJvdmlkZXI6OkFkdmFuY2Uoc2l6ZV90IG51bV9ieXRlcykgewogIGlmIChudW1fYnl0ZXMgPiByZW1haW5pbmdfYnl0ZXNfKQogICAgYWJvcnQoKTsKCiAgZGF0YV9wdHJfICs9IG51bV9ieXRlczsKICByZW1haW5pbmdfYnl0ZXNfIC09IG51bV9ieXRlczsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnN0ZDo6dmVjdG9yPFQ+IEZ1enplZERhdGFQcm92aWRlcjo6Q29uc3VtZUJ5dGVzKHNpemVfdCBzaXplLCBzaXplX3QgbnVtX2J5dGVzKSB7CiAgc3RhdGljX2Fzc2VydChzaXplb2YoVCkgPT0gc2l6ZW9mKHVpbnQ4X3QpLCAiSW5jb21wYXRpYmxlIGRhdGEgdHlwZS4iKTsKCiAgLy8gVGhlIHBvaW50IG9mIHVzaW5nIHRoZSBzaXplLWJhc2VkIGNvbnN0cnVjdG9yIGJlbG93IGlzIHRvIGluY3JlYXNlIHRoZQogIC8vIG9kZHMgb2YgaGF2aW5nIGEgdmVjdG9yIG9iamVjdCB3aXRoIGNhcGFjaXR5IGJlaW5nIGVxdWFsIHRvIHRoZSBsZW5ndGguCiAgLy8gVGhhdCBwYXJ0IGlzIGFsd2F5cyBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYywgYnV0IGF0IGxlYXN0IGJvdGggbGliYysrIGFuZAogIC8vIGxpYnN0ZGMrKyBhbGxvY2F0ZSB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBieXRlcyBpbiB0aGF0IGNvbnN0cnVjdG9yLAogIC8vIHdoaWNoIHNlZW1zIHRvIGJlIGEgbmF0dXJhbCBjaG9pY2UgZm9yIG90aGVyIGltcGxlbWVudGF0aW9ucyBhcyB3ZWxsLgogIC8vIFRvIGluY3JlYXNlIHRoZSBvZGRzIGV2ZW4gbW9yZSwgd2UgYWxzbyBjYWxsIHxzaHJpbmtfdG9fZml0fCBiZWxvdy4KICBzdGQ6OnZlY3RvcjxUPiByZXN1bHQoc2l6ZSk7CiAgaWYgKHNpemUgPT0gMCkgewogICAgaWYgKG51bV9ieXRlcyAhPSAwKQogICAgICBhYm9ydCgpOwogICAgcmV0dXJuIHJlc3VsdDsKICB9CgogIENvcHlBbmRBZHZhbmNlKHJlc3VsdC5kYXRhKCksIG51bV9ieXRlcyk7CgogIC8vIEV2ZW4gdGhvdWdoIHxzaHJpbmtfdG9fZml0fCBpcyBhbHNvIGltcGxlbWVudGF0aW9uIHNwZWNpZmljLCB3ZSBleHBlY3QgaXQKICAvLyB0byBwcm92aWRlIGFuIGFkZGl0aW9uYWwgYXNzdXJhbmNlIGluIGNhc2UgdmVjdG9yJ3MgY29uc3RydWN0b3IgYWxsb2NhdGVkCiAgLy8gYSBidWZmZXIgd2hpY2ggaXMgbGFyZ2VyIHRoYW4gdGhlIGFjdHVhbCBhbW91bnQgb2YgZGF0YSB3ZSBwdXQgaW5zaWRlIGl0LgogIHJlc3VsdC5zaHJpbmtfdG9fZml0KCk7CiAgcmV0dXJuIHJlc3VsdDsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIFRTLCB0eXBlbmFtZSBUVT4KVFMgRnV6emVkRGF0YVByb3ZpZGVyOjpDb252ZXJ0VW5zaWduZWRUb1NpZ25lZChUVSB2YWx1ZSkgewogIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFRTKSA9PSBzaXplb2YoVFUpLCAiSW5jb21wYXRpYmxlIGRhdGEgdHlwZXMuIik7CiAgc3RhdGljX2Fzc2VydCghc3RkOjpudW1lcmljX2xpbWl0czxUVT46OmlzX3NpZ25lZCwKICAgICAgICAgICAgICAgICJTb3VyY2UgdHlwZSBtdXN0IGJlIHVuc2lnbmVkLiIpOwoKICAvLyBUT0RPKERvcjFzKTogY2hhbmdlIHRvIGBpZiBjb25zdGV4cHJgIG9uY2UgQysrMTcgYmVjb21lcyBtYWluc3RyZWFtLgogIGlmIChzdGQ6Om51bWVyaWNfbGltaXRzPFRTPjo6aXNfbW9kdWxvKQogICAgcmV0dXJuIHN0YXRpY19jYXN0PFRTPih2YWx1ZSk7CgogIC8vIEF2b2lkIHVzaW5nIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdW5zaWduZWQgdG8gc2lnbmVkIGNvbnZlcnNpb25zLgogIC8vIFRvIGxlYXJuIG1vcmUsIHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMzE1MDQ0OS4KICBpZiAodmFsdWUgPD0gc3RkOjpudW1lcmljX2xpbWl0czxUUz46Om1heCgpKSB7CiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VFM+KHZhbHVlKTsKICB9IGVsc2UgewogICAgY29uc3RleHByIGF1dG8gVFNfbWluID0gc3RkOjpudW1lcmljX2xpbWl0czxUUz46Om1pbigpOwogICAgcmV0dXJuIFRTX21pbiArIHN0YXRpY19jYXN0PFRTPih2YWx1ZSAtIFRTX21pbik7CiAgfQp9CgojZW5kaWYgLy8gTExWTV9GVVpaRVJfRlVaWkVEX0RBVEFfUFJPVklERVJfSF8KAG9wZW5tcF93cmFwcGVycy9fX2NsYW5nX29wZW5tcF9kZXZpY2VfZnVuY3Rpb25zLmgAZnNlZWsoaGFuZGxlLCAwLCAwKQBcAEpTT04gdHJhbnNjb2RlciBwcm9kdWNlZCBpbnZhbGlkIHByb3RvYnVmIG91dHB1dC4AVW5rbm93biBlbmNvZGluZyAnAERGQSBvdXQgb2YgbWVtb3J5OiBzaXplIABbOl5zcGFjZTpdAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvdG9zdHJpbmcuY2MAKgBcQgBHbGFnb2xpdGljAEtobWVyAEtob2praQBMbQBNYXJjaGVuAE9yaXlhAFBzAFNtAFNvZ2RpYW4AVGhhaQAgICAgAGxzZWVrKCVkLCAlanUsIFNFRUtfU0VUKSBmYWlsZWQ6IGVycm5vPSVkAHJlYWQgZmFpbGVkOiBlcnJubz0lZABDb3JydXB0IC9wcm9jL3NlbGYvbWFwczogJXMAb2Zmc2V0IG91dCBvZiByYW5nZQBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC9sb3dfbGV2ZWxfYWxsb2MuY2MAc2lnbmVkIGNoYXIAbG9uZyBsb25nAGR2AHBMAGxlADEyAENBTkNFTExFRABVTklNUExFTUVOVEVEAENvcmRSZXBCdHJlZTo6Q2hlY2tWYWxpZCgpIEZBSUxFRDogJXMALCBoZWFkID0gAG5zAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWNkc2EvZWNkc2EuYwBBRVNfc2V0X2VuY3J5cHRfa2V5IGZhaWxlZC4KAEFFUy1DQkMgRW5jcnlwdGlvbiBLQVQAUlNBIEtleUdlbiBmYWlsZWQKACVseABpbnZhbGlkIGxpYnJhcnkgKDApAENpcGhlciBmdW5jdGlvbnMAa3l0aGUucHJvdG8uRmlsZUluZm8uZGlnZXN0AGt5dGhlLnByb3RvLmNvbW1vbi5TeW1ib2xJbmZvLmJhc2VfbmFtZQBreXRoZS5wcm90by5Xcml0ZVJlcXVlc3QuVXBkYXRlLmVkZ2Vfa2luZAAtWGNsYW5nfC10YXJnZXQAQ2FuJ3QgcmVwcm9kdWNlIGluY2x1ZGUgbG9va3VwIHN0YXRlOiAAUmVzb3VyY2UgZGlyZWN0b3J5IGlzIAAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEyaWZtYWludHJpbi5oIC0gSUZNQSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmlmbWFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fSUZNQUlOVFJJTl9ICiNkZWZpbmUgX19JRk1BSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJpZm1hIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hZGQ1MmhpX2VwdTY0IChfX201MTJpIF9fWCwgX19tNTEyaSBfX1ksIF9fbTUxMmkgX19aKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkZDUyaHVxNTEyKChfX3Y4ZGkpIF9fWCwgKF9fdjhkaSkgX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19tYWRkNTJoaV9lcHU2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYWRkNTJoaV9lcHU2NChfX1csIF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9tYWRkNTJoaV9lcHU2NCAoX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1ksIF9fbTUxMmkgX19aKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYWRkNTJoaV9lcHU2NChfX1gsIF9fWSwgX19aKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFkZDUybG9fZXB1NjQgKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSwgX19tNTEyaSBfX1opCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBtYWRkNTJsdXE1MTIoKF9fdjhkaSkgX19YLCAoX192OGRpKSBfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fWik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX21hZGQ1MmxvX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21hZGQ1MmxvX2VwdTY0KF9fVywgX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X21hZGQ1MmxvX2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSwgX19tNTEyaSBfX1opCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21hZGQ1MmxvX2VwdTY0KF9fWCwgX19ZLCBfX1opLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAZW5xY21kaW50cmluLmgALy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX0hFWEFHT05fQ0lSQ19CUkVWX0lOVFJJTlNJQ1NfSF8KI2RlZmluZSBfSEVYQUdPTl9DSVJDX0JSRVZfSU5UUklOU0lDU19IXyAxCgojaW5jbHVkZSA8aGV4YWdvbl9wcm90b3MuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKLyogQ2lyY3VsYXIgTG9hZCAqLwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0QoV29yZDY0IGRzdCwgV29yZDY0ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX0QoZGVzdCxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQ2NF90ICopIEhFWEFHT05fY2lyY19sZGQgKHB0ciwgJihkZXN0KSwgKCgoKEspKzEpPDwyNCl8KChidWZzaXplKTw8MykpLCAoKGluY3IpKjgpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19sb2FkX3VwZGF0ZV9XKFdvcmQzMiBkc3QsIFdvcmQzMiAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9XKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50ICopIEhFWEFHT05fY2lyY19sZHcgKHB0ciwgJihkZXN0KSwgKCgoSyk8PDI0KXwoKGJ1ZnNpemUpPDwyKSksICgoaW5jcikqNCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0goV29yZDE2IGRzdCwgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX0goZGVzdCxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19sZGggKHB0ciwgJihkZXN0KSwgKCgoKEspLTEpPDwyNCl8KChidWZzaXplKTw8MSkpLCAoKGluY3IpKjIpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19sb2FkX3VwZGF0ZV9VSCggVVdvcmQxNiBkc3QsICBVV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX2xvYWRfdXBkYXRlX1VIKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9ICh1aW50MTZfdCAqKSBIRVhBR09OX2NpcmNfbGR1aCAocHRyLCAmKGRlc3QpLCAoKCgoSyktMSk8PDI0KXwoKGJ1ZnNpemUpPDwxKSksICgoaW5jcikqMikpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX2xvYWRfdXBkYXRlX0IoV29yZDggZHN0LCBXb3JkOCAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9CKGRlc3QscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fY2lyY19sZGIgKHB0ciwgJihkZXN0KSwgKCgoKEspLTIpPDwyNCl8KGJ1ZnNpemUpKSwgaW5jcik7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkICBRNl9jaXJjX2xvYWRfdXBkYXRlX1VCKFVXb3JkOCBkc3QsIFVXb3JkOCAqcHRyLCBVV29yZDMyIGluY3IsIFVXb3JkMzIgYnVmc2l6ZSwgVVdvcmQzMiBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19sb2FkX3VwZGF0ZV9VQihkZXN0LHB0cixpbmNyLGJ1ZnNpemUsSykgXAogICAgeyBwdHIgPSAodWludDhfdCAqKSBIRVhBR09OX2NpcmNfbGR1YiAocHRyLCAmKGRlc3QpLCAoKCgoSyktMik8PDI0KXwoYnVmc2l6ZSkpLCBpbmNyKTsgfQoKLyogQ2lyY3VsYXIgU3RvcmUgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfY2lyY19zdG9yZV91cGRhdGVfRChXb3JkNjQgKnNyYywgV29yZDY0ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9EKHNyYyxwdHIsaW5jcixidWZzaXplLEspICBcCiAgICB7IHB0ciA9IChpbnQ2NF90ICopIEhFWEFHT05fY2lyY19zdGQgKHB0ciwgc3JjLCAoKCgoSykrMSk8PDI0KXwoKGJ1ZnNpemUpPDwzKSksICgoaW5jcikqOCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9XKFdvcmQzMiAqc3JjLCBXb3JkMzIgKnB0ciwgVVdvcmQzMiBpbmNyLCBVV29yZDMyIGJ1ZnNpemUsIFVXb3JkMzIgSykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2NpcmNfc3RvcmVfdXBkYXRlX1coc3JjLHB0cixpbmNyLGJ1ZnNpemUsSykgIFwKICAgIHsgcHRyID0gKGludCAqKSBIRVhBR09OX2NpcmNfc3R3IChwdHIsIHNyYywgKCgoSyk8PDI0KXwoKGJ1ZnNpemUpPDwyKSksICgoaW5jcikqNCkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ITChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ITChzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19zdGggKHB0ciwgc3JjLCAoKCgoSyktMSk8PDI0KXwoKGJ1ZnNpemUpPDwxKSksICgoaW5jcikqMikpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ISChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFVXb3JkMzIgaW5jciwgVVdvcmQzMiBidWZzaXplLCBVV29yZDMyIEspCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9jaXJjX3N0b3JlX3VwZGF0ZV9ISChzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fY2lyY19zdGhoaSAocHRyLCBzcmMsICgoKChLKS0xKTw8MjQpfCgoYnVmc2l6ZSk8PDEpKSwgKChpbmNyKSoyKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2NpcmNfc3RvcmVfdXBkYXRlX0IoV29yZDggKnNyYywgV29yZDggKnB0ciwgVVdvcmQzMiBJNCwgVVdvcmQzMiBidWZzaXplLCAgVVdvcmQ2NCBLKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfY2lyY19zdG9yZV91cGRhdGVfQihzcmMscHRyLGluY3IsYnVmc2l6ZSxLKSAgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fY2lyY19zdGIgKHB0ciwgc3JjLCAoKCgoSyktMik8PDI0KXwoYnVmc2l6ZSkpLCBpbmNyKTsgfQoKCi8qIEJpdCBSZXZlcnNlIExvYWQgKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X2xvYWRfdXBkYXRlX0QoV29yZDY0IGRzdCwgV29yZDY0ICpwdHIsIFVXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfYml0cmV2X2xvYWRfdXBkYXRlX0QoZGVzdCxwdHIsbG9nMmJ1ZnNpemUpIFwKICAgIHsgcHRyID0gKGludDY0X3QgKikgSEVYQUdPTl9icmV2X2xkZCAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMykpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9XKFdvcmQzMiBkc3QsIFdvcmQzMiAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9XKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9IChpbnQgKikgSEVYQUdPTl9icmV2X2xkdyAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMikpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9IKFdvcmQxNiBkc3QsIFdvcmQxNiAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9IKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9IChpbnQxNl90ICopIEhFWEFHT05fYnJldl9sZGggKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSArIDEpKSkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfbG9hZF91cGRhdGVfVUgoVVdvcmQxNiBkc3QsICBVV29yZDE2ICpwdHIsIFVXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNkZWZpbmUgUTZfYml0cmV2X2xvYWRfdXBkYXRlX1VIKGRlc3QscHRyLGxvZzJidWZzaXplKSBcCiAgICB7IHB0ciA9ICh1aW50MTZfdCAqKSBIRVhBR09OX2JyZXZfbGR1aCAocHRyLCAmKGRlc3QpLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9CKFdvcmQ4IGRzdCwgV29yZDggKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfbG9hZF91cGRhdGVfQihkZXN0LHB0cixsb2cyYnVmc2l6ZSkgXAogICAgeyBwdHIgPSAoaW50OF90ICopIEhFWEFHT05fYnJldl9sZGIgKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9sb2FkX3VwZGF0ZV9VQihVV29yZDggZHN0LCBVV29yZDggKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfbG9hZF91cGRhdGVfVUIoZGVzdCxwdHIsbG9nMmJ1ZnNpemUpIFwKICAgIHsgcHRyID0gKHVpbnQ4X3QgKikgSEVYQUdPTl9icmV2X2xkdWIgKHB0ciwgJihkZXN0KSwgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCi8qIEJpdCBSZXZlcnNlIFN0b3JlICovCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0QoV29yZDY0ICpzcmMsIFdvcmQ2NCAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfRChzcmMscHRyLGxvZzJidWZzaXplKSAgIFwKICAgIHsgcHRyID0gKGludDY0X3QgKikgSEVYQUdPTl9icmV2X3N0ZCAocHRyLCBzcmMsICgxPDwoMTYtKChsb2cyYnVmc2l6ZSkgKyAzKSkpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X3N0b3JlX3VwZGF0ZV9XKFdvcmQzMiAqc3JjLCBXb3JkMzIgKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX1coc3JjLHB0cixsb2cyYnVmc2l6ZSkgICBcCiAgICB7IHB0ciA9IChpbnQgKikgSEVYQUdPTl9icmV2X3N0dyAocHRyLCBzcmMsICgxPDwoMTYtKChsb2cyYnVmc2l6ZSkgKyAyKSkpKTsgfQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfYml0cmV2X3N0b3JlX3VwZGF0ZV9ITChXb3JkMTYgKnNyYywgV29yZDE2ICpwdHIsIFdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hMKHNyYyxwdHIsbG9nMmJ1ZnNpemUpICAgXAogICAgeyBwdHIgPSAoaW50MTZfdCAqKSBIRVhBR09OX2JyZXZfc3RoIChwdHIsIHNyYywgKDE8PCgxNi0oKGxvZzJidWZzaXplKSArIDEpKSkpOyB9CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJldHVybj1pbnN0cnVjdGlvbigpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hIKFdvcmQxNiAqc3JjLCBXb3JkMTYgKnB0ciwgVVdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgSW5zdHJ1Y3Rpb25UeXBlCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KI2RlZmluZSBRNl9iaXRyZXZfc3RvcmVfdXBkYXRlX0hIKHNyYyxwdHIsbG9nMmJ1ZnNpemUpICAgXAogICAgeyBwdHIgPSAoaW50MTZfdCAqKSBIRVhBR09OX2JyZXZfc3RoaGkgKHB0ciwgc3JjLCAoMTw8KDE2LSgobG9nMmJ1ZnNpemUpICsgMSkpKSk7IH0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmV0dXJuPWluc3RydWN0aW9uKCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfQihXb3JkOCAqc3JjLCBXb3JkOCAqcHRyLCBVV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBJbnN0cnVjdGlvblR5cGUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwojZGVmaW5lIFE2X2JpdHJldl9zdG9yZV91cGRhdGVfQihzcmMscHRyLGxvZzJidWZzaXplKSAgIFwKICAgIHsgcHRyID0gKGludDhfdCAqKSBIRVhBR09OX2JyZXZfc3RiIChwdHIsIHNyYywgKDE8PCgxNi0oKGxvZzJidWZzaXplKSkpKSk7IH0KCgojZGVmaW5lIEhFWEFHT05fY2lyY19sZGQgIF9fYnVpbHRpbl9jaXJjX2xkZAojZGVmaW5lIEhFWEFHT05fY2lyY19sZHcgIF9fYnVpbHRpbl9jaXJjX2xkdwojZGVmaW5lIEhFWEFHT05fY2lyY19sZGggIF9fYnVpbHRpbl9jaXJjX2xkaAojZGVmaW5lIEhFWEFHT05fY2lyY19sZHVoIF9fYnVpbHRpbl9jaXJjX2xkdWgKI2RlZmluZSBIRVhBR09OX2NpcmNfbGRiICBfX2J1aWx0aW5fY2lyY19sZGIKI2RlZmluZSBIRVhBR09OX2NpcmNfbGR1YiBfX2J1aWx0aW5fY2lyY19sZHViCgoKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RkICBfX2J1aWx0aW5fY2lyY19zdGQKI2RlZmluZSBIRVhBR09OX2NpcmNfc3R3ICBfX2J1aWx0aW5fY2lyY19zdHcKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RoICBfX2J1aWx0aW5fY2lyY19zdGgKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RoaGkgX19idWlsdGluX2NpcmNfc3RoaGkKI2RlZmluZSBIRVhBR09OX2NpcmNfc3RiICBfX2J1aWx0aW5fY2lyY19zdGIKCgojZGVmaW5lIEhFWEFHT05fYnJldl9sZGQgIF9fYnVpbHRpbl9icmV2X2xkZAojZGVmaW5lIEhFWEFHT05fYnJldl9sZHcgIF9fYnVpbHRpbl9icmV2X2xkdwojZGVmaW5lIEhFWEFHT05fYnJldl9sZGggIF9fYnVpbHRpbl9icmV2X2xkaAojZGVmaW5lIEhFWEFHT05fYnJldl9sZHVoIF9fYnVpbHRpbl9icmV2X2xkdWgKI2RlZmluZSBIRVhBR09OX2JyZXZfbGRiICBfX2J1aWx0aW5fYnJldl9sZGIKI2RlZmluZSBIRVhBR09OX2JyZXZfbGR1YiBfX2J1aWx0aW5fYnJldl9sZHViCgojZGVmaW5lIEhFWEFHT05fYnJldl9zdGQgIF9fYnVpbHRpbl9icmV2X3N0ZAojZGVmaW5lIEhFWEFHT05fYnJldl9zdHcgIF9fYnVpbHRpbl9icmV2X3N0dwojZGVmaW5lIEhFWEFHT05fYnJldl9zdGggIF9fYnVpbHRpbl9icmV2X3N0aAojZGVmaW5lIEhFWEFHT05fYnJldl9zdGhoaSBfX2J1aWx0aW5fYnJldl9zdGhoaQojZGVmaW5lIEhFWEFHT05fYnJldl9zdGIgIF9fYnVpbHRpbl9icmV2X3N0YgoKI2lmZGVmIF9fSFZYX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXQpIHZtZW0oUnQrIzApID0gVnMKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtYXNrZWRzdG9yZXFfUUFWKEhWWF9WZWN0b3JQcmVkIFF0LCBIVlhfVmVjdG9yQWRkcmVzcyBBLCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENPUFJPQ19WTUVNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdm1hc2tlZHN0b3JlcV9RQVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXNrZWRzdG9yZXEpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXQpIHZtZW0oUnQrIzApID0gVnMKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtYXNrZWRzdG9yZW5xX1FBVihIVlhfVmVjdG9yUHJlZCBRdCwgSFZYX1ZlY3RvckFkZHJlc3MgQSwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDT1BST0NfVk1FTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtYXNrZWRzdG9yZW5xX1FBViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1hc2tlZHN0b3JlbnEpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdCkgdm1lbShSdCsjMCk6bnQgPSBWcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1hc2tlZHN0b3JlbnRxX1FBVihIVlhfVmVjdG9yUHJlZCBRdCwgSFZYX1ZlY3RvckFkZHJlc3MgQSwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDT1BST0NfVk1FTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtYXNrZWRzdG9yZW50cV9RQVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXNrZWRzdG9yZW50cSkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdCkgdm1lbShSdCsjMCk6bnQgPSBWcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1hc2tlZHN0b3JlbnRucV9RQVYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3JBZGRyZXNzIEEsIEhWWF9WZWN0b3IgVnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ09QUk9DX1ZNRU0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92bWFza2Vkc3RvcmVudG5xX1FBViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1hc2tlZHN0b3JlbnRucSkKCiNlbmRpZgoKCiNlbmRpZiAgLyogI2lmbmRlZiBfSEVYQUdPTl9DSVJDX0JSRVZfSU5UUklOU0lDU19IXyAqLwoKI2lmZGVmIF9fTk9UX0RFRklORURfXwovKioqIGNvbW1lbnQgYmxvY2sgdGVtcGxhdGUgICoqKi8KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZXR1cm49aW5zdHJ1Y3Rpb24oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFJldHVyblR5cGUgSW50cmluc2ljKFBhcmFtVHlwZSBScywgUGFyYW1UeXBlIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEluc3RydWN0aW9uVHlwZQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiNlbmRpZiAvKioqICBfX05PVF9ERUZJTkVEX18gICoqKi8KAC8qPT09LS0tLSBsemNudGludHJpbi5oIC0gTFpDTlQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGx6Y250aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0xaQ05USU5UUklOX0gKI2RlZmluZSBfX0xaQ05USU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJsemNudCIpKSkKCiNpZm5kZWYgX01TQ19WRVIKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVybyBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgTFpDTlQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIgd2hvc2UgbGVhZGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCiNkZWZpbmUgX19semNudDE2KFgpIF9fYnVpbHRpbl9pYTMyX2x6Y250X3UxNigodW5zaWduZWQgc2hvcnQpKFgpKQojZW5kaWYgLy8gX01TQ19WRVIKCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfbHpjbnRfdTMyCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19semNudDMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTMyKF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfX2x6Y250MzIKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbHpjbnRfdTMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTMyKF9fWCk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNpZm5kZWYgX01TQ19WRVIKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVybyBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgTFpDTlQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhZGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLyBcc2VlIF9semNudF91NjQKI2RlZmluZSBfX2x6Y250NjQoWCkgX19idWlsdGluX2lhMzJfbHpjbnRfdTY0KCh1bnNpZ25lZCBsb25nIGxvbmcpKFgpKQojZW5kaWYgLy8gX01TQ19WRVIKCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIExaQ05UIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHdob3NlIGxlYWRpbmcgemVyb3MgYXJlIHRvIGJlIGNvdW50ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgovLy8gXHNlZSBfX2x6Y250NjQKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbHpjbnRfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbHpjbnRfdTY0KF9fWCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19MWkNOVElOVFJJTl9IICovCgAvKj09PS0tLS0gcGt1aW50cmluLmggLSBQS1UgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cGt1aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1BLVUlOVFJJTl9ICiNkZWZpbmUgX19QS1VJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInBrdSIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3JkcGtydV91MzIodm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHBrcnUoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3dycGtydSh1bnNpZ25lZCBpbnQgX192YWwpCnsKICBfX2J1aWx0aW5faWEzMl93cnBrcnUoX192YWwpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSByaXNjdl92ZWN0b3IuaCAtIFJJU0MtViBWLWV4dGVuc2lvbiBSVlZJbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19SSVNDVl9WRUNUT1JfSAojZGVmaW5lIF9fUklTQ1ZfVkVDVE9SX0gKCiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKI2lmbmRlZiBfX3Jpc2N2X3ZlY3RvcgojZXJyb3IgIlZlY3RvciBpbnRyaW5zaWNzIHJlcXVpcmUgdGhlIHZlY3RvciBleHRlbnNpb24uIgojZW5kaWYKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgoKI2RlZmluZSB2c2V0dmxfZThtZjgoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNSkKI2RlZmluZSB2c2V0dmxfZThtZjQoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNikKI2RlZmluZSB2c2V0dmxfZThtZjIoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgNykKI2RlZmluZSB2c2V0dmxfZThtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAwLCAwKQojZGVmaW5lIHZzZXR2bF9lOG0yKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDAsIDEpCiNkZWZpbmUgdnNldHZsX2U4bTQoYXZsKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGkoKHNpemVfdCkoYXZsKSwgMCwgMikKI2RlZmluZSB2c2V0dmxfZThtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAwLCAzKQoKI2RlZmluZSB2c2V0dmxfZTE2bWY0KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDEsIDYpCiNkZWZpbmUgdnNldHZsX2UxNm1mMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCA3KQojZGVmaW5lIHZzZXR2bF9lMTZtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAwKQojZGVmaW5lIHZzZXR2bF9lMTZtMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAxKQojZGVmaW5lIHZzZXR2bF9lMTZtNChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAyKQojZGVmaW5lIHZzZXR2bF9lMTZtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAxLCAzKQoKI2RlZmluZSB2c2V0dmxfZTMybWYyKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDcpCiNkZWZpbmUgdnNldHZsX2UzMm0xKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDApCiNkZWZpbmUgdnNldHZsX2UzMm0yKGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDEpCiNkZWZpbmUgdnNldHZsX2UzMm00KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDIpCiNkZWZpbmUgdnNldHZsX2UzMm04KGF2bCkgX19idWlsdGluX3J2dl92c2V0dmxpKChzaXplX3QpKGF2bCksIDIsIDMpCgojZGVmaW5lIHZzZXR2bF9lNjRtMShhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAwKQojZGVmaW5lIHZzZXR2bF9lNjRtMihhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAxKQojZGVmaW5lIHZzZXR2bF9lNjRtNChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAyKQojZGVmaW5lIHZzZXR2bF9lNjRtOChhdmwpIF9fYnVpbHRpbl9ydnZfdnNldHZsaSgoc2l6ZV90KShhdmwpLCAzLCAzKQoKCiNkZWZpbmUgdnNldHZsbWF4X2U4bWY4KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDUpCiNkZWZpbmUgdnNldHZsbWF4X2U4bWY0KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDYpCiNkZWZpbmUgdnNldHZsbWF4X2U4bWYyKCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDcpCiNkZWZpbmUgdnNldHZsbWF4X2U4bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMCwgMCkKI2RlZmluZSB2c2V0dmxtYXhfZThtMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgwLCAxKQojZGVmaW5lIHZzZXR2bG1heF9lOG00KCkgX19idWlsdGluX3J2dl92c2V0dmxpbWF4KDAsIDIpCiNkZWZpbmUgdnNldHZsbWF4X2U4bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMCwgMykKCiNkZWZpbmUgdnNldHZsbWF4X2UxNm1mNCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgxLCA2KQojZGVmaW5lIHZzZXR2bG1heF9lMTZtZjIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgNykKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMCkKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMSkKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTQoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMikKI2RlZmluZSB2c2V0dmxtYXhfZTE2bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMSwgMykKCiNkZWZpbmUgdnNldHZsbWF4X2UzMm1mMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCA3KQojZGVmaW5lIHZzZXR2bG1heF9lMzJtMSgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAwKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtMigpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAxKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtNCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAyKQojZGVmaW5lIHZzZXR2bG1heF9lMzJtOCgpIF9fYnVpbHRpbl9ydnZfdnNldHZsaW1heCgyLCAzKQoKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTEoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMCkKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTIoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMSkKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTQoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMikKI2RlZmluZSB2c2V0dmxtYXhfZTY0bTgoKSBfX2J1aWx0aW5fcnZ2X3ZzZXR2bGltYXgoMywgMykKCnR5cGVkZWYgX19ydnZfYm9vbDY0X3QgdmJvb2w2NF90Owp0eXBlZGVmIF9fcnZ2X2Jvb2wzMl90IHZib29sMzJfdDsKdHlwZWRlZiBfX3J2dl9ib29sMTZfdCB2Ym9vbDE2X3Q7CnR5cGVkZWYgX19ydnZfYm9vbDhfdCB2Ym9vbDhfdDsKdHlwZWRlZiBfX3J2dl9ib29sNF90IHZib29sNF90Owp0eXBlZGVmIF9fcnZ2X2Jvb2wyX3QgdmJvb2wyX3Q7CnR5cGVkZWYgX19ydnZfYm9vbDFfdCB2Ym9vbDFfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bWY4X3QgdmludDhtZjhfdDsKdHlwZWRlZiBfX3J2dl91aW50OG1mOF90IHZ1aW50OG1mOF90Owp0eXBlZGVmIF9fcnZ2X2ludDhtZjRfdCB2aW50OG1mNF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ4bWY0X3QgdnVpbnQ4bWY0X3Q7CnR5cGVkZWYgX19ydnZfaW50OG1mMl90IHZpbnQ4bWYyX3Q7CnR5cGVkZWYgX19ydnZfdWludDhtZjJfdCB2dWludDhtZjJfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bTFfdCB2aW50OG0xX3Q7CnR5cGVkZWYgX19ydnZfdWludDhtMV90IHZ1aW50OG0xX3Q7CnR5cGVkZWYgX19ydnZfaW50OG0yX3QgdmludDhtMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ4bTJfdCB2dWludDhtMl90Owp0eXBlZGVmIF9fcnZ2X2ludDhtNF90IHZpbnQ4bTRfdDsKdHlwZWRlZiBfX3J2dl91aW50OG00X3QgdnVpbnQ4bTRfdDsKdHlwZWRlZiBfX3J2dl9pbnQ4bThfdCB2aW50OG04X3Q7CnR5cGVkZWYgX19ydnZfdWludDhtOF90IHZ1aW50OG04X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtZjRfdCB2aW50MTZtZjRfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtZjRfdCB2dWludDE2bWY0X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtZjJfdCB2aW50MTZtZjJfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtZjJfdCB2dWludDE2bWYyX3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtMV90IHZpbnQxNm0xX3Q7CnR5cGVkZWYgX19ydnZfdWludDE2bTFfdCB2dWludDE2bTFfdDsKdHlwZWRlZiBfX3J2dl9pbnQxNm0yX3QgdmludDE2bTJfdDsKdHlwZWRlZiBfX3J2dl91aW50MTZtMl90IHZ1aW50MTZtMl90Owp0eXBlZGVmIF9fcnZ2X2ludDE2bTRfdCB2aW50MTZtNF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQxNm00X3QgdnVpbnQxNm00X3Q7CnR5cGVkZWYgX19ydnZfaW50MTZtOF90IHZpbnQxNm04X3Q7CnR5cGVkZWYgX19ydnZfdWludDE2bThfdCB2dWludDE2bThfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm1mMl90IHZpbnQzMm1mMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQzMm1mMl90IHZ1aW50MzJtZjJfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm0xX3QgdmludDMybTFfdDsKdHlwZWRlZiBfX3J2dl91aW50MzJtMV90IHZ1aW50MzJtMV90Owp0eXBlZGVmIF9fcnZ2X2ludDMybTJfdCB2aW50MzJtMl90Owp0eXBlZGVmIF9fcnZ2X3VpbnQzMm0yX3QgdnVpbnQzMm0yX3Q7CnR5cGVkZWYgX19ydnZfaW50MzJtNF90IHZpbnQzMm00X3Q7CnR5cGVkZWYgX19ydnZfdWludDMybTRfdCB2dWludDMybTRfdDsKdHlwZWRlZiBfX3J2dl9pbnQzMm04X3QgdmludDMybThfdDsKdHlwZWRlZiBfX3J2dl91aW50MzJtOF90IHZ1aW50MzJtOF90Owp0eXBlZGVmIF9fcnZ2X2ludDY0bTFfdCB2aW50NjRtMV90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ2NG0xX3QgdnVpbnQ2NG0xX3Q7CnR5cGVkZWYgX19ydnZfaW50NjRtMl90IHZpbnQ2NG0yX3Q7CnR5cGVkZWYgX19ydnZfdWludDY0bTJfdCB2dWludDY0bTJfdDsKdHlwZWRlZiBfX3J2dl9pbnQ2NG00X3QgdmludDY0bTRfdDsKdHlwZWRlZiBfX3J2dl91aW50NjRtNF90IHZ1aW50NjRtNF90Owp0eXBlZGVmIF9fcnZ2X2ludDY0bThfdCB2aW50NjRtOF90Owp0eXBlZGVmIF9fcnZ2X3VpbnQ2NG04X3QgdnVpbnQ2NG04X3Q7CiNpZiBkZWZpbmVkKF9fcmlzY3ZfemZoKQp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtZjRfdCB2ZmxvYXQxNm1mNF90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtZjJfdCB2ZmxvYXQxNm1mMl90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtMV90IHZmbG9hdDE2bTFfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDE2bTJfdCB2ZmxvYXQxNm0yX3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQxNm00X3QgdmZsb2F0MTZtNF90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MTZtOF90IHZmbG9hdDE2bThfdDsKI2VuZGlmCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikKdHlwZWRlZiBfX3J2dl9mbG9hdDMybWYyX3QgdmZsb2F0MzJtZjJfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDMybTFfdCB2ZmxvYXQzMm0xX3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQzMm0yX3QgdmZsb2F0MzJtMl90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0MzJtNF90IHZmbG9hdDMybTRfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDMybThfdCB2ZmxvYXQzMm04X3Q7CiNlbmRpZgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpCnR5cGVkZWYgX19ydnZfZmxvYXQ2NG0xX3QgdmZsb2F0NjRtMV90Owp0eXBlZGVmIF9fcnZ2X2Zsb2F0NjRtMl90IHZmbG9hdDY0bTJfdDsKdHlwZWRlZiBfX3J2dl9mbG9hdDY0bTRfdCB2ZmxvYXQ2NG00X3Q7CnR5cGVkZWYgX19ydnZfZmxvYXQ2NG04X3QgdmZsb2F0NjRtOF90OwojZW5kaWYKCiNkZWZpbmUgdmFkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMSgodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTIoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm04KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm1mMigodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm00KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG0xKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTgoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm04X20oKHZib29sMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTgoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWYyKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG0xKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bWY0KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtZjQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm04KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybTgoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybWYyKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm0xKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTY0bTEoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTY0bTgoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMSgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMigoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0yKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG0xKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWYyKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMigoY29uc3QgdWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTgoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm00KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm1mNCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bWY0KChjb25zdCBpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0yKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWY0KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTgoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm04KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm00KChjb25zdCBpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtMSgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNlOF92X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxveGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTEoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTgoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG0xKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtNCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG04KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtMigoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtNCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZThfdl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtOCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRkX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhZGRfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhZGRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFkZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFkZF92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWRkX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWRkX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1Yl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3ViX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3ViX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3ViX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdWJfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1Yl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJzdWJfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyc3ViX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cnN1Yl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cnN1Yl92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJzdWJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZHVfd3hfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZHVfd3hfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGR1X3d4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGR1X3d4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkdV93eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1YnVfd3hfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1YnVfd3hfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJ1X3d4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJ1X3d4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3VidV93eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d2FkZF93eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndhZGRfd3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d2FkZF93eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3YWRkX3d4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d2FkZF93eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndhZGRfd3hfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3N1Yl93eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndzdWJfd3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d3N1Yl93eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3c3ViX3d4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d3N1Yl93eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndzdWJfd3hfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTEoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjQoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0yKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybWYyKCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtNCgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dF94X3hfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTgoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnRfeF94X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0X3hfeF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWRjX3Z2bV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192dm1fdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z2bV91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YWRjX3Z4bV91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhZGNfdnhtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFkY192eG1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k4bTJfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pOG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kxNm04X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2kzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1faTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV9pNjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bTFfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pOG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faThtNF9iMigodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bThfYjEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTE2bTRfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTMybTRfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pMzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX2k2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1faTY0bThfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91OG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTMybTRfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3UzMm04X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192dm1fdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2bV91NjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192dm1fdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnZtX3U2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG00X2IyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mNF9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91OG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTE2bTJfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3UzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91MzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkY192eG1fdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z4bV91NjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkY192eG1fdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGNfdnhtX3U2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtOCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGNfdnZfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hZGNfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYWRjX3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFkY192eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFkY192eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNiY192dm1faThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1faTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnZtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z2bV91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192dm1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNiY192eG1fdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2JjX3Z4bV91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzYmNfdnhtX3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bTFfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pOG0yX2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bThfYjEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faThtZjhfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTE2bTRfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMTZtOF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pMzJtNF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2kzMm04X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX2k2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1faTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1faTY0bThfYjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG0xX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k4bTRfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG04X2IxKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMTZtMl9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kxNm00X2I0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2kzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1faTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX2k2NG04X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91OG1mOF9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MzJtMV9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3UzMm00X2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91MzJtOF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91NjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192dm1fdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnZtX3U2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z2bV91NjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192dm1fdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtMV9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtMl9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtNF9iMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtOF9iMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MTZtNF9iNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTE2bThfYjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91MzJtNF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTMybThfYjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91NjRtMV9iNjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiY192eG1fdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmNfdnhtX3U2NG00X2IxNihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JjX3Z4bV91NjRtOF9iOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiY192eG1fdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNiY192dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtMl9iNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtMV9iOCgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtOF9iMSgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192dl91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnZfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JjX3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNiY192eF91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNiY192eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zYmNfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW5kX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhbmRfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbmRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFuZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFuZF92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YW5kX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnhvcl92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2eG9yX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2eG9yX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ4b3JfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnhvcl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2b3JfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2b3JfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm9yX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm9yX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZvcl92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZvcl92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xsX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xsX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsbF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsbF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGxfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTgoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNybF92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNybF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmxfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmxfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JsX3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNyYV92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3JhX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzcmFfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNyYV92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNyYV92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3JhX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3JhX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzcmFfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMigodnVpbnQxNm00X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTQoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjQoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91OG1mOCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0yKCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTEoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTQoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybWYyKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3hfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjgoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm00KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNybF93eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTEoKHZ1aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmxfd3hfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmxfd3hfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm00KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JsX3d4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybWYyKCh2dWludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNybF93eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG0xKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMigodmludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTQoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjIoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjQoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mOCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xKCh2aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yKCh2aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTQoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG0xKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjIoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mNCgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjgoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0xKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bnNyYV93eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5zcmFfd3hfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtMigodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bnNyYV93eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5zcmFfd3hfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuc3JhX3d4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmN2dF94X3hfd191OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtMSgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG00KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWYyKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mOCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mMigodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMSgodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm00KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd191MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtZjIoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNlcV92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnZfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z2X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZXFfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZXFfdnhfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNlcV92eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2VxX3Z4X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNlcV92eF91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtNF9iMigodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92dl91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z2X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnZfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNuZV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc25lX3Z4X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc25lX3Z4X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNuZV92eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbmVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z2X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92dl91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnZfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTFfYjgoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0yX2I0KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92eF91OG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtNF9iMigodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bThfYjEoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWYyX2IxNigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0dV92eF91OG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0dV92eF91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdHVfdnhfdThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjhfYjY0KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0xX2IxNigodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjgoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTRfYjQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjIoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtZjJfYjMyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0xX2IzMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0yX2IxNigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjgoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybThfYjQoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3UzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtZjJfYjY0KCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0xX2I2NCgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0yX2IzMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG00X2IxNigodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdHVfdnhfdTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bThfYjgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHR1X3Z4X3U2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMV9iOCgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtOF9iMSgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mNF9iMzIoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pOG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWY0X2I2NCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92dl9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92dl9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z2X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnZfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbHRfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbHRfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsdF92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsdF92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2x0X3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGV1X3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xldV92eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xldV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZXVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zbGVfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zbGVfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNsZV92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNsZV92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2xlX3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMV9iOCgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTJfYjQoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91OG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG00X2IyKCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtOF9iMSgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjJfYjE2KCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3R1X3Z4X3U4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMigodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91OG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0dV92eF91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTFfYjE2KCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtNF9iNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMigodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm1mMl9iMzIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm1mNF9iNjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91MzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTFfYjY0KCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTJfYjMyKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTRfYjE2KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0dV92eF91NjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtOF9iOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndHVfdnhfdTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG0xX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG0xX2I4KCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtMV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bTJfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTJfYjQoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pOG0yX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtNF9iMigodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bTRfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTRfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG04X2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG04X2IxKCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtOF9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bWYyX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2KCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaThtZjRfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2KCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTJfYjgoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm00X2I0KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtOF9iMigodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bTFfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtMV9iNjQoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z2X2k2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z2X2k2NG0yX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pNjRtMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92dl9pNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG00X2IxNigodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bTRfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnZfaTY0bThfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG04X2I4KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92dl9pNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMl9iNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pOG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtZjhfYjY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtZjhfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtZjRfYjY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtMV9iMzIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTRfYjgoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm04X2I0KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2kzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm1mMl9iNjQoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ3RfdnhfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ3RfdnhfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNndF92eF9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNndF92eF9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2d0X3Z4X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mNF9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mNF9iMzIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91OG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mOF9iNjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjRfYjY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTFfYjMyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTJfYjE2KCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91MzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtOF9iNCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm1mMl9iNjQoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnZfdTMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z2X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92dl91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92dl91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0xX2I4KCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtMV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91OG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtMl9iNCgodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0yX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnhfdThtNF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTRfYjIoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91OG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG04X2IxKCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtOF9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91OG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTYoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZXVfdnhfdThtZjJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZXVfdnhfdThtZjRfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjRfYjMyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U4bWY4X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY4X2I2NCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91OG1mOF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMV9iMTYoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0yX2I4KCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyKCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWY0X2I2NCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMV9iMzIoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMl9iMTYoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm00X2I4KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91MzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91MzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybWYyX2I2NCgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3UzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMV9iNjQoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMl9iMzIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0yX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtNF9iMTYoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dldV92eF91NjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dldV92eF91NjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bTFfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTFfYjgoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG0xX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG0xX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaThtMl9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtMl9iNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bTJfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTJfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pOG00X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG00X2IyKCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaThtNF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtNF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bThfYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bThfYjEoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG04X2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG04X2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaThtZjJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mMl9iMTYoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bWYyX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pOG1mNF9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY0X2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pOG1mOF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMV9iMTYoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMl9iOCgodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTRfYjQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm04X2IyKCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mMl9iMzIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm0yX2IxNigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm00X2I4KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtOF9iNCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2kzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NCgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnZfaTY0bTFfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtMV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnZfaTY0bTJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtMl9iMzIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG00X2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTRfYjE2KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92dl9pNjRtNF9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG00X2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92dl9pNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bThfYjgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z2X2k2NG04X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtOF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtMV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMV9iOCgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bTFfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTFfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pOG0yX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG0yX2I0KCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaThtMl9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMl9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bTRfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTRfYjIoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pOG00X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG00X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtOF9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtOF9iMSgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bThfYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bThfYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pOG1mMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pOG1mMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bWY0X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtZjRfYjMyKCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k4bWY0X2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtZjRfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaThtZjhfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjQoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaThtZjhfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0xX2IxNigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0yX2I4KCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtNF9iNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bThfYjIoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWYyX2IzMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mNF9iNjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMigodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtMl9iMTYoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtNF9iOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybThfYjQoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybWYyX2I2NCgodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2kzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG0xX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0KCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXNnZV92eF9pNjRtMV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG0xX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXNnZV92eF9pNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG0yX2IzMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bTJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bTRfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtNF9iMTYoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtc2dlX3Z4X2k2NG04X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtOF9iOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1zZ2VfdnhfaTY0bThfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG04X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWludV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW51X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW51X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWludV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWludV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1pbl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1pbl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtaW5fdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtaW5fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWluX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWluX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4dV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4dV92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heHVfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXh1X3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWF4X3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWF4X3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1heF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1heF92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYXhfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYXhfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxodV92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxodV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHVfdnhfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHVfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGh1X3Z4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMSgodmludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG00KCh2aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOCgodmludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdWxoc3VfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXVsaHN1X3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm11bGhzdV92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZ1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2dV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2dV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdnVfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZkaXZfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZkaXZfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZGl2X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZGl2X3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmRpdl92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmRpdl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtdV92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbXVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbXVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW11X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW11X3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlbV92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlbV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZW1fdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZW1fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVtX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmVtX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNCgodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm04KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMigodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtNCgodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm1mMigodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMSgodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTQoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTIoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG00KCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjIoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMigodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm00KCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0xKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtOCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTQoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWx1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm00KCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTEoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTIoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTgoKHZpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0xKCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWYyKCh2aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0xKCh2aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yKCh2aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm00KCh2aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm04KCh2aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm00KCh2aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d211bHN1X3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2d211bHN1X3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtdWxzdV92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZ3bXVsc3VfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192dl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG0yKCh2dWludDhtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWNjX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFjY192eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWNjX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hY2NfdnhfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFjY192eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc2FjX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXNhY192eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc2FjX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXNhY192eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zYWNfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWFkZF92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWFkZF92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWFkZF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtYWRkX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1hZGRfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGludDY0X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5tc3ViX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5tc3ViX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZubXN1Yl92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodWludDY0X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm1zdWJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z2X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z2X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VfdnhfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1X3Z4X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192dl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoaW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY192eF9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92dl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChpbnQ4X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoaW50OF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3N1X3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2NzdV92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjc3VfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGludDMyX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodWludDE2X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3bWFjY3VzX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d21hY2N1c192eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndtYWNjdXNfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG00KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG04KCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG1mNCgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtMigodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTQoKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMzJtMSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTQoKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtOCgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG00KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG04KCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bWY0KCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoaW50OF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG1mOCgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMigodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTQoKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjQoKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoaW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTMybTEoKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMigodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGludDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm00KCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtOCgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoaW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm1mMigodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pNjRtMSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChpbnQ2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pNjRtOCgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoaW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTIoKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtNCgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG04KCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mMigodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtZjQoKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTIoKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTQoKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTgoKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UxNm1mMigodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0xKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MzJtMigodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTgoKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm1mMigodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91NjRtMSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U2NG00KCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91NjRtOCgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTEoKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtMigodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodWludDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG00KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh1aW50OF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTgoKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWYyKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY0KCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHVpbnQ4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm0xKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtMigodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtNCgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtOCgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHVpbnQxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh1aW50MTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm1mNCgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodWludDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm0xKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHVpbnQzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MzJtMigodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTgoKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh1aW50MzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm1mMigodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodWludDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHVpbnQ2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92eG1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91NjRtMigodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh1aW50NjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnhtX3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodWludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z4bV91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodWludDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm12X3Zfdl91OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91OG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtMSgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtMigoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtNCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtOCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k4bWYyKChpbnQ4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF9pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaThtZjQoKGludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2k4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pOG1mOCgoaW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm0xKChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm0yKChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm00KChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm04KChpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMTZtZjIoKGludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2kxNm1mNCgoaW50MTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtMSgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtMigoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtNCgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF9pMzJtOCgoaW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X2kzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfaTMybWYyKChpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG0xKChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG0yKChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG00KChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X2k2NG04KChpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdThtMSgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U4bTIoKHVpbnQ4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91OG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG00KCh1aW50OF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdThtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdThtOCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mMigodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mNCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91OG1mOCgodWludDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MTZtMSgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTE2bTIoKHVpbnQxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm00KCh1aW50MTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MTZtOCgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm1mMigodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UxNm1mNCgodWludDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTMybTEoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3UzMm0yKCh1aW50MzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MzJtNCgodWludDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTMybTgoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91MzJtZjIoKHVpbnQzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U2NG0xKCh1aW50NjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl94X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3ZfeF91NjRtMigodWludDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3ZfeF91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3hfdTY0bTQoKHVpbnQ2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3hfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl94X3U2NG04KCh1aW50NjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2FkZHVfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z2X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92dl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92dl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodWludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGR1X3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGR1X3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkdV92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkdV92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZHVfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z2X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNhZGRfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2FkZF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNhZGRfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2FkZF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzYWRkX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2FkZF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3N1Yl92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3N1Yl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3ViX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3N1Yl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzdWJfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZHVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZHVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGR1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGR1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkdV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YWFkZF92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YWFkZF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhYWRkX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YWFkZF92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFhZGRfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92dl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92dl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHVpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodWludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh1aW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh1aW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHVpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodWludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh1aW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHVpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh1aW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1YnVfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1YnVfdnhfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodWludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJ1X3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3VidV92eF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3VidV92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHVpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhc3ViX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZhc3ViX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YXN1Yl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFzdWJfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2YXN1Yl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z2X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z2X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92dl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbXVsX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c211bF92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbXVsX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNtdWxfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c211bF92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NybF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NybF92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JsX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NybF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmxfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtNCgodmludDhtNF90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04KCh2aW50OG04X3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92dl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92dl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NyYV92eF9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c3NyYV92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzcmFfdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzc3JhX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0yKCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG00KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mNCgodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjgoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm00KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0KCh2dWludDMybWYyX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0xKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybTIoKHZ1aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtNCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d2X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG0xKCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMigodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTQoKHZ1aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY0KCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMigodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0KCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXB1X3d4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXB1X3d4X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTQoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcHVfd3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwdV93eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG0yKCh2aW50MTZtNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTQoKHZpbnQxNm04X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mNCgodmludDE2bWYyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kzMm0yKCh2aW50NjRtNF90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d2X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtNCgodmludDY0bThfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMigodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY0KCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjgoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMigodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZuY2xpcF93eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0KCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bmNsaXBfd3hfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTEoKHZpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTQoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm5jbGlwX3d4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bmNsaXBfd3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZuY2xpcF93eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG0xX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTFfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0yX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG00X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG04X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bThfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bWYyX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaThtZjRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY0X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY0X2k4bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2k4bWY4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaThtZjhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mOF9pOG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMV9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtMl9pMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kxNm00X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kxNm00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm00X2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTE2bThfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWYyX2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMTZtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWY0X2kxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm0xX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtNF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybThfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTMybWYyX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybWYyX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm1mMl9pMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTFfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTFfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTRfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bTRfaTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bThfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfaTY0bThfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTY0bThfaTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHN1bV92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkc3VtX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRzdW1fdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtMV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtMV91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191OG0yX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtNF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtOF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtOF91OG0xX20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191OG1mMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mNF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191OG1mOF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjhfdThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTE2bTFfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtNF91MTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm04X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTE2bWY0X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybTFfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybTRfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtOF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm1mMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG0xX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4dV92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG0yX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4dV92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heHVfdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U2NG04X3U2NG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtMV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG0xX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG0yX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xX20oKHZib29sNF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG00X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtNF9pOG0xX20oKHZib29sMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG04X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xX20oKHZib29sMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtZjJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pOG1mMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k4bWY0X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaThtZjRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pOG1mOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k4bWY4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTFfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMV9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTFfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTFfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bTJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTJfaTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pMTZtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm00X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pMTZtNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtNF9pMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kxNm04X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bThfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kxNm04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm04X2kxNm0xX20oKHZib29sMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mMl9pMTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTE2bWY0X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mNF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTFfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMV9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTFfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTFfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTJfaTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtNF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtYXhfdnNfaTMybTRfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybTRfaTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1heF92c19pMzJtOF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm04X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1heF92c19pMzJtOF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtOF9pMzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtZjJfaTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0xX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTFfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0xX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0xX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0yX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTJfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG0yX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0yX2k2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG00X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTRfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG00X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG00X2k2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG04X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bThfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWF4X3ZzX2k2NG04X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG04X2k2NG0xX20oKHZib29sOF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bTFfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG0xX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTFfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtNF91OG0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bThfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG04X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bThfdThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWYyX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtZjJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bWY0X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mNF91OG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdThtZjhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U4bWY4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWY4X3U4bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UxNm0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTRfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtOF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bWYyX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UxNm1mNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTE2bWY0X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm0xX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybTJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybTJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybTJfdTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm00X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybThfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3UzMm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtZjJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtZjJfdTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191NjRtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG0xX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtMV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWludV92c191NjRtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbnVfdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWludV92c191NjRtOF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW51X3ZzX3U2NG04X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWludV92c191NjRtOF91NjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTFfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bThfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bWYyX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtZjJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2k4bWY0X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaThtZjhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0xX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0xX2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTE2bTRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTRfaTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pMTZtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pMTZtOF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtOF9pMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjRfaTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0xX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0xX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm0xX2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm0yX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTRfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkbWluX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm00X2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTMybThfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRtaW5fdnNfaTMybThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybThfaTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pMzJtZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0xX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMV9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMl9pNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG00X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG04X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG1pbl92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtOF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTFfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTJfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTJfaThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bThfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bWYyX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtZjJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mMl9pOG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjRfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2k4bWY0X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaThtZjhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY4X2k4bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0xX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm0xX2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTE2bTRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTRfaTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pMTZtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pMTZtOF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtOF9pMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjRfaTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0xX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybTRfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTMybThfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfaTMybThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybThfaTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pMzJtZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMV9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0xX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtMV9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtMl9pNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG00X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG04X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pNjRtOF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTFfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtMV91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTFfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtMl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bTRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTRfdThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bThfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtOF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bThfdThtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG1mMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtZjJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191OG1mNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdThtZjhfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191OG1mOF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTFfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0yX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0yX3UxNm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTE2bTRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTE2bTRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTRfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm04X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191MTZtOF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm1mMl91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjJfdTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UxNm1mNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjRfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0xX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0yX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm0yX3UzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm00X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRhbmRfdnNfdTMybThfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191MzJtZjJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtZjJfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybWYyX3UzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMV91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG0yX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtNF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtNF91NjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtOF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZGFuZF92c191NjRtOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtOF91NjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaThtMV9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaThtMV9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMV9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG0yX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k4bTRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaThtOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaThtOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtOF9pOG0xX20oKHZib29sMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mMl9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mMl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mNF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mNF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjRfaThtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mOF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pOG1mOF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjhfaThtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bTFfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm0yX2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm0yX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bTRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtNF9pMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm1mMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bWYyX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjJfaTE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTE2bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybTFfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybTRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm00X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtOF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtOF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pMzJtZjJfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm1mMl9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybWYyX2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG0xX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0xX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG0yX2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtNF9pNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX2k2NG04X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c19pNjRtOF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG04X2k2NG0xX20oKHZib29sOF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTFfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191OG0xX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bTJfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMl91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTJfdThtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdThtNF91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdThtNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtNF91OG0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bThfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191OG04X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWYyX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWYyX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mMl91OG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY0X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY0X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U4bWY4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm0xX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtMV91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0xX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bTJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm0yX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bTJfdTE2bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MTZtNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MTZtOF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtOF91MTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bWYyX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm0xX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtMV91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0xX3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybTJfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm0yX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTJfdTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTMybThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybThfdTMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3UzMm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191MzJtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtZjJfdTMybTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0xX3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG0xX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWRvcl92c191NjRtMl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTJfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtMl91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG00X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWRvcl92c191NjRtNF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG00X3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkb3JfdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG04X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZG9yX3ZzX3U2NG04X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG0xX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0xX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTFfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0xX2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG0yX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTJfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG00X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bTRfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG04X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG04X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bThfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG04X2k4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pOG1mMl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMSgodmludDhtMV90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bWYyX2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaThtZjRfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pOG1mNF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2k4bWY4X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xKCh2aW50OG0xX3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaThtZjhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kxNm00X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTE2bThfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWYyX2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjRfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjRfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMTZtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWY0X2kxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMV9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0xX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMV9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtMl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMl9pMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtNF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c19pMzJtNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtNF9pMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kzMm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybThfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX2kzMm04X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm04X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTMybWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm1mMl9pMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtMV9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtMl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTRfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bThfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pNjRtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG0xX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0xX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTFfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0xX3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG0yX3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0yX3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTJfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG0yX3U4bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG00X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bTRfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG04X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG04X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bThfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG04X3U4bTFfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191OG1mMl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bWYyX3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdThtZjRfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191OG1mNF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3U4bWY4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG1mOF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdThtZjhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG1mOF91OG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMV91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtMV91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtMl91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UxNm00X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTE2bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTE2bThfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bThfdTE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjJfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWYyX3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjRfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjRfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MTZtZjRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWY0X3UxNm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm0xX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMV91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm0yX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnJlZHhvcl92c191MzJtNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtNF91MzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UzMm04X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybThfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2cmVkeG9yX3ZzX3UzMm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm04X3UzMm0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTMybWYyX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm1mMl91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTFfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMV91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTJfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTJfdTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtNF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bTRfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTRfdTY0bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bThfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtMV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG0xX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xX20oKHZib29sOF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtMl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0yX2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG0yX2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0yX2kxNm0xX20oKHZib29sNF90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtNF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG00X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xX20oKHZib29sMl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG04X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xX20oKHZib29sMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtZjJfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjJfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG1mMl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjJfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaThtZjRfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY0X2kxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pOG1mOF9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mOF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2k4bWY4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mOF9pMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTFfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTFfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pMTZtMV9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTFfaTMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0yX2kzMm0xX20oKHZib29sOF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm00X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm00X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bTRfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm00X2kzMm0xX20oKHZib29sNF90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm04X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm04X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bThfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm04X2kzMm0xX20oKHZib29sMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm1mMl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTE2bWYyX2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMTZtZjRfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bWY0X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bWY0X2kzMm0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTMybTFfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtMV9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW1fdnNfaTMybTJfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtNF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm00X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtOF9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm04X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bV92c19pMzJtZjJfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybWYyX2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtX3ZzX2kzMm1mMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybWYyX2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bTFfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTFfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG0xX3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtMV91MTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG0yX3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG0yX3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTJfdTE2bTFfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtNF91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bTRfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG00X3UxNm0xX20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bThfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bThfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG04X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtOF91MTZtMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG1mMl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjJfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtZjJfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mMl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bWY0X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mNF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191OG1mNF91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY0X3UxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdThtZjhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjhfdTE2bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtMV91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTFfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bTFfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMV91MzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm0yX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMl91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm0yX3UzMm0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtNF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bTRfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtNF91MzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bThfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm04X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm04X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bThfdTMybTFfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm1mMl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bWYyX3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTE2bWY0X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjRfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtMV91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTFfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybTFfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMV91NjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtMl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybTRfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm00X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm00X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTRfdTY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdndyZWRzdW11X3ZzX3UzMm04X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtOF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm04X3U2NG0xX20oKHZib29sNF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZ3cmVkc3VtdV92c191MzJtZjJfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm1mMl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d3JlZHN1bXVfdnNfdTMybWYyX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybWYyX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksICh2dWludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtbm90X21fYjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW5vdF9tX2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3RfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1ub3RfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztbm90X21fYjIoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbm90X21fYjEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW5vdF9tX2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztbm90X21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1ub3RfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW5vdF9tX2IzMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbm90X21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3RfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTEoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTIoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTQoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bTgoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mMigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U4bWY0KCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjgoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtMSgodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtOCgodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTEoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtMigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm00KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTgoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTEoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2aW90YV9tX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aW90YV9tX3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZpb3RhX21fdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG00KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmlvdGFfbV91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmlvdGFfbV91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZpb3RhX21fdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92aW90YV9tX3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2aWRfdl9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k4bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG04X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pOG1mOCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm00KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X2k2NG00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bTIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91OG0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U4bTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91OG1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtMSgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0yKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UxNm00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MTZtZjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bWY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm00KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtOCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm04X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm1mMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG0xKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmlkX3ZfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2aWRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92aWRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2aWRfdl91NjRtNChvcDApIFwKX19idWlsdGluX3J2dl92aWRfdl91NjRtNCgoc2l6ZV90KShvcDApKQojZGVmaW5lIHZpZF92X3U2NG00X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZpZF92X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG04KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdmlkX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfeF9zX2k4bTFfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG0xX2k4KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pOG0yX2k4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtMl9pOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfaThtNF9pOChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX2k4bTRfaTgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX2k4bThfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG04X2k4KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pOG1mMl9pOChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX2k4bWYyX2k4KCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfaThtZjRfaTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG1mNF9pOCgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX2k4bWY4X2k4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjhfaTgoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtMV9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMV9pMTYoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtMl9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMl9pMTYoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtNF9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtNF9pMTYoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtOF9pMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtOF9pMTYoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtZjJfaTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWYyX2kxNigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMTZtZjRfaTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWY0X2kxNigodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtMV9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtMV9pMzIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtMl9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtMl9pMzIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtNF9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtNF9pMzIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtOF9pMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtOF9pMzIoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pMzJtZjJfaTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybWYyX2kzMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtMV9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtMV9pNjQoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtMl9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtMl9pNjQoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtNF9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtNF9pNjQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc19pNjRtOF9pNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtOF9pNjQoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG0xX3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMV91OCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U4bTJfdTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191OG0yX3U4KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdThtNF91OChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U4bTRfdTgoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG04X3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtOF91OCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U4bWYyX3U4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtZjJfdTgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdThtZjRfdTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191OG1mNF91OCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191OG1mOF91OChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U4bWY4X3U4KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UxNm0xX3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm0xX3UxNigodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MTZtMl91MTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191MTZtMl91MTYoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTE2bTRfdTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bTRfdTE2KCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UxNm04X3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm04X3UxNigodnVpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MTZtZjJfdTE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bWYyX3UxNigodnVpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTE2bWY0X3UxNihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mNF91MTYoKHZ1aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UzMm0xX3UzMihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm0xX3UzMigodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MzJtMl91MzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtMl91MzIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTMybTRfdTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybTRfdTMyKCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3UzMm04X3UzMihvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm04X3UzMigodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191MzJtZjJfdTMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybWYyX3UzMigodnVpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTY0bTFfdTY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bTFfdTY0KCh2dWludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bXZfeF9zX3U2NG0yX3U2NChvcDApIFwKX19idWlsdGluX3J2dl92bXZfeF9zX3U2NG0yX3U2NCgodnVpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdm12X3hfc191NjRtNF91NjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtNF91NjQoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZtdl94X3NfdTY0bThfdTY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bThfdTY0KCh2dWludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bXZfc194X2k4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG0xKCh2dWludDhtMV90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG04KCh2dWludDhtOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHVpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksICh1aW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodWludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm0xKCh2dWludDMybTFfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91NjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXZfc194X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXZfc194X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtdl9zX3hfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm12X3NfeF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodWludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHVpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh1aW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh1aW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTgoKHZ1aW50MzJtOF90KShvcDApLCAodWludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHVpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfeF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodWludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX3hfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHVpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc194X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh1aW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtMigodmludDhtMl90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtNCgodmludDhtNF90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY0KCh2aW50OG1mNF90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTIoKHZ1aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY0KCh2dWludDhtZjRfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtMSgodnVpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTgoKHZ1aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTIoKHZ1aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMSgodmludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0xKCh2aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTIoKHZpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoaW50MzJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMXVwX3Z4X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxdXBfdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTF1cF92eF91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMSgodmludDhtMV90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMigodmludDhtMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtNCgodmludDhtNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtOCgodmludDhtOF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjQoKHZpbnQxNm1mNF90KShvcDApLCAoaW50MTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtNCgodmludDMybTRfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOCgodmludDMybThfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKGludDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKGludDhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoaW50OF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoaW50OF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChpbnQ4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChpbnQ4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChpbnQxNl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChpbnQxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKGludDE2X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKGludDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoaW50MTZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoaW50MzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKGludDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNCgodnVpbnQzMm00X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChpbnQzMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChpbnQzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKGludDMyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChpbnQ2NF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChpbnQ2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZTFkb3duX3Z4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoaW50NjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoaW50NjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGUxZG93bl92eF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKGludDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNsaWRlMWRvd25fdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKGludDY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMSgodmludDhtMV90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0yKCh2aW50OG0yX3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTQoKHZpbnQ4bTRfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtOCgodmludDhtOF90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04X20oKHZib29sMl90KShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0xKCh2aW50NjRtMV90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG04KCh2aW50NjRtOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0xKCh2aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0yKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG04KCh2aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKHZpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mNCgodmludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWY4KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTQoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0yKCh2aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2kzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybWYyKCh2aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTEoKHZpbnQ4bTFfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMigodmludDhtMl90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00KCh2aW50OG00X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG1mMigodmludDhtZjJfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjgoKHZpbnQ4bWY4X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTEoKHZpbnQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yKCh2aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm04KCh2aW50MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjIoKHZpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm04KCh2aW50MzJtOF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjIoKHZpbnQzMm1mMl90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMSgodmludDY0bTFfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yKCh2dWludDhtMl90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bTQoKHZ1aW50OG00X3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91OG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtNCgodnVpbnQxNm00X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0xKCh2dWludDY0bTFfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0xKCh2dWludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG00KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG04KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtZjIoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mNCgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY4KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTQoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWYyKCh2dWludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtMSgodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0yKCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybWYyKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG0yKCh2dWludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTQoKHZ1aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTEoKHZ1aW50OG0xX3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00KCh2dWludDhtNF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMigodnVpbnQ4bWYyX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdThtZjgoKHZ1aW50OG1mOF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yKCh2dWludDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bWY0KCh2dWludDE2bWY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTIoKHZ1aW50MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl91MzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNCgodnVpbnQ2NG00X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bTEoKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pOG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtNCgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2k4bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bTgoKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAodmludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjQoKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjgoKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTIoKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtNCgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm1mMigodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjQoKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMigodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtNCgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm1mMigodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG00KCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1faTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG0xKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG0yKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG00KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG04KCh2Ym9vbDFfdCkob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2dWludDhtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtZjIoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG1mNCgodmJvb2wzMl90KShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U4bWY4KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtMigodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTQoKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtMSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybTQoKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtMSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtOCgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZnZXRfdl9pOG0yX2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaThtMl9pOG0xKCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k4bTRfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pOG00X2k4bTEoKHZpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaThtOF9pOG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtMSgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMTZtMl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtMl9pMTZtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTE2bTRfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTEoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kxNm04X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0xKCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMzJtMl9pMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtMl9pMzJtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybTRfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybTRfaTMybTEoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kzMm04X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm04X2kzMm0xKCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pNjRtMl9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtMl9pNjRtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTY0bTRfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTY0bTRfaTY0bTEoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG04X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0xKCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG0yX3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtMl91OG0xKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG00X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtNF91OG0xKCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG04X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtOF91OG0xKCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtMl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtMl91MTZtMSgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UxNm00X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0xKCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTE2bThfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bThfdTE2bTEoKHZ1aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MzJtMl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MzJtMl91MzJtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm00X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0xKCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTMybThfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybThfdTMybTEoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91NjRtMl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtMl91NjRtMSgodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3U2NG00X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG00X3U2NG0xKCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTY0bThfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTEoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pOG00X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0yKCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k4bThfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pOG04X2k4bTIoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTE2bTRfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2kxNm04X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0yKCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMzJtNF9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtNF9pMzJtMigodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybThfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTIoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG00X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG00X2k2NG0yKCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pNjRtOF9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtOF9pNjRtMigodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdThtNF91OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U4bTRfdThtMigodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdThtOF91OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtMigodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTE2bTRfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bTRfdTE2bTIoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtOF91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMigodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm00X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0yKCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTMybThfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybThfdTMybTIoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91NjRtNF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtNF91NjRtMigodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3U2NG04X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG04X3U2NG0yKCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaThtOF9pOG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtNCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9pMTZtOF9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtOF9pMTZtNCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfaTMybThfaTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTQoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X2k2NG04X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91OG04X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdThtOF91OG00KCh2dWludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl91MTZtOF91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtNCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmdldF92X3UzMm04X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm00KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfdTY0bThfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTQoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXRfdl9pOG0xX2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTIoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTFfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMV9pMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm0xX2kzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTIoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pNjRtMV9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdThtMV91OG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfdThtMV91OG0yKCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTE2bTFfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MTZtMV91MTZtMigodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTMybTFfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MzJtMV91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfdTY0bTFfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91NjRtMV91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaThtMV9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG00KCh2aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k4bTJfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTJfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMTZtMV9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTJfaTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMl9pMTZtNCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm0xX2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTQoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMzJtMl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0yX2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTY0bTFfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pNjRtMV9pNjRtNCgodmludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k2NG0yX2k2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTJfaTY0bTQoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0xX3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0xX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0yX3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTQoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMV91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0xX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0yX3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMV91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0xX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0yX3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMV91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0xX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0yX3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pOG0xX2k4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTgoKHZpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaThtMl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaThtMl9pOG04KCh2aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k4bTRfaThtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTRfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDhtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMTZtMV9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm04KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTE2bTJfaTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMTZtMl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kxNm00X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTRfaTE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pMzJtMV9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTMybTJfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pMzJtMl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2kzMm00X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTRfaTMybTgoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9pNjRtMV9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfaTY0bTJfaTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pNjRtMl9pNjRtOCgodmludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2k2NG00X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTRfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0xX3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0xX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG0yX3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91OG00X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG00X3U4bTgoKHZ1aW50OG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2dWludDhtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMV91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0xX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtMl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm0yX3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MTZtNF91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UxNm00X3UxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMV91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0xX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtMl91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm0yX3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91MzJtNF91MzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3UzMm00X3UzMm04KCh2dWludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMV91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0xX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtMl91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG0yX3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl91NjRtNF91NjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X3U2NG00X3U2NG04KCh2dWludDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpKQojZGVmaW5lIHZzb3hlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG04KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodmludDhtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG04KCh1aW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAodnVpbnQ4bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtOF90KShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG00KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm04KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTEoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MTZtMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm04KChjb25zdCBpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyKChjb25zdCBpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm0xKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtOCgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm1mMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtMSgoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm0yKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2kzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9pMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm04KChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybWYyKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm00KChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm1mMigoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG0xKChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtNCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2k2NG04KChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0yKChjb25zdCB1aW50NjRfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X3U2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfdTY0bTQoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfdTY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOF92X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl9pOG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfaThtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl9pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtZjQoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X2k4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bWY4KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfdThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0yKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4X3ZfdThtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtZjIoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlOF92X3U4bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZThfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG0xKChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfaThtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtNCgoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG04KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bWY0KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtZjgoKGNvbnN0IGludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTEoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfdThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl91OG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG00KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTgoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bThfbSgodmJvb2wxX3QpKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU4ZmZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU4ZmZfdl91OG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtZjQoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZThmZl92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG1mOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5lZ192X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuZWdfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5lZ192X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuZWdfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmVnX3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5lZ192X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtMSgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtMigodmludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtNCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtOCgodmludDhtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bThfbSgodmJvb2wxX3QpKG9wMCksICh2aW50OG04X3QpKG9wMSksICh2aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWYyKCh2aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtZjQoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mOCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0xKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTIoKHZpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtOCgodmludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mMigodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybTEoKHZpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm00KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtOCgodmludDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTEoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtMigodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTgoKHZpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTEoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAodmludDhtMV90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAodmludDhtMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTQoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X2k4bTgoKGNvbnN0IGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfaThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG04X20oKHZib29sMV90KShvcDApLCAodmludDhtOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm5vdF92X3U4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtMSgodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtMigodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtNCgodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtOCgodnVpbnQ4bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKHZ1aW50OG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bWYyKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdThtZjQoKHZ1aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mOCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm0xKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm00KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtOCgodnVpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mNCgodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMigodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm00KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm1mMigodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTEoKHZ1aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZub3Rfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5vdF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5vdF92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG00KCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bm90X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bm90X3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTgoKHZ1aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZub3Rfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1tdl9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW12X21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW12X21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbXZfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iMigodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1tdl9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bW12X21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1tdl9tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtbXZfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bW12X21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1tdl9tX2I2NChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTIoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtNCgodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm04KCh2dWludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mNCgodnVpbnQ4bWY4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm0yKCh2dWludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTQoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMSgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm1mMigodnVpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtNCgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdndjdnR1X3hfeF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdndjdnR1X3hfeF92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG04KCh2dWludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2d2N2dHVfeF94X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMSgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ3Y3Z0dV94X3hfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMSgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTIoKHZpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00KCh2aW50MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWYyKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mNCgodmludDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMSgodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTIoKHZpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTQoKHZpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mNCgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZuY3Z0X3hfeF93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bmN2dF94X3hfd19pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtZjIoKHZpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm5jdnRfeF94X3dfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtMSgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTgoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mMigoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9pMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTEoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm04KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtZjIoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0xKChjb25zdCBpbnQzMl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybTgoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2kzMm1mMigoY29uc3QgaW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X3UzMm0yKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybWYyKChjb25zdCB1aW50MzJfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlOF92X3U4bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMSgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMigoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtNCgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtOCgoY29uc3QgdWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2U4X3ZfdThtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG04X20oKHZib29sMV90KShvcDApLCAodnVpbnQ4bThfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWYyKChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlOF92X3U4bWY4KChjb25zdCB1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NF92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtMSgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG00KChjb25zdCBpbnQ2NF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9pNjRtOCgoY29uc3QgaW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtMSgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTIoKGNvbnN0IHVpbnQ2NF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X3U2NG00KChjb25zdCB1aW50NjRfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtOCgoY29uc3QgdWludDY0X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtOCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsdXhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMSgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTIoKGNvbnN0IGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2k4bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG00KChjb25zdCBpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9pOG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9pOG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOF9tKCh2Ym9vbDFfdCkob3AwKSwgKHZpbnQ4bThfdCkob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMigoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mOCgoY29uc3QgaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2U2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2U2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0xKChjb25zdCBpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yKChjb25zdCBpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bTQoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2kxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtOCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtZjIoKGNvbnN0IGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mNCgoY29uc3QgaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMSgoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMigoY29uc3QgdWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm00KChjb25zdCB1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMTZfdl91MTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bTgoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWYyKChjb25zdCB1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtZjQoKGNvbnN0IHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTEoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTQoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2aW50MzJtNF90KShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtOCgoY29uc3QgaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtZjIoKGNvbnN0IGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTEoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTQoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtOCgoY29uc3QgdWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtZjIoKGNvbnN0IHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTEoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTIoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTQoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTgoKGNvbnN0IGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmaXJzdF9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmaXJzdF9tX2I4X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zmlyc3RfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zmlyc3RfbV9iMl9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmaXJzdF9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjEoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmaXJzdF9tX2IxX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjE2X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjMyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZpcnN0X21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZpcnN0X21fYjY0X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMV92X2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2I4KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2I0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IyKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IxKChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMV92X2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTFfdl9iMTYoKGNvbnN0IHVpbnQ4X3QgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxX3ZfYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMV92X2IzMigoY29uc3QgdWludDhfdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTFfdl9iNjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxX3ZfYjY0KChjb25zdCB1aW50OF90ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjJfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mMl9pOG0xKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY0X2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtMSgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTEoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMSgodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtMSgodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtMSgodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtZjIoKHZpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjhfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtZjIoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bWYyKCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mOF9pOG1mNCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG0xX2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG0yKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjJfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mMl9pOG0yKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY0X2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtMigodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mOF9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTIoKHZpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTIoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtMigodmludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybTFfaTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybTFfaTMybTIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTIoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtMV9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTFfaThtNCgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bTJfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG0yX2k4bTQoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mMl9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTQoKHZpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mNF9pOG00KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY4X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtNCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMV9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMV9pMTZtNCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMl9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMl9pMTZtNCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjJfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm00KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm00KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMV9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtNCgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMl9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMl9pMzJtNCgodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtZjJfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm00KCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMV9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMV9pNjRtNCgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMl9pNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMl9pNjRtNCgodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG0xX2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG04KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtMl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTJfaThtOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bTRfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG00X2k4bTgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pOG1mMl9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTgoKHZpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfaThtZjRfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG1mNF9pOG04KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2k4bWY4X2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtOCgodmludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMV9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMV9pMTZtOCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtMl9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtMl9pMTZtOCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtNF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtNF9pMTZtOCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjJfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm04KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMTZtZjRfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm04KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMV9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtOCgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtMl9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMl9pMzJtOCgodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtNF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtNF9pMzJtOCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pMzJtZjJfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTMybWYyX2kzMm04KCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMV9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMV9pNjRtOCgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtMl9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtMl9pNjRtOCgodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9pNjRtNF9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pNjRtNF9pNjRtOCgodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTEoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtMSgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG0xKCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0xKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMSgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm1mMl91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTEoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mNF91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG1mMigodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjhfdThtZjIoKHZ1aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm1mNF91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm1mMigodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY4X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bWY0KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG0xX3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtMV91OG0yKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWYyX3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjJfdThtMigodnVpbnQ4bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjRfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG0yKCh2dWludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mOF91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bTIoKHZ1aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0yKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMigodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0xX3UzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm0yKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtZjJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm0yKCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTIoKHZ1aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bTFfdThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG0xX3U4bTQoKHZ1aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtMl91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtNCgodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTQoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtNCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG00KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtMV91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtMV91MTZtNCgodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm1mMl91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjJfdTE2bTQoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjRfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm00KCh2dWludDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTMybTFfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTFfdTMybTQoKHZ1aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0yX3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0yX3UzMm00KCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtZjJfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm00KCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQoKHZ1aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U2NG0yX3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG0yX3U2NG00KCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG0xX3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtMV91OG04KCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bTJfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG0yX3U4bTgoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtNF91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTRfdThtOCgodnVpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91OG1mMl91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U4bWY0X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtOCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdThtZjhfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG04KCh2dWludDhtZjhfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtMV91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtMV91MTZtOCgodnVpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UxNm00X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm00X3UxNm04KCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MTZtZjJfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm04KCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtOCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm0xX3UzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm04KCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91MzJtMl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMl91MzJtOCgodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTMybTRfdTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTRfdTMybTgoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3UzMm1mMl91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTgoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl91NjRtMV91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMV91NjRtOCgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X3U2NG00X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG00X3U2NG04KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTFfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWYyKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mMigodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjIoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bThfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWYyKCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtZjIoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtMV9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtMV9pMzJtZjIoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtMl9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtMl9pMzJtZjIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtZjIoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMV9pOG1mNCgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtMl9pOG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtZjQoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTRfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bWY0KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG1mNCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtZjJfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mMl9pOG1mNCgodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0xX2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0xX2kxNm1mNCgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0yX2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0yX2kxNm1mNCgodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm00X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm1mNCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm04X2kxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm04X2kxNm1mNCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm1mMl9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtZjJfaTE2bWY0KCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTFfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY4KCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mOCgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjgoKHZpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bThfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY4KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG1mMl9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bWYyX2k4bWY4KCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtZjRfaThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mNF9pOG1mOCgodmludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTJfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtMSgodmludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtNF9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG0xKCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTEoKHZpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm0yX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bTEoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0xKCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMSgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kzMm0yX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTJfaTMybTEoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm00X2kzMm0xKCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTMybThfaTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMSgodmludDMybThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k2NG0yX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bTJfaTY0bTEoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k2NG00X2k2NG0xKCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtMSgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k4bTRfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtMigodmludDhtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaThtOF9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG0yKCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMTZtNF9pMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0yKCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMigodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kzMm00X2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTRfaTMybTIoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm0yKCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bTRfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMigodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2k2NG04X2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTIoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTQoKHZpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2kxNm04X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTQoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm00KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtNCgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTFfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWYyKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtMl91OG1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTJfdThtZjIoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mMigodnVpbnQ4bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bThfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bWYyKCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWYyKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm0yX3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjIoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWYyKCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm0xX3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0xX3UzMm1mMigodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtZjIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybTRfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybTRfdTMybWYyKCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm04X3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm1mMigodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mNCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTJfdThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY0KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtNF91OG1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTRfdThtZjQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mNCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bWYyX3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtZjJfdThtZjQoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTFfdTE2bWY0KCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm0yX3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mNCgodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bWY0KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm1mMl91MTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtZjJfdTE2bWY0KCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0xX3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mOCgodnVpbnQ4bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bTJfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY4KCh2dWludDhtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtNF91OG1mOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTRfdThtZjgoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mOCgodnVpbnQ4bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U4bWYyX3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtZjJfdThtZjgoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdThtZjRfdThtZjgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mNF91OG1mOCgodnVpbnQ4bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEoKHZ1aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTEoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTEoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm0xKCh2dWludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm00X3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bTRfdTE2bTEoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtMSgodnVpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0yX3UzMm0xKCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm00X3UzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybTRfdTMybTEoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybThfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMSgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91NjRtMl91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG0yX3U2NG0xKCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U2NG00X3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTY0bTRfdTY0bTEoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMSgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTIoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm0yKCh2dWludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UxNm04X3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTE2bThfdTE2bTIoKHZ1aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTMybTRfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtNF91MzJtMigodnVpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm0yKCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3U2NG00X3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTY0bTRfdTY0bTIoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMigodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91OG04X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG04X3U4bTQoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm00KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X3UzMm04X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdTMybThfdTMybTQoKHZ1aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfdTY0bThfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtNCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdm1hbmRfbW1fYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kX21tX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZF9tbV9iNCgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZF9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjIoKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRfbW1fYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kX21tX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjE2KCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZF9tbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZF9tbV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZG5vdF9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRub3RfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWFuZG5vdF9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtYW5kbm90X21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1hbmRub3RfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWNscl9tX2I4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjgoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2I0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjIoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IxKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjEoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bWNscl9tX2IxNihvcDApIFwKX19idWlsdGluX3J2dl92bWNscl9tX2IxNigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZtY2xyX21fYjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZtY2xyX21fYjMyKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1jbHJfbV9iNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm1jbHJfbV9iNjQoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bW5hbmRfbW1fYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iNCgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5hbmRfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjE2KCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1uYW5kX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbmFuZF9tbV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjgoKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1ub3JfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbm9yX21tX2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5vcl9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjEoKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1ub3JfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW5vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW5vcl9tbV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtbm9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjY0KCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3JfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjIoKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9ybm90X21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1vcm5vdF9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMigodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bW9ybm90X21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2IzMigodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtb3Jub3RfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bW9ybm90X21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtc2JmX21fYjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmJvb2w4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmZfbV9iNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2JmX21fYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiZl9tX2IyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMigodmJvb2wyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zYmZfbV9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZib29sMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JmX21fYjEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2IxX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMV9tKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAodmJvb2wxX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zYmZfbV9iMTYob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2JmX21fYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2JmX21fYjMyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzIoKHZib29sMzJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNiZl9tX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNiZl9tX2I2NChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjY0KCh2Ym9vbDY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zYmZfbV9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNiZl9tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zZXRfbV9iOChvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2I4KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iNChvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2I0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMihvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IyKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMShvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IxKChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zZXRfbV9iMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdm1zZXRfbV9iMTYoKHNpemVfdCkob3AwKSkKI2RlZmluZSB2bXNldF9tX2IzMihvcDApIFwKX19idWlsdGluX3J2dl92bXNldF9tX2IzMigoc2l6ZV90KShvcDApKQojZGVmaW5lIHZtc2V0X21fYjY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3Ztc2V0X21fYjY0KChzaXplX3QpKG9wMCkpCiNkZWZpbmUgdm1zaWZfbV9iOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjgoKHZib29sOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNpZl9tX2I0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iNCgodmJvb2w0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zaWZfbV9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZib29sNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2lmX21fYjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNpZl9tX2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmJvb2wyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zaWZfbV9iMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjEoKHZib29sMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksICh2Ym9vbDFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNpZl9tX2IxNihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2KCh2Ym9vbDE2X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zaWZfbV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zaWZfbV9iMzIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNpZl9tX2IzMigodmJvb2wzMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc2lmX21fYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc2lmX21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNpZl9tX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iOCgodmJvb2w4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZib29sOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc29mX21fYjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNvZl9tX2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmJvb2w0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zb2ZfbV9iMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjIoKHZib29sMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc29mX21fYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMSgodmJvb2wxX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjFfbSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHZib29sMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtc29mX21fYjE2KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXNvZl9tX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bXNvZl9tX2IzMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm1zb2ZfbV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1zb2ZfbV9iNjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXNvZl9tX2I2NCgodmJvb2w2NF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtc29mX21fYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZteG5vcl9tbV9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I4KCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I0KCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IxKCh2Ym9vbDFfdCkob3AwKSwgKHZib29sMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG5vcl9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iMTYoKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhub3JfbW1fYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhub3JfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14bm9yX21tX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I2NCgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iOCgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhvcl9tbV9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjQoKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14b3JfbW1fYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2IxKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iMSgodmJvb2wxX3QpKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bXhvcl9tbV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IxNigodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZteG9yX21tX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjMyKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm14b3JfbW1fYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bXhvcl9tbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2I4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iOCgodmJvb2w4X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iOF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnBvcGNfbV9iNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjQoKHZib29sNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZwb3BjX21fYjRfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZwb3BjX21fYjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IyKCh2Ym9vbDJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2cG9wY19tX2IyX20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2IxKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMSgodmJvb2wxX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iMV9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IxX20oKHZib29sMV90KShvcDApLCAodmJvb2wxX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnBvcGNfbV9iMTYob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2IxNigodmJvb2wxNl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZwb3BjX21fYjE2X20ob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cG9wY19tX2IzMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjMyKCh2Ym9vbDMyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnBvcGNfbV9iMzJfbShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZwb3BjX21fYjY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iNjQoKHZib29sNjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2cG9wY19tX2I2NF9tKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cG9wY19tX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kxNm0xKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMl9pMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX2kxNm0yKCh2aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtNF9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X2kxNm00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kxNm04KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX2kxNm1mMigodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pOG1mNF9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjRfaTE2bWY0KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0xX2kxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2kxNm0xKCh2aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2kxNm0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2kxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2kxNm00KCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm04X2kxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2kxNm04KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2kxNm1mMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaTE2bTEoKHZpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaTE2bTIoKHZpbnQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaTE2bTQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bThfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bThfaTE2bTgoKHZpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kzMm0xKCh2aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX2kzMm0yKCh2aW50OG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtNF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X2kzMm00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kzMm04KCh2aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX2kzMm1mMigodmludDhtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMV9pMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMV9pMzJtMSgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMl9pMzJtMigodmludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtNF9pMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF9pMzJtNCgodmludDE2bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtOF9pMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtOF9pMzJtOCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl9pMzJtZjIoKHZpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0xX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0xX2kzMm0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX2kzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX2kzMm0yKCh2aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG00X2kzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X2kzMm00KCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG04X2kzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG04X2kzMm04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTFfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMV9pNjRtMSgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTJfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pNjRtMigodmludDhtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTRfaTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtNF9pNjRtNCgodmludDhtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bThfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtOF9pNjRtOCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0xX2k2NG0xKCh2aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0yX2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2k2NG0yKCh2aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm00X2k2NG00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X2k2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm04X2k2NG04KCh2aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0xX2k2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k2NG0xKCh2aW50MzJtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm0yX2k2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2k2NG0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2k2NG00KCh2aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm04X2k2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k2NG04KCh2aW50MzJtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX2k4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaThtMSgodmludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtMl9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2k4bTIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaThtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF9pOG00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X2k4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaThtOCgodmludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjJfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjRfaThtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWY0X2k4bWY0KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMV9pOG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k4bTEoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTJfaThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl9pOG0yKCh2aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kzMm00X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaThtNCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtOF9pOG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k4bTgoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2k4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9pOG1mMigodmludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pOG0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX2k4bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaThtMigodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtNF9pOG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X2k4bTQoKHZpbnQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTY0bThfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pOG04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTFfaThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX2k4bTEoKHZ1aW50OG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMl9pOG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTJfaThtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X2k4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtNF9pOG00KCh2dWludDhtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bThfaThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X2k4bTgoKHZ1aW50OG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtZjJfaThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtZjJfaThtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWY0X2k4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY0X2k4bWY0KCh2dWludDhtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG1mOF9pOG1mOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mOF9pOG1mOCgodnVpbnQ4bWY4X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTFfaTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfaTE2bTEoKHZ1aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0yX2kxNm0yKCh2dWludDE2bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtNF9pMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF9pMTZtNCgodnVpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bThfaTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfaTE2bTgoKHZ1aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2kxNm1mMigodnVpbnQxNm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm1mNF9pMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X2kxNm1mNCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX2kzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0xX2kzMm0xKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl9pMzJtMigodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTRfaTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfaTMybTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X2kzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm04X2kzMm04KCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl9pMzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV9pNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV9pNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfaTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfaTY0bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2k2NG00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF9pNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF9pNjRtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UxNm0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91MTZtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTE2bTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UxNm04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWYyX3UxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MTZtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mNF91MTZtZjQoKHZ1aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0xX3UxNm0xKCh2dWludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMigodnVpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTE2bTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm04X3UxNm04KCh2dWludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtZjJfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91MTZtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV91MTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91MTZtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTE2bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UxNm00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF91MTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91MTZtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UzMm0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91MzJtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTMybTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UzMm04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bWYyX3UzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MzJtZjIoKHZ1aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91MzJtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTMybTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X3UzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3UzMm04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mMl91MzJtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91MzJtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UzMm00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91MzJtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3U2NG0xKCh2dWludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U4bTJfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91NjRtMigodnVpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91OG00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfdTY0bTQoKHZ1aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdThtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3U2NG04KCh2dWludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3U2NG0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdTY0bTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3U2NG04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfdTY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTJfdTY0bTIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3U2NG00KCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTFfdThtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMV91OG0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl91OG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0yX3U4bTIoKHZ1aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm00X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfdThtNCgodnVpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bThfdThtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtOF91OG04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfdThtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3U4bWYyKCh2dWludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF91OG1mNCgodnVpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm0xX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfdThtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91OG0yKCh2dWludDMybTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtNF91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3U4bTQoKHZ1aW50MzJtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm04X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfdThtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybWYyX3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91OG1mMigodnVpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG0xX3U4bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTFfdThtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl91OG0yKCh2dWludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtNF91OG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3U4bTQoKHZ1aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG04X3U4bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bThfdThtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtMV91OG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTFfdThtMSgodmludDhtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bTJfdThtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0yX3U4bTIoKHZpbnQ4bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pOG00X3U4bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtNF91OG00KCh2aW50OG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaThtOF91OG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bThfdThtOCgodmludDhtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWYyX3U4bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWYyX3U4bWYyKCh2aW50OG1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KCh2aW50OG1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k4bWY4X3U4bWY4KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY4X3U4bWY4KCh2aW50OG1mOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0xX3UxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0xX3UxNm0xKCh2aW50MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKCh2aW50MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm00X3UxNm00KCh2aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm04X3UxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm04X3UxNm04KCh2aW50MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2kxNm1mMl91MTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX3UxNm1mMigodmludDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfdTE2bWY0KCh2aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMV91MzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMV91MzJtMSgodmludDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMigodmludDMybTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtNF91MzJtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtNF91MzJtNCgodmludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtOF91MzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtOF91MzJtOCgodmludDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMzJtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl91MzJtZjIoKHZpbnQzMm1mMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0xX3U2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0xX3U2NG0xKCh2aW50NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG0yX3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX3U2NG0yKCh2aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG00X3U2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X3U2NG00KCh2aW50NjRtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2k2NG04X3U2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG04X3U2NG04KCh2aW50NjRtOF90KShvcDApKQojZGVmaW5lIHZzZTFfdl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2I4KCh1aW50OF90ICopKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxX3ZfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNCgodWludDhfdCAqKShvcDApLCAodmJvb2w0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMV92X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxX3ZfYjIoKHVpbnQ4X3QgKikob3AwKSwgKHZib29sMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTFfdl9iMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2IxKCh1aW50OF90ICopKG9wMCksICh2Ym9vbDFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxX3ZfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxX3ZfYjE2KCh1aW50OF90ICopKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMV92X2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMV92X2IzMigodWludDhfdCAqKShvcDApLCAodmJvb2wzMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTFfdl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNjQoKHVpbnQ4X3QgKikob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNCgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjIoKHZpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0yKCh2aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTQoKHZpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZpbnQxNm04X3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtZjIoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtMigodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm00KCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MzJtOF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTEoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmYyX2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG0yKCh2aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTQoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmYyX2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmMl9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtOCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjJfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMigodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0xKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTIoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtNCgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm04KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY0X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTEoKHZpbnQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0yKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtNCgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjRfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY0X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG04KCh2aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmNF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMSgodmludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V4dF92ZjhfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNleHRfdmY4X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG0yKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2V4dF92ZjhfaTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTQoKHZpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnNleHRfdmY4X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtOCgodmludDhtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXh0X3ZmOF9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG0xKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtMigpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG04KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pOG1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2k4bWYyKCkKI2RlZmluZSB2dW5kZWZpbmVkX2k4bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaThtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaThtZjgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pOG1mOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX2kxNm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTE2bTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTE2bTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMTZtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX2kxNm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kxNm1mMigpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMTZtZjQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMTZtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTMybTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMzJtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2kzMm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2kzMm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTMybTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTMybTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pMzJtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pMzJtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pNjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9pNjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2k2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2k2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfaTY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfaTY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9pNjRtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG0xKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtMigpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG04KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91OG1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3U4bWYyKCkKI2RlZmluZSB2dW5kZWZpbmVkX3U4bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdThtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdThtZjgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91OG1mOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX3UxNm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTE2bTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTE2bTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MTZtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX3UxNm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UxNm1mMigpCiNkZWZpbmUgdnVuZGVmaW5lZF91MTZtZjQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MTZtZjQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTMybTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MzJtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3UzMm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX3UzMm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTMybTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTMybTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF91MzJtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91MzJtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91NjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF91NjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX3U2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX3U2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfdTY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfdTY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF91NjRtOCgpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjQoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTEoKHZ1aW50OG1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMigodnVpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm00KCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTgoKHZ1aW50OG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm04X20oKHZib29sMl90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyKCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMSgodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtNCgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTgoKHZ1aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xKCh2dWludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtMigodnVpbnQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmYyX3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjJfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjJfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTgoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmMl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtZjIoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMSgodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm0yKCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTQoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtOCgodnVpbnQ4bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjRfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xKCh2dWludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjRfdTY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTQoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmNF91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91NjRtOCgodnVpbnQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY0X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTEoKHZ1aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZ6ZXh0X3ZmOF91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZ6ZXh0X3ZmOF91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMigodnVpbnQ4bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG00KCh2dWludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2emV4dF92ZjhfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTgoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdnpleHRfdmY4X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojaWYgZGVmaW5lZChfX3Jpc2N2X2YpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtNCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtNCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtOCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YzMm00KChjb25zdCBmbG9hdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpNjRfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXZfdl92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhZGRfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmRpdl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnJkaXZfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192Zl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFic192X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmYWJzX3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhYnNfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm0yX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTJfYjE2KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm00X2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtNF9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YzMm1mMl9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm1mMl9iNjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YzMm0xX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTFfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtNF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtOF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMzJtZjJfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YzMm0xX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMzJtMl9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm0yX2IxNigodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybTJfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMzJtNF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTRfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YzMm04X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtOF9iNCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMzJtZjJfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtZjJfYjY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTFfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMV9iMzIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMzJtMV9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0xX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMzJtMl9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0yX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTRfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybThfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybThfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjMybWYyX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMzJtMV9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTFfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtMV9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTJfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtMl9iMTYoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm0yX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm00X2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtNF9iOCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybTRfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm00X2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMzJtOF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybThfYjQoKHZmbG9hdDMybThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm04X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtOF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjMybWYyX2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybWYyX2I2NCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YzMm1mMl9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm1mMl9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMigodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm04KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm1mMigodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybTEoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtOCgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoZmxvYXQpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtMSgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtMigoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtNCgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMzJtOCgoZmxvYXQpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjMybWYyKChmbG9hdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMzJtMV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybTJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMzJtMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTJfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YzMm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjMybWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybTFfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm0xX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTFfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybTJfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMl9mMzJtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm00X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtNF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm00X2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMzJtOF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybThfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybThfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtOF9mMzJtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjMybWYyX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtZjJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXZfZl9zX2YzMm0xX2YzMihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtMV9mMzIoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMzJtMl9mMzIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjMybTJfZjMyKCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjMybTRfZjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm00X2YzMigodmZsb2F0MzJtNF90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YzMm04X2YzMihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtOF9mMzIoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMzJtZjJfZjMyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm1mMl9mMzIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9zX2ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTEoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm0yKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtNCgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtOCgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybWYyKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTJfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTJfZjMybTEoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTRfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTRfZjMybTEoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTEoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybTRfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybTRfZjMybTIoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTIoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjMybThfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjMybThfZjMybTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V0X3ZfZjMybTFfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMzJtMV9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMzJtMV9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YzMm0yX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjMybTJfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmZsb2F0MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNldF92X2YzMm0xX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjMybTFfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjMybTJfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMzJtMl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMzJtNF9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm00X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMikpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm04X20oKHZib29sNF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTEoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTIoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMzJmZl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtOCgoY29uc3QgZmxvYXQgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTMyZmZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtZjIoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZuZWdfdl9mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5lZ192X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmVnX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtMSgoY29uc3QgZmxvYXQgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0yKChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMzJfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTMyX3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm04KChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUzMl92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybWYyKChjb25zdCBmbG9hdCAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm04KChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm0xKChjb25zdCBmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTQoKGNvbnN0IGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTgoKGNvbnN0IGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTMyX3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMigoY29uc3QgZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjbGFzc192X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjbGFzc192X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMSgodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMigodmludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtNCgodmludDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm1mMigodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTEoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTIoKHZ1aW50MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTQoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtOCgodnVpbnQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtZjIoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMSgodmludDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybTIoKHZpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm00KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm1mMigodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTEoKHZ1aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0yKCh2dWludDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtNCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bWY0KCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMigodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtNCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtMSgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtNCgodmZsb2F0MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm00X20oKHZib29sNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVjN192X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybWYyKCh2aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0yKCh2aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtNCgodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtOCgodmludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtZjIoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTEoKHZ1aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTIoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm00KCh2dWludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjMybTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm04KCh2dWludDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG00KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3U2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeF9mX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG00KCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91NjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtZjJfZjMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0xKCh2ZmxvYXQzMm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0xX2YzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0xX2YzMm0yKCh2ZmxvYXQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtMigodmZsb2F0MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtMV9mMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMV9mMzJtNCgodmZsb2F0MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0yX2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm00KCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtNCgodmZsb2F0MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtMV9mMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMV9mMzJtOCgodmZsb2F0MzJtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YzMm0yX2YzMm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm04KCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjMybTRfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTRfZjMybTgoKHZmbG9hdDMybTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMzJtZjJfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm04KCh2ZmxvYXQzMm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjMybTFfZjMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTFfZjMybWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtZjIoKHZmbG9hdDMybTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YzMm00X2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm1mMigodmZsb2F0MzJtNF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjMybThfZjMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybThfZjMybWYyKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtMl9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtNF9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0xKCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm0xKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtNF9mMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0yKCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm0yKCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm04X2YzMm00KCh2ZmxvYXQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTFfZjMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfZjMybTEoKHZpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTJfZjMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfZjMybTIoKHZpbnQzMm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQoKHZpbnQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybThfZjMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfZjMybTgoKHZpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtZjJfZjMybWYyKCh2aW50MzJtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMSgodnVpbnQzMm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybTJfZjMybTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTJfZjMybTIoKHZ1aW50MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UzMm00X2YzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X2YzMm00KCh2dWludDMybTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOCgodnVpbnQzMm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTMybWYyX2YzMm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfZjMybWYyKCh2dWludDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybTFfaTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTFfaTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtMl9pMzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtMl9pMzJtMigodmZsb2F0MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YzMm00X2kzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X2kzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybThfaTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybThfaTMybTgoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtZjJfaTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl9pMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybTFfdTMybTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTFfdTMybTEoKHZmbG9hdDMybTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtMl91MzJtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtMl91MzJtMigodmZsb2F0MzJtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YzMm00X3UzMm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X3UzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjMybThfdTMybTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybThfdTMybTgoKHZmbG9hdDMybThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMzJtZjJfdTMybWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl91MzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCkpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMzJtMSgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm0xKCkKI2RlZmluZSB2dW5kZWZpbmVkX2YzMm0yKCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjMybTIoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjMybTQoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMzJtNCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMzJtOCgpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm04KCkKI2RlZmluZSB2dW5kZWZpbmVkX2YzMm1mMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YzMm1mMigpCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9kKQojZGVmaW5lIHZsc2U2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2U2NF92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxzZTY0X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2U2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG04KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMTZfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG04KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG0xKChjb25zdCBkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTIoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTQoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMzJfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMSgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOCgoY29uc3QgZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bXZfdl92X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChkb3VibGUpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhYnNfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWZlcV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3Z2X2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtMV9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0xX2I2NCgodmZsb2F0NjRtMV90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG0xX2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTFfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0yX2IzMigodmZsb2F0NjRtMl90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG0yX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtNF9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG00X2IxNigodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2Y2NG00X2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTRfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtOF9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mNjRtOF9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTEoKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTQoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjY0bTgoKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG0xKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChkb3VibGUpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjY0bTIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mNjRtNCgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZG91YmxlKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG04KCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGRvdWJsZSkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm12X3ZfZl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfdl9mX2Y2NG0xKChkb3VibGUpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mNjRtMigoZG91YmxlKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbXZfdl9mX2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjY0bTQoKGRvdWJsZSkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm12X3ZfZl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfdl9mX2Y2NG04KChkb3VibGUpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTFfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0yX2Y2NG0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2Y2NG00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjY0bThfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bThfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG0xX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMV9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG0xX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG0yX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtNF9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2Y2NG04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtOF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mNjRtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2Y2NG04X2Y2NG0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXZfZl9zX2Y2NG0xX2Y2NChvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtMV9mNjQoKHZmbG9hdDY0bTFfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mNjRtMl9mNjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjY0bTJfZjY0KCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjY0bTRfZjY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG00X2Y2NCgodmZsb2F0NjRtNF90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2Y2NG04X2Y2NChvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtOF9mNjQoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGV1cF92eF9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKGRvdWJsZSkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoZG91YmxlKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGRvdWJsZSkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoZG91YmxlKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChkb3VibGUpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChkb3VibGUpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTEoKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2Y2NG0yKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmNvbXByZXNzX3ZtX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mNjRtNCgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTgoKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZnZXRfdl9mNjRtMl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtMl9mNjRtMSgodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtNF9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtNF9mNjRtMSgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtMSgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtNF9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtNF9mNjRtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtMigodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZnZXRfdl9mNjRtOF9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mNjRtOF9mNjRtNCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZzZXRfdl9mNjRtMV9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2Y2NG0xX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjY0bTFfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjY0bTJfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mNjRtMl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mNjRtMV9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2Y2NG0yX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjY0bTJfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjY0bTRfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mNjRtNF9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTY0X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG04KChkb3VibGUgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGU2NGZmX3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9mNjRtMigoY29uc3QgZG91YmxlICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGU2NGZmX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTY0ZmZfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00KChjb25zdCBkb3VibGUgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTY0ZmZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlNjRmZl92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGU2NGZmX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTEoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG0yKChjb25zdCBkb3VibGUgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGU2NF92X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlNjRfdl9mNjRtNCgoY29uc3QgZG91YmxlICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlNjRfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTgoKGNvbnN0IGRvdWJsZSAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTY0X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGU2NF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjbGFzc192X3U2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjbGFzc192X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG0xKCh2aW50NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG0yKCh2aW50NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00KCh2aW50NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG04KCh2aW50NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMigodnVpbnQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtNCgodnVpbnQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtOCgodnVpbnQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAodmludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91NjRtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3U2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTY0bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2aW50NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3U2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeHVfZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjIoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTQoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm0yKCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191MzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0yKCh2ZmxvYXQ2NG00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00X20oKHZib29sOF90KShvcDApLCAodmludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3UzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVjN192X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2Y2NG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmc3FydF92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnNxcnRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMSgodmludDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTQoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG04KCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTEoKHZ1aW50MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTIoKHZ1aW50MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG00KCh2dWludDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2Y2NG04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtOCgodnVpbnQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bG11bF9leHRfdl9mNjRtMV9mNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtMigodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2Y2NG0xX2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0xX2Y2NG00KCh2ZmxvYXQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTQoKHZmbG9hdDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mNjRtMV9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtOCgodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2Y2NG0yX2Y2NG04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0yX2Y2NG04KCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjY0bTRfZjY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTRfZjY0bTgoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG0yX2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTJfZjY0bTEoKHZmbG9hdDY0bTJfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG00X2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTEoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTEoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG00X2Y2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTIoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTIoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2Y2NG04X2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTQoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMSgodmludDY0bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtMl9mNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9mNjRtMigodmludDY0bTJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtNF9mNjRtNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9mNjRtNCgodmludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOCgodmludDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtMV9mNjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV9mNjRtMSgodnVpbnQ2NG0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTY0bTJfZjY0bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfZjY0bTIoKHZ1aW50NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3U2NG00X2Y2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2Y2NG00KCh2dWludDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91NjRtOF9mNjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF9mNjRtOCgodnVpbnQ2NG04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bTFfaTY0bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTFfaTY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtMl9pNjRtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtMl9pNjRtMigodmZsb2F0NjRtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2Y2NG00X2k2NG00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG00X2k2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bThfaTY0bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bThfaTY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtMV91NjRtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtMV91NjRtMSgodmZsb2F0NjRtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2Y2NG0yX3U2NG0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG0yX3U2NG0yKCh2ZmxvYXQ2NG0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mNjRtOF91NjRtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtOF91NjRtOCgodmZsb2F0NjRtOF90KShvcDApKQojZGVmaW5lIHZ1bmRlZmluZWRfZjY0bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mNjRtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mNjRtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2Y2NG0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2Y2NG00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjY0bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjY0bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mNjRtOCgpCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9mKSAmJiBkZWZpbmVkKF9fcmlzY3ZfZCkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtOCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0xKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdmZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtNCgodmZsb2F0MzJtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92Zl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2Y2NG0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3d2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtNCgodmZsb2F0NjRtNF90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3dmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mNjRtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93Zl9mNjRtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjY0bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtOCgodmZsb2F0NjRtOF90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG04X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTIoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTgoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMSgodmZsb2F0MzJtZjJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChmbG9hdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMigodmZsb2F0MzJtMV90KShvcDApLCAoZmxvYXQpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoZmxvYXQpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mNjRtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG04KCh2ZmxvYXQzMm00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdmZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKGZsb2F0KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192dl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTIoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192Zl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksIChmbG9hdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTQoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192dl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04KCh2ZmxvYXQ2NG04X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04X20oKHZib29sOF90KShvcDApLCAodmZsb2F0NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192Zl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMigodmZsb2F0NjRtMl90KShvcDApLCAoZmxvYXQpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG00KCh2ZmxvYXQ2NG00X3QpKG9wMCksIChmbG9hdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAoZmxvYXQpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTgoKHZmbG9hdDY0bThfdCkob3AwKSwgKGZsb2F0KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKGZsb2F0KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtMV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTFfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybTFfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtMV9mNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtMl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtMl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybTRfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTRfZjY0bTFfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YzMm04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtOF9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtOF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm04X2Y2NG0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMzJtZjJfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm1mMl9mNjRtMSgodmZsb2F0NjRtMV90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0xX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0yX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm00X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtNF9mNjRtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybThfZjY0bTEoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20oKHZib29sNF90KShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKCh2ZmxvYXQ2NG0xX3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm1mMl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybWYyKCh2ZmxvYXQ2NG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMigodmZsb2F0NjRtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00KCh2ZmxvYXQ2NG04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtZjIoKHZmbG9hdDY0bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTEoKHZmbG9hdDY0bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTIoKHZmbG9hdDY0bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTQoKHZmbG9hdDY0bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTEoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTQoKHZmbG9hdDMybTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX2Zfdl9mNjRtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOCgodmZsb2F0MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX2Zfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDY0bThfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X3pmaCkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2UxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2UxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZTE2X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtOCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtZjQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHV4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsdXhlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmx1eGVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTEoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTEoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0yKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm00KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm04KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxveGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bG94ZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsb3hlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtdl92X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZtdl92X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdm12X3Zfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bXZfdl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bXZfdl92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZhZGRfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFkZF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmYWRkX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc3ViX3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzdWJfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcnN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJzdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyc3ViX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdWxfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm11bF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXVsX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZmRpdl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmZGl2X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZkaXZfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmcmRpdl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJkaXZfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZyZGl2X3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFjY192Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hY2NfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWNjX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWNjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWNjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFjY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hY2NfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXNhY192Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zYWNfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc2FjX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc2FjX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc2FjX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXNhY192Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zYWNfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWFkZF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1hZGRfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtYWRkX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tYWRkX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tYWRkX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubWFkZF92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1hZGRfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdnZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbXN1Yl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1zdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtc3ViX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5tc3ViX3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5tc3ViX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZubXN1Yl92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbm1zdWJfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3Z2X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtaW5fdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1pbl92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWluX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm1heF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmbWF4X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtYXhfdmZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2dual92dl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2dual92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpfdmZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qX3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdnZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdnZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3Z2X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duam5fdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmpuX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qbl92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzZ25qeF92Zl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2duanhfdmZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2duanhfdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNnbmp4X3ZmX2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZmFic192X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZhYnNfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmFic192X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmYWJzX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZhYnNfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmFic192X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmFic192X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3Z2X2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdnZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZXFfdmZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmVxX3ZmX2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZlcV92Zl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92dl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92dl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3Z2X2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZm5lX3ZmX2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZuZV92Zl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbmVfdmZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdnZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92dl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92dl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsdF92Zl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbHRfdmZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmx0X3ZmX2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3Z2X2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdnZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTFfYjE2X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTZfbSgodmJvb2wxNl90KShvcDApLCAodmJvb2wxNl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm00X2I0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtNF9iNCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm04X2IyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtOF9iMl9tKCh2Ym9vbDJfdCkob3AwKSwgKHZib29sMl90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mbGVfdmZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm1mMl9iMzJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mMl9iMzJfbSgodmJvb2wzMl90KShvcDApLCAodmJvb2wzMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmxlX3ZmX2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZsZV92Zl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtMV9iMTYob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0xX2IxNigodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtMl9iOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTJfYjhfbSgodmJvb2w4X3QpKG9wMCksICh2Ym9vbDhfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtOF9iMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92dl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92dl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm1mNF9iNjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3Z2X2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm0xX2IxNl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTFfYjE2X20oKHZib29sMTZfdCkob3AwKSwgKHZib29sMTZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm0yX2I4KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtMl9iOCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMTZtNF9iNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTRfYjQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm00X2I0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtNF9iNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZib29sNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMTZtOF9iMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bThfYjJfbSgodmJvb2wyX3QpKG9wMCksICh2Ym9vbDJfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmd0X3ZmX2YxNm1mMl9iMzIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm1mMl9iMzIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZndF92Zl9mMTZtZjJfYjMyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjJfYjMyX20oKHZib29sMzJfdCkob3AwKSwgKHZib29sMzJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZndF92Zl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ3RfdmZfZjE2bWY0X2I2NF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWY0X2I2NF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2Ym9vbDY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTFfYjE2KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtMV9iMTYoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTJfYjgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTJfYjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4X20oKHZib29sOF90KShvcDApLCAodmJvb2w4X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bTRfYjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0X20oKHZib29sNF90KShvcDApLCAodmJvb2w0X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bThfYjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm04X2IyKCh2ZmxvYXQxNm04X3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bWYyX2IzMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWYyX2IzMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdnZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92dl9mMTZtZjRfYjY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92dl9mMTZtZjRfYjY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0X20oKHZib29sNjRfdCkob3AwKSwgKHZib29sNjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm0xX2IxNihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtMV9iMTZfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm0xX2IxNl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2Ym9vbDE2X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtMl9iOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTJfYjgoKHZmbG9hdDE2bTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm0yX2I4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtMl9iOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZib29sOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bTRfYjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm00X2I0KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtNF9iNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTRfYjRfbSgodmJvb2w0X3QpKG9wMCksICh2Ym9vbDRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm04X2IyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtOF9iMigodmZsb2F0MTZtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bThfYjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm04X2IyX20oKHZib29sMl90KShvcDApLCAodmJvb2wyX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bWZnZV92Zl9mMTZtZjJfYjMyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjJfYjMyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bWYyX2IzMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bWYyX2IzMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2Ym9vbDMyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdm1mZ2VfdmZfZjE2bWY0X2I2NChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bWY0X2I2NCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZtZmdlX3ZmX2YxNm1mNF9iNjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mNF9iNjRfbSgodmJvb2w2NF90KShvcDApLCAodmJvb2w2NF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtMSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtMigodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdm1lcmdlX3Z2bV9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bTgoKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZtZXJnZV92dm1fZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bWYyKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bWVyZ2VfdnZtX2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm1mNCgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtZXJnZV92Zm1fZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbWVyZ2VfdmZtX2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm1lcmdlX3ZmbV9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bWY0KCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtMSgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtMigoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtNCgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtOCgoX0Zsb2F0MTYpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZtdl92X2ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl92X2ZfZjE2bWYyKChfRmxvYXQxNikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm12X3ZfZl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm12X3ZfZl9mMTZtZjQoKF9GbG9hdDE2KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWF4X3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtYXhfdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1heF92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkbWluX3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRtaW5fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG1pbl92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0xX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMl9mMTZtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm00X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtOF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtOF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtOF9mMTZtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtZjJfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkc3VtX3ZzX2YxNm1mMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRzdW1fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZHN1bV92c19mMTZtZjRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtMV9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTFfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bTFfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMV9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMl9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtMl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtNF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtNF9mMTZtMV9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm04X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm04X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTFfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm1mMl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWYyX2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnJlZG9zdW1fdnNfZjE2bWY0X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjRfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2ZmxvYXQxNm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm04X20oKHZib29sMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm12X2Zfc19mMTZtMV9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bTFfZjE2KCh2ZmxvYXQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjE2bTJfZjE2KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YxNm0yX2YxNigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YxNm00X2YxNihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtNF9mMTYoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2Zm12X2Zfc19mMTZtOF9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bThfZjE2KCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmZtdl9mX3NfZjE2bWYyX2YxNihvcDApIFwKX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtZjJfZjE2KCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZmbXZfZl9zX2YxNm1mNF9mMTYob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWY0X2YxNigodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2Zm12X3NfZl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2Zm12X3NfZl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmbXZfc19mX2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZtdl9zX2ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92Zm12X3NfZl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZXVwX3Z4X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGV1cF92eF9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRldXBfdnhfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzbGlkZWRvd25fdnhfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c2xpZGVkb3duX3Z4X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNsaWRlZG93bl92eF9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxdXBfdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMXVwX3ZmX2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZzbGlkZTF1cF92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YxNm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZnNsaWRlMWRvd25fdmZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZzbGlkZTFkb3duX3ZmX2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmc2xpZGUxZG93bl92Zl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z2X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92dl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcl92eF9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJfdnhfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04X20oKHZib29sMl90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyX3Z4X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZyZ2F0aGVyZWkxNl92dl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2cmdhdGhlcmVpMTZfdnZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTEoKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm0yKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm00KCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm04KCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Y29tcHJlc3Nfdm1fZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjIoKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZjb21wcmVzc192bV9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm1mNCgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnN1eGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3V4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTJfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTJfZjE2bTEoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTRfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTRfZjE2bTEoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTEoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bTRfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bTRfZjE2bTIoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTIoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Z2V0X3ZfZjE2bThfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Z2V0X3ZfZjE2bThfZjE2bTQoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2c2V0X3ZfZjE2bTFfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMTZtMV9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YxNm0xX2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YxNm0yX2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjE2bTJfZjE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSkKI2RlZmluZSB2c2V0X3ZfZjE2bTFfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpKQojZGVmaW5lIHZzZXRfdl9mMTZtMl9mMTZtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNldF92X2YxNm0yX2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMikpCiNkZWZpbmUgdnNldF92X2YxNm00X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2V0X3ZfZjE2bTRfZjE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm04KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmZsb2F0MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm04KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHZmbG9hdDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNveGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c294ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCAqKShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm00KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90ICopKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmxlMTZmZl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtZjQoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QgKikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bGUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5lZ192X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuZWdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5lZ192X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmVnX3ZfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuZWdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtMSgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0yKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2bGUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxlMTZfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bTgoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjIoKGNvbnN0IF9GbG9hdDE2ICopKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmxlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bGUxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bGUxNl92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZsZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2c2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTgoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdnNlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZzZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2YxNm0xKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMigoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtNCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtOCgoY29uc3QgX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2bHNlMTZfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWYyKChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0KChjb25zdCBfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZsc2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmNsYXNzX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY2xhc3Nfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMSgodmludDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMigodmludDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm00KCh2aW50MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTgoKHZpbnQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZpbnQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3hfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeF92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm1mNCgodmludDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTEoKHZ1aW50MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTIoKHZ1aW50MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtNCgodnVpbnQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm04KCh2dWludDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2dWludDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mMigodnVpbnQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X2ZfeHVfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfZl94dV92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9mX3h1X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3hfZl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAodmludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94X2Zfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeF9mX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfcnR6X3h1X2Zfdl91MTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF9ydHpfeHVfZl92X3UxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZjdnRfeF9mX3ZfaTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2aW50MTZtOF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3hfZl92X2kxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94X2Zfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMSgodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZmN2dF94dV9mX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmY3Z0X3h1X2Zfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtZjQoKHZpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mMigodmludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94X3dfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTEoKHZpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0yKCh2aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeF93X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm00KCh2aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3hfd19mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm1mNCgodnVpbnQzMm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWYyKCh2dWludDMybTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl94dV93X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtMSgodnVpbnQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTIoKHZ1aW50MzJtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm0yX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfeHVfd19mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTQoKHZ1aW50MzJtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX3h1X3dfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjQoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTIoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3hfZl93X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94X2Zfd19pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00X20oKHZib29sMl90KShvcDApLCAodmludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bWY4KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mNCgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWYyKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3J0el94dV9mX3dfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0xX20oKHZib29sOF90KShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMigodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcnR6X3h1X2Zfd191OG00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtNCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9ydHpfeHVfZl93X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG00X20oKHZib29sMl90KShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaThtZjgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG1mNCgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeF9mX3dfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMigodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3hfZl93X2k4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtNCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94X2Zfd19pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2aW50OG00X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG1mOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjgoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0KCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG1mMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMSgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF94dV9mX3dfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG0yKCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3h1X2Zfd191OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG0yX20oKHZib29sNF90KShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTQoKHZmbG9hdDE2bThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfeHVfZl93X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTRfbSgodmJvb2wyX3QpKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyZWM3X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcmVjN192X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm1mNCgodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJlYzdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm04KCh2ZmxvYXQxNm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZnJzcXJ0N192X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmcnNxcnQ3X3ZfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZyc3FydDdfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMigodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtNCgodmZsb2F0MTZtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bTgob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtOCgodmZsb2F0MTZtOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bThfbSgodmJvb2wyX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQxNm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmc3FydF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZnNxcnRfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZzcXJ0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0KCh2aW50OG1mOF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyKCh2aW50OG1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtMShvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtMSgodmludDhtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTIoKHZpbnQ4bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00KCh2aW50OG0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOCgodmludDhtNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3hfdl9mMTZtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWY0KCh2dWludDhtZjhfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWYyKCh2dWludDhtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtMSgodnVpbnQ4bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTIoKHZ1aW50OG0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfeHVfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjE2bTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00KCh2dWludDhtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9mX3h1X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOCgodnVpbnQ4bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl94dV92X2YxNm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOF9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDE2bThfdCkob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeF9mX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfcnR6X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF9ydHpfeHVfZl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfcnR6X3h1X2Zfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtZjIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeF9mX3ZfaTMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtMigodmZsb2F0MTZtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94X2Zfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X3hfZl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAodmludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91MzJtMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmd2N2dF94dV9mX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X3h1X2Zfdl91MzJtOChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfeHVfZl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mMl9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjJfZjE2bTEoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMSgodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjRfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtZjIoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjJfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm0yKCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjRfZjE2bTIoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTQoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtMl9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMl9mMTZtNCgodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mMl9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjJfZjE2bTQoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtNCgodmZsb2F0MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtMV9mMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMV9mMTZtOCgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm0yX2YxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0yX2YxNm04KCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfZXh0X3ZfZjE2bTRfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTRfZjE2bTgoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF9leHRfdl9mMTZtZjJfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm04KCh2ZmxvYXQxNm1mMl90KShvcDApKQojZGVmaW5lIHZsbXVsX2V4dF92X2YxNm1mNF9mMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtZjRfZjE2bTgoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm0yX2YxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm1mMigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIoKHZmbG9hdDE2bThfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm0xX2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0xX2YxNm1mNCgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2bG11bF90cnVuY192X2YxNm04X2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm1mNCgodmZsb2F0MTZtOF90KShvcDApKQojZGVmaW5lIHZsbXVsX3RydW5jX3ZfZjE2bWYyX2YxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm1mMl9mMTZtZjQoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtMl9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm0xKCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0xKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm0xKCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0yKCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm0yKCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtNChvcDApIFwKX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm00KCh2ZmxvYXQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTFfZjE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfZjE2bTEoKHZpbnQxNm0xX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTJfZjE2bTIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfZjE2bTIoKHZpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQoKHZpbnQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bThfZjE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfZjE2bTgoKHZpbnQxNm04X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2YxNm1mMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjJfZjE2bWYyKCh2aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9pMTZtZjRfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mNF9mMTZtZjQoKHZpbnQxNm1mNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm0xX2YxNm0xKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX2YxNm0xKCh2dWludDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtMl9mMTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl9mMTZtMigodnVpbnQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQoKHZ1aW50MTZtNF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X3UxNm04X2YxNm04KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X2YxNm04KCh2dWludDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjJfZjE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mMl9mMTZtZjIoKHZ1aW50MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl91MTZtZjRfZjE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF9mMTZtZjQoKHZ1aW50MTZtZjRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtMV9pMTZtMShvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMV9pMTZtMSgodmZsb2F0MTZtMV90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm0yX2kxNm0yKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm0yX2kxNm0yKCh2ZmxvYXQxNm0yX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bTRfaTE2bTQob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTRfaTE2bTQoKHZmbG9hdDE2bTRfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtOF9pMTZtOChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtOF9pMTZtOCgodmZsb2F0MTZtOF90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm1mMl9pMTZtZjIob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bWYyX2kxNm1mMigodmZsb2F0MTZtZjJfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtZjRfaTE2bWY0KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF9pMTZtZjQoKHZmbG9hdDE2bWY0X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bTFfdTE2bTEob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTFfdTE2bTEoKHZmbG9hdDE2bTFfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMihvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMigodmZsb2F0MTZtMl90KShvcDApKQojZGVmaW5lIHZyZWludGVycHJldF92X2YxNm00X3UxNm00KG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm00X3UxNm00KCh2ZmxvYXQxNm00X3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bThfdTE2bTgob3AwKSBcCl9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bThfdTE2bTgoKHZmbG9hdDE2bThfdCkob3AwKSkKI2RlZmluZSB2cmVpbnRlcnByZXRfdl9mMTZtZjJfdTE2bWYyKG9wMCkgXApfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mMl91MTZtZjIoKHZmbG9hdDE2bWYyX3QpKG9wMCkpCiNkZWZpbmUgdnJlaW50ZXJwcmV0X3ZfZjE2bWY0X3UxNm1mNChvcDApIFwKX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtZjRfdTE2bWY0KCh2ZmxvYXQxNm1mNF90KShvcDApKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bTEoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtMSgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMTZtMigpIFwKX19idWlsdGluX3J2dl92dW5kZWZpbmVkX2YxNm0yKCkKI2RlZmluZSB2dW5kZWZpbmVkX2YxNm00KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjE2bTQoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bTgoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtOCgpCiNkZWZpbmUgdnVuZGVmaW5lZF9mMTZtZjIoKSBcCl9fYnVpbHRpbl9ydnZfdnVuZGVmaW5lZF9mMTZtZjIoKQojZGVmaW5lIHZ1bmRlZmluZWRfZjE2bWY0KCkgXApfX2J1aWx0aW5fcnZ2X3Z1bmRlZmluZWRfZjE2bWY0KCkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96ZmgpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0xKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMSgodmZsb2F0MTZtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3Z2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfdnZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtZjIoKHZmbG9hdDE2bWY0X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTIoKHZmbG9hdDE2bTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl92Zl9mMzJtOChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfdmZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2YzMm0yKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3d2X2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd3ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtZjIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtZjIoKHZmbG9hdDMybWYyX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd2FkZF93Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndhZGRfd2ZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3YWRkX3dmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQzMm04X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybTEob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3d2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndzdWJfd2ZfZjMybTIob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm00KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3c3ViX3dmX2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTgoKHZmbG9hdDMybThfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd3N1Yl93Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoX0Zsb2F0MTYpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm0xKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAoc2l6ZV90KShvcDIpKQojZGVmaW5lIHZmd211bF92dl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92dl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92dl9mMzJtNChvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm00KCh2ZmxvYXQxNm0yX3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXVsX3Z2X2YzMm04KG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTgoKHZmbG9hdDE2bTRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdnZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybWYyKG9wMCwgb3AxLCBvcDIpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybWYyKCh2ZmxvYXQxNm1mNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mMzJtMShvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0xKCh2ZmxvYXQxNm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKF9GbG9hdDE2KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd211bF92Zl9mMzJtMihvcDAsIG9wMSwgb3AyKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHNpemVfdCkob3AyKSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTQob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtNCgodmZsb2F0MTZtMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtdWxfdmZfZjMybTgob3AwLCBvcDEsIG9wMikgXApfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtOCgodmZsb2F0MTZtNF90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksIChzaXplX3QpKG9wMikpCiNkZWZpbmUgdmZ3bXVsX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChfRmxvYXQxNikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bWFjY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21hY2NfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bWFjY192Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndtYWNjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1hY2NfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1hY2NfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tYWNjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubWFjY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3Z2X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3Z2X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtMigodmZsb2F0MzJtMl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdnZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bXNhY192dl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTIoKHZmbG9hdDMybTJfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd21zYWNfdmZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00KCh2ZmxvYXQzMm00X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00X20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtNF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bXNhY192Zl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zndtc2FjX3ZmX2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm1mMigodmZsb2F0MzJtZjJfdCkob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3bm1zYWNfdnZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtNCgodmZsb2F0MzJtNF90KShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192dl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtOCgodmZsb2F0MzJtOF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3Z2X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192dl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybWYyKCh2ZmxvYXQzMm1mMl90KShvcDApLCAoX0Zsb2F0MTYpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHZmbG9hdDMybWYyX3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0yKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAoX0Zsb2F0MTYpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3bm1zYWNfdmZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTQoKHZmbG9hdDMybTRfdCkob3AwKSwgKF9GbG9hdDE2KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTRfdCkob3AxKSwgKF9GbG9hdDE2KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd25tc2FjX3ZmX2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm04KCh2ZmxvYXQzMm04X3QpKG9wMCksIChfRmxvYXQxNikob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndubXNhY192Zl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm04X3QpKG9wMSksIChfRmxvYXQxNikob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTFfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTFfZjMybTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTJfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMl9mMzJtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bTRfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm00X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTRfZjMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm04X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtOF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtOF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtOF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm04X2YzMm0xX20oKHZib29sMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtOF90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtZjJfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm1mMl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkc3VtX3ZzX2YxNm1mNF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWY0X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZHN1bV92c19mMTZtZjRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtZjRfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTFfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0xX2YzMm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTJfZjMybTEoKHZmbG9hdDMybTFfdCkob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20oKHZib29sOF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTFfbSgodmJvb2w0X3QpKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm04X2YzMm0xKCh2ZmxvYXQzMm0xX3QpKG9wMCksICh2ZmxvYXQxNm04X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtOF9mMzJtMV9tKCh2Ym9vbDJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bThfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mMl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjJfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMSgodmZsb2F0MzJtMV90KShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndyZWRvc3VtX3ZzX2YxNm1mNF9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTFfbSgodmJvb2w2NF90KShvcDApLCAodmZsb2F0MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNCgodmZsb2F0MzJtZjJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mMigodmZsb2F0MzJtMV90KShvcDApLCAoc2l6ZV90KShvcDEpKQojZGVmaW5lIHZmbmN2dF9mX2Zfd19mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm0xKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTIoKHZmbG9hdDMybTRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfZl9mX3dfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm00KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00KCh2ZmxvYXQzMm04X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X2ZfZl93X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MTZtNF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bWY0KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjQoKHZmbG9hdDMybWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMihvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bWYyKCh2ZmxvYXQzMm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0xKCh2ZmxvYXQzMm0yX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZmbmN2dF9yb2RfZl9mX3dfZjE2bTIob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yKCh2ZmxvYXQzMm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNChvcDAsIG9wMSkgXApfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bTQoKHZmbG9hdDMybThfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2Zm5jdnRfcm9kX2ZfZl93X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybWYyKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm1mMigodmZsb2F0MTZtZjRfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTEob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTEoKHZmbG9hdDE2bWYyX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0yKG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yKCh2ZmxvYXQxNm0xX3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTQob3AwLCBvcDEpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTQoKHZmbG9hdDE2bTJfdCkob3AwKSwgKHNpemVfdCkob3AxKSkKI2RlZmluZSB2ZndjdnRfZl9mX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm04KG9wMCwgb3AxKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm04KCh2ZmxvYXQxNm00X3QpKG9wMCksIChzaXplX3QpKG9wMSkpCiNkZWZpbmUgdmZ3Y3Z0X2ZfZl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm04X20oKHZib29sNF90KShvcDApLCAodmZsb2F0MzJtOF90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfenZhbW8pCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaThfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTMyX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYWRkZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hZGRlaTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FkZGVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk4X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkxNl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWkzMl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3hvcmVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1veG9yZWk2NF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW94b3JlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaThfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTE2X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTMyX3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9hbmRlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb2FuZGVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vYW5kZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpOF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkxNl92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vb3JlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb29yZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9vcmVpNjRfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtOCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybThfbSgodmJvb2w0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpNjRfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk4X3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW5laTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkxNl92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW5laTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbmVpMzJfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTgoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWluZWk2NF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG04X20oKHZib29sOF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTgoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTRfbSgodmJvb2w4X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpOF92X2k2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4ZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMTZfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtOCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXhlaTMyX3ZfaTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bThfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG04KChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heGVpNjRfdl9pNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTgoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpOF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaThfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk4X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMTZfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTE2X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpMzJfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTMyX3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWludWVpNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21pbnVlaTY0X3ZfdTY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9taW51ZWk2NF92X3U2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtOCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm04X20oKHZib29sNF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodnVpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtNCgodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpOF92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTgoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaThfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtOF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTE2X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkxNl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMTZfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWkzMl92X3U2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG04KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpMzJfdl91NjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bThfbSgodmJvb2w4X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9tYXh1ZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vbWF4dWVpNjRfdl91NjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91NjRtOCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb21heHVlaTY0X3ZfdTY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG04X20oKHZib29sOF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2kzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04X20oKHZib29sNF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm04KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybThfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96dmFtbykKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjMybThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTgoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDMybThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mMzJtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybThfbSgodmJvb2w0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQzMm04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOCgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmZsb2F0MzJtOF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2YzMm04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOF9tKCh2Ym9vbDRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpICYmIGRlZmluZWQoX19yaXNjdl96dmFtbykKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWk4X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG04KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpOF92X2Y2NG04X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZhbW9zd2FwZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMTZfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZhbW9zd2FwZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bTgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTgoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQ2NG04X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmFtb3N3YXBlaTMyX3ZfZjY0bThfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG04X20oKHZib29sOF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDY0bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtOCgoZG91YmxlICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDY0bThfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2YW1vc3dhcGVpNjRfdl9mNjRtOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjY0bThfbSgodmJvb2w4X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKI2RlZmluZSB2bG94c2VnMmVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgaW50NjRfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAodmludDY0bTFfdCkob3AxNSksICh2aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IGludDY0X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksICh2dWludDY0bTFfdCkob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChjb25zdCB1aW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtNCgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAodmludDY0bTFfdCkob3AxNSksICh2aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IGludDY0X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTIoKGludDhfdCAqKShvcDApLCAodmludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodmludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodmludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2aW50MTZtNF90KShvcDEpLCAodmludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm00KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodmludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodmludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mMl90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTQoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodmludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMl90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodmludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodmludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodmludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnM2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2U2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc1ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtMSgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm00KChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc3ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2U2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc3ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTRfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksICh2dWludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2aW50OG0yX3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bThfdCkob3AxKSwgKHZpbnQ4bTRfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtOF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAodmludDhtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtOF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm04X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtNF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMigoaW50OF90ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bTIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0yX20oKHZib29sNF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50OG1mNF90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksICh2aW50OG1mNF90KShvcDUpLCAodmludDhtZjRfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjIoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bTEoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMigoaW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQ4bWYyX3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjgoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjhfbSgodmJvb2w2NF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xX20oKHZib29sOF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pOG1mNCgoaW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjhfbSgodmJvb2w2NF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG0xKCh1aW50OF90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U4bWYyX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U4bWY0KCh1aW50OF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtZjgoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00X20oKHZib29sNF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZ1aW50MTZtNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTRfbSgodmJvb2w0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm0yX20oKHZib29sOF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2aW50MTZtNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtOF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtOF90KShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm0yKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZpbnQxNm0yX3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm0yX20oKHZib29sOF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2aW50MTZtMl90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bWYyKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTEoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmludDE2bTFfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDE2bWYyX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjQoKGludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDE2bWY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTJfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTIoKGludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmludDE2bTJfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0yKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2aW50MTZtMl90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm0xKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQxNm0xX3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mNCgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKGludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UxNm0xKCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWY0KCh1aW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWYyKChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQxNm1mMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWY0KChpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQxNm1mNF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtMSgodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm1mMigodWludDE2X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMSgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2aW50MTZtMV90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQxNl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mMigoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MTZtZjJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MTZtZjJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mNCgoaW50MTZfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MTZtZjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoaW50MTZfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTEoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTFfbSgodmJvb2wxNl90KShvcDApLCAodWludDE2X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjIoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjQoKHVpbnQxNl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQxNl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmludDMybTRfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm00KCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm00X20oKHZib29sOF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybWYyKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNCgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0yKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybTJfbSgodmJvb2wxNl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtMSgodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm00KChpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZpbnQzMm00X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm00X20oKHZib29sOF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2aW50MzJtNF90KShvcDMpLCAodmludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0xKCh1aW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTQoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTRfbSgodmJvb2w4X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHZ1aW50MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDMybTJfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTJfbSgodmJvb2wxNl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTMybTIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZpbnQzMm0yX3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybWYyKChpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQzMm1mMl90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTFfbSgodmJvb2wzMl90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtZjIoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDMybWYyX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2kzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm1mMigodWludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3UzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTMybTEoKGludDMyX3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmludDMybTFfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMSgoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50MzJtMV90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQzMl90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm1mMigoaW50MzJfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50MzJtZjJfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoaW50MzJfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTEoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTFfbSgodmJvb2wzMl90KShvcDApLCAodWludDMyX3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtZjIoKHVpbnQzMl90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQzMl90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG00KChpbnQ2NF90ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2k2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtNCgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNCgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2aW50NjRtNF90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTIoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00KCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00X20oKHZib29sMTZfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0yKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTIoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTQoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmludDY0bTRfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTQoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTRfbSgodmJvb2wxNl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0yKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZpbnQ2NG0yX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTJfbSgodmJvb2wzMl90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMigoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2aW50NjRtMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksICh1aW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMigodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTY0bTEoKGludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoaW50NjRfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91NjRtMSgodWludDY0X3QgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k2NG0xKChpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZpbnQ2NG0xX3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U2NG0xKCh1aW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMSgoaW50NjRfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2aW50NjRtMV90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ2NF90ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTEoKHVpbnQ2NF90ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTFfbSgodmJvb2w2NF90KShvcDApLCAodWludDY0X3QgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtNF9tKCh2dWludDhtNF90ICopKG9wMCksICh2dWludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksICh2dWludDhtNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2U4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKHZpbnQ4bTJfdCkob3A3KSwgKHZpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc2ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtNF9tKCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQxNm00X3QpKG9wMyksICh2aW50MTZtNF90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzdlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzdlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGUxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMzJfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtNCgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNWUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnOGUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG00X20oKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ2NG00X3QpKG9wMyksICh2aW50NjRtNF90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U2NF92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKHZpbnQ2NG0yX3QpKG9wNyksICh2aW50NjRtMl90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzRlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNWU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksIChjb25zdCBpbnQ2NF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzZlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksIChjb25zdCBpbnQ2NF90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAoc2l6ZV90KShvcDE0KSkKI2RlZmluZSB2bHNlZzZlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDY0X3QgKikob3AxMyksIChzaXplX3QpKG9wMTQpKQojZGVmaW5lIHZsc2VnN2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzdlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnOGU2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlOGZmX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZThmZl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAodmludDhtMl90KShvcDcpLCAodmludDhtMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU4ZmZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlOGZmX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZThmZl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmU4ZmZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZThmZl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2U4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAodmludDhtZjhfdCkob3AxNSksICh2aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZ1aW50OG1mMl90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlOGZmX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU4ZmZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDE2bTFfdCkob3AzKSwgKHZpbnQxNm0xX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTQoKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtNCgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAoc2l6ZV90ICopKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTE2ZmZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtNCgodmludDhtNF90ICopKG9wMCksICh2aW50OG00X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtNCgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG00X20oKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKHZib29sMl90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHZ1aW50OG00X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZThmZl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU4ZmZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlOGZmX3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHNpemVfdCAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHZ1aW50MzJtMV90KShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzhlMzJmZl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ2NG0yX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmU2NGZmX3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2U2NGZmX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlNjRmZl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTY0ZmZfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc1ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NGZmX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTQoKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZThfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlNjRmZl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmU2NGZmX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlNjRmZl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlNjRmZl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0ZmZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlNjRmZl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTY0ZmZfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtNCgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnM2U4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMSgoaW50OF90ICopKG9wMCksICh2aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bTFfbSgodmJvb2w4X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bTQoKGludDhfdCAqKShvcDApLCAodmludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWYyKChpbnQ4X3QgKikob3AwKSwgKHZpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAodmludDhtZjRfdCkob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2aW50OG1mOF90KShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodmludDhtZjhfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksICh2dWludDhtMV90KShvcDE1KSwgKHZ1aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGU4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MTZtZjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl91MTZtNCgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm00X20oKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQxNm1mMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksICh2aW50MTZtMl90KShvcDcpLCAodmludDE2bTJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdnNzZWcyZThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtMSgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTFfbSgodmJvb2w4X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksICh2dWludDhtMl90KShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtMl9tKCh2Ym9vbDRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG00X3QpKG9wMSksICh2dWludDhtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWYyKCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjJfbSgodmJvb2wxNl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mNF9tKCh2Ym9vbDMyX3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mOCgodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKHZpbnQxNm1mNF90KShvcDE1KSwgKHZpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfdTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfdTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNmUzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTQoKHZpbnQ2NG00X3QgKikob3AwKSwgKHZpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfaTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtNF9tKCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50NjRtMV90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU2NF92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU2NF92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnM2U2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGU2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU2NF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksIChjb25zdCBpbnQ2NF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2U2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDY0X3QgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGU2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksIChjb25zdCB1aW50NjRfdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDhtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQxNm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKHZpbnQ4bTFfdCkob3AxMyksICh2aW50OG0xX3QpKG9wMTQpLCAodmludDhtMV90KShvcDE1KSwgKHZpbnQ4bTFfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDMybThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAodnVpbnQ4bTJfdCkob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MzJtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQzMm00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2Ym9vbDhfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAodnVpbnQ4bTFfdCkob3AxMyksICh2dWludDhtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDMybTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksICh2dWludDhtZjhfdCkob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG04X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bThfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG04X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG04X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bThfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG04X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG04X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDY0bTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKHZpbnQ4bWYyX3QpKG9wMTUpLCAodmludDhtZjJfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bThfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTQoKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksICh2dWludDE2bWY0X3QpKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTEoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtMV90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG0yKChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTJfbSgodmJvb2w0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtNCgoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00X20oKHZib29sMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mMigoaW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjQoKGludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjRfbSgodmJvb2wzMl90KShvcDApLCAoaW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4KChpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yKCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNCgodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG00X20oKHZib29sMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHZ1aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksICh2aW50MzJtMl90KShvcDcpLCAodmludDMybTJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0xKChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2aW50OG0xX3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtMV9tKCh2Ym9vbDhfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZpbnQ4bTJfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0yX20oKHZib29sNF90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtNCgoaW50OF90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodmludDhtNF90KShvcDIpLCAodmludDhtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTRfbSgodmJvb2wyX3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjIoKGludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2aW50OG1mMl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjJfbSgodmJvb2wxNl90KShvcDApLCAoaW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZpbnQ4bWYyX3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY0KChpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmludDhtZjRfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY0X20oKHZib29sMzJfdCkob3AwKSwgKGludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mOCgoaW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZpbnQ4bWY4X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mOF9tKCh2Ym9vbDY0X3QpKG9wMCksIChpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAodnVpbnQzMm0xX3QpKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTEoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG0xX20oKHZib29sOF90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTJfbSgodmJvb2w0X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtMl90KShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG00KCh1aW50OF90ICopKG9wMCksICh2dWludDhtNF90KShvcDEpLCAodnVpbnQ4bTRfdCkob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtNF9tKCh2Ym9vbDJfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG00X3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mMigodWludDhfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mMl9tKCh2Ym9vbDE2X3QpKG9wMCksICh1aW50OF90ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjQoKHVpbnQ4X3QgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjRfbSgodmJvb2wzMl90KShvcDApLCAodWludDhfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWY4KCh1aW50OF90ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWY4X20oKHZib29sNjRfdCkob3AwKSwgKHVpbnQ4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm00KCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksICh2aW50MzJtMV90KShvcDE1KSwgKHZpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKHZpbnQzMm1mMl90KShvcDE1KSwgKHZpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAodnVpbnQzMm1mMl90KShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ2NG0xX3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2k2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNCgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNF9tKCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50NjRtNF90KShvcDMpLCAodmludDY0bTRfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91NjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgaW50NjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50NjRtMl90KShvcDMpLCAodmludDY0bTJfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTQoKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X3U2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtNF9tKCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50NjRtMV90KShvcDQpLCAodmludDY0bTFfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksIChjb25zdCB1aW50NjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl91NjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgdWludDY0X3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IGludDY0X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksIChjb25zdCBpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChjb25zdCB1aW50NjRfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksIChjb25zdCBpbnQ2NF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKHZ1aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHZ1aW50NjRtMV90KShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAoY29uc3QgaW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50NjRtMV90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKGNvbnN0IGludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0yX20oKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG00KCh2dWludDY0bTRfdCAqKShvcDApLCAodnVpbnQ2NG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl91NjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTRfbSgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMigodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgaW50NjRfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfaTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMl9tKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50NjRtMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksIChjb25zdCBpbnQ2NF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50NjRtMV90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAoY29uc3QgaW50NjRfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTIoKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2k2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmludDY0bTJfdCAqKShvcDIpLCAodmludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDY0bTJfdCkob3A1KSwgKHZpbnQ2NG0yX3QpKG9wNiksICh2aW50NjRtMl90KShvcDcpLCAodmludDY0bTJfdCkob3A4KSwgKGNvbnN0IGludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U2NG0yKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgaW50NjRfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDY0bTFfdCkob3A2KSwgKHZpbnQ2NG0xX3QpKG9wNyksICh2aW50NjRtMV90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAoY29uc3QgaW50NjRfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChjb25zdCB1aW50NjRfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgaW50NjRfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDY0X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IGludDY0X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2dWludDY0bTFfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKHZpbnQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGludDY0X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfaTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pNjRtMV9tKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksICh2aW50NjRtMV90ICopKG9wNSksICh2aW50NjRtMV90ICopKG9wNiksICh2aW50NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAodmludDY0bTFfdCkob3AxMyksICh2aW50NjRtMV90KShvcDE0KSwgKHZpbnQ2NG0xX3QpKG9wMTUpLCAodmludDY0bTFfdCkob3AxNiksIChjb25zdCBpbnQ2NF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAodnVpbnQ2NG0xX3QpKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAodnVpbnQ2NG0xX3QpKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAodnVpbnQ2NG0xX3QpKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgdWludDY0X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDY0bTFfdCkob3AzKSwgKHZpbnQ2NG0xX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTJfbSgodmludDY0bTJfdCAqKShvcDApLCAodmludDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDY0bTJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG00KCh2aW50NjRtNF90ICopKG9wMCksICh2aW50NjRtNF90ICopKG9wMSksIChjb25zdCBpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9pNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTY0bTRfbSgodmludDY0bTRfdCAqKShvcDApLCAodmludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDY0bTRfdCkob3AzKSwgKHZpbnQ2NG00X3QpKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91NjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDY0X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChjb25zdCB1aW50NjRfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtNCgodnVpbnQ2NG00X3QgKikob3AwKSwgKHZ1aW50NjRtNF90ICopKG9wMSksIChjb25zdCB1aW50NjRfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfdTY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG00X20oKHZ1aW50NjRtNF90ICopKG9wMCksICh2dWludDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDY0bTFfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAoY29uc3QgaW50NjRfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfaTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksIChjb25zdCBpbnQ2NF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQ2NG0yX3QpKG9wNCksICh2aW50NjRtMl90KShvcDUpLCAodmludDY0bTJfdCkob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMigodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDY0X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X3U2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTJfbSgodnVpbnQ2NG0yX3QgKikob3AwKSwgKHZ1aW50NjRtMl90ICopKG9wMSksICh2dWludDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoY29uc3QgdWludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ2NG0xX3QpKG9wNSksICh2aW50NjRtMV90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2k2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yKCh2aW50NjRtMl90ICopKG9wMCksICh2aW50NjRtMl90ICopKG9wMSksICh2aW50NjRtMl90ICopKG9wMiksICh2aW50NjRtMl90ICopKG9wMyksIChjb25zdCBpbnQ2NF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9pNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yX20oKHZpbnQ2NG0yX3QgKikob3AwKSwgKHZpbnQ2NG0yX3QgKikob3AxKSwgKHZpbnQ2NG0yX3QgKikob3AyKSwgKHZpbnQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ2NG0yX3QpKG9wNSksICh2aW50NjRtMl90KShvcDYpLCAodmludDY0bTJfdCkob3A3KSwgKHZpbnQ2NG0yX3QpKG9wOCksIChjb25zdCBpbnQ2NF90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDY0X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoY29uc3QgdWludDY0X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTY0bTIoKHZ1aW50NjRtMl90ICopKG9wMCksICh2dWludDY0bTJfdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QgKikob3AyKSwgKHZ1aW50NjRtMl90ICopKG9wMyksIChjb25zdCB1aW50NjRfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfdTY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMl9tKCh2dWludDY0bTJfdCAqKShvcDApLCAodnVpbnQ2NG0yX3QgKikob3AxKSwgKHZ1aW50NjRtMl90ICopKG9wMiksICh2dWludDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChjb25zdCB1aW50NjRfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k2NG0xKCh2aW50NjRtMV90ICopKG9wMCksICh2aW50NjRtMV90ICopKG9wMSksICh2aW50NjRtMV90ICopKG9wMiksICh2aW50NjRtMV90ICopKG9wMyksICh2aW50NjRtMV90ICopKG9wNCksIChjb25zdCBpbnQ2NF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9pNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k2NG0xX20oKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ2NG0xX3QpKG9wNiksICh2aW50NjRtMV90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IGludDY0X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAoY29uc3QgdWludDY0X3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X3U2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTFfbSgodnVpbnQ2NG0xX3QgKikob3AwKSwgKHZ1aW50NjRtMV90ICopKG9wMSksICh2dWludDY0bTFfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QgKikob3AzKSwgKHZ1aW50NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKGNvbnN0IGludDY0X3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDY0bTFfdCkob3A3KSwgKHZpbnQ2NG0xX3QpKG9wOCksICh2aW50NjRtMV90KShvcDkpLCAodmludDY0bTFfdCkob3AxMCksICh2aW50NjRtMV90KShvcDExKSwgKHZpbnQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgaW50NjRfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U2NG0xKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksIChjb25zdCB1aW50NjRfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChjb25zdCB1aW50NjRfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfaTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTY0bTEoKHZpbnQ2NG0xX3QgKikob3AwKSwgKHZpbnQ2NG0xX3QgKikob3AxKSwgKHZpbnQ2NG0xX3QgKikob3AyKSwgKHZpbnQ2NG0xX3QgKikob3AzKSwgKHZpbnQ2NG0xX3QgKikob3A0KSwgKHZpbnQ2NG0xX3QgKikob3A1KSwgKHZpbnQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGludDY0X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDY0bTFfdCkob3A4KSwgKHZpbnQ2NG0xX3QpKG9wOSksICh2aW50NjRtMV90KShvcDEwKSwgKHZpbnQ2NG0xX3QpKG9wMTEpLCAodmludDY0bTFfdCkob3AxMiksICh2aW50NjRtMV90KShvcDEzKSwgKHZpbnQ2NG0xX3QpKG9wMTQpLCAoY29uc3QgaW50NjRfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksIChjb25zdCB1aW50NjRfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfdTY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMV9tKCh2dWludDY0bTFfdCAqKShvcDApLCAodnVpbnQ2NG0xX3QgKikob3AxKSwgKHZ1aW50NjRtMV90ICopKG9wMiksICh2dWludDY0bTFfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QgKikob3A0KSwgKHZ1aW50NjRtMV90ICopKG9wNSksICh2dWludDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHZ1aW50NjRtMV90KShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHZ1aW50NjRtMV90KShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ2NF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9pNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pNjRtMSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgaW50NjRfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2k2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTY0bTFfbSgodmludDY0bTFfdCAqKShvcDApLCAodmludDY0bTFfdCAqKShvcDEpLCAodmludDY0bTFfdCAqKShvcDIpLCAodmludDY0bTFfdCAqKShvcDMpLCAodmludDY0bTFfdCAqKShvcDQpLCAodmludDY0bTFfdCAqKShvcDUpLCAodmludDY0bTFfdCAqKShvcDYpLCAodmludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDY0bTFfdCkob3A5KSwgKHZpbnQ2NG0xX3QpKG9wMTApLCAodmludDY0bTFfdCkob3AxMSksICh2aW50NjRtMV90KShvcDEyKSwgKHZpbnQ2NG0xX3QpKG9wMTMpLCAodmludDY0bTFfdCkob3AxNCksICh2aW50NjRtMV90KShvcDE1KSwgKHZpbnQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgaW50NjRfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfdTY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTY0bTEoKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDY0X3QgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl91NjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U2NG0xX20oKHZ1aW50NjRtMV90ICopKG9wMCksICh2dWludDY0bTFfdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QgKikob3AyKSwgKHZ1aW50NjRtMV90ICopKG9wMyksICh2dWludDY0bTFfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QgKikob3A1KSwgKHZ1aW50NjRtMV90ICopKG9wNiksICh2dWludDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksICh2dWludDY0bTFfdCkob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksICh2dWludDY0bTFfdCkob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksICh2dWludDY0bTFfdCkob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChjb25zdCB1aW50NjRfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQ4bTFfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDhtMl90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNCgodmludDhtNF90ICopKG9wMCksICh2aW50OG00X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2k4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNF9tKCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2aW50OG00X3QpKG9wMyksICh2aW50OG00X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksICh2aW50OG0xX3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTIoKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTJfbSgodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodmJvb2w0X3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksICh2dWludDhtMV90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodnVpbnQ4bTJfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHZ1aW50OG0yX3QpKG9wNyksICh2dWludDhtMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ4bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDhtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAodnVpbnQ4bWYyX3QpKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAodnVpbnQ4bWY4X3QpKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50OG0yX3QpKG9wMyksICh2aW50OG0yX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG00KCh2aW50OG00X3QgKikob3AwKSwgKHZpbnQ4bTRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG00X20oKHZpbnQ4bTRfdCAqKShvcDApLCAodmludDhtNF90ICopKG9wMSksICh2Ym9vbDJfdCkob3AyKSwgKHZpbnQ4bTRfdCkob3AzKSwgKHZpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50OG1mNF90KShvcDMpLCAodmludDhtZjRfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50OG1mOF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtMigodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksICh2dWludDhtMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bTQoKHZ1aW50OG00X3QgKikob3AwKSwgKHZ1aW50OG00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MTZtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bTRfbSgodnVpbnQ4bTRfdCAqKShvcDApLCAodnVpbnQ4bTRfdCAqKShvcDEpLCAodmJvb2wyX3QpKG9wMiksICh2dWludDhtNF90KShvcDMpLCAodnVpbnQ4bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodmludDhtMl90KShvcDQpLCAodmludDhtMl90KShvcDUpLCAodmludDhtMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50OG1mMl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDhtZjhfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZ1aW50OG0yX3QpKG9wNCksICh2dWludDhtMl90KShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQ4bWY4X3QpKG9wNSksICh2aW50OG1mOF90KShvcDYpLCAodmludDhtZjhfdCkob3A3KSwgKHZpbnQ4bWY4X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZ1aW50OG0yX3QgKikob3AzKSwgKHZib29sNF90KShvcDQpLCAodnVpbnQ4bTJfdCkob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksICh2dWludDhtMl90KShvcDcpLCAodnVpbnQ4bTJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmJvb2w4X3QpKG9wNSksICh2aW50OG0xX3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQxNm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2aW50OG0xX3QpKG9wNyksICh2aW50OG0xX3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKHZpbnQ4bWY0X3QpKG9wMTMpLCAodmludDhtZjRfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAodnVpbnQ4bWYyX3QpKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZ1aW50OG1mNF90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAodnVpbnQ4bWY4X3QpKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAodnVpbnQ4bWY4X3QpKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgdWludDhfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKHZpbnQ4bTFfdCkob3AxMyksICh2aW50OG0xX3QpKG9wMTQpLCAodmludDhtMV90KShvcDE1KSwgKHZpbnQ4bTFfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAodmludDhtZjJfdCkob3AxNSksICh2aW50OG1mMl90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHZ1aW50OG1mNF90KShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2aW50OG0xX3QpKG9wMyksICh2aW50OG0xX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0yKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZpbnQ4bTJfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDhtZjJfdCkob3AzKSwgKHZpbnQ4bWYyX3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQ4bWY0X3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDhtZjhfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bTJfbSgodnVpbnQ4bTJfdCAqKShvcDApLCAodnVpbnQ4bTJfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2dWludDhtMl90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjQoKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMl9tKCh2aW50OG0yX3QgKikob3AwKSwgKHZpbnQ4bTJfdCAqKShvcDEpLCAodmludDhtMl90ICopKG9wMiksICh2Ym9vbDRfdCkob3AzKSwgKHZpbnQ4bTJfdCkob3A0KSwgKHZpbnQ4bTJfdCkob3A1KSwgKHZpbnQ4bTJfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAodmludDhtZjhfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bTIoKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0yX20oKHZ1aW50OG0yX3QgKikob3AwKSwgKHZ1aW50OG0yX3QgKikob3AxKSwgKHZ1aW50OG0yX3QgKikob3AyKSwgKHZib29sNF90KShvcDMpLCAodnVpbnQ4bTJfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMigodmludDhtMl90ICopKG9wMCksICh2aW50OG0yX3QgKikob3AxKSwgKHZpbnQ4bTJfdCAqKShvcDIpLCAodmludDhtMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG0yX20oKHZpbnQ4bTJfdCAqKShvcDApLCAodmludDhtMl90ICopKG9wMSksICh2aW50OG0yX3QgKikob3AyKSwgKHZpbnQ4bTJfdCAqKShvcDMpLCAodmJvb2w0X3QpKG9wNCksICh2aW50OG0yX3QpKG9wNSksICh2aW50OG0yX3QpKG9wNiksICh2aW50OG0yX3QpKG9wNyksICh2aW50OG0yX3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50OG1mMl90KShvcDUpLCAodmludDhtZjJfdCkob3A2KSwgKHZpbnQ4bWYyX3QpKG9wNyksICh2aW50OG1mMl90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2k4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pOG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG0yKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksIChjb25zdCB1aW50OF90ICopKG9wNCksICh2dWludDMybThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91OG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMl9tKCh2dWludDhtMl90ICopKG9wMCksICh2dWludDhtMl90ICopKG9wMSksICh2dWludDhtMl90ICopKG9wMiksICh2dWludDhtMl90ICopKG9wMyksICh2Ym9vbDRfdCkob3A0KSwgKHZ1aW50OG0yX3QpKG9wNSksICh2dWludDhtMl90KShvcDYpLCAodnVpbnQ4bTJfdCkob3A3KSwgKHZ1aW50OG0yX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChjb25zdCB1aW50OF90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2Ym9vbDhfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksIChjb25zdCBpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgaW50OF90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50MzJtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xX20oKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQzMm00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQ4bWY0X3QpKG9wNyksICh2aW50OG1mNF90KShvcDgpLCAodmludDhtZjRfdCkob3A5KSwgKHZpbnQ4bWY0X3QpKG9wMTApLCAodmludDhtZjRfdCkob3AxMSksICh2aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZib29sOF90KShvcDYpLCAodnVpbnQ4bTFfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50MzJtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKHZpbnQ4bWY4X3QpKG9wMTEpLCAodmludDhtZjhfdCkob3AxMiksICh2aW50OG1mOF90KShvcDEzKSwgKHZpbnQ4bWY4X3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG0xKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2Ym9vbDhfdCkob3A3KSwgKHZ1aW50OG0xX3QpKG9wOCksICh2dWludDhtMV90KShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksICh2dWludDhtMV90KShvcDExKSwgKHZ1aW50OG0xX3QpKG9wMTIpLCAodnVpbnQ4bTFfdCkob3AxMyksICh2dWludDhtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mMl9tKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHZ1aW50OG1mMl90KShvcDExKSwgKHZ1aW50OG1mMl90KShvcDEyKSwgKHZ1aW50OG1mMl90KShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHZ1aW50OG1mNF90KShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4KCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2dWludDhtZjhfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG0xKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAodmludDhtMV90ICopKG9wNiksICh2aW50OG0xX3QgKikob3A3KSwgKHZib29sOF90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksICh2aW50OG0xX3QpKG9wMTUpLCAodmludDhtMV90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjIoKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZpbnQ4bWYyX3QgKikob3A1KSwgKHZpbnQ4bWYyX3QgKikob3A2KSwgKHZpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDhtZjJfdCkob3A5KSwgKHZpbnQ4bWYyX3QpKG9wMTApLCAodmludDhtZjJfdCkob3AxMSksICh2aW50OG1mMl90KShvcDEyKSwgKHZpbnQ4bWYyX3QpKG9wMTMpLCAodmludDhtZjJfdCkob3AxNCksICh2aW50OG1mMl90KShvcDE1KSwgKHZpbnQ4bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAodmludDhtZjRfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKHZpbnQ4bWY0X3QpKG9wMTUpLCAodmludDhtZjRfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY4KCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50OG1mOF90KShvcDkpLCAodmludDhtZjhfdCkob3AxMCksICh2aW50OG1mOF90KShvcDExKSwgKHZpbnQ4bWY4X3QpKG9wMTIpLCAodmludDhtZjhfdCkob3AxMyksICh2aW50OG1mOF90KShvcDE0KSwgKHZpbnQ4bWY4X3QpKG9wMTUpLCAodmludDhtZjhfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDMybTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWY4X20oKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksICh2dWludDhtZjhfdCkob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDhtMV90KShvcDMpLCAodmludDhtMV90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksIChjb25zdCBpbnQ4X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50OG1mMl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjRfbSgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDhtZjRfdCkob3AzKSwgKHZpbnQ4bWY0X3QpKG9wNCksIChjb25zdCBpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKGNvbnN0IGludDhfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQ4bWY4X3QpKG9wMyksICh2aW50OG1mOF90KShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAoY29uc3QgdWludDhfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksIChjb25zdCB1aW50OF90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91OG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZpbnQ4bTFfdCkob3A0KSwgKHZpbnQ4bTFfdCkob3A1KSwgKHZpbnQ4bTFfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksIChjb25zdCBpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDhtZjJfdCkob3A0KSwgKHZpbnQ4bWYyX3QpKG9wNSksICh2aW50OG1mMl90KShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50OG1mNF90KShvcDQpLCAodmludDhtZjRfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgaW50OF90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQ4bWY4X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDhtMV90KShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksIChjb25zdCB1aW50OF90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAoY29uc3QgdWludDhfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChjb25zdCB1aW50OF90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmludDhtMV90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksIChjb25zdCBpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDhtZjJfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKGNvbnN0IGludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50OF90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQ4bWY0X3QpKG9wNSksICh2aW50OG1mNF90KShvcDYpLCAodmludDhtZjRfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksIChjb25zdCBpbnQ4X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IGludDhfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50OG1mOF90KShvcDUpLCAodmludDhtZjhfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAoY29uc3QgaW50OF90ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDhfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2dWludDhtMV90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG04X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKGNvbnN0IHVpbnQ4X3QgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoY29uc3QgdWludDhfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IGludDhfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bTFfbSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodmludDhtMV90KShvcDYpLCAodmludDhtMV90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyX20oKHZpbnQ4bWYyX3QgKikob3AwKSwgKHZpbnQ4bWYyX3QgKikob3AxKSwgKHZpbnQ4bWYyX3QgKikob3AyKSwgKHZpbnQ4bWYyX3QgKikob3AzKSwgKHZpbnQ4bWYyX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQ4bWYyX3QpKG9wNiksICh2aW50OG1mMl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQ4bWY0X3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgaW50OF90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQ4bWY4X3QpKG9wNiksICh2aW50OG1mOF90KShvcDcpLCAodmludDhtZjhfdCkob3A4KSwgKHZpbnQ4bWY4X3QpKG9wOSksICh2aW50OG1mOF90KShvcDEwKSwgKGNvbnN0IGludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG0xX20oKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZib29sOF90KShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHZ1aW50OG0xX3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksIChjb25zdCB1aW50OF90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChjb25zdCB1aW50OF90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAoY29uc3QgdWludDhfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoY29uc3QgdWludDhfdCAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtMSgodmludDhtMV90ICopKG9wMCksICh2aW50OG0xX3QgKikob3AxKSwgKHZpbnQ4bTFfdCAqKShvcDIpLCAodmludDhtMV90ICopKG9wMyksICh2aW50OG0xX3QgKikob3A0KSwgKHZpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bThfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2Ym9vbDhfdCkob3A2KSwgKHZpbnQ4bTFfdCkob3A3KSwgKHZpbnQ4bTFfdCkob3A4KSwgKHZpbnQ4bTFfdCkob3A5KSwgKHZpbnQ4bTFfdCkob3AxMCksICh2aW50OG0xX3QpKG9wMTEpLCAodmludDhtMV90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksIChjb25zdCBpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmludDhtZjJfdCkob3A3KSwgKHZpbnQ4bWYyX3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgaW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjQoKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mNF9tKCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50OG1mNF90KShvcDcpLCAodmludDhtZjRfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksIChjb25zdCBpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2k4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOCgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgaW50OF90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pOG1mOF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWY4X20oKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQ4bWY4X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKGNvbnN0IGludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG04X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodmJvb2w4X3QpKG9wNiksICh2dWludDhtMV90KShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG04X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjIoKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A2KSwgKHZ1aW50NjRtNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodnVpbnQ4bWYyX3QpKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAodnVpbnQ4bWYyX3QpKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDhfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0KCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksIChjb25zdCB1aW50OF90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91OG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0X20oKHZ1aW50OG1mNF90ICopKG9wMCksICh2dWludDhtZjRfdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QgKikob3AyKSwgKHZ1aW50OG1mNF90ICopKG9wMyksICh2dWludDhtZjRfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHZ1aW50OG1mNF90KShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3U4bWY4KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAoY29uc3QgdWludDhfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOF9tKCh2dWludDhtZjhfdCAqKShvcDApLCAodnVpbnQ4bWY4X3QgKikob3AxKSwgKHZ1aW50OG1mOF90ICopKG9wMiksICh2dWludDhtZjhfdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QgKikob3A0KSwgKHZ1aW50OG1mOF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChjb25zdCB1aW50OF90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZib29sOF90KShvcDcpLCAodmludDhtMV90KShvcDgpLCAodmludDhtMV90KShvcDkpLCAodmludDhtMV90KShvcDEwKSwgKHZpbnQ4bTFfdCkob3AxMSksICh2aW50OG0xX3QpKG9wMTIpLCAodmludDhtMV90KShvcDEzKSwgKHZpbnQ4bTFfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bThfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksIChjb25zdCBpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2k4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjJfbSgodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDhtZjJfdCkob3A4KSwgKHZpbnQ4bWYyX3QpKG9wOSksICh2aW50OG1mMl90KShvcDEwKSwgKHZpbnQ4bWYyX3QpKG9wMTEpLCAodmludDhtZjJfdCkob3AxMiksICh2aW50OG1mMl90KShvcDEzKSwgKHZpbnQ4bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mNCgodmludDhtZjRfdCAqKShvcDApLCAodmludDhtZjRfdCAqKShvcDEpLCAodmludDhtZjRfdCAqKShvcDIpLCAodmludDhtZjRfdCAqKShvcDMpLCAodmludDhtZjRfdCAqKShvcDQpLCAodmludDhtZjRfdCAqKShvcDUpLCAodmludDhtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50OF90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQ4bWY0X3QpKG9wOCksICh2aW50OG1mNF90KShvcDkpLCAodmludDhtZjRfdCkob3AxMCksICh2aW50OG1mNF90KShvcDExKSwgKHZpbnQ4bWY0X3QpKG9wMTIpLCAodmludDhtZjRfdCkob3AxMyksICh2aW50OG1mNF90KShvcDE0KSwgKGNvbnN0IGludDhfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IGludDhfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaThtZjhfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOF9tKCh2aW50OG1mOF90ICopKG9wMCksICh2aW50OG1mOF90ICopKG9wMSksICh2aW50OG1mOF90ICopKG9wMiksICh2aW50OG1mOF90ICopKG9wMyksICh2aW50OG1mOF90ICopKG9wNCksICh2aW50OG1mOF90ICopKG9wNSksICh2aW50OG1mOF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50OG1mOF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksIChjb25zdCBpbnQ4X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtMSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDhfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdThtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTFfbSgodnVpbnQ4bTFfdCAqKShvcDApLCAodnVpbnQ4bTFfdCAqKShvcDEpLCAodnVpbnQ4bTFfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCAqKShvcDMpLCAodnVpbnQ4bTFfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCAqKShvcDYpLCAodmJvb2w4X3QpKG9wNyksICh2dWludDhtMV90KShvcDgpLCAodnVpbnQ4bTFfdCkob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAodnVpbnQ4bTFfdCkob3AxMSksICh2dWludDhtMV90KShvcDEyKSwgKHZ1aW50OG0xX3QpKG9wMTMpLCAodnVpbnQ4bTFfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG04X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mMigodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjJfbSgodnVpbnQ4bWYyX3QgKikob3AwKSwgKHZ1aW50OG1mMl90ICopKG9wMSksICh2dWludDhtZjJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90ICopKG9wNCksICh2dWludDhtZjJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjRfbSgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksICh2dWludDhtZjRfdCkob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksICh2dWludDhtZjRfdCkob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl91OG1mOChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mOCgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksICh2dWludDhtZjhfdCkob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksICh2dWludDhtZjhfdCkob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChjb25zdCB1aW50OF90ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bTEoKHZpbnQ4bTFfdCAqKShvcDApLCAodmludDhtMV90ICopKG9wMSksICh2aW50OG0xX3QgKikob3AyKSwgKHZpbnQ4bTFfdCAqKShvcDMpLCAodmludDhtMV90ICopKG9wNCksICh2aW50OG0xX3QgKikob3A1KSwgKHZpbnQ4bTFfdCAqKShvcDYpLCAodmludDhtMV90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtMV9tKCh2aW50OG0xX3QgKikob3AwKSwgKHZpbnQ4bTFfdCAqKShvcDEpLCAodmludDhtMV90ICopKG9wMiksICh2aW50OG0xX3QgKikob3AzKSwgKHZpbnQ4bTFfdCAqKShvcDQpLCAodmludDhtMV90ICopKG9wNSksICh2aW50OG0xX3QgKikob3A2KSwgKHZpbnQ4bTFfdCAqKShvcDcpLCAodmJvb2w4X3QpKG9wOCksICh2aW50OG0xX3QpKG9wOSksICh2aW50OG0xX3QpKG9wMTApLCAodmludDhtMV90KShvcDExKSwgKHZpbnQ4bTFfdCkob3AxMiksICh2aW50OG0xX3QpKG9wMTMpLCAodmludDhtMV90KShvcDE0KSwgKHZpbnQ4bTFfdCkob3AxNSksICh2aW50OG0xX3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG04X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMigodmludDhtZjJfdCAqKShvcDApLCAodmludDhtZjJfdCAqKShvcDEpLCAodmludDhtZjJfdCAqKShvcDIpLCAodmludDhtZjJfdCAqKShvcDMpLCAodmludDhtZjJfdCAqKShvcDQpLCAodmludDhtZjJfdCAqKShvcDUpLCAodmludDhtZjJfdCAqKShvcDYpLCAodmludDhtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50OF90ICopKG9wOCksICh2dWludDY0bTRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaThtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMl9tKCh2aW50OG1mMl90ICopKG9wMCksICh2aW50OG1mMl90ICopKG9wMSksICh2aW50OG1mMl90ICopKG9wMiksICh2aW50OG1mMl90ICopKG9wMyksICh2aW50OG1mMl90ICopKG9wNCksICh2aW50OG1mMl90ICopKG9wNSksICh2aW50OG1mMl90ICopKG9wNiksICh2aW50OG1mMl90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2aW50OG1mMl90KShvcDkpLCAodmludDhtZjJfdCkob3AxMCksICh2aW50OG1mMl90KShvcDExKSwgKHZpbnQ4bWYyX3QpKG9wMTIpLCAodmludDhtZjJfdCkob3AxMyksICh2aW50OG1mMl90KShvcDE0KSwgKHZpbnQ4bWYyX3QpKG9wMTUpLCAodmludDhtZjJfdCkob3AxNiksIChjb25zdCBpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2k4bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bWY0KCh2aW50OG1mNF90ICopKG9wMCksICh2aW50OG1mNF90ICopKG9wMSksICh2aW50OG1mNF90ICopKG9wMiksICh2aW50OG1mNF90ICopKG9wMyksICh2aW50OG1mNF90ICopKG9wNCksICh2aW50OG1mNF90ICopKG9wNSksICh2aW50OG1mNF90ICopKG9wNiksICh2aW50OG1mNF90ICopKG9wNyksIChjb25zdCBpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pOG1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k4bWY0X20oKHZpbnQ4bWY0X3QgKikob3AwKSwgKHZpbnQ4bWY0X3QgKikob3AxKSwgKHZpbnQ4bWY0X3QgKikob3AyKSwgKHZpbnQ4bWY0X3QgKikob3AzKSwgKHZpbnQ4bWY0X3QgKikob3A0KSwgKHZpbnQ4bWY0X3QgKikob3A1KSwgKHZpbnQ4bWY0X3QgKikob3A2KSwgKHZpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQ4bWY0X3QpKG9wOSksICh2aW50OG1mNF90KShvcDEwKSwgKHZpbnQ4bWY0X3QpKG9wMTEpLCAodmludDhtZjRfdCkob3AxMiksICh2aW50OG1mNF90KShvcDEzKSwgKHZpbnQ4bWY0X3QpKG9wMTQpLCAodmludDhtZjRfdCkob3AxNSksICh2aW50OG1mNF90KShvcDE2KSwgKGNvbnN0IGludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjgoKHZpbnQ4bWY4X3QgKikob3AwKSwgKHZpbnQ4bWY4X3QgKikob3AxKSwgKHZpbnQ4bWY4X3QgKikob3AyKSwgKHZpbnQ4bWY4X3QgKikob3AzKSwgKHZpbnQ4bWY4X3QgKikob3A0KSwgKHZpbnQ4bWY4X3QgKikob3A1KSwgKHZpbnQ4bWY4X3QgKikob3A2KSwgKHZpbnQ4bWY4X3QgKikob3A3KSwgKGNvbnN0IGludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2k4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjhfbSgodmludDhtZjhfdCAqKShvcDApLCAodmludDhtZjhfdCAqKShvcDEpLCAodmludDhtZjhfdCAqKShvcDIpLCAodmludDhtZjhfdCAqKShvcDMpLCAodmludDhtZjhfdCAqKShvcDQpLCAodmludDhtZjhfdCAqKShvcDUpLCAodmludDhtZjhfdCAqKShvcDYpLCAodmludDhtZjhfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDhtZjhfdCkob3A5KSwgKHZpbnQ4bWY4X3QpKG9wMTApLCAodmludDhtZjhfdCkob3AxMSksICh2aW50OG1mOF90KShvcDEyKSwgKHZpbnQ4bWY4X3QpKG9wMTMpLCAodmludDhtZjhfdCkob3AxNCksICh2aW50OG1mOF90KShvcDE1KSwgKHZpbnQ4bWY4X3QpKG9wMTYpLCAoY29uc3QgaW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bTEoKHZ1aW50OG0xX3QgKikob3AwKSwgKHZ1aW50OG0xX3QgKikob3AxKSwgKHZ1aW50OG0xX3QgKikob3AyKSwgKHZ1aW50OG0xX3QgKikob3AzKSwgKHZ1aW50OG0xX3QgKikob3A0KSwgKHZ1aW50OG0xX3QgKikob3A1KSwgKHZ1aW50OG0xX3QgKikob3A2KSwgKHZ1aW50OG0xX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtMV9tKCh2dWludDhtMV90ICopKG9wMCksICh2dWludDhtMV90ICopKG9wMSksICh2dWludDhtMV90ICopKG9wMiksICh2dWludDhtMV90ICopKG9wMyksICh2dWludDhtMV90ICopKG9wNCksICh2dWludDhtMV90ICopKG9wNSksICh2dWludDhtMV90ICopKG9wNiksICh2dWludDhtMV90ICopKG9wNyksICh2Ym9vbDhfdCkob3A4KSwgKHZ1aW50OG0xX3QpKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHZ1aW50OG0xX3QpKG9wMTEpLCAodnVpbnQ4bTFfdCkob3AxMiksICh2dWludDhtMV90KShvcDEzKSwgKHZ1aW50OG0xX3QpKG9wMTQpLCAodnVpbnQ4bTFfdCkob3AxNSksICh2dWludDhtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bThfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U4bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyKCh2dWludDhtZjJfdCAqKShvcDApLCAodnVpbnQ4bWYyX3QgKikob3AxKSwgKHZ1aW50OG1mMl90ICopKG9wMiksICh2dWludDhtZjJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QgKikob3A0KSwgKHZ1aW50OG1mMl90ICopKG9wNSksICh2dWludDhtZjJfdCAqKShvcDYpLCAodnVpbnQ4bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQ4X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyX20oKHZ1aW50OG1mMl90ICopKG9wMCksICh2dWludDhtZjJfdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90ICopKG9wMyksICh2dWludDhtZjJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QgKikob3A1KSwgKHZ1aW50OG1mMl90ICopKG9wNiksICh2dWludDhtZjJfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksICh2dWludDhtZjJfdCkob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksICh2dWludDhtZjJfdCkob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksICh2dWludDhtZjJfdCkob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChjb25zdCB1aW50OF90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91OG1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mNCgodnVpbnQ4bWY0X3QgKikob3AwKSwgKHZ1aW50OG1mNF90ICopKG9wMSksICh2dWludDhtZjRfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QgKikob3AzKSwgKHZ1aW50OG1mNF90ICopKG9wNCksICh2dWludDhtZjRfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QgKikob3A2KSwgKHZ1aW50OG1mNF90ICopKG9wNyksIChjb25zdCB1aW50OF90ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdThtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mNF9tKCh2dWludDhtZjRfdCAqKShvcDApLCAodnVpbnQ4bWY0X3QgKikob3AxKSwgKHZ1aW50OG1mNF90ICopKG9wMiksICh2dWludDhtZjRfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QgKikob3A0KSwgKHZ1aW50OG1mNF90ICopKG9wNSksICh2dWludDhtZjRfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAodnVpbnQ4bWY0X3QpKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAodnVpbnQ4bWY0X3QpKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAodnVpbnQ4bWY0X3QpKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDhfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdThtZjgob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjgoKHZ1aW50OG1mOF90ICopKG9wMCksICh2dWludDhtZjhfdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QgKikob3AyKSwgKHZ1aW50OG1mOF90ICopKG9wMyksICh2dWludDhtZjhfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QgKikob3A1KSwgKHZ1aW50OG1mOF90ICopKG9wNiksICh2dWludDhtZjhfdCAqKShvcDcpLCAoY29uc3QgdWludDhfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3U4bWY4X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjhfbSgodnVpbnQ4bWY4X3QgKikob3AwKSwgKHZ1aW50OG1mOF90ICopKG9wMSksICh2dWludDhtZjhfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QgKikob3AzKSwgKHZ1aW50OG1mOF90ICopKG9wNCksICh2dWludDhtZjhfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QgKikob3A2KSwgKHZ1aW50OG1mOF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHZ1aW50OG1mOF90KShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHZ1aW50OG1mOF90KShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHZ1aW50OG1mOF90KShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKGNvbnN0IHVpbnQ4X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bTQoKHZ1aW50MTZtNF90ICopKG9wMCksICh2dWludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtNF9tKCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksICh2dWludDE2bTRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDhtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IGludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksICh2aW50MTZtMV90KShvcDExKSwgKHZpbnQxNm0xX3QpKG9wMTIpLCAodmludDE2bTFfdCkob3AxMyksICh2aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ4bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2aW50MTZtMV90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAodnVpbnQxNm0xX3QpKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAodnVpbnQxNm0xX3QpKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAodnVpbnQxNm0xX3QpKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtNCgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm00X20oKHZpbnQxNm00X3QgKikob3AwKSwgKHZpbnQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmludDE2bTRfdCkob3AzKSwgKHZpbnQxNm00X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQxNm1mMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDE2bWY0X3QpKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAodmludDE2bTJfdCkob3A1KSwgKHZpbnQxNm0yX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmludDE2bWYyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2dWludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHZ1aW50MTZtMl90KShvcDcpLCAodnVpbnQxNm0yX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgdWludDE2X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgaW50MTZfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKHZpbnQxNm1mMl90KShvcDE1KSwgKHZpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksICh2dWludDE2bWYyX3QpKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksICh2dWludDE2bWY0X3QpKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQxNm0xX3QpKG9wMyksICh2aW50MTZtMV90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDE2bTJfdCkob3AzKSwgKHZpbnQxNm0yX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm00KCh2aW50MTZtNF90ICopKG9wMCksICh2aW50MTZtNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTRfbSgodmludDE2bTRfdCAqKShvcDApLCAodmludDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2aW50MTZtNF90KShvcDMpLCAodmludDE2bTRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQxNm1mMl90KShvcDMpLCAodmludDE2bWYyX3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgaW50MTZfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDE2bWY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm00KCh2dWludDE2bTRfdCAqKShvcDApLCAodnVpbnQxNm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTRfbSgodnVpbnQxNm00X3QgKikob3AwKSwgKHZ1aW50MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZ1aW50MTZtNF90KShvcDMpLCAodnVpbnQxNm00X3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2aW50MTZtZjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm0yKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZ1aW50MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZ1aW50MTZtMl90KShvcDQpLCAodnVpbnQxNm0yX3QpKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDE2bTFfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTJfbSgodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2aW50MTZtMl90KShvcDUpLCAodmludDE2bTJfdCkob3A2KSwgKHZpbnQxNm0yX3QpKG9wNyksICh2aW50MTZtMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2aW50MTZtZjJfdCkob3A1KSwgKHZpbnQxNm1mMl90KShvcDYpLCAodmludDE2bWYyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IGludDE2X3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQxNm1mNF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZpbnQxNm0xX3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MTZtZjJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IGludDE2X3QgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHZ1aW50MTZtMV90KShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDMybTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X3UxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZpbnQxNm1mNF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDE2X3QgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKHZpbnQxNm1mMl90KShvcDEzKSwgKHZpbnQxNm1mMl90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAodmludDE2bWY0X3QpKG9wMTMpLCAodmludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X3UxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mNF9tKCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksICh2dWludDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgdWludDE2X3QgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAodmludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksICh2aW50MTZtMV90KShvcDE1KSwgKHZpbnQxNm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAodmludDE2bWYyX3QgKikob3A2KSwgKHZpbnQxNm1mMl90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksICh2aW50MTZtZjJfdCkob3AxMSksICh2aW50MTZtZjJfdCkob3AxMiksICh2aW50MTZtZjJfdCkob3AxMyksICh2aW50MTZtZjJfdCkob3AxNCksICh2aW50MTZtZjJfdCkob3AxNSksICh2aW50MTZtZjJfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QgKikob3A1KSwgKHZ1aW50MTZtMV90ICopKG9wNiksICh2dWludDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksICh2dWludDE2bTFfdCkob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAodnVpbnQxNm1mMl90KShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksICh2dWludDE2bWYyX3QpKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHZ1aW50MTZtZjJfdCkob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHZ1aW50MTZtZjRfdCkob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAodnVpbnQxNm1mNF90KShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MTZtMV90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bTIoKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQxNm0yX3QpKG9wMyksICh2aW50MTZtMl90KShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IGludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDE2bWYyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IGludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCBpbnQxNl90ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQxNm1mNF90KShvcDMpLCAodmludDE2bWY0X3QpKG9wNCksIChjb25zdCBpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTIoKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAoY29uc3QgdWludDE2X3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtMl9tKCh2dWludDE2bTJfdCAqKShvcDApLCAodnVpbnQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksIChjb25zdCB1aW50MTZfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjRfbSgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTFfbSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDE2bTFfdCkob3A0KSwgKHZpbnQxNm0xX3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksIChjb25zdCBpbnQxNl90ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yX20oKHZpbnQxNm0yX3QgKikob3AwKSwgKHZpbnQxNm0yX3QgKikob3AxKSwgKHZpbnQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmludDE2bTJfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IGludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MTZtZjJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksIChjb25zdCBpbnQxNl90ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgaW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQxNm1mNF90KShvcDQpLCAodmludDE2bWY0X3QpKG9wNSksICh2aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAoY29uc3QgdWludDE2X3QgKikob3AzKSwgKHZ1aW50NjRtOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTJfbSgodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG04X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksIChjb25zdCB1aW50MTZfdCAqKShvcDMpLCAodnVpbnQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MTZtMV90KShvcDUpLCAodmludDE2bTFfdCkob3A2KSwgKHZpbnQxNm0xX3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMigodmludDE2bTJfdCAqKShvcDApLCAodmludDE2bTJfdCAqKShvcDEpLCAodmludDE2bTJfdCAqKShvcDIpLCAodmludDE2bTJfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMl9tKCh2aW50MTZtMl90ICopKG9wMCksICh2aW50MTZtMl90ICopKG9wMSksICh2aW50MTZtMl90ICopKG9wMiksICh2aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZpbnQxNm0yX3QpKG9wNSksICh2aW50MTZtMl90KShvcDYpLCAodmludDE2bTJfdCkob3A3KSwgKHZpbnQxNm0yX3QpKG9wOCksIChjb25zdCBpbnQxNl90ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCBpbnQxNl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjJfbSgodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQxNm1mMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgaW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgaW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MTZtZjRfdCkob3A1KSwgKHZpbnQxNm1mNF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKGNvbnN0IGludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bTEoKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHZ1aW50MTZtMV90KShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChjb25zdCB1aW50MTZfdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMigodnVpbnQxNm0yX3QgKikob3AwKSwgKHZ1aW50MTZtMl90ICopKG9wMSksICh2dWludDE2bTJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNCksICh2dWludDY0bThfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm0yX20oKHZ1aW50MTZtMl90ICopKG9wMCksICh2dWludDE2bTJfdCAqKShvcDEpLCAodnVpbnQxNm0yX3QgKikob3AyKSwgKHZ1aW50MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksICh2dWludDE2bTJfdCkob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksIChjb25zdCB1aW50MTZfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoY29uc3QgdWludDE2X3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2aW50MTZtMV90KShvcDYpLCAodmludDE2bTFfdCkob3A3KSwgKHZpbnQxNm0xX3QpKG9wOCksICh2aW50MTZtMV90KShvcDkpLCAodmludDE2bTFfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDE2bWYyX3QpKG9wNiksICh2aW50MTZtZjJfdCkob3A3KSwgKHZpbnQxNm1mMl90KShvcDgpLCAodmludDE2bWYyX3QpKG9wOSksICh2aW50MTZtZjJfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtZjQoKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgaW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDE2bWY0X3QpKG9wNiksICh2aW50MTZtZjRfdCkob3A3KSwgKHZpbnQxNm1mNF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksIChjb25zdCBpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xX20oKHZ1aW50MTZtMV90ICopKG9wMCksICh2dWludDE2bTFfdCAqKShvcDEpLCAodnVpbnQxNm0xX3QgKikob3AyKSwgKHZ1aW50MTZtMV90ICopKG9wMyksICh2dWludDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChjb25zdCB1aW50MTZfdCAqKShvcDExKSwgKHZ1aW50NjRtNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDE2X3QgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MTZtZjQoKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksIChjb25zdCB1aW50MTZfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoY29uc3QgdWludDE2X3QgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2aW50MTZtMV90KShvcDcpLCAodmludDE2bTFfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksIChjb25zdCBpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mMigodmludDE2bWYyX3QgKikob3AwKSwgKHZpbnQxNm1mMl90ICopKG9wMSksICh2aW50MTZtZjJfdCAqKShvcDIpLCAodmludDE2bWYyX3QgKikob3AzKSwgKHZpbnQxNm1mMl90ICopKG9wNCksICh2aW50MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQxNm1mMl90KShvcDcpLCAodmludDE2bWYyX3QpKG9wOCksICh2aW50MTZtZjJfdCkob3A5KSwgKHZpbnQxNm1mMl90KShvcDEwKSwgKHZpbnQxNm1mMl90KShvcDExKSwgKHZpbnQxNm1mMl90KShvcDEyKSwgKGNvbnN0IGludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTE2bWY0KCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCBpbnQxNl90ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjRfbSgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDE2bWY0X3QpKG9wNyksICh2aW50MTZtZjRfdCkob3A4KSwgKHZpbnQxNm1mNF90KShvcDkpLCAodmludDE2bWY0X3QpKG9wMTApLCAodmludDE2bWY0X3QpKG9wMTEpLCAodmludDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgaW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtMV9tKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChjb25zdCB1aW50MTZfdCAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjIoKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDE2X3QgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3UxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTE2bWY0KCh2dWludDE2bWY0X3QgKikob3AwKSwgKHZ1aW50MTZtZjRfdCAqKShvcDEpLCAodnVpbnQxNm1mNF90ICopKG9wMiksICh2dWludDE2bWY0X3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90ICopKG9wNSksIChjb25zdCB1aW50MTZfdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksICh2dWludDE2bWY0X3QpKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pMTZtMSgodmludDE2bTFfdCAqKShvcDApLCAodmludDE2bTFfdCAqKShvcDEpLCAodmludDE2bTFfdCAqKShvcDIpLCAodmludDE2bTFfdCAqKShvcDMpLCAodmludDE2bTFfdCAqKShvcDQpLCAodmludDE2bTFfdCAqKShvcDUpLCAodmludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pMTZtMV9tKCh2aW50MTZtMV90ICopKG9wMCksICh2aW50MTZtMV90ICopKG9wMSksICh2aW50MTZtMV90ICopKG9wMiksICh2aW50MTZtMV90ICopKG9wMyksICh2aW50MTZtMV90ICopKG9wNCksICh2aW50MTZtMV90ICopKG9wNSksICh2aW50MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2aW50MTZtMV90KShvcDgpLCAodmludDE2bTFfdCkob3A5KSwgKHZpbnQxNm0xX3QpKG9wMTApLCAodmludDE2bTFfdCkob3AxMSksICh2aW50MTZtMV90KShvcDEyKSwgKHZpbnQxNm0xX3QpKG9wMTMpLCAodmludDE2bTFfdCkob3AxNCksIChjb25zdCBpbnQxNl90ICopKG9wMTUpLCAodnVpbnQ2NG00X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9pMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bWYyKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bWYyX20oKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2aW50MTZtZjJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IGludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKCh2aW50MTZtZjRfdCAqKShvcDApLCAodmludDE2bWY0X3QgKikob3AxKSwgKHZpbnQxNm1mNF90ICopKG9wMiksICh2aW50MTZtZjRfdCAqKShvcDMpLCAodmludDE2bWY0X3QgKikob3A0KSwgKHZpbnQxNm1mNF90ICopKG9wNSksICh2aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDE2bWY0X3QpKG9wOCksICh2aW50MTZtZjRfdCkob3A5KSwgKHZpbnQxNm1mNF90KShvcDEwKSwgKHZpbnQxNm1mNF90KShvcDExKSwgKHZpbnQxNm1mNF90KShvcDEyKSwgKHZpbnQxNm1mNF90KShvcDEzKSwgKHZpbnQxNm1mNF90KShvcDE0KSwgKGNvbnN0IGludDE2X3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xKCh2dWludDE2bTFfdCAqKShvcDApLCAodnVpbnQxNm0xX3QgKikob3AxKSwgKHZ1aW50MTZtMV90ICopKG9wMiksICh2dWludDE2bTFfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QgKikob3A0KSwgKHZ1aW50MTZtMV90ICopKG9wNSksICh2dWludDE2bTFfdCAqKShvcDYpLCAoY29uc3QgdWludDE2X3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksICh2dWludDE2bTFfdCkob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksICh2dWludDE2bTFfdCkob3AxMyksICh2dWludDE2bTFfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mMigodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20oKHZ1aW50MTZtZjJfdCAqKShvcDApLCAodnVpbnQxNm1mMl90ICopKG9wMSksICh2dWludDE2bWYyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCAqKShvcDMpLCAodnVpbnQxNm1mMl90ICopKG9wNCksICh2dWludDE2bWYyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHZ1aW50MTZtZjJfdCkob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAodnVpbnQxNm1mMl90KShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksIChjb25zdCB1aW50MTZfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHZ1aW50MTZtZjRfdCkob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAodnVpbnQxNm1mNF90KShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChjb25zdCB1aW50MTZfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bTEoKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKGNvbnN0IGludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm0xX20oKHZpbnQxNm0xX3QgKikob3AwKSwgKHZpbnQxNm0xX3QgKikob3AxKSwgKHZpbnQxNm0xX3QgKikob3AyKSwgKHZpbnQxNm0xX3QgKikob3AzKSwgKHZpbnQxNm0xX3QgKikob3A0KSwgKHZpbnQxNm0xX3QgKikob3A1KSwgKHZpbnQxNm0xX3QgKikob3A2KSwgKHZpbnQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZpbnQxNm0xX3QpKG9wOSksICh2aW50MTZtMV90KShvcDEwKSwgKHZpbnQxNm0xX3QpKG9wMTEpLCAodmludDE2bTFfdCkob3AxMiksICh2aW50MTZtMV90KShvcDEzKSwgKHZpbnQxNm0xX3QpKG9wMTQpLCAodmludDE2bTFfdCkob3AxNSksICh2aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IGludDE2X3QgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtZjIoKHZpbnQxNm1mMl90ICopKG9wMCksICh2aW50MTZtZjJfdCAqKShvcDEpLCAodmludDE2bWYyX3QgKikob3AyKSwgKHZpbnQxNm1mMl90ICopKG9wMyksICh2aW50MTZtZjJfdCAqKShvcDQpLCAodmludDE2bWYyX3QgKikob3A1KSwgKHZpbnQxNm1mMl90ICopKG9wNiksICh2aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG0yX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mMl9tKCh2aW50MTZtZjJfdCAqKShvcDApLCAodmludDE2bWYyX3QgKikob3AxKSwgKHZpbnQxNm1mMl90ICopKG9wMiksICh2aW50MTZtZjJfdCAqKShvcDMpLCAodmludDE2bWYyX3QgKikob3A0KSwgKHZpbnQxNm1mMl90ICopKG9wNSksICh2aW50MTZtZjJfdCAqKShvcDYpLCAodmludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQxNm1mMl90KShvcDkpLCAodmludDE2bWYyX3QpKG9wMTApLCAodmludDE2bWYyX3QpKG9wMTEpLCAodmludDE2bWYyX3QpKG9wMTIpLCAodmludDE2bWYyX3QpKG9wMTMpLCAodmludDE2bWYyX3QpKG9wMTQpLCAodmludDE2bWYyX3QpKG9wMTUpLCAodmludDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mNCgodmludDE2bWY0X3QgKikob3AwKSwgKHZpbnQxNm1mNF90ICopKG9wMSksICh2aW50MTZtZjRfdCAqKShvcDIpLCAodmludDE2bWY0X3QgKikob3AzKSwgKHZpbnQxNm1mNF90ICopKG9wNCksICh2aW50MTZtZjRfdCAqKShvcDUpLCAodmludDE2bWY0X3QgKikob3A2KSwgKHZpbnQxNm1mNF90ICopKG9wNyksIChjb25zdCBpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bWY0X20oKHZpbnQxNm1mNF90ICopKG9wMCksICh2aW50MTZtZjRfdCAqKShvcDEpLCAodmludDE2bWY0X3QgKikob3AyKSwgKHZpbnQxNm1mNF90ICopKG9wMyksICh2aW50MTZtZjRfdCAqKShvcDQpLCAodmludDE2bWY0X3QgKikob3A1KSwgKHZpbnQxNm1mNF90ICopKG9wNiksICh2aW50MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDE2bWY0X3QpKG9wOSksICh2aW50MTZtZjRfdCkob3AxMCksICh2aW50MTZtZjRfdCkob3AxMSksICh2aW50MTZtZjRfdCkob3AxMiksICh2aW50MTZtZjRfdCkob3AxMyksICh2aW50MTZtZjRfdCkob3AxNCksICh2aW50MTZtZjRfdCkob3AxNSksICh2aW50MTZtZjRfdCkob3AxNiksIChjb25zdCBpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtMSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksIChjb25zdCB1aW50MTZfdCAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X3UxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bTFfbSgodnVpbnQxNm0xX3QgKikob3AwKSwgKHZ1aW50MTZtMV90ICopKG9wMSksICh2dWludDE2bTFfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QgKikob3AzKSwgKHZ1aW50MTZtMV90ICopKG9wNCksICh2dWludDE2bTFfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QgKikob3A2KSwgKHZ1aW50MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHZ1aW50MTZtMV90KShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHZ1aW50MTZtMV90KShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHZ1aW50MTZtMV90KShvcDE1KSwgKHZ1aW50MTZtMV90KShvcDE2KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wMTcpLCAodnVpbnQ2NG00X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWYyKCh2dWludDE2bWYyX3QgKikob3AwKSwgKHZ1aW50MTZtZjJfdCAqKShvcDEpLCAodnVpbnQxNm1mMl90ICopKG9wMiksICh2dWludDE2bWYyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCAqKShvcDQpLCAodnVpbnQxNm1mMl90ICopKG9wNSksICh2dWludDE2bWYyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDE2X3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtZjJfbSgodnVpbnQxNm1mMl90ICopKG9wMCksICh2dWludDE2bWYyX3QgKikob3AxKSwgKHZ1aW50MTZtZjJfdCAqKShvcDIpLCAodnVpbnQxNm1mMl90ICopKG9wMyksICh2dWludDE2bWYyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCAqKShvcDUpLCAodnVpbnQxNm1mMl90ICopKG9wNiksICh2dWludDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksICh2dWludDE2bWYyX3QpKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHZ1aW50MTZtZjJfdCkob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAodnVpbnQxNm1mMl90KShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChjb25zdCB1aW50MTZfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mNCgodnVpbnQxNm1mNF90ICopKG9wMCksICh2dWludDE2bWY0X3QgKikob3AxKSwgKHZ1aW50MTZtZjRfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90ICopKG9wMyksICh2dWludDE2bWY0X3QgKikob3A0KSwgKHZ1aW50MTZtZjRfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90ICopKG9wNiksICh2dWludDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IHVpbnQxNl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20oKHZ1aW50MTZtZjRfdCAqKShvcDApLCAodnVpbnQxNm1mNF90ICopKG9wMSksICh2dWludDE2bWY0X3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCAqKShvcDMpLCAodnVpbnQxNm1mNF90ICopKG9wNCksICh2dWludDE2bWY0X3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAodnVpbnQxNm1mNF90KShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksICh2dWludDE2bWY0X3QpKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHZ1aW50MTZtZjRfdCkob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgdWludDE2X3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksIChjb25zdCBpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmludDMybTJfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQ4bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmludDMybTJfdCkob3A1KSwgKHZpbnQzMm0yX3QpKG9wNiksICh2aW50MzJtMl90KShvcDcpLCAodmludDMybTJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksIChjb25zdCBpbnQzMl90ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50OG1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAodnVpbnQzMm0xX3QpKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpOF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmludDMybTFfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmludDMybWYyX3QpKG9wMyksICh2aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0yX20oKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm00KCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTRfbSgodnVpbnQzMm00X3QgKikob3AwKSwgKHZ1aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZpbnQzMm0xX3QpKG9wNCksICh2aW50MzJtMV90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGludDMyX3QgKikob3A0KSwgKHZ1aW50MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmludDMybTJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKHZpbnQzMm0yX3QpKG9wNyksICh2aW50MzJtMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgaW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmludDMybWYyX3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoY29uc3QgdWludDMyX3QgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IGludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoY29uc3QgdWludDMyX3QgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAodnVpbnQzMm0xX3QpKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAodnVpbnQzMm0xX3QpKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgdWludDMyX3QgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAodmludDMybTFfdCkob3AxMSksICh2aW50MzJtMV90KShvcDEyKSwgKHZpbnQzMm0xX3QpKG9wMTMpLCAodmludDMybTFfdCkob3AxNCksICh2aW50MzJtMV90KShvcDE1KSwgKHZpbnQzMm0xX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKHZpbnQzMm1mMl90KShvcDE1KSwgKHZpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZ1aW50MzJtMV90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksIChjb25zdCB1aW50MzJfdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMTZfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHZ1aW50MzJtZjJfdCkob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAodnVpbnQzMm1mMl90KShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MTZtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2aW50MzJtMV90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMl9tKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2aW50MzJtMl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybTQoKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2kzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtNF9tKCh2aW50MzJtNF90ICopKG9wMCksICh2aW50MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZpbnQzMm00X3QpKG9wMyksICh2aW50MzJtNF90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZpbnQzMm1mMl90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChjb25zdCB1aW50MzJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAoY29uc3QgaW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAodmludDMybTFfdCkob3A1KSwgKHZpbnQzMm0xX3QpKG9wNiksIChjb25zdCBpbnQzMl90ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTIoKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2kzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTJfbSgodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAodmludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmludDMybTJfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtMigodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAoY29uc3QgdWludDMyX3QgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAodmludDMybWYyX3QpKG9wNyksICh2aW50MzJtZjJfdCkob3A4KSwgKGNvbnN0IGludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTIoKHZ1aW50MzJtMl90ICopKG9wMCksICh2dWludDMybTJfdCAqKShvcDEpLCAodnVpbnQzMm0yX3QgKikob3AyKSwgKHZ1aW50MzJtMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHZ1aW50MzJtMl90KShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChjb25zdCB1aW50MzJfdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmludDMybTFfdCkob3A2KSwgKHZpbnQzMm0xX3QpKG9wNyksICh2aW50MzJtMV90KShvcDgpLCAodmludDMybTFfdCkob3A5KSwgKHZpbnQzMm0xX3QpKG9wMTApLCAoY29uc3QgaW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2aW50MzJtZjJfdCkob3A2KSwgKHZpbnQzMm1mMl90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGludDMyX3QgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2aW50MzJtMV90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgaW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksIChjb25zdCB1aW50MzJfdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksICh2dWludDMybWYyX3QpKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksIChjb25zdCBpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKHZ1aW50MzJtMV90KShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksIChjb25zdCBpbnQzMl90ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2aW50MzJtMV90ICopKG9wNSksICh2aW50MzJtMV90ICopKG9wNiksICh2aW50MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAodmludDMybTFfdCkob3AxMyksICh2aW50MzJtMV90KShvcDE0KSwgKHZpbnQzMm0xX3QpKG9wMTUpLCAodmludDMybTFfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksICh2aW50MzJtZjJfdCkob3AxMyksICh2aW50MzJtZjJfdCkob3AxNCksICh2aW50MzJtZjJfdCkob3AxNSksICh2aW50MzJtZjJfdCkob3AxNiksIChjb25zdCBpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2dWludDMybWYyX3QgKikob3A2KSwgKHZ1aW50MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksICh2dWludDMybWYyX3QpKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZpbnQzMm0xX3QpKG9wMyksICh2aW50MzJtMV90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtMigodmludDMybTJfdCAqKShvcDApLCAodmludDMybTJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZpbnQzMm0yX3QpKG9wMyksICh2aW50MzJtMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtNCgodmludDMybTRfdCAqKShvcDApLCAodmludDMybTRfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm00X20oKHZpbnQzMm00X3QgKikob3AwKSwgKHZpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmludDMybTRfdCkob3AzKSwgKHZpbnQzMm00X3QpKG9wNCksIChjb25zdCBpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgaW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2aW50MzJtZjJfdCkob3AzKSwgKHZpbnQzMm1mMl90KShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTQoKHZ1aW50MzJtNF90ICopKG9wMCksICh2dWludDMybTRfdCAqKShvcDEpLCAoY29uc3QgdWludDMyX3QgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X3UzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtNF9tKCh2dWludDMybTRfdCAqKShvcDApLCAodnVpbnQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksIChjb25zdCB1aW50MzJfdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGludDMyX3QgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmludDMybTFfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfaTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZpbnQzMm0yX3QpKG9wNCksICh2aW50MzJtMl90KShvcDUpLCAodmludDMybTJfdCkob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybWYyKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksIChjb25zdCBpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmludDMybWYyX3QpKG9wNCksICh2aW50MzJtZjJfdCkob3A1KSwgKHZpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgaW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMV9tKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2dWludDMybTFfdCkob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksIChjb25zdCB1aW50MzJfdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMl9tKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtZjIoKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl91MzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtZjJfbSgodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0xKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZpbnQzMm0xX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yKCh2aW50MzJtMl90ICopKG9wMCksICh2aW50MzJtMl90ICopKG9wMSksICh2aW50MzJtMl90ICopKG9wMiksICh2aW50MzJtMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yX20oKHZpbnQzMm0yX3QgKikob3AwKSwgKHZpbnQzMm0yX3QgKikob3AxKSwgKHZpbnQzMm0yX3QgKikob3AyKSwgKHZpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZpbnQzMm0yX3QpKG9wNSksICh2aW50MzJtMl90KShvcDYpLCAodmludDMybTJfdCkob3A3KSwgKHZpbnQzMm0yX3QpKG9wOCksIChjb25zdCBpbnQzMl90ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCBpbnQzMl90ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9pMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtZjJfbSgodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZpbnQzMm1mMl90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgaW50MzJfdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MzJtMSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3UzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yKCh2dWludDMybTJfdCAqKShvcDApLCAodnVpbnQzMm0yX3QgKikob3AxKSwgKHZ1aW50MzJtMl90ICopKG9wMiksICh2dWludDMybTJfdCAqKShvcDMpLCAoY29uc3QgdWludDMyX3QgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X3UzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybTJfbSgodnVpbnQzMm0yX3QgKikob3AwKSwgKHZ1aW50MzJtMl90ICopKG9wMSksICh2dWludDMybTJfdCAqKShvcDIpLCAodnVpbnQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksIChjb25zdCB1aW50MzJfdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoY29uc3QgdWludDMyX3QgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtMSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtMV9tKCh2aW50MzJtMV90ICopKG9wMCksICh2aW50MzJtMV90ICopKG9wMSksICh2aW50MzJtMV90ICopKG9wMiksICh2aW50MzJtMV90ICopKG9wMyksICh2aW50MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2aW50MzJtMV90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9pMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgaW50MzJfdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfaTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTMybWYyX20oKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmludDMybWYyX3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksIChjb25zdCBpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksIChjb25zdCB1aW50MzJfdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTMybWYyKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgdWludDMyX3QgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9pMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmludDMybTFfdCkob3A3KSwgKHZpbnQzMm0xX3QpKG9wOCksICh2aW50MzJtMV90KShvcDkpLCAodmludDMybTFfdCkob3AxMCksICh2aW50MzJtMV90KShvcDExKSwgKHZpbnQzMm0xX3QpKG9wMTIpLCAoY29uc3QgaW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2aW50MzJtZjJfdCkob3A3KSwgKHZpbnQzMm1mMl90KShvcDgpLCAodmludDMybWYyX3QpKG9wOSksICh2aW50MzJtZjJfdCkob3AxMCksICh2aW50MzJtZjJfdCkob3AxMSksICh2aW50MzJtZjJfdCkob3AxMiksIChjb25zdCBpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHZ1aW50MzJtMV90KShvcDExKSwgKHZ1aW50MzJtMV90KShvcDEyKSwgKGNvbnN0IHVpbnQzMl90ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl91MzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgdWludDMyX3QgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKCh2dWludDMybWYyX3QgKikob3AwKSwgKHZ1aW50MzJtZjJfdCAqKShvcDEpLCAodnVpbnQzMm1mMl90ICopKG9wMiksICh2dWludDMybWYyX3QgKikob3AzKSwgKHZ1aW50MzJtZjJfdCAqKShvcDQpLCAodnVpbnQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChjb25zdCB1aW50MzJfdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTFfbSgodmludDMybTFfdCAqKShvcDApLCAodmludDMybTFfdCAqKShvcDEpLCAodmludDMybTFfdCAqKShvcDIpLCAodmludDMybTFfdCAqKShvcDMpLCAodmludDMybTFfdCAqKShvcDQpLCAodmludDMybTFfdCAqKShvcDUpLCAodmludDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmludDMybTFfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAoY29uc3QgaW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfaTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMigodmludDMybWYyX3QgKikob3AwKSwgKHZpbnQzMm1mMl90ICopKG9wMSksICh2aW50MzJtZjJfdCAqKShvcDIpLCAodmludDMybWYyX3QgKikob3AzKSwgKHZpbnQzMm1mMl90ICopKG9wNCksICh2aW50MzJtZjJfdCAqKShvcDUpLCAodmludDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmludDMybWYyX3QpKG9wOCksICh2aW50MzJtZjJfdCkob3A5KSwgKHZpbnQzMm1mMl90KShvcDEwKSwgKHZpbnQzMm1mMl90KShvcDExKSwgKHZpbnQzMm1mMl90KShvcDEyKSwgKHZpbnQzMm1mMl90KShvcDEzKSwgKHZpbnQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGludDMyX3QgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xKCh2dWludDMybTFfdCAqKShvcDApLCAodnVpbnQzMm0xX3QgKikob3AxKSwgKHZ1aW50MzJtMV90ICopKG9wMiksICh2dWludDMybTFfdCAqKShvcDMpLCAodnVpbnQzMm0xX3QgKikob3A0KSwgKHZ1aW50MzJtMV90ICopKG9wNSksICh2dWludDMybTFfdCAqKShvcDYpLCAoY29uc3QgdWludDMyX3QgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X3UzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybTFfbSgodnVpbnQzMm0xX3QgKikob3AwKSwgKHZ1aW50MzJtMV90ICopKG9wMSksICh2dWludDMybTFfdCAqKShvcDIpLCAodnVpbnQzMm0xX3QgKikob3AzKSwgKHZ1aW50MzJtMV90ICopKG9wNCksICh2dWludDMybTFfdCAqKShvcDUpLCAodnVpbnQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksIChjb25zdCB1aW50MzJfdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHZ1aW50MzJtZjJfdCkob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAodnVpbnQzMm1mMl90KShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChjb25zdCB1aW50MzJfdCAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfaTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTMybTEoKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9pMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm0xX20oKHZpbnQzMm0xX3QgKikob3AwKSwgKHZpbnQzMm0xX3QgKikob3AxKSwgKHZpbnQzMm0xX3QgKikob3AyKSwgKHZpbnQzMm0xX3QgKikob3AzKSwgKHZpbnQzMm0xX3QgKikob3A0KSwgKHZpbnQzMm0xX3QgKikob3A1KSwgKHZpbnQzMm0xX3QgKikob3A2KSwgKHZpbnQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZpbnQzMm0xX3QpKG9wOSksICh2aW50MzJtMV90KShvcDEwKSwgKHZpbnQzMm0xX3QpKG9wMTEpLCAodmludDMybTFfdCkob3AxMiksICh2aW50MzJtMV90KShvcDEzKSwgKHZpbnQzMm0xX3QpKG9wMTQpLCAodmludDMybTFfdCkob3AxNSksICh2aW50MzJtMV90KShvcDE2KSwgKGNvbnN0IGludDMyX3QgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtZjIoKHZpbnQzMm1mMl90ICopKG9wMCksICh2aW50MzJtZjJfdCAqKShvcDEpLCAodmludDMybWYyX3QgKikob3AyKSwgKHZpbnQzMm1mMl90ICopKG9wMyksICh2aW50MzJtZjJfdCAqKShvcDQpLCAodmludDMybWYyX3QgKikob3A1KSwgKHZpbnQzMm1mMl90ICopKG9wNiksICh2aW50MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgaW50MzJfdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKCh2aW50MzJtZjJfdCAqKShvcDApLCAodmludDMybWYyX3QgKikob3AxKSwgKHZpbnQzMm1mMl90ICopKG9wMiksICh2aW50MzJtZjJfdCAqKShvcDMpLCAodmludDMybWYyX3QgKikob3A0KSwgKHZpbnQzMm1mMl90ICopKG9wNSksICh2aW50MzJtZjJfdCAqKShvcDYpLCAodmludDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZpbnQzMm1mMl90KShvcDkpLCAodmludDMybWYyX3QpKG9wMTApLCAodmludDMybWYyX3QpKG9wMTEpLCAodmludDMybWYyX3QpKG9wMTIpLCAodmludDMybWYyX3QpKG9wMTMpLCAodmludDMybWYyX3QpKG9wMTQpLCAodmludDMybWYyX3QpKG9wMTUpLCAodmludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgaW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybTEoKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAoY29uc3QgdWludDMyX3QgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl91MzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm0xX20oKHZ1aW50MzJtMV90ICopKG9wMCksICh2dWludDMybTFfdCAqKShvcDEpLCAodnVpbnQzMm0xX3QgKikob3AyKSwgKHZ1aW50MzJtMV90ICopKG9wMyksICh2dWludDMybTFfdCAqKShvcDQpLCAodnVpbnQzMm0xX3QgKikob3A1KSwgKHZ1aW50MzJtMV90ICopKG9wNiksICh2dWludDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksICh2dWludDMybTFfdCkob3AxMCksICh2dWludDMybTFfdCkob3AxMSksICh2dWludDMybTFfdCkob3AxMiksICh2dWludDMybTFfdCkob3AxMyksICh2dWludDMybTFfdCkob3AxNCksICh2dWludDMybTFfdCkob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChjb25zdCB1aW50MzJfdCAqKShvcDE3KSwgKHZ1aW50NjRtMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm1mMigodnVpbnQzMm1mMl90ICopKG9wMCksICh2dWludDMybWYyX3QgKikob3AxKSwgKHZ1aW50MzJtZjJfdCAqKShvcDIpLCAodnVpbnQzMm1mMl90ICopKG9wMyksICh2dWludDMybWYyX3QgKikob3A0KSwgKHZ1aW50MzJtZjJfdCAqKShvcDUpLCAodnVpbnQzMm1mMl90ICopKG9wNiksICh2dWludDMybWYyX3QgKikob3A3KSwgKGNvbnN0IHVpbnQzMl90ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfdTMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybWYyX20oKHZ1aW50MzJtZjJfdCAqKShvcDApLCAodnVpbnQzMm1mMl90ICopKG9wMSksICh2dWludDMybWYyX3QgKikob3AyKSwgKHZ1aW50MzJtZjJfdCAqKShvcDMpLCAodnVpbnQzMm1mMl90ICopKG9wNCksICh2dWludDMybWYyX3QgKikob3A1KSwgKHZ1aW50MzJtZjJfdCAqKShvcDYpLCAodnVpbnQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAodnVpbnQzMm1mMl90KShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksICh2dWludDMybWYyX3QpKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHZ1aW50MzJtZjJfdCkob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoY29uc3QgdWludDMyX3QgKikob3AxNyksICh2dWludDY0bTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikgJiYgZGVmaW5lZChfX3Jpc2N2X3p2bHNzZWcpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG1mOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ4bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDhtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDhtZjhfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDhtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDhtZjhfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MTZtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDE2bWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MzJtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDMybTFfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50MzJtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQ2NG0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50NjRtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ2NG0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQ2NG0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ2NG0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzZlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZmbG9hdDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2ZmxvYXQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTQoKGZsb2F0ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDMybTRfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtNF9tKCh2Ym9vbDhfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTJfbSgodmJvb2wxNl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MzJtMl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm00KChmbG9hdCAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybTRfbSgodmJvb2w4X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMl9tKCh2Ym9vbDE2X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtNCgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MzJtNF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm00X20oKHZib29sOF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDMybTJfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTEoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDMybTFfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm0yKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQzMm0yX3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm0yX20oKHZib29sMTZfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQzMm1mMl90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtMSgoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MzJtMV90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm0xX20oKHZib29sMzJfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMzJtZjJfbSgodmJvb2w2NF90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtMV9tKCh2Ym9vbDMyX3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtZjIoKGZsb2F0ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDMybWYyX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjMybWYyX20oKHZib29sNjRfdCkob3AwKSwgKGZsb2F0ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm0xKChmbG9hdCAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQzMm0xX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTFfbSgodmJvb2wzMl90KShvcDApLCAoZmxvYXQgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm1mMigoZmxvYXQgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MzJtZjJfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YzMm1mMl9tKCh2Ym9vbDY0X3QpKG9wMCksIChmbG9hdCAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUzMl92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MzJtZjJfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzRlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMzJmZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWcyZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnM2UzMmZmX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlMzJmZl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTMyZmZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTMyZmZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksICh2ZmxvYXQzMm0yX3QpKG9wNyksICh2ZmxvYXQzMm0yX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzRlMzJmZl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNWUzMmZmX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMzJmZl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzZlMzJmZl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHNpemVfdCAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnNmUzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzdlMzJmZl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2UzMmZmX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnOGUzMmZmX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksIChzaXplX3QgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc4ZTMyZmZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKHZmbG9hdDMybWYyX3QpKG9wMTUpLCAodmZsb2F0MzJtZjJfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHNpemVfdCAqKShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMzJfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUzMl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUzMl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZmbG9hdDMybTJfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAodmZsb2F0MzJtMl90KShvcDcpLCAodmZsb2F0MzJtMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzVlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzZlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2UzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzdlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHB0cmRpZmZfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUzMl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQzMm0xX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50OG1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MzJtMV90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDhtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDhtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAoY29uc3QgZmxvYXQgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksIChjb25zdCBmbG9hdCAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDhtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50OG1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksICh2ZmxvYXQzMm0xX3QpKG9wMTUpLCAodmZsb2F0MzJtMV90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ4bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50OG1mOF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpOF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ4bWY4X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDMybTJfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMzJtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00KCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YzMm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtNF9tKCh2ZmxvYXQzMm00X3QgKikob3AwKSwgKHZmbG9hdDMybTRfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQzMm00X3QpKG9wMyksICh2ZmxvYXQzMm00X3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDMybWYyX3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTJfbSgodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAodmZsb2F0MzJtMl90KShvcDUpLCAodmZsb2F0MzJtMl90KShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQxNm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksIChjb25zdCBmbG9hdCAqKShvcDExKSwgKHZ1aW50MTZtZjRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkxNl92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAoY29uc3QgZmxvYXQgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAodmZsb2F0MzJtMV90KShvcDEzKSwgKHZmbG9hdDMybTFfdCkob3AxNCksIChjb25zdCBmbG9hdCAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksICh2ZmxvYXQzMm1mMl90ICopKG9wNiksICh2ZmxvYXQzMm1mMl90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKHZmbG9hdDMybWYyX3QpKG9wMTMpLCAodmZsb2F0MzJtZjJfdCkob3AxNCksICh2ZmxvYXQzMm1mMl90KShvcDE1KSwgKHZmbG9hdDMybWYyX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MzJtMV90KShvcDMpLCAodmZsb2F0MzJtMV90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQzMm0yX3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjMybTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNCgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDMybTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTRfbSgodmZsb2F0MzJtNF90ICopKG9wMCksICh2ZmxvYXQzMm00X3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MzJtNF90KShvcDMpLCAodmZsb2F0MzJtNF90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQzMm0xX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksIChjb25zdCBmbG9hdCAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQzMm0yX3QpKG9wNCksICh2ZmxvYXQzMm0yX3QpKG9wNSksICh2ZmxvYXQzMm0yX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDMybWYyX3QpKG9wNCksICh2ZmxvYXQzMm1mMl90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDMybWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDMybWYyX3QpKG9wNSksICh2ZmxvYXQzMm1mMl90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQzMm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKGNvbnN0IGZsb2F0ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDMybTFfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQzMm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50MzJtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MzJtZjJfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDMybTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDMybWYyX3QpKG9wOCksICh2ZmxvYXQzMm1mMl90KShvcDkpLCAodmZsb2F0MzJtZjJfdCkob3AxMCksICh2ZmxvYXQzMm1mMl90KShvcDExKSwgKHZmbG9hdDMybWYyX3QpKG9wMTIpLCAodmZsb2F0MzJtZjJfdCkob3AxMyksICh2ZmxvYXQzMm1mMl90KShvcDE0KSwgKGNvbnN0IGZsb2F0ICopKG9wMTUpLCAodnVpbnQzMm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksIChjb25zdCBmbG9hdCAqKShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksICh2ZmxvYXQzMm0xX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAodmZsb2F0MzJtMV90KShvcDE1KSwgKHZmbG9hdDMybTFfdCkob3AxNiksIChjb25zdCBmbG9hdCAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmZsb2F0MzJtZjJfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDMybTFfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAoY29uc3QgZmxvYXQgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YzMm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MzJtMl90KShvcDMpLCAodmZsb2F0MzJtMl90KShvcDQpLCAoY29uc3QgZmxvYXQgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YzMm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTQoKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksIChjb25zdCBmbG9hdCAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjMybTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm00X20oKHZmbG9hdDMybTRfdCAqKShvcDApLCAodmZsb2F0MzJtNF90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDMybTRfdCkob3AzKSwgKHZmbG9hdDMybTRfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKGNvbnN0IGZsb2F0ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQzMm1mMl90KShvcDMpLCAodmZsb2F0MzJtZjJfdCkob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDMybTFfdCkob3A0KSwgKHZmbG9hdDMybTFfdCkob3A1KSwgKHZmbG9hdDMybTFfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjMybTIoKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKGNvbnN0IGZsb2F0ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0yX20oKHZmbG9hdDMybTJfdCAqKShvcDApLCAodmZsb2F0MzJtMl90ICopKG9wMSksICh2ZmxvYXQzMm0yX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDMybTJfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm1mMigodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAoY29uc3QgZmxvYXQgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YzMm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm1mMl9tKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQzMm1mMl90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjMybTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAoY29uc3QgZmxvYXQgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQzMm0xX3QpKG9wNSksICh2ZmxvYXQzMm0xX3QpKG9wNiksICh2ZmxvYXQzMm0xX3QpKG9wNyksICh2ZmxvYXQzMm0xX3QpKG9wOCksIChjb25zdCBmbG9hdCAqKShvcDkpLCAodnVpbnQ2NG0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMzJtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMigodmZsb2F0MzJtMl90ICopKG9wMCksICh2ZmxvYXQzMm0yX3QgKikob3AxKSwgKHZmbG9hdDMybTJfdCAqKShvcDIpLCAodmZsb2F0MzJtMl90ICopKG9wMyksIChjb25zdCBmbG9hdCAqKShvcDQpLCAodnVpbnQ2NG00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjMybTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMl9tKCh2ZmxvYXQzMm0yX3QgKikob3AwKSwgKHZmbG9hdDMybTJfdCAqKShvcDEpLCAodmZsb2F0MzJtMl90ICopKG9wMiksICh2ZmxvYXQzMm0yX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDMybTJfdCkob3A1KSwgKHZmbG9hdDMybTJfdCkob3A2KSwgKHZmbG9hdDMybTJfdCkob3A3KSwgKHZmbG9hdDMybTJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDY0bTRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKGNvbnN0IGZsb2F0ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MzJtZjJfdCkob3A1KSwgKHZmbG9hdDMybWYyX3QpKG9wNiksICh2ZmxvYXQzMm1mMl90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKGNvbnN0IGZsb2F0ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTEoKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksIChjb25zdCBmbG9hdCAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MzJtMV90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKGNvbnN0IGZsb2F0ICopKG9wMTEpLCAodnVpbnQ2NG0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMzJtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKGNvbnN0IGZsb2F0ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MzJtZjJfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAoY29uc3QgZmxvYXQgKikob3AxMSksICh2dWludDY0bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAoY29uc3QgZmxvYXQgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybTFfbSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MzJtMV90KShvcDcpLCAodmZsb2F0MzJtMV90KShvcDgpLCAodmZsb2F0MzJtMV90KShvcDkpLCAodmZsb2F0MzJtMV90KShvcDEwKSwgKHZmbG9hdDMybTFfdCkob3AxMSksICh2ZmxvYXQzMm0xX3QpKG9wMTIpLCAoY29uc3QgZmxvYXQgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybWYyKCh2ZmxvYXQzMm1mMl90ICopKG9wMCksICh2ZmxvYXQzMm1mMl90ICopKG9wMSksICh2ZmxvYXQzMm1mMl90ICopKG9wMiksICh2ZmxvYXQzMm1mMl90ICopKG9wMyksICh2ZmxvYXQzMm1mMl90ICopKG9wNCksICh2ZmxvYXQzMm1mMl90ICopKG9wNSksIChjb25zdCBmbG9hdCAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDMybWYyX3QpKG9wNyksICh2ZmxvYXQzMm1mMl90KShvcDgpLCAodmZsb2F0MzJtZjJfdCkob3A5KSwgKHZmbG9hdDMybWYyX3QpKG9wMTApLCAodmZsb2F0MzJtZjJfdCkob3AxMSksICh2ZmxvYXQzMm1mMl90KShvcDEyKSwgKGNvbnN0IGZsb2F0ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMzJtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMSgodmZsb2F0MzJtMV90ICopKG9wMCksICh2ZmxvYXQzMm0xX3QgKikob3AxKSwgKHZmbG9hdDMybTFfdCAqKShvcDIpLCAodmZsb2F0MzJtMV90ICopKG9wMyksICh2ZmxvYXQzMm0xX3QgKikob3A0KSwgKHZmbG9hdDMybTFfdCAqKShvcDUpLCAodmZsb2F0MzJtMV90ICopKG9wNiksIChjb25zdCBmbG9hdCAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjMybTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMV9tKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDMybTFfdCkob3A4KSwgKHZmbG9hdDMybTFfdCkob3A5KSwgKHZmbG9hdDMybTFfdCkob3AxMCksICh2ZmxvYXQzMm0xX3QpKG9wMTEpLCAodmZsb2F0MzJtMV90KShvcDEyKSwgKHZmbG9hdDMybTFfdCkob3AxMyksICh2ZmxvYXQzMm0xX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDY0bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKGNvbnN0IGZsb2F0ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMzJtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtZjJfbSgodmZsb2F0MzJtZjJfdCAqKShvcDApLCAodmZsb2F0MzJtZjJfdCAqKShvcDEpLCAodmZsb2F0MzJtZjJfdCAqKShvcDIpLCAodmZsb2F0MzJtZjJfdCAqKShvcDMpLCAodmZsb2F0MzJtZjJfdCAqKShvcDQpLCAodmZsb2F0MzJtZjJfdCAqKShvcDUpLCAodmZsb2F0MzJtZjJfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MzJtZjJfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAoY29uc3QgZmxvYXQgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YzMm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xKCh2ZmxvYXQzMm0xX3QgKikob3AwKSwgKHZmbG9hdDMybTFfdCAqKShvcDEpLCAodmZsb2F0MzJtMV90ICopKG9wMiksICh2ZmxvYXQzMm0xX3QgKikob3AzKSwgKHZmbG9hdDMybTFfdCAqKShvcDQpLCAodmZsb2F0MzJtMV90ICopKG9wNSksICh2ZmxvYXQzMm0xX3QgKikob3A2KSwgKHZmbG9hdDMybTFfdCAqKShvcDcpLCAoY29uc3QgZmxvYXQgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mMzJtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xX20oKHZmbG9hdDMybTFfdCAqKShvcDApLCAodmZsb2F0MzJtMV90ICopKG9wMSksICh2ZmxvYXQzMm0xX3QgKikob3AyKSwgKHZmbG9hdDMybTFfdCAqKShvcDMpLCAodmZsb2F0MzJtMV90ICopKG9wNCksICh2ZmxvYXQzMm0xX3QgKikob3A1KSwgKHZmbG9hdDMybTFfdCAqKShvcDYpLCAodmZsb2F0MzJtMV90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQzMm0xX3QpKG9wOSksICh2ZmxvYXQzMm0xX3QpKG9wMTApLCAodmZsb2F0MzJtMV90KShvcDExKSwgKHZmbG9hdDMybTFfdCkob3AxMiksICh2ZmxvYXQzMm0xX3QpKG9wMTMpLCAodmZsb2F0MzJtMV90KShvcDE0KSwgKHZmbG9hdDMybTFfdCkob3AxNSksICh2ZmxvYXQzMm0xX3QpKG9wMTYpLCAoY29uc3QgZmxvYXQgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YzMm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMzJtZjIoKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKGNvbnN0IGZsb2F0ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjMybWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjMybWYyX20oKHZmbG9hdDMybWYyX3QgKikob3AwKSwgKHZmbG9hdDMybWYyX3QgKikob3AxKSwgKHZmbG9hdDMybWYyX3QgKikob3AyKSwgKHZmbG9hdDMybWYyX3QgKikob3AzKSwgKHZmbG9hdDMybWYyX3QgKikob3A0KSwgKHZmbG9hdDMybWYyX3QgKikob3A1KSwgKHZmbG9hdDMybWYyX3QgKikob3A2KSwgKHZmbG9hdDMybWYyX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDMybWYyX3QpKG9wOSksICh2ZmxvYXQzMm1mMl90KShvcDEwKSwgKHZmbG9hdDMybWYyX3QpKG9wMTEpLCAodmZsb2F0MzJtZjJfdCkob3AxMiksICh2ZmxvYXQzMm1mMl90KShvcDEzKSwgKHZmbG9hdDMybWYyX3QpKG9wMTQpLCAodmZsb2F0MzJtZjJfdCkob3AxNSksICh2ZmxvYXQzMm1mMl90KShvcDE2KSwgKGNvbnN0IGZsb2F0ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpICYmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKHZmbG9hdDY0bTJfdCkob3A3KSwgKHZmbG9hdDY0bTJfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTRfbSgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgZG91YmxlICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2c3NlZzJlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTY0X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodmZsb2F0NjRtNF90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmU2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodmZsb2F0NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNWU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2ZmxvYXQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnOGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZmbG9hdDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NzZWcyZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtNCgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmU2NF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnOGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG00KChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0NjRtNF90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG00X20oKHZib29sMTZfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjY0bTJfbSgodmJvb2wzMl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0yKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNCgoZG91YmxlICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNF9tKCh2Ym9vbDE2X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjY0bTFfbSgodmJvb2w2NF90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG0xKChkb3VibGUgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTQoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQ2NG00X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTRfbSgodmJvb2wxNl90KShvcDApLCAoZG91YmxlICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMigoZG91YmxlICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDY0bTJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTIoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0yX20oKHZib29sMzJfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xX20oKHZib29sNjRfdCkob3AwKSwgKGRvdWJsZSAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTEoKGRvdWJsZSAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQ2NG0xX3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mNjRtMSgoZG91YmxlICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDY0bTFfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mNjRtMV9tKCh2Ym9vbDY0X3QpKG9wMCksIChkb3VibGUgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmU2NF92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdmxzZWcyZTY0X3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTY0X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc1ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzZlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzZlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlNjRmZl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTY0ZmZfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2U2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTY0ZmZfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChzaXplX3QgKikob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNlZzNlNjRmZl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHNpemVfdCAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNGU2NGZmX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAodmZsb2F0NjRtMl90KShvcDcpLCAodmZsb2F0NjRtMl90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNWU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc2ZTY0ZmZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlNjRmZl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0ZmZfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksIChzaXplX3QgKikob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc2VnN2U2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHNpemVfdCAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnN2U2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnOGU2NGZmX3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0ZmZfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGU2NGZmX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAoc2l6ZV90ICopKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0NjRtMV90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmU2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAocHRyZGlmZl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc3NlZzJlNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGU2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHB0cmRpZmZfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNzZWc0ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHB0cmRpZmZfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc3NlZzRlNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAoY29uc3QgZG91YmxlICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGU2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGU2NF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZmbG9hdDY0bTJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0NjRtMl90KShvcDUpLCAodmZsb2F0NjRtMl90KShvcDYpLCAodmZsb2F0NjRtMl90KShvcDcpLCAodmZsb2F0NjRtMl90KShvcDgpLCAoY29uc3QgZG91YmxlICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksIChjb25zdCBkb3VibGUgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksIChwdHJkaWZmX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzc2VnNmU2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnN2U2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnN2U2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksIChwdHJkaWZmX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNzZWc4ZTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGU2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksICh2ZmxvYXQ2NG0xX3QpKG9wMTUpLCAodmZsb2F0NjRtMV90KShvcDE2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQ2NG0yX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ4bWY4X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY4X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQ4bWY4X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50OG1mOF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQ4bWY4X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50OG1mOF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDY0bTFfdCkob3AzKSwgKHZmbG9hdDY0bTFfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTQoKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2Y2NG00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtNF9tKCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0NjRtNF90KShvcDMpLCAodmZsb2F0NjRtNF90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzNlaTE2X3ZfZjY0bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0yX20oKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAoY29uc3QgZG91YmxlICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTE2X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDEzKSwgKHZ1aW50MTZtZjRfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKGNvbnN0IGRvdWJsZSAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50MTZtZjRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2ZmxvYXQ2NG0xX3QgKikob3A2KSwgKHZmbG9hdDY0bTFfdCAqKShvcDcpLCAoY29uc3QgZG91YmxlICopKG9wOCksICh2dWludDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWkxNl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDY0bTFfdCkob3A5KSwgKHZmbG9hdDY0bTFfdCkob3AxMCksICh2ZmxvYXQ2NG0xX3QpKG9wMTEpLCAodmZsb2F0NjRtMV90KShvcDEyKSwgKHZmbG9hdDY0bTFfdCkob3AxMyksICh2ZmxvYXQ2NG0xX3QpKG9wMTQpLCAodmZsb2F0NjRtMV90KShvcDE1KSwgKHZmbG9hdDY0bTFfdCkob3AxNiksIChjb25zdCBkb3VibGUgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDMybTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mNjRtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDY0bTJfdCkob3AzKSwgKHZmbG9hdDY0bTJfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtNCgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQzMm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjY0bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG00X20oKHZmbG9hdDY0bTRfdCAqKShvcDApLCAodmZsb2F0NjRtNF90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQ2NG00X3QpKG9wMyksICh2ZmxvYXQ2NG00X3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAoY29uc3QgZG91YmxlICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQ2NG0xX3QpKG9wNSksICh2ZmxvYXQ2NG0xX3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0yKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2ZmxvYXQ2NG0yX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDY0bTJfdCkob3A1KSwgKHZmbG9hdDY0bTJfdCkob3A2KSwgKHZmbG9hdDY0bTJfdCkob3A3KSwgKHZmbG9hdDY0bTJfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50MzJtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAoY29uc3QgZG91YmxlICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQ2NG0xX3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksIChjb25zdCBkb3VibGUgKikob3AxMyksICh2dWludDMybWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAodmZsb2F0NjRtMV90KShvcDEzKSwgKHZmbG9hdDY0bTFfdCkob3AxNCksIChjb25zdCBkb3VibGUgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2ZmxvYXQ2NG0xX3QgKikob3A3KSwgKGNvbnN0IGRvdWJsZSAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKGNvbnN0IGRvdWJsZSAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQ2NG0xX3QpKG9wMyksICh2ZmxvYXQ2NG0xX3QpKG9wNCksIChjb25zdCBkb3VibGUgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2Y2NG0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksIChjb25zdCBkb3VibGUgKikob3AyKSwgKHZ1aW50NjRtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0NjRtMl90KShvcDMpLCAodmZsb2F0NjRtMl90KShvcDQpLCAoY29uc3QgZG91YmxlICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mNjRtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG00KCh2ZmxvYXQ2NG00X3QgKikob3AwKSwgKHZmbG9hdDY0bTRfdCAqKShvcDEpLCAoY29uc3QgZG91YmxlICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mNjRtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTRfbSgodmZsb2F0NjRtNF90ICopKG9wMCksICh2ZmxvYXQ2NG00X3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDY0bTRfdCkob3AzKSwgKHZmbG9hdDY0bTRfdCkob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksIChjb25zdCBkb3VibGUgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0NjRtMV90KShvcDQpLCAodmZsb2F0NjRtMV90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAoY29uc3QgZG91YmxlICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjY0bTIoKHZmbG9hdDY0bTJfdCAqKShvcDApLCAodmZsb2F0NjRtMl90ICopKG9wMSksICh2ZmxvYXQ2NG0yX3QgKikob3AyKSwgKGNvbnN0IGRvdWJsZSAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjY0bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMl9tKCh2ZmxvYXQ2NG0yX3QgKikob3AwKSwgKHZmbG9hdDY0bTJfdCAqKShvcDEpLCAodmZsb2F0NjRtMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQ2NG0yX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2Y2NG0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKGNvbnN0IGRvdWJsZSAqKShvcDQpLCAodnVpbnQ2NG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDY0bTFfdCkob3A1KSwgKHZmbG9hdDY0bTFfdCkob3A2KSwgKHZmbG9hdDY0bTFfdCkob3A3KSwgKHZmbG9hdDY0bTFfdCkob3A4KSwgKGNvbnN0IGRvdWJsZSAqKShvcDkpLCAodnVpbnQ2NG0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mNjRtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMigodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksIChjb25zdCBkb3VibGUgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2Y2NG0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjY0bTJfbSgodmZsb2F0NjRtMl90ICopKG9wMCksICh2ZmxvYXQ2NG0yX3QgKikob3AxKSwgKHZmbG9hdDY0bTJfdCAqKShvcDIpLCAodmZsb2F0NjRtMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQ2NG0yX3QpKG9wNSksICh2ZmxvYXQ2NG0yX3QpKG9wNiksICh2ZmxvYXQ2NG0yX3QpKG9wNyksICh2ZmxvYXQ2NG0yX3QpKG9wOCksIChjb25zdCBkb3VibGUgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjY0bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMV9tKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0NjRtMV90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKGNvbnN0IGRvdWJsZSAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2Y2NG0xKCh2ZmxvYXQ2NG0xX3QgKikob3AwKSwgKHZmbG9hdDY0bTFfdCAqKShvcDEpLCAodmZsb2F0NjRtMV90ICopKG9wMiksICh2ZmxvYXQ2NG0xX3QgKikob3AzKSwgKHZmbG9hdDY0bTFfdCAqKShvcDQpLCAodmZsb2F0NjRtMV90ICopKG9wNSksIChjb25zdCBkb3VibGUgKikob3A2KSwgKHZ1aW50NjRtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0NjRtMV90KShvcDcpLCAodmZsb2F0NjRtMV90KShvcDgpLCAodmZsb2F0NjRtMV90KShvcDkpLCAodmZsb2F0NjRtMV90KShvcDEwKSwgKHZmbG9hdDY0bTFfdCkob3AxMSksICh2ZmxvYXQ2NG0xX3QpKG9wMTIpLCAoY29uc3QgZG91YmxlICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mNjRtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mNjRtMSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksIChjb25zdCBkb3VibGUgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2Y2NG0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjY0bTFfbSgodmZsb2F0NjRtMV90ICopKG9wMCksICh2ZmxvYXQ2NG0xX3QgKikob3AxKSwgKHZmbG9hdDY0bTFfdCAqKShvcDIpLCAodmZsb2F0NjRtMV90ICopKG9wMyksICh2ZmxvYXQ2NG0xX3QgKikob3A0KSwgKHZmbG9hdDY0bTFfdCAqKShvcDUpLCAodmZsb2F0NjRtMV90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQ2NG0xX3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKGNvbnN0IGRvdWJsZSAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjY0bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjY0bTEoKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksIChjb25zdCBkb3VibGUgKikob3A4KSwgKHZ1aW50NjRtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mNjRtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2Y2NG0xX20oKHZmbG9hdDY0bTFfdCAqKShvcDApLCAodmZsb2F0NjRtMV90ICopKG9wMSksICh2ZmxvYXQ2NG0xX3QgKikob3AyKSwgKHZmbG9hdDY0bTFfdCAqKShvcDMpLCAodmZsb2F0NjRtMV90ICopKG9wNCksICh2ZmxvYXQ2NG0xX3QgKikob3A1KSwgKHZmbG9hdDY0bTFfdCAqKShvcDYpLCAodmZsb2F0NjRtMV90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQ2NG0xX3QpKG9wOSksICh2ZmxvYXQ2NG0xX3QpKG9wMTApLCAodmZsb2F0NjRtMV90KShvcDExKSwgKHZmbG9hdDY0bTFfdCkob3AxMiksICh2ZmxvYXQ2NG0xX3QpKG9wMTMpLCAodmZsb2F0NjRtMV90KShvcDE0KSwgKHZmbG9hdDY0bTFfdCkob3AxNSksICh2ZmxvYXQ2NG0xX3QpKG9wMTYpLCAoY29uc3QgZG91YmxlICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X3pmaCkgJiYgZGVmaW5lZChfX3Jpc2N2X3p2bHNzZWcpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY4X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWczZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDhtZjhfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50OG1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ4bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50OG1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtZjhfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWY4X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ4bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50OG1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDhtZjhfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc2ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ4bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ4bWY4X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50OG1mOF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDhtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ4bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50OG1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjhfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQ4bWY4X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ4bWY4X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDhtZjhfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZib29sOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTQoKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm00X20oKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQxNm1mNF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MTZtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm1mNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnN2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MTZtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm1mNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50MTZtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTMyX3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDMybThfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtOF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWcyZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MzJtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm0yX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm00X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAodmZsb2F0MTZtMl90KShvcDcpLCAodmZsb2F0MTZtMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MzJtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDMybWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MzJtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm1mMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQzMm0yX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDMybTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQzMm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsb3hzZWc2ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtZjJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc3ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxveHNlZzdlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDMybWYyX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDMybTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQzMm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50MzJtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MzJtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnMmVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsb3hzZWcyZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxveHNlZzJlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2Ym9vbDE2X3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG04X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bThfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50NjRtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsb3hzZWczZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG0yX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzNlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bG94c2VnM2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxveHNlZzRlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bThfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmJvb2wzMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc0ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDY0bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bG94c2VnNGVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDY0bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG00X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxveHNlZzVlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ2NG00X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bG94c2VnNWVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDY0bTJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsb3hzZWc1ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50NjRtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ2NG00X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50NjRtNF90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bG94c2VnNmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDY0bTJfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsb3hzZWc2ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAodnVpbnQ2NG0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxveHNlZzZlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ2NG0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG00X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxveHNlZzdlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTRfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmJvb2wzMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc3ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bG94c2VnN2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDY0bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50NjRtNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDY0bTRfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDY0bTJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQ2NG0yX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bG94c2VnOGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ2NG0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsb3hzZWc4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTUpLCAodmZsb2F0MTZtZjRfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50NjRtMV90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksIChzaXplX3QpKG9wMykpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnMmUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMpIFwKX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2c3NlZzJlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZzc2VnMmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc2VnM2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzNlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzZWczZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc0ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc2VnNGUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzZWc1ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNWUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NlZzVlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnNmUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc2ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc2VnNmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NlZzdlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc3ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc2VnN2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZmbG9hdDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2ZmxvYXQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodmZsb2F0MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzZWc4ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNzc2VnMmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzc3NlZzJlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzc3NlZzNlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnM2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3NzZWczZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzc3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNGUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3NzZWc0ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3NzZWc1ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzVlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNzc2VnNWUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzc3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnNmUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3NzZWc2ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnNmUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzdlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNzc2VnN2UxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHB0cmRpZmZfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksIChwdHJkaWZmX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAocHRyZGlmZl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksIChwdHJkaWZmX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzc3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHB0cmRpZmZfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3NzZWc4ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAocHRyZGlmZl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTJfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTJfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtMV90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk4X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0xX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjhfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkxNl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTRfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMl90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybThfdCkob3AxKSwgKHZmbG9hdDE2bTRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtNF9tKCh2Ym9vbDRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybThfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnM2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm00X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtNF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnNmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc2ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0xX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMV90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzdlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bThfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzdXhzZWcyZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzJlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c3V4c2VnMmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtOF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c3V4c2VnM2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWczZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnN1eHNlZzNlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c3V4c2VnNGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc0ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnN1eHNlZzRlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnN1eHNlZzVlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNWVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTFfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzdXhzZWc1ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG00X3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c3V4c2VnNmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc2ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnN1eHNlZzZlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0yX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnN2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZzdXhzZWc4ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c3V4c2VnOGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnN1eHNlZzhlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bTFfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpOF92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0yX3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm00X20oKHZib29sNF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG0yX3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bTFfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG0xX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtMV90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWY4X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY4X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ4bWYyX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDhtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDhtZjhfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ4bWYyX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mNF90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mNF90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50OG1mOF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50OG1mOF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm00X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0xX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm0yX3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTJfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtZjRfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MTZtMV90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bWY0X3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDE2bTFfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKCh2Ym9vbDMyX3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQxNm1mNF90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTRfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm00KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm04X3QpKG9wMSksICh2ZmxvYXQxNm00X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bTRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTRfbSgodmJvb2w0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm04X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm00X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzNlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtNF90KShvcDEpLCAodmZsb2F0MTZtMl90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMl9tKCh2Ym9vbDhfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTRfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtMl90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTJfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzZlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNmVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtMV90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm1mMl90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm0xKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0yX3QpKG9wMSksICh2ZmxvYXQxNm0xX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTFfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjQoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybWYyX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDMybTJfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQzMm0yX3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQzMm0xX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDMybTFfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50MzJtZjJfdCkob3AxKSwgKHZmbG9hdDE2bWY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2c294c2VnOGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50MzJtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bTJfbSgodmJvb2w4X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG04X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2c294c2VnMmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWcyZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdnNveHNlZzJlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bThfdCkob3AxKSwgKHZmbG9hdDE2bTJfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnM2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZzb3hzZWczZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG04X3QpKG9wMSksICh2ZmxvYXQxNm0yX3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yX20oKHZib29sOF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtOF90KShvcDIpLCAodmZsb2F0MTZtMl90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdnNveHNlZzRlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNGVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZzb3hzZWc0ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjIoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTJfdCkob3AxKSwgKHZmbG9hdDE2bWYyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZzb3hzZWc1ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzVlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjE2bWY0KChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0xX3QpKG9wMSksICh2ZmxvYXQxNm1mNF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2c294c2VnNWVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjE2bWY0X20oKHZib29sNjRfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTFfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtMSgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtNF90KShvcDEpLCAodmZsb2F0MTZtMV90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bTFfbSgodmJvb2wxNl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtNF90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdnNveHNlZzZlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnNmVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm0xX20oKHZib29sMTZfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTRfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mMigoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMl90KShvcDEpLCAodmZsb2F0MTZtZjJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjJfbSgodmJvb2wzMl90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzdlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2c294c2VnN2VpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjRfbSgodmJvb2w2NF90KShvcDApLCAoX0Zsb2F0MTYgKikob3AxKSwgKHZ1aW50NjRtMV90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bTEoKF9GbG9hdDE2ICopKG9wMCksICh2dWludDY0bTRfdCkob3AxKSwgKHZmbG9hdDE2bTFfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMV9tKCh2Ym9vbDE2X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG00X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2c294c2VnOGVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bWYyKChfRmxvYXQxNiAqKShvcDApLCAodnVpbnQ2NG0yX3QpKG9wMSksICh2ZmxvYXQxNm1mMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjE2bWYyX20oKHZib29sMzJfdCkob3AwKSwgKF9GbG9hdDE2ICopKG9wMSksICh2dWludDY0bTJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdnNveHNlZzhlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YxNm1mNCgoX0Zsb2F0MTYgKikob3AwKSwgKHZ1aW50NjRtMV90KShvcDEpLCAodmZsb2F0MTZtZjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZzb3hzZWc4ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2YxNm1mNF9tKCh2Ym9vbDY0X3QpKG9wMCksIChfRmxvYXQxNiAqKShvcDEpLCAodnVpbnQ2NG0xX3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bTQoKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90KShvcDMpKQojZGVmaW5lIHZsc2VnMmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCkob3AzKSkKI2RlZmluZSB2bHNlZzJlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWczZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnM2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzNlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnNGUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWc0ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAoc2l6ZV90KShvcDEyKSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc2VnNWUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHNpemVfdCkob3AxMikpCiNkZWZpbmUgdmxzZWc1ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzVlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChzaXplX3QpKG9wMTIpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc2ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNmUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCkob3AxNCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksIChzaXplX3QpKG9wMTYpKQojZGVmaW5lIHZsc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc2VnN2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHNpemVfdCkob3AxNikpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc3ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAoc2l6ZV90KShvcDE2KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAoc2l6ZV90KShvcDE4KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc2VnOGUxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHNpemVfdCkob3AxOCkpCiNkZWZpbmUgdmxzZWc4ZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzhlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QpKG9wMTgpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHNpemVfdCAqKShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm00KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm00X20oKHZmbG9hdDE2bTRfdCAqKShvcDApLCAodmZsb2F0MTZtNF90ICopKG9wMSksICh2Ym9vbDRfdCkob3AyKSwgKHZmbG9hdDE2bTRfdCkob3AzKSwgKHZmbG9hdDE2bTRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAoc2l6ZV90ICopKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzZWcyZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnMmUxNmZmX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChzaXplX3QgKikob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNlZzJlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHNpemVfdCAqKShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc2VnM2UxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzNlMTZmZl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAoc2l6ZV90ICopKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzZWczZTE2ZmZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChzaXplX3QgKikob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsc2VnNGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAoc2l6ZV90ICopKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHNpemVfdCAqKShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzZWc0ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChzaXplX3QgKikob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHNlZzRlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAoc2l6ZV90ICopKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChzaXplX3QgKikob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAoc2l6ZV90ICopKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNlZzVlMTZmZl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAoc2l6ZV90ICopKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHNpemVfdCAqKShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzZWc1ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHNpemVfdCAqKShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc2VnNWUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChzaXplX3QgKikob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc2VnNmUxNmZmX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksIChzaXplX3QgKikob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNlZzZlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2Ym9vbDE2X3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAoc2l6ZV90ICopKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmxzZWc2ZTE2ZmZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHNpemVfdCAqKShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksIChzaXplX3QgKikob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsc2VnN2UxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAoc2l6ZV90ICopKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHNpemVfdCAqKShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzZWc3ZTE2ZmZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChzaXplX3QgKikob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNlZzdlMTZmZl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAoc2l6ZV90ICopKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHNlZzhlMTZmZl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAoc2l6ZV90ICopKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc2VnOGUxNmZmX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChzaXplX3QgKikob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzJlMTZfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksIChwdHJkaWZmX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmxzc2VnMmUxNl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHB0cmRpZmZfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHNzZWcyZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmJvb2wxNl90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHB0cmRpZmZfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmJvb2w4X3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksIChwdHJkaWZmX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmxzc2VnM2UxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWczZTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAocHRyZGlmZl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsc3NlZzNlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZib29sNjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksIChwdHJkaWZmX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksIChwdHJkaWZmX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHNzZWc0ZTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksIChwdHJkaWZmX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNGUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAocHRyZGlmZl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsc3NlZzRlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZib29sNjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAocHRyZGlmZl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHB0cmRpZmZfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHNzZWc1ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHB0cmRpZmZfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAocHRyZGlmZl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsc3NlZzVlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAocHRyZGlmZl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksIChwdHJkaWZmX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmxzc2VnNWUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksIChwdHJkaWZmX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmJvb2wxNl90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksIChwdHJkaWZmX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksIChjb25zdCBfRmxvYXQxNiAqKShvcDYpLCAocHRyZGlmZl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsc3NlZzZlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAocHRyZGlmZl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmxzc2VnNmUxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHB0cmRpZmZfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHNzZWc2ZTE2X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2Ym9vbDY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHB0cmRpZmZfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHB0cmRpZmZfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHNzZWc3ZTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnN2UxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAocHRyZGlmZl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsc3NlZzdlMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZib29sNjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAocHRyZGlmZl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksIChwdHJkaWZmX3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAocHRyZGlmZl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAocHRyZGlmZl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHNzZWc4ZTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHB0cmRpZmZfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsc3NlZzhlMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHB0cmRpZmZfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmxzc2VnOGUxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksIChwdHJkaWZmX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2Ym9vbDE2X3QpKG9wMiksICh2ZmxvYXQxNm0xX3QpKG9wMyksICh2ZmxvYXQxNm0xX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00KCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50OG0yX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtNF9tKCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ4bWY0X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZib29sMzJfdCkob3AyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDhtZjhfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmJvb2w2NF90KShvcDIpLCAodmZsb2F0MTZtZjRfdCkob3AzKSwgKHZmbG9hdDE2bWY0X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzNlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ4bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpOF92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2Ym9vbDhfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmJvb2wzMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50OG1mOF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ4bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWYyX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDhtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDhtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ4bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50OG1mOF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDhtZjhfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50OG1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDhtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk4X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDhtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZib29sMzJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ4bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ4bWY4X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2Ym9vbDY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50OG1mOF90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzZlaThfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50OG1mMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZib29sMzJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDhtZjhfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpOF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ4bWY4X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50OG1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDhtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQ4bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpOF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50OG1mOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk4X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDhtZjhfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWk4X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjJfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mMl90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjRfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksICh2Ym9vbDMyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTUpLCAodmZsb2F0MTZtZjJfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDhtZjhfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaThfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksICh2Ym9vbDY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAodmZsb2F0MTZtZjRfdCkob3AxMyksICh2ZmxvYXQxNm1mNF90KShvcDE0KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTUpLCAodmZsb2F0MTZtZjRfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50OG1mOF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZib29sMTZfdCkob3AyKSwgKHZmbG9hdDE2bTFfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmJvb2w4X3QpKG9wMiksICh2ZmxvYXQxNm0yX3QpKG9wMyksICh2ZmxvYXQxNm0yX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bTQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtNCgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDE2bTRfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTRfbSgodmZsb2F0MTZtNF90ICopKG9wMCksICh2ZmxvYXQxNm00X3QgKikob3AxKSwgKHZib29sNF90KShvcDIpLCAodmZsb2F0MTZtNF90KShvcDMpLCAodmZsb2F0MTZtNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MTZtZjJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDE2bWYyX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQxNm1mNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDE2bTFfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDE2bTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMTZfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm1mMl90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2Ym9vbDMyX3QpKG9wMyksICh2ZmxvYXQxNm1mMl90KShvcDQpLCAodmZsb2F0MTZtZjJfdCkob3A1KSwgKHZmbG9hdDE2bWYyX3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQxNm1mNF90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWkxNl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm1mNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bTFfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmJvb2wxNl90KShvcDQpLCAodmZsb2F0MTZtMV90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MTZtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bTIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MTZtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm0yX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTJfbSgodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksICh2Ym9vbDhfdCkob3A0KSwgKHZmbG9hdDE2bTJfdCkob3A1KSwgKHZmbG9hdDE2bTJfdCkob3A2KSwgKHZmbG9hdDE2bTJfdCkob3A3KSwgKHZmbG9hdDE2bTJfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDE2bWYyX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQxNm1mMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50MTZtZjRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmJvb2w2NF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDE2bWY0X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtMV90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZib29sMTZfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MTZtMV90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTE2X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQxNm1mMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50MTZtZjJfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkxNl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MTZtZjRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDE2bWY0X3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDE2bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQxNm0xX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MTZtZjJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmJvb2wzMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDE2bWYyX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MTZtZjRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDE2bWY0X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQxNm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZib29sMTZfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDE2bTFfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc3ZWkxNl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDE2bWYyX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQxNm1mMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTE2X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MTZtZjRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmJvb2w2NF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNSksICh2dWludDE2bWY0X3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDE2bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTE2X3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAodmJvb2wxNl90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksICh2ZmxvYXQxNm0xX3QpKG9wMTUpLCAodmZsb2F0MTZtMV90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQxNm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2ZmxvYXQxNm1mMl90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDE2bWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQxNm1mNF90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMTZfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDE2bWY0X3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm00X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpMzJfdl9mMTZtNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm00KCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50MzJtOF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm00X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtNF9tKCh2ZmxvYXQxNm00X3QgKikob3AwKSwgKHZmbG9hdDE2bTRfdCAqKShvcDEpLCAodmJvb2w0X3QpKG9wMiksICh2ZmxvYXQxNm00X3QpKG9wMyksICh2ZmxvYXQxNm00X3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm04X3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm0xX3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmJvb2wzMl90KShvcDIpLCAodmZsb2F0MTZtZjJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzJlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQzMm1mMl90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZib29sNjRfdCkob3AyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybTJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDMybTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtNF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQzMm0xX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDMybTFfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50MzJtZjJfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmJvb2w2NF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKHZmbG9hdDE2bWY0X3QpKG9wNSksICh2ZmxvYXQxNm1mNF90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtZjJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm0yX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZib29sMTZfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOSksICh2dWludDMybTJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNCksICh2dWludDMybTRfdCkob3A1KSwgKHNpemVfdCkob3A2KSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZmbG9hdDE2bTJfdCAqKShvcDMpLCAodmJvb2w4X3QpKG9wNCksICh2ZmxvYXQxNm0yX3QpKG9wNSksICh2ZmxvYXQxNm0yX3QpKG9wNiksICh2ZmxvYXQxNm0yX3QpKG9wNyksICh2ZmxvYXQxNm0yX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm0xX3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZib29sMzJfdCkob3A0KSwgKHZmbG9hdDE2bWYyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQzMm0xX3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQzMm1mMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50MzJtZjJfdCkob3AxMCksIChzaXplX3QpKG9wMTEpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQzMm0yX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTMyX3ZfZjE2bTFfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmJvb2wxNl90KShvcDUpLCAodmZsb2F0MTZtMV90KShvcDYpLCAodmZsb2F0MTZtMV90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQzMm0yX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDMybTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmJvb2wzMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDMybTFfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWkzMl92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50MzJtZjJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmJvb2w2NF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDMybWYyX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybTJfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQzMm0yX3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50MzJtMV90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWkzMl92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50MzJtMV90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDMybWYyX3QpKG9wNyksIChzaXplX3QpKG9wOCkpCiNkZWZpbmUgdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZib29sNjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQzMm1mMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50MzJtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2Ym9vbDE2X3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQzMm0yX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZib29sMzJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksICh2ZmxvYXQxNm1mMl90KShvcDExKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTIpLCAodmZsb2F0MTZtZjJfdCkob3AxMyksICh2ZmxvYXQxNm1mMl90KShvcDE0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTUpLCAodnVpbnQzMm0xX3QpKG9wMTYpLCAoc2l6ZV90KShvcDE3KSkKI2RlZmluZSB2bHV4c2VnN2VpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQzMm1mMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWkzMl92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50MzJtZjJfdCkob3AxNiksIChzaXplX3QpKG9wMTcpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKHZmbG9hdDE2bTFfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50MzJtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNywgb3AxOCwgb3AxOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksICh2Ym9vbDE2X3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAodmZsb2F0MTZtMV90KShvcDExKSwgKHZmbG9hdDE2bTFfdCkob3AxMiksICh2ZmxvYXQxNm0xX3QpKG9wMTMpLCAodmZsb2F0MTZtMV90KShvcDE0KSwgKHZmbG9hdDE2bTFfdCkob3AxNSksICh2ZmxvYXQxNm0xX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDMybTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWkzMl92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDMybTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTMyX3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZmbG9hdDE2bWYyX3QgKikob3AzKSwgKHZmbG9hdDE2bWYyX3QgKikob3A0KSwgKHZmbG9hdDE2bWYyX3QgKikob3A1KSwgKHZmbG9hdDE2bWYyX3QgKikob3A2KSwgKHZmbG9hdDE2bWYyX3QgKikob3A3KSwgKHZib29sMzJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksICh2ZmxvYXQxNm1mMl90KShvcDEzKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTQpLCAodmZsb2F0MTZtZjJfdCkob3AxNSksICh2ZmxvYXQxNm1mMl90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQzMm0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2ZmxvYXQxNm1mNF90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQzMm1mMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpMzJfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAodmZsb2F0MTZtZjRfdCAqKShvcDcpLCAodmJvb2w2NF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksICh2ZmxvYXQxNm1mNF90KShvcDE1KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDMybWYyX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AyKSwgKHZ1aW50NjRtNF90KShvcDMpLCAoc2l6ZV90KShvcDQpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMV9tKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmJvb2wxNl90KShvcDIpLCAodmZsb2F0MTZtMV90KShvcDMpLCAodmZsb2F0MTZtMV90KShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtNF90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWcyZWk2NF92X2YxNm0yKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksIChjb25zdCBfRmxvYXQxNiAqKShvcDIpLCAodnVpbnQ2NG04X3QpKG9wMyksIChzaXplX3QpKG9wNCkpCiNkZWZpbmUgdmx1eHNlZzJlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2Ym9vbDhfdCkob3AyKSwgKHZmbG9hdDE2bTJfdCkob3AzKSwgKHZmbG9hdDE2bTJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bThfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtZjIoKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTJfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2Ym9vbDMyX3QpKG9wMiksICh2ZmxvYXQxNm1mMl90KShvcDMpLCAodmZsb2F0MTZtZjJfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTJfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQpIFwKX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMiksICh2dWludDY0bTFfdCkob3AzKSwgKHNpemVfdCkob3A0KSkKI2RlZmluZSB2bHV4c2VnMmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2Ym9vbDY0X3QpKG9wMiksICh2ZmxvYXQxNm1mNF90KShvcDMpLCAodmZsb2F0MTZtZjRfdCkob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTFfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bTRfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZib29sMTZfdCkob3AzKSwgKHZmbG9hdDE2bTFfdCkob3A0KSwgKHZmbG9hdDE2bTFfdCkob3A1KSwgKHZmbG9hdDE2bTFfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bTIoKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMyksICh2dWludDY0bThfdCkob3A0KSwgKHNpemVfdCkob3A1KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0yX20oKHZmbG9hdDE2bTJfdCAqKShvcDApLCAodmZsb2F0MTZtMl90ICopKG9wMSksICh2ZmxvYXQxNm0yX3QgKikob3AyKSwgKHZib29sOF90KShvcDMpLCAodmZsb2F0MTZtMl90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtOF90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWYyKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDMpLCAodnVpbnQ2NG0yX3QpKG9wNCksIChzaXplX3QpKG9wNSkpCiNkZWZpbmUgdmx1eHNlZzNlaTY0X3ZfZjE2bWYyX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWYyX20oKHZmbG9hdDE2bWYyX3QgKikob3AwKSwgKHZmbG9hdDE2bWYyX3QgKikob3AxKSwgKHZmbG9hdDE2bWYyX3QgKikob3AyKSwgKHZib29sMzJfdCkob3AzKSwgKHZmbG9hdDE2bWYyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTJfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnM2VpNjRfdl9mMTZtZjQob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AzKSwgKHZ1aW50NjRtMV90KShvcDQpLCAoc2l6ZV90KShvcDUpKQojZGVmaW5lIHZsdXhzZWczZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2Ym9vbDY0X3QpKG9wMyksICh2ZmxvYXQxNm1mNF90KShvcDQpLCAodmZsb2F0MTZtZjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDcpLCAodnVpbnQ2NG0xX3QpKG9wOCksIChzaXplX3QpKG9wOSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtNF90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2Ym9vbDE2X3QpKG9wNCksICh2ZmxvYXQxNm0xX3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksIChjb25zdCBfRmxvYXQxNiAqKShvcDkpLCAodnVpbnQ2NG00X3QpKG9wMTApLCAoc2l6ZV90KShvcDExKSkKI2RlZmluZSB2bHV4c2VnNGVpNjRfdl9mMTZtMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMigodmZsb2F0MTZtMl90ICopKG9wMCksICh2ZmxvYXQxNm0yX3QgKikob3AxKSwgKHZmbG9hdDE2bTJfdCAqKShvcDIpLCAodmZsb2F0MTZtMl90ICopKG9wMyksIChjb25zdCBfRmxvYXQxNiAqKShvcDQpLCAodnVpbnQ2NG04X3QpKG9wNSksIChzaXplX3QpKG9wNikpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bTJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMl9tKCh2ZmxvYXQxNm0yX3QgKikob3AwKSwgKHZmbG9hdDE2bTJfdCAqKShvcDEpLCAodmZsb2F0MTZtMl90ICopKG9wMiksICh2ZmxvYXQxNm0yX3QgKikob3AzKSwgKHZib29sOF90KShvcDQpLCAodmZsb2F0MTZtMl90KShvcDUpLCAodmZsb2F0MTZtMl90KShvcDYpLCAodmZsb2F0MTZtMl90KShvcDcpLCAodmZsb2F0MTZtMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtOF90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtMl90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2Ym9vbDMyX3QpKG9wNCksICh2ZmxvYXQxNm1mMl90KShvcDUpLCAodmZsb2F0MTZtZjJfdCkob3A2KSwgKHZmbG9hdDE2bWYyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtMl90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzRlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNikgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A0KSwgKHZ1aW50NjRtMV90KShvcDUpLCAoc2l6ZV90KShvcDYpKQojZGVmaW5lIHZsdXhzZWc0ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2Ym9vbDY0X3QpKG9wNCksICh2ZmxvYXQxNm1mNF90KShvcDUpLCAodmZsb2F0MTZtZjRfdCkob3A2KSwgKHZmbG9hdDE2bWY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A5KSwgKHZ1aW50NjRtMV90KShvcDEwKSwgKHNpemVfdCkob3AxMSkpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNSksICh2dWludDY0bTRfdCkob3A2KSwgKHNpemVfdCkob3A3KSkKI2RlZmluZSB2bHV4c2VnNWVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2Ym9vbDE2X3QpKG9wNSksICh2ZmxvYXQxNm0xX3QpKG9wNiksICh2ZmxvYXQxNm0xX3QpKG9wNyksICh2ZmxvYXQxNm0xX3QpKG9wOCksICh2ZmxvYXQxNm0xX3QpKG9wOSksICh2ZmxvYXQxNm0xX3QpKG9wMTApLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMSksICh2dWludDY0bTRfdCkob3AxMiksIChzaXplX3QpKG9wMTMpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YxNm1mMihvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A1KSwgKHZ1aW50NjRtMl90KShvcDYpLCAoc2l6ZV90KShvcDcpKQojZGVmaW5lIHZsdXhzZWc1ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2Ym9vbDMyX3QpKG9wNSksICh2ZmxvYXQxNm1mMl90KShvcDYpLCAodmZsb2F0MTZtZjJfdCkob3A3KSwgKHZmbG9hdDE2bWYyX3QpKG9wOCksICh2ZmxvYXQxNm1mMl90KShvcDkpLCAodmZsb2F0MTZtZjJfdCkob3AxMCksIChjb25zdCBfRmxvYXQxNiAqKShvcDExKSwgKHZ1aW50NjRtMl90KShvcDEyKSwgKHNpemVfdCkob3AxMykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjE2bWY0KCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDUpLCAodnVpbnQ2NG0xX3QpKG9wNiksIChzaXplX3QpKG9wNykpCiNkZWZpbmUgdmx1eHNlZzVlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZib29sNjRfdCkob3A1KSwgKHZmbG9hdDE2bWY0X3QpKG9wNiksICh2ZmxvYXQxNm1mNF90KShvcDcpLCAodmZsb2F0MTZtZjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTEpLCAodnVpbnQ2NG0xX3QpKG9wMTIpLCAoc2l6ZV90KShvcDEzKSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtMShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTRfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZib29sMTZfdCkob3A2KSwgKHZmbG9hdDE2bTFfdCkob3A3KSwgKHZmbG9hdDE2bTFfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTMpLCAodnVpbnQ2NG00X3QpKG9wMTQpLCAoc2l6ZV90KShvcDE1KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtZjIob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A2KSwgKHZ1aW50NjRtMl90KShvcDcpLCAoc2l6ZV90KShvcDgpKQojZGVmaW5lIHZsdXhzZWc2ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2Ym9vbDMyX3QpKG9wNiksICh2ZmxvYXQxNm1mMl90KShvcDcpLCAodmZsb2F0MTZtZjJfdCkob3A4KSwgKHZmbG9hdDE2bWYyX3QpKG9wOSksICh2ZmxvYXQxNm1mMl90KShvcDEwKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTEpLCAodmZsb2F0MTZtZjJfdCkob3AxMiksIChjb25zdCBfRmxvYXQxNiAqKShvcDEzKSwgKHZ1aW50NjRtMl90KShvcDE0KSwgKHNpemVfdCkob3AxNSkpCiNkZWZpbmUgdmx1eHNlZzZlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNiksICh2dWludDY0bTFfdCkob3A3KSwgKHNpemVfdCkob3A4KSkKI2RlZmluZSB2bHV4c2VnNmVpNjRfdl9mMTZtZjRfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUpIFwKX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjRfbSgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmJvb2w2NF90KShvcDYpLCAodmZsb2F0MTZtZjRfdCkob3A3KSwgKHZmbG9hdDE2bWY0X3QpKG9wOCksICh2ZmxvYXQxNm1mNF90KShvcDkpLCAodmZsb2F0MTZtZjRfdCkob3AxMCksICh2ZmxvYXQxNm1mNF90KShvcDExKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTIpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxMyksICh2dWludDY0bTFfdCkob3AxNCksIChzaXplX3QpKG9wMTUpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm0xKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xKCh2ZmxvYXQxNm0xX3QgKikob3AwKSwgKHZmbG9hdDE2bTFfdCAqKShvcDEpLCAodmZsb2F0MTZtMV90ICopKG9wMiksICh2ZmxvYXQxNm0xX3QgKikob3AzKSwgKHZmbG9hdDE2bTFfdCAqKShvcDQpLCAodmZsb2F0MTZtMV90ICopKG9wNSksICh2ZmxvYXQxNm0xX3QgKikob3A2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wNyksICh2dWludDY0bTRfdCkob3A4KSwgKHNpemVfdCkob3A5KSkKI2RlZmluZSB2bHV4c2VnN2VpNjRfdl9mMTZtMV9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xX20oKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmJvb2wxNl90KShvcDcpLCAodmZsb2F0MTZtMV90KShvcDgpLCAodmZsb2F0MTZtMV90KShvcDkpLCAodmZsb2F0MTZtMV90KShvcDEwKSwgKHZmbG9hdDE2bTFfdCkob3AxMSksICh2ZmxvYXQxNm0xX3QpKG9wMTIpLCAodmZsb2F0MTZtMV90KShvcDEzKSwgKHZmbG9hdDE2bTFfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtNF90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMl90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKCh2ZmxvYXQxNm1mMl90ICopKG9wMCksICh2ZmxvYXQxNm1mMl90ICopKG9wMSksICh2ZmxvYXQxNm1mMl90ICopKG9wMiksICh2ZmxvYXQxNm1mMl90ICopKG9wMyksICh2ZmxvYXQxNm1mMl90ICopKG9wNCksICh2ZmxvYXQxNm1mMl90ICopKG9wNSksICh2ZmxvYXQxNm1mMl90ICopKG9wNiksICh2Ym9vbDMyX3QpKG9wNyksICh2ZmxvYXQxNm1mMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtMl90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzdlaTY0X3ZfZjE2bWY0KG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mNCgodmZsb2F0MTZtZjRfdCAqKShvcDApLCAodmZsb2F0MTZtZjRfdCAqKShvcDEpLCAodmZsb2F0MTZtZjRfdCAqKShvcDIpLCAodmZsb2F0MTZtZjRfdCAqKShvcDMpLCAodmZsb2F0MTZtZjRfdCAqKShvcDQpLCAodmZsb2F0MTZtZjRfdCAqKShvcDUpLCAodmZsb2F0MTZtZjRfdCAqKShvcDYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A3KSwgKHZ1aW50NjRtMV90KShvcDgpLCAoc2l6ZV90KShvcDkpKQojZGVmaW5lIHZsdXhzZWc3ZWk2NF92X2YxNm1mNF9tKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCwgb3AxMSwgb3AxMiwgb3AxMywgb3AxNCwgb3AxNSwgb3AxNiwgb3AxNykgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mNF9tKCh2ZmxvYXQxNm1mNF90ICopKG9wMCksICh2ZmxvYXQxNm1mNF90ICopKG9wMSksICh2ZmxvYXQxNm1mNF90ICopKG9wMiksICh2ZmxvYXQxNm1mNF90ICopKG9wMyksICh2ZmxvYXQxNm1mNF90ICopKG9wNCksICh2ZmxvYXQxNm1mNF90ICopKG9wNSksICh2ZmxvYXQxNm1mNF90ICopKG9wNiksICh2Ym9vbDY0X3QpKG9wNyksICh2ZmxvYXQxNm1mNF90KShvcDgpLCAodmZsb2F0MTZtZjRfdCkob3A5KSwgKHZmbG9hdDE2bWY0X3QpKG9wMTApLCAodmZsb2F0MTZtZjRfdCkob3AxMSksICh2ZmxvYXQxNm1mNF90KShvcDEyKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTMpLCAodmZsb2F0MTZtZjRfdCkob3AxNCksIChjb25zdCBfRmxvYXQxNiAqKShvcDE1KSwgKHZ1aW50NjRtMV90KShvcDE2KSwgKHNpemVfdCkob3AxNykpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bTEob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwKSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTEoKHZmbG9hdDE2bTFfdCAqKShvcDApLCAodmZsb2F0MTZtMV90ICopKG9wMSksICh2ZmxvYXQxNm0xX3QgKikob3AyKSwgKHZmbG9hdDE2bTFfdCAqKShvcDMpLCAodmZsb2F0MTZtMV90ICopKG9wNCksICh2ZmxvYXQxNm0xX3QgKikob3A1KSwgKHZmbG9hdDE2bTFfdCAqKShvcDYpLCAodmZsb2F0MTZtMV90ICopKG9wNyksIChjb25zdCBfRmxvYXQxNiAqKShvcDgpLCAodnVpbnQ2NG00X3QpKG9wOSksIChzaXplX3QpKG9wMTApKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YxNm0xX20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTFfbSgodmZsb2F0MTZtMV90ICopKG9wMCksICh2ZmxvYXQxNm0xX3QgKikob3AxKSwgKHZmbG9hdDE2bTFfdCAqKShvcDIpLCAodmZsb2F0MTZtMV90ICopKG9wMyksICh2ZmxvYXQxNm0xX3QgKikob3A0KSwgKHZmbG9hdDE2bTFfdCAqKShvcDUpLCAodmZsb2F0MTZtMV90ICopKG9wNiksICh2ZmxvYXQxNm0xX3QgKikob3A3KSwgKHZib29sMTZfdCkob3A4KSwgKHZmbG9hdDE2bTFfdCkob3A5KSwgKHZmbG9hdDE2bTFfdCkob3AxMCksICh2ZmxvYXQxNm0xX3QpKG9wMTEpLCAodmZsb2F0MTZtMV90KShvcDEyKSwgKHZmbG9hdDE2bTFfdCkob3AxMyksICh2ZmxvYXQxNm0xX3QpKG9wMTQpLCAodmZsb2F0MTZtMV90KShvcDE1KSwgKHZmbG9hdDE2bTFfdCkob3AxNiksIChjb25zdCBfRmxvYXQxNiAqKShvcDE3KSwgKHZ1aW50NjRtNF90KShvcDE4KSwgKHNpemVfdCkob3AxOSkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bWYyKG9wMCwgb3AxLCBvcDIsIG9wMywgb3A0LCBvcDUsIG9wNiwgb3A3LCBvcDgsIG9wOSwgb3AxMCkgXApfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mMigodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAoY29uc3QgX0Zsb2F0MTYgKikob3A4KSwgKHZ1aW50NjRtMl90KShvcDkpLCAoc2l6ZV90KShvcDEwKSkKI2RlZmluZSB2bHV4c2VnOGVpNjRfdl9mMTZtZjJfbShvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTAsIG9wMTEsIG9wMTIsIG9wMTMsIG9wMTQsIG9wMTUsIG9wMTYsIG9wMTcsIG9wMTgsIG9wMTkpIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtZjJfbSgodmZsb2F0MTZtZjJfdCAqKShvcDApLCAodmZsb2F0MTZtZjJfdCAqKShvcDEpLCAodmZsb2F0MTZtZjJfdCAqKShvcDIpLCAodmZsb2F0MTZtZjJfdCAqKShvcDMpLCAodmZsb2F0MTZtZjJfdCAqKShvcDQpLCAodmZsb2F0MTZtZjJfdCAqKShvcDUpLCAodmZsb2F0MTZtZjJfdCAqKShvcDYpLCAodmZsb2F0MTZtZjJfdCAqKShvcDcpLCAodmJvb2wzMl90KShvcDgpLCAodmZsb2F0MTZtZjJfdCkob3A5KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTApLCAodmZsb2F0MTZtZjJfdCkob3AxMSksICh2ZmxvYXQxNm1mMl90KShvcDEyKSwgKHZmbG9hdDE2bWYyX3QpKG9wMTMpLCAodmZsb2F0MTZtZjJfdCkob3AxNCksICh2ZmxvYXQxNm1mMl90KShvcDE1KSwgKHZmbG9hdDE2bWYyX3QpKG9wMTYpLCAoY29uc3QgX0Zsb2F0MTYgKikob3AxNyksICh2dWludDY0bTJfdCkob3AxOCksIChzaXplX3QpKG9wMTkpKQojZGVmaW5lIHZsdXhzZWc4ZWk2NF92X2YxNm1mNChvcDAsIG9wMSwgb3AyLCBvcDMsIG9wNCwgb3A1LCBvcDYsIG9wNywgb3A4LCBvcDksIG9wMTApIFwKX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtZjQoKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wOCksICh2dWludDY0bTFfdCkob3A5KSwgKHNpemVfdCkob3AxMCkpCiNkZWZpbmUgdmx1eHNlZzhlaTY0X3ZfZjE2bWY0X20ob3AwLCBvcDEsIG9wMiwgb3AzLCBvcDQsIG9wNSwgb3A2LCBvcDcsIG9wOCwgb3A5LCBvcDEwLCBvcDExLCBvcDEyLCBvcDEzLCBvcDE0LCBvcDE1LCBvcDE2LCBvcDE3LCBvcDE4LCBvcDE5KSBcCl9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWY0X20oKHZmbG9hdDE2bWY0X3QgKikob3AwKSwgKHZmbG9hdDE2bWY0X3QgKikob3AxKSwgKHZmbG9hdDE2bWY0X3QgKikob3AyKSwgKHZmbG9hdDE2bWY0X3QgKikob3AzKSwgKHZmbG9hdDE2bWY0X3QgKikob3A0KSwgKHZmbG9hdDE2bWY0X3QgKikob3A1KSwgKHZmbG9hdDE2bWY0X3QgKikob3A2KSwgKHZmbG9hdDE2bWY0X3QgKikob3A3KSwgKHZib29sNjRfdCkob3A4KSwgKHZmbG9hdDE2bWY0X3QpKG9wOSksICh2ZmxvYXQxNm1mNF90KShvcDEwKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTEpLCAodmZsb2F0MTZtZjRfdCkob3AxMiksICh2ZmxvYXQxNm1mNF90KShvcDEzKSwgKHZmbG9hdDE2bWY0X3QpKG9wMTQpLCAodmZsb2F0MTZtZjRfdCkob3AxNSksICh2ZmxvYXQxNm1mNF90KShvcDE2KSwgKGNvbnN0IF9GbG9hdDE2ICopKG9wMTcpLCAodnVpbnQ2NG0xX3QpKG9wMTgpLCAoc2l6ZV90KShvcDE5KSkKI2VuZGlmCgojZGVmaW5lIF9fcmlzY3Zfdl9pbnRyaW5zaWNfb3ZlcmxvYWRpbmcgMQojZGVmaW5lIF9fcnZ2X292ZXJsb2FkZWQgc3RhdGljIGlubGluZSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fb3ZlcmxvYWRhYmxlX18pKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTEpKSkKdmludDhtMV90IHZhZGQodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2YWRkKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG0yX20pKSkKdmludDhtMl90IHZhZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtNCkpKQp2aW50OG00X3QgdmFkZCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2YWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bTgpKSkKdmludDhtOF90IHZhZGQodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZhZGQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2YWRkKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZhZGQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZhZGQodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2YWRkKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2YWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZhZGQodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZhZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFkZCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2YWRkKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdmFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFkZCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFkZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2YWRkKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFkZCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z2KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV92dih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z2KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3YWRkdV92dih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2d2FkZHVfdnYodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2FkZHVfdnYodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3YWRkdV92dih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2d2FkZHVfdnYodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3YWRkdV92dih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV92dih2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndhZGR1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV92dih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV92dih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3Z2KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV92dih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfdnYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdnYodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdnYodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2d2FkZHVfdnYodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3Z2KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ3YWRkdV92dih2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d2FkZHVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdndhZGR1X3Z2KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3YWRkdV92dih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG0yKSkpCnZ1aW50OG0yX3Qgdmx1eGVpOChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtNCkpKQp2dWludDhtNF90IHZsdXhlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTRfbSkpKQp2dWludDhtNF90IHZsdXhlaTgodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U4bTgpKSkKdnVpbnQ4bThfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bHV4ZWk4KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxzZTY0KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bHNlNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsc2U2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxzZTY0KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm0yKSkpCnZvaWQgdnNzZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNCkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNzZTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bTgpKSkKdm9pZCB2c3NlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mMikpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm0xKSkpCnZvaWQgdnNzZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm0yKSkpCnZvaWQgdnNzZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bTQpKSkKdm9pZCB2c3NlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzZTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtOCkpKQp2b2lkIHZzc2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm04X20pKSkKdm9pZCB2c3NlMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMikpKQp2b2lkIHZzc2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm00KSkpCnZvaWQgdnNzZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2kzMm00X20pKSkKdm9pZCB2c3NlMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOCkpKQp2b2lkIHZzc2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtOF9tKSkpCnZvaWQgdnNzZTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTIpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfdTMybTQpKSkKdm9pZCB2c3NlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNzZTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtOCkpKQp2b2lkIHZzc2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm04X20pKSkKdm9pZCB2c3NlMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X3UzMm1mMikpKQp2b2lkIHZzc2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yKSkpCnZvaWQgdnNzZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTQpKSkKdm9pZCB2c3NlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtOCkpKQp2b2lkIHZzc2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9pNjRtOF9tKSkpCnZvaWQgdnNzZTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzZTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTQpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzZTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfdTY0bTgpKSkKdm9pZCB2c3NlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl91NjRtOF9tKSkpCnZvaWQgdnNzZTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTEpKSkKdmludDhtMV90IHZsdXhlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtMikpKQp2aW50OG0yX3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG0yX20pKSkKdmludDhtMl90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bHV4ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bTRfbSkpKQp2aW50OG00X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG0xKSkpCnZ1aW50OG0xX3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtMikpKQp2dWludDhtMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bHV4ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG00X20pKSkKdnVpbnQ4bTRfdCB2bHV4ZWkxNih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtMSkpKQp2aW50OG0xX3Qgdmx1eGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0xX20pKSkKdmludDhtMV90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG0yKSkpCnZpbnQ4bTJfdCB2bHV4ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bTJfbSkpKQp2aW50OG0yX3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdmx1eGVpMzIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsdXhlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtMSkpKQp2dWludDhtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bHV4ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bHV4ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdmx1eGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bTEpKSkKdmludDhtMV90IHZsdXhlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bHV4ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZsdXhlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpNjQoY29uc3QgaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtMSkpKQp2dWludDhtMV90IHZsdXhlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsdXhlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bHV4ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdmx1eGVpNjQoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bTgpKSkKdmludDE2bThfdCB2bHV4ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdmx1eGVpOCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsdXhlaTgoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdmx1eGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsdXhlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdmx1eGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bHV4ZWk4KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZsdXhlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsdXhlaTgodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bHV4ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm00KSkpCnZpbnQxNm00X3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm04KSkpCnZpbnQxNm04X3Qgdmx1eGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsdXhlaTE2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bHV4ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsdXhlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdmx1eGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtMikpKQp2aW50MTZtMl90IHZsdXhlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZsdXhlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdmx1eGVpMzIoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdmx1eGVpMzIoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpMzIoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bHV4ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsdXhlaTY0KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsdXhlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdmx1eGVpNjQoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZsdXhlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2bHV4ZWk4KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpOChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZsdXhlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdmx1eGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bHV4ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsdXhlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsdXhlaTgodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bHV4ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybTgpKSkKdmludDMybThfdCB2bHV4ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdmx1eGVpMTYodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsdXhlaTE2KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bHV4ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdmx1eGVpMTYoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdmx1eGVpMTYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsdXhlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2bHV4ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdmx1eGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZsdXhlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2bHV4ZWkzMih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsdXhlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdmx1eGVpMzIoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bHV4ZWk2NChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdmx1eGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsdXhlaTY0KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZsdXhlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdmx1eGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bHV4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bHV4ZWk2NChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdmx1eGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHV4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsdXhlaTgoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsdXhlaTgoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdmx1eGVpOChjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2bHV4ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bHV4ZWkxNihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpMTYoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZsdXhlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2bHV4ZWkxNihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsdXhlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsdXhlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsdXhlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bHV4ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsdXhlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bHV4ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3Qgdmx1eGVpMzIoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsdXhlaTMyKGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bHV4ZWkzMihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZsdXhlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsdXhlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bHV4ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdmx1eGVpNjQoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsdXhlaTY0KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bHV4ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdmx1eGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdmx1eGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdmx1eGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdmx1eGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTEpKSkKdmludDhtMV90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtMikpKQp2aW50OG0yX3QgdmxveGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bG94ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxveGVpOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bTgpKSkKdmludDhtOF90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bG94ZWk4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bG94ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxveGVpOCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtMSkpKQp2dWludDhtMV90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG94ZWk4KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG00KSkpCnZ1aW50OG00X3QgdmxveGVpOChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxveGVpOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdThtOCkpKQp2dWludDhtOF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bThfbSkpKQp2dWludDhtOF90IHZsb3hlaTgodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTgoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG94ZWkxNihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bTIpKSkKdmludDhtMl90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtNCkpKQp2aW50OG00X3QgdmxveGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG00X20pKSkKdmludDhtNF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpMTYoY29uc3QgaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTE2KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bG94ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtMSkpKQp2dWludDhtMV90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTFfbSkpKQp2dWludDhtMV90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG94ZWkxNihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG00KSkpCnZ1aW50OG00X3QgdmxveGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxveGVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxveGVpMTYoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bTEpKSkKdmludDhtMV90IHZsb3hlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtMikpKQp2aW50OG0yX3QgdmxveGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG0yX20pKSkKdmludDhtMl90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsb3hlaTMyKGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxveGVpMzIoY29uc3QgaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bG94ZWkzMihjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG94ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG0yKSkpCnZ1aW50OG0yX3QgdmxveGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxveGVpMzIoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bG94ZWkzMihjb25zdCB1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG94ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxveGVpNjQoY29uc3QgaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bG94ZWk2NChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZsb3hlaTY0KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsb3hlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG94ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bG94ZWk2NChjb25zdCB1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZsb3hlaTY0KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxveGVpNjQoY29uc3QgdWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsb3hlaTY0KGNvbnN0IHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm00KSkpCnZpbnQxNm00X3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm04KSkpCnZpbnQxNm04X3QgdmxveGVpOChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsb3hlaTgodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG94ZWk4KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsb3hlaTgoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxveGVpOCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsb3hlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxveGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmxveGVpOCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtOCkpKQp2dWludDE2bThfdCB2bG94ZWk4KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bG94ZWk4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxveGVpOChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTgoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxveGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtMikpKQp2aW50MTZtMl90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bG94ZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtOCkpKQp2aW50MTZtOF90IHZsb3hlaTE2KGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm04X20pKSkKdmludDE2bThfdCB2bG94ZWkxNih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxveGVpMTYoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG94ZWkxNihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2bG94ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkxNihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmxveGVpMTYoY29uc3QgdWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bG94ZWkzMihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bG94ZWkzMihjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsb3hlaTMyKGNvbnN0IGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWkzMihjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxveGVpNjQoY29uc3QgaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsb3hlaTY0KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG94ZWk2NChjb25zdCBpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsb3hlaTY0KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZsb3hlaTY0KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bG94ZWk2NChjb25zdCB1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsb3hlaTY0KGNvbnN0IHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2bG94ZWk4KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxveGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTgoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsb3hlaTgoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxveGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtOCkpKQp2dWludDMybThfdCB2bG94ZWk4KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxveGVpOChjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmxveGVpMTYoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmxveGVpMTYoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZsb3hlaTE2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bG94ZWkxNihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxveGVpMTYoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsb3hlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bG94ZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsb3hlaTE2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkxNihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxveGVpMzIoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsb3hlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2bG94ZWkzMihjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxveGVpMzIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTMyKGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bG94ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsb3hlaTMyKGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkzMihjb25zdCB1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bG94ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxveGVpNjQoY29uc3QgaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZsb3hlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bG94ZWk2NChjb25zdCBpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsb3hlaTY0KGNvbnN0IGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsb3hlaTY0KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxveGVpNjQoY29uc3QgdWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZsb3hlaTY0KGNvbnN0IHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsb3hlaTgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsb3hlaTgodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWk4KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtMSkpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0xX20pKSkKdm9pZCB2c2U4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG0yKSkpCnZvaWQgdnNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bTJfbSkpKQp2b2lkIHZzZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bTQpKSkKdm9pZCB2c2U4KGludDhfdCAqIG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtNF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtOCkpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG04X20pKSkKdm9pZCB2c2U4KHZib29sMV90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mMikpKQp2b2lkIHZzZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjJfbSkpKQp2b2lkIHZzZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfaThtZjQpKSkKdm9pZCB2c2U4KGludDhfdCAqIG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY0X20pKSkKdm9pZCB2c2U4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X2k4bWY4KSkpCnZvaWQgdnNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG94ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsb3hlaTgoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxveGVpOChjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2bG94ZWk4KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsb3hlaTE2KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWkxNihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmxveGVpMTYoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2bG94ZWkxNihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsb3hlaTE2KGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2bG94ZWkzMihjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmxveGVpMzIoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZsb3hlaTMyKGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG94ZWkzMihjb25zdCB1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZsb3hlaTMyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZsb3hlaTMyKGNvbnN0IHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZsb3hlaTMyKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bG94ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmxveGVpNjQoY29uc3QgaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZsb3hlaTY0KGNvbnN0IGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bG94ZWk2NChjb25zdCBpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxveGVpNjQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmxveGVpNjQoY29uc3QgdWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTEpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0xX20pKSkKdm9pZCB2c2U4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTIpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG0yX20pKSkKdm9pZCB2c2U4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTQpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG00X20pKSkKdm9pZCB2c2U4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bTgpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG04X20pKSkKdm9pZCB2c2U4KHZib29sMV90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWYyKSkpCnZvaWQgdnNlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlOF92X3U4bWYyX20pKSkKdm9pZCB2c2U4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjQpKSkKdm9pZCB2c2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mOCkpKQp2b2lkIHZzZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZThfdl91OG1mOF9tKSkpCnZvaWQgdnNlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdndhZGR1X3d2KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3YWRkdV93dih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3d2KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3YWRkdV93dih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3YWRkdV93dih2dWludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3YodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndhZGR1X3d2KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndhZGR1X3d2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2FkZHVfd3YodnVpbnQxNm00X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2FkZHVfd3YodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ3YWRkdV93dih2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3YWRkdV93dih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfd3YodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV93dih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMSkpKQp2dWludDMybTFfdCB2d2FkZHVfd3YodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3YWRkdV93dih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdndhZGR1X3d2KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtNCkpKQp2dWludDMybTRfdCB2d2FkZHVfd3YodnVpbnQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdndhZGR1X3d2KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdndhZGR1X3d2KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ3YWRkdV93dih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3YWRkdV93dih2dWludDY0bTFfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndhZGR1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtMikpKQp2dWludDY0bTJfdCB2d2FkZHVfd3YodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ3YWRkdV93dih2dWludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d2FkZHVfd3YodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdndhZGR1X3d2KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3YWRkdV93dih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0xKSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG0yKSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtMl9tKSkpCnZvaWQgdnNzZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG00KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtNF9tKSkpCnZvaWQgdnNzZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG04KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtOF9tKSkpCnZvaWQgdnNzZTgodmJvb2wxX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG1mMikpKQp2b2lkIHZzc2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0KSkpCnZvaWQgdnNzZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2U4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtMikpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bTQpKSkKdm9pZCB2c3V4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnN1eGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG0yKSkpCnZvaWQgdnN1eGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2YWRkKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG0xX20pKSkKdmludDhtMV90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMikpKQp2aW50OG0yX3QgdmFkZCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTQpKSkKdmludDhtNF90IHZhZGQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG04KSkpCnZpbnQ4bThfdCB2YWRkKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pOG04X20pKSkKdmludDhtOF90IHZhZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YWRkKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2YWRkKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2YWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YWRkKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZhZGQodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2YWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2YWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFkZCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmFkZCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFkZCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhZGQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFkZCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybTQpKSkKdmludDMybTRfdCB2YWRkKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFkZCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFkZCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZhZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFkZCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2YWRkKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZhZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMSkpKQp2dWludDhtMV90IHZhZGQodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFkZCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2YWRkKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRkKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhZGQodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOCkpKQp2dWludDhtOF90IHZhZGQodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFkZCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YWRkKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRkKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2YWRkKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YWRkKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2YWRkKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGQodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFkZCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhZGQodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGQodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YWRkKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtMikpKQp2dWludDMybTJfdCB2YWRkKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtNCkpKQp2dWludDMybTRfdCB2YWRkKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhZGQodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YWRkKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFkZCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFkZCh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkZCh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFkZCh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRkKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhZGQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNCkpKQp2dWludDhtNF90IHZhZGQodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdmFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04KSkpCnZ1aW50OG04X3QgdmFkZCh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2YWRkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGQodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRkKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZhZGQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFkZCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGQodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhZGQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhZGQodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZhZGQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFkZCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2YWRkKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YWRkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFkZCh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGQodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhZGQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFkZCh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFkZCh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFkZCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtOCkpKQp2dWludDMybThfdCB2YWRkKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRkX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFkZCh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YWRkKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YWRkKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2YWRkKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YWRkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2YWRkKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YWRkKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkZF92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YWRkKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGRfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YWRkKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzdWIodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG0yX20pKSkKdmludDhtMl90IHZzdWIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdnN1Yih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzdWIodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdnN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnN1Yih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c3ViKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnN1Yih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzdWIodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c3ViKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzdWIodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnN1Yih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c3ViKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnN1Yih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnN1Yih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZzdWIodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnN1Yih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bTIpKSkKdm9pZCB2c3V4ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG0xX20pKSkKdmludDhtMV90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdnN1Yih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzdWIodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04KSkpCnZpbnQ4bThfdCB2c3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pOG04X20pKSkKdmludDhtOF90IHZzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c3ViKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c3ViKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnN1Yih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnN1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzdWIodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnN1Yih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnN1Yih2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnN1Yih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnN1Yih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMSkpKQp2dWludDhtMV90IHZzdWIodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnN1Yih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c3ViKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3ViKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzdWIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtOCkpKQp2dWludDhtOF90IHZzdWIodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnN1Yih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c3ViKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c3ViKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c3ViKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c3ViKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c3ViKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzdWIodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnN1Yih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzdWIodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzdWIodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c3ViKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtMikpKQp2dWludDMybTJfdCB2c3ViKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c3ViKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzdWIodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3ViKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnN1Yih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnN1Yih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnN1Yih2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnN1Yih2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3ViKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtNCkpKQp2dWludDhtNF90IHZzdWIodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04KSkpCnZ1aW50OG04X3QgdnN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c3ViKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzdWIodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c3ViKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzdWIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnN1Yih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzdWIodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzdWIodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzdWIodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnN1Yih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c3ViKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnN1Yih2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnN1Yih2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnN1Yih2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnN1Yih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2c3ViKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c3ViKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3ViX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnN1Yih2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c3ViKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3ViKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c3ViKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c3ViKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3ViKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1Yl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c3ViKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdWJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3ViKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2cnN1Yih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bTIpKSkKdmludDhtMl90IHZyc3ViKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cnN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtNCkpKQp2aW50OG00X3QgdnJzdWIodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG00X20pKSkKdmludDhtNF90IHZyc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG04KSkpCnZpbnQ4bThfdCB2cnN1Yih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnJzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJzdWIodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZyc3ViKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZyc3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cnN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2cnN1Yih2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJzdWIodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnJzdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cnN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2cnN1Yih2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZyc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZyc3ViKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cnN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJzdWIodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2cnN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTEpKSkKdmludDMybTFfdCB2cnN1Yih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTIpKSkKdmludDMybTJfdCB2cnN1Yih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyc3ViKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2cnN1Yih2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZyc3ViKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZyc3ViKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJzdWIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cnN1Yih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZyc3ViKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZyc3ViKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZyc3ViKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZyc3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZyc3ViKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cnN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2cnN1Yih2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnJzdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2cnN1Yih2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnJzdWIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2cnN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnJzdWIodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyc3ViKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnJzdWIodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2cnN1Yih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyc3ViKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMikpKQp2dWludDE2bTJfdCB2cnN1Yih2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZyc3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2cnN1Yih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZyc3ViKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2cnN1Yih2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZyc3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyc3ViKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJzdWIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJzdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2cnN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJzdWIodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cnN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyc3ViKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJzdWIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2cnN1Yih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyc3ViKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2cnN1Yih2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyc3ViKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyc3ViKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyc3ViKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJzdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2cnN1Yih2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cnN1Yl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZyc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJzdWIodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJzdWJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2cnN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZyc3ViKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zyc3ViX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnJzdWIodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3YWRkdV92eCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndhZGR1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3Z4KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d2FkZHVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z4KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndhZGR1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndhZGR1X3Z4KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d2FkZHVfdngodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndhZGR1X3Z4KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2FkZHVfdngodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndhZGR1X3Z4KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d2FkZHVfdngodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfdngodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndhZGR1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndhZGR1X3Z4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d2FkZHVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV92eCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfdngodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3Z4KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV92eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV92eCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfdngodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfdngodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3YWRkdV92eCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndhZGR1X3Z4KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3YWRkdV92eCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d2FkZHVfdngodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndhZGR1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3YWRkdV92eCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d2FkZHVfdngodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92dih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92dih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdnYodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdnYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3c3VidV92dih2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3N1YnVfdnYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndzdWJ1X3Z2KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndzdWJ1X3Z2KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d3N1YnVfdnYodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3Z2KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d3N1YnVfdnYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfdnYodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3c3VidV92dih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2d3N1YnVfdnYodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3N1YnVfdnYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtMikpKQp2dWludDMybTJfdCB2d3N1YnVfdnYodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndzdWJ1X3Z2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3c3VidV92dih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91MzJtOCkpKQp2dWludDMybThfdCB2d3N1YnVfdnYodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndzdWJ1X3Z2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3Z2KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3Z2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndzdWJ1X3Z2KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3c3VidV92dih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2d3N1YnVfdnYodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3Z2KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3c3VidV92dih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d3N1YnVfdnYodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3c3VidV92eCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndzdWJ1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndzdWJ1X3Z4KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3Z4KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndzdWJ1X3Z4KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfdngodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndzdWJ1X3Z4KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d3N1YnVfdngodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3Z4KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d3N1YnVfdngodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfdngodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndzdWJ1X3Z4KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3Z4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3N1YnVfdngodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3c3VidV92eCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d3N1YnVfdngodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndzdWJ1X3Z4KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3c3VidV92eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3c3VidV92eCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d3N1YnVfdngodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3N1YnVfdngodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3c3VidV92eCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndzdWJ1X3Z4KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3c3VidV92eCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d3N1YnVfdngodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3Z4KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3c3VidV92eCh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d3N1YnVfdngodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d2FkZF92dih2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndhZGRfdnYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3YWRkX3Z2KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d2FkZF92dih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZ3YWRkX3Z2KHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtMikpKQp2aW50MTZtMl90IHZ3YWRkX3Z2KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2d2FkZF92dih2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2FkZF92dih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfdnYodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndhZGRfdnYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndhZGRfdnYodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndhZGRfdnYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3YWRkX3Z2KHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2d2FkZF92dih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2d2FkZF92dih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3YWRkX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2d2FkZF92dih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3YWRkX3Z2KHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndhZGRfdnYodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndhZGRfdnYodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3YWRkX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ3YWRkX3Z2KHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndhZGRfdnYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3YWRkX3Z2KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZ3YWRkX3Z2KHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndhZGRfdnYodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d2FkZF92eCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2FkZF92eCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d2FkZF92eCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndhZGRfdngodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3YWRkX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3YWRkX3Z4KHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3Z4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d2FkZF92eCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2FkZF92eCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfdngodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndhZGRfdngodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndhZGRfdngodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d2FkZF92eCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d2FkZF92eCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3YWRkX3Z4KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndhZGRfdngodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3YWRkX3Z4KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndhZGRfdngodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndhZGRfdngodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d2FkZF92eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d2FkZF92eCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d2FkZF92eCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3YWRkX3Z4KHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndhZGRfdngodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3YWRkX3Z4KHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndhZGRfdngodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3YWRkX3Z4KHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndhZGRfdngodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfdnYodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d3N1Yl92dih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d3N1Yl92dih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3c3ViX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2d3N1Yl92dih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfdnYodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndzdWJfdnYodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3c3ViX3Z2KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3Z2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z2KHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2d3N1Yl92dih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndzdWJfdnYodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2d3N1Yl92dih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndzdWJfdnYodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2d3N1Yl92dih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3c3ViX3Z2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3c3ViX3Z2KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d3N1Yl92dih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl92dih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3Z2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl92dih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3Z2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl92dih2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3Z2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfdngodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndzdWJfdngodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfdngodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3c3ViX3Z4KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3N1Yl92eCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2d3N1Yl92eCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d3N1Yl92eCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfdngodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndzdWJfdngodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3c3ViX3Z4KHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3Z4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3Z4KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndzdWJfdngodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfdngodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTIpKSkKdmludDMybTJfdCB2d3N1Yl92eCh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3c3ViX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2d3N1Yl92eCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3c3ViX3Z4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZ3c3ViX3Z4KHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndzdWJfdngodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndzdWJfdngodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndzdWJfdngodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl92eCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3Z4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl92eCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3Z4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl92eCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3Z4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d2FkZHVfd3godnVpbnQxNm1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d2FkZHVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndhZGR1X3d4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndhZGR1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3godnVpbnQxNm0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d2FkZHVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtMikpKQp2dWludDE2bTJfdCB2d2FkZHVfd3godnVpbnQxNm0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d2FkZHVfd3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3YWRkdV93eCh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3YWRkdV93eCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndhZGR1X3d4KHZ1aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndhZGR1X3d4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3YWRkdV93eCh2dWludDMybWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d2FkZHVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtMSkpKQp2dWludDMybTFfdCB2d2FkZHVfd3godnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndhZGR1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3YWRkdV93eCh2dWludDMybTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2FkZHVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybTQpKSkKdnVpbnQzMm00X3QgdndhZGR1X3d4KHZ1aW50MzJtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3YWRkdV93eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3YWRkdV93eCh2dWludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTMybThfbSkpKQp2dWludDMybThfdCB2d2FkZHVfd3godmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d2FkZHVfd3godnVpbnQ2NG0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndhZGR1X3d4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3YWRkdV93eCh2dWludDY0bTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d2FkZHVfd3godmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZHVfd3hfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndhZGR1X3d4KHZ1aW50NjRtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3YWRkdV93eCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkdV93eF91NjRtOCkpKQp2dWludDY0bThfdCB2d2FkZHVfd3godnVpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGR1X3d4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndhZGR1X3d4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3YodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndzdWJ1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d3N1YnVfd3YodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndzdWJ1X3d2KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3c3VidV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtMikpKQp2dWludDE2bTJfdCB2d3N1YnVfd3YodnVpbnQxNm0yX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfd3YodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3c3VidV93dih2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3c3VidV93dih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d2KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3c3VidV93dih2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndzdWJ1X3d2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3c3VidV93dih2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3d2KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtMikpKQp2dWludDMybTJfdCB2d3N1YnVfd3YodnVpbnQzMm0yX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndzdWJ1X3d2KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3c3VidV93dih2dWludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d3N1YnVfd3YodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91MzJtOCkpKQp2dWludDMybThfdCB2d3N1YnVfd3YodnVpbnQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndzdWJ1X3d2KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3d2KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3N1YnVfd3YodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3c3VidV93dih2dWludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d3N1YnVfd3YodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3d2KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3c3VidV93dih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93dl91NjRtOCkpKQp2dWludDY0bThfdCB2d3N1YnVfd3YodnVpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndzdWJ1X3d2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3godnVpbnQxNm1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d3N1YnVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d4KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndzdWJ1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3N1YnVfd3godnVpbnQxNm0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3N1YnVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtMikpKQp2dWludDE2bTJfdCB2d3N1YnVfd3godnVpbnQxNm0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d3N1YnVfd3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZ3c3VidV93eCh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZ3c3VidV93eCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d4KHZ1aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndzdWJ1X3d4KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ3c3VidV93eCh2dWludDMybWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d3N1YnVfd3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtMSkpKQp2dWludDMybTFfdCB2d3N1YnVfd3godnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdndzdWJ1X3d4KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3c3VidV93eCh2dWludDMybTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d3N1YnVfd3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybTQpKSkKdnVpbnQzMm00X3QgdndzdWJ1X3d4KHZ1aW50MzJtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3c3VidV93eCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3c3VidV93eCh2dWludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTMybThfbSkpKQp2dWludDMybThfdCB2d3N1YnVfd3godmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3N1YnVfd3godnVpbnQ2NG0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndzdWJ1X3d4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3c3VidV93eCh2dWludDY0bTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2d3N1YnVfd3godmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1YnVfd3hfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndzdWJ1X3d4KHZ1aW50NjRtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ3c3VidV93eCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3VidV93eF91NjRtOCkpKQp2dWludDY0bThfdCB2d3N1YnVfd3godnVpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJ1X3d4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdndzdWJ1X3d4KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndhZGRfd3YodmludDE2bWY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3YWRkX3d2KHZpbnQxNm1mMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndhZGRfd3YodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d2FkZF93dih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndhZGRfd3YodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm00KSkpCnZpbnQxNm00X3QgdndhZGRfd3YodmludDE2bTRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3YWRkX3d2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfd3YodmludDE2bThfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3YWRkX3d2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d2FkZF93dih2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndhZGRfd3YodmludDMybTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2d2FkZF93dih2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3YWRkX3d2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2d2FkZF93dih2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3YWRkX3d2KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndhZGRfd3YodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndhZGRfd3YodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndhZGRfd3YodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2d2FkZF93dih2aW50NjRtMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3YWRkX3d2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2d2FkZF93dih2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3YWRkX3d2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d2FkZF93dih2aW50NjRtOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3YWRkX3d2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndhZGRfd3godmludDE2bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2FkZF93eCh2aW50MTZtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndhZGRfd3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTEpKSkKdmludDE2bTFfdCB2d2FkZF93eCh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndhZGRfd3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndhZGRfd3godmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3YWRkX3d4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm00KSkpCnZpbnQxNm00X3QgdndhZGRfd3godmludDE2bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3YWRkX3d4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kxNm04KSkpCnZpbnQxNm04X3QgdndhZGRfd3godmludDE2bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3YWRkX3d4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d2FkZF93eCh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3YWRkX3d4KHZpbnQzMm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndhZGRfd3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3YWRkX3d4KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndhZGRfd3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3YWRkX3d4KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2FkZF93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndhZGRfd3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04KSkpCnZpbnQzMm04X3QgdndhZGRfd3godmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3YWRkX3d4X2kzMm04X20pKSkKdmludDMybThfdCB2d2FkZF93eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTEpKSkKdmludDY0bTFfdCB2d2FkZF93eCh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3YWRkX3d4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTIpKSkKdmludDY0bTJfdCB2d2FkZF93eCh2aW50NjRtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3YWRkX3d4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTQpKSkKdmludDY0bTRfdCB2d2FkZF93eCh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3YWRkX3d4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bTgpKSkKdmludDY0bThfdCB2d2FkZF93eCh2aW50NjRtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndhZGRfd3hfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3YWRkX3d4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfd3YodmludDE2bWY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d3N1Yl93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3c3ViX3d2KHZpbnQxNm1mMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfd3YodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndzdWJfd3YodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3N1Yl93dih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndzdWJfd3YodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfd3YodmludDE2bTRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3c3ViX3d2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kxNm04KSkpCnZpbnQxNm04X3QgdndzdWJfd3YodmludDE2bThfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3d2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d3N1Yl93dih2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d3N1Yl93dih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndzdWJfd3YodmludDMybTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfd3YodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2d3N1Yl93dih2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2d3N1Yl93dih2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3c3ViX3d2KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndzdWJfd3YodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndzdWJfd3YodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndzdWJfd3YodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl93dih2aW50NjRtMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3d2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl93dih2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl93dih2aW50NjRtOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndzdWJfd3godmludDE2bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d3N1Yl93eCh2aW50MTZtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndzdWJfd3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTEpKSkKdmludDE2bTFfdCB2d3N1Yl93eCh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndzdWJfd3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndzdWJfd3godmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3c3ViX3d4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm00KSkpCnZpbnQxNm00X3QgdndzdWJfd3godmludDE2bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3c3ViX3d4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kxNm04KSkpCnZpbnQxNm04X3QgdndzdWJfd3godmludDE2bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3c3ViX3d4KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d3N1Yl93eCh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3c3ViX3d4KHZpbnQzMm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndzdWJfd3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3c3ViX3d4KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndzdWJfd3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3c3ViX3d4KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3N1Yl93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndzdWJfd3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04KSkpCnZpbnQzMm04X3QgdndzdWJfd3godmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3c3ViX3d4X2kzMm04X20pKSkKdmludDMybThfdCB2d3N1Yl93eCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTEpKSkKdmludDY0bTFfdCB2d3N1Yl93eCh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3c3ViX3d4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTIpKSkKdmludDY0bTJfdCB2d3N1Yl93eCh2aW50NjRtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3c3ViX3d4KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTQpKSkKdmludDY0bTRfdCB2d3N1Yl93eCh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3c3ViX3d4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bTgpKSkKdmludDY0bThfdCB2d3N1Yl93eCh2aW50NjRtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndzdWJfd3hfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3c3ViX3d4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMikpKQp2aW50MTZtMl90IHZ3Y3Z0X3godmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdndjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00KSkpCnZpbnQxNm00X3QgdndjdnRfeCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm00X20pKSkKdmludDE2bTRfdCB2d2N2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTgpKSkKdmludDE2bThfdCB2d2N2dF94KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3Y3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZ3Y3Z0X3godmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3Y3Z0X3godmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d2N2dF94KHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndjdnRfeCh2aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d2N2dF94KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTIpKSkKdmludDMybTJfdCB2d2N2dF94KHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2d2N2dF94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZ3Y3Z0X3godmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3Y3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTgpKSkKdmludDMybThfdCB2d2N2dF94KHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm04X20pKSkKdmludDMybThfdCB2d2N2dF94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdndjdnRfeCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndjdnRfeCh2aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtMikpKQp2aW50NjRtMl90IHZ3Y3Z0X3godmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3Y3Z0X3godmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdndjdnRfeCh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dF94X3hfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2d2N2dF94KHZpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG04X20pKSkKdmludDY0bThfdCB2d2N2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0X3hfeF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndjdnRfeCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnRfeF94X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3Y3Z0X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91OG1mOCkpKQp2b2lkIHZzdXhlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTEpKSkKdmludDhtMV90IHZhZGModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTIpKSkKdmludDhtMl90IHZhZGModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTQpKSkKdmludDhtNF90IHZhZGModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bTgpKSkKdmludDhtOF90IHZhZGModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFkYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faThtZjQpKSkKdmludDhtZjRfdCB2YWRjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pOG1mOCkpKQp2aW50OG1mOF90IHZhZGModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFkYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bTIpKSkKdmludDE2bTJfdCB2YWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kxNm00KSkpCnZpbnQxNm00X3QgdmFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZhZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhZGModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTE2bWY0KSkpCnZpbnQxNm1mNF90IHZhZGModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybTEpKSkKdmludDMybTFfdCB2YWRjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtMikpKQp2aW50MzJtMl90IHZhZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2kzMm00KSkpCnZpbnQzMm00X3QgdmFkYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZhZGModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZhZGModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTEpKSkKdmludDY0bTFfdCB2YWRjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZhZGModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX2k2NG00KSkpCnZpbnQ2NG00X3QgdmFkYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1faTY0bTgpKSkKdmludDY0bThfdCB2YWRjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTEpKSkKdmludDhtMV90IHZhZGModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTIpKSkKdmludDhtMl90IHZhZGModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTQpKSkKdmludDhtNF90IHZhZGModmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bTgpKSkKdmludDhtOF90IHZhZGModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFkYyh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pOG1mNCkpKQp2aW50OG1mNF90IHZhZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faThtZjgpKSkKdmludDhtZjhfdCB2YWRjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFkYyh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bTIpKSkKdmludDE2bTJfdCB2YWRjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kxNm00KSkpCnZpbnQxNm00X3QgdmFkYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtOCkpKQp2aW50MTZtOF90IHZhZGModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhZGModmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFkYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFkYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTIpKSkKdmludDMybTJfdCB2YWRjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZhZGModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTMybTgpKSkKdmludDMybThfdCB2YWRjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YWRjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTEpKSkKdmludDY0bTFfdCB2YWRjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV9pNjRtMikpKQp2aW50NjRtMl90IHZhZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX2k2NG00KSkpCnZpbnQ2NG00X3QgdmFkYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1faTY0bTgpKSkKdmludDY0bThfdCB2YWRjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWRjKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRjKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2YWRjKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFkYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2YWRjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFkYyh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MTZtOCkpKQp2dWludDE2bThfdCB2YWRjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YWRjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YWRjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFkYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtMikpKQp2dWludDMybTJfdCB2YWRjKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZhZGModnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91MzJtOCkpKQp2dWludDMybThfdCB2YWRjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YWRjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkYyh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z2bV91NjRtMikpKQp2dWludDY0bTJfdCB2YWRjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnZtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZhZGModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkYyh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWRjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2YWRjKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWRjKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bTgpKSkKdnVpbnQ4bThfdCB2YWRjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2YWRjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFkYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFkYyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZhZGModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtOCkpKQp2dWludDE2bThfdCB2YWRjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YWRjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhZGModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhZGModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFkYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91MzJtNCkpKQp2dWludDMybTRfdCB2YWRjKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTMybTgpKSkKdnVpbnQzMm04X3QgdmFkYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFkYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFkYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWRjX3Z4bV91NjRtMikpKQp2dWludDY0bTJfdCB2YWRjKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhZGNfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZhZGModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFkY192eG1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFkYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG0xX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faThtMl9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG04X2IxKSkpCnZib29sMV90IHZtYWRjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faThtZjJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTMybTFfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTMybThfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dm1faTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2bV9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faThtMV9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pOG00X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faThtOF9iMSkpKQp2Ym9vbDFfdCB2bWFkYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2kzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1faTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm00X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm04X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZtX3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1fdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm00X2I0KSkpCnZib29sNF90IHZtYWRjKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eG1fdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4bV91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhtX3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pOG00X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bWFkYyh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm0yX2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pOG0yX2I0KSkpCnZib29sNF90IHZtYWRjKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtNF9iMikpKQp2Ym9vbDJfdCB2bWFkYyh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm04X2IyKSkpCnZib29sMl90IHZtYWRjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1hZGModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtYWRjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X2k2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yKSkpCnZvaWQgdnN1eGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bTgpKSkKdm9pZCB2c3V4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMikpKQp2b2lkIHZzdXhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bWFkYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWFkYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWFkYyh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1hZGModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bWFkYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1hZGModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1hZGModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtYWRjKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtYWRjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1hZGModnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1hZGModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1hZGModnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1hZGModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGNfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWFkYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkY192eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtYWRjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRjX3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtYWRjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTEpKSkKdmludDhtMV90IHZzYmModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTIpKSkKdmludDhtMl90IHZzYmModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTQpKSkKdmludDhtNF90IHZzYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bTgpKSkKdmludDhtOF90IHZzYmModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faThtZjQpKSkKdmludDhtZjRfdCB2c2JjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pOG1mOCkpKQp2aW50OG1mOF90IHZzYmModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bTIpKSkKdmludDE2bTJfdCB2c2JjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kxNm00KSkpCnZpbnQxNm00X3QgdnNiYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZzYmModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYmModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYmModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybTEpKSkKdmludDMybTFfdCB2c2JjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtMikpKQp2aW50MzJtMl90IHZzYmModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2kzMm00KSkpCnZpbnQzMm00X3QgdnNiYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZzYmModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZzYmModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTEpKSkKdmludDY0bTFfdCB2c2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZzYmModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNiYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1faTY0bTgpKSkKdmludDY0bThfdCB2c2JjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTEpKSkKdmludDhtMV90IHZzYmModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTIpKSkKdmludDhtMl90IHZzYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTQpKSkKdmludDhtNF90IHZzYmModmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bTgpKSkKdmludDhtOF90IHZzYmModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNiYyh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pOG1mNCkpKQp2aW50OG1mNF90IHZzYmModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faThtZjgpKSkKdmludDhtZjhfdCB2c2JjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNiYyh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bTIpKSkKdmludDE2bTJfdCB2c2JjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kxNm00KSkpCnZpbnQxNm00X3QgdnNiYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtOCkpKQp2aW50MTZtOF90IHZzYmModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYmModmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNiYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNiYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTIpKSkKdmludDMybTJfdCB2c2JjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZzYmModmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTMybTgpKSkKdmludDMybThfdCB2c2JjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2JjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTEpKSkKdmludDY0bTFfdCB2c2JjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV9pNjRtMikpKQp2aW50NjRtMl90IHZzYmModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNiYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1faTY0bTgpKSkKdmludDY0bThfdCB2c2JjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2JjKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2JjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2JjKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2c2JjKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNiYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2c2JjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNiYyh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYmModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MTZtOCkpKQp2dWludDE2bThfdCB2c2JjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2JjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c2JjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNiYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MzJtMikpKQp2dWludDMybTJfdCB2c2JjKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZzYmModnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91MzJtOCkpKQp2dWludDMybThfdCB2c2JjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2JjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNiYyh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z2bV91NjRtMikpKQp2dWludDY0bTJfdCB2c2JjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnZtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYmModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNiYyh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2JjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2JjKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2JjKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bTgpKSkKdnVpbnQ4bThfdCB2c2JjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2c2JjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNiYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNiYyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYmModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtOCkpKQp2dWludDE2bThfdCB2c2JjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2JjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzYmModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYmModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNiYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91MzJtNCkpKQp2dWludDMybTRfdCB2c2JjKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTMybTgpKSkKdnVpbnQzMm04X3QgdnNiYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNiYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNiYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2JjX3Z4bV91NjRtMikpKQp2dWludDY0bTJfdCB2c2JjKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYmNfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYmModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNiY192eG1fdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNiYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG0xX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG04X2IxKSkpCnZib29sMV90IHZtc2JjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dm1faTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2bV9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pOG00X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNiYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2kzMm00X2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1faTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm00X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm04X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZtX3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1fdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm04X2IyKSkpCnZib29sMl90IHZtc2JjKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eG1fdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4bV91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sNjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhtX3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bTIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtNCkpKQp2b2lkIHZzdXhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UxNm04KSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pOG04X2IxKSkpCnZib29sMV90IHZtc2JjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2JjKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNiYyh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2JjKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pOG00X2IyKSkpCnZib29sMl90IHZtc2JjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNiYyh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2JjKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zYmModmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNiYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNiYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNiYyh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zYmModnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNiYyh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zYmModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zYmModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2JjKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2JjKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zYmModnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zYmModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zYmModnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmNfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNiYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiY192eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2JjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JjX3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2JjKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMSkpKQp2aW50OG0xX3QgdmFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhbmQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2YW5kKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG00X20pKSkKdmludDhtNF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtOCkpKQp2aW50OG04X3QgdmFuZCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2YW5kKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFuZCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2YW5kKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZhbmQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2YW5kKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdmFuZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhbmQodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhbmQodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmFuZCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhbmQodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2YW5kKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbmQodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybTgpKSkKdmludDMybThfdCB2YW5kKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2YW5kKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW5kKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW5kKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhbmQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFuZCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2YW5kKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2YW5kKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhbmQodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2YW5kKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG0yX20pKSkKdmludDhtMl90IHZhbmQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtNCkpKQp2aW50OG00X3QgdmFuZCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2YW5kKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhbmQodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdmFuZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZhbmQodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZhbmQodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhbmQodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZhbmQodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhbmQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFuZCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhbmQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhbmQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2YW5kKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YW5kKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YW5kKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YW5kKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFuZCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTIpKSkKdmludDMybTJfdCB2YW5kKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhbmQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTMybTgpKSkKdmludDMybThfdCB2YW5kKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YW5kKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW5kKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFuZCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2YW5kKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZhbmQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbmQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFuZCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0xKSkpCnZ1aW50OG0xX3QgdmFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2YW5kKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZhbmQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNCkpKQp2dWludDhtNF90IHZhbmQodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmFuZCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG04KSkpCnZ1aW50OG04X3QgdmFuZCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YW5kKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZhbmQodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhbmQodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZhbmQodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhbmQodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFuZCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2YW5kKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YW5kKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFuZCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmFuZCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbmQodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbmQodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFuZCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbmQodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW5kKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2YW5kKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW5kKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2YW5kKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YW5kKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMikpKQp2dWludDhtMl90IHZhbmQodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG00KSkpCnZ1aW50OG00X3QgdmFuZCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YW5kKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2YW5kKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZhbmQodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFuZCh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhbmQodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFuZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2YW5kKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFuZCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmFuZCh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFuZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2YW5kKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2YW5kKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhbmQodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhbmQodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2YW5kKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmFuZCh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmFuZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YW5kKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtMikpKQp2dWludDMybTJfdCB2YW5kKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW5kKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2YW5kKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW5kKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbmQodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbmQodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbmRfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbmQodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbmQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbmQodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbmQodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW5kX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbmQodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFuZF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbmQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMSkpKQp2aW50OG0xX3Qgdnhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTIpKSkKdmludDhtMl90IHZ4b3IodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2eG9yKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG00X20pKSkKdmludDhtNF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtOCkpKQp2aW50OG04X3Qgdnhvcih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2eG9yKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdnhvcih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2eG9yKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZ4b3IodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdnhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2eG9yKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdnhvcih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ4b3IodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ4b3IodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdnhvcih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdnhvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTIpKSkKdmludDMybTJfdCB2eG9yKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZ4b3IodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybTgpKSkKdmludDMybThfdCB2eG9yKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2eG9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2eG9yKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2eG9yKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ4b3IodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdnhvcih2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2eG9yKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2eG9yKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTEpKSkKdmludDhtMV90IHZ4b3IodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2eG9yKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG0yX20pKSkKdmludDhtMl90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtNCkpKQp2aW50OG00X3Qgdnhvcih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2eG9yKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bTgpKSkKdmludDhtOF90IHZ4b3IodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdnhvcih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZ4b3IodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZ4b3IodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZ4b3IodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ4b3IodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ4b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdnhvcih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ4b3IodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2eG9yKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2eG9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2eG9yKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2eG9yKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdnhvcih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTIpKSkKdmludDMybTJfdCB2eG9yKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ4b3IodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTMybTgpKSkKdmludDMybThfdCB2eG9yKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2eG9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2eG9yKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdnhvcih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2eG9yKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ4b3IodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ4b3IodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdnhvcih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnN1eGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bTgpKSkKdm9pZCB2c3V4ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdnhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2eG9yKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNCkpKQp2dWludDhtNF90IHZ4b3IodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdnhvcih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04KSkpCnZ1aW50OG04X3Qgdnhvcih2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2eG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZ4b3IodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZ4b3IodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZ4b3IodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZ4b3IodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdnhvcih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MTZtOCkpKQp2dWludDE2bThfdCB2eG9yKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2eG9yKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdnhvcih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdnhvcih2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ4b3IodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ4b3IodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdnhvcih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ4b3IodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2eG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtMikpKQp2dWludDY0bTJfdCB2eG9yKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2eG9yKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2eG9yKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2eG9yKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMikpKQp2dWludDhtMl90IHZ4b3IodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdnhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00KSkpCnZ1aW50OG00X3Qgdnhvcih2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2eG9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2eG9yKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZ4b3IodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdnhvcih2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZ4b3IodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdnhvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2eG9yKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdnhvcih2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdnhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdnhvcih2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdnhvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2eG9yKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2eG9yKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ4b3IodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ4b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2eG9yKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdnhvcih2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdnhvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMSkpKQp2dWludDMybTFfdCB2eG9yKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2eG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtMikpKQp2dWludDMybTJfdCB2eG9yKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2eG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2eG9yKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2eG9yKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ4b3IodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ4b3IodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z4b3JfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2eG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ4b3IodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ4b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ4b3IodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZ4b3IodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZ4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92eG9yX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ4b3IodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnhvcl92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ4b3IodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2b3IodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2b3IodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2b3IodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG04KSkpCnZpbnQ4bThfdCB2b3IodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2b3IodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZvcih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2b3IodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm9yKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2b3IodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2b3IodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2b3IodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZvcih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2b3IodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2b3IodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybTIpKSkKdmludDMybTJfdCB2b3IodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm9yKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZvcih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm9yKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZvcih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2b3IodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2b3IodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm9yKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZvcih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2b3IodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2b3IodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2b3IodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG04KSkpCnZpbnQ4bThfdCB2b3IodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2b3IodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZvcih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm9yKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2b3IodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZvcih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2b3IodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2b3IodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2b3IodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZvcih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2b3IodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm9yKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm9yKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZvcih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2b3IodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTQpKSkKdmludDMybTRfdCB2b3IodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm9yKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybTgpKSkKdmludDMybThfdCB2b3IodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZvcih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZvcih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2b3IodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm9yKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZvcih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtMikpKQp2dWludDhtMl90IHZvcih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2b3IodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2b3IodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG04KSkpCnZ1aW50OG04X3Qgdm9yKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm9yKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm9yKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2b3IodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZvcih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2b3IodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2b3IodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm9yKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZvcih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZvcih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm9yKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2b3IodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtMikpKQp2dWludDMybTJfdCB2b3IodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZvcih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91MzJtOCkpKQp2dWludDMybThfdCB2b3IodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2b3IodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2b3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZvcih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm9yKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2b3IodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtMSkpKQp2dWludDhtMV90IHZvcih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2b3IodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2b3IodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG00KSkpCnZ1aW50OG00X3Qgdm9yKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdThtOCkpKQp2dWludDhtOF90IHZvcih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZvcih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZvcih2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZvcih2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZvcih2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZvcih2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2b3IodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm9yKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZvcih2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2b3IodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2b3IodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm9yKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2b3IodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2b3IodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm9yKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtMikpKQp2dWludDMybTJfdCB2b3IodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZvcih2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2b3IodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtOCkpKQp2dWludDMybThfdCB2b3IodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm9yKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2b3IodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm9yKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2b3IodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm9yKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm9yX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZvcih2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2b3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92b3JfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm9yKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zvcl92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZvcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xsKHZpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c2xsKHZpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2c2xsKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2xsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG04KSkpCnZpbnQ4bThfdCB2c2xsKHZpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2xsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzbGwodmludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2c2xsKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNsbCh2aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzbGwodmludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2c2xsKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c2xsKHZpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c2xsKHZpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzbGwodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xsKHZpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGwodmludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTIpKSkKdmludDMybTJfdCB2c2xsKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsbCh2aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsbCh2aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xsKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzbGwodmludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c2xsKHZpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNsbCh2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzbGwodmludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xsKHZpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMikpKQp2aW50OG0yX3QgdnNsbCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGwodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04KSkpCnZpbnQ4bThfdCB2c2xsKHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGwodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c2xsKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2xsKHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzbGwodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xsKHZpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c2xsKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzbGwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c2xsKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzbGwodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGwodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnNsbCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c2xsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzbGwodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xsKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGwodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzbGwodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzbGwodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsbCh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c2xsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbGwodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsbCh2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNsbCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNsbCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsbCh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMSkpKQp2dWludDhtMV90IHZzbGwodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnNsbCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2xsKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2xsKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOCkpKQp2dWludDhtOF90IHZzbGwodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNsbCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c2xsKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c2xsKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xsKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xsKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c2xsKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzbGwodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsbCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNsbCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzbGwodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzbGwodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c2xsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtMikpKQp2dWludDMybTJfdCB2c2xsKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c2xsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c2xsKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGwodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2xsKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNsbCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNsbCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsbCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNsbCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNsbCh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNsbCh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNsbCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsbCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG00KSkpCnZ1aW50OG00X3QgdnNsbCh2dWludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG04KSkpCnZ1aW50OG04X3QgdnNsbCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xsKHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzbGwodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNsbCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xsKHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzbGwodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsbCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsbCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNsbCh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzbGwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsbCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzbGwodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNsbCh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNsbCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNsbCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNsbCh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGwodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsbCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsbF92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2xsKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsbCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xsX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGwodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGxfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm00KSkpCnZvaWQgdnN1eGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTE2bTgpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0xKSkpCnZ1aW50OG0xX3QgdnNybCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3JsKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNCkpKQp2dWludDhtNF90IHZzcmwodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG04KSkpCnZ1aW50OG04X3QgdnNybCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2c3JsKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzcmwodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzcmwodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZzcmwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzcmwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzcmwodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNybCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c3JsKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3JsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNybCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNybCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzcmwodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzcmwodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzcmwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNybCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzcmwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3JsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2c3JsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3JsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c3JsKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3JsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2c3JsKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2c3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3JsKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3JsKHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3JsKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3JsKHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNybCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzcmwodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNybCh2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c3JsKHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzcmwodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNybCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzcmwodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c3JsKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c3JsKHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3JsKHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNybCh2dWludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtMikpKQp2dWludDMybTJfdCB2c3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzcmwodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3JsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtOCkpKQp2dWludDMybThfdCB2c3JsKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3JsKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNybCh2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c3JsKHZ1aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JsX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzcmwodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3JsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmxfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNybCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNybF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzcmEodmludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG0xX20pKSkKdmludDhtMV90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTIpKSkKdmludDhtMl90IHZzcmEodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG0yX20pKSkKdmludDhtMl90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzcmEodmludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG00X20pKSkKdmludDhtNF90IHZzcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzcmEodmludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG04X20pKSkKdmludDhtOF90IHZzcmEodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNyYSh2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzcmEodmludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c3JhKHZpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzcmEodmludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c3JhKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzcmEodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3JhKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZzcmEodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c3JhKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNyYSh2aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzcmEodmludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNyYSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzcmEodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzcmEodmludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c3JhKHZpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybTgpKSkKdmludDMybThfdCB2c3JhKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNyYSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzcmEodmludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNyYSh2aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzcmEodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtMikpKQp2aW50NjRtMl90IHZzcmEodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c3JhKHZpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNyYSh2aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzcmEodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c3JhKHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG0yX20pKSkKdmludDhtMl90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtNCkpKQp2aW50OG00X3QgdnNyYSh2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3JhKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzcmEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNyYSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzcmEodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzcmEodmludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzcmEodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzcmEodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzcmEodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnNyYSh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3JhKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c3JhKHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNyYSh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNyYSh2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNyYSh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNyYSh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3JhX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c3JhKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybTgpKSkKdmludDMybThfdCB2c3JhKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZzcmEodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNyYSh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNyYV92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2c3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzcmEodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c3JhKHZpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c3JhKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzcmEodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2c3JhKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzcmFfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzcmEodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMSkpKQp2dWludDhtMV90IHZuc3JsKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm5zcmwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5zcmwodnVpbnQxNm00X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bnNybCh2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bTRfbSkpKQp2dWludDhtNF90IHZuc3JsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuc3JsKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuc3JsKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5zcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMikpKQp2dWludDE2bTJfdCB2bnNybCh2dWludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bnNybCh2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuc3JsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5zcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5zcmwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MzJtMSkpKQp2dWludDMybTFfdCB2bnNybCh2dWludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5zcmwodnVpbnQ2NG00X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZuc3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5zcmwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5zcmwodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtMSkpKQp2dWludDhtMV90IHZuc3JsKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtMikpKQp2dWludDhtMl90IHZuc3JsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bnNybCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtNCkpKQp2dWludDhtNF90IHZuc3JsKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bnNybCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5zcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5zcmwodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bnNybCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZuc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5zcmwodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5zcmwodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuc3JsKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5zcmwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5zcmwodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5zcmwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMSkpKQp2dWludDMybTFfdCB2bnNybCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bnNybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtMikpKQp2dWludDMybTJfdCB2bnNybCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bnNybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNybF93eF91MzJtNCkpKQp2dWludDMybTRfdCB2bnNybCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmxfd3hfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bnNybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5zcmwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JsX3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bnNybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMSkpKQp2aW50OG0xX3Qgdm5zcmEodmludDE2bTJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5zcmEodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtMikpKQp2aW50OG0yX3Qgdm5zcmEodmludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtNCkpKQp2aW50OG00X3Qgdm5zcmEodmludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5zcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bnNyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mNCkpKQp2aW50OG1mNF90IHZuc3JhKHZpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bnNyYSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5zcmEodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2bnNyYSh2aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5zcmEodmludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5zcmEodmludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5zcmEodmludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2bnNyYSh2aW50NjRtNF90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93dl9pMzJtNCkpKQp2aW50MzJtNF90IHZuc3JhKHZpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZuc3JhKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMSkpKQp2aW50OG0xX3Qgdm5zcmEodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTIpKSkKdmludDhtMl90IHZuc3JhKHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5zcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00KSkpCnZpbnQ4bTRfdCB2bnNyYSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG00X20pKSkKdmludDhtNF90IHZuc3JhKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaThtZjIpKSkKdmludDhtZjJfdCB2bnNyYSh2aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5zcmEodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5zcmEodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bnNyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm5zcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bnNyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5zcmEodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZuc3JhKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtMikpKQp2aW50MTZtMl90IHZuc3JhKHZpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bnNyYSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtNCkpKQp2aW50MTZtNF90IHZuc3JhKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bnNyYSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5zcmEodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5zcmEodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5zcmEodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5zcmEodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuc3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtMikpKQp2aW50MzJtMl90IHZuc3JhKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bnNyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybTQpKSkKdmludDMybTRfdCB2bnNyYSh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bnNyYV93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5zcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5zcmFfd3hfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zuc3JhX3d4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuc3JhKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtMSkpKQp2dWludDhtMV90IHZuY3Z0X3godnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTFfbSkpKQp2dWludDhtMV90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bmN2dF94KHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG0yX20pKSkKdnVpbnQ4bTJfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG00KSkpCnZ1aW50OG00X3Qgdm5jdnRfeCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5jdnRfeCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5jdnRfeCh2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bmN2dF94KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuY3Z0X3godnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuY3Z0X3godnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuY3Z0X3godmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZuY3Z0X3godnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMikpKQp2dWludDE2bTJfdCB2bmN2dF94KHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtNCkpKQp2dWludDE2bTRfdCB2bmN2dF94KHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuY3Z0X3godmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZuY3Z0X3godnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmN2dF94KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZuY3Z0X3godnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY3Z0X3godnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMikpKQp2dWludDMybTJfdCB2bmN2dF94KHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY3Z0X3godmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm5jdnRfeCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bmN2dF94KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmN2dF94KHZ1aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd191MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZXEodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNlcSh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNlcSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pOG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2VxKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZXEodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2kzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnZfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTEpKSkKdm9pZCB2c3NlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2U4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG0yKSkpCnZvaWQgdnNzZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG0yX20pKSkKdm9pZCB2c3NlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtNCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U4X3ZfdThtNF9tKSkpCnZvaWQgdnNzZTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bTgpKSkKdm9pZCB2c3NlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bThfbSkpKQp2b2lkIHZzc2U4KHZib29sMV90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mMikpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mNCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY0X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZThfdl91OG1mOCkpKQp2b2lkIHZzc2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzdXhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZXEodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNlcSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNlcSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2VxKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZXEodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNlcSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNlcSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2VxKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZXEodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0xX2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2VxKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG04X2IxKSkpCnZib29sMV90IHZtc2VxKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZXEodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2VxKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNlcSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3UzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z2X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0xX2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG00X2IyKSkpCnZib29sMl90IHZtc2VxKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG04X2IxKSkpCnZib29sMV90IHZtc2VxKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZXEodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNlcSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2VxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNlcSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2VxKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNlcSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZXEodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZXEodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZXEodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2VxKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZXEodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZXFfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2VxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2VxKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2VxKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3UzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2VxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2VxKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2VxKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2VxKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2VxX3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNlcSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNlcV92eF91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2VxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc25lKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbmUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG04X2IxKSkpCnZib29sMV90IHZtc25lKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kxNm04X2IyKSkpCnZib29sMl90IHZtc25lKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtOF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc25lKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z2X2k2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfaTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG00X2IyKSkpCnZib29sMl90IHZtc25lKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbmUodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbmUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc25lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm00X2I0KSkpCnZib29sNF90IHZtc25lKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbmUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc25lKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbmUodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1zbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2kzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc25lKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X2k2NG04X2I4KSkpCnZib29sOF90IHZtc25lKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNuZSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc25lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbmUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92dl91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnZfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNuZSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc25lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNuZSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc25lKHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91OG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbmUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbmUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbmUodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc25lKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc25lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc25lKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc25lKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc25lX3Z4X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNuZSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc25lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNuZSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtOF9iNF9tKSkpCnZib29sNF90IHZtc25lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNuZSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNuZSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNuZSh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNuZV92eF91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbmUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbmVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbHR1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2x0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG0yX2I0KSkpCnZib29sNF90IHZtc2x0dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsdHUodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHR1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbHR1KHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2x0dSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2x0dSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNsdHUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91OG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2x0dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbHR1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2x0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2x0dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsdHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHR1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3UzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92dl91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z2X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnZfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0xX2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbHR1KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtNF9iMl9tKSkpCnZib29sMl90IHZtc2x0dSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG04X2IxKSkpCnZib29sMV90IHZtc2x0dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsdHUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91OG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm0yX2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbHR1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2x0dSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHR1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtc2x0dSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdHUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm00X2I4KSkpCnZib29sOF90IHZtc2x0dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91MzJtOF9iNCkpKQp2Ym9vbDRfdCB2bXNsdHUodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3UzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHR1KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHR1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2x0dSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdHVfdnhfdTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNsdHUodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHR1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbHR1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0dV92eF91NjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNsdHUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHR1X3Z4X3U2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbHR1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0xX2I4KSkpCnZib29sOF90IHZtc2x0KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtMV9iOF9tKSkpCnZib29sOF90IHZtc2x0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbHQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG0yX2I0X20pKSkKdmJvb2w0X3Qgdm1zbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsdCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsdCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG04X2IxKSkpCnZib29sMV90IHZtc2x0KHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtOF9iMV9tKSkpCnZib29sMV90IHZtc2x0KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyKSkpCnZib29sMzJfdCB2bXNsdCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2x0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pOG1mOF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbHQodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbHQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bXNsdCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsdCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kxNm04X2IyKSkpCnZib29sMl90IHZtc2x0KHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtOF9iMl9tKSkpCnZib29sMl90IHZtc2x0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNsdCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHQodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z2X2k2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92dl9pNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnZfaTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtNCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzdXhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbHQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbHQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsdCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsdCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2x0KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2x0KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbHQodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2x0KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2x0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbHQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsdCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsdCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2x0KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbHQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsdCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2x0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsdCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2x0KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2x0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbHQodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsdCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2x0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2x0KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsdF92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbHQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbHRfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbHQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2x0X3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbHQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsZXUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGV1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zbGV1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2xldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2xldSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsZXUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbGV1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xldSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNsZXUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGV1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbGV1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2xldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2xldSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNsZXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNsZXUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGV1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbGV1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2xldSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGV1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsZXUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGV1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGV1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xldSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zbGV1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2xldSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGV1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xldV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xldSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNsZXUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZXUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGV1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2xldSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZXVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZXUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zbGUodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNsZSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2xlKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2xlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zbGUodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zbGUodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zbGUodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zbGUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zbGUodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNsZSh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNsZSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2xlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zbGUodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNsZSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNsZSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2xlKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2xlKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2xlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zbGUodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNsZSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNsZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2xlKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zbGUodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNsZSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2xlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNsZSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNsZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2xlKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2xlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zbGUodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNsZSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2xlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2xlKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNsZV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zbGUodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zbGVfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zbGUodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2xlX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNndHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3R1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zZ3R1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2d0dSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2d0dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndHUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNndHUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ3R1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNndHUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3R1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ3R1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2d0dSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2d0dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndHUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNndHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndHUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNndHUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3R1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ3R1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2d0dSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3R1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNndHUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3R1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndHUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3R1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0dSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0dSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ3R1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0dSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2d0dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndHUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndHUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0dSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3R1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0dV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0dSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNndHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNndHUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3R1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2d0dSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndHVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndHUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ3QodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNndCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2d0KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2d0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ3QodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ3QodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zZ3QodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zZ3QodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNndCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNndCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2d0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZ3QodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNndCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNndCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2d0KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2d0KHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2d0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ3QodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNndCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNndCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2d0KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ3QodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNndCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2d0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNndCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2d0KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2d0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ3QodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNndCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2d0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2d0KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNndF92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ3QodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ3RfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ3QodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2d0X3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNnZXUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2V1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTJfYjQpKSkKdmJvb2w0X3Qgdm1zZ2V1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtMl9iNF9tKSkpCnZib29sNF90IHZtc2dldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG00X2IyKSkpCnZib29sMl90IHZtc2dldSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bTRfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNnZXUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ2V1KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWYyX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91OG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dldSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtZjRfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNnZXUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2V1KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ2V1KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2dldSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm04X2IyKSkpCnZib29sMl90IHZtc2dldSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZXUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNnZXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZXUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z2X3U2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnZfdTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92dl91NjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm0yKSkpCnZvaWQgdnN1eGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtMV9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG0yX2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtNF9iMikpKQp2Ym9vbDJfdCB2bXNnZXUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2V1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ2V1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtOF9iMV9tKSkpCnZib29sMV90IHZtc2dldSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91OG1mMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2V1KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjhfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdThtZjhfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm00X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNnZXUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2V1KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZXUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2V1KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dldSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dldSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybTRfYjgpKSkKdmJvb2w4X3Qgdm1zZ2V1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dldSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3UzMm04X2I0KSkpCnZib29sNF90IHZtc2dldSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZXUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91MzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dldSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2V1KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dldV92eF91NjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dldSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dldSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bTRfYjE2KSkpCnZib29sMTZfdCB2bXNnZXUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZXUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2V1X3Z4X3U2NG04X2I4KSkpCnZib29sOF90IHZtc2dldSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZXVfdnhfdTY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZXUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTFfYjgpKSkKdmJvb2w4X3Qgdm1zZ2UodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG0xX2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2UodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtMl9iNCkpKQp2Ym9vbDRfdCB2bXNnZSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bTJfYjRfbSkpKQp2Ym9vbDRfdCB2bXNnZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG00X2IyKSkpCnZib29sMl90IHZtc2dlKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtNF9iMl9tKSkpCnZib29sMl90IHZtc2dlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bThfYjEpKSkKdmJvb2wxX3Qgdm1zZ2UodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG04X2IxX20pKSkKdmJvb2wxX3Qgdm1zZ2UodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaThtZjJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pOG1mNF9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm00X2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtNF9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTE2bThfYjIpKSkKdmJvb2wyX3Qgdm1zZ2UodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm00X2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtNF9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTMybThfYjQpKSkKdmJvb2w0X3Qgdm1zZ2UodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2kzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bXNnZSh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyKSkpCnZib29sMzJfdCB2bXNnZSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnZfaTY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtc2dlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z2X2k2NG04X2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92dl9pNjRtOF9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMV9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTFfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG0yX2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtMl9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bTRfYjIpKSkKdmJvb2wyX3Qgdm1zZ2UodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG00X2IyX20pKSkKdmJvb2wyX3Qgdm1zZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaThtOF9iMSkpKQp2Ym9vbDFfdCB2bXNnZSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bThfYjFfbSkpKQp2Ym9vbDFfdCB2bXNnZSh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mMl9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWYyX2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mNF9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWY0X2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pOG1mOF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k4bWY4X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtc2dlKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1zZ2UodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm0yX2I4KSkpCnZib29sOF90IHZtc2dlKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtMl9iOF9tKSkpCnZib29sOF90IHZtc2dlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1zZ2UodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1zZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMTZtOF9iMikpKQp2Ym9vbDJfdCB2bXNnZSh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bXNnZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtc2dlKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bXNnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1zZ2UodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bXNnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2KSkpCnZib29sMTZfdCB2bXNnZSh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtc2dlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bXNnZSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bXNnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2kzMm04X2I0KSkpCnZib29sNF90IHZtc2dlKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtOF9iNF9tKSkpCnZib29sNF90IHZtc2dlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zZ2UodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0KSkpCnZib29sNjRfdCB2bXNnZSh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtc2dlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtc2dlKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNnZV92eF9pNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1zZ2UodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bXNnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zZ2VfdnhfaTY0bThfYjgpKSkKdmJvb2w4X3Qgdm1zZ2UodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2dlX3Z4X2k2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1zZ2UodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm1pbnUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG00KSkpCnZ1aW50OG00X3Qgdm1pbnUodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZtaW51KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG04KSkpCnZ1aW50OG04X3Qgdm1pbnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtaW51KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2bWludSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1pbnUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtaW51KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1pbnUodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1pbnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1pbnUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1pbnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2bWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm1pbnUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWludSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtaW51KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1pbnUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtaW51KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm1pbnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm1pbnUodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bWludSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1pbnUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtaW51KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtOCkpKQp2dWludDY0bThfdCB2bWludSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm1pbnUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm1pbnUodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG00KSkpCnZ1aW50OG00X3Qgdm1pbnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtaW51KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG04KSkpCnZ1aW50OG04X3Qgdm1pbnUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZtaW51KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bWludSh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtaW51KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1pbnUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bWludSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1pbnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1pbnUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1pbnUodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWludSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtaW51KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtaW51KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1pbnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MzJtMikpKQp2dWludDMybTJfdCB2bWludSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1pbnUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1pbnUodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWludSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bWludSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1pbnUodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtaW51KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW51X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2bWludSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWludV92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtaW51KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtaW4odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bWluKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG0yX20pKSkKdmludDhtMl90IHZtaW4odmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtNCkpKQp2aW50OG00X3Qgdm1pbih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWluKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtaW4odmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bThfbSkpKQp2aW50OG04X3Qgdm1pbih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG1mMikpKQp2aW50OG1mMl90IHZtaW4odmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1pbih2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bWluKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bWluKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1pbih2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZtaW4odmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtaW4odmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bWluKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bWluKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWluKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtaW4odmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWluKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1pbih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTMybTQpKSkKdmludDMybTRfdCB2bWluKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bWluKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1pbih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1pbih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1pbih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm1pbih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bWluKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWluKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtaW4odmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm1pbih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm1pbih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWluKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG0xX20pKSkKdmludDhtMV90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMikpKQp2aW50OG0yX3Qgdm1pbih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWluKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtaW4odmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1pbih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWluKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pOG04X20pKSkKdmludDhtOF90IHZtaW4odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bWluKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtaW4odmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWluKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWluKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bWluKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWluKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtaW4odmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWluKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWluKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1pbih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1pbih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1pbih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1pbih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtaW4odmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtaW4odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1pbih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybTQpKSkKdmludDMybTRfdCB2bWluKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bWluKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1pbih2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1pbih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1pbih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtaW4odmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtaW4odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1pbih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWluKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWluX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWluKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1pbl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtaW4odmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtaW5fdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtaW4odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWF4dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWF4dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1heHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWF4dSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1heHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYXh1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2bWF4dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1heHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2bWF4dSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bWF4dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bWF4dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMikpKQp2dWludDMybTJfdCB2bWF4dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtYXh1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1heHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWF4dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1heHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2bWF4dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWF4dSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYXh1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bWF4dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1heHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYXh1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWF4dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWF4dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWF4dSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1heHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWF4dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1heHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYXh1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1heHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bWF4dSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYXh1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2bWF4dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bWF4dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOCkpKQp2dWludDE2bThfdCB2bWF4dSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYXh1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1heHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm1heHUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWF4dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYXh1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bWF4dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZtYXh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOCkpKQp2dWludDMybThfdCB2bWF4dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYXh1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYXh1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYXh1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMikpKQp2dWludDY0bTJfdCB2bWF4dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4dV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1heHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heHVfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYXh1KHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXh1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1heHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTIpKSkKdmludDhtMl90IHZtYXgodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bWF4KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG00X20pKSkKdmludDhtNF90IHZtYXgodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOCkpKQp2aW50OG04X3Qgdm1heCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bWF4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1heCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bWF4KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWF4KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtYXgodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bWF4KHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm1heCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZtYXgodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtYXgodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYXgodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bWF4KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1heCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm1heCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bWF4KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtYXgodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybTgpKSkKdmludDMybThfdCB2bWF4KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWF4KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bWF4KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bWF4KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZtYXgodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1heCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bWF4KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWF4KHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG0xX20pKSkKdmludDhtMV90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMikpKQp2aW50OG0yX3Qgdm1heCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTQpKSkKdmludDhtNF90IHZtYXgodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1heCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWF4KHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pOG04X20pKSkKdmludDhtOF90IHZtYXgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bWF4KHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtYXgodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWF4KHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWF4KHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bWF4KHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtYXgodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWF4KHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWF4KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1heCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1heCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1heCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1heCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtYXgodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYXgodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1heCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybTQpKSkKdmludDMybTRfdCB2bWF4KHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bWF4KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1heCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1heCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1heCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtYXgodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYXgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1heCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWF4KHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWF4X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWF4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1heF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtYXgodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYXhfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYXgodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm11bCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTIpKSkKdmludDhtMl90IHZtdWwodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG00X20pKSkKdmludDhtNF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOCkpKQp2aW50OG04X3Qgdm11bCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bXVsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm11bCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWwodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm11bCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bXVsKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZtdWwodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdWwodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm11bCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtdWwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bXVsKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWwodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybTgpKSkKdmludDMybThfdCB2bXVsKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZtdWwodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm11bCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTEpKSkKdmludDhtMV90IHZtdWwodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bXVsKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG0yX20pKSkKdmludDhtMl90IHZtdWwodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNCkpKQp2aW50OG00X3Qgdm11bCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bXVsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bTgpKSkKdmludDhtOF90IHZtdWwodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdWwodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWwodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtdWwodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtdWwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZtdWwodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWwodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bXVsKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bXVsKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bXVsKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWwodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTMybTgpKSkKdmludDMybThfdCB2bXVsKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm11bCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bXVsKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWwodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm11bCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm11bCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bXVsKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZtdWwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtNCkpKQp2dWludDhtNF90IHZtdWwodnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm11bCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04KSkpCnZ1aW50OG04X3Qgdm11bCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bXVsKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtdWwodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtdWwodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtdWwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtdWwodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdWwodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm11bCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bXVsKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bXVsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm11bCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWwodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtdWwodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtdWwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bCh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtdWwodnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bXVsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bXVsKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2bXVsKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92dl91NjRtOCkpKQp2dWludDY0bThfdCB2bXVsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXVsKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMikpKQp2dWludDhtMl90IHZtdWwodnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm11bCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00KSkpCnZ1aW50OG00X3Qgdm11bCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bXVsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXVsKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZtdWwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm11bCh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtdWwodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm11bCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm11bCh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm11bCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm11bCh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm11bCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bXVsKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bXVsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtdWwodnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtdWwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXVsKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bCh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm11bCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2bXVsKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtMikpKQp2dWludDMybTJfdCB2bXVsKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bXVsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bXVsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtdWwodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtdWwodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtdWwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtdWwodnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtdWwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdWwodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZtdWwodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtdWwodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtdWwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtdWxoKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtMikpKQp2aW50OG0yX3Qgdm11bGgodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pOG0yX20pKSkKdmludDhtMl90IHZtdWxoKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2bXVsaCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGgodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtdWxoKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bXVsaCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsaCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bXVsaCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bXVsaCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZtdWxoKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGgodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bXVsaCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdWxoKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bXVsaCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bXVsaCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTQpKSkKdmludDMybTRfdCB2bXVsaCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZtdWxoKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsaCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm11bGgodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGgodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm11bGgodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm11bGgodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm11bGgodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG0xX20pKSkKdmludDhtMV90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bXVsaCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtdWxoKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bXVsaCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtOCkpKQp2aW50OG04X3Qgdm11bGgodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG04X20pKSkKdmludDhtOF90IHZtdWxoKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZtdWxoKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bXVsaCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm11bGgodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm11bGgodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtdWxoKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGgodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtdWxoKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm11bGgodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGgodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bXVsaCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bXVsaCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm11bGgodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm11bGgodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm11bGgodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bXVsaCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm11bGgodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bXVsaCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm11bGgodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2bXVsaCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybTgpKSkKdmludDMybThfdCB2bXVsaCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtdWxoKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm11bGgodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtdWxoKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bXVsaCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bXVsaCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtdWxoKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtdWxoKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtMSkpKQp2dWludDhtMV90IHZtdWxodSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bXVsaHUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bXVsaHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG00KSkpCnZ1aW50OG00X3Qgdm11bGh1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm11bGh1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtOCkpKQp2dWludDhtOF90IHZtdWxodSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtdWxodSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtdWxodSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm11bGh1KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsaHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm11bGh1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtdWxodSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm11bGh1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZtdWxodSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bXVsaHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2bXVsaHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm11bGh1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXVsaHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtdWxodSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm11bGh1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWxodSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm11bGh1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWxodSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsaHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm11bGh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bGh1KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWxodSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm11bGh1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm11bGh1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2bXVsaHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm11bGh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdWxodSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm11bGh1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtdWxodSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXVsaHUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm11bGh1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm11bGh1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtNCkpKQp2dWludDhtNF90IHZtdWxodSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtdWxodSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXVsaHUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bXVsaHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bXVsaHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bXVsaHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2bXVsaHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bXVsaHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bXVsaHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm11bGh1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdWxodSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bXVsaHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm11bGh1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm11bGh1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtdWxodSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm11bGh1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm11bGh1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtdWxodSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bXVsaHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm11bGh1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZtdWxodSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bXVsaHUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm11bGh1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm11bGh1KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtdWxodSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm11bGh1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtdWxodSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtdWxodSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bXVsaHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm11bGh1KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtdWxodSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxodV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2bXVsaHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm11bGh1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGh1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtdWxodSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bXVsaHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtMikpKQp2aW50OG0yX3Qgdm11bGhzdSh2aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGhzdSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtNCkpKQp2aW50OG00X3Qgdm11bGhzdSh2aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGhzdSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtOCkpKQp2aW50OG04X3Qgdm11bGhzdSh2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bGhzdSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaHN1KHZpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm11bGhzdSh2aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtdWxoc3UodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaHN1KHZpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bGhzdSh2aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGhzdSh2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGhzdSh2aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoc3UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsaHN1KHZpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm11bGhzdSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bXVsaHN1KHZpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm11bGhzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm11bGhzdSh2aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtdWxoc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZtdWxoc3UodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bXVsaHN1KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZtdWxoc3UodmludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bXVsaHN1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm11bGhzdSh2aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaHN1KHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGhzdSh2aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWxoc3UodmludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaHN1KHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybTIpKSkKdm9pZCB2c3V4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00KSkpCnZvaWQgdnN1eGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2kzMm00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtOCkpKQp2b2lkIHZzdXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pMzJtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtMikpKQp2aW50OG0yX3Qgdm11bGhzdSh2aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm11bGhzdSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtNCkpKQp2aW50OG00X3Qgdm11bGhzdSh2aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm11bGhzdSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtOCkpKQp2aW50OG04X3Qgdm11bGhzdSh2aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm11bGhzdSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bXVsaHN1KHZpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdWxoc3UodmludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm11bGhzdSh2aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bXVsaHN1KHZpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm11bGhzdSh2aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm11bGhzdSh2aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm11bGhzdSh2aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtdWxoc3UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bXVsaHN1KHZpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm11bGhzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdWxoc3UodmludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bXVsaHN1KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtdWxoc3UodmludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bXVsaHN1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bXVsaHN1KHZpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm11bGhzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm11bGhzdSh2aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtdWxoc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm11bGhzdSh2aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtdWxoc3UodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bXVsaHN1KHZpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bXVsaHN1KHZpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm11bGhzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm11bGhzdSh2aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtdWxoc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZtdWxoc3UodmludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXVsaHN1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bXVsaHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtdWxoc3VfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bXVsaHN1KHZpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm11bGhzdV92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm11bGhzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2ZGl2dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2ZGl2dSh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmRpdnUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2ZGl2dSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmRpdnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2ZGl2dSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmRpdnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZkaXZ1KHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2ZGl2dSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmRpdnUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZkaXZ1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtMikpKQp2dWludDE2bTJfdCB2ZGl2dSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZGl2dSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2ZGl2dSh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZkaXZ1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZkaXZ1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmRpdnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtMikpKQp2dWludDMybTJfdCB2ZGl2dSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZkaXZ1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmRpdnUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2ZGl2dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmRpdnUodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZGl2dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZGl2dSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZkaXZ1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2ZGl2dSh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmRpdnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZkaXZ1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2ZGl2dSh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2ZGl2dSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmRpdnUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2ZGl2dSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdmRpdnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2ZGl2dSh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmRpdnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZkaXZ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmRpdnUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2ZGl2dSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZkaXZ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2ZGl2dSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2ZGl2dSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtOCkpKQp2dWludDE2bThfdCB2ZGl2dSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZkaXZ1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZkaXZ1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmRpdnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmRpdnUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2ZGl2dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmRpdnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZGl2dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZkaXZ1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmRpdnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2ZGl2dSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZkaXZ1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtOCkpKQp2dWludDMybThfdCB2ZGl2dSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZkaXZ1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZkaXZ1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZkaXZ1KHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmRpdnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91NjRtMikpKQp2dWludDY0bTJfdCB2ZGl2dSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2dV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZkaXZ1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmRpdnUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdnVfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZGl2dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZkaXZ1KHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmRpdnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMSkpKQp2aW50OG0xX3QgdmRpdih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTIpKSkKdmludDhtMl90IHZkaXYodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdmRpdih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2ZGl2KHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG00X20pKSkKdmludDhtNF90IHZkaXYodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtOCkpKQp2aW50OG04X3QgdmRpdih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2ZGl2KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmRpdih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2ZGl2KHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZkaXYodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZkaXYodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmRpdih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2ZGl2KHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdmRpdih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmRpdih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZkaXYodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZkaXYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZkaXYodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmRpdih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZkaXYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmRpdih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTIpKSkKdmludDMybTJfdCB2ZGl2KHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2ZGl2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZkaXYodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZkaXYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybTgpKSkKdmludDMybThfdCB2ZGl2KHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2ZGl2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZGl2KHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2ZGl2KHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZkaXYodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZkaXYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdmRpdih2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2ZGl2KHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2ZGl2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTEpKSkKdmludDhtMV90IHZkaXYodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2ZGl2KHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG0yX20pKSkKdmludDhtMl90IHZkaXYodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtNCkpKQp2aW50OG00X3QgdmRpdih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2ZGl2KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bTgpKSkKdmludDhtOF90IHZkaXYodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdmRpdih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZkaXYodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmRpdih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZkaXYodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZkaXYodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZkaXYodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZkaXYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmRpdih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZkaXYodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZkaXYodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2ZGl2KHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2ZGl2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2ZGl2KHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2ZGl2KHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmRpdih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmRpdih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTIpKSkKdmludDMybTJfdCB2ZGl2KHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2ZGl2KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZkaXYodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZkaXYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTMybTgpKSkKdmludDMybThfdCB2ZGl2KHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2ZGl2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZGl2KHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2ZGl2KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmRpdih2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmRpdih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2ZGl2KHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZGl2KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZkaXYodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZkaXZfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZkaXYodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZGl2X3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmRpdih2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmRpdl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmRpdih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtMSkpKQp2dWludDhtMV90IHZyZW11KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtMikpKQp2dWludDhtMl90IHZyZW11KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmVtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtNCkpKQp2dWludDhtNF90IHZyZW11KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmVtdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtOCkpKQp2dWludDhtOF90IHZyZW11KHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2cmVtdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlbXUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZW11KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmVtdSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlbXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZW11KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZW11KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZW11KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJlbXUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJlbXUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZW11KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlbXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVtdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZW11KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJlbXUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2cmVtdSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZW11KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOCkpKQp2dWludDMybThfdCB2cmVtdSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyZW11KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZW11KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlbXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZW11KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVtdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlbXUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMSkpKQp2dWludDhtMV90IHZyZW11KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtMikpKQp2dWludDhtMl90IHZyZW11KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmVtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtNCkpKQp2dWludDhtNF90IHZyZW11KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmVtdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtOCkpKQp2dWludDhtOF90IHZyZW11KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2cmVtdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlbXUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2cmVtdSh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZyZW11KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlbXUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZW11KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZW11KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZW11KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJlbXUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJlbXUodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2cmVtdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2cmVtdSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVtdSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZW11KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlbXUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2cmVtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZW11KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnJlbXUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZW11KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnJlbXUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJlbXUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlbXUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZW11KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW11X3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJlbXUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVtdSh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtdV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZW11KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlbXUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbXVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmVtdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG0xX20pKSkKdmludDhtMV90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMikpKQp2aW50OG0yX3QgdnJlbSh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cmVtKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTQpKSkKdmludDhtNF90IHZyZW0odmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnJlbSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG04KSkpCnZpbnQ4bThfdCB2cmVtKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG04X20pKSkKdmludDhtOF90IHZyZW0odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmVtKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZyZW0odmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlbSh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJlbSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZyZW0odmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVtKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2cmVtKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlbSh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJlbSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnJlbSh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmVtKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnJlbSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTEpKSkKdmludDMybTFfdCB2cmVtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZyZW0odmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZW0odmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnJlbSh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJlbSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZW0odmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZW0odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZW0odmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnJlbSh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJlbSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVtKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZW0odmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZyZW0odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMSkpKQp2aW50OG0xX3QgdnJlbSh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTIpKSkKdmludDhtMl90IHZyZW0odmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJlbSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG00KSkpCnZpbnQ4bTRfdCB2cmVtKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pOG00X20pKSkKdmludDhtNF90IHZyZW0odmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOCkpKQp2aW50OG04X3QgdnJlbSh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2cmVtKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJlbSh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmVtKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnJlbSh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlbSh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlbSh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlbSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVtKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnJlbSh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnJlbSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZW0odmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZyZW0odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZW0odmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZyZW0odmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybTEpKSkKdmludDMybTFfdCB2cmVtKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZyZW0odmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZW0odmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnJlbSh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJlbSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZyZW0odmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZW0odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZW0odmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZyZW0odmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVtKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pNjRtMikpKQp2aW50NjRtMl90IHZyZW0odmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZyZW0odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnJlbSh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlbV92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJlbSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZW1fdnhfaTY0bTgpKSkKdmludDY0bThfdCB2cmVtKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVtX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2cmVtKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtdWwodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bXVsKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d211bCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2d211bCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdndtdWwodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtdWwodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZ3bXVsKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTEpKSkKdmludDMybTFfdCB2d211bCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtdWwodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2d211bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndtdWwodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d211bCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybTgpKSkKdmludDMybThfdCB2d211bCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bXVsKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d211bCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2d211bCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d211bCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZ3bXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtMikpKQp2b2lkIHZzdXhlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm00KSkpCnZvaWQgdnN1eGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTMybTgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91MzJtZjIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d211bCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2d211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3bXVsKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bXVsKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2d211bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdndtdWwodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtdWwodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d211bCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bXVsKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtdWwodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bXVsKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtdWwodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d211bCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d211bCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bXVsKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdndtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bXVsKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWwodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3bXVsdSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d211bHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtdWx1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtdWx1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtdWx1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d211bHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d211bHUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2d211bHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtMikpKQp2dWludDMybTJfdCB2d211bHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3bXVsdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91MzJtOCkpKQp2dWludDMybThfdCB2d211bHUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdndtdWx1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndtdWx1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndtdWx1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3bXVsdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2d211bHUodnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3bXVsdSh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ3bXVsdSh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdndtdWx1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndtdWx1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtdWx1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtdWx1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtdWx1KHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2d211bHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d211bHUodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndtdWx1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndtdWx1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d211bHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3bXVsdSh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d211bHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdndtdWx1KHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3bXVsdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3bXVsdSh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2d211bHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2d211bHUodnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3bXVsdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndtdWx1KHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3bXVsdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2d211bHUodnVpbnQzMm0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndtdWx1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWx1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3bXVsdSh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d211bHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d211bHN1KHZpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndtdWxzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtdWxzdSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bHN1KHZpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsc3UodmludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWxzdSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d211bHN1KHZpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtdWxzdSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZ3bXVsc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bXVsc3UodmludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bXVsc3UodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2d211bHN1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bXVsc3UodmludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bXVsc3UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdndtdWxzdSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsc3UodmludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2d211bHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2d211bHN1KHZpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWxzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZ3bXVsc3UodmludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndtdWxzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d211bHN1KHZpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3bXVsc3UodmludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bXVsc3UodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtdWxzdSh2aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d211bHN1KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2d211bHN1KHZpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bXVsc3UodmludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdndtdWxzdSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d211bHN1KHZpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndtdWxzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d211bHN1KHZpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTIpKSkKdmludDMybTJfdCB2d211bHN1KHZpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtdWxzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdndtdWxzdSh2aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3bXVsc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtdWxzdSh2aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bXVsc3UodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndtdWxzdSh2aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2d211bHN1KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdndtdWxzdSh2aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bXVsc3UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bXVsc3UodmludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d211bHN1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d211bHN1KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bXVsc3VfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2d211bHN1KHZpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtdWxzdV92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdndtdWxzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTEpKSkKdmludDhtMV90IHZtYWNjKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtMikpKQp2aW50OG0yX3Qgdm1hY2ModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG0yX20pKSkKdmludDhtMl90IHZtYWNjKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG00KSkpCnZpbnQ4bTRfdCB2bWFjYyh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTRfbSkpKQp2aW50OG00X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bTgpKSkKdmludDhtOF90IHZtYWNjKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bWFjYyh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2bWFjYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pOG1mOCkpKQp2aW50OG1mOF90IHZtYWNjKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2bWFjYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1hY2ModmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm1hY2ModmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm04KSkpCnZpbnQxNm04X3Qgdm1hY2ModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWFjYyh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtYWNjKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtMSkpKQp2aW50MzJtMV90IHZtYWNjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bWFjYyh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm1hY2ModmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1hY2ModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWFjYyh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bWFjYyh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm1hY2ModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZtYWNjKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bWFjYyh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm1hY2ModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG0xX20pKSkKdmludDhtMV90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bWFjYyh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bTQpKSkKdmludDhtNF90IHZtYWNjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtOCkpKQp2aW50OG04X3Qgdm1hY2ModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG04X20pKSkKdmludDhtOF90IHZtYWNjKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMikpKQp2aW50OG1mMl90IHZtYWNjKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1hY2ModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bWFjYyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtMSkpKQp2aW50MTZtMV90IHZtYWNjKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2bWFjYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bWFjYyh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2bWFjYyh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYWNjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtYWNjKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTEpKSkKdmludDMybTFfdCB2bWFjYyh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm1hY2ModmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZtYWNjKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtOCkpKQp2aW50MzJtOF90IHZtYWNjKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZtYWNjKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm1hY2ModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZtYWNjKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2bWFjYyh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1hY2ModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZtYWNjKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYWNjKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG0xKSkpCnZ1aW50OG0xX3Qgdm1hY2ModnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMikpKQp2dWludDhtMl90IHZtYWNjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWFjYyh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZtYWNjKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG04KSkpCnZ1aW50OG04X3Qgdm1hY2ModnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bWFjYyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1hY2ModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm1hY2ModnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYWNjKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1hY2ModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1hY2ModnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYWNjKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtNCkpKQp2dWludDE2bTRfdCB2bWFjYyh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm1hY2ModmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtYWNjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm1hY2ModnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtMSkpKQp2dWludDMybTFfdCB2bWFjYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtMikpKQp2dWludDMybTJfdCB2bWFjYyh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192dl91MzJtNCkpKQp2dWludDMybTRfdCB2bWFjYyh2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtYWNjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYWNjKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtYWNjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtYWNjKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYWNjKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMSkpKQp2dWludDhtMV90IHZtYWNjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bWFjYyh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZtYWNjKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG00KSkpCnZ1aW50OG00X3Qgdm1hY2ModnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bWFjYyh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOCkpKQp2dWludDhtOF90IHZtYWNjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm1hY2ModmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZtYWNjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91OG1mNCkpKQp2dWludDhtZjRfdCB2bWFjYyh2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZtYWNjKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtYWNjKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bWFjYyh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm1hY2ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZtYWNjKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MTZtOCkpKQp2dWludDE2bThfdCB2bWFjYyh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm1hY2ModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm1hY2ModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWFjYyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMSkpKQp2dWludDMybTFfdCB2bWFjYyh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtMikpKQp2dWludDMybTJfdCB2bWFjYyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91MzJtNCkpKQp2dWludDMybTRfdCB2bWFjYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZtYWNjKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bWFjYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bWFjYyh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hY2NfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtYWNjKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bWFjYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm1hY2ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtMikpKQp2dWludDY0bTJfdCB2bWFjYyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm1hY2ModmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtNCkpKQp2dWludDY0bTRfdCB2bWFjYyh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm1hY2ModmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFjY192eF91NjRtOCkpKQp2dWludDY0bThfdCB2bWFjYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWNjX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm1hY2ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG0xKSkpCnZpbnQ4bTFfdCB2bm1zYWModmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bm1zYWModmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bm1zYWModmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG00KSkpCnZpbnQ4bTRfdCB2bm1zYWModmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG04KSkpCnZpbnQ4bThfdCB2bm1zYWModmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bm1zYWModmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMikpKQp2aW50OG1mMl90IHZubXNhYyh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5tc2FjKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2bm1zYWModmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMSkpKQp2aW50MTZtMV90IHZubXNhYyh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5tc2FjKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNCkpKQp2aW50MTZtNF90IHZubXNhYyh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bm1zYWModmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZubXNhYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bm1zYWModmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bm1zYWModmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5tc2FjKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTIpKSkKdmludDMybTJfdCB2bm1zYWModmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNCkpKQp2aW50MzJtNF90IHZubXNhYyh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybTgpKSkKdmludDMybThfdCB2bm1zYWModmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm1zYWModmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm5tc2FjKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bm1zYWModmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZubXNhYyh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm5tc2FjKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yKSkpCnZvaWQgdnN1eGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm04KSkpCnZvaWQgdnN1eGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2kzMm04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMSkpKQp2aW50OG0xX3Qgdm5tc2FjKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtMikpKQp2aW50OG0yX3Qgdm5tc2FjKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtNCkpKQp2aW50OG00X3Qgdm5tc2FjKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtOCkpKQp2aW50OG04X3Qgdm5tc2FjKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm5tc2FjKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2bm1zYWModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bm1zYWModmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2bm1zYWModmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2bm1zYWModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMikpKQp2aW50MTZtMl90IHZubXNhYyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2bm1zYWModmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04KSkpCnZpbnQxNm04X3Qgdm5tc2FjKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZubXNhYyh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm5tc2FjKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bm1zYWModmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZubXNhYyh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybTgpKSkKdmludDMybThfdCB2bm1zYWModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm1zYWModmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZubXNhYyh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm5tc2FjKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bm1zYWModmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZubXNhYyh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtMSkpKQp2dWludDhtMV90IHZubXNhYyh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5tc2FjKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bm1zYWModnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtOCkpKQp2dWludDhtOF90IHZubXNhYyh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG04X20pKSkKdnVpbnQ4bThfdCB2bm1zYWModmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mMikpKQp2dWludDhtZjJfdCB2bm1zYWModnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZubXNhYyh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bm1zYWModnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm5tc2FjKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5tc2FjKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5tc2FjKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5tc2FjKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bm1zYWModnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZubXNhYyh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5tc2FjKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZubXNhYyh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91MzJtMikpKQp2dWludDMybTJfdCB2bm1zYWModnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bm1zYWModmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm5tc2FjKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5tc2FjKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm5tc2FjKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bm1zYWModnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtMSkpKQp2dWludDY0bTFfdCB2bm1zYWModnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5tc2FjKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5tc2FjKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZubXNhYyh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192dl91NjRtOCkpKQp2dWludDY0bThfdCB2bm1zYWModnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm5tc2FjKHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bm1zYWModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5tc2FjKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtNCkpKQp2dWludDhtNF90IHZubXNhYyh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG04KSkpCnZ1aW50OG04X3Qgdm5tc2FjKHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZubXNhYyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZubXNhYyh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5tc2FjKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bm1zYWModnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZubXNhYyh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtMikpKQp2dWludDE2bTJfdCB2bm1zYWModnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bm1zYWModmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bm1zYWModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bm1zYWModmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtOCkpKQp2dWludDE2bThfdCB2bm1zYWModnVpbnQxNm04X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bm1zYWModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZubXNhYyh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZubXNhYyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bm1zYWModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtMSkpKQp2dWludDMybTFfdCB2bm1zYWModnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5tc2FjKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZubXNhYyh2dWludDMybTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZubXNhYyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZubXNhYyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5tc2FjKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZubXNhYyh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtMikpKQp2dWludDY0bTJfdCB2bm1zYWModnVpbnQ2NG0yX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bm1zYWModmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zYWNfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm5tc2FjKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm5tc2FjKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc2FjX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZubXNhYyh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXNhY192eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZubXNhYyh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtMSkpKQp2aW50OG0xX3Qgdm1hZGQodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0xX20pKSkKdmludDhtMV90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2bWFkZCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bTQpKSkKdmludDhtNF90IHZtYWRkKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtOCkpKQp2aW50OG04X3Qgdm1hZGQodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG04X20pKSkKdmludDhtOF90IHZtYWRkKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZtYWRkKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bWFkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZtYWRkKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bWFkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2bWFkZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2bWFkZCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtYWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1hZGQodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm1hZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pMzJtMikpKQp2aW50MzJtMl90IHZtYWRkKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2bWFkZCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybTgpKSkKdmludDMybThfdCB2bWFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZtYWRkKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZtYWRkKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2bWFkZCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm1hZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZtYWRkKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2bWFkZCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bTIpKSkKdmludDhtMl90IHZtYWRkKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtNCkpKQp2aW50OG00X3Qgdm1hZGQodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG00X20pKSkKdmludDhtNF90IHZtYWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG04KSkpCnZpbnQ4bThfdCB2bWFkZCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bThfbSkpKQp2aW50OG04X3Qgdm1hZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1hZGQodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2bWFkZCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZtYWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1hZGQodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZtYWRkKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZtYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZtYWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZtYWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZtYWRkKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZtYWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1hZGQodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1hZGQodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZtYWRkKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybTIpKSkKdmludDMybTJfdCB2bWFkZCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm1hZGQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm1hZGQodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWFkZCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm1hZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZtYWRkKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2bWFkZCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm1hZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWFkZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm1hZGQodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNCkpKQp2dWludDhtNF90IHZtYWRkKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm1hZGQodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bWFkZCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZtYWRkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mMikpKQp2dWludDhtZjJfdCB2bWFkZCh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2bWFkZCh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm1hZGQodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bWFkZCh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bWFkZCh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2bWFkZCh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm1hZGQodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZtYWRkKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bWFkZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1hZGQodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZtYWRkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWFkZCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYWRkKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYWRkKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtYWRkKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1hZGQodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm1hZGQodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZtYWRkKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1hZGQodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1hZGQodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm1hZGQodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xKSkpCnZ1aW50OG0xX3Qgdm1hZGQodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMikpKQp2dWludDhtMl90IHZtYWRkKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWFkZCh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZtYWRkKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG04KSkpCnZ1aW50OG04X3Qgdm1hZGQodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bWFkZCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm1hZGQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZtYWRkKHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2bWFkZCh2dWludDhtZjhfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1hZGQodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZtYWRkKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1hZGQodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZtYWRkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bWFkZCh2dWludDE2bTRfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm1hZGQodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZtYWRkKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bWFkZCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWFkZCh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZtYWRkKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZtYWRkKHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtYWRkKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtYWRkKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZtYWRkKHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1hZGQodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZtYWRkKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtYWRkKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFkZF92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3Qgdm1hZGQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtYWRkKHZ1aW50NjRtMV90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bWFkZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtYWRkKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bWFkZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtYWRkKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bWFkZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYWRkX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZtYWRkKHZ1aW50NjRtOF90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hZGRfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bWFkZCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTEpKSkKdmludDhtMV90IHZubXN1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0xX20pKSkKdmludDhtMV90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZubXN1Yih2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG0yX20pKSkKdmludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTQpKSkKdmludDhtNF90IHZubXN1Yih2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bTgpKSkKdmludDhtOF90IHZubXN1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG04X20pKSkKdmludDhtOF90IHZubXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5tc3ViKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2bm1zdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZubXN1Yih2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5tc3ViKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2bm1zdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5tc3ViKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZubXN1Yih2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZubXN1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2bm1zdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMikpKQp2aW50MzJtMl90IHZubXN1Yih2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5tc3ViKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZubXN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3Qgdm5tc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZubXN1Yih2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2bm1zdWIodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZubXN1Yih2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm5tc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2bm1zdWIodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZubXN1Yih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0xX20pKSkKdmludDhtMV90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTIpKSkKdmludDhtMl90IHZubXN1Yih2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTQpKSkKdmludDhtNF90IHZubXN1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG00X20pKSkKdmludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZubXN1Yih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pOG04X20pKSkKdmludDhtOF90IHZubXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5tc3ViKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5tc3ViKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm5tc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgaW50OF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5tc3ViKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2bm1zdWIodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5tc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZubXN1Yih2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZubXN1Yih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5tc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2bm1zdWIodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3Qgdm5tc3ViKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5tc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2bm1zdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgaW50NjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZubXN1Yih2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3Qgdm5tc3ViKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2bm1zdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBpbnQ2NF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bm1zdWIodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtMikpKQp2dWludDhtMl90IHZubXN1Yih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG00KSkpCnZ1aW50OG00X3Qgdm5tc3ViKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2bm1zdWIodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtOF9tKSkpCnZ1aW50OG04X3Qgdm5tc3ViKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm5tc3ViKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZubXN1Yih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2bm1zdWIodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm5tc3ViKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZubXN1Yih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZubXN1Yih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZubXN1Yih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZubXN1Yih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm5tc3ViKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm1zdWIodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtMSkpKQp2dWludDMybTFfdCB2bm1zdWIodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bm1zdWIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5tc3ViKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3Qgdm5tc3ViKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZubXN1Yih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZubXN1Yih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZubXN1Yih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm5tc3ViKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm5tc3ViKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZubXN1Yih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZubXN1Yih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2bm1zdWIodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm5tc3ViKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c3V4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybTQpKSkKdm9pZCB2c3V4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91MzJtOCkpKQp2b2lkIHZzdXhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtMSkpKQp2dWludDhtMV90IHZubXN1Yih2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG0yKSkpCnZ1aW50OG0yX3Qgdm5tc3ViKHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZubXN1Yih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2bm1zdWIodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtOCkpKQp2dWludDhtOF90IHZubXN1Yih2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2bm1zdWIodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2bm1zdWIodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZubXN1Yih2dWludDhtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm5tc3ViKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bm1zdWIodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm1zdWIodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm5tc3ViKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3Qgdm5tc3ViKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm5tc3ViKHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5tc3ViKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5tc3ViKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5tc3ViKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bm1zdWIodnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm1zdWIodnVpbnQxNm1mNF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3Qgdm5tc3ViKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm5tc3ViKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZubXN1Yih2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2bm1zdWIodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtOCkpKQp2dWludDMybThfdCB2bm1zdWIodnVpbnQzMm04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2bm1zdWIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZubXN1Yih2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2bm1zdWIodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bm1zdWIodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB1aW50NjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5tc3ViKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5tc3ViKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdWludDY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5tc3ViX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZubXN1Yih2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZubXN1Yl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2bm1zdWIodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm1zdWJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bm1zdWIodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQ2NF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d21hY2N1KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZ3bWFjY3UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3bWFjY3UodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3bWFjY3UodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndtYWNjdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2dWludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndtYWNjdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdndtYWNjdSh2dWludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2d21hY2N1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdndtYWNjdSh2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2d21hY2N1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3bWFjY3UodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d21hY2N1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3bWFjY3UodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndtYWNjdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOCkpKQp2dWludDY0bThfdCB2d21hY2N1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d21hY2N1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2d21hY2N1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndtYWNjdSh2dWludDE2bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3bWFjY3UodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB1aW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2dWludDE2bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2dWludDE2bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdndtYWNjdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2dWludDE2bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdndtYWNjdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2d21hY2N1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodnVpbnQzMm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3bWFjY3UodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMikpKQp2dWludDMybTJfdCB2d21hY2N1KHZ1aW50MzJtMl90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ3bWFjY3UodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ3bWFjY3UodnVpbnQzMm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdndtYWNjdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdWludDE2X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtOCkpKQp2dWludDMybThfdCB2d21hY2N1KHZ1aW50MzJtOF90IG9wMCwgdWludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZ3bWFjY3UodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndtYWNjdSh2dWludDY0bTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndtYWNjdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZ3bWFjY3UodnVpbnQ2NG0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1X3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdndtYWNjdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdndtYWNjdSh2dWludDY0bTRfdCBvcDAsIHVpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2d21hY2N1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2d21hY2N1KHZ1aW50NjRtOF90IG9wMCwgdWludDMyX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdV92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ3bWFjY3UodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHVpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtYWNjKHZpbnQxNm1mNF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2ModmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d21hY2ModmludDE2bWYyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2ModmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtMikpKQp2aW50MTZtMl90IHZ3bWFjYyh2aW50MTZtMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjYyh2aW50MTZtNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bWFjYyh2aW50MTZtOF90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtYWNjKHZpbnQzMm1mMl90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bWFjYyh2aW50MzJtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2d21hY2ModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjYyh2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdndtYWNjKHZpbnQzMm00X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bWFjYyh2aW50MzJtOF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdndtYWNjKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2ModmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2d21hY2ModmludDY0bTJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjYyh2aW50NjRtNF90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdndtYWNjKHZpbnQ2NG04X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdndtYWNjKHZpbnQxNm1mNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjKHZpbnQxNm1mMl90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3bWFjYyh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2ModmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtMikpKQp2aW50MTZtMl90IHZ3bWFjYyh2aW50MTZtMl90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjYyh2aW50MTZtNF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMTZtOCkpKQp2aW50MTZtOF90IHZ3bWFjYyh2aW50MTZtOF90IG9wMCwgaW50OF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjYyh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdndtYWNjKHZpbnQzMm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdndtYWNjKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2ModmludDMybTFfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2d21hY2ModmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdndtYWNjKHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2ModmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTQpKSkKdmludDMybTRfdCB2d21hY2ModmludDMybTRfdCBvcDAsIGludDE2X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjKHZpbnQzMm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2d21hY2ModmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgaW50MTZfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3bWFjYyh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2d21hY2ModmludDY0bTJfdCBvcDAsIGludDMyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjYyh2aW50NjRtNF90IG9wMCwgaW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY192eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdndtYWNjKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBpbnQzMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdndtYWNjKHZpbnQ2NG04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2ModmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2aW50MTZtZjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdndtYWNjc3UodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2d21hY2NzdSh2aW50MTZtZjJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndtYWNjc3UodmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3bWFjY3N1KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjc3UodmludDE2bTJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3N1KHZpbnQxNm00X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2NzdSh2aW50MTZtOF90IG9wMCwgdmludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3N1KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2aW50MzJtZjJfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTIpKSkKdmludDMybTJfdCB2d21hY2NzdSh2aW50MzJtMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdndtYWNjc3UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnZfaTMybTQpKSkKdmludDMybTRfdCB2d21hY2NzdSh2aW50MzJtNF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdndtYWNjc3UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZ3bWFjY3N1KHZpbnQzMm04X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2d21hY2NzdSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndtYWNjc3UodmludDY0bTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndtYWNjc3UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3N1KHZpbnQ2NG0yX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2NzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3N1KHZpbnQ2NG00X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3N1KHZpbnQ2NG04X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2aW50MTZtZjRfdCBvcDAsIGludDhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2NzdSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGludDhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmludDE2bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjc3UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2NzdSh2aW50MTZtMV90IG9wMCwgaW50OF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50OF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjc3UodmludDE2bTJfdCBvcDAsIGludDhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3N1KHZpbnQxNm00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjc3UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgaW50OF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2NzdSh2aW50MTZtOF90IG9wMCwgaW50OF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3N1KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGludDhfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2NzdSh2aW50MzJtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjY3N1KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2NzdSh2aW50MzJtMV90IG9wMCwgaW50MTZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3N1KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBpbnQxNl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjY3N1KHZpbnQzMm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bWFjY3N1KHZpbnQzMm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQxNl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjc3UodmludDMybThfdCBvcDAsIGludDE2X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bWFjY3N1KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDE2X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2NzdSh2aW50NjRtMV90IG9wMCwgaW50MzJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjc3VfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjY3N1KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBpbnQzMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3N1KHZpbnQ2NG0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2NzdSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgaW50MzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3N1KHZpbnQ2NG00X3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2NzdSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgaW50MzJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2NzdV92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3N1KHZpbnQ2NG04X3Qgb3AwLCBpbnQzMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3N1X3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2NzdSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBpbnQzMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2d21hY2N1cyh2aW50MTZtZjRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2d21hY2N1cyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdndtYWNjdXModmludDE2bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdndtYWNjdXModmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB1aW50OF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2d21hY2N1cyh2aW50MTZtMV90IG9wMCwgdWludDhfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdWludDhfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdndtYWNjdXModmludDE2bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB1aW50OF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNCkpKQp2aW50MTZtNF90IHZ3bWFjY3VzKHZpbnQxNm00X3Qgb3AwLCB1aW50OF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdndtYWNjdXModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdWludDhfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2d21hY2N1cyh2aW50MTZtOF90IG9wMCwgdWludDhfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZ3bWFjY3VzKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHVpbnQ4X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2d21hY2N1cyh2aW50MzJtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZ3bWFjY3VzKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTEpKSkKdmludDMybTFfdCB2d21hY2N1cyh2aW50MzJtMV90IG9wMCwgdWludDE2X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3bWFjY3VzKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtMikpKQp2aW50MzJtMl90IHZ3bWFjY3VzKHZpbnQzMm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdWludDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pMzJtNCkpKQp2aW50MzJtNF90IHZ3bWFjY3VzKHZpbnQzMm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB1aW50MTZfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdndtYWNjdXModmludDMybThfdCBvcDAsIHVpbnQxNl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZ3bWFjY3VzKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHVpbnQxNl90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2d21hY2N1cyh2aW50NjRtMV90IG9wMCwgdWludDMyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndtYWNjdXNfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3bWFjY3VzKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtMikpKQp2aW50NjRtMl90IHZ3bWFjY3VzKHZpbnQ2NG0yX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2d21hY2N1cyh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdWludDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtNCkpKQp2aW50NjRtNF90IHZ3bWFjY3VzKHZpbnQ2NG00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2d21hY2N1cyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdWludDMyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d21hY2N1c192eF9pNjRtOCkpKQp2aW50NjRtOF90IHZ3bWFjY3VzKHZpbnQ2NG04X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3bWFjY3VzX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2d21hY2N1cyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtMSkpKQp2aW50OG0xX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bTIpKSkKdmludDhtMl90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pOG00KSkpCnZpbnQ4bTRfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faThtOCkpKQp2aW50OG04X3Qgdm1lcmdlKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTE2bTQpKSkKdmludDE2bTRfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtOCkpKQp2aW50MTZtOF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTEpKSkKdmludDMybTFfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTIpKSkKdmludDMybTJfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1faTMybTQpKSkKdmludDMybTRfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pMzJtOCkpKQp2aW50MzJtOF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMSkpKQp2aW50NjRtMV90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtMikpKQp2aW50NjRtMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtNCkpKQp2aW50NjRtNF90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9pNjRtOCkpKQp2aW50NjRtOF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bTEpKSkKdmludDhtMV90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG0yKSkpCnZpbnQ4bTJfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtNCkpKQp2aW50OG00X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgaW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bTgpKSkKdmludDhtOF90IHZtZXJnZSh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pOG1mMikpKQp2aW50OG1mMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgaW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faThtZjgpKSkKdmludDhtZjhfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMSkpKQp2aW50MTZtMV90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtMikpKQp2aW50MTZtMl90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBpbnQxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kxNm00KSkpCnZpbnQxNm00X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTE2bTgpKSkKdmludDE2bThfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgaW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMSkpKQp2aW50MzJtMV90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgaW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtMikpKQp2aW50MzJtMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgaW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV9pMzJtNCkpKQp2aW50MzJtNF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX2kzMm04KSkpCnZpbnQzMm04X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTMybWYyKSkpCnZpbnQzMm1mMl90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTEpKSkKdmludDY0bTFfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTIpKSkKdmludDY0bTJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTQpKSkKdmludDY0bTRfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1faTY0bTgpKSkKdmludDY0bThfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgaW50NjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm04KSkpCnZvaWQgdnN1eGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2kzMm04X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3V4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTEpKSkKdnVpbnQ4bTFfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG0yKSkpCnZ1aW50OG0yX3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdThtNCkpKQp2dWludDhtNF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3U4bTgpKSkKdnVpbnQ4bThfdCB2bWVyZ2UodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mMikpKQp2dWludDhtZjJfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mNCkpKQp2dWludDhtZjRfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91OG1mOCkpKQp2dWludDhtZjhfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMSkpKQp2dWludDE2bTFfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtMikpKQp2dWludDE2bTJfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UxNm00KSkpCnZ1aW50MTZtNF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX3UzMm00KSkpCnZ1aW50MzJtNF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTMybTgpKSkKdnVpbnQzMm04X3Qgdm1lcmdlKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG0xKSkpCnZ1aW50OG0xX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtMikpKQp2dWludDhtMl90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB1aW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bTQpKSkKdnVpbnQ4bTRfdCB2bWVyZ2UodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdWludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG04KSkpCnZ1aW50OG04X3Qgdm1lcmdlKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdWludDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91OG1mNCkpKQp2dWludDhtZjRfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB1aW50OF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHVpbnQ4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB1aW50MTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MTZtNCkpKQp2dWludDE2bTRfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHVpbnQxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UxNm04KSkpCnZ1aW50MTZtOF90IHZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdWludDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdWludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdWludDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92eG1fdTMybTQpKSkKdnVpbnQzMm00X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB1aW50MzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z4bV91MzJtOCkpKQp2dWludDMybThfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHVpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHVpbnQzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG00KSkpCnZ1aW50NjRtNF90IHZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHVpbnQ2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnhtX3U2NG04KSkpCnZ1aW50NjRtOF90IHZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdWludDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMSkpKQp2dWludDhtMV90IHZtdl92KHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtMikpKQp2dWludDhtMl90IHZtdl92KHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtNCkpKQp2dWludDhtNF90IHZtdl92KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtOCkpKQp2dWludDhtOF90IHZtdl92KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjIpKSkKdnVpbnQ4bWYyX3Qgdm12X3YodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm12X3YodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm12X3YodnVpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3Qgdm12X3YodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3Qgdm12X3YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm12X3YodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm12X3YodnVpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bXZfdih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bXZfdih2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3Qgdm12X3YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm12X3YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm12X3YodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm12X3YodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bXZfdih2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm12X3YodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm12X3YodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm12X3YodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm12X3YodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtMSkpKQp2aW50OG0xX3Qgdm12X3YodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k4bTIpKSkKdmludDhtMl90IHZtdl92KHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bXZfdih2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtOCkpKQp2aW50OG04X3Qgdm12X3YodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm12X3YodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZtdl92KHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bXZfdih2aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm12X3YodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtMikpKQp2aW50MTZtMl90IHZtdl92KHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bXZfdih2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kxNm04KSkpCnZpbnQxNm04X3Qgdm12X3YodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm12X3YodmludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZtdl92KHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm12X3YodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtMikpKQp2aW50MzJtMl90IHZtdl92KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTMybTQpKSkKdmludDMybTRfdCB2bXZfdih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2kzMm04KSkpCnZpbnQzMm04X3Qgdm12X3YodmludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm12X3YodmludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bXZfdih2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm12X3YodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZtdl92KHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bXZfdih2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtMSkpKQp2dWludDhtMV90IHZzYWRkdSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2FkZHUodnVpbnQ4bTJfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2FkZHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG00KSkpCnZ1aW50OG00X3QgdnNhZGR1KHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNhZGR1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtOCkpKQp2dWludDhtOF90IHZzYWRkdSh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bThfbSkpKQp2dWludDhtOF90IHZzYWRkdSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzYWRkdSh2dWludDhtZjJfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNhZGR1KHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2c2FkZHUodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzYWRkdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNhZGR1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzYWRkdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c2FkZHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c2FkZHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNhZGR1KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2FkZHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzYWRkdSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYWRkdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNhZGR1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtNCkpKQp2dWludDMybTRfdCB2c2FkZHUodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNhZGR1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNhZGR1KHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNhZGR1KHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNhZGR1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c2FkZHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z2X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzYWRkdSh2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNhZGR1KHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92dl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2FkZHUodnVpbnQ4bTFfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNhZGR1KHZ1aW50OG0yX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNhZGR1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtNCkpKQp2dWludDhtNF90IHZzYWRkdSh2dWludDhtNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2FkZHUodnVpbnQ4bThfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c2FkZHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2FkZHUodnVpbnQ4bWYyX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2FkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c2FkZHUodnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2FkZHUodnVpbnQ4bWY4X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2FkZHUodnVpbnQxNm0xX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzYWRkdSh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2FkZHUodnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNhZGR1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNhZGR1KHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNhZGR1KHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNhZGR1KHZ1aW50MTZtZjRfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzYWRkdSh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2FkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNhZGR1KHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2FkZHUodnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNhZGR1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNhZGR1KHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNhZGR1KHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzYWRkdSh2dWludDY0bTFfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2FkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNhZGR1KHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkdV92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2FkZHUodnVpbnQ2NG00X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGR1X3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzYWRkdSh2dWludDY0bThfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZHVfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2FkZHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTEpKSkKdmludDhtMV90IHZzYWRkKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtMikpKQp2aW50OG0yX3QgdnNhZGQodmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pOG0yX20pKSkKdmludDhtMl90IHZzYWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pOG00KSkpCnZpbnQ4bTRfdCB2c2FkZCh2aW50OG00X3Qgb3AwLCB2aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnNhZGQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k4bTgpKSkKdmludDhtOF90IHZzYWRkKHZpbnQ4bThfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2FkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2c2FkZCh2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2c2FkZCh2aW50OG1mNF90IG9wMCwgdmludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjgpKSkKdmludDhtZjhfdCB2c2FkZCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2c2FkZCh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTIpKSkKdmludDE2bTJfdCB2c2FkZCh2aW50MTZtMl90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtNCkpKQp2aW50MTZtNF90IHZzYWRkKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnNhZGQodmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm04X20pKSkKdmludDE2bThfdCB2c2FkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzYWRkKHZpbnQxNm1mMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYWRkKHZpbnQxNm1mNF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTEpKSkKdmludDMybTFfdCB2c2FkZCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTIpKSkKdmludDMybTJfdCB2c2FkZCh2aW50MzJtMl90IG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTQpKSkKdmludDMybTRfdCB2c2FkZCh2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZzYWRkKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2FkZCh2aW50MzJtZjJfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNhZGQodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNhZGQodmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNhZGQodmludDY0bTRfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNhZGQodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z2X2k2NG04X20pKSkKdmludDY0bThfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNhZGQodmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c2FkZCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNhZGQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzYWRkKHZpbnQ4bTRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2FkZCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtOCkpKQp2aW50OG04X3QgdnNhZGQodmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG04X20pKSkKdmludDhtOF90IHZzYWRkKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzYWRkKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2FkZCh2aW50OG1mNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNhZGQodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNhZGQodmludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzYWRkKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNhZGQodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzYWRkKHZpbnQxNm0yX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNhZGQodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00KSkpCnZpbnQxNm00X3QgdnNhZGQodmludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c2FkZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c2FkZCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzYWRkKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNhZGQodmludDE2bWYyX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZzYWRkKHZpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNhZGQodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNhZGQodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0xX20pKSkKdmludDMybTFfdCB2c2FkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNhZGQodmludDMybTJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c2FkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNhZGQodmludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzYWRkX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2FkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybTgpKSkKdmludDMybThfdCB2c2FkZCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTMybThfbSkpKQp2aW50MzJtOF90IHZzYWRkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNhZGQodmludDMybWYyX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2FkZF92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c2FkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTEpKSkKdmludDY0bTFfdCB2c2FkZCh2aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzYWRkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c2FkZCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2FkZCh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzYWRkKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bTgpKSkKdmludDY0bThfdCB2c2FkZCh2aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNhZGRfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzYWRkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm00KSkpCnZvaWQgdnN1eGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTMybTgpKSkKdm9pZCB2c3V4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c3V4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3N1YnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnNzdWJ1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtNCkpKQp2dWludDhtNF90IHZzc3VidSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZzc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3N1YnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2c3N1YnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2c3N1YnUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzc3VidSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2c3N1YnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzc3VidSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2c3N1YnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNzdWJ1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNzdWJ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3N1YnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2c3N1YnUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3VidSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3N1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzc3VidSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2c3N1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3VidSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzc3VidSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNzdWJ1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzc3VidSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2c3N1YnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzc3VidSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c3N1YnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNzdWJ1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtMikpKQp2dWludDhtMl90IHZzc3VidSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZzc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3N1YnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c3N1YnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91OG04KSkpCnZ1aW50OG04X3QgdnNzdWJ1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNzdWJ1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNzdWJ1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnNzdWJ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZzc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2c3N1YnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNzdWJ1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZzc3VidSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2c3N1YnUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3VidSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZzc3VidSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c3N1YnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3VidSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c3N1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzc3VidSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c3N1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3VidSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3N1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c3N1YnUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZzc3VidSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2c3N1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1YnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzdWJ1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3VidV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c3N1YnUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c3N1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZzc3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3N1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdnNzdWIodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZzc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pOG04KSkpCnZpbnQ4bThfdCB2c3N1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdnNzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNzdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzdWIodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNzdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c3N1Yih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZzc3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c3N1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3N1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNzdWIodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNzdWIodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2c3N1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNzdWIodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3ViKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZzc3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZzc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3ViKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzc3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdnNzdWIodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZzc3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2c3N1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdnNzdWIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzc3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2c3N1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2c3N1Yih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNzdWIodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2c3N1Yih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzc3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c3N1Yih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzc3ViKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdnNzdWIodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c3N1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzc3ViKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3N1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzc3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzc3ViKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNzdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzc3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3N1Yl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNzdWIodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c3N1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c3N1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNzdWIodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c3N1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNzdWIodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3N1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3ViX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c3N1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YWFkZHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFhZGR1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFhZGR1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtNCkpKQp2dWludDhtNF90IHZhYWRkdSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2YWFkZHUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YWFkZHUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YWFkZHUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhYWRkdSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YWFkZHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhYWRkdSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2YWFkZHUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFhZGR1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFhZGR1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhYWRkdSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFhZGR1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YWFkZHUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhYWRkdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YWFkZHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhYWRkdSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWFkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFhZGR1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhYWRkdSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2YWFkZHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhYWRkdSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhYWRkdSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFhZGR1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhYWRkdSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YWFkZHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhYWRkdSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YWFkZHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFhZGR1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtMikpKQp2dWludDhtMl90IHZhYWRkdSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YWFkZHUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YWFkZHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91OG04KSkpCnZ1aW50OG04X3QgdmFhZGR1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFhZGR1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFhZGR1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFhZGR1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFhZGR1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2YWFkZHUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFhZGR1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhYWRkdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhYWRkdSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YWFkZHUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhYWRkdSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhYWRkdSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YWFkZHUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFhZGR1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhYWRkdSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YWFkZHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFhZGR1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhYWRkdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhYWRkdSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YWFkZHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhYWRkdSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YWFkZHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YWFkZHUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFhZGR1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhYWRkdSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YWFkZHUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZHVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFhZGR1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhYWRkdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkdV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YWFkZHUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGR1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFhZGR1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2YWFkZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhYWRkKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaThtNCkpKQp2aW50OG00X3QgdmFhZGQodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG00X20pKSkKdmludDhtNF90IHZhYWRkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pOG04KSkpCnZpbnQ4bThfdCB2YWFkZCh2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFhZGQodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFhZGQodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFhZGQodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmFhZGQodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFhZGQodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFhZGQodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2YWFkZCh2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhYWRkKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFhZGQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YWFkZCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YWFkZCh2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFhZGQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFhZGQodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdmFhZGQodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybTgpKSkKdmludDMybThfdCB2YWFkZCh2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFhZGQodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZhYWRkKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhYWRkKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhYWRkKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZhYWRkKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhYWRkKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtMikpKQp2aW50OG0yX3QgdmFhZGQodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG0yX20pKSkKdmludDhtMl90IHZhYWRkKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG00KSkpCnZpbnQ4bTRfdCB2YWFkZCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFhZGQodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhYWRkKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2YWFkZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YWFkZCh2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFhZGQodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhYWRkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhYWRkKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YWFkZCh2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhYWRkKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2YWFkZCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhYWRkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhYWRkKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFhZGQodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFhZGQodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YWFkZCh2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhYWRkKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YWFkZCh2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhYWRkKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhYWRkKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFhZGQodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZhYWRkKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFhZGQodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhYWRkKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YWFkZF92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFhZGQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFhZGQodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YWFkZCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhYWRkKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFhZGRfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFhZGQodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFhZGQodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YWFkZCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFhZGQodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YWFkZCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFhZGQodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YWFkZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFhZGQodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhYWRkX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2YWFkZCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2YXN1YnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG0yKSkpCnZ1aW50OG0yX3QgdmFzdWJ1KHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmFzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtNCkpKQp2dWludDhtNF90IHZhc3VidSh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZhc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2YXN1YnUodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2YXN1YnUodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mMikpKQp2dWludDhtZjJfdCB2YXN1YnUodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZhc3VidSh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZhc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtMSkpKQp2dWludDE2bTFfdCB2YXN1YnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZhc3VidSh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2YXN1YnUodnVpbnQxNm00X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmFzdWJ1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmFzdWJ1KHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZhc3VidSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmFzdWJ1KHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2YXN1YnUodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZhc3VidSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtMSkpKQp2dWludDMybTFfdCB2YXN1YnUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhc3VidSh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YXN1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhc3VidSh2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2YXN1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhc3VidSh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhc3VidSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFzdWJ1KHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhc3VidSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2YXN1YnUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhc3VidSh2dWludDY0bThfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YXN1YnUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG0xKSkpCnZ1aW50OG0xX3QgdmFzdWJ1KHZ1aW50OG0xX3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtMikpKQp2dWludDhtMl90IHZhc3VidSh2dWludDhtMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bTJfbSkpKQp2dWludDhtMl90IHZhc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdWludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bTQpKSkKdnVpbnQ4bTRfdCB2YXN1YnUodnVpbnQ4bTRfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2YXN1YnUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHVpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91OG04KSkpCnZ1aW50OG04X3QgdmFzdWJ1KHZ1aW50OG04X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtOF9tKSkpCnZ1aW50OG04X3QgdmFzdWJ1KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZ1aW50OG1mMl90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmFzdWJ1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmFzdWJ1KHZ1aW50OG1mNF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB1aW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmFzdWJ1KHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZhc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtMikpKQp2dWludDE2bTJfdCB2YXN1YnUodnVpbnQxNm0yX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHVpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmFzdWJ1KHZ1aW50MTZtNF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZhc3VidSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB1aW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZhc3VidSh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2YXN1YnUodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZhc3VidSh2dWludDE2bWYyX3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZhc3VidSh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdWludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtMSkpKQp2dWludDMybTFfdCB2YXN1YnUodnVpbnQzMm0xX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFzdWJ1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhc3VidSh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YXN1YnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHVpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFzdWJ1KHZ1aW50MzJtNF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhc3VidSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB1aW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhc3VidSh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2YXN1YnUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhc3VidSh2dWludDMybWYyX3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YXN1YnUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdWludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2YXN1YnUodnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFzdWJ1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB1aW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhc3VidSh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YXN1YnUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1YnVfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFzdWJ1KHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhc3VidSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdWludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3VidV92eF91NjRtOCkpKQp2dWludDY0bThfdCB2YXN1YnUodnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJ1X3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFzdWJ1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHVpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bTIpKSkKdm9pZCB2c3V4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00KSkpCnZvaWQgdnN1eGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG00X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtOCkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDFfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k4bWYyX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c3V4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG1mOCkpKQp2b2lkIHZzdXhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnN1eGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c3V4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2YXN1Yih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTFfbSkpKQp2aW50OG0xX3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bTIpKSkKdmludDhtMl90IHZhc3ViKHZpbnQ4bTJfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2YXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaThtNCkpKQp2aW50OG00X3QgdmFzdWIodmludDhtNF90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG00X20pKSkKdmludDhtNF90IHZhc3ViKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pOG04KSkpCnZpbnQ4bThfdCB2YXN1Yih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bThfbSkpKQp2aW50OG04X3QgdmFzdWIodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmFzdWIodmludDhtZjJfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFzdWIodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmFzdWIodmludDhtZjhfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmFzdWIodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmFzdWIodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2YXN1Yih2aW50MTZtNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZhc3ViKHZpbnQxNm04X3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmFzdWIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2YXN1Yih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YXN1Yih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFzdWIodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFzdWIodmludDMybTJfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm0yX20pKSkKdmludDMybTJfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdmFzdWIodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z2X2kzMm00X20pKSkKdmludDMybTRfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybTgpKSkKdmludDMybThfdCB2YXN1Yih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFzdWIodmludDMybWYyX3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZhc3ViKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMikpKQp2aW50NjRtMl90IHZhc3ViKHZpbnQ2NG0yX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZhc3ViKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZhc3ViKHZpbnQ2NG04X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTEpKSkKdmludDhtMV90IHZhc3ViKHZpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtMikpKQp2aW50OG0yX3QgdmFzdWIodmludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG0yX20pKSkKdmludDhtMl90IHZhc3ViKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2YXN1Yih2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTRfbSkpKQp2aW50OG00X3QgdmFzdWIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bTgpKSkKdmludDhtOF90IHZhc3ViKHZpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2YXN1Yih2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjIpKSkKdmludDhtZjJfdCB2YXN1Yih2aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmFzdWIodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZhc3ViKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZhc3ViKHZpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTEpKSkKdmludDE2bTFfdCB2YXN1Yih2aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZhc3ViKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2YXN1Yih2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZhc3ViKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZhc3ViKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmFzdWIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04KSkpCnZpbnQxNm04X3QgdmFzdWIodmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2YXN1Yih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZhc3ViKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2YXN1Yih2aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZhc3ViKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZhc3ViKHZpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFzdWIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZhc3ViKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFzdWIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZhc3ViKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YXN1Yl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFzdWIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdmFzdWIodmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2YXN1Yih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhc3ViKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFzdWJfdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFzdWIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFzdWIodmludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YXN1Yih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFzdWIodmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YXN1Yih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFzdWIodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2YXN1Yih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFzdWIodmludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zhc3ViX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2YXN1Yih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtMSkpKQp2aW50OG0xX3QgdnNtdWwodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG0xX20pKSkKdmludDhtMV90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG0yKSkpCnZpbnQ4bTJfdCB2c211bCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNtdWwodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzbXVsKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c211bCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaThtOCkpKQp2aW50OG04X3QgdnNtdWwodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG04X20pKSkKdmludDhtOF90IHZzbXVsKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mMikpKQp2aW50OG1mMl90IHZzbXVsKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzbXVsKHZpbnQ4bWY0X3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZzbXVsKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMSkpKQp2aW50MTZtMV90IHZzbXVsKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzbXVsKHZpbnQxNm0yX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00KSkpCnZpbnQxNm00X3QgdnNtdWwodmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bTgpKSkKdmludDE2bThfdCB2c211bCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbXVsKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNtdWwodmludDE2bWYyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNtdWwodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMSkpKQp2aW50MzJtMV90IHZzbXVsKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzbXVsKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNCkpKQp2aW50MzJtNF90IHZzbXVsKHZpbnQzMm00X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm04KSkpCnZpbnQzMm04X3QgdnNtdWwodmludDMybThfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm04X20pKSkKdmludDMybThfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z2X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTEpKSkKdmludDY0bTFfdCB2c211bCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2c211bCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c211bCh2aW50NjRtNF90IG9wMCwgdmludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bTgpKSkKdmludDY0bThfdCB2c211bCh2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c211bCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbXVsKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c211bCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtNCkpKQp2aW50OG00X3QgdnNtdWwodmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG00X20pKSkKdmludDhtNF90IHZzbXVsKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG04KSkpCnZpbnQ4bThfdCB2c211bCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNtdWwodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNtdWwodmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbXVsKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c211bCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c211bCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNtdWwodmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c211bCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNtdWwodmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c211bCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c211bCh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbXVsKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbXVsKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNtdWwodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c211bCh2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNtdWwodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c211bCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c211bCh2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbXVsKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTIpKSkKdmludDMybTJfdCB2c211bCh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbXVsKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c211bCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNtdWxfdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbXVsKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbXVsKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNtdWwodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c211bCh2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbXVsX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbXVsKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzbXVsKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNtdWwodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbXVsKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNtdWwodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbXVsKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNtdWwodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzbXVsKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c211bF92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNtdWwodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3NybCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c3NybCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTQpKSkKdnVpbnQ4bTRfdCB2c3NybCh2dWludDhtNF90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNzcmwodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3NybCh2dWludDhtOF90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtOF9tKSkpCnZ1aW50OG04X3QgdnNzcmwodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzc3JsKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91OG1mNCkpKQp2dWludDhtZjRfdCB2c3NybCh2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdnNzcmwodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzc3JsKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtMikpKQp2dWludDE2bTJfdCB2c3NybCh2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZzc3JsKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNCkpKQp2dWludDE2bTRfdCB2c3NybCh2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOCkpKQp2dWludDE2bThfdCB2c3NybCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzc3JsKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2dWludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MzJtMikpKQp2dWludDMybTJfdCB2c3NybCh2dWludDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNzcmwodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNzcmwodnVpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2c3NybCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c3NybCh2dWludDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzc3JsKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMikpKQp2dWludDY0bTJfdCB2c3NybCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzcmwodnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzc3JsKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c3NybCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNzcmwodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtNCkpKQp2dWludDhtNF90IHZzc3JsKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzc3JsKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c3NybCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c3NybCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c3NybCh2dWludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c3NybCh2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c3NybCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c3NybCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c3NybCh2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c3NybCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtMikpKQp2dWludDE2bTJfdCB2c3NybCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c3NybCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzc3JsKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZzc3JsKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNzcmwodnVpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNzcmwodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2c3NybCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzc3JsKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzc3JsKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm00KSkpCnZ1aW50MzJtNF90IHZzc3JsKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZzc3JsKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNzcmwodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNzcmwodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NybF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzc3JsKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzc3JsKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNzcmwodnVpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnNzcmwodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNzcmwodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNzcmwodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNzcmwodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNzcmwodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmxfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNzcmwodnVpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JsX3Z4X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnNzcmwodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2c3NyYSh2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG0xX20pKSkKdmludDhtMV90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMikpKQp2aW50OG0yX3QgdnNzcmEodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c3NyYSh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTQpKSkKdmludDhtNF90IHZzc3JhKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04KSkpCnZpbnQ4bThfdCB2c3NyYSh2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG04X20pKSkKdmludDhtOF90IHZzc3JhKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2c3NyYSh2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZzc3JhKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzcmEodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNzcmEodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2c3NyYSh2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtMikpKQp2aW50MTZtMl90IHZzc3JhKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2c3NyYSh2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2c3NyYSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnNzcmEodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNzcmEodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c3NyYSh2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNzcmEodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybTEpKSkKdmludDMybTFfdCB2c3NyYSh2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2c3NyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtMikpKQp2aW50MzJtMl90IHZzc3JhKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzc3JhKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnNzcmEodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZzc3JhKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZzc3JhKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3JhKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3JhKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2c3NyYSh2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3JhKHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNzcmEodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0xX20pKSkKdmludDhtMV90IHZzc3JhKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c3NyYSh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzc3JhKHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c3NyYSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtOCkpKQp2aW50OG04X3QgdnNzcmEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG04X20pKSkKdmludDhtOF90IHZzc3JhKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzc3JhKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c3NyYSh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnNzcmEodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzc3JhKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2c3NyYSh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c3NyYSh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c3NyYSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNzcmEodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZzc3JhKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c3NyYSh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNzcmEodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzc3JhKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnNzcmEodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzc3JhKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzc3JhKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c3NyYSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTQpKSkKdmludDMybTRfdCB2c3NyYSh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNzcmEodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybTgpKSkKdmludDMybThfdCB2c3NyYSh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNzcmEodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzc3JhKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzc3JhKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c3NyYSh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c3NyYSh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNzcmEodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNzcmEodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzcmFfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZzc3JhKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NyYV92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzc3JhKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3JhX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c3NyYSh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZ1aW50MTZtMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2dWludDE2bTRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtNCkpKQp2dWludDhtNF90IHZuY2xpcHUodnVpbnQxNm04X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bTRfbSkpKQp2dWludDhtNF90IHZuY2xpcHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZuY2xpcHUodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdThtZjgpKSkKdnVpbnQ4bWY4X3Qgdm5jbGlwdSh2dWludDE2bWY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZ1aW50MzJtMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtMikpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZuY2xpcHUodnVpbnQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZuY2xpcHUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5jbGlwdSh2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodnVpbnQ2NG00X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm00KSkpCnZ1aW50MzJtNF90IHZuY2xpcHUodnVpbnQ2NG04X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZuY2xpcHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d2X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bmNsaXB1KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bTFfbSkpKQp2dWludDhtMV90IHZuY2xpcHUodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMikpKQp2dWludDhtMl90IHZuY2xpcHUodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00KSkpCnZ1aW50OG00X3Qgdm5jbGlwdSh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2bmNsaXB1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZuY2xpcHUodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bmNsaXB1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm5jbGlwdSh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZuY2xpcHUodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3Qgdm5jbGlwdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtMSkpKQp2dWludDE2bTFfdCB2bmNsaXB1KHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3Qgdm5jbGlwdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZuY2xpcHUodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bmNsaXB1KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MTZtNCkpKQp2dWludDE2bTRfdCB2bmNsaXB1KHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm00X20pKSkKdnVpbnQxNm00X3Qgdm5jbGlwdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UxNm1mNCkpKQp2dWludDE2bWY0X3Qgdm5jbGlwdSh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZuY2xpcHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZuY2xpcHUodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTFfbSkpKQp2dWludDMybTFfdCB2bmNsaXB1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybTIpKSkKdnVpbnQzMm0yX3Qgdm5jbGlwdSh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZuY2xpcHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwdV93eF91MzJtNCkpKQp2dWludDMybTRfdCB2bmNsaXB1KHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm00X20pKSkKdnVpbnQzMm00X3Qgdm5jbGlwdSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcHVfd3hfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZ1aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXB1X3d4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bmNsaXB1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm00KSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnN1eGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMSkpKQp2aW50OG0xX3Qgdm5jbGlwKHZpbnQxNm0yX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTIpKSkKdmludDhtMl90IHZuY2xpcCh2aW50MTZtNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG00KSkpCnZpbnQ4bTRfdCB2bmNsaXAodmludDE2bThfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG00X20pKSkKdmludDhtNF90IHZuY2xpcCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bmNsaXAodmludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bmNsaXAodmludDE2bWYyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pOG1mOCkpKQp2aW50OG1mOF90IHZuY2xpcCh2aW50MTZtZjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZpbnQzMm0yX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bmNsaXAodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5jbGlwKHZpbnQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2bmNsaXAodmludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZuY2xpcCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5jbGlwKHZpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2aW50MzJtZjJfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d2X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTEpKSkKdmludDMybTFfdCB2bmNsaXAodmludDY0bTJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuY2xpcCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTIpKSkKdmludDMybTJfdCB2bmNsaXAodmludDY0bTRfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTQpKSkKdmludDMybTRfdCB2bmNsaXAodmludDY0bThfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZuY2xpcCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5jbGlwKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bmNsaXAodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtMSkpKQp2aW50OG0xX3Qgdm5jbGlwKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG0xX20pKSkKdmludDhtMV90IHZuY2xpcCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG0yKSkpCnZpbnQ4bTJfdCB2bmNsaXAodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTJfbSkpKQp2aW50OG0yX3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bTQpKSkKdmludDhtNF90IHZuY2xpcCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bmNsaXAodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjIpKSkKdmludDhtZjJfdCB2bmNsaXAodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bmNsaXAodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mNCkpKQp2aW50OG1mNF90IHZuY2xpcCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaThtZjgpKSkKdmludDhtZjhfdCB2bmNsaXAodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5jbGlwKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5jbGlwKHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bTIpKSkKdmludDE2bTJfdCB2bmNsaXAodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmNsaXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5jbGlwKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtNF9tKSkpCnZpbnQxNm00X3Qgdm5jbGlwKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5jbGlwKHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZuY2xpcCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTEpKSkKdmludDMybTFfdCB2bmNsaXAodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kzMm0xX20pKSkKdmludDMybTFfdCB2bmNsaXAodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtMikpKQp2aW50MzJtMl90IHZuY2xpcCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmNsaXBfd3hfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuY2xpcCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jbGlwX3d4X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5jbGlwKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtNF9tKSkpCnZpbnQzMm00X3Qgdm5jbGlwKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5jbGlwKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY2xpcF93eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bmNsaXAodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2k2NG0yKSkpCnZvaWQgdnN1eGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9pNjRtNCkpKQp2b2lkIHZzdXhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bTgpKSkKdm9pZCB2c3V4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfaTY0bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG0xKSkpCnZvaWQgdnN1eGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNCkpKQp2b2lkIHZzdXhlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91NjRtNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U2NG04KSkpCnZvaWQgdnN1eGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzdXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c3V4ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOCkpKQp2b2lkIHZzdXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9pNjRtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG00KSkpCnZvaWQgdnN1eGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X3U2NG04KSkpCnZvaWQgdnN1eGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c3V4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOCkpKQp2b2lkIHZzdXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9pNjRtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtMikpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtNCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl91NjRtOCkpKQp2b2lkIHZzdXhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X3U2NG04X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3V4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzdXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG04KSkpCnZvaWQgdnN1eGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2k2NG04X20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bTFfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bTJfaThtMSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2aW50OG0xX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG00X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bThfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZyZWRzdW0odmludDhtMV90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pOG1mNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2aW50OG0xX3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k4bWY4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm0yX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRzdW0odmJvb2wzMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTE2bWY0X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkc3VtKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2kzMm1mMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pMzJtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRzdW0odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtMl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG00X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sMTZfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX2k2NG04X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkc3VtKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWRzdW0odnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bTFfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkc3VtKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG0yX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdThtNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bThfdThtMSkpKQp2dWludDhtMV90IHZyZWRzdW0odnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bThfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWYyX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY0X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2wzMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191OG1mOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHN1bSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U4bWY4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRzdW0odmJvb2w2NF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtMV91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm0yX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MTZtNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRzdW0odmJvb2w0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm1mMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWYyX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkc3VtKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTE2bWY0X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRzdW0odnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm0xX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191MzJtNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZib29sNF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3UzMm1mMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkc3VtKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTMybWYyX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG0xX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRzdW1fdnNfdTY0bTJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkc3VtKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkc3VtKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHN1bV92c191NjRtNF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG04X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRzdW0odnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkc3VtX3ZzX3U2NG04X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHN1bSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0xX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodmJvb2w0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bTRfdThtMSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2Ym9vbDJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG04X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdThtZjRfdThtMSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY0X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191OG1mOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWF4dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm0yX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bTRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWF4dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bThfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MTZtZjJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWYyX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1heHUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UxNm1mNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtYXh1KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm0yX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXh1X3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybTRfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWF4dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybThfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRtYXh1KHZib29sNF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191MzJtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTMybWYyX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1heHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMV91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bTRfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtNF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heHVfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG1heHUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4dV92c191NjRtOF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRtYXh1KHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1heCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWRtYXgodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1heCh2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWRtYXgodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWF4KHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWF4KHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWF4KHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWF4KHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1heCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1heF92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWF4KHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRtYXgodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWF4X3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG1heCh2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtYXhfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG0yX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZib29sNF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bTRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bThfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWYyX3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2dWludDhtMV90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkbWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191OG1mOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG1pbnUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMV91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG1pbnUodmJvb2w0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRtaW51KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkbWludSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMV91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm0xX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm0yX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWludV92c191MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG1pbnUodmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm04X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkbWludSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3UzMm1mMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRtaW51KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG0xX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW51X3ZzX3U2NG04X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRtaW51KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbnVfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkbWludSh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTFfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bTJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1pbih2aW50OG0xX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtaW4odmJvb2w0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG00X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1pbih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bThfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZyZWRtaW4odmludDhtMV90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pOG1mNF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkbWluKHZib29sMzJfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZG1pbih2aW50OG0xX3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k4bWY4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm0yX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWluKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG1pbih2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWluKHZib29sMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjJfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRtaW4odmJvb2wzMl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkbWluKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTE2bWY0X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkbWluKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRtaW5fdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkbWluKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG1pbih2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkbWluKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2kzMm1mMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pMzJtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRtaW4odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtMl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG00X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sMTZfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG1pbl92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRtaW4odmludDY0bTFfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkbWluX3ZzX2k2NG04X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkbWluKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWRhbmQodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWRhbmQodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkYW5kKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkYW5kKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkYW5kKHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRhbmQodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRhbmQodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZGFuZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZGFuZCh2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRhbmQodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMSkpKQp2dWludDhtMV90IHZyZWRhbmQodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191OG00X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2dWludDhtMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWYyX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkYW5kKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZGFuZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bTJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZGFuZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodmJvb2wyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRhbmQodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZGFuZCh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZGFuZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRhbmQodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191MzJtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZGFuZF92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRhbmQodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRhbmQodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkYW5kX3ZzX3U2NG00X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZGFuZCh2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRhbmRfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkYW5kKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG00KSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X3U2NG04KSkpCnZvaWQgdnN1eGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfdTY0bThfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTEpKSkKdmludDhtMV90IHZyZWRvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG0xX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkb3IodmludDhtMV90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkb3IodmJvb2wyX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTEpKSkKdmludDhtMV90IHZyZWRvcih2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG04X2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZG9yKHZib29sMV90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mMl9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjRfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaThtZjhfaThtMSkpKQp2aW50OG0xX3QgdnJlZG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pOG1mOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWRvcih2aW50MTZtMV90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTE2bTRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm04X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkb3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sMzJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMTZtZjRfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkb3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kxNm1mNF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWRvcih2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkb3IodmJvb2wxNl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTEpKSkKdmludDMybTFfdCB2cmVkb3IodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTMybTRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZpbnQzMm0xX3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm04X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkb3IodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pMzJtZjJfaTMybTEpKSkKdmludDMybTFfdCB2cmVkb3IodmludDMybTFfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtMV9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZpbnQ2NG0xX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX2k2NG0yX2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVkb3IodmludDY0bTFfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWRvcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZWRvcih2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c19pNjRtOF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTFfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sNF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bTRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bThfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZyZWRvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191OG1mNF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkb3IodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U4bWY4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm0yX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtNF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkb3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UxNm1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWRvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTE2bWY0X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtMV91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkb3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkb3IodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm0yX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZG9yKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm04X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm1mMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkb3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3UzMm1mMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWRvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWRvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWRvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWRvcl92c191NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkb3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkb3IodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkb3JfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZG9yX3ZzX3U2NG04X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtMV9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG0yX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG00X2k4bTEpKSkKdmludDhtMV90IHZyZWR4b3IodmludDhtMV90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bTRfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZib29sMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bThfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtOF9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2wxX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjJfaThtMSkpKQp2aW50OG0xX3QgdnJlZHhvcih2aW50OG0xX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWYyX2k4bTFfbSkpKQp2aW50OG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZyZWR4b3IodmludDhtMV90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mNF9pOG0xX20pKSkKdmludDhtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pOG1mOF9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZpbnQ4bTFfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaThtZjhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkeG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMV9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVkeG9yKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmVkeG9yKHZib29sNF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTE2bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2aW50MTZtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kxNm1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmludDE2bTFfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMTZtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZyZWR4b3IodmJvb2w2NF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0xX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm0yX2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sMTZfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c19pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmludDMybTFfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm00X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2aW50MzJtMV90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZWR4b3IodmJvb2w0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybThfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTMybWYyX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2aW50MzJtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2kzMm1mMl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJlZHhvcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTFfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlZHhvcih2aW50NjRtMV90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfaTY0bThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZWR4b3IodmJvb2w4X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtMV91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bTJfdThtMSkpKQp2dWludDhtMV90IHZyZWR4b3IodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bTJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191OG00X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtOF91OG0xKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2dWludDhtMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtOF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZib29sMV90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWYyX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjJfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY0X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjRfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVkeG9yKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdThtZjhfdThtMV9tKSkpCnZ1aW50OG0xX3QgdnJlZHhvcih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm0xX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2dWludDE2bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bTJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UxNm00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnJlZHhvcih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtOF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodmJvb2wyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjJfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTE2bWY0X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWR4b3IodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MTZtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybTFfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJlZHhvcih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybTFfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtMl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3UzMm00X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJlZHhvcih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZ1aW50MzJtMV90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtOF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTMybWYyX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWR4b3IodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191MzJtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bTFfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlZHhvcl92c191NjRtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZyZWR4b3IodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZWR4b3IodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVkeG9yX3ZzX3U2NG00X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlZHhvcih2dWludDY0bTFfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWR4b3JfdnNfdTY0bThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmVkeG9yKHZib29sOF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bTFfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmJvb2w0X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG00X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2Ym9vbDJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bThfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWYyX2kxNm0xKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmludDE2bTFfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mMl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pOG1mNF9pMTZtMSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZpbnQxNm0xX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjRfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaThtZjhfaTE2bTEpKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2aW50MTZtMV90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2k4bWY4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2d3JlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmludDMybTFfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtMV9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtMl9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bTRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTE2bThfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTEpKSkKdmludDMybTFfdCB2d3JlZHN1bSh2aW50MzJtMV90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMTZtZjJfaTMybTFfbSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMSkpKQp2aW50MzJtMV90IHZ3cmVkc3VtKHZpbnQzMm0xX3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kxNm1mNF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdndyZWRzdW0odmJvb2w2NF90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTFfaTY0bTEpKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2aW50NjRtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0xX2k2NG0xX20pKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtX3ZzX2kzMm0yX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdndyZWRzdW0odmludDY0bTFfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtMl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdndyZWRzdW0odmJvb2wxNl90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZpbnQ2NG0xX3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybTRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZpbnQ2NG0xX3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW1fdnNfaTMybThfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtZjJfaTY0bTEpKSkKdmludDY0bTFfdCB2d3JlZHN1bSh2aW50NjRtMV90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bV92c19pMzJtZjJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZ3cmVkc3VtKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTFfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG00X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZib29sMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG04X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bThfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2wxX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2dWludDE2bTFfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191OG1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodnVpbnQxNm0xX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjRfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2d3JlZHN1bXUodmJvb2wzMl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdThtZjhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3U4bWY4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdndyZWRzdW11KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2dWludDMybTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMV91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtMl91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtNF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bTRfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2w0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtOF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTE2bThfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2wyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdndyZWRzdW11KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MTZtZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMSkpKQp2dWludDMybTFfdCB2d3JlZHN1bXUodnVpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UxNm1mNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3cmVkc3VtdSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0xX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndyZWRzdW11X3ZzX3UzMm0yX3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ3cmVkc3VtdSh2dWludDY0bTFfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtMl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3cmVkc3VtdSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybTRfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w4X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d3JlZHN1bXVfdnNfdTMybThfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtZjJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdndyZWRzdW11KHZ1aW50NjRtMV90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3cmVkc3VtdV92c191MzJtZjJfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2d3JlZHN1bXUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTEpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtMikpKQp2b2lkIHZzdXhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG00KSkpCnZvaWQgdnN1eGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X3U4bTgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDFfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I4KSkpCnZib29sOF90IHZtbm90KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I0KSkpCnZib29sNF90IHZtbm90KHZib29sNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IyKSkpCnZib29sMl90IHZtbm90KHZib29sMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IxKSkpCnZib29sMV90IHZtbm90KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IxNikpKQp2Ym9vbDE2X3Qgdm1ub3QodmJvb2wxNl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2IzMikpKQp2Ym9vbDMyX3Qgdm1ub3QodmJvb2wzMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vdF9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1ub3QodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTFfbSkpKQp2dWludDhtMV90IHZpb3RhKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTJfbSkpKQp2dWludDhtMl90IHZpb3RhKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZib29sNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bTRfbSkpKQp2dWludDhtNF90IHZpb3RhKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZib29sMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bThfbSkpKQp2dWludDhtOF90IHZpb3RhKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZib29sMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmlvdGEodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdThtZjRfbSkpKQp2dWludDhtZjRfdCB2aW90YSh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZpb3RhKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmlvdGEodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2Ym9vbDE2X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2aW90YSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2aW90YSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bThfbSkpKQp2dWludDE2bThfdCB2aW90YSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZpb3RhKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmlvdGEodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2Ym9vbDMyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTMybTJfbSkpKQp2dWludDMybTJfdCB2aW90YSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZpb3RhKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2Ym9vbDhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZpb3RhKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2Ym9vbDRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmJvb2w2NF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmlvdGEodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zpb3RhX21fdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2aW90YSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZib29sMzJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlvdGFfbV91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZpb3RhKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmJvb2wxNl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aW90YV9tX3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmlvdGEodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZib29sOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG0xX20pKSkKdmludDhtMV90IHZpZCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2aWQodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmlkKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG04X20pKSkKdmludDhtOF90IHZpZCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmlkKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2aWQodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmlkKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZpZCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm04X20pKSkKdmludDE2bThfdCB2aWQodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2aWQodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZpZCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZpZCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmlkKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2kzMm00X20pKSkKdmludDMybTRfdCB2aWQodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmlkKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmlkKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmlkKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2aWQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmlkKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmlkKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmlkKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmlkKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmlkKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2aWQodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmlkKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZpZCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2aWQodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmlkKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmlkKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmlkKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2aWQodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmlkKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2aWQodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmlkKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZpZCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZpZCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmlkKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2aWQodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZpZF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmlkKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92aWRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZpZCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmlkX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2aWQodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG0xX2k4KSkpCmludDhfdCB2bXZfeCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtMl9pOCkpKQppbnQ4X3Qgdm12X3godmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k4bTRfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pOG04X2k4KSkpCmludDhfdCB2bXZfeCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjJfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjRfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaThtZjhfaTgpKSkKaW50OF90IHZtdl94KHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bTFfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtMl9pMTYpKSkKaW50MTZfdCB2bXZfeCh2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kxNm00X2kxNikpKQppbnQxNl90IHZtdl94KHZpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bThfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMTZtZjJfaTE2KSkpCmludDE2X3Qgdm12X3godmludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTE2bWY0X2kxNikpKQppbnQxNl90IHZtdl94KHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kzMm0xX2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybTJfaTMyKSkpCmludDMyX3Qgdm12X3godmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pMzJtNF9pMzIpKSkKaW50MzJfdCB2bXZfeCh2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2kzMm04X2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTMybWYyX2kzMikpKQppbnQzMl90IHZtdl94KHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k2NG0xX2k2NCkpKQppbnQ2NF90IHZtdl94KHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfaTY0bTJfaTY0KSkpCmludDY0X3Qgdm12X3godmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc19pNjRtNF9pNjQpKSkKaW50NjRfdCB2bXZfeCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX2k2NG04X2k2NCkpKQppbnQ2NF90IHZtdl94KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMV91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtMl91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtNF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtOF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdThtZjJfdTgpKSkKdWludDhfdCB2bXZfeCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191OG1mNF91OCkpKQp1aW50OF90IHZtdl94KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3U4bWY4X3U4KSkpCnVpbnQ4X3Qgdm12X3godnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bTFfdTE2KSkpCnVpbnQxNl90IHZtdl94KHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm0yX3UxNikpKQp1aW50MTZfdCB2bXZfeCh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MTZtNF91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTE2bThfdTE2KSkpCnVpbnQxNl90IHZtdl94KHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mMl91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UxNm1mNF91MTYpKSkKdWludDE2X3Qgdm12X3godnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm0xX3UzMikpKQp1aW50MzJfdCB2bXZfeCh2dWludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtMl91MzIpKSkKdWludDMyX3Qgdm12X3godnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTMybTRfdTMyKSkpCnVpbnQzMl90IHZtdl94KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3UzMm04X3UzMikpKQp1aW50MzJfdCB2bXZfeCh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191MzJtZjJfdTMyKSkpCnVpbnQzMl90IHZtdl94KHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtMV91NjQpKSkKdWludDY0X3Qgdm12X3godnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl94X3NfdTY0bTJfdTY0KSkpCnVpbnQ2NF90IHZtdl94KHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfeF9zX3U2NG00X3U2NCkpKQp1aW50NjRfdCB2bXZfeCh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3hfc191NjRtOF91NjQpKSkKdWludDY0X3Qgdm12X3godnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtMSkpKQp2aW50OG0xX3Qgdm12X3ModmludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k4bTIpKSkKdmludDhtMl90IHZtdl9zKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG00KSkpCnZpbnQ4bTRfdCB2bXZfcyh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtOCkpKQp2aW50OG04X3Qgdm12X3ModmludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm12X3ModmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pOG1mNCkpKQp2aW50OG1mNF90IHZtdl9zKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaThtZjgpKSkKdmludDhtZjhfdCB2bXZfcyh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm12X3ModmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bTIpKSkKdmludDE2bTJfdCB2bXZfcyh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMTZtNCkpKQp2aW50MTZtNF90IHZtdl9zKHZpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kxNm04KSkpCnZpbnQxNm04X3Qgdm12X3ModmludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZtdl9zKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm12X3ModmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kzMm0xKSkpCnZpbnQzMm0xX3Qgdm12X3ModmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybTIpKSkKdmludDMybTJfdCB2bXZfcyh2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pMzJtNCkpKQp2aW50MzJtNF90IHZtdl9zKHZpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2kzMm04KSkpCnZpbnQzMm04X3Qgdm12X3ModmludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZtdl9zKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pNjRtMSkpKQp2aW50NjRtMV90IHZtdl9zKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm12X3ModmludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfaTY0bTQpKSkKdmludDY0bTRfdCB2bXZfcyh2aW50NjRtNF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF9pNjRtOCkpKQp2aW50NjRtOF90IHZtdl9zKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bXZfcyh2dWludDhtMV90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG0yKSkpCnZ1aW50OG0yX3Qgdm12X3ModnVpbnQ4bTJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtNCkpKQp2dWludDhtNF90IHZtdl9zKHZ1aW50OG00X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bTgpKSkKdnVpbnQ4bThfdCB2bXZfcyh2dWludDhtOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91OG1mMikpKQp2dWludDhtZjJfdCB2bXZfcyh2dWludDhtZjJfdCBvcDAsIHVpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdThtZjQpKSkKdnVpbnQ4bWY0X3Qgdm12X3ModnVpbnQ4bWY0X3Qgb3AwLCB1aW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZtdl9zKHZ1aW50OG1mOF90IG9wMCwgdWludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtMSkpKQp2dWludDE2bTFfdCB2bXZfcyh2dWludDE2bTFfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZtdl9zKHZ1aW50MTZtMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bTQpKSkKdnVpbnQxNm00X3Qgdm12X3ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MTZtOCkpKQp2dWludDE2bThfdCB2bXZfcyh2dWludDE2bThfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UxNm1mMikpKQp2dWludDE2bWYyX3Qgdm12X3ModnVpbnQxNm1mMl90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bXZfcyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtMSkpKQp2dWludDMybTFfdCB2bXZfcyh2dWludDMybTFfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZtdl9zKHZ1aW50MzJtMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTMybTQpKSkKdnVpbnQzMm00X3Qgdm12X3ModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91MzJtOCkpKQp2dWludDMybThfdCB2bXZfcyh2dWludDMybThfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3UzMm1mMikpKQp2dWludDMybWYyX3Qgdm12X3ModnVpbnQzMm1mMl90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm12X3ModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3NfeF91NjRtMikpKQp2dWludDY0bTJfdCB2bXZfcyh2dWludDY0bTJfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfc194X3U2NG00KSkpCnZ1aW50NjRtNF90IHZtdl9zKHZ1aW50NjRtNF90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl9zX3hfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm12X3ModnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmZtdl9zKHZ1aW50MTZtMV90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbXZfcyh2dWludDE2bTJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtNCkpKQp2dWludDE2bTRfdCB2Zm12X3ModnVpbnQxNm00X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZtdl9zKHZ1aW50MTZtOF90IG9wMCwgdWludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZtdl9zKHZ1aW50MTZtZjJfdCBvcDAsIHVpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZmbXZfcyh2dWludDE2bWY0X3Qgb3AwLCB1aW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZtdl9zKHZ1aW50MzJtMV90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZmbXZfcyh2dWludDMybTJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91MzJtNCkpKQp2dWludDMybTRfdCB2Zm12X3ModnVpbnQzMm00X3Qgb3AwLCB1aW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTMybTgpKSkKdnVpbnQzMm04X3QgdmZtdl9zKHZ1aW50MzJtOF90IG9wMCwgdWludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZtdl9zKHZ1aW50MzJtZjJfdCBvcDAsIHVpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtMSkpKQp2dWludDY0bTFfdCB2Zm12X3ModnVpbnQ2NG0xX3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX3hfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmZtdl9zKHZ1aW50NjRtMl90IG9wMCwgdWludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc194X3U2NG00KSkpCnZ1aW50NjRtNF90IHZmbXZfcyh2dWludDY0bTRfdCBvcDAsIHVpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfeF91NjRtOCkpKQp2dWludDY0bThfdCB2Zm12X3ModnVpbnQ2NG04X3Qgb3AwLCB1aW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtMSkpKQp2aW50OG0xX3QgdnNsaWRldXAodmludDhtMV90IG9wMCwgdmludDhtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2c2xpZGV1cCh2aW50OG0yX3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGlkZXVwKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2c2xpZGV1cCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtOCkpKQp2aW50OG04X3QgdnNsaWRldXAodmludDhtOF90IG9wMCwgdmludDhtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGlkZXVwKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mMikpKQp2aW50OG1mMl90IHZzbGlkZXVwKHZpbnQ4bWYyX3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdnNsaWRldXAodmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGV1cCh2aW50OG1mOF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZzbGlkZXVwKHZpbnQxNm0xX3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNsaWRldXAodmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZXVwKHZpbnQxNm00X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2c2xpZGV1cCh2aW50MTZtOF90IG9wMCwgdmludDE2bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c2xpZGV1cCh2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRldXAodmludDE2bWY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGV1cCh2aW50MzJtMV90IG9wMCwgdmludDMybTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMikpKQp2aW50MzJtMl90IHZzbGlkZXVwKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsaWRldXAodmludDMybTRfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZXVwKHZpbnQzMm04X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZzbGlkZXVwKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRldXAodmludDY0bTFfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2c2xpZGV1cCh2aW50NjRtMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbGlkZXVwKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRldXAodmludDY0bThfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG0xKSkpCnZ1aW50OG0xX3QgdnNsaWRldXAodnVpbnQ4bTFfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2c2xpZGV1cCh2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZXVwKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c2xpZGV1cCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG04KSkpCnZ1aW50OG04X3QgdnNsaWRldXAodnVpbnQ4bThfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZXVwKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZzbGlkZXVwKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNsaWRldXAodnVpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGV1cCh2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZzbGlkZXVwKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRldXAodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00KSkpCnZ1aW50MTZtNF90IHZzbGlkZXVwKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOCkpKQp2dWludDE2bThfdCB2c2xpZGV1cCh2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGV1cCh2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRldXAodnVpbnQxNm1mNF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c2xpZGV1cCh2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzbGlkZXVwKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNsaWRldXAodnVpbnQzMm00X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGlkZXVwKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzbGlkZXVwKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnNsaWRldXAodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMikpKQp2dWludDY0bTJfdCB2c2xpZGV1cCh2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZXVwKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZXVwKHZ1aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNsaWRldXAodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMSkpKQp2aW50OG0xX3QgdnNsaWRlZG93bih2aW50OG0xX3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtMV9tKSkpCnZpbnQ4bTFfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZWRvd24odmludDhtMl90IG9wMCwgdmludDhtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00KSkpCnZpbnQ4bTRfdCB2c2xpZGVkb3duKHZpbnQ4bTRfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZWRvd24odmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOCkpKQp2aW50OG04X3QgdnNsaWRlZG93bih2aW50OG04X3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtOF9tKSkpCnZpbnQ4bThfdCB2c2xpZGVkb3duKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlZG93bih2aW50OG1mMl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRlZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbGlkZWRvd24odmludDhtZjRfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjRfbSkpKQp2aW50OG1mNF90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGVkb3duKHZpbnQ4bWY4X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k4bWY4X20pKSkKdmludDhtZjhfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlZG93bih2aW50MTZtMV90IG9wMCwgdmludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdnNsaWRlZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzbGlkZWRvd24odmludDE2bTJfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZzbGlkZWRvd24odmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZWRvd24odmludDE2bTRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbGlkZWRvd24odmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZWRvd24odmludDE2bThfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzbGlkZWRvd24odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNsaWRlZG93bih2aW50MTZtZjJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRlZG93bih2aW50MTZtZjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzbGlkZWRvd24odmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtMSkpKQp2aW50MzJtMV90IHZzbGlkZWRvd24odmludDMybTFfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybTIpKSkKdmludDMybTJfdCB2c2xpZGVkb3duKHZpbnQzMm0yX3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm00KSkpCnZpbnQzMm00X3QgdnNsaWRlZG93bih2aW50MzJtNF90IG9wMCwgdmludDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm04KSkpCnZpbnQzMm04X3QgdnNsaWRlZG93bih2aW50MzJtOF90IG9wMCwgdmludDMybThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xpZGVkb3duKHZpbnQzMm1mMl90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRlZG93bih2aW50NjRtMV90IG9wMCwgdmludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZWRvd24odmludDY0bTJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzbGlkZWRvd24odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2xpZGVkb3duKHZpbnQ2NG00X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRlZG93bih2aW50NjRtOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGVkb3duKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZWRvd24odmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsaWRlZG93bih2dWludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZWRvd24odnVpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnNsaWRlZG93bih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGVkb3duKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZWRvd24odmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgdnVpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xpZGVkb3duKHZ1aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdnNsaWRlZG93bih2dWludDhtZjRfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZzbGlkZWRvd24odnVpbnQ4bWY4X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZWRvd24odmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xpZGVkb3duKHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2c2xpZGVkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRlZG93bih2dWludDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNsaWRlZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNsaWRlZG93bih2dWludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRlZG93bih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsaWRlZG93bih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnNsaWRlZG93bih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGVkb3duKHZ1aW50MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2c2xpZGVkb3duKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRlZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnNsaWRlZG93bih2dWludDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZzbGlkZWRvd24odnVpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGVkb3duKHZ1aW50MzJtNF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtOCkpKQp2dWludDMybThfdCB2c2xpZGVkb3duKHZ1aW50MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZzbGlkZWRvd24odnVpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2c2xpZGVkb3duKHZ1aW50NjRtMV90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsaWRlZG93bih2dWludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZWRvd24odnVpbnQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2c2xpZGVkb3duKHZ1aW50NjRtOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTEpKSkKdmludDhtMV90IHZzbGlkZTF1cCh2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG0xX20pKSkKdmludDhtMV90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZTF1cCh2aW50OG0yX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG0yX20pKSkKdmludDhtMl90IHZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTQpKSkKdmludDhtNF90IHZzbGlkZTF1cCh2aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZTF1cCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bTgpKSkKdmludDhtOF90IHZzbGlkZTF1cCh2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG04X20pKSkKdmludDhtOF90IHZzbGlkZTF1cCh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMXVwKHZpbnQ4bWYyX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2c2xpZGUxdXAodmludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pOG1mOCkpKQp2aW50OG1mOF90IHZzbGlkZTF1cCh2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlMXVwKHZpbnQxNm0xX3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtMikpKQp2aW50MTZtMl90IHZzbGlkZTF1cCh2aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtNCkpKQp2aW50MTZtNF90IHZzbGlkZTF1cCh2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm00X20pKSkKdmludDE2bTRfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZTF1cCh2aW50MTZtOF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm04X20pKSkKdmludDE2bThfdCB2c2xpZGUxdXAodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNsaWRlMXVwKHZpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2xpZGUxdXAodmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGUxdXAodmludDMybTFfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNsaWRlMXVwKHZpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtNCkpKQp2aW50MzJtNF90IHZzbGlkZTF1cCh2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm00X20pKSkKdmludDMybTRfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZTF1cCh2aW50MzJtOF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm04X20pKSkKdmludDMybThfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNsaWRlMXVwKHZpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNsaWRlMXVwKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZTF1cCh2aW50NjRtMl90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bTQpKSkKdmludDY0bTRfdCB2c2xpZGUxdXAodmludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X2k2NG04KSkpCnZpbnQ2NG04X3QgdnNsaWRlMXVwKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGUxdXAodnVpbnQ4bTFfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMikpKQp2dWludDhtMl90IHZzbGlkZTF1cCh2dWludDhtMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRlMXVwKHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG00KSkpCnZ1aW50OG00X3QgdnNsaWRlMXVwKHZ1aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG00X20pKSkKdnVpbnQ4bTRfdCB2c2xpZGUxdXAodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGUxdXAodnVpbnQ4bThfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZzbGlkZTF1cCh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnNsaWRlMXVwKHZ1aW50OG1mMl90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZzbGlkZTF1cCh2dWludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGUxdXAodnVpbnQ4bWY4X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnNsaWRlMXVwKHZ1aW50MTZtMV90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRlMXVwKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnNsaWRlMXVwKHZ1aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnNsaWRlMXVwKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xpZGUxdXAodnVpbnQxNm00X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2c2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm04KSkpCnZ1aW50MTZtOF90IHZzbGlkZTF1cCh2dWludDE2bThfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZTF1cCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGUxdXAodnVpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRlMXVwKHZ1aW50MTZtZjRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMSkpKQp2dWludDMybTFfdCB2c2xpZGUxdXAodnVpbnQzMm0xX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtMikpKQp2dWludDMybTJfdCB2c2xpZGUxdXAodnVpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTJfbSkpKQp2dWludDMybTJfdCB2c2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGUxdXAodnVpbnQzMm00X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybTRfbSkpKQp2dWludDMybTRfdCB2c2xpZGUxdXAodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm04KSkpCnZ1aW50MzJtOF90IHZzbGlkZTF1cCh2dWludDMybThfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxdXBfdnhfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGUxdXAodnVpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2c2xpZGUxdXAodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGlkZTF1cCh2dWludDY0bTFfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZzbGlkZTF1cCh2dWludDY0bTJfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG00KSkpCnZ1aW50NjRtNF90IHZzbGlkZTF1cCh2dWludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMXVwX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGlkZTF1cCh2dWludDY0bThfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTF1cF92eF91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG0xKSkpCnZpbnQ4bTFfdCB2c2xpZGUxZG93bih2aW50OG0xX3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTFfbSkpKQp2aW50OG0xX3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bTIpKSkKdmludDhtMl90IHZzbGlkZTFkb3duKHZpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtMl9tKSkpCnZpbnQ4bTJfdCB2c2xpZGUxZG93bih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtNCkpKQp2aW50OG00X3QgdnNsaWRlMWRvd24odmludDhtNF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG00X20pKSkKdmludDhtNF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG04KSkpCnZpbnQ4bThfdCB2c2xpZGUxZG93bih2aW50OG04X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bThfbSkpKQp2aW50OG04X3QgdnNsaWRlMWRvd24odmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCB2aW50OG04X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnNsaWRlMWRvd24odmludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjJfbSkpKQp2aW50OG1mMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mNCkpKQp2aW50OG1mNF90IHZzbGlkZTFkb3duKHZpbnQ4bWY0X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2k4bWY0X20pKSkKdmludDhtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaThtZjgpKSkKdmludDhtZjhfdCB2c2xpZGUxZG93bih2aW50OG1mOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnNsaWRlMWRvd24odmludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2xpZGUxZG93bih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNsaWRlMWRvd24odmludDE2bTJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm0yX20pKSkKdmludDE2bTJfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2c2xpZGUxZG93bih2aW50MTZtNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOCkpKQp2aW50MTZtOF90IHZzbGlkZTFkb3duKHZpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnNsaWRlMWRvd24odmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2c2xpZGUxZG93bih2aW50MTZtZjJfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnNsaWRlMWRvd24odmludDE2bWY0X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTEpKSkKdmludDMybTFfdCB2c2xpZGUxZG93bih2aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTIpKSkKdmludDMybTJfdCB2c2xpZGUxZG93bih2aW50MzJtMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTJfbSkpKQp2aW50MzJtMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTQpKSkKdmludDMybTRfdCB2c2xpZGUxZG93bih2aW50MzJtNF90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzbGlkZTFkb3duKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOCkpKQp2aW50MzJtOF90IHZzbGlkZTFkb3duKHZpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2xpZGUxZG93bih2aW50MzJtZjJfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZzbGlkZTFkb3duKHZpbnQ2NG0xX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMikpKQp2aW50NjRtMl90IHZzbGlkZTFkb3duKHZpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnNsaWRlMWRvd24odmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNCkpKQp2aW50NjRtNF90IHZzbGlkZTFkb3duKHZpbnQ2NG00X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZzbGlkZTFkb3duKHZpbnQ2NG04X3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2c2xpZGUxZG93bih2dWludDhtMV90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0xX20pKSkKdnVpbnQ4bTFfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG0yKSkpCnZ1aW50OG0yX3QgdnNsaWRlMWRvd24odnVpbnQ4bTJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtMl9tKSkpCnZ1aW50OG0yX3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIGludDhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtNCkpKQp2dWludDhtNF90IHZzbGlkZTFkb3duKHZ1aW50OG00X3Qgb3AwLCBpbnQ4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTRfbSkpKQp2dWludDhtNF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBpbnQ4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2xpZGUxZG93bih2dWludDhtOF90IG9wMCwgaW50OF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG04X20pKSkKdnVpbnQ4bThfdCB2c2xpZGUxZG93bih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mMikpKQp2dWludDhtZjJfdCB2c2xpZGUxZG93bih2dWludDhtZjJfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2c2xpZGUxZG93bih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mNCkpKQp2dWludDhtZjRfdCB2c2xpZGUxZG93bih2dWludDhtZjRfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91OG1mOCkpKQp2dWludDhtZjhfdCB2c2xpZGUxZG93bih2dWludDhtZjhfdCBvcDAsIGludDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgaW50OF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtMSkpKQp2dWludDE2bTFfdCB2c2xpZGUxZG93bih2dWludDE2bTFfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZzbGlkZTFkb3duKHZ1aW50MTZtMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBpbnQxNl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtNCkpKQp2dWludDE2bTRfdCB2c2xpZGUxZG93bih2dWludDE2bTRfdCBvcDAsIGludDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnNsaWRlMWRvd24odmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgaW50MTZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNsaWRlMWRvd24odnVpbnQxNm04X3Qgb3AwLCBpbnQxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZzbGlkZTFkb3duKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnNsaWRlMWRvd24odnVpbnQxNm1mMl90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnNsaWRlMWRvd24odnVpbnQxNm1mNF90IG9wMCwgaW50MTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIGludDE2X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZzbGlkZTFkb3duKHZ1aW50MzJtMV90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTFfbSkpKQp2dWludDMybTFfdCB2c2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnNsaWRlMWRvd24odnVpbnQzMm0yX3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBpbnQzMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtNCkpKQp2dWludDMybTRfdCB2c2xpZGUxZG93bih2dWludDMybTRfdCBvcDAsIGludDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgaW50MzJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNsaWRlMWRvd24odnVpbnQzMm04X3Qgb3AwLCBpbnQzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnNsaWRlMWRvd24odnVpbnQzMm1mMl90IG9wMCwgaW50MzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZzbGlkZTFkb3duKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIGludDMyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZzbGlkZTFkb3duKHZ1aW50NjRtMV90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2c2xpZGUxZG93bih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgaW50NjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnNsaWRlMWRvd24odnVpbnQ2NG0yX3Qgb3AwLCBpbnQ2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGUxZG93bl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2c2xpZGUxZG93bih2dWludDY0bTRfdCBvcDAsIGludDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIGludDY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZTFkb3duX3Z4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZzbGlkZTFkb3duKHZ1aW50NjRtOF90IG9wMCwgaW50NjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlMWRvd25fdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2c2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBpbnQ2NF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xKSkpCnZpbnQ4bTFfdCB2cmdhdGhlcih2aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG0xX20pKSkKdmludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMikpKQp2aW50OG0yX3QgdnJnYXRoZXIodmludDhtMl90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTQpKSkKdmludDhtNF90IHZyZ2F0aGVyKHZpbnQ4bTRfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bTRfbSkpKQp2aW50OG00X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04KSkpCnZpbnQ4bThfdCB2cmdhdGhlcih2aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG04X20pKSkKdmludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmdhdGhlcih2aW50OG1mMl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG1mNCkpKQp2aW50OG1mNF90IHZyZ2F0aGVyKHZpbnQ4bWY0X3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTEpKSkKdmludDE2bTFfdCB2cmdhdGhlcih2aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtMikpKQp2aW50MTZtMl90IHZyZ2F0aGVyKHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcih2aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm00X20pKSkKdmludDE2bTRfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm04KSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnJnYXRoZXIodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcih2aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTEpKSkKdmludDMybTFfdCB2cmdhdGhlcih2aW50MzJtMV90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kzMm0xX20pKSkKdmludDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtMikpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZpbnQzMm0yX3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2kzMm00KSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZ2F0aGVyKHZpbnQzMm04X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybThfbSkpKQp2aW50MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZ2F0aGVyKHZpbnQzMm1mMl90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtMSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmludDY0bTJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bTQpKSkKdmludDY0bTRfdCB2cmdhdGhlcih2aW50NjRtNF90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2k2NG00X20pKSkKdmludDY0bTRfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtMSkpKQp2aW50OG0xX3QgdnJnYXRoZXIodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0xX20pKSkKdmludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG0yKSkpCnZpbnQ4bTJfdCB2cmdhdGhlcih2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bTQpKSkKdmludDhtNF90IHZyZ2F0aGVyKHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtNF9tKSkpCnZpbnQ4bTRfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtOCkpKQp2aW50OG04X3QgdnJnYXRoZXIodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG04X20pKSkKdmludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mMikpKQp2aW50OG1mMl90IHZyZ2F0aGVyKHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWYyX20pKSkKdmludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjQpKSkKdmludDhtZjRfdCB2cmdhdGhlcih2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJnYXRoZXIodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaThtZjhfbSkpKQp2aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMSkpKQp2aW50MTZtMV90IHZyZ2F0aGVyKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTIpKSkKdmludDE2bTJfdCB2cmdhdGhlcih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcih2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bTgpKSkKdmludDE2bThfdCB2cmdhdGhlcih2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZ2F0aGVyKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJnYXRoZXIodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXIodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTFfbSkpKQp2aW50MzJtMV90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtMikpKQp2aW50MzJtMl90IHZyZ2F0aGVyKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2kzMm0yX20pKSkKdmludDMybTJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTQpKSkKdmludDMybTRfdCB2cmdhdGhlcih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybTgpKSkKdmludDMybThfdCB2cmdhdGhlcih2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZ2F0aGVyKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMSkpKQp2aW50NjRtMV90IHZyZ2F0aGVyKHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTIpKSkKdmludDY0bTJfdCB2cmdhdGhlcih2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnJnYXRoZXIodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyKHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2k2NG04X20pKSkKdmludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMSkpKQp2aW50OG0xX3QgdnJnYXRoZXJlaTE2KHZpbnQ4bTFfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTIpKSkKdmludDhtMl90IHZyZ2F0aGVyZWkxNih2aW50OG0yX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bTJfbSkpKQp2aW50OG0yX3QgdnJnYXRoZXJlaTE2KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00KSkpCnZpbnQ4bTRfdCB2cmdhdGhlcmVpMTYodmludDhtNF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG00X20pKSkKdmludDhtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjIpKSkKdmludDhtZjJfdCB2cmdhdGhlcmVpMTYodmludDhtZjJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjQpKSkKdmludDhtZjRfdCB2cmdhdGhlcmVpMTYodmludDhtZjRfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k4bWY0X20pKSkKdmludDhtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pOG1mOCkpKQp2aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2aW50OG1mOF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJnYXRoZXJlaTE2KHZpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0xX20pKSkKdmludDE2bTFfdCB2cmdhdGhlcmVpMTYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yKSkpCnZpbnQxNm0yX3QgdnJnYXRoZXJlaTE2KHZpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm0yX20pKSkKdmludDE2bTJfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTQpKSkKdmludDE2bTRfdCB2cmdhdGhlcmVpMTYodmludDE2bTRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtOCkpKQp2aW50MTZtOF90IHZyZ2F0aGVyZWkxNih2aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdnJnYXRoZXJlaTE2KHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmdhdGhlcmVpMTYodmludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmludDE2bWY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZpbnQzMm0xX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTIpKSkKdmludDMybTJfdCB2cmdhdGhlcmVpMTYodmludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTQpKSkKdmludDMybTRfdCB2cmdhdGhlcmVpMTYodmludDMybTRfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtOCkpKQp2aW50MzJtOF90IHZyZ2F0aGVyZWkxNih2aW50MzJtOF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnJnYXRoZXJlaTE2KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmdhdGhlcmVpMTYodmludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZpbnQ2NG0xX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfaTY0bTIpKSkKdmludDY0bTJfdCB2cmdhdGhlcmVpMTYodmludDY0bTJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2k2NG0yX20pKSkKdmludDY0bTJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNCkpKQp2aW50NjRtNF90IHZyZ2F0aGVyZWkxNih2aW50NjRtNF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOCkpKQp2aW50NjRtOF90IHZyZ2F0aGVyZWkxNih2aW50NjRtOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZ1aW50OG0xX3Qgb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtMikpKQp2dWludDhtMl90IHZyZ2F0aGVyKHZ1aW50OG0yX3Qgb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtNCkpKQp2dWludDhtNF90IHZyZ2F0aGVyKHZ1aW50OG00X3Qgb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG00X20pKSkKdnVpbnQ4bTRfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtOCkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZ1aW50OG04X3Qgb3AwLCB2dWludDhtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG04X20pKSkKdnVpbnQ4bThfdCB2cmdhdGhlcih2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgdnVpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJnYXRoZXIodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZ1aW50OG1mNF90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmdhdGhlcih2dWludDhtZjhfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJnYXRoZXIodnVpbnQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZ1aW50MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZ2F0aGVyKHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZ2F0aGVyKHZ1aW50MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodnVpbnQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodnVpbnQzMm0xX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZ2F0aGVyKHZ1aW50MzJtMl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtNCkpKQp2dWludDMybTRfdCB2cmdhdGhlcih2dWludDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOCkpKQp2dWludDMybThfdCB2cmdhdGhlcih2dWludDMybThfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyKHZ1aW50MzJtZjJfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJnYXRoZXIodnVpbnQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZ2F0aGVyKHZ1aW50NjRtMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNCkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2dWludDY0bTRfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJnYXRoZXIodnVpbnQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtMSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG0yX20pKSkKdnVpbnQ4bTJfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG00KSkpCnZ1aW50OG00X3QgdnJnYXRoZXIodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtNF9tKSkpCnZ1aW50OG00X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdThtOCkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bThfbSkpKQp2dWludDhtOF90IHZyZ2F0aGVyKHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyZ2F0aGVyKHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mMl9tKSkpCnZ1aW50OG1mMl90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mNF9tKSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3U4bWY4KSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyKHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZyZ2F0aGVyKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtOCkpKQp2dWludDE2bThfdCB2cmdhdGhlcih2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bThfbSkpKQp2dWludDE2bThfdCB2cmdhdGhlcih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJnYXRoZXIodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtOCkpKQp2dWludDMybThfdCB2cmdhdGhlcih2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTMybThfbSkpKQp2dWludDMybThfdCB2cmdhdGhlcih2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJnYXRoZXIodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtMikpKQp2dWludDY0bTJfdCB2cmdhdGhlcih2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF91NjRtOCkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG0xKSkpCnZ1aW50OG0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50OG0xX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTFfbSkpKQp2dWludDhtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG0yKSkpCnZ1aW50OG0yX3QgdnJnYXRoZXJlaTE2KHZ1aW50OG0yX3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTJfbSkpKQp2dWludDhtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG00KSkpCnZ1aW50OG00X3QgdnJnYXRoZXJlaTE2KHZ1aW50OG00X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bTRfbSkpKQp2dWludDhtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mMikpKQp2dWludDhtZjJfdCB2cmdhdGhlcmVpMTYodnVpbnQ4bWYyX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZ2F0aGVyZWkxNih2dWludDhtZjRfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mOCkpKQp2dWludDhtZjhfdCB2cmdhdGhlcmVpMTYodnVpbnQ4bWY4X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtMV90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtMikpKQp2dWludDE2bTJfdCB2cmdhdGhlcmVpMTYodnVpbnQxNm0yX3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZ2F0aGVyZWkxNih2dWludDE2bThfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2cmdhdGhlcmVpMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZ2F0aGVyZWkxNih2dWludDE2bWYyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdnJnYXRoZXJlaTE2KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJnYXRoZXJlaTE2KHZ1aW50MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2cmdhdGhlcmVpMTYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdnJnYXRoZXJlaTE2KHZ1aW50MzJtMV90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZ2F0aGVyZWkxNih2dWludDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2cmdhdGhlcmVpMTYodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJnYXRoZXJlaTE2KHZ1aW50MzJtNF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZ2F0aGVyZWkxNih2dWludDMybThfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTMybThfbSkpKQp2dWludDMybThfdCB2cmdhdGhlcmVpMTYodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZ2F0aGVyZWkxNih2dWludDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZyZ2F0aGVyZWkxNih2dWludDY0bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMikpKQp2dWludDY0bTJfdCB2cmdhdGhlcmVpMTYodnVpbnQ2NG0yX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJnYXRoZXJlaTE2KHZ1aW50NjRtNF90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl91NjRtOCkpKQp2dWludDY0bThfdCB2cmdhdGhlcmVpMTYodnVpbnQ2NG04X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnJnYXRoZXJlaTE2KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtMSkpKQp2aW50OG0xX3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtMikpKQp2aW50OG0yX3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtNCkpKQp2aW50OG00X3QgdmNvbXByZXNzKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtOCkpKQp2aW50OG04X3QgdmNvbXByZXNzKHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faThtZjIpKSkKdmludDhtZjJfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pOG1mNCkpKQp2aW50OG1mNF90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTEpKSkKdmludDE2bTFfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtMikpKQp2aW50MTZtMl90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTE2bTQpKSkKdmludDE2bTRfdCB2Y29tcHJlc3ModmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kxNm04KSkpCnZpbnQxNm04X3QgdmNvbXByZXNzKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtMSkpKQp2aW50MzJtMV90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm0yKSkpCnZpbnQzMm0yX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTMybTQpKSkKdmludDMybTRfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2kzMm04KSkpCnZpbnQzMm04X3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pMzJtZjIpKSkKdmludDMybWYyX3QgdmNvbXByZXNzKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pNjRtMSkpKQp2aW50NjRtMV90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1faTY0bTQpKSkKdmludDY0bTRfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9pNjRtOCkpKQp2aW50NjRtOF90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtMSkpKQp2dWludDhtMV90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtMikpKQp2dWludDhtMl90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtNCkpKQp2dWludDhtNF90IHZjb21wcmVzcyh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtOCkpKQp2dWludDhtOF90IHZjb21wcmVzcyh2Ym9vbDFfdCBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91OG1mNCkpKQp2dWludDhtZjRfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtMikpKQp2dWludDE2bTJfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTE2bTQpKSkKdnVpbnQxNm00X3QgdmNvbXByZXNzKHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UxNm04KSkpCnZ1aW50MTZtOF90IHZjb21wcmVzcyh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtMSkpKQp2dWludDMybTFfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTMybTQpKSkKdnVpbnQzMm00X3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3UzMm04KSkpCnZ1aW50MzJtOF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtMSkpKQp2dWludDY0bTFfdCB2Y29tcHJlc3ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZjb21wcmVzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmNvbXByZXNzKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV91NjRtOCkpKQp2dWludDY0bThfdCB2Y29tcHJlc3ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtOF9pOG0xKSkpCnZpbnQ4bTFfdCB2Z2V0X2k4bTEodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2Z2V0X2kxNm0xKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtNF9pMTZtMSkpKQp2aW50MTZtMV90IHZnZXRfaTE2bTEodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmdldF9pMTZtMSh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2Z2V0X2kzMm0xKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMzJtNF9pMzJtMSkpKQp2aW50MzJtMV90IHZnZXRfaTMybTEodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm04X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmdldF9pMzJtMSh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTY0bTJfaTY0bTEpKSkKdmludDY0bTFfdCB2Z2V0X2k2NG0xKHZpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtNF9pNjRtMSkpKQp2aW50NjRtMV90IHZnZXRfaTY0bTEodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmdldF9pNjRtMSh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdThtMl91OG0xKSkpCnZ1aW50OG0xX3QgdmdldF91OG0xKHZ1aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91OG00X3U4bTEpKSkKdnVpbnQ4bTFfdCB2Z2V0X3U4bTEodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtMSkpKQp2dWludDhtMV90IHZnZXRfdThtMSh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bTJfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdmdldF91MTZtMSh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZnZXRfdTE2bTEodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2Z2V0X3UxNm0xKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybTJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmdldF91MzJtMSh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm00X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZnZXRfdTMybTEodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2Z2V0X3UzMm0xKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bTJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmdldF91NjRtMSh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U2NG00X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZnZXRfdTY0bTEodnVpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2Z2V0X3U2NG0xKHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtNF9pOG0yKSkpCnZpbnQ4bTJfdCB2Z2V0X2k4bTIodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaThtOF9pOG0yKSkpCnZpbnQ4bTJfdCB2Z2V0X2k4bTIodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTE2bTRfaTE2bTIpKSkKdmludDE2bTJfdCB2Z2V0X2kxNm0yKHZpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pMTZtOF9pMTZtMikpKQp2aW50MTZtMl90IHZnZXRfaTE2bTIodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kzMm00X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmdldF9pMzJtMih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTIpKSkKdmludDMybTJfdCB2Z2V0X2kzMm0yKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtNF9pNjRtMikpKQp2aW50NjRtMl90IHZnZXRfaTY0bTIodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k2NG04X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmdldF9pNjRtMih2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdThtNF91OG0yKSkpCnZ1aW50OG0yX3QgdmdldF91OG0yKHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91OG04X3U4bTIpKSkKdnVpbnQ4bTJfdCB2Z2V0X3U4bTIodnVpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UxNm00X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZnZXRfdTE2bTIodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91MTZtOF91MTZtMikpKQp2dWludDE2bTJfdCB2Z2V0X3UxNm0yKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTMybTRfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmdldF91MzJtMih2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZnZXRfdTMybTIodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtNF91NjRtMikpKQp2dWludDY0bTJfdCB2Z2V0X3U2NG0yKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTY0bThfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmdldF91NjRtMih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2k4bThfaThtNCkpKQp2aW50OG00X3QgdmdldF9pOG00KHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2kxNm04X2kxNm00KSkpCnZpbnQxNm00X3QgdmdldF9pMTZtNCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfaTMybThfaTMybTQpKSkKdmludDMybTRfdCB2Z2V0X2kzMm00KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9pNjRtOF9pNjRtNCkpKQp2aW50NjRtNF90IHZnZXRfaTY0bTQodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3U4bThfdThtNCkpKQp2dWludDhtNF90IHZnZXRfdThtNCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Z2V0X3ZfdTE2bThfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmdldF91MTZtNCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X3UzMm04X3UzMm00KSkpCnZ1aW50MzJtNF90IHZnZXRfdTMybTQodnVpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl91NjRtOF91NjRtNCkpKQp2dWludDY0bTRfdCB2Z2V0X3U2NG00KHZ1aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG0yKSkpCnZpbnQ4bTJfdCB2c2V0KHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm0yKSkpCnZpbnQxNm0yX3QgdnNldCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNldCh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdnNldCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTFfdThtMikpKQp2dWludDhtMl90IHZzZXQodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MTZtMV91MTZtMikpKQp2dWludDE2bTJfdCB2c2V0KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91MzJtMV91MzJtMikpKQp2dWludDMybTJfdCB2c2V0KHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91NjRtMV91NjRtMikpKQp2dWludDY0bTJfdCB2c2V0KHZ1aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG0xX2k4bTQpKSkKdmludDhtNF90IHZzZXQodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDhtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMl9pOG00KSkpCnZpbnQ4bTRfdCB2c2V0KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0xX2kxNm00KSkpCnZpbnQxNm00X3QgdnNldCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kxNm0yX2kxNm00KSkpCnZpbnQxNm00X3QgdnNldCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDE2bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0xX2kzMm00KSkpCnZpbnQzMm00X3QgdnNldCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2kzMm0yX2kzMm00KSkpCnZpbnQzMm00X3QgdnNldCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0xX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNldCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k2NG0yX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNldCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTFfdThtNCkpKQp2dWludDhtNF90IHZzZXQodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG0yX3U4bTQpKSkKdnVpbnQ4bTRfdCB2c2V0KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2dWludDhtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTFfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNldCh2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdnNldCh2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTFfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNldCh2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTJfdTMybTQpKSkKdnVpbnQzMm00X3QgdnNldCh2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTFfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNldCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTJfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnNldCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaThtMV9pOG04KSkpCnZpbnQ4bThfdCB2c2V0KHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHZpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2k4bTJfaThtOCkpKQp2aW50OG04X3QgdnNldCh2aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50OG0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9pOG00X2k4bTgpKSkKdmludDhtOF90IHZzZXQodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgdmludDhtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTFfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTJfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTE2bTRfaTE2bTgpKSkKdmludDE2bThfdCB2c2V0KHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MTZtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTFfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTJfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTMybTRfaTMybTgpKSkKdmludDMybThfdCB2c2V0KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50MzJtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTFfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTJfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfaTY0bTRfaTY0bTgpKSkKdmludDY0bThfdCB2c2V0KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2aW50NjRtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdThtMV91OG04KSkpCnZ1aW50OG04X3QgdnNldCh2dWludDhtOF90IG9wMCwgc2l6ZV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X3U4bTJfdThtOCkpKQp2dWludDhtOF90IHZzZXQodnVpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl91OG00X3U4bTgpKSkKdnVpbnQ4bThfdCB2c2V0KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2dWludDhtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTFfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTJfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTE2bTRfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnNldCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MTZtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTFfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTJfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTMybTRfdTMybTgpKSkKdnVpbnQzMm04X3QgdnNldCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50MzJtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTFfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTJfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtMl90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V0X3ZfdTY0bTRfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnNldCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZ1aW50NjRtNF90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtMSkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bTIpKSkKdm9pZCB2c294ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00KSkpCnZvaWQgdnNveGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG00X20pKSkKdm9pZCB2c294ZWk4KHZib29sMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtOCkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDFfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bThfdCBvcDIsIHZpbnQ4bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyKSkpCnZvaWQgdnNveGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k4bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTEpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtMikpKQp2b2lkIHZzb3hlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG0yX20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG00KSkpCnZvaWQgdnNveGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U4bTgpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCB2dWludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDFfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG04X3Qgb3AyLCB2dWludDhtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yKSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pOG0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtNCkpKQp2b2lkIHZzb3hlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG0xKSkpCnZvaWQgdnNveGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U4bTIpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtNCkpKQp2b2lkIHZzb3hlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c294ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTIpKSkKdm9pZCB2c294ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bTJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTEpKSkKdm9pZCB2c294ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzb3hlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG0xKSkpCnZvaWQgdnNveGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnNveGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yKSkpCnZvaWQgdnNveGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c294ZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bTgpKSkKdm9pZCB2c294ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm0yKSkpCnZvaWQgdnNveGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bTQpKSkKdm9pZCB2c294ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MTZtOCkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm04X20pKSkKdm9pZCB2c294ZWk4KHZib29sMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnNveGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bTgpKSkKdm9pZCB2c294ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm00KSkpCnZvaWQgdnNveGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTE2bTgpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzb3hlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMSkpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MTZtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm00KSkpCnZvaWQgdnNveGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnNveGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c294ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtMikpKQp2b2lkIHZzb3hlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTQpKSkKdm9pZCB2c294ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04KSkpCnZvaWQgdnNveGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2kzMm04X20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm0xKSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTIpKSkKdm9pZCB2c294ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtNCkpKQp2b2lkIHZzb3hlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm00X20pKSkKdm9pZCB2c294ZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3UzMm04KSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMikpKQp2b2lkIHZzb3hlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00KSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2kzMm00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOCkpKQp2b2lkIHZzb3hlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pMzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm0yKSkpCnZvaWQgdnNveGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm00KSkpCnZvaWQgdnNveGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTMybTgpKSkKdm9pZCB2c294ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c294ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzb3hlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnNveGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c294ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04KSkpCnZvaWQgdnNveGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2kzMm04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm00KSkpCnZvaWQgdnNveGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTMybTgpKSkKdm9pZCB2c294ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c294ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzb3hlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm00KSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2k2NG0yKSkpCnZvaWQgdnNveGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9pNjRtNCkpKQp2b2lkIHZzb3hlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bTgpKSkKdm9pZCB2c294ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfaTY0bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c294ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl91NjRtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X3U2NG04KSkpCnZvaWQgdnNveGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfdTY0bThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnNveGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c294ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOCkpKQp2b2lkIHZzb3hlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9pNjRtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c294ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMikpKQp2b2lkIHZzb3hlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG00KSkpCnZvaWQgdnNveGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X3U2NG04KSkpCnZvaWQgdnNveGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfdTY0bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yKSkpCnZvaWQgdnNveGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c294ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOCkpKQp2b2lkIHZzb3hlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9pNjRtOF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c294ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl91NjRtOCkpKQp2b2lkIHZzb3hlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X3U2NG04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzb3hlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG04KSkpCnZvaWQgdnNveGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2k2NG04X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMSkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtMikpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtNCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG00X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl91NjRtOCkpKQp2b2lkIHZzb3hlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X3U2NG04X20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZsZTE2ZmYodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZsZTE2ZmYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxlMTZmZih2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2kxNm04X20pKSkKdmludDE2bThfdCB2bGUxNmZmKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmxlMTZmZih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxlMTZmZih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bGUxNmZmKHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bGUxNmZmKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsZTE2ZmYodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X3UxNm04X20pKSkKdnVpbnQxNm04X3QgdmxlMTZmZih2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZsZTE2ZmYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsZTE2ZmYodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZsZTMyZmYodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZsZTMyZmYodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsZTMyZmYodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmxlMzJmZih2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZsZTMyZmYodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxlMzJmZih2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmxlMzJmZih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmxlMzJmZih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bGUzMmZmKHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmxlMzJmZih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmxlNjRmZih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxlNjRmZih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmxlNjRmZih2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0ZmZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmxlNjRmZih2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmxlNjRmZih2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmxlNjRmZih2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmxlNjRmZih2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmxlNjRmZih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bGU4KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsZTgodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxlOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bGU4KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxlOCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxlOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxlOCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bGU4KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsZTgodmJvb2w0X3Qgb3AwLCB2dWludDhtMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4X3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxlOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bGU4KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxlOCh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxlOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOF92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxlOCh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bGU4ZmYodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG0yX20pKSkKdmludDhtMl90IHZsZThmZih2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X2k4bTRfbSkpKQp2aW50OG00X3QgdmxlOGZmKHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bGU4ZmYodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxlOGZmKHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3QgdmxlOGZmKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmxlOGZmKHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bGU4ZmYodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsZThmZih2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlOGZmX3ZfdThtNF9tKSkpCnZ1aW50OG00X3QgdmxlOGZmKHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU4ZmZfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bGU4ZmYodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxlOGZmKHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmxlOGZmKHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZThmZl92X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmxlOGZmKHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG0xKSkpCnZpbnQ4bTFfdCB2bmVnKHZpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5lZyh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bTIpKSkKdmludDhtMl90IHZuZWcodmludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtNCkpKQp2aW50OG00X3Qgdm5lZyh2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG00X20pKSkKdmludDhtNF90IHZuZWcodmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG04KSkpCnZpbnQ4bThfdCB2bmVnKHZpbnQ4bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bThfbSkpKQp2aW50OG04X3Qgdm5lZyh2Ym9vbDFfdCBvcDAsIHZpbnQ4bThfdCBvcDEsIHZpbnQ4bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWYyKSkpCnZpbnQ4bWYyX3Qgdm5lZyh2aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mNCkpKQp2aW50OG1mNF90IHZuZWcodmludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bmVnKHZib29sMzJfdCBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaThtZjgpKSkKdmludDhtZjhfdCB2bmVnKHZpbnQ4bWY4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pOG1mOF9tKSkpCnZpbnQ4bWY4X3Qgdm5lZyh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0xKSkpCnZpbnQxNm0xX3Qgdm5lZyh2aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtMikpKQp2aW50MTZtMl90IHZuZWcodmludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bmVnKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtNCkpKQp2aW50MTZtNF90IHZuZWcodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm00X20pKSkKdmludDE2bTRfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtOCkpKQp2aW50MTZtOF90IHZuZWcodmludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm04X20pKSkKdmludDE2bThfdCB2bmVnKHZib29sMl90IG9wMCwgdmludDE2bThfdCBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMTZtZjIpKSkKdmludDE2bWYyX3Qgdm5lZyh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZuZWcodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bmVnKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5lZyh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTEpKSkKdmludDMybTFfdCB2bmVnKHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3Qgdm5lZyh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5lZyh2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZuZWcodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZuZWcodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm00X20pKSkKdmludDMybTRfdCB2bmVnKHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZuZWcodmludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm04X20pKSkKdmludDMybThfdCB2bmVnKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pMzJtZjIpKSkKdmludDMybWYyX3Qgdm5lZyh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuZWcodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0xKSkpCnZpbnQ2NG0xX3Qgdm5lZyh2aW50NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZuZWcodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtMikpKQp2aW50NjRtMl90IHZuZWcodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bmVnKHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2bmVnKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuZWdfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3Qgdm5lZyh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5lZ192X2k2NG04KSkpCnZpbnQ2NG04X3Qgdm5lZyh2aW50NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmVnX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZuZWcodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTEpKSkKdmludDhtMV90IHZub3QodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtMV9tKSkpCnZpbnQ4bTFfdCB2bm90KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtMikpKQp2aW50OG0yX3Qgdm5vdCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG0yX20pKSkKdmludDhtMl90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG00KSkpCnZpbnQ4bTRfdCB2bm90KHZpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTRfbSkpKQp2aW50OG00X3Qgdm5vdCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bTgpKSkKdmludDhtOF90IHZub3QodmludDhtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtOF9tKSkpCnZpbnQ4bThfdCB2bm90KHZib29sMV90IG9wMCwgdmludDhtOF90IG9wMSwgdmludDhtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtZjIpKSkKdmludDhtZjJfdCB2bm90KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5vdCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaThtZjRfbSkpKQp2aW50OG1mNF90IHZub3QodmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pOG1mOCkpKQp2aW50OG1mOF90IHZub3QodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bm90KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTEpKSkKdmludDE2bTFfdCB2bm90KHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm0yKSkpCnZpbnQxNm0yX3Qgdm5vdCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZub3QodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm00KSkpCnZpbnQxNm00X3Qgdm5vdCh2aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm04KSkpCnZpbnQxNm04X3Qgdm5vdCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZub3QodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmludDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bm90KHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bWYyX20pKSkKdmludDE2bWYyX3Qgdm5vdCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZub3QodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2bm90KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZub3QodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2bm90KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybTIpKSkKdmludDMybTJfdCB2bm90KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm00KSkpCnZpbnQzMm00X3Qgdm5vdCh2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZub3QodmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm04KSkpCnZpbnQzMm04X3Qgdm5vdCh2aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZub3QodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bm90KHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2bm90KHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG0yKSkpCnZpbnQ2NG0yX3Qgdm5vdCh2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZub3QodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZub3QodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bm90KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2bm90KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3Qgdm5vdCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bTFfbSkpKQp2aW50OG0xX3QgdmxzZTgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG0yX20pKSkKdmludDhtMl90IHZsc2U4KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bHNlOCh2Ym9vbDJfdCBvcDAsIHZpbnQ4bTRfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bThfbSkpKQp2aW50OG04X3QgdmxzZTgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl9pOG1mMl9tKSkpCnZpbnQ4bWYyX3QgdmxzZTgodmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X2k4bWY0X20pKSkKdmludDhtZjRfdCB2bHNlOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsc2U4KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bm90KHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0xX20pKSkKdnVpbnQ4bTFfdCB2bm90KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG0yKSkpCnZ1aW50OG0yX3Qgdm5vdCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtMl9tKSkpCnZ1aW50OG0yX3Qgdm5vdCh2Ym9vbDRfdCBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtNCkpKQp2dWludDhtNF90IHZub3QodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTRfbSkpKQp2dWludDhtNF90IHZub3QodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U4bTgpKSkKdnVpbnQ4bThfdCB2bm90KHZ1aW50OG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG04X20pKSkKdnVpbnQ4bThfdCB2bm90KHZib29sMV90IG9wMCwgdnVpbnQ4bThfdCBvcDEsIHZ1aW50OG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mMikpKQp2dWludDhtZjJfdCB2bm90KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjJfbSkpKQp2dWludDhtZjJfdCB2bm90KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mNCkpKQp2dWludDhtZjRfdCB2bm90KHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bm90KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91OG1mOCkpKQp2dWludDhtZjhfdCB2bm90KHZ1aW50OG1mOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2bm90KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2bm90KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTFfbSkpKQp2dWludDE2bTFfdCB2bm90KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtMikpKQp2dWludDE2bTJfdCB2bm90KHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2bm90KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm00KSkpCnZ1aW50MTZtNF90IHZub3QodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZub3QodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bTgpKSkKdnVpbnQxNm04X3Qgdm5vdCh2dWludDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm04X20pKSkKdnVpbnQxNm04X3Qgdm5vdCh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZub3QodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZub3QodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bm90KHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bm90KHZib29sNjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZub3QodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZub3QodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZub3QodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZub3QodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZub3QodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZub3QodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTMybTgpKSkKdnVpbnQzMm04X3Qgdm5vdCh2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3UzMm04X20pKSkKdnVpbnQzMm04X3Qgdm5vdCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zub3Rfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZub3QodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZub3QodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3Qgdm5vdCh2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3Qgdm5vdCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3Qgdm5vdCh2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3Qgdm5vdCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3Qgdm5vdCh2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3Qgdm5vdCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bm90X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3Qgdm5vdCh2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5vdF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3Qgdm5vdCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iOCkpKQp2Ym9vbDhfdCB2bW12KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW12X21fYjQpKSkKdmJvb2w0X3Qgdm1tdih2Ym9vbDRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1tdl9tX2IyKSkpCnZib29sMl90IHZtbXYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iMSkpKQp2Ym9vbDFfdCB2bW12KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW12X21fYjE2KSkpCnZib29sMTZfdCB2bW12KHZib29sMTZfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1tdl9tX2IzMikpKQp2Ym9vbDMyX3Qgdm1tdih2Ym9vbDMyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbXZfbV9iNjQpKSkKdmJvb2w2NF90IHZtbXYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdndjdnR1X3godnVpbnQ4bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdndjdnR1X3godmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2d2N2dHVfeCh2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2d2N2dHVfeCh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm04KSkpCnZ1aW50MTZtOF90IHZ3Y3Z0dV94KHZ1aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZ3Y3Z0dV94KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdndjdnR1X3godnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ3Y3Z0dV94KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ3Y3Z0dV94KHZ1aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2d2N2dHVfeCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2d2N2dHVfeCh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZ3Y3Z0dV94KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2d2N2dHVfeCh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdndjdnR1X3godnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZ3Y3Z0dV94KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZ3Y3Z0dV94KHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2d2N2dHVfeCh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMSkpKQp2dWludDMybTFfdCB2d2N2dHVfeCh2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2d2N2dHVfeCh2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdndjdnR1X3godmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdndjdnR1X3godnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ3Y3Z0dV94KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2d2N2dHVfeCh2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdndjdnR1X3godmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdndjdnR1X3hfeF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ3Y3Z0dV94KHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92d2N2dHVfeF94X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2d2N2dHVfeCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2d2N2dHVfeCh2dWludDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z3Y3Z0dV94X3hfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZ3Y3Z0dV94KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG0xKSkpCnZpbnQ4bTFfdCB2bmN2dF94KHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTFfbSkpKQp2aW50OG0xX3Qgdm5jdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bTIpKSkKdmludDhtMl90IHZuY3Z0X3godmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtMl9tKSkpCnZpbnQ4bTJfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdmludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtNCkpKQp2aW50OG00X3Qgdm5jdnRfeCh2aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG00X20pKSkKdmludDhtNF90IHZuY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mMikpKQp2aW50OG1mMl90IHZuY3Z0X3godmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZuY3Z0X3godmJvb2wxNl90IG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWY0KSkpCnZpbnQ4bWY0X3Qgdm5jdnRfeCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaThtZjRfbSkpKQp2aW50OG1mNF90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pOG1mOCkpKQp2aW50OG1mOF90IHZuY3Z0X3godmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2k4bWY4X20pKSkKdmludDhtZjhfdCB2bmN2dF94KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTEpKSkKdmludDE2bTFfdCB2bmN2dF94KHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtMikpKQp2aW50MTZtMl90IHZuY3Z0X3godmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTJfbSkpKQp2aW50MTZtMl90IHZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bTQpKSkKdmludDE2bTRfdCB2bmN2dF94KHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm00X20pKSkKdmludDE2bTRfdCB2bmN2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bmN2dF94KHZpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMTZtZjQpKSkKdmludDE2bWY0X3Qgdm5jdnRfeCh2aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTE2bWY0X20pKSkKdmludDE2bWY0X3Qgdm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMSkpKQp2aW50MzJtMV90IHZuY3Z0X3godmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTFfbSkpKQp2aW50MzJtMV90IHZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm0yKSkpCnZpbnQzMm0yX3Qgdm5jdnRfeCh2aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bmN2dF94X3hfd19pMzJtMl9tKSkpCnZpbnQzMm0yX3Qgdm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm5jdnRfeF94X3dfaTMybTQpKSkKdmludDMybTRfdCB2bmN2dF94KHZpbnQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm00X20pKSkKdmludDMybTRfdCB2bmN2dF94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bmN2dF94KHZpbnQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZuY3Z0X3hfeF93X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZuY3Z0X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2bGUxNih2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bGUxNih2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZsZTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmxlMTYodmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsZTE2KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZsZTE2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmxlMTYodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxlMTYodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2bGUxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZsZTE2KHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bGUxNih2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2bGUxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2bGUzMih2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bGUzMih2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2bGUzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZsZTMyKHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bGUzMih2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZsZTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZsZTMyKHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsZTMyKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmxlMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZsZTMyKHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtMV9tKSkpCnZ1aW50OG0xX3QgdmxzZTgodmJvb2w4X3Qgb3AwLCB2dWludDhtMV90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X3U4bTJfbSkpKQp2dWludDhtMl90IHZsc2U4KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG00X20pKSkKdnVpbnQ4bTRfdCB2bHNlOCh2Ym9vbDJfdCBvcDAsIHZ1aW50OG00X3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtOF9tKSkpCnZ1aW50OG04X3QgdmxzZTgodmJvb2wxX3Qgb3AwLCB2dWludDhtOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlOF92X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmxzZTgodmJvb2wxNl90IG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U4X3ZfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2bHNlOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDhtZjRfdCBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZThfdl91OG1mOF9tKSkpCnZ1aW50OG1mOF90IHZsc2U4KHZib29sNjRfdCBvcDAsIHZ1aW50OG1mOF90IG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2bGU2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2bGU2NCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bGU2NCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGU2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2bGU2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2bGU2NCh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2bGU2NCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2bGU2NCh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2bGU2NCh2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtMSkpKQp2b2lkIHZzZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTIpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm0yX20pKSkKdm9pZCB2c2UxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTQpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm00X20pKSkKdm9pZCB2c2UxNih2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bTgpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2kxNm04X20pKSkKdm9pZCB2c2UxNih2Ym9vbDJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xKSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTIpKSkKdm9pZCB2c2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00KSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X3UxNm00X20pKSkKdm9pZCB2c2UxNih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOCkpKQp2b2lkIHZzZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtOF9tKSkpCnZvaWQgdnNlMTYodmJvb2wyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTEpKSkKdm9pZCB2c2UzMihpbnQzMl90ICogb3AwLCB2aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2kzMm0yKSkpCnZvaWQgdnNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNlMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtNCkpKQp2b2lkIHZzZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzZTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtOCkpKQp2b2lkIHZzZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfaTMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c2UzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xKSkpCnZvaWQgdnNlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTIpKSkKdm9pZCB2c2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNCkpKQp2b2lkIHZzZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNlMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybTgpKSkKdm9pZCB2c2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X3UzMm1mMikpKQp2b2lkIHZzZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c2UzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtMSkpKQp2aW50OG0xX3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG0xX20pKSkKdmludDhtMV90IHZsdXhlaTgodmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG0yKSkpCnZpbnQ4bTJfdCB2bHV4ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTJfbSkpKQp2aW50OG0yX3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bTQpKSkKdmludDhtNF90IHZsdXhlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtNF9tKSkpCnZpbnQ4bTRfdCB2bHV4ZWk4KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtOCkpKQp2aW50OG04X3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG04X20pKSkKdmludDhtOF90IHZsdXhlaTgodmJvb2wxX3Qgb3AwLCB2aW50OG04X3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mMikpKQp2aW50OG1mMl90IHZsdXhlaTgoY29uc3QgaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bWYyX20pKSkKdmludDhtZjJfdCB2bHV4ZWk4KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtZjQpKSkKdmludDhtZjRfdCB2bHV4ZWk4KGNvbnN0IGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9pOG1mNF9tKSkpCnZpbnQ4bWY0X3Qgdmx1eGVpOCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2k4bWY4KSkpCnZpbnQ4bWY4X3Qgdmx1eGVpOChjb25zdCBpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfaThtZjhfbSkpKQp2aW50OG1mOF90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmludDhtZjhfdCBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0xX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG0yKSkpCnZvaWQgdnNlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9pNjRtNCkpKQp2b2lkIHZzZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzZTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfaTY0bTgpKSkKdm9pZCB2c2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2k2NG04X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMikpKQp2b2lkIHZzZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00KSkpCnZvaWQgdnNlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X3U2NG00X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bTgpKSkKdm9pZCB2c2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTY0X3ZfdTY0bThfbSkpKQp2b2lkIHZzZTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmxzZTE2KHZib29sMTZfdCBvcDAsIHZpbnQxNm0xX3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm0yX20pKSkKdmludDE2bTJfdCB2bHNlMTYodmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmxzZTE2KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZsc2UxNih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZsc2UxNih2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmxzZTE2KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZsc2UxNih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm0yX20pKSkKdnVpbnQxNm0yX3QgdmxzZTE2KHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl91MTZtNF9tKSkpCnZ1aW50MTZtNF90IHZsc2UxNih2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2bHNlMTYodmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2bHNlMTYodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZsc2UxNih2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmxzZTMyKHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2bHNlMzIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2bHNlMzIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2bHNlMzIodmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmxzZTMyKHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2bHNlMzIodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2bHNlMzIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2bHNlMzIodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZsc2U2NCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmxzZTY0KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2bHNlNjQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZsc2U2NCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I4KSkpCmxvbmcgdmZpcnN0KHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iOF9tKSkpCmxvbmcgdmZpcnN0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2I0KSkpCmxvbmcgdmZpcnN0KHZib29sNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNF9tKSkpCmxvbmcgdmZpcnN0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IyKSkpCmxvbmcgdmZpcnN0KHZib29sMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMl9tKSkpCmxvbmcgdmZpcnN0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxKSkpCmxvbmcgdmZpcnN0KHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iMV9tKSkpCmxvbmcgdmZpcnN0KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNikpKQpsb25nIHZmaXJzdCh2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmaXJzdF9tX2IxNl9tKSkpCmxvbmcgdmZpcnN0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyKSkpCmxvbmcgdmZpcnN0KHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZpcnN0X21fYjMyX20pKSkKbG9uZyB2Zmlyc3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNjQpKSkKbG9uZyB2Zmlyc3QodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zmlyc3RfbV9iNjRfbSkpKQpsb25nIHZmaXJzdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX2V4dF9pOG0xKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMSkpKQp2aW50MTZtMV90IHZsbXVsX2V4dF9pMTZtMSh2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxtdWxfZXh0X2kxNm0xKHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtZjJfaTMybTEpKSkKdmludDMybTFfdCB2bG11bF9leHRfaTMybTEodmludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfZXh0X2k4bWYyKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfZXh0X2k4bWYyKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mNF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfZXh0X2kxNm1mMih2aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF9leHRfaThtZjQodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG0yKSkpCnZpbnQ4bTJfdCB2bG11bF9leHRfaThtMih2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWYyX2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY0X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bWY4X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX2V4dF9pOG0yKHZpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm0xX2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfZXh0X2kxNm0yKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kxNm1mMl9pMTZtMikpKQp2aW50MTZtMl90IHZsbXVsX2V4dF9pMTZtMih2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWY0X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfZXh0X2kxNm0yKHZpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtMV9pMzJtMikpKQp2aW50MzJtMl90IHZsbXVsX2V4dF9pMzJtMih2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMzJtZjJfaTMybTIpKSkKdmludDMybTJfdCB2bG11bF9leHRfaTMybTIodmludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k2NG0xX2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmxtdWxfZXh0X2k2NG0yKHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTFfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG0yX2k4bTQpKSkKdmludDhtNF90IHZsbXVsX2V4dF9pOG00KHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjJfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfZXh0X2k4bTQodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTJfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm00KSkpCnZpbnQxNm00X3QgdmxtdWxfZXh0X2kxNm00KHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF9leHRfaTE2bTQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0xX2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfZXh0X2kzMm00KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0yX2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfZXh0X2kzMm00KHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtNCkpKQp2aW50MzJtNF90IHZsbXVsX2V4dF9pMzJtNCh2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTQpKSkKdmludDY0bTRfdCB2bG11bF9leHRfaTY0bTQodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTJfaTY0bTQpKSkKdmludDY0bTRfdCB2bG11bF9leHRfaTY0bTQodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtMV9pOG04KSkpCnZpbnQ4bThfdCB2bG11bF9leHRfaThtOCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2k4bTJfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pOG00X2k4bTgpKSkKdmludDhtOF90IHZsbXVsX2V4dF9pOG04KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjJfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjRfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaThtZjhfaThtOCkpKQp2aW50OG04X3QgdmxtdWxfZXh0X2k4bTgodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTFfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTJfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bTRfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTE2bWYyX2kxNm04KSkpCnZpbnQxNm04X3QgdmxtdWxfZXh0X2kxNm04KHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9pMTZtZjRfaTE2bTgpKSkKdmludDE2bThfdCB2bG11bF9leHRfaTE2bTgodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0xX2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm0yX2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm00X2kzMm04KSkpCnZpbnQzMm04X3QgdmxtdWxfZXh0X2kzMm04KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2kzMm1mMl9pMzJtOCkpKQp2aW50MzJtOF90IHZsbXVsX2V4dF9pMzJtOCh2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTFfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTJfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfaTY0bTRfaTY0bTgpKSkKdmludDY0bThfdCB2bG11bF9leHRfaTY0bTgodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjJfdThtMSkpKQp2dWludDhtMV90IHZsbXVsX2V4dF91OG0xKHZ1aW50OG1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mNF91OG0xKSkpCnZ1aW50OG0xX3QgdmxtdWxfZXh0X3U4bTEodnVpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWY4X3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG11bF9leHRfdThtMSh2dWludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZsbXVsX2V4dF91MTZtMSh2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF9leHRfdTE2bTEodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmxtdWxfZXh0X3UzMm0xKHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxtdWxfZXh0X3U4bWYyKHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF9leHRfdThtZjIodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZsbXVsX2V4dF91MTZtZjIodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF9leHRfdThtZjQodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtMikpKQp2dWludDhtMl90IHZsbXVsX2V4dF91OG0yKHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG11bF9leHRfdThtMih2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtMikpKQp2dWludDhtMl90IHZsbXVsX2V4dF91OG0yKHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG0yKSkpCnZ1aW50OG0yX3QgdmxtdWxfZXh0X3U4bTIodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX2V4dF91MTZtMih2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWYyX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX2V4dF91MTZtMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mNF91MTZtMikpKQp2dWludDE2bTJfdCB2bG11bF9leHRfdTE2bTIodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMV91MzJtMikpKQp2dWludDMybTJfdCB2bG11bF9leHRfdTMybTIodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm1mMl91MzJtMikpKQp2dWludDMybTJfdCB2bG11bF9leHRfdTMybTIodnVpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMV91NjRtMikpKQp2dWludDY0bTJfdCB2bG11bF9leHRfdTY0bTIodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTQpKSkKdnVpbnQ4bTRfdCB2bG11bF9leHRfdThtNCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX2V4dF91OG00KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG00KSkpCnZ1aW50OG00X3QgdmxtdWxfZXh0X3U4bTQodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm00KSkpCnZ1aW50MTZtNF90IHZsbXVsX2V4dF91MTZtNCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxtdWxfZXh0X3UxNm00KHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjJfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmxtdWxfZXh0X3UxNm00KHZ1aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bWY0X3UxNm00KSkpCnZ1aW50MTZtNF90IHZsbXVsX2V4dF91MTZtNCh2dWludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm0xX3UzMm00KSkpCnZ1aW50MzJtNF90IHZsbXVsX2V4dF91MzJtNCh2dWludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTJfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxtdWxfZXh0X3UzMm00KHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtZjJfdTMybTQpKSkKdnVpbnQzMm00X3QgdmxtdWxfZXh0X3UzMm00KHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTFfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmxtdWxfZXh0X3U2NG00KHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtMl91NjRtNCkpKQp2dWludDY0bTRfdCB2bG11bF9leHRfdTY0bTQodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTFfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTJfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bTRfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U4bWYyX3U4bTgpKSkKdnVpbnQ4bThfdCB2bG11bF9leHRfdThtOCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdThtZjRfdThtOCkpKQp2dWludDhtOF90IHZsbXVsX2V4dF91OG04KHZ1aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91OG1mOF91OG04KSkpCnZ1aW50OG04X3QgdmxtdWxfZXh0X3U4bTgodnVpbnQ4bWY4X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm0xX3UxNm04KSkpCnZ1aW50MTZtOF90IHZsbXVsX2V4dF91MTZtOCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTE2bTJfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmxtdWxfZXh0X3UxNm04KHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtNF91MTZtOCkpKQp2dWludDE2bThfdCB2bG11bF9leHRfdTE2bTgodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UxNm1mMl91MTZtOCkpKQp2dWludDE2bThfdCB2bG11bF9leHRfdTE2bTgodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MTZtZjRfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmxtdWxfZXh0X3UxNm04KHZ1aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybTFfdTMybTgpKSkKdnVpbnQzMm04X3QgdmxtdWxfZXh0X3UzMm04KHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91MzJtMl91MzJtOCkpKQp2dWludDMybThfdCB2bG11bF9leHRfdTMybTgodnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3UzMm00X3UzMm04KSkpCnZ1aW50MzJtOF90IHZsbXVsX2V4dF91MzJtOCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTMybWYyX3UzMm04KSkpCnZ1aW50MzJtOF90IHZsbXVsX2V4dF91MzJtOCh2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X3U2NG0xX3U2NG04KSkpCnZ1aW50NjRtOF90IHZsbXVsX2V4dF91NjRtOCh2dWludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfdTY0bTJfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmxtdWxfZXh0X3U2NG04KHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl91NjRtNF91NjRtOCkpKQp2dWludDY0bThfdCB2bG11bF9leHRfdTY0bTgodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMV9pOG1mMikpKQp2aW50OG1mMl90IHZsbXVsX3RydW5jX2k4bWYyKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0yX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmxtdWxfdHJ1bmNfaThtZjIodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTRfaThtZjIpKSkKdmludDhtZjJfdCB2bG11bF90cnVuY19pOG1mMih2aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtOF9pOG1mMikpKQp2aW50OG1mMl90IHZsbXVsX3RydW5jX2k4bWYyKHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMV9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfdHJ1bmNfaTE2bWYyKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZsbXVsX3RydW5jX2kxNm1mMih2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2bG11bF90cnVuY19pMTZtZjIodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmxtdWxfdHJ1bmNfaTE2bWYyKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTFfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsbXVsX3RydW5jX2kzMm1mMih2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm0yX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2bG11bF90cnVuY19pMzJtZjIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtNF9pMzJtZjIpKSkKdmludDMybWYyX3QgdmxtdWxfdHJ1bmNfaTMybWYyKHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybThfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZsbXVsX3RydW5jX2kzMm1mMih2aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTFfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG1mNCkpKQp2aW50OG1mNF90IHZsbXVsX3RydW5jX2k4bWY0KHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfaThtZjQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtZjJfaThtZjQpKSkKdmludDhtZjRfdCB2bG11bF90cnVuY19pOG1mNCh2aW50OG1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm0xX2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG11bF90cnVuY19pMTZtZjQodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtMl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmxtdWxfdHJ1bmNfaTE2bWY0KHZpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTRfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsbXVsX3RydW5jX2kxNm1mNCh2aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm04X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2bG11bF90cnVuY19pMTZtZjQodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtZjJfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZsbXVsX3RydW5jX2kxNm1mNCh2aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG0xX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bTJfaThtZjgpKSkKdmludDhtZjhfdCB2bG11bF90cnVuY19pOG1mOCh2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG1mOCkpKQp2aW50OG1mOF90IHZsbXVsX3RydW5jX2k4bWY4KHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bWYyX2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfaThtZjgodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG1mNF9pOG1mOCkpKQp2aW50OG1mOF90IHZsbXVsX3RydW5jX2k4bWY4KHZpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtMl9pOG0xKSkpCnZpbnQ4bTFfdCB2bG11bF90cnVuY19pOG0xKHZpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG00X2k4bTEpKSkKdmludDhtMV90IHZsbXVsX3RydW5jX2k4bTEodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtMSkpKQp2aW50OG0xX3QgdmxtdWxfdHJ1bmNfaThtMSh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bTJfaTE2bTEpKSkKdmludDE2bTFfdCB2bG11bF90cnVuY19pMTZtMSh2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0xKSkpCnZpbnQxNm0xX3QgdmxtdWxfdHJ1bmNfaTE2bTEodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMSkpKQp2aW50MTZtMV90IHZsbXVsX3RydW5jX2kxNm0xKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTJfaTMybTEpKSkKdmludDMybTFfdCB2bG11bF90cnVuY19pMzJtMSh2aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm00X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmxtdWxfdHJ1bmNfaTMybTEodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMzJtOF9pMzJtMSkpKQp2aW50MzJtMV90IHZsbXVsX3RydW5jX2kzMm0xKHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bTJfaTY0bTEpKSkKdmludDY0bTFfdCB2bG11bF90cnVuY19pNjRtMSh2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k2NG00X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmxtdWxfdHJ1bmNfaTY0bTEodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtMSkpKQp2aW50NjRtMV90IHZsbXVsX3RydW5jX2k2NG0xKHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaThtNF9pOG0yKSkpCnZpbnQ4bTJfdCB2bG11bF90cnVuY19pOG0yKHZpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pOG04X2k4bTIpKSkKdmludDhtMl90IHZsbXVsX3RydW5jX2k4bTIodmludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kxNm00X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmxtdWxfdHJ1bmNfaTE2bTIodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pMTZtOF9pMTZtMikpKQp2aW50MTZtMl90IHZsbXVsX3RydW5jX2kxNm0yKHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTMybTRfaTMybTIpKSkKdmludDMybTJfdCB2bG11bF90cnVuY19pMzJtMih2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmxtdWxfdHJ1bmNfaTMybTIodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtNF9pNjRtMikpKQp2aW50NjRtMl90IHZsbXVsX3RydW5jX2k2NG0yKHZpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTY0bThfaTY0bTIpKSkKdmludDY0bTJfdCB2bG11bF90cnVuY19pNjRtMih2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2k4bThfaThtNCkpKQp2aW50OG00X3QgdmxtdWxfdHJ1bmNfaThtNCh2aW50OG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfaTE2bThfaTE2bTQpKSkKdmludDE2bTRfdCB2bG11bF90cnVuY19pMTZtNCh2aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2kzMm04X2kzMm00KSkpCnZpbnQzMm00X3QgdmxtdWxfdHJ1bmNfaTMybTQodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9pNjRtOF9pNjRtNCkpKQp2aW50NjRtNF90IHZsbXVsX3RydW5jX2k2NG00KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtMV91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF90cnVuY191OG1mMih2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTJfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmxtdWxfdHJ1bmNfdThtZjIodnVpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bWYyKSkpCnZ1aW50OG1mMl90IHZsbXVsX3RydW5jX3U4bWYyKHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG1mMikpKQp2dWludDhtZjJfdCB2bG11bF90cnVuY191OG1mMih2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0xX3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm0yX3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmxtdWxfdHJ1bmNfdTE2bWYyKHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0xX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm0yX3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm00X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmxtdWxfdHJ1bmNfdTMybWYyKHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTFfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfdThtZjQodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY0KSkpCnZ1aW50OG1mNF90IHZsbXVsX3RydW5jX3U4bWY0KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF90cnVuY191OG1mNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtZjQpKSkKdnVpbnQ4bWY0X3QgdmxtdWxfdHJ1bmNfdThtZjQodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mMl91OG1mNCkpKQp2dWludDhtZjRfdCB2bG11bF90cnVuY191OG1mNCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMV91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZsbXVsX3RydW5jX3UxNm1mNCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtZjJfdTE2bWY0KSkpCnZ1aW50MTZtZjRfdCB2bG11bF90cnVuY191MTZtZjQodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bTFfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfdThtZjgodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bWY4KSkpCnZ1aW50OG1mOF90IHZsbXVsX3RydW5jX3U4bWY4KHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmxtdWxfdHJ1bmNfdThtZjgodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mMl91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG1mNF91OG1mOCkpKQp2dWludDhtZjhfdCB2bG11bF90cnVuY191OG1mOCh2dWludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG0yX3U4bTEpKSkKdnVpbnQ4bTFfdCB2bG11bF90cnVuY191OG0xKHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtNF91OG0xKSkpCnZ1aW50OG0xX3QgdmxtdWxfdHJ1bmNfdThtMSh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtMSkpKQp2dWludDhtMV90IHZsbXVsX3RydW5jX3U4bTEodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtMl91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtNF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtMSkpKQp2dWludDE2bTFfdCB2bG11bF90cnVuY191MTZtMSh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtMl91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtNF91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtMSkpKQp2dWludDMybTFfdCB2bG11bF90cnVuY191MzJtMSh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtMl91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtNF91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtMSkpKQp2dWludDY0bTFfdCB2bG11bF90cnVuY191NjRtMSh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91OG00X3U4bTIpKSkKdnVpbnQ4bTJfdCB2bG11bF90cnVuY191OG0yKHZ1aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfdThtOF91OG0yKSkpCnZ1aW50OG0yX3QgdmxtdWxfdHJ1bmNfdThtMih2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm00X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX3RydW5jX3UxNm0yKHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UxNm04X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZsbXVsX3RydW5jX3UxNm0yKHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm00X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsbXVsX3RydW5jX3UzMm0yKHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3UzMm04X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZsbXVsX3RydW5jX3UzMm0yKHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG00X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsbXVsX3RydW5jX3U2NG0yKHZ1aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U2NG04X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZsbXVsX3RydW5jX3U2NG0yKHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X3U4bThfdThtNCkpKQp2dWludDhtNF90IHZsbXVsX3RydW5jX3U4bTQodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MTZtOF91MTZtNCkpKQp2dWludDE2bTRfdCB2bG11bF90cnVuY191MTZtNCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91MzJtOF91MzJtNCkpKQp2dWludDMybTRfdCB2bG11bF90cnVuY191MzJtNCh2dWludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl91NjRtOF91NjRtNCkpKQp2dWludDY0bTRfdCB2bG11bF90cnVuY191NjRtNCh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjgpKSkKdmJvb2w4X3Qgdm1hbmQodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjQpKSkKdmJvb2w0X3Qgdm1hbmQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjIpKSkKdmJvb2wyX3Qgdm1hbmQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjEpKSkKdmJvb2wxX3Qgdm1hbmQodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRfbW1fYjE2KSkpCnZib29sMTZfdCB2bWFuZCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYW5kX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1hbmQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFuZF9tbV9iNjQpKSkKdmJvb2w2NF90IHZtYW5kKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjgpKSkKdmJvb2w4X3Qgdm1hbmRub3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjQpKSkKdmJvb2w0X3Qgdm1hbmRub3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjIpKSkKdmJvb2wyX3Qgdm1hbmRub3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjEpKSkKdmJvb2wxX3Qgdm1hbmRub3QodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1hbmRub3RfbW1fYjE2KSkpCnZib29sMTZfdCB2bWFuZG5vdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtYW5kbm90X21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1hbmRub3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWFuZG5vdF9tbV9iNjQpKSkKdmJvb2w2NF90IHZtYW5kbm90KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2I4KSkpCnZib29sOF90IHZtbmFuZCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjQpKSkKdmJvb2w0X3Qgdm1uYW5kKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtbmFuZF9tbV9iMikpKQp2Ym9vbDJfdCB2bW5hbmQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1uYW5kX21tX2IxKSkpCnZib29sMV90IHZtbmFuZCh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjE2KSkpCnZib29sMTZfdCB2bW5hbmQodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjMyKSkpCnZib29sMzJfdCB2bW5hbmQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5hbmRfbW1fYjY0KSkpCnZib29sNjRfdCB2bW5hbmQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iOCkpKQp2Ym9vbDhfdCB2bW5vcih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iNCkpKQp2Ym9vbDRfdCB2bW5vcih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMikpKQp2Ym9vbDJfdCB2bW5vcih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMSkpKQp2Ym9vbDFfdCB2bW5vcih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW5vcl9tbV9iMTYpKSkKdmJvb2wxNl90IHZtbm9yKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1ub3JfbW1fYjMyKSkpCnZib29sMzJfdCB2bW5vcih2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztbm9yX21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1ub3IodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2I4KSkpCnZib29sOF90IHZtb3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iNCkpKQp2Ym9vbDRfdCB2bW9yKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm1vcih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2IxKSkpCnZib29sMV90IHZtb3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcl9tbV9iMTYpKSkKdmJvb2wxNl90IHZtb3IodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm1vcih2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3JfbW1fYjY0KSkpCnZib29sNjRfdCB2bW9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iOCkpKQp2Ym9vbDhfdCB2bW9ybm90KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjQpKSkKdmJvb2w0X3Qgdm1vcm5vdCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9ybm90X21tX2IyKSkpCnZib29sMl90IHZtb3Jub3QodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMSkpKQp2Ym9vbDFfdCB2bW9ybm90KHZib29sMV90IG9wMCwgdmJvb2wxX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztb3Jub3RfbW1fYjE2KSkpCnZib29sMTZfdCB2bW9ybm90KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1vcm5vdF9tbV9iMzIpKSkKdmJvb2wzMl90IHZtb3Jub3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bW9ybm90X21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1vcm5vdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjgpKSkKdmJvb2w4X3Qgdm1zYmYodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNiZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjQpKSkKdmJvb2w0X3Qgdm1zYmYodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNiZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjIpKSkKdmJvb2wyX3Qgdm1zYmYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNiZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjEpKSkKdmJvb2wxX3Qgdm1zYmYodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNiZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjE2KSkpCnZib29sMTZfdCB2bXNiZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2JmX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc2JmKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc2JmKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zYmZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zYmYodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zYmYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNiZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNiZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjgpKSkKdmJvb2w4X3Qgdm1zaWYodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNpZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjQpKSkKdmJvb2w0X3Qgdm1zaWYodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNpZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjIpKSkKdmJvb2wyX3Qgdm1zaWYodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNpZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjEpKSkKdmJvb2wxX3Qgdm1zaWYodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNpZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2KSkpCnZib29sMTZfdCB2bXNpZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc2lmX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc2lmKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc2lmKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zaWZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zaWYodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNpZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zaWYodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNpZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNpZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjgpKSkKdmJvb2w4X3Qgdm1zb2YodmJvb2w4X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjhfbSkpKQp2Ym9vbDhfdCB2bXNvZih2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmJvb2w4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjQpKSkKdmJvb2w0X3Qgdm1zb2YodmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjRfbSkpKQp2Ym9vbDRfdCB2bXNvZih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmJvb2w0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjIpKSkKdmJvb2wyX3Qgdm1zb2YodmJvb2wyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjJfbSkpKQp2Ym9vbDJfdCB2bXNvZih2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmJvb2wyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjEpKSkKdmJvb2wxX3Qgdm1zb2YodmJvb2wxX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjFfbSkpKQp2Ym9vbDFfdCB2bXNvZih2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgdmJvb2wxX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2KSkpCnZib29sMTZfdCB2bXNvZih2Ym9vbDE2X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztc29mX21fYjE2X20pKSkKdmJvb2wxNl90IHZtc29mKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZib29sMTZfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMzIpKSkKdmJvb2wzMl90IHZtc29mKHZib29sMzJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1zb2ZfbV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1zb2YodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmJvb2wzMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNvZl9tX2I2NCkpKQp2Ym9vbDY0X3Qgdm1zb2YodmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXNvZl9tX2I2NF9tKSkpCnZib29sNjRfdCB2bXNvZih2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2Ym9vbDY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iOCkpKQp2Ym9vbDhfdCB2bXhub3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I0KSkpCnZib29sNF90IHZteG5vcih2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXhub3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm14bm9yKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG5vcl9tbV9iMSkpKQp2Ym9vbDFfdCB2bXhub3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IxNikpKQp2Ym9vbDE2X3Qgdm14bm9yKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm14bm9yKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14bm9yX21tX2I2NCkpKQp2Ym9vbDY0X3Qgdm14bm9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjgpKSkKdmJvb2w4X3Qgdm14b3IodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjQpKSkKdmJvb2w0X3Qgdm14b3IodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjIpKSkKdmJvb2wyX3Qgdm14b3IodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjEpKSkKdmJvb2wxX3Qgdm14b3IodmJvb2wxX3Qgb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm14b3JfbW1fYjE2KSkpCnZib29sMTZfdCB2bXhvcih2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZteG9yX21tX2IzMikpKQp2Ym9vbDMyX3Qgdm14b3IodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXhvcl9tbV9iNjQpKSkKdmJvb2w2NF90IHZteG9yKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iOCkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I4X20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I0KSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjRfbSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjIpKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMl9tKSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2IxX20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDFfdCBvcDAsIHZib29sMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2IxNikpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMTZfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMTZfbSkpKQp1bnNpZ25lZCBsb25nIHZwb3BjKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnBvcGNfbV9iMzIpKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDMyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjMyX20pKSkKdW5zaWduZWQgbG9uZyB2cG9wYyh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zwb3BjX21fYjY0KSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w2NF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cG9wY19tX2I2NF9tKSkpCnVuc2lnbmVkIGxvbmcgdnBvcGModmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X2kxNm0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pMTZtMikpKQp2aW50MTZtMl90IHZyZWludGVycHJldF9pMTZtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVpbnRlcnByZXRfaTE2bTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlaW50ZXJwcmV0X2kxNm04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZyZWludGVycHJldF9pMTZtZjIodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjRfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZyZWludGVycHJldF9pMTZtZjQodmludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfaTE2bTEpKSkKdmludDE2bTFfdCB2cmVpbnRlcnByZXRfaTE2bTEodmludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaTE2bTQpKSkKdmludDE2bTRfdCB2cmVpbnRlcnByZXRfaTE2bTQodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfaTE2bTgpKSkKdmludDE2bThfdCB2cmVpbnRlcnByZXRfaTE2bTgodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWludGVycHJldF9pMTZtMSh2aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9pMTZtMikpKQp2aW50MTZtMl90IHZyZWludGVycHJldF9pMTZtMih2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9pMTZtNCkpKQp2aW50MTZtNF90IHZyZWludGVycHJldF9pMTZtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZWludGVycHJldF9pMTZtOCh2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlaW50ZXJwcmV0X2kzMm0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pMzJtMikpKQp2aW50MzJtMl90IHZyZWludGVycHJldF9pMzJtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTMybTQpKSkKdmludDMybTRfdCB2cmVpbnRlcnByZXRfaTMybTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2kzMm04KSkpCnZpbnQzMm04X3QgdnJlaW50ZXJwcmV0X2kzMm04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZyZWludGVycHJldF9pMzJtZjIodmludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVpbnRlcnByZXRfaTMybTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaTMybTIpKSkKdmludDMybTJfdCB2cmVpbnRlcnByZXRfaTMybTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaTMybTQpKSkKdmludDMybTRfdCB2cmVpbnRlcnByZXRfaTMybTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaTMybTgpKSkKdmludDMybThfdCB2cmVpbnRlcnByZXRfaTMybTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfaTMybWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9pMzJtMSkpKQp2aW50MzJtMV90IHZyZWludGVycHJldF9pMzJtMSh2aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMl9pMzJtMikpKQp2aW50MzJtMl90IHZyZWludGVycHJldF9pMzJtMih2aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9pMzJtOCkpKQp2aW50MzJtOF90IHZyZWludGVycHJldF9pMzJtOCh2aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl9pNjRtMikpKQp2aW50NjRtMl90IHZyZWludGVycHJldF9pNjRtMih2aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVpbnRlcnByZXRfaTY0bTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaTY0bTgpKSkKdmludDY0bThfdCB2cmVpbnRlcnByZXRfaTY0bTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTFfaTY0bTEpKSkKdmludDY0bTFfdCB2cmVpbnRlcnByZXRfaTY0bTEodmludDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodmludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybThfaTY0bTgpKSkKdmludDY0bThfdCB2cmVpbnRlcnByZXRfaTY0bTgodmludDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlaW50ZXJwcmV0X2k4bTEodmludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTJfaThtMikpKQp2aW50OG0yX3QgdnJlaW50ZXJwcmV0X2k4bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfaThtOCkpKQp2aW50OG04X3QgdnJlaW50ZXJwcmV0X2k4bTgodmludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bWYyX2k4bWYyKSkpCnZpbnQ4bWYyX3QgdnJlaW50ZXJwcmV0X2k4bWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfaThtZjQpKSkKdmludDhtZjRfdCB2cmVpbnRlcnByZXRfaThtZjQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX2k4bTEpKSkKdmludDhtMV90IHZyZWludGVycHJldF9pOG0xKHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2k4bTIpKSkKdmludDhtMl90IHZyZWludGVycHJldF9pOG0yKHZpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm00X2k4bTQpKSkKdmludDhtNF90IHZyZWludGVycHJldF9pOG00KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X2k4bTgpKSkKdmludDhtOF90IHZyZWludGVycHJldF9pOG04KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9pOG1mMikpKQp2aW50OG1mMl90IHZyZWludGVycHJldF9pOG1mMih2aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTFfaThtMSkpKQp2aW50OG0xX3QgdnJlaW50ZXJwcmV0X2k4bTEodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfaThtMikpKQp2aW50OG0yX3QgdnJlaW50ZXJwcmV0X2k4bTIodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodmludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bThfaThtOCkpKQp2aW50OG04X3QgdnJlaW50ZXJwcmV0X2k4bTgodmludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMV9pOG0xKSkpCnZpbnQ4bTFfdCB2cmVpbnRlcnByZXRfaThtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX2k4bTIpKSkKdmludDhtMl90IHZyZWludGVycHJldF9pOG0yKHZ1aW50OG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bTRfaThtNCkpKQp2aW50OG00X3QgdnJlaW50ZXJwcmV0X2k4bTQodnVpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtOF9pOG04KSkpCnZpbnQ4bThfdCB2cmVpbnRlcnByZXRfaThtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl9pOG1mMikpKQp2aW50OG1mMl90IHZyZWludGVycHJldF9pOG1mMih2dWludDhtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtZjRfaThtZjQpKSkKdmludDhtZjRfdCB2cmVpbnRlcnByZXRfaThtZjQodnVpbnQ4bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY4X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdnJlaW50ZXJwcmV0X2k4bWY4KHZ1aW50OG1mOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMV9pMTZtMSkpKQp2aW50MTZtMV90IHZyZWludGVycHJldF9pMTZtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodnVpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm00X2kxNm00KSkpCnZpbnQxNm00X3QgdnJlaW50ZXJwcmV0X2kxNm00KHZ1aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtOF9pMTZtOCkpKQp2aW50MTZtOF90IHZyZWludGVycHJldF9pMTZtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZ1aW50MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWY0X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2cmVpbnRlcnByZXRfaTE2bWY0KHZ1aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfaTMybTEpKSkKdmludDMybTFfdCB2cmVpbnRlcnByZXRfaTMybTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX2kzMm0yKSkpCnZpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X2kzMm0yKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfaTMybTgpKSkKdmludDMybThfdCB2cmVpbnRlcnByZXRfaTMybTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnJlaW50ZXJwcmV0X2kzMm1mMih2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl9pNjRtMikpKQp2aW50NjRtMl90IHZyZWludGVycHJldF9pNjRtMih2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTRfaTY0bTQpKSkKdmludDY0bTRfdCB2cmVpbnRlcnByZXRfaTY0bTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UxNm0xKSkpCnZ1aW50MTZtMV90IHZyZWludGVycHJldF91MTZtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZWludGVycHJldF91MTZtMih2dWludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UxNm04KSkpCnZ1aW50MTZtOF90IHZyZWludGVycHJldF91MTZtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZWludGVycHJldF91MTZtZjIodnVpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U4bWY0X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdnJlaW50ZXJwcmV0X3UxNm1mNCh2dWludDhtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodnVpbnQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfdTE2bWYyKHZ1aW50MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZ1aW50NjRtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X3UxNm00KSkpCnZ1aW50MTZtNF90IHZyZWludGVycHJldF91MTZtNCh2dWludDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZ1aW50NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDhtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG0yX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZWludGVycHJldF91MzJtMih2dWludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG00X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZWludGVycHJldF91MzJtNCh2dWludDhtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDhtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91OG1mMl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZWludGVycHJldF91MzJtZjIodnVpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X3UzMm0yKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF91MzJtNCkpKQp2dWludDMybTRfdCB2cmVpbnRlcnByZXRfdTMybTQodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3UzMm1mMikpKQp2dWludDMybWYyX3QgdnJlaW50ZXJwcmV0X3UzMm1mMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2dWludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTJfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnJlaW50ZXJwcmV0X3UzMm0yKHZ1aW50NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtNF91MzJtNCkpKQp2dWludDMybTRfdCB2cmVpbnRlcnByZXRfdTMybTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2dWludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodnVpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtMl91NjRtMikpKQp2dWludDY0bTJfdCB2cmVpbnRlcnByZXRfdTY0bTIodnVpbnQ4bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtNF91NjRtNCkpKQp2dWludDY0bTRfdCB2cmVpbnRlcnByZXRfdTY0bTQodnVpbnQ4bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdThtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodnVpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X3U2NG0xKHZ1aW50MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtMl91NjRtMikpKQp2dWludDY0bTJfdCB2cmVpbnRlcnByZXRfdTY0bTIodnVpbnQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm00X3U2NG00KSkpCnZ1aW50NjRtNF90IHZyZWludGVycHJldF91NjRtNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X3U2NG04KHZ1aW50MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX3U2NG0yKSkpCnZ1aW50NjRtMl90IHZyZWludGVycHJldF91NjRtMih2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJlaW50ZXJwcmV0X3U2NG00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm0xX3U4bTEpKSkKdnVpbnQ4bTFfdCB2cmVpbnRlcnByZXRfdThtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfdThtMikpKQp2dWludDhtMl90IHZyZWludGVycHJldF91OG0yKHZ1aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtNF91OG00KSkpCnZ1aW50OG00X3QgdnJlaW50ZXJwcmV0X3U4bTQodnVpbnQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm04X3U4bTgpKSkKdnVpbnQ4bThfdCB2cmVpbnRlcnByZXRfdThtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX3U4bWYyKSkpCnZ1aW50OG1mMl90IHZyZWludGVycHJldF91OG1mMih2dWludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UxNm1mNF91OG1mNCkpKQp2dWludDhtZjRfdCB2cmVpbnRlcnByZXRfdThtZjQodnVpbnQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlaW50ZXJwcmV0X3U4bTEodnVpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm0yX3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmVpbnRlcnByZXRfdThtMih2dWludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTMybTRfdThtNCkpKQp2dWludDhtNF90IHZyZWludGVycHJldF91OG00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF91OG04KSkpCnZ1aW50OG04X3QgdnJlaW50ZXJwcmV0X3U4bTgodnVpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3UzMm1mMl91OG1mMikpKQp2dWludDhtZjJfdCB2cmVpbnRlcnByZXRfdThtZjIodnVpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtMV91OG0xKSkpCnZ1aW50OG0xX3QgdnJlaW50ZXJwcmV0X3U4bTEodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0yX3U4bTIpKSkKdnVpbnQ4bTJfdCB2cmVpbnRlcnByZXRfdThtMih2dWludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTY0bTRfdThtNCkpKQp2dWludDhtNF90IHZyZWludGVycHJldF91OG00KHZ1aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91NjRtOF91OG04KSkpCnZ1aW50OG04X3QgdnJlaW50ZXJwcmV0X3U4bTgodnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bTFfdThtMSkpKQp2dWludDhtMV90IHZyZWludGVycHJldF91OG0xKHZpbnQ4bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtMl91OG0yKSkpCnZ1aW50OG0yX3QgdnJlaW50ZXJwcmV0X3U4bTIodmludDhtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG00X3U4bTQpKSkKdnVpbnQ4bTRfdCB2cmVpbnRlcnByZXRfdThtNCh2aW50OG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bThfdThtOCkpKQp2dWludDhtOF90IHZyZWludGVycHJldF91OG04KHZpbnQ4bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaThtZjJfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdnJlaW50ZXJwcmV0X3U4bWYyKHZpbnQ4bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k4bWY0X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZyZWludGVycHJldF91OG1mNCh2aW50OG1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pOG1mOF91OG1mOCkpKQp2dWludDhtZjhfdCB2cmVpbnRlcnByZXRfdThtZjgodmludDhtZjhfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTFfdTE2bTEpKSkKdnVpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X3UxNm0xKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX3UxNm0yKSkpCnZ1aW50MTZtMl90IHZyZWludGVycHJldF91MTZtMih2aW50MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtNF91MTZtNCkpKQp2dWludDE2bTRfdCB2cmVpbnRlcnByZXRfdTE2bTQodmludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bThfdTE2bTgpKSkKdnVpbnQxNm04X3QgdnJlaW50ZXJwcmV0X3UxNm04KHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZyZWludGVycHJldF91MTZtZjIodmludDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZWludGVycHJldF91MTZtZjQodmludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMl91MzJtMikpKQp2dWludDMybTJfdCB2cmVpbnRlcnByZXRfdTMybTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfdTMybTQpKSkKdnVpbnQzMm00X3QgdnJlaW50ZXJwcmV0X3UzMm00KHZpbnQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtZjJfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfdTMybWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV91NjRtMSkpKQp2dWludDY0bTFfdCB2cmVpbnRlcnByZXRfdTY0bTEodmludDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnJlaW50ZXJwcmV0X3U2NG0yKHZpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG00X3U2NG00KSkpCnZ1aW50NjRtNF90IHZyZWludGVycHJldF91NjRtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF91NjRtOCkpKQp2dWludDY0bThfdCB2cmVpbnRlcnByZXRfdTY0bTgodmludDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2I4KSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2I0KSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IyKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IxKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMV92X2IxNikpKQp2b2lkIHZzZTEodWludDhfdCAqIG9wMCwgdmJvb2wxNl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxX3ZfYjMyKSkpCnZvaWQgdnNlMSh1aW50OF90ICogb3AwLCB2Ym9vbDMyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTFfdl9iNjQpKSkKdm9pZCB2c2UxKHVpbnQ4X3QgKiBvcDAsIHZib29sNjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2c2V4dF92ZjIodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZzZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdnNleHRfdmYyKHZpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2c2V4dF92ZjIodmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTEpKSkKdmludDE2bTFfdCB2c2V4dF92ZjIodmludDhtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm0xX20pKSkKdmludDE2bTFfdCB2c2V4dF92ZjIodmJvb2wxNl90IG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMikpKQp2aW50MTZtMl90IHZzZXh0X3ZmMih2aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdnNleHRfdmYyKHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm00KSkpCnZpbnQxNm00X3QgdnNleHRfdmYyKHZpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kxNm00X20pKSkKdmludDE2bTRfdCB2c2V4dF92ZjIodmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bTgpKSkKdmludDE2bThfdCB2c2V4dF92ZjIodmludDhtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTE2bThfbSkpKQp2aW50MTZtOF90IHZzZXh0X3ZmMih2Ym9vbDJfdCBvcDAsIHZpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtZjIpKSkKdmludDMybWYyX3QgdnNleHRfdmYyKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybWYyX20pKSkKdmludDMybWYyX3QgdnNleHRfdmYyKHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtMSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmMih2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0xX20pKSkKdmludDMybTFfdCB2c2V4dF92ZjIodmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTIpKSkKdmludDMybTJfdCB2c2V4dF92ZjIodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm0yX20pKSkKdmludDMybTJfdCB2c2V4dF92ZjIodmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pMzJtNCkpKQp2aW50MzJtNF90IHZzZXh0X3ZmMih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTMybTgpKSkKdmludDMybThfdCB2c2V4dF92ZjIodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2kzMm04X20pKSkKdmludDMybThfdCB2c2V4dF92ZjIodmJvb2w0X3Qgb3AwLCB2aW50MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNleHRfdmYyKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmMih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzZXh0X3ZmMih2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG00KSkpCnZpbnQ2NG00X3QgdnNleHRfdmYyKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmMl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNleHRfdmYyKHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjJfaTY0bTgpKSkKdmludDY0bThfdCB2c2V4dF92ZjIodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmYyX2k2NG04X20pKSkKdmludDY0bThfdCB2c2V4dF92ZjIodmJvb2w4X3Qgb3AwLCB2aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2c2V4dF92ZjQodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZzZXh0X3ZmNCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmNCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTFfbSkpKQp2aW50MzJtMV90IHZzZXh0X3ZmNCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2kzMm0yKSkpCnZpbnQzMm0yX3QgdnNleHRfdmY0KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdnNleHRfdmY0KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTQpKSkKdmludDMybTRfdCB2c2V4dF92ZjQodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTMybTRfbSkpKQp2aW50MzJtNF90IHZzZXh0X3ZmNCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtOCkpKQp2aW50MzJtOF90IHZzZXh0X3ZmNCh2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdnNleHRfdmY0KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnNleHRfdmY0KHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZzZXh0X3ZmNCh2Ym9vbDY0X3Qgb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmNCh2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG0yX20pKSkKdmludDY0bTJfdCB2c2V4dF92ZjQodmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bTQpKSkKdmludDY0bTRfdCB2c2V4dF92ZjQodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY0X2k2NG00X20pKSkKdmludDY0bTRfdCB2c2V4dF92ZjQodmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmNF9pNjRtOCkpKQp2aW50NjRtOF90IHZzZXh0X3ZmNCh2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjRfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzZXh0X3ZmNCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTEpKSkKdmludDY0bTFfdCB2c2V4dF92ZjgodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG0xX20pKSkKdmludDY0bTFfdCB2c2V4dF92ZjgodmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtMikpKQp2aW50NjRtMl90IHZzZXh0X3ZmOCh2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZzZXh0X3ZmOCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNleHRfdmY4X2k2NG00KSkpCnZpbnQ2NG00X3QgdnNleHRfdmY4KHZpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXh0X3ZmOF9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdnNleHRfdmY4KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bTgpKSkKdmludDY0bThfdCB2c2V4dF92ZjgodmludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2V4dF92ZjhfaTY0bThfbSkpKQp2aW50NjRtOF90IHZzZXh0X3ZmOCh2Ym9vbDhfdCBvcDAsIHZpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZ6ZXh0X3ZmMih2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mNF9tKSkpCnZ1aW50MTZtZjRfdCB2emV4dF92ZjIodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZ6ZXh0X3ZmMih2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm1mMl9tKSkpCnZ1aW50MTZtZjJfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMSkpKQp2dWludDE2bTFfdCB2emV4dF92ZjIodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZ6ZXh0X3ZmMih2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdnpleHRfdmYyKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZ6ZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm00KSkpCnZ1aW50MTZtNF90IHZ6ZXh0X3ZmMih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2emV4dF92ZjIodmJvb2w0X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MTZtOCkpKQp2dWludDE2bThfdCB2emV4dF92ZjIodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3UxNm04X20pKSkKdnVpbnQxNm04X3QgdnpleHRfdmYyKHZib29sMl90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2emV4dF92ZjIodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZ6ZXh0X3ZmMih2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMSkpKQp2dWludDMybTFfdCB2emV4dF92ZjIodnVpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTFfbSkpKQp2dWludDMybTFfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMikpKQp2dWludDMybTJfdCB2emV4dF92ZjIodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZ6ZXh0X3ZmMih2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTQpKSkKdnVpbnQzMm00X3QgdnpleHRfdmYyKHZ1aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTRfbSkpKQp2dWludDMybTRfdCB2emV4dF92ZjIodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybTgpKSkKdnVpbnQzMm04X3QgdnpleHRfdmYyKHZ1aW50MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTMybThfbSkpKQp2dWludDMybThfdCB2emV4dF92ZjIodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmYyKHZ1aW50MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmYyKHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmYyKHZ1aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjJfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2emV4dF92ZjIodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00KSkpCnZ1aW50NjRtNF90IHZ6ZXh0X3ZmMih2dWludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmYyX3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdnpleHRfdmYyKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOCkpKQp2dWludDY0bThfdCB2emV4dF92ZjIodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmMl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmMih2Ym9vbDhfdCBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZ6ZXh0X3ZmNCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2emV4dF92ZjQodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMSkpKQp2dWludDMybTFfdCB2emV4dF92ZjQodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZ6ZXh0X3ZmNCh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTIpKSkKdnVpbnQzMm0yX3QgdnpleHRfdmY0KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTJfbSkpKQp2dWludDMybTJfdCB2emV4dF92ZjQodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm00KSkpCnZ1aW50MzJtNF90IHZ6ZXh0X3ZmNCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTMybTRfbSkpKQp2dWludDMybTRfdCB2emV4dF92ZjQodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmNF91MzJtOCkpKQp2dWludDMybThfdCB2emV4dF92ZjQodnVpbnQ4bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdnpleHRfdmY0KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY0KHZ1aW50MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY0KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmY0KHZ1aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdnpleHRfdmY0KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnpleHRfdmY0KHZ1aW50MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjRfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2emV4dF92ZjQodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmNCh2dWludDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY0X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdnpleHRfdmY0KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZ6ZXh0X3ZmOCh2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdnpleHRfdmY4KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMikpKQp2dWludDY0bTJfdCB2emV4dF92ZjgodnVpbnQ4bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Z6ZXh0X3ZmOF91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZ6ZXh0X3ZmOCh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnpleHRfdmY4KHZ1aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2emV4dF92ZjgodmJvb2wxNl90IG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnpleHRfdmY4X3U2NG04KSkpCnZ1aW50NjRtOF90IHZ6ZXh0X3ZmOCh2dWludDhtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92emV4dF92ZjhfdTY0bThfbSkpKQp2dWludDY0bThfdCB2emV4dF92ZjgodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00KSkpCnZvaWQgdnNzZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UzMl92X2YzMm00X20pKSkKdm9pZCB2c3NlMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOCkpKQp2b2lkIHZzc2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtOF9tKSkpCnZvaWQgdnNzZTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2UzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsdXhlaTgodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsdXhlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsdXhlaTgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bHV4ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3Qgdmx1eGVpOCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdmx1eGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdmx1eGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpMTYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsdXhlaTE2KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2bHV4ZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bHV4ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2bHV4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bHV4ZWkzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3Qgdmx1eGVpMzIoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsdXhlaTMyKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsdXhlaTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsdXhlaTY0KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdmx1eGVpNjQoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG94ZWk4KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsb3hlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bG94ZWk4KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmxveGVpOChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsb3hlaTgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsb3hlaTgoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsb3hlaTE2KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpMTYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsb3hlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG94ZWkxNihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmxveGVpMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmxveGVpMTYoY29uc3QgZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxveGVpMzIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmxveGVpMzIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsb3hlaTMyKGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2bG94ZWkzMih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWkzMihjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bG94ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2bG94ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZsb3hlaTY0KGNvbnN0IGZsb2F0ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk2NChjb25zdCBmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bXZfdih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZtdl92KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdm12X3YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2bXZfdih2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdm12X3YodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmYWRkKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZhZGQodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZmFkZCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZhZGQodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZmFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZhZGQodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZhZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZhZGQodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZmFkZCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZhZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZhZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc3ViKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzdWIodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc3ViKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzdWIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc3ViKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc3ViKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzdWIodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcnN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJzdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnJzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZyc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZyc3ViKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZyc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJzdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnJzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXVsKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdWwodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm11bCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtdWwodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm11bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtdWwodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdWwodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtdWwodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm11bCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtdWwodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZmRpdih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmZGl2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmZGl2KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZkaXYodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmZGl2KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZkaXYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmZGl2KHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmZGl2KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmRpdih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmZGl2KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZkaXYodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmZGl2KHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmRpdih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJkaXYodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnJkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZyZGl2KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyZGl2KHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZyZGl2KHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZyZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJkaXYodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnJkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1hY2ModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWFjYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1hY2ModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWFjYyh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYWNjKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYWNjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWNjKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tYWNjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tYWNjKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1hY2ModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1hY2ModmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1zYWModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1zYWModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtc2FjKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tc2FjKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tc2FjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tc2FjKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1zYWModmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXNhYyh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1zYWModmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1hZGQodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1hZGQodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWFkZCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1hZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWFkZCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYWRkKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYWRkKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWRkKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tYWRkKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tYWRkKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1hZGQodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubWFkZCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1hZGQodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1zdWIodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1zdWIodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbXN1Yih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1zdWIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbXN1Yih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbXN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtc3ViKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5tc3ViKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm5tc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5tc3ViKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5tc3ViKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbm1zdWIodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZubXN1Yih2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5tc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbm1zdWIodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtaW4odmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1pbih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtaW4odmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zm1pbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtaW4odmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtaW4odmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtaW4odmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm1pbih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZtaW4odmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbWF4KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWF4KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtYXgodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmbWF4KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZtYXgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmbWF4KHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWF4KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zm1heCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbWF4KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtYXgodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWF4KHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duaih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc2duaih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc2duaih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnNnbmoodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc2duaih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc2duaih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc2duaih2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duaih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc2duaih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc2duaih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qbih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmpuKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duam4odmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZzZ25qbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qbih2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnNnbmpuKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duam4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qbih2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnNnbmpuKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qbih2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmpuKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duangodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qeCh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmp4KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2duangodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZzZ25qeCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzZ25qeCh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnNnbmp4KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc2duangodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzZ25qeCh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnNnbmp4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzZ25qeCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNnbmp4KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmYWJzKHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmFicyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmYWJzKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmFicyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmYWJzKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmFicyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZhYnModmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmYWJzKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmYWJzKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmFicyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZlcSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZlcSh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mZXEodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmVxKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmVxKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZlcSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZlcSh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbmUodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbmUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZm5lKHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZm5lKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mbmUodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZm5lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YzMm04X2I0KSkpCnZib29sNF90IHZtZm5lKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZuZSh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZuZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZm5lKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm00X2I4KSkpCnZib29sOF90IHZtZm5lKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZm5lKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mbmUodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mbmUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZuZSh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm00X2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZsdCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbHQodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsdCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZsdCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YzMm04X2I0KSkpCnZib29sNF90IHZtZmx0KHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmx0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmx0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZsZSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZsZSh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mbGUodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmxlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmxlKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm00X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZsZSh2ZmxvYXQzMm04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YzMm1mMl9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ3QodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtMV9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ3QodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZmd0KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmd0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybTRfYjgpKSkKdmJvb2w4X3Qgdm1mZ3QodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZmd0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YzMm04X2I0KSkpCnZib29sNF90IHZtZmd0KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybThfYjRfbSkpKQp2Ym9vbDRfdCB2bWZndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZndCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjMybWYyX2I2NF9tKSkpCnZib29sNjRfdCB2bWZndCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTYpKSkKdmJvb2wxNl90IHZtZmd0KHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtMl9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm00X2I4KSkpCnZib29sOF90IHZtZmd0KHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtNF9iOF9tKSkpCnZib29sOF90IHZtZmd0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjMybThfYjQpKSkKdmJvb2w0X3Qgdm1mZ3QodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ3QodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMzJtZjJfYjY0KSkpCnZib29sNjRfdCB2bWZndCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtMV9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTFfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm0yX2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm00X2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMzJtOF9iNCkpKQp2Ym9vbDRfdCB2bWZnZSh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm04X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YzMm1mMl9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ2UodmZsb2F0MzJtMV90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm0xX2IzMl9tKSkpCnZib29sMzJfdCB2bWZnZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTJfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtNF9iOCkpKQp2Ym9vbDhfdCB2bWZnZSh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybTRfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YzMm04X2I0KSkpCnZib29sNF90IHZtZmdlKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtOF9iNF9tKSkpCnZib29sNF90IHZtZmdlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjMybWYyX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMzJtZjJfYjY0X20pKSkKdmJvb2w2NF90IHZtZmdlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3Qgdm1lcmdlKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtMikpKQp2ZmxvYXQzMm0yX3Qgdm1lcmdlKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMzJtNCkpKQp2ZmxvYXQzMm00X3Qgdm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bWVyZ2UodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjMybWYyKSkpCnZmbG9hdDMybWYyX3Qgdm1lcmdlKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBmbG9hdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm1lcmdlKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgZmxvYXQgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGZsb2F0IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtYXgodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWF4KHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtaW4odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkbWluKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjMybTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRzdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMzJtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YzMm1mMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTFfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMV9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtMl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtNF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtOF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmcmVkb3N1bSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YzMm1mMl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMzJtZjJfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyZWRvc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm0xX2YzMikpKQpmbG9hdCB2Zm12X2YodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtMl9mMzIpKSkKZmxvYXQgdmZtdl9mKHZmbG9hdDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjMybTRfZjMyKSkpCmZsb2F0IHZmbXZfZih2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YzMm04X2YzMikpKQpmbG9hdCB2Zm12X2YodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMzJtZjJfZjMyKSkpCmZsb2F0IHZmbXZfZih2ZmxvYXQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZtdl9zKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZtdl9zKHZmbG9hdDMybTJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZtdl9zKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZtdl9zKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm12X3ModmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRldXAodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2c2xpZGV1cCh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZzbGlkZXVwKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZzbGlkZXVwKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdnNsaWRldXAodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2xpZGV1cCh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZzbGlkZXVwKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGV1cCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGV1cCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRlZG93bih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZzbGlkZWRvd24odmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2xpZGVkb3duKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2xpZGVkb3duKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZzbGlkZWRvd24odmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxdXAodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmc2xpZGUxdXAodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzbGlkZTF1cCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTF1cCh2ZmxvYXQzMm00X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZnNsaWRlMXVwKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc2xpZGUxdXAodmZsb2F0MzJtOF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTF1cCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmc2xpZGUxdXAodmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzbGlkZTF1cCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxZG93bih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmc2xpZGUxZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnNsaWRlMWRvd24odmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTFkb3duKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZzbGlkZTFkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTFkb3duKHZmbG9hdDMybThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZzbGlkZTFkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnNsaWRlMWRvd24odmZsb2F0MzJtZjJfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyKHZmbG9hdDMybTFfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZyZ2F0aGVyKHZmbG9hdDMybTJfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyKHZmbG9hdDMybTRfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJnYXRoZXIodmZsb2F0MzJtOF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyKHZmbG9hdDMybWYyX3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2cmdhdGhlcih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZyZ2F0aGVyKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdnJnYXRoZXIodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybTFfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybTJfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQzMm00X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQzMm04X3Qgb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDMybWYyX3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTIpKSkKdmZsb2F0MzJtMl90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjMybTgpKSkKdmZsb2F0MzJtOF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm00X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Z2V0X2YzMm0xKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm00X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Z2V0X2YzMm0yKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Z2V0X2YzMm0yKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2YzMm04X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Z2V0X2YzMm00KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2c2V0KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2V0KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0yX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2c2V0KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtMikpKQp2b2lkIHZzdXhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTQpKSkKdm9pZCB2c3V4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjMybTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04KSkpCnZvaWQgdnN1eGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YzMm04X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtZjIpKSkKdm9pZCB2c3V4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0xX2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm0yX2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2YzMm00X2YzMm04KSkpCnZmbG9hdDMybThfdCB2c2V0KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtNCkpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybTgpKSkKdm9pZCB2c3V4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjMybThfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c3V4ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtMikpKQp2b2lkIHZzdXhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00KSkpCnZvaWQgdnN1eGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YzMm00X20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOCkpKQp2b2lkIHZzdXhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMzJtOF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnN1eGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yKSkpCnZvaWQgdnN1eGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTQpKSkKdm9pZCB2c3V4ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybTRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0xX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm0yKSkpCnZvaWQgdnNveGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNCkpKQp2b2lkIHZzb3hlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMzJtNF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybTgpKSkKdm9pZCB2c294ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjMybThfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm1mMikpKQp2b2lkIHZzb3hlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm00KSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YzMm00X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOCkpKQp2b2lkIHZzb3hlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMzJtOF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2ZmxvYXQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzb3hlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm0yKSkpCnZvaWQgdnNveGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTQpKSkKdm9pZCB2c294ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04KSkpCnZvaWQgdnNveGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YzMm04X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c294ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c294ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNCkpKQp2b2lkIHZzb3hlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bGUzMmZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZsZTMyZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMmZmX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmxlMzJmZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJmZl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsZTMyZmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyZmZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZsZTMyZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuZWcodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbmVnKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuZWcodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmVnKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZuZWcodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmVnKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YzMm04KSkpCnZmbG9hdDMybThfdCB2Zm5lZyh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZuZWcodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZuZWcodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbmVnKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZsZTMyKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxlMzIodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMzJfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2bGUzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTMyX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmxlMzIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxlMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTEpKSkKdm9pZCB2c2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2YzMm0xX20pKSkKdm9pZCB2c2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UzMl92X2YzMm0yKSkpCnZvaWQgdnNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNlMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtNCkpKQp2b2lkIHZzZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZzZTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtOCkpKQp2b2lkIHZzZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTMyX3ZfZjMybThfbSkpKQp2b2lkIHZzZTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMzJfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2bHNlMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTMyX3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmxzZTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZsc2UzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZsc2UzMih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmxzZTMyKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZjbGFzcyh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmY2xhc3ModmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtMikpKQp2dWludDMybTJfdCB2ZmNsYXNzKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZjbGFzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmY2xhc3ModmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2ZmNsYXNzKHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtOCkpKQp2dWludDMybThfdCB2ZmNsYXNzKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmZjbGFzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZmNsYXNzKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmZjbGFzcyh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZjdnRfZih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZmN2dF9mKHZpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmY3Z0X2YodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZmN2dF9mKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZmN2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmY3Z0X2YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmY3Z0X2YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmY3Z0X2YodnVpbnQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZjdnRfZih2dWludDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmY3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZmY3Z0X3J0el94KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybTIpKSkKdmludDMybTJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZjdnRfcnR6X3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmZjdnRfcnR6X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZmY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZjdnRfcnR6X3godmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZmY3Z0X3J0el94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZjdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZmY3Z0X3J0el94dSh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZmN2dF9ydHpfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZmY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtNCkpKQp2dWludDMybTRfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZmY3Z0X3J0el94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZmY3Z0X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmZjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMikpKQp2aW50MzJtMl90IHZmY3Z0X3godmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZmY3Z0X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmZjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZjdnRfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kzMm04X20pKSkKdmludDMybThfdCB2ZmN2dF94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZmY3Z0X3godmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMSkpKQp2dWludDMybTFfdCB2ZmN2dF94dSh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZjdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2ZmN2dF94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmY3Z0X3h1KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZmY3Z0X3h1KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmZjdnRfeHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmZjdnRfeHUodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodmludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZuY3Z0X2YodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2Zm5jdnRfZih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodnVpbnQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZ1aW50NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zm5jdnRfZih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2Zm5jdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mNCkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfcnR6X3godmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mMikpKQp2aW50MTZtZjJfdCB2Zm5jdnRfcnR6X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm1mMl9tKSkpCnZpbnQxNm1mMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMSkpKQp2aW50MTZtMV90IHZmbmN2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTFfbSkpKQp2aW50MTZtMV90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kxNm0yKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3J0el94KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMTZtNCkpKQp2aW50MTZtNF90IHZmbmN2dF9ydHpfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTE2bTRfbSkpKQp2aW50MTZtNF90IHZmbmN2dF9ydHpfeCh2Ym9vbDRfdCBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjIpKSkKdnVpbnQxNm1mMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3J0el94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0xKSkpCnZ1aW50MTZtMV90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZmbmN2dF9ydHpfeHUodmJvb2wxNl90IG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MTZtMl9tKSkpCnZ1aW50MTZtMl90IHZmbmN2dF9ydHpfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZmbmN2dF94KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjRfbSkpKQp2aW50MTZtZjRfdCB2Zm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtZjIpKSkKdmludDE2bWYyX3QgdmZuY3Z0X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bWYyX20pKSkKdmludDE2bWYyX3QgdmZuY3Z0X3godmJvb2wzMl90IG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtMSkpKQp2aW50MTZtMV90IHZmbmN2dF94KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kxNm0xX20pKSkKdmludDE2bTFfdCB2Zm5jdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTIpKSkKdmludDE2bTJfdCB2Zm5jdnRfeCh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZuY3Z0X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTE2bTQpKSkKdmludDE2bTRfdCB2Zm5jdnRfeCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmZuY3Z0X3godmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZuY3Z0X3h1KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmbmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtZjJfbSkpKQp2dWludDE2bWYyX3QgdmZuY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtMSkpKQp2dWludDE2bTFfdCB2Zm5jdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmbmN2dF94dSh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2Zm5jdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MTZtNCkpKQp2dWludDE2bTRfdCB2Zm5jdnRfeHUodmZsb2F0MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZuY3Z0X3h1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJlYzcodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnJlYzcodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZyZWM3KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmcmVjNyh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmcmVjNyh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmcmVjNyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZyZWM3KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZyZWM3KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZyc3FydDcodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZyc3FydDcodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZyc3FydDcodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmcnNxcnQ3KHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZnJzcXJ0Nyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZnJzcXJ0Nyh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZyc3FydDcodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZnNxcnQodmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZnNxcnQodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZzcXJ0KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZzcXJ0KHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmc3FydCh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmc3FydCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmc3FydCh2ZmxvYXQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmc3FydCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZzcXJ0KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3Y3Z0X2YodmludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2aW50MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2N2dF9mKHZpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd2N2dF9mKHZpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd2N2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2dWludDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2dWludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodnVpbnQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZmd2N2dF9ydHpfeCh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZndjdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2ZndjdnRfcnR6X3godmZsb2F0MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZndjdnRfcnR6X3godmJvb2wzMl90IG9wMCwgdmludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZmd2N2dF9ydHpfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZmd2N2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmd2N2dF9ydHpfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2ZndjdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZndjdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91NjRtOCkpKQp2dWludDY0bThfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2ZndjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZmd2N2dF94KHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmZ3Y3Z0X3godmJvb2w2NF90IG9wMCwgdmludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtMikpKQp2aW50NjRtMl90IHZmd2N2dF94KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZndjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2ZndjdnRfeCh2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmZ3Y3Z0X3godmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZ3Y3Z0X3godmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZmd2N2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2ZndjdnRfeHUodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmd2N2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmZ3Y3Z0X3h1KHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZmd2N2dF94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2ZndjdnRfeHUodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmZ3Y3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZmd2N2dF94dSh2ZmxvYXQzMm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2ZndjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG11bF9leHRfZjMybTEodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTFfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsbXVsX2V4dF9mMzJtMih2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm1mMl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmxtdWxfZXh0X2YzMm0yKHZmbG9hdDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0xX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG11bF9leHRfZjMybTQodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtMl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxtdWxfZXh0X2YzMm00KHZmbG9hdDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2bG11bF9leHRfZjMybTQodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybTFfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZsbXVsX2V4dF9mMzJtOCh2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YzMm0yX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG11bF9leHRfZjMybTgodmZsb2F0MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMzJtNF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmxtdWxfZXh0X2YzMm04KHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjMybWYyX2YzMm04KSkpCnZmbG9hdDMybThfdCB2bG11bF9leHRfZjMybTgodmZsb2F0MzJtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtMV9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG11bF90cnVuY19mMzJtZjIodmZsb2F0MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZsbXVsX3RydW5jX2YzMm1mMih2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTRfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmxtdWxfdHJ1bmNfZjMybWYyKHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2bG11bF90cnVuY19mMzJtZjIodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm0yX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2bG11bF90cnVuY19mMzJtMSh2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZsbXVsX3RydW5jX2YzMm0xKHZmbG9hdDMybTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmxtdWxfdHJ1bmNfZjMybTEodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YzMm00X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2bG11bF90cnVuY19mMzJtMih2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjMybThfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZsbXVsX3RydW5jX2YzMm0yKHZmbG9hdDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMzJtOF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmxtdWxfdHJ1bmNfZjMybTQodmZsb2F0MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJlaW50ZXJwcmV0X2YzMm0xKHZpbnQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm0yX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2cmVpbnRlcnByZXRfZjMybTIodmludDMybTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTMybTRfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZyZWludGVycHJldF9mMzJtNCh2aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMzJtOF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJlaW50ZXJwcmV0X2YzMm04KHZpbnQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kzMm1mMl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2cmVpbnRlcnByZXRfZjMybWYyKHZpbnQzMm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdnJlaW50ZXJwcmV0X2YzMm0xKHZ1aW50MzJtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtMl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdnJlaW50ZXJwcmV0X2YzMm0yKHZ1aW50MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtNF9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdnJlaW50ZXJwcmV0X2YzMm00KHZ1aW50MzJtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtOF9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdnJlaW50ZXJwcmV0X2YzMm04KHZ1aW50MzJtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MzJtZjJfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdnJlaW50ZXJwcmV0X2YzMm1mMih2dWludDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0xX2kzMm0xKSkpCnZpbnQzMm0xX3QgdnJlaW50ZXJwcmV0X2kzMm0xKHZmbG9hdDMybTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybTJfaTMybTIpKSkKdmludDMybTJfdCB2cmVpbnRlcnByZXRfaTMybTIodmZsb2F0MzJtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMzJtNF9pMzJtNCkpKQp2aW50MzJtNF90IHZyZWludGVycHJldF9pMzJtNCh2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm04X2kzMm04KSkpCnZpbnQzMm04X3QgdnJlaW50ZXJwcmV0X2kzMm04KHZmbG9hdDMybThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjMybWYyX2kzMm1mMikpKQp2aW50MzJtZjJfdCB2cmVpbnRlcnByZXRfaTMybWYyKHZmbG9hdDMybWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0xX3UzMm0xKSkpCnZ1aW50MzJtMV90IHZyZWludGVycHJldF91MzJtMSh2ZmxvYXQzMm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm0yX3UzMm0yKSkpCnZ1aW50MzJtMl90IHZyZWludGVycHJldF91MzJtMih2ZmxvYXQzMm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm00X3UzMm00KSkpCnZ1aW50MzJtNF90IHZyZWludGVycHJldF91MzJtNCh2ZmxvYXQzMm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm04X3UzMm04KSkpCnZ1aW50MzJtOF90IHZyZWludGVycHJldF91MzJtOCh2ZmxvYXQzMm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YzMm1mMl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZyZWludGVycHJldF91MzJtZjIodmZsb2F0MzJtZjJfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2QpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsc2U2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxzZTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlNjRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bHNlNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2U2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsc2U2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bTIpKSkKdm9pZCB2c3NlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NlNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2U2NF92X2Y2NG00KSkpCnZvaWQgdnNzZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnNzZTY0KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlNjRfdl9mNjRtOCkpKQp2b2lkIHZzc2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzc2U2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsdXhlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsdXhlaTgodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpOChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpOCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpOCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3Qgdmx1eGVpMTYoY29uc3QgZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3Qgdmx1eGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsdXhlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsdXhlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3Qgdmx1eGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bHV4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsdXhlaTMyKGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3Qgdmx1eGVpMzIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bHV4ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsdXhlaTY0KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3Qgdmx1eGVpNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3Qgdmx1eGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bHV4ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsdXhlaTY0KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpOChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpOCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsb3hlaTgoY29uc3QgZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsb3hlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWk4KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsb3hlaTE2KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsb3hlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpMTYoY29uc3QgZG91YmxlICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bG94ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWkxNihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTE2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsb3hlaTMyKGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxveGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpMzIoY29uc3QgZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG94ZWkzMihjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsb3hlaTMyKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxveGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG94ZWk2NChjb25zdCBkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsb3hlaTY0KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsb3hlaTY0KGNvbnN0IGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmxveGVpNjQoY29uc3QgZG91YmxlICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2bG94ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZtdl92KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3Qgdm12X3YodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bXZfdih2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZtdl92KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmYWRkKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZhZGQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmFkZCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmYWRkKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZhZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZmFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmYWRkKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZhZGQodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZmFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZnN1Yih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc3ViKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc3ViKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzdWIodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc3ViKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyc3ViKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyc3ViKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyc3ViKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcnN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyc3ViKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcnN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXVsKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtdWwodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm11bCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm11bCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXVsKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm11bCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbXVsKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtdWwodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm11bCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZkaXYodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZmRpdih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmZGl2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmZGl2KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZkaXYodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmZGl2KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZkaXYodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmRpdih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmZGl2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmZGl2KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZGl2KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyZGl2KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyZGl2KHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcmRpdih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyZGl2KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcmRpdih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1hY2ModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1hY2ModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1hY2ModmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWFjYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWFjYyh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtc2FjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtc2FjKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtc2FjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1zYWModmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1zYWModmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1zYWModmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1zYWModmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm5tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZubXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1hZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWFkZCh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWFkZCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1hZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYWRkKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtYWRkKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtYWRkKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtYWRkKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1zdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtc3ViKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1zdWIodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1zdWIodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1zdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtc3ViKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXN1Yih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbXN1Yih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXN1Yih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbm1zdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgZG91YmxlIG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGRvdWJsZSBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBkb3VibGUgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1pbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWluKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtaW4odmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1pbih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZtaW4odmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2Zm1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm1pbih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmbWluKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZtaW4odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZtaW4odmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2Zm1pbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbWF4KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZtYXgodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm1heCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbWF4KHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1heCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmbWF4KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWF4KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtYXgodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zm1heCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1heCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmbWF4KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc2duaih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNnbmoodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duaih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2duaih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc2duaih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNnbmoodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmc2duaih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzZ25qKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duaih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZzZ25qKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc2duaih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmc2duaih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duam4odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duangodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2duangodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNnbmp4KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzZ25qeCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZhYnModmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmYWJzKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZhYnModmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmYWJzKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZhYnModmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmYWJzKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZhYnModmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmYWJzKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZlcSh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mZXEodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZlcSh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mZXEodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZlcSh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZXEodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmVxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZm5lKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZuZSh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2Y2NG04X2I4KSkpCnZib29sOF90IHZtZm5lKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZuZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZm5lKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZm5lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZuZSh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbHQodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmx0KHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mbHQodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmx0KHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbHQodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZsZSh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mbGUodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZsZSh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mbGUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZsZSh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbGUodmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmxlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0NjRtOF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmd0KHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZndCh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmd0KHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZndCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtMV9iNjQpKSkKdmJvb2w2NF90IHZtZmd0KHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTFfYjY0X20pKSkKdmJvb2w2NF90IHZtZmd0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjY0bTJfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG0yX2IzMl9tKSkpCnZib29sMzJfdCB2bWZndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG00X2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtNF9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mNjRtOF9iOCkpKQp2Ym9vbDhfdCB2bWZndCh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2Y2NG04X2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTFfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0xX2I2NF9tKSkpCnZib29sNjRfdCB2bWZnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2Y2NG0yX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ2UodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtNF9iMTYpKSkKdmJvb2wxNl90IHZtZmdlKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bTRfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjY0bThfYjgpKSkKdmJvb2w4X3Qgdm1mZ2UodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mNjRtOF9iOF9tKSkpCnZib29sOF90IHZtZmdlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG0xX2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmZsb2F0NjRtMV90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mNjRtMV9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mNjRtMl9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDY0bTJfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bTRfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG00X2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2Y2NG04X2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjY0bThfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bWVyZ2UodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm1lcmdlKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGRvdWJsZSBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmbWVyZ2UodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZG91YmxlIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtZXJnZSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBkb3VibGUgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm1lcmdlKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgZG91YmxlIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtMV9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2Y2NG0yX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkbWF4KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWF4KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjY0bTRfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtOF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtYXgodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mNjRtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1heCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bTFfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtMl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mNjRtMl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG1pbih2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2Y2NG00X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkbWluKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjY0bThfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRtaW4odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG0xX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjY0bTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRzdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mNjRtNF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG04X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2Y2NG04X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTFfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtMl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtNF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjY0bThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mNjRtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnJlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG0xX2Y2NCkpKQpkb3VibGUgdmZtdl9mKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjY0bTJfZjY0KSkpCmRvdWJsZSB2Zm12X2YodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mNjRtNF9mNjQpKSkKZG91YmxlIHZmbXZfZih2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2Y2NG04X2Y2NCkpKQpkb3VibGUgdmZtdl9mKHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmbXZfcyh2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfc19mX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm12X3ModmZsb2F0NjRtMl90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X3NfZl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZtdl9zKHZmbG9hdDY0bTRfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmbXZfcyh2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGV1cCh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZzbGlkZXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZzbGlkZXVwKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRldXAodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdnNsaWRldXAodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2c2xpZGV1cCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2xpZGV1cCh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZzbGlkZXVwKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGVkb3duKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRlZG93bih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnNsaWRlZG93bih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZzbGlkZWRvd24odmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2xpZGVkb3duKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDY0bTFfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGRvdWJsZSBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZzbGlkZTF1cCh2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZzbGlkZTF1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxdXAodmZsb2F0NjRtNF90IG9wMCwgZG91YmxlIG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMXVwKHZmbG9hdDY0bThfdCBvcDAsIGRvdWJsZSBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMXVwKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG0xX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG0yX3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnNsaWRlMWRvd24odmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG00X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNsaWRlMWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZG91YmxlIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmc2xpZGUxZG93bih2ZmxvYXQ2NG04X3Qgb3AwLCBkb3VibGUgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZnNsaWRlMWRvd24odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBkb3VibGUgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2cmdhdGhlcih2ZmxvYXQ2NG0xX3Qgb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmdhdGhlcih2ZmxvYXQ2NG0yX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXIodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmdhdGhlcih2ZmxvYXQ2NG00X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2cmdhdGhlcih2ZmxvYXQ2NG04X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZyZ2F0aGVyKHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXIodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXIodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmdhdGhlcih2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZyZ2F0aGVyKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdnJnYXRoZXIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTFfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZyZ2F0aGVyZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXJlaTE2KHZmbG9hdDY0bTRfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdnJnYXRoZXJlaTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyZWkxNih2ZmxvYXQ2NG04X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZyZ2F0aGVyZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZjb21wcmVzcyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmNvbXByZXNzKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Y29tcHJlc3ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZjb21wcmVzcyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Z2V0X2Y2NG0xKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG00X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Z2V0X2Y2NG0yKHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Z2V0X2Y2NG0yKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmdldF92X2Y2NG04X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Z2V0X2Y2NG00KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2c2V0KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2c2V0KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0yX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2c2V0KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0xX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG0yX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNldF92X2Y2NG00X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2c2V0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG0yKSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG00KSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2Y2NG04KSkpCnZvaWQgdnN1eGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mNjRtOF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzdXhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjY0bTgpKSkKdm9pZCB2c3V4ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2Y2NG04X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c3V4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2Y2NG00KSkpCnZvaWQgdnN1eGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mNjRtOCkpKQp2b2lkIHZzdXhlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjY0bThfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c3V4ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk2NF92X2Y2NG00KSkpCnZvaWQgdnN1eGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mNjRtOCkpKQp2b2lkIHZzdXhlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0xKSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG0yKSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG00KSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2Y2NG04KSkpCnZvaWQgdnNveGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mNjRtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzb3hlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjY0bTgpKSkKdm9pZCB2c294ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2Y2NG04X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c294ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c294ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2Y2NG00KSkpCnZvaWQgdnNveGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mNjRtOCkpKQp2b2lkIHZzb3hlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjY0bThfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzb3hlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c294ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2Y2NG00KSkpCnZvaWQgdnNveGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mNjRtOCkpKQp2b2lkIHZzb3hlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTY0X3ZfZjY0bThfbSkpKQp2b2lkIHZzb3hlaTY0KHZib29sOF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZsZTY0ZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZsZTY0ZmYodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZsZTY0ZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlNjRmZl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZsZTY0ZmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zm5lZyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZuZWcodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2Zm5lZyh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZuZWcodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zm5lZyh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZuZWcodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zm5lZyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZuZWcodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmxlNjQodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmxlNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmxlNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgY29uc3QgZG91YmxlICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTY0X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmxlNjQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMSkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG0xX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtMikpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c2U2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtNCkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG00X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlNjRfdl9mNjRtOCkpKQp2b2lkIHZzZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2U2NF92X2Y2NG04X20pKSkKdm9pZCB2c2U2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmZjbGFzcyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZmY2xhc3ModmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZmNsYXNzKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmZjbGFzcyh2Ym9vbDMyX3Qgb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3U2NG00KSkpCnZ1aW50NjRtNF90IHZmY2xhc3ModmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZmNsYXNzKHZib29sMTZfdCBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmZjbGFzcyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZmY2xhc3ModmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmY3Z0X2YodmludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZjdnRfZih2aW50NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZmN2dF9mKHZpbnQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmY3Z0X2YodmludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZjdnRfZih2dWludDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZjdnRfZih2dWludDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZjdnRfZih2dWludDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZjdnRfZih2dWludDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmY3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmZjdnRfcnR6X3godmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZmY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pNjRtMikpKQp2aW50NjRtMl90IHZmY3Z0X3J0el94KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmZjdnRfcnR6X3godmJvb2wxNl90IG9wMCwgdmludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZjdnRfcnR6X3godmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZmY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2ZmN2dF9ydHpfeHUodmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmZjdnRfcnR6X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZmY3Z0X3J0el94dSh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2ZmN2dF9ydHpfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZmY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91NjRtOCkpKQp2dWludDY0bThfdCB2ZmN2dF9ydHpfeHUodmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmZjdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmZjdnRfeCh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2ZmN2dF94KHZib29sNjRfdCBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmZjdnRfeCh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2ZmN2dF94KHZib29sMzJfdCBvcDAsIHZpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmZjdnRfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2ZmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmZjdnRfeCh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2k2NG04X20pKSkKdmludDY0bThfdCB2ZmN2dF94KHZib29sOF90IG9wMCwgdmludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZmY3Z0X3h1KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmZjdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMikpKQp2dWludDY0bTJfdCB2ZmN2dF94dSh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmZjdnRfeHUodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2ZmN2dF94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZmY3Z0X3h1KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeHVfZl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmZjdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjIpKSkKdmludDMybWYyX3QgdmZuY3Z0X3J0el94KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2Zm5jdnRfcnR6X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTEpKSkKdmludDMybTFfdCB2Zm5jdnRfcnR6X3godmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm0xX20pKSkKdmludDMybTFfdCB2Zm5jdnRfcnR6X3godmJvb2wzMl90IG9wMCwgdmludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtMikpKQp2aW50MzJtMl90IHZmbmN2dF9ydHpfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaTMybTJfbSkpKQp2aW50MzJtMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2kzMm00KSkpCnZpbnQzMm00X3QgdmZuY3Z0X3J0el94KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmZuY3Z0X3J0el94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmbmN2dF9ydHpfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMSkpKQp2dWludDMybTFfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTFfbSkpKQp2dWludDMybTFfdCB2Zm5jdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtMikpKQp2dWludDMybTJfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTJfbSkpKQp2dWludDMybTJfdCB2Zm5jdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191MzJtNCkpKQp2dWludDMybTRfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2Zm5jdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtZjIpKSkKdmludDMybWYyX3QgdmZuY3Z0X3godmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmZuY3Z0X3godmJvb2w2NF90IG9wMCwgdmludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtMSkpKQp2aW50MzJtMV90IHZmbmN2dF94KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm0xX20pKSkKdmludDMybTFfdCB2Zm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybTIpKSkKdmludDMybTJfdCB2Zm5jdnRfeCh2ZmxvYXQ2NG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZuY3Z0X3godmJvb2wxNl90IG9wMCwgdmludDMybTJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2kzMm00KSkpCnZpbnQzMm00X3QgdmZuY3Z0X3godmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaTMybTRfbSkpKQp2aW50MzJtNF90IHZmbmN2dF94KHZib29sOF90IG9wMCwgdmludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZmbmN2dF94dSh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZmbmN2dF94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZuY3Z0X3h1KHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZmbmN2dF94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191MzJtMikpKQp2dWludDMybTJfdCB2Zm5jdnRfeHUodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3UzMm00KSkpCnZ1aW50MzJtNF90IHZmbmN2dF94dSh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdTMybTRfbSkpKQp2dWludDMybTRfdCB2Zm5jdnRfeHUodmJvb2w4X3Qgb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmcmVjNyh2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcmVjNyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZnJlYzcodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZnJlYzcodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyZWM3KHZmbG9hdDY0bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmcmVjNyh2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZyc3FydDcodmZsb2F0NjRtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmcnNxcnQ3KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZyc3FydDcodmZsb2F0NjRtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmcnNxcnQ3KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZyc3FydDcodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmcnNxcnQ3KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZyc3FydDcodmZsb2F0NjRtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmcnNxcnQ3KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZzcXJ0KHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmc3FydCh2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmc3FydCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZnNxcnQodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZnNxcnQodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZzcXJ0KHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZzcXJ0KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3Y3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodmludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3Y3Z0X2YodmludDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd2N2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3Y3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodnVpbnQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZ1aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd2N2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndjdnRfZih2dWludDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmxtdWxfZXh0X2Y2NG0yKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTFfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZsbXVsX2V4dF9mNjRtNCh2ZmxvYXQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG0yX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2bG11bF9leHRfZjY0bTQodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mNjRtMV9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmxtdWxfZXh0X2Y2NG04KHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjY0bTJfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZsbXVsX2V4dF9mNjRtOCh2ZmxvYXQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2Y2NG00X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2bG11bF9leHRfZjY0bTgodmZsb2F0NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2Y2NG0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2bG11bF90cnVuY19mNjRtMSh2ZmxvYXQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZsbXVsX3RydW5jX2Y2NG0xKHZmbG9hdDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mNjRtOF9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmxtdWxfdHJ1bmNfZjY0bTEodmZsb2F0NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2Y2NG00X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2bG11bF90cnVuY19mNjRtMih2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjY0bThfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZsbXVsX3RydW5jX2Y2NG0yKHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mNjRtOF9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmxtdWxfdHJ1bmNfZjY0bTQodmZsb2F0NjRtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtMV9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdnJlaW50ZXJwcmV0X2Y2NG0xKHZpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2k2NG0yX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmVpbnRlcnByZXRfZjY0bTIodmludDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTY0bTRfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZyZWludGVycHJldF9mNjRtNCh2aW50NjRtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pNjRtOF9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdnJlaW50ZXJwcmV0X2Y2NG04KHZpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2cmVpbnRlcnByZXRfZjY0bTEodnVpbnQ2NG0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG0yX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2cmVpbnRlcnByZXRfZjY0bTIodnVpbnQ2NG0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG00X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2cmVpbnRlcnByZXRfZjY0bTQodnVpbnQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X3U2NG04X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2cmVpbnRlcnByZXRfZjY0bTgodnVpbnQ2NG04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG0xX2k2NG0xKSkpCnZpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X2k2NG0xKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTJfaTY0bTIpKSkKdmludDY0bTJfdCB2cmVpbnRlcnByZXRfaTY0bTIodmZsb2F0NjRtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mNjRtNF9pNjRtNCkpKQp2aW50NjRtNF90IHZyZWludGVycHJldF9pNjRtNCh2ZmxvYXQ2NG00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2Y2NG04X2k2NG04KSkpCnZpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X2k2NG04KHZmbG9hdDY0bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTFfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdnJlaW50ZXJwcmV0X3U2NG0xKHZmbG9hdDY0bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTJfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdnJlaW50ZXJwcmV0X3U2NG0yKHZmbG9hdDY0bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bTRfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdnJlaW50ZXJwcmV0X3U2NG00KHZmbG9hdDY0bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjY0bThfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdnJlaW50ZXJwcmV0X3U2NG04KHZmbG9hdDY0bThfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl9kKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92dih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndhZGRfdnYodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3YWRkX3Z2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdnYodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3YWRkX3Z2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndhZGRfdnYodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3Z2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2FkZF92Zih2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndhZGRfdmYodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF92Zih2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2FkZF92Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdmYodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfdmYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3ZmKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3ZmKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3Z2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd3N1Yl92dih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92dih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndzdWJfdnYodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl92dih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdnYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3ZmKHZmbG9hdDMybWYyX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl92Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3ZmKHZmbG9hdDMybTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3ZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92Zih2ZmxvYXQzMm0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd3N1Yl92Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdmYodmZsb2F0MzJtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfdmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndhZGRfd3YodmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd2FkZF93dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93dih2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndhZGRfd3YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd2FkZF93dih2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd3YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd2FkZF93dih2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndhZGRfd3YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3YWRkX3dmKHZmbG9hdDY0bTFfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3YWRkX3dmKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93Zih2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2FkZF93Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd2YodmZsb2F0NjRtNF90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndhZGRfd2YodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3dmKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3YWRkX3dmKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3c3ViX3d2KHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndzdWJfd3YodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd3YodmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3c3ViX3d2KHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndzdWJfd3YodmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3d2KHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndzdWJfd3YodmZsb2F0NjRtOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3c3ViX3d2KHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl93Zih2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3N1Yl93Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd2YodmZsb2F0NjRtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndzdWJfd2YodmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3dmKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3c3ViX3dmKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl93Zih2ZmxvYXQ2NG04X3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd3N1Yl93Zih2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDY0bThfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd211bCh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndtdWwodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3bXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndtdWwodmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd211bCh2ZmxvYXQzMm1mMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIGZsb2F0IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd211bCh2ZmxvYXQzMm0xX3Qgb3AwLCBmbG9hdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd211bCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBmbG9hdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmZsb2F0MzJtMl90IG9wMCwgZmxvYXQgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndtdWwodmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZmbG9hdDMybTRfdCBvcDAsIGZsb2F0IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXVsKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgZmxvYXQgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd21hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndtYWNjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndtYWNjKHZmbG9hdDY0bTFfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndtYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bWFjYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndtYWNjKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd21hY2ModmZsb2F0NjRtOF90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bm1hY2ModmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd25tYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1hY2ModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndubWFjYyh2ZmxvYXQ2NG00X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZmd25tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd25tYWNjKHZmbG9hdDY0bThfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndubWFjYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd25tYWNjKHZib29sNjRfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd25tYWNjKHZmbG9hdDY0bTJfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZmd25tYWNjKHZmbG9hdDY0bTRfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZmd25tYWNjKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2ZndubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2Zndtc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd21zYWModmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmZsb2F0NjRtMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZmbG9hdDY0bTRfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDY0bThfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bXNhYyh2ZmxvYXQ2NG0xX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd21zYWModmZsb2F0NjRtMl90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQ2NG0yX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3bXNhYyh2ZmxvYXQ2NG00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTRfdCBvcDEsIGZsb2F0IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2Zndtc2FjKHZmbG9hdDY0bThfdCBvcDAsIGZsb2F0IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd25tc2FjKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd25tc2FjKHZmbG9hdDY0bTJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmZ3bm1zYWModmZsb2F0NjRtNF90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192dl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndubXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZmd25tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3bm1zYWModmZsb2F0NjRtMV90IG9wMCwgZmxvYXQgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG0yKSkpCnZmbG9hdDY0bTJfdCB2ZndubXNhYyh2ZmxvYXQ2NG0yX3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndubXNhYyh2ZmxvYXQ2NG00X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bTRfbSkpKQp2ZmxvYXQ2NG00X3QgdmZ3bm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0NjRtNF90IG9wMSwgZmxvYXQgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2ZndubXNhYyh2ZmxvYXQ2NG04X3Qgb3AwLCBmbG9hdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3bm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCBmbG9hdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTFfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm0yX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sMTZfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YzMm00X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybTRfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtOF9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRzdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMzJtZjJfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjMybWYyX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZHN1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm0xX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMV9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMzJtMl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkb3N1bSh2ZmxvYXQ2NG0xX3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybTJfZjY0bTFfbSkpKQp2ZmxvYXQ2NG0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybTRfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm00X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybThfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmZsb2F0NjRtMV90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YzMm04X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2ZndyZWRvc3VtKHZmbG9hdDY0bTFfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjMybWYyX2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZmd3JlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9mKHZmbG9hdDY0bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfZih2ZmxvYXQ2NG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZmbG9hdDY0bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmbmN2dF9yb2RfZih2ZmxvYXQ2NG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2Zm5jdnRfcm9kX2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDY0bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zm5jdnRfcm9kX2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2Zm5jdnRfcm9kX2YodmZsb2F0NjRtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmbmN2dF9yb2RfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmbmN2dF9yb2RfZih2ZmxvYXQ2NG04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZuY3Z0X3JvZF9mKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTEpKSkKdmZsb2F0NjRtMV90IHZmd2N2dF9mKHZmbG9hdDMybWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtMV9tKSkpCnZmbG9hdDY0bTFfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZmbG9hdDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2Y2NG00KSkpCnZmbG9hdDY0bTRfdCB2ZndjdnRfZih2ZmxvYXQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96ZmgpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3NlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00KSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2UxNl92X2YxNm00X20pKSkKdm9pZCB2c3NlMTYodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtOCkpKQp2b2lkIHZzc2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtOF9tKSkpCnZvaWQgdnNzZTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2UxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsdXhlaTgodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWk4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsdXhlaTgodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bHV4ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3Qgdmx1eGVpOCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaThfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsdXhlaTgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpOF92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk4X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWk4KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWkxNih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsdXhlaTE2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bHV4ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3Qgdmx1eGVpMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMTZfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsdXhlaTE2KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkxNl92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTE2X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsdXhlaTMyKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZsdXhlaTMyKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bHV4ZWkzMihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3Qgdmx1eGVpMzIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTMyX3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3Qgdmx1eGVpMzIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpMzJfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bHV4ZWkzMihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWkzMl92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3Qgdmx1eGVpMzIodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bHV4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHV4ZWk2NCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bHV4ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhlaTY0X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bHV4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4ZWk2NF92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTY0KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eGVpNjRfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsdXhlaTY0KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWk4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpOCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZsb3hlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bG94ZWk4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxveGVpOChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZsb3hlaTgodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTgoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk4X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bG94ZWk4KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaThfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk4KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpOF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpOCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpMTYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZsb3hlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bG94ZWkxNih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxveGVpMTYoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZsb3hlaTE2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTE2KGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTE2X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bG94ZWkxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMTZfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWkxNihjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkxNl92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWkzMih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWkzMih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxveGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsb3hlaTMyKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWkzMl92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTMyKGNvbnN0IF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsb3hlaTMyKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTMyX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmxveGVpMzIoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpMzJfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsb3hlaTMyKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmxveGVpNjQodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxveGVpNjQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmxveGVpNjQoY29uc3QgX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94ZWk2NF92X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmxveGVpNjQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveGVpNjRfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk2NChjb25zdCBfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hlaTY0X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bG94ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bXZfdih2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZtdl92KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3Qgdm12X3YodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bXZfdl92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bXZfdih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Ztdl92X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3Qgdm12X3YodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm12X3Zfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bXZfdih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhZGQodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZmFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZmFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZhZGQodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZmFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWRkKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZhZGQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhZGQodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZhZGQodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmFkZCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZhZGQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWRkKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmFkZCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWRkX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZhZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhZGQodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFkZF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmYWRkKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc3ViKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnN1Yih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzdWIodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzdWIodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc3ViKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzdWIodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnN1Yl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3ViX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzdWIodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJzdWIodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJzdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZyc3ViKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZyc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyc3ViKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZyc3ViKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZyc3ViKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnJzdWIodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnJzdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3ViX3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcnN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnN1Yl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmcnN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtdWwodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm11bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm11bCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtdWwodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm11bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXVsKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtdWwodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbXVsKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtdWwodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbXVsKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtdWwodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXVsKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm11bCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXVsKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm11bCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm11bCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXVsX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdWxfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdWwodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm11bF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXVsKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZmRpdih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmZGl2KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmZGl2KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmRpdih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZkaXYodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmRpdih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZkaXYodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZkaXYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZmRpdih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZmRpdih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZkaXYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmZGl2KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZmRpdih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZkaXYodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmZGl2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmZGl2KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZkaXZfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZmRpdih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmRpdl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmZGl2X3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZkaXYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJkaXYodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJkaXYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZyZGl2KHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZyZGl2KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyZGl2KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZyZGl2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZyZGl2KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyZGl2KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnJkaXYodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJkaXZfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnJkaXYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZGl2X3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcmRpdih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmRpdl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmcmRpdih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbWFjYyh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtYWNjKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1hY2ModmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtYWNjKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWNjKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWFjYyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWNjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWFjYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hY2NfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtYWNjKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFjY192Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWNjKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWNjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubWFjYyh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubWFjYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1hY2ModmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1hY2ModmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFjYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1hY2ModmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tYWNjKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1hY2ModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFjY192Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hY2NfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWNjX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXNhYyh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1zYWModmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtc2FjKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1zYWModmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtc2FjKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtc2FjKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXNhYyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc2FjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbXNhYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zYWNfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtc2FjKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXNhY192Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc2FjKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubXNhYyh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubXNhYyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1zYWModmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1zYWModmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXNhYyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tc2FjKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1zYWModmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXNhYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tc2FjKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1zYWModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXNhY192Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zYWNfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc2FjX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbWFkZCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1hZGQodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1hZGQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtYWRkKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1hZGQodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtYWRkKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWRkKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWFkZCh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYWRkX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWFkZCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1hZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtYWRkKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWFkZF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWRkKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tYWRkKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubWFkZCh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubWFkZCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1hZGQodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1hZGQodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1hZGQodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubWFkZCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubWFkZCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tYWRkKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1hZGQodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubWFkZCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tYWRkKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1hZGQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubWFkZF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tYWRkKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1hZGRfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tYWRkX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubWFkZCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXN1Yih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1zdWIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm1zdWIodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtc3ViKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm1zdWIodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtc3ViKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtc3ViKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXN1Yih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbXN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbXN1Yih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1zdWJfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtc3ViKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXN1Yl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc3ViKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5tc3ViKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZubXN1Yih2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZubXN1Yih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbm1zdWIodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbm1zdWIodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbm1zdWIodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZubXN1Yih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZubXN1Yih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2Zm5tc3ViKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbm1zdWIodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZubXN1Yih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Zm5tc3ViKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbm1zdWIodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZubXN1Yl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5tc3ViKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmbm1zdWJfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5tc3ViX3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZubXN1Yih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtaW4odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm1pbih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm1pbih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtaW4odmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm1pbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWluKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZtaW4odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbWluKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92dl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbWluKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZtaW4odmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbWluKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtaW4odmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbWluKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm1pbih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbWluKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm1pbih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm1pbih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWluX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtaW4odmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtaW5fdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtaW4odmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1pbl92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbWluKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbWF4KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm1heCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtYXgodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm1heCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtYXgodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1heCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZtYXgodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm1heCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbWF4KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm1heCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtYXgodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmbWF4KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbWF4KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtYXhfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm1heCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1heF92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Zm1heCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWF4X3ZmX2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzZ25qKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmoodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdnZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2duaih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmoodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2duaih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc2duaih2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmoodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmoodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmoodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qX3ZmX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2dual92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duaih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qbih2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qbih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmpuKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3Z2X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qbih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92dl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duam4odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNnbmpuKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2duam4odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2duam4odmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmpuKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmpuX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2duam4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzZ25qbih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qbl92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNnbmpuKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzZ25qbih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmpuKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qbih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duam5fdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmpuKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc2duangodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2duangodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmp4KHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNnbmp4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc2duangodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmp4KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmp4KHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzZ25qeCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc2duangodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzZ25qeCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZzZ25qeCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNnbmp4KHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2duangodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2duanhfdmZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZzZ25qeCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNnbmp4KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNnbmp4X3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2duangodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZnNnbmp4KHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmc2duangodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNnbmp4KHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzZ25qeF92Zl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmc2duangodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZhYnModmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmYWJzKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZhYnModmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmYWJzKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZmFicyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZhYnModmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmYWJzKHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZmFicyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmFicyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmFic192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZhYnModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmYWJzX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZhYnModmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZhYnNfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmYWJzKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmVxKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mZXEodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm00X2I0KSkpCnZib29sNF90IHZtZmVxKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZlcSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZlcSh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mZXEodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdnZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZXEodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZXEodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3Z2X2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92dl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmVxKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmVxKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZXEodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmVxKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmVxKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mZXEodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mZXEodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZlcV92Zl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZlcSh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZlcSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmVxKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZlcSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmVxX3ZmX2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmVxKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZXFfdmZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZlcSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbmUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZuZSh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mbmUodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZm5lKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm04X2IyKSkpCnZib29sMl90IHZtZm5lKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZuZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92dl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZuZSh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZuZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdnZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3Z2X2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbmUodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mbmUodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZuZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mbmUodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mbmUodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZuZSh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZuZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZm5lX3ZmX2YxNm04X2IyKSkpCnZib29sMl90IHZtZm5lKHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZm5lKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbmUodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZm5lKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbmVfdmZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mbmUodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZuZV92Zl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZm5lKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZsdCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmx0KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZsdCh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mbHQodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mbHQodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmx0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3Z2X2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmx0KHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmx0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92dl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdnZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZsdCh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZsdCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmx0KHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZsdCh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZsdCh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm00X2I0KSkpCnZib29sNF90IHZtZmx0KHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmx0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbHRfdmZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mbHQodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mbHQodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZsdCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbHQodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsdF92Zl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZsdCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmx0X3ZmX2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mbHQodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmxlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mbGUodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm00X2I0KSkpCnZib29sNF90IHZtZmxlKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZsZSh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZsZSh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mbGUodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdnZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mbGUodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mbGUodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3Z2X2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDE2bWY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92dl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmxlKHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTYpKSkKdmJvb2wxNl90IHZtZmxlKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mbGUodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmxlKHZmbG9hdDE2bTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtMl9iOF9tKSkpCnZib29sOF90IHZtZmxlKHZib29sOF90IG9wMCwgdmJvb2w4X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mbGUodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mbGUodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZsZV92Zl9mMTZtOF9iMikpKQp2Ym9vbDJfdCB2bWZsZSh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZsZSh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmxlKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZsZSh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmxlX3ZmX2YxNm1mNF9iNjQpKSkKdmJvb2w2NF90IHZtZmxlKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mbGVfdmZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZsZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtMV9iMTZfbSkpKQp2Ym9vbDE2X3Qgdm1mZ3QodmJvb2wxNl90IG9wMCwgdmJvb2wxNl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZndCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bTRfYjQpKSkKdmJvb2w0X3Qgdm1mZ3QodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmd0KHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm04X2IyKSkpCnZib29sMl90IHZtZmd0KHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bThfYjJfbSkpKQp2Ym9vbDJfdCB2bWZndCh2Ym9vbDJfdCBvcDAsIHZib29sMl90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92dl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZndCh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bWYyX2IzMl9tKSkpCnZib29sMzJfdCB2bWZndCh2Ym9vbDMyX3Qgb3AwLCB2Ym9vbDMyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdnZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3Z2X2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0xX2IxNikpKQp2Ym9vbDE2X3Qgdm1mZ3QodmZsb2F0MTZtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZndCh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTJfYjgpKSkKdmJvb2w4X3Qgdm1mZ3QodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm0yX2I4X20pKSkKdmJvb2w4X3Qgdm1mZ3QodmJvb2w4X3Qgb3AwLCB2Ym9vbDhfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZndCh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bTRfYjRfbSkpKQp2Ym9vbDRfdCB2bWZndCh2Ym9vbDRfdCBvcDAsIHZib29sNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmd0X3ZmX2YxNm04X2IyKSkpCnZib29sMl90IHZtZmd0KHZmbG9hdDE2bThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmd0KHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWYyX2IzMikpKQp2Ym9vbDMyX3Qgdm1mZ3QodmZsb2F0MTZtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmd0KHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ3RfdmZfZjE2bWY0X2I2NCkpKQp2Ym9vbDY0X3Qgdm1mZ3QodmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZndF92Zl9mMTZtZjRfYjY0X20pKSkKdmJvb2w2NF90IHZtZmd0KHZib29sNjRfdCBvcDAsIHZib29sNjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0xX2IxNl9tKSkpCnZib29sMTZfdCB2bWZnZSh2Ym9vbDE2X3Qgb3AwLCB2Ym9vbDE2X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm0yX2I4KSkpCnZib29sOF90IHZtZmdlKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtNF9iNCkpKQp2Ym9vbDRfdCB2bWZnZSh2ZmxvYXQxNm00X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm00X2I0X20pKSkKdmJvb2w0X3Qgdm1mZ2UodmJvb2w0X3Qgb3AwLCB2Ym9vbDRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mZ2UodmZsb2F0MTZtOF90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtOF9iMl9tKSkpCnZib29sMl90IHZtZmdlKHZib29sMl90IG9wMCwgdmJvb2wyX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3Z2X2YxNm1mMl9iMzIpKSkKdmJvb2wzMl90IHZtZmdlKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjJfYjMyX20pKSkKdmJvb2wzMl90IHZtZmdlKHZib29sMzJfdCBvcDAsIHZib29sMzJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92dl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdnZfZjE2bWY0X2I2NF9tKSkpCnZib29sNjRfdCB2bWZnZSh2Ym9vbDY0X3Qgb3AwLCB2Ym9vbDY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2KSkpCnZib29sMTZfdCB2bWZnZSh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTFfYjE2X20pKSkKdmJvb2wxNl90IHZtZmdlKHZib29sMTZfdCBvcDAsIHZib29sMTZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtMl9iOCkpKQp2Ym9vbDhfdCB2bWZnZSh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bTJfYjhfbSkpKQp2Ym9vbDhfdCB2bWZnZSh2Ym9vbDhfdCBvcDAsIHZib29sOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm00X2I0KSkpCnZib29sNF90IHZtZmdlKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtNF9iNF9tKSkpCnZib29sNF90IHZtZmdlKHZib29sNF90IG9wMCwgdmJvb2w0X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1mZ2VfdmZfZjE2bThfYjIpKSkKdmJvb2wyX3Qgdm1mZ2UodmZsb2F0MTZtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm04X2IyX20pKSkKdmJvb2wyX3Qgdm1mZ2UodmJvb2wyX3Qgb3AwLCB2Ym9vbDJfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjJfYjMyKSkpCnZib29sMzJfdCB2bWZnZSh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mMl9iMzJfbSkpKQp2Ym9vbDMyX3Qgdm1mZ2UodmJvb2wzMl90IG9wMCwgdmJvb2wzMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWZnZV92Zl9mMTZtZjRfYjY0KSkpCnZib29sNjRfdCB2bWZnZSh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZmdlX3ZmX2YxNm1mNF9iNjRfbSkpKQp2Ym9vbDY0X3Qgdm1mZ2UodmJvb2w2NF90IG9wMCwgdmJvb2w2NF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bWVyZ2UodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bWVyZ2UodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZtZXJnZV92dm1fZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtOCkpKQp2ZmxvYXQxNm04X3Qgdm1lcmdlKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bWVyZ2VfdnZtX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZtZXJnZSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdm1lcmdlX3Z2bV9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bWVyZ2UodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbWVyZ2VfdmZtX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm1lcmdlKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZtZXJnZSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZtZXJnZSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZtZXJnZSh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm1lcmdlX3ZmbV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm1lcmdlKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtZXJnZV92Zm1fZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtZXJnZSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm0xX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bTJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bTJfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWF4X3ZzX2YxNm00X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWF4KHZib29sNF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtOF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWYyX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtZjJfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtYXhfdnNfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1heCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1heF92c19mMTZtZjRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtYXgodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTFfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtMl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRtaW5fdnNfZjE2bTRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRtaW4odmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm04X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm04X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZib29sMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtZjJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mMl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG1pbl92c19mMTZtZjRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkbWluKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkbWluX3ZzX2YxNm1mNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG1pbih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtMV9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm0yX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZHN1bV92c19mMTZtNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZHN1bSh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bThfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bThfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWYyX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkc3VtX3ZzX2YxNm1mNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRzdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRzdW1fdnNfZjE2bWY0X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkc3VtKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0xX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm0yX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm00X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bTRfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWRvc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bThfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtOF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVkb3N1bV92c19mMTZtZjJfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWYyX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmcmVkb3N1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlZG9zdW1fdnNfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWRvc3VtX3ZzX2YxNm1mNF9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJlZG9zdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm0xKSkpCnZvaWQgdnN1eGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTQpKSkKdm9pZCB2c3V4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWk4X3ZfZjE2bTRfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04KSkpCnZvaWQgdnN1eGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm04X20pKSkKdm9pZCB2c3V4ZWk4KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eGVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3V4ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00KSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkxNl92X2YxNm00X20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtOCkpKQp2b2lkIHZzdXhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtOF9tKSkpCnZvaWQgdnN1eGVpMTYodmJvb2wyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2ZmxvYXQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtMV9mMTYpKSkKX0Zsb2F0MTYgdmZtdl9mKHZmbG9hdDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bTJfZjE2KSkpCl9GbG9hdDE2IHZmbXZfZih2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbXZfZl9zX2YxNm00X2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm12X2Zfc19mMTZtOF9mMTYpKSkKX0Zsb2F0MTYgdmZtdl9mKHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWYyX2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9mX3NfZjE2bWY0X2YxNikpKQpfRmxvYXQxNiB2Zm12X2YodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmbXZfcyh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbXZfcyh2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbXZfcyh2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbXZfcyh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZtdl9zKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZtdl9zX2ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZtdl9zKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZzbGlkZXVwKHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdnNsaWRldXAodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnNsaWRldXAodmZsb2F0MTZtMl90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGV1cCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZzbGlkZXVwKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdnNsaWRldXAodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2c2xpZGV1cCh2ZmxvYXQxNm04X3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZzbGlkZXVwKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGV1cF92eF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGV1cCh2ZmxvYXQxNm1mMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGV1cCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRldXBfdnhfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnNsaWRldXAodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZXVwX3Z4X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdnNsaWRldXAodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZzbGlkZWRvd24odmZsb2F0MTZtMV90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgc2l6ZV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZzbGlkZWRvd24odmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGVkb3duKHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2c2xpZGVkb3duKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2c2xpZGVkb3duKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2c2xpZGVkb3duKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2c2xpZGVkb3duKHZmbG9hdDE2bThfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHNpemVfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNsaWRlZG93bl92eF9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2c2xpZGVkb3duKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZzbGlkZWRvd24odmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2c2xpZGVkb3duKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2xpZGVkb3duX3Z4X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZzbGlkZWRvd24odmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzbGlkZWRvd25fdnhfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2c2xpZGVkb3duKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZnNsaWRlMXVwKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc2xpZGUxdXAodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxdXAodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZzbGlkZTF1cCh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNsaWRlMXVwKHZmbG9hdDE2bTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMXVwX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxdXAodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTF1cF92Zl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNsaWRlMXVwKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZnNsaWRlMXVwKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzbGlkZTF1cCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxdXBfdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMXVwKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c3V4ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bTRfbSkpKQp2b2lkIHZzdXhlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mMikpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzdXhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eGVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZzbGlkZTFkb3duKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZzbGlkZTFkb3duKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmc2xpZGUxZG93bih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmc2xpZGUxZG93bih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmc2xpZGUxZG93bih2ZmxvYXQxNm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmc2xpZGUxZG93bih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTFkb3duKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzbGlkZTFkb3duX3ZmX2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZzbGlkZTFkb3duKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc2xpZGUxZG93bl92Zl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMWRvd24odmZsb2F0MTZtZjRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNsaWRlMWRvd25fdmZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnNsaWRlMWRvd24odmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyKHZmbG9hdDE2bTFfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2cmdhdGhlcih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZyZ2F0aGVyKHZmbG9hdDE2bTJfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92dl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnJnYXRoZXIodmZsb2F0MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZyZ2F0aGVyKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcih2ZmxvYXQxNm04X3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdnJnYXRoZXIodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdnJnYXRoZXIodmZsb2F0MTZtZjJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJnYXRoZXIodmZsb2F0MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyKHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdnJnYXRoZXIodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnJnYXRoZXIodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZ2F0aGVyKHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJfdnhfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdnJnYXRoZXIodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyX3Z4X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZyZ2F0aGVyKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcih2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZyZ2F0aGVyKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcl92eF9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZyZ2F0aGVyKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyZWkxNih2ZmxvYXQxNm0xX3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZyZ2F0aGVyZWkxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtMl90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2cmdhdGhlcmVpMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2cmdhdGhlcmVpMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtOF90IG9wMCwgdnVpbnQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2cmdhdGhlcmVpMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZyZ2F0aGVyZWkxNih2ZmxvYXQxNm1mMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmdhdGhlcmVpMTZfdnZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2cmdhdGhlcmVpMTYodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZ2F0aGVyZWkxNl92dl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2cmdhdGhlcmVpMTYodmZsb2F0MTZtZjRfdCBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJnYXRoZXJlaTE2X3Z2X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdnJnYXRoZXJlaTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZjb21wcmVzcyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmNvbXByZXNzKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Y29tcHJlc3Nfdm1fZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZjb21wcmVzcyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmNvbXByZXNzX3ZtX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2Y29tcHJlc3ModmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Y29tcHJlc3ModmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zjb21wcmVzc192bV9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2Y29tcHJlc3ModmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c3V4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMikpKQp2b2lkIHZzdXhlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eGVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtMl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtNF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmdldF9mMTZtMSh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtNF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmdldF9mMTZtMih2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmdldF9mMTZtMih2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZnZXRfdl9mMTZtOF9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmdldF9mMTZtNCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdnNldCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnNldCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdnNldCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMV9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtMl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZXRfdl9mMTZtNF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnNldCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c294ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm00KSkpCnZvaWQgdnNveGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpOF92X2YxNm00X20pKSkKdm9pZCB2c294ZWk4KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOCkpKQp2b2lkIHZzb3hlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtOF9tKSkpCnZvaWQgdnNveGVpOCh2Ym9vbDJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtNF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjQpKSkKdm9pZCB2c294ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNCkpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bTgpKSkKdm9pZCB2c294ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bThfbSkpKQp2b2lkIHZzb3hlaTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmZsb2F0MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveGVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtNCkpKQp2b2lkIHZzb3hlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnNveGVpMzIodmJvb2w0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c294ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveGVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsZTE2ZmYodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxlMTZmZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZmZl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsZTE2ZmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bGUxNmZmKHZib29sMl90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCAqIG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNmZmX3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bGUxNmZmKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90ICogb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2ZmZfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsZTE2ZmYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3QgKiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuZWcodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmbmVnKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZuZWcodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmVnKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2Zm5lZyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZuZWcodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmbmVnKHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2Zm5lZyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5lZyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5lZ192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZuZWcodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmVnX3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuZWcodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuZWdfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmbmVnKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsZTE2KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmxlMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bGUxNl92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZsZTE2KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bGUxNih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsZTE2X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2bGUxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxlMTZfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZsZTE2KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm0xKSkpCnZvaWQgdnNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtMikpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtNCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZzZTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtOCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzZTE2X3ZfZjE2bThfbSkpKQp2b2lkIHZzZTE2KHZib29sMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c2UxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mNCkpKQp2b2lkIHZzZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2UxNl92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZsc2UxNih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2bHNlMTYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2bHNlMTYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2bHNlMTYodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgcHRyZGlmZl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlMTZfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZsc2UxNih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHB0cmRpZmZfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZTE2X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2bHNlMTYodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCBwdHJkaWZmX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmNsYXNzKHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZjbGFzcyh2Ym9vbDE2X3Qgb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmY2xhc3ModmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmNsYXNzKHZib29sOF90IG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZmNsYXNzKHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZjbGFzcyh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjbGFzcyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY2xhc3Nfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZmY2xhc3ModmJvb2wyX3Qgb3AwLCB2dWludDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZjbGFzcyh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY2xhc3ModmJvb2wzMl90IG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjbGFzc192X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZjbGFzcyh2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmNsYXNzX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmY2xhc3ModmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmY3Z0X2YodmludDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmZjdnRfZih2aW50MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmY3Z0X2YodmludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94X3ZfZjE2bTRfbSkpKQp2ZmxvYXQxNm00X3QgdmZjdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZmN2dF9mKHZpbnQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeF92X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmY3Z0X2YodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZmN2dF9mKHZpbnQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZmN2dF9mKHZpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3hfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmY3Z0X2YodnVpbnQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZmN2dF9mKHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmY3Z0X2YodnVpbnQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZjdnRfZih2dWludDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmY3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZmN2dF9mKHZ1aW50MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZ1aW50MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZjdnRfZih2dWludDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X2ZfeHVfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmY3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfZl94dV92X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmY3Z0X2YodnVpbnQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9mX3h1X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZmN2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZmY3Z0X3J0el94KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm0xX20pKSkKdmludDE2bTFfdCB2ZmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTIpKSkKdmludDE2bTJfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZjdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTQpKSkKdmludDE2bTRfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtNF9tKSkpCnZpbnQxNm00X3QgdmZjdnRfcnR6X3godmJvb2w0X3Qgb3AwLCB2aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bTgpKSkKdmludDE2bThfdCB2ZmN2dF9ydHpfeCh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtOF9tKSkpCnZpbnQxNm04X3QgdmZjdnRfcnR6X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeF9mX3ZfaTE2bWYyKSkpCnZpbnQxNm1mMl90IHZmY3Z0X3J0el94KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94X2Zfdl9pMTZtZjQpKSkKdmludDE2bWY0X3QgdmZjdnRfcnR6X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3hfZl92X2kxNm1mNF9tKSkpCnZpbnQxNm1mNF90IHZmY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0xX20pKSkKdnVpbnQxNm0xX3QgdmZjdnRfcnR6X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm0yKSkpCnZ1aW50MTZtMl90IHZmY3Z0X3J0el94dSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmN2dF9ydHpfeHUodmJvb2w4X3Qgb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtNCkpKQp2dWludDE2bTRfdCB2ZmN2dF9ydHpfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm00X20pKSkKdnVpbnQxNm00X3QgdmZjdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfcnR6X3h1X2Zfdl91MTZtOF9tKSkpCnZ1aW50MTZtOF90IHZmY3Z0X3J0el94dSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm1mMikpKQp2dWludDE2bWYyX3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY3Z0X3J0el94dSh2Ym9vbDMyX3Qgb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF9ydHpfeHVfZl92X3UxNm1mNCkpKQp2dWludDE2bWY0X3QgdmZjdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3J0el94dV9mX3ZfdTE2bWY0X20pKSkKdnVpbnQxNm1mNF90IHZmY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMSkpKQp2aW50MTZtMV90IHZmY3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMV9tKSkpCnZpbnQxNm0xX3QgdmZjdnRfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMikpKQp2aW50MTZtMl90IHZmY3Z0X3godmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtMl9tKSkpCnZpbnQxNm0yX3QgdmZjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00KSkpCnZpbnQxNm00X3QgdmZjdnRfeCh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3hfZl92X2kxNm00X20pKSkKdmludDE2bTRfdCB2ZmN2dF94KHZib29sNF90IG9wMCwgdmludDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bTgpKSkKdmludDE2bThfdCB2ZmN2dF94KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bThfbSkpKQp2aW50MTZtOF90IHZmY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjIpKSkKdmludDE2bWYyX3QgdmZjdnRfeCh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94X2Zfdl9pMTZtZjJfbSkpKQp2aW50MTZtZjJfdCB2ZmN2dF94KHZib29sMzJfdCBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bWY0KSkpCnZpbnQxNm1mNF90IHZmY3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZjdnRfeF9mX3ZfaTE2bWY0X20pKSkKdmludDE2bWY0X3QgdmZjdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMSkpKQp2dWludDE2bTFfdCB2ZmN2dF94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtMV9tKSkpCnZ1aW50MTZtMV90IHZmY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTIpKSkKdnVpbnQxNm0yX3QgdmZjdnRfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTJfbSkpKQp2dWludDE2bTJfdCB2ZmN2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTQpKSkKdnVpbnQxNm00X3QgdmZjdnRfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTRfbSkpKQp2dWludDE2bTRfdCB2ZmN2dF94dSh2Ym9vbDRfdCBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bTgpKSkKdnVpbnQxNm04X3QgdmZjdnRfeHUodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bThfbSkpKQp2dWludDE2bThfdCB2ZmN2dF94dSh2Ym9vbDJfdCBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2ZmN2dF94dSh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZmN2dF94dV9mX3ZfdTE2bWYyX20pKSkKdnVpbnQxNm1mMl90IHZmY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZmY3Z0X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmY3Z0X3h1X2Zfdl91MTZtZjRfbSkpKQp2dWludDE2bWY0X3QgdmZjdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbmN2dF9mKHZpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2Zm5jdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2aW50MzJtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2Zm5jdnRfZih2aW50MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeF93X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm5jdnRfZih2aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZuY3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94X3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZpbnQzMm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3hfd19mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm5jdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodnVpbnQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2dWludDMybTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfeHVfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodnVpbnQzMm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZ1aW50MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX3h1X3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZ1aW50MzJtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl94dV93X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjgpKSkKdmludDhtZjhfdCB2Zm5jdnRfcnR6X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mOF9tKSkpCnZpbnQ4bWY4X3QgdmZuY3Z0X3J0el94KHZib29sNjRfdCBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmZuY3Z0X3J0el94KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjRfbSkpKQp2aW50OG1mNF90IHZmbmN2dF9ydHpfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG1mMikpKQp2aW50OG1mMl90IHZmbmN2dF9ydHpfeCh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDE2X3Qgb3AwLCB2aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTEpKSkKdmludDhtMV90IHZmbmN2dF9ydHpfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMV9tKSkpCnZpbnQ4bTFfdCB2Zm5jdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeF9mX3dfaThtMikpKQp2aW50OG0yX3QgdmZuY3Z0X3J0el94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG0yX20pKSkKdmludDhtMl90IHZmbmN2dF9ydHpfeCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94X2Zfd19pOG00KSkpCnZpbnQ4bTRfdCB2Zm5jdnRfcnR6X3godmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3hfZl93X2k4bTRfbSkpKQp2aW50OG00X3QgdmZuY3Z0X3J0el94KHZib29sMl90IG9wMCwgdmludDhtNF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG1mOCkpKQp2dWludDhtZjhfdCB2Zm5jdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY4X20pKSkKdnVpbnQ4bWY4X3QgdmZuY3Z0X3J0el94dSh2Ym9vbDY0X3Qgb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjRfbSkpKQp2dWludDhtZjRfdCB2Zm5jdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtZjIpKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3J0el94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9ydHpfeHVfZl93X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMSkpKQp2dWludDhtMV90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0xX20pKSkKdnVpbnQ4bTFfdCB2Zm5jdnRfcnR6X3h1KHZib29sOF90IG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtMikpKQp2dWludDhtMl90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG0yX20pKSkKdnVpbnQ4bTJfdCB2Zm5jdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3J0el94dV9mX3dfdThtNCkpKQp2dWludDhtNF90IHZmbmN2dF9ydHpfeHUodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcnR6X3h1X2Zfd191OG00X20pKSkKdnVpbnQ4bTRfdCB2Zm5jdnRfcnR6X3h1KHZib29sMl90IG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4KSkpCnZpbnQ4bWY4X3QgdmZuY3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY4X20pKSkKdmludDhtZjhfdCB2Zm5jdnRfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY0KSkpCnZpbnQ4bWY0X3QgdmZuY3Z0X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWY0X20pKSkKdmludDhtZjRfdCB2Zm5jdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bWYyKSkpCnZpbnQ4bWYyX3QgdmZuY3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtZjJfbSkpKQp2aW50OG1mMl90IHZmbmN2dF94KHZib29sMTZfdCBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG0xKSkpCnZpbnQ4bTFfdCB2Zm5jdnRfeCh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94X2Zfd19pOG0xX20pKSkKdmludDhtMV90IHZmbmN2dF94KHZib29sOF90IG9wMCwgdmludDhtMV90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMikpKQp2aW50OG0yX3QgdmZuY3Z0X3godmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeF9mX3dfaThtMl9tKSkpCnZpbnQ4bTJfdCB2Zm5jdnRfeCh2Ym9vbDRfdCBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTQpKSkKdmludDhtNF90IHZmbmN2dF94KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3hfZl93X2k4bTRfbSkpKQp2aW50OG00X3QgdmZuY3Z0X3godmJvb2wyX3Qgb3AwLCB2aW50OG00X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjgpKSkKdnVpbnQ4bWY4X3QgdmZuY3Z0X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtZjhfbSkpKQp2dWludDhtZjhfdCB2Zm5jdnRfeHUodmJvb2w2NF90IG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0KSkpCnZ1aW50OG1mNF90IHZmbmN2dF94dSh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWY0X20pKSkKdnVpbnQ4bWY0X3QgdmZuY3Z0X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG1mMikpKQp2dWludDhtZjJfdCB2Zm5jdnRfeHUodmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bWYyX20pKSkKdnVpbnQ4bWYyX3QgdmZuY3Z0X3h1KHZib29sMTZfdCBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTEpKSkKdnVpbnQ4bTFfdCB2Zm5jdnRfeHUodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfeHVfZl93X3U4bTFfbSkpKQp2dWludDhtMV90IHZmbmN2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMikpKQp2dWludDhtMl90IHZmbmN2dF94dSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF94dV9mX3dfdThtMl9tKSkpCnZ1aW50OG0yX3QgdmZuY3Z0X3h1KHZib29sNF90IG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG00KSkpCnZ1aW50OG00X3QgdmZuY3Z0X3h1KHZmbG9hdDE2bThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3h1X2Zfd191OG00X20pKSkKdnVpbnQ4bTRfdCB2Zm5jdnRfeHUodmJvb2wyX3Qgb3AwLCB2dWludDhtNF90IG9wMSwgdmZsb2F0MTZtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWM3KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZyZWM3KHZib29sMTZfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmcmVjNyh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmcmVjNyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmcmVjNyh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmcmVjNyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZmcmVjNyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm04X20pKSkKdmZsb2F0MTZtOF90IHZmcmVjNyh2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZmbG9hdDE2bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZyZWM3KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcmVjN192X2YxNm1mMl9tKSkpCnZmbG9hdDE2bWYyX3QgdmZyZWM3KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJlYzdfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZnJlYzcodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyZWM3X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnJlYzcodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmcnNxcnQ3KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2ZnJzcXJ0Nyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmcnNxcnQ3KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnJzcXJ0Nyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZyc3FydDcodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmcnNxcnQ3KHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnJzcXJ0Nyh2ZmxvYXQxNm04X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bThfbSkpKQp2ZmxvYXQxNm04X3QgdmZyc3FydDcodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmZyc3FydDcodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZyc3FydDdfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmcnNxcnQ3KHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnJzcXJ0N192X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmcnNxcnQ3KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmcnNxcnQ3X3ZfZjE2bWY0X20pKSkKdmZsb2F0MTZtZjRfdCB2ZnJzcXJ0Nyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZmc3FydCh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0xX20pKSkKdmZsb2F0MTZtMV90IHZmc3FydCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZnNxcnQodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZnNxcnQodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZnNxcnQodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZnNxcnQodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZnNxcnQodmZsb2F0MTZtOF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZnNxcnQodmJvb2wyX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmc3FydCh2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZnNxcnRfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmc3FydCh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZzcXJ0X3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZzcXJ0KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmc3FydF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZzcXJ0KHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZ3Y3Z0X2YodmludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZ3Y3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2aW50OG1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2ZndjdnRfZih2aW50OG1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2ZndjdnRfZih2aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtMl9tKSkpCnZmbG9hdDE2bTJfdCB2ZndjdnRfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2aW50OG0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2Ym9vbDRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeF92X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2aW50OG00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3hfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2ZndjdnRfZih2dWludDhtZjhfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjRfbSkpKQp2ZmxvYXQxNm1mNF90IHZmd2N2dF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2ZndjdnRfZih2dWludDhtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmd2N2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodnVpbnQ4bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZ3Y3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmd2N2dF9mKHZ1aW50OG0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX3h1X3ZfZjE2bTJfbSkpKQp2ZmxvYXQxNm0yX3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2ZndjdnRfZih2dWludDhtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl94dV92X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmd2N2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmZ3Y3Z0X2YodnVpbnQ4bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfeHVfdl9mMTZtOF9tKSkpCnZmbG9hdDE2bThfdCB2ZndjdnRfZih2Ym9vbDJfdCBvcDAsIHZmbG9hdDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZmd2N2dF9ydHpfeCh2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZmd2N2dF9ydHpfeCh2Ym9vbDY0X3Qgb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTEpKSkKdmludDMybTFfdCB2ZndjdnRfcnR6X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmZ3Y3Z0X3J0el94KHZib29sMzJfdCBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDE2bTFfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeF9mX3ZfaTMybTQpKSkKdmludDMybTRfdCB2ZndjdnRfcnR6X3godmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm00X20pKSkKdmludDMybTRfdCB2ZndjdnRfcnR6X3godmJvb2w4X3Qgb3AwLCB2aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3hfZl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmZ3Y3Z0X3J0el94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94X2Zfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmZ3Y3Z0X3J0el94KHZib29sNF90IG9wMCwgdmludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDE2bWY0X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfcnR6X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZmd2N2dF9ydHpfeHUodmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZndjdnRfcnR6X3h1KHZib29sMzJfdCBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmZ3Y3Z0X3J0el94dSh2Ym9vbDE2X3Qgb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3J0el94dSh2ZmxvYXQxNm0yX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9ydHpfeHVfZl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3J0el94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfcnR6X3h1X2Zfdl91MzJtOCkpKQp2dWludDMybThfdCB2ZndjdnRfcnR6X3h1KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3J0el94dV9mX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZndjdnRfcnR6X3h1KHZib29sNF90IG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmZ3Y3Z0X3godmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZmd2N2dF94KHZib29sNjRfdCBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmZ3Y3Z0X3godmZsb2F0MTZtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2ZndjdnRfeCh2Ym9vbDMyX3Qgb3AwLCB2aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmZ3Y3Z0X3godmZsb2F0MTZtMV90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeF9mX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZmd2N2dF94KHZib29sMTZfdCBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZmd2N2dF94KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm00X20pKSkKdmludDMybTRfdCB2ZndjdnRfeCh2Ym9vbDhfdCBvcDAsIHZpbnQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94X2Zfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZmd2N2dF94KHZmbG9hdDE2bTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3hfZl92X2kzMm04X20pKSkKdmludDMybThfdCB2ZndjdnRfeCh2Ym9vbDRfdCBvcDAsIHZpbnQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2ZndjdnRfeHUodmZsb2F0MTZtZjRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmZ3Y3Z0X3h1KHZib29sNjRfdCBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmZ3Y3Z0X3h1KHZmbG9hdDE2bWYyX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2ZndjdnRfeHUodmJvb2wzMl90IG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZmd2N2dF94dSh2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2ZndjdnRfeHUodmJvb2wxNl90IG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmZ3Y3Z0X3h1KHZmbG9hdDE2bTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X3h1X2Zfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZmd2N2dF94dSh2Ym9vbDhfdCBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfeHVfZl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZmd2N2dF94dSh2ZmxvYXQxNm00X3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF94dV9mX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2ZndjdnRfeHUodmJvb2w0X3Qgb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF9leHRfZjE2bTEodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF9leHRfZjE2bTEodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsbXVsX2V4dF9mMTZtZjIodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsbXVsX2V4dF9mMTZtMih2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mMl9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmxtdWxfZXh0X2YxNm0yKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm1mNF9mMTZtMikpKQp2ZmxvYXQxNm0yX3QgdmxtdWxfZXh0X2YxNm0yKHZmbG9hdDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0xX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtMl9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxtdWxfZXh0X2YxNm00KHZmbG9hdDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm00KSkpCnZmbG9hdDE2bTRfdCB2bG11bF9leHRfZjE2bTQodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bTFfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZsbXVsX2V4dF9mMTZtOCh2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX2V4dF92X2YxNm0yX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF9leHRfdl9mMTZtNF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdmxtdWxfZXh0X2YxNm04KHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWYyX2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtZjJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfZXh0X3ZfZjE2bWY0X2YxNm04KSkpCnZmbG9hdDE2bThfdCB2bG11bF9leHRfZjE2bTgodmZsb2F0MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtMV9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bG11bF90cnVuY19mMTZtZjIodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZsbXVsX3RydW5jX2YxNm1mMih2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bWYyKSkpCnZmbG9hdDE2bWYyX3QgdmxtdWxfdHJ1bmNfZjE2bWYyKHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2bG11bF90cnVuY19mMTZtZjIodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0xX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTJfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmxtdWxfdHJ1bmNfZjE2bWY0KHZmbG9hdDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtNF9mMTZtZjQpKSkKdmZsb2F0MTZtZjRfdCB2bG11bF90cnVuY19mMTZtZjQodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm04X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bWYyX2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZsbXVsX3RydW5jX2YxNm1mNCh2ZmxvYXQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm0yX2YxNm0xKSkpCnZmbG9hdDE2bTFfdCB2bG11bF90cnVuY19mMTZtMSh2ZmxvYXQxNm0yX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bTRfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZsbXVsX3RydW5jX2YxNm0xKHZmbG9hdDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmxtdWxfdHJ1bmNfZjE2bTEodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG11bF90cnVuY192X2YxNm00X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2bG11bF90cnVuY19mMTZtMih2ZmxvYXQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsbXVsX3RydW5jX3ZfZjE2bThfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZsbXVsX3RydW5jX2YxNm0yKHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxtdWxfdHJ1bmNfdl9mMTZtOF9mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmxtdWxfdHJ1bmNfZjE2bTQodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtMV9mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdnJlaW50ZXJwcmV0X2YxNm0xKHZpbnQxNm0xX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm0yX2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2cmVpbnRlcnByZXRfZjE2bTIodmludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfaTE2bTRfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZWludGVycHJldF9mMTZtNCh2aW50MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtOF9mMTZtOCkpKQp2ZmxvYXQxNm04X3QgdnJlaW50ZXJwcmV0X2YxNm04KHZpbnQxNm04X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2kxNm1mMl9mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2cmVpbnRlcnByZXRfZjE2bWYyKHZpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9pMTZtZjRfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJlaW50ZXJwcmV0X2YxNm1mNCh2aW50MTZtZjRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTFfZjE2bTEpKSkKdmZsb2F0MTZtMV90IHZyZWludGVycHJldF9mMTZtMSh2dWludDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTJfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZyZWludGVycHJldF9mMTZtMih2dWludDE2bTJfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bTRfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZyZWludGVycHJldF9mMTZtNCh2dWludDE2bTRfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bThfZjE2bTgpKSkKdmZsb2F0MTZtOF90IHZyZWludGVycHJldF9mMTZtOCh2dWludDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfdTE2bWYyX2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZyZWludGVycHJldF9mMTZtZjIodnVpbnQxNm1mMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl91MTZtZjRfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdnJlaW50ZXJwcmV0X2YxNm1mNCh2dWludDE2bWY0X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm0xX2kxNm0xKSkpCnZpbnQxNm0xX3QgdnJlaW50ZXJwcmV0X2kxNm0xKHZmbG9hdDE2bTFfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bTJfaTE2bTIpKSkKdmludDE2bTJfdCB2cmVpbnRlcnByZXRfaTE2bTIodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtNF9pMTZtNCkpKQp2aW50MTZtNF90IHZyZWludGVycHJldF9pMTZtNCh2ZmxvYXQxNm00X3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm04X2kxNm04KSkpCnZpbnQxNm04X3QgdnJlaW50ZXJwcmV0X2kxNm04KHZmbG9hdDE2bThfdCBvcDApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnJlaW50ZXJwcmV0X3ZfZjE2bWYyX2kxNm1mMikpKQp2aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfaTE2bWYyKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF9pMTZtZjQpKSkKdmludDE2bWY0X3QgdnJlaW50ZXJwcmV0X2kxNm1mNCh2ZmxvYXQxNm1mNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMV91MTZtMSkpKQp2dWludDE2bTFfdCB2cmVpbnRlcnByZXRfdTE2bTEodmZsb2F0MTZtMV90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtMl91MTZtMikpKQp2dWludDE2bTJfdCB2cmVpbnRlcnByZXRfdTE2bTIodmZsb2F0MTZtMl90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtNF91MTZtNCkpKQp2dWludDE2bTRfdCB2cmVpbnRlcnByZXRfdTE2bTQodmZsb2F0MTZtNF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtOF91MTZtOCkpKQp2dWludDE2bThfdCB2cmVpbnRlcnByZXRfdTE2bTgodmZsb2F0MTZtOF90IG9wMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92cmVpbnRlcnByZXRfdl9mMTZtZjJfdTE2bWYyKSkpCnZ1aW50MTZtZjJfdCB2cmVpbnRlcnByZXRfdTE2bWYyKHZmbG9hdDE2bWYyX3Qgb3AwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZyZWludGVycHJldF92X2YxNm1mNF91MTZtZjQpKSkKdnVpbnQxNm1mNF90IHZyZWludGVycHJldF91MTZtZjQodmZsb2F0MTZtZjRfdCBvcDApOwoKI2VuZGlmCgojaWYgZGVmaW5lZChfX3Jpc2N2X2YpICYmIGRlZmluZWQoX19yaXNjdl96ZmgpCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndhZGRfdnYodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92dih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3Z2KHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3Z2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92dih2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndhZGRfdnYodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd2FkZF92dih2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdnYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3YWRkX3Z2KHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd2FkZF92dih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92Zih2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd2FkZF92Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd2FkZF92Zih2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndhZGRfdmYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92Zih2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF92Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdmYodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfdmYodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfdmYodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndhZGRfdmYodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl92dih2ZmxvYXQxNm1mNF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3Z2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfdnYodmZsb2F0MTZtZjJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfdnYodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3Z2KHZmbG9hdDE2bTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd3N1Yl92dih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3Z2KHZmbG9hdDE2bTJfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92dih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndzdWJfdnYodmZsb2F0MTZtNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdnZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3Z2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bWY0X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3ZmKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl92Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl92Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3ZmKHZmbG9hdDE2bTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3c3ViX3ZmKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92Zih2ZmxvYXQxNm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl92Zih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl92Zih2ZmxvYXQxNm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl92Zih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3d2KHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndhZGRfd3YodmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd2FkZF93dih2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3d2KHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3YWRkX3d2KHZmbG9hdDMybTJfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93dih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93dl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3YWRkX3d2KHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd2FkZF93dih2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3d2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd3YodmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3YWRkX3d2KHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3dmKHZmbG9hdDMybWYyX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3YWRkX3dmKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3dmKHZmbG9hdDMybTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3YWRkX3dmKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndhZGRfd2ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93Zih2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd2FkZF93Zih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfd2YodmZsb2F0MzJtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndhZGRfd2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3YWRkX3dmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd2YodmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2FkZF93Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndhZGRfd2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93dih2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3c3ViX3d2KHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndzdWJfd3YodmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93dih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd3N1Yl93dih2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd3YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd3N1Yl93dih2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndzdWJfd3YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3d2KHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3d2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd3N1Yl93dih2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93Zih2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd3N1Yl93Zih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93Zih2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3N1Yl93Zih2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3c3ViX3dmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd2YodmZsb2F0MzJtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndzdWJfd2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3dmKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3c3ViX3dmKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3N1Yl93Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3dmKHZmbG9hdDMybThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndzdWJfd2ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3c3ViX3dmKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgX0Zsb2F0MTYgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndtdWwodmZsb2F0MTZtZjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXVsKHZmbG9hdDE2bWYyX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgc2l6ZV90IG9wMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXVsKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd211bCh2ZmxvYXQxNm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndtdWwodmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd211bCh2ZmxvYXQxNm0yX3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bXVsKHZmbG9hdDE2bTRfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd211bCh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2ZmxvYXQxNm1mNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd211bCh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd211bCh2ZmxvYXQxNm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndtdWwodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIF9GbG9hdDE2IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtdWxfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd211bCh2ZmxvYXQxNm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHNpemVfdCBvcDIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd211bCh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmZsb2F0MTZtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtdWwodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXVsX3ZmX2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndtdWwodmZsb2F0MTZtNF90IG9wMCwgX0Zsb2F0MTYgb3AxLCBzaXplX3Qgb3AyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd211bF92Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndtdWwodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBfRmxvYXQxNiBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndtYWNjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndtYWNjKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd21hY2ModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdnZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndtYWNjKHZmbG9hdDMybThfdCBvcDAsIHZmbG9hdDE2bTRfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndtYWNjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndtYWNjX3ZmX2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmZsb2F0MzJtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd21hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bWFjYyh2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd21hY2ModmZsb2F0MzJtMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3bWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bWFjY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndtYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd21hY2ModmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21hY2NfdmZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3bWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndubWFjYyh2ZmxvYXQzMm1mMl90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bm1hY2ModmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1hY2ModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd25tYWNjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bm1hY2ModmZsb2F0MzJtMl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndubWFjYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd25tYWNjKHZib29sOF90IG9wMCwgdmZsb2F0MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bm1hY2ModmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192dl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3bm1hY2ModmZsb2F0MzJtZjJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndubWFjYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1hY2ModmZsb2F0MzJtMV90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndubWFjYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndubWFjYyh2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bm1hY2ModmJvb2wxNl90IG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tYWNjX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2ZndubWFjYyh2ZmxvYXQzMm00X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3bm1hY2ModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1hY2NfdmZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd25tYWNjKHZmbG9hdDMybThfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubWFjY192Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2ZndubWFjYyh2Ym9vbDRfdCBvcDAsIHZmbG9hdDMybThfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd21zYWModmZsb2F0MzJtZjJfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd21zYWModmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bXNhYyh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192dl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmZsb2F0MzJtNF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdnZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZmd21zYWModmZsb2F0MzJtOF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd21zYWModmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd21zYWNfdmZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmZ3bXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2Zndtc2FjKHZmbG9hdDMybTFfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2Zndtc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmZ3bXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2Zndtc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00KSkpCnZmbG9hdDMybTRfdCB2Zndtc2FjKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zndtc2FjX3ZmX2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZmd21zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bXNhY192Zl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2Zndtc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZmd25tc2FjKHZmbG9hdDMybWYyX3Qgb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndubXNhYyh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndubXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3bm1zYWModmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndubXNhYyh2ZmxvYXQzMm0yX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZmd25tc2FjKHZib29sMTZfdCBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd25tc2FjKHZmbG9hdDMybTRfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdnZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3bm1zYWModmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm04KSkpCnZmbG9hdDMybThfdCB2ZndubXNhYyh2ZmxvYXQzMm04X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3Z2X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd25tc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndubXNhYyh2ZmxvYXQzMm1mMl90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZmd25tc2FjKHZib29sNjRfdCBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndubXNhYyh2ZmxvYXQzMm0xX3Qgb3AwLCBfRmxvYXQxNiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd25tc2FjKHZib29sMzJfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZmd25tc2FjKHZmbG9hdDMybTJfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndubXNhYyh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCBfRmxvYXQxNiBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3bm1zYWNfdmZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZmd25tc2FjKHZmbG9hdDMybTRfdCBvcDAsIF9GbG9hdDE2IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2ZndubXNhYyh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTRfdCBvcDEsIF9GbG9hdDE2IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndubXNhY192Zl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3bm1zYWModmZsb2F0MzJtOF90IG9wMCwgX0Zsb2F0MTYgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd25tc2FjX3ZmX2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZmd25tc2FjKHZib29sNF90IG9wMCwgdmZsb2F0MzJtOF90IG9wMSwgX0Zsb2F0MTYgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0xX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtMl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDhfdCBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm00X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bTRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkc3VtKHZib29sNF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bThfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm04X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtOF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZHN1bV92c19mMTZtZjJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWYyX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZHN1bSh2Ym9vbDMyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRzdW1fdnNfZjE2bWY0X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkc3VtX3ZzX2YxNm1mNF9mMzJtMV9tKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRzdW0odmJvb2w2NF90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtMV9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2ZmxvYXQzMm0xX3Qgb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTFfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTJfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm0yX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bTRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm00X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bThfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtOF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndyZWRvc3VtX3ZzX2YxNm04X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2wyX3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm04X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bWYyX2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndyZWRvc3VtKHZmbG9hdDMybTFfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd3JlZG9zdW1fdnNfZjE2bWYyX2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZmd3JlZG9zdW0odmZsb2F0MzJtMV90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3cmVkb3N1bV92c19mMTZtZjRfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3cmVkb3N1bSh2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bWY0KSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmZsb2F0MzJtZjJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X2YodmJvb2w2NF90IG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtZjIpKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfZih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtZjJfbSkpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9mKHZib29sMzJfdCBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9mX2Zfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmZsb2F0MzJtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTFfbSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTIpKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZmbG9hdDMybTRfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9mKHZib29sOF90IG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfZl9mX3dfZjE2bTQpKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X2ZfZl93X2YxNm00X20pKSkKdmZsb2F0MTZtNF90IHZmbmN2dF9mKHZib29sNF90IG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNCkpKQp2ZmxvYXQxNm1mNF90IHZmbmN2dF9yb2RfZih2ZmxvYXQzMm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mNF9tKSkpCnZmbG9hdDE2bWY0X3QgdmZuY3Z0X3JvZF9mKHZib29sNjRfdCBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm1mMikpKQp2ZmxvYXQxNm1mMl90IHZmbmN2dF9yb2RfZih2ZmxvYXQzMm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZmbmN2dF9yb2RfZl9mX3dfZjE2bWYyX20pKSkKdmZsb2F0MTZtZjJfdCB2Zm5jdnRfcm9kX2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMSkpKQp2ZmxvYXQxNm0xX3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDMybTJfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtMV9tKSkpCnZmbG9hdDE2bTFfdCB2Zm5jdnRfcm9kX2YodmJvb2wxNl90IG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yKSkpCnZmbG9hdDE2bTJfdCB2Zm5jdnRfcm9kX2YodmZsb2F0MzJtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92Zm5jdnRfcm9kX2ZfZl93X2YxNm0yX20pKSkKdmZsb2F0MTZtMl90IHZmbmN2dF9yb2RfZih2Ym9vbDhfdCBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNCkpKQp2ZmxvYXQxNm00X3QgdmZuY3Z0X3JvZF9mKHZmbG9hdDMybThfdCBvcDAsIHNpemVfdCBvcDEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZuY3Z0X3JvZF9mX2Zfd19mMTZtNF9tKSkpCnZmbG9hdDE2bTRfdCB2Zm5jdnRfcm9kX2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2ZmxvYXQxNm1mNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2ZndjdnRfZih2Ym9vbDY0X3Qgb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2ZndjdnRfZih2ZmxvYXQxNm1mMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmZ3Y3Z0X2YodmJvb2wzMl90IG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmZ3Y3Z0X2ZfZl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2ZmxvYXQxNm0xX3Qgb3AwLCBzaXplX3Qgb3AxKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2ZndjdnRfZih2Ym9vbDE2X3Qgb3AwLCB2ZmxvYXQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmZsb2F0MTZtMl90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmZ3Y3Z0X2YodmJvb2w4X3Qgb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zmd2N2dF9mX2Zfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmZsb2F0MTZtNF90IG9wMCwgc2l6ZV90IG9wMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92ZndjdnRfZl9mX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmZ3Y3Z0X2YodmJvb2w0X3Qgb3AwLCB2ZmxvYXQzMm04X3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96dmFtbykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vc3dhcGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb3N3YXBlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb3N3YXBlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9zd2FwZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vc3dhcGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3N3YXBlaTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb3N3YXBlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3N3YXBlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3N3YXBlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9zd2FwZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3N3YXBlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3N3YXBlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb3N3YXBlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb3N3YXBlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3N3YXBlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vc3dhcGVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vc3dhcGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9zd2FwZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3N3YXBlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vc3dhcGVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vc3dhcGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9zd2FwZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vc3dhcGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vc3dhcGVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vc3dhcGVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9zd2FwZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9hZGRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYWRkZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FkZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FkZGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYWRkZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYWRkZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYWRkZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYWRkZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYWRkZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYWRkZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FkZGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FkZGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb2FkZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYWRkZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9hZGRlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb2FkZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vYWRkZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb2FkZGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9hZGRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vYWRkZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYWRkZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYWRkZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hZGRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FkZGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FkZGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYWRkZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYWRkZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hZGRlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYWRkZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9hZGRlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FkZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYWRkZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vYWRkZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hZGRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hZGRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FkZGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9hZGRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FkZGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYWRkZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYWRkZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hZGRlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYWRkZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYWRkZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9hZGRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYWRkZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb2FkZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9hZGRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkxNl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYWRkZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9hZGRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FkZGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYWRkZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYWRkZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hZGRlaTMyKHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYWRkZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpMzJfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9hZGRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9hZGRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FkZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTMyX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYWRkZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb2FkZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYWRkZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYWRkZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9hZGRlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9hZGRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FkZGVpNjQodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb2FkZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vYWRkZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vYWRkZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hZGRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hZGRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYWRkZWk2NF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FkZGVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FkZGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hZGRlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYWRkZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYWRkZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FkZGVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hZGRlaTY0KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1veG9yZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3hvcmVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1veG9yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb3hvcmVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb3hvcmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb3hvcmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW94b3JlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW94b3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTE2KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb3hvcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1veG9yZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW94b3JlaTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW94b3JlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW94b3JlaTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1veG9yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1veG9yZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1veG9yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb3hvcmVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb3hvcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1veG9yZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb3hvcmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1veG9yZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW94b3JlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW94b3JlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb3hvcmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb3hvcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1veG9yZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb3hvcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1veG9yZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW94b3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb3hvcmVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb3hvcmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1veG9yZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1veG9yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW94b3JlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1veG9yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW94b3JlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW94b3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1veG9yZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1veG9yZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk4X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1veG9yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW94b3JlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW94b3JlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1veG9yZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkxNl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1veG9yZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW94b3JlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW94b3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb3hvcmVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1veG9yZWkzMih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb3hvcmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1veG9yZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1veG9yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpMzJfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW94b3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWkzMl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW94b3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb3hvcmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb3hvcmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1veG9yZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1veG9yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW94b3JlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW94b3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb3hvcmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb3hvcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1veG9yZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1veG9yZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3hvcmVpNjRfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW94b3JlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW94b3JlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1veG9yZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb3hvcmVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb3hvcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW94b3JlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1veG9yZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9hbmRlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9hbmRlaTgodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hbmRlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9hbmRlaTE2KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vYW5kZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vYW5kZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vYW5kZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9hbmRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb2FuZGVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vYW5kZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vYW5kZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vYW5kZWkzMih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb2FuZGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FuZGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb2FuZGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9hbmRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9hbmRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtOCkpKQp2dWludDMybThfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9hbmRlaTMyKHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb2FuZGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vYW5kZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vYW5kZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9hbmRlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9hbmRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb2FuZGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9hbmRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb2FuZGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vYW5kZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9hbmRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9hbmRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb2FuZGVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb2FuZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vYW5kZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb2FuZGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vYW5kZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYW5kZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb2FuZGVpOCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaThfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb2FuZGVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk4X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vYW5kZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vYW5kZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYW5kZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkxNl92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vYW5kZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYW5kZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FuZGVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYW5kZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTE2KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYW5kZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vYW5kZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb2FuZGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vYW5kZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vYW5kZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9hbmRlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb2FuZGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9hbmRlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWkzMl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb2FuZGVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb2FuZGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTMyX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vYW5kZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTMyKHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vYW5kZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9hbmRlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9hbmRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb2FuZGVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb2FuZGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vYW5kZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vYW5kZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9hbmRlaTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9hbmRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb2FuZGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb2FuZGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9hbmRlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vYW5kZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vYW5kZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb2FuZGVpNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9hbmRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9hbmRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vYW5kZWk2NF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb2FuZGVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vb3JlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vb3JlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vb3JlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vb3JlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9vcmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWk4KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb29yZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb29yZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb29yZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9vcmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9vcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9vcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9vcmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9vcmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb29yZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb29yZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vb3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb29yZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3UzMm04X20pKSkKdnVpbnQzMm04X3QgdmFtb29yZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb29yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vb3JlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9vcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9vcmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9vcmVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb29yZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb29yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9vcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtNF9tKSkpCnZ1aW50MzJtNF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9vcmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9vcmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb29yZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9vcmVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb29yZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9vcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9vcmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vb3JlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vb3JlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9vcmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9vcmVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vb3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vb3JlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybTQpKSkKdnVpbnQzMm00X3QgdmFtb29yZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb29yZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3UzMm1mMl9tKSkpCnZ1aW50MzJtZjJfdCB2YW1vb3JlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb29yZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vb3JlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vb3JlaTgodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9vcmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaThfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9vcmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb29yZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb29yZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9vcmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9vcmVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb29yZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9vcmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9vcmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb29yZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMTZfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vb3JlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vb3JlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb29yZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkxNl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb29yZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vb3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vb3JlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb29yZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9vcmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vb3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG0xX20pKSkKdnVpbnQ2NG0xX3QgdmFtb29yZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vb3JlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTMyX3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb29yZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpMzJfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb29yZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9vcmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9vcmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vb3JlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vb3JlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb29yZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb29yZWk2NCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9vcmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vb3JlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vb3JlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vb3JlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb29yZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb29yZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9vcmVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9vcmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9taW5laTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9taW5laTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWluZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9taW5laTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vbWluZWk4KHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb21pbmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21pbmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21pbmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb21pbmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vbWluZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb21pbmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWluZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9taW5laTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9taW5laTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21pbmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9taW5laTMyKHZib29sNF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWluZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vbWluZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9taW5laTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb21pbmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21pbmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vbWluZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWluZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9taW5laTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWluZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9taW5laTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9taW5laTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9taW5laTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk4X3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vbWluZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWluZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpOF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laThfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpOCh2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkxNl92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb21pbmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21pbmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9taW5laTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9taW5laTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWluZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTE2X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9taW5laTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMTZfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWluZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vbWluZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21pbmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWkzMl92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWluZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWluZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTMyX3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9taW5laTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9taW5laTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpMzJfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21pbmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWluZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9taW5laTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9taW5laTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbmVpNjRfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb21pbmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00KSkpCnZpbnQ2NG00X3QgdmFtb21pbmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWluZWk2NF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vbWluZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bTgpKSkKdmludDY0bThfdCB2YW1vbWluZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW5laTY0X3ZfaTY0bThfbSkpKQp2aW50NjRtOF90IHZhbW9taW5laTY0KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21heGVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybTgpKSkKdmludDMybThfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTMybThfbSkpKQp2aW50MzJtOF90IHZhbW9tYXhlaTgodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vbWF4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pMzJtZjJfbSkpKQp2aW50MzJtZjJfdCB2YW1vbWF4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vbWF4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vbWF4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybTRfbSkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTE2KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04KSkpCnZpbnQzMm04X3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vbWF4ZWkxNih2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pMzJtZjIpKSkKdmludDMybWYyX3QgdmFtb21heGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21heGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTEpKSkKdmludDMybTFfdCB2YW1vbWF4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybTFfbSkpKQp2aW50MzJtMV90IHZhbW9tYXhlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMikpKQp2aW50MzJtMl90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtMl9tKSkpCnZpbnQzMm0yX3QgdmFtb21heGVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm00KSkpCnZpbnQzMm00X3QgdmFtb21heGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm00X20pKSkKdmludDMybTRfdCB2YW1vbWF4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pMzJtOF9tKSkpCnZpbnQzMm04X3QgdmFtb21heGVpMzIodmJvb2w0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2kzMm0xKSkpCnZpbnQzMm0xX3QgdmFtb21heGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2kzMm0xX20pKSkKdmludDMybTFfdCB2YW1vbWF4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTIpKSkKdmludDMybTJfdCB2YW1vbWF4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybTJfbSkpKQp2aW50MzJtMl90IHZhbW9tYXhlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNCkpKQp2aW50MzJtNF90IHZhbW9tYXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb21heGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyKSkpCnZpbnQzMm1mMl90IHZhbW9tYXhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTMybWYyX20pKSkKdmludDMybWYyX3QgdmFtb21heGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG0xKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaThfdl9pNjRtMikpKQp2aW50NjRtMl90IHZhbW9tYXhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9tYXhlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk4X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG00X20pKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpOF92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWk4KHZib29sOF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTE2X3ZfaTY0bTEpKSkKdmludDY0bTFfdCB2YW1vbWF4ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0xX20pKSkKdmludDY0bTFfdCB2YW1vbWF4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtMl9tKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMTZfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21heGVpMTYodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkxNl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTFfbSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTIpKSkKdmludDY0bTJfdCB2YW1vbWF4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTMyX3ZfaTY0bTJfbSkpKQp2aW50NjRtMl90IHZhbW9tYXhlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNCkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpMzJfdl9pNjRtNF9tKSkpCnZpbnQ2NG00X3QgdmFtb21heGVpMzIodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2k2NG04KSkpCnZpbnQ2NG04X3QgdmFtb21heGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWkzMl92X2k2NG04X20pKSkKdmludDY0bThfdCB2YW1vbWF4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMSkpKQp2aW50NjRtMV90IHZhbW9tYXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtMV9tKSkpCnZpbnQ2NG0xX3QgdmFtb21heGVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yKSkpCnZpbnQ2NG0yX3QgdmFtb21heGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4ZWk2NF92X2k2NG0yX20pKSkKdmludDY0bTJfdCB2YW1vbWF4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTY0bTQpKSkKdmludDY0bTRfdCB2YW1vbWF4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXhlaTY0X3ZfaTY0bTRfbSkpKQp2aW50NjRtNF90IHZhbW9tYXhlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOCkpKQp2aW50NjRtOF90IHZhbW9tYXhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heGVpNjRfdl9pNjRtOF9tKSkpCnZpbnQ2NG04X3QgdmFtb21heGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb21pbnVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWludWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtMV9tKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb21pbnVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9taW51ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9taW51ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWludWVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm0yKSkpCnZ1aW50MzJtMl90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWludWVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk2NF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9taW51ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vbWludWVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWludWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb21pbnVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWk4X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWludWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaThfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vbWludWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpOF92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTgodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkxNl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTE2X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMTZfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtMSkpKQp2dWludDY0bTFfdCB2YW1vbWludWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpMzJfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vbWludWVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWludWVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9taW51ZWkzMl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTMyX3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWludWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMV9tKSkpCnZ1aW50NjRtMV90IHZhbW9taW51ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTIpKSkKdnVpbnQ2NG0yX3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9taW51ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTQpKSkKdnVpbnQ2NG00X3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtNF9tKSkpCnZ1aW50NjRtNF90IHZhbW9taW51ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21pbnVlaTY0X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21pbnVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWludWVpNjRfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9taW51ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm0xKSkpCnZ1aW50MzJtMV90IHZhbW9tYXh1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTIpKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybTJfbSkpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3UzMm04KSkpCnZ1aW50MzJtOF90IHZhbW9tYXh1ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybThfbSkpKQp2dWludDMybThfdCB2YW1vbWF4dWVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybWYyKSkpCnZ1aW50MzJtZjJfdCB2YW1vbWF4dWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMSkpKQp2dWludDMybTFfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0xX20pKSkKdnVpbnQzMm0xX3QgdmFtb21heHVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm0yX20pKSkKdnVpbnQzMm0yX3QgdmFtb21heHVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpNjRfdl91MzJtNCkpKQp2dWludDMybTRfdCB2YW1vbWF4dWVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm00X20pKSkKdnVpbnQzMm00X3QgdmFtb21heHVlaTY0KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3UzMm1mMikpKQp2dWludDMybWYyX3QgdmFtb21heHVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTMybWYyX20pKSkKdnVpbnQzMm1mMl90IHZhbW9tYXh1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpOF92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb21heHVlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk4X3ZfdTY0bTgpKSkKdnVpbnQ2NG04X3QgdmFtb21heHVlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaThfdl91NjRtOF9tKSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWk4KHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMTZfdl91NjRtMl9tKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkxNl92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTE2X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTEpKSkKdnVpbnQ2NG0xX3QgdmFtb21heHVlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTMyX3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtMikpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG0yX20pKSkKdnVpbnQ2NG0yX3QgdmFtb21heHVlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtNCkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG00X20pKSkKdnVpbnQ2NG00X3QgdmFtb21heHVlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vbWF4dWVpMzJfdl91NjRtOCkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWkzMl92X3U2NG04X20pKSkKdnVpbnQ2NG04X3QgdmFtb21heHVlaTMyKHZib29sOF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0xKSkpCnZ1aW50NjRtMV90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTFfbSkpKQp2dWludDY0bTFfdCB2YW1vbWF4dWVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG0yKSkpCnZ1aW50NjRtMl90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTJfbSkpKQp2dWludDY0bTJfdCB2YW1vbWF4dWVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG00KSkpCnZ1aW50NjRtNF90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bTRfbSkpKQp2dWludDY0bTRfdCB2YW1vbWF4dWVpNjQodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9tYXh1ZWk2NF92X3U2NG04KSkpCnZ1aW50NjRtOF90IHZhbW9tYXh1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDY0bThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb21heHVlaTY0X3ZfdTY0bThfbSkpKQp2dWludDY0bThfdCB2YW1vbWF4dWVpNjQodmJvb2w4X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMSkpKQp2aW50MzJtMV90IHZhbW9zd2FwZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtMV9tKSkpCnZpbnQzMm0xX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yKSkpCnZpbnQzMm0yX3QgdmFtb3N3YXBlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm0yX20pKSkKdmludDMybTJfdCB2YW1vc3dhcGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfaTMybTQpKSkKdmludDMybTRfdCB2YW1vc3dhcGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtNF9tKSkpCnZpbnQzMm00X3QgdmFtb3N3YXBlaTgodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9pMzJtOCkpKQp2aW50MzJtOF90IHZhbW9zd2FwZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50MzJtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm04X20pKSkKdmludDMybThfdCB2YW1vc3dhcGVpOCh2Ym9vbDRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm1mMikpKQp2aW50MzJtZjJfdCB2YW1vc3dhcGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2kzMm1mMl9tKSkpCnZpbnQzMm1mMl90IHZhbW9zd2FwZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTEpKSkKdnVpbnQzMm0xX3QgdmFtb3N3YXBlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTFfbSkpKQp2dWludDMybTFfdCB2YW1vc3dhcGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMikpKQp2dWludDMybTJfdCB2YW1vc3dhcGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtMl9tKSkpCnZ1aW50MzJtMl90IHZhbW9zd2FwZWk4KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X3UzMm00KSkpCnZ1aW50MzJtNF90IHZhbW9zd2FwZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTRfbSkpKQp2dWludDMybTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfdTMybTgpKSkKdnVpbnQzMm04X3QgdmFtb3N3YXBlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtOF9tKSkpCnZ1aW50MzJtOF90IHZhbW9zd2FwZWk4KHZib29sNF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtZjIpKSkKdnVpbnQzMm1mMl90IHZhbW9zd2FwZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl91MzJtZjJfbSkpKQp2dWludDMybWYyX3QgdmFtb3N3YXBlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZikgJiYgZGVmaW5lZChfX3Jpc2N2X3p2YW1vKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0xKSkpCnZmbG9hdDMybTFfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm04KSkpCnZmbG9hdDMybThfdCB2YW1vc3dhcGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mMzJtOF9tKSkpCnZmbG9hdDMybThfdCB2YW1vc3dhcGVpOCh2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjMybWYyX20pKSkKdmZsb2F0MzJtZjJfdCB2YW1vc3dhcGVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtMikpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTJfbSkpKQp2ZmxvYXQzMm0yX3QgdmFtb3N3YXBlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTQpKSkKdmZsb2F0MzJtNF90IHZhbW9zd2FwZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm00X20pKSkKdmZsb2F0MzJtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybTgpKSkKdmZsb2F0MzJtOF90IHZhbW9zd2FwZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2ZmxvYXQzMm04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2YzMm04X20pKSkKdmZsb2F0MzJtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZmbG9hdDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjMybWYyKSkpCnZmbG9hdDMybWYyX3QgdmFtb3N3YXBlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTEpKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0xX20pKSkKdmZsb2F0MzJtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm0yKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtMl9tKSkpCnZmbG9hdDMybTJfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtNCkpKQp2ZmxvYXQzMm00X3QgdmFtb3N3YXBlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybTRfbSkpKQp2ZmxvYXQzMm00X3QgdmFtb3N3YXBlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtOCkpKQp2ZmxvYXQzMm04X3QgdmFtb3N3YXBlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZmbG9hdDMybThfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjMybThfbSkpKQp2ZmxvYXQzMm04X3QgdmFtb3N3YXBlaTMyKHZib29sNF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mMzJtZjIpKSkKdmZsb2F0MzJtZjJfdCB2YW1vc3dhcGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2YzMm1mMl9tKSkpCnZmbG9hdDMybWYyX3QgdmFtb3N3YXBlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtMSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTFfbSkpKQp2ZmxvYXQzMm0xX3QgdmFtb3N3YXBlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTY0X3ZfZjMybTIpKSkKdmZsb2F0MzJtMl90IHZhbW9zd2FwZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm0yX20pKSkKdmZsb2F0MzJtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm00KSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtNF9tKSkpCnZmbG9hdDMybTRfdCB2YW1vc3dhcGVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2YzMm1mMikpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mMzJtZjJfbSkpKQp2ZmxvYXQzMm1mMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgojZW5kaWYKCiNpZiBkZWZpbmVkKF9fcmlzY3ZfZCkgJiYgZGVmaW5lZChfX3Jpc2N2X3p2YW1vKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaThfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2YW1vc3dhcGVpOCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpOF92X2Y2NG04KSkpCnZmbG9hdDY0bThfdCB2YW1vc3dhcGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk4X3ZfZjY0bThfbSkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTgodmJvb2w4X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTE2X3ZfZjY0bTJfbSkpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWkxNih2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMTZfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkxNl92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWkxNih2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xKSkpCnZmbG9hdDY0bTFfdCB2YW1vc3dhcGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWkzMl92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTIpKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtMl9tKSkpCnZmbG9hdDY0bTJfdCB2YW1vc3dhcGVpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTQpKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtNF9tKSkpCnZmbG9hdDY0bTRfdCB2YW1vc3dhcGVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmFtb3N3YXBlaTMyX3ZfZjY0bTgpKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0NjRtOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpMzJfdl9mNjRtOF9tKSkpCnZmbG9hdDY0bThfdCB2YW1vc3dhcGVpMzIodmJvb2w4X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMSkpKQp2ZmxvYXQ2NG0xX3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG0xX20pKSkKdmZsb2F0NjRtMV90IHZhbW9zd2FwZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtMikpKQp2ZmxvYXQ2NG0yX3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG0yX20pKSkKdmZsb2F0NjRtMl90IHZhbW9zd2FwZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtNCkpKQp2ZmxvYXQ2NG00X3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG00X20pKSkKdmZsb2F0NjRtNF90IHZhbW9zd2FwZWk2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92YW1vc3dhcGVpNjRfdl9mNjRtOCkpKQp2ZmxvYXQ2NG04X3QgdmFtb3N3YXBlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQ2NG04X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZhbW9zd2FwZWk2NF92X2Y2NG04X20pKSkKdmZsb2F0NjRtOF90IHZhbW9zd2FwZWk2NCh2Ym9vbDhfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91NjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHZpbnQ2NG0yX3Qgb3A3LCB2aW50NjRtMl90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IGludDY0X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgdWludDY0X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgdmludDY0bTFfdCBvcDE1LCB2aW50NjRtMV90IG9wMTYsIGNvbnN0IGludDY0X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91NjRtNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91NjRtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHZpbnQ2NG0yX3Qgb3A3LCB2aW50NjRtMl90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IGludDY0X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgdWludDY0X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgdmludDY0bTFfdCBvcDE1LCB2aW50NjRtMV90IG9wMTYsIGNvbnN0IGludDY0X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTY0bTQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3U2NG00KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91NjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91NjRtMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91NjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgdWludDY0X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgY29uc3QgdWludDY0X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IGludDY0X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCBjb25zdCB1aW50NjRfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMSkpKQp2b2lkIHZzc2VnM2U4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtMikpKQp2b2lkIHZzc2VnM2U4KGludDhfdCAqIG9wMCwgdmludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X2k4bTJfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzNlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtMSkpKQp2b2lkIHZzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzNlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG0yKSkpCnZvaWQgdnNzZWczZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bTJfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWYyKSkpCnZvaWQgdnNzZWczZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlZzNlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzNlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc2VnM2U4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mOCkpKQp2b2lkIHZzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWczZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTEpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0xX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bTIpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bTJfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG0yX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWYyKSkpCnZvaWQgdnNzZWc0ZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X2k4bWYyX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzRlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc2VnNGU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnNGU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2VnNGU4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yKSkpCnZvaWQgdnNzZWc0ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG0yX20pKSkKdm9pZCB2c3NlZzRlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzRlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWc0ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnNWU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzVlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWYyX20pKSkKdm9pZCB2c3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X2k4bWY0KSkpCnZvaWQgdnNzZWc1ZTgoaW50OF90ICogb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWc1ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnNWU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtMSkpKQp2b2lkIHZzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bTFfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzVlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc1ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc1ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZThfdl91OG1mOCkpKQp2b2lkIHZzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc2VnNWU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnNmU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnNmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjIpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzZlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtMSkpKQp2b2lkIHZzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzZlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMikpKQp2b2lkIHZzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc2ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc2ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlOF92X3U4bWY0X20pKSkKdm9pZCB2c3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzZlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc2VnNmU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG0xKSkpCnZvaWQgdnNzZWc3ZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMikpKQp2b2lkIHZzc2VnN2U4KGludDhfdCAqIG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0KSkpCnZvaWQgdnNzZWc3ZTgoaW50OF90ICogb3AwLCB2aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NlZzdlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnN2U4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xKSkpCnZvaWQgdnNzZWc3ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzdlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjIpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjQpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzdlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzZWc3ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtMSkpKQp2b2lkIHZzc2VnOGU4KGludDhfdCAqIG9wMCwgdmludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWYyKSkpCnZvaWQgdnNzZWc4ZTgoaW50OF90ICogb3AwLCB2aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzZWc4ZTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzhlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl9pOG1mOCkpKQp2b2lkIHZzc2VnOGU4KGludDhfdCAqIG9wMCwgdmludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzhlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mMikpKQp2b2lkIHZzc2VnOGU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc2VnOGU4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY0KSkpCnZvaWQgdnNzZWc4ZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzZWc4ZTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzhlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlZzhlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm00KSkpCnZvaWQgdnNzZWcyZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm00X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnMmUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm00KSkpCnZvaWQgdnNzZWcyZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfaTE2bTIpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnM2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtMikpKQp2b2lkIHZzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzZWczZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzZWczZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2VnNGUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0yKSkpCnZvaWQgdnNzZWc0ZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMSkpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtMikpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzRlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzRlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnNWUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnNWUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzVlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNzZWc2ZTE2KGludDE2X3QgKiBvcDAsIHZpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm0xKSkpCnZvaWQgdnNzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnNmUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzZWc3ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mMikpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnN2UxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm0xKSkpCnZvaWQgdnNzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc2VnN2UxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NlZzdlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgdmludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X2kxNm1mNCkpKQp2b2lkIHZzc2VnOGUxNihpbnQxNl90ICogb3AwLCB2aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl91MTZtZjIpKSkKdm9pZCB2c3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUxNl92X3UxNm1mNCkpKQp2b2lkIHZzc2VnOGUxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2kzMm0yKSkpCnZvaWQgdnNzZWcyZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtNCkpKQp2b2lkIHZzc2VnMmUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtNF90IG9wMSwgdmludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X3UzMm0yKSkpCnZvaWQgdnNzZWcyZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtNCkpKQp2b2lkIHZzc2VnMmUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybTIpKSkKdm9pZCB2c3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzZWczZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnM2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm0yKSkpCnZvaWQgdnNzZWczZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm0yX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWczZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWczZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xKSkpCnZvaWQgdnNzZWc0ZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTIpKSkKdm9pZCB2c3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc0ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtMikpKQp2b2lkIHZzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X3UzMm0yX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzRlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzVlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2kzMm1mMikpKQp2b2lkIHZzc2VnNWUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc2VnNWUzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnNWUzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc2VnNWUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWc1ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWc1ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm0xKSkpCnZvaWQgdnNzZWc2ZTMyKGludDMyX3QgKiBvcDAsIHZpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc2VnNmUzMihpbnQzMl90ICogb3AwLCB2aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc2ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzZlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzZWc3ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtMSkpKQp2b2lkIHZzc2VnN2UzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NlZzdlMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgdmludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm0xKSkpCnZvaWQgdnNzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnMmU2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NlZzJlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2k2NG00KSkpCnZvaWQgdnNzZWcyZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnMmU2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NlZzJlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG0yX20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X3U2NG00KSkpCnZvaWQgdnNzZWcyZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnM2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9pNjRtMikpKQp2b2lkIHZzc2VnM2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2k2NG0yX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnM2U2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzZWczZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yKSkpCnZvaWQgdnNzZWczZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X3U2NG0yX20pKSkKdm9pZCB2c3NlZzNlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NlZzRlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMikpKQp2b2lkIHZzc2VnNGU2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNzZWc0ZTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X3U2NG0xKSkpCnZvaWQgdnNzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X3U2NG0yKSkpCnZvaWQgdnNzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWU2NF92X2k2NG0xKSkpCnZvaWQgdnNzZWc1ZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc1ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl91NjRtMSkpKQp2b2lkIHZzc2VnNWU2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NlZzZlNjQoaW50NjRfdCAqIG9wMCwgdmludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc2ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlZzZlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnNmU2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc2VnN2U2NChpbnQ2NF90ICogb3AwLCB2aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc3ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X3U2NG0xKSkpCnZvaWQgdnNzZWc3ZTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc2VnN2U2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X2k2NG0xKSkpCnZvaWQgdnNzZWc4ZTY0KGludDY0X3QgKiBvcDAsIHZpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzZWc4ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NlZzhlNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NlZzhlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0xKSkpCnZvaWQgdnNzc2VnM2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG0xX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMikpKQp2b2lkIHZzc3NlZzNlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtMl9tKSkpCnZvaWQgdnNzc2VnM2U4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnM2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnM2U4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzNlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWczZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWczZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bTIpKSkKdm9pZCB2c3NzZWczZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZThfdl91OG0yX20pKSkKdm9pZCB2c3NzZWczZTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnM2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc3NlZzNlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yKSkpCnZvaWQgdnNzc2VnNGU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG0yX20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc0ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtMSkpKQp2b2lkIHZzc3NlZzRlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG0yKSkpCnZvaWQgdnNzc2VnNGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bTJfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnNGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzc2VnNGU4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzRlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzRlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NzZWc0ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc0ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc1ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMikpKQp2b2lkIHZzc3NlZzVlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNWU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY0KSkpCnZvaWQgdnNzc2VnNWU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc1ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG0xKSkpCnZvaWQgdnNzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjIpKSkKdm9pZCB2c3NzZWc1ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzVlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzVlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzc2VnNWU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnNWU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc1ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzZlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzc2VnNmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnNmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnNmU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzZlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfaThtZjgpKSkKdm9pZCB2c3NzZWc2ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWc2ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWc2ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc2ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnNmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZzc3NlZzZlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTEpKSkKdm9pZCB2c3NzZWc3ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWc3ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnN2U4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY0KSkpCnZvaWQgdnNzc2VnN2U4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl9pOG1mOCkpKQp2b2lkIHZzc3NlZzdlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtMSkpKQp2b2lkIHZzc3NlZzdlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjIpKSkKdm9pZCB2c3NzZWc3ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mNCkpKQp2b2lkIHZzc3NlZzdlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzdlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlOF92X3U4bWY4KSkpCnZvaWQgdnNzc2VnN2U4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzc2VnN2U4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzhlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWYyKSkpCnZvaWQgdnNzc2VnOGU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mMl9tKSkpCnZvaWQgdnNzc2VnOGU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjQpKSkKdm9pZCB2c3NzZWc4ZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl9pOG1mOCkpKQp2b2lkIHZzc3NlZzhlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWc4ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG0xX20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mMikpKQp2b2lkIHZzc3NlZzhlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZzc3NlZzhlOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY0KSkpCnZvaWQgdnNzc2VnOGU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdnNzc2VnOGU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU4X3ZfdThtZjgpKSkKdm9pZCB2c3NzZWc4ZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NzZWc4ZTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3NzZWcyZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTQpKSkKdm9pZCB2c3NzZWcyZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzJlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnMmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0yKSkpCnZvaWQgdnNzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNCkpKQp2b2lkIHZzc3NlZzJlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzc2VnMmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NzZWcyZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWcyZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm0xKSkpCnZvaWQgdnNzc2VnM2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzNlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzc3NlZzNlMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NzZWczZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NzZWczZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl91MTZtMikpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm0yX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzNlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnM2UxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtMikpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3NzZWc0ZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc0ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm0yKSkpCnZvaWQgdnNzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNzc2VnNGUxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnNGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzVlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzVlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3NzZWc1ZTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzZlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnNmUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3NzZWc2ZTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWc2ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm0xKSkpCnZvaWQgdnNzc2VnN2UxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KGludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2kxNm1mNCkpKQp2b2lkIHZzc3NlZzdlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfdTE2bTEpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X3UxNm0xX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjQpKSkKdm9pZCB2c3NzZWc3ZTE2KHVpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9pMTZtMSkpKQp2b2lkIHZzc3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mMikpKQp2b2lkIHZzc3NlZzhlMTYoaW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNihpbnQxNl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtMSkpKQp2b2lkIHZzc3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mMikpKQp2b2lkIHZzc3NlZzhlMTYodWludDE2X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNih1aW50MTZfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNzc2VnOGUxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm0yKSkpCnZvaWQgdnNzc2VnMmUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm0yX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTQpKSkKdm9pZCB2c3NzZWcyZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzJlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWcyZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMikpKQp2b2lkIHZzc3NlZzJlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnMmUzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm00KSkpCnZvaWQgdnNzc2VnMmUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X3UzMm00X20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWcyZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzJlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2kzMm0xKSkpCnZvaWQgdnNzc2VnM2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtMikpKQp2b2lkIHZzc3NlZzNlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzc2VnM2UzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWczZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybTIpKSkKdm9pZCB2c3NzZWczZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNzc2VnM2UzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NzZWczZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtMikpKQp2b2lkIHZzc3NlZzRlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2kzMm0yX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3NzZWc0ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc0ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc0ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X3UzMm0yKSkpCnZvaWQgdnNzc2VnNGUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc0ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm0xKSkpCnZvaWQgdnNzc2VnNWUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNzc2VnNWUzMihpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtMSkpKQp2b2lkIHZzc3NlZzVlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNzc2VnNWUzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X3UzMm1mMikpKQp2b2lkIHZzc3NlZzVlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNWUzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NzZWc2ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2c3NzZWc2ZTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3NzZWc2ZTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm0xKSkpCnZvaWQgdnNzc2VnNmUzMih1aW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzc3NlZzZlMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIodWludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfaTMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKGludDMyX3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzdlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc3ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc3ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtMSkpKQp2b2lkIHZzc3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X2kzMm1mMikpKQp2b2lkIHZzc3NlZzhlMzIoaW50MzJfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybTEpKSkKdm9pZCB2c3NzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlMzJfdl91MzJtZjIpKSkKdm9pZCB2c3NzZWc4ZTMyKHVpbnQzMl90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnMmU2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NzZWcyZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNCkpKQp2b2lkIHZzc3NlZzJlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnMmU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NzZWcyZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNCkpKQp2b2lkIHZzc3NlZzJlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnM2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9pNjRtMikpKQp2b2lkIHZzc3NlZzNlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzc3NlZzNlNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWczZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTY0X3ZfdTY0bTIpKSkKdm9pZCB2c3NzZWczZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3NzZWc0ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc0ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGU2NF92X3U2NG0yKSkpCnZvaWQgdnNzc2VnNGU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMSkpKQp2b2lkIHZzc3NlZzVlNjQoaW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnNWU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc1ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3NzZWc2ZTY0KGludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X2k2NG0xX20pKSkKdm9pZCB2c3NzZWc2ZTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmU2NF92X3U2NG0xKSkpCnZvaWQgdnNzc2VnNmU2NCh1aW50NjRfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc3NlZzZlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2U2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnN2U2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzc3NlZzdlNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl91NjRtMSkpKQp2b2lkIHZzc3NlZzdlNjQodWludDY0X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzc3NlZzdlNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X2k2NG0xKSkpCnZvaWQgdnNzc2VnOGU2NChpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNzc2VnOGU2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3NzZWc4ZTY0KHVpbnQ2NF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2c3NzZWc4ZTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bTIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnNmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaThtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtOF90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtOF90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U4bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3U4bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzZlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc2ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U4bTEpKSkKdm9pZCB2c3V4c2VnN2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mMikpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91OG0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnN1eHNlZzVlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzZlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnNmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzhlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm00KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTJfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm04X3Qgb3AxLCB2aW50MTZtNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm00KSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMSkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MTZtMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybTIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2kzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91MzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc2ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2kzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWczZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91MzJtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMikpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm00KSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3UzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3UzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91MzJtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pNjRtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91NjRtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMikpKQp2b2lkIHZzdXhzZWczZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9pNjRtMikpKQp2b2lkIHZzdXhzZWcyZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X3U2NG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhzZWczZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl91NjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtNCkpKQp2b2lkIHZzdXhzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl91NjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWczZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzVlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfaTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2k2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X3U2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2k2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl91NjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl91NjRtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG0xKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWczZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTIpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc2ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnN2VpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bTEpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzhlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pOG00KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm04X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm04X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdThtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bThfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bThfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMikpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bTIpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm00X3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNWVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTE2KGludDhfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG0xKSkpCnZvaWQgdnNveHNlZzdlaTE2KHVpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50OF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkxNihpbnQ4X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYodWludDhfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50OF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaThtMikpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdThtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc0ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91OG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNmVpMzIoaW50OF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzZlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bTEpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaThtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50OF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc3ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih1aW50OF90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ4X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjIpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjQpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdThtZjgpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDhfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U4bTEpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pOG0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWYyKSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U4bTEpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjQpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdThtZjgpKSkKdm9pZCB2c294c2VnNWVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMikpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k4bWY0X20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnNmVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjIpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDhfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDhtMV90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDhfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyKSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY0KSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4KSkpCnZvaWQgdnNveHNlZzdlaTY0KHVpbnQ4X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTEpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjIpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjQpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjgpKSkKdm9pZCB2c294c2VnOGVpNjQoaW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sOF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOCkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50OF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnM2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNWVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnN2VpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzdlaTgoaW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTgodWludDE2X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KGludDE2X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpOChpbnQxNl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQxNl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm00KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTRfdCBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTE2KGludDE2X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQxNl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50MTZfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybThfdCBvcDEsIHZpbnQxNm00X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm04X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTQpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdnVpbnQxNm00X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybThfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MTZtMV90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2aW50MTZtMl90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQxNl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMihpbnQxNl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpMzIoaW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDE2X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWkzMih1aW50MTZfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmludDE2bTJfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMikpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MTZtMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2dWludDE2bTJfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w4X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQxNm0yX3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w4X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MTZtZjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sOF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDE2bWYyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDE2bTFfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQoaW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MTZtZjJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQxNm1mNF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wxNl90IG9wMCwgdWludDE2X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2c294c2VnN2VpNjQodWludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQxNm0xX3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NChpbnQxNl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQxNm1mMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQxNl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDE2X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDE2bWY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDE2X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDE2X3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MTZfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MTZfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTY0KHVpbnQxNl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQxNl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTQpKSkKdm9pZCB2c294c2VnMmVpOChpbnQzMl90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmludDMybTRfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm00KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3UzMm00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnM2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnM2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNWVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzZlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWk4KGludDMyX3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnN2VpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTgodWludDMyX3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnN2VpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTgoaW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnOGVpOChpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnOGVpOCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk4KHVpbnQzMl90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTQpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2aW50MzJtNF90IG9wMiwgdmludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91MzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnM2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91MzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnNGVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTE2KGludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnN2VpMTYodWludDMyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWkxNihpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih1aW50MzJfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQzMl90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pMzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTIpKSkKdm9pZCB2c294c2VnMmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2dWludDMybTRfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91MzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sOF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pMzJtMikpKQp2b2lkIHZzb3hzZWczZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQzMm0yX3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtMikpKQp2b2lkIHZzb3hzZWczZWkzMih1aW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybTIpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnNWVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIoaW50MzJfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTMybTEpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIodWludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGludDMyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKHVpbnQzMl90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2aW50MzJtMl90IG9wMiwgdmludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZpbnQzMm00X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pMzJtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sOF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0yKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTQpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDhfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMTZfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtMikpKQp2b2lkIHZzb3hzZWczZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDMybTJfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmludDMybTJfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQzMm1mMl90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTMybTIpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2wxNl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTMybTEpKSkKdm9pZCB2c294c2VnNWVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50MzJtMV90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQoaW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50MzJtZjJfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybTEpKSkKdm9pZCB2c294c2VnNmVpNjQodWludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQzMl90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgdWludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9pMzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NChpbnQzMl90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQzMm0xX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2c294c2VnN2VpNjQodmJvb2wzMl90IG9wMCwgaW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQzMl90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmludDMybTFfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMzJfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDMyX3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDMybWYyX3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDMyX3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZzb3hzZWc4ZWk2NCh1aW50MzJfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50MzJfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2k2NG00KSkpCnZvaWQgdnNveHNlZzJlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWcyZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnMmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X3U2NG00KSkpCnZvaWQgdnNveHNlZzJlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl91NjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWczZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTgoaW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNmVpOCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KGludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHVpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnOGVpOChpbnQ2NF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTgodWludDY0X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnMmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2k2NG0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl91NjRtMikpKQp2b2lkIHZzb3hzZWcyZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTQpKSkKdm9pZCB2c294c2VnMmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfdTY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTE2KGludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNmVpMTYodWludDY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih1aW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoaW50NjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KHVpbnQ2NF90ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hzZWcyZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00KSkpCnZvaWQgdnNveHNlZzJlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X3U2NG00X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnM2VpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnM2VpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl91NjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoaW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih1aW50NjRfdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKHVpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihpbnQ2NF90ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnOGVpMzIodWludDY0X3QgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnMmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZpbnQ2NG00X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnMmVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDMyX3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl91NjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9pNjRtMikpKQp2b2lkIHZzb3hzZWczZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZpbnQ2NG0yX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2c294c2VnM2VpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfaTY0bTIpKSkKdm9pZCB2c294c2VnNGVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnNGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X3U2NG0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl91NjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIHVpbnQ2NF90ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pNjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2c294c2VnNmVpNjQoaW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgaW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X3U2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KHVpbnQ2NF90ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzdlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBpbnQ2NF90ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl91NjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh1aW50NjRfdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2dWludDY0bTFfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCB1aW50NjRfdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2k2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTY0KGludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmludDY0bTFfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2c294c2VnOGVpNjQodWludDY0X3QgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgdWludDY0X3QgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTJfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bTRfbSkpKQp2b2lkIHZsc2VnMmU4KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzJlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnMmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtMl9tKSkpCnZvaWQgdmxzZWcyZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG00X20pKSkKdm9pZCB2bHNlZzJlOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzJlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnMmU4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWcyZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnM2U4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtMl9tKSkpCnZvaWQgdmxzZWczZTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWczZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnM2U4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzNlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0xX20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG0yX20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWczZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzNlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnM2U4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzRlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X2k4bTJfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc2VnNGU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc0ZTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThfdl91OG0yX20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzRlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnNWU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzVlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnNWU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzZWc1ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzVlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc2ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzZlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnNmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNmU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzZlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWc2ZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4X3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mNF9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc3ZTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThfdl91OG0xX20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzdlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bTFfbSkpKQp2b2lkIHZsc2VnOGU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzhlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bTFfbSkpKQp2b2lkIHZsc2VnOGU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzZWc4ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzhlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzJlMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzJlMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnMmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWcyZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfdTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnM2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzNlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWczZTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnM2UxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnM2UxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc2VnNWUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzVlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc2VnOGUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm0xX20pKSkKdm9pZCB2bHNlZzhlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MzJtMV90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWcyZTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMl92X3UzMm00X20pKSkKdm9pZCB2bHNlZzJlMzIodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsc2VnM2UzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2kzMm0yX20pKSkKdm9pZCB2bHNlZzNlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzVlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzVlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWc2ZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc2ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzZlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzhlMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzhlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2k2NG00X20pKSkKdm9pZCB2bHNlZzJlNjQodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDY0bTFfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl91NjRtNF9tKSkpCnZvaWQgdmxzZWcyZTY0KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzNlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnM2U2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NF92X3U2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bTFfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtMl9tKSkpCnZvaWQgdmxzZWczZThmZih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWczZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzNlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG0yX20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWczZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZThmZl92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzNlOGZmKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnM2U4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG0yX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc0ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzRlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG0yX20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCB2dWludDhtMl90IG9wNywgdnVpbnQ4bTJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc0ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnNGU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZThmZl92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzRlOGZmKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzVlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzVlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU4ZmZfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc1ZThmZih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc1ZThmZih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnNWU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtMV9tKSkpCnZvaWQgdmxzZWc2ZThmZih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc2ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnNmU4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzZlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzZlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc2ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZThmZl92X3U4bWY0X20pKSkKdm9pZCB2bHNlZzZlOGZmKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnNmU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzdlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl9pOG1mMl9tKSkpCnZvaWQgdmxzZWc3ZThmZih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfaThtZjRfbSkpKQp2b2lkIHZsc2VnN2U4ZmYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzdlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG0xX20pKSkKdm9pZCB2bHNlZzdlOGZmKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U4ZmZfdl91OG1mMl9tKSkpCnZvaWQgdmxzZWc3ZThmZih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnN2U4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZThmZl92X3U4bWY4X20pKSkKdm9pZCB2bHNlZzdlOGZmKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG0xX20pKSkKdm9pZCB2bHNlZzhlOGZmKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfaThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzhlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU4ZmZfdl9pOG1mOF9tKSkpCnZvaWQgdmxzZWc4ZThmZih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtMV9tKSkpCnZvaWQgdmxzZWc4ZThmZih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjJfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlOGZmX3ZfdThtZjhfbSkpKQp2b2lkIHZsc2VnOGU4ZmYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHZ1aW50OG1mOF90IG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfaTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfdTE2bTRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bTFfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2kxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzNlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X3UxNm0yX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNmZmKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNmZmKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc0ZTE2ZmYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzVlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzVlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc2ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnNmUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2ZmZfdl91MTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZmZl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzZWc3ZTE2ZmYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTZmZih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNlZzhlMTZmZih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNlZzhlMTZmZih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTE2ZmZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm0yX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X2kzMm00X20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTFfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTJfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bTRfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWYyX20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWY0X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X2k4bWY4X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWcyZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm0yX20pKSkKdm9pZCB2bHNlZzJlMzJmZih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfdTMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJmZl92X3UzMm1mMl9tKSkpCnZvaWQgdmxzZWcyZTMyZmYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9pMzJtMV9tKSkpCnZvaWQgdmxzZWczZTMyZmYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfaTMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfdTMybTFfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X3UzMm1mMl9tKSkpCnZvaWQgdmxzZWczZTMyZmYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9pMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJmZl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl91MzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCB2dWludDMybTJfdCBvcDcsIHZ1aW50MzJtMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzVlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgc2l6ZV90ICogb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMmZmKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJmZl92X3UzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzZlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfaTMybTFfbSkpKQp2b2lkIHZsc2VnN2UzMmZmKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMzJmZl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bTFfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtMl9tKSkpCnZvaWQgdmxzZWcyZThmZih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG00X20pKSkKdm9pZCB2bHNlZzJlOGZmKHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZThmZl92X3U4bWYyX20pKSkKdm9pZCB2bHNlZzJlOGZmKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlOGZmX3ZfdThtZjRfbSkpKQp2b2lkIHZsc2VnMmU4ZmYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU4ZmZfdl91OG1mOF9tKSkpCnZvaWQgdmxzZWcyZThmZih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMmZmX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNlZzdlMzJmZih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJmZl92X2kzMm0xX20pKSkKdm9pZCB2bHNlZzhlMzJmZih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMmZmKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl91MzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyZmYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgc2l6ZV90ICogb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl91MzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMmZmKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG0yX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50NjRtMl90IG9wMywgdmludDY0bTJfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2k2NG00X20pKSkKdm9pZCB2bHNlZzJlNjRmZih2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzJlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfdTY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NGZmKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl91NjRtNF9tKSkpCnZvaWQgdmxzZWcyZTY0ZmYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzNlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2U2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnM2U2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl91NjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X2k2NG0xX20pKSkKdm9pZCB2bHNlZzRlNjRmZih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgY29uc3QgaW50NjRfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9pNjRtMl9tKSkpCnZvaWQgdmxzZWc0ZTY0ZmYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNGU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRmZl92X3U2NG0yX20pKSkKdm9pZCB2bHNlZzRlNjRmZih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTY0ZmZfdl9pNjRtMV9tKSkpCnZvaWQgdmxzZWc1ZTY0ZmYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzJlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtMl9tKSkpCnZvaWQgdmxzc2VnMmU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG00X20pKSkKdm9pZCB2bHNzZWcyZTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNzZWcyZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzJlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnNWU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NGZmKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIGNvbnN0IGludDY0X3QgKiBvcDEzLCBzaXplX3QgKiBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzZlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfaTY0bTFfbSkpKQp2b2lkIHZsc2VnN2U2NGZmKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlNjRmZl92X3U2NG0xX20pKSkKdm9pZCB2bHNlZzdlNjRmZih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIGNvbnN0IHVpbnQ2NF90ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTY0ZmZfdl9pNjRtMV9tKSkpCnZvaWQgdmxzZWc4ZTY0ZmYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGU2NGZmX3ZfdTY0bTFfbSkpKQp2b2lkIHZsc2VnOGU2NGZmKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZsc3NlZzJlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2bHNzZWcyZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtNF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNzZWcyZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzc2VnMmU4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzJlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pOG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG00X3QgKiBvcDAsIHZpbnQ4bTRfdCAqIG9wMSwgdmJvb2wyX3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl9pOG0yX20pKSkKdm9pZCB2bHNzZWczZTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzNlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnM2U4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG0yX20pKSkKdm9pZCB2bHNzZWczZTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlOF92X3U4bWYyX20pKSkKdm9pZCB2bHNzZWczZTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZThfdl91OG1mNF9tKSkpCnZvaWQgdmxzc2VnM2U4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzNlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X2k4bTFfbSkpKQp2b2lkIHZsc3NlZzRlOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfaThtMl9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mMl9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mNF9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl9pOG1mOF9tKSkpCnZvaWQgdmxzc2VnNGU4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZThfdl91OG0xX20pKSkKdm9pZCB2bHNzZWc0ZTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlOF92X3U4bTJfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzRlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzc2VnNWU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzVlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnNWU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnNWU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNzZWc1ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzVlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNzZWc2ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzZlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnNmU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnNmU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzZlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlOF92X3U4bWY4X20pKSkKdm9pZCB2bHNzZWc2ZTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZThfdl9pOG0xX20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWYyX20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY0X20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X2k4bWY4X20pKSkKdm9pZCB2bHNzZWc3ZTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlOF92X3U4bTFfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjJfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjRfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2U4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzdlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtMV9tKSkpCnZvaWQgdmxzc2VnOGU4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjJfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjRfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfaThtZjhfbSkpKQp2b2lkIHZsc3NlZzhlOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0xKSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG0xX3Qgb3AxLCB2aW50OG0xX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w4X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG0yKSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG0yX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtMl9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTJfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG00KSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtNF9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bTRfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mMikpKQp2b2lkIHZzc2VnMmU4KGludDhfdCAqIG9wMCwgdmludDhtZjJfdCBvcDEsIHZpbnQ4bWYyX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZzc2VnMmU4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfaThtZjQpKSkKdm9pZCB2c3NlZzJlOChpbnQ4X3QgKiBvcDAsIHZpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY0X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDMyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X2k4bWY4KSkpCnZvaWQgdnNzZWcyZTgoaW50OF90ICogb3AwLCB2aW50OG1mOF90IG9wMSwgdmludDhtZjhfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl9pOG1mOF9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCB2aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfdThtMV9tKSkpCnZvaWQgdmxzc2VnOGU4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZThfdl91OG1mMl9tKSkpCnZvaWQgdmxzc2VnOGU4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlOF92X3U4bWY0X20pKSkKdm9pZCB2bHNzZWc4ZTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGU4X3ZfdThtZjhfbSkpKQp2b2lkIHZsc3NlZzhlOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm0yX20pKSkKdm9pZCB2bHNzZWcyZTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm00X20pKSkKdm9pZCB2bHNzZWcyZTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxzc2VnMmUxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNzZWczZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnM2UxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzc2VnM2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsc3NlZzNlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHNzZWczZTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzNlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2kxNm0yX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzRlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnNWUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNWUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzVlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc1ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm0xX20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzZlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTEpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0xX20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTIpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdnVpbnQ4bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bTQpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtNF90IG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG00X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWYyKSkpCnZvaWQgdnNzZWcyZTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mMl9tKSkpCnZvaWQgdnNzZWcyZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZThfdl91OG1mNCkpKQp2b2lkIHZzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc2VnMmU4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU4X3ZfdThtZjgpKSkKdm9pZCB2c3NlZzJlOCh1aW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZ1aW50OG1mOF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlOF92X3U4bWY4X20pKSkKdm9pZCB2c3NlZzJlOCh2Ym9vbDY0X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzZlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnN2UxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxzc2VnN2UxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsc3NlZzdlMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxzc2VnOGUxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGUxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxzc2VnOGUxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgdmludDE2bWY0X3Qgb3AxNSwgdmludDE2bWY0X3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsc3NlZzhlMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHNzZWc4ZTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsc3NlZzJlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxzc2VnMmUzMih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnMmUzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZsc3NlZzJlMzIodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHNzZWczZTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWczZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnM2UzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWczZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnNGUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnNGUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnNWUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzVlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNWUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm0xX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxzc2VnNmUzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnNmUzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxzc2VnOGUzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsc3NlZzhlMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnOGUzMl92X3UzMm0xX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNzZWcyZTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsc3NlZzJlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9pNjRtNF9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50NjRtNF90IG9wMywgdmludDY0bTRfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmU2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNzZWcyZTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZsc3NlZzJlNjQodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2k2NG0xX20pKSkKdm9pZCB2bHNzZWczZTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2k2NG0yX20pKSkKdm9pZCB2bHNzZWczZTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCB2aW50NjRtMl90IG9wNSwgdmludDY0bTJfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X3U2NG0xX20pKSkKdm9pZCB2bHNzZWczZTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl91NjRtMl9tKSkpCnZvaWQgdmxzc2VnM2U2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfdTY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCB2dWludDY0bTJfdCBvcDcsIHZ1aW50NjRtMl90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDY0bTFfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgaW50NjRfdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmxzc2VnNmU2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCBjb25zdCBpbnQ2NF90ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlNjRfdl91NjRtMV9tKSkpCnZvaWQgdmxzc2VnNmU2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBjb25zdCB1aW50NjRfdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgdnVpbnQ4bWYyX3Qgb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCB2aW50OG1mOF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50OG0yX3Qgb3AzLCB2dWludDhtMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2aW50OG0yX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQxNm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgdmludDhtMl90IG9wNywgdmludDhtMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIHZpbnQ4bWY4X3Qgb3AxMywgdmludDhtZjhfdCBvcDE0LCB2aW50OG1mOF90IG9wMTUsIHZpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIHZ1aW50OG0xX3Qgb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQzMm04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIHZib29sNF90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCB2dWludDhtMl90IG9wNywgdnVpbnQ4bTJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDMybTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDMybTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQzMm00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQzMm00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MzJtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pOG1mOCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIHZpbnQ4bWY4X3Qgb3AxMywgdmludDhtZjhfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MzJtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCB2aW50OG1mMl90IG9wMTUsIHZpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCB2aW50OG1mNF90IG9wMTUsIHZpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG0xKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MzJtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91OG1mOCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHZ1aW50OG1mOF90IG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjgpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDhtMV90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG04X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bThfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG04X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bThfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG04X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjIpKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdThtZjgpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG04X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG04X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdnVpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIHZ1aW50OG0xX3Qgb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG04X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjIpKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdnVpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgdnVpbnQ4bWY0X3Qgb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDE2bTJfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bTRfdCAqIG9wMCwgdnVpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQxNm00X3Qgb3AzLCB2dWludDE2bTRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgdmludDE2bTFfdCBvcDE1LCB2aW50MTZtMV90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgdnVpbnQxNm0yX3Qgb3A3LCB2dWludDE2bTJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MTZtMV90IG9wMywgdmludDE2bTFfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQxNm0yX3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm00X3QgKiBvcDAsIHZpbnQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDE2bTRfdCBvcDMsIHZpbnQxNm00X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDE2bWY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MTZtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgdmludDE2bTFfdCBvcDE1LCB2aW50MTZtMV90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDMybTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMSkpKQp2b2lkIHZzc3NlZzJlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtMV9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sOF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTIpKSkKdm9pZCB2c3NzZWcyZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG0yX3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bTJfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDRfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00KSkpCnZvaWQgdnNzc2VnMmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtNF90IG9wMiwgdmludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG00X20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjIpKSkKdm9pZCB2c3NzZWcyZTgoaW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2aW50OG1mMl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfaThtZjJfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDE2X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mNCkpKQp2b2lkIHZzc3NlZzJlOChpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZpbnQ4bWY0X3Qgb3AyLCB2aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl9pOG1mNF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sMzJfdCBvcDAsIGludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4KSkpCnZvaWQgdnNzc2VnMmU4KGludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmludDhtZjhfdCBvcDIsIHZpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X2k4bWY4X20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2w2NF90IG9wMCwgaW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MTZtZjJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDE2bTFfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCB2aW50MTZtMl90IG9wNywgdmludDE2bTJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTEpKSkKdm9pZCB2c3NzZWcyZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bTFfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDhfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yKSkpCnZvaWQgdnNzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG0yX20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2w0X3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNCkpKQp2b2lkIHZzc3NlZzJlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtNF90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtNF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWYyKSkpCnZvaWQgdnNzc2VnMmU4KHVpbnQ4X3QgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlOF92X3U4bWYyX20pKSkKdm9pZCB2c3NzZWcyZTgodmJvb2wxNl90IG9wMCwgdWludDhfdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjQpKSkKdm9pZCB2c3NzZWcyZTgodWludDhfdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU4X3ZfdThtZjRfbSkpKQp2b2lkIHZzc3NlZzJlOCh2Ym9vbDMyX3Qgb3AwLCB1aW50OF90ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2dWludDhtZjRfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mOCkpKQp2b2lkIHZzc3NlZzJlOCh1aW50OF90ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2dWludDhtZjhfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZThfdl91OG1mOF9tKSkpCnZvaWQgdnNzc2VnMmU4KHZib29sNjRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZ1aW50OG1mOF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIHZpbnQxNm1mNF90IG9wMTUsIHZpbnQxNm1mNF90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTMybTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3UzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG0yKSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNF90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bTQpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG00X3Qgb3AxLCB2aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wyX3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2aW50OG00X3Qgb3AzLCB2aW50OG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjIpKSkKdm9pZCB2c3V4c2VnMmVpOChpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmludDhtZjJfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGludDhfdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2aW50OG1mMl90IG9wMywgdmludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGludDhfdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2aW50OG1mNF90IG9wMiwgdmludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9pOG1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgaW50OF90ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY4KSkpCnZvaWQgdnN1eHNlZzJlaTgoaW50OF90ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZpbnQ4bWY4X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2k4bWY4X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNWVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTEpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtMV90IG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtMV90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtMikpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG0yX3Qgb3AxLCB2dWludDhtMl90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG0yX3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG00KSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bTRfdCBvcDEsIHZ1aW50OG00X3Qgb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMl90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bTRfdCBvcDIsIHZ1aW50OG00X3Qgb3AzLCB2dWludDhtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWYyKSkpCnZvaWQgdnN1eHNlZzJlaTgodWludDhfdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X3U4bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCB1aW50OF90ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjQpKSkKdm9pZCB2c3V4c2VnMmVpOCh1aW50OF90ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMzJfdCBvcDAsIHVpbnQ4X3QgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mOCkpKQp2b2lkIHZzdXhzZWcyZWk4KHVpbnQ4X3QgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl91OG1mOF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgdWludDhfdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfaTMybTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDMybTJfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCB2dWludDMybTJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfaTMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtNF90ICogb3AwLCB2aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQzMm00X3Qgb3AzLCB2aW50MzJtNF90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDMybTFfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3UzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50MzJtNF90ICogb3AwLCB2dWludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDMybTRfdCBvcDMsIHZ1aW50MzJtNF90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2kzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pMzJtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bHV4c2VnNGVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bHV4c2VnN2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHZ1aW50MzJtMV90IG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50NjRtMV90IG9wMywgdmludDY0bTFfdCBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfaTY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2aW50NjRtNF90ICogb3AwLCB2aW50NjRtNF90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmludDY0bTRfdCAqIG9wMCwgdmludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDY0bTRfdCBvcDMsIHZpbnQ2NG00X3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X3U2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTgodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfdTY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWk4KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDY0bTJfdCBvcDQsIHZ1aW50NjRtMl90IG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpOCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2aW50NjRtMl90ICogb3AzLCBjb25zdCBpbnQ2NF90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgY29uc3QgaW50NjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDY0bTJfdCBvcDMsIHZpbnQ2NG0yX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl91NjRtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfdTY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X3U2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodnVpbnQ2NG00X3QgKiBvcDAsIHZ1aW50NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDY0bTRfdCBvcDMsIHZ1aW50NjRtNF90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDY0bTFfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCBjb25zdCB1aW50NjRfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgdmludDY0bTJfdCBvcDcsIHZpbnQ2NG0yX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50NjRtMV90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgY29uc3QgdWludDY0X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIGNvbnN0IGludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBjb25zdCBpbnQ2NF90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgY29uc3QgdWludDY0X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgY29uc3QgaW50NjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ2NG0xX3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIGNvbnN0IGludDY0X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgY29uc3QgdWludDY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIHZpbnQ2NG0xX3Qgb3AxMSwgdmludDY0bTFfdCBvcDEyLCB2aW50NjRtMV90IG9wMTMsIHZpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgaW50NjRfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIGNvbnN0IHVpbnQ2NF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IGludDY0X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ2NF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCB2dWludDY0bTFfdCBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCB2dWludDY0bTFfdCBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBjb25zdCB1aW50NjRfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCBjb25zdCBpbnQ2NF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDY0bTFfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50NjRtMV90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50NjRtMl90IG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X3U2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl91NjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZ1aW50NjRtNF90ICogb3AwLCB2dWludDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCB2dWludDY0bTRfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgY29uc3QgaW50NjRfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDY0bTJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgY29uc3QgaW50NjRfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ2NF90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ2NG0xX3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfaTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2k2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmludDY0bTJfdCAqIG9wMCwgdmludDY0bTJfdCAqIG9wMSwgdmludDY0bTJfdCAqIG9wMiwgdmludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCB2aW50NjRtMl90IG9wNywgdmludDY0bTJfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCBjb25zdCB1aW50NjRfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnNGVpMzIodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgdnVpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ2NF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfdTY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIHZ1aW50NjRtMl90IG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBjb25zdCB1aW50NjRfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIHZpbnQ2NG0xX3Qgb3A5LCB2aW50NjRtMV90IG9wMTAsIGNvbnN0IGludDY0X3QgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCBjb25zdCB1aW50NjRfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCBjb25zdCBpbnQ2NF90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc2ZWkzMih2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCBjb25zdCB1aW50NjRfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIGNvbnN0IHVpbnQ2NF90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50NjRtMV90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCBjb25zdCBpbnQ2NF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCBjb25zdCB1aW50NjRfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgY29uc3QgaW50NjRfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIHZpbnQ2NG0xX3Qgb3AxNSwgdmludDY0bTFfdCBvcDE2LCBjb25zdCBpbnQ2NF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2dWludDY0bTFfdCAqIG9wNSwgdnVpbnQ2NG0xX3QgKiBvcDYsIHZ1aW50NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHZ1aW50NjRtMV90IG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHZ1aW50NjRtMV90IG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHZ1aW50NjRtMV90IG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIGNvbnN0IHVpbnQ2NF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQ2NG0xX3Qgb3AzLCB2aW50NjRtMV90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ2NG0yX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2k2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IGludDY0X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9pNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZpbnQ2NG00X3QgKiBvcDAsIHZpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ2NG00X3Qgb3AzLCB2aW50NjRtNF90IG9wNCwgY29uc3QgaW50NjRfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgY29uc3QgdWludDY0X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCB2dWludDY0bTFfdCBvcDQsIGNvbnN0IHVpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCBjb25zdCB1aW50NjRfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X3U2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDY0bTJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgY29uc3QgdWludDY0X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl91NjRtNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ2NF90ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfdTY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2dWludDY0bTRfdCAqIG9wMCwgdnVpbnQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50NjRtNF90IG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIGNvbnN0IGludDY0X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ2NG0xX3Qgb3A0LCB2aW50NjRtMV90IG9wNSwgdmludDY0bTFfdCBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9pNjRtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCBjb25zdCBpbnQ2NF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfaTY0bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2aW50NjRtMl90ICogb3AwLCB2aW50NjRtMl90ICogb3AxLCB2aW50NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50NjRtMl90IG9wNCwgdmludDY0bTJfdCBvcDUsIHZpbnQ2NG0yX3Qgb3A2LCBjb25zdCBpbnQ2NF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50NjRtMV90IG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfdTY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodnVpbnQ2NG0yX3QgKiBvcDAsIHZ1aW50NjRtMl90ICogb3AxLCB2dWludDY0bTJfdCAqIG9wMiwgY29uc3QgdWludDY0X3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50NjRtMl90IG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCB2dWludDY0bTJfdCBvcDYsIGNvbnN0IHVpbnQ2NF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgY29uc3QgaW50NjRfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDY0bTFfdCBvcDUsIHZpbnQ2NG0xX3Qgb3A2LCB2aW50NjRtMV90IG9wNywgdmludDY0bTFfdCBvcDgsIGNvbnN0IGludDY0X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2k2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIGNvbnN0IGludDY0X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9pNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZpbnQ2NG0yX3QgKiBvcDAsIHZpbnQ2NG0yX3QgKiBvcDEsIHZpbnQ2NG0yX3QgKiBvcDIsIHZpbnQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQ2NG0yX3Qgb3A1LCB2aW50NjRtMl90IG9wNiwgdmludDY0bTJfdCBvcDcsIHZpbnQ2NG0yX3Qgb3A4LCBjb25zdCBpbnQ2NF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDY0bTFfdCBvcDUsIHZ1aW50NjRtMV90IG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2dWludDY0bTJfdCAqIG9wMCwgdnVpbnQ2NG0yX3QgKiBvcDEsIHZ1aW50NjRtMl90ICogb3AyLCB2dWludDY0bTJfdCAqIG9wMywgY29uc3QgdWludDY0X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl91NjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZ1aW50NjRtMl90ICogb3AwLCB2dWludDY0bTJfdCAqIG9wMSwgdnVpbnQ2NG0yX3QgKiBvcDIsIHZ1aW50NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDY0bTJfdCBvcDUsIHZ1aW50NjRtMl90IG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCB2dWludDY0bTJfdCBvcDgsIGNvbnN0IHVpbnQ2NF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCBjb25zdCBpbnQ2NF90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfaTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50NjRtMV90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCBjb25zdCBpbnQ2NF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfdTY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCBjb25zdCB1aW50NjRfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X3U2NG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodnVpbnQ2NG0xX3QgKiBvcDAsIHZ1aW50NjRtMV90ICogb3AxLCB2dWludDY0bTFfdCAqIG9wMiwgdnVpbnQ2NG0xX3QgKiBvcDMsIHZ1aW50NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDY0bTFfdCBvcDYsIHZ1aW50NjRtMV90IG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCB2dWludDY0bTFfdCBvcDksIHZ1aW50NjRtMV90IG9wMTAsIGNvbnN0IHVpbnQ2NF90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfaTY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgY29uc3QgaW50NjRfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDY0bTFfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgY29uc3QgaW50NjRfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ2NF90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDY0bTFfdCBvcDcsIHZ1aW50NjRtMV90IG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCB2dWludDY0bTFfdCBvcDEwLCB2dWludDY0bTFfdCBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBjb25zdCB1aW50NjRfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2k2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIGNvbnN0IGludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9pNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZpbnQ2NG0xX3QgKiBvcDAsIHZpbnQ2NG0xX3QgKiBvcDEsIHZpbnQ2NG0xX3QgKiBvcDIsIHZpbnQ2NG0xX3QgKiBvcDMsIHZpbnQ2NG0xX3QgKiBvcDQsIHZpbnQ2NG0xX3QgKiBvcDUsIHZpbnQ2NG0xX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ2NG0xX3Qgb3A4LCB2aW50NjRtMV90IG9wOSwgdmludDY0bTFfdCBvcDEwLCB2aW50NjRtMV90IG9wMTEsIHZpbnQ2NG0xX3Qgb3AxMiwgdmludDY0bTFfdCBvcDEzLCB2aW50NjRtMV90IG9wMTQsIGNvbnN0IGludDY0X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgY29uc3QgdWludDY0X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl91NjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDY0bTFfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgY29uc3QgdWludDY0X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9pNjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2aW50NjRtMV90ICogb3AwLCB2aW50NjRtMV90ICogb3AxLCB2aW50NjRtMV90ICogb3AyLCB2aW50NjRtMV90ICogb3AzLCB2aW50NjRtMV90ICogb3A0LCB2aW50NjRtMV90ICogb3A1LCB2aW50NjRtMV90ICogb3A2LCB2aW50NjRtMV90ICogb3A3LCBjb25zdCBpbnQ2NF90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2k2NG0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmludDY0bTFfdCAqIG9wMCwgdmludDY0bTFfdCAqIG9wMSwgdmludDY0bTFfdCAqIG9wMiwgdmludDY0bTFfdCAqIG9wMywgdmludDY0bTFfdCAqIG9wNCwgdmludDY0bTFfdCAqIG9wNSwgdmludDY0bTFfdCAqIG9wNiwgdmludDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDY0bTFfdCBvcDksIHZpbnQ2NG0xX3Qgb3AxMCwgdmludDY0bTFfdCBvcDExLCB2aW50NjRtMV90IG9wMTIsIHZpbnQ2NG0xX3Qgb3AxMywgdmludDY0bTFfdCBvcDE0LCB2aW50NjRtMV90IG9wMTUsIHZpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgaW50NjRfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X3U2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZ1aW50NjRtMV90ICogb3AwLCB2dWludDY0bTFfdCAqIG9wMSwgdnVpbnQ2NG0xX3QgKiBvcDIsIHZ1aW50NjRtMV90ICogb3AzLCB2dWludDY0bTFfdCAqIG9wNCwgdnVpbnQ2NG0xX3QgKiBvcDUsIHZ1aW50NjRtMV90ICogb3A2LCB2dWludDY0bTFfdCAqIG9wNywgY29uc3QgdWludDY0X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfdTY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2dWludDY0bTFfdCAqIG9wMCwgdnVpbnQ2NG0xX3QgKiBvcDEsIHZ1aW50NjRtMV90ICogb3AyLCB2dWludDY0bTFfdCAqIG9wMywgdnVpbnQ2NG0xX3QgKiBvcDQsIHZ1aW50NjRtMV90ICogb3A1LCB2dWludDY0bTFfdCAqIG9wNiwgdnVpbnQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50NjRtMV90IG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgdnVpbnQ2NG0xX3Qgb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgdnVpbnQ2NG0xX3Qgb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgdnVpbnQ2NG0xX3Qgb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgY29uc3QgdWludDY0X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZpbnQ4bTFfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50OG0yX3Qgb3AzLCB2aW50OG0yX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50OG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaThtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtNF90ICogb3AwLCB2aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdmludDhtNF90IG9wMywgdmludDhtNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDhtZjRfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtNF90ICogb3AwLCB2dWludDhtNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIHZib29sMl90IG9wMiwgdnVpbnQ4bTRfdCBvcDMsIHZ1aW50OG00X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDhtZjJfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDhtZjhfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdmJvb2w0X3Qgb3AzLCB2dWludDhtMl90IG9wNCwgdnVpbnQ4bTJfdCBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDhtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50OG1mNF90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHZ1aW50OG0yX3Qgb3A3LCB2dWludDhtMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ4bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50OG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIHZpbnQ4bWYyX3Qgb3AxMywgdmludDhtZjJfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ4bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2dWludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZpbnQ4bTFfdCAqIG9wNywgdmJvb2w4X3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIHZpbnQ4bTFfdCBvcDE1LCB2aW50OG0xX3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmludDhtZjJfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50OG1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCB2aW50OG1mNF90IG9wMTUsIHZpbnQ4bWY0X3Qgb3AxNiwgY29uc3QgaW50OF90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZ1aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHZ1aW50OG1mMl90IG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHZ1aW50OG1mMl90IG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmludDhtMl90IG9wMywgdmludDhtMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG00X3QgKiBvcDAsIHZpbnQ4bTRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDE2bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bTRfdCAqIG9wMCwgdmludDhtNF90ICogb3AxLCB2Ym9vbDJfdCBvcDIsIHZpbnQ4bTRfdCBvcDMsIHZpbnQ4bTRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50OG1mOF90IG9wMywgdmludDhtZjhfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDhtMl90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG00KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG00X3QgKiBvcDAsIHZ1aW50OG00X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQ4bTRfdCAqIG9wMCwgdnVpbnQ4bTRfdCAqIG9wMSwgdmJvb2wyX3Qgb3AyLCB2dWludDhtNF90IG9wMywgdnVpbnQ4bTRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgY29uc3QgdWludDhfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtMSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgdmludDhtMl90ICogb3AyLCB2Ym9vbDRfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDhtZjRfdCBvcDQsIHZpbnQ4bWY0X3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCB2dWludDhtZjhfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgdmludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZpbnQ4bTJfdCBvcDUsIHZpbnQ4bTJfdCBvcDYsIHZpbnQ4bTJfdCBvcDcsIHZpbnQ4bTJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50OG1mMl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDhtZjhfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTEpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZ1aW50OG0yX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2dWludDhtMl90IG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHZ1aW50OG0yX3Qgb3A3LCB2dWludDhtMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDhtZjJfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQxNm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmJvb2w4X3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDE2bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgdmludDhtZjJfdCBvcDExLCB2aW50OG1mMl90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MTZtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmludDhtZjhfdCAqIG9wNywgY29uc3QgaW50OF90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgdmludDhtZjhfdCBvcDE1LCB2aW50OG1mOF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MTZtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MTZtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDhtMV90IG9wMywgdmludDhtMV90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50OG0yX3QgKiBvcDAsIHZpbnQ4bTJfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQ4bTJfdCBvcDMsIHZpbnQ4bTJfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDhtZjJfdCBvcDMsIHZpbnQ4bWYyX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQ4bWY0X3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZib29sNF90IG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHZ1aW50OG0yX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50OG1mMl90IG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50OG1mNF90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCBjb25zdCB1aW50OF90ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDhtZjhfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bTIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDhtMl90ICogb3AwLCB2aW50OG0yX3QgKiBvcDEsIHZpbnQ4bTJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdmludDhtMl90IG9wNCwgdmludDhtMl90IG9wNSwgdmludDhtMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQ4bWY0X3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2dWludDhtMV90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG0yX3QgKiBvcDAsIHZ1aW50OG0yX3QgKiBvcDEsIHZ1aW50OG0yX3QgKiBvcDIsIHZib29sNF90IG9wMywgdnVpbnQ4bTJfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50OG1mMl90IG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCB2dWludDhtZjJfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIHZ1aW50OG1mNF90IG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmludDhtMV90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG0yKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bTJfdCAqIG9wMCwgdmludDhtMl90ICogb3AxLCB2aW50OG0yX3QgKiBvcDIsIHZpbnQ4bTJfdCAqIG9wMywgdmJvb2w0X3Qgb3A0LCB2aW50OG0yX3Qgb3A1LCB2aW50OG0yX3Qgb3A2LCB2aW50OG0yX3Qgb3A3LCB2aW50OG0yX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50MzJtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bTJfdCAqIG9wMCwgdnVpbnQ4bTJfdCAqIG9wMSwgdnVpbnQ4bTJfdCAqIG9wMiwgdnVpbnQ4bTJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtMl90ICogb3AwLCB2dWludDhtMl90ICogb3AxLCB2dWludDhtMl90ICogb3AyLCB2dWludDhtMl90ICogb3AzLCB2Ym9vbDRfdCBvcDQsIHZ1aW50OG0yX3Qgb3A1LCB2dWludDhtMl90IG9wNiwgdnVpbnQ4bTJfdCBvcDcsIHZ1aW50OG0yX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDMybThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50OG1mOF90IG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCB2dWludDhtZjhfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTEpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQzMm00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdmJvb2w4X3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQzMm00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50OG1mMl90IG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCB2dWludDhtZjJfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDhtZjRfdCBvcDYsIHZ1aW50OG1mNF90IG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50OG1mOF90IG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCB2dWludDhtZjhfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50MzJtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZib29sOF90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50MzJtNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZ1aW50OG1mMl90IG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCB2dWludDhtZjJfdCBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHZ1aW50OG1mMl90IG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZ1aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDhtZjRfdCBvcDcsIHZ1aW50OG1mNF90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2aW50OG0xX3QgKiBvcDYsIHZib29sOF90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDMybTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaThtZjgpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmludDhtZjhfdCAqIG9wMiwgdmludDhtZjhfdCAqIG9wMywgdmludDhtZjhfdCAqIG9wNCwgdmludDhtZjhfdCAqIG9wNSwgdmludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIHZpbnQ4bWY4X3Qgb3AxMSwgdmludDhtZjhfdCBvcDEyLCB2aW50OG1mOF90IG9wMTMsIHZpbnQ4bWY4X3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDMybTRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50OG1mOF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZpbnQ4bTFfdCAqIG9wNSwgdmludDhtMV90ICogb3A2LCB2aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIHZpbnQ4bTFfdCBvcDExLCB2aW50OG0xX3Qgb3AxMiwgdmludDhtMV90IG9wMTMsIHZpbnQ4bTFfdCBvcDE0LCB2aW50OG0xX3Qgb3AxNSwgdmludDhtMV90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIHZpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgdmludDhtZjJfdCBvcDE1LCB2aW50OG1mMl90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pOG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY0X3QgKiBvcDAsIHZpbnQ4bWY0X3QgKiBvcDEsIHZpbnQ4bWY0X3QgKiBvcDIsIHZpbnQ4bWY0X3QgKiBvcDMsIHZpbnQ4bWY0X3QgKiBvcDQsIHZpbnQ4bWY0X3QgKiBvcDUsIHZpbnQ4bWY0X3QgKiBvcDYsIHZpbnQ4bWY0X3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCB2aW50OG1mNF90IG9wMTMsIHZpbnQ4bWY0X3Qgb3AxNCwgdmludDhtZjRfdCBvcDE1LCB2aW50OG1mNF90IG9wMTYsIGNvbnN0IGludDhfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IGludDhfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2dWludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIHZ1aW50OG0xX3Qgb3AxMSwgdnVpbnQ4bTFfdCBvcDEyLCB2dWludDhtMV90IG9wMTMsIHZ1aW50OG0xX3Qgb3AxNCwgdnVpbnQ4bTFfdCBvcDE1LCB2dWludDhtMV90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDMybTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgdnVpbnQ4bWYyX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50OG1mMl90IG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgdnVpbnQ4bWYyX3Qgb3AxMSwgdnVpbnQ4bWYyX3Qgb3AxMiwgdnVpbnQ4bWYyX3Qgb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgdnVpbnQ4bWYyX3Qgb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3U4bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2dWludDhtZjRfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCB2dWludDhtZjRfdCBvcDEwLCB2dWludDhtZjRfdCBvcDExLCB2dWludDhtZjRfdCBvcDEyLCB2dWludDhtZjRfdCBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCB2dWludDhtZjRfdCBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdThtZjgpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2dWludDhtZjhfdCAqIG9wNSwgdnVpbnQ4bWY4X3QgKiBvcDYsIHZ1aW50OG1mOF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCB2dWludDhtZjhfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCB2dWludDhtZjhfdCBvcDEwLCB2dWludDhtZjhfdCBvcDExLCB2dWludDhtZjhfdCBvcDEyLCB2dWludDhtZjhfdCBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCB2dWludDhtZjhfdCBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50OG0xX3Qgb3AzLCB2aW50OG0xX3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCBjb25zdCBpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pOG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQ4bWYyX3Qgb3AzLCB2aW50OG1mMl90IG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgY29uc3QgaW50OF90ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50OG1mNF90IG9wMywgdmludDhtZjRfdCBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IGludDhfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2k4bWY4X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDhtZjhfdCAqIG9wMCwgdmludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDhtZjhfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2dWludDhtMV90IG9wMywgdnVpbnQ4bTFfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCB2dWludDhtZjRfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIGNvbnN0IHVpbnQ4X3QgKiBvcDIsIHZ1aW50NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCB2dWludDhtZjhfdCBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZpbnQ4bTFfdCBvcDQsIHZpbnQ4bTFfdCBvcDUsIHZpbnQ4bTFfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIGNvbnN0IGludDhfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDhtZjJfdCBvcDQsIHZpbnQ4bWYyX3Qgb3A1LCB2aW50OG1mMl90IG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgY29uc3QgaW50OF90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50OG1mNF90IG9wNCwgdmludDhtZjRfdCBvcDUsIHZpbnQ4bWY0X3Qgb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCBjb25zdCBpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQ4bWY4X3Qgb3A0LCB2aW50OG1mOF90IG9wNSwgdmludDhtZjhfdCBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50OG0xX3Qgb3A0LCB2dWludDhtMV90IG9wNSwgdnVpbnQ4bTFfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCBjb25zdCB1aW50OF90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDhtZjJfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgY29uc3QgdWludDhfdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIGNvbnN0IHVpbnQ4X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50OG1mOF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50OG0xX3Qgb3A1LCB2aW50OG0xX3Qgb3A2LCB2aW50OG0xX3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIGNvbnN0IGludDhfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDhtZjJfdCBvcDUsIHZpbnQ4bWYyX3Qgb3A2LCB2aW50OG1mMl90IG9wNywgdmludDhtZjJfdCBvcDgsIGNvbnN0IGludDhfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgY29uc3QgaW50OF90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50OG1mNF90IG9wNSwgdmludDhtZjRfdCBvcDYsIHZpbnQ4bWY0X3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgY29uc3QgaW50OF90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCBjb25zdCBpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQ4bWY4X3Qgb3A1LCB2aW50OG1mOF90IG9wNiwgdmludDhtZjhfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCBjb25zdCBpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG04X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50OG0xX3Qgb3A1LCB2dWludDhtMV90IG9wNiwgdnVpbnQ4bTFfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgY29uc3QgdWludDhfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50OG1mMl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgY29uc3QgdWludDhfdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQ4X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDhtZjRfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIGNvbnN0IHVpbnQ4X3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCBjb25zdCB1aW50OF90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBjb25zdCB1aW50OF90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtMV90ICogb3AwLCB2aW50OG0xX3QgKiBvcDEsIHZpbnQ4bTFfdCAqIG9wMiwgdmludDhtMV90ICogb3AzLCB2aW50OG0xX3QgKiBvcDQsIHZib29sOF90IG9wNSwgdmludDhtMV90IG9wNiwgdmludDhtMV90IG9wNywgdmludDhtMV90IG9wOCwgdmludDhtMV90IG9wOSwgdmludDhtMV90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IGludDhfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmludDhtZjJfdCBvcDYsIHZpbnQ4bWYyX3Qgb3A3LCB2aW50OG1mMl90IG9wOCwgdmludDhtZjJfdCBvcDksIHZpbnQ4bWYyX3Qgb3AxMCwgY29uc3QgaW50OF90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgY29uc3QgaW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50OG1mNF90IG9wNiwgdmludDhtZjRfdCBvcDcsIHZpbnQ4bWY0X3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCBjb25zdCBpbnQ4X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCBjb25zdCBpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQ4bWY4X3Qgb3A2LCB2aW50OG1mOF90IG9wNywgdmludDhtZjhfdCBvcDgsIHZpbnQ4bWY4X3Qgb3A5LCB2aW50OG1mOF90IG9wMTAsIGNvbnN0IGludDhfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2Ym9vbDhfdCBvcDUsIHZ1aW50OG0xX3Qgb3A2LCB2dWludDhtMV90IG9wNywgdnVpbnQ4bTFfdCBvcDgsIHZ1aW50OG0xX3Qgb3A5LCB2dWludDhtMV90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bThfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQ4X3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCBjb25zdCB1aW50OF90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCBjb25zdCB1aW50OF90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdThtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDhtZjRfdCAqIG9wMCwgdnVpbnQ4bWY0X3QgKiBvcDEsIHZ1aW50OG1mNF90ICogb3AyLCB2dWludDhtZjRfdCAqIG9wMywgdnVpbnQ4bWY0X3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50OG1mNF90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgY29uc3QgdWludDhfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgY29uc3QgdWludDhfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3U4bWY4X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQ4bWY4X3QgKiBvcDAsIHZ1aW50OG1mOF90ICogb3AxLCB2dWludDhtZjhfdCAqIG9wMiwgdnVpbnQ4bWY4X3QgKiBvcDMsIHZ1aW50OG1mOF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDhtZjhfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIGNvbnN0IHVpbnQ4X3QgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG04X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG0xX3QgKiBvcDAsIHZpbnQ4bTFfdCAqIG9wMSwgdmludDhtMV90ICogb3AyLCB2aW50OG0xX3QgKiBvcDMsIHZpbnQ4bTFfdCAqIG9wNCwgdmludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZpbnQ4bTFfdCBvcDcsIHZpbnQ4bTFfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIGNvbnN0IGludDhfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDhtZjJfdCBvcDcsIHZpbnQ4bWYyX3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgY29uc3QgaW50OF90ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgY29uc3QgaW50OF90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50OG1mNF90IG9wNywgdmludDhtZjRfdCBvcDgsIHZpbnQ4bWY0X3Qgb3A5LCB2aW50OG1mNF90IG9wMTAsIHZpbnQ4bWY0X3Qgb3AxMSwgdmludDhtZjRfdCBvcDEyLCBjb25zdCBpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCBjb25zdCBpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQ4bWY4X3Qgb3A3LCB2aW50OG1mOF90IG9wOCwgdmludDhtZjhfdCBvcDksIHZpbnQ4bWY4X3Qgb3AxMCwgdmludDhtZjhfdCBvcDExLCB2aW50OG1mOF90IG9wMTIsIGNvbnN0IGludDhfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG04X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2Ym9vbDhfdCBvcDYsIHZ1aW50OG0xX3Qgb3A3LCB2dWludDhtMV90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bThfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCBjb25zdCB1aW50OF90ICogb3A2LCB2dWludDY0bTRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDhtZjJfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBjb25zdCB1aW50OF90ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgY29uc3QgdWludDhfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgY29uc3QgdWludDhfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIGNvbnN0IHVpbnQ4X3QgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91OG1mOF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50OG1mOF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIGNvbnN0IHVpbnQ4X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmJvb2w4X3Qgb3A3LCB2aW50OG0xX3Qgb3A4LCB2aW50OG0xX3Qgb3A5LCB2aW50OG0xX3Qgb3AxMCwgdmludDhtMV90IG9wMTEsIHZpbnQ4bTFfdCBvcDEyLCB2aW50OG0xX3Qgb3AxMywgdmludDhtMV90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bWYyX3QgKiBvcDAsIHZpbnQ4bWYyX3QgKiBvcDEsIHZpbnQ4bWYyX3QgKiBvcDIsIHZpbnQ4bWYyX3QgKiBvcDMsIHZpbnQ4bWYyX3QgKiBvcDQsIHZpbnQ4bWYyX3QgKiBvcDUsIHZpbnQ4bWYyX3QgKiBvcDYsIGNvbnN0IGludDhfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2k4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDhtZjJfdCAqIG9wMCwgdmludDhtZjJfdCAqIG9wMSwgdmludDhtZjJfdCAqIG9wMiwgdmludDhtZjJfdCAqIG9wMywgdmludDhtZjJfdCAqIG9wNCwgdmludDhtZjJfdCAqIG9wNSwgdmludDhtZjJfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDhtZjJfdCBvcDgsIHZpbnQ4bWYyX3Qgb3A5LCB2aW50OG1mMl90IG9wMTAsIHZpbnQ4bWYyX3Qgb3AxMSwgdmludDhtZjJfdCBvcDEyLCB2aW50OG1mMl90IG9wMTMsIHZpbnQ4bWYyX3Qgb3AxNCwgY29uc3QgaW50OF90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDhtZjRfdCAqIG9wMCwgdmludDhtZjRfdCAqIG9wMSwgdmludDhtZjRfdCAqIG9wMiwgdmludDhtZjRfdCAqIG9wMywgdmludDhtZjRfdCAqIG9wNCwgdmludDhtZjRfdCAqIG9wNSwgdmludDhtZjRfdCAqIG9wNiwgY29uc3QgaW50OF90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50OG1mNF90IG9wOCwgdmludDhtZjRfdCBvcDksIHZpbnQ4bWY0X3Qgb3AxMCwgdmludDhtZjRfdCBvcDExLCB2aW50OG1mNF90IG9wMTIsIHZpbnQ4bWY0X3Qgb3AxMywgdmludDhtZjRfdCBvcDE0LCBjb25zdCBpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCBjb25zdCBpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9pOG1mOF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQ4bWY4X3QgKiBvcDAsIHZpbnQ4bWY4X3QgKiBvcDEsIHZpbnQ4bWY4X3QgKiBvcDIsIHZpbnQ4bWY4X3QgKiBvcDMsIHZpbnQ4bWY4X3QgKiBvcDQsIHZpbnQ4bWY4X3QgKiBvcDUsIHZpbnQ4bWY4X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQ4bWY4X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIGNvbnN0IGludDhfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bTFfdCAqIG9wMCwgdnVpbnQ4bTFfdCAqIG9wMSwgdnVpbnQ4bTFfdCAqIG9wMiwgdnVpbnQ4bTFfdCAqIG9wMywgdnVpbnQ4bTFfdCAqIG9wNCwgdnVpbnQ4bTFfdCAqIG9wNSwgdnVpbnQ4bTFfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtMV90ICogb3AwLCB2dWludDhtMV90ICogb3AxLCB2dWludDhtMV90ICogb3AyLCB2dWludDhtMV90ICogb3AzLCB2dWludDhtMV90ICogb3A0LCB2dWludDhtMV90ICogb3A1LCB2dWludDhtMV90ICogb3A2LCB2Ym9vbDhfdCBvcDcsIHZ1aW50OG0xX3Qgb3A4LCB2dWludDhtMV90IG9wOSwgdnVpbnQ4bTFfdCBvcDEwLCB2dWludDhtMV90IG9wMTEsIHZ1aW50OG0xX3Qgb3AxMiwgdnVpbnQ4bTFfdCBvcDEzLCB2dWludDhtMV90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bThfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtZjJfdCAqIG9wMCwgdnVpbnQ4bWYyX3QgKiBvcDEsIHZ1aW50OG1mMl90ICogb3AyLCB2dWludDhtZjJfdCAqIG9wMywgdnVpbnQ4bWYyX3QgKiBvcDQsIHZ1aW50OG1mMl90ICogb3A1LCB2dWludDhtZjJfdCAqIG9wNiwgY29uc3QgdWludDhfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bWYyX3QgKiBvcDAsIHZ1aW50OG1mMl90ICogb3AxLCB2dWludDhtZjJfdCAqIG9wMiwgdnVpbnQ4bWYyX3QgKiBvcDMsIHZ1aW50OG1mMl90ICogb3A0LCB2dWludDhtZjJfdCAqIG9wNSwgdnVpbnQ4bWYyX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50OG1mMl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBjb25zdCB1aW50OF90ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQ4X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91OG1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50OG1mNF90ICogb3AwLCB2dWludDhtZjRfdCAqIG9wMSwgdnVpbnQ4bWY0X3QgKiBvcDIsIHZ1aW50OG1mNF90ICogb3AzLCB2dWludDhtZjRfdCAqIG9wNCwgdnVpbnQ4bWY0X3QgKiBvcDUsIHZ1aW50OG1mNF90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDhtZjRfdCBvcDgsIHZ1aW50OG1mNF90IG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgdnVpbnQ4bWY0X3Qgb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgdnVpbnQ4bWY0X3Qgb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgY29uc3QgdWludDhfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3U4bWY4KSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50OG1mOF90ICogb3AwLCB2dWludDhtZjhfdCAqIG9wMSwgdnVpbnQ4bWY4X3QgKiBvcDIsIHZ1aW50OG1mOF90ICogb3AzLCB2dWludDhtZjhfdCAqIG9wNCwgdnVpbnQ4bWY4X3QgKiBvcDUsIHZ1aW50OG1mOF90ICogb3A2LCBjb25zdCB1aW50OF90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCB2dWludDhtZjhfdCBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHZ1aW50OG1mOF90IG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHZ1aW50OG1mOF90IG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIGNvbnN0IHVpbnQ4X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQ4bTFfdCAqIG9wMCwgdmludDhtMV90ICogb3AxLCB2aW50OG0xX3QgKiBvcDIsIHZpbnQ4bTFfdCAqIG9wMywgdmludDhtMV90ICogb3A0LCB2aW50OG0xX3QgKiBvcDUsIHZpbnQ4bTFfdCAqIG9wNiwgdmludDhtMV90ICogb3A3LCB2Ym9vbDhfdCBvcDgsIHZpbnQ4bTFfdCBvcDksIHZpbnQ4bTFfdCBvcDEwLCB2aW50OG0xX3Qgb3AxMSwgdmludDhtMV90IG9wMTIsIHZpbnQ4bTFfdCBvcDEzLCB2aW50OG0xX3Qgb3AxNCwgdmludDhtMV90IG9wMTUsIHZpbnQ4bTFfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bThfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mMl90ICogb3AwLCB2aW50OG1mMl90ICogb3AxLCB2aW50OG1mMl90ICogb3AyLCB2aW50OG1mMl90ICogb3AzLCB2aW50OG1mMl90ICogb3A0LCB2aW50OG1mMl90ICogb3A1LCB2aW50OG1mMl90ICogb3A2LCB2aW50OG1mMl90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50OG1mMl90IG9wOSwgdmludDhtZjJfdCBvcDEwLCB2aW50OG1mMl90IG9wMTEsIHZpbnQ4bWYyX3Qgb3AxMiwgdmludDhtZjJfdCBvcDEzLCB2aW50OG1mMl90IG9wMTQsIHZpbnQ4bWYyX3Qgb3AxNSwgdmludDhtZjJfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mNF90ICogb3AwLCB2aW50OG1mNF90ICogb3AxLCB2aW50OG1mNF90ICogb3AyLCB2aW50OG1mNF90ICogb3AzLCB2aW50OG1mNF90ICogb3A0LCB2aW50OG1mNF90ICogb3A1LCB2aW50OG1mNF90ICogb3A2LCB2aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50OG1mNF90IG9wOSwgdmludDhtZjRfdCBvcDEwLCB2aW50OG1mNF90IG9wMTEsIHZpbnQ4bWY0X3Qgb3AxMiwgdmludDhtZjRfdCBvcDEzLCB2aW50OG1mNF90IG9wMTQsIHZpbnQ4bWY0X3Qgb3AxNSwgdmludDhtZjRfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pOG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCBjb25zdCBpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50OG1mOF90ICogb3AwLCB2aW50OG1mOF90ICogb3AxLCB2aW50OG1mOF90ICogb3AyLCB2aW50OG1mOF90ICogb3AzLCB2aW50OG1mOF90ICogb3A0LCB2aW50OG1mOF90ICogb3A1LCB2aW50OG1mOF90ICogb3A2LCB2aW50OG1mOF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50OG1mOF90IG9wOSwgdmludDhtZjhfdCBvcDEwLCB2aW50OG1mOF90IG9wMTEsIHZpbnQ4bWY4X3Qgb3AxMiwgdmludDhtZjhfdCBvcDEzLCB2aW50OG1mOF90IG9wMTQsIHZpbnQ4bWY4X3Qgb3AxNSwgdmludDhtZjhfdCBvcDE2LCBjb25zdCBpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG0xX3QgKiBvcDAsIHZ1aW50OG0xX3QgKiBvcDEsIHZ1aW50OG0xX3QgKiBvcDIsIHZ1aW50OG0xX3QgKiBvcDMsIHZ1aW50OG0xX3QgKiBvcDQsIHZ1aW50OG0xX3QgKiBvcDUsIHZ1aW50OG0xX3QgKiBvcDYsIHZ1aW50OG0xX3QgKiBvcDcsIHZib29sOF90IG9wOCwgdnVpbnQ4bTFfdCBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgdnVpbnQ4bTFfdCBvcDExLCB2dWludDhtMV90IG9wMTIsIHZ1aW50OG0xX3Qgb3AxMywgdnVpbnQ4bTFfdCBvcDE0LCB2dWludDhtMV90IG9wMTUsIHZ1aW50OG0xX3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWYyKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgY29uc3QgdWludDhfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50OG1mMl90ICogb3AwLCB2dWludDhtZjJfdCAqIG9wMSwgdnVpbnQ4bWYyX3QgKiBvcDIsIHZ1aW50OG1mMl90ICogb3AzLCB2dWludDhtZjJfdCAqIG9wNCwgdnVpbnQ4bWYyX3QgKiBvcDUsIHZ1aW50OG1mMl90ICogb3A2LCB2dWludDhtZjJfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCB2dWludDhtZjJfdCBvcDEwLCB2dWludDhtZjJfdCBvcDExLCB2dWludDhtZjJfdCBvcDEyLCB2dWludDhtZjJfdCBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCB2dWludDhtZjJfdCBvcDE1LCB2dWludDhtZjJfdCBvcDE2LCBjb25zdCB1aW50OF90ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCBjb25zdCB1aW50OF90ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3U4bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQ4bWY0X3QgKiBvcDAsIHZ1aW50OG1mNF90ICogb3AxLCB2dWludDhtZjRfdCAqIG9wMiwgdnVpbnQ4bWY0X3QgKiBvcDMsIHZ1aW50OG1mNF90ICogb3A0LCB2dWludDhtZjRfdCAqIG9wNSwgdnVpbnQ4bWY0X3QgKiBvcDYsIHZ1aW50OG1mNF90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDhtZjRfdCBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHZ1aW50OG1mNF90IG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHZ1aW50OG1mNF90IG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHZ1aW50OG1mNF90IG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIGNvbnN0IHVpbnQ4X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91OG1mOCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIGNvbnN0IHVpbnQ4X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdThtZjhfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDhtZjhfdCAqIG9wMCwgdnVpbnQ4bWY4X3QgKiBvcDEsIHZ1aW50OG1mOF90ICogb3AyLCB2dWludDhtZjhfdCAqIG9wMywgdnVpbnQ4bWY4X3QgKiBvcDQsIHZ1aW50OG1mOF90ICogb3A1LCB2dWludDhtZjhfdCAqIG9wNiwgdnVpbnQ4bWY4X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50OG1mOF90IG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgdnVpbnQ4bWY4X3Qgb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgdnVpbnQ4bWY4X3Qgb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgdnVpbnQ4bWY4X3Qgb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgY29uc3QgdWludDhfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MTZtMV90IG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCB2dWludDE2bTJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ4bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm00X3QgKiBvcDAsIHZ1aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZ1aW50MTZtNF90IG9wMywgdnVpbnQxNm00X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQxNm1mMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50OG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTgodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50OG1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDhtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50OG1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHZ1aW50MTZtMV90IG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bTRfdCAqIG9wMCwgdmludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2aW50MTZtNF90IG9wMywgdmludDE2bTRfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2dWludDE2bWYyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDE2bWY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgdmludDE2bTFfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2aW50MTZtMl90IG9wNCwgdmludDE2bTJfdCBvcDUsIHZpbnQxNm0yX3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MTZtZjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCBjb25zdCBpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHZpbnQxNm0yX3Qgb3A3LCB2aW50MTZtMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQxNm1mNF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCBjb25zdCB1aW50MTZfdCAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgdnVpbnQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIHZ1aW50MTZtMl90IG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgdmludDE2bWYyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgY29uc3QgaW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCBjb25zdCBpbnQxNl90ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgY29uc3QgaW50MTZfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIHZpbnQxNm1mNF90IG9wMTMsIHZpbnQxNm1mNF90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHZ1aW50MTZtMV90IG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHZ1aW50MTZtMV90IG9wMTMsIHZ1aW50MTZtMV90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCB2aW50MTZtZjJfdCBvcDExLCB2aW50MTZtZjJfdCBvcDEyLCB2aW50MTZtZjJfdCBvcDEzLCB2aW50MTZtZjJfdCBvcDE0LCB2aW50MTZtZjJfdCBvcDE1LCB2aW50MTZtZjJfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHZ1aW50MTZtZjJfdCBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgdnVpbnQxNm1mMl90IG9wMTMsIHZ1aW50MTZtZjJfdCBvcDE0LCB2dWludDE2bWYyX3Qgb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgdnVpbnQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHZ1aW50MTZtZjRfdCBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDE2bTFfdCBvcDMsIHZpbnQxNm0xX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MTZtMl90IG9wMywgdmludDE2bTJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtNF90ICogb3AwLCB2aW50MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZpbnQxNm00X3Qgb3AzLCB2aW50MTZtNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQxNm1mMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQxNm1mNF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UxNm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtNF90ICogb3AwLCB2dWludDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2dWludDE2bTRfdCBvcDMsIHZ1aW50MTZtNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQxNm1mNF90IG9wMywgdnVpbnQxNm1mNF90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MTZtMV90IG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2dWludDE2bTJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCB2dWludDE2bTJfdCBvcDUsIHZ1aW50MTZtMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDE2bWYyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCBjb25zdCB1aW50MTZfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MTZtMV90IG9wNSwgdmludDE2bTFfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgY29uc3QgaW50MTZfdCAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bTJfdCAqIG9wMCwgdmludDE2bTJfdCAqIG9wMSwgdmludDE2bTJfdCAqIG9wMiwgdmludDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2aW50MTZtMl90IG9wNSwgdmludDE2bTJfdCBvcDYsIHZpbnQxNm0yX3Qgb3A3LCB2aW50MTZtMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZpbnQxNm1mMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgY29uc3QgaW50MTZfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgdmludDE2bWY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIGNvbnN0IGludDE2X3QgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDMybTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50MzJtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCB2dWludDE2bWY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZpbnQxNm0xX3Qgb3A2LCB2aW50MTZtMV90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIGNvbnN0IGludDE2X3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50MzJtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgdnVpbnQxNm1mMl90IG9wNywgdnVpbnQxNm1mMl90IG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgdnVpbnQxNm1mNF90IG9wNywgdnVpbnQxNm1mNF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCBjb25zdCBpbnQxNl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2dWludDE2bTFfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50MzJtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIGNvbnN0IHVpbnQxNl90ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIGNvbnN0IGludDE2X3QgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIGNvbnN0IGludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCBjb25zdCBpbnQxNl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50MzJtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDE2bWY0X3Qgb3A4LCB2dWludDE2bWY0X3Qgb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgdnVpbnQxNm1mNF90IG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCB2dWludDE2bWY0X3Qgb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZpbnQxNm0xX3QgKiBvcDYsIHZpbnQxNm0xX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCB2aW50MTZtMV90IG9wMTEsIHZpbnQxNm0xX3Qgb3AxMiwgdmludDE2bTFfdCBvcDEzLCB2aW50MTZtMV90IG9wMTQsIHZpbnQxNm0xX3Qgb3AxNSwgdmludDE2bTFfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2aW50MTZtZjJfdCAqIG9wNywgY29uc3QgaW50MTZfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgdmludDE2bWYyX3Qgb3AxNSwgdmludDE2bWYyX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgdmludDE2bWY0X3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCB2dWludDE2bTFfdCAqIG9wNiwgdnVpbnQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgdnVpbnQxNm0xX3Qgb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgdnVpbnQxNm0xX3Qgb3AxNSwgdnVpbnQxNm0xX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2dWludDE2bWYyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCAqIG9wNiwgdnVpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHZ1aW50MTZtZjJfdCBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgY29uc3QgdWludDE2X3QgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIGNvbnN0IHVpbnQxNl90ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHZ1aW50MTZtZjRfdCBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgdnVpbnQxNm1mNF90IG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCB2dWludDE2bWY0X3Qgb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIGNvbnN0IHVpbnQxNl90ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQxNm0xX3Qgb3AzLCB2aW50MTZtMV90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIGNvbnN0IGludDE2X3QgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDE2bTJfdCBvcDMsIHZpbnQxNm0yX3Qgb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgaW50MTZfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDE2bWYyX3Qgb3AzLCB2aW50MTZtZjJfdCBvcDQsIGNvbnN0IGludDE2X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCBjb25zdCBpbnQxNl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MTZtZjRfdCBvcDMsIHZpbnQxNm1mNF90IG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCBjb25zdCB1aW50MTZfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm0yX3QgKiBvcDAsIHZ1aW50MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MTZtMl90IG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgY29uc3QgdWludDE2X3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQxNm1mMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgY29uc3QgdWludDE2X3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIGNvbnN0IHVpbnQxNl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgY29uc3QgaW50MTZfdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmludDE2bTFfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IGludDE2X3QgKiBvcDMsIHZ1aW50NjRtOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQxNm0yX3QgKiBvcDAsIHZpbnQxNm0yX3QgKiBvcDEsIHZpbnQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmludDE2bTJfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDE2bWYyX3Qgb3A0LCB2aW50MTZtZjJfdCBvcDUsIHZpbnQxNm1mMl90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCBjb25zdCBpbnQxNl90ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDE2bWY0X3Qgb3A0LCB2aW50MTZtZjRfdCBvcDUsIHZpbnQxNm1mNF90IG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDE2bTFfdCBvcDQsIHZ1aW50MTZtMV90IG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X3UxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZ1aW50MTZtMl90IG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCB2dWludDE2bTJfdCBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQxNl90ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQxNm1mMl90IG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgY29uc3QgdWludDE2X3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDE2bWY0X3Qgb3A0LCB2dWludDE2bWY0X3Qgb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQxNm0xX3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCBjb25zdCBpbnQxNl90ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtMl90ICogb3AwLCB2aW50MTZtMl90ICogb3AxLCB2aW50MTZtMl90ICogb3AyLCB2aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZpbnQxNm0yX3Qgb3A1LCB2aW50MTZtMl90IG9wNiwgdmludDE2bTJfdCBvcDcsIHZpbnQxNm0yX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bThfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmludDE2bWYyX3Qgb3A1LCB2aW50MTZtZjJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIGNvbnN0IGludDE2X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDE2bWY0X3Qgb3A1LCB2aW50MTZtZjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCBjb25zdCBpbnQxNl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2dWludDE2bTFfdCBvcDUsIHZ1aW50MTZtMV90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bTJfdCAqIG9wMCwgdnVpbnQxNm0yX3QgKiBvcDEsIHZ1aW50MTZtMl90ICogb3AyLCB2dWludDE2bTJfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtMl90ICogb3AwLCB2dWludDE2bTJfdCAqIG9wMSwgdnVpbnQxNm0yX3QgKiBvcDIsIHZ1aW50MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZ1aW50MTZtMl90IG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCB2dWludDE2bTJfdCBvcDcsIHZ1aW50MTZtMl90IG9wOCwgY29uc3QgdWludDE2X3QgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQxNl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDE2bWYyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBjb25zdCB1aW50MTZfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgY29uc3QgdWludDE2X3QgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIGNvbnN0IHVpbnQxNl90ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCBjb25zdCBpbnQxNl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2aW50MTZtMV90IG9wNiwgdmludDE2bTFfdCBvcDcsIHZpbnQxNm0xX3Qgb3A4LCB2aW50MTZtMV90IG9wOSwgdmludDE2bTFfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDE2bWYyX3Qgb3A2LCB2aW50MTZtZjJfdCBvcDcsIHZpbnQxNm1mMl90IG9wOCwgdmludDE2bWYyX3Qgb3A5LCB2aW50MTZtZjJfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgY29uc3QgaW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDE2bWY0X3Qgb3A2LCB2aW50MTZtZjRfdCBvcDcsIHZpbnQxNm1mNF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCBjb25zdCBpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2dWludDE2bTFfdCBvcDYsIHZ1aW50MTZtMV90IG9wNywgdnVpbnQxNm0xX3Qgb3A4LCB2dWludDE2bTFfdCBvcDksIHZ1aW50MTZtMV90IG9wMTAsIGNvbnN0IHVpbnQxNl90ICogb3AxMSwgdnVpbnQ2NG00X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCBjb25zdCB1aW50MTZfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MTZtZjJfdCAqIG9wMCwgdnVpbnQxNm1mMl90ICogb3AxLCB2dWludDE2bWYyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCAqIG9wMywgdnVpbnQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2dWludDE2bWYyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgY29uc3QgdWludDE2X3QgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MTZtZjQpKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIGNvbnN0IHVpbnQxNl90ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBjb25zdCB1aW50MTZfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIGNvbnN0IGludDE2X3QgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm0xX3QgKiBvcDAsIHZpbnQxNm0xX3QgKiBvcDEsIHZpbnQxNm0xX3QgKiBvcDIsIHZpbnQxNm0xX3QgKiBvcDMsIHZpbnQxNm0xX3QgKiBvcDQsIHZpbnQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZpbnQxNm0xX3Qgb3A3LCB2aW50MTZtMV90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQxNm1mMl90IG9wNywgdmludDE2bWYyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgY29uc3QgaW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQxNm1mNF90IG9wNywgdmludDE2bWY0X3Qgb3A4LCB2aW50MTZtZjRfdCBvcDksIHZpbnQxNm1mNF90IG9wMTAsIHZpbnQxNm1mNF90IG9wMTEsIHZpbnQxNm1mNF90IG9wMTIsIGNvbnN0IGludDE2X3QgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bTFfdCAqIG9wMCwgdnVpbnQxNm0xX3QgKiBvcDEsIHZ1aW50MTZtMV90ICogb3AyLCB2dWludDE2bTFfdCAqIG9wMywgdnVpbnQxNm0xX3QgKiBvcDQsIHZ1aW50MTZtMV90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCB2dWludDE2bTFfdCBvcDgsIHZ1aW50MTZtMV90IG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgdnVpbnQxNm0xX3Qgb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgY29uc3QgdWludDE2X3QgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgY29uc3QgdWludDE2X3QgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl91MTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDE2bWYyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBjb25zdCB1aW50MTZfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCBjb25zdCB1aW50MTZfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIGNvbnN0IHVpbnQxNl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTE2bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmludDE2bTFfdCBvcDgsIHZpbnQxNm0xX3Qgb3A5LCB2aW50MTZtMV90IG9wMTAsIHZpbnQxNm0xX3Qgb3AxMSwgdmludDE2bTFfdCBvcDEyLCB2aW50MTZtMV90IG9wMTMsIHZpbnQxNm0xX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQxNm1mMl90ICogb3AwLCB2aW50MTZtZjJfdCAqIG9wMSwgdmludDE2bWYyX3QgKiBvcDIsIHZpbnQxNm1mMl90ICogb3AzLCB2aW50MTZtZjJfdCAqIG9wNCwgdmludDE2bWYyX3QgKiBvcDUsIHZpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2aW50MTZtZjJfdCBvcDgsIHZpbnQxNm1mMl90IG9wOSwgdmludDE2bWYyX3Qgb3AxMCwgdmludDE2bWYyX3Qgb3AxMSwgdmludDE2bWYyX3Qgb3AxMiwgdmludDE2bWYyX3Qgb3AxMywgdmludDE2bWYyX3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MTZtZjRfdCAqIG9wMCwgdmludDE2bWY0X3QgKiBvcDEsIHZpbnQxNm1mNF90ICogb3AyLCB2aW50MTZtZjRfdCAqIG9wMywgdmludDE2bWY0X3QgKiBvcDQsIHZpbnQxNm1mNF90ICogb3A1LCB2aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgaW50MTZfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MTZtZjRfdCBvcDgsIHZpbnQxNm1mNF90IG9wOSwgdmludDE2bWY0X3Qgb3AxMCwgdmludDE2bWY0X3Qgb3AxMSwgdmludDE2bWY0X3Qgb3AxMiwgdmludDE2bWY0X3Qgb3AxMywgdmludDE2bWY0X3Qgb3AxNCwgY29uc3QgaW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCBjb25zdCB1aW50MTZfdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZ1aW50MTZtMV90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBjb25zdCB1aW50MTZfdCAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQxNl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDE2bWYyX3Qgb3A4LCB2dWludDE2bWYyX3Qgb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgdnVpbnQxNm1mMl90IG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCB2dWludDE2bWYyX3Qgb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIGNvbnN0IHVpbnQxNl90ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MTZtZjRfdCAqIG9wMCwgdnVpbnQxNm1mNF90ICogb3AxLCB2dWludDE2bWY0X3QgKiBvcDIsIHZ1aW50MTZtZjRfdCAqIG9wMywgdnVpbnQxNm1mNF90ICogb3A0LCB2dWludDE2bWY0X3QgKiBvcDUsIHZ1aW50MTZtZjRfdCAqIG9wNiwgY29uc3QgdWludDE2X3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl91MTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgY29uc3QgdWludDE2X3QgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50MTZtMV90ICogb3AwLCB2aW50MTZtMV90ICogb3AxLCB2aW50MTZtMV90ICogb3AyLCB2aW50MTZtMV90ICogb3AzLCB2aW50MTZtMV90ICogb3A0LCB2aW50MTZtMV90ICogb3A1LCB2aW50MTZtMV90ICogb3A2LCB2aW50MTZtMV90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDY0bTRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bTFfdCAqIG9wMCwgdmludDE2bTFfdCAqIG9wMSwgdmludDE2bTFfdCAqIG9wMiwgdmludDE2bTFfdCAqIG9wMywgdmludDE2bTFfdCAqIG9wNCwgdmludDE2bTFfdCAqIG9wNSwgdmludDE2bTFfdCAqIG9wNiwgdmludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmludDE2bTFfdCBvcDksIHZpbnQxNm0xX3Qgb3AxMCwgdmludDE2bTFfdCBvcDExLCB2aW50MTZtMV90IG9wMTIsIHZpbnQxNm0xX3Qgb3AxMywgdmludDE2bTFfdCBvcDE0LCB2aW50MTZtMV90IG9wMTUsIHZpbnQxNm0xX3Qgb3AxNiwgY29uc3QgaW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2aW50MTZtZjJfdCAqIG9wMCwgdmludDE2bWYyX3QgKiBvcDEsIHZpbnQxNm1mMl90ICogb3AyLCB2aW50MTZtZjJfdCAqIG9wMywgdmludDE2bWYyX3QgKiBvcDQsIHZpbnQxNm1mMl90ICogb3A1LCB2aW50MTZtZjJfdCAqIG9wNiwgdmludDE2bWYyX3QgKiBvcDcsIGNvbnN0IGludDE2X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bWYyX3QgKiBvcDAsIHZpbnQxNm1mMl90ICogb3AxLCB2aW50MTZtZjJfdCAqIG9wMiwgdmludDE2bWYyX3QgKiBvcDMsIHZpbnQxNm1mMl90ICogb3A0LCB2aW50MTZtZjJfdCAqIG9wNSwgdmludDE2bWYyX3QgKiBvcDYsIHZpbnQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MTZtZjJfdCBvcDksIHZpbnQxNm1mMl90IG9wMTAsIHZpbnQxNm1mMl90IG9wMTEsIHZpbnQxNm1mMl90IG9wMTIsIHZpbnQxNm1mMl90IG9wMTMsIHZpbnQxNm1mMl90IG9wMTQsIHZpbnQxNm1mMl90IG9wMTUsIHZpbnQxNm1mMl90IG9wMTYsIGNvbnN0IGludDE2X3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDE2bWY0X3QgKiBvcDAsIHZpbnQxNm1mNF90ICogb3AxLCB2aW50MTZtZjRfdCAqIG9wMiwgdmludDE2bWY0X3QgKiBvcDMsIHZpbnQxNm1mNF90ICogb3A0LCB2aW50MTZtZjRfdCAqIG9wNSwgdmludDE2bWY0X3QgKiBvcDYsIHZpbnQxNm1mNF90ICogb3A3LCBjb25zdCBpbnQxNl90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQxNm1mNF90ICogb3AwLCB2aW50MTZtZjRfdCAqIG9wMSwgdmludDE2bWY0X3QgKiBvcDIsIHZpbnQxNm1mNF90ICogb3AzLCB2aW50MTZtZjRfdCAqIG9wNCwgdmludDE2bWY0X3QgKiBvcDUsIHZpbnQxNm1mNF90ICogb3A2LCB2aW50MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDE2bWY0X3Qgb3A5LCB2aW50MTZtZjRfdCBvcDEwLCB2aW50MTZtZjRfdCBvcDExLCB2aW50MTZtZjRfdCBvcDEyLCB2aW50MTZtZjRfdCBvcDEzLCB2aW50MTZtZjRfdCBvcDE0LCB2aW50MTZtZjRfdCBvcDE1LCB2aW50MTZtZjRfdCBvcDE2LCBjb25zdCBpbnQxNl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm0xX3QgKiBvcDAsIHZ1aW50MTZtMV90ICogb3AxLCB2dWludDE2bTFfdCAqIG9wMiwgdnVpbnQxNm0xX3QgKiBvcDMsIHZ1aW50MTZtMV90ICogb3A0LCB2dWludDE2bTFfdCAqIG9wNSwgdnVpbnQxNm0xX3QgKiBvcDYsIHZ1aW50MTZtMV90ICogb3A3LCBjb25zdCB1aW50MTZfdCAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50MTZtMV90ICogb3AwLCB2dWludDE2bTFfdCAqIG9wMSwgdnVpbnQxNm0xX3QgKiBvcDIsIHZ1aW50MTZtMV90ICogb3AzLCB2dWludDE2bTFfdCAqIG9wNCwgdnVpbnQxNm0xX3QgKiBvcDUsIHZ1aW50MTZtMV90ICogb3A2LCB2dWludDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCB2dWludDE2bTFfdCBvcDEwLCB2dWludDE2bTFfdCBvcDExLCB2dWludDE2bTFfdCBvcDEyLCB2dWludDE2bTFfdCBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCB2dWludDE2bTFfdCBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDE2bWYyX3QgKiBvcDAsIHZ1aW50MTZtZjJfdCAqIG9wMSwgdnVpbnQxNm1mMl90ICogb3AyLCB2dWludDE2bWYyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCAqIG9wNCwgdnVpbnQxNm1mMl90ICogb3A1LCB2dWludDE2bWYyX3QgKiBvcDYsIHZ1aW50MTZtZjJfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm1mMl90ICogb3AwLCB2dWludDE2bWYyX3QgKiBvcDEsIHZ1aW50MTZtZjJfdCAqIG9wMiwgdnVpbnQxNm1mMl90ICogb3AzLCB2dWludDE2bWYyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCAqIG9wNSwgdnVpbnQxNm1mMl90ICogb3A2LCB2dWludDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCB2dWludDE2bWYyX3Qgb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHZ1aW50MTZtZjJfdCBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgdnVpbnQxNm1mMl90IG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UxNm1mNCkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDE2bWY0X3QgKiBvcDAsIHZ1aW50MTZtZjRfdCAqIG9wMSwgdnVpbnQxNm1mNF90ICogb3AyLCB2dWludDE2bWY0X3QgKiBvcDMsIHZ1aW50MTZtZjRfdCAqIG9wNCwgdnVpbnQxNm1mNF90ICogb3A1LCB2dWludDE2bWY0X3QgKiBvcDYsIHZ1aW50MTZtZjRfdCAqIG9wNywgY29uc3QgdWludDE2X3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTE2bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQxNm1mNF90ICogb3AwLCB2dWludDE2bWY0X3QgKiBvcDEsIHZ1aW50MTZtZjRfdCAqIG9wMiwgdnVpbnQxNm1mNF90ICogb3AzLCB2dWludDE2bWY0X3QgKiBvcDQsIHZ1aW50MTZtZjRfdCAqIG9wNSwgdnVpbnQxNm1mNF90ICogb3A2LCB2dWludDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCB2dWludDE2bWY0X3Qgb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHZ1aW50MTZtZjRfdCBvcDEzLCB2dWludDE2bWY0X3Qgb3AxNCwgdnVpbnQxNm1mNF90IG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBjb25zdCB1aW50MTZfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2aW50MzJtMl90IG9wMywgdmludDMybTJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2kzMm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl91MzJtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZ1aW50MzJtMl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQ4bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfaTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmludDMybWYyX3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnM2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdnVpbnQzMm0yX3Qgb3A0LCB2dWludDMybTJfdCBvcDUsIHZ1aW50MzJtMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ4bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2aW50MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIHZpbnQzMm0yX3Qgb3A3LCB2aW50MzJtMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTgodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDhtZjhfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgdnVpbnQzMm0xX3Qgb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ4bWY4X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTgodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2aW50MzJtMV90IG9wMywgdmludDMybTFfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfaTMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmludDMybWYyX3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm00X3QgKiBvcDAsIHZ1aW50MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZ1aW50MzJtNF90IG9wMywgdnVpbnQzMm00X3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgdmludDMybTFfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdnVpbnQzMm0xX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZpbnQzMm0yX3Qgb3A1LCB2aW50MzJtMl90IG9wNiwgdmludDMybTJfdCBvcDcsIHZpbnQzMm0yX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIGNvbnN0IGludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2dWludDMybTFfdCBvcDUsIHZ1aW50MzJtMV90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIGNvbnN0IHVpbnQzMl90ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgY29uc3QgdWludDMyX3QgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIGNvbnN0IGludDMyX3QgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCBjb25zdCBpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgdnVpbnQzMm0xX3Qgb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgY29uc3QgdWludDMyX3QgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgdmludDMybTFfdCBvcDExLCB2aW50MzJtMV90IG9wMTIsIHZpbnQzMm0xX3Qgb3AxMywgdmludDMybTFfdCBvcDE0LCB2aW50MzJtMV90IG9wMTUsIHZpbnQzMm0xX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgdmludDMybWYyX3Qgb3AxNSwgdmludDMybWYyX3Qgb3AxNiwgY29uc3QgaW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdnVpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMTYodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIGNvbnN0IHVpbnQzMl90ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgdnVpbnQzMm1mMl90IG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCB2dWludDMybWYyX3Qgb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIGNvbnN0IHVpbnQzMl90ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZpbnQzMm0xX3Qgb3AzLCB2aW50MzJtMV90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZpbnQzMm0yX3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2kzMm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIGNvbnN0IGludDMyX3QgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm00X3QgKiBvcDAsIHZpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmludDMybTRfdCBvcDMsIHZpbnQzMm00X3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZpbnQzMm1mMl90IG9wMywgdmludDMybWYyX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdnVpbnQzMm1mMl90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmludDMybTFfdCBvcDQsIHZpbnQzMm0xX3Qgb3A1LCB2aW50MzJtMV90IG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2kzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZpbnQzMm0yX3QgKiBvcDAsIHZpbnQzMm0yX3QgKiBvcDEsIHZpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCB2aW50MzJtMl90IG9wNSwgdmludDMybTJfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgY29uc3QgaW50MzJfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2dWludDMybTJfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCBjb25zdCB1aW50MzJfdCAqIG9wMywgdnVpbnQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmludDMybWYyX3Qgb3A1LCB2aW50MzJtZjJfdCBvcDYsIHZpbnQzMm1mMl90IG9wNywgdmludDMybWYyX3Qgb3A4LCBjb25zdCBpbnQzMl90ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIHZ1aW50MzJtMV90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2dWludDMybTJfdCAqIG9wMCwgdnVpbnQzMm0yX3QgKiBvcDEsIHZ1aW50MzJtMl90ICogb3AyLCB2dWludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIHZ1aW50MzJtMl90IG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgY29uc3QgdWludDMyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZpbnQzMm0xX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIGNvbnN0IGludDMyX3QgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmludDMybWYyX3Qgb3A2LCB2aW50MzJtZjJfdCBvcDcsIHZpbnQzMm1mMl90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCBjb25zdCBpbnQzMl90ICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2aW50MzJtMV90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCBjb25zdCBpbnQzMl90ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIGNvbnN0IGludDMyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCB2dWludDMybTFfdCBvcDgsIHZ1aW50MzJtMV90IG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgdnVpbnQzMm0xX3Qgb3AxMSwgdnVpbnQzMm0xX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl91MzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgY29uc3QgdWludDMyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHZ1aW50MzJtZjJfdCBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgY29uc3QgdWludDMyX3QgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmludDMybWYyX3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIGNvbnN0IGludDMyX3QgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2dWludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdnVpbnQzMm0xX3Qgb3A4LCB2dWludDMybTFfdCBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHZ1aW50MzJtMV90IG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHZ1aW50MzJtMV90IG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIGNvbnN0IGludDMyX3QgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2aW50MzJtMV90ICogb3A0LCB2aW50MzJtMV90ICogb3A1LCB2aW50MzJtMV90ICogb3A2LCB2aW50MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgdmludDMybTFfdCBvcDEzLCB2aW50MzJtMV90IG9wMTQsIHZpbnQzMm0xX3Qgb3AxNSwgdmludDMybTFfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMzIodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2aW50MzJtZjJfdCBvcDksIHZpbnQzMm1mMl90IG9wMTAsIHZpbnQzMm1mMl90IG9wMTEsIHZpbnQzMm1mMl90IG9wMTIsIHZpbnQzMm1mMl90IG9wMTMsIHZpbnQzMm1mMl90IG9wMTQsIHZpbnQzMm1mMl90IG9wMTUsIHZpbnQzMm1mMl90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkzMih2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZ1aW50MzJtZjJfdCAqIG9wNiwgdnVpbnQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHZ1aW50MzJtZjJfdCBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgY29uc3QgdWludDMyX3QgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmludDMybTFfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmludDMybTJfdCBvcDMsIHZpbnQzMm0yX3Qgb3A0LCBjb25zdCBpbnQzMl90ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybTQpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgY29uc3QgaW50MzJfdCAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2kzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybTRfdCAqIG9wMCwgdmludDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2aW50MzJtNF90IG9wMywgdmludDMybTRfdCBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCBjb25zdCBpbnQzMl90ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2aW50MzJtZjJfdCBvcDMsIHZpbnQzMm1mMl90IG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgY29uc3QgdWludDMyX3QgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCB2dWludDMybTFfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2dWludDMybTJfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl91MzJtNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIGNvbnN0IHVpbnQzMl90ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2dWludDMybTRfdCAqIG9wMCwgdnVpbnQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdnVpbnQzMm00X3Qgb3AzLCB2dWludDMybTRfdCBvcDQsIGNvbnN0IHVpbnQzMl90ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCBjb25zdCB1aW50MzJfdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2dWludDMybWYyX3Qgb3AzLCB2dWludDMybWYyX3Qgb3A0LCBjb25zdCB1aW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2kzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZpbnQzMm0xX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIGNvbnN0IGludDMyX3QgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCBjb25zdCBpbnQzMl90ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtMl90ICogb3AwLCB2aW50MzJtMl90ICogb3AxLCB2aW50MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2aW50MzJtMl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfaTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIGNvbnN0IGludDMyX3QgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2aW50MzJtZjJfdCBvcDQsIHZpbnQzMm1mMl90IG9wNSwgdmludDMybWYyX3Qgb3A2LCBjb25zdCBpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZ1aW50MzJtMV90IG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCB2dWludDMybTFfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybTIpKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgY29uc3QgdWludDMyX3QgKiBvcDMsIHZ1aW50NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl91MzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZ1aW50MzJtMl90IG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCB2dWludDMybTJfdCBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIGNvbnN0IHVpbnQzMl90ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdnVpbnQzMm1mMl90IG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgY29uc3QgdWludDMyX3QgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9pMzJtMSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCBjb25zdCBpbnQzMl90ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtMV90ICogb3AwLCB2aW50MzJtMV90ICogb3AxLCB2aW50MzJtMV90ICogb3AyLCB2aW50MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2aW50MzJtMV90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgY29uc3QgaW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfaTMybTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmludDMybTJfdCAqIG9wMCwgdmludDMybTJfdCAqIG9wMSwgdmludDMybTJfdCAqIG9wMiwgdmludDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmludDMybTJfdCBvcDUsIHZpbnQzMm0yX3Qgb3A2LCB2aW50MzJtMl90IG9wNywgdmludDMybTJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgY29uc3QgaW50MzJfdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2aW50MzJtZjJfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIGNvbnN0IGludDMyX3QgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZ1aW50MzJtMV90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZ1aW50MzJtMl90ICogb3AwLCB2dWludDMybTJfdCAqIG9wMSwgdnVpbnQzMm0yX3QgKiBvcDIsIHZ1aW50MzJtMl90ICogb3AzLCBjb25zdCB1aW50MzJfdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm0yX3QgKiBvcDAsIHZ1aW50MzJtMl90ICogb3AxLCB2dWludDMybTJfdCAqIG9wMiwgdnVpbnQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZ1aW50MzJtMl90IG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCB2dWludDMybTJfdCBvcDcsIHZ1aW50MzJtMl90IG9wOCwgY29uc3QgdWludDMyX3QgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIGNvbnN0IHVpbnQzMl90ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2dWludDMybWYyX3Qgb3A1LCB2dWludDMybWYyX3Qgb3A2LCB2dWludDMybWYyX3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCBjb25zdCB1aW50MzJfdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgY29uc3QgaW50MzJfdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmludDMybTFfdCBvcDYsIHZpbnQzMm0xX3Qgb3A3LCB2aW50MzJtMV90IG9wOCwgdmludDMybTFfdCBvcDksIHZpbnQzMm0xX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIGNvbnN0IGludDMyX3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9pMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZpbnQzMm1mMl90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgY29uc3QgaW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCBjb25zdCB1aW50MzJfdCAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgY29uc3QgdWludDMyX3QgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl91MzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgdnVpbnQzMm1mMl90IG9wNywgdnVpbnQzMm1mMl90IG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIGNvbnN0IHVpbnQzMl90ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgY29uc3QgaW50MzJfdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmludDMybTFfdCBvcDcsIHZpbnQzMm0xX3Qgb3A4LCB2aW50MzJtMV90IG9wOSwgdmludDMybTFfdCBvcDEwLCB2aW50MzJtMV90IG9wMTEsIHZpbnQzMm0xX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCBjb25zdCBpbnQzMl90ICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfaTMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmludDMybWYyX3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgY29uc3QgaW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIGNvbnN0IHVpbnQzMl90ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfdTMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDMybTFfdCAqIG9wMCwgdnVpbnQzMm0xX3QgKiBvcDEsIHZ1aW50MzJtMV90ICogb3AyLCB2dWludDMybTFfdCAqIG9wMywgdnVpbnQzMm0xX3QgKiBvcDQsIHZ1aW50MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2dWludDMybTFfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCBjb25zdCB1aW50MzJfdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCBjb25zdCB1aW50MzJfdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X3UzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZ1aW50MzJtZjJfdCAqIG9wMCwgdnVpbnQzMm1mMl90ICogb3AxLCB2dWludDMybWYyX3QgKiBvcDIsIHZ1aW50MzJtZjJfdCAqIG9wMywgdnVpbnQzMm1mMl90ICogb3A0LCB2dWludDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIGNvbnN0IHVpbnQzMl90ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmludDMybTFfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2aW50MzJtZjJfdCAqIG9wMCwgdmludDMybWYyX3QgKiBvcDEsIHZpbnQzMm1mMl90ICogb3AyLCB2aW50MzJtZjJfdCAqIG9wMywgdmludDMybWYyX3QgKiBvcDQsIHZpbnQzMm1mMl90ICogb3A1LCB2aW50MzJtZjJfdCAqIG9wNiwgY29uc3QgaW50MzJfdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2aW50MzJtZjJfdCBvcDgsIHZpbnQzMm1mMl90IG9wOSwgdmludDMybWYyX3Qgb3AxMCwgdmludDMybWYyX3Qgb3AxMSwgdmludDMybWYyX3Qgb3AxMiwgdmludDMybWYyX3Qgb3AxMywgdmludDMybWYyX3Qgb3AxNCwgY29uc3QgaW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCBjb25zdCB1aW50MzJfdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZ1aW50MzJtMV90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBjb25zdCB1aW50MzJfdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIGNvbnN0IHVpbnQzMl90ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2dWludDMybWYyX3Qgb3A4LCB2dWludDMybWYyX3Qgb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgdnVpbnQzMm1mMl90IG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCB2dWludDMybWYyX3Qgb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIGNvbnN0IHVpbnQzMl90ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfaTMybTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDMybTFfdCAqIG9wMCwgdmludDMybTFfdCAqIG9wMSwgdmludDMybTFfdCAqIG9wMiwgdmludDMybTFfdCAqIG9wMywgdmludDMybTFfdCAqIG9wNCwgdmludDMybTFfdCAqIG9wNSwgdmludDMybTFfdCAqIG9wNiwgdmludDMybTFfdCAqIG9wNywgY29uc3QgaW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQzMm0xX3QgKiBvcDAsIHZpbnQzMm0xX3QgKiBvcDEsIHZpbnQzMm0xX3QgKiBvcDIsIHZpbnQzMm0xX3QgKiBvcDMsIHZpbnQzMm0xX3QgKiBvcDQsIHZpbnQzMm0xX3QgKiBvcDUsIHZpbnQzMm0xX3QgKiBvcDYsIHZpbnQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZpbnQzMm0xX3Qgb3A5LCB2aW50MzJtMV90IG9wMTAsIHZpbnQzMm0xX3Qgb3AxMSwgdmludDMybTFfdCBvcDEyLCB2aW50MzJtMV90IG9wMTMsIHZpbnQzMm0xX3Qgb3AxNCwgdmludDMybTFfdCBvcDE1LCB2aW50MzJtMV90IG9wMTYsIGNvbnN0IGludDMyX3QgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9pMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpNjQodmludDMybWYyX3QgKiBvcDAsIHZpbnQzMm1mMl90ICogb3AxLCB2aW50MzJtZjJfdCAqIG9wMiwgdmludDMybWYyX3QgKiBvcDMsIHZpbnQzMm1mMl90ICogb3A0LCB2aW50MzJtZjJfdCAqIG9wNSwgdmludDMybWYyX3QgKiBvcDYsIHZpbnQzMm1mMl90ICogb3A3LCBjb25zdCBpbnQzMl90ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2kzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZpbnQzMm1mMl90ICogb3AwLCB2aW50MzJtZjJfdCAqIG9wMSwgdmludDMybWYyX3QgKiBvcDIsIHZpbnQzMm1mMl90ICogb3AzLCB2aW50MzJtZjJfdCAqIG9wNCwgdmludDMybWYyX3QgKiBvcDUsIHZpbnQzMm1mMl90ICogb3A2LCB2aW50MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmludDMybWYyX3Qgb3A5LCB2aW50MzJtZjJfdCBvcDEwLCB2aW50MzJtZjJfdCBvcDExLCB2aW50MzJtZjJfdCBvcDEyLCB2aW50MzJtZjJfdCBvcDEzLCB2aW50MzJtZjJfdCBvcDE0LCB2aW50MzJtZjJfdCBvcDE1LCB2aW50MzJtZjJfdCBvcDE2LCBjb25zdCBpbnQzMl90ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybTEpKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQzMm0xX3QgKiBvcDAsIHZ1aW50MzJtMV90ICogb3AxLCB2dWludDMybTFfdCAqIG9wMiwgdnVpbnQzMm0xX3QgKiBvcDMsIHZ1aW50MzJtMV90ICogb3A0LCB2dWludDMybTFfdCAqIG9wNSwgdnVpbnQzMm0xX3QgKiBvcDYsIHZ1aW50MzJtMV90ICogb3A3LCBjb25zdCB1aW50MzJfdCAqIG9wOCwgdnVpbnQ2NG0yX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl91MzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZ1aW50MzJtMV90ICogb3AwLCB2dWludDMybTFfdCAqIG9wMSwgdnVpbnQzMm0xX3QgKiBvcDIsIHZ1aW50MzJtMV90ICogb3AzLCB2dWludDMybTFfdCAqIG9wNCwgdnVpbnQzMm0xX3QgKiBvcDUsIHZ1aW50MzJtMV90ICogb3A2LCB2dWludDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCB2dWludDMybTFfdCBvcDEwLCB2dWludDMybTFfdCBvcDExLCB2dWludDMybTFfdCBvcDEyLCB2dWludDMybTFfdCBvcDEzLCB2dWludDMybTFfdCBvcDE0LCB2dWludDMybTFfdCBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X3UzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2dWludDMybWYyX3QgKiBvcDAsIHZ1aW50MzJtZjJfdCAqIG9wMSwgdnVpbnQzMm1mMl90ICogb3AyLCB2dWludDMybWYyX3QgKiBvcDMsIHZ1aW50MzJtZjJfdCAqIG9wNCwgdnVpbnQzMm1mMl90ICogb3A1LCB2dWludDMybWYyX3QgKiBvcDYsIHZ1aW50MzJtZjJfdCAqIG9wNywgY29uc3QgdWludDMyX3QgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfdTMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodnVpbnQzMm1mMl90ICogb3AwLCB2dWludDMybWYyX3QgKiBvcDEsIHZ1aW50MzJtZjJfdCAqIG9wMiwgdnVpbnQzMm1mMl90ICogb3AzLCB2dWludDMybWYyX3QgKiBvcDQsIHZ1aW50MzJtZjJfdCAqIG9wNSwgdnVpbnQzMm1mMl90ICogb3A2LCB2dWludDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCB2dWludDMybWYyX3Qgb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHZ1aW50MzJtZjJfdCBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgdnVpbnQzMm1mMl90IG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBjb25zdCB1aW50MzJfdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9mKSAmJiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm00KSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2ZmxvYXQzMm0yX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDhtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ4bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWY4X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ4bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50OG1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjMybTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnM2VpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDE2bWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQxNm1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCB2ZmxvYXQzMm1mMl90IG9wMTUsIHZmbG9hdDMybWYyX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMikpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00KSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YzMm00X20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtMikpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQzMm0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQzMm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDMybTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnOGVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQzMm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNCkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybTIpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDY0bTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50NjRtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlZzJlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2VnMmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZWcyZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00KSkpCnZvaWQgdnNzZWcyZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUzMl92X2YzMm00X20pKSkKdm9pZCB2c3NlZzJlMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3NlZzJlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2VnMmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWczZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTIpKSkKdm9pZCB2c3NlZzNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzc2VnM2UzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3NlZzNlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzNlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NlZzRlMzIoZmxvYXQgKiBvcDAsIHZmbG9hdDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc2VnNGUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMikpKQp2b2lkIHZzc2VnNGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzZWc0ZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnNGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzRlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWc1ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzZWc1ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzVlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc2VnNmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzZWc2ZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnNmUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc2VnN2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzZWc3ZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnN2UzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NlZzdlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xKSkpCnZvaWQgdnNzZWc4ZTMyKGZsb2F0ICogb3AwLCB2ZmxvYXQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NlZzhlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm1mMikpKQp2b2lkIHZzc2VnOGUzMihmbG9hdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnOGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzZWc4ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMSkpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0xX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtMikpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm0yX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMzJfdl9mMzJtNCkpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybTRfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm00X20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzJlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWcyZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnM2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm0yKSkpCnZvaWQgdnNzc2VnM2UzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzc3NlZzNlMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzNlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc0ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybTIpKSkKdm9pZCB2c3NzZWc0ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzc2VnNGUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNGUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnNWUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzVlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzVlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWc1ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm0xKSkpCnZvaWQgdnNzc2VnNmUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzZlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzZlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNmUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNzc2VnNmUzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc3ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNzc2VnN2UzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UzMl92X2YzMm1mMikpKQp2b2lkIHZzc3NlZzdlMzIoZmxvYXQgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzc3NlZzdlMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTEpKSkKdm9pZCB2c3NzZWc4ZTMyKGZsb2F0ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzc3NlZzhlMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNzc2VnOGUzMihmbG9hdCAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c3NzZWc4ZTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMzJtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtMV90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDhfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtMV90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnM2VpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnNWVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzZlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWczZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjMybTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtOF90IG9wMSwgdmZsb2F0MzJtNF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtMikpKQp2b2lkIHZzdXhzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnM2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzdlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2c3V4c2VnN2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnN1eHNlZzhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzdXhzZWc4ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnMmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YzMm00KSkpCnZvaWQgdnNveHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sOF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzJlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWczZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTIpKSkKdm9pZCB2c294c2VnNGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk4KGZsb2F0ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNmVpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpOChmbG9hdCAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTgoZmxvYXQgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTgodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnMmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0yX3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpMTYodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm0yX3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWczZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm0xX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnNGVpMTYodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNGVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWc1ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWkxNihmbG9hdCAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnNmVpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpMTYoZmxvYXQgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzdlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KGZsb2F0ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm00X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpMzIodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnM2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybTIpKSkKdm9pZCB2c294c2VnM2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzRlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWkzMihmbG9hdCAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MzJtZjJfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNmVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzZlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzdlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMzJtZjIpKSkKdm9pZCB2c294c2VnN2VpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTEpKSkKdm9pZCB2c294c2VnOGVpMzIoZmxvYXQgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKGZsb2F0ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQzMm0xX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQzMm0yX3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMzJtNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQzMm00X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm00X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDMybTJfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjMybTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWczZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnNGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybTIpKSkKdm9pZCB2c294c2VnNGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MzJtMl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMTZfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzRlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzVlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc1ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDMybTFfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc2ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnN2VpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sMzJfdCBvcDAsIGZsb2F0ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NChmbG9hdCAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQzMm1mMl90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTEpKSkKdm9pZCB2c294c2VnOGVpNjQoZmxvYXQgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MzJtMV90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBmbG9hdCAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdnNveHNlZzhlaTY0KGZsb2F0ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDMybWYyX3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgZmxvYXQgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUzMl92X2YzMm0yX20pKSkKdm9pZCB2bHNlZzRlMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzRlMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNWUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzZlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UzMl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzdlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzdlMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnOGUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUzMmZmX3ZfZjMybTRfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnMmUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMzJmZl92X2YzMm0xX20pKSkKdm9pZCB2bHNlZzNlMzJmZih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UzMmZmX3ZfZjMybTJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnM2UzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtMl9tKSkpCnZvaWQgdmxzZWc0ZTMyZmYodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCB2ZmxvYXQzMm0yX3Qgb3A3LCB2ZmxvYXQzMm0yX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNGUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgc2l6ZV90ICogb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc1ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc1ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUzMmZmX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzVlMzJmZih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUzMmZmX3ZfZjMybTFfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnNmUzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgc2l6ZV90ICogb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc3ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTMyZmZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsc2VnN2UzMmZmKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgc2l6ZV90ICogb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc4ZTMyZmZfdl9mMzJtMV9tKSkpCnZvaWQgdmxzZWc4ZTMyZmYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUzMmZmX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNlZzhlMzJmZih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnMmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm0yX20pKSkKdm9pZCB2bHNzZWcyZTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTMyX3ZfZjMybTRfbSkpKQp2b2lkIHZsc3NlZzJlMzIodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQzMm1mMl90IG9wMywgdmZsb2F0MzJtZjJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnM2UzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsc3NlZzNlMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnM2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzRlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2ZmxvYXQzMm0yX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIHZmbG9hdDMybTJfdCBvcDcsIHZmbG9hdDMybTJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnNGUzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzVlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc1ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnNmUzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc2ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc2ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmxzc2VnN2UzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2UzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmxzc2VnN2UzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsc3NlZzhlMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHNzZWc4ZTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MzJtMV90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmZsb2F0MzJtMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIGNvbnN0IGZsb2F0ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50OG1mNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50OG1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgY29uc3QgZmxvYXQgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzhlaTgodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmZsb2F0MzJtMV90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIHZmbG9hdDMybTFfdCBvcDE1LCB2ZmxvYXQzMm0xX3Qgb3AxNiwgY29uc3QgZmxvYXQgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWcyZWkxNih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQzMm0yX3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YzMm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MzJtNF90IG9wMywgdmZsb2F0MzJtNF90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MzJtZjJfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQzMm0yX3Qgb3A0LCB2ZmxvYXQzMm0yX3Qgb3A1LCB2ZmxvYXQzMm0yX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIGNvbnN0IGZsb2F0ICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQzMm0xX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQxNm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MTZtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCBjb25zdCBmbG9hdCAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgdmZsb2F0MzJtMV90IG9wMTEsIHZmbG9hdDMybTFfdCBvcDEyLCB2ZmxvYXQzMm0xX3Qgb3AxMywgdmZsb2F0MzJtMV90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQxNm1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50MTZtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgdmZsb2F0MzJtZjJfdCAqIG9wNiwgdmZsb2F0MzJtZjJfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCB2ZmxvYXQzMm1mMl90IG9wMTMsIHZmbG9hdDMybWYyX3Qgb3AxNCwgdmZsb2F0MzJtZjJfdCBvcDE1LCB2ZmxvYXQzMm1mMl90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDMybTFfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MzJtMl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMzJtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybTRfdCAqIG9wMCwgdmZsb2F0MzJtNF90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDMybTRfdCBvcDMsIHZmbG9hdDMybTRfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDMybWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDMybTFfdCBvcDQsIHZmbG9hdDMybTFfdCBvcDUsIHZmbG9hdDMybTFfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybTIpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50MzJtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZib29sMTZfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIHZmbG9hdDMybTJfdCBvcDUsIHZmbG9hdDMybTJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIGNvbnN0IGZsb2F0ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDMybWYyX3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIGNvbnN0IGZsb2F0ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQzMm1mMl90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQzMm0xX3Qgb3A2LCB2ZmxvYXQzMm0xX3Qgb3A3LCB2ZmxvYXQzMm0xX3Qgb3A4LCB2ZmxvYXQzMm0xX3Qgb3A5LCB2ZmxvYXQzMm0xX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDMybTFfdCBvcDcsIHZmbG9hdDMybTFfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQzMm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIGNvbnN0IGZsb2F0ICogb3A2LCB2dWludDMybWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIGNvbnN0IGZsb2F0ICogb3AxMywgdnVpbnQzMm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgdmZsb2F0MzJtZjJfdCBvcDExLCB2ZmxvYXQzMm1mMl90IG9wMTIsIHZmbG9hdDMybWYyX3Qgb3AxMywgdmZsb2F0MzJtZjJfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgY29uc3QgZmxvYXQgKiBvcDgsIHZ1aW50MzJtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCB2ZmxvYXQzMm0xX3QgKiBvcDYsIHZmbG9hdDMybTFfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCB2ZmxvYXQzMm0xX3Qgb3AxNSwgdmZsb2F0MzJtMV90IG9wMTYsIGNvbnN0IGZsb2F0ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzhlaTMyKHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZmbG9hdDMybWYyX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgY29uc3QgZmxvYXQgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQzMm0xX3Qgb3AzLCB2ZmxvYXQzMm0xX3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDMybTJfdCBvcDMsIHZmbG9hdDMybTJfdCBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTQpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MzJtNF90ICogb3AwLCB2ZmxvYXQzMm00X3QgKiBvcDEsIGNvbnN0IGZsb2F0ICogb3AyLCB2dWludDY0bThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjMybTRfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm00X3QgKiBvcDAsIHZmbG9hdDMybTRfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQzMm00X3Qgb3AzLCB2ZmxvYXQzMm00X3Qgb3A0LCBjb25zdCBmbG9hdCAqIG9wNSwgdnVpbnQ2NG04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCBjb25zdCBmbG9hdCAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDMybWYyX3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgY29uc3QgZmxvYXQgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MzJtMV90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm0yX3QgKiBvcDAsIHZmbG9hdDMybTJfdCAqIG9wMSwgdmZsb2F0MzJtMl90ICogb3AyLCBjb25zdCBmbG9hdCAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YzMm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtMl90ICogb3AwLCB2ZmxvYXQzMm0yX3QgKiBvcDEsIHZmbG9hdDMybTJfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MzJtMl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgY29uc3QgZmxvYXQgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQzMm1mMl90IG9wNCwgdmZsb2F0MzJtZjJfdCBvcDUsIHZmbG9hdDMybWYyX3Qgb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MzJtMV90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm0yKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgY29uc3QgZmxvYXQgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMzJtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybTJfdCAqIG9wMCwgdmZsb2F0MzJtMl90ICogb3AxLCB2ZmxvYXQzMm0yX3QgKiBvcDIsIHZmbG9hdDMybTJfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MzJtMl90IG9wNSwgdmZsb2F0MzJtMl90IG9wNiwgdmZsb2F0MzJtMl90IG9wNywgdmZsb2F0MzJtMl90IG9wOCwgY29uc3QgZmxvYXQgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCBjb25zdCBmbG9hdCAqIG9wNCwgdnVpbnQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDMybWYyX3Qgb3A1LCB2ZmxvYXQzMm1mMl90IG9wNiwgdmZsb2F0MzJtZjJfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCBjb25zdCBmbG9hdCAqIG9wOSwgdnVpbnQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MzJtMV90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIGNvbnN0IGZsb2F0ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybWYyKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIGNvbnN0IGZsb2F0ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTY0X3ZfZjMybWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MzJtZjJfdCBvcDYsIHZmbG9hdDMybWYyX3Qgb3A3LCB2ZmxvYXQzMm1mMl90IG9wOCwgdmZsb2F0MzJtZjJfdCBvcDksIHZmbG9hdDMybWYyX3Qgb3AxMCwgY29uc3QgZmxvYXQgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtMSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQzMm0xX3QgKiBvcDAsIHZmbG9hdDMybTFfdCAqIG9wMSwgdmZsb2F0MzJtMV90ICogb3AyLCB2ZmxvYXQzMm0xX3QgKiBvcDMsIHZmbG9hdDMybTFfdCAqIG9wNCwgdmZsb2F0MzJtMV90ICogb3A1LCBjb25zdCBmbG9hdCAqIG9wNiwgdnVpbnQ2NG0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MzJtMV90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgY29uc3QgZmxvYXQgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtZjIpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MzJtZjJfdCAqIG9wMCwgdmZsb2F0MzJtZjJfdCAqIG9wMSwgdmZsb2F0MzJtZjJfdCAqIG9wMiwgdmZsb2F0MzJtZjJfdCAqIG9wMywgdmZsb2F0MzJtZjJfdCAqIG9wNCwgdmZsb2F0MzJtZjJfdCAqIG9wNSwgY29uc3QgZmxvYXQgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQzMm1mMl90IG9wNywgdmZsb2F0MzJtZjJfdCBvcDgsIHZmbG9hdDMybWYyX3Qgb3A5LCB2ZmxvYXQzMm1mMl90IG9wMTAsIHZmbG9hdDMybWYyX3Qgb3AxMSwgdmZsb2F0MzJtZjJfdCBvcDEyLCBjb25zdCBmbG9hdCAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgY29uc3QgZmxvYXQgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMzJtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybTFfdCAqIG9wMCwgdmZsb2F0MzJtMV90ICogb3AxLCB2ZmxvYXQzMm0xX3QgKiBvcDIsIHZmbG9hdDMybTFfdCAqIG9wMywgdmZsb2F0MzJtMV90ICogb3A0LCB2ZmxvYXQzMm0xX3QgKiBvcDUsIHZmbG9hdDMybTFfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MzJtMV90IG9wOCwgdmZsb2F0MzJtMV90IG9wOSwgdmZsb2F0MzJtMV90IG9wMTAsIHZmbG9hdDMybTFfdCBvcDExLCB2ZmxvYXQzMm0xX3Qgb3AxMiwgdmZsb2F0MzJtMV90IG9wMTMsIHZmbG9hdDMybTFfdCBvcDE0LCBjb25zdCBmbG9hdCAqIG9wMTUsIHZ1aW50NjRtMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCBjb25zdCBmbG9hdCAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YzMm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDMybWYyX3QgKiBvcDAsIHZmbG9hdDMybWYyX3QgKiBvcDEsIHZmbG9hdDMybWYyX3QgKiBvcDIsIHZmbG9hdDMybWYyX3QgKiBvcDMsIHZmbG9hdDMybWYyX3QgKiBvcDQsIHZmbG9hdDMybWYyX3QgKiBvcDUsIHZmbG9hdDMybWYyX3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDMybWYyX3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIGNvbnN0IGZsb2F0ICogb3AxNSwgdnVpbnQ2NG0xX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjMybTEpKSkKdm9pZCB2bHV4c2VnOGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIGNvbnN0IGZsb2F0ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpNjQodmZsb2F0MzJtMV90ICogb3AwLCB2ZmxvYXQzMm0xX3QgKiBvcDEsIHZmbG9hdDMybTFfdCAqIG9wMiwgdmZsb2F0MzJtMV90ICogb3AzLCB2ZmxvYXQzMm0xX3QgKiBvcDQsIHZmbG9hdDMybTFfdCAqIG9wNSwgdmZsb2F0MzJtMV90ICogb3A2LCB2ZmxvYXQzMm0xX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDMybTFfdCBvcDksIHZmbG9hdDMybTFfdCBvcDEwLCB2ZmxvYXQzMm0xX3Qgb3AxMSwgdmZsb2F0MzJtMV90IG9wMTIsIHZmbG9hdDMybTFfdCBvcDEzLCB2ZmxvYXQzMm0xX3Qgb3AxNCwgdmZsb2F0MzJtMV90IG9wMTUsIHZmbG9hdDMybTFfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50NjRtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YzMm1mMikpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCBjb25zdCBmbG9hdCAqIG9wOCwgdnVpbnQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMzJtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQzMm1mMl90ICogb3AwLCB2ZmxvYXQzMm1mMl90ICogb3AxLCB2ZmxvYXQzMm1mMl90ICogb3AyLCB2ZmxvYXQzMm1mMl90ICogb3AzLCB2ZmxvYXQzMm1mMl90ICogb3A0LCB2ZmxvYXQzMm1mMl90ICogb3A1LCB2ZmxvYXQzMm1mMl90ICogb3A2LCB2ZmxvYXQzMm1mMl90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQzMm1mMl90IG9wOSwgdmZsb2F0MzJtZjJfdCBvcDEwLCB2ZmxvYXQzMm1mMl90IG9wMTEsIHZmbG9hdDMybWYyX3Qgb3AxMiwgdmZsb2F0MzJtZjJfdCBvcDEzLCB2ZmxvYXQzMm1mMl90IG9wMTQsIHZmbG9hdDMybWYyX3Qgb3AxNSwgdmZsb2F0MzJtZjJfdCBvcDE2LCBjb25zdCBmbG9hdCAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl9kKSAmJiBkZWZpbmVkKF9fcmlzY3ZfenZsc3NlZykKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2Y2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNWVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2Y2NG00X20pKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNWVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjY0bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgY29uc3QgZG91YmxlICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzRlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHZmbG9hdDY0bTJfdCBvcDcsIHZmbG9hdDY0bTJfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIGNvbnN0IGRvdWJsZSAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnOGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIGNvbnN0IGRvdWJsZSAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIGNvbnN0IGRvdWJsZSAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCBjb25zdCBkb3VibGUgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWcyZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWcyZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlNjRfdl9mNjRtMikpKQp2b2lkIHZzc2VnMmU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzc2VnMmU2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3NlZzJlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmU2NF92X2Y2NG00X20pKSkKdm9pZCB2c3NlZzJlNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2U2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWczZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWczZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlNjRfdl9mNjRtMikpKQp2b2lkIHZzc2VnM2U2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzc2VnM2U2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NlZzRlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NlZzRlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNGU2NF92X2Y2NG0yKSkpCnZvaWQgdnNzZWc0ZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNzZWc0ZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2VnNWU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2VnNWU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NlZzZlNjQoZG91YmxlICogb3AwLCB2ZmxvYXQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NlZzZlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2U2NF92X2Y2NG0xKSkpCnZvaWQgdnNzZWc3ZTY0KGRvdWJsZSAqIG9wMCwgdmZsb2F0NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzZWc3ZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzhlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc2VnOGU2NChkb3VibGUgKiBvcDAsIHZmbG9hdDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc2VnOGU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzJlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnMmU2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yKSkpCnZvaWQgdnNzc2VnMmU2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmU2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NzZWcyZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3NzZWcyZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTY0X3ZfZjY0bTRfbSkpKQp2b2lkIHZzc3NlZzJlNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzNlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnM2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yKSkpCnZvaWQgdnNzc2VnM2U2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3NzZWczZTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NzZWc0ZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzRlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMikpKQp2b2lkIHZzc3NlZzRlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNzc2VnNGU2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xKSkpCnZvaWQgdnNzc2VnNWU2NChkb3VibGUgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNWU2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3NzZWc1ZTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3NzZWc2ZTY0KGRvdWJsZSAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzZlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzdlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNzc2VnN2U2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzhlNjRfdl9mNjRtMSkpKQp2b2lkIHZzc3NlZzhlNjQoZG91YmxlICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzc3NlZzhlNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2Y2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c3V4c2VnM2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzRlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnMmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnMmVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mNjRtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzNlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWczZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTE2KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc1ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzdlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG00KSkpCnZvaWQgdnN1eHNlZzJlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2Y2NG00X20pKSkKdm9pZCB2c3V4c2VnMmVpMzIodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnM2VpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzRlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm0xX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNWVpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzZlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzZlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc3ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzhlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzJlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzJlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTQpKSkKdm9pZCB2c3V4c2VnMmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjY0bTRfbSkpKQp2b2lkIHZzdXhzZWcyZWk2NCh2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWczZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZzdXhzZWc0ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnN1eHNlZzVlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c3V4c2VnNmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc3ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnMmVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2Y2NG0yKSkpCnZvaWQgdnNveHNlZzJlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWk4KHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnM2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnM2VpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2Y2NG0yKSkpCnZvaWQgdnNveHNlZzNlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnNGVpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2Y2NG0yX20pKSkKdm9pZCB2c294c2VnNGVpOCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTgoZG91YmxlICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpOChkb3VibGUgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWk4KGRvdWJsZSAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWcyZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2c294c2VnMmVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjY0bTRfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtMV90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWczZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnM2VpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoZG91YmxlICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzZlaTE2KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc3ZWkxNihkb3VibGUgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzhlaTE2KGRvdWJsZSAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnMmVpMzIoZG91YmxlICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZzb3hzZWcyZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0NjRtNF90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mNjRtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMTZfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWczZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWc0ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzVlaTMyKGRvdWJsZSAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpMzIoZG91YmxlICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMzJfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc4ZWkzMihkb3VibGUgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnMmVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdnNveHNlZzJlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQ2NG00X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2Y2NG00X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnM2VpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMikpKQp2b2lkIHZzb3hzZWczZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mNjRtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTY0KHZib29sMzJfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNGVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2c294c2VnNGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDY0bTJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChkb3VibGUgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIGRvdWJsZSAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdnNveHNlZzZlaTY0KGRvdWJsZSAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQ2NG0xX3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnN2VpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBkb3VibGUgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2c294c2VnOGVpNjQoZG91YmxlICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2c294c2VnOGVpNjQodmJvb2w2NF90IG9wMCwgZG91YmxlICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWcyZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NF92X2Y2NG00X20pKSkKdm9pZCB2bHNlZzJlNjQodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWczZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc0ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWc0ZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgdmZsb2F0NjRtMl90IG9wNywgdmZsb2F0NjRtMl90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc1ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc3ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc4ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWcyZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDY0bTFfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmU2NGZmX3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnMmU2NGZmKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlNjRmZl92X2Y2NG00X20pKSkKdm9pZCB2bHNlZzJlNjRmZih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTY0ZmZfdl9mNjRtMl9tKSkpCnZvaWQgdmxzZWczZTY0ZmYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCBzaXplX3QgKiBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTY0ZmZfdl9mNjRtMV9tKSkpCnZvaWQgdmxzZWc0ZTY0ZmYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGU2NGZmX3ZfZjY0bTJfbSkpKQp2b2lkIHZsc2VnNGU2NGZmKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgdmZsb2F0NjRtMl90IG9wNywgdmZsb2F0NjRtMl90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlNjRmZl92X2Y2NG0xX20pKSkKdm9pZCB2bHNlZzVlNjRmZih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIGNvbnN0IGRvdWJsZSAqIG9wMTEsIHNpemVfdCAqIG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmU2NGZmX3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnNmU2NGZmKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2U2NGZmX3ZfZjY0bTFfbSkpKQp2b2lkIHZsc2VnN2U2NGZmKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCBzaXplX3QgKiBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlNjRmZl92X2Y2NG0xX20pKSkKdm9pZCB2bHNlZzhlNjRmZih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHNpemVfdCAqIG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtMl9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmxzc2VnMmU2NCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzNlNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmxzc2VnM2U2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2U2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHNzZWczZTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQ2NG0xX3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc0ZTY0X3ZfZjY0bTJfbSkpKQp2b2lkIHZsc3NlZzRlNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzVlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmU2NF92X2Y2NG0xX20pKSkKdm9pZCB2bHNzZWc2ZTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzdlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsc3NlZzhlNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIHZmbG9hdDY0bTFfdCBvcDEzLCB2ZmxvYXQ2NG0xX3Qgb3AxNCwgdmZsb2F0NjRtMV90IG9wMTUsIHZmbG9hdDY0bTFfdCBvcDE2LCBjb25zdCBkb3VibGUgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0NjRtMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mNjRtNCkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50OG1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2Y2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ4bWY4X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ4bWY4X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpOCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDhtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDhtZjhfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDhtZjhfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQ4bWY4X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50OG1mOF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQ2NG0xX3Qgb3AzLCB2ZmxvYXQ2NG0xX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjY0bTQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2Y2NG00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0NjRtNF90ICogb3AwLCB2ZmxvYXQ2NG00X3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDY0bTRfdCBvcDMsIHZmbG9hdDY0bTRfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjY0bTJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCBjb25zdCBkb3VibGUgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCBjb25zdCBkb3VibGUgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgY29uc3QgZG91YmxlICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50MTZtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgY29uc3QgZG91YmxlICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIHZmbG9hdDY0bTFfdCBvcDE1LCB2ZmxvYXQ2NG0xX3Qgb3AxNiwgY29uc3QgZG91YmxlICogb3AxNywgdnVpbnQxNm1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50MzJtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQ2NG0yX3Qgb3AzLCB2ZmxvYXQ2NG0yX3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mNjRtNCkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjY0bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQ2NG00X3QgKiBvcDAsIHZmbG9hdDY0bTRfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0NjRtNF90IG9wMywgdmZsb2F0NjRtNF90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgY29uc3QgZG91YmxlICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIHZmbG9hdDY0bTJfdCAqIG9wMywgY29uc3QgZG91YmxlICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjY0bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWkzMih2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDY0bTJfdCBvcDUsIHZmbG9hdDY0bTJfdCBvcDYsIHZmbG9hdDY0bTJfdCBvcDcsIHZmbG9hdDY0bTJfdCBvcDgsIGNvbnN0IGRvdWJsZSAqIG9wOSwgdnVpbnQzMm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQzMm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkzMl92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIGNvbnN0IGRvdWJsZSAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDY0bTFfdCBvcDcsIHZmbG9hdDY0bTFfdCBvcDgsIHZmbG9hdDY0bTFfdCBvcDksIHZmbG9hdDY0bTFfdCBvcDEwLCB2ZmxvYXQ2NG0xX3Qgb3AxMSwgdmZsb2F0NjRtMV90IG9wMTIsIGNvbnN0IGRvdWJsZSAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCBjb25zdCBkb3VibGUgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2ZmxvYXQ2NG0xX3QgKiBvcDcsIGNvbnN0IGRvdWJsZSAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgY29uc3QgZG91YmxlICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0NjRtMV90IG9wMywgdmZsb2F0NjRtMV90IG9wNCwgY29uc3QgZG91YmxlICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjY0bTIpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIGNvbnN0IGRvdWJsZSAqIG9wMiwgdnVpbnQ2NG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDY0bTJfdCBvcDMsIHZmbG9hdDY0bTJfdCBvcDQsIGNvbnN0IGRvdWJsZSAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2Y2NG00KSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCBjb25zdCBkb3VibGUgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mNjRtNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDY0bTRfdCAqIG9wMCwgdmZsb2F0NjRtNF90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQ2NG00X3Qgb3AzLCB2ZmxvYXQ2NG00X3Qgb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCBjb25zdCBkb3VibGUgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDY0bTFfdCBvcDQsIHZmbG9hdDY0bTFfdCBvcDUsIHZmbG9hdDY0bTFfdCBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0yKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDY0bTJfdCAqIG9wMCwgdmZsb2F0NjRtMl90ICogb3AxLCB2ZmxvYXQ2NG0yX3QgKiBvcDIsIGNvbnN0IGRvdWJsZSAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0NjRtMl90IG9wNCwgdmZsb2F0NjRtMl90IG9wNSwgdmZsb2F0NjRtMl90IG9wNiwgY29uc3QgZG91YmxlICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCBjb25zdCBkb3VibGUgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0NjRtMV90IG9wNSwgdmZsb2F0NjRtMV90IG9wNiwgdmZsb2F0NjRtMV90IG9wNywgdmZsb2F0NjRtMV90IG9wOCwgY29uc3QgZG91YmxlICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mNjRtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQ2NG0yX3QgKiBvcDAsIHZmbG9hdDY0bTJfdCAqIG9wMSwgdmZsb2F0NjRtMl90ICogb3AyLCB2ZmxvYXQ2NG0yX3QgKiBvcDMsIGNvbnN0IGRvdWJsZSAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2Y2NG0yX20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0NjRtMl90ICogb3AwLCB2ZmxvYXQ2NG0yX3QgKiBvcDEsIHZmbG9hdDY0bTJfdCAqIG9wMiwgdmZsb2F0NjRtMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQ2NG0yX3Qgb3A1LCB2ZmxvYXQ2NG0yX3Qgb3A2LCB2ZmxvYXQ2NG0yX3Qgb3A3LCB2ZmxvYXQ2NG0yX3Qgb3A4LCBjb25zdCBkb3VibGUgKiBvcDksIHZ1aW50NjRtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCBjb25zdCBkb3VibGUgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mNjRtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQ2NG0xX3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgY29uc3QgZG91YmxlICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgY29uc3QgZG91YmxlICogb3A2LCB2dWludDY0bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQ2NG0xX3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCBjb25zdCBkb3VibGUgKiBvcDEzLCB2dWludDY0bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mNjRtMSkpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIGNvbnN0IGRvdWJsZSAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2Y2NG0xX20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmZsb2F0NjRtMV90ICogb3AwLCB2ZmxvYXQ2NG0xX3QgKiBvcDEsIHZmbG9hdDY0bTFfdCAqIG9wMiwgdmZsb2F0NjRtMV90ICogb3AzLCB2ZmxvYXQ2NG0xX3QgKiBvcDQsIHZmbG9hdDY0bTFfdCAqIG9wNSwgdmZsb2F0NjRtMV90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQ2NG0xX3Qgb3A4LCB2ZmxvYXQ2NG0xX3Qgb3A5LCB2ZmxvYXQ2NG0xX3Qgb3AxMCwgdmZsb2F0NjRtMV90IG9wMTEsIHZmbG9hdDY0bTFfdCBvcDEyLCB2ZmxvYXQ2NG0xX3Qgb3AxMywgdmZsb2F0NjRtMV90IG9wMTQsIGNvbnN0IGRvdWJsZSAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2Y2NG0xKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDY0bTFfdCAqIG9wMCwgdmZsb2F0NjRtMV90ICogb3AxLCB2ZmxvYXQ2NG0xX3QgKiBvcDIsIHZmbG9hdDY0bTFfdCAqIG9wMywgdmZsb2F0NjRtMV90ICogb3A0LCB2ZmxvYXQ2NG0xX3QgKiBvcDUsIHZmbG9hdDY0bTFfdCAqIG9wNiwgdmZsb2F0NjRtMV90ICogb3A3LCBjb25zdCBkb3VibGUgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjY0bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQ2NG0xX3QgKiBvcDAsIHZmbG9hdDY0bTFfdCAqIG9wMSwgdmZsb2F0NjRtMV90ICogb3AyLCB2ZmxvYXQ2NG0xX3QgKiBvcDMsIHZmbG9hdDY0bTFfdCAqIG9wNCwgdmZsb2F0NjRtMV90ICogb3A1LCB2ZmxvYXQ2NG0xX3QgKiBvcDYsIHZmbG9hdDY0bTFfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0NjRtMV90IG9wOSwgdmZsb2F0NjRtMV90IG9wMTAsIHZmbG9hdDY0bTFfdCBvcDExLCB2ZmxvYXQ2NG0xX3Qgb3AxMiwgdmZsb2F0NjRtMV90IG9wMTMsIHZmbG9hdDY0bTFfdCBvcDE0LCB2ZmxvYXQ2NG0xX3Qgb3AxNSwgdmZsb2F0NjRtMV90IG9wMTYsIGNvbnN0IGRvdWJsZSAqIG9wMTcsIHZ1aW50NjRtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCiNlbmRpZgoKI2lmIGRlZmluZWQoX19yaXNjdl96ZmgpICYmIGRlZmluZWQoX19yaXNjdl96dmxzc2VnKQpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTQpKSkKdm9pZCB2bG94c2VnMmVpOCh2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk4X3ZfZjE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHZmbG9hdDE2bTRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpOF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtZjhfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ4bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ4bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mOF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzNlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG1mMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDhtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50OG1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzRlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjhfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50OG1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50OG1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDhtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ4bWY4X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDhtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzZlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDhtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDhtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ4bWY0X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaThfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWY4X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50OG1mOF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ4bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaThfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50OG1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mOF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzdlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDhtZjhfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDhtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpOF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50OG1mNF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50OG1mOF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ4bWY4X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzJlaTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2bG94c2VnMmVpMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzNlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MTZtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bWY0X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnNWVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQxNm0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQxNm1mMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtZjRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDE2bTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDE2bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzZlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzdlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MTZtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MTZtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnN2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bWY0X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MTZtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MTZtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCB2Ym9vbDRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHZmbG9hdDE2bTRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzJlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnMmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWcyZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50MzJtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnM2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQzMm0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm00X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNGVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQzMm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzVlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybTJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNWVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MzJtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNWVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc1ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MzJtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQzMm0yX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MzJtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQzMm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc2ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MzJtZjJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnN2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MzJtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50MzJtZjJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50MzJtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQzMm0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQzMm0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzhlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc4ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtZjJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG04X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtOF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnMmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWcyZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzJlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnMmVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bThfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bThfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzNlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnM2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50NjRtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWczZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2Ym9vbDY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtOF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ2NG04X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzRlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzRlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnNGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50NjRtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc0ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG00X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50NjRtNF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsb3hzZWc1ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ2NG0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmxveHNlZzVlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzVlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnNWVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDY0bTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ2NG00X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmJvb2wxNl90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDY0bTRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnNmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50NjRtMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsb3hzZWc2ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ2NG0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmxveHNlZzZlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZib29sNjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ2NG0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc3ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ2NG00X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmxveHNlZzdlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzdlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDY0bTJfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnN2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnN2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsb3hzZWc3ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50NjRtMV90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsb3hzZWc4ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ2NG00X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmxveHNlZzhlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTJfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bG94c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxveHNlZzhlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bG94c2VnOGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDY0bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yKSkpCnZvaWQgdnNzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0yX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCBzaXplX3Qgb3AzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnMmUxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNCkpKQp2b2lkIHZzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNzZWcyZTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTRfdCBvcDIsIHZmbG9hdDE2bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHNpemVfdCBvcDMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWcyZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzJlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NlZzJlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgc2l6ZV90IG9wMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnMmUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZWczZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlZzNlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnM2UxNl92X2YxNm1mMikpKQp2b2lkIHZzc2VnM2UxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzNlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NlZzNlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMikpKQp2b2lkIHZzc2VnNGUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnNzZWc0ZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc0ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzRlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnNGUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzVlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc1ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NlZzVlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnNWUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNCkpKQp2b2lkIHZzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgdmZsb2F0MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNWUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzZWc1ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzZlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzZlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NlZzZlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzZlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc2ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnNmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzZWc2ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm0xX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc2VnN2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NlZzdlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc3ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NlZzdlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc2VnN2UxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NlZzhlMTYoX0Zsb2F0MTYgKiBvcDAsIHZmbG9hdDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc2VnOGUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCB2ZmxvYXQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzZWc4ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NlZzhlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0xKSkpCnZvaWQgdnNzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm0yKSkpCnZvaWQgdnNzc2VnMmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzc3NlZzJlMTYodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWcyZTE2X3ZfZjE2bTQpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm00X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzJlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWcyZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnMmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNzc2VnMmUxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzNlMTZfdl9mMTZtMikpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mMikpKQp2b2lkIHZzc3NlZzNlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNzc2VnM2UxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnM2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWczZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtMSkpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0xX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtMikpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm0yX20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnNGUxNl92X2YxNm1mMikpKQp2b2lkIHZzc3NlZzRlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzRlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzRlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWc0ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc0ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWc0ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc1ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzc2VnNWUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzc3NlZzVlMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc1ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnNWUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzVlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzVlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNzc2VnNmUxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgcHRyZGlmZl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnNmUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc2ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc2ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3NzZWc2ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzZlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzZlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm0xKSkpCnZvaWQgdnNzc2VnN2UxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3NzZWc3ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc3ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc3ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNzc2VnN2UxNl92X2YxNm1mNCkpKQp2b2lkIHZzc3NlZzdlMTYoX0Zsb2F0MTYgKiBvcDAsIHB0cmRpZmZfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzc3NlZzdlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzc3NlZzdlMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3NzZWc4ZTE2KF9GbG9hdDE2ICogb3AwLCBwdHJkaWZmX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzc3NlZzhlMTYodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHB0cmRpZmZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNzc2VnOGUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3NzZWc4ZTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNzc2VnOGUxNihfRmxvYXQxNiAqIG9wMCwgcHRyZGlmZl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3NzZWc4ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3NzZWc4ZTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCBwdHJkaWZmX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnMmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaThfdl9mMTZtNCkpKQp2b2lkIHZzdXhzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc0ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc1ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzZlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzdlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaThfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzNlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzZlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc2ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzZlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTMyKHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzRlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnNWVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc3ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzdlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnN2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnOGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2c3V4c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c3V4c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnM2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnN1eHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc0ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc0ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc1ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNWVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c3V4c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnNmVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzdXhzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c3V4c2VnN2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzdXhzZWc3ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnN2VpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnN1eHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnN1eHNlZzdlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZzdXhzZWc3ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnN1eHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzdXhzZWc4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnN1eHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c3V4c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c3V4c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c3V4c2VnOGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzdXhzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnMmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bTFfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bTFfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaThfdl9mMTZtNCkpKQp2b2lkIHZzb3hzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtMl90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtMl90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzJlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpOCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY4X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzNlaTgodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mNF90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWczZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc0ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTgodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG0xX3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG0xX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mNF90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWk4KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjRfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc1ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWk4KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNmVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzZlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mOF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzdlaTgoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50OG1mMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjRfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaThfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY4X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpOF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTgodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50OG1mOF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWYyX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWYyX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpOChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ4bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpOCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ4bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc4ZWk4KF9GbG9hdDE2ICogb3AwLCB2dWludDhtZjhfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk4KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDhtZjhfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTE2X3ZfZjE2bTQpKSkKdm9pZCB2c294c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtNF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWcyZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mNF90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzJlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMl90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnM2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzNlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzNlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWkxNl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTJfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWY0X3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNWVpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc1ZWkxNih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzZlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bTFfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc2ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkxNih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNmVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzZlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnNmVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWkxNihfRmxvYXQxNiAqIG9wMCwgdnVpbnQxNm1mMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnN2VpMTYodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTE2KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtMV90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkxNih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTE2KF9GbG9hdDE2ICogb3AwLCB2dWludDE2bWYyX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzhlaTE2KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpMTYoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MTZtZjRfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnOGVpMTYodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzJlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtOF90IG9wMSwgdmZsb2F0MTZtNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtNF9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sNF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtOF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzJlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnMmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWcyZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTJfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWkzMl92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTRfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWkzMih2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTRfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnM2VpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bTIpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtNF90IG9wMSwgdmZsb2F0MTZtMl90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdnNveHNlZzRlaTMyKHZib29sOF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtNF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnNGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzRlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnNWVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzVlaTMyKHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTJfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc1ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzVlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnNWVpMzIodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtZjJfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMV90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0xX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm1mMl90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpMzJfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc2ZWkzMih2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm1mMl90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc3ZWkzMihfRmxvYXQxNiAqIG9wMCwgdnVpbnQzMm0yX3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnN2VpMzIodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzdlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybTFfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnN2VpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtZjJfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnOGVpMzIoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50MzJtMl90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc4ZWkzMih2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQzMm0yX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybTFfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnOGVpMzIodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50MzJtMV90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzhlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzhlaTMyKF9GbG9hdDE2ICogb3AwLCB2dWludDMybWYyX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc4ZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzhlaTMyKHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDMybWYyX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG04X3Qgb3AxLCB2ZmxvYXQxNm0yX3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w4X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG04X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWcyZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzJlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2c294c2VnMmVpNjQodmJvb2w2NF90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMV90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWczZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzNlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzNlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2c294c2VnM2VpNjQodmJvb2wzMl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnM2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnM2VpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWczZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0xKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTRfdCBvcDEsIHZmbG9hdDE2bTFfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDE2X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG00X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm0yKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bThfdCBvcDEsIHZmbG9hdDE2bTJfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDhfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bThfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzRlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdnNveHNlZzRlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTJfdCBvcDEsIHZmbG9hdDE2bWYyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzRlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc0ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc0ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc0ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc1ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNWVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sMzJfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNWVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnNWVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzVlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2c294c2VnNmVpNjQodmJvb2wxNl90IG9wMCwgX0Zsb2F0MTYgKiBvcDEsIHZ1aW50NjRtNF90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnNmVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnNmVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc2ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZzb3hzZWc2ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0xX3Qgb3AxLCB2ZmxvYXQxNm1mNF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc2ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzZlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2c294c2VnN2VpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtNF90IG9wMSwgdmZsb2F0MTZtMV90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZzb3hzZWc3ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG0yX3Qgb3AxLCB2ZmxvYXQxNm1mMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnN2VpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc3ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdnNveHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdnNveHNlZzdlaTY0KF9GbG9hdDE2ICogb3AwLCB2dWludDY0bTFfdCBvcDEsIHZmbG9hdDE2bWY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zzb3hzZWc3ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdnNveHNlZzdlaTY0KHZib29sNjRfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTFfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZzb3hzZWc4ZWk2NChfRmxvYXQxNiAqIG9wMCwgdnVpbnQ2NG00X3Qgb3AxLCB2ZmxvYXQxNm0xX3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdnNveHNlZzhlaTY0KHZib29sMTZfdCBvcDAsIF9GbG9hdDE2ICogb3AxLCB2dWludDY0bTRfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2c294c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMl90IG9wMSwgdmZsb2F0MTZtZjJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDMyX3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0yX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2c294c2VnOGVpNjQoX0Zsb2F0MTYgKiBvcDAsIHZ1aW50NjRtMV90IG9wMSwgdmZsb2F0MTZtZjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92c294c2VnOGVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZzb3hzZWc4ZWk2NCh2Ym9vbDY0X3Qgb3AwLCBfRmxvYXQxNiAqIG9wMSwgdnVpbnQ2NG0xX3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWcyZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNl92X2YxNm00X20pKSkKdm9pZCB2bHNlZzJlMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzJlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzNlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWczZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnM2UxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2Ym9vbDhfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWczZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnNGUxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc0ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc0ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3Qgb3AxMik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc2VnNWUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHNpemVfdCBvcDEyKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgc2l6ZV90IG9wMTIpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnNmUxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCBvcDE0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc2ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgc2l6ZV90IG9wMTQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc2ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCBzaXplX3Qgb3AxNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzdlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc3ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCBvcDE2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc3ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgc2l6ZV90IG9wMTYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWc3ZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCBzaXplX3Qgb3AxNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3Qgb3AxOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc2VnOGUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHNpemVfdCBvcDE4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgc2l6ZV90IG9wMTgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzZWcyZTE2ZmYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZib29sOF90IG9wMiwgdmZsb2F0MTZtMl90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzJlMTZmZl92X2YxNm00X20pKSkKdm9pZCB2bHNlZzJlMTZmZih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgc2l6ZV90ICogb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnMmUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzJlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBzaXplX3QgKiBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzZWcyZTE2ZmZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc2VnMmUxNmZmKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHNpemVfdCAqIG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzNlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2Ym9vbDE2X3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgc2l6ZV90ICogb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnM2UxNmZmX3ZfZjE2bTJfbSkpKQp2b2lkIHZsc2VnM2UxNmZmKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzNlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWczZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHNpemVfdCAqIG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBzaXplX3QgKiBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzRlMTZmZl92X2YxNm0yX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2Ym9vbDMyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNGUxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzRlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHNpemVfdCAqIG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNWUxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnNWUxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzVlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc1ZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBzaXplX3QgKiBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzZlMTZmZl92X2YxNm0xX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2Ym9vbDE2X3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnNmUxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzZlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHNpemVfdCAqIG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnN2UxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNlZzdlMTZmZih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2Ym9vbDMyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnN2UxNmZmX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNlZzdlMTZmZih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHNpemVfdCAqIG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc2VnOGUxNmZmX3ZfZjE2bTFfbSkpKQp2b2lkIHZsc2VnOGUxNmZmKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNlZzhlMTZmZl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzZWc4ZTE2ZmYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBzaXplX3QgKiBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWcyZTE2X3ZfZjE2bTRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHB0cmRpZmZfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnMmUxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzc2VnMmUxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCBwdHJkaWZmX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzJlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzJlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgcHRyZGlmZl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzNlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2YxNm0yX20pKSkKdm9pZCB2bHNzZWczZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHB0cmRpZmZfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnM2UxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmxzc2VnM2UxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgcHRyZGlmZl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWczZTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHNzZWczZTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCBwdHJkaWZmX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmxzc2VnNGUxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm0yX20pKSkKdm9pZCB2bHNzZWc0ZTE2KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgcHRyZGlmZl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzRlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzRlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCBwdHJkaWZmX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNGUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNGUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2Ym9vbDY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHB0cmRpZmZfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHB0cmRpZmZfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc1ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNzZWc1ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgcHRyZGlmZl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzVlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzVlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCBwdHJkaWZmX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm0xX20pKSkKdm9pZCB2bHNzZWc2ZTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgcHRyZGlmZl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzZlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzZlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCBwdHJkaWZmX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnNmUxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnNmUxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHB0cmRpZmZfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc3ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgcHRyZGlmZl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzdlMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsc3NlZzdlMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCBwdHJkaWZmX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmxzc2VnN2UxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmxzc2VnN2UxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2Ym9vbDY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHB0cmRpZmZfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHB0cmRpZmZfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHNzZWc4ZTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHNzZWc4ZTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgcHRyZGlmZl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3Zsc3NlZzhlMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsc3NlZzhlMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCBwdHJkaWZmX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWYyX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2Ym9vbDE2X3Qgb3AyLCB2ZmxvYXQxNm0xX3Qgb3AzLCB2ZmxvYXQxNm0xX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50OG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTgodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDhtMl90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpOF92X2YxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY0X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2Ym9vbDMyX3Qgb3AyLCB2ZmxvYXQxNm1mMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaThfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ4bWY4X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2Ym9vbDY0X3Qgb3AyLCB2ZmxvYXQxNm1mNF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjhfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDhtZjJfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZib29sOF90IG9wMywgdmZsb2F0MTZtMl90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG0xX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50OG1mNF90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmJvb2wzMl90IG9wMywgdmZsb2F0MTZtZjJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDhtZjhfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWczZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ4bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtMV90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50OG1mNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDhtZjRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDhtZjhfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc0ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ4bWY4X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWYyX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDhtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpOF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDhtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk4KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZib29sMzJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ4bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaThfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ4bWY4X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2Ym9vbDY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50OG1mOF90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc2ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ4bWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQ4bWY0X3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2Ym9vbDMyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50OG1mNF90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWk4X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50OG1mOF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpOF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzZlaTgodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDhtZjhfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ4bWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50OG1mMl90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk4X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50OG1mNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDhtZjRfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDhtZjhfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaThfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc3ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ4bWY4X3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ4bWYyX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ4bWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaThfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQ4bWY0X3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTgodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgdmJvb2wzMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIHZmbG9hdDE2bWYyX3Qgb3AxMywgdmZsb2F0MTZtZjJfdCBvcDE0LCB2ZmxvYXQxNm1mMl90IG9wMTUsIHZmbG9hdDE2bWYyX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDhtZjRfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpOF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWk4KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDhtZjhfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk4X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpOCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCB2Ym9vbDY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIHZmbG9hdDE2bWY0X3Qgb3AxNSwgdmZsb2F0MTZtZjRfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50OG1mOF90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZib29sMTZfdCBvcDIsIHZmbG9hdDE2bTFfdCBvcDMsIHZmbG9hdDE2bTFfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDE2bTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDE2bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWcyZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmJvb2w4X3Qgb3AyLCB2ZmxvYXQxNm0yX3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm00KSkpCnZvaWQgdmx1eHNlZzJlaTE2KHZmbG9hdDE2bTRfdCAqIG9wMCwgdmZsb2F0MTZtNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQxNm00X3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkxNl92X2YxNm00X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIHZib29sNF90IG9wMiwgdmZsb2F0MTZtNF90IG9wMywgdmZsb2F0MTZtNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MTZtZjRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQxNm1mMl90IG9wNCwgc2l6ZV90IG9wNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWczZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2Ym9vbDMyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQxNm1mMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDMsIHZ1aW50MTZtZjRfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjRfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm0xX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2Ym9vbDE2X3Qgb3A0LCB2ZmxvYXQxNm0xX3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQxNm0xX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bTIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQxNm0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmZsb2F0MTZtMl90ICogb3AzLCB2Ym9vbDhfdCBvcDQsIHZmbG9hdDE2bTJfdCBvcDUsIHZmbG9hdDE2bTJfdCBvcDYsIHZmbG9hdDE2bTJfdCBvcDcsIHZmbG9hdDE2bTJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bTJfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MTZtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDE2bWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDE2bWY0X3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzRlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZib29sNjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQxNm1mNF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzVlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZib29sMTZfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtMV90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWkxNl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQxNm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWkxNih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50MTZtZjJfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMTZfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MTZtZjRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDE2bWY0X3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMTYodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MTZtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm0xX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTE2X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDE2bWYyX3Qgb3A3LCBzaXplX3Qgb3A4KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzZlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZib29sMzJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgdmZsb2F0MTZtZjJfdCBvcDExLCB2ZmxvYXQxNm1mMl90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQxNm1mMl90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc2ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCBjb25zdCBfRmxvYXQxNiAqIG9wNiwgdnVpbnQxNm1mNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMTZfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50MTZtZjRfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc3ZWkxNih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZib29sMTZfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MTZtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDE2bWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTE2X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDE2bWY0X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkxNl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzdlaTE2KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZib29sNjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgdmZsb2F0MTZtZjRfdCBvcDEzLCB2ZmxvYXQxNm1mNF90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQxNm1mNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmZsb2F0MTZtMV90ICogb3A3LCB2Ym9vbDE2X3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIHZmbG9hdDE2bTFfdCBvcDE1LCB2ZmxvYXQxNm0xX3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bTFfdCBvcDE4LCBzaXplX3Qgb3AxOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMTZfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmZsb2F0MTZtZjJfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50MTZtZjJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTE2KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQxNm1mMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkxNl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkxNih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQxNm1mNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTE2X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMTYodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDE2bWY0X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtNF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTRfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtNF90ICogb3AwLCB2ZmxvYXQxNm00X3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDMybThfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bTRfbSkpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm00X3QgKiBvcDAsIHZmbG9hdDE2bTRfdCAqIG9wMSwgdmJvb2w0X3Qgb3AyLCB2ZmxvYXQxNm00X3Qgb3AzLCB2ZmxvYXQxNm00X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm04X3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWcyZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQzMm0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZib29sMzJfdCBvcDIsIHZmbG9hdDE2bWYyX3Qgb3AzLCB2ZmxvYXQxNm1mMl90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50MzJtZjJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnMmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmJvb2w2NF90IG9wMiwgdmZsb2F0MTZtZjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQzMm1mMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtMl90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpMzJfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpMzIodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm00X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQzMm0xX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTMyX3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDMybWYyX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWkzMl92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzNlaTMyKHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZib29sNjRfdCBvcDMsIHZmbG9hdDE2bWY0X3Qgb3A0LCB2ZmxvYXQxNm1mNF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybWYyX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtMl90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmJvb2wxNl90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50MzJtMl90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWkzMl92X2YxNm0yKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtNF90IG9wNSwgc2l6ZV90IG9wNik7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2ZmxvYXQxNm0yX3QgKiBvcDIsIHZmbG9hdDE2bTJfdCAqIG9wMywgdmJvb2w4X3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCB2ZmxvYXQxNm0yX3Qgb3A3LCB2ZmxvYXQxNm0yX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQzMm00X3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzRlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDMybTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmJvb2wzMl90IG9wNCwgdmZsb2F0MTZtZjJfdCBvcDUsIHZmbG9hdDE2bWYyX3Qgb3A2LCB2ZmxvYXQxNm1mMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgY29uc3QgX0Zsb2F0MTYgKiBvcDQsIHZ1aW50MzJtZjJfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDMybWYyX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc1ZWkzMih2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmJvb2wxNl90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgdmZsb2F0MTZtMV90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQzMm0yX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzVlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDMybTFfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmJvb2wzMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIHZmbG9hdDE2bWYyX3Qgb3A3LCB2ZmxvYXQxNm1mMl90IG9wOCwgdmZsb2F0MTZtZjJfdCBvcDksIHZmbG9hdDE2bWYyX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybTFfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50MzJtZjJfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzVlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNWVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmJvb2w2NF90IG9wNSwgdmZsb2F0MTZtZjRfdCBvcDYsIHZmbG9hdDE2bWY0X3Qgb3A3LCB2ZmxvYXQxNm1mNF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDMybWYyX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtMl90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQzMm0yX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDMybTFfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybTFfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50MzJtZjJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNmVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmJvb2w2NF90IG9wNiwgdmZsb2F0MTZtZjRfdCBvcDcsIHZmbG9hdDE2bWY0X3Qgb3A4LCB2ZmxvYXQxNm1mNF90IG9wOSwgdmZsb2F0MTZtZjRfdCBvcDEwLCB2ZmxvYXQxNm1mNF90IG9wMTEsIHZmbG9hdDE2bWY0X3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDMybWYyX3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQzMm0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2Ym9vbDE2X3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgdmZsb2F0MTZtMV90IG9wMTEsIHZmbG9hdDE2bTFfdCBvcDEyLCB2ZmxvYXQxNm0xX3Qgb3AxMywgdmZsb2F0MTZtMV90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQzMm0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzdlaTMyKHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDMybTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmZsb2F0MTZtZjJfdCAqIG9wNiwgdmJvb2wzMl90IG9wNywgdmZsb2F0MTZtZjJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpMzJfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50MzJtZjJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDMybWYyX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDMybTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgdmZsb2F0MTZtMV90ICogb3A2LCB2ZmxvYXQxNm0xX3QgKiBvcDcsIHZib29sMTZfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIHZmbG9hdDE2bTFfdCBvcDEzLCB2ZmxvYXQxNm0xX3Qgb3AxNCwgdmZsb2F0MTZtMV90IG9wMTUsIHZmbG9hdDE2bTFfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtMl90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQzMm0xX3Qgb3A5LCBzaXplX3Qgb3AxMCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpMzJfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCB2ZmxvYXQxNm1mMl90ICogb3A3LCB2Ym9vbDMyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIHZmbG9hdDE2bWYyX3Qgb3AxNSwgdmZsb2F0MTZtZjJfdCBvcDE2LCBjb25zdCBfRmxvYXQxNiAqIG9wMTcsIHZ1aW50MzJtMV90IG9wMTgsIHNpemVfdCBvcDE5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWkzMl92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc4ZWkzMih2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2ZmxvYXQxNm1mNF90ICogb3A2LCB2ZmxvYXQxNm1mNF90ICogb3A3LCBjb25zdCBfRmxvYXQxNiAqIG9wOCwgdnVpbnQzMm1mMl90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTMyX3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnOGVpMzIodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmZsb2F0MTZtZjRfdCAqIG9wNywgdmJvb2w2NF90IG9wOCwgdmZsb2F0MTZtZjRfdCBvcDksIHZmbG9hdDE2bWY0X3Qgb3AxMCwgdmZsb2F0MTZtZjRfdCBvcDExLCB2ZmxvYXQxNm1mNF90IG9wMTIsIHZmbG9hdDE2bWY0X3Qgb3AxMywgdmZsb2F0MTZtZjRfdCBvcDE0LCB2ZmxvYXQxNm1mNF90IG9wMTUsIHZmbG9hdDE2bWY0X3Qgb3AxNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDE3LCB2dWludDMybWYyX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTRfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmJvb2wxNl90IG9wMiwgdmZsb2F0MTZtMV90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgY29uc3QgX0Zsb2F0MTYgKiBvcDIsIHZ1aW50NjRtOF90IG9wMywgc2l6ZV90IG9wNCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnMmVpNjRfdl9mMTZtMl9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bTJfdCAqIG9wMCwgdmZsb2F0MTZtMl90ICogb3AxLCB2Ym9vbDhfdCBvcDIsIHZmbG9hdDE2bTJfdCBvcDMsIHZmbG9hdDE2bTJfdCBvcDQsIGNvbnN0IF9GbG9hdDE2ICogb3A1LCB2dWludDY0bThfdCBvcDYsIHNpemVfdCBvcDcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIGNvbnN0IF9GbG9hdDE2ICogb3AyLCB2dWludDY0bTJfdCBvcDMsIHNpemVfdCBvcDQpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzJlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnMmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmJvb2wzMl90IG9wMiwgdmZsb2F0MTZtZjJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0yX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWcyZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCBjb25zdCBfRmxvYXQxNiAqIG9wMiwgdnVpbnQ2NG0xX3Qgb3AzLCBzaXplX3Qgb3A0KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWcyZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzJlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZib29sNjRfdCBvcDIsIHZmbG9hdDE2bWY0X3Qgb3AzLCB2ZmxvYXQxNm1mNF90IG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtMV90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG00X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0xX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmJvb2wxNl90IG9wMywgdmZsb2F0MTZtMV90IG9wNCwgdmZsb2F0MTZtMV90IG9wNSwgdmZsb2F0MTZtMV90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnM2VpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG04X3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm0yX20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtMl90ICogb3AwLCB2ZmxvYXQxNm0yX3QgKiBvcDEsIHZmbG9hdDE2bTJfdCAqIG9wMiwgdmJvb2w4X3Qgb3AzLCB2ZmxvYXQxNm0yX3Qgb3A0LCB2ZmxvYXQxNm0yX3Qgb3A1LCB2ZmxvYXQxNm0yX3Qgb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG04X3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWczZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCBjb25zdCBfRmxvYXQxNiAqIG9wMywgdnVpbnQ2NG0yX3Qgb3A0LCBzaXplX3Qgb3A1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWczZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZib29sMzJfdCBvcDMsIHZmbG9hdDE2bWYyX3Qgb3A0LCB2ZmxvYXQxNm1mMl90IG9wNSwgdmZsb2F0MTZtZjJfdCBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTJfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzNlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIGNvbnN0IF9GbG9hdDE2ICogb3AzLCB2dWludDY0bTFfdCBvcDQsIHNpemVfdCBvcDUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzNlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnM2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmJvb2w2NF90IG9wMywgdmZsb2F0MTZtZjRfdCBvcDQsIHZmbG9hdDE2bWY0X3Qgb3A1LCB2ZmxvYXQxNm1mNF90IG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtMV90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTRfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZib29sMTZfdCBvcDQsIHZmbG9hdDE2bTFfdCBvcDUsIHZmbG9hdDE2bTFfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTRfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNGVpNjRfdl9mMTZtMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bThfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bTJfbSkpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm0yX3QgKiBvcDAsIHZmbG9hdDE2bTJfdCAqIG9wMSwgdmZsb2F0MTZtMl90ICogb3AyLCB2ZmxvYXQxNm0yX3QgKiBvcDMsIHZib29sOF90IG9wNCwgdmZsb2F0MTZtMl90IG9wNSwgdmZsb2F0MTZtMl90IG9wNiwgdmZsb2F0MTZtMl90IG9wNywgdmZsb2F0MTZtMl90IG9wOCwgY29uc3QgX0Zsb2F0MTYgKiBvcDksIHZ1aW50NjRtOF90IG9wMTAsIHNpemVfdCBvcDExKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc0ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCBjb25zdCBfRmxvYXQxNiAqIG9wNCwgdnVpbnQ2NG0yX3Qgb3A1LCBzaXplX3Qgb3A2KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc0ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZib29sMzJfdCBvcDQsIHZmbG9hdDE2bWYyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCBjb25zdCBfRmxvYXQxNiAqIG9wOSwgdnVpbnQ2NG0yX3Qgb3AxMCwgc2l6ZV90IG9wMTEpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzRlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIGNvbnN0IF9GbG9hdDE2ICogb3A0LCB2dWludDY0bTFfdCBvcDUsIHNpemVfdCBvcDYpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzRlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnNGVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmJvb2w2NF90IG9wNCwgdmZsb2F0MTZtZjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIGNvbnN0IF9GbG9hdDE2ICogb3A5LCB2dWludDY0bTFfdCBvcDEwLCBzaXplX3Qgb3AxMSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtNF90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2Ym9vbDE2X3Qgb3A1LCB2ZmxvYXQxNm0xX3Qgb3A2LCB2ZmxvYXQxNm0xX3Qgb3A3LCB2ZmxvYXQxNm0xX3Qgb3A4LCB2ZmxvYXQxNm0xX3Qgb3A5LCB2ZmxvYXQxNm0xX3Qgb3AxMCwgY29uc3QgX0Zsb2F0MTYgKiBvcDExLCB2dWludDY0bTRfdCBvcDEyLCBzaXplX3Qgb3AxMyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtZjIpKSkKdm9pZCB2bHV4c2VnNWVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDUsIHZ1aW50NjRtMl90IG9wNiwgc2l6ZV90IG9wNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNWVpNjRfdl9mMTZtZjJfbSkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2Ym9vbDMyX3Qgb3A1LCB2ZmxvYXQxNm1mMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCBjb25zdCBfRmxvYXQxNiAqIG9wMTEsIHZ1aW50NjRtMl90IG9wMTIsIHNpemVfdCBvcDEzKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mNCkpKQp2b2lkIHZsdXhzZWc1ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCBjb25zdCBfRmxvYXQxNiAqIG9wNSwgdnVpbnQ2NG0xX3Qgb3A2LCBzaXplX3Qgb3A3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc1ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzVlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZib29sNjRfdCBvcDUsIHZmbG9hdDE2bWY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIGNvbnN0IF9GbG9hdDE2ICogb3AxMSwgdnVpbnQ2NG0xX3Qgb3AxMiwgc2l6ZV90IG9wMTMpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bTEpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtMV90ICogb3AwLCB2ZmxvYXQxNm0xX3QgKiBvcDEsIHZmbG9hdDE2bTFfdCAqIG9wMiwgdmZsb2F0MTZtMV90ICogb3AzLCB2ZmxvYXQxNm0xX3QgKiBvcDQsIHZmbG9hdDE2bTFfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtNF90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZib29sMTZfdCBvcDYsIHZmbG9hdDE2bTFfdCBvcDcsIHZmbG9hdDE2bTFfdCBvcDgsIHZmbG9hdDE2bTFfdCBvcDksIHZmbG9hdDE2bTFfdCBvcDEwLCB2ZmxvYXQxNm0xX3Qgb3AxMSwgdmZsb2F0MTZtMV90IG9wMTIsIGNvbnN0IF9GbG9hdDE2ICogb3AxMywgdnVpbnQ2NG00X3Qgb3AxNCwgc2l6ZV90IG9wMTUpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzZlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIGNvbnN0IF9GbG9hdDE2ICogb3A2LCB2dWludDY0bTJfdCBvcDcsIHNpemVfdCBvcDgpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzZlaTY0X3ZfZjE2bWYyX20pKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtZjJfdCAqIG9wMCwgdmZsb2F0MTZtZjJfdCAqIG9wMSwgdmZsb2F0MTZtZjJfdCAqIG9wMiwgdmZsb2F0MTZtZjJfdCAqIG9wMywgdmZsb2F0MTZtZjJfdCAqIG9wNCwgdmZsb2F0MTZtZjJfdCAqIG9wNSwgdmJvb2wzMl90IG9wNiwgdmZsb2F0MTZtZjJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgY29uc3QgX0Zsb2F0MTYgKiBvcDEzLCB2dWludDY0bTJfdCBvcDE0LCBzaXplX3Qgb3AxNSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjQpKSkKdm9pZCB2bHV4c2VnNmVpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgY29uc3QgX0Zsb2F0MTYgKiBvcDYsIHZ1aW50NjRtMV90IG9wNywgc2l6ZV90IG9wOCk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnNmVpNjRfdl9mMTZtZjRfbSkpKQp2b2lkIHZsdXhzZWc2ZWk2NCh2ZmxvYXQxNm1mNF90ICogb3AwLCB2ZmxvYXQxNm1mNF90ICogb3AxLCB2ZmxvYXQxNm1mNF90ICogb3AyLCB2ZmxvYXQxNm1mNF90ICogb3AzLCB2ZmxvYXQxNm1mNF90ICogb3A0LCB2ZmxvYXQxNm1mNF90ICogb3A1LCB2Ym9vbDY0X3Qgb3A2LCB2ZmxvYXQxNm1mNF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCBjb25zdCBfRmxvYXQxNiAqIG9wMTMsIHZ1aW50NjRtMV90IG9wMTQsIHNpemVfdCBvcDE1KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm0xKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgY29uc3QgX0Zsb2F0MTYgKiBvcDcsIHZ1aW50NjRtNF90IG9wOCwgc2l6ZV90IG9wOSk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnN2VpNjRfdl9mMTZtMV9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bTFfdCAqIG9wMCwgdmZsb2F0MTZtMV90ICogb3AxLCB2ZmxvYXQxNm0xX3QgKiBvcDIsIHZmbG9hdDE2bTFfdCAqIG9wMywgdmZsb2F0MTZtMV90ICogb3A0LCB2ZmxvYXQxNm0xX3QgKiBvcDUsIHZmbG9hdDE2bTFfdCAqIG9wNiwgdmJvb2wxNl90IG9wNywgdmZsb2F0MTZtMV90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCBjb25zdCBfRmxvYXQxNiAqIG9wMTUsIHZ1aW50NjRtNF90IG9wMTYsIHNpemVfdCBvcDE3KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMikpKQp2b2lkIHZsdXhzZWc3ZWk2NCh2ZmxvYXQxNm1mMl90ICogb3AwLCB2ZmxvYXQxNm1mMl90ICogb3AxLCB2ZmxvYXQxNm1mMl90ICogb3AyLCB2ZmxvYXQxNm1mMl90ICogb3AzLCB2ZmxvYXQxNm1mMl90ICogb3A0LCB2ZmxvYXQxNm1mMl90ICogb3A1LCB2ZmxvYXQxNm1mMl90ICogb3A2LCBjb25zdCBfRmxvYXQxNiAqIG9wNywgdnVpbnQ2NG0yX3Qgb3A4LCBzaXplX3Qgb3A5KTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc3ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZib29sMzJfdCBvcDcsIHZmbG9hdDE2bWYyX3Qgb3A4LCB2ZmxvYXQxNm1mMl90IG9wOSwgdmZsb2F0MTZtZjJfdCBvcDEwLCB2ZmxvYXQxNm1mMl90IG9wMTEsIHZmbG9hdDE2bWYyX3Qgb3AxMiwgdmZsb2F0MTZtZjJfdCBvcDEzLCB2ZmxvYXQxNm1mMl90IG9wMTQsIGNvbnN0IF9GbG9hdDE2ICogb3AxNSwgdnVpbnQ2NG0yX3Qgb3AxNiwgc2l6ZV90IG9wMTcpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzdlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIGNvbnN0IF9GbG9hdDE2ICogb3A3LCB2dWludDY0bTFfdCBvcDgsIHNpemVfdCBvcDkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzdlaTY0X3ZfZjE2bWY0X20pKSkKdm9pZCB2bHV4c2VnN2VpNjQodmZsb2F0MTZtZjRfdCAqIG9wMCwgdmZsb2F0MTZtZjRfdCAqIG9wMSwgdmZsb2F0MTZtZjRfdCAqIG9wMiwgdmZsb2F0MTZtZjRfdCAqIG9wMywgdmZsb2F0MTZtZjRfdCAqIG9wNCwgdmZsb2F0MTZtZjRfdCAqIG9wNSwgdmZsb2F0MTZtZjRfdCAqIG9wNiwgdmJvb2w2NF90IG9wNywgdmZsb2F0MTZtZjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgY29uc3QgX0Zsb2F0MTYgKiBvcDE1LCB2dWludDY0bTFfdCBvcDE2LCBzaXplX3Qgb3AxNyk7CgpfX3J2dl9vdmVybG9hZGVkIF9fYXR0cmlidXRlX18oKGNsYW5nX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3J2dl92bHV4c2VnOGVpNjRfdl9mMTZtMSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgY29uc3QgX0Zsb2F0MTYgKiBvcDgsIHZ1aW50NjRtNF90IG9wOSwgc2l6ZV90IG9wMTApOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bTFfbSkpKQp2b2lkIHZsdXhzZWc4ZWk2NCh2ZmxvYXQxNm0xX3QgKiBvcDAsIHZmbG9hdDE2bTFfdCAqIG9wMSwgdmZsb2F0MTZtMV90ICogb3AyLCB2ZmxvYXQxNm0xX3QgKiBvcDMsIHZmbG9hdDE2bTFfdCAqIG9wNCwgdmZsb2F0MTZtMV90ICogb3A1LCB2ZmxvYXQxNm0xX3QgKiBvcDYsIHZmbG9hdDE2bTFfdCAqIG9wNywgdmJvb2wxNl90IG9wOCwgdmZsb2F0MTZtMV90IG9wOSwgdmZsb2F0MTZtMV90IG9wMTAsIHZmbG9hdDE2bTFfdCBvcDExLCB2ZmxvYXQxNm0xX3Qgb3AxMiwgdmZsb2F0MTZtMV90IG9wMTMsIHZmbG9hdDE2bTFfdCBvcDE0LCB2ZmxvYXQxNm0xX3Qgb3AxNSwgdmZsb2F0MTZtMV90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG00X3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWYyKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDY0bTJfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mMl9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWYyX3QgKiBvcDAsIHZmbG9hdDE2bWYyX3QgKiBvcDEsIHZmbG9hdDE2bWYyX3QgKiBvcDIsIHZmbG9hdDE2bWYyX3QgKiBvcDMsIHZmbG9hdDE2bWYyX3QgKiBvcDQsIHZmbG9hdDE2bWYyX3QgKiBvcDUsIHZmbG9hdDE2bWYyX3QgKiBvcDYsIHZmbG9hdDE2bWYyX3QgKiBvcDcsIHZib29sMzJfdCBvcDgsIHZmbG9hdDE2bWYyX3Qgb3A5LCB2ZmxvYXQxNm1mMl90IG9wMTAsIHZmbG9hdDE2bWYyX3Qgb3AxMSwgdmZsb2F0MTZtZjJfdCBvcDEyLCB2ZmxvYXQxNm1mMl90IG9wMTMsIHZmbG9hdDE2bWYyX3Qgb3AxNCwgdmZsb2F0MTZtZjJfdCBvcDE1LCB2ZmxvYXQxNm1mMl90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG0yX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKX19ydnZfb3ZlcmxvYWRlZCBfX2F0dHJpYnV0ZV9fKChjbGFuZ19idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9ydnZfdmx1eHNlZzhlaTY0X3ZfZjE2bWY0KSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIGNvbnN0IF9GbG9hdDE2ICogb3A4LCB2dWludDY0bTFfdCBvcDksIHNpemVfdCBvcDEwKTsKCl9fcnZ2X292ZXJsb2FkZWQgX19hdHRyaWJ1dGVfXygoY2xhbmdfYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fcnZ2X3ZsdXhzZWc4ZWk2NF92X2YxNm1mNF9tKSkpCnZvaWQgdmx1eHNlZzhlaTY0KHZmbG9hdDE2bWY0X3QgKiBvcDAsIHZmbG9hdDE2bWY0X3QgKiBvcDEsIHZmbG9hdDE2bWY0X3QgKiBvcDIsIHZmbG9hdDE2bWY0X3QgKiBvcDMsIHZmbG9hdDE2bWY0X3QgKiBvcDQsIHZmbG9hdDE2bWY0X3QgKiBvcDUsIHZmbG9hdDE2bWY0X3QgKiBvcDYsIHZmbG9hdDE2bWY0X3QgKiBvcDcsIHZib29sNjRfdCBvcDgsIHZmbG9hdDE2bWY0X3Qgb3A5LCB2ZmxvYXQxNm1mNF90IG9wMTAsIHZmbG9hdDE2bWY0X3Qgb3AxMSwgdmZsb2F0MTZtZjRfdCBvcDEyLCB2ZmxvYXQxNm1mNF90IG9wMTMsIHZmbG9hdDE2bWY0X3Qgb3AxNCwgdmZsb2F0MTZtZjRfdCBvcDE1LCB2ZmxvYXQxNm1mNF90IG9wMTYsIGNvbnN0IF9GbG9hdDE2ICogb3AxNywgdnVpbnQ2NG0xX3Qgb3AxOCwgc2l6ZV90IG9wMTkpOwoKI2VuZGlmCgoKI2lmZGVmIF9fY3BsdXNwbHVzCn0KI2VuZGlmIC8vIF9fcmlzY3ZfdmVjdG9yCiNlbmRpZiAvLyBfX1JJU0NWX1ZFQ1RPUl9ICgAvKj09PS0tLS0gc2d4aW50cmluLmggLSBYODYgU0dYIGludHJpbnNpY3MgY29uZmlndXJhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxzZ3hpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fU0dYSU5UUklOX0gKI2RlZmluZSBfX1NHWElOVFJJTl9ICgojaWYgX19oYXNfZXh0ZW5zaW9uKGdudV9hc20pCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJzZ3giKSkpCgpzdGF0aWMgX19pbmxpbmUgdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfZW5jbHVfdTMyKHVuc2lnbmVkIGludCBfX2xlYWYsIF9fU0laRV9UWVBFX18gX19kW10pCnsKICB1bnNpZ25lZCBpbnQgX19yZXN1bHQ7CiAgX19hc21fXyAoImVuY2x1IgogICAgICAgICAgIDogIj1hIiAoX19yZXN1bHQpLCAiPWIiIChfX2RbMF0pLCAiPWMiIChfX2RbMV0pLCAiPWQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiYSIgKF9fbGVhZiksICJiIiAoX19kWzBdKSwgImMiIChfX2RbMV0pLCAiZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJjYyIpOwogIHJldHVybiBfX3Jlc3VsdDsKfQoKc3RhdGljIF9faW5saW5lIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2VuY2xzX3UzMih1bnNpZ25lZCBpbnQgX19sZWFmLCBfX1NJWkVfVFlQRV9fIF9fZFtdKQp7CiAgdW5zaWduZWQgaW50IF9fcmVzdWx0OwogIF9fYXNtX18gKCJlbmNscyIKICAgICAgICAgICA6ICI9YSIgKF9fcmVzdWx0KSwgIj1iIiAoX19kWzBdKSwgIj1jIiAoX19kWzFdKSwgIj1kIiAoX19kWzJdKQogICAgICAgICAgIDogImEiIChfX2xlYWYpLCAiYiIgKF9fZFswXSksICJjIiAoX19kWzFdKSwgImQiIChfX2RbMl0pCiAgICAgICAgICAgOiAiY2MiKTsKICByZXR1cm4gX19yZXN1bHQ7Cn0KCnN0YXRpYyBfX2lubGluZSB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9lbmNsdl91MzIodW5zaWduZWQgaW50IF9fbGVhZiwgX19TSVpFX1RZUEVfXyBfX2RbXSkKewogIHVuc2lnbmVkIGludCBfX3Jlc3VsdDsKICBfX2FzbV9fICgiZW5jbHYiCiAgICAgICAgICAgOiAiPWEiIChfX3Jlc3VsdCksICI9YiIgKF9fZFswXSksICI9YyIgKF9fZFsxXSksICI9ZCIgKF9fZFsyXSkKICAgICAgICAgICA6ICJhIiAoX19sZWFmKSwgImIiIChfX2RbMF0pLCAiYyIgKF9fZFsxXSksICJkIiAoX19kWzJdKQogICAgICAgICAgIDogImNjIik7CiAgcmV0dXJuIF9fcmVzdWx0Owp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19oYXNfZXh0ZW5zaW9uKGdudV9hc20pICovCgojZW5kaWYKAHRtbWludHJpbi5oAHdtbWludHJpbi5oAHBwY193cmFwcGVycy9zbW1pbnRyaW4uaAAgKHNpemU9AFZOYW1lIHJ1bGUgaXMgbWlzc2luZyBpdHMgdGVtcGxhdGUuAFRoZSBkb2N1bWVudCByb290IG11c3Qgbm90IGJlIGZvbGxvd2VkIGJ5IG90aGVyIHZhbHVlcy4Ac2l6ZV90IHRvIGludCBjb252ZXJzaW9uAHByZWZlci1yZWFsACh1bmtub3duKQBbOmFscGhhOl0ALABleHRlcm5hbC9yZWdleC1yZTIvcmUyL2JpdHN0YXRlLmNjAE5hbWVkQ2FwdHVyZXNXYWxrZXI6OlNob3J0VmlzaXQgY2FsbGVkAENhcHR1cmVOYW1lc1dhbGtlcjo6U2hvcnRWaXNpdCBjYWxsZWQAW15ceDAwLVx4ezEwZmZmZn1dAEV0aGlvcGljAEd1amFyYXRpAE1hc2FyYW1fR29uZGkAJXNAICUqcCAgKHVua25vd24pICAlcwoATG93TGV2ZWxBbGxvYzo6RGVsZXRlQXJlbmE6IG11bm1hcCBmYWlsZWQ6ICVkAF9fZmxvYXQxMjgAZWxsaXBzaXMAY2hhcjE2X3QAc3QAbncAZGEAKj0AVU5LTk9XTgAsIGRhdGEgPSAiAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL3N0cl9zcGxpdC5jYwB3YWl0cCA9PSBudWxscHRyIHx8IHdhaXRwLT50aHJlYWQtPndhaXRwID09IG51bGxwdHIgfHwgd2FpdHAtPnRocmVhZC0+c3VwcHJlc3NfZmF0YWxfZXJyb3JzAHRoaXMtPm11XyAhPSBudWxscHRyAFVUQwAvZGF0YS90emRhdGEvAFAtMzg0AEVDRFNBIFMAL2Rldi91cmFuZG9tAEFTTi4xIGVuY29kaW5nIHJvdXRpbmVzAGVsbGlwdGljIGN1cnZlIHJvdXRpbmVzAENPTVAgcm91dGluZXMAb3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9hbmFseXNpcy5wYi5jYwBvdXQvc29vbmcvLmludGVybWVkaWF0ZXMvZXh0ZXJuYWwva3l0aGUvY3h4X2V4dHJhY3Rvci9saW51eF9nbGliY194ODZfNjQvZ2VuL3Byb3RvL2t5dGhlL3Byb3RvL2ZpbGVjb250ZXh0LnBiLmNjAGt5dGhlLnByb3RvLldyaXRlUmVxdWVzdC5VcGRhdGUuZmFjdF9uYW1lAFteLV0uKlwuKGZ8Zm9yfGZ0bnxGfEZPUnxmcHB8RlBQfEZUTnxmOTB8Zjk1fGYwM3xmMDh8RjkwfEY5NXxGMDN8RjA4KQBDb3VsZG4ndCByZW9wZW4gAGluY2x1ZGUASW1wb3J0ZWQgd2FzIHNldCB0byAAQW5nbGVkAC8qPT09LS0gX19jbGFuZ19jdWRhX2NvbXBsZXhfYnVpbHRpbnMgLSBDVURBIGltcGxzIG9mIHJ1bnRpbWUgY29tcGxleCBmbnMgLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9DT01QTEVYX0JVSUxUSU5TCiNkZWZpbmUgX19DTEFOR19DVURBX0NPTVBMRVhfQlVJTFRJTlMKCi8vIFRoaXMgaGVhZGVyIGRlZmluZXMgX19tdWxkYzMsIF9fbXVsc2MzLCBfX2RpdmRjMywgYW5kIF9fZGl2c2MzLiAgVGhlc2UgYXJlCi8vIGxpYmdjYyBmdW5jdGlvbnMgdGhhdCBjbGFuZyBhc3N1bWVzIGFyZSBhdmFpbGFibGUgd2hlbiBjb21waWxpbmcgYzk5IGNvbXBsZXgKLy8gb3BlcmF0aW9ucy4gIChUaGVzZSBpbXBsZW1lbnRhdGlvbnMgY29tZSBmcm9tIGxpYmMrKywgYW5kIGhhdmUgYmVlbiBtb2RpZmllZAovLyB0byB3b3JrIHdpdGggQ1VEQSBhbmQgT3Blbk1QIHRhcmdldCBvZmZsb2FkaW5nIFtpbiBDIGFuZCBDKysgbW9kZV0uKQoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFVklDRV9fIikKI2lmIGRlZmluZWQoX19PUEVOTVBfTlZQVFhfXykgfHwgZGVmaW5lZChfX09QRU5NUF9BTURHQ05fXykKI3ByYWdtYSBvbXAgZGVjbGFyZSB0YXJnZXQKI2RlZmluZSBfX0RFVklDRV9fIF9fYXR0cmlidXRlX18oKG5vaW5saW5lLCBub3Rocm93LCBjb2xkLCB3ZWFrKSkKI2Vsc2UKI2RlZmluZSBfX0RFVklDRV9fIF9fZGV2aWNlX18gaW5saW5lCiNlbmRpZgoKLy8gVG8gbWFrZSB0aGUgYWxnb3JpdGhtcyBhdmFpbGFibGUgZm9yIEMgYW5kIEMrKyBpbiBDVURBIGFuZCBPcGVuTVAgd2Ugc2VsZWN0Ci8vIGRpZmZlcmVudCBidXQgZXF1aXZhbGVudCBmdW5jdGlvbiB2ZXJzaW9ucy4gVE9ETzogRm9yIE9wZW5NUCB3ZSBjdXJyZW50bHkKLy8gc2VsZWN0IHRoZSBuYXRpdmUgYnVpbHRpbnMgYXMgdGhlIG92ZXJsb2FkIHN1cHBvcnQgZm9yIHRlbXBsYXRlcyBpcyBsYWNraW5nLgojaWYgIWRlZmluZWQoX19PUEVOTVBfTlZQVFhfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNkZWZpbmUgX0lTTkFOZCBzdGQ6OmlzbmFuCiNkZWZpbmUgX0lTTkFOZiBzdGQ6OmlzbmFuCiNkZWZpbmUgX0lTSU5GZCBzdGQ6OmlzaW5mCiNkZWZpbmUgX0lTSU5GZiBzdGQ6OmlzaW5mCiNkZWZpbmUgX0lTRklOSVRFZCBzdGQ6OmlzZmluaXRlCiNkZWZpbmUgX0lTRklOSVRFZiBzdGQ6OmlzZmluaXRlCiNkZWZpbmUgX0NPUFlTSUdOZCBzdGQ6OmNvcHlzaWduCiNkZWZpbmUgX0NPUFlTSUdOZiBzdGQ6OmNvcHlzaWduCiNkZWZpbmUgX1NDQUxCTmQgc3RkOjpzY2FsYm4KI2RlZmluZSBfU0NBTEJOZiBzdGQ6OnNjYWxibgojZGVmaW5lIF9BQlNkIHN0ZDo6YWJzCiNkZWZpbmUgX0FCU2Ygc3RkOjphYnMKI2RlZmluZSBfTE9HQmQgc3RkOjpsb2diCiNkZWZpbmUgX0xPR0JmIHN0ZDo6bG9nYgovLyBSYXRoZXIgdGhhbiBwdWxsaW5nIGluIHN0ZDo6bWF4IGZyb20gYWxnb3JpdGhtIGV2ZXJ5dGltZSwgdXNlIGF2YWlsYWJsZSA6Om1heC4KI2RlZmluZSBfZm1heGQgbWF4CiNkZWZpbmUgX2ZtYXhmIG1heAojZWxzZQojaWZkZWYgX19BTURHQ05fXwojZGVmaW5lIF9JU05BTmQgX19vY21sX2lzbmFuX2Y2NAojZGVmaW5lIF9JU05BTmYgX19vY21sX2lzbmFuX2YzMgojZGVmaW5lIF9JU0lORmQgX19vY21sX2lzaW5mX2Y2NAojZGVmaW5lIF9JU0lORmYgX19vY21sX2lzaW5mX2YzMgojZGVmaW5lIF9JU0ZJTklURWQgX19vY21sX2lzZmluaXRlX2Y2NAojZGVmaW5lIF9JU0ZJTklURWYgX19vY21sX2lzZmluaXRlX2YzMgojZGVmaW5lIF9DT1BZU0lHTmQgX19vY21sX2NvcHlzaWduX2Y2NAojZGVmaW5lIF9DT1BZU0lHTmYgX19vY21sX2NvcHlzaWduX2YzMgojZGVmaW5lIF9TQ0FMQk5kIF9fb2NtbF9zY2FsYm5fZjY0CiNkZWZpbmUgX1NDQUxCTmYgX19vY21sX3NjYWxibl9mMzIKI2RlZmluZSBfQUJTZCBfX29jbWxfZmFic19mNjQKI2RlZmluZSBfQUJTZiBfX29jbWxfZmFic19mMzIKI2RlZmluZSBfTE9HQmQgX19vY21sX2xvZ2JfZjY0CiNkZWZpbmUgX0xPR0JmIF9fb2NtbF9sb2diX2YzMgojZGVmaW5lIF9mbWF4ZCBfX29jbWxfZm1heF9mNjQKI2RlZmluZSBfZm1heGYgX19vY21sX2ZtYXhfZjMyCiNlbHNlCiNkZWZpbmUgX0lTTkFOZCBfX252X2lzbmFuZAojZGVmaW5lIF9JU05BTmYgX19udl9pc25hbmYKI2RlZmluZSBfSVNJTkZkIF9fbnZfaXNpbmZkCiNkZWZpbmUgX0lTSU5GZiBfX252X2lzaW5mZgojZGVmaW5lIF9JU0ZJTklURWQgX19udl9pc2Zpbml0ZWQKI2RlZmluZSBfSVNGSU5JVEVmIF9fbnZfZmluaXRlZgojZGVmaW5lIF9DT1BZU0lHTmQgX19udl9jb3B5c2lnbgojZGVmaW5lIF9DT1BZU0lHTmYgX19udl9jb3B5c2lnbmYKI2RlZmluZSBfU0NBTEJOZCBfX252X3NjYWxibgojZGVmaW5lIF9TQ0FMQk5mIF9fbnZfc2NhbGJuZgojZGVmaW5lIF9BQlNkIF9fbnZfZmFicwojZGVmaW5lIF9BQlNmIF9fbnZfZmFic2YKI2RlZmluZSBfTE9HQmQgX19udl9sb2diCiNkZWZpbmUgX0xPR0JmIF9fbnZfbG9nYmYKI2RlZmluZSBfZm1heGQgX19udl9mbWF4CiNkZWZpbmUgX2ZtYXhmIF9fbnZfZm1heGYKI2VuZGlmCiNlbmRpZgoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCmV4dGVybiAiQyIgewojZW5kaWYKCl9fREVWSUNFX18gZG91YmxlIF9Db21wbGV4IF9fbXVsZGMzKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBfX2QpIHsKICBkb3VibGUgX19hYyA9IF9fYSAqIF9fYzsKICBkb3VibGUgX19iZCA9IF9fYiAqIF9fZDsKICBkb3VibGUgX19hZCA9IF9fYSAqIF9fZDsKICBkb3VibGUgX19iYyA9IF9fYiAqIF9fYzsKICBkb3VibGUgX0NvbXBsZXggejsKICBfX3JlYWxfXyh6KSA9IF9fYWMgLSBfX2JkOwogIF9faW1hZ19fKHopID0gX19hZCArIF9fYmM7CiAgaWYgKF9JU05BTmQoX19yZWFsX18oeikpICYmIF9JU05BTmQoX19pbWFnX18oeikpKSB7CiAgICBpbnQgX19yZWNhbGMgPSAwOwogICAgaWYgKF9JU0lORmQoX19hKSB8fCBfSVNJTkZkKF9fYikpIHsKICAgICAgX19hID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fYSkgPyAxIDogMCwgX19hKTsKICAgICAgX19iID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fYikgPyAxIDogMCwgX19iKTsKICAgICAgaWYgKF9JU05BTmQoX19jKSkKICAgICAgICBfX2MgPSBfQ09QWVNJR05kKDAsIF9fYyk7CiAgICAgIGlmIChfSVNOQU5kKF9fZCkpCiAgICAgICAgX19kID0gX0NPUFlTSUdOZCgwLCBfX2QpOwogICAgICBfX3JlY2FsYyA9IDE7CiAgICB9CiAgICBpZiAoX0lTSU5GZChfX2MpIHx8IF9JU0lORmQoX19kKSkgewogICAgICBfX2MgPSBfQ09QWVNJR05kKF9JU0lORmQoX19jKSA/IDEgOiAwLCBfX2MpOwogICAgICBfX2QgPSBfQ09QWVNJR05kKF9JU0lORmQoX19kKSA/IDEgOiAwLCBfX2QpOwogICAgICBpZiAoX0lTTkFOZChfX2EpKQogICAgICAgIF9fYSA9IF9DT1BZU0lHTmQoMCwgX19hKTsKICAgICAgaWYgKF9JU05BTmQoX19iKSkKICAgICAgICBfX2IgPSBfQ09QWVNJR05kKDAsIF9fYik7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmICghX19yZWNhbGMgJiYKICAgICAgICAoX0lTSU5GZChfX2FjKSB8fCBfSVNJTkZkKF9fYmQpIHx8IF9JU0lORmQoX19hZCkgfHwgX0lTSU5GZChfX2JjKSkpIHsKICAgICAgaWYgKF9JU05BTmQoX19hKSkKICAgICAgICBfX2EgPSBfQ09QWVNJR05kKDAsIF9fYSk7CiAgICAgIGlmIChfSVNOQU5kKF9fYikpCiAgICAgICAgX19iID0gX0NPUFlTSUdOZCgwLCBfX2IpOwogICAgICBpZiAoX0lTTkFOZChfX2MpKQogICAgICAgIF9fYyA9IF9DT1BZU0lHTmQoMCwgX19jKTsKICAgICAgaWYgKF9JU05BTmQoX19kKSkKICAgICAgICBfX2QgPSBfQ09QWVNJR05kKDAsIF9fZCk7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmIChfX3JlY2FsYykgewogICAgICAvLyBDYW4ndCB1c2Ugc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjppbmZpbml0eSgpIC0tIHRoYXQgZG9lc24ndCBoYXZlCiAgICAgIC8vIGEgZGV2aWNlIG92ZXJsb2FkIChhbmQgaXNuJ3QgY29uc3RleHByIGJlZm9yZSBDKysxMSwgbmF0dXJhbGx5KS4KICAgICAgX19yZWFsX18oeikgPSBfX2J1aWx0aW5faHVnZV92YWwoKSAqIChfX2EgKiBfX2MgLSBfX2IgKiBfX2QpOwogICAgICBfX2ltYWdfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbCgpICogKF9fYSAqIF9fZCArIF9fYiAqIF9fYyk7CiAgICB9CiAgfQogIHJldHVybiB6Owp9CgpfX0RFVklDRV9fIGZsb2F0IF9Db21wbGV4IF9fbXVsc2MzKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MsIGZsb2F0IF9fZCkgewogIGZsb2F0IF9fYWMgPSBfX2EgKiBfX2M7CiAgZmxvYXQgX19iZCA9IF9fYiAqIF9fZDsKICBmbG9hdCBfX2FkID0gX19hICogX19kOwogIGZsb2F0IF9fYmMgPSBfX2IgKiBfX2M7CiAgZmxvYXQgX0NvbXBsZXggejsKICBfX3JlYWxfXyh6KSA9IF9fYWMgLSBfX2JkOwogIF9faW1hZ19fKHopID0gX19hZCArIF9fYmM7CiAgaWYgKF9JU05BTmYoX19yZWFsX18oeikpICYmIF9JU05BTmYoX19pbWFnX18oeikpKSB7CiAgICBpbnQgX19yZWNhbGMgPSAwOwogICAgaWYgKF9JU0lORmYoX19hKSB8fCBfSVNJTkZmKF9fYikpIHsKICAgICAgX19hID0gX0NPUFlTSUdOZihfSVNJTkZmKF9fYSkgPyAxIDogMCwgX19hKTsKICAgICAgX19iID0gX0NPUFlTSUdOZihfSVNJTkZmKF9fYikgPyAxIDogMCwgX19iKTsKICAgICAgaWYgKF9JU05BTmYoX19jKSkKICAgICAgICBfX2MgPSBfQ09QWVNJR05mKDAsIF9fYyk7CiAgICAgIGlmIChfSVNOQU5mKF9fZCkpCiAgICAgICAgX19kID0gX0NPUFlTSUdOZigwLCBfX2QpOwogICAgICBfX3JlY2FsYyA9IDE7CiAgICB9CiAgICBpZiAoX0lTSU5GZihfX2MpIHx8IF9JU0lORmYoX19kKSkgewogICAgICBfX2MgPSBfQ09QWVNJR05mKF9JU0lORmYoX19jKSA/IDEgOiAwLCBfX2MpOwogICAgICBfX2QgPSBfQ09QWVNJR05mKF9JU0lORmYoX19kKSA/IDEgOiAwLCBfX2QpOwogICAgICBpZiAoX0lTTkFOZihfX2EpKQogICAgICAgIF9fYSA9IF9DT1BZU0lHTmYoMCwgX19hKTsKICAgICAgaWYgKF9JU05BTmYoX19iKSkKICAgICAgICBfX2IgPSBfQ09QWVNJR05mKDAsIF9fYik7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmICghX19yZWNhbGMgJiYKICAgICAgICAoX0lTSU5GZihfX2FjKSB8fCBfSVNJTkZmKF9fYmQpIHx8IF9JU0lORmYoX19hZCkgfHwgX0lTSU5GZihfX2JjKSkpIHsKICAgICAgaWYgKF9JU05BTmYoX19hKSkKICAgICAgICBfX2EgPSBfQ09QWVNJR05mKDAsIF9fYSk7CiAgICAgIGlmIChfSVNOQU5mKF9fYikpCiAgICAgICAgX19iID0gX0NPUFlTSUdOZigwLCBfX2IpOwogICAgICBpZiAoX0lTTkFOZihfX2MpKQogICAgICAgIF9fYyA9IF9DT1BZU0lHTmYoMCwgX19jKTsKICAgICAgaWYgKF9JU05BTmYoX19kKSkKICAgICAgICBfX2QgPSBfQ09QWVNJR05mKDAsIF9fZCk7CiAgICAgIF9fcmVjYWxjID0gMTsKICAgIH0KICAgIGlmIChfX3JlY2FsYykgewogICAgICBfX3JlYWxfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbGYoKSAqIChfX2EgKiBfX2MgLSBfX2IgKiBfX2QpOwogICAgICBfX2ltYWdfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbGYoKSAqIChfX2EgKiBfX2QgKyBfX2IgKiBfX2MpOwogICAgfQogIH0KICByZXR1cm4gejsKfQoKX19ERVZJQ0VfXyBkb3VibGUgX0NvbXBsZXggX19kaXZkYzMoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIF9fZCkgewogIGludCBfX2lsb2didyA9IDA7CiAgLy8gQ2FuJ3QgdXNlIHN0ZDo6bWF4LCBiZWNhdXNlIHRoYXQncyBkZWZpbmVkIGluIDxhbGdvcml0aG0+LCBhbmQgd2UgZG9uJ3QKICAvLyB3YW50IHRvIHB1bGwgdGhhdCBpbiBmb3IgZXZlcnkgY29tcGlsZS4gIFRoZSBDVURBIGhlYWRlcnMgZGVmaW5lCiAgLy8gOjptYXgoZmxvYXQsIGZsb2F0KSBhbmQgOjptYXgoZG91YmxlLCBkb3VibGUpLCB3aGljaCBpcyBzdWZmaWNpZW50IGZvciB1cy4KICBkb3VibGUgX19sb2didyA9IF9MT0dCZChfZm1heGQoX0FCU2QoX19jKSwgX0FCU2QoX19kKSkpOwogIGlmIChfSVNGSU5JVEVkKF9fbG9nYncpKSB7CiAgICBfX2lsb2didyA9IChpbnQpX19sb2didzsKICAgIF9fYyA9IF9TQ0FMQk5kKF9fYywgLV9faWxvZ2J3KTsKICAgIF9fZCA9IF9TQ0FMQk5kKF9fZCwgLV9faWxvZ2J3KTsKICB9CiAgZG91YmxlIF9fZGVub20gPSBfX2MgKiBfX2MgKyBfX2QgKiBfX2Q7CiAgZG91YmxlIF9Db21wbGV4IHo7CiAgX19yZWFsX18oeikgPSBfU0NBTEJOZCgoX19hICogX19jICsgX19iICogX19kKSAvIF9fZGVub20sIC1fX2lsb2didyk7CiAgX19pbWFnX18oeikgPSBfU0NBTEJOZCgoX19iICogX19jIC0gX19hICogX19kKSAvIF9fZGVub20sIC1fX2lsb2didyk7CiAgaWYgKF9JU05BTmQoX19yZWFsX18oeikpICYmIF9JU05BTmQoX19pbWFnX18oeikpKSB7CiAgICBpZiAoKF9fZGVub20gPT0gMC4wKSAmJiAoIV9JU05BTmQoX19hKSB8fCAhX0lTTkFOZChfX2IpKSkgewogICAgICBfX3JlYWxfXyh6KSA9IF9DT1BZU0lHTmQoX19idWlsdGluX2h1Z2VfdmFsKCksIF9fYykgKiBfX2E7CiAgICAgIF9faW1hZ19fKHopID0gX0NPUFlTSUdOZChfX2J1aWx0aW5faHVnZV92YWwoKSwgX19jKSAqIF9fYjsKICAgIH0gZWxzZSBpZiAoKF9JU0lORmQoX19hKSB8fCBfSVNJTkZkKF9fYikpICYmIF9JU0ZJTklURWQoX19jKSAmJgogICAgICAgICAgICAgICBfSVNGSU5JVEVkKF9fZCkpIHsKICAgICAgX19hID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fYSkgPyAxLjAgOiAwLjAsIF9fYSk7CiAgICAgIF9fYiA9IF9DT1BZU0lHTmQoX0lTSU5GZChfX2IpID8gMS4wIDogMC4wLCBfX2IpOwogICAgICBfX3JlYWxfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbCgpICogKF9fYSAqIF9fYyArIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gX19idWlsdGluX2h1Z2VfdmFsKCkgKiAoX19iICogX19jIC0gX19hICogX19kKTsKICAgIH0gZWxzZSBpZiAoX0lTSU5GZChfX2xvZ2J3KSAmJiBfX2xvZ2J3ID4gMC4wICYmIF9JU0ZJTklURWQoX19hKSAmJgogICAgICAgICAgICAgICBfSVNGSU5JVEVkKF9fYikpIHsKICAgICAgX19jID0gX0NPUFlTSUdOZChfSVNJTkZkKF9fYykgPyAxLjAgOiAwLjAsIF9fYyk7CiAgICAgIF9fZCA9IF9DT1BZU0lHTmQoX0lTSU5GZChfX2QpID8gMS4wIDogMC4wLCBfX2QpOwogICAgICBfX3JlYWxfXyh6KSA9IDAuMCAqIChfX2EgKiBfX2MgKyBfX2IgKiBfX2QpOwogICAgICBfX2ltYWdfXyh6KSA9IDAuMCAqIChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpOwogICAgfQogIH0KICByZXR1cm4gejsKfQoKX19ERVZJQ0VfXyBmbG9hdCBfQ29tcGxleCBfX2RpdnNjMyhmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jLCBmbG9hdCBfX2QpIHsKICBpbnQgX19pbG9nYncgPSAwOwogIGZsb2F0IF9fbG9nYncgPSBfTE9HQmYoX2ZtYXhmKF9BQlNmKF9fYyksIF9BQlNmKF9fZCkpKTsKICBpZiAoX0lTRklOSVRFZihfX2xvZ2J3KSkgewogICAgX19pbG9nYncgPSAoaW50KV9fbG9nYnc7CiAgICBfX2MgPSBfU0NBTEJOZihfX2MsIC1fX2lsb2didyk7CiAgICBfX2QgPSBfU0NBTEJOZihfX2QsIC1fX2lsb2didyk7CiAgfQogIGZsb2F0IF9fZGVub20gPSBfX2MgKiBfX2MgKyBfX2QgKiBfX2Q7CiAgZmxvYXQgX0NvbXBsZXggejsKICBfX3JlYWxfXyh6KSA9IF9TQ0FMQk5mKChfX2EgKiBfX2MgKyBfX2IgKiBfX2QpIC8gX19kZW5vbSwgLV9faWxvZ2J3KTsKICBfX2ltYWdfXyh6KSA9IF9TQ0FMQk5mKChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpIC8gX19kZW5vbSwgLV9faWxvZ2J3KTsKICBpZiAoX0lTTkFOZihfX3JlYWxfXyh6KSkgJiYgX0lTTkFOZihfX2ltYWdfXyh6KSkpIHsKICAgIGlmICgoX19kZW5vbSA9PSAwKSAmJiAoIV9JU05BTmYoX19hKSB8fCAhX0lTTkFOZihfX2IpKSkgewogICAgICBfX3JlYWxfXyh6KSA9IF9DT1BZU0lHTmYoX19idWlsdGluX2h1Z2VfdmFsZigpLCBfX2MpICogX19hOwogICAgICBfX2ltYWdfXyh6KSA9IF9DT1BZU0lHTmYoX19idWlsdGluX2h1Z2VfdmFsZigpLCBfX2MpICogX19iOwogICAgfSBlbHNlIGlmICgoX0lTSU5GZihfX2EpIHx8IF9JU0lORmYoX19iKSkgJiYgX0lTRklOSVRFZihfX2MpICYmCiAgICAgICAgICAgICAgIF9JU0ZJTklURWYoX19kKSkgewogICAgICBfX2EgPSBfQ09QWVNJR05mKF9JU0lORmYoX19hKSA/IDEgOiAwLCBfX2EpOwogICAgICBfX2IgPSBfQ09QWVNJR05mKF9JU0lORmYoX19iKSA/IDEgOiAwLCBfX2IpOwogICAgICBfX3JlYWxfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbGYoKSAqIChfX2EgKiBfX2MgKyBfX2IgKiBfX2QpOwogICAgICBfX2ltYWdfXyh6KSA9IF9fYnVpbHRpbl9odWdlX3ZhbGYoKSAqIChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpOwogICAgfSBlbHNlIGlmIChfSVNJTkZmKF9fbG9nYncpICYmIF9fbG9nYncgPiAwICYmIF9JU0ZJTklURWYoX19hKSAmJgogICAgICAgICAgICAgICBfSVNGSU5JVEVmKF9fYikpIHsKICAgICAgX19jID0gX0NPUFlTSUdOZihfSVNJTkZmKF9fYykgPyAxIDogMCwgX19jKTsKICAgICAgX19kID0gX0NPUFlTSUdOZihfSVNJTkZmKF9fZCkgPyAxIDogMCwgX19kKTsKICAgICAgX19yZWFsX18oeikgPSAwICogKF9fYSAqIF9fYyArIF9fYiAqIF9fZCk7CiAgICAgIF9faW1hZ19fKHopID0gMCAqIChfX2IgKiBfX2MgLSBfX2EgKiBfX2QpOwogICAgfQogIH0KICByZXR1cm4gejsKfQoKI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCiN1bmRlZiBfSVNOQU5kCiN1bmRlZiBfSVNOQU5mCiN1bmRlZiBfSVNJTkZkCiN1bmRlZiBfSVNJTkZmCiN1bmRlZiBfQ09QWVNJR05kCiN1bmRlZiBfQ09QWVNJR05mCiN1bmRlZiBfSVNGSU5JVEVkCiN1bmRlZiBfSVNGSU5JVEVmCiN1bmRlZiBfU0NBTEJOZAojdW5kZWYgX1NDQUxCTmYKI3VuZGVmIF9BQlNkCiN1bmRlZiBfQUJTZgojdW5kZWYgX0xPR0JkCiN1bmRlZiBfTE9HQmYKI3VuZGVmIF9mbWF4ZAojdW5kZWYgX2ZtYXhmCgojaWYgZGVmaW5lZChfX09QRU5NUF9OVlBUWF9fKSB8fCBkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB0YXJnZXQKI2VuZGlmCgojcHJhZ21hIHBvcF9tYWNybygiX19ERVZJQ0VfXyIpCgojZW5kaWYgLy8gX19DTEFOR19DVURBX0NPTVBMRVhfQlVJTFRJTlMKAC8qPT09LSBfX2NsYW5nX21hdGhfZm9yd2FyZF9kZWNsYXJlcy5oIC0gUHJvdG90eXBlcyBvZiBfX2RldmljZV9fIG1hdGggZm5zIC0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19DTEFOR19fQ1VEQV9NQVRIX0ZPUldBUkRfREVDTEFSRVNfSF9fCiNkZWZpbmUgX19DTEFOR19fQ1VEQV9NQVRIX0ZPUldBUkRfREVDTEFSRVNfSF9fCiNpZiAhZGVmaW5lZChfX0NVREFfXykgJiYgIV9fSElQX18KI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIENVREEvSElQIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCi8vIFRoaXMgZmlsZSBmb3J3YXJkLWRlY2xhcmVzIG9mIHNvbWUgbWF0aCBmdW5jdGlvbnMgd2UgKG9yIHRoZSBDVURBIGhlYWRlcnMpCi8vIHdpbGwgZGVmaW5lIGxhdGVyLiAgV2UgbmVlZCB0byBkbyB0aGlzLCBhbmQgZG8gaXQgYmVmb3JlIGNtYXRoIGlzIGluY2x1ZGVkLAovLyBiZWNhdXNlIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IG1heSBoYXZlIGNvbnN0ZXhwciBtYXRoIGZ1bmN0aW9ucy4gIEluIHRoZQovLyBhYnNlbmNlIG9mIGEgcHJpb3IgX19kZXZpY2VfXyBkZWNsLCB0aG9zZSBjb25zdGV4cHIgZnVuY3Rpb25zIG1heSBiZWNvbWUKLy8gaW1wbGljaXRseSBob3N0K2RldmljZS4gIGhvc3QrZGV2aWNlIGZ1bmN0aW9ucyBjYW4ndCBiZSBvdmVybG9hZGVkLCBzbyB0aGF0Ci8vIHdvdWxkIHByZWNsdWRlIHRoZSB1c2Ugb2Ygb3VyIG93biBfX2RldmljZV9fIG92ZXJsb2FkcyBmb3IgdGhlc2UgZnVuY3Rpb25zLgoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFVklDRV9fIikKI2RlZmluZSBfX0RFVklDRV9fICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkKCl9fREVWSUNFX18gbG9uZyBhYnMobG9uZyk7Cl9fREVWSUNFX18gbG9uZyBsb25nIGFicyhsb25nIGxvbmcpOwpfX0RFVklDRV9fIGRvdWJsZSBhYnMoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBhYnMoZmxvYXQpOwpfX0RFVklDRV9fIGludCBhYnMoaW50KTsKX19ERVZJQ0VfXyBkb3VibGUgYWNvcyhkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGFjb3MoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBhY29zaChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGFjb3NoKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgYXNpbihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGFzaW4oZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBhc2luaChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGFzaW5oKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgYXRhbjIoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGF0YW4yKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGF0YW4oZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBhdGFuKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgYXRhbmgoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBhdGFuaChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGNicnQoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBjYnJ0KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgY2VpbChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGNlaWwoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBjb3B5c2lnbihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgY29weXNpZ24oZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgY29zKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgY29zKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgY29zaChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGNvc2goZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBlcmZjKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZXJmYyhmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGVyZihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGVyZihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGV4cDIoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBleHAyKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZXhwKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZXhwKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZXhwbTEoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBleHBtMShmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGZhYnMoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBmYWJzKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZmRpbShkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZmRpbShmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmbG9vcihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGZsb29yKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZm1hKGRvdWJsZSwgZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGZtYShmbG9hdCwgZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZm1heChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgZm1heChmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBmbWluKGRvdWJsZSwgZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBmbWluKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGZtb2QoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGZtb2QoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBpbnQgZnBjbGFzc2lmeShkb3VibGUpOwpfX0RFVklDRV9fIGludCBmcGNsYXNzaWZ5KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgZnJleHAoZG91YmxlLCBpbnQgKik7Cl9fREVWSUNFX18gZmxvYXQgZnJleHAoZmxvYXQsIGludCAqKTsKX19ERVZJQ0VfXyBkb3VibGUgaHlwb3QoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGh5cG90KGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gaW50IGlsb2diKGRvdWJsZSk7Cl9fREVWSUNFX18gaW50IGlsb2diKGZsb2F0KTsKI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gYm9vbCBpc2Zpbml0ZShsb25nIGRvdWJsZSk7CiNlbmRpZgpfX0RFVklDRV9fIGJvb2wgaXNmaW5pdGUoZG91YmxlKTsKX19ERVZJQ0VfXyBib29sIGlzZmluaXRlKGZsb2F0KTsKX19ERVZJQ0VfXyBib29sIGlzZ3JlYXRlcihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGJvb2wgaXNncmVhdGVyKGZsb2F0LCBmbG9hdCk7CiNpZmRlZiBfTVNDX1ZFUgpfX0RFVklDRV9fIGJvb2wgaXNpbmYobG9uZyBkb3VibGUpOwojZW5kaWYKX19ERVZJQ0VfXyBib29sIGlzaW5mKGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2luZihmbG9hdCk7Cl9fREVWSUNFX18gYm9vbCBpc2xlc3MoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZXF1YWwoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZXF1YWwoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBib29sIGlzbGVzcyhmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGJvb2wgaXNsZXNzZ3JlYXRlcihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc2xlc3NncmVhdGVyKGZsb2F0LCBmbG9hdCk7CiNpZmRlZiBfTVNDX1ZFUgpfX0RFVklDRV9fIGJvb2wgaXNuYW4obG9uZyBkb3VibGUpOwojZW5kaWYKX19ERVZJQ0VfXyBib29sIGlzbmFuKGRvdWJsZSk7Cl9fREVWSUNFX18gYm9vbCBpc25hbihmbG9hdCk7Cl9fREVWSUNFX18gYm9vbCBpc25vcm1hbChkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgaXNub3JtYWwoZmxvYXQpOwpfX0RFVklDRV9fIGJvb2wgaXN1bm9yZGVyZWQoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgaXN1bm9yZGVyZWQoZmxvYXQsIGZsb2F0KTsKX19ERVZJQ0VfXyBsb25nIGxhYnMobG9uZyk7Cl9fREVWSUNFX18gZG91YmxlIGxkZXhwKGRvdWJsZSwgaW50KTsKX19ERVZJQ0VfXyBmbG9hdCBsZGV4cChmbG9hdCwgaW50KTsKX19ERVZJQ0VfXyBkb3VibGUgbGdhbW1hKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbGdhbW1hKGZsb2F0KTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxhYnMobG9uZyBsb25nKTsKX19ERVZJQ0VfXyBsb25nIGxvbmcgbGxyaW50KGRvdWJsZSk7Cl9fREVWSUNFX18gbG9uZyBsb25nIGxscmludChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGxvZzEwKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbG9nMTAoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBsb2cxcChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGxvZzFwKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgbG9nMihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGxvZzIoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSBsb2diKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbG9nYihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIGxvZyhkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IGxvZyhmbG9hdCk7Cl9fREVWSUNFX18gbG9uZyBscmludChkb3VibGUpOwpfX0RFVklDRV9fIGxvbmcgbHJpbnQoZmxvYXQpOwpfX0RFVklDRV9fIGxvbmcgbHJvdW5kKGRvdWJsZSk7Cl9fREVWSUNFX18gbG9uZyBscm91bmQoZmxvYXQpOwpfX0RFVklDRV9fIGxvbmcgbG9uZyBsbHJvdW5kKGZsb2F0KTsgLy8gTm8gbGxyb3VuZChkb3VibGUpLgpfX0RFVklDRV9fIGRvdWJsZSBtb2RmKGRvdWJsZSwgZG91YmxlICopOwpfX0RFVklDRV9fIGZsb2F0IG1vZGYoZmxvYXQsIGZsb2F0ICopOwpfX0RFVklDRV9fIGRvdWJsZSBuYW4oY29uc3QgY2hhciAqKTsKX19ERVZJQ0VfXyBmbG9hdCBuYW5mKGNvbnN0IGNoYXIgKik7Cl9fREVWSUNFX18gZG91YmxlIG5lYXJieWludChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IG5lYXJieWludChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIG5leHRhZnRlcihkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgbmV4dGFmdGVyKGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHBvdyhkb3VibGUsIGRvdWJsZSk7Cl9fREVWSUNFX18gZG91YmxlIHBvdyhkb3VibGUsIGludCk7Cl9fREVWSUNFX18gZmxvYXQgcG93KGZsb2F0LCBmbG9hdCk7Cl9fREVWSUNFX18gZmxvYXQgcG93KGZsb2F0LCBpbnQpOwpfX0RFVklDRV9fIGRvdWJsZSByZW1haW5kZXIoZG91YmxlLCBkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHJlbWFpbmRlcihmbG9hdCwgZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSByZW1xdW8oZG91YmxlLCBkb3VibGUsIGludCAqKTsKX19ERVZJQ0VfXyBmbG9hdCByZW1xdW8oZmxvYXQsIGZsb2F0LCBpbnQgKik7Cl9fREVWSUNFX18gZG91YmxlIHJpbnQoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCByaW50KGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgcm91bmQoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCByb3VuZChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHNjYWxibG4oZG91YmxlLCBsb25nKTsKX19ERVZJQ0VfXyBmbG9hdCBzY2FsYmxuKGZsb2F0LCBsb25nKTsKX19ERVZJQ0VfXyBkb3VibGUgc2NhbGJuKGRvdWJsZSwgaW50KTsKX19ERVZJQ0VfXyBmbG9hdCBzY2FsYm4oZmxvYXQsIGludCk7CiNpZmRlZiBfTVNDX1ZFUgpfX0RFVklDRV9fIGJvb2wgc2lnbmJpdChsb25nIGRvdWJsZSk7CiNlbmRpZgpfX0RFVklDRV9fIGJvb2wgc2lnbmJpdChkb3VibGUpOwpfX0RFVklDRV9fIGJvb2wgc2lnbmJpdChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHNpbihkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHNpbihmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHNpbmgoZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCBzaW5oKGZsb2F0KTsKX19ERVZJQ0VfXyBkb3VibGUgc3FydChkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHNxcnQoZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSB0YW4oZG91YmxlKTsKX19ERVZJQ0VfXyBmbG9hdCB0YW4oZmxvYXQpOwpfX0RFVklDRV9fIGRvdWJsZSB0YW5oKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgdGFuaChmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHRnYW1tYShkb3VibGUpOwpfX0RFVklDRV9fIGZsb2F0IHRnYW1tYShmbG9hdCk7Cl9fREVWSUNFX18gZG91YmxlIHRydW5jKGRvdWJsZSk7Cl9fREVWSUNFX18gZmxvYXQgdHJ1bmMoZmxvYXQpOwoKLy8gTm90YWJseSBtaXNzaW5nIGFib3ZlIGlzIG5leHR0b3dhcmQsIHdoaWNoIHdlIGRvbid0IGRlZmluZSBvbgovLyB0aGUgZGV2aWNlIHNpZGUgYmVjYXVzZSBsaWJkZXZpY2UgZG9lc24ndCBnaXZlIHVzIGFuIGltcGxlbWVudGF0aW9uLCBhbmQgd2UKLy8gZG9uJ3Qgd2FudCB0byBiZSBpbiB0aGUgYnVzaW5lc3Mgb2Ygd3JpdGluZyBvbmUgb3Vyc2VsdmVzLgoKLy8gV2UgbmVlZCB0byBkZWZpbmUgdGhlc2Ugb3ZlcmxvYWRzIGluIGV4YWN0bHkgdGhlIG5hbWVzcGFjZSBvdXIgc3RhbmRhcmQKLy8gbGlicmFyeSB1c2VzIChpbmNsdWRpbmcgdGhlIHJpZ2h0IGlubGluZSBuYW1lc3BhY2UpLCBvdGhlcndpc2UgdGhleSB3b24ndCBiZQovLyBwaWNrZWQgdXAgYnkgb3RoZXIgZnVuY3Rpb25zIGluIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IChlLmcuIGZ1bmN0aW9ucyBpbgovLyA8Y29tcGxleD4pLiAgVGh1cyB0aGUgdWdsaW5lc3MgYmVsb3cuCiNpZmRlZiBfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKX0xJQkNQUF9CRUdJTl9OQU1FU1BBQ0VfU1RECiNlbHNlCm5hbWVzcGFjZSBzdGQgewojaWZkZWYgX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmCiNlbmRpZgoKdXNpbmcgOjphYnM7CnVzaW5nIDo6YWNvczsKdXNpbmcgOjphY29zaDsKdXNpbmcgOjphc2luOwp1c2luZyA6OmFzaW5oOwp1c2luZyA6OmF0YW47CnVzaW5nIDo6YXRhbjI7CnVzaW5nIDo6YXRhbmg7CnVzaW5nIDo6Y2JydDsKdXNpbmcgOjpjZWlsOwp1c2luZyA6OmNvcHlzaWduOwp1c2luZyA6OmNvczsKdXNpbmcgOjpjb3NoOwp1c2luZyA6OmVyZjsKdXNpbmcgOjplcmZjOwp1c2luZyA6OmV4cDsKdXNpbmcgOjpleHAyOwp1c2luZyA6OmV4cG0xOwp1c2luZyA6OmZhYnM7CnVzaW5nIDo6ZmRpbTsKdXNpbmcgOjpmbG9vcjsKdXNpbmcgOjpmbWE7CnVzaW5nIDo6Zm1heDsKdXNpbmcgOjpmbWluOwp1c2luZyA6OmZtb2Q7CnVzaW5nIDo6ZnBjbGFzc2lmeTsKdXNpbmcgOjpmcmV4cDsKdXNpbmcgOjpoeXBvdDsKdXNpbmcgOjppbG9nYjsKdXNpbmcgOjppc2Zpbml0ZTsKdXNpbmcgOjppc2dyZWF0ZXI7CnVzaW5nIDo6aXNncmVhdGVyZXF1YWw7CnVzaW5nIDo6aXNpbmY7CnVzaW5nIDo6aXNsZXNzOwp1c2luZyA6OmlzbGVzc2VxdWFsOwp1c2luZyA6OmlzbGVzc2dyZWF0ZXI7CnVzaW5nIDo6aXNuYW47CnVzaW5nIDo6aXNub3JtYWw7CnVzaW5nIDo6aXN1bm9yZGVyZWQ7CnVzaW5nIDo6bGFiczsKdXNpbmcgOjpsZGV4cDsKdXNpbmcgOjpsZ2FtbWE7CnVzaW5nIDo6bGxhYnM7CnVzaW5nIDo6bGxyaW50Owp1c2luZyA6OmxvZzsKdXNpbmcgOjpsb2cxMDsKdXNpbmcgOjpsb2cxcDsKdXNpbmcgOjpsb2cyOwp1c2luZyA6OmxvZ2I7CnVzaW5nIDo6bHJpbnQ7CnVzaW5nIDo6bHJvdW5kOwp1c2luZyA6Omxscm91bmQ7CnVzaW5nIDo6bW9kZjsKdXNpbmcgOjpuYW47CnVzaW5nIDo6bmFuZjsKdXNpbmcgOjpuZWFyYnlpbnQ7CnVzaW5nIDo6bmV4dGFmdGVyOwp1c2luZyA6OnBvdzsKdXNpbmcgOjpyZW1haW5kZXI7CnVzaW5nIDo6cmVtcXVvOwp1c2luZyA6OnJpbnQ7CnVzaW5nIDo6cm91bmQ7CnVzaW5nIDo6c2NhbGJsbjsKdXNpbmcgOjpzY2FsYm47CnVzaW5nIDo6c2lnbmJpdDsKdXNpbmcgOjpzaW47CnVzaW5nIDo6c2luaDsKdXNpbmcgOjpzcXJ0Owp1c2luZyA6OnRhbjsKdXNpbmcgOjp0YW5oOwp1c2luZyA6OnRnYW1tYTsKdXNpbmcgOjp0cnVuYzsKCiNpZmRlZiBfTElCQ1BQX0VORF9OQU1FU1BBQ0VfU1RECl9MSUJDUFBfRU5EX05BTUVTUEFDRV9TVEQKI2Vsc2UKI2lmZGVmIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCl9HTElCQ1hYX0VORF9OQU1FU1BBQ0VfVkVSU0lPTgojZW5kaWYKfSAvLyBuYW1lc3BhY2Ugc3RkCiNlbmRpZgoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX18iKQoKI2VuZGlmCgAvKj09PS0tLS0gYXZ4NTEyZXJpbnRyaW4uaCAtIEFWWDUxMkVSIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEyZXJpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyRVJJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyRVJJTlRSSU5fSAoKLyogZXhwMmEyMyAqLwojZGVmaW5lIF9tbTUxMl9leHAyYTIzX3JvdW5kX3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZXhwMnBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHAyYTIzX3JvdW5kX3BkKFMsIE0sIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZXhwMnBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoUyksIChfX21tYXNrOCkoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXhwMmEyM19yb3VuZF9wZChNLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2V4cDJwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9leHAyYTIzX3BkKEEpIFwKICBfbW01MTJfZXhwMmEyM19yb3VuZF9wZCgoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2tfZXhwMmEyM19wZChTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfZXhwMmEyM19yb3VuZF9wZCgoUyksIChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHAyYTIzX3BkKE0sIEEpIFwKICBfbW01MTJfbWFza3pfZXhwMmEyM19yb3VuZF9wZCgoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfZXhwMmEyM19yb3VuZF9wcyhBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZXhwMnBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHAyYTIzX3JvdW5kX3BzKFMsIE0sIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9leHAycHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFMpLCAoX19tbWFzazE2KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4cDJhMjNfcm91bmRfcHMoTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2V4cDJwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9leHAyYTIzX3BzKEEpIFwKICBfbW01MTJfZXhwMmEyM19yb3VuZF9wcygoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2tfZXhwMmEyM19wcyhTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfZXhwMmEyM19yb3VuZF9wcygoUyksIChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9leHAyYTIzX3BzKE0sIEEpIFwKICBfbW01MTJfbWFza3pfZXhwMmEyM19yb3VuZF9wcygoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKLyogcnNxcnQyOCAqLwojZGVmaW5lIF9tbTUxMl9yc3FydDI4X3JvdW5kX3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcnNxcnQyOHBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yc3FydDI4X3JvdW5kX3BkKFMsIE0sIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcnNxcnQyOHBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoUyksIChfX21tYXNrOCkoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcnNxcnQyOF9yb3VuZF9wZChNLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JzcXJ0MjhwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yc3FydDI4X3BkKEEpIFwKICBfbW01MTJfcnNxcnQyOF9yb3VuZF9wZCgoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2tfcnNxcnQyOF9wZChTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfcnNxcnQyOF9yb3VuZF9wZCgoUyksIChNKSwgKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yc3FydDI4X3BkKE0sIEEpIFwKICBfbW01MTJfbWFza3pfcnNxcnQyOF9yb3VuZF9wZCgoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfcnNxcnQyOF9yb3VuZF9wcyhBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcnNxcnQyOHBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yc3FydDI4X3JvdW5kX3BzKFMsIE0sIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yc3FydDI4cHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFMpLCAoX19tbWFzazE2KShNKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JzcXJ0Mjhfcm91bmRfcHMoTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JzcXJ0Mjhwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yc3FydDI4X3BzKEEpIFwKICBfbW01MTJfcnNxcnQyOF9yb3VuZF9wcygoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX21hc2tfcnNxcnQyOF9wcyhTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfcnNxcnQyOF9yb3VuZF9wcygoUyksIChNKSwgQSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcnNxcnQyOF9wcyhNLCBBKSBcCiAgX21tNTEyX21hc2t6X3JzcXJ0Mjhfcm91bmRfcHMoKE0pLCAoQSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX3JzcXJ0Mjhfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JzcXJ0Mjhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JzcXJ0Mjhfcm91bmRfc3MoUywgTSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JzcXJ0Mjhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShTKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JzcXJ0Mjhfcm91bmRfc3MoTSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JzcXJ0Mjhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcnNxcnQyOF9zcyhBLCBCKSBcCiAgX21tX3JzcXJ0Mjhfcm91bmRfc3MoKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2tfcnNxcnQyOF9zcyhTLCBNLCBBLCBCKSBcCiAgX21tX21hc2tfcnNxcnQyOF9yb3VuZF9zcygoUyksIChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JzcXJ0Mjhfc3MoTSwgQSwgQikgXAogIF9tbV9tYXNrel9yc3FydDI4X3JvdW5kX3NzKChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX3JzcXJ0Mjhfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yc3FydDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JzcXJ0Mjhfcm91bmRfc2QoUywgTSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yc3FydDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShTKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yc3FydDI4X3JvdW5kX3NkKE0sIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcnNxcnQyOHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JzcXJ0Mjhfc2QoQSwgQikgXAogIF9tbV9yc3FydDI4X3JvdW5kX3NkKChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrX3JzcXJ0Mjhfc2QoUywgTSwgQSwgQikgXAogIF9tbV9tYXNrX3JzcXJ0Mjhfcm91bmRfc2QoKFMpLCAoTSksIChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrel9yc3FydDI4X3NkKE0sIEEsIEIpIFwKICBfbW1fbWFza3pfcnNxcnQyOF9yb3VuZF9zZCgoTSksIChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgovKiByY3AyOCAqLwojZGVmaW5lIF9tbTUxMl9yY3AyOF9yb3VuZF9wZChBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JjcDI4cGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmNwMjhfcm91bmRfcGQoUywgTSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yY3AyOHBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFMpLCAoX19tbWFzazgpKE0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yY3AyOF9yb3VuZF9wZChNLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JjcDI4cGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yY3AyOF9wZChBKSBcCiAgX21tNTEyX3JjcDI4X3JvdW5kX3BkKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19yY3AyOF9wZChTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfcmNwMjhfcm91bmRfcGQoKFMpLCAoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmNwMjhfcGQoTSwgQSkgXAogIF9tbTUxMl9tYXNrel9yY3AyOF9yb3VuZF9wZCgoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfcmNwMjhfcm91bmRfcHMoQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JjcDI4cHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmNwMjhfcm91bmRfcHMoUywgTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JjcDI4cHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShTKSwgKF9fbW1hc2sxNikoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmNwMjhfcm91bmRfcHMoTSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JjcDI4cHNfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yY3AyOF9wcyhBKSBcCiAgX21tNTEyX3JjcDI4X3JvdW5kX3BzKChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19yY3AyOF9wcyhTLCBNLCBBKSBcCiAgX21tNTEyX21hc2tfcmNwMjhfcm91bmRfcHMoKFMpLCAoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmNwMjhfcHMoTSwgQSkgXAogIF9tbTUxMl9tYXNrel9yY3AyOF9yb3VuZF9wcygoTSksIChBKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fcmNwMjhfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JjcDI4c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19yY3AyOF9yb3VuZF9zcyhTLCBNLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmNwMjhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JjcDI4X3JvdW5kX3NzKE0sIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yY3AyOHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yY3AyOF9zcyhBLCBCKSBcCiAgX21tX3JjcDI4X3JvdW5kX3NzKChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrX3JjcDI4X3NzKFMsIE0sIEEsIEIpIFwKICBfbW1fbWFza19yY3AyOF9yb3VuZF9zcygoUyksIChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JjcDI4X3NzKE0sIEEsIEIpIFwKICBfbW1fbWFza3pfcmNwMjhfcm91bmRfc3MoKE0pLCAoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fcmNwMjhfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yY3AyOHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19yY3AyOF9yb3VuZF9zZChTLCBNLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JjcDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yY3AyOF9yb3VuZF9zZChNLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JjcDI4c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcmNwMjhfc2QoQSwgQikgXAogIF9tbV9yY3AyOF9yb3VuZF9zZCgoQSksIChCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza19yY3AyOF9zZChTLCBNLCBBLCBCKSBcCiAgX21tX21hc2tfcmNwMjhfcm91bmRfc2QoKFMpLCAoTSksIChBKSwgKEIpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbV9tYXNrel9yY3AyOF9zZChNLCBBLCBCKSBcCiAgX21tX21hc2t6X3JjcDI4X3JvdW5kX3NkKChNKSwgKEEpLCAoQiksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNlbmRpZiAvKiBfX0FWWDUxMkVSSU5UUklOX0ggKi8KAC8qPT09LS0tLSBhdng1MTJmaW50cmluLmggLSBBVlg1MTJGIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJmaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkZJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyRklOVFJJTl9ICgp0eXBlZGVmIGNoYXIgX192NjRxaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgc2hvcnQgX192MzJoaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgZG91YmxlIF9fdjhkZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgZmxvYXQgX192MTZzZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgbG9uZyBsb25nIF9fdjhkaSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpKSk7CnR5cGVkZWYgaW50IF9fdjE2c2kgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpOwoKLyogVW5zaWduZWQgdHlwZXMgKi8KdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdjY0cXUgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdjMyaHUgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3Y4ZHUgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3YxNnN1IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKTsKCnR5cGVkZWYgZmxvYXQgX19tNTEyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDY0KSkpOwp0eXBlZGVmIGRvdWJsZSBfX201MTJkIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDY0KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX201MTJpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDY0KSkpOwoKdHlwZWRlZiBmbG9hdCBfX201MTJfdSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpLCBfX2FsaWduZWRfXygxKSkpOwp0eXBlZGVmIGRvdWJsZSBfX201MTJkX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBsb25nIGxvbmcgX19tNTEyaV91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCksIF9fYWxpZ25lZF9fKDEpKSk7Cgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX19tbWFzazg7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19tbWFzazE2OwoKLyogUm91bmRpbmcgbW9kZSBtYWNyb3MuICAqLwojZGVmaW5lIF9NTV9GUk9VTkRfVE9fTkVBUkVTVF9JTlQgICAweDAwCiNkZWZpbmUgX01NX0ZST1VORF9UT19ORUdfSU5GICAgICAgIDB4MDEKI2RlZmluZSBfTU1fRlJPVU5EX1RPX1BPU19JTkYgICAgICAgMHgwMgojZGVmaW5lIF9NTV9GUk9VTkRfVE9fWkVSTyAgICAgICAgICAweDAzCiNkZWZpbmUgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OICAgIDB4MDQKCi8qIENvbnN0YW50cyBmb3IgaW50ZWdlciBjb21wYXJpc29uIHByZWRpY2F0ZXMgKi8KdHlwZWRlZiBlbnVtIHsKICAgIF9NTV9DTVBJTlRfRVEsICAgICAgLyogRXF1YWwgKi8KICAgIF9NTV9DTVBJTlRfTFQsICAgICAgLyogTGVzcyB0aGFuICovCiAgICBfTU1fQ01QSU5UX0xFLCAgICAgIC8qIExlc3MgdGhhbiBvciBFcXVhbCAqLwogICAgX01NX0NNUElOVF9VTlVTRUQsCiAgICBfTU1fQ01QSU5UX05FLCAgICAgIC8qIE5vdCBFcXVhbCAqLwogICAgX01NX0NNUElOVF9OTFQsICAgICAvKiBOb3QgTGVzcyB0aGFuICovCiNkZWZpbmUgX01NX0NNUElOVF9HRSAgIF9NTV9DTVBJTlRfTkxUICAvKiBHcmVhdGVyIHRoYW4gb3IgRXF1YWwgKi8KICAgIF9NTV9DTVBJTlRfTkxFICAgICAgLyogTm90IExlc3MgdGhhbiBvciBFcXVhbCAqLwojZGVmaW5lIF9NTV9DTVBJTlRfR1QgICBfTU1fQ01QSU5UX05MRSAgLyogR3JlYXRlciB0aGFuICovCn0gX01NX0NNUElOVF9FTlVNOwoKdHlwZWRlZiBlbnVtCnsKICBfTU1fUEVSTV9BQUFBID0gMHgwMCwgX01NX1BFUk1fQUFBQiA9IDB4MDEsIF9NTV9QRVJNX0FBQUMgPSAweDAyLAogIF9NTV9QRVJNX0FBQUQgPSAweDAzLCBfTU1fUEVSTV9BQUJBID0gMHgwNCwgX01NX1BFUk1fQUFCQiA9IDB4MDUsCiAgX01NX1BFUk1fQUFCQyA9IDB4MDYsIF9NTV9QRVJNX0FBQkQgPSAweDA3LCBfTU1fUEVSTV9BQUNBID0gMHgwOCwKICBfTU1fUEVSTV9BQUNCID0gMHgwOSwgX01NX1BFUk1fQUFDQyA9IDB4MEEsIF9NTV9QRVJNX0FBQ0QgPSAweDBCLAogIF9NTV9QRVJNX0FBREEgPSAweDBDLCBfTU1fUEVSTV9BQURCID0gMHgwRCwgX01NX1BFUk1fQUFEQyA9IDB4MEUsCiAgX01NX1BFUk1fQUFERCA9IDB4MEYsIF9NTV9QRVJNX0FCQUEgPSAweDEwLCBfTU1fUEVSTV9BQkFCID0gMHgxMSwKICBfTU1fUEVSTV9BQkFDID0gMHgxMiwgX01NX1BFUk1fQUJBRCA9IDB4MTMsIF9NTV9QRVJNX0FCQkEgPSAweDE0LAogIF9NTV9QRVJNX0FCQkIgPSAweDE1LCBfTU1fUEVSTV9BQkJDID0gMHgxNiwgX01NX1BFUk1fQUJCRCA9IDB4MTcsCiAgX01NX1BFUk1fQUJDQSA9IDB4MTgsIF9NTV9QRVJNX0FCQ0IgPSAweDE5LCBfTU1fUEVSTV9BQkNDID0gMHgxQSwKICBfTU1fUEVSTV9BQkNEID0gMHgxQiwgX01NX1BFUk1fQUJEQSA9IDB4MUMsIF9NTV9QRVJNX0FCREIgPSAweDFELAogIF9NTV9QRVJNX0FCREMgPSAweDFFLCBfTU1fUEVSTV9BQkREID0gMHgxRiwgX01NX1BFUk1fQUNBQSA9IDB4MjAsCiAgX01NX1BFUk1fQUNBQiA9IDB4MjEsIF9NTV9QRVJNX0FDQUMgPSAweDIyLCBfTU1fUEVSTV9BQ0FEID0gMHgyMywKICBfTU1fUEVSTV9BQ0JBID0gMHgyNCwgX01NX1BFUk1fQUNCQiA9IDB4MjUsIF9NTV9QRVJNX0FDQkMgPSAweDI2LAogIF9NTV9QRVJNX0FDQkQgPSAweDI3LCBfTU1fUEVSTV9BQ0NBID0gMHgyOCwgX01NX1BFUk1fQUNDQiA9IDB4MjksCiAgX01NX1BFUk1fQUNDQyA9IDB4MkEsIF9NTV9QRVJNX0FDQ0QgPSAweDJCLCBfTU1fUEVSTV9BQ0RBID0gMHgyQywKICBfTU1fUEVSTV9BQ0RCID0gMHgyRCwgX01NX1BFUk1fQUNEQyA9IDB4MkUsIF9NTV9QRVJNX0FDREQgPSAweDJGLAogIF9NTV9QRVJNX0FEQUEgPSAweDMwLCBfTU1fUEVSTV9BREFCID0gMHgzMSwgX01NX1BFUk1fQURBQyA9IDB4MzIsCiAgX01NX1BFUk1fQURBRCA9IDB4MzMsIF9NTV9QRVJNX0FEQkEgPSAweDM0LCBfTU1fUEVSTV9BREJCID0gMHgzNSwKICBfTU1fUEVSTV9BREJDID0gMHgzNiwgX01NX1BFUk1fQURCRCA9IDB4MzcsIF9NTV9QRVJNX0FEQ0EgPSAweDM4LAogIF9NTV9QRVJNX0FEQ0IgPSAweDM5LCBfTU1fUEVSTV9BRENDID0gMHgzQSwgX01NX1BFUk1fQURDRCA9IDB4M0IsCiAgX01NX1BFUk1fQUREQSA9IDB4M0MsIF9NTV9QRVJNX0FEREIgPSAweDNELCBfTU1fUEVSTV9BRERDID0gMHgzRSwKICBfTU1fUEVSTV9BREREID0gMHgzRiwgX01NX1BFUk1fQkFBQSA9IDB4NDAsIF9NTV9QRVJNX0JBQUIgPSAweDQxLAogIF9NTV9QRVJNX0JBQUMgPSAweDQyLCBfTU1fUEVSTV9CQUFEID0gMHg0MywgX01NX1BFUk1fQkFCQSA9IDB4NDQsCiAgX01NX1BFUk1fQkFCQiA9IDB4NDUsIF9NTV9QRVJNX0JBQkMgPSAweDQ2LCBfTU1fUEVSTV9CQUJEID0gMHg0NywKICBfTU1fUEVSTV9CQUNBID0gMHg0OCwgX01NX1BFUk1fQkFDQiA9IDB4NDksIF9NTV9QRVJNX0JBQ0MgPSAweDRBLAogIF9NTV9QRVJNX0JBQ0QgPSAweDRCLCBfTU1fUEVSTV9CQURBID0gMHg0QywgX01NX1BFUk1fQkFEQiA9IDB4NEQsCiAgX01NX1BFUk1fQkFEQyA9IDB4NEUsIF9NTV9QRVJNX0JBREQgPSAweDRGLCBfTU1fUEVSTV9CQkFBID0gMHg1MCwKICBfTU1fUEVSTV9CQkFCID0gMHg1MSwgX01NX1BFUk1fQkJBQyA9IDB4NTIsIF9NTV9QRVJNX0JCQUQgPSAweDUzLAogIF9NTV9QRVJNX0JCQkEgPSAweDU0LCBfTU1fUEVSTV9CQkJCID0gMHg1NSwgX01NX1BFUk1fQkJCQyA9IDB4NTYsCiAgX01NX1BFUk1fQkJCRCA9IDB4NTcsIF9NTV9QRVJNX0JCQ0EgPSAweDU4LCBfTU1fUEVSTV9CQkNCID0gMHg1OSwKICBfTU1fUEVSTV9CQkNDID0gMHg1QSwgX01NX1BFUk1fQkJDRCA9IDB4NUIsIF9NTV9QRVJNX0JCREEgPSAweDVDLAogIF9NTV9QRVJNX0JCREIgPSAweDVELCBfTU1fUEVSTV9CQkRDID0gMHg1RSwgX01NX1BFUk1fQkJERCA9IDB4NUYsCiAgX01NX1BFUk1fQkNBQSA9IDB4NjAsIF9NTV9QRVJNX0JDQUIgPSAweDYxLCBfTU1fUEVSTV9CQ0FDID0gMHg2MiwKICBfTU1fUEVSTV9CQ0FEID0gMHg2MywgX01NX1BFUk1fQkNCQSA9IDB4NjQsIF9NTV9QRVJNX0JDQkIgPSAweDY1LAogIF9NTV9QRVJNX0JDQkMgPSAweDY2LCBfTU1fUEVSTV9CQ0JEID0gMHg2NywgX01NX1BFUk1fQkNDQSA9IDB4NjgsCiAgX01NX1BFUk1fQkNDQiA9IDB4NjksIF9NTV9QRVJNX0JDQ0MgPSAweDZBLCBfTU1fUEVSTV9CQ0NEID0gMHg2QiwKICBfTU1fUEVSTV9CQ0RBID0gMHg2QywgX01NX1BFUk1fQkNEQiA9IDB4NkQsIF9NTV9QRVJNX0JDREMgPSAweDZFLAogIF9NTV9QRVJNX0JDREQgPSAweDZGLCBfTU1fUEVSTV9CREFBID0gMHg3MCwgX01NX1BFUk1fQkRBQiA9IDB4NzEsCiAgX01NX1BFUk1fQkRBQyA9IDB4NzIsIF9NTV9QRVJNX0JEQUQgPSAweDczLCBfTU1fUEVSTV9CREJBID0gMHg3NCwKICBfTU1fUEVSTV9CREJCID0gMHg3NSwgX01NX1BFUk1fQkRCQyA9IDB4NzYsIF9NTV9QRVJNX0JEQkQgPSAweDc3LAogIF9NTV9QRVJNX0JEQ0EgPSAweDc4LCBfTU1fUEVSTV9CRENCID0gMHg3OSwgX01NX1BFUk1fQkRDQyA9IDB4N0EsCiAgX01NX1BFUk1fQkRDRCA9IDB4N0IsIF9NTV9QRVJNX0JEREEgPSAweDdDLCBfTU1fUEVSTV9CRERCID0gMHg3RCwKICBfTU1fUEVSTV9CRERDID0gMHg3RSwgX01NX1BFUk1fQkRERCA9IDB4N0YsIF9NTV9QRVJNX0NBQUEgPSAweDgwLAogIF9NTV9QRVJNX0NBQUIgPSAweDgxLCBfTU1fUEVSTV9DQUFDID0gMHg4MiwgX01NX1BFUk1fQ0FBRCA9IDB4ODMsCiAgX01NX1BFUk1fQ0FCQSA9IDB4ODQsIF9NTV9QRVJNX0NBQkIgPSAweDg1LCBfTU1fUEVSTV9DQUJDID0gMHg4NiwKICBfTU1fUEVSTV9DQUJEID0gMHg4NywgX01NX1BFUk1fQ0FDQSA9IDB4ODgsIF9NTV9QRVJNX0NBQ0IgPSAweDg5LAogIF9NTV9QRVJNX0NBQ0MgPSAweDhBLCBfTU1fUEVSTV9DQUNEID0gMHg4QiwgX01NX1BFUk1fQ0FEQSA9IDB4OEMsCiAgX01NX1BFUk1fQ0FEQiA9IDB4OEQsIF9NTV9QRVJNX0NBREMgPSAweDhFLCBfTU1fUEVSTV9DQUREID0gMHg4RiwKICBfTU1fUEVSTV9DQkFBID0gMHg5MCwgX01NX1BFUk1fQ0JBQiA9IDB4OTEsIF9NTV9QRVJNX0NCQUMgPSAweDkyLAogIF9NTV9QRVJNX0NCQUQgPSAweDkzLCBfTU1fUEVSTV9DQkJBID0gMHg5NCwgX01NX1BFUk1fQ0JCQiA9IDB4OTUsCiAgX01NX1BFUk1fQ0JCQyA9IDB4OTYsIF9NTV9QRVJNX0NCQkQgPSAweDk3LCBfTU1fUEVSTV9DQkNBID0gMHg5OCwKICBfTU1fUEVSTV9DQkNCID0gMHg5OSwgX01NX1BFUk1fQ0JDQyA9IDB4OUEsIF9NTV9QRVJNX0NCQ0QgPSAweDlCLAogIF9NTV9QRVJNX0NCREEgPSAweDlDLCBfTU1fUEVSTV9DQkRCID0gMHg5RCwgX01NX1BFUk1fQ0JEQyA9IDB4OUUsCiAgX01NX1BFUk1fQ0JERCA9IDB4OUYsIF9NTV9QRVJNX0NDQUEgPSAweEEwLCBfTU1fUEVSTV9DQ0FCID0gMHhBMSwKICBfTU1fUEVSTV9DQ0FDID0gMHhBMiwgX01NX1BFUk1fQ0NBRCA9IDB4QTMsIF9NTV9QRVJNX0NDQkEgPSAweEE0LAogIF9NTV9QRVJNX0NDQkIgPSAweEE1LCBfTU1fUEVSTV9DQ0JDID0gMHhBNiwgX01NX1BFUk1fQ0NCRCA9IDB4QTcsCiAgX01NX1BFUk1fQ0NDQSA9IDB4QTgsIF9NTV9QRVJNX0NDQ0IgPSAweEE5LCBfTU1fUEVSTV9DQ0NDID0gMHhBQSwKICBfTU1fUEVSTV9DQ0NEID0gMHhBQiwgX01NX1BFUk1fQ0NEQSA9IDB4QUMsIF9NTV9QRVJNX0NDREIgPSAweEFELAogIF9NTV9QRVJNX0NDREMgPSAweEFFLCBfTU1fUEVSTV9DQ0REID0gMHhBRiwgX01NX1BFUk1fQ0RBQSA9IDB4QjAsCiAgX01NX1BFUk1fQ0RBQiA9IDB4QjEsIF9NTV9QRVJNX0NEQUMgPSAweEIyLCBfTU1fUEVSTV9DREFEID0gMHhCMywKICBfTU1fUEVSTV9DREJBID0gMHhCNCwgX01NX1BFUk1fQ0RCQiA9IDB4QjUsIF9NTV9QRVJNX0NEQkMgPSAweEI2LAogIF9NTV9QRVJNX0NEQkQgPSAweEI3LCBfTU1fUEVSTV9DRENBID0gMHhCOCwgX01NX1BFUk1fQ0RDQiA9IDB4QjksCiAgX01NX1BFUk1fQ0RDQyA9IDB4QkEsIF9NTV9QRVJNX0NEQ0QgPSAweEJCLCBfTU1fUEVSTV9DRERBID0gMHhCQywKICBfTU1fUEVSTV9DRERCID0gMHhCRCwgX01NX1BFUk1fQ0REQyA9IDB4QkUsIF9NTV9QRVJNX0NEREQgPSAweEJGLAogIF9NTV9QRVJNX0RBQUEgPSAweEMwLCBfTU1fUEVSTV9EQUFCID0gMHhDMSwgX01NX1BFUk1fREFBQyA9IDB4QzIsCiAgX01NX1BFUk1fREFBRCA9IDB4QzMsIF9NTV9QRVJNX0RBQkEgPSAweEM0LCBfTU1fUEVSTV9EQUJCID0gMHhDNSwKICBfTU1fUEVSTV9EQUJDID0gMHhDNiwgX01NX1BFUk1fREFCRCA9IDB4QzcsIF9NTV9QRVJNX0RBQ0EgPSAweEM4LAogIF9NTV9QRVJNX0RBQ0IgPSAweEM5LCBfTU1fUEVSTV9EQUNDID0gMHhDQSwgX01NX1BFUk1fREFDRCA9IDB4Q0IsCiAgX01NX1BFUk1fREFEQSA9IDB4Q0MsIF9NTV9QRVJNX0RBREIgPSAweENELCBfTU1fUEVSTV9EQURDID0gMHhDRSwKICBfTU1fUEVSTV9EQUREID0gMHhDRiwgX01NX1BFUk1fREJBQSA9IDB4RDAsIF9NTV9QRVJNX0RCQUIgPSAweEQxLAogIF9NTV9QRVJNX0RCQUMgPSAweEQyLCBfTU1fUEVSTV9EQkFEID0gMHhEMywgX01NX1BFUk1fREJCQSA9IDB4RDQsCiAgX01NX1BFUk1fREJCQiA9IDB4RDUsIF9NTV9QRVJNX0RCQkMgPSAweEQ2LCBfTU1fUEVSTV9EQkJEID0gMHhENywKICBfTU1fUEVSTV9EQkNBID0gMHhEOCwgX01NX1BFUk1fREJDQiA9IDB4RDksIF9NTV9QRVJNX0RCQ0MgPSAweERBLAogIF9NTV9QRVJNX0RCQ0QgPSAweERCLCBfTU1fUEVSTV9EQkRBID0gMHhEQywgX01NX1BFUk1fREJEQiA9IDB4REQsCiAgX01NX1BFUk1fREJEQyA9IDB4REUsIF9NTV9QRVJNX0RCREQgPSAweERGLCBfTU1fUEVSTV9EQ0FBID0gMHhFMCwKICBfTU1fUEVSTV9EQ0FCID0gMHhFMSwgX01NX1BFUk1fRENBQyA9IDB4RTIsIF9NTV9QRVJNX0RDQUQgPSAweEUzLAogIF9NTV9QRVJNX0RDQkEgPSAweEU0LCBfTU1fUEVSTV9EQ0JCID0gMHhFNSwgX01NX1BFUk1fRENCQyA9IDB4RTYsCiAgX01NX1BFUk1fRENCRCA9IDB4RTcsIF9NTV9QRVJNX0RDQ0EgPSAweEU4LCBfTU1fUEVSTV9EQ0NCID0gMHhFOSwKICBfTU1fUEVSTV9EQ0NDID0gMHhFQSwgX01NX1BFUk1fRENDRCA9IDB4RUIsIF9NTV9QRVJNX0RDREEgPSAweEVDLAogIF9NTV9QRVJNX0RDREIgPSAweEVELCBfTU1fUEVSTV9EQ0RDID0gMHhFRSwgX01NX1BFUk1fRENERCA9IDB4RUYsCiAgX01NX1BFUk1fRERBQSA9IDB4RjAsIF9NTV9QRVJNX0REQUIgPSAweEYxLCBfTU1fUEVSTV9EREFDID0gMHhGMiwKICBfTU1fUEVSTV9EREFEID0gMHhGMywgX01NX1BFUk1fRERCQSA9IDB4RjQsIF9NTV9QRVJNX0REQkIgPSAweEY1LAogIF9NTV9QRVJNX0REQkMgPSAweEY2LCBfTU1fUEVSTV9EREJEID0gMHhGNywgX01NX1BFUk1fRERDQSA9IDB4RjgsCiAgX01NX1BFUk1fRERDQiA9IDB4RjksIF9NTV9QRVJNX0REQ0MgPSAweEZBLCBfTU1fUEVSTV9ERENEID0gMHhGQiwKICBfTU1fUEVSTV9ERERBID0gMHhGQywgX01NX1BFUk1fREREQiA9IDB4RkQsIF9NTV9QRVJNX0REREMgPSAweEZFLAogIF9NTV9QRVJNX0REREQgPSAweEZGCn0gX01NX1BFUk1fRU5VTTsKCnR5cGVkZWYgZW51bQp7CiAgX01NX01BTlRfTk9STV8xXzIsICAgIC8qIGludGVydmFsIFsxLCAyKSAgICAgICovCiAgX01NX01BTlRfTk9STV9wNV8yLCAgIC8qIGludGVydmFsIFswLjUsIDIpICAgICovCiAgX01NX01BTlRfTk9STV9wNV8xLCAgIC8qIGludGVydmFsIFswLjUsIDEpICAgICovCiAgX01NX01BTlRfTk9STV9wNzVfMXA1ICAgLyogaW50ZXJ2YWwgWzAuNzUsIDEuNSkgKi8KfSBfTU1fTUFOVElTU0FfTk9STV9FTlVNOwoKdHlwZWRlZiBlbnVtCnsKICBfTU1fTUFOVF9TSUdOX3NyYywgICAgLyogc2lnbiA9IHNpZ24oU1JDKSAgICAgKi8KICBfTU1fTUFOVF9TSUdOX3plcm8sICAgLyogc2lnbiA9IDAgICAgICAgICAgICAgKi8KICBfTU1fTUFOVF9TSUdOX25hbiAgIC8qIERFU1QgPSBOYU4gaWYgc2lnbihTUkMpID0gMSAqLwp9IF9NTV9NQU5USVNTQV9TSUdOX0VOVU07CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyZiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmYiKSkpCgovKiBDcmVhdGUgdmVjdG9ycyB3aXRoIHJlcGVhdGVkIGVsZW1lbnRzICovCgpzdGF0aWMgIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXR6ZXJvX3NpNTEyKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyaSkoX192OGRpKXsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXR6ZXJvX2VwaTMyIF9tbTUxMl9zZXR6ZXJvX3NpNTEyCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5kZWZpbmVkX3BkKHZvaWQpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdW5kZWY1MTIoKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5kZWZpbmVkKHZvaWQpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl91bmRlZjUxMigpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bmRlZmluZWRfcHModm9pZCkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3VuZGVmNTEyKCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bmRlZmluZWRfZXBpMzIodm9pZCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl91bmRlZjUxMigpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0ZF9lcGkzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSkgX19BLCAoX192NHNpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RkX2VwaTMyIChfX201MTJpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX2Jyb2FkY2FzdGRfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RkX2VwaTMyIChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfYnJvYWRjYXN0ZF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RxX2VwaTY0IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRpKSBfX0EsIChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdHFfZXBpNjQgKF9fbTUxMmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX2Jyb2FkY2FzdHFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19PKTsKCn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RxX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX2Jyb2FkY2FzdHFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0emVyb19wcyh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMil7IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXR6ZXJvIF9tbTUxMl9zZXR6ZXJvX3BzCgpzdGF0aWMgIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXR6ZXJvX3BkKHZvaWQpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyZCl7IDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQxX3BzKGZsb2F0IF9fdykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTIpeyBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3cgIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0MV9wZChkb3VibGUgX193KQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmQpeyBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldDFfZXBpOChjaGFyIF9fdykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3Y2NHFpKXsKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3cgIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0MV9lcGkxNihzaG9ydCBfX3cpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyaSkoX192MzJoaSl7CiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywKICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csCiAgICBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdyB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldDFfZXBpMzIoaW50IF9fcykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3YxNnNpKXsKICAgIF9fcywgX19zLCBfX3MsIF9fcywgX19zLCBfX3MsIF9fcywgX19zLAogICAgX19zLCBfX3MsIF9fcywgX19zLCBfX3MsIF9fcywgX19zLCBfX3MgfTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zZXQxX2VwaTMyKF9fbW1hc2sxNiBfX00sIGludCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0MV9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXQxX2VwaTY0KGxvbmcgbG9uZyBfX2QpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyhfX201MTJpKShfX3Y4ZGkpeyBfX2QsIF9fZCwgX19kLCBfX2QsIF9fZCwgX19kLCBfX2QsIF9fZCB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NldDFfZXBpNjQoX19tbWFzazggX19NLCBsb25nIGxvbmcgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0MV9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3Rzc19wcyhfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZikgX19BLCAoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0NF9lcGkzMiAoaW50IF9fQSwgaW50IF9fQiwgaW50IF9fQywgaW50IF9fRCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3YxNnNpKQogICB7IF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BLAogICAgIF9fRCwgX19DLCBfX0IsIF9fQSwgX19ELCBfX0MsIF9fQiwgX19BIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0NF9lcGk2NCAobG9uZyBsb25nIF9fQSwgbG9uZyBsb25nIF9fQiwgbG9uZyBsb25nIF9fQywKICAgICAgIGxvbmcgbG9uZyBfX0QpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyaSkgKF9fdjhkaSkKICAgeyBfX0QsIF9fQywgX19CLCBfX0EsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldDRfcGQgKGRvdWJsZSBfX0EsIGRvdWJsZSBfX0IsIGRvdWJsZSBfX0MsIGRvdWJsZSBfX0QpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tNTEyZCkKICAgeyBfX0QsIF9fQywgX19CLCBfX0EsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0NF9wcyAoZmxvYXQgX19BLCBmbG9hdCBfX0IsIGZsb2F0IF9fQywgZmxvYXQgX19EKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMikKICAgeyBfX0QsIF9fQywgX19CLCBfX0EsIF9fRCwgX19DLCBfX0IsIF9fQSwKICAgICBfX0QsIF9fQywgX19CLCBfX0EsIF9fRCwgX19DLCBfX0IsIF9fQSB9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXRyNF9lcGkzMihlMCxlMSxlMixlMykgICAgICAgICAgICAgICBcCiAgX21tNTEyX3NldDRfZXBpMzIoKGUzKSwoZTIpLChlMSksKGUwKSkKCiNkZWZpbmUgX21tNTEyX3NldHI0X2VwaTY0KGUwLGUxLGUyLGUzKSAgICAgICAgICAgICAgIFwKICBfbW01MTJfc2V0NF9lcGk2NCgoZTMpLChlMiksKGUxKSwoZTApKQoKI2RlZmluZSBfbW01MTJfc2V0cjRfcGQoZTAsZTEsZTIsZTMpICAgICAgICAgICAgICAgIFwKICBfbW01MTJfc2V0NF9wZCgoZTMpLChlMiksKGUxKSwoZTApKQoKI2RlZmluZSBfbW01MTJfc2V0cjRfcHMoZTAsZTEsZTIsZTMpICAgICAgICAgICAgICAgIFwKICBfbW01MTJfc2V0NF9wcygoZTMpLChlMiksKGUxKSwoZTApKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdHNkX3BkKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwKTsKfQoKLyogQ2FzdCBiZXR3ZWVuIHZlY3RvciB0eXBlcyAqLwoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGQyNTZfcGQ1MTIoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIC0xLCAtMSwgLTEsIC0xKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwczI1Nl9wczUxMihfX20yNTYgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAgMSwgIDIsICAzLCAgNCwgIDUsICA2LCAgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGQ1MTJfcGQxMjgoX19tNTEyZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwZDUxMl9wZDI1NiAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19BLCBfX0EsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBzNTEyX3BzMTI4KF9fbTUxMiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBzNTEyX3BzMjU2IChfX201MTIgX19BKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fQSwgX19BLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwZF9wcyAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBkX3NpNTEyIChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGQxMjhfcGQ1MTIgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKCBfX0EsIF9fQSwgMCwgMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBzX3BkIChfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cHNfc2k1MTIgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cHMxMjhfcHM1MTIgKF9fbTEyOCBfX0EpCnsKICAgIHJldHVybiAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoIF9fQSwgX19BLCAwLCAxLCAyLCAzLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RzaTEyOF9zaTUxMiAoX19tMTI4aSBfX0EpCnsKICAgcmV0dXJuICBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvciggX19BLCBfX0EsIDAsIDEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHNpMjU2X3NpNTEyIChfX20yNTZpIF9fQSkKewogICByZXR1cm4gIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKCBfX0EsIF9fQSwgMCwgMSwgMiwgMywgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHNpNTEyX3BzIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyKSAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0c2k1MTJfcGQgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0c2k1MTJfc2kxMjggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fQSwgX19BICwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHNpNTEyX3NpMjU2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX0EsIF9fQSAsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9pbnQybWFzayhpbnQgX19hKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrMmludChfX21tYXNrMTYgX19hKQp7CiAgcmV0dXJuIChpbnQpX19hOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZG91YmxlXSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQKLy8vICAgIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGRvdWJsZV0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0cGQxMjhfcGQ1MTIoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgMCwgMSwgMiwgMywgMiwgMywgMiwgMyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBkb3VibGVdIGZyb20gYQovLy8gICAgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBUaGUgbG93ZXIgMjU2IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZG91YmxlXS4gVGhlIGxvd2VyIDI1NiBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwZDI1Nl9wZDUxMihfX20yNTZkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRmKV9fYSwgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gZnJvbSBhCi8vLyAgICAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4KLy8vICAgIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0cHMxMjhfcHM1MTIoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA0LCA1LCA2LCA3LCA0LCA1LCA2LCA3KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gZnJvbSBhCi8vLyAgICAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhlIGxvd2VyIDI1NiBiaXRzIGNvbnRhaW4KLy8vICAgIHRoZSB2YWx1ZSBvZiB0aGUgc291cmNlIHZlY3Rvci4gVGhlIHVwcGVyIDI1NiBiaXRzIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLiBUaGUgbG93ZXIgMjU2IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAyNTYgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0cHMyNTZfcHM1MTIoX19tMjU2IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fYSwgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGludGVnZXIgdmVjdG9yIGZyb20gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gICAgVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIKLy8vICAgIDM4NCBiaXRzIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSA1MTItYml0IGludGVnZXIgdmVjdG9yLiBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YKLy8vICAgIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfemV4dHNpMTI4X3NpNTEyKF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19hLCAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIDAsIDEsIDIsIDMsIDIsIDMsIDIsIDMpOwp9CgovLy8gQ29uc3RydWN0cyBhIDUxMi1iaXQgaW50ZWdlciB2ZWN0b3IgZnJvbSBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyAgICBUaGUgbG93ZXIgMjU2IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlcgovLy8gICAgMjU2IGJpdHMgYXJlIHNldCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgaW50ZWdlciB2ZWN0b3IuIFRoZSBsb3dlciAyNTYgYml0cyBjb250YWluIHRoZSB2YWx1ZSBvZgovLy8gICAgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDI1NiBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0c2kyNTZfc2k1MTIoX19tMjU2aSBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkaSlfX2EsIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCi8qIEJpdHdpc2Ugb3BlcmF0b3JzICovCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRfZXBpMzIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKSgoX192MTZzdSlfX2EgJiAoX192MTZzdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hbmRfZXBpMzIoX19tNTEyaSBfX3NyYywgX19tbWFzazE2IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19rLAogICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9hbmRfZXBpMzIoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fc3JjKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FuZF9lcGkzMihfX21tYXNrMTYgX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9tbTUxMl9tYXNrX2FuZF9lcGkzMihfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ssIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZF9lcGk2NChfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3Y4ZHUpX19hICYgKF9fdjhkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hbmRfZXBpNjQoX19tNTEyaSBfX3NyYywgX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICAgIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIgKChfX21tYXNrOCkgX19rLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX2FuZF9lcGk2NChfX2EsIF9fYiksCiAgICAgICAgICAgICAgICAoX192OGRpKSBfX3NyYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRfZXBpNjQoX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9tbTUxMl9tYXNrX2FuZF9lcGk2NChfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2ssIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZG5vdF9zaTUxMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSh+KF9fdjhkdSlfX0EgJiAoX192OGR1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRub3RfZXBpMzIgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkofihfX3YxNnN1KV9fQSAmIChfX3YxNnN1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZG5vdF9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hbmRub3RfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRub3RfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9tbTUxMl9tYXNrX2FuZG5vdF9lcGkzMihfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRub3RfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSh+KF9fdjhkdSlfX0EgJiAoX192OGR1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZG5vdF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYW5kbm90X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYW5kbm90X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9tbTUxMl9tYXNrX2FuZG5vdF9lcGk2NChfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19VLCBfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9vcl9lcGkzMihfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3YxNnN1KV9fYSB8IChfX3YxNnN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX29yX2VwaTMyKF9fbTUxMmkgX19zcmMsIF9fbW1hc2sxNiBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9faywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX29yX2VwaTMyKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19zcmMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfb3JfZXBpMzIoX19tbWFzazE2IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9tbTUxMl9tYXNrX29yX2VwaTMyKF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfb3JfZXBpNjQoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKSgoX192OGR1KV9fYSB8IChfX3Y4ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfb3JfZXBpNjQoX19tNTEyaSBfX3NyYywgX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9faywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfb3JfZXBpNjQoX19hLCBfX2IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fc3JjKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X29yX2VwaTY0KF9fbW1hc2s4IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9tbTUxMl9tYXNrX29yX2VwaTY0KF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfeG9yX2VwaTMyKF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjE2c3UpX19hIF4gKF9fdjE2c3UpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfeG9yX2VwaTMyKF9fbTUxMmkgX19zcmMsIF9fbW1hc2sxNiBfX2ssIF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9faywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfeG9yX2VwaTMyKF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX3NyYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel94b3JfZXBpMzIoX19tbWFzazE2IF9faywgX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iKQp7CiAgcmV0dXJuIChfX201MTJpKV9tbTUxMl9tYXNrX3hvcl9lcGkzMihfbW01MTJfc2V0emVyb19zaTUxMigpLCBfX2ssIF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3hvcl9lcGk2NChfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3Y4ZHUpX19hIF4gKF9fdjhkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza194b3JfZXBpNjQoX19tNTEyaSBfX3NyYywgX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9faywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfeG9yX2VwaTY0KF9fYSwgX19iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX3NyYyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel94b3JfZXBpNjQoX19tbWFzazggX19rLCBfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpX21tNTEyX21hc2tfeG9yX2VwaTY0KF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIF9faywgX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYW5kX3NpNTEyKF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjhkdSlfX2EgJiAoX192OGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9vcl9zaTUxMihfX201MTJpIF9fYSwgX19tNTEyaSBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmkpKChfX3Y4ZHUpX19hIHwgKF9fdjhkdSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfeG9yX3NpNTEyKF9fbTUxMmkgX19hLCBfX201MTJpIF9fYikKewogIHJldHVybiAoX19tNTEyaSkoKF9fdjhkdSlfX2EgXiAoX192OGR1KV9fYik7Cn0KCi8qIEFyaXRobWV0aWMgKi8KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWRkX3BkKF9fbTUxMmQgX19hLCBfX201MTJkIF9fYikKewogIHJldHVybiAoX19tNTEyZCkoKF9fdjhkZilfX2EgKyAoX192OGRmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRfcHMoX19tNTEyIF9fYSwgX19tNTEyIF9fYikKewogIHJldHVybiAoX19tNTEyKSgoX192MTZzZilfX2EgKyAoX192MTZzZilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bF9wZChfX201MTJkIF9fYSwgX19tNTEyZCBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmQpKChfX3Y4ZGYpX19hICogKF9fdjhkZilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsX3BzKF9fbTUxMiBfX2EsIF9fbTUxMiBfX2IpCnsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c2YpX19hICogKF9fdjE2c2YpX19iKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJfcGQoX19tNTEyZCBfX2EsIF9fbTUxMmQgX19iKQp7CiAgcmV0dXJuIChfX201MTJkKSgoX192OGRmKV9fYSAtIChfX3Y4ZGYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1Yl9wcyhfX201MTIgX19hLCBfX201MTIgX19iKQp7CiAgcmV0dXJuIChfX201MTIpKChfX3YxNnNmKV9fYSAtIChfX3YxNnNmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRfZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgKChfX3Y4ZHUpIF9fQSArIChfX3Y4ZHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYWRkX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2FkZF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdWJfZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgKChfX3Y4ZHUpIF9fQSAtIChfX3Y4ZHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3ViX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3N1Yl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hZGRfZXBpMzIgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgKChfX3YxNnN1KSBfX0EgKyAoX192MTZzdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hZGRfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N1Yl9lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjE2c3UpIF9fQSAtIChfX3YxNnN1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3N1Yl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zdWJfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3ViX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21heF9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX21heHBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX21heF9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWF4X3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfbWF4X3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tYXhfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9tYXhwZDUxMigoX192OGRmKSBfX0EsIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tYXhfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWF4X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX21heF9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfbWF4cHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19tYXhfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21heF9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X21heF9yb3VuZF9wcyhVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWF4X3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9tYXhwczUxMigoX192MTZzZikgX19BLCAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tYXhfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWF4X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X3NzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX21heHNzX3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWF4X3NzKF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX21heHNzX3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpICBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWF4X3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9tYXhzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX21heF9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbWF4c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9tYXhfcm91bmRfc3MoVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX21heHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfc2QoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX21heHNkX3JvdW5kX21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9zZChfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9tYXhzZF9yb3VuZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192MmRmKSAgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21heF9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21heHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19tYXhfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9tYXhzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X21heF9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX21heHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZSBfX201MTJpCl9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWF4X2VwaTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4c2Q1MTIoKF9fdjE2c2kpX19BLCAoX192MTZzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYXhfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21heF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21heF9lcGkzMiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9tYXhfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21heF9lcHUzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1heHVkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwdTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9tYXhfZXB1MzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXB1MzIgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWF4X2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXhfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtYXhzcTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tYXhfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYXhfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tYXhfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21heF9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWF4X2VwdTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWF4dXE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWF4X2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbWF4X2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X2VwdTY0IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tYXhfZXB1NjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9taW5fcm91bmRfcGQoQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9taW5wZDUxMigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19taW5fcm91bmRfcGQoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21pbl9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X21pbl9yb3VuZF9wZChVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWluX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCnN0YXRpYyAgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfbWlucGQ1MTIoKF9fdjhkZikgX19BLCAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbWluX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21pbl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9taW5fcm91bmRfcHMoQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX21pbnBzNTEyKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbWluX3JvdW5kX3BzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9taW5fcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9taW5fcm91bmRfcHMoVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21pbl9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfbWlucHM1MTIoKF9fdjE2c2YpIF9fQSwgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19taW5fcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbWluX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX21pbl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9zcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9taW5zc19yb3VuZF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21pbl9zcyhfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9taW5zc19yb3VuZF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NHNmKSAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21pbl9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbWluc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19taW5fcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX21pbnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfbWluX3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9taW5zc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX3NkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9taW5zZF9yb3VuZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fc2QoX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfbWluc2Rfcm91bmRfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9taW5fcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9taW5zZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbWluX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbWluc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9taW5fcm91bmRfc2QoVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9taW5zZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaQpfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1pbnNkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9taW5fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9taW5fZXBpMzIgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWluX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9taW5fZXB1MzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtaW51ZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9lcHUzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfbWluX2VwdTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX2VwdTMyIChfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX21pbl9lcHUzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWluX2VwaTY0KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wbWluc3E1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbWluX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbWluX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX2VwaTY0IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9taW5fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21pbl9lcHU2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG1pbnVxNTEyKChfX3Y4ZGkpX19BLCAoX192OGRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9lcHU2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX21pbl9lcHU2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21pbl9lcHU2NCAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbWluX2VwdTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tdWxfZXBpMzIoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BtdWxkcTUxMigoX192MTZzaSlfX1gsIChfX3YxNnNpKSBfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tdWxfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsX2VwaTMyKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX211bF9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIgKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bF9lcHUzMihfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcG11bHVkcTUxMigoX192MTZzaSlfX1gsIChfX3YxNnNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxfZXB1MzIoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX211bF9lcHUzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxfZXB1MzIoX19tbWFzazggX19NLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbXVsX2VwdTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsbG9fZXBpMzIgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgKChfX3YxNnN1KSBfX0EgKiAoX192MTZzdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxsb19lcGkzMihfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9tdWxsb19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsbG9fZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX211bGxvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX211bGxveF9lcGk2NCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKSAoKF9fdjhkdSkgX19BICogKF9fdjhkdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsbG94X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tdWxsb3hfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCiNkZWZpbmUgX21tNTEyX3NxcnRfcm91bmRfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zcXJ0cGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3FydF9yb3VuZF9wZChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NxcnRfcm91bmRfcGQoKEEpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NxcnRfcm91bmRfcGQoVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zcXJ0X3JvdW5kX3BkKChBKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcXJ0X3BkKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NxcnRwZDUxMigoX192OGRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NxcnRfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcXJ0X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zcXJ0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9zcXJ0X3JvdW5kX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zcXJ0cHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3FydF9yb3VuZF9wcyhXLCBVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NxcnRfcm91bmRfcHMoKEEpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc3FydF9yb3VuZF9wcyhVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NxcnRfcm91bmRfcHMoKEEpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3FydF9wcyhfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc3FydHBzNTEyKChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3FydF9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NxcnRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NxcnRfcHMoIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3FydF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yc3FydDE0X3BkKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGYpCiAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7fQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcnNxcnQxNF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JzcXJ0MTRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcnNxcnQxNF9wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JzcXJ0MTRfcHMoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcnNxcnQxNF9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JzcXJ0MTRfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcnNxcnQxNHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JzcXJ0MTRfc3MoX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c3NfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgKF9fdjRzZikKICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcnNxcnQxNF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHNzX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcnNxcnQxNF9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHNzX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JzcXJ0MTRfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c2RfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAoX192MmRmKQogICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19yc3FydDE0X3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcnNxcnQxNHNkX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydDE0X3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yc3FydDE0c2RfbWFzayAoIChfX3YyZGYpIF9fQSwKICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgIChfX3YyZGYpIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JjcDE0X3BkKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yY3AxNF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcmNwMTRfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmNwMTRfcHMoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JjcDE0X3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JjcDE0cHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yY3AxNF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9yY3AxNHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3JjcDE0X3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcmNwMTRzc19tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgIChfX3Y0c2YpCiAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcmNwMTRfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3JjcDE0c3NfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yY3AxNF9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfcmNwMTRzc19tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljICBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9yY3AxNF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3JjcDE0c2RfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAgIChfX3YyZGYpCiAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcmNwMTRfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9yY3AxNHNkX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yY3AxNF9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfcmNwMTRzZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbG9vcl9wcyhfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0ZMT09SLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0EsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZmxvb3JfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9GTE9PUiwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csIF9fVSwKICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZmxvb3JfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0ZMT09SLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0EsIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbG9vcl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9GTE9PUiwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVywgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jZWlsX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ0VJTCwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csIF9fVSwKICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jZWlsX3BzKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ0VJTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19BLCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2NlaWxfcGQoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NFSUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NlaWxfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ0VJTCwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVywgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfZXBpNjQoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGFic3E1MTIoKF9fdjhkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hYnNfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2Fic19lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hYnNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYWJzX2VwaTY0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWJzX2VwaTMyKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BhYnNkNTEyKChfX3YxNnNpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hYnNfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hYnNfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Fic19lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYWJzX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZF9zcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIF9fQSA9IF9tbV9hZGRfc3MoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9zcyhfX21tYXNrOCBfX1UsX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIF9fQSA9IF9tbV9hZGRfc3MoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3Rzc18xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbV9hZGRfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2FkZHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfYWRkX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9hZGRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FkZF9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfYWRkc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZF9zZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9hZGRfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRfc2QoX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9hZGRfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BkKCkpOwp9CiNkZWZpbmUgX21tX2FkZF9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19hZGRfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9hZGRzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FkZF9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2FkZHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZF9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hZGRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYWRkX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWRkX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9hZGRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hZGRfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FkZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9hZGRfcm91bmRfcGQoQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9hZGRwZDUxMigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19hZGRfcm91bmRfcGQoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2FkZF9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2FkZF9yb3VuZF9wZChVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYWRkX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tNTEyX2FkZF9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfYWRkcHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19hZGRfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FkZF9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfYWRkX3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9hZGRfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJfc3MoX19tMTI4IF9fVywgX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fc3ViX3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfc3MoX19tbWFzazggX19VLF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICBfX0EgPSBfbW1fc3ViX3NzKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX19BLCBfbW1fc2V0emVyb19wcygpKTsKfQojZGVmaW5lIF9tbV9zdWJfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3N1YnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfc3ViX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zdWJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3N1Yl9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc3Vic3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1Yl9zZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9zdWJfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfc2QoX19tbWFzazggX19VLF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIF9fQSA9IF9tbV9zdWJfc2QoX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbV9zdWJfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfc3ViX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc3Vic2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zdWJfcm91bmRfc2QoVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zdWJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdWJfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc3ViX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3N1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3N1Yl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3ViX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zdWJfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW01MTJfc3ViX3JvdW5kX3BkKEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc3VicGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3ViX3JvdW5kX3BkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zdWJfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zdWJfcm91bmRfcGQoVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3N1Yl9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9zdWJfcm91bmRfcHMoQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3N1YnBzNTEyKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3ViX3JvdW5kX3BzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zdWJfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3N1Yl9yb3VuZF9wcyhVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc3ViX3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsX3NzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX211bF9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsX3NzKF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX211bF9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcHMoKSk7Cn0KI2RlZmluZSBfbW1fbXVsX3JvdW5kX3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9tdWxzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX211bF9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfbXVsc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9tdWxfcm91bmRfc3MoVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX211bHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tdWxfc2QoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICBfX0EgPSBfbW1fbXVsX3NkKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2RfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsX3NkKF9fbW1hc2s4IF9fVSxfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICBfX0EgPSBfbW1fbXVsX3NkKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2RfMTI4KF9fVSwgX19BLCBfbW1fc2V0emVyb19wZCgpKTsKfQoKI2RlZmluZSBfbW1fbXVsX3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbXVsc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX211bF9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX211bHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfbXVsX3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbXVsc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbXVsX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX211bF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tdWxfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tdWxfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tdWxfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX211bF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bF9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbXVsX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX211bF9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX211bHBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX211bF9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfbXVsX3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfbXVsX3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tdWxfcm91bmRfcGQoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfbXVsX3JvdW5kX3BzKEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9tdWxwczUxMigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbXVsX3JvdW5kX3BzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tdWxfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X211bF9yb3VuZF9wcyhVLCBBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbXVsX3JvdW5kX3BzKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZGl2X3NzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX2Rpdl9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZGl2X3NzKF9fbW1hc2s4IF9fVSxfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgX19BID0gX21tX2Rpdl9zcyhfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNzXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcHMoKSk7Cn0KCiNkZWZpbmUgX21tX2Rpdl9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZGl2c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19kaXZfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2RpdnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZGl2X3JvdW5kX3NzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9kaXZzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZGl2X3NkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX2Rpdl9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Rpdl9zZChfX21tYXNrOCBfX1UsX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgX19BID0gX21tX2Rpdl9zZChfX0EsIF9fQik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNkXzEyOChfX1UsIF9fQSwgX21tX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tX2Rpdl9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2RpdnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19kaXZfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9kaXZzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2Rpdl9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2RpdnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZGl2X3BkKF9fbTUxMmQgX19hLCBfX201MTJkIF9fYikKewogIHJldHVybiAoX19tNTEyZCkoKF9fdjhkZilfX2EvKF9fdjhkZilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19kaXZfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfZGl2X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Rpdl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2Rpdl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZGl2X3BzKF9fbTUxMiBfX2EsIF9fbTUxMiBfX2IpCnsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c2YpX19hLyhfX3YxNnNmKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZGl2X3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9kaXZfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9kaXZfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Rpdl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9kaXZfcm91bmRfcGQoQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9kaXZwZDUxMigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19kaXZfcm91bmRfcGQoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2Rpdl9yb3VuZF9wZCgoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Rpdl9yb3VuZF9wZChVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfZGl2X3JvdW5kX3BkKChBKSwgKEIpLCAoUikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tNTEyX2Rpdl9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZGl2cHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19kaXZfcm91bmRfcHMoVywgVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Rpdl9yb3VuZF9wcygoQSksIChCKSwgKFIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZGl2X3JvdW5kX3BzKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9kaXZfcm91bmRfcHMoKEEpLCAoQiksIChSKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9wcyhBLCBCKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yb3VuZHNjYWxlX3BzKEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzaygoX192MTZzZikoX19tNTEyKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEEpLCAoX19tbWFzazE2KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3VuZHNjYWxlX3BzKEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcHNfbWFzaygoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcm91bmRfcHMoQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwc19tYXNrKChfX3YxNnNmKShfX201MTIpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQSksIChfX21tYXNrMTYpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm91bmRzY2FsZV9yb3VuZF9wcyhBLCBCLCBpbW0sIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcm91bmRzY2FsZV9yb3VuZF9wcyhBLCBpbW0sIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBzX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JvdW5kc2NhbGVfcGQoQSwgQikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yb3VuZHNjYWxlX3BkKEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQSksIChfX21tYXNrOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JvdW5kc2NhbGVfcGQoQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzaygoX192OGRmKShfX201MTJkKShCKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yb3VuZHNjYWxlX3JvdW5kX3BkKEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBkX21hc2soKF9fdjhkZikoX19tNTEyZCkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQSksIChfX21tYXNrOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm91bmRzY2FsZV9yb3VuZF9wZChBLCBCLCBpbW0sIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwZF9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JvdW5kc2NhbGVfcm91bmRfcGQoQSwgaW1tLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZm1hZGRfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZF9yb3VuZF9wZChBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2szKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZF9yb3VuZF9wZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6KChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbXN1Yl9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1zdWJfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1zdWJfcm91bmRfcGQoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNreigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX2ZubWFkZF9yb3VuZF9wZChBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2soLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZubWFkZF9yb3VuZF9wZChBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2szKC0oX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tYWRkX3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ooLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbm1zdWJfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKC0oX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tc3ViX3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFza3ooLShfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZtYWRkX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbWFkZF9wZChfX201MTJkIF9fQSwgX19tbWFzazggX19VLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzazMgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbWFkZF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6ICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1zdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbXN1Yl9wZChfX201MTJkIF9fQSwgX19tbWFzazggX19VLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbXN1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6ICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZubWFkZF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbm1hZGRfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrMyAoLShfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbm1hZGRfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNreiAoLShfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbm1zdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZubXN1Yl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2t6ICgtKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtYWRkX3JvdW5kX3BzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZtYWRkX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1hZGRfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2szKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1hZGRfcm91bmRfcHMoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2t6KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfZm1zdWJfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Ztc3ViX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Ztc3ViX3JvdW5kX3BzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9mbm1hZGRfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbm1hZGRfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2szKC0oX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZubWFkZF9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFza3ooLShfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfZm5tc3ViX3JvdW5kX3BzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZubXN1Yl9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFza3ooLShfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZtYWRkX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRfcHMoX19tNTEyIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MsIF9fbW1hc2sxNiBfX1UpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzazMgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtYWRkX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFza3ogKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Ztc3ViX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Ztc3ViX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1zdWJfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreiAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZubWFkZF9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm5tYWRkX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MsIF9fbW1hc2sxNiBfX1UpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzazMgKC0oX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbm1hZGRfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQykKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNreiAoLShfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZubXN1Yl9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZubXN1Yl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzNTEyX21hc2t6ICgtKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtYWRkc3ViX3JvdW5kX3BkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZtYWRkc3ViX3JvdW5kX3BkKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1hZGRzdWJfcm91bmRfcGQoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrMygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1hZGRzdWJfcm91bmRfcGQoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNreigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfZm1zdWJhZGRfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Ztc3ViYWRkX3JvdW5kX3BkKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Ztc3ViYWRkX3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFza3ooKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZm1hZGRzdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRzdWJfcGQoX19tNTEyZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkc3ViX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MsIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFzazMgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZtYWRkc3ViX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQ1MTJfbWFza3ogKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Ztc3ViYWRkX3BkKF9fbTUxMmQgX19BLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1zdWJhZGRfcGQoX19tNTEyZCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1zdWJhZGRfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDUxMl9tYXNreiAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtYWRkc3ViX3JvdW5kX3BzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZtYWRkc3ViX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1hZGRzdWJfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2szKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1hZGRzdWJfcm91bmRfcHMoVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2t6KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKI2RlZmluZSBfbW01MTJfZm1zdWJhZGRfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrX2Ztc3ViYWRkX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Ztc3ViYWRkX3JvdW5kX3BzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczUxMl9tYXNreigoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbWFkZHN1Yl9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZtYWRkc3ViX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbWFkZHN1Yl9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DLCBfX21tYXNrMTYgX19VKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2szICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbWFkZHN1Yl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2t6ICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbXN1YmFkZF9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbXN1YmFkZF9wcyhfX201MTIgX19BLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19CLCBfX201MTIgX19DKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Ztc3ViYWRkX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHM1MTJfbWFza3ogKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbXN1Yl9yb3VuZF9wZChBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBkNTEyX21hc2szKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1zdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBkNTEyX21hc2szICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2szX2Ztc3ViX3JvdW5kX3BzKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1zdWJwczUxMl9tYXNrMygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1zdWJfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQywgX19tbWFzazE2IF9fVSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBzNTEyX21hc2szICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2szX2Ztc3ViYWRkX3JvdW5kX3BkKEEsIEIsIEMsIFUsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcGQ1MTJfbWFzazMoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbXN1YmFkZF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IsIF9fbTUxMmQgX19DLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcGQ1MTJfbWFzazMgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1zdWJhZGRfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YmFkZHBzNTEyX21hc2szKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1zdWJhZGRfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQiwgX19tNTEyIF9fQywgX19tbWFzazE2IF9fVSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YmFkZHBzNTEyX21hc2szICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZm5tYWRkX3JvdW5kX3BkKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZubWFkZF9wZChfX201MTJkIF9fQSwgX19tbWFzazggX19VLCBfX201MTJkIF9fQiwgX19tNTEyZCBfX0MpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZm5tYWRkX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tYWRkX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFza19mbm1zdWJfcm91bmRfcGQoQSwgVSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpKF9fbTUxMmQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZubXN1Yl9yb3VuZF9wZChBLCBCLCBDLCBVLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBkNTEyX21hc2szKC0oX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tc3ViX3BkKF9fbTUxMmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQykKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfdmZtYWRkcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4ZGYpIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGRmKSBfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbm1zdWJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CLCBfX201MTJkIF9fQywgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl92Zm1zdWJwZDUxMl9tYXNrMyAoLShfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX21hc2tfZm5tc3ViX3JvdW5kX3BzKEEsIFUsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikoX19tNTEyKShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbm1zdWJfcm91bmRfcHMoQSwgQiwgQywgVSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBzNTEyX21hc2szKC0oX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tc3ViX3BzKF9fbTUxMiBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0IsIF9fbTUxMiBfX0MpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfdmZtYWRkcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZubXN1Yl9wcyhfX201MTIgX19BLCBfX201MTIgX19CLCBfX201MTIgX19DLCBfX21tYXNrMTYgX19VKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBzNTEyX21hc2szICgtKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKCgovKiBWZWN0b3IgcGVybXV0YXRpb25zICovCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4MnZhcl9lcGkzMihfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJkNTEyKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4MnZhcl9lcGkzMihfX201MTJpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpMzIoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrMTYgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3Blcm11dGV4MnZhcl9lcGkzMihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4MnZhcl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTMyKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cGVybWkydmFycTUxMigoX192OGRpKV9fQSwgKF9fdjhkaSkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRleDJ2YXJfZXBpNjQoX19tNTEyaSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpNjQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTY0KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXgydmFyX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGk2NChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2FsaWducl9lcGk2NChBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2FsaWducTUxMigoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfYWxpZ25yX2VwaTY0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfYWxpZ25yX2VwaTY0KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9hbGlnbnJfZXBpNjQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX2FsaWducl9lcGkzMihBLCBCLCBJKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2FsaWduZDUxMigoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19hbGlnbnJfZXBpMzIoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9hbGlnbnJfZXBpMzIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfYWxpZ25yX2VwaTMyKFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYWxpZ25yX2VwaTMyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCi8qIFZlY3RvciBFeHRyYWN0ICovCgojZGVmaW5lIF9tbTUxMl9leHRyYWN0ZjY0eDRfcGQoQSwgSSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGY2NHg0X3BkKFcsIFUsIEEsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDRfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RmNjR4NF9wZChVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZXh0cmFjdGY2NHg0X21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfZXh0cmFjdGYzMng0X3BzKEEsIEkpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDRfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4dHJhY3RmMzJ4NF9wcyhXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDRfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RmMzJ4NF9wcyhVLCBBLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDRfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKLyogVmVjdG9yIEJsZW5kICovCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYmxlbmRfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX1cpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2JsZW5kX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX1cpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19ibGVuZF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fVykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2JsZW5kX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fVykKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIgKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX1csCiAgICAgICAgICAgICAgICAoX192MTZzaSkgX19BKTsKfQoKLyogQ29tcGFyZSAqLwoKI2RlZmluZSBfbW01MTJfY21wX3JvdW5kX3BzX21hc2soQSwgQiwgUCwgUikgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2NtcHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfcm91bmRfcHNfbWFzayhVLCBBLCBCLCBQLCBSKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfY21wX3BzX21hc2soQSwgQiwgUCkgXAogIF9tbTUxMl9jbXBfcm91bmRfcHNfbWFzaygoQSksIChCKSwgKFApLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX3BzX21hc2soVSwgQSwgQiwgUCkgXAogIF9tbTUxMl9tYXNrX2NtcF9yb3VuZF9wc19tYXNrKChVKSwgKEEpLCAoQiksIChQKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfY21wZXFfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfRVFfT1EpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZXFfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0VRX09RKQoKI2RlZmluZSBfbW01MTJfY21wbHRfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfTFRfT1MpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbHRfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0xUX09TKQoKI2RlZmluZSBfbW01MTJfY21wbGVfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfTEVfT1MpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbGVfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX0xFX09TKQoKI2RlZmluZSBfbW01MTJfY21wdW5vcmRfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfVU5PUkRfUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXB1bm9yZF9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfVU5PUkRfUSkKCiNkZWZpbmUgX21tNTEyX2NtcG5lcV9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9ORVFfVVEpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmVxX3BzX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BzX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9ORVFfVVEpCgojZGVmaW5lIF9tbTUxMl9jbXBubHRfcHNfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BzX21hc2soKEEpLCAoQiksIF9DTVBfTkxUX1VTKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5sdF9wc19tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wc19tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTkxUX1VTKQoKI2RlZmluZSBfbW01MTJfY21wbmxlX3BzX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wc19tYXNrKChBKSwgKEIpLCBfQ01QX05MRV9VUykKI2RlZmluZSBfbW01MTJfbWFza19jbXBubGVfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX05MRV9VUykKCiNkZWZpbmUgX21tNTEyX2NtcG9yZF9wc19tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcHNfbWFzaygoQSksIChCKSwgX0NNUF9PUkRfUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBvcmRfcHNfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcHNfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX09SRF9RKQoKI2RlZmluZSBfbW01MTJfY21wX3JvdW5kX3BkX21hc2soQSwgQiwgUCwgUikgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9yb3VuZF9wZF9tYXNrKFUsIEEsIEIsIFAsIFIpIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9wZF9tYXNrKEEsIEIsIFApIFwKICBfbW01MTJfY21wX3JvdW5kX3BkX21hc2soKEEpLCAoQiksIChQKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9wZF9tYXNrKFUsIEEsIEIsIFApIFwKICBfbW01MTJfbWFza19jbXBfcm91bmRfcGRfbWFzaygoVSksIChBKSwgKEIpLCAoUCksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tNTEyX2NtcGVxX3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX0VRX09RKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGVxX3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9FUV9PUSkKCiNkZWZpbmUgX21tNTEyX2NtcGx0X3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX0xUX09TKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9MVF9PUykKCiNkZWZpbmUgX21tNTEyX2NtcGxlX3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX0xFX09TKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGxlX3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9MRV9PUykKCiNkZWZpbmUgX21tNTEyX2NtcHVub3JkX3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX1VOT1JEX1EpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wdW5vcmRfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX1VOT1JEX1EpCgojZGVmaW5lIF9tbTUxMl9jbXBuZXFfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfTkVRX1VRKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9wZF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9wZF9tYXNrKChrKSwgKEEpLCAoQiksIF9DTVBfTkVRX1VRKQoKI2RlZmluZSBfbW01MTJfY21wbmx0X3BkX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9wZF9tYXNrKChBKSwgKEIpLCBfQ01QX05MVF9VUykKI2RlZmluZSBfbW01MTJfbWFza19jbXBubHRfcGRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfcGRfbWFzaygoayksIChBKSwgKEIpLCBfQ01QX05MVF9VUykKCiNkZWZpbmUgX21tNTEyX2NtcG5sZV9wZF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfcGRfbWFzaygoQSksIChCKSwgX0NNUF9OTEVfVVMpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wbmxlX3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9OTEVfVVMpCgojZGVmaW5lIF9tbTUxMl9jbXBvcmRfcGRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX3BkX21hc2soKEEpLCAoQiksIF9DTVBfT1JEX1EpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wb3JkX3BkX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX3BkX21hc2soKGspLCAoQSksIChCKSwgX0NNUF9PUkRfUSkKCi8qIENvbnZlcnNpb24gKi8KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwc19lcHUzMihBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwc19lcHUzMihXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBzX2VwdTMyKFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBzX2VwdTMyKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpCiAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBzX2VwdTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cHNfZXB1MzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1ZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwaTMyX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9jdnRkcTJwczUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcGkzMl9wcyhXLCBVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfY3Z0ZHEycHM1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpMzJfcHMoVSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2N2dGRxMnBzNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXB1MzJfcHMoQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2N2dHVkcTJwczUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwdTMyX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9jdnR1ZHEycHM1MTJfbWFzaygoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcHUzMl9wcyhVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfY3Z0dWRxMnBzNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHUzMl9wcyAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MTZzdSlfX0EsIF9fdjE2c2YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTMyX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2N2dGVwdTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTMyX3BzIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2N2dGVwdTMyX3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX3BkKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4c2kpX19BLCBfX3Y4ZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXBpMzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTMyX3BkIChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dGVwaTMyX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMzJsb19wZChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX21tNTEyX2N2dGVwaTMyX3BkKF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYoX19BKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTMybG9fcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSxfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX21tNTEyX21hc2tfY3Z0ZXBpMzJfcGQoX19XLCBfX1UsIF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYoX19BKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX3BzIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNnNpKV9fQSwgX192MTZzZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfY3Z0ZXBpMzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfY3Z0ZXBpMzJfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1MzJfcGQoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzdSlfX0EsIF9fdjhkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTMyX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRlcHUzMl9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MzJfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXB1MzJfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHUzMmxvX3BkKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfbW01MTJfY3Z0ZXB1MzJfcGQoX21tNTEyX2Nhc3RzaTUxMl9zaTI1NihfX0EpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MzJsb19wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfbW01MTJfbWFza19jdnRlcHUzMl9wZChfX1csIF9fVSwgX21tNTEyX2Nhc3RzaTUxMl9zaTI1NihfX0EpKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGRfcHMoQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHBkMnBzNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBkX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnRwZDJwczUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwZF9wcyhVLCBBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0cGQycHM1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwZF9wcyAoX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0cGQycHM1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3VuZGVmaW5lZF9wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX3BzIChfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnBzNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGRfcHMgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0cGQycHM1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBkX3BzbG8gKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2YpIF9tbTUxMl9jdnRwZF9wcyhfX0EpLAogICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9wc2xvIChfX201MTIgX19XLCBfX21tYXNrOCBfX1UsX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX3NodWZmbGV2ZWN0b3IgKAogICAgICAgICAgICAgICAgKF9fdjhzZikgX21tNTEyX21hc2tfY3Z0cGRfcHMgKF9tbTUxMl9jYXN0cHM1MTJfcHMyNTYoX19XKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1UsIF9fQSksCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwc19waChBLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaDUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBzX3BoKFUsIFcsIEEsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwc19waChXLCBBLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaDUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFcpKSkKCiNkZWZpbmUgX21tNTEyX2N2dHBzX3BoICAgICAgIF9tbTUxMl9jdnRfcm91bmRwc19waAojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHBzX3BoICBfbW01MTJfbWFza19jdnRfcm91bmRwc19waAojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRwc19waCBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcHNfcGgKCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBoX3BzKEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHM1MTJfbWFzaygoX192MTZoaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBoX3BzKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHM1MTJfbWFzaygoX192MTZoaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwaF9wcyhVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzNTEyX21hc2soKF9fdjE2aGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljICBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwaF9wcyhfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHM1MTJfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwczUxMl9tYXNrICgoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBoX3BzIChfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHM1MTJfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwZF9lcGkzMihBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBkX2VwaTMyKFcsIFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBkX2VwaTMyKFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBkX2VwaTMyKF9fbTUxMmQgX19hKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJkcTUxMl9tYXNrKChfX3Y4ZGYpIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBkX2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwZF9lcGkzMiAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMmRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcHNfZXBpMzIoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBzX2VwaTMyKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMmRxNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcHNfZXBpMzIoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwc19lcGkzMihfX201MTIgX19hKQp7CiAgcmV0dXJuIChfX201MTJpKQogICAgX19idWlsdGluX2lhMzJfY3Z0dHBzMmRxNTEyX21hc2soKF9fdjE2c2YpIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cHNfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBzX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMyZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBzX2VwaTMyKEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBzX2VwaTMyKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwc19lcGkzMihVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMmRxNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwc19lcGkzMiAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMyZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3VuZGVmaW5lZF9lcGkzMiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwc19lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMmRxNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBzX2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJkcTUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YxNnNpKQogICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwZF9lcGkzMihBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGRfZXBpMzIoVywgVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwZF9lcGkzMihVLCBBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMmRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGRfZXBpMzIgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGRfZXBpMzIgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhzaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwZF9lcGkzMiAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQyZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4c2kpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcHNfZXB1MzIoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcHNfZXB1MzIoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBzX2VwdTMyKFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMydWRxNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBzX2VwdTMyICggX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMydWRxNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsXAogICAgICAgICAgICAgICAgICAoX192MTZzaSlcCiAgICAgICAgICAgICAgICAgIF9tbTUxMl91bmRlZmluZWRfZXBpMzIgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLFwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cHNfZXB1MzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cHNfZXB1MzIgKCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1ZHE1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpCiAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UgLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwZF9lcHUzMihBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGRfZXB1MzIoVywgVSwgQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwZF9lcHUzMihVLCBBLCBSKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGRfZXB1MzIgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1ZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9lcHUzMiAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwZF9lcHUzMiAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydWRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZF9mNjQoX19tNTEyZCBfX2EpCnsKICByZXR1cm4gX19hWzBdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHNzX2YzMihfX201MTIgX19hKQp7CiAgcmV0dXJuIF9fYVswXTsKfQoKLyogVW5wYWNrIGFuZCBJbnRlcmxlYXZlICovCgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2hpX3BkKF9fbTUxMmQgX19hLCBfX201MTJkIF9fYikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGRmKV9fYSwgKF9fdjhkZilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDksIDErMiwgOSsyLCAxKzQsIDkrNCwgMSs2LCA5KzYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2toaV9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5wYWNraGlfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNraGlfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5wYWNraGlfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2tsb19wZChfX201MTJkIF9fYSwgX19tNTEyZCBfX2IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhkZilfX2EsIChfX3Y4ZGYpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCA4LCAwKzIsIDgrMiwgMCs0LCA4KzQsIDArNiwgOCs2KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNrbG9fcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3VucGFja2xvX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3VucGFja2xvX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl91bnBhY2tsb19wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNraGlfcHMoX19tNTEyIF9fYSwgX19tNTEyIF9fYikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNmKV9fYSwgKF9fdjE2c2YpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIsICAgIDE4LCAgICAzLCAgICAxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKzQsICAxOCs0LCAgMys0LCAgMTkrNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKzgsICAxOCs4LCAgMys4LCAgMTkrOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKzEyLCAxOCsxMiwgMysxMiwgMTkrMTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2hpX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5wYWNraGlfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2toaV9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bnBhY2toaV9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNrbG9fcHMoX19tNTEyIF9fYSwgX19tNTEyIF9fYikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNmKV9fYSwgKF9fdjE2c2YpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsICAgIDE2LCAgICAxLCAgICAxNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKzQsICAxNis0LCAgMSs0LCAgMTcrNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKzgsICAxNis4LCAgMSs4LCAgMTcrOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKzEyLCAxNisxMiwgMSsxMiwgMTcrMTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2xvX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5wYWNrbG9fcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2tsb19wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bnBhY2tsb19wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNraGlfZXBpMzIoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnNpKV9fQSwgKF9fdjE2c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyLCAgICAxOCwgICAgMywgICAgMTksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIrNCwgIDE4KzQsICAzKzQsICAxOSs0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKzgsICAxOCs4LCAgMys4LCAgMTkrOCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMisxMiwgMTgrMTIsIDMrMTIsIDE5KzEyKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNraGlfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl91bnBhY2toaV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel91bnBhY2toaV9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfdW5wYWNraGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3VucGFja2xvX2VwaTMyKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgICAgMTYsICAgIDEsICAgIDE3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKzQsICAxNis0LCAgMSs0LCAgMTcrNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCs4LCAgMTYrOCwgIDErOCwgIDE3KzgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDArMTIsIDE2KzEyLCAxKzEyLCAxNysxMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3VucGFja2xvX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfdW5wYWNrbG9fZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNrbG9fZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3VucGFja2xvX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl91bnBhY2toaV9lcGk2NChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCA5LCAxKzIsIDkrMiwgMSs0LCA5KzQsIDErNiwgOSs2KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfdW5wYWNraGlfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfdW5wYWNraGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNraGlfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl91bnBhY2toaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdW5wYWNrbG9fZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGRpKV9fQSwgKF9fdjhkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDgsIDArMiwgOCsyLCAwKzQsIDgrNCwgMCs2LCA4KzYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza191bnBhY2tsb19lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfdW5wYWNrbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfdW5wYWNrbG9fZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfdW5wYWNrbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKCi8qIFNJTUQgbG9hZCBvcHMgKi8KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZHVfc2k1MTIgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X3NpNTEyIHsKICAgIF9fbTUxMmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfc2k1MTIqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkdV9lcGkzMiAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpMzIgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGkzMiopX19QKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZHVfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVzaTUxMl9tYXNrICgoY29uc3QgaW50ICopIF9fUCwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbG9hZHVfZXBpMzIoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1c2k1MTJfbWFzayAoKGNvbnN0IGludCAqKV9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X2VwaTY0ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGk2NCB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTY0KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkdV9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1ZGk1MTJfbWFzayAoKGNvbnN0IGxvbmcgbG9uZyAqKSBfX1AsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWR1X2VwaTY0KF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1ZGk1MTJfbWFzayAoKGNvbnN0IGxvbmcgbG9uZyAqKV9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZHVfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBzNTEyX21hc2sgKChjb25zdCBmbG9hdCAqKSBfX1AsCiAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWR1X3BzKF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9sb2FkdXBzNTEyX21hc2sgKChjb25zdCBmbG9hdCAqKV9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZHVfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfbG9hZHVwZDUxMl9tYXNrICgoY29uc3QgZG91YmxlICopIF9fUCwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkdV9wZChfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfbG9hZHVwZDUxMl9tYXNrICgoY29uc3QgZG91YmxlICopX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X3BkKHZvaWQgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3BkIHsKICAgIF9fbTUxMmRfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcGQqKV9fcCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2xvYWR1X3BzKHZvaWQgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3BzIHsKICAgIF9fbTUxMl91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wcyopX19wKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZF9wcyh2b2lkIGNvbnN0ICpfX3ApCnsKICByZXR1cm4gKihjb25zdCBfX201MTIqKV9fcDsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZF9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcHM1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2YgKikgX19QLAogICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywKICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkX3BzKF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9sb2FkYXBzNTEyX21hc2sgKChjb25zdCBfX3YxNnNmICopX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZF9wZCh2b2lkIGNvbnN0ICpfX3ApCnsKICByZXR1cm4gKihjb25zdCBfX201MTJkKilfX3A7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19sb2FkX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2xvYWRhcGQ1MTJfbWFzayAoKGNvbnN0IF9fdjhkZiAqKSBfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkX3BkKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9sb2FkYXBkNTEyX21hc2sgKChjb25zdCBfX3Y4ZGYgKilfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZF9zaTUxMiAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tNTEyaSAqKSBfX1A7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZF9lcGkzMiAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tNTEyaSAqKSBfX1A7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbG9hZF9lcGk2NCAodm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuICooY29uc3QgX19tNTEyaSAqKSBfX1A7Cn0KCi8qIFNJTUQgc3RvcmUgb3BzICovCgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9lcGk2NCAodm9pZCAqX19QLCBfX201MTJpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGk2NCB7CiAgICBfX201MTJpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTY0KilfX1ApLT5fX3YgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zdG9yZXVfZXBpNjQodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVkaTUxMl9tYXNrICgobG9uZyBsb25nICopX19QLCAoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmV1X3NpNTEyICh2b2lkICpfX1AsIF9fbTUxMmkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X3NpNTEyIHsKICAgIF9fbTUxMmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfc2k1MTIqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpMzIgewogICAgX19tNTEyaV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGkzMiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmV1X2VwaTMyKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdXNpNTEyX21hc2sgKChpbnQgKilfX1AsIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmV1X3BkKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JldXBkNTEyX21hc2sgKChkb3VibGUgKilfX1AsIChfX3Y4ZGYpIF9fQSwgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JldV9wZCh2b2lkICpfX1AsIF9fbTUxMmQgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X3BkIHsKICAgIF9fbTUxMmRfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfcGQqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N0b3JldV9wcyh2b2lkICpfX1AsIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXVwczUxMl9tYXNrICgoZmxvYXQgKilfX1AsIChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZXVfcHModm9pZCAqX19QLCBfX201MTIgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X3BzIHsKICAgIF9fbTUxMl91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9wcyopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmVfcGQodm9pZCAqX19QLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVhcGQ1MTJfbWFzayAoKF9fdjhkZiAqKV9fUCwgKF9fdjhkZikgX19BLCAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmVfcGQodm9pZCAqX19QLCBfX201MTJkIF9fQSkKewogICooX19tNTEyZCopX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmVfcHModm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVhcHM1MTJfbWFzayAoKF9fdjE2c2YgKilfX1AsIChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZV9wcyh2b2lkICpfX1AsIF9fbTUxMiBfX0EpCnsKICAqKF9fbTUxMiopX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0b3JlX3NpNTEyICh2b2lkICpfX1AsIF9fbTUxMmkgX19BKQp7CiAgKihfX201MTJpICopIF9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zdG9yZV9lcGkzMiAodm9pZCAqX19QLCBfX201MTJpIF9fQSkKewogICooX19tNTEyaSAqKSBfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RvcmVfZXBpNjQgKHZvaWQgKl9fUCwgX19tNTEyaSBfX0EpCnsKICAqKF9fbTUxMmkgKikgX19QID0gX19BOwp9CgovKiBNYXNrIG9wcyAqLwoKc3RhdGljIF9faW5saW5lIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2tub3QoX19tbWFzazE2IF9fTSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9rbm90aGkoX19NKTsKfQoKLyogSW50ZWdlciBjb21wYXJlICovCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXBpMzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXBpMzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpMzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcGkzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpMzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwaTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwaTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwaTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGkzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGkzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGkzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXB1MzJfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTMyX21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXB1MzJfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1MzJfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcHUzMl9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1MzJfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwdTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwdTMyX21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwdTMyX21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHUzMl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcHUzMl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHUzMl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXBpNjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwaTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXBpNjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXBpNjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcGk2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXBpNjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwaTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwaTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwaTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwaTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcGk2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcGk2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTUxMl9jbXBlcV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBlcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tNTEyX2NtcGdlX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGdlX2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW01MTJfY21wZ3RfZXB1NjRfbWFzayhBLCBCKSBcCiAgICBfbW01MTJfY21wX2VwdTY0X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tNTEyX21hc2tfY21wZ3RfZXB1NjRfbWFzayhrLCBBLCBCKSBcCiAgICBfbW01MTJfbWFza19jbXBfZXB1NjRfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTUxMl9jbXBsZV9lcHU2NF9tYXNrKEEsIEIpIFwKICAgIF9tbTUxMl9jbXBfZXB1NjRfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW01MTJfbWFza19jbXBsZV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tNTEyX2NtcGx0X2VwdTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcGx0X2VwdTY0X21hc2soaywgQSwgQikgXAogICAgX21tNTEyX21hc2tfY21wX2VwdTY0X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW01MTJfY21wbmVxX2VwdTY0X21hc2soQSwgQikgXAogICAgX21tNTEyX2NtcF9lcHU2NF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcG5lcV9lcHU2NF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTUxMl9tYXNrX2NtcF9lcHU2NF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpOF9lcGkzMihfX20xMjhpIF9fQSkKewogIC8qIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHBlcmZvcm1zIGEgc2lnbmVkIGV4dGVuc2lvbiwgYnV0IF9fdjE2cWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjE2cXMuICovCiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNnFzKV9fQSwgX192MTZzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaThfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXBpOF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpOF9lcGkzMihfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2N2dGVwaThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk4X2VwaTY0KF9fbTEyOGkgX19BKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXMpX19BLCAoX192MTZxcylfX0EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpLCBfX3Y4ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk4X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwaThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpOF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwaThfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGkzMl9lcGk2NChfX20yNTZpIF9fWCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHNpKV9fWCwgX192OGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXBpMzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fWCkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcGkzMl9lcGk2NChfX1gpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpMTZfZXBpMzIoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2aGkpX19BLCBfX3YxNnNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMTZfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9jdnRlcGkxNl9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGkxNl9lcGkzMihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXBpMTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGkxNl9lcGk2NChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGhpKV9fQSwgX192OGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMTZfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXBpMTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMTZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcGkxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1OF9lcGkzMihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192MTZxdSlfX0EsIF9fdjE2c2kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHU4X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2N2dGVwdThfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdThfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9jdnRlcHU4X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1OF9lcGk2NChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyksIF9fdjhkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdThfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHU4X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXB1OF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1MzJfZXBpNjQoX19tMjU2aSBfX1gpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzdSlfX1gsIF9fdjhkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTMyX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19YKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2N2dGVwdTMyX2VwaTY0KF9fWCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTMyX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX1gpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXB1MzJfZXBpNjQoX19YKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTE2X2VwaTMyKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNmh1KV9fQSwgX192MTZzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTE2X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY3Z0ZXB1MTZfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MTZfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2N2dGVwdTE2X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHUxNl9lcGk2NChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGh1KV9fQSwgX192OGRpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1MTZfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfY3Z0ZXB1MTZfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MTZfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jdnRlcHUxNl9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcm9ydl9lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb3J2ZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JvcnZfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3JvcnZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JvcnZfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9ydl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JvcnZfZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wcm9ydnE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcm9ydl9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb3J2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yb3J2X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcm9ydl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKCgojZGVmaW5lIF9tbTUxMl9jbXBfZXBpMzJfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wZDUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW01MTJfY21wX2VwdTMyX21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX3VjbXBkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tNTEyX2NtcF9lcGk2NF9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHE1MTJfbWFzaygoX192OGRpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9jbXBfZXB1NjRfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wcTUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfZXBpMzJfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wZDUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKG0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX2VwdTMyX21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX3VjbXBkNTEyX21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2NtcF9lcGk2NF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHE1MTJfbWFzaygoX192OGRpKShfX201MTJpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfZXB1NjRfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wcTUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tNTEyX3JvbF9lcGkzMihhLCBiKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb2xkNTEyKChfX3YxNnNpKShfX201MTJpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yb2xfZXBpMzIoVywgVSwgYSwgYikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9sX2VwaTMyKChhKSwgKGIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm9sX2VwaTMyKFUsIGEsIGIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3JvbF9lcGkzMigoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9yb2xfZXBpNjQoYSwgYikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wcm9scTUxMigoX192OGRpKShfX201MTJpKShhKSwgKGludCkoYikpKQoKI2RlZmluZSBfbW01MTJfbWFza19yb2xfZXBpNjQoVywgVSwgYSwgYikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3JvbF9lcGk2NCgoYSksIChiKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcm9sX2VwaTY0KFUsIGEsIGIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb2xfZXBpNjQoKGEpLCAoYikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcm9sdl9lcGkzMiAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb2x2ZDUxMigoX192MTZzaSlfX0EsIChfX3YxNnNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JvbHZfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3JvbHZfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JvbHZfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9sdl9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JvbHZfZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wcm9sdnE1MTIoKF9fdjhkaSlfX0EsIChfX3Y4ZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcm9sdl9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9yb2x2X2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9yb2x2X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcm9sdl9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKI2RlZmluZSBfbW01MTJfcm9yX2VwaTMyKEEsIEIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHJvcmQ1MTIoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShCKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Jvcl9lcGkzMihXLCBVLCBBLCBCKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9yb3JfZXBpMzIoKEEpLCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3JfZXBpMzIoVSwgQSwgQikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcm9yX2VwaTMyKChBKSwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3Jvcl9lcGk2NChBLCBCKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Byb3JxNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCAoaW50KShCKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Jvcl9lcGk2NChXLCBVLCBBLCBCKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcm9yX2VwaTY0KChBKSwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3JfZXBpNjQoVSwgQSwgQikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Jvcl9lcGk2NCgoQSksIChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zbGxpX2VwaTMyKF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGxkaTUxMigoX192MTZzaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbGlfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NsbGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxpX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zbGxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbGlfZXBpNjQoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHFpNTEyKChfX3Y4ZGkpX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zbGxpX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NsbGlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2xsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmxpX2VwaTMyKF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmxkaTUxMigoX192MTZzaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybGlfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NybGlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmxpX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmxpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybGlfZXBpNjQoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybHFpNTEyKChfX3Y4ZGkpX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmxpX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JsaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybGlfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmxpX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZF9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfbW92ZHFhMzJsb2FkNTEyX21hc2sgKChjb25zdCBfX3YxNnNpICopIF9fUCwKICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9sb2FkX2VwaTMyIChfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX21vdmRxYTMybG9hZDUxMl9tYXNrICgoY29uc3QgX192MTZzaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjE2c2kpCiAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3RvcmVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZkcWEzMnN0b3JlNTEyX21hc2sgKChfX3YxNnNpICopIF9fUCwgKF9fdjE2c2kpIF9fQSwKICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdl9lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMiAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfZXBpMzIgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMiAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92X2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMiAoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbG9hZF9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NGxvYWQ1MTJfbWFzayAoKGNvbnN0IF9fdjhkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2xvYWRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NGxvYWQ1MTJfbWFzayAoKGNvbnN0IF9fdjhkaSAqKSBfX1AsCiAgICAgICAgICAgICAgKF9fdjhkaSkKICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N0b3JlX2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9tb3ZkcWE2NHN0b3JlNTEyX21hc2sgKChfX3Y4ZGkgKikgX19QLCAoX192OGRpKSBfX0EsCiAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tb3ZlZHVwX3BkIChfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGRmKV9fQSwgKF9fdjhkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDIsIDIsIDQsIDQsIDYsIDYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tb3ZlZHVwX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX21vdmVkdXBfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X21vdmVkdXBfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9tb3ZlZHVwX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9maXh1cGltbV9yb3VuZF9wZChBLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19maXh1cGltbV9yb3VuZF9wZChBLCBVLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2ZpeHVwaW1tX3BkKEEsIEIsIEMsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19maXh1cGltbV9wZChBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9maXh1cGltbV9yb3VuZF9wZChVLCBBLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZml4dXBpbW1wZDUxMl9tYXNreigoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZml4dXBpbW1fcGQoVSwgQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcGQ1MTJfbWFza3ooKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9maXh1cGltbV9yb3VuZF9wcyhBLCBCLCBDLCBpbW0sIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZml4dXBpbW1fcm91bmRfcHMoQSwgVSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZml4dXBpbW1fcHMoQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZml4dXBpbW1wczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZpeHVwaW1tX3BzKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZpeHVwaW1tX3JvdW5kX3BzKFUsIEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tcHM1MTJfbWFza3ooKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9maXh1cGltbV9wcyhVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9maXh1cGltbXBzNTEyX21hc2t6KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX2ZpeHVwaW1tX3JvdW5kX3NkKEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZpeHVwaW1tX3JvdW5kX3NkKEEsIFUsIEIsIEMsIGltbSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZml4dXBpbW1fc2QoQSwgQiwgQywgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2ZpeHVwaW1tX3NkKEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3JvdW5kX3NkKFUsIEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNkX21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3NkKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNkX21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fZml4dXBpbW1fcm91bmRfc3MoQSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZml4dXBpbW1zc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZml4dXBpbW1fcm91bmRfc3MoQSwgVSwgQiwgQywgaW1tLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZml4dXBpbW1zc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9maXh1cGltbV9zcyhBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19maXh1cGltbV9zcyhBLCBVLCBCLCBDLCBpbW0pIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9maXh1cGltbXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3JvdW5kX3NzKFUsIEEsIEIsIEMsIGltbSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc3NfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2ZpeHVwaW1tX3NzKFUsIEEsIEIsIEMsIGltbSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2ZpeHVwaW1tc3NfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9nZXRleHBfcm91bmRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRleHBzZDEyOF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZ2V0ZXhwX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHNkMTI4X3JvdW5kX21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MmRmKSBfX0IsIChfX3YyZGYpIF9tbV9zZXR6ZXJvX3BkKCksIChfX21tYXNrOCkgLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2dldGV4cF9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHNkMTI4X3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAoX192MmRmKSBfX0IsCiAgICAgICAgICAoX192MmRmKSBfX1csCiAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2tfZ2V0ZXhwX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0ZXhwc2QxMjhfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZ2V0ZXhwX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBzZDEyOF9yb3VuZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2dldGV4cF9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNkMTI4X3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2dldGV4cF9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0ZXhwc3MxMjhfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZ2V0ZXhwX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHNzMTI4X3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwgKF9fdjRzZikgIF9tbV9zZXR6ZXJvX3BzKCksIChfX21tYXNrOCkgLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZ2V0ZXhwX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9nZXRleHBzczEyOF9yb3VuZF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2tfZ2V0ZXhwX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRleHBzczEyOF9yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2dldGV4cF9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwc3MxMjhfcm91bmRfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgKF9fdjRzZikgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2dldGV4cF9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0ZXhwc3MxMjhfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2dldG1hbnRfcm91bmRfc2QoQSwgQiwgQywgRCwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9zZChBLCBCLCBDLCBEKSAgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3NkKFcsIFUsIEEsIEIsIEMsIEQpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0bWFudHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfZ2V0bWFudF9yb3VuZF9zZChXLCBVLCBBLCBCLCBDLCBELCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3NkKFUsIEEsIEIsIEMsIEQpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0bWFudHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrel9nZXRtYW50X3JvdW5kX3NkKFUsIEEsIEIsIEMsIEQsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2V0bWFudHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9nZXRtYW50X3JvdW5kX3NzKEEsIEIsIEMsIEQsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fZ2V0bWFudF9zcyhBLCBCLCBDLCBEKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3NzKFcsIFUsIEEsIEIsIEMsIEQpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nZXRtYW50c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoRCk8PDIpIHwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfZ2V0bWFudF9yb3VuZF9zcyhXLCBVLCBBLCBCLCBDLCBELCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9zcyhVLCBBLCBCLCBDLCBEKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEQpPDwyKSB8IChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X2dldG1hbnRfcm91bmRfc3MoVSwgQSwgQiwgQywgRCwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChEKTw8MikgfCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa21vdiAoX19tbWFzazE2IF9fQSkKewogIHJldHVybiAgX19BOwp9CgojZGVmaW5lIF9tbV9jb21pX3JvdW5kX3NkKEEsIEIsIFAsIFIpIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92Y29taXNkKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUCksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2NvbWlfcm91bmRfc3MoQSwgQiwgUCwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3Zjb21pc3MoKF9fdjRzZikoX19tMTI4KShBKSwgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUCksIChpbnQpKFIpKSkKCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX3NpNjQoQSwgUikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCiNlbmRpZgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbF9lcGkzMihfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbGQ1MTIoKF9fdjE2c2kpIF9fQSwgKF9fdjRzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zbGxfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NsbF9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGxfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2xsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zbGxfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGxxNTEyKChfX3Y4ZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2xsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc2xsX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zbGxfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NsbHZfZXBpMzIoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzbGx2MTZzaSgoX192MTZzaSlfX1gsIChfX3YxNnNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NsbHZfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGx2X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zbGx2X2VwaTMyKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2xsdl9lcGk2NChfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNsbHY4ZGkoKF9fdjhkaSlfX1gsIChfX3Y4ZGkpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2xsdl9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zbGx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zbGx2X2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2xsdl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYV9lcGkzMihfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYWQ1MTIoKF9fdjE2c2kpIF9fQSwgKF9fdjRzaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmFfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NyYV9lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3JhX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmFfZXBpNjQoX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmFxNTEyKChfX3Y4ZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYV9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NyYV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NyYV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3Jhdl9lcGkzMihfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYXYxNnNpKChfX3YxNnNpKV9fWCwgKF9fdjE2c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3Jhdl9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NyYXZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYXZfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NyYXZfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmF2X2VwaTY0KF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JhdjhkaSgoX192OGRpKV9fWCwgKF9fdjhkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmF2X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NyYXZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NyYXZfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmF2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3JsX2VwaTMyKF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JsZDUxMigoX192MTZzaSkgX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NybF9lcGkzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3JsX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybF9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmxfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybF9lcGk2NChfX201MTJpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNybHE1MTIoKF9fdjhkaSlfX0EsIChfX3YyZGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc3JsX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JsX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmx2X2VwaTMyKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JsdjE2c2koKF9fdjE2c2kpX19YLCAoX192MTZzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmx2X2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3Jsdl9lcGkzMihfX21tYXNrMTYgX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc3Jsdl9lcGkzMihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NybHZfZXBpNjQgKF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wc3JsdjhkaSgoX192OGRpKV9fWCwgKF9fdjhkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmx2X2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NybHZfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3NybHZfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zcmx2X2VwaTY0KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl90ZXJuYXJ5bG9naWNfZXBpMzIoQSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza190ZXJuYXJ5bG9naWNfZXBpMzIoQSwgVSwgQiwgQywgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3B0ZXJubG9nZDUxMl9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEMpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Rlcm5hcnlsb2dpY19lcGkzMihVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dkNTEyX21hc2t6KChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMTYpKFUpKSkKCiNkZWZpbmUgX21tNTEyX3Rlcm5hcnlsb2dpY19lcGk2NChBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dxNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfdGVybmFyeWxvZ2ljX2VwaTY0KEEsIFUsIEIsIEMsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9wdGVybmxvZ3E1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShDKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Rlcm5hcnlsb2dpY19lcGk2NChVLCBBLCBCLCBDLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHRlcm5sb2dxNTEyX21hc2t6KChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoQyksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2RfaTY0KEEsIFIpIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c2Qyc2k2NCgoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNkX3NpMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF9pMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaTMyKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF91MzIoQSwgUikgXAogICgodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJ1c2kzMigoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZF91MzIgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCkgX19idWlsdGluX2lhMzJfdmN2dHNkMnVzaTMyICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF91NjQoQSwgUikgXAogICgodW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJ1c2k2NCgoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzZF91NjQgKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJ1c2k2NCAoKF9fdjJkZikKICAgICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNzX3NpMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaTMyKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNzX2kzMihBLCBSKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNzMnNpMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3Nfc2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNzMnNpNjQoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3NfaTY0KEEsIFIpIFwKICAoKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c3Myc2k2NCgoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3NfdTMyKEEsIFIpIFwKICAoKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl92Y3Z0c3MydXNpMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRzc191MzIgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKHVuc2lnbmVkKSBfX2J1aWx0aW5faWEzMl92Y3Z0c3MydXNpMzIgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNzX3U2NChBLCBSKSBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNzMnVzaTY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c3NfdTY0IChfX20xMjggX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fYnVpbHRpbl9pYTMyX3ZjdnRzczJ1c2k2NCAoKF9fdjRzZikKICAgICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzZF9pMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2Qyc2kzMigoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNkX3NpMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2Qyc2kzMigoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHNkX2kzMiAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKGludCkgX19idWlsdGluX2lhMzJfdmN2dHRzZDJzaTMyICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNkX3NpNjQoQSwgUikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2Qyc2k2NCgoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNkX2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzZDJzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2RfaTY0IChfX20xMjhkIF9fQSkKewogIHJldHVybiAobG9uZyBsb25nKSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnNpNjQgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNkX3UzMihBLCBSKSBcCiAgKCh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzZDJ1c2kzMigoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2RfdTMyIChfX20xMjhkIF9fQSkKewogIHJldHVybiAodW5zaWduZWQpIF9fYnVpbHRpbl9pYTMyX3ZjdnR0c2QydXNpMzIgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc2RfdTY0KEEsIFIpIFwKICAoKHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnVzaTY0KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2RfdTY0IChfX20xMjhkIF9fQSkKewogIHJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNkMnVzaTY0ICgoX192MmRmKQogICAgICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc3NfaTMyKEEsIFIpIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNzMnNpMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNzX3NpMzIoQSwgUikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c3Myc2kzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c3NfaTMyIChfX20xMjggX19BKQp7CiAgcmV0dXJuIChpbnQpIF9fYnVpbHRpbl9pYTMyX3ZjdnR0c3Myc2kzMiAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzc19pNjQoQSwgUikgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnR0c3Myc2k2NCgoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jdnR0X3JvdW5kc3Nfc2k2NChBLCBSKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzczJzaTY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRzc19pNjQgKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKGxvbmcgbG9uZykgX19idWlsdGluX2lhMzJfdmN2dHRzczJzaTY0ICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzc191MzIoQSwgUikgXAogICgodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnR0c3MydXNpMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c3NfdTMyIChfX20xMjggX19BKQp7CiAgcmV0dXJuICh1bnNpZ25lZCkgX19idWlsdGluX2lhMzJfdmN2dHRzczJ1c2kzMiAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzc191NjQoQSwgUikgXAogICgodW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnR0c3MydXNpNjQoKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHNzX3U2NCAoX19tMTI4IF9fQSkKewogIHJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKSBfX2J1aWx0aW5faWEzMl92Y3Z0dHNzMnVzaTY0ICgoX192NHNmKQogICAgICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KI2VuZGlmCgojZGVmaW5lIF9tbTUxMl9wZXJtdXRlX3BkKFgsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdnBlcm1pbHBkNTEyKChfX3Y4ZGYpKF9fbTUxMmQpKFgpLCAoaW50KShDKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Blcm11dGVfcGQoVywgVSwgWCwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZV9wZCgoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Blcm11dGVfcGQoVSwgWCwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZV9wZCgoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9wZXJtdXRlX3BzKFgsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92cGVybWlscHM1MTIoKF9fdjE2c2YpKF9fbTUxMikoWCksIChpbnQpKEMpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcGVybXV0ZV9wcyhXLCBVLCBYLCBDKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9wZXJtdXRlX3BzKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9wZXJtdXRlX3BzKFUsIFgsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGVfcHMoKFgpLCAoQykpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV2YXJfcGQoX19tNTEyZCBfX0EsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWx2YXJwZDUxMigoX192OGRmKV9fQSwgKF9fdjhkaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRldmFyX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJpIF9fQykKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRldmFyX3BkKF9fQSwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRldmFyX3BkKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV2YXJfcGQoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV2YXJfcHMoX19tNTEyIF9fQSwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl92cGVybWlsdmFycHM1MTIoKF9fdjE2c2YpX19BLCAoX192MTZzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV2YXJfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyaSBfX0MpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZXZhcl9wcyhfX0EsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRldmFyX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMmkgX19DKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGV2YXJfcHMoX19BLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXgydmFyX3BkKF9fbTUxMmQgX19BLCBfX201MTJpIF9fSSwgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcnBkNTEyKChfX3Y4ZGYpX19BLCAoX192OGRpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX3BkKF9fbTUxMmQgX19BLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19JLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfcGVybXV0ZXgydmFyX3BkKF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazJfcGVybXV0ZXgydmFyX3BkKF9fbTUxMmQgX19BLCBfX201MTJpIF9fSSwgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRleDJ2YXJfcGQoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKV9fSSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleDJ2YXJfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyaSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyZCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4MnZhcl9wZChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleDJ2YXJfcHMoX19tNTEyIF9fQSwgX19tNTEyaSBfX0ksIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl92cGVybWkydmFycHM1MTIoKF9fdjE2c2YpX19BLCAoX192MTZzaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4MnZhcl9wcyhfX201MTIgX19BLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fSSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2syX3Blcm11dGV4MnZhcl9wcyhfX201MTIgX19BLCBfX201MTJpIF9fSSwgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQikKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9wZXJtdXRleDJ2YXJfcHMoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXgydmFyX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMmkgX19JLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGV4MnZhcl9wcyhfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGRfZXB1MzIoQSwgUikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBkX2VwdTMyKFcsIFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBkX2VwdTMyKFUsIEEsIFIpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGRfZXB1MzIgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydWRxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhzaSkKICAgICAgICAgICAgICAgICAgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBkX2VwdTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVkcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4c2kpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cGRfZXB1MzIgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1ZHE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OHNpKQogICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfcm91bmRfc2QoQSwgQiwgaW1tLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yb3VuZHNjYWxlX3NkKEEsIEIsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcm91bmRzY2FsZV9zZChXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfcm91bmRfc2QoVywgVSwgQSwgQiwgSSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfc2QoVSwgQSwgQiwgSSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9yb3VuZF9zZChVLCBBLCBCLCBJLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfcm91bmRfc3MoQSwgQiwgaW1tLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfc3MoQSwgQiwgaW1tKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfc3MoVywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3JvdW5kX3NzKFcsIFUsIEEsIEIsIEksIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9zcyhVLCBBLCBCLCBJKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2t6X3JvdW5kc2NhbGVfcm91bmRfc3MoVSwgQSwgQiwgSSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3NjYWxlZl9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NjYWxlZl9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2NhbGVmX3JvdW5kX3BkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2NhbGVmcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NjYWxlZl9wZCAoX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192OGRmKQogICAgICAgICAgICAgICAgX21tNTEyX3VuZGVmaW5lZF9wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zY2FsZWZfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc2NhbGVmX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfc2NhbGVmcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjhkZikKICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9zY2FsZWZfcm91bmRfcHMoQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2NhbGVmX3JvdW5kX3BzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zY2FsZWZwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zY2FsZWZfcm91bmRfcHMoVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2NhbGVmX3BzIChfX201MTIgX19BLCBfX201MTIgX19CKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnBzNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX0IsCiAgICAgICAgICAgICAgIChfX3YxNnNmKQogICAgICAgICAgICAgICBfbW01MTJfdW5kZWZpbmVkX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSwKICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zY2FsZWZfcHMgKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2NhbGVmcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zY2FsZWZfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2NhbGVmcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fQiwKICAgICAgICAgICAgICAgKF9fdjE2c2YpCiAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BzICgpLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX3NjYWxlZl9yb3VuZF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NjYWxlZl9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZzZF9yb3VuZF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjJkZikoIF9fQiksIChfX3YyZGYpIF9tbV9zZXR6ZXJvX3BkKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zY2FsZWZfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogcmV0dXJuIChfX20xMjhkKSBfX2J1aWx0aW5faWEzMl9zY2FsZWZzZF9yb3VuZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19zY2FsZWZfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zY2FsZWZzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zY2FsZWZfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2sgKCAoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjJkZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjJkZikgX21tX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X3NjYWxlZl9yb3VuZF9zZChVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3NjYWxlZl9yb3VuZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2NhbGVmc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2NhbGVmX3NzIChfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNzX3JvdW5kX21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgIChfX3Y0c2YpKCBfX0IpLCAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2NhbGVmX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zY2FsZWZzc19yb3VuZF9tYXNrICggKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrX3NjYWxlZl9yb3VuZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2NhbGVmc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zY2FsZWZfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NjYWxlZnNzX3JvdW5kX21hc2sgKCAoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CLAogICAgICAgICAgICAgICAgKF9fdjRzZikgX21tX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X3NjYWxlZl9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc2NhbGVmc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zcmFpX2VwaTMyKF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3BzcmFkaTUxMigoX192MTZzaSlfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3NyYWlfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NyYWlfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFpX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLAogICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zcmFpX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NyYWlfZXBpNjQoX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNyYXFpNTEyKChfX3Y4ZGkpX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcmFpX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NyYWlfZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcmFpX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc3JhaV9lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX3NodWZmbGVfZjMyeDQoQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2h1Zl9mMzJ4NCgoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHVmZmxlX2YzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2h1ZmZsZV9mMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3NodWZmbGVfZjMyeDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zaHVmZmxlX2YzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlX2Y2NHgyKEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zaHVmX2Y2NHgyKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHVmZmxlX2Y2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2h1ZmZsZV9mNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX2Y2NHgyKFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2h1ZmZsZV9mNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZV9pMzJ4NChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2h1Zl9pMzJ4NCgoX192MTZzaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHVmZmxlX2kzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2h1ZmZsZV9pMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX2kzMng0KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2h1ZmZsZV9pMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZV9pNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2h1Zl9pNjR4MigoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc2h1ZmZsZV9pNjR4MihXLCBVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHVmZmxlX2k2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2h1ZmZsZV9pNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zaHVmZmxlX2k2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX3NodWZmbGVfcGQoQSwgQiwgTSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zaHVmcGQ1MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShNKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfcGQoVywgVSwgQSwgQiwgTSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2h1ZmZsZV9wZCgoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2h1ZmZsZV9wZChVLCBBLCBCLCBNKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zaHVmZmxlX3BkKChBKSwgKEIpLCAoTSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfc2h1ZmZsZV9wcyhBLCBCLCBNKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2h1ZnBzNTEyKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShNKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NodWZmbGVfcHMoVywgVSwgQSwgQiwgTSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2h1ZmZsZV9wcygoQSksIChCKSwgKE0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX3BzKFUsIEEsIEIsIE0pIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NodWZmbGVfcHMoKEEpLCAoQiksIChNKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSkpCgojZGVmaW5lIF9tbV9zcXJ0X3JvdW5kX3NkKEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc3FydHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3FydF9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NxcnRzZF9yb3VuZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19zcXJ0X3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc3FydHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NxcnRfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX3NxcnRzZF9yb3VuZF9tYXNrICggKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3YyZGYpIF9fQiwKICAgICAgICAgICAgICAgIChfX3YyZGYpIF9tbV9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9zcXJ0X3JvdW5kX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc3FydHNkX3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3NxcnRfcm91bmRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NxcnRzc19yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NxcnRfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX3NxcnRzc19yb3VuZF9tYXNrICggKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fQiwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza19zcXJ0X3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zcXJ0c3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zcXJ0X3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9zcXJ0c3Nfcm91bmRfbWFzayAoIChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192NHNmKSBfX0IsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfc3FydF9yb3VuZF9zcyhVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfc3FydHNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RfZjMyeDQoX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCAwLCAxLCAyLCAzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9mMzJ4NChfX201MTIgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Jyb2FkY2FzdF9mMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2YzMng0KF9fbW1hc2sxNiBfX00sIF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYnJvYWRjYXN0X2YzMng0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9mNjR4NChfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRmKV9fQSwgKF9fdjRkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RfZjY0eDQoX19tNTEyZCBfX08sIF9fbW1hc2s4IF9fTSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYnJvYWRjYXN0X2Y2NHg0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2Y2NHg0KF9fbW1hc2s4IF9fTSwgX19tMjU2ZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYnJvYWRjYXN0X2Y2NHg0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Jyb2FkY2FzdF9pMzJ4NChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fQSwgKF9fdjRzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RfaTMyeDQoX19tNTEyaSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9pMzJ4NChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9icm9hZGNhc3RfaTMyeDQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2k2NHg0KF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0ZGkpX19BLCAoX192NGRpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgMCwgMSwgMiwgMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9pNjR4NChfX201MTJpIF9fTywgX19tbWFzazggX19NLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX2Jyb2FkY2FzdF9pNjR4NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9pNjR4NChfX21tYXNrOCBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYnJvYWRjYXN0X2k2NHg0KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0c2RfcGQgKF9fbTUxMmQgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfYnJvYWRjYXN0c2RfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RzZF9wZCAoX19tbWFzazggX19NLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX21tNTEyX2Jyb2FkY2FzdHNkX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3Rzc19wcyAoX19tNTEyIF9fTywgX19tbWFzazE2IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfYnJvYWRjYXN0c3NfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdHNzX3BzIChfX21tYXNrMTYgX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9tbTUxMl9icm9hZGNhc3Rzc19wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpMzJfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGI1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0c2VwaTMyX2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c2RiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTMyX3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzZGI1MTJtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MTZzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0c2VwaTMyX2VwaTE2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpMzJfZXBpMTYgKF9fbTI1NmkgX19PLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0c2VwaTMyX2VwaTE2IChfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c2R3NTEybWVtX21hc2sgKChfX3YxNmhpKikgX19QLCAoX192MTZzaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0c2VwaTY0X2VwaTggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0c2VwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWI1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWI1MTJtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzZXBpNjRfZXBpMzIgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92c3FkNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGk2NF9lcGkzMiAoX19tMjU2aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRzZXBpNjRfZXBpMzIgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0c2VwaTY0X3N0b3JldV9lcGkzMiAodm9pZCAqX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnNxZDUxMm1lbV9tYXNrICgoX192OHNpICopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0c2VwaTY0X2VwaTE2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnNxdzUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRzZXBpNjRfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0c2VwaTY0X2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3F3NTEybWVtX21hc2sgKChfX3Y4aGkgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR1c2VwaTMyX2VwaTggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpMzJfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR1c2VwaTMyX2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGkzMl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNkYjUxMm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3YxNnNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR1c2VwaTMyX2VwaTE2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfdW5kZWZpbmVkX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTMyX2VwaTE2IChfX20yNTZpIF9fTywgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c2R3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZoaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHVzZXBpMzJfZXBpMTYgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzUxMl9tYXNrICgoX192MTZzaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGkzMl9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXNkdzUxMm1lbV9tYXNrICgoX192MTZoaSopIF9fUCwgKF9fdjE2c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHVzZXBpNjRfZXBpOCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fdW5kZWZpbmVkX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHVzZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3FiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dXNlcGk2NF9lcGk4IChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXNxYjUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcWI1MTJtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OGRpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR1c2VwaTY0X2VwaTMyIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3VuZGVmaW5lZF9zaTI1NiAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTY0X2VwaTMyIChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dXNlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnVzcWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhzaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR1c2VwaTY0X3N0b3JldV9lcGkzMiAodm9pZCogX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnVzcWQ1MTJtZW1fbWFzayAoKF9fdjhzaSopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dXNlcGk2NF9lcGkxNiAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGk2NF9lcGkxNiAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHVzZXBpNjRfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dXNlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z1c3F3NTEybWVtX21hc2sgKChfX3Y4aGkqKSBfX1AsIChfX3Y4ZGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX2VwaTggKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGI1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTMyX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdmRiNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTMyX2VwaTggKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92ZGI1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjggKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdmRiNTEybWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjE2c2kpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX2VwaTE2IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdmR3NTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGkzMl9lcGkxNiAoX19tMjU2aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZoaSkgX19PLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfZXBpMTYgKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92ZHc1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMzJfc3RvcmV1X2VwaTE2ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZkdzUxMm1lbV9tYXNrICgoX192MTZoaSAqKSBfX1AsIChfX3YxNnNpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk2NF9lcGk4IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnFiNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3VuZGVmaW5lZF9zaTEyOCAoKSwKICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpNjRfZXBpOCAoX19tMTI4aSBfX08sIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxYjUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTY0X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3ZxYjUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrOCBfX00sIF9fbTUxMmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfcG1vdnFiNTEybWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpNjRfZXBpMzIgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wbW92cWQ1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4c2kpIF9tbTI1Nl91bmRlZmluZWRfc2kyNTYgKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X2VwaTMyIChfX20yNTZpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnFkNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OHNpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk2NF9lcGkzMiAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfcG1vdnFkNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OHNpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpMzIgKHZvaWQqIF9fUCwgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxZDUxMm1lbV9tYXNrICgoX192OHNpICopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpNjRfZXBpMTYgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92cXc1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV91bmRlZmluZWRfc2kxMjggKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTY0X2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnF3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OGhpKSBfX08sIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcGk2NF9lcGkxNiAoX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnF3NTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazggX19NLCBfX201MTJpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3ZxdzUxMm1lbV9tYXNrICgoX192OGhpICopIF9fUCwgKF9fdjhkaSkgX19BLCBfX00pOwp9CgojZGVmaW5lIF9tbTUxMl9leHRyYWN0aTMyeDRfZXBpMzIoQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4NF9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0aTMyeDRfZXBpMzIoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4NF9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RpMzJ4NF9lcGkzMihVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGkzMng0X21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2V4dHJhY3RpNjR4NF9lcGk2NChBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHg0X21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfdW5kZWZpbmVkX3NpMjU2KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGk2NHg0X2VwaTY0KFcsIFUsIEEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDRfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RpNjR4NF9lcGk2NChVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHg0X21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0ZjY0eDQoQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2luc2VydGY2NHg0KChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0ZjY0eDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfaW5zZXJ0ZjY0eDQoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2luc2VydGY2NHg0KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2luc2VydGY2NHg0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0aTY0eDQoQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2luc2VydGk2NHg0KChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0aTY0eDQoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9pbnNlcnRpNjR4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfaW5zZXJ0aTY0eDQoVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9pbnNlcnRpNjR4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX2luc2VydGYzMng0KEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2luc2VydGYzMng0KChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGYzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2luc2VydGYzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2luc2VydGYzMng0KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2luc2VydGYzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0aTMyeDQoQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2luc2VydGkzMng0KChfX3YxNnNpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGkzMng0KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2luc2VydGkzMng0KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRpMzJ4NChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9pbnNlcnRpMzJ4NCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX2dldG1hbnRfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldG1hbnRfcm91bmRfcGQoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0bWFudF9yb3VuZF9wZChVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZ2V0bWFudF9wZChBLCBCLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldG1hbnRfcGQoVywgVSwgQSwgQiwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0bWFudF9wZChVLCBBLCBCLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpIHwgKEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfZ2V0bWFudF9yb3VuZF9wcyhBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldG1hbnRfcm91bmRfcHMoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8MikgfCAoQikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0bWFudF9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0bWFudHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KSgoKEMpPDwyKSB8IChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2dldG1hbnRfcHMoQSwgQiwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8Mil8KEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19nZXRtYW50X3BzKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nZXRtYW50cHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKCgoQyk8PDIpfChCKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dldG1hbnRfcHMoVSwgQSwgQiwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoKChDKTw8Mil8KEIpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9nZXRleHBfcm91bmRfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nZXRleHBwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0ZXhwX3JvdW5kX3BkKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0ZXhwX3JvdW5kX3BkKFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQ1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9nZXRleHBfcGQgKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwZDUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfdW5kZWZpbmVkX3BkICgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2dldGV4cF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9fYnVpbHRpbl9pYTMyX2dldGV4cHBkNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGYpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2dldGV4cF9wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfZ2V0ZXhwcGQ1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX21tNTEyX3NldHplcm9fcGQgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2dldGV4cF9yb3VuZF9wcyhBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0ZXhwcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldGV4cF9yb3VuZF9wcyhXLCBVLCBBLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfZ2V0ZXhwcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRleHBfcm91bmRfcHMoVSwgQSwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9nZXRleHBfcHMgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfZ2V0ZXhwcHM1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2c2YpIF9tbTUxMl91bmRlZmluZWRfcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2dldGV4cF9wcyAoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2dldGV4cF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9nZXRleHBwczUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3NldHplcm9fcHMgKCksCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfaTY0Z2F0aGVyX3BzKGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjE2c2YoKF9fdjhzZilfbW0yNTZfdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTY0Z2F0aGVyX3BzKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2MTZzZigoX192OHNmKShfX20yNTYpKHYxX29sZCksXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtYXNrKSwgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX2k2NGdhdGhlcl9lcGkzMihpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2MTZzaSgoX192OHNpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRnYXRoZXJfZXBpMzIodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZGl2MTZzaSgoX192OHNpKShfX20yNTZpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfaTY0Z2F0aGVyX3BkKGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9nYXRoZXJkaXY4ZGYoKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTY0Z2F0aGVyX3BkKHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjhkZigoX192OGRmKShfX201MTJkKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfaTY0Z2F0aGVyX2VwaTY0KGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkaXY4ZGkoKF9fdjhkaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTY0Z2F0aGVyX2VwaTY0KHYxX29sZCwgbWFzaywgaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRpdjhkaSgoX192OGRpKShfX201MTJpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfaTMyZ2F0aGVyX3BzKGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjE2c2YoKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMikoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJnYXRoZXJfcHModjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXYxNnNmKChfX3YxNnNmKShfX201MTIpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKG1hc2spLCAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfaTMyZ2F0aGVyX2VwaTMyKGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXYxNnNpKChfX3YxNnNpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmdhdGhlcl9lcGkzMih2MV9vbGQsIG1hc2ssIGluZGV4LCBhZGRyLCBzY2FsZSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9nYXRoZXJzaXYxNnNpKChfX3YxNnNpKShfX201MTJpKSh2MV9vbGQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pMzJnYXRoZXJfcGQoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjhkZigoX192OGRmKV9tbTUxMl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJnYXRoZXJfcGQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2OGRmKChfX3Y4ZGYpKF9fbTUxMmQpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pMzJnYXRoZXJfZXBpNjQoaW5kZXgsIGFkZHIsIHNjYWxlKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnNpdjhkaSgoX192OGRpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgY29uc3QgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShzY2FsZSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19pMzJnYXRoZXJfZXBpNjQodjFfb2xkLCBtYXNrLCBpbmRleCwgYWRkciwgc2NhbGUpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfZ2F0aGVyc2l2OGRpKChfX3Y4ZGkpKF9fbTUxMmkpKHYxX29sZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkobWFzayksIChpbnQpKHNjYWxlKSkpCgojZGVmaW5lIF9tbTUxMl9pNjRzY2F0dGVyX3BzKGFkZHIsIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MTZzZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTY0c2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjE2c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCkobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTY0c2NhdHRlcl9lcGkzMihhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjE2c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRzY2F0dGVyX2VwaTMyKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2MTZzaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTY0c2NhdHRlcl9wZChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjhkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRzY2F0dGVyX3BkKGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OGRmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTY0c2NhdHRlcl9lcGk2NChhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcmRpdjhkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfbWFza19pNjRzY2F0dGVyX2VwaTY0KGFkZHIsIG1hc2ssIGluZGV4LCB2MSwgc2NhbGUpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVyZGl2OGRpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazgpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKHYxKSwgKGludCkoc2NhbGUpKQoKI2RlZmluZSBfbW01MTJfaTMyc2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjE2c2YoKHZvaWQgKikoYWRkciksIChfX21tYXNrMTYpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikodjEpLCAoaW50KShzY2FsZSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMnNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXYxNnNmKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazE2KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX2kzMnNjYXR0ZXJfZXBpMzIoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXYxNnNpKCh2b2lkICopKGFkZHIpLCAoX19tbWFzazE2KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9lcGkzMihhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjE2c2koKHZvaWQgKikoYWRkciksIChfX21tYXNrMTYpKG1hc2spLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX2kzMnNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY4ZGYoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9wZChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhkZigodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX2kzMnNjYXR0ZXJfZXBpNjQoYWRkciwgaW5kZXgsIHYxLCBzY2FsZSkgXAogIF9fYnVpbHRpbl9pYTMyX3NjYXR0ZXJzaXY4ZGkoKHZvaWQgKikoYWRkciksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKSh2MSksIChpbnQpKHNjYWxlKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9lcGk2NChhZGRyLCBtYXNrLCBpbmRleCwgdjEsIHNjYWxlKSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnNpdjhkaSgodm9pZCAqKShhZGRyKSwgKF9fbW1hc2s4KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKSh2MSksIChpbnQpKHNjYWxlKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1hZGRfc3MgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbWFkZF9yb3VuZF9zcyhBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZtYWRkX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNreigoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm1hZGRfcm91bmRfc3MoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNreigoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShDKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9zcyAoX19tMTI4IF9fVywgX19tMTI4IF9fWCwgX19tMTI4IF9fWSwgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrMygoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1hZGRfcm91bmRfc3MoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrMygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Ztc3ViX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2soKF9fdjRzZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2Ztc3ViX3JvdW5kX3NzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Ztc3ViX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1zdWJfc3MgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbXN1Yl9yb3VuZF9zcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShDKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1Yl9zcyAoX19tMTI4IF9fVywgX19tMTI4IF9fWCwgX19tMTI4IF9fWSwgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbXN1YnNzM19tYXNrMygoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1zdWJfcm91bmRfc3MoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnNzM19tYXNrMygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubWFkZF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbm1hZGRfcm91bmRfc3MoQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm5tYWRkX3JvdW5kX3NzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tYWRkX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm5tYWRkX3JvdW5kX3NzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFza3ooKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEMpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2szX2ZubWFkZF9zcyAoX19tMTI4IF9fVywgX19tMTI4IF9fWCwgX19tMTI4IF9fWSwgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrMygoX192NHNmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2szX2ZubWFkZF9yb3VuZF9zcyhXLCBYLCBZLCBVLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2szKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubXN1Yl9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm5tc3ViX3JvdW5kX3NzKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczNfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbm1zdWJfcm91bmRfc3MoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzM19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192NHNmKShfX20xMjgpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tc3ViX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZubXN1Yl9yb3VuZF9zcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzX21hc2t6KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpKF9fbTEyOCkoQyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tc3ViX3NzIChfX20xMjggX19XLCBfX20xMjggX19YLCBfX20xMjggX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtc3Vic3MzX21hc2szKChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y0c2YpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tc3ViX3JvdW5kX3NzKFcsIFgsIFksIFUsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1zdWJzczNfbWFzazMoKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZtYWRkX3NkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1hZGRfcm91bmRfc2QoQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShDKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm1hZGRfcm91bmRfc2QoVywgVSwgQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZtYWRkX3JvdW5kX3NkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9zZCAoX19tMTI4ZCBfX1csIF9fbTEyOGQgX19YLCBfX20xMjhkIF9fWSwgX19tbWFzazggX19VKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrMygoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1hZGRfcm91bmRfc2QoVywgWCwgWSwgVSwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzazMoKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm1zdWJfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1zdWJfcm91bmRfc2QoQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Ztc3ViX3JvdW5kX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2soKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEIpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXN1Yl9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNreigoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2Ztc3ViX3JvdW5kX3NkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm1zdWJfc2QgKF9fbTEyOGQgX19XLCBfX20xMjhkIF9fWCwgX19tMTI4ZCBfX1ksIF9fbW1hc2s4IF9fVSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1zdWJzZDNfbWFzazMoKF9fdjJkZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19ZLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2szX2Ztc3ViX3JvdW5kX3NkKFcsIFgsIFksIFUsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtc3Vic2QzX21hc2szKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZubWFkZF9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbm1hZGRfcm91bmRfc2QoQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZubWFkZF9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm5tYWRkX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm5tYWRkX3JvdW5kX3NkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2t6KChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEMpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tYWRkX3NkIChfX20xMjhkIF9fVywgX19tMTI4ZCBfX1gsIF9fbTEyOGQgX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2szKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tYWRkX3JvdW5kX3NkKFcsIFgsIFksIFUsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzX21hc2szKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1zdWJfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFzaygoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZubXN1Yl9yb3VuZF9zZChBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQyksIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZubXN1Yl9yb3VuZF9zZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoQiksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubXN1Yl9zZCAoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkM19tYXNreigoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbm1zdWJfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDNfbWFza3ooKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpKF9fbTEyOGQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tc3ViX3NkIChfX20xMjhkIF9fVywgX19tMTI4ZCBfX1gsIF9fbTEyOGQgX19ZLCBfX21tYXNrOCBfX1UpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtc3Vic2QzX21hc2szKChfX3YyZGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YyZGYpX19YLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tc3ViX3JvdW5kX3NkKFcsIFgsIFksIFUsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtc3Vic2QzX21hc2szKChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9wZXJtdXRleF9wZChYLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3Blcm1kZjUxMigoX192OGRmKShfX201MTJkKShYKSwgKGludCkoQykpKQoKI2RlZmluZSBfbW01MTJfbWFza19wZXJtdXRleF9wZChXLCBVLCBYLCBDKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9wZXJtdXRleF9wZCgoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3Blcm11dGV4X3BkKFUsIFgsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4X3BkKChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKSkKCiNkZWZpbmUgX21tNTEyX3Blcm11dGV4X2VwaTY0KFgsIEMpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGVybWRpNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKFgpLCAoaW50KShDKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3Blcm11dGV4X2VwaTY0KFcsIFUsIFgsIEMpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9wZXJtdXRleF9lcGk2NCgoWCksIChDKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVykpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcGVybXV0ZXhfZXBpNjQoVSwgWCwgQykgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3Blcm11dGV4X2VwaTY0KChYKSwgKEMpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX3BkIChfX201MTJpIF9fWCwgX19tNTEyZCBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcGVybXZhcmRmNTEyKChfX3Y4ZGYpIF9fWSwgKF9fdjhkaSkgX19YKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXh2YXJfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJkIF9fWSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4dmFyX3BkKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3Blcm11dGV4dmFyX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19YLCBfX201MTJkIF9fWSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3Blcm11dGV4dmFyX3BkKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleHZhcl9lcGk2NCAoX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJkaTUxMigoX192OGRpKV9fWSwgKF9fdjhkaSlfX1gpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXh2YXJfZXBpNjQgKF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9wZXJtdXRleHZhcl9lcGk2NChfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19wZXJtdXRleHZhcl9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1gsCiAgICAgICAgICAgICBfX201MTJpIF9fWSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfcGVybXV0ZXh2YXJfZXBpNjQoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9wZXJtdXRleHZhcl9wcyAoX19tNTEyaSBfX1gsIF9fbTUxMiBfX1kpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9wZXJtdmFyc2Y1MTIoKF9fdjE2c2YpX19ZLCAoX192MTZzaSlfX1gpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Blcm11dGV4dmFyX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fWCwgX19tNTEyIF9fWSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3Blcm11dGV4dmFyX3BzKF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcGVybXV0ZXh2YXJfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19YLCBfX201MTIgX19ZKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfcGVybXV0ZXh2YXJfcHMoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX2VwaTMyIChfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcGVybXZhcnNpNTEyKChfX3YxNnNpKV9fWSwgKF9fdjE2c2kpX19YKTsKfQoKI2RlZmluZSBfbW01MTJfcGVybXV0ZXZhcl9lcGkzMiBfbW01MTJfcGVybXV0ZXh2YXJfZXBpMzIKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9wZXJtdXRleHZhcl9lcGkzMiAoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcGVybXV0ZXh2YXJfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcGVybXV0ZXh2YXJfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19NLCBfX201MTJpIF9fWCwKICAgICAgICAgICAgIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfcGVybXV0ZXh2YXJfZXBpMzIoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX1cpOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrX3Blcm11dGV2YXJfZXBpMzIgX21tNTEyX21hc2tfcGVybXV0ZXh2YXJfZXBpMzIKCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2thbmQgKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfa2FuZGhpICgoX19tbWFzazE2KSBfX0EsIChfX21tYXNrMTYpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2thbmRuIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2thbmRuaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa29yIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2tvcmhpICgoX19tbWFzazE2KSBfX0EsIChfX21tYXNrMTYpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2tvcnRlc3RjIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2tvcnRlc3RjaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa29ydGVzdHogKF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfa29ydGVzdHpoaSAoKF9fbW1hc2sxNikgX19BLCAoX19tbWFzazE2KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdGNfbWFzazE2X3U4KF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdGNoaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0el9tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0emhpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3RfbWFzazE2X3U4KF9fbW1hc2sxNiBfX0EsIF9fbW1hc2sxNiBfX0IsIHVuc2lnbmVkIGNoYXIgKl9fQykgewogICpfX0MgPSAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rb3J0ZXN0Y2hpKF9fQSwgX19CKTsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdHpoaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2t1bnBhY2tiIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2t1bnBja2hpICgoX19tbWFzazE2KSBfX0EsIChfX21tYXNrMTYpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2t4bm9yIChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrMTYpIF9fYnVpbHRpbl9pYTMyX2t4bm9yaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfa3hvciAoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAoX19tbWFzazE2KSBfX2J1aWx0aW5faWEzMl9reG9yaGkgKChfX21tYXNrMTYpIF9fQSwgKF9fbW1hc2sxNikgX19CKTsKfQoKI2RlZmluZSBfa2FuZF9tYXNrMTYgX21tNTEyX2thbmQKI2RlZmluZSBfa2FuZG5fbWFzazE2IF9tbTUxMl9rYW5kbgojZGVmaW5lIF9rbm90X21hc2sxNiBfbW01MTJfa25vdAojZGVmaW5lIF9rb3JfbWFzazE2IF9tbTUxMl9rb3IKI2RlZmluZSBfa3hub3JfbWFzazE2IF9tbTUxMl9reG5vcgojZGVmaW5lIF9reG9yX21hc2sxNiBfbW01MTJfa3hvcgoKI2RlZmluZSBfa3NoaWZ0bGlfbWFzazE2KEEsIEkpIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9rc2hpZnRsaWhpKChfX21tYXNrMTYpKEEpLCAodW5zaWduZWQgaW50KShJKSkpCgojZGVmaW5lIF9rc2hpZnRyaV9tYXNrMTYoQSwgSSkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2tzaGlmdHJpaGkoKF9fbW1hc2sxNikoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dG1hc2sxNl91MzIoX19tbWFzazE2IF9fQSkgewogIHJldHVybiAodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX2ttb3Z3KChfX21tYXNrMTYpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0dTMyX21hc2sxNih1bnNpZ25lZCBpbnQgX19BKSB7CiAgcmV0dXJuIChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfa21vdncoKF9fbW1hc2sxNilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9sb2FkX21hc2sxNihfX21tYXNrMTYgKl9fQSkgewogIHJldHVybiAoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2ttb3Z3KCooX19tbWFzazE2ICopX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3N0b3JlX21hc2sxNihfX21tYXNrMTYgKl9fQSwgX19tbWFzazE2IF9fQikgewogICooX19tbWFzazE2ICopX19BID0gX19idWlsdGluX2lhMzJfa21vdncoKF9fbW1hc2sxNilfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc3RyZWFtX3NpNTEyICh2b2lkICogX19QLCBfX201MTJpIF9fQSkKewogIHR5cGVkZWYgX192OGRpIF9fdjhkaV9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3Y4ZGlfYWxpZ25lZClfX0EsIChfX3Y4ZGlfYWxpZ25lZCopX19QKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0cmVhbV9sb2FkX3NpNTEyICh2b2lkIGNvbnN0ICpfX1ApCnsKICB0eXBlZGVmIF9fdjhkaSBfX3Y4ZGlfYWxpZ25lZCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX25vbnRlbXBvcmFsX2xvYWQoKGNvbnN0IF9fdjhkaV9hbGlnbmVkICopX19QKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0cmVhbV9wZCAodm9pZCAqX19QLCBfX201MTJkIF9fQSkKewogIHR5cGVkZWYgX192OGRmIF9fdjhkZl9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNjQpKSk7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3Y4ZGZfYWxpZ25lZClfX0EsIChfX3Y4ZGZfYWxpZ25lZCopX19QKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3N0cmVhbV9wcyAodm9pZCAqX19QLCBfX201MTIgX19BKQp7CiAgdHlwZWRlZiBfX3YxNnNmIF9fdjE2c2ZfYWxpZ25lZCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192MTZzZl9hbGlnbmVkKV9fQSwgKF9fdjE2c2ZfYWxpZ25lZCopX19QKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc2RmNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jb21wcmVzc19wZCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkZjUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpCiAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3BkICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbXByZXNzX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NkaTUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY29tcHJlc3NfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzZGk1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKQogICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMiAoKSwKICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbXByZXNzX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2Y1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2NvbXByZXNzX3BzIChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2Y1MTJfbWFzayAoKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192MTZzZikKICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19wcyAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jb21wcmVzc19lcGkzMiAoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3NpNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jb21wcmVzc19lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc2k1MTJfbWFzayAoKF9fdjE2c2kpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpCiAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgojZGVmaW5lIF9tbV9jbXBfcm91bmRfc3NfbWFzayhYLCBZLCBQLCBSKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9yb3VuZF9zc19tYXNrKE0sIFgsIFksIFAsIFIpIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNzX21hc2soKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9jbXBfc3NfbWFzayhYLCBZLCBQKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9zc19tYXNrKE0sIFgsIFksIFApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNzX21hc2soKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKE0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9jbXBfcm91bmRfc2RfbWFzayhYLCBZLCBQLCBSKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFkpLCAoaW50KShQKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3JvdW5kX3NkX21hc2soTSwgWCwgWSwgUCwgUikgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc2RfbWFzaygoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY21wX3NkX21hc2soWCwgWSwgUCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wc2RfbWFzaygoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKGludCkoUCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2NtcF9zZF9tYXNrKE0sIFgsIFksIFApIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIChpbnQpKFApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoTSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCi8qIEJpdCBUZXN0ICovCgpzdGF0aWMgX19pbmxpbmUgX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdF9lcGkzMl9tYXNrIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX2NtcG5lcV9lcGkzMl9tYXNrIChfbW01MTJfYW5kX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza190ZXN0X2VwaTMyX21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19jbXBuZXFfZXBpMzJfbWFzayAoX19VLCBfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdF9lcGk2NF9tYXNrIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX2NtcG5lcV9lcGk2NF9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza190ZXN0X2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcG5lcV9lcGk2NF9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl90ZXN0bl9lcGkzMl9tYXNrIChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gX21tNTEyX2NtcGVxX2VwaTMyX21hc2sgKF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RuX2VwaTMyX21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19jbXBlcV9lcGkzMl9tYXNrIChfX1UsIF9tbTUxMl9hbmRfZXBpMzIgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfdGVzdG5fZXBpNjRfbWFzayAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9jbXBlcV9lcGk2NF9tYXNrIChfbW01MTJfYW5kX2VwaTMyIChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3Rlc3RuX2VwaTY0X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2NtcGVxX2VwaTY0X21hc2sgKF9fVSwgX21tNTEyX2FuZF9lcGkzMiAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbW92ZWhkdXBfcHMgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDEsIDMsIDMsIDUsIDUsIDcsIDcsIDksIDksIDExLCAxMSwgMTMsIDEzLCAxNSwgMTUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdmVoZHVwX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbW92ZWhkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92ZWhkdXBfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tb3ZlaGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbW92ZWxkdXBfcHMgKF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDIsIDIsIDQsIDQsIDYsIDYsIDgsIDgsIDEwLCAxMCwgMTIsIDEyLCAxNCwgMTQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21vdmVsZHVwX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfbW92ZWxkdXBfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92ZWxkdXBfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9tb3ZlbGR1cF9wcyhfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tb3ZlX3NzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX21tX21vdmVfc3MoX19BLCBfX0IpLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZlX3NzIChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c3NfMTI4KF9fVSwgX21tX21vdmVfc3MoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdmVfc2QgKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfbW1fbW92ZV9zZChfX0EsIF9fQiksIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZlX3NkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzZF8xMjgoX19VLCBfbW1fbW92ZV9zZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3RvcmVfc3MgKGZsb2F0ICogX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXNzMTI4X21hc2sgKChfX3Y0c2YgKilfX1csIF9fQSwgX19VICYgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N0b3JlX3NkIChkb3VibGUgKiBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXNkMTI4X21hc2sgKChfX3YyZGYgKilfX1csIF9fQSwgX19VICYgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBjb25zdCBmbG9hdCogX19BKQp7CiAgX19tMTI4IHNyYyA9IChfX3Y0c2YpIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCA0LCA0LCA0KTsKCiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2xvYWRzczEyOF9tYXNrICgoY29uc3QgX192NHNmICopIF9fQSwgc3JjLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZF9zcyAoX19tbWFzazggX19VLCBjb25zdCBmbG9hdCogX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfbG9hZHNzMTI4X21hc2sgKChjb25zdCBfX3Y0c2YgKikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgY29uc3QgZG91YmxlKiBfX0EpCnsKICBfX20xMjhkIHNyYyA9IChfX3YyZGYpIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDIpOwoKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2xvYWRzZDEyOF9tYXNrICgoY29uc3QgX192MmRmICopIF9fQSwgc3JjLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWRfc2QgKF9fbW1hc2s4IF9fVSwgY29uc3QgZG91YmxlKiBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2xvYWRzZDEyOF9tYXNrICgoY29uc3QgX192MmRmICopIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKSBfbW1fc2V0emVyb19wZCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVSAmIDEpOwp9CgojZGVmaW5lIF9tbTUxMl9zaHVmZmxlX2VwaTMyKEEsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfcHNodWZkNTEyKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW01MTJfbWFza19zaHVmZmxlX2VwaTMyKFcsIFUsIEEsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zaHVmZmxlX2VwaTMyKFUsIEEsIEkpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NodWZmbGVfZXBpMzIoKEEpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kX3BkIChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfZXhwYW5kZGY1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kX3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRkZjUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfc2V0emVyb19wZCAoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kZGk1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kX2VwaTY0ICggX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kZGk1MTJfbWFzayAoKF9fdjhkaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIgKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2V4cGFuZGxvYWR1X3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyZCkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZGRmNTEyX21hc2sgKChjb25zdCBfX3Y4ZGYgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjhkZikgX19XLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2V4cGFuZGxvYWR1X3BkKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGY1MTJfbWFzayAoKGNvbnN0IF9fdjhkZiAqKV9fUCwKICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfc2V0emVyb19wZCgpLAogICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kbG9hZHVfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkZGk1MTJfbWFzayAoKGNvbnN0IF9fdjhkaSAqKV9fUCwKICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kbG9hZHVfZXBpNjQoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRkaTUxMl9tYXNrICgoY29uc3QgX192OGRpICopX19QLAogICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2V4cGFuZGxvYWR1X3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2Fkc2Y1MTJfbWFzayAoKGNvbnN0IF9fdjE2c2YgKilfX1AsCiAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19XLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZXhwYW5kbG9hZHVfcHMoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRzZjUxMl9tYXNrICgoY29uc3QgX192MTZzZiAqKV9fUCwKICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKSBfbW01MTJfc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kbG9hZHVfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpNTEyX21hc2sgKChjb25zdCBfX3YxNnNpICopX19QLAogICAgICAgICAgICAgIChfX3YxNnNpKSBfX1csCiAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2V4cGFuZGxvYWR1X2VwaTMyKF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHNpNTEyX21hc2sgKChjb25zdCBfX3YxNnNpICopX19QLAogICAgICAgICAgICAgIChfX3YxNnNpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kX3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNmNTEyX21hc2sgKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnNmKSBfX1csCiAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2V4cGFuZF9wcyAoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKSBfX2J1aWx0aW5faWEzMl9leHBhbmRzZjUxMl9tYXNrICgoX192MTZzZikgX19BLAogICAgICAgICAgICAgICAoX192MTZzZikgX21tNTEyX3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZXhwYW5kX2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNpNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZzaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2V4cGFuZF9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZHNpNTEyX21hc2sgKChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZzaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBzX3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0cHMycGQ1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcHNfcGQoVywgVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnRwczJwZDUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBzX3BkKFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0cHMycGQ1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBzX3BkIChfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OHNmKV9fQSwgX192OGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cHNfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRwc19wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cHNfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2N2dHBzX3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cHNsb19wZCAoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyZCkgX21tNTEyX2N2dHBzX3BkKF9tbTUxMl9jYXN0cHM1MTJfcHMyNTYoX19BKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBzbG9fcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpIF9tbTUxMl9tYXNrX2N2dHBzX3BkKF9fVywgX19VLCBfbW01MTJfY2FzdHBzNTEyX3BzMjU2KF9fQSkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19tb3ZfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAoX192OGRmKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbW92X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIgKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgIChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAoX192OGRmKSBfbW01MTJfc2V0emVyb19wZCAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfbW92X3BzIChfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgcmV0dXJuIChfX201MTIpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMiAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgIChfX3YxNnNmKSBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9tb3ZfcHMgKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMikgX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAoX192MTZzZikgX19BLAogICAgICAgICAgICAgKF9fdjE2c2YpIF9tbTUxMl9zZXR6ZXJvX3BzICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NzdG9yZXVfcGQgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVkZjUxMl9tYXNrICgoX192OGRmICopIF9fUCwgKF9fdjhkZikgX19BLAogICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTY0ICh2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlZGk1MTJfbWFzayAoKF9fdjhkaSAqKSBfX1AsIChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jb21wcmVzc3N0b3JldV9wcyAodm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BKQp7CiAgX19idWlsdGluX2lhMzJfY29tcHJlc3NzdG9yZXNmNTEyX21hc2sgKChfX3YxNnNmICopIF9fUCwgKF9fdjE2c2YpIF9fQSwKICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY29tcHJlc3NzdG9yZXVfZXBpMzIgKHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3Jlc2k1MTJfbWFzayAoKF9fdjE2c2kgKikgX19QLCAoX192MTZzaSkgX19BLAogICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzZF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2Qyc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19jdnRfcm91bmRzZF9zcyhXLCBVLCBBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2Qyc3Nfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfY3Z0X3JvdW5kc2Rfc3MoVSwgQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHNkMnNzX3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzZF9zcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzZDJzc19yb3VuZF9tYXNrICgoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRzZF9zcyAoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzZDJzc19yb3VuZF9tYXNrICgoX192NHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fY3Z0c3NfaTMyIF9tbV9jdnRzc19zaTMyCiNkZWZpbmUgX21tX2N2dHNkX2kzMiBfbW1fY3Z0c2Rfc2kzMgojZGVmaW5lIF9tbV9jdnRpMzJfc2QgX21tX2N2dHNpMzJfc2QKI2RlZmluZSBfbW1fY3Z0aTMyX3NzIF9tbV9jdnRzaTMyX3NzCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHNzX2k2NCBfbW1fY3Z0c3Nfc2k2NAojZGVmaW5lIF9tbV9jdnRzZF9pNjQgX21tX2N2dHNkX3NpNjQKI2RlZmluZSBfbW1fY3Z0aTY0X3NkIF9tbV9jdnRzaTY0X3NkCiNkZWZpbmUgX21tX2N2dGk2NF9zcyBfbW1fY3Z0c2k2NF9zcwojZW5kaWYKCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dF9yb3VuZGk2NF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2N2dHNpMnNkNjQoKF9fdjJkZikoX19tMTI4ZCkoQSksIChsb25nIGxvbmcpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2k2NF9zZChBLCBCLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2N2dHNpMnNkNjQoKF9fdjJkZikoX19tMTI4ZCkoQSksIChsb25nIGxvbmcpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNpMzJfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHNpMnNzMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2N2dF9yb3VuZGkzMl9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2kyc3MzMigoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShCKSwgKGludCkoUikpKQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2k2NF9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0c2kyc3M2NCgoX192NHNmKShfX20xMjgpKEEpLCAobG9uZyBsb25nKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kaTY0X3NzKEEsIEIsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRzaTJzczY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIChsb25nIGxvbmcpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc3Nfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jdnRzczJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2N2dF9yb3VuZHNzX3NkKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY3Z0c3Myc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHNzX3NkKFUsIEEsIEIsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfY3Z0c3Myc2Rfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRzc19zZCAoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0c3Myc2Rfcm91bmRfbWFzaygoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0c3Nfc2QgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOCBfX0IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3Z0c3Myc2Rfcm91bmRfbWFzaygoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHUzMl9zZCAoX19tMTI4ZCBfX0EsIHVuc2lnbmVkIF9fQikKewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmR1NjRfc2QoQSwgQiwgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jdnR1c2kyc2Q2NCgoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKShCKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHU2NF9zZCAoX19tMTI4ZCBfX0EsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0IpCnsKICBfX0FbMF0gPSBfX0I7CiAgcmV0dXJuIF9fQTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dF9yb3VuZHUzMl9zcyhBLCBCLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY3Z0dXNpMnNzMzIoKF9fdjRzZikoX19tMTI4KShBKSwgKHVuc2lnbmVkIGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1MzJfc3MgKF9fbTEyOCBfX0EsIHVuc2lnbmVkIF9fQikKewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmR1NjRfc3MoQSwgQiwgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2N2dHVzaTJzczY0KChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZyBsb25nKShCKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dTY0X3NzIChfX20xMjggX19BLCB1bnNpZ25lZCBsb25nIGxvbmcgX19CKQp7CiAgX19BWzBdID0gX19COwogIHJldHVybiBfX0E7Cn0KI2VuZGlmCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zZXQxX2VwaTMyIChfX201MTJpIF9fTywgX19tbWFzazE2IF9fTSwgaW50IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpIF9tbTUxMl9zZXQxX2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2V0MV9lcGk2NCAoX19tNTEyaSBfX08sIF9fbW1hc2s4IF9fTSwgbG9uZyBsb25nIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldDFfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fTyk7Cn0KCnN0YXRpYyAgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldF9lcGk4IChjaGFyIF9fZTYzLCBjaGFyIF9fZTYyLCBjaGFyIF9fZTYxLCBjaGFyIF9fZTYwLCBjaGFyIF9fZTU5LAogICAgY2hhciBfX2U1OCwgY2hhciBfX2U1NywgY2hhciBfX2U1NiwgY2hhciBfX2U1NSwgY2hhciBfX2U1NCwgY2hhciBfX2U1MywKICAgIGNoYXIgX19lNTIsIGNoYXIgX19lNTEsIGNoYXIgX19lNTAsIGNoYXIgX19lNDksIGNoYXIgX19lNDgsIGNoYXIgX19lNDcsCiAgICBjaGFyIF9fZTQ2LCBjaGFyIF9fZTQ1LCBjaGFyIF9fZTQ0LCBjaGFyIF9fZTQzLCBjaGFyIF9fZTQyLCBjaGFyIF9fZTQxLAogICAgY2hhciBfX2U0MCwgY2hhciBfX2UzOSwgY2hhciBfX2UzOCwgY2hhciBfX2UzNywgY2hhciBfX2UzNiwgY2hhciBfX2UzNSwKICAgIGNoYXIgX19lMzQsIGNoYXIgX19lMzMsIGNoYXIgX19lMzIsIGNoYXIgX19lMzEsIGNoYXIgX19lMzAsIGNoYXIgX19lMjksCiAgICBjaGFyIF9fZTI4LCBjaGFyIF9fZTI3LCBjaGFyIF9fZTI2LCBjaGFyIF9fZTI1LCBjaGFyIF9fZTI0LCBjaGFyIF9fZTIzLAogICAgY2hhciBfX2UyMiwgY2hhciBfX2UyMSwgY2hhciBfX2UyMCwgY2hhciBfX2UxOSwgY2hhciBfX2UxOCwgY2hhciBfX2UxNywKICAgIGNoYXIgX19lMTYsIGNoYXIgX19lMTUsIGNoYXIgX19lMTQsIGNoYXIgX19lMTMsIGNoYXIgX19lMTIsIGNoYXIgX19lMTEsCiAgICBjaGFyIF9fZTEwLCBjaGFyIF9fZTksIGNoYXIgX19lOCwgY2hhciBfX2U3LCBjaGFyIF9fZTYsIGNoYXIgX19lNSwKICAgIGNoYXIgX19lNCwgY2hhciBfX2UzLCBjaGFyIF9fZTIsIGNoYXIgX19lMSwgY2hhciBfX2UwKSB7CgogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3Y2NHFpKQogICAge19fZTAsIF9fZTEsIF9fZTIsIF9fZTMsIF9fZTQsIF9fZTUsIF9fZTYsIF9fZTcsCiAgICAgX19lOCwgX19lOSwgX19lMTAsIF9fZTExLCBfX2UxMiwgX19lMTMsIF9fZTE0LCBfX2UxNSwKICAgICBfX2UxNiwgX19lMTcsIF9fZTE4LCBfX2UxOSwgX19lMjAsIF9fZTIxLCBfX2UyMiwgX19lMjMsCiAgICAgX19lMjQsIF9fZTI1LCBfX2UyNiwgX19lMjcsIF9fZTI4LCBfX2UyOSwgX19lMzAsIF9fZTMxLAogICAgIF9fZTMyLCBfX2UzMywgX19lMzQsIF9fZTM1LCBfX2UzNiwgX19lMzcsIF9fZTM4LCBfX2UzOSwKICAgICBfX2U0MCwgX19lNDEsIF9fZTQyLCBfX2U0MywgX19lNDQsIF9fZTQ1LCBfX2U0NiwgX19lNDcsCiAgICAgX19lNDgsIF9fZTQ5LCBfX2U1MCwgX19lNTEsIF9fZTUyLCBfX2U1MywgX19lNTQsIF9fZTU1LAogICAgIF9fZTU2LCBfX2U1NywgX19lNTgsIF9fZTU5LCBfX2U2MCwgX19lNjEsIF9fZTYyLCBfX2U2M307Cn0KCnN0YXRpYyAgX19pbmxpbmUgX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldF9lcGkxNihzaG9ydCBfX2UzMSwgc2hvcnQgX19lMzAsIHNob3J0IF9fZTI5LCBzaG9ydCBfX2UyOCwKICAgIHNob3J0IF9fZTI3LCBzaG9ydCBfX2UyNiwgc2hvcnQgX19lMjUsIHNob3J0IF9fZTI0LCBzaG9ydCBfX2UyMywKICAgIHNob3J0IF9fZTIyLCBzaG9ydCBfX2UyMSwgc2hvcnQgX19lMjAsIHNob3J0IF9fZTE5LCBzaG9ydCBfX2UxOCwKICAgIHNob3J0IF9fZTE3LCBzaG9ydCBfX2UxNiwgc2hvcnQgX19lMTUsIHNob3J0IF9fZTE0LCBzaG9ydCBfX2UxMywKICAgIHNob3J0IF9fZTEyLCBzaG9ydCBfX2UxMSwgc2hvcnQgX19lMTAsIHNob3J0IF9fZTksIHNob3J0IF9fZTgsCiAgICBzaG9ydCBfX2U3LCBzaG9ydCBfX2U2LCBzaG9ydCBfX2U1LCBzaG9ydCBfX2U0LCBzaG9ydCBfX2UzLAogICAgc2hvcnQgX19lMiwgc2hvcnQgX19lMSwgc2hvcnQgX19lMCkgewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKShfX3YzMmhpKQogICAge19fZTAsIF9fZTEsIF9fZTIsIF9fZTMsIF9fZTQsIF9fZTUsIF9fZTYsIF9fZTcsCiAgICAgX19lOCwgX19lOSwgX19lMTAsIF9fZTExLCBfX2UxMiwgX19lMTMsIF9fZTE0LCBfX2UxNSwKICAgICBfX2UxNiwgX19lMTcsIF9fZTE4LCBfX2UxOSwgX19lMjAsIF9fZTIxLCBfX2UyMiwgX19lMjMsCiAgICAgX19lMjQsIF9fZTI1LCBfX2UyNiwgX19lMjcsIF9fZTI4LCBfX2UyOSwgX19lMzAsIF9fZTMxIH07Cn0KCnN0YXRpYyBfX2lubGluZSBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X2VwaTMyIChpbnQgX19BLCBpbnQgX19CLCBpbnQgX19DLCBpbnQgX19ELAogICAgIGludCBfX0UsIGludCBfX0YsIGludCBfX0csIGludCBfX0gsCiAgICAgaW50IF9fSSwgaW50IF9fSiwgaW50IF9fSywgaW50IF9fTCwKICAgICBpbnQgX19NLCBpbnQgX19OLCBpbnQgX19PLCBpbnQgX19QKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMmkpKF9fdjE2c2kpCiAgeyBfX1AsIF9fTywgX19OLCBfX00sIF9fTCwgX19LLCBfX0osIF9fSSwKICAgIF9fSCwgX19HLCBfX0YsIF9fRSwgX19ELCBfX0MsIF9fQiwgX19BIH07Cn0KCiNkZWZpbmUgX21tNTEyX3NldHJfZXBpMzIoZTAsZTEsZTIsZTMsZTQsZTUsZTYsZTcsICAgICAgICAgICBcCiAgICAgICBlOCxlOSxlMTAsZTExLGUxMixlMTMsZTE0LGUxNSkgICAgICAgICAgXAogIF9tbTUxMl9zZXRfZXBpMzIoKGUxNSksKGUxNCksKGUxMyksKGUxMiksKGUxMSksKGUxMCksKGU5KSwoZTgpLChlNyksKGU2KSwgXAogICAgICAgICAgICAgICAgICAgKGU1KSwoZTQpLChlMyksKGUyKSwoZTEpLChlMCkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfc2V0X2VwaTY0IChsb25nIGxvbmcgX19BLCBsb25nIGxvbmcgX19CLCBsb25nIGxvbmcgX19DLAogICAgIGxvbmcgbG9uZyBfX0QsIGxvbmcgbG9uZyBfX0UsIGxvbmcgbG9uZyBfX0YsCiAgICAgbG9uZyBsb25nIF9fRywgbG9uZyBsb25nIF9fSCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJpKSAoX192OGRpKQogIHsgX19ILCBfX0csIF9fRiwgX19FLCBfX0QsIF9fQywgX19CLCBfX0EgfTsKfQoKI2RlZmluZSBfbW01MTJfc2V0cl9lcGk2NChlMCxlMSxlMixlMyxlNCxlNSxlNixlNykgICAgICAgICAgIFwKICBfbW01MTJfc2V0X2VwaTY0KChlNyksKGU2KSwoZTUpLChlNCksKGUzKSwoZTIpLChlMSksKGUwKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9zZXRfcGQgKGRvdWJsZSBfX0EsIGRvdWJsZSBfX0IsIGRvdWJsZSBfX0MsIGRvdWJsZSBfX0QsCiAgICAgICAgZG91YmxlIF9fRSwgZG91YmxlIF9fRiwgZG91YmxlIF9fRywgZG91YmxlIF9fSCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX201MTJkKQogIHsgX19ILCBfX0csIF9fRiwgX19FLCBfX0QsIF9fQywgX19CLCBfX0EgfTsKfQoKI2RlZmluZSBfbW01MTJfc2V0cl9wZChlMCxlMSxlMixlMyxlNCxlNSxlNixlNykgICAgICAgICAgICAgIFwKICBfbW01MTJfc2V0X3BkKChlNyksKGU2KSwoZTUpLChlNCksKGUzKSwoZTIpLChlMSksKGUwKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldF9wcyAoZmxvYXQgX19BLCBmbG9hdCBfX0IsIGZsb2F0IF9fQywgZmxvYXQgX19ELAogICAgICAgIGZsb2F0IF9fRSwgZmxvYXQgX19GLCBmbG9hdCBfX0csIGZsb2F0IF9fSCwKICAgICAgICBmbG9hdCBfX0ksIGZsb2F0IF9fSiwgZmxvYXQgX19LLCBmbG9hdCBfX0wsCiAgICAgICAgZmxvYXQgX19NLCBmbG9hdCBfX04sIGZsb2F0IF9fTywgZmxvYXQgX19QKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTUxMikKICB7IF9fUCwgX19PLCBfX04sIF9fTSwgX19MLCBfX0ssIF9fSiwgX19JLAogICAgX19ILCBfX0csIF9fRiwgX19FLCBfX0QsIF9fQywgX19CLCBfX0EgfTsKfQoKI2RlZmluZSBfbW01MTJfc2V0cl9wcyhlMCxlMSxlMixlMyxlNCxlNSxlNixlNyxlOCxlOSxlMTAsZTExLGUxMixlMTMsZTE0LGUxNSkgXAogIF9tbTUxMl9zZXRfcHMoKGUxNSksKGUxNCksKGUxMyksKGUxMiksKGUxMSksKGUxMCksKGU5KSwoZTgpLChlNyksKGU2KSwoZTUpLCBcCiAgICAgICAgICAgICAgICAoZTQpLChlMyksKGUyKSwoZTEpLChlMCkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hYnNfcHMoX19tNTEyIF9fQSkKewogIHJldHVybiAoX19tNTEyKV9tbTUxMl9hbmRfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIoMHg3RkZGRkZGRiksKF9fbTUxMmkpX19BKSA7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYWJzX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX0ssIF9fbTUxMiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfbW01MTJfbWFza19hbmRfZXBpMzIoKF9fbTUxMmkpX19XLCBfX0ssIF9tbTUxMl9zZXQxX2VwaTMyKDB4N0ZGRkZGRkYpLChfX201MTJpKV9fQSkgOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYWJzX3BkKF9fbTUxMmQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9tbTUxMl9hbmRfZXBpNjQoX21tNTEyX3NldDFfZXBpNjQoMHg3RkZGRkZGRkZGRkZGRkZGKSwoX192OGRpKV9fQSkgOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hYnNfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fSywgX19tNTEyZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX21tNTEyX21hc2tfYW5kX2VwaTY0KChfX3Y4ZGkpX19XLCBfX0ssIF9tbTUxMl9zZXQxX2VwaTY0KDB4N0ZGRkZGRkZGRkZGRkZGRiksKF9fdjhkaSlfX0EpOwp9CgovKiBWZWN0b3ItcmVkdWN0aW9uIGFyaXRobWV0aWMgYWNjZXB0cyB2ZWN0b3JzIGFzIGlucHV0cyBhbmQgcHJvZHVjZXMgc2NhbGFycyBhcwogKiBvdXRwdXRzLiBUaGlzIGNsYXNzIG9mIHZlY3RvciBvcGVyYXRpb24gZm9ybXMgdGhlIGJhc2lzIG9mIG1hbnkgc2NpZW50aWZpYwogKiBjb21wdXRhdGlvbnMuIEluIHZlY3Rvci1yZWR1Y3Rpb24gYXJpdGhtZXRpYywgdGhlIGV2YWx1YXRpb24gb3JkZXIgaXMKICogaW5kZXBlbmRlbnQgb2YgdGhlIG9yZGVyIG9mIHRoZSBpbnB1dCBlbGVtZW50cyBvZiBWLgoKICogRm9yIGZsb2F0aW5nLXBvaW50IGludHJpbnNpY3M6CiAqIDEuIFdoZW4gdXNpbmcgZmFkZC9mbXVsIGludHJpbnNpY3MsIHRoZSBvcmRlciBvZiBvcGVyYXRpb25zIHdpdGhpbiB0aGUKICogdmVjdG9yIGlzIHVuc3BlY2lmaWVkIChhc3NvY2lhdGl2ZSBtYXRoKS4KICogMi4gV2hlbiB1c2luZyBmbWluL2ZtYXggaW50cmluc2ljcywgTmFOIG9yIC0wLjAgZWxlbWVudHMgd2l0aGluIHRoZSB2ZWN0b3IKICogcHJvZHVjZSB1bnNwZWNpZmllZCByZXN1bHRzLgoKICogVXNlZCBiaXNlY3Rpb24gbWV0aG9kLiBBdCBlYWNoIHN0ZXAsIHdlIHBhcnRpdGlvbiB0aGUgdmVjdG9yIHdpdGggcHJldmlvdXMKICogc3RlcCBpbiBoYWxmLCBhbmQgdGhlIG9wZXJhdGlvbiBpcyBwZXJmb3JtZWQgb24gaXRzIHR3byBoYWx2ZXMuCiAqIFRoaXMgdGFrZXMgbG9nMihuKSBzdGVwcyB3aGVyZSBuIGlzIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHZlY3Rvci4KICovCgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2VfYWRkX2VwaTY0KF9fbTUxMmkgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9hZGRfcTUxMihfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2VfbXVsX2VwaTY0KF9fbTUxMmkgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9tdWxfcTUxMihfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2VfYW5kX2VwaTY0KF9fbTUxMmkgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9hbmRfcTUxMihfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2Vfb3JfZXBpNjQoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX29yX3E1MTIoX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfYWRkX2VwaTY0KF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X2VwaTY0KF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FkZF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX211bF9lcGk2NChfX21tYXNrOCBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2tfbW92X2VwaTY0KF9tbTUxMl9zZXQxX2VwaTY0KDEpLCBfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9tdWxfcTUxMihfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9hbmRfZXBpNjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVykgewogIF9fVyA9IF9tbTUxMl9tYXNrX21vdl9lcGk2NChfbW01MTJfc2V0MV9lcGk2NCh+MFVMTCksIF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FuZF9xNTEyKF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX29yX2VwaTY0KF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X2VwaTY0KF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX29yX3E1MTIoX19XKTsKfQoKLy8gLTAuMCBpcyB1c2VkIHRvIGlnbm9yZSB0aGUgc3RhcnQgdmFsdWUgc2luY2UgaXQgaXMgdGhlIG5ldXRyYWwgdmFsdWUgb2YKLy8gZmxvYXRpbmcgcG9pbnQgYWRkaXRpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBwbGVhc2UgcmVmZXIgdG8KLy8gaHR0cHM6Ly9sbHZtLm9yZy9kb2NzL0xhbmdSZWYuaHRtbCNsbHZtLXZlY3Rvci1yZWR1Y2UtZmFkZC1pbnRyaW5zaWMKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfcmVkdWNlX2FkZF9wZChfX201MTJkIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZmFkZF9wZDUxMigtMC4wLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9yZWR1Y2VfbXVsX3BkKF9fbTUxMmQgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BkNTEyKDEuMCwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfYWRkX3BkKF9fbW1hc2s4IF9fTSwgX19tNTEyZCBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza3pfbW92X3BkKF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcGQ1MTIoLTAuMCwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbXVsX3BkKF9fbW1hc2s4IF9fTSwgX19tNTEyZCBfX1cpIHsKICBfX1cgPSBfbW01MTJfbWFza19tb3ZfcGQoX21tNTEyX3NldDFfcGQoMS4wKSwgX19NLCBfX1cpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm11bF9wZDUxMigxLjAsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9hZGRfZXBpMzIoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FkZF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tdWxfZXBpMzIoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX211bF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9hbmRfZXBpMzIoX19tNTEyaSBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FuZF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9vcl9lcGkzMihfX201MTJpIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfb3JfZDUxMigoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9hZGRfZXBpMzIoIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2t6X21vdl9lcGkzMihfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9hZGRfZDUxMigoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tdWxfZXBpMzIoIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2tfbW92X2VwaTMyKF9tbTUxMl9zZXQxX2VwaTMyKDEpLCBfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9tdWxfZDUxMigoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9hbmRfZXBpMzIoIF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2tfbW92X2VwaTMyKF9tbTUxMl9zZXQxX2VwaTMyKH4wVSksIF9fTSwgX19XKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2FuZF9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX29yX2VwaTMyKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2t6X21vdl9lcGkzMihfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9vcl9kNTEyKChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGZsb2F0IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX2FkZF9wcyhfX201MTIgX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mYWRkX3BzNTEyKC0wLjBmLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tdWxfcHMoX19tNTEyIF9fVykgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm11bF9wczUxMigxLjBmLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX2FkZF9wcyhfX21tYXNrMTYgX19NLCBfX201MTIgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2t6X21vdl9wcyhfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mYWRkX3BzNTEyKC0wLjBmLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX211bF9wcyhfX21tYXNrMTYgX19NLCBfX201MTIgX19XKSB7CiAgX19XID0gX21tNTEyX21hc2tfbW92X3BzKF9tbTUxMl9zZXQxX3BzKDEuMGYpLCBfX00sIF9fVyk7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BzNTEyKDEuMGYsIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfZXBpNjQoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtYXhfcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWF4X2VwdTY0KF9fbTUxMmkgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV91bWF4X3E1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9lcGk2NChfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21pbl9xNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9taW5fZXB1NjQoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtaW5fcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tYXhfZXBpNjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9lcGk2NChfbW01MTJfc2V0MV9lcGk2NCgtX19MT05HX0xPTkdfTUFYX18gLSAxTEwpLCBfX00sIF9fVik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9zbWF4X3E1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWF4X2VwdTY0KF9fbW1hc2s4IF9fTSwgX19tNTEyaSBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza3pfbW92X2VwaTY0KF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtYXhfcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9taW5fZXBpNjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9lcGk2NChfbW01MTJfc2V0MV9lcGk2NChfX0xPTkdfTE9OR19NQVhfXyksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtaW5fcTUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9taW5fZXB1NjQoX19tbWFzazggX19NLCBfX201MTJpIF9fVikgewogIF9fViA9IF9tbTUxMl9tYXNrX21vdl9lcGk2NChfbW01MTJfc2V0MV9lcGk2NCh+MFVMTCksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtaW5fcTUxMihfX1YpOwp9CnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfZXBpMzIoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtYXhfZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWF4X2VwdTMyKF9fbTUxMmkgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV91bWF4X2Q1MTIoKF9fdjE2c2kpX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9lcGkzMihfX201MTJpIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2Vfc21pbl9kNTEyKChfX3YxNnNpKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9taW5fZXB1MzIoX19tNTEyaSBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtaW5fZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tYXhfZXBpMzIoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIoLV9fSU5UX01BWF9fIC0gMSksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3NtYXhfZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9tYXhfZXB1MzIoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza3pfbW92X2VwaTMyKF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtYXhfZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3JlZHVjZV9taW5fZXBpMzIoX19tbWFzazE2IF9fTSwgX19tNTEyaSBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfZXBpMzIoX21tNTEyX3NldDFfZXBpMzIoX19JTlRfTUFYX18pLCBfX00sIF9fVik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9zbWluX2Q1MTIoKF9fdjE2c2kpX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWluX2VwdTMyKF9fbW1hc2sxNiBfX00sIF9fbTUxMmkgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X2VwaTMyKF9tbTUxMl9zZXQxX2VwaTMyKH4wVSksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX3VtaW5fZDUxMigoX192MTZzaSlfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBkb3VibGUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWF4X3BkKF9fbTUxMmQgX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BkNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9taW5fcGQoX19tNTEyZCBfX1YpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtaW5fcGQ1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWF4X3BkKF9fbW1hc2s4IF9fTSwgX19tNTEyZCBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfcGQoX21tNTEyX3NldDFfcGQoLV9fYnVpbHRpbl9pbmYoKSksIF9fTSwgX19WKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZtYXhfcGQ1MTIoX19WKTsKfQoKc3RhdGljIF9faW5saW5lX18gZG91YmxlIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yZWR1Y2VfbWluX3BkKF9fbW1hc2s4IF9fTSwgX19tNTEyZCBfX1YpIHsKICBfX1YgPSBfbW01MTJfbWFza19tb3ZfcGQoX21tNTEyX3NldDFfcGQoX19idWlsdGluX2luZigpKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9wZDUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9tYXhfcHMoX19tNTEyIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1heF9wczUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9taW5fcHMoX19tNTEyIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9wczUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21heF9wcyhfX21tYXNrMTYgX19NLCBfX201MTIgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X3BzKF9tbTUxMl9zZXQxX3BzKC1fX2J1aWx0aW5faW5mZigpKSwgX19NLCBfX1YpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1heF9wczUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmVkdWNlX21pbl9wcyhfX21tYXNrMTYgX19NLCBfX201MTIgX19WKSB7CiAgX19WID0gX21tNTEyX21hc2tfbW92X3BzKF9tbTUxMl9zZXQxX3BzKF9fYnVpbHRpbl9pbmZmKCkpLCBfX00sIF9fVik7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWluX3BzNTEyKF9fVik7Cn0KCi8vLyBNb3ZlcyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBvZiBhIHZlY3RvciBvZiBbMTYgeCBpMzJdIHRvIGEKLy8vICAgIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRCAvIE1PVkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIHZlY3RvciBvZiBbMTYgeCBpMzJdLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgMzIgYml0cyBhcmUgbW92ZWQgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRzaTUxMl9zaTMyKF9fbTUxMmkgX19BKSB7CiAgX192MTZzaSBfX2IgPSAoX192MTZzaSlfX0E7CiAgcmV0dXJuIF9fYlswXTsKfQoKLy8vIExvYWRzIDggZG91YmxlLXByZWNpc2lvbiAoNjQtYml0KSBmbG9hdGluZy1wb2ludCBlbGVtZW50cyBzdG9yZWQgYXQgbWVtb3J5Ci8vLyBsb2NhdGlvbnMgc3RhcnRpbmcgYXQgbG9jYXRpb24gXGEgYmFzZV9hZGRyIGF0IHBhY2tlZCAzMi1iaXQgaW50ZWdlciBpbmRpY2VzCi8vLyBzdG9yZWQgaW4gdGhlIGxvd2VyIGhhbGYgb2YgXGEgdmluZGV4IHNjYWxlZCBieSBcYSBzY2FsZSB0aGVtIGluIGRzdC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZHQVRIRVJEUEQgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gRk9SIGogOj0gMCB0byA3Ci8vLyAgIGkgOj0gaio2NAovLy8gICBtIDo9IGoqMzIKLy8vICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgZHN0W2krNjM6aV0gOj0gTUVNW2FkZHIrNjM6YWRkcl0KLy8vIEVOREZPUgovLy8gZHN0W01BWDo1MTJdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfaTMybG9nYXRoZXJfcGQodmluZGV4LCBiYXNlX2FkZHIsIHNjYWxlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfbW01MTJfaTMyZ2F0aGVyX3BkKF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYodmluZGV4KSwgKGJhc2VfYWRkciksIChzY2FsZSkpCgovLy8gTG9hZHMgOCBkb3VibGUtcHJlY2lzaW9uICg2NC1iaXQpIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIGZyb20gbWVtb3J5Ci8vLyBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIgYXQgcGFja2VkIDMyLWJpdCBpbnRlZ2VyIGluZGljZXMgc3RvcmVkIGluCi8vLyB0aGUgbG93ZXIgaGFsZiBvZiBcYSB2aW5kZXggc2NhbGVkIGJ5IFxhIHNjYWxlIGludG8gZHN0IHVzaW5nIHdyaXRlbWFzawovLy8gXGEgbWFzayAoZWxlbWVudHMgYXJlIGNvcGllZCBmcm9tIFxhIHNyYyB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgYml0IGlzCi8vLyBub3Qgc2V0KS4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZHQVRIRVJEUEQgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gRk9SIGogOj0gMCB0byA3Ci8vLyAgIGkgOj0gaio2NAovLy8gICBtIDo9IGoqMzIKLy8vICAgSUYgbWFza1tqXQovLy8gICAgIGFkZHIgOj0gYmFzZV9hZGRyICsgU2lnbkV4dGVuZDY0KHZpbmRleFttKzMxOm1dKSAqIFplcm9FeHRlbmQ2NChzY2FsZSkgKiA4Ci8vLyAgICAgZHN0W2krNjM6aV0gOj0gTUVNW2FkZHIrNjM6YWRkcl0KLy8vICAgRUxTRQovLy8gICAgIGRzdFtpKzYzOmldIDo9IHNyY1tpKzYzOmldCi8vLyAgIEZJCi8vLyBFTkRGT1IKLy8vIGRzdFtNQVg6NTEyXSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tNTEyX21hc2tfaTMybG9nYXRoZXJfcGQoc3JjLCBtYXNrLCB2aW5kZXgsIGJhc2VfYWRkciwgc2NhbGUpICAgICAgICBcCiAgX21tNTEyX21hc2tfaTMyZ2F0aGVyX3BkKChzcmMpLCAobWFzayksIF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYodmluZGV4KSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlX2FkZHIpLCAoc2NhbGUpKQoKLy8vIExvYWRzIDggNjQtYml0IGludGVnZXIgZWxlbWVudHMgZnJvbSBtZW1vcnkgc3RhcnRpbmcgYXQgbG9jYXRpb24gXGEgYmFzZV9hZGRyCi8vLyBhdCBwYWNrZWQgMzItYml0IGludGVnZXIgaW5kaWNlcyBzdG9yZWQgaW4gdGhlIGxvd2VyIGhhbGYgb2YgXGEgdmluZGV4Ci8vLyBzY2FsZWQgYnkgXGEgc2NhbGUgYW5kIHN0b3JlcyB0aGVtIGluIGRzdC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQR0FUSEVSRFEgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gRk9SIGogOj0gMCB0byA3Ci8vLyAgIGkgOj0gaio2NAovLy8gICBtIDo9IGoqMzIKLy8vICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgZHN0W2krNjM6aV0gOj0gTUVNW2FkZHIrNjM6YWRkcl0KLy8vIEVOREZPUgovLy8gZHN0W01BWDo1MTJdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfaTMybG9nYXRoZXJfZXBpNjQodmluZGV4LCBiYXNlX2FkZHIsIHNjYWxlKSAgICAgICAgICAgICAgICAgICAgIFwKICBfbW01MTJfaTMyZ2F0aGVyX2VwaTY0KF9tbTUxMl9jYXN0c2k1MTJfc2kyNTYodmluZGV4KSwgKGJhc2VfYWRkciksIChzY2FsZSkpCgovLy8gTG9hZHMgOCA2NC1iaXQgaW50ZWdlciBlbGVtZW50cyBmcm9tIG1lbW9yeSBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIKLy8vIGF0IHBhY2tlZCAzMi1iaXQgaW50ZWdlciBpbmRpY2VzIHN0b3JlZCBpbiB0aGUgbG93ZXIgaGFsZiBvZiBcYSB2aW5kZXgKLy8vIHNjYWxlZCBieSBcYSBzY2FsZSBhbmQgc3RvcmVzIHRoZW0gaW4gZHN0IHVzaW5nIHdyaXRlbWFzayBcYSBtYXNrIChlbGVtZW50cwovLy8gYXJlIGNvcGllZCBmcm9tIFxhIHNyYyB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgYml0IGlzIG5vdCBzZXQpLgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBHQVRIRVJEUSA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBJRiBtYXNrW2pdCi8vLyAgICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgICBkc3RbaSs2MzppXSA6PSBNRU1bYWRkcis2MzphZGRyXQovLy8gICBFTFNFCi8vLyAgICAgZHN0W2krNjM6aV0gOj0gc3JjW2krNjM6aV0KLy8vICAgRkkKLy8vIEVOREZPUgovLy8gZHN0W01BWDo1MTJdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfbWFza19pMzJsb2dhdGhlcl9lcGk2NChzcmMsIG1hc2ssIHZpbmRleCwgYmFzZV9hZGRyLCBzY2FsZSkgICAgIFwKICBfbW01MTJfbWFza19pMzJnYXRoZXJfZXBpNjQoKHNyYyksIChtYXNrKSwgX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VfYWRkciksIChzY2FsZSkpCgovLy8gU3RvcmVzIDggcGFja2VkIGRvdWJsZS1wcmVjaXNpb24gKDY0LWJpdCkgZmxvYXRpbmctcG9pbnQgZWxlbWVudHMgaW4gXGEgdjEKLy8vIGFuZCB0byBtZW1vcnkgbG9jYXRpb25zIHN0YXJ0aW5nIGF0IGxvY2F0aW9uIFxhIGJhc2VfYWRkciBhdCBwYWNrZWQgMzItYml0Ci8vLyBpbnRlZ2VyIGluZGljZXMgc3RvcmVkIGluIFxhIHZpbmRleCBzY2FsZWQgYnkgXGEgc2NhbGUuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU0NBVFRFUkRQRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICBNRU1bYWRkcis2MzphZGRyXSA6PSB2MVtpKzYzOmldCi8vLyBFTkRGT1IKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfaTMybG9zY2F0dGVyX3BkKGJhc2VfYWRkciwgdmluZGV4LCB2MSwgc2NhbGUpICAgICAgICAgICAgICAgICAgIFwKICBfbW01MTJfaTMyc2NhdHRlcl9wZCgoYmFzZV9hZGRyKSwgX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAodjEpLCAoc2NhbGUpKQoKLy8vIFN0b3JlcyA4IHBhY2tlZCBkb3VibGUtcHJlY2lzaW9uICg2NC1iaXQpIGZsb2F0aW5nLXBvaW50IGVsZW1lbnRzIGluIFxhIHYxCi8vLyB0byBtZW1vcnkgbG9jYXRpb25zIHN0YXJ0aW5nIGF0IGxvY2F0aW9uIFxhIGJhc2VfYWRkciBhdCBwYWNrZWQgMzItYml0Ci8vLyBpbnRlZ2VyIGluZGljZXMgc3RvcmVkIGluIFxhIHZpbmRleCBzY2FsZWQgYnkgXGEgc2NhbGUuIE9ubHkgdGhvc2UgZWxlbWVudHMKLy8vIHdob3NlIGNvcnJlc3BvbmRpbmcgbWFzayBiaXQgaXMgc2V0IGluIHdyaXRlbWFzayBcYSBtYXNrIGFyZSB3cml0dGVuIHRvCi8vLyBtZW1vcnkuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU0NBVFRFUkRQRCA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyBGT1IgaiA6PSAwIHRvIDcKLy8vICAgaSA6PSBqKjY0Ci8vLyAgIG0gOj0gaiozMgovLy8gICBJRiBtYXNrW2pdCi8vLyAgICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgICBNRU1bYWRkcis2MzphZGRyXSA6PSBhW2krNjM6aV0KLy8vICAgRkkKLy8vIEVOREZPUgovLy8gXGVuZG9wZXJhdGlvbgojZGVmaW5lIF9tbTUxMl9tYXNrX2kzMmxvc2NhdHRlcl9wZChiYXNlX2FkZHIsIG1hc2ssIHZpbmRleCwgdjEsIHNjYWxlKSAgICAgICAgXAogIF9tbTUxMl9tYXNrX2kzMnNjYXR0ZXJfcGQoKGJhc2VfYWRkciksIChtYXNrKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tNTEyX2Nhc3RzaTUxMl9zaTI1Nih2aW5kZXgpLCAodjEpLCAoc2NhbGUpKQoKLy8vIFN0b3JlcyA4IHBhY2tlZCA2NC1iaXQgaW50ZWdlciBlbGVtZW50cyBsb2NhdGVkIGluIFxhIHYxIGFuZCBzdG9yZXMgdGhlbSBpbgovLy8gbWVtb3J5IGxvY2F0aW9ucyBzdGFydGluZyBhdCBsb2NhdGlvbiBcYSBiYXNlX2FkZHIgYXQgcGFja2VkIDMyLWJpdCBpbnRlZ2VyCi8vLyBpbmRpY2VzIHN0b3JlZCBpbiBcYSB2aW5kZXggc2NhbGVkIGJ5IFxhIHNjYWxlLgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBTQ0FUVEVSRFEgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gRk9SIGogOj0gMCB0byA3Ci8vLyAgIGkgOj0gaio2NAovLy8gICBtIDo9IGoqMzIKLy8vICAgYWRkciA6PSBiYXNlX2FkZHIgKyBTaWduRXh0ZW5kNjQodmluZGV4W20rMzE6bV0pICogWmVyb0V4dGVuZDY0KHNjYWxlKSAqIDgKLy8vICAgTUVNW2FkZHIrNjM6YWRkcl0gOj0gYVtpKzYzOmldCi8vLyBFTkRGT1IKLy8vIFxlbmRvcGVyYXRpb24KI2RlZmluZSBfbW01MTJfaTMybG9zY2F0dGVyX2VwaTY0KGJhc2VfYWRkciwgdmluZGV4LCB2MSwgc2NhbGUpICAgICAgICAgICAgICAgIFwKICBfbW01MTJfaTMyc2NhdHRlcl9lcGk2NCgoYmFzZV9hZGRyKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KHZpbmRleCksICh2MSksIChzY2FsZSkpCgovLy8gU3RvcmVzIDggcGFja2VkIDY0LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIGxvY2F0ZWQgaW4gYSBhbmQgc3RvcmVzIHRoZW0gaW4KLy8vIG1lbW9yeSBsb2NhdGlvbnMgc3RhcnRpbmcgYXQgbG9jYXRpb24gXGEgYmFzZV9hZGRyIGF0IHBhY2tlZCAzMi1iaXQgaW50ZWdlcgovLy8gaW5kaWNlcyBzdG9yZWQgaW4gXGEgdmluZGV4IHNjYWxlZCBieSBzY2FsZSB1c2luZyB3cml0ZW1hc2sgXGEgbWFzayAoZWxlbWVudHMKLy8vIHdob3NlIGNvcnJlc3BvbmRpbmcgbWFzayBiaXQgaXMgbm90IHNldCBhcmUgbm90IHdyaXR0ZW4gdG8gbWVtb3J5KS4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0NBVFRFUkRRIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vIEZPUiBqIDo9IDAgdG8gNwovLy8gICBpIDo9IGoqNjQKLy8vICAgbSA6PSBqKjMyCi8vLyAgIElGIG1hc2tbal0KLy8vICAgICBhZGRyIDo9IGJhc2VfYWRkciArIFNpZ25FeHRlbmQ2NCh2aW5kZXhbbSszMTptXSkgKiBaZXJvRXh0ZW5kNjQoc2NhbGUpICogOAovLy8gICAgIE1FTVthZGRyKzYzOmFkZHJdIDo9IGFbaSs2MzppXQovLy8gICBGSQovLy8gRU5ERk9SCi8vLyBcZW5kb3BlcmF0aW9uCiNkZWZpbmUgX21tNTEyX21hc2tfaTMybG9zY2F0dGVyX2VwaTY0KGJhc2VfYWRkciwgbWFzaywgdmluZGV4LCB2MSwgc2NhbGUpICAgICBcCiAgX21tNTEyX21hc2tfaTMyc2NhdHRlcl9lcGk2NCgoYmFzZV9hZGRyKSwgKG1hc2spLCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW01MTJfY2FzdHNpNTEyX3NpMjU2KHZpbmRleCksICh2MSksIChzY2FsZSkpCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fQVZYNTEyRklOVFJJTl9IICovCgAvKj09PS0tLS0tLS0tLS0tIGF2eDUxMmZwMTZpbnRyaW4uaCAtIEFWWDUxMi1GUDE2IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEyZnAxNmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJGUDE2SU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkZQMTZJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwp0eXBlZGVmIF9GbG9hdDE2IF9fdjMyaGYgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7CnR5cGVkZWYgX0Zsb2F0MTYgX19tNTEyaCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oNjQpLCBfX2FsaWduZWRfXyg2NCkpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX201MTJoX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX3Y4aGYgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgX0Zsb2F0MTYgX19tMTI4aCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX20xMjhoX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBfRmxvYXQxNiBfX3YxNmhmIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMiksIF9fYWxpZ25lZF9fKDMyKSkpOwp0eXBlZGVmIF9GbG9hdDE2IF9fbTI1NmggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgX0Zsb2F0MTYgX19tMjU2aF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMiksIF9fYWxpZ25lZF9fKDEpKSk7CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmcDE2IiksICAgICBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oNTEyKSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmcDE2IiksICAgICBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmcDE2IiksICAgICBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2N2dHNoX2goX19tNTEyaCBfX2EpIHsKICByZXR1cm4gX19hWzBdOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3NldHplcm9fcGgodm9pZCkgewogIHJldHVybiAoX19tMTI4aCl7MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjB9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3NldHplcm9fcGgodm9pZCkgewogIHJldHVybiAoX19tMjU2aCl7MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsCiAgICAgICAgICAgICAgICAgICAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl91bmRlZmluZWRfcGgodm9pZCkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl91bmRlZjI1NigpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3NldHplcm9fcGgodm9pZCkgewogIHJldHVybiAoX19tNTEyaCl7MC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsCiAgICAgICAgICAgICAgICAgICAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwKICAgICAgICAgICAgICAgICAgIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMCwgMC4wLCAwLjAsIDAuMH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV91bmRlZmluZWRfcGgodm9pZCkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl91bmRlZjEyOCgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfdW5kZWZpbmVkX3BoKHZvaWQpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdW5kZWY1MTIoKTsKfQoKc3RhdGljIF9faW5saW5lIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9zZXQxX3BoKF9GbG9hdDE2IF9faCkgewogIHJldHVybiAoX19tNTEyaCkoX192MzJoZil7X19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oLCBfX2gsIF9faCwgX19oLCBfX2gsIF9faCwgX19oLCBfX2h9Owp9CgpzdGF0aWMgX19pbmxpbmUgX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3NldF9waChfRmxvYXQxNiBfX2gxLCBfRmxvYXQxNiBfX2gyLCBfRmxvYXQxNiBfX2gzLCBfRmxvYXQxNiBfX2g0LAogICAgICAgICAgICAgIF9GbG9hdDE2IF9faDUsIF9GbG9hdDE2IF9faDYsIF9GbG9hdDE2IF9faDcsIF9GbG9hdDE2IF9faDgsCiAgICAgICAgICAgICAgX0Zsb2F0MTYgX19oOSwgX0Zsb2F0MTYgX19oMTAsIF9GbG9hdDE2IF9faDExLCBfRmxvYXQxNiBfX2gxMiwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2gxMywgX0Zsb2F0MTYgX19oMTQsIF9GbG9hdDE2IF9faDE1LCBfRmxvYXQxNiBfX2gxNiwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2gxNywgX0Zsb2F0MTYgX19oMTgsIF9GbG9hdDE2IF9faDE5LCBfRmxvYXQxNiBfX2gyMCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2gyMSwgX0Zsb2F0MTYgX19oMjIsIF9GbG9hdDE2IF9faDIzLCBfRmxvYXQxNiBfX2gyNCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2gyNSwgX0Zsb2F0MTYgX19oMjYsIF9GbG9hdDE2IF9faDI3LCBfRmxvYXQxNiBfX2gyOCwKICAgICAgICAgICAgICBfRmxvYXQxNiBfX2gyOSwgX0Zsb2F0MTYgX19oMzAsIF9GbG9hdDE2IF9faDMxLCBfRmxvYXQxNiBfX2gzMikgewogIHJldHVybiAoX19tNTEyaCkoX192MzJoZil7X19oMzIsIF9faDMxLCBfX2gzMCwgX19oMjksIF9faDI4LCBfX2gyNywgX19oMjYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2gyNSwgX19oMjQsIF9faDIzLCBfX2gyMiwgX19oMjEsIF9faDIwLCBfX2gxOSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faDE4LCBfX2gxNywgX19oMTYsIF9faDE1LCBfX2gxNCwgX19oMTMsIF9faDEyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oMTEsIF9faDEwLCBfX2g5LCAgX19oOCwgIF9faDcsICBfX2g2LCAgX19oNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faDQsICBfX2gzLCAgX19oMiwgIF9faDF9Owp9CgojZGVmaW5lIF9tbTUxMl9zZXRyX3BoKGgxLCBoMiwgaDMsIGg0LCBoNSwgaDYsIGg3LCBoOCwgaDksIGgxMCwgaDExLCBoMTIsIGgxMywgXAogICAgICAgICAgICAgICAgICAgICAgIGgxNCwgaDE1LCBoMTYsIGgxNywgaDE4LCBoMTksIGgyMCwgaDIxLCBoMjIsIGgyMywgaDI0LCAgXAogICAgICAgICAgICAgICAgICAgICAgIGgyNSwgaDI2LCBoMjcsIGgyOCwgaDI5LCBoMzAsIGgzMSwgaDMyKSAgICAgICAgICAgICAgICAgXAogIF9tbTUxMl9zZXRfcGgoKGgzMiksIChoMzEpLCAoaDMwKSwgKGgyOSksIChoMjgpLCAoaDI3KSwgKGgyNiksIChoMjUpLCAoaDI0KSwgXAogICAgICAgICAgICAgICAgKGgyMyksIChoMjIpLCAoaDIxKSwgKGgyMCksIChoMTkpLCAoaDE4KSwgKGgxNyksIChoMTYpLCAoaDE1KSwgXAogICAgICAgICAgICAgICAgKGgxNCksIChoMTMpLCAoaDEyKSwgKGgxMSksIChoMTApLCAoaDkpLCAoaDgpLCAoaDcpLCAoaDYpLCAgICAgXAogICAgICAgICAgICAgICAgKGg1KSwgKGg0KSwgKGgzKSwgKGgyKSwgKGgxKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Nhc3RwaF9wcyhfX20xMjhoIF9fYSkgewogIHJldHVybiAoX19tMTI4KV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY2FzdHBoX3BzKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIChfX20yNTYpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9jYXN0cGhfcHMoX19tNTEyaCBfX2EpIHsKICByZXR1cm4gKF9fbTUxMilfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jYXN0cGhfcGQoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY2FzdHBoX3BkKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Nhc3RwaF9wZChfX201MTJoIF9fYSkgewogIHJldHVybiAoX19tNTEyZClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jYXN0cGhfc2kxMjgoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY2FzdHBoX3NpMjU2KF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwaF9zaTUxMihfX201MTJoIF9fYSkgewogIHJldHVybiAoX19tNTEyaSlfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jYXN0cHNfcGgoX19tMTI4IF9fYSkgewogIHJldHVybiAoX19tMTI4aClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jYXN0cHNfcGgoX19tMjU2IF9fYSkgewogIHJldHVybiAoX19tMjU2aClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9jYXN0cHNfcGgoX19tNTEyIF9fYSkgewogIHJldHVybiAoX19tNTEyaClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jYXN0cGRfcGgoX19tMTI4ZCBfX2EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfY2FzdHBkX3BoKF9fbTI1NmQgX19hKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Nhc3RwZF9waChfX201MTJkIF9fYSkgewogIHJldHVybiAoX19tNTEyaClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jYXN0c2kxMjhfcGgoX19tMTI4aSBfX2EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY2FzdHNpMjU2X3BoKF9fbTI1NmkgX19hKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RzaTUxMl9waChfX201MTJpIF9fYSkgewogIHJldHVybiAoX19tNTEyaClfX2E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jYXN0cGgyNTZfcGgxMjgoX19tMjU2aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBoNTEyX3BoMTI4KF9fbTUxMmggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2Nhc3RwaDUxMl9waDI1NihfX201MTJoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMiwgMTMsIDE0LCAxNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jYXN0cGgxMjhfcGgyNTYoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIC0xLCAtMSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jYXN0cGgxMjhfcGg1MTIoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19hLCBfX2EsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIC0xLCAtMSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY2FzdHBoMjU2X3BoNTEyKF9fbTI1NmggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgX19hLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEyLCAxMywgMTQsIDE1LCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzE2IHggaGFsZl0gZnJvbSBhCi8vLyAgICAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGhhbGZdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMzg0IGJpdHMgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGhhbGZdLgovLy8gXHJldHVybnMgQSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMTYgeCBoYWxmXS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgdXBwZXIgMzg0IGJpdHMgYXJlIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfemV4dHBoMTI4X3BoMjU2KF9fbTEyOGggX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fYSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAwLCAxLCAyLCAzLCA0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMzIgeCBoYWxmXSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggaGFsZl0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0Ci8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaGFsZl0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFszMiB4IGhhbGZdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzODQgYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl96ZXh0cGgxMjhfcGg1MTIoX19tMTI4aCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIF9fYSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLAogICAgICAxMywgMTQsIDE1LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA1MTItYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMzIgeCBoYWxmXSBmcm9tIGEKLy8vICAgIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsxNiB4IGhhbGZdLiBUaGUgbG93ZXIgMjU2IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIgMjU2IGJpdHMgYXJlIHNldAovLy8gICAgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBoYWxmXS4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzMyIHggaGFsZl0uIFRoZSBsb3dlciAyNTYgYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIHVwcGVyIDI1NiBiaXRzIGFyZSBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3pleHRwaDI1Nl9waDUxMihfX20yNTZoIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIDAsIDEsIDIsIDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyOSwgMzAsIDMxKTsKfQoKI2RlZmluZSBfbW1fY29taV9yb3VuZF9zaChBLCBCLCBQLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCAoaW50KShQKSwgKGludCkoUikpCgojZGVmaW5lIF9tbV9jb21pX3NoKEEsIEIsIHByZWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9tbV9jb21pX3JvdW5kX3NoKChBKSwgKEIpLCAocHJlZCksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2NvbWllcV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9FUV9PUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jb21pbHRfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTFRfT1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY29taWxlX3NoKF9fbTEyOGggQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0xFX09TLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2NvbWlndF9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIEIpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmNvbWlzaCgoX192OGhmKUEsIChfX3Y4aGYpQiwgX0NNUF9HVF9PUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jb21pZ2Vfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfR0VfT1MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY29taW5lcV9zaChfX20xMjhoIEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTkVRX1VTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pZXFfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0VRX09RLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pbHRfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0xUX09RLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pbGVfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0xFX09RLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pZ3Rfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0dUX09RLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pZ2Vfc2goX19tMTI4aCBBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Y29taXNoKChfX3Y4aGYpQSwgKF9fdjhoZilCLCBfQ01QX0dFX09RLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3Vjb21pbmVxX3NoKF9fbTEyOGggQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBCKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Zjb21pc2goKF9fdjhoZilBLCAoX192OGhmKUIsIF9DTVBfTkVRX1VRLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9hZGRfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpKChfX3YzMmhmKV9fQSArIChfX3YzMmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FkZF9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9hZGRfcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYWRkX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfYWRkX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9hZGRfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9hZGRwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfYWRkX3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfYWRkX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9hZGRfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX2FkZF9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9zdWJfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpKChfX3YzMmhmKV9fQSAtIChfX3YzMmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX3N1Yl9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9zdWJfcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfc3ViX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfc3ViX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9zdWJfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zdWJwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3ViX3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfc3ViX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zdWJfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX3N1Yl9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9tdWxfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpKChfX3YzMmhmKV9fQSAqIChfX3YzMmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bF9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9tdWxfcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbXVsX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfbXVsX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9tdWxfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9tdWxwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbXVsX3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbXVsX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9tdWxfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX211bF9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9kaXZfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpKChfX3YzMmhmKV9fQSAvIChfX3YzMmhmKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Rpdl9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9kaXZfcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZGl2X3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfZGl2X3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9kaXZfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9kaXZwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZGl2X3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfZGl2X3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9kaXZfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX2Rpdl9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9taW5fcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfbWlucGg1MTIoKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21pbl9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9taW5fcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWluX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfbWluX3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9taW5fcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9taW5waDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbWluX3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbWluX3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9taW5fcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX21pbl9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9tYXhfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfbWF4cGg1MTIoKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX21heF9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMilfX1UsIChfX3YzMmhmKV9tbTUxMl9tYXhfcGgoX19BLCBfX0IpLCAoX192MzJoZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfbWF4X3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfbWF4X3BoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9tYXhfcm91bmRfcGgoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9tYXhwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfbWF4X3JvdW5kX3BoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfbWF4X3JvdW5kX3BoKChBKSwgKEIpLCAoUikpLCAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9tYXhfcm91bmRfcGgoVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX21heF9yb3VuZF9waCgoQSksIChCKSwgKFIpKSwgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9hYnNfcGgoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX21tNTEyX2FuZF9lcGkzMihfbW01MTJfc2V0MV9lcGkzMigweDdGRkY3RkZGKSwgKF9fbTUxMmkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2NvbmpfcGNoKF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9tbTUxMl94b3JfcHMoKF9fbTUxMilfX0EsIF9tbTUxMl9zZXQxX3BzKC0wLjBmKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2NvbmpfcGNoKF9fbTUxMmggX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoCiAgICAgIChfX21tYXNrMTYpX19VLCAoX192MTZzZilfbW01MTJfY29ual9wY2goX19BKSwgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2NvbmpfcGNoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9jb25qX3BjaChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9hZGRfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0FbMF0gKz0gX19CWzBdOwogIHJldHVybiBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2FkZF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0EgPSBfbW1fYWRkX3NoKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2hfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfYWRkX3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9hZGRfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbV9hZGRfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9hZGRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfYWRkX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2FkZHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2FkZF9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2FkZHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zdWJfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0FbMF0gLT0gX19CWzBdOwogIHJldHVybiBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX3N1Yl9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0EgPSBfbW1fc3ViX3NoKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2hfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfc3ViX3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9zdWJfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbV9zdWJfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zdWJzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfc3ViX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3N1YnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3N1Yl9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3N1YnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tdWxfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0FbMF0gKj0gX19CWzBdOwogIHJldHVybiBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX211bF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0EgPSBfbW1fbXVsX3NoKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2hfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfbXVsX3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9tdWxfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbV9tdWxfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9tdWxzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfbXVsX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX211bHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X211bF9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX211bHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9kaXZfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0FbMF0gLz0gX19CWzBdOwogIHJldHVybiBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2Rpdl9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICBfX0EgPSBfbW1fZGl2X3NoKF9fQSwgX19CKTsKICByZXR1cm4gX19idWlsdGluX2lhMzJfc2VsZWN0c2hfMTI4KF9fVSwgX19BLCBfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfZGl2X3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIF9fQSA9IF9tbV9kaXZfc2goX19BLCBfX0IpOwogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfX0EsIF9tbV9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbV9kaXZfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9kaXZzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZGl2X3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2RpdnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2Rpdl9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2RpdnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9taW5fc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWluc2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfbWluX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfbWluX3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWluX3JvdW5kX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWluc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX21pbl9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9taW5fcm91bmRfc2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9taW5zaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWF4X3NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21heHNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX21heF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X21heF9zaChfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21heF9yb3VuZF9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX21heHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19tYXhfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfbWF4X3JvdW5kX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbWF4c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfY21wX3JvdW5kX3BoX21hc2soQSwgQiwgUCwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXBwaDUxMl9tYXNrKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoUCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY21wX3JvdW5kX3BoX21hc2soVSwgQSwgQiwgUCwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfY21wcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZikoX19tNTEyaCkoQiksIChpbnQpKFApLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfY21wX3BoX21hc2soQSwgQiwgUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfbW01MTJfY21wX3JvdW5kX3BoX21hc2soKEEpLCAoQiksIChQKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW01MTJfbWFza19jbXBfcGhfbWFzayhVLCBBLCBCLCBQKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfbW01MTJfbWFza19jbXBfcm91bmRfcGhfbWFzaygoVSksIChBKSwgKEIpLCAoUCksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX2NtcF9yb3VuZF9zaF9tYXNrKFgsIFksIFAsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzaF9tYXNrKChfX3Y4aGYpKF9fbTEyOGgpKFgpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKFkpLCAoaW50KShQKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfcm91bmRfc2hfbWFzayhNLCBYLCBZLCBQLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNoX21hc2soKF9fdjhoZikoX19tMTI4aCkoWCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZikoX19tMTI4aCkoWSksIChpbnQpKFApLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShNKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fY21wX3NoX21hc2soWCwgWSwgUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2NtcHNoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoWCksIChfX3Y4aGYpKF9fbTEyOGgpKFkpLCAoaW50KShQKSwgKF9fbW1hc2s4KS0xLCAgICAgIFwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX3NoX21hc2soTSwgWCwgWSwgUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9jbXBzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKFgpLCAoX192OGhmKShfX20xMjhoKShZKSwgKGludCkoUCksIChfX21tYXNrOCkoTSksICAgICBcCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCi8vIGxvYWRzIHdpdGggdm1vdnNoOgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbG9hZF9zaCh2b2lkIGNvbnN0ICpfX2RwKSB7CiAgc3RydWN0IF9fbW1fbG9hZF9zaF9zdHJ1Y3QgewogICAgX0Zsb2F0MTYgX191OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9GbG9hdDE2IF9fdSA9ICgoc3RydWN0IF9fbW1fbG9hZF9zaF9zdHJ1Y3QgKilfX2RwKS0+X191OwogIHJldHVybiAoX19tMTI4aCl7X191LCAwLCAwLCAwLCAwLCAwLCAwLCAwfTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbG9hZF9zaChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBjb25zdCB2b2lkICpfX0EpIHsKICBfX20xMjhoIHNyYyA9IChfX3Y4aGYpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoCiAgICAgIChfX3Y4aGYpX19XLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIDAsIDgsIDgsIDgsIDgsIDgsIDgsIDgpOwoKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbG9hZHNoMTI4X21hc2soKF9fdjhoZiAqKV9fQSwgc3JjLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2xvYWRfc2goX19tbWFzazggX19VLCBjb25zdCB2b2lkICpfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfbG9hZHNoMTI4X21hc2soCiAgICAgIChfX3Y4aGYgKilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgX19VICYgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkX3BoKHZvaWQgY29uc3QgKl9fcCkgewogIHJldHVybiAqKGNvbnN0IF9fbTUxMmggKilfX3A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9sb2FkX3BoKHZvaWQgY29uc3QgKl9fcCkgewogIHJldHVybiAqKGNvbnN0IF9fbTI1NmggKilfX3A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9sb2FkX3BoKHZvaWQgY29uc3QgKl9fcCkgewogIHJldHVybiAqKGNvbnN0IF9fbTEyOGggKilfX3A7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9sb2FkdV9waCh2b2lkIGNvbnN0ICpfX3ApIHsKICBzdHJ1Y3QgX19sb2FkdV9waCB7CiAgICBfX201MTJoX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X3BoICopX19wKS0+X192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZHVfcGgodm9pZCBjb25zdCAqX19wKSB7CiAgc3RydWN0IF9fbG9hZHVfcGggewogICAgX19tMjU2aF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9waCAqKV9fcCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2xvYWR1X3BoKHZvaWQgY29uc3QgKl9fcCkgewogIHN0cnVjdCBfX2xvYWR1X3BoIHsKICAgIF9fbTEyOGhfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfcGggKilfX3ApLT5fX3Y7Cn0KCi8vIHN0b3JlcyB3aXRoIHZtb3ZzaDoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3N0b3JlX3NoKHZvaWQgKl9fZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fYSkgewogIHN0cnVjdCBfX21tX3N0b3JlX3NoX3N0cnVjdCB7CiAgICBfRmxvYXQxNiBfX3U7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19tbV9zdG9yZV9zaF9zdHJ1Y3QgKilfX2RwKS0+X191ID0gX19hWzBdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19zdG9yZV9zaCh2b2lkICpfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICBfX2J1aWx0aW5faWEzMl9zdG9yZXNoMTI4X21hc2soKF9fdjhoZiAqKV9fVywgX19BLCBfX1UgJiAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3N0b3JlX3BoKHZvaWQgKl9fUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19BKSB7CiAgKihfX201MTJoICopX19QID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfbW0yNTZfc3RvcmVfcGgodm9pZCAqX19QLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0EpIHsKICAqKF9fbTI1NmggKilfX1AgPSBfX0E7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zdG9yZV9waCh2b2lkICpfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSkgewogICooX19tMTI4aCAqKV9fUCA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3N0b3JldV9waCh2b2lkICpfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0EpIHsKICBzdHJ1Y3QgX19zdG9yZXVfcGggewogICAgX19tNTEyaF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9waCAqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX21tMjU2X3N0b3JldV9waCh2b2lkICpfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMjU2aCBfX0EpIHsKICBzdHJ1Y3QgX19zdG9yZXVfcGggewogICAgX19tMjU2aF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9waCAqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3N0b3JldV9waCh2b2lkICpfX1AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EpIHsKICBzdHJ1Y3QgX19zdG9yZXVfcGggewogICAgX19tMTI4aF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9waCAqKV9fUCktPl9fdiA9IF9fQTsKfQoKLy8gbW92ZXMgd2l0aCB2bW92c2g6CnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tb3ZlX3NoKF9fbTEyOGggX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fYikgewogIF9fYVswXSA9IF9fYlswXTsKICByZXR1cm4gX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19tb3ZlX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9zZWxlY3RzaF8xMjgoX19VLCBfbW1fbW92ZV9zaChfX0EsIF9fQiksIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9tb3ZlX3NoKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHNoXzEyOChfX1UsIF9tbV9tb3ZlX3NoKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BoKCkpOwp9CgovLyB2bW92dzoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNpMTZfc2kxMjgoc2hvcnQgX19hKSB7CiAgcmV0dXJuIChfX20xMjhpKShfX3Y4aGkpe19fYSwgMCwgMCwgMCwgMCwgMCwgMCwgMH07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHNob3J0IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c2kxMjhfc2kxNihfX20xMjhpIF9fYSkgewogIF9fdjhoaSBfX2IgPSAoX192OGhpKV9fYTsKICByZXR1cm4gX19iWzBdOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfcmNwX3BoKF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JjcHBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazMyKS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfcmNwX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yY3BwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3JjcF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yY3BwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX3JzcXJ0X3BoKF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0cGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMzIpLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19yc3FydF9waChfX201MTJoIF9fVywgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcnNxcnRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMilfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfcnNxcnRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcnNxcnRwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpX19VKTsKfQoKI2RlZmluZSBfbW01MTJfZ2V0bWFudF9waChBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazMyKS0xLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0bWFudF9waChXLCBVLCBBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksIChfX3YzMmhmKShfX201MTJoKShXKSwgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZ2V0bWFudF9waChVLCBBLCBCLCBDKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0bWFudHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KSgoKEMpIDw8IDIpIHwgKEIpKSwgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMikoVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9nZXRtYW50X3JvdW5kX3BoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZ2V0bWFudF9yb3VuZF9waChXLCBVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoKChDKSA8PCAyKSB8IChCKSksIChfX3YzMmhmKShfX201MTJoKShXKSwgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9nZXRtYW50X3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRtYW50cGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKCgoQykgPDwgMikgfCAoQikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2dldGV4cF9waChfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZ2V0ZXhwX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9nZXRleHBfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZ2V0ZXhwX3JvdW5kX3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfZ2V0ZXhwcGg1MTJfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2dldGV4cF9yb3VuZF9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9nZXRleHBwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShXKSwgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2dldGV4cF9yb3VuZF9waChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHBoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9zY2FsZWZfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfc2NhbGVmX3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGg1MTJfbWFzaygoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX1csIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zY2FsZWZfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfc2NhbGVmX3JvdW5kX3BoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3NjYWxlZl9yb3VuZF9waChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zY2FsZWZwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKFcpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfc2NhbGVmX3JvdW5kX3BoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2NhbGVmcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JvdW5kc2NhbGVfcGgoQSwgQikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKGludCkoQiksIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fbW1hc2szMiktMSwgICBcCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JvdW5kc2NhbGVfcGgoQSwgQiwgQywgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQyksIChpbnQpKGltbSksIChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShCKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JvdW5kc2NhbGVfcGgoQSwgQiwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShCKSwgKGludCkoaW1tKSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKEEpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yb3VuZHNjYWxlX3JvdW5kX3BoKEEsIEIsIEMsIGltbSwgUikgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVwaF9tYXNrKChfX3YzMmhmKShfX201MTJoKShDKSwgKGludCkoaW1tKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKEIpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yb3VuZHNjYWxlX3JvdW5kX3BoKEEsIEIsIGltbSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXBoX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoaW50KShpbW0pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JvdW5kc2NhbGVfcm91bmRfcGgoQSwgaW1tLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlcGhfbWFzaygoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfbW01MTJfdW5kZWZpbmVkX3BoKCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9yZWR1Y2VfcGgoQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgICAgICAgXAogICAgICAoX19tbWFzazMyKS0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yZWR1Y2VfcGgoVywgVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfcmVkdWNlcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KShpbW0pLCAoX192MzJoZikoX19tNTEyaCkoVyksICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yZWR1Y2VfcGgoVSwgQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKGltbSksIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmVkdWNlX3JvdW5kX3BoKFcsIFUsIEEsIGltbSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKFcpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JlZHVjZV9yb3VuZF9waChVLCBBLCBpbW0sIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JlZHVjZV9yb3VuZF9waChBLCBpbW0sIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3JjcF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yY3BzaF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfcmNwX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yY3BzaF9tYXNrKChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrel9yY3Bfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JjcHNoX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX3JzcXJ0X3NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcnNxcnRzaF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfcnNxcnRfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JzcXJ0c2hfbWFzaygoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9yc3FydF9zaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yc3FydHNoX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VKTsKfQoKI2RlZmluZSBfbW1fZ2V0bWFudF9yb3VuZF9zaChBLCBCLCBDLCBELCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoaW50KSgoKEQpIDw8IDIpIHwgKEMpKSwgICAgIFwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX2dldG1hbnRfc2goQSwgQiwgQywgRCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldG1hbnRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKGludCkoKChEKSA8PCAyKSB8IChDKSksICAgICBcCiAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19nZXRtYW50X3NoKFcsIFUsIEEsIEIsIEMsIEQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoaW50KSgoKEQpIDw8IDIpIHwgKEMpKSwgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX21tYXNrOCkoVSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX2dldG1hbnRfcm91bmRfc2goVywgVSwgQSwgQiwgQywgRCwgUikgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRtYW50c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChpbnQpKCgoRCkgPDwgMikgfCAoQykpLCAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9zaChVLCBBLCBCLCBDLCBEKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoaW50KSgoKEQpIDw8IDIpIHwgKEMpKSwgICAgIFwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpKFUpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfZ2V0bWFudF9yb3VuZF9zaChVLCBBLCBCLCBDLCBELCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0bWFudHNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoaW50KSgoKEQpIDw8IDIpIHwgKEMpKSwgICAgIFwKICAgICAgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9nZXRleHBfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBzaDEyOF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9nZXRleHBfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfZ2V0ZXhwc2gxMjhfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZ2V0ZXhwX3NoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBzaDEyOF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrX2dldGV4cF9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBzaDEyOF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZ2V0ZXhwX3NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX2dldGV4cHNoMTI4X3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9nZXRleHBfcm91bmRfc2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9nZXRleHBzaDEyOF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9zY2FsZWZfcm91bmRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zY2FsZWZzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zY2FsZWZfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmc2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpKF9fQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zY2FsZWZfc2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNoX3JvdW5kX21hc2soKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2tfc2NhbGVmX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zY2FsZWZfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2NhbGVmc2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X3NjYWxlZl9yb3VuZF9zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NjYWxlZnNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JvdW5kc2NhbGVfcm91bmRfc2goQSwgQiwgaW1tLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JuZHNjYWxlc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoaW1tKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcm91bmRzY2FsZV9zaChBLCBCLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShpbW0pLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19yb3VuZHNjYWxlX3NoKFcsIFUsIEEsIEIsIEkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrX3JvdW5kc2NhbGVfcm91bmRfc2goVywgVSwgQSwgQiwgSSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcm91bmRzY2FsZV9zaChVLCBBLCBCLCBJKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcm5kc2NhbGVzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoSSksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9tYXNrel9yb3VuZHNjYWxlX3JvdW5kX3NoKFUsIEEsIEIsIEksIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9ybmRzY2FsZXNoX3JvdW5kX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShJKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcmVkdWNlX3NoKEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmVkdWNlc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShDKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3NoKFcsIFUsIEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3NoKFUsIEEsIEIsIEMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmVkdWNlc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9yZWR1Y2Vfcm91bmRfc2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKEMpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JlZHVjZV9yb3VuZF9zaChXLCBVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3JvdW5kX3NoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfcmVkdWNlc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3NxcnRfcm91bmRfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NxcnRwaDUxMigoX192MzJoZikoX19tNTEyaCkoQSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfc3FydF9yb3VuZF9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoX192MzJoZilfbW01MTJfc3FydF9yb3VuZF9waCgoQSksIChSKSksICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9zcXJ0X3JvdW5kX3BoKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKF9fdjMyaGYpX21tNTEyX3NxcnRfcm91bmRfcGgoKEEpLCAoUikpLCAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9zcXJ0X3BoKF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NxcnRwaDUxMigoX192MzJoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19zcXJ0X3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3RwaF81MTIoCiAgICAgIChfX21tYXNrMzIpKF9fVSksCiAgICAgIChfX3YzMmhmKV9fYnVpbHRpbl9pYTMyX3NxcnRwaDUxMigoX19BKSwgKF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpLAogICAgICAoX192MzJoZikoX19tNTEyaCkoX19XKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9zcXJ0X3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBoXzUxMigKICAgICAgKF9fbW1hc2szMikoX19VKSwKICAgICAgKF9fdjMyaGYpX19idWlsdGluX2lhMzJfc3FydHBoNTEyKChfX0EpLCAoX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSksCiAgICAgIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCkpOwp9CgojZGVmaW5lIF9tbV9zcXJ0X3JvdW5kX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zcXJ0c2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgKF9fdjhoZikoX19tMTI4aCkoQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfc3FydF9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NxcnRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoVyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NxcnRfcm91bmRfc2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NxcnRzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLCAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9zcXJ0X3NoKF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zcXJ0c2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZikoX19tMTI4aCkoX19BKSwgKF9fdjhoZikoX19tMTI4aCkoX19CKSwgKF9fdjhoZilfbW1fc2V0emVyb19waCgpLAogICAgICAoX19tbWFzazgpLTEsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX3NxcnRfc2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazMyIF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zcXJ0c2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZikoX19tMTI4aCkoX19BKSwgKF9fdjhoZikoX19tMTI4aCkoX19CKSwgKF9fdjhoZikoX19tMTI4aCkoX19XKSwKICAgICAgKF9fbW1hc2s4KShfX1UpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfc3FydF9zaChfX21tYXNrMzIgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc3FydHNoX3JvdW5kX21hc2soCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKF9fQSksIChfX3Y4aGYpKF9fbTEyOGgpKF9fQiksIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwKICAgICAgKF9fbW1hc2s4KShfX1UpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZwY2xhc3NfcGhfbWFzayhVLCBBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazMyKV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwaDUxMl9tYXNrKChfX3YzMmhmKShfX201MTJoKShBKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIChfX21tYXNrMzIpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2ZwY2xhc3NfcGhfbWFzayhBLCBpbW0pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfZnBjbGFzc3BoNTEyX21hc2soKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2szMiktMSkpCgojZGVmaW5lIF9tbV9mcGNsYXNzX3NoX21hc2soQSwgaW1tKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3NoX21hc2soKF9fdjhoZikoX19tMTI4aCkoQSksIChpbnQpKGltbSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZnBjbGFzc19zaF9tYXNrKFUsIEEsIGltbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzc2hfbWFzaygoX192OGhmKShfX20xMjhoKShBKSwgKGludCkoaW1tKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBkX3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4ZGYpKEEpLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGRfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKChfX3Y4ZGYpKEEpLCAoX192OGhmKShXKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX3BoKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwZDJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4ZGYpKEEpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9jdnRwZF9waChfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cGQycGg1MTJfbWFzaygKICAgICAgKF9fdjhkZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwZF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cGQycGg1MTJfbWFzaygKICAgICAgKF9fdjhkZilfX0EsIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGRfcGgoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cGQycGg1MTJfbWFzaygKICAgICAgKF9fdjhkZilfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfcGQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZGYpX21tNTEyX3VuZGVmaW5lZF9wZCgpLCAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9wZChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soKF9fdjhoZikoQSksIChfX3Y4ZGYpKFcpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGhfcGQoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfdmN2dHBoMnBkNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2N2dHBoX3BkKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkZilfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwZDUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzaF9zcyhBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKEEpLCAoX192OGhmKShCKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2N2dF9yb3VuZHNoX3NzKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzc19yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShBKSwgKF9fdjhoZikoQiksIChfX3Y0c2YpKFcpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9jdnRfcm91bmRzaF9zcyhVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzc19yb3VuZF9tYXNrKChfX3Y0c2YpKEEpLCAoX192OGhmKShCKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNoX3NzKF9fbTEyOCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHNoMnNzX3JvdW5kX21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192OGhmKV9fQiwgKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19jdnRzaF9zcyhfX20xMjggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmN2dHNoMnNzX3JvdW5kX21hc2soKF9fdjRzZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2t6X2N2dHNoX3NzKF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4IF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc3Nfcm91bmRfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y4aGYpX19CLCAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNzX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKChfX3Y4aGYpKEEpLCAoX192NHNmKShCKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2N2dF9yb3VuZHNzX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0c3Myc2hfcm91bmRfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjRzZikoQiksIChfX3Y4aGYpKFcpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9jdnRfcm91bmRzc19zaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0c3Myc2hfcm91bmRfbWFzaygoX192OGhmKShBKSwgKF9fdjRzZikoQiksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fY3Z0c3Nfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHNzX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza3pfY3Z0c3Nfc2goX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzczJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2Rfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHNkMnNoX3JvdW5kX21hc2soKF9fdjhoZikoQSksIChfX3YyZGYpKEIpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoZilfbW1fdW5kZWZpbmVkX3BoKCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kc2Rfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192MmRmKShCKSwgKF9fdjhoZikoVyksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHNkX3NoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaF9yb3VuZF9tYXNrKChfX3Y4aGYpKEEpLCAoX192MmRmKShCKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzZF9zaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkZilfX0IsIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHNkX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0c2Qyc2hfcm91bmRfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3YyZGYpX19CLCAoX192OGhmKV9fVywgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNkX3NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzZDJzaF9yb3VuZF9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjJkZilfX0IsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kc2hfc2QoQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNkX3JvdW5kX21hc2soKF9fdjJkZikoQSksIChfX3Y4aGYpKEIpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfY3Z0X3JvdW5kc2hfc2QoVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzZF9yb3VuZF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YyZGYpKEEpLCAoX192OGhmKShCKSwgKF9fdjJkZikoVyksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X2N2dF9yb3VuZHNoX3NkKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzZF9yb3VuZF9tYXNrKChfX3YyZGYpKEEpLCAoX192OGhmKShCKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzaF9zZChfX20xMjhkIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzZF9yb3VuZF9tYXNrKAogICAgICAoX192MmRmKV9fQSwgKF9fdjhoZilfX0IsIChfX3YyZGYpX21tX3VuZGVmaW5lZF9wZCgpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9tYXNrX2N2dHNoX3NkKF9fbTEyOGQgX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGQgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc2Rfcm91bmRfbWFzaygKICAgICAgKF9fdjJkZilfX0EsIChfX3Y4aGYpX19CLCAoX192MmRmKV9fVywgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHNoX3NkKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzZF9yb3VuZF9tYXNrKAogICAgICAoX192MmRmKV9fQSwgKF9fdjhoZilfX0IsIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXBpMTYoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnc1MTJfbWFzaygoX192MzJoZikoQSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfZXBpMTYoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3NTEyX21hc2soKF9fdjMyaGYpKEEpLCAoX192MzJoaSkoVyksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX2VwaTE2KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ3NTEyX21hc2soKF9fdjMyaGYpKEEpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwaF9lcGkxNihfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhpKV9fVywgKF9fbW1hc2szMilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGhfZXBpMTYoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnc1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoQSksIChfX3YzMmhpKV9tbTUxMl91bmRlZmluZWRfZXBpMzIoKSwgKF9fbW1hc2szMikoLTEpLCAgICAgICAgXAogICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwaF9lcGkxNihXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnc1MTJfbWFzaygoX192MzJoZikoQSksIChfX3YzMmhpKShXKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBoX2VwaTE2KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3NTEyX21hc2soKF9fdjMyaGYpKEEpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGhfZXBpMTYoX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBoX2VwaTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoaSlfX1csIChfX21tYXNrMzIpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwaTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRlcGkxNl9waChBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dzJwaDUxMl9tYXNrKChfX3YzMmhpKShBKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9tbTUxMl91bmRlZmluZWRfcGgoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcGkxNl9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHcycGg1MTJfbWFzaygoX192MzJoaSkoQSksIChfX3YzMmhmKShXKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpMTZfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHcycGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGkpKEEpLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTE2X3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR3MnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhpKV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXBpMTZfcGgoX19tNTEyaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR3MnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhpKV9fQSwgKF9fdjMyaGYpX19XLCAoX19tbWFzazMyKV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTE2X3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR3MnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhpKV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBoX2VwdTE2KEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShBKSwgKF9fdjMyaHUpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazMyKSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfZXB1MTYoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzUxMl9tYXNrKChfX3YzMmhmKShBKSwgKF9fdjMyaHUpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwaF9lcHUxNihVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXc1MTJfbWFzaygoX192MzJoZikoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJodSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX2VwdTE2KF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1dzUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmh1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMzIpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX2VwdTE2KF9fbTUxMmkgX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJodSlfX1csIChfX21tYXNrMzIpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGhfZXB1MTYoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnV3NTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwaF9lcHUxNihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXc1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShBKSwgKF9fdjMyaHUpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazMyKSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBoX2VwdTE2KFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXc1MTJfbWFzaygoX192MzJoZikoQSksIChfX3YzMmh1KShXKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBoX2VwdTE2KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1dzUxMl9tYXNrKChfX3YzMmhmKShBKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmh1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBoX2VwdTE2KF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJodSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGhfZXB1MTYoX19tNTEyaSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJodSlfX1csIChfX21tYXNrMzIpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwdTE2KF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXc1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJodSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXB1MTZfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHV3MnBoNTEyX21hc2soKF9fdjMyaHUpKEEpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwdTE2X3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dXcycGg1MTJfbWFzaygoX192MzJodSkoQSksIChfX3YzMmhmKShXKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXB1MTZfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHV3MnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaHUpKEEpLCAoX192MzJoZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTE2X3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1dzJwaDUxMl9tYXNrKAogICAgICAoX192MzJodSlfX0EsIChfX3YzMmhmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMzIpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwdTE2X3BoKF9fbTUxMmggX19XLCBfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Y3Z0dXcycGg1MTJfbWFzaygKICAgICAgKF9fdjMyaHUpX19BLCAoX192MzJoZilfX1csIChfX21tYXNrMzIpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1MTZfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmN2dHV3MnBoNTEyX21hc2soCiAgICAgIChfX3YzMmh1KV9fQSwgKF9fdjMyaGYpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBoX2VwaTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShBKSwgKF9fdjE2c2kpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazE2KSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfZXBpMzIoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgKF9fdjE2c2kpKFcpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwaF9lcGkzMihVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgyZHE1MTJfbWFzaygoX192MTZoZikoQSksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBoX2VwaTMyKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX2VwaTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgyZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzaSlfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGhfZXBpMzIoX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMmRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBoX2VwdTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShBKSwgKF9fdjE2c3UpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazE2KSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfZXB1MzIoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHE1MTJfbWFzaygoX192MTZoZikoQSksIChfX3YxNnN1KShXKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGhfZXB1MzIoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnN1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGhfZXB1MzIoX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnN1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBoX2VwdTMyKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydWRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c3UpX19XLCAoX19tbWFzazE2KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBoX2VwdTMyKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1ZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzdSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXBpMzJfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoNTEyX21hc2soKF9fdjE2c2kpKEEpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGYpX21tMjU2X3VuZGVmaW5lZF9waCgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwaTMyX3BoKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGg1MTJfbWFzaygoX192MTZzaSkoQSksIChfX3YxNmhmKShXKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpMzJfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2kpKEEpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwaTMyX3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRkcTJwaDUxMl9tYXNrKAogICAgICAoX192MTZzaSlfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dGVwaTMyX3BoKF9fbTI1NmggX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0ZHEycGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2kpX19BLCAoX192MTZoZilfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpMzJfcGgoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dGRxMnBoNTEyX21hc2soCiAgICAgIChfX3YxNnNpKV9fQSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwdTMyX3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1ZHEycGg1MTJfbWFzaygoX192MTZzdSkoQSksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoZilfbW0yNTZfdW5kZWZpbmVkX3BoKCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXB1MzJfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1ZHEycGg1MTJfbWFzaygoX192MTZzdSkoQSksIChfX3YxNmhmKShXKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXB1MzJfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c3UpKEEpLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTMyX3BoKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1ZHEycGg1MTJfbWFzaygKICAgICAgKF9fdjE2c3UpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcHUzMl9waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHVkcTJwaDUxMl9tYXNrKAogICAgICAoX192MTZzdSlfX0EsIChfX3YxNmhmKV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHUzMl9waChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0dWRxMnBoNTEyX21hc2soCiAgICAgIChfX3YxNnN1KV9fQSwgKF9fdjE2aGYpX21tMjU2X3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwaF9lcGkzMihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNmhmKShBKSwgKF9fdjE2c2kpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazE2KSgtMSksICAgICAgICBcCiAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0dF9yb3VuZHBoX2VwaTMyKFcsIFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHE1MTJfbWFzaygoX192MTZoZikoQSksIChfX3YxNnNpKShXKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBoX2VwaTMyKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJkcTUxMl9tYXNrKChfX3YxNmhmKShBKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBoX2VwaTMyKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGhfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzaSlfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgyZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBoX2VwdTMyKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzdSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIChfX21tYXNrMTYpKC0xKSwgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGhfZXB1MzIoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHE1MTJfbWFzaygoX192MTZoZikoQSksIChfX3YxNnN1KShXKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBoX2VwdTMyKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzdSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazE2KShVKSwgICAgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwaF9lcHUzMihfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVkcTUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnN1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHRwaF9lcHUzMihfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1ZHE1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzdSlfX1csIChfX21tYXNrMTYpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBoX2VwdTMyKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydWRxNTEyX21hc2soCiAgICAgIChfX3YxNmhmKV9fQSwgKF9fdjE2c3UpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwaTY0X3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4ZGkpKEEpLCAoX192OGhmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kZXBpNjRfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKChfX3Y4ZGkpKEEpLCAoX192OGhmKShXKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwaTY0X3BoKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRxcTJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4ZGkpKEEpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcGk2NF9waChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cXEycGg1MTJfbWFzaygKICAgICAgKF9fdjhkaSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9waChfX20xMjhoIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cXEycGg1MTJfbWFzaygKICAgICAgKF9fdjhkaSlfX0EsIChfX3Y4aGYpX19XLCAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpNjRfcGgoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0cXEycGg1MTJfbWFzaygKICAgICAgKF9fdjhkaSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXBpNjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnFxNTEyX21hc2soKF9fdjhoZikoQSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfdW5kZWZpbmVkX2VwaTMyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSgtMSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfY3Z0X3JvdW5kcGhfZXBpNjQoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTUxMl9tYXNrKChfX3Y4aGYpKEEpLCAoX192OGRpKShXKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX2VwaTY0KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwaF9lcGk2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgycXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRwaF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgycXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZGkpX19XLCAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGhfZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgycXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXB1NjRfcGgoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhkdSkoQSksIChfX3Y4aGYpX21tX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazgpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcHU2NF9waChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDUxMl9tYXNrKChfX3Y4ZHUpKEEpLCAoX192OGhmKShXKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZGVwdTY0X3BoKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4ZHUpKEEpLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRlcHU2NF9waChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0dXFxMnBoNTEyX21hc2soCiAgICAgIChfX3Y4ZHUpX19BLCAoX192OGhmKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1NjRfcGgoX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVxcTJwaDUxMl9tYXNrKAogICAgICAoX192OGR1KV9fQSwgKF9fdjhoZilfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRlcHU2NF9waChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnR1cXEycGg1MTJfbWFzaygKICAgICAgKF9fdjhkdSlfX0EsIChfX3Y4aGYpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGhfZXB1NjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZHUpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazgpKC0xKSwgICAgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwaF9lcHU2NChXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTUxMl9tYXNrKChfX3Y4aGYpKEEpLCAoX192OGR1KShXKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBoX2VwdTY0KFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192OGR1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwaF9lcHU2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0cGgydXFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGR1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGhfZXB1NjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHBoMnVxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkdSlfX1csIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwaF9lcHU2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJ1cXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZHUpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBoX2VwaTY0KEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZGkpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazgpKC0xKSwgICAgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGhfZXBpNjQoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTUxMl9tYXNrKChfX3Y4aGYpKEEpLCAoX192OGRpKShXKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwaF9lcGk2NChVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKEEpLCAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGhfZXBpNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJxcTUxMl9tYXNrKAogICAgICAoX192OGhmKV9fQSwgKF9fdjhkaSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHRwaF9lcGk2NChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhoIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGRpKV9fVywgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwaF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgycXE1MTJfbWFzaygKICAgICAgKF9fdjhoZilfX0EsIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fZXBpMzIoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBoX2VwdTY0KEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXE1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoQSksIChfX3Y4ZHUpX21tNTEyX3VuZGVmaW5lZF9lcGkzMigpLCAoX19tbWFzazgpKC0xKSwgICAgICAgICAgIFwKICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGhfZXB1NjQoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdmN2dHRwaDJ1cXE1MTJfbWFzaygoX192OGhmKShBKSwgKF9fdjhkdSkoVyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGhfZXB1NjQoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92Y3Z0dHBoMnVxcTUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShBKSwgKF9fdjhkdSlfbW01MTJfc2V0emVyb19lcGkzMigpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBoX2VwdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGR1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0dHBoX2VwdTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGR1KV9fVywgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwaF9lcHU2NChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3ZjdnR0cGgydXFxNTEyX21hc2soCiAgICAgIChfX3Y4aGYpX19BLCAoX192OGR1KV9tbTUxMl9zZXR6ZXJvX2VwaTMyKCksIChfX21tYXNrOClfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2N2dF9yb3VuZHNoX2kzMihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfdmN2dHNoMnNpMzIoKF9fdjhoZikoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHNoX2kzMihfX20xMjhoIF9fQSkgewogIHJldHVybiAoaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzaTMyKChfX3Y4aGYpX19BLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzaF91MzIoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJ1c2kzMigoX192OGhmKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c2hfdTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHNoMnVzaTMyKChfX3Y4aGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRzaF9pNjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgobG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJzaTY0KChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRzaF9pNjQoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKGxvbmcgbG9uZylfX2J1aWx0aW5faWEzMl92Y3Z0c2gyc2k2NCgoX192OGhmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9jdnRfcm91bmRzaF91NjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaDJ1c2k2NCgoX192OGhmKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0c2hfdTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHNoMnVzaTY0KAogICAgICAoX192OGhmKV9fQSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQojZW5kaWYgLy8gX194ODZfNjRfXwoKI2RlZmluZSBfbW1fY3Z0X3JvdW5kdTMyX3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVzaTJzaCgoX192OGhmKShBKSwgKHVuc2lnbmVkIGludCkoQiksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1MzJfc2goX19tMTI4aCBfX0EsIHVuc2lnbmVkIGludCBfX0IpIHsKICBfX0FbMF0gPSBfX0I7CiAgcmV0dXJuIF9fQTsKfQoKI2lmZGVmIF9feDg2XzY0X18KI2RlZmluZSBfbW1fY3Z0X3JvdW5kdTY0X3NoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmN2dHVzaTY0MnNoKChfX3Y4aGYpKEEpLCAodW5zaWduZWQgbG9uZyBsb25nKShCKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1NjRfc2goX19tMTI4aCBfX0EsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0IpIHsKICBfX0FbMF0gPSBfX0I7CiAgcmV0dXJuIF9fQTsKfQojZW5kaWYKCiNkZWZpbmUgX21tX2N2dF9yb3VuZGkzMl9zaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZjdnRzaTJzaCgoX192OGhmKShBKSwgKGludCkoQiksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRpMzJfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fQikgewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CgojaWZkZWYgX194ODZfNjRfXwojZGVmaW5lIF9tbV9jdnRfcm91bmRpNjRfc2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Y3Z0c2k2NDJzaCgoX192OGhmKShBKSwgKGxvbmcgbG9uZykoQiksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnRpNjRfc2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIF9fQikgewogIF9fQVswXSA9IF9fQjsKICByZXR1cm4gX19BOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNoX2kzMihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnNpMzIoKF9fdjhoZikoQSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dHRzaF9pMzIoX19tMTI4aCBfX0EpIHsKICByZXR1cm4gKGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnNpMzIoKF9fdjhoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzaF9pNjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzaDJzaTY0KChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9jdnR0c2hfaTY0KF9fbTEyOGggX19BKSB7CiAgcmV0dXJuIChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzaDJzaTY0KChfX3Y4aGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW1fY3Z0dF9yb3VuZHNoX3UzMihBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKHVuc2lnbmVkIGludClfX2J1aWx0aW5faWEzMl92Y3Z0dHNoMnVzaTMyKChfX3Y4aGYpKEEpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0c2hfdTMyKF9fbTEyOGggX19BKSB7CiAgcmV0dXJuICh1bnNpZ25lZCBpbnQpX19idWlsdGluX2lhMzJfdmN2dHRzaDJ1c2kzMigoX192OGhmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCiNkZWZpbmUgX21tX2N2dHRfcm91bmRzaF91NjQoQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCh1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmN2dHRzaDJ1c2k2NCgoX192OGhmKShBKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHNoX3U2NChfX20xMjhoIF9fQSkgewogIHJldHVybiAodW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9pYTMyX3ZjdnR0c2gydXNpNjQoCiAgICAgIChfX3Y4aGYpX19BLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CiNlbmRpZgoKI2RlZmluZSBfbW01MTJfY3Z0eF9yb3VuZHBoX3BzKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4NTEyX21hc2soKF9fdjE2aGYpKEEpLCAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9wcygpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoLTEpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHhfcm91bmRwaF9wcyhXLCBVLCBBLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3g1MTJfbWFzaygoX192MTZoZikoQSksIChfX3YxNnNmKShXKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0eF9yb3VuZHBoX3BzKFUsIEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHN4NTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2aGYpKEEpLCAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY3Z0eHBoX3BzKF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0eHBoX3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmggX19BKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzeDUxMl9tYXNrKAogICAgICAoX192MTZoZilfX0EsIChfX3YxNnNmKV9fVywgKF9fbW1hc2sxNilfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHhwaF9wcyhfX21tYXNrMTYgX19VLCBfX20yNTZoIF9fQSkgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3ZjdnRwaDJwc3g1MTJfbWFzaygKICAgICAgKF9fdjE2aGYpX19BLCAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0eF9yb3VuZHBzX3BoKEEsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDUxMl9tYXNrKChfX3YxNnNmKShBKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhmKV9tbTI1Nl91bmRlZmluZWRfcGgoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKC0xKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR4X3JvdW5kcHNfcGgoVywgVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDUxMl9tYXNrKChfX3YxNnNmKShBKSwgKF9fdjE2aGYpKFcpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR4X3JvdW5kcHNfcGgoVSwgQSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4NTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoQSksIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfY3Z0eHBzX3BoKF9fbTUxMiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmgpX19idWlsdGluX2lhMzJfdmN2dHBzMnBoeDUxMl9tYXNrKAogICAgICAoX192MTZzZilfX0EsIChfX3YxNmhmKV9tbTI1Nl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHhwc19waChfX20yNTZoIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2aClfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGh4NTEyX21hc2soCiAgICAgIChfX3YxNnNmKV9fQSwgKF9fdjE2aGYpX19XLCAoX19tbWFzazE2KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHhwc19waChfX21tYXNrMTYgX19VLCBfX201MTIgX19BKSB7CiAgcmV0dXJuIChfX20yNTZoKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaHg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19BLCAoX192MTZoZilfbW0yNTZfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZm1hZGRfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mbWFkZF9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2szX2ZtYWRkX3JvdW5kX3BoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbWFkZF9yb3VuZF9waChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfZm1zdWJfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMiktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19mbXN1Yl9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2Ztc3ViX3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9mbm1hZGRfcm91bmRfcGgoQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIC0oX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbm1hZGRfcm91bmRfcGgoQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrMyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAtKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZm5tYWRkX3JvdW5kX3BoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgLShfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2ZubXN1Yl9yb3VuZF9waChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgLShfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICBcCiAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZubXN1Yl9yb3VuZF9waChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIC0oX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfZm1hZGRfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZtYWRkX3BoKF9fbTUxMmggX19BLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbWFkZF9waChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DLCBfX21tYXNrMzIgX19VKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2szKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1hZGRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNreigoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2Ztc3ViX3BoKF9fbTUxMmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1zdWJfcGgoX19tNTEyaCBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbXN1Yl9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2t6KAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mbm1hZGRfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIC0oX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbm1hZGRfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQywgX19tbWFzazMyIF9fVSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrMygtKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbm1hZGRfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNreigtKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mbm1zdWJfcGgoX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIC0oX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMiktMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm5tc3ViX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFza3ooCiAgICAgIC0oX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgLShfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZtYWRkc3ViX3JvdW5kX3BoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1hZGRzdWJfcm91bmRfcGgoQSwgVSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbWFkZHN1Yl9yb3VuZF9waChBLCBCLCBDLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNrMyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZm1hZGRzdWJfcm91bmRfcGgoVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX2Ztc3ViYWRkX3JvdW5kX3BoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZm1zdWJhZGRfcm91bmRfcGgoQSwgVSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAtKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICBcCiAgICAgIChfX21tYXNrMzIpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbXN1YmFkZF9yb3VuZF9waChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgLShfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2ZtYWRkc3ViX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzaygKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMiktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRzdWJfcGgoX19tNTEyaCBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNrKAogICAgICAoX192MzJoZilfX0EsIChfX3YzMmhmKV9fQiwgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2ZtYWRkc3ViX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2szMiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFzazMoCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZm1hZGRzdWJfcGgoX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwaDUxMl9tYXNreigKICAgICAgKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9mbXN1YmFkZF9waChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mbXN1YmFkZF9waChfX201MTJoIF9fQSwgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBoNTEyX21hc2soCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Ztc3ViYWRkX3BoKF9fbW1hc2szMiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGg1MTJfbWFza3ooCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAtKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1zdWJfcm91bmRfcGgoQSwgQiwgQywgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtc3VicGg1MTJfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjMyaGYpKF9fbTUxMmgpKEEpLCAoX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbXN1Yl9waChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DLCBfX21tYXNrMzIgX19VKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXN1YnBoNTEyX21hc2szKChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrM19mbXN1YmFkZF9yb3VuZF9waChBLCBCLCBDLCBVLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1zdWJhZGRwaDUxMl9tYXNrMyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIChfX3YzMmhmKShfX201MTJoKShCKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEMpLCAgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2szX2Ztc3ViYWRkX3BoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2szMiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtc3ViYWRkcGg1MTJfbWFzazMoCiAgICAgIChfX3YzMmhmKV9fQSwgKF9fdjMyaGYpX19CLCAoX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZubWFkZF9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIC0oX192MzJoZikoX19tNTEyaCkoQiksIChfX3YzMmhmKShfX201MTJoKShDKSwgICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm5tYWRkX3BoKF9fbTUxMmggX19BLCBfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkcGg1MTJfbWFzaygoX192MzJoZilfX0EsIC0oX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGYpX19DLCAoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZubXN1Yl9yb3VuZF9waChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MzJoZikoX19tNTEyaCkoQSksIC0oX192MzJoZikoX19tNTEyaCkoQiksIC0oX192MzJoZikoX19tNTEyaCkoQyksICAgXAogICAgICAoX19tbWFzazMyKShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm5tc3ViX3JvdW5kX3BoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtc3VicGg1MTJfbWFzazMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgLShfX3YzMmhmKShfX201MTJoKShBKSwgKF9fdjMyaGYpKF9fbTUxMmgpKEIpLCAoX192MzJoZikoX19tNTEyaCkoQyksICAgIFwKICAgICAgKF9fbW1hc2szMikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZubXN1Yl9waChfX201MTJoIF9fQSwgX19tbWFzazMyIF9fVSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBoNTEyX21hc2soKF9fdjMyaGYpX19BLCAtKF9fdjMyaGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192MzJoZilfX0MsIChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrM19mbm1zdWJfcGgoX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQywgX19tbWFzazMyIF9fVSkgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1zdWJwaDUxMl9tYXNrMygtKF9fdjMyaGYpX19BLCAoX192MzJoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMmhmKV9fQywgKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mbWFkZF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soKF9fdjhoZilfX1csIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19mbWFkZF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soKF9fdjhoZilfX1csIChfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm1hZGRfcm91bmRfc2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShDKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZtYWRkX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShXKSwgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZm1hZGRfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreigoX192OGhmKV9fQSwgKF9fdjhoZilfX0IsIChfX3Y4aGYpX19DLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX21hc2t6X2ZtYWRkX3JvdW5kX3NoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgKF9fdjhoZikoX19tMTI4aCkoQyksICAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbWFkZF9zaChfX20xMjhoIF9fVywgX19tMTI4aCBfX1gsIF9fbTEyOGggX19ZLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2szKChfX3Y4aGYpX19XLCAoX192OGhmKV9fWCwgKF9fdjhoZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1hZGRfcm91bmRfc2goVywgWCwgWSwgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX3Y4aGYpKF9fbTEyOGgpKFgpLCAoX192OGhmKShfX20xMjhoKShZKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2Ztc3ViX3NoKF9fbTEyOGggX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgKF9fdjhoZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0oX192OGhmKV9fQiwgKF9fbW1hc2s4KS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfbW1fbWFza19mbXN1Yl9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tbWFzazggX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soKF9fdjhoZilfX1csIChfX3Y4aGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKF9fdjhoZilfX0IsIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2Ztc3ViX3JvdW5kX3NoKEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAoX192OGhmKShfX20xMjhoKShCKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEMpLCAgICAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbXN1Yl9yb3VuZF9zaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Ztc3ViX3NoKF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CLCBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFza3ooKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLShfX3Y4aGYpX19DLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFza3pfZm1zdWJfcm91bmRfc2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAtKF9fdjhoZikoX19tMTI4aCkoQyksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludClSKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mbXN1Yl9zaChfX20xMjhoIF9fVywgX19tMTI4aCBfX1gsIF9fbTEyOGggX19ZLCBfX21tYXNrOCBfX1UpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtc3Vic2gzX21hc2szKChfX3Y4aGYpX19XLCAoX192OGhmKV9fWCwgKF9fdjhoZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm1zdWJfcm91bmRfc2goVywgWCwgWSwgVSwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtc3Vic2gzX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIChfX3Y4aGYpKF9fbTEyOGgpKFgpLCAoX192OGhmKShfX20xMjhoKShZKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZubWFkZF9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgLShfX3Y4aGYpX19BLCAoX192OGhmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbm1hZGRfc2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKChfX3Y4aGYpX19XLCAtKF9fdjhoZilfX0EsIChfX3Y4aGYpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mbm1hZGRfcm91bmRfc2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShDKSwgICAgICAgXAogICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfZm5tYWRkX3JvdW5kX3NoKFcsIFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKFcpLCAtKF9fdjhoZikoX19tMTI4aCkoQSksIChfX3Y4aGYpKF9fbTEyOGgpKEIpLCAgICAgICBcCiAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbm1hZGRfc2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNreigoX192OGhmKV9fQSwgLShfX3Y4aGYpX19CLCAoX192OGhmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbm1hZGRfcm91bmRfc2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEIpLCAoX192OGhmKShfX20xMjhoKShDKSwgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tYWRkX3NoKF9fbTEyOGggX19XLCBfX20xMjhoIF9fWCwgX19tMTI4aCBfX1ksIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzazMoKF9fdjhoZilfX1csIC0oX192OGhmKV9fWCwgKF9fdjhoZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tYWRkX3JvdW5kX3NoKFcsIFgsIFksIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIC0oX192OGhmKShfX20xMjhoKShYKSwgKF9fdjhoZikoX19tMTI4aCkoWSksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZubXN1Yl9zaChfX20xMjhoIF9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgLShfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZm5tc3ViX3NoKF9fbTEyOGggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFzaygoX192OGhmKV9fVywgLShfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZubXN1Yl9yb3VuZF9zaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNoM19tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y4aGYpKF9fbTEyOGgpKEEpLCAtKF9fdjhoZikoX19tMTI4aCkoQiksIC0oX192OGhmKShfX20xMjhoKShDKSwgICAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbm1zdWJfcm91bmRfc2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIC0oX192OGhmKShfX20xMjhoKShBKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEIpLCAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZubXN1Yl9zaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdmZtYWRkc2gzX21hc2t6KChfX3Y4aGYpX19BLCAtKF9fdjhoZilfX0IsIC0oX192OGhmKV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9tYXNrel9mbm1zdWJfcm91bmRfc2goVSwgQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm1hZGRzaDNfbWFza3ooICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192OGhmKShfX20xMjhoKShBKSwgLShfX3Y4aGYpKF9fbTEyOGgpKEIpLCAtKF9fdjhoZikoX19tMTI4aCkoQyksICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFzazNfZm5tc3ViX3NoKF9fbTEyOGggX19XLCBfX20xMjhoIF9fWCwgX19tMTI4aCBfX1ksIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92Zm1zdWJzaDNfbWFzazMoKF9fdjhoZilfX1csIC0oX192OGhmKV9fWCwgKF9fdjhoZilfX1ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fbWFzazNfZm5tc3ViX3JvdW5kX3NoKFcsIFgsIFksIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtc3Vic2gzX21hc2szKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjhoZikoX19tMTI4aCkoVyksIC0oX192OGhmKShfX20xMjhoKShYKSwgKF9fdjhoZikoX19tMTI4aCkoWSksICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZjbWFkZF9zY2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQykgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0IsIChfX21tYXNrOCktMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2ZjbWFkZF9zY2goX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgKICAgICAgX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTiksCiAgICAgIChfX3Y0c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2ZjbWFkZF9zY2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFza3ooKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19CLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrM19mY21hZGRfc2NoKF9fbTEyOGggX19BLCBfX20xMjhoIF9fQiwgX19tMTI4aCBfX0MsIF9fbW1hc2s4IF9fVSkgewogIHJldHVybiAoX19tMTI4aClfbW1fbW92ZV9zcygoX19tMTI4KV9fQywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbTEyOClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2soCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQywgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKTsKfQoKI2RlZmluZSBfbW1fZmNtYWRkX3JvdW5kX3NjaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQyksIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZjbWFkZF9yb3VuZF9zY2goQSwgVSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUgJiAxKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgKF9fdjRzZikoX19tMTI4aCkoQyksIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgXAogICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSkpCgojZGVmaW5lIF9tbV9tYXNrel9mY21hZGRfcm91bmRfc2NoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3NoX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShDKSwgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrM19mY21hZGRfcm91bmRfc2NoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfbW1fbW92ZV9zcygoX19tMTI4KShDKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjc2hfbWFzayggICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoQyksIChfX3Y0c2YpKEEpLCAoX192NHNmKShCKSwgKFUpLCAoUikpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mbWFkZF9zY2goX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0MpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkY3NoX21hc2soKF9fdjRzZilfX0MsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwgKF9fbW1hc2s4KS0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mbWFkZF9zY2goX19tMTI4aCBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgKICAgICAgX19VLAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRjc2hfbWFzaygoX192NHNmKV9fQywgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pLAogICAgICAoX192NHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbWFkZF9zY2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IsIF9fbTEyOGggX19DKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNzaF9tYXNreigoX192NHNmKV9fQywgKF9fdjRzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fQiwgKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tX2ZtYWRkX3JvdW5kX3NjaChBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNzaF9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEMpLCAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICBcCiAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbWFkZF9yb3VuZF9zY2goQSwgVSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVICYgMSksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19idWlsdGluX2lhMzJfdmZtYWRkY3NoX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOGgpKEMpLCAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgIFwKICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQSkpKQoKI2RlZmluZSBfbW1fbWFza3pfZm1hZGRfcm91bmRfc2NoKFUsIEEsIEIsIEMsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtYWRkY3NoX21hc2t6KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQyksIChfX3Y0c2YpKF9fbTEyOGgpKEEpLCAoX192NHNmKShfX20xMjhoKShCKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2ZjbXVsX3NjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjc2hfbWFzaygKICAgICAgKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19mY211bF9zY2goX19tMTI4aCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aCBfX0EsIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNzaF9tYXNrKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1csIChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mY211bF9zY2goX19tbWFzazggX19VLCBfX20xMjhoIF9fQSwgX19tMTI4aCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZjbXVsY3NoX21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbV9mY211bF9yb3VuZF9zY2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKV9tbV91bmRlZmluZWRfcGgoKSwgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZjbXVsX3JvdW5kX3NjaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksIChfX3Y0c2YpKF9fbTEyOGgpKFcpLCAgICAgICAgXAogICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9mY211bF9yb3VuZF9zY2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tMTI4aClfX2J1aWx0aW5faWEzMl92ZmNtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKShBKSwgKF9fdjRzZikoX19tMTI4aCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192NHNmKShfX20xMjhoKV9tbV9zZXR6ZXJvX3BoKCksIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9tbV9mbXVsX3NjaChfX20xMjhoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3NoX21hc2soCiAgICAgIChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aCBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX21hc2tfZm11bF9zY2goX19tMTI4aCBfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbW1hc2s4IF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTEyOGggX19CKSB7CiAgcmV0dXJuIChfX20xMjhoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3NoX21hc2soKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XLCAoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9mbXVsX3NjaChfX21tYXNrOCBfX1UsIF9fbTEyOGggX19BLCBfX20xMjhoIF9fQikgewogIHJldHVybiAoX19tMTI4aClfX2J1aWx0aW5faWEzMl92Zm11bGNzaF9tYXNrKAogICAgICAoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX21tX3NldHplcm9fcGgoKSwgKF9fbW1hc2s4KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW1fZm11bF9yb3VuZF9zY2goQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aClfbW1fdW5kZWZpbmVkX3BoKCksIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19mbXVsX3JvdW5kX3NjaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAoX192NHNmKShfX20xMjhoKShXKSwgICAgICAgIFwKICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfZm11bF9yb3VuZF9zY2goVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTEyOGgpX19idWlsdGluX2lhMzJfdmZtdWxjc2hfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aCkoQSksIChfX3Y0c2YpKF9fbTEyOGgpKEIpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjRzZikoX19tMTI4aClfbW1fc2V0emVyb19waCgpLCAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMiBfbW01MTJfZmNtdWxfcGNoKF9fbTUxMmggX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY211bGNwaDUxMl9tYXNrKAogICAgICAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwgKF9fdjE2c2YpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazE2KS0xLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mY211bF9wY2goX19tNTEyaCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGg1MTJfbWFzaygoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XLCAoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2ZjbXVsX3BjaChfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoNTEyX21hc2soCiAgICAgIChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLCAoX192MTZzZilfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazE2KV9fVSwKICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfZmNtdWxfcm91bmRfcGNoKEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpX21tNTEyX3VuZGVmaW5lZF9waCgpLCAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZjbXVsX3JvdW5kX3BjaChXLCBVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtdWxjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgKF9fdjE2c2YpKF9fbTUxMmgpKFcpLCAgICAgXAogICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZmNtdWxfcm91bmRfcGNoKFUsIEEsIEIsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbXVsY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpX21tNTEyX3NldHplcm9fcGgoKSwgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mbXVsX3BjaChfX201MTJoIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19CKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoNTEyX21hc2soCiAgICAgIChfX3YxNnNmKV9fQSwgKF9fdjE2c2YpX19CLCAoX192MTZzZilfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMTYpLTEsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2ZtdWxfcGNoKF9fbTUxMmggX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGg1MTJfbWFzaygoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1csIChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbXVsX3BjaChfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtdWxjcGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19BLCAoX192MTZzZilfX0IsIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BoKCksIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9mbXVsX3JvdW5kX3BjaChBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaClfbW01MTJfdW5kZWZpbmVkX3BoKCksIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZm11bF9yb3VuZF9wY2goVywgVSwgQSwgQiwgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbXVsY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAoX192MTZzZikoX19tNTEyaCkoVyksICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9mbXVsX3JvdW5kX3BjaChVLCBBLCBCLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm11bGNwaDUxMl9tYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaClfbW01MTJfc2V0emVyb19waCgpLCAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2ZjbWFkZF9wY2goX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmggX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoNTEyX21hc2soKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX0IsIChfX21tYXNrMTYpLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19mY21hZGRfcGNoKF9fbTUxMmggX19BLCBfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzaygoX192MTZzZilfX0MsIChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pLAogICAgICAoX192MTZzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZmNtYWRkX3BjaChfX201MTJoIF9fQSwgX19tNTEyaCBfX0IsIF9fbTUxMmggX19DLCBfX21tYXNrMTYgX19VKSB7CiAgcmV0dXJuIChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzaygKICAgICAgKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mY21hZGRfcGNoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNreigKICAgICAgKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNilfX1UsCiAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2ZjbWFkZF9yb3VuZF9wY2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShDKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICBcCiAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZmNtYWRkX3JvdW5kX3BjaChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmY21hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCBcCiAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShBKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrM19mY21hZGRfcm91bmRfcGNoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92ZmNtYWRkY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgXAogICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZmNtYWRkX3JvdW5kX3BjaChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZjbWFkZGNwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEMpLCAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgIFwKICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyIF9tbTUxMl9mbWFkZF9wY2goX19tNTEyaCBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoNTEyX21hc2soKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNiktMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfZm1hZGRfcGNoKF9fbTUxMmggX19BLCBfX21tYXNrMTYgX19VLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKAogICAgICBfX1UsCiAgICAgIF9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDUxMl9tYXNrKChfX3YxNnNmKV9fQywgKF9fdjE2c2YpX19BLCAoX192MTZzZilfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pLAogICAgICAoX192MTZzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFzazNfZm1hZGRfcGNoKF9fbTUxMmggX19BLCBfX201MTJoIF9fQiwgX19tNTEyaCBfX0MsIF9fbW1hc2sxNiBfX1UpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoNTEyX21hc2soKF9fdjE2c2YpX19DLCAoX192MTZzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fQiwgKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9mbWFkZF9wY2goX19tbWFzazE2IF9fVSwgX19tNTEyaCBfX0EsIF9fbTUxMmggX19CLCBfX201MTJoIF9fQykgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFza3ooCiAgICAgIChfX3YxNnNmKV9fQywgKF9fdjE2c2YpX19BLCAoX192MTZzZilfX0IsIChfX21tYXNrMTYpX19VLAogICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9mbWFkZF9yb3VuZF9wY2goQSwgQiwgQywgUikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQyksIChfX3YxNnNmKShfX201MTJoKShBKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEIpLCAgICAgXAogICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZtYWRkX3JvdW5kX3BjaChBLCBVLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoX19tNTEyaClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19tbWFzazE2KShVKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2J1aWx0aW5faWEzMl92Zm1hZGRjcGg1MTJfbWFzayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEMpLCAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgXAogICAgICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX192MTZzZikoX19tNTEyaCkoQSkpKQoKI2RlZmluZSBfbW01MTJfbWFzazNfZm1hZGRfcm91bmRfcGNoKEEsIEIsIEMsIFUsIFIpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdmZtYWRkY3BoNTEyX21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9fdjE2c2YpKF9fbTUxMmgpKEMpLCAoX192MTZzZikoX19tNTEyaCkoQSksIChfX3YxNnNmKShfX201MTJoKShCKSwgICAgIFwKICAgICAgKF9fbW1hc2sxNikoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2ZtYWRkX3JvdW5kX3BjaChVLCBBLCBCLCBDLCBSKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKChfX201MTJoKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZGNwaDUxMl9tYXNreiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChfX3YxNnNmKShfX201MTJoKShDKSwgKF9fdjE2c2YpKF9fbTUxMmgpKEEpLCAoX192MTZzZikoX19tNTEyaCkoQiksICAgICBcCiAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfRmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3JlZHVjZV9hZGRfcGgoX19tNTEyaCBfX1cpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmVkdWNlX2ZhZGRfcGg1MTIoLTAuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbXVsX3BoKF9fbTUxMmggX19XKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbXVsX3BoNTEyKDEuMGYxNiwgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX0Zsb2F0MTYgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9yZWR1Y2VfbWF4X3BoKF9fbTUxMmggX19WKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JlZHVjZV9mbWF4X3BoNTEyKF9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9GbG9hdDE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcmVkdWNlX21pbl9waChfX201MTJoIF9fVikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWR1Y2VfZm1pbl9waDUxMihfX1YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19ibGVuZF9waChfX21tYXNrMzIgX19VLCBfX201MTJoIF9fQSwgX19tNTEyaCBfX1cpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfc2VsZWN0cGhfNTEyKChfX21tYXNrMzIpX19VLCAoX192MzJoZilfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfcGVybXV0ZXgydmFyX3BoKF9fbTUxMmggX19BLCBfX201MTJpIF9fSSwgX19tNTEyaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmgpX19idWlsdGluX2lhMzJfdnBlcm1pMnZhcmhpNTEyKChfX3YzMmhpKV9fQSwgKF9fdjMyaGkpX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3Blcm11dGV4dmFyX3BoKF9fbTUxMmkgX19BLCBfX201MTJoIF9fQikgewogIHJldHVybiAoX19tNTEyaClfX2J1aWx0aW5faWEzMl9wZXJtdmFyaGk1MTIoKF9fdjMyaGkpX19CLCAoX192MzJoaSlfX0EpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzUxMgoKI2VuZGlmCgBhdng1MTJ2Ym1pMmludHJpbi5oAGJtaWludHJpbi5oAGhleGFnb25fcHJvdG9zLmgAb21wLXRvb2xzLmgALyo9PT0tLS0tIHJkc2VlZGludHJpbi5oIC0gUkRTRUVEIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8cmRzZWVkaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1JEU0VFRElOVFJJTl9ICiNkZWZpbmUgX19SRFNFRURJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInJkc2VlZCIpKSkKCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3Jkc2VlZDE2X3N0ZXAodW5zaWduZWQgc2hvcnQgKl9fcCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZHNlZWQxNl9zdGVwKF9fcCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3Jkc2VlZDMyX3N0ZXAodW5zaWduZWQgaW50ICpfX3ApCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmRzZWVkMzJfc3RlcChfX3ApOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9yZHNlZWQ2NF9zdGVwKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Jkc2VlZDY0X3N0ZXAoX19wKTsKfQojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX1JEU0VFRElOVFJJTl9IICovCgAvKj09PS0tLS0gczM5MGludHJpbi5oIC0gU3lzdGVtWiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fUzM5MElOVFJJTl9ICiNkZWZpbmUgX19TMzkwSU5UUklOX0gKCiNpZm5kZWYgX19zMzkwX18KI2Vycm9yICI8czM5MGludHJpbi5oPiBpcyBmb3IgczM5MCBvbmx5IgojZW5kaWYKCiNpZmRlZiBfX0hUTV9fCiNpbmNsdWRlIDxodG1pbnRyaW4uaD4KI2VuZGlmCgojaWZkZWYgX19WRUNfXwojaW5jbHVkZSA8dmVjaW50cmluLmg+CiNlbmRpZgoKI2VuZGlmIC8qIF9fUzM5MElOVFJJTl9IKi8KAC8qPT09LS0tLSB0Z21hdGguaCAtIFN0YW5kYXJkIGhlYWRlciBmb3IgdHlwZSBnZW5lcmljIG1hdGggLS0tLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fQ0xBTkdfVEdNQVRIX0gKI2RlZmluZSBfX0NMQU5HX1RHTUFUSF9ICgovKiBDOTkgNy4yMiBUeXBlLWdlbmVyaWMgbWF0aCA8dGdtYXRoLmg+LiAqLwojaW5jbHVkZSA8bWF0aC5oPgoKLyoKICogQWxsb3cgYWRkaXRpb25hbCBkZWZpbml0aW9ucyBhbmQgaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZXMgb24gQXBwbGUKICogcGxhdGZvcm1zLiBUaGlzIGlzIGRvbmUgYWZ0ZXIgI2luY2x1ZGUgPG1hdGguaD4gdG8gYXZvaWQgZGVwY3ljbGUgY29uZmxpY3RzCiAqIGJldHdlZW4gbGliY3h4IGFuZCBkYXJ3aW4gaW4gQysrIG1vZHVsZXMgYnVpbGRzLgogKi8KI2lmIGRlZmluZWQoX19BUFBMRV9fKSAmJiBfX1NURENfSE9TVEVEX18gJiYgX19oYXNfaW5jbHVkZV9uZXh0KDx0Z21hdGguaD4pCiMgIGluY2x1ZGVfbmV4dCA8dGdtYXRoLmg+CiNlbHNlCgovKiBDKysgaGFuZGxlcyB0eXBlIGdlbmVyaWNpdHkgd2l0aCBvdmVybG9hZGluZyBpbiBtYXRoLmguICovCiNpZm5kZWYgX19jcGx1c3BsdXMKI2luY2x1ZGUgPGNvbXBsZXguaD4KCiNkZWZpbmUgX1RHX0FUVFJTcCBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fKSkKI2RlZmluZSBfVEdfQVRUUlMgX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19hbHdheXNfaW5saW5lX18pKQoKLy8gcHJvbW90aW9uCgp0eXBlZGVmIHZvaWQgX0FyZ3VtZW50X3R5cGVfaXNfbm90X2FyaXRobWV0aWM7CnN0YXRpYyBfQXJndW1lbnRfdHlwZV9pc19ub3RfYXJpdGhtZXRpYyBfX3RnX3Byb21vdGUoLi4uKQogIF9fYXR0cmlidXRlX18oKF9fdW5hdmFpbGFibGVfXyxfX292ZXJsb2FkYWJsZV9fKSk7CnN0YXRpYyBkb3VibGUgICAgICAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShpbnQpOwpzdGF0aWMgZG91YmxlICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUodW5zaWduZWQgaW50KTsKc3RhdGljIGRvdWJsZSAgICAgICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGxvbmcpOwpzdGF0aWMgZG91YmxlICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUodW5zaWduZWQgbG9uZyk7CnN0YXRpYyBkb3VibGUgICAgICAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShsb25nIGxvbmcpOwpzdGF0aWMgZG91YmxlICAgICAgICAgICAgICAgX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUodW5zaWduZWQgbG9uZyBsb25nKTsKc3RhdGljIGZsb2F0ICAgICAgICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGZsb2F0KTsKc3RhdGljIGRvdWJsZSAgICAgICAgICAgICAgIF9UR19BVFRSU3AgX190Z19wcm9tb3RlKGRvdWJsZSk7CnN0YXRpYyBsb25nIGRvdWJsZSAgICAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShsb25nIGRvdWJsZSk7CnN0YXRpYyBmbG9hdCBfQ29tcGxleCAgICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShmbG9hdCBfQ29tcGxleCk7CnN0YXRpYyBkb3VibGUgX0NvbXBsZXggICAgICBfVEdfQVRUUlNwIF9fdGdfcHJvbW90ZShkb3VibGUgX0NvbXBsZXgpOwpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXggX1RHX0FUVFJTcCBfX3RnX3Byb21vdGUobG9uZyBkb3VibGUgX0NvbXBsZXgpOwoKI2RlZmluZSBfX3RnX3Byb21vdGUxKF9feCkgICAgICAgICAgIChfX3R5cGVvZl9fKF9fdGdfcHJvbW90ZShfX3gpKSkKI2RlZmluZSBfX3RnX3Byb21vdGUyKF9feCwgX195KSAgICAgIChfX3R5cGVvZl9fKF9fdGdfcHJvbW90ZShfX3gpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlKF9feSkpKQojZGVmaW5lIF9fdGdfcHJvbW90ZTMoX194LCBfX3ksIF9feikgKF9fdHlwZW9mX18oX190Z19wcm9tb3RlKF9feCkgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUoX195KSArIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZShfX3opKSkKCi8vIGFjb3MKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3MoZmxvYXQgX194KSB7cmV0dXJuIGFjb3NmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3MoZG91YmxlIF9feCkge3JldHVybiBhY29zKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvcyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gYWNvc2woX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjYWNvc2YoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvcyhkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhY29zKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvcyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fjb3NsKF9feCk7fQoKI3VuZGVmIGFjb3MKI2RlZmluZSBhY29zKF9feCkgX190Z19hY29zKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBhc2luCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luKGZsb2F0IF9feCkge3JldHVybiBhc2luZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luKGRvdWJsZSBfX3gpIHtyZXR1cm4gYXNpbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW4obG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGFzaW5sKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FzaW5mKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW4oZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXNpbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW4obG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhc2lubChfX3gpO30KCiN1bmRlZiBhc2luCiNkZWZpbmUgYXNpbihfX3gpIF9fdGdfYXNpbihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gYXRhbgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbihmbG9hdCBfX3gpIHtyZXR1cm4gYXRhbmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbihkb3VibGUgX194KSB7cmV0dXJuIGF0YW4oX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBhdGFubChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW4oZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhdGFuZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2F0YW4oX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXRhbmwoX194KTt9CgojdW5kZWYgYXRhbgojZGVmaW5lIGF0YW4oX194KSBfX3RnX2F0YW4oX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGFjb3NoCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zaChmbG9hdCBfX3gpIHtyZXR1cm4gYWNvc2hmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Fjb3NoKGRvdWJsZSBfX3gpIHtyZXR1cm4gYWNvc2goX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zaChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gYWNvc2hsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvc2goZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhY29zaGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYWNvc2goZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYWNvc2goX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hY29zaChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fjb3NobChfX3gpO30KCiN1bmRlZiBhY29zaAojZGVmaW5lIGFjb3NoKF9feCkgX190Z19hY29zaChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gYXNpbmgKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW5oKGZsb2F0IF9feCkge3JldHVybiBhc2luaGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXNpbmgoZG91YmxlIF9feCkge3JldHVybiBhc2luaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW5oKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBhc2luaGwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luaChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FzaW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19hc2luaChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhc2luaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2FzaW5oKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYXNpbmhsKF9feCk7fQoKI3VuZGVmIGFzaW5oCiNkZWZpbmUgYXNpbmgoX194KSBfX3RnX2FzaW5oKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBhdGFuaAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbmgoZmxvYXQgX194KSB7cmV0dXJuIGF0YW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuaChkb3VibGUgX194KSB7cmV0dXJuIGF0YW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbmgobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGF0YW5obChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW5oKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjYXRhbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2F0YW5oKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2F0YW5oKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfYXRhbmgobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhdGFuaGwoX194KTt9CgojdW5kZWYgYXRhbmgKI2RlZmluZSBhdGFuaChfX3gpIF9fdGdfYXRhbmgoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNvcwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGZsb2F0IF9feCkge3JldHVybiBjb3NmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvcyhkb3VibGUgX194KSB7cmV0dXJuIGNvcyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvcyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gY29zbChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NvcyhmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Nvc2YoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2NvcyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvcyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Nvc2woX194KTt9CgojdW5kZWYgY29zCiNkZWZpbmUgY29zKF9feCkgX190Z19jb3MoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHNpbgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGZsb2F0IF9feCkge3JldHVybiBzaW5mKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Npbihkb3VibGUgX194KSB7cmV0dXJuIHNpbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Npbihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gc2lubChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NpbmYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NpbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Npbihsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NpbmwoX194KTt9CgojdW5kZWYgc2luCiNkZWZpbmUgc2luKF9feCkgX190Z19zaW4oX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHRhbgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGZsb2F0IF9feCkge3JldHVybiB0YW5mKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Rhbihkb3VibGUgX194KSB7cmV0dXJuIHRhbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Rhbihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gdGFubChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RhbihmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3RhbmYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3RhbihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Rhbihsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3RhbmwoX194KTt9CgojdW5kZWYgdGFuCiNkZWZpbmUgdGFuKF9feCkgX190Z190YW4oX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNvc2gKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvc2goZmxvYXQgX194KSB7cmV0dXJuIGNvc2hmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nvc2goZG91YmxlIF9feCkge3JldHVybiBjb3NoKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zaChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gY29zaGwoX194KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb3NoKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjY29zaGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zaChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNjb3NoKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29zaChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Nvc2hsKF9feCk7fQoKI3VuZGVmIGNvc2gKI2RlZmluZSBjb3NoKF9feCkgX190Z19jb3NoKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBzaW5oCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19zaW5oKGZsb2F0IF9feCkge3JldHVybiBzaW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19zaW5oKGRvdWJsZSBfX3gpIHtyZXR1cm4gc2luaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbmgobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHNpbmhsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2luaChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NpbmhmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbmgoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjc2luaChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NpbmgobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNzaW5obChfX3gpO30KCiN1bmRlZiBzaW5oCiNkZWZpbmUgc2luaChfX3gpIF9fdGdfc2luaChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gdGFuaAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuaChmbG9hdCBfX3gpIHtyZXR1cm4gdGFuaGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfdGFuaChkb3VibGUgX194KSB7cmV0dXJuIHRhbmgoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z190YW5oKGxvbmcgZG91YmxlIF9feCkge3JldHVybiB0YW5obChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RhbmgoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGN0YW5oZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z190YW5oKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3RhbmgoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z190YW5oKGxvbmcgZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjdGFuaGwoX194KTt9CgojdW5kZWYgdGFuaAojZGVmaW5lIHRhbmgoX194KSBfX3RnX3RhbmgoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGV4cAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGZsb2F0IF9feCkge3JldHVybiBleHBmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cChkb3VibGUgX194KSB7cmV0dXJuIGV4cChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwbChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2V4cGYoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2V4cChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cChsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2V4cGwoX194KTt9CgojdW5kZWYgZXhwCiNkZWZpbmUgZXhwKF9feCkgX190Z19leHAoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxvZwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGZsb2F0IF9feCkge3JldHVybiBsb2dmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZyhkb3VibGUgX194KSB7cmV0dXJuIGxvZyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nbChfX3gpO30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZyhmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2xvZ2YoX194KTt9CgpzdGF0aWMgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2xvZyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2xvZ2woX194KTt9CgojdW5kZWYgbG9nCiNkZWZpbmUgbG9nKF9feCkgX190Z19sb2coX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHBvdwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcG93KGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIHBvd2YoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19wb3coZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBwb3coX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3Bvdyhsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBwb3dsKF9feCwgX195KTt9CgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19wb3coZmxvYXQgX0NvbXBsZXggX194LCBmbG9hdCBfQ29tcGxleCBfX3kpIHtyZXR1cm4gY3Bvd2YoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19wb3coZG91YmxlIF9Db21wbGV4IF9feCwgZG91YmxlIF9Db21wbGV4IF9feSkge3JldHVybiBjcG93KF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19wb3cobG9uZyBkb3VibGUgX0NvbXBsZXggX194LCBsb25nIGRvdWJsZSBfQ29tcGxleCBfX3kpCiAgICB7cmV0dXJuIGNwb3dsKF9feCwgX195KTt9CgojdW5kZWYgcG93CiNkZWZpbmUgcG93KF9feCwgX195KSBfX3RnX3BvdyhfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBzcXJ0CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19zcXJ0KGZsb2F0IF9feCkge3JldHVybiBzcXJ0ZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19zcXJ0KGRvdWJsZSBfX3gpIHtyZXR1cm4gc3FydChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NxcnQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHNxcnRsKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc3FydChmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY3NxcnRmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NxcnQoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjc3FydChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NxcnQobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNzcXJ0bChfX3gpO30KCiN1bmRlZiBzcXJ0CiNkZWZpbmUgc3FydChfX3gpIF9fdGdfc3FydChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gZmFicwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmFicyhmbG9hdCBfX3gpIHtyZXR1cm4gZmFic2YoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmFicyhkb3VibGUgX194KSB7cmV0dXJuIGZhYnMoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mYWJzKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBmYWJzbChfX3gpO30KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZhYnMoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhYnNmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZhYnMoZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjYWJzKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmFicyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2Fic2woX194KTt9CgojdW5kZWYgZmFicwojZGVmaW5lIGZhYnMoX194KSBfX3RnX2ZhYnMoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGF0YW4yCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuMihmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiBhdGFuMmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuMihkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIGF0YW4yKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19hdGFuMihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBhdGFuMmwoX194LCBfX3kpO30KCiN1bmRlZiBhdGFuMgojZGVmaW5lIGF0YW4yKF9feCwgX195KSBfX3RnX2F0YW4yKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBjYnJ0CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jYnJ0KGZsb2F0IF9feCkge3JldHVybiBjYnJ0ZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jYnJ0KGRvdWJsZSBfX3gpIHtyZXR1cm4gY2JydChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NicnQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGNicnRsKF9feCk7fQoKI3VuZGVmIGNicnQKI2RlZmluZSBjYnJ0KF9feCkgX190Z19jYnJ0KF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjZWlsCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jZWlsKGZsb2F0IF9feCkge3JldHVybiBjZWlsZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jZWlsKGRvdWJsZSBfX3gpIHtyZXR1cm4gY2VpbChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NlaWwobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGNlaWxsKF9feCk7fQoKI3VuZGVmIGNlaWwKI2RlZmluZSBjZWlsKF9feCkgX190Z19jZWlsKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjb3B5c2lnbgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29weXNpZ24oZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gY29weXNpZ25mKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29weXNpZ24oZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBjb3B5c2lnbihfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29weXNpZ24obG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gY29weXNpZ25sKF9feCwgX195KTt9CgojdW5kZWYgY29weXNpZ24KI2RlZmluZSBjb3B5c2lnbihfX3gsIF9feSkgX190Z19jb3B5c2lnbihfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gZXJmCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19lcmYoZmxvYXQgX194KSB7cmV0dXJuIGVyZmYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXJmKGRvdWJsZSBfX3gpIHtyZXR1cm4gZXJmKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXJmKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBlcmZsKF9feCk7fQoKI3VuZGVmIGVyZgojZGVmaW5lIGVyZihfX3gpIF9fdGdfZXJmKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBlcmZjCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19lcmZjKGZsb2F0IF9feCkge3JldHVybiBlcmZjZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19lcmZjKGRvdWJsZSBfX3gpIHtyZXR1cm4gZXJmYyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2VyZmMobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGVyZmNsKF9feCk7fQoKI3VuZGVmIGVyZmMKI2RlZmluZSBlcmZjKF9feCkgX190Z19lcmZjKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBleHAyCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19leHAyKGZsb2F0IF9feCkge3JldHVybiBleHAyZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19leHAyKGRvdWJsZSBfX3gpIHtyZXR1cm4gZXhwMihfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2V4cDIobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGV4cDJsKF9feCk7fQoKI3VuZGVmIGV4cDIKI2RlZmluZSBleHAyKF9feCkgX190Z19leHAyKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBleHBtMQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwbTEoZmxvYXQgX194KSB7cmV0dXJuIGV4cG0xZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19leHBtMShkb3VibGUgX194KSB7cmV0dXJuIGV4cG0xKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZXhwbTEobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGV4cG0xbChfX3gpO30KCiN1bmRlZiBleHBtMQojZGVmaW5lIGV4cG0xKF9feCkgX190Z19leHBtMShfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gZmRpbQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZmRpbShmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiBmZGltZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZkaW0oZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBmZGltKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mZGltKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIGZkaW1sKF9feCwgX195KTt9CgojdW5kZWYgZmRpbQojZGVmaW5lIGZkaW0oX194LCBfX3kpIF9fdGdfZmRpbShfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIGZsb29yCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mbG9vcihmbG9hdCBfX3gpIHtyZXR1cm4gZmxvb3JmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Zsb29yKGRvdWJsZSBfX3gpIHtyZXR1cm4gZmxvb3IoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbG9vcihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gZmxvb3JsKF9feCk7fQoKI3VuZGVmIGZsb29yCiNkZWZpbmUgZmxvb3IoX194KSBfX3RnX2Zsb29yKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBmbWEKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtYShmbG9hdCBfX3gsIGZsb2F0IF9feSwgZmxvYXQgX196KQogICAge3JldHVybiBmbWFmKF9feCwgX195LCBfX3opO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbWEoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikKICAgIHtyZXR1cm4gZm1hKF9feCwgX195LCBfX3opO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtYShsb25nIGRvdWJsZSBfX3gsbG9uZyBkb3VibGUgX195LCBsb25nIGRvdWJsZSBfX3opCiAgICB7cmV0dXJuIGZtYWwoX194LCBfX3ksIF9feik7fQoKI3VuZGVmIGZtYQojZGVmaW5lIGZtYShfX3gsIF9feSwgX196KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIF9fdGdfZm1hKF9fdGdfcHJvbW90ZTMoKF9feCksIChfX3kpLCAoX196KSkoX194KSwgXAogICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTMoKF9feCksIChfX3kpLCAoX196KSkoX195KSwgXAogICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTMoKF9feCksIChfX3kpLCAoX196KSkoX196KSkKCi8vIGZtYXgKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtYXgoZmxvYXQgX194LCBmbG9hdCBfX3kpIHtyZXR1cm4gZm1heGYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbWF4KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHtyZXR1cm4gZm1heChfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1heChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBmbWF4bChfX3gsIF9feSk7fQoKI3VuZGVmIGZtYXgKI2RlZmluZSBmbWF4KF9feCwgX195KSBfX3RnX2ZtYXgoX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBmbWluCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mbWluKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIGZtaW5mKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1pbihkb3VibGUgX194LCBkb3VibGUgX195KSB7cmV0dXJuIGZtaW4oX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZtaW4obG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gZm1pbmwoX194LCBfX3kpO30KCiN1bmRlZiBmbWluCiNkZWZpbmUgZm1pbihfX3gsIF9feSkgX190Z19mbWluKF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3gpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gZm1vZAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfZm1vZChmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiBmbW9kZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Ztb2QoZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBmbW9kKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mbW9kKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIGZtb2RsKF9feCwgX195KTt9CgojdW5kZWYgZm1vZAojZGVmaW5lIGZtb2QoX194LCBfX3kpIF9fdGdfZm1vZChfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIGZyZXhwCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19mcmV4cChmbG9hdCBfX3gsIGludCogX195KSB7cmV0dXJuIGZyZXhwZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2ZyZXhwKGRvdWJsZSBfX3gsIGludCogX195KSB7cmV0dXJuIGZyZXhwKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19mcmV4cChsb25nIGRvdWJsZSBfX3gsIGludCogX195KSB7cmV0dXJuIGZyZXhwbChfX3gsIF9feSk7fQoKI3VuZGVmIGZyZXhwCiNkZWZpbmUgZnJleHAoX194LCBfX3kpIF9fdGdfZnJleHAoX190Z19wcm9tb3RlMSgoX194KSkoX194KSwgX195KQoKLy8gaHlwb3QKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2h5cG90KGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIGh5cG90ZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2h5cG90KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHtyZXR1cm4gaHlwb3QoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2h5cG90KGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIGh5cG90bChfX3gsIF9feSk7fQoKI3VuZGVmIGh5cG90CiNkZWZpbmUgaHlwb3QoX194LCBfX3kpIF9fdGdfaHlwb3QoX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSkKCi8vIGlsb2diCgpzdGF0aWMgaW50CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfaWxvZ2IoZmxvYXQgX194KSB7cmV0dXJuIGlsb2diZihfX3gpO30KCnN0YXRpYyBpbnQKICAgIF9UR19BVFRSUwogICAgX190Z19pbG9nYihkb3VibGUgX194KSB7cmV0dXJuIGlsb2diKF9feCk7fQoKc3RhdGljIGludAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2lsb2diKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBpbG9nYmwoX194KTt9CgojdW5kZWYgaWxvZ2IKI2RlZmluZSBpbG9nYihfX3gpIF9fdGdfaWxvZ2IoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxkZXhwCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19sZGV4cChmbG9hdCBfX3gsIGludCBfX3kpIHtyZXR1cm4gbGRleHBmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGRleHAoZG91YmxlIF9feCwgaW50IF9feSkge3JldHVybiBsZGV4cChfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGRleHAobG9uZyBkb3VibGUgX194LCBpbnQgX195KSB7cmV0dXJuIGxkZXhwbChfX3gsIF9feSk7fQoKI3VuZGVmIGxkZXhwCiNkZWZpbmUgbGRleHAoX194LCBfX3kpIF9fdGdfbGRleHAoX190Z19wcm9tb3RlMSgoX194KSkoX194KSwgX195KQoKLy8gbGdhbW1hCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19sZ2FtbWEoZmxvYXQgX194KSB7cmV0dXJuIGxnYW1tYWYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGdhbW1hKGRvdWJsZSBfX3gpIHtyZXR1cm4gbGdhbW1hKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGdhbW1hKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsZ2FtbWFsKF9feCk7fQoKI3VuZGVmIGxnYW1tYQojZGVmaW5lIGxnYW1tYShfX3gpIF9fdGdfbGdhbW1hKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBsbHJpbnQKCnN0YXRpYyBsb25nIGxvbmcKICAgIF9UR19BVFRSUwogICAgX190Z19sbHJpbnQoZmxvYXQgX194KSB7cmV0dXJuIGxscmludGYoX194KTt9CgpzdGF0aWMgbG9uZyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbGxyaW50KGRvdWJsZSBfX3gpIHtyZXR1cm4gbGxyaW50KF9feCk7fQoKc3RhdGljIGxvbmcgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xscmludChsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbGxyaW50bChfX3gpO30KCiN1bmRlZiBsbHJpbnQKI2RlZmluZSBsbHJpbnQoX194KSBfX3RnX2xscmludChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbGxyb3VuZAoKc3RhdGljIGxvbmcgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xscm91bmQoZmxvYXQgX194KSB7cmV0dXJuIGxscm91bmRmKF9feCk7fQoKc3RhdGljIGxvbmcgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xscm91bmQoZG91YmxlIF9feCkge3JldHVybiBsbHJvdW5kKF9feCk7fQoKc3RhdGljIGxvbmcgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xscm91bmQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxscm91bmRsKF9feCk7fQoKI3VuZGVmIGxscm91bmQKI2RlZmluZSBsbHJvdW5kKF9feCkgX190Z19sbHJvdW5kKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBsb2cxMAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMTAoZmxvYXQgX194KSB7cmV0dXJuIGxvZzEwZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19sb2cxMChkb3VibGUgX194KSB7cmV0dXJuIGxvZzEwKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMTAobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIGxvZzEwbChfX3gpO30KCiN1bmRlZiBsb2cxMAojZGVmaW5lIGxvZzEwKF9feCkgX190Z19sb2cxMChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gbG9nMXAKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZzFwKGZsb2F0IF9feCkge3JldHVybiBsb2cxcGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMXAoZG91YmxlIF9feCkge3JldHVybiBsb2cxcChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZzFwKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBsb2cxcGwoX194KTt9CgojdW5kZWYgbG9nMXAKI2RlZmluZSBsb2cxcChfX3gpIF9fdGdfbG9nMXAoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxvZzIKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZzIoZmxvYXQgX194KSB7cmV0dXJuIGxvZzJmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZzIoZG91YmxlIF9feCkge3JldHVybiBsb2cyKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nMihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nMmwoX194KTt9CgojdW5kZWYgbG9nMgojZGVmaW5lIGxvZzIoX194KSBfX3RnX2xvZzIoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxvZ2IKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZ2IoZmxvYXQgX194KSB7cmV0dXJuIGxvZ2JmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xvZ2IoZG91YmxlIF9feCkge3JldHVybiBsb2diKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbG9nYihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gbG9nYmwoX194KTt9CgojdW5kZWYgbG9nYgojZGVmaW5lIGxvZ2IoX194KSBfX3RnX2xvZ2IoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxyaW50CgpzdGF0aWMgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xyaW50KGZsb2F0IF9feCkge3JldHVybiBscmludGYoX194KTt9CgpzdGF0aWMgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xyaW50KGRvdWJsZSBfX3gpIHtyZXR1cm4gbHJpbnQoX194KTt9CgpzdGF0aWMgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xyaW50KGxvbmcgZG91YmxlIF9feCkge3JldHVybiBscmludGwoX194KTt9CgojdW5kZWYgbHJpbnQKI2RlZmluZSBscmludChfX3gpIF9fdGdfbHJpbnQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGxyb3VuZAoKc3RhdGljIGxvbmcKICAgIF9UR19BVFRSUwogICAgX190Z19scm91bmQoZmxvYXQgX194KSB7cmV0dXJuIGxyb3VuZGYoX194KTt9CgpzdGF0aWMgbG9uZwogICAgX1RHX0FUVFJTCiAgICBfX3RnX2xyb3VuZChkb3VibGUgX194KSB7cmV0dXJuIGxyb3VuZChfX3gpO30KCnN0YXRpYyBsb25nCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbHJvdW5kKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBscm91bmRsKF9feCk7fQoKI3VuZGVmIGxyb3VuZAojZGVmaW5lIGxyb3VuZChfX3gpIF9fdGdfbHJvdW5kKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBuZWFyYnlpbnQKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX25lYXJieWludChmbG9hdCBfX3gpIHtyZXR1cm4gbmVhcmJ5aW50ZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19uZWFyYnlpbnQoZG91YmxlIF9feCkge3JldHVybiBuZWFyYnlpbnQoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19uZWFyYnlpbnQobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIG5lYXJieWludGwoX194KTt9CgojdW5kZWYgbmVhcmJ5aW50CiNkZWZpbmUgbmVhcmJ5aW50KF9feCkgX190Z19uZWFyYnlpbnQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIG5leHRhZnRlcgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbmV4dGFmdGVyKGZsb2F0IF9feCwgZmxvYXQgX195KSB7cmV0dXJuIG5leHRhZnRlcmYoX194LCBfX3kpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19uZXh0YWZ0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkge3JldHVybiBuZXh0YWZ0ZXIoX194LCBfX3kpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX25leHRhZnRlcihsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBuZXh0YWZ0ZXJsKF9feCwgX195KTt9CgojdW5kZWYgbmV4dGFmdGVyCiNkZWZpbmUgbmV4dGFmdGVyKF9feCwgX195KSBfX3RnX25leHRhZnRlcihfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX194KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feSkpCgovLyBuZXh0dG93YXJkCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19uZXh0dG93YXJkKGZsb2F0IF9feCwgbG9uZyBkb3VibGUgX195KSB7cmV0dXJuIG5leHR0b3dhcmRmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbmV4dHRvd2FyZChkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gbmV4dHRvd2FyZChfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfbmV4dHRvd2FyZChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkge3JldHVybiBuZXh0dG93YXJkbChfX3gsIF9feSk7fQoKI3VuZGVmIG5leHR0b3dhcmQKI2RlZmluZSBuZXh0dG93YXJkKF9feCwgX195KSBfX3RnX25leHR0b3dhcmQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSwgKF9feSkpCgovLyByZW1haW5kZXIKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JlbWFpbmRlcihmbG9hdCBfX3gsIGZsb2F0IF9feSkge3JldHVybiByZW1haW5kZXJmKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcmVtYWluZGVyKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHtyZXR1cm4gcmVtYWluZGVyKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yZW1haW5kZXIobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIHtyZXR1cm4gcmVtYWluZGVybChfX3gsIF9feSk7fQoKI3VuZGVmIHJlbWFpbmRlcgojZGVmaW5lIHJlbWFpbmRlcihfX3gsIF9feSkgX190Z19yZW1haW5kZXIoX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGdfcHJvbW90ZTIoKF9feCksIChfX3kpKShfX3kpKQoKLy8gcmVtcXVvCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19yZW1xdW8oZmxvYXQgX194LCBmbG9hdCBfX3ksIGludCogX196KQogICAge3JldHVybiByZW1xdW9mKF9feCwgX195LCBfX3opO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yZW1xdW8oZG91YmxlIF9feCwgZG91YmxlIF9feSwgaW50KiBfX3opCiAgICB7cmV0dXJuIHJlbXF1byhfX3gsIF9feSwgX196KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yZW1xdW8obG9uZyBkb3VibGUgX194LGxvbmcgZG91YmxlIF9feSwgaW50KiBfX3opCiAgICB7cmV0dXJuIHJlbXF1b2woX194LCBfX3ksIF9feik7fQoKI3VuZGVmIHJlbXF1bwojZGVmaW5lIHJlbXF1byhfX3gsIF9feSwgX196KSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgX190Z19yZW1xdW8oX190Z19wcm9tb3RlMigoX194KSwgKF9feSkpKF9feCksIFwKICAgICAgICAgICAgICAgICAgICBfX3RnX3Byb21vdGUyKChfX3gpLCAoX195KSkoX195KSwgXAogICAgICAgICAgICAgICAgICAgIChfX3opKQoKLy8gcmludAoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcmludChmbG9hdCBfX3gpIHtyZXR1cm4gcmludGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcmludChkb3VibGUgX194KSB7cmV0dXJuIHJpbnQoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19yaW50KGxvbmcgZG91YmxlIF9feCkge3JldHVybiByaW50bChfX3gpO30KCiN1bmRlZiByaW50CiNkZWZpbmUgcmludChfX3gpIF9fdGdfcmludChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gcm91bmQKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JvdW5kKGZsb2F0IF9feCkge3JldHVybiByb3VuZGYoX194KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfcm91bmQoZG91YmxlIF9feCkge3JldHVybiByb3VuZChfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3JvdW5kKGxvbmcgZG91YmxlIF9feCkge3JldHVybiByb3VuZGwoX194KTt9CgojdW5kZWYgcm91bmQKI2RlZmluZSByb3VuZChfX3gpIF9fdGdfcm91bmQoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHNjYWxibgoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2NhbGJuKGZsb2F0IF9feCwgaW50IF9feSkge3JldHVybiBzY2FsYm5mKF9feCwgX195KTt9CgpzdGF0aWMgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2NhbGJuKGRvdWJsZSBfX3gsIGludCBfX3kpIHtyZXR1cm4gc2NhbGJuKF9feCwgX195KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19zY2FsYm4obG9uZyBkb3VibGUgX194LCBpbnQgX195KSB7cmV0dXJuIHNjYWxibmwoX194LCBfX3kpO30KCiN1bmRlZiBzY2FsYm4KI2RlZmluZSBzY2FsYm4oX194LCBfX3kpIF9fdGdfc2NhbGJuKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCksIF9feSkKCi8vIHNjYWxibG4KCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NjYWxibG4oZmxvYXQgX194LCBsb25nIF9feSkge3JldHVybiBzY2FsYmxuZihfX3gsIF9feSk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3NjYWxibG4oZG91YmxlIF9feCwgbG9uZyBfX3kpIHtyZXR1cm4gc2NhbGJsbihfX3gsIF9feSk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfc2NhbGJsbihsb25nIGRvdWJsZSBfX3gsIGxvbmcgX195KSB7cmV0dXJuIHNjYWxibG5sKF9feCwgX195KTt9CgojdW5kZWYgc2NhbGJsbgojZGVmaW5lIHNjYWxibG4oX194LCBfX3kpIF9fdGdfc2NhbGJsbihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpLCBfX3kpCgovLyB0Z2FtbWEKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RnYW1tYShmbG9hdCBfX3gpIHtyZXR1cm4gdGdhbW1hZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z190Z2FtbWEoZG91YmxlIF9feCkge3JldHVybiB0Z2FtbWEoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z190Z2FtbWEobG9uZyBkb3VibGUgX194KSB7cmV0dXJuIHRnYW1tYWwoX194KTt9CgojdW5kZWYgdGdhbW1hCiNkZWZpbmUgdGdhbW1hKF9feCkgX190Z190Z2FtbWEoX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIHRydW5jCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z190cnVuYyhmbG9hdCBfX3gpIHtyZXR1cm4gdHJ1bmNmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX3RydW5jKGRvdWJsZSBfX3gpIHtyZXR1cm4gdHJ1bmMoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z190cnVuYyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gdHJ1bmNsKF9feCk7fQoKI3VuZGVmIHRydW5jCiNkZWZpbmUgdHJ1bmMoX194KSBfX3RnX3RydW5jKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjYXJnCgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jYXJnKGZsb2F0IF9feCkge3JldHVybiBhdGFuMmYoMC5GLCBfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jYXJnKGRvdWJsZSBfX3gpIHtyZXR1cm4gYXRhbjIoMC4sIF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2FyZyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gYXRhbjJsKDAuTCwgX194KTt9CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jYXJnKGZsb2F0IF9Db21wbGV4IF9feCkge3JldHVybiBjYXJnZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jYXJnKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2FyZyhfX3gpO30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NhcmcobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNhcmdsKF9feCk7fQoKI3VuZGVmIGNhcmcKI2RlZmluZSBjYXJnKF9feCkgX190Z19jYXJnKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjaW1hZwoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY2ltYWcoZmxvYXQgX194KSB7cmV0dXJuIDA7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NpbWFnKGRvdWJsZSBfX3gpIHtyZXR1cm4gMDt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jaW1hZyhsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gMDt9CgpzdGF0aWMgZmxvYXQKICAgIF9UR19BVFRSUwogICAgX190Z19jaW1hZyhmbG9hdCBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2ltYWdmKF9feCk7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NpbWFnKGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2ltYWcoX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jaW1hZyhsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY2ltYWdsKF9feCk7fQoKI3VuZGVmIGNpbWFnCiNkZWZpbmUgY2ltYWcoX194KSBfX3RnX2NpbWFnKF9fdGdfcHJvbW90ZTEoKF9feCkpKF9feCkpCgovLyBjb25qCgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jb25qKGZsb2F0IF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NvbmooZG91YmxlIF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29uaihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gX194O30KCnN0YXRpYyBmbG9hdCBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NvbmooZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNvbmpmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NvbmooZG91YmxlIF9Db21wbGV4IF9feCkge3JldHVybiBjb25qKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY29uaihsb25nIGRvdWJsZSBfQ29tcGxleCBfX3gpIHtyZXR1cm4gY29uamwoX194KTt9CgojdW5kZWYgY29uagojZGVmaW5lIGNvbmooX194KSBfX3RnX2NvbmooX190Z19wcm9tb3RlMSgoX194KSkoX194KSkKCi8vIGNwcm9qCgpzdGF0aWMgZmxvYXQgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jcHJvaihmbG9hdCBfX3gpIHtyZXR1cm4gY3Byb2pmKF9feCk7fQoKc3RhdGljIGRvdWJsZSBfQ29tcGxleAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2Nwcm9qKGRvdWJsZSBfX3gpIHtyZXR1cm4gY3Byb2ooX194KTt9CgpzdGF0aWMgbG9uZyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jcHJvaihsb25nIGRvdWJsZSBfX3gpIHtyZXR1cm4gY3Byb2psKF9feCk7fQoKc3RhdGljIGZsb2F0IF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3Byb2ooZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNwcm9qZihfX3gpO30KCnN0YXRpYyBkb3VibGUgX0NvbXBsZXgKICAgIF9UR19BVFRSUwogICAgX190Z19jcHJvaihkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNwcm9qKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlIF9Db21wbGV4CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3Byb2oobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNwcm9qbChfX3gpO30KCiN1bmRlZiBjcHJvagojZGVmaW5lIGNwcm9qKF9feCkgX190Z19jcHJvaihfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKLy8gY3JlYWwKCnN0YXRpYyBmbG9hdAogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NyZWFsKGZsb2F0IF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NyZWFsKGRvdWJsZSBfX3gpIHtyZXR1cm4gX194O30KCnN0YXRpYyBsb25nIGRvdWJsZQogICAgX1RHX0FUVFJTCiAgICBfX3RnX2NyZWFsKGxvbmcgZG91YmxlIF9feCkge3JldHVybiBfX3g7fQoKc3RhdGljIGZsb2F0CiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3JlYWwoZmxvYXQgX0NvbXBsZXggX194KSB7cmV0dXJuIGNyZWFsZihfX3gpO30KCnN0YXRpYyBkb3VibGUKICAgIF9UR19BVFRSUwogICAgX190Z19jcmVhbChkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNyZWFsKF9feCk7fQoKc3RhdGljIGxvbmcgZG91YmxlCiAgICBfVEdfQVRUUlMKICAgIF9fdGdfY3JlYWwobG9uZyBkb3VibGUgX0NvbXBsZXggX194KSB7cmV0dXJuIGNyZWFsbChfX3gpO30KCiN1bmRlZiBjcmVhbAojZGVmaW5lIGNyZWFsKF9feCkgX190Z19jcmVhbChfX3RnX3Byb21vdGUxKChfX3gpKShfX3gpKQoKI3VuZGVmIF9UR19BVFRSU3AKI3VuZGVmIF9UR19BVFRSUwoKI2VuZGlmIC8qIF9fY3BsdXNwbHVzICovCiNlbmRpZiAvKiBfX2hhc19pbmNsdWRlX25leHQgKi8KI2VuZGlmIC8qIF9fQ0xBTkdfVEdNQVRIX0ggKi8KAHZhZGVmcy5oAC8qPT09LS0tLSB2YXJhcmdzLmggLSBWYXJpYWJsZSBhcmd1bWVudCBoYW5kbGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CioKKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgoqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgoqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KKgoqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KKi8KI2lmbmRlZiBfX1ZBUkFSR1NfSAojZGVmaW5lIF9fVkFSQVJHU19ICiAgI2Vycm9yICJQbGVhc2UgdXNlIDxzdGRhcmcuaD4gaW5zdGVhZCBvZiA8dmFyYXJncy5oPiIKI2VuZGlmCgAvKj09PS0tLS0gd2FzbV9zaW1kMTI4LmggLSBXZWJBc3NlbWJseSBwb3J0YWJsZSBTSU1EIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fV0FTTV9TSU1EMTI4X0gKI2RlZmluZSBfX1dBU01fU0lNRDEyOF9ICgojaW5jbHVkZSA8c3RkYm9vbC5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CgovLyBVc2VyLWZhY2luZyB0eXBlCnR5cGVkZWYgaW50MzJfdCB2MTI4X3QgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CgovLyBJbnRlcm5hbCB0eXBlcyBkZXRlcm1pbmVkIGJ5IGNsYW5nIGJ1aWx0aW4gZGVmaW5pdGlvbnMKdHlwZWRlZiBpbnQzMl90IF9fdjEyOF91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDEpKSk7CnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pOHgxNgogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3U4eDE2CiAgICBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBzaG9ydCBfX2kxNng4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdTE2eDgKICAgIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIGludCBfX2kzMng0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxNiksIF9fYWxpZ25lZF9fKDE2KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3UzMng0CiAgICBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBsb25nIGxvbmcgX19pNjR4MiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgX191NjR4MgogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDE2KSwgX19hbGlnbmVkX18oMTYpKSk7CnR5cGVkZWYgZmxvYXQgX19mMzJ4NCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKdHlwZWRlZiBkb3VibGUgX19mNjR4MiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKCnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pOHg4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSwgX19hbGlnbmVkX18oOCkpKTsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdTh4OAogICAgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwp0eXBlZGVmIHNob3J0IF9faTE2eDQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdTE2eDQKICAgIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSwgX19hbGlnbmVkX18oOCkpKTsKdHlwZWRlZiBpbnQgX19pMzJ4MiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCksIF9fYWxpZ25lZF9fKDgpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdTMyeDIKICAgIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSwgX19hbGlnbmVkX18oOCkpKTsKdHlwZWRlZiBmbG9hdCBfX2YzMngyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSwgX19hbGlnbmVkX18oOCkpKTsKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzaW1kMTI4IiksICAgICAgICBcCiAgICAgICAgICAgICAgICAgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCgojZGVmaW5lIF9fUkVRVUlSRV9DT05TVEFOVChjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fZGlhZ25vc2VfaWZfXyghX19idWlsdGluX2NvbnN0YW50X3AoYyksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjYyAiIG11c3QgYmUgY29uc3RhbnQiLCAiZXJyb3IiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9sb2FkKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgLy8gVUItZnJlZSB1bmFsaWduZWQgYWNjZXNzIGNvcGllZCBmcm9tIHhtbWludHJpbi5oCiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWRfc3RydWN0IHsKICAgIF9fdjEyOF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3YxMjhfbG9hZDhfc3BsYXQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDhfc3BsYXRfc3RydWN0IHsKICAgIHVpbnQ4X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHVpbnQ4X3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDhfc3BsYXRfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTh4MTYpe19fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192LAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdn07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV92MTI4X2xvYWQxNl9zcGxhdChjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkMTZfc3BsYXRfc3RydWN0IHsKICAgIHVpbnQxNl90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICB1aW50MTZfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkMTZfc3BsYXRfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTE2eDgpe19fdiwgX192LCBfX3YsIF9fdiwgX192LCBfX3YsIF9fdiwgX192fTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3YxMjhfbG9hZDMyX3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQzMl9zcGxhdF9zdHJ1Y3QgewogICAgdWludDMyX3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHVpbnQzMl90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQzMl9zcGxhdF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkoX191MzJ4NCl7X192LCBfX3YsIF9fdiwgX192fTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3YxMjhfbG9hZDY0X3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF9zcGxhdF9zdHJ1Y3QgewogICAgdWludDY0X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHVpbnQ2NF90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQ2NF9zcGxhdF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkoX191NjR4Mil7X192LCBfX3Z9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfbG9hZDh4OChjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21faTE2eDhfbG9hZDh4OF9zdHJ1Y3QgewogICAgX19pOHg4IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX2k4eDggX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX2kxNng4X2xvYWQ4eDhfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fdiwgX19pMTZ4OCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9sb2FkOHg4KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV91MTZ4OF9sb2FkOHg4X3N0cnVjdCB7CiAgICBfX3U4eDggX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9fdTh4OCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdTE2eDhfbG9hZDh4OF9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX192LCBfX3UxNng4KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2xvYWQxNng0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV9pMzJ4NF9sb2FkMTZ4NF9zdHJ1Y3QgewogICAgX19pMTZ4NCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX19pMTZ4NCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21faTMyeDRfbG9hZDE2eDRfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fdiwgX19pMzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MzJ4NF9sb2FkMTZ4NChjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21fdTMyeDRfbG9hZDE2eDRfc3RydWN0IHsKICAgIF9fdTE2eDQgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIF9fdTE2eDQgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3UzMng0X2xvYWQxNng0X3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX3YsIF9fdTMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTY0eDJfbG9hZDMyeDIoY29uc3Qgdm9pZCAqX19tZW0pIHsKICBzdHJ1Y3QgX193YXNtX2k2NHgyX2xvYWQzMngyX3N0cnVjdCB7CiAgICBfX2kzMngyIF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBfX2kzMngyIF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV9pNjR4Ml9sb2FkMzJ4Ml9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX192LCBfX2k2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2xvYWQzMngyKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV91NjR4Ml9sb2FkMzJ4Ml9zdHJ1Y3QgewogICAgX191MzJ4MiBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgX191MzJ4MiBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdTY0eDJfbG9hZDMyeDJfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fdiwgX191NjR4Mik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV92MTI4X2xvYWQzMl96ZXJvKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQzMl96ZXJvX3N0cnVjdCB7CiAgICBpbnQzMl90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBpbnQzMl90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQzMl96ZXJvX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIHJldHVybiAodjEyOF90KShfX2kzMng0KXtfX3YsIDAsIDAsIDB9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdjEyOF9sb2FkNjRfemVybyhjb25zdCB2b2lkICpfX21lbSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkNjRfemVyb19zdHJ1Y3QgewogICAgaW50NjRfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgaW50NjRfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkNjRfemVyb19zdHJ1Y3QgKilfX21lbSktPl9fdjsKICByZXR1cm4gKHYxMjhfdCkoX19pNjR4Mil7X192LCAwfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfbG9hZDhfbGFuZSgKICAgIGNvbnN0IHZvaWQgKl9fbWVtLCB2MTI4X3QgX192ZWMsIGludCBfX2kpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDhfbGFuZV9zdHJ1Y3QgewogICAgaW50OF90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBpbnQ4X3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDhfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICBfX2k4eDE2IF9fcmV0ID0gKF9faTh4MTYpX192ZWM7CiAgX19yZXRbX19pXSA9IF9fdjsKICByZXR1cm4gKHYxMjhfdClfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfbG9hZDE2X2xhbmUoCiAgICBjb25zdCB2b2lkICpfX21lbSwgdjEyOF90IF9fdmVjLCBpbnQgX19pKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQxNl9sYW5lX3N0cnVjdCB7CiAgICBpbnQxNl90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICBpbnQxNl90IF9fdiA9ICgoY29uc3Qgc3RydWN0IF9fd2FzbV92MTI4X2xvYWQxNl9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192OwogIF9faTE2eDggX19yZXQgPSAoX19pMTZ4OClfX3ZlYzsKICBfX3JldFtfX2ldID0gX192OwogIHJldHVybiAodjEyOF90KV9fcmV0Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9sb2FkMzJfbGFuZSgKICAgIGNvbnN0IHZvaWQgKl9fbWVtLCB2MTI4X3QgX192ZWMsIGludCBfX2kpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX2xhbmVfc3RydWN0IHsKICAgIGludDMyX3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIGludDMyX3QgX192ID0gKChjb25zdCBzdHJ1Y3QgX193YXNtX3YxMjhfbG9hZDMyX2xhbmVfc3RydWN0ICopX19tZW0pLT5fX3Y7CiAgX19pMzJ4NCBfX3JldCA9IChfX2kzMng0KV9fdmVjOwogIF9fcmV0W19faV0gPSBfX3Y7CiAgcmV0dXJuICh2MTI4X3QpX19yZXQ7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X2xvYWQ2NF9sYW5lKAogICAgY29uc3Qgdm9pZCAqX19tZW0sIHYxMjhfdCBfX3ZlYywgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkNjRfbGFuZV9zdHJ1Y3QgewogICAgaW50NjRfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgaW50NjRfdCBfX3YgPSAoKGNvbnN0IHN0cnVjdCBfX3dhc21fdjEyOF9sb2FkNjRfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdjsKICBfX2k2NHgyIF9fcmV0ID0gKF9faTY0eDIpX192ZWM7CiAgX19yZXRbX19pXSA9IF9fdjsKICByZXR1cm4gKHYxMjhfdClfX3JldDsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X3N0b3JlKHZvaWQgKl9fbWVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYSkgewogIC8vIFVCLWZyZWUgdW5hbGlnbmVkIGFjY2VzcyBjb3BpZWQgZnJvbSB4bW1pbnRyaW4uaAogIHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZV9zdHJ1Y3QgewogICAgX192MTI4X3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlX3N0cnVjdCAqKV9fbWVtKS0+X192ID0gX19hOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfc3RvcmU4X2xhbmUodm9pZCAqX19tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZThfbGFuZV9zdHJ1Y3QgewogICAgaW50OF90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZThfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdiA9ICgoX19pOHgxNilfX3ZlYylbX19pXTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X3N0b3JlMTZfbGFuZSh2b2lkICpfX21lbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX192ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBzdHJ1Y3QgX193YXNtX3YxMjhfc3RvcmUxNl9sYW5lX3N0cnVjdCB7CiAgICBpbnQxNl90IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZTE2X2xhbmVfc3RydWN0ICopX19tZW0pLT5fX3YgPQogICAgICAoKF9faTE2eDgpX192ZWMpW19faV07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdjEyOF9zdG9yZTMyX2xhbmUodm9pZCAqX19tZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2kpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlMzJfbGFuZV9zdHJ1Y3QgewogICAgaW50MzJfdCBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX193YXNtX3YxMjhfc3RvcmUzMl9sYW5lX3N0cnVjdCAqKV9fbWVtKS0+X192ID0KICAgICAgKChfX2kzMng0KV9fdmVjKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfc3RvcmU2NF9sYW5lKHZvaWQgKl9fbWVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHN0cnVjdCBfX3dhc21fdjEyOF9zdG9yZTY0X2xhbmVfc3RydWN0IHsKICAgIGludDY0X3QgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fd2FzbV92MTI4X3N0b3JlNjRfbGFuZV9zdHJ1Y3QgKilfX21lbSktPl9fdiA9CiAgICAgICgoX19pNjR4MilfX3ZlYylbX19pXTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k4eDE2X21ha2UoaW50OF90IF9fYzAsIGludDhfdCBfX2MxLCBpbnQ4X3QgX19jMiwgaW50OF90IF9fYzMsIGludDhfdCBfX2M0LAogICAgICAgICAgICAgICAgaW50OF90IF9fYzUsIGludDhfdCBfX2M2LCBpbnQ4X3QgX19jNywgaW50OF90IF9fYzgsIGludDhfdCBfX2M5LAogICAgICAgICAgICAgICAgaW50OF90IF9fYzEwLCBpbnQ4X3QgX19jMTEsIGludDhfdCBfX2MxMiwgaW50OF90IF9fYzEzLAogICAgICAgICAgICAgICAgaW50OF90IF9fYzE0LCBpbnQ4X3QgX19jMTUpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pOHgxNil7X19jMCwgIF9fYzEsICBfX2MyLCAgX19jMywgX19jNCwgIF9fYzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzYsICBfX2M3LCAgX19jOCwgIF9fYzksIF9fYzEwLCBfX2MxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jMTIsIF9fYzEzLCBfX2MxNCwgX19jMTV9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTh4MTZfbWFrZSh1aW50OF90IF9fYzAsIHVpbnQ4X3QgX19jMSwgdWludDhfdCBfX2MyLCB1aW50OF90IF9fYzMsCiAgICAgICAgICAgICAgICB1aW50OF90IF9fYzQsIHVpbnQ4X3QgX19jNSwgdWludDhfdCBfX2M2LCB1aW50OF90IF9fYzcsCiAgICAgICAgICAgICAgICB1aW50OF90IF9fYzgsIHVpbnQ4X3QgX19jOSwgdWludDhfdCBfX2MxMCwgdWludDhfdCBfX2MxMSwKICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jMTIsIHVpbnQ4X3QgX19jMTMsIHVpbnQ4X3QgX19jMTQsIHVpbnQ4X3QgX19jMTUpIHsKICByZXR1cm4gKHYxMjhfdCkoX191OHgxNil7X19jMCwgIF9fYzEsICBfX2MyLCAgX19jMywgX19jNCwgIF9fYzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzYsICBfX2M3LCAgX19jOCwgIF9fYzksIF9fYzEwLCBfX2MxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jMTIsIF9fYzEzLCBfX2MxNCwgX19jMTV9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfbWFrZShpbnQxNl90IF9fYzAsIGludDE2X3QgX19jMSwgaW50MTZfdCBfX2MyLCBpbnQxNl90IF9fYzMsCiAgICAgICAgICAgICAgICBpbnQxNl90IF9fYzQsIGludDE2X3QgX19jNSwgaW50MTZfdCBfX2M2LCBpbnQxNl90IF9fYzcpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMTZ4OCl7X19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jN307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9tYWtlKHVpbnQxNl90IF9fYzAsIHVpbnQxNl90IF9fYzEsIHVpbnQxNl90IF9fYzIsIHVpbnQxNl90IF9fYzMsCiAgICAgICAgICAgICAgICB1aW50MTZfdCBfX2M0LCB1aW50MTZfdCBfX2M1LCB1aW50MTZfdCBfX2M2LCB1aW50MTZfdCBfX2M3KSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTE2eDgpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIF9fYzd9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfbWFrZShpbnQzMl90IF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludDMyX3QgX19jMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MzJfdCBfX2MyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IF9fYzMpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMzJ4NCl7X19jMCwgX19jMSwgX19jMiwgX19jM307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9tYWtlKHVpbnQzMl90IF9fYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYzMpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MzJ4NCl7X19jMCwgX19jMSwgX19jMiwgX19jM307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9tYWtlKGludDY0X3QgX19jMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBfX2MxKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTY0eDIpe19fYzAsIF9fYzF9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTY0eDJfbWFrZSh1aW50NjRfdCBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBfX2MxKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTY0eDIpe19fYzAsIF9fYzF9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbWFrZShmbG9hdCBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBfX2MxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBfX2MyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBfX2MzKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fZjMyeDQpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzN9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbWFrZShkb3VibGUgX19jMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mNjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pOHgxNl9jb25zdChpbnQ4X3QgX19jMCwgaW50OF90IF9fYzEsIGludDhfdCBfX2MyLCBpbnQ4X3QgX19jMywKICAgICAgICAgICAgICAgICBpbnQ4X3QgX19jNCwgaW50OF90IF9fYzUsIGludDhfdCBfX2M2LCBpbnQ4X3QgX19jNywKICAgICAgICAgICAgICAgICBpbnQ4X3QgX19jOCwgaW50OF90IF9fYzksIGludDhfdCBfX2MxMCwgaW50OF90IF9fYzExLAogICAgICAgICAgICAgICAgIGludDhfdCBfX2MxMiwgaW50OF90IF9fYzEzLCBpbnQ4X3QgX19jMTQsIGludDhfdCBfX2MxNSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MwKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzIpCiAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzMpIF9fUkVRVUlSRV9DT05TVEFOVChfX2M0KQogICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzYpCiAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzgpCiAgICAgICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzkpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMCkKICAgICAgICAgICAgICAgICAgICAgICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzExKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTMpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxNCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTUpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pOHgxNil7X19jMCwgIF9fYzEsICBfX2MyLCAgX19jMywgX19jNCwgIF9fYzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYzYsICBfX2M3LCAgX19jOCwgIF9fYzksIF9fYzEwLCBfX2MxMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jMTIsIF9fYzEzLCBfX2MxNCwgX19jMTV9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTh4MTZfY29uc3QodWludDhfdCBfX2MwLCB1aW50OF90IF9fYzEsIHVpbnQ4X3QgX19jMiwgdWludDhfdCBfX2MzLAogICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19jNCwgdWludDhfdCBfX2M1LCB1aW50OF90IF9fYzYsIHVpbnQ4X3QgX19jNywKICAgICAgICAgICAgICAgICB1aW50OF90IF9fYzgsIHVpbnQ4X3QgX19jOSwgdWludDhfdCBfX2MxMCwgdWludDhfdCBfX2MxMSwKICAgICAgICAgICAgICAgICB1aW50OF90IF9fYzEyLCB1aW50OF90IF9fYzEzLCB1aW50OF90IF9fYzE0LCB1aW50OF90IF9fYzE1KQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzQpCiAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M1KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNikKICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M3KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jOCkKICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jOSkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEwKQogICAgICAgICAgICAgICAgICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMTEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzE0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxNSkgewogIHJldHVybiAodjEyOF90KShfX3U4eDE2KXtfX2MwLCAgX19jMSwgIF9fYzIsICBfX2MzLCBfX2M0LCAgX19jNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNiwgIF9fYzcsICBfX2M4LCAgX19jOSwgX19jMTAsIF9fYzExLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxMiwgX19jMTMsIF9fYzE0LCBfX2MxNX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9jb25zdChpbnQxNl90IF9fYzAsIGludDE2X3QgX19jMSwgaW50MTZfdCBfX2MyLCBpbnQxNl90IF9fYzMsCiAgICAgICAgICAgICAgICAgaW50MTZfdCBfX2M0LCBpbnQxNl90IF9fYzUsIGludDE2X3QgX19jNiwgaW50MTZfdCBfX2M3KQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzQpCiAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M1KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNikKICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M3KSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTE2eDgpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIF9fYzd9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfY29uc3QodWludDE2X3QgX19jMCwgdWludDE2X3QgX19jMSwgdWludDE2X3QgX19jMiwgdWludDE2X3QgX19jMywKICAgICAgICAgICAgICAgICB1aW50MTZfdCBfX2M0LCB1aW50MTZfdCBfX2M1LCB1aW50MTZfdCBfX2M2LCB1aW50MTZfdCBfX2M3KQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzQpCiAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M1KSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jNikKICAgICAgICAgICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2M3KSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTE2eDgpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIF9fYzd9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfY29uc3QoaW50MzJfdCBfX2MwLCBpbnQzMl90IF9fYzEsIGludDMyX3QgX19jMiwgaW50MzJfdCBfX2MzKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgewogIHJldHVybiAodjEyOF90KShfX2kzMng0KXtfX2MwLCBfX2MxLCBfX2MyLCBfX2MzfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2NvbnN0KHVpbnQzMl90IF9fYzAsIHVpbnQzMl90IF9fYzEsIHVpbnQzMl90IF9fYzIsIHVpbnQzMl90IF9fYzMpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIF9fUkVRVUlSRV9DT05TVEFOVChfX2MyKQogICAgICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MzKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTMyeDQpe19fYzAsIF9fYzEsIF9fYzIsIF9fYzN9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfY29uc3QoaW50NjRfdCBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50NjRfdCBfX2MxKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9faTY0eDIpe19fYzAsIF9fYzF9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTY0eDJfY29uc3QodWludDY0X3QgX19jMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IF9fYzEpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX191NjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9mMzJ4NF9jb25zdChmbG9hdCBfX2MwLCBmbG9hdCBfX2MxLCBmbG9hdCBfX2MyLCBmbG9hdCBfX2MzKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzApIF9fUkVRVUlSRV9DT05TVEFOVChfX2MxKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMikKICAgICAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMykgewogIHJldHVybiAodjEyOF90KShfX2YzMng0KXtfX2MwLCBfX2MxLCBfX2MyLCBfX2MzfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2NvbnN0KGRvdWJsZSBfX2MwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIF9fYzEpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jMCkgX19SRVFVSVJFX0NPTlNUQU5UKF9fYzEpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mNjR4Mil7X19jMCwgX19jMX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9jb25zdF9zcGxhdChpbnQ4X3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX2k4eDE2KXtfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfY29uc3Rfc3BsYXQodWludDhfdCBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTh4MTYpe19fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fY307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9jb25zdF9zcGxhdChpbnQxNl90IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMTZ4OCl7X19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2N9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfY29uc3Rfc3BsYXQodWludDE2X3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX3UxNng4KXtfX2MsIF9fYywgX19jLCBfX2MsIF9fYywgX19jLCBfX2MsIF9fY307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9jb25zdF9zcGxhdChpbnQzMl90IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMzJ4NCl7X19jLCBfX2MsIF9fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X2NvbnN0X3NwbGF0KHVpbnQzMl90IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX191MzJ4NCl7X19jLCBfX2MsIF9fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2NvbnN0X3NwbGF0KGludDY0X3QgX19jKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9fYykgewogIHJldHVybiAodjEyOF90KShfX2k2NHgyKXtfX2MsIF9fY307Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9jb25zdF9zcGxhdCh1aW50NjRfdCBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTY0eDIpe19fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2NvbnN0X3NwbGF0KGZsb2F0IF9fYykKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2MpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mMzJ4NCl7X19jLCBfX2MsIF9fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2NvbnN0X3NwbGF0KGRvdWJsZSBfX2MpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19jKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fZjY0eDIpe19fYywgX19jfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X3NwbGF0KGludDhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pOHgxNil7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X3NwbGF0KHVpbnQ4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTh4MTYpe19fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGludDhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9faTh4MTYpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50OF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fdTh4MTYpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ4X3QgX19iKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9faTh4MTYgX192ID0gKF9faTh4MTYpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X3JlcGxhY2VfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBfX2IpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX191OHgxNiBfX3YgPSAoX191OHgxNilfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfc3BsYXQoaW50MTZfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMTZ4OCl7X19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfc3BsYXQodWludDE2X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKF9fdTE2eDgpe19fYSwgX19hLCBfX2EsIF9fYSwgX19hLCBfX2EsIF9fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gaW50MTZfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSkKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICByZXR1cm4gKChfX2kxNng4KV9fYSlbX19pXTsKfQoKc3RhdGljIF9faW5saW5lX18gdWludDE2X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfZXh0cmFjdF9sYW5lKHYxMjhfdCBfX2EsIGludCBfX2kpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICByZXR1cm4gKChfX3UxNng4KV9fYSlbX19pXTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3JlcGxhY2VfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50MTZfdCBfX2IpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX19pMTZ4OCBfX3YgPSAoX19pMTZ4OClfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfcmVwbGFjZV9sYW5lKAogICAgdjEyOF90IF9fYSwgaW50IF9faSwgdWludDE2X3QgX19iKSBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX191MTZ4OCBfX3YgPSAoX191MTZ4OClfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfc3BsYXQoaW50MzJfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX19pMzJ4NCl7X19hLCBfX2EsIF9fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X3NwbGF0KHVpbnQzMl90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX3UzMng0KXtfX2EsIF9fYSwgX19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9faTMyeDQpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MzJ4NF9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fdTMyeDQpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQzMl90IF9fYikKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX2kzMng0IF9fdiA9IChfX2kzMng0KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9yZXBsYWNlX2xhbmUoCiAgICB2MTI4X3QgX19hLCBpbnQgX19pLCB1aW50MzJfdCBfX2IpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX3UzMng0IF9fdiA9IChfX3UzMng0KV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9zcGxhdChpbnQ2NF90IF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2k2NHgyKXtfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9zcGxhdCh1aW50NjRfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX191NjR4Mil7X19hLCBfX2F9Owp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQ2NF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2V4dHJhY3RfbGFuZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9faTY0eDIpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50NjRfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91NjR4Ml9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwgaW50IF9faSkgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fdTY0eDIpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQ2NF90IF9fYikKICAgIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX2k2NHgyIF9fdiA9IChfX2k2NHgyKV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91NjR4Ml9yZXBsYWNlX2xhbmUoCiAgICB2MTI4X3QgX19hLCBpbnQgX19pLCB1aW50NjRfdCBfX2IpIF9fUkVRVUlSRV9DT05TVEFOVChfX2kpIHsKICBfX3U2NHgyIF9fdiA9IChfX3U2NHgyKV9fYTsKICBfX3ZbX19pXSA9IF9fYjsKICByZXR1cm4gKHYxMjhfdClfX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9zcGxhdChmbG9hdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoX19mMzJ4NCl7X19hLCBfX2EsIF9fYSwgX19hfTsKfQoKc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfZXh0cmFjdF9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fZjMyeDQpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBfX2IpCiAgICBfX1JFUVVJUkVfQ09OU1RBTlQoX19pKSB7CiAgX19mMzJ4NCBfX3YgPSAoX19mMzJ4NClfX2E7CiAgX192W19faV0gPSBfX2I7CiAgcmV0dXJuICh2MTI4X3QpX192Owp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfc3BsYXQoZG91YmxlIF9fYSkgewogIHJldHVybiAodjEyOF90KShfX2Y2NHgyKXtfX2EsIF9fYX07Cn0KCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9leHRyYWN0X2xhbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX19pKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIHJldHVybiAoKF9fZjY0eDIpX19hKVtfX2ldOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfcmVwbGFjZV9sYW5lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9faSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgX19iKQogICAgX19SRVFVSVJFX0NPTlNUQU5UKF9faSkgewogIF9fZjY0eDIgX192ID0gKF9fZjY0eDIpX19hOwogIF9fdltfX2ldID0gX19iOwogIHJldHVybiAodjEyOF90KV9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2VxKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA9PSAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTh4MTYpX19hICE9IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pOHgxNilfX2EgPCAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTh4MTYpX19hIDwgKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA+IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgPiAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTh4MTYpX19hIDw9IChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgPD0gKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k4eDE2KV9fYSA+PSAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTh4MTYpX19hID49IChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9lcSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPT0gKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X25lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KV9fYSAhPSAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpX19hIDwgKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KV9fYSA8IChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPiAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hID4gKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kxNng4KV9fYSA8PSAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hIDw9IChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OClfX2EgPj0gKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KV9fYSA+PSAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfZXEodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hID09IChfX2kzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9uZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NClfX2EgIT0gKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KV9fYSA8IChfX2kzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NClfX2EgPCAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hID4gKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSA+IChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NClfX2EgPD0gKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSA8PSAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpX19hID49IChfX2kzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MzJ4NF9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NClfX2EgPj0gKF9fdTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2VxKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKV9fYSA9PSAoX19pNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfbmUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hICE9IChfX2k2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9sdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4MilfX2EgPCAoX19pNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfZ3QodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hID4gKF9faTY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k2NHgyX2xlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKV9fYSA8PSAoX19pNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfZ2UodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpX19hID49IChfX2k2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9lcSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgPT0gKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X25lKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2YzMng0KV9fYSAhPSAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbHQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hIDwgKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2d0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2YzMng0KV9fYSA+IChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9sZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mMzJ4NClfX2EgPD0gKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2dlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2YzMng0KV9fYSA+PSAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfZXEodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hID09IChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9uZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgIT0gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2x0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2Y2NHgyKV9fYSA8IChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9ndCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgPiAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbGUodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hIDw9IChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9nZSh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19mNjR4MilfX2EgPj0gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfbm90KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gfl9fYTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfYW5kKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIF9fYSAmIF9fYjsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfb3IodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiBfX2EgfCBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X3hvcih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiBfX2EgXiBfX2I7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X2FuZG5vdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBib29sIF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3YxMjhfYW55X3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9hbnlfdHJ1ZV92MTI4KChfX2k4eDE2KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV92MTI4X2JpdHNlbGVjdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX21hc2spIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9iaXRzZWxlY3QoKF9faTMyeDQpX19hLCAoX19pMzJ4NClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2kzMng0KV9fbWFzayk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9hYnModjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Fic19pOHgxNigoX19pOHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfbmVnKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoLShfX3U4eDE2KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGJvb2wgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfYWxsX3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9hbGxfdHJ1ZV9pOHgxNigoX19pOHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9iaXRtYXNrKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3dhc21fYml0bWFza19pOHgxNigoX19pOHgxNilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfcG9wY250KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9wb3BjbnRfaTh4MTYoKF9faTh4MTYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X3NobCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pOHgxNilfX2EgPDwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X3Nocih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pOHgxNilfX2EgPj4gX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X3Nocih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgPj4gX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2FkZCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTh4MTYpX19hICsgKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X2FkZF9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2FkZF9zYXRfc19pOHgxNigoX19pOHgxNilfX2EsIChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9hZGRfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hZGRfc2F0X3VfaTh4MTYoKF9fdTh4MTYpX19hLCAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191OHgxNilfX2EgLSAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTh4MTZfc3ViX3NhdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fc3ViX3NhdF9zX2k4eDE2KChfX2k4eDE2KV9fYSwgKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3U4eDE2X3N1Yl9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3N1Yl9zYXRfdV9pOHgxNigoX191OHgxNilfX2EsIChfX3U4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9taW4odjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWluX3NfaTh4MTYoKF9faTh4MTYpX19hLCAoX19pOHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl91X2k4eDE2KChfX3U4eDE2KV9fYSwgKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2k4eDE2X21heCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9tYXhfc19pOHgxNigoX19pOHgxNilfX2EsIChfX2k4eDE2KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91OHgxNl9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X3VfaTh4MTYoKF9fdTh4MTYpX19hLCAoX191OHgxNilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTh4MTZfYXZncih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYXZncl91X2k4eDE2KChfX3U4eDE2KV9fYSwgKF9fdTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2Ficyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWJzX2kxNng4KChfX2kxNng4KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9uZWcodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSgtKF9fdTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9hbGxfdHJ1ZSh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl93YXNtX2FsbF90cnVlX2kxNng4KChfX2kxNng4KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVpbnQzMl90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X2JpdG1hc2sodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9iaXRtYXNrX2kxNng4KChfX2kxNng4KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9zaGwodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpX19hIDw8IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpX19hID4+IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9zaHIodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpX19hID4+IF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9hZGQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UxNng4KV9fYSArIChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9hZGRfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hZGRfc2F0X3NfaTE2eDgoKF9faTE2eDgpX19hLCAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfYWRkX3NhdCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fYWRkX3NhdF91X2kxNng4KChfX3UxNng4KV9fYSwgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3N1Yih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpX19hIC0gKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3N1Yl9zYXQodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3N1Yl9zYXRfc19pMTZ4OCgoX19pMTZ4OClfX2EsIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV91MTZ4OF9zdWJfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zdWJfc2F0X3VfaTE2eDgoKF9fdTE2eDgpX19hLCAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfbXVsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OClfX2EgKiAoX191MTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTE2eDhfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl9zX2kxNng4KChfX2kxNng4KV9fYSwgKF9faTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X21pbih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9taW5fdV9pMTZ4OCgoX191MTZ4OClfX2EsIChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMTZ4OF9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X3NfaTE2eDgoKF9faTE2eDgpX19hLCAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTE2eDhfbWF4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21heF91X2kxNng4KChfX3UxNng4KV9fYSwgKF9fdTE2eDgpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UxNng4X2F2Z3IodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2F2Z3JfdV9pMTZ4OCgoX191MTZ4OClfX2EsIChfX3UxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9hYnModjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Fic19pMzJ4NCgoX19pMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfbmVnKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoLShfX3UzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGJvb2wgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfYWxsX3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9hbGxfdHJ1ZV9pMzJ4NCgoX19pMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9iaXRtYXNrKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3dhc21fYml0bWFza19pMzJ4NCgoX19pMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfc2hsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KV9fYSA8PCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2kzMng0KV9fYSA+PiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3UzMng0KV9fYSA+PiBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfYWRkKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NClfX2EgKyAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NClfX2EgLSAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfbXVsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NClfX2EgKiAoX191MzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTMyeDRfbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21pbl9zX2kzMng0KChfX2kzMng0KV9fYSwgKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX3UzMng0X21pbih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9taW5fdV9pMzJ4NCgoX191MzJ4NClfX2EsIChfX3UzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pMzJ4NF9tYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbWF4X3NfaTMyeDQoKF9faTMyeDQpX19hLCAoX19pMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTMyeDRfbWF4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21heF91X2kzMng0KChfX3UzMng0KV9fYSwgKF9fdTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kzMng0X2RvdF9pMTZ4OCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9kb3Rfc19pMzJ4NF9pMTZ4OCgoX19pMTZ4OClfX2EsIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9hYnModjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Fic19pNjR4MigoX19pNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfbmVnKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkoLShfX3U2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIGJvb2wgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfYWxsX3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fd2FzbV9hbGxfdHJ1ZV9pNjR4MigoX19pNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1aW50MzJfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pNjR4Ml9iaXRtYXNrKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3dhc21fYml0bWFza19pNjR4MigoX19pNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfc2hsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKV9fYSA8PCAoaW50NjRfdClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX2k2NHgyKV9fYSA+PiAoaW50NjRfdClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fdTY0eDJfc2hyKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpKChfX3U2NHgyKV9fYSA+PiAoaW50NjRfdClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfYWRkKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191NjR4MilfX2EgKyAoX191NjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfc3ViKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191NjR4MilfX2EgLSAoX191NjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21faTY0eDJfbXVsKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191NjR4MilfX2EgKiAoX191NjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfYWJzKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hYnNfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X25lZyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKC0oX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfc3FydCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fc3FydF9mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfY2VpbCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fY2VpbF9mMzJ4NCgoX19mMzJ4NClfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfZmxvb3IodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Zsb29yX2YzMng0KChfX2YzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF90cnVuYyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fdHJ1bmNfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X25lYXJlc3QodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX25lYXJlc3RfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2FkZCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hICsgKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X3N1Yih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hIC0gKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X211bCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hICogKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X2Rpdih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjMyeDQpX19hIC8gKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X21pbih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9taW5fZjMyeDQoKF9fZjMyeDQpX19hLCAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjMyeDRfbWF4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21heF9mMzJ4NCgoX19mMzJ4NClfX2EsIChfX2YzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mMzJ4NF9wbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9wbWluX2YzMng0KChfX2YzMng0KV9fYSwgKF9fZjMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2YzMng0X3BtYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3BtYXhfZjMyeDQoKF9fZjMyeDQpX19hLCAoX19mMzJ4NClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfYWJzKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9hYnNfZjY0eDIoKF9fZjY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX25lZyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpKC0oX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfc3FydCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fc3FydF9mNjR4MigoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfY2VpbCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fY2VpbF9mNjR4MigoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfZmxvb3IodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX2Zsb29yX2Y2NHgyKChfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml90cnVuYyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fdHJ1bmNfZjY0eDIoKF9fZjY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX25lYXJlc3QodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX25lYXJlc3RfZjY0eDIoKF9fZjY0eDIpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2FkZCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hICsgKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX3N1Yih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hIC0gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX211bCh2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hICogKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX2Rpdih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fZjY0eDIpX19hIC8gKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX21pbih2MTI4X3QgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9taW5fZjY0eDIoKF9fZjY0eDIpX19hLCAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTIHdhc21fZjY0eDJfbWF4KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX21heF9mNjR4MigoX19mNjR4MilfX2EsIChfX2Y2NHgyKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9mNjR4Ml9wbWluKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9wbWluX2Y2NHgyKChfX2Y2NHgyKV9fYSwgKF9fZjY0eDIpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2Y2NHgyX3BtYXgodjEyOF90IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3BtYXhfZjY0eDIoKF9fZjY0eDIpX19hLCAoX19mNjR4MilfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTMyeDRfdHJ1bmNfc2F0X2YzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV90cnVuY19zYXR1cmF0ZV9zX2kzMng0X2YzMng0KChfX2YzMng0KV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MzJ4NF90cnVuY19zYXRfZjMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX3RydW5jX3NhdHVyYXRlX3VfaTMyeDRfZjMyeDQoKF9fZjMyeDQpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2YzMng0X2NvbnZlcnRfaTMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX19pMzJ4NClfX2EsIF9fZjMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fZjMyeDRfY29udmVydF91MzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3UzMng0KV9fYSwgX19mMzJ4NCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9mNjR4Ml9jb252ZXJ0X2xvd19pMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX2kzMngyKXtfX2FbMF0sIF9fYVsxXX0sIF9fZjY0eDIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fZjY0eDJfY29udmVydF9sb3dfdTMyeDQodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX191MzJ4Mil7X19hWzBdLCBfX2FbMV19LCBfX2Y2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X3RydW5jX3NhdF9mNjR4Ml96ZXJvKHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV90cnVuY19zYXRfemVyb19zX2Y2NHgyX2kzMng0KChfX2Y2NHgyKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MzJ4NF90cnVuY19zYXRfZjY0eDJfemVybyh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fdHJ1bmNfc2F0X3plcm9fdV9mNjR4Ml9pMzJ4NCgoX19mNjR4MilfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fZjMyeDRfZGVtb3RlX2Y2NHgyX3plcm8odjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fZjY0eDIpX19hLCAoX19mNjR4Mil7MCwgMH0sIDAsIDEsIDIsIDMpLAogICAgICBfX2YzMng0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2Y2NHgyX3Byb21vdGVfbG93X2YzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2YzMngyKXsoKF9fZjMyeDQpX19hKVswXSwgKChfX2YzMng0KV9fYSlbMV19LCBfX2Y2NHgyKTsKfQoKI2RlZmluZSB3YXNtX2k4eDE2X3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNywgX19jOCwgX19jOSwgX19jMTAsIF9fYzExLCBfX2MxMiwgX19jMTMsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jMTQsIF9fYzE1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zaHVmZmxlX2k4eDE2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9faTh4MTYpKF9fYSksIChfX2k4eDE2KShfX2IpLCBfX2MwLCBfX2MxLCBfX2MyLCBfX2MzLCBfX2M0LCBfX2M1LCAgICAgIFwKICAgICAgX19jNiwgX19jNywgX19jOCwgX19jOSwgX19jMTAsIF9fYzExLCBfX2MxMiwgX19jMTMsIF9fYzE0LCBfX2MxNSkpCgojZGVmaW5lIHdhc21faTE2eDhfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2M3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodjEyOF90KV9fYnVpbHRpbl93YXNtX3NodWZmbGVfaTh4MTYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19pOHgxNikoX19hKSwgKF9faTh4MTYpKF9fYiksIChfX2MwKSoyLCAoX19jMCkqMiArIDEsIChfX2MxKSoyLCAgICAgICAgXAogICAgICAoX19jMSkqMiArIDEsIChfX2MyKSoyLCAoX19jMikqMiArIDEsIChfX2MzKSoyLCAoX19jMykqMiArIDEsIChfX2M0KSoyLCAgXAogICAgICAoX19jNCkqMiArIDEsIChfX2M1KSoyLCAoX19jNSkqMiArIDEsIChfX2M2KSoyLCAoX19jNikqMiArIDEsIChfX2M3KSoyLCAgXAogICAgICAoX19jNykqMiArIDEpKQoKI2RlZmluZSB3YXNtX2kzMng0X3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEsIF9fYzIsIF9fYzMpICAgICAgICAgICAgICAgICAgIFwKICAoKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zaHVmZmxlX2k4eDE2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKF9faTh4MTYpKF9fYSksIChfX2k4eDE2KShfX2IpLCAoX19jMCkqNCwgKF9fYzApKjQgKyAxLCAoX19jMCkqNCArIDIsICAgIFwKICAgICAgKF9fYzApKjQgKyAzLCAoX19jMSkqNCwgKF9fYzEpKjQgKyAxLCAoX19jMSkqNCArIDIsIChfX2MxKSo0ICsgMywgICAgICAgIFwKICAgICAgKF9fYzIpKjQsIChfX2MyKSo0ICsgMSwgKF9fYzIpKjQgKyAyLCAoX19jMikqNCArIDMsIChfX2MzKSo0LCAgICAgICAgICAgIFwKICAgICAgKF9fYzMpKjQgKyAxLCAoX19jMykqNCArIDIsIChfX2MzKSo0ICsgMykpCgojZGVmaW5lIHdhc21faTY0eDJfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgodjEyOF90KV9fYnVpbHRpbl93YXNtX3NodWZmbGVfaTh4MTYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAoX19pOHgxNikoX19hKSwgKF9faTh4MTYpKF9fYiksIChfX2MwKSo4LCAoX19jMCkqOCArIDEsIChfX2MwKSo4ICsgMiwgICAgXAogICAgICAoX19jMCkqOCArIDMsIChfX2MwKSo4ICsgNCwgKF9fYzApKjggKyA1LCAoX19jMCkqOCArIDYsIChfX2MwKSo4ICsgNywgICAgXAogICAgICAoX19jMSkqOCwgKF9fYzEpKjggKyAxLCAoX19jMSkqOCArIDIsIChfX2MxKSo4ICsgMywgKF9fYzEpKjggKyA0LCAgICAgICAgXAogICAgICAoX19jMSkqOCArIDUsIChfX2MxKSo4ICsgNiwgKF9fYzEpKjggKyA3KSkKCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMgd2FzbV9pOHgxNl9zd2l6emxlKHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9zd2l6emxlX2k4eDE2KChfX2k4eDE2KV9fYSwgKF9faTh4MTYpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k4eDE2X25hcnJvd19pMTZ4OCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbmFycm93X3NfaTh4MTZfaTE2eDgoKF9faTE2eDgpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2kxNng4KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91OHgxNl9uYXJyb3dfaTE2eDgodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KV9fYnVpbHRpbl93YXNtX25hcnJvd191X2k4eDE2X2kxNng4KChfX2kxNng4KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19pMTZ4OClfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfbmFycm93X2kzMng0KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdClfX2J1aWx0aW5fd2FzbV9uYXJyb3dfc19pMTZ4OF9pMzJ4NCgoX19pMzJ4NClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9faTMyeDQpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X25hcnJvd19pMzJ4NCh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fbmFycm93X3VfaTE2eDhfaTMyeDQoKF9faTMyeDQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX2kzMng0KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMTZ4OF9leHRlbmRfbG93X2k4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2k4eDgpeygoX19pOHgxNilfX2EpWzBdLCAoKF9faTh4MTYpX19hKVsxXSwgKChfX2k4eDE2KV9fYSlbMl0sCiAgICAgICAgICAgICAgICgoX19pOHgxNilfX2EpWzNdLCAoKF9faTh4MTYpX19hKVs0XSwgKChfX2k4eDE2KV9fYSlbNV0sCiAgICAgICAgICAgICAgICgoX19pOHgxNilfX2EpWzZdLCAoKF9faTh4MTYpX19hKVs3XX0sCiAgICAgIF9faTE2eDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTE2eDhfZXh0ZW5kX2hpZ2hfaTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9faTh4OCl7KChfX2k4eDE2KV9fYSlbOF0sICgoX19pOHgxNilfX2EpWzldLCAoKF9faTh4MTYpX19hKVsxMF0sCiAgICAgICAgICAgICAgICgoX19pOHgxNilfX2EpWzExXSwgKChfX2k4eDE2KV9fYSlbMTJdLCAoKF9faTh4MTYpX19hKVsxM10sCiAgICAgICAgICAgICAgICgoX19pOHgxNilfX2EpWzE0XSwgKChfX2k4eDE2KV9fYSlbMTVdfSwKICAgICAgX19pMTZ4OCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91MTZ4OF9leHRlbmRfbG93X3U4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX3U4eDgpeygoX191OHgxNilfX2EpWzBdLCAoKF9fdTh4MTYpX19hKVsxXSwgKChfX3U4eDE2KV9fYSlbMl0sCiAgICAgICAgICAgICAgICgoX191OHgxNilfX2EpWzNdLCAoKF9fdTh4MTYpX19hKVs0XSwgKChfX3U4eDE2KV9fYSlbNV0sCiAgICAgICAgICAgICAgICgoX191OHgxNilfX2EpWzZdLCAoKF9fdTh4MTYpX19hKVs3XX0sCiAgICAgIF9fdTE2eDgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTE2eDhfZXh0ZW5kX2hpZ2hfdTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTh4OCl7KChfX3U4eDE2KV9fYSlbOF0sICgoX191OHgxNilfX2EpWzldLCAoKF9fdTh4MTYpX19hKVsxMF0sCiAgICAgICAgICAgICAgICgoX191OHgxNilfX2EpWzExXSwgKChfX3U4eDE2KV9fYSlbMTJdLCAoKF9fdTh4MTYpX19hKVsxM10sCiAgICAgICAgICAgICAgICgoX191OHgxNilfX2EpWzE0XSwgKChfX3U4eDE2KV9fYSlbMTVdfSwKICAgICAgX191MTZ4OCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pMzJ4NF9leHRlbmRfbG93X2kxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2kxNng0KXsoKF9faTE2eDgpX19hKVswXSwgKChfX2kxNng4KV9fYSlbMV0sICgoX19pMTZ4OClfX2EpWzJdLAogICAgICAgICAgICAgICAgKChfX2kxNng4KV9fYSlbM119LAogICAgICBfX2kzMng0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2V4dGVuZF9oaWdoX2kxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX2kxNng0KXsoKF9faTE2eDgpX19hKVs0XSwgKChfX2kxNng4KV9fYSlbNV0sICgoX19pMTZ4OClfX2EpWzZdLAogICAgICAgICAgICAgICAgKChfX2kxNng4KV9fYSlbN119LAogICAgICBfX2kzMng0KTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2V4dGVuZF9sb3dfdTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTE2eDQpeygoX191MTZ4OClfX2EpWzBdLCAoKF9fdTE2eDgpX19hKVsxXSwgKChfX3UxNng4KV9fYSlbMl0sCiAgICAgICAgICAgICAgICAoKF9fdTE2eDgpX19hKVszXX0sCiAgICAgIF9fdTMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21fdTMyeDRfZXh0ZW5kX2hpZ2hfdTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiAodjEyOF90KSBfX2J1aWx0aW5fY29udmVydHZlY3RvcigKICAgICAgKF9fdTE2eDQpeygoX191MTZ4OClfX2EpWzRdLCAoKF9fdTE2eDgpX19hKVs1XSwgKChfX3UxNng4KV9fYSlbNl0sCiAgICAgICAgICAgICAgICAoKF9fdTE2eDgpX19hKVs3XX0sCiAgICAgIF9fdTMyeDQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERUZBVUxUX0ZOX0FUVFJTCndhc21faTY0eDJfZXh0ZW5kX2xvd19pMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX19pMzJ4Mil7KChfX2kzMng0KV9fYSlbMF0sICgoX19pMzJ4NClfX2EpWzFdfSwgX19pNjR4Mik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV9pNjR4Ml9leHRlbmRfaGlnaF9pMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKAogICAgICAoX19pMzJ4Mil7KChfX2kzMng0KV9fYSlbMl0sICgoX19pMzJ4NClfX2EpWzNdfSwgX19pNjR4Mik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFRkFVTFRfRk5fQVRUUlMKd2FzbV91NjR4Ml9leHRlbmRfbG93X3UzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX3UzMngyKXsoKF9fdTMyeDQpX19hKVswXSwgKChfX3UzMng0KV9fYSlbMV19LCBfX3U2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2V4dGVuZF9oaWdoX3UzMng0KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gKHYxMjhfdCkgX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoCiAgICAgIChfX3UzMngyKXsoKF9fdTMyeDQpX19hKVsyXSwgKChfX3UzMng0KV9fYSlbM119LCBfX3U2NHgyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kxNng4X2V4dGFkZF9wYWlyd2lzZV9pOHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZXh0YWRkX3BhaXJ3aXNlX2k4eDE2X3NfaTE2eDgoKF9faTh4MTYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X2V4dGFkZF9wYWlyd2lzZV91OHgxNih2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZXh0YWRkX3BhaXJ3aXNlX2k4eDE2X3VfaTE2eDgoKF9fdTh4MTYpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2V4dGFkZF9wYWlyd2lzZV9pMTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZXh0YWRkX3BhaXJ3aXNlX2kxNng4X3NfaTMyeDQoKF9faTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2V4dGFkZF9wYWlyd2lzZV91MTZ4OCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fZXh0YWRkX3BhaXJ3aXNlX2kxNng4X3VfaTMyeDQoKF9fdTE2eDgpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kxNng4X2V4dG11bF9sb3dfaTh4MTYodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMTZ4OCl3YXNtX2kxNng4X2V4dGVuZF9sb3dfaTh4MTYoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX2kxNng4KXdhc21faTE2eDhfZXh0ZW5kX2xvd19pOHgxNihfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kxNng4X2V4dG11bF9oaWdoX2k4eDE2KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTE2eDgpd2FzbV9pMTZ4OF9leHRlbmRfaGlnaF9pOHgxNihfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTE2eDgpd2FzbV9pMTZ4OF9leHRlbmRfaGlnaF9pOHgxNihfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X2V4dG11bF9sb3dfdTh4MTYodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MTZ4OCl3YXNtX3UxNng4X2V4dGVuZF9sb3dfdTh4MTYoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX3UxNng4KXdhc21fdTE2eDhfZXh0ZW5kX2xvd191OHgxNihfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UxNng4X2V4dG11bF9oaWdoX3U4eDE2KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTE2eDgpd2FzbV91MTZ4OF9leHRlbmRfaGlnaF91OHgxNihfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTE2eDgpd2FzbV91MTZ4OF9leHRlbmRfaGlnaF91OHgxNihfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2V4dG11bF9sb3dfaTE2eDgodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pMzJ4NCl3YXNtX2kzMng0X2V4dGVuZF9sb3dfaTE2eDgoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX2kzMng0KXdhc21faTMyeDRfZXh0ZW5kX2xvd19pMTZ4OChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2kzMng0X2V4dG11bF9oaWdoX2kxNng4KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTMyeDQpd2FzbV9pMzJ4NF9leHRlbmRfaGlnaF9pMTZ4OChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTMyeDQpd2FzbV9pMzJ4NF9leHRlbmRfaGlnaF9pMTZ4OChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2V4dG11bF9sb3dfdTE2eDgodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191MzJ4NCl3YXNtX3UzMng0X2V4dGVuZF9sb3dfdTE2eDgoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX3UzMng0KXdhc21fdTMyeDRfZXh0ZW5kX2xvd191MTZ4OChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3UzMng0X2V4dG11bF9oaWdoX3UxNng4KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTMyeDQpd2FzbV91MzJ4NF9leHRlbmRfaGlnaF91MTZ4OChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTMyeDQpd2FzbV91MzJ4NF9leHRlbmRfaGlnaF91MTZ4OChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k2NHgyX2V4dG11bF9sb3dfaTMyeDQodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX19pNjR4Mil3YXNtX2k2NHgyX2V4dGVuZF9sb3dfaTMyeDQoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX2k2NHgyKXdhc21faTY0eDJfZXh0ZW5kX2xvd19pMzJ4NChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX2k2NHgyX2V4dG11bF9oaWdoX2kzMng0KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9faTY0eDIpd2FzbV9pNjR4Ml9leHRlbmRfaGlnaF9pMzJ4NChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9faTY0eDIpd2FzbV9pNjR4Ml9leHRlbmRfaGlnaF9pMzJ4NChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2V4dG11bF9sb3dfdTMyeDQodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiAodjEyOF90KSgoX191NjR4Mil3YXNtX3U2NHgyX2V4dGVuZF9sb3dfdTMyeDQoX19hKSAqCiAgICAgICAgICAgICAgICAgIChfX3U2NHgyKXdhc21fdTY0eDJfZXh0ZW5kX2xvd191MzJ4NChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUwp3YXNtX3U2NHgyX2V4dG11bF9oaWdoX3UzMng0KHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gKHYxMjhfdCkoKF9fdTY0eDIpd2FzbV91NjR4Ml9leHRlbmRfaGlnaF91MzJ4NChfX2EpICoKICAgICAgICAgICAgICAgICAgKF9fdTY0eDIpd2FzbV91NjR4Ml9leHRlbmRfaGlnaF91MzJ4NChfX2IpKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVGQVVMVF9GTl9BVFRSUyB3YXNtX2kxNng4X3ExNW11bHJfc2F0KHYxMjhfdCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MTI4X3QgX19iKSB7CiAgcmV0dXJuICh2MTI4X3QpX19idWlsdGluX3dhc21fcTE1bXVscl9zYXRfc19pMTZ4OCgoX19pMTZ4OClfX2EsIChfX2kxNng4KV9fYik7Cn0KCi8vIE9sZCBpbnRyaW5zaWMgbmFtZXMgc3VwcG9ydGVkIHRvIGVhc2UgdHJhbnNpdGlvbmluZyB0byB0aGUgc3RhbmRhcmQgbmFtZXMuIERvCi8vIG5vdCB1c2UgdGhlc2U7IHRoZXkgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZWFyIGZ1dHVyZS4KCiNkZWZpbmUgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKF9fcmVwbGFjZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChkZXByZWNhdGVkKCJ1c2UgIiBfX3JlcGxhY2VtZW50ICIgaW5zdGVhZCIsIF9fcmVwbGFjZW1lbnQpKSkKCiNkZWZpbmUgX19XQVNNX1NUUihYKSAjWAoKI2lmZGVmIF9fREVQUkVDQVRFRAojZGVmaW5lIF9fREVQUkVDQVRFRF9XQVNNX01BQ1JPKF9fbmFtZSwgX19yZXBsYWNlbWVudCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9QcmFnbWEoX19XQVNNX1NUUihHQ0Mgd2FybmluZyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAiJyIgX19uYW1lICInIGlzIGRlcHJlY2F0ZWQ6IHVzZSAnIiBfX3JlcGxhY2VtZW50ICInIGluc3RlYWQiKSkpCiNlbHNlCiNkZWZpbmUgX19ERVBSRUNBVEVEX1dBU01fTUFDUk8oX19uYW1lLCBfX3JlcGxhY2VtZW50KQojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9sb2FkOF9zcGxhdCIpCndhc21fdjh4MTZfbG9hZF9zcGxhdChjb25zdCB2b2lkICpfX21lbSkgewogIHJldHVybiB3YXNtX3YxMjhfbG9hZDhfc3BsYXQoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3YxMjhfbG9hZDE2X3NwbGF0IikKd2FzbV92MTZ4OF9sb2FkX3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9sb2FkMTZfc3BsYXQoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3YxMjhfbG9hZDMyX3NwbGF0IikKd2FzbV92MzJ4NF9sb2FkX3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9sb2FkMzJfc3BsYXQoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3YxMjhfbG9hZDY0X3NwbGF0IikKd2FzbV92NjR4Ml9sb2FkX3NwbGF0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21fdjEyOF9sb2FkNjRfc3BsYXQoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2kxNng4X2xvYWQ4eDgiKQp3YXNtX2kxNng4X2xvYWRfOHg4KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21faTE2eDhfbG9hZDh4OChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTE2eDhfbG9hZDh4OCIpCndhc21fdTE2eDhfbG9hZF84eDgoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV91MTZ4OF9sb2FkOHg4KF9fbWVtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMzJ4NF9sb2FkMTZ4NCIpCndhc21faTMyeDRfbG9hZF8xNng0KGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21faTMyeDRfbG9hZDE2eDQoX19tZW0pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3UzMng0X2xvYWQxNng0IikKd2FzbV91MzJ4NF9sb2FkXzE2eDQoY29uc3Qgdm9pZCAqX19tZW0pIHsKICByZXR1cm4gd2FzbV91MzJ4NF9sb2FkMTZ4NChfX21lbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTY0eDJfbG9hZDMyeDIiKQp3YXNtX2k2NHgyX2xvYWRfMzJ4Mihjb25zdCB2b2lkICpfX21lbSkgewogIHJldHVybiB3YXNtX2k2NHgyX2xvYWQzMngyKF9fbWVtKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91NjR4Ml9sb2FkMzJ4MiIpCndhc21fdTY0eDJfbG9hZF8zMngyKGNvbnN0IHZvaWQgKl9fbWVtKSB7CiAgcmV0dXJuIHdhc21fdTY0eDJfbG9hZDMyeDIoX19tZW0pOwp9CgojZGVmaW5lIHdhc21fdjh4MTZfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2M3LCBfX2M4LCBfX2M5LCBfX2MxMCwgX19jMTEsIF9fYzEyLCBfX2MxMywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICBfX2MxNCwgX19jMTUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVQUkVDQVRFRF9XQVNNX01BQ1JPKCJ3YXNtX3Y4eDE2X3NodWZmbGUiLCAid2FzbV9pOHgxNl9zaHVmZmxlIikgICAgICAgICAgXAogIHdhc21faTh4MTZfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMywgX19jNCwgX19jNSwgX19jNiwgX19jNywgXAogICAgICAgICAgICAgICAgICAgICBfX2M4LCBfX2M5LCBfX2MxMCwgX19jMTEsIF9fYzEyLCBfX2MxMywgX19jMTQsIF9fYzE1KQoKI2RlZmluZSB3YXNtX3YxNng4X3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jNykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFUFJFQ0FURURfV0FTTV9NQUNSTygid2FzbV92MTZ4OF9zaHVmZmxlIiwgIndhc21faTE2eDhfc2h1ZmZsZSIpICAgICAgICAgIFwKICB3YXNtX2kxNng4X3NodWZmbGUoX19hLCBfX2IsIF9fYzAsIF9fYzEsIF9fYzIsIF9fYzMsIF9fYzQsIF9fYzUsIF9fYzYsIF9fYzcpCgojZGVmaW5lIHdhc21fdjMyeDRfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMykgICAgICAgICAgICAgICAgICAgXAogIF9fREVQUkVDQVRFRF9XQVNNX01BQ1JPKCJ3YXNtX3YzMng0X3NodWZmbGUiLCAid2FzbV9pMzJ4NF9zaHVmZmxlIikgICAgICAgICAgXAogIHdhc21faTMyeDRfc2h1ZmZsZShfX2EsIF9fYiwgX19jMCwgX19jMSwgX19jMiwgX19jMykKCiNkZWZpbmUgd2FzbV92NjR4Ml9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERVBSRUNBVEVEX1dBU01fTUFDUk8oIndhc21fdjY0eDJfc2h1ZmZsZSIsICJ3YXNtX2k2NHgyX3NodWZmbGUiKSAgICAgICAgICBcCiAgd2FzbV9pNjR4Ml9zaHVmZmxlKF9fYSwgX19iLCBfX2MwLCBfX2MxKQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pOHgxNl9zd2l6emxlIikKd2FzbV92OHgxNl9zd2l6emxlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV9pOHgxNl9zd2l6emxlKF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9hbnlfdHJ1ZSIpCndhc21faTh4MTZfYW55X3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3YxMjhfYW55X3RydWUoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9hbnlfdHJ1ZSIpCndhc21faTE2eDhfYW55X3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3YxMjhfYW55X3RydWUoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gYm9vbCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdjEyOF9hbnlfdHJ1ZSIpCndhc21faTMyeDRfYW55X3RydWUodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3YxMjhfYW55X3RydWUoX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pOHgxNl9hZGRfc2F0IikKd2FzbV9pOHgxNl9hZGRfc2F0dXJhdGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX2k4eDE2X2FkZF9zYXQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3U4eDE2X2FkZF9zYXQiKQp3YXNtX3U4eDE2X2FkZF9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21fdTh4MTZfYWRkX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTh4MTZfc3ViX3NhdCIpCndhc21faTh4MTZfc3ViX3NhdHVyYXRlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV9pOHgxNl9zdWJfc2F0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV91OHgxNl9zdWJfc2F0IikKd2FzbV91OHgxNl9zdWJfc2F0dXJhdGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX3U4eDE2X3N1Yl9zYXQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX2kxNng4X2FkZF9zYXQiKQp3YXNtX2kxNng4X2FkZF9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21faTE2eDhfYWRkX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTE2eDhfYWRkX3NhdCIpCndhc21fdTE2eDhfYWRkX3NhdHVyYXRlKHYxMjhfdCBfX2EsIHYxMjhfdCBfX2IpIHsKICByZXR1cm4gd2FzbV91MTZ4OF9hZGRfc2F0KF9fYSwgX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gdjEyOF90IF9fREVQUkVDQVRFRF9GTl9BVFRSUygid2FzbV9pMTZ4OF9zdWJfc2F0IikKd2FzbV9pMTZ4OF9zdWJfc2F0dXJhdGUodjEyOF90IF9fYSwgdjEyOF90IF9fYikgewogIHJldHVybiB3YXNtX2kxNng4X3N1Yl9zYXQoX19hLCBfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2MTI4X3QgX19ERVBSRUNBVEVEX0ZOX0FUVFJTKCJ3YXNtX3UxNng4X3N1Yl9zYXQiKQp3YXNtX3UxNng4X3N1Yl9zYXR1cmF0ZSh2MTI4X3QgX19hLCB2MTI4X3QgX19iKSB7CiAgcmV0dXJuIHdhc21fdTE2eDhfc3ViX3NhdChfX2EsIF9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTE2eDhfZXh0ZW5kX2xvd19pOHgxNiIpCndhc21faTE2eDhfd2lkZW5fbG93X2k4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV9pMTZ4OF9leHRlbmRfbG93X2k4eDE2KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTE2eDhfZXh0ZW5kX2hpZ2hfaTh4MTYiKQp3YXNtX2kxNng4X3dpZGVuX2hpZ2hfaTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX2kxNng4X2V4dGVuZF9oaWdoX2k4eDE2KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTE2eDhfZXh0ZW5kX2xvd191OHgxNiIpCndhc21faTE2eDhfd2lkZW5fbG93X3U4eDE2KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV91MTZ4OF9leHRlbmRfbG93X3U4eDE2KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTE2eDhfZXh0ZW5kX2hpZ2hfdTh4MTYiKQp3YXNtX2kxNng4X3dpZGVuX2hpZ2hfdTh4MTYodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3UxNng4X2V4dGVuZF9oaWdoX3U4eDE2KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTMyeDRfZXh0ZW5kX2xvd19pMTZ4OCIpCndhc21faTMyeDRfd2lkZW5fbG93X2kxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV9pMzJ4NF9leHRlbmRfbG93X2kxNng4KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTMyeDRfZXh0ZW5kX2hpZ2hfaTE2eDgiKQp3YXNtX2kzMng0X3dpZGVuX2hpZ2hfaTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX2kzMng0X2V4dGVuZF9oaWdoX2kxNng4KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTMyeDRfZXh0ZW5kX2xvd191MTZ4OCIpCndhc21faTMyeDRfd2lkZW5fbG93X3UxNng4KHYxMjhfdCBfX2EpIHsKICByZXR1cm4gd2FzbV91MzJ4NF9leHRlbmRfbG93X3UxNng4KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTMyeDRfZXh0ZW5kX2hpZ2hfdTE2eDgiKQp3YXNtX2kzMng0X3dpZGVuX2hpZ2hfdTE2eDgodjEyOF90IF9fYSkgewogIHJldHVybiB3YXNtX3UzMng0X2V4dGVuZF9oaWdoX3UxNng4KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21faTMyeDRfdHJ1bmNfc2F0X2YzMng0IikKd2FzbV9pMzJ4NF90cnVuY19zYXR1cmF0ZV9mMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21faTMyeDRfdHJ1bmNfc2F0X2YzMng0KF9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHYxMjhfdCBfX0RFUFJFQ0FURURfRk5fQVRUUlMoIndhc21fdTMyeDRfdHJ1bmNfc2F0X2YzMng0IikKd2FzbV91MzJ4NF90cnVuY19zYXR1cmF0ZV9mMzJ4NCh2MTI4X3QgX19hKSB7CiAgcmV0dXJuIHdhc21fdTMyeDRfdHJ1bmNfc2F0X2YzMng0KF9fYSk7Cn0KCi8vIFVuZGVmaW5lIGhlbHBlciBtYWNyb3MKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERVBSRUNBVEVEX0ZOX0FUVFJTCgojZW5kaWYgLy8gX19XQVNNX1NJTUQxMjhfSAoALyo9PT0tLS0tIHhzYXZlb3B0aW50cmluLmggLSBYU0FWRU9QVCBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx4c2F2ZW9wdGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19YU0FWRU9QVElOVFJJTl9ICiNkZWZpbmUgX19YU0FWRU9QVElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oInhzYXZlb3B0IikpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlb3B0KHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hzYXZlb3B0KF9fcCwgX19tKTsKfQoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3hzYXZlb3B0NjQodm9pZCAqX19wLCB1bnNpZ25lZCBsb25nIGxvbmcgX19tKSB7CiAgX19idWlsdGluX2lhMzJfeHNhdmVvcHQ2NChfX3AsIF9fbSk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSB4c2F2ZXNpbnRyaW4uaCAtIFhTQVZFUyBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8eHNhdmVzaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1hTQVZFU0lOVFJJTl9ICiNkZWZpbmUgX19YU0FWRVNJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJ4c2F2ZXMiKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHNhdmVzKHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hzYXZlcyhfX3AsIF9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94cnN0b3JzKHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hyc3RvcnMoX19wLCBfX20pOwp9CgojaWZkZWYgX194ODZfNjRfXwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfeHJzdG9yczY0KHZvaWQgKl9fcCwgdW5zaWduZWQgbG9uZyBsb25nIF9fbSkgewogIF9fYnVpbHRpbl9pYTMyX3hyc3RvcnM2NChfX3AsIF9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl94c2F2ZXM2NCh2b2lkICpfX3AsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX20pIHsKICBfX2J1aWx0aW5faWEzMl94c2F2ZXM2NChfX3AsIF9fbSk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBfX2NvbXBsZXhfY21hdGguaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIHN0ZDo6Y29tcGxleCBoZWFkZXIgY29waWVkIGZyb20gdGhlIGxpYmN4eCBzb3VyY2UgYW5kIHNpbXBsaWZpZWQgZm9yIHVzZSBpbgovLyBPcGVuTVAgdGFyZ2V0IG9mZmxvYWQgcmVnaW9ucy4KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX09QRU5NUAojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgT3Blbk1QIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZm5kZWYgX19jcGx1c3BsdXMKI2Vycm9yICJUaGlzIGZpbGUgaXMgZm9yIEMrKyBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgojaWZuZGVmIF9MSUJDUFBfQ09NUExFWAojZGVmaW5lIF9MSUJDUFBfQ09NUExFWAoKI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIGNvbnN0ZXhwciBfX2F0dHJpYnV0ZV9fKChub3Rocm93KSkKCm5hbWVzcGFjZSBzdGQgewoKLy8gYWJzCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBfX0RFVklDRV9fIF9UcCBhYnMoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9fYykgewogIHJldHVybiBoeXBvdChfX2MucmVhbCgpLCBfX2MuaW1hZygpKTsKfQoKLy8gYXJnCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBfX0RFVklDRV9fIF9UcCBhcmcoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9fYykgewogIHJldHVybiBhdGFuMihfX2MuaW1hZygpLCBfX2MucmVhbCgpKTsKfQoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KdHlwZW5hbWUgZW5hYmxlX2lmPGlzX2ludGVncmFsPF9UcD46OnZhbHVlIHx8IGlzX3NhbWU8X1RwLCBkb3VibGU+Ojp2YWx1ZSwKICAgICAgICAgICAgICAgICAgIGRvdWJsZT46OnR5cGUKYXJnKF9UcCBfX3JlKSB7CiAgcmV0dXJuIGF0YW4yKDAuLCBfX3JlKTsKfQoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KdHlwZW5hbWUgZW5hYmxlX2lmPGlzX3NhbWU8X1RwLCBmbG9hdD46OnZhbHVlLCBmbG9hdD46OnR5cGUgYXJnKF9UcCBfX3JlKSB7CiAgcmV0dXJuIGF0YW4yZigwLkYsIF9fcmUpOwp9CgovLyBub3JtCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBfX0RFVklDRV9fIF9UcCBub3JtKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX2MpIHsKICBpZiAoc3RkOjppc2luZihfX2MucmVhbCgpKSkKICAgIHJldHVybiBhYnMoX19jLnJlYWwoKSk7CiAgaWYgKHN0ZDo6aXNpbmYoX19jLmltYWcoKSkpCiAgICByZXR1cm4gYWJzKF9fYy5pbWFnKCkpOwogIHJldHVybiBfX2MucmVhbCgpICogX19jLnJlYWwoKSArIF9fYy5pbWFnKCkgKiBfX2MuaW1hZygpOwp9CgovLyBjb25qCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdGQ6OmNvbXBsZXg8X1RwPiBjb25qKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX2MpIHsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX19jLnJlYWwoKSwgLV9fYy5pbWFnKCkpOwp9CgovLyBwcm9qCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdGQ6OmNvbXBsZXg8X1RwPiBwcm9qKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX2MpIHsKICBzdGQ6OmNvbXBsZXg8X1RwPiBfX3IgPSBfX2M7CiAgaWYgKHN0ZDo6aXNpbmYoX19jLnJlYWwoKSkgfHwgc3RkOjppc2luZihfX2MuaW1hZygpKSkKICAgIF9fciA9IHN0ZDo6Y29tcGxleDxfVHA+KElORklOSVRZLCBjb3B5c2lnbihfVHAoMCksIF9fYy5pbWFnKCkpKTsKICByZXR1cm4gX19yOwp9CgovLyBwb2xhcgoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KY29tcGxleDxfVHA+IHBvbGFyKGNvbnN0IF9UcCAmX19yaG8sIGNvbnN0IF9UcCAmX190aGV0YSA9IF9UcCgpKSB7CiAgaWYgKHN0ZDo6aXNuYW4oX19yaG8pIHx8IHNpZ25iaXQoX19yaG8pKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9UcChOQU4pLCBfVHAoTkFOKSk7CiAgaWYgKHN0ZDo6aXNuYW4oX190aGV0YSkpIHsKICAgIGlmIChzdGQ6OmlzaW5mKF9fcmhvKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcmhvLCBfX3RoZXRhKTsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3RoZXRhLCBfX3RoZXRhKTsKICB9CiAgaWYgKHN0ZDo6aXNpbmYoX190aGV0YSkpIHsKICAgIGlmIChzdGQ6OmlzaW5mKF9fcmhvKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcmhvLCBfVHAoTkFOKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKE5BTiksIF9UcChOQU4pKTsKICB9CiAgX1RwIF9feCA9IF9fcmhvICogY29zKF9fdGhldGEpOwogIGlmIChzdGQ6OmlzbmFuKF9feCkpCiAgICBfX3ggPSAwOwogIF9UcCBfX3kgPSBfX3JobyAqIHNpbihfX3RoZXRhKTsKICBpZiAoc3RkOjppc25hbihfX3kpKQogICAgX195ID0gMDsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LCBfX3kpOwp9CgovLyBsb2cKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IGxvZyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGxvZyhhYnMoX194KSksIGFyZyhfX3gpKTsKfQoKLy8gbG9nMTAKCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0ZDo6Y29tcGxleDxfVHA+IGxvZzEwKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICByZXR1cm4gbG9nKF9feCkgLyBsb2coX1RwKDEwKSk7Cn0KCi8vIHNxcnQKCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gc3FydChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKElORklOSVRZKSwgX194LmltYWcoKSk7CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkpIHsKICAgIGlmIChfX3gucmVhbCgpID4gX1RwKDApKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgc3RkOjppc25hbihfX3guaW1hZygpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX194LmltYWcoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29weXNpZ24oX1RwKDApLCBfX3guaW1hZygpKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oc3RkOjppc25hbihfX3guaW1hZygpKSA/IF9feC5pbWFnKCkgOiBfVHAoMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX194LnJlYWwoKSwgX194LmltYWcoKSkpOwogIH0KICByZXR1cm4gcG9sYXIoc3FydChhYnMoX194KSksIGFyZyhfX3gpIC8gX1RwKDIpKTsKfQoKLy8gZXhwCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGV4cChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgX1RwIF9faSA9IF9feC5pbWFnKCk7CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkpIHsKICAgIGlmIChfX3gucmVhbCgpIDwgX1RwKDApKSB7CiAgICAgIGlmICghc3RkOjppc2Zpbml0ZShfX2kpKQogICAgICAgIF9faSA9IF9UcCgxKTsKICAgIH0gZWxzZSBpZiAoX19pID09IDAgfHwgIXN0ZDo6aXNmaW5pdGUoX19pKSkgewogICAgICBpZiAoc3RkOjppc2luZihfX2kpKQogICAgICAgIF9faSA9IF9UcChOQU4pOwogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgX19pKTsKICAgIH0KICB9IGVsc2UgaWYgKHN0ZDo6aXNuYW4oX194LnJlYWwoKSkgJiYgX194LmltYWcoKSA9PSAwKQogICAgcmV0dXJuIF9feDsKICBfVHAgX19lID0gZXhwKF9feC5yZWFsKCkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX2UgKiBjb3MoX19pKSwgX19lICogc2luKF9faSkpOwp9CgovLyBwb3cKCnRlbXBsYXRlIDxjbGFzcyBfVHA+CnN0ZDo6Y29tcGxleDxfVHA+IHBvdyhjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194LAogICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feSkgewogIHJldHVybiBleHAoX195ICogbG9nKF9feCkpOwp9CgovLyBfX3NxciwgY29tcHV0ZXMgcG93KHgsIDIpCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdGQ6OmNvbXBsZXg8X1RwPiBfX3Nxcihjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KChfX3gucmVhbCgpIC0gX194LmltYWcoKSkgKgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9feC5yZWFsKCkgKyBfX3guaW1hZygpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RwKDIpICogX194LnJlYWwoKSAqIF9feC5pbWFnKCkpOwp9CgovLyBhc2luaAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBhc2luaChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgY29uc3QgX1RwIF9fcGkoYXRhbjIoKzAuLCAtMC4pKTsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKHN0ZDo6aXNuYW4oX194LmltYWcoKSkpCiAgICAgIHJldHVybiBfX3g7CiAgICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpICogX1RwKDAuMjUpLCBfX3guaW1hZygpKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgY29weXNpZ24oX1RwKDApLCBfX3guaW1hZygpKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5yZWFsKCkpKSB7CiAgICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5pbWFnKCksIF9feC5yZWFsKCkpOwogICAgaWYgKF9feC5pbWFnKCkgPT0gMCkKICAgICAgcmV0dXJuIF9feDsKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfX3gucmVhbCgpKTsKICB9CiAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX194LmltYWcoKSwgX194LnJlYWwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX19waSAvIF9UcCgyKSwgX194LmltYWcoKSkpOwogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGxvZyhfX3ggKyBzcXJ0KF9fc3FyKF9feCkgKyBfVHAoMSkpKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX196LnJlYWwoKSwgX194LnJlYWwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9fei5pbWFnKCksIF9feC5pbWFnKCkpKTsKfQoKLy8gYWNvc2gKCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gYWNvc2goY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIGNvbnN0IF9UcCBfX3BpKGF0YW4yKCswLiwgLTAuKSk7CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkpIHsKICAgIGlmIChzdGQ6OmlzbmFuKF9feC5pbWFnKCkpKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oYWJzKF9feC5yZWFsKCkpLCBfX3guaW1hZygpKTsKICAgIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKSB7CiAgICAgIGlmIChfX3gucmVhbCgpID4gMCkKICAgICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX19waSAqIF9UcCgwLjI1KSwgX194LmltYWcoKSkpOwogICAgICBlbHNlCiAgICAgICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KC1fX3gucmVhbCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpICogX1RwKDAuNzUpLCBfX3guaW1hZygpKSk7CiAgICB9CiAgICBpZiAoX194LnJlYWwoKSA8IDApCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPigtX194LnJlYWwoKSwgY29weXNpZ24oX19waSwgX194LmltYWcoKSkpOwogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIGNvcHlzaWduKF9UcCgwKSwgX194LmltYWcoKSkpOwogIH0KICBpZiAoc3RkOjppc25hbihfX3gucmVhbCgpKSkgewogICAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX194LmltYWcoKSksIF9feC5yZWFsKCkpOwogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9feC5yZWFsKCksIF9feC5yZWFsKCkpOwogIH0KICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX194LmltYWcoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX19waSAvIF9UcCgyKSwgX194LmltYWcoKSkpOwogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGxvZyhfX3ggKyBzcXJ0KF9fc3FyKF9feCkgLSBfVHAoMSkpKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX196LnJlYWwoKSwgX1RwKDApKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX196LmltYWcoKSwgX194LmltYWcoKSkpOwp9CgovLyBhdGFuaAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBhdGFuaChjb25zdCBzdGQ6OmNvbXBsZXg8X1RwPiAmX194KSB7CiAgY29uc3QgX1RwIF9fcGkoYXRhbjIoKzAuLCAtMC4pKTsKICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkgewogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGNvcHlzaWduKF9UcCgwKSwgX194LnJlYWwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX19waSAvIF9UcCgyKSwgX194LmltYWcoKSkpOwogIH0KICBpZiAoc3RkOjppc25hbihfX3guaW1hZygpKSkgewogICAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkgfHwgX194LnJlYWwoKSA9PSAwKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX1RwKDApLCBfX3gucmVhbCgpKSwgX194LmltYWcoKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LmltYWcoKSwgX194LmltYWcoKSk7CiAgfQogIGlmIChzdGQ6OmlzbmFuKF9feC5yZWFsKCkpKSB7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgX194LnJlYWwoKSk7CiAgfQogIGlmIChzdGQ6OmlzaW5mKF9feC5yZWFsKCkpKSB7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX1RwKDApLCBfX3gucmVhbCgpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfX3BpIC8gX1RwKDIpLCBfX3guaW1hZygpKSk7CiAgfQogIGlmIChhYnMoX194LnJlYWwoKSkgPT0gX1RwKDEpICYmIF9feC5pbWFnKCkgPT0gX1RwKDApKSB7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX1RwKElORklOSVRZKSwgX194LnJlYWwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29weXNpZ24oX1RwKDApLCBfX3guaW1hZygpKSk7CiAgfQogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGxvZygoX1RwKDEpICsgX194KSAvIChfVHAoMSkgLSBfX3gpKSAvIF9UcCgyKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oY29weXNpZ24oX196LnJlYWwoKSwgX194LnJlYWwoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHlzaWduKF9fei5pbWFnKCksIF9feC5pbWFnKCkpKTsKfQoKLy8gc2luaAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBzaW5oKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSAmJiAhc3RkOjppc2Zpbml0ZShfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfVHAoTkFOKSk7CiAgaWYgKF9feC5yZWFsKCkgPT0gMCAmJiAhc3RkOjppc2Zpbml0ZShfX3guaW1hZygpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCBfVHAoTkFOKSk7CiAgaWYgKF9feC5pbWFnKCkgPT0gMCAmJiAhc3RkOjppc2Zpbml0ZShfX3gucmVhbCgpKSkKICAgIHJldHVybiBfX3g7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KHNpbmgoX194LnJlYWwoKSkgKiBjb3MoX194LmltYWcoKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvc2goX194LnJlYWwoKSkgKiBzaW4oX194LmltYWcoKSkpOwp9CgovLyBjb3NoCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGNvc2goY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIGlmIChzdGQ6OmlzaW5mKF9feC5yZWFsKCkpICYmICFzdGQ6OmlzZmluaXRlKF9feC5pbWFnKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KGFicyhfX3gucmVhbCgpKSwgX1RwKE5BTikpOwogIGlmIChfX3gucmVhbCgpID09IDAgJiYgIXN0ZDo6aXNmaW5pdGUoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKE5BTiksIF9feC5yZWFsKCkpOwogIGlmIChfX3gucmVhbCgpID09IDAgJiYgX194LmltYWcoKSA9PSAwKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9UcCgxKSwgX194LmltYWcoKSk7CiAgaWYgKF9feC5pbWFnKCkgPT0gMCAmJiAhc3RkOjppc2Zpbml0ZShfX3gucmVhbCgpKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX194LnJlYWwoKSksIF9feC5pbWFnKCkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihjb3NoKF9feC5yZWFsKCkpICogY29zKF9feC5pbWFnKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzaW5oKF9feC5yZWFsKCkpICogc2luKF9feC5pbWFnKCkpKTsKfQoKLy8gdGFuaAoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiB0YW5oKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBpZiAoc3RkOjppc2luZihfX3gucmVhbCgpKSkgewogICAgaWYgKCFzdGQ6OmlzZmluaXRlKF9feC5pbWFnKCkpKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDEpLCBfVHAoMCkpOwogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9UcCgxKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5c2lnbihfVHAoMCksIHNpbihfVHAoMikgKiBfX3guaW1hZygpKSkpOwogIH0KICBpZiAoc3RkOjppc25hbihfX3gucmVhbCgpKSAmJiBfX3guaW1hZygpID09IDApCiAgICByZXR1cm4gX194OwogIF9UcCBfXzJyKF9UcCgyKSAqIF9feC5yZWFsKCkpOwogIF9UcCBfXzJpKF9UcCgyKSAqIF9feC5pbWFnKCkpOwogIF9UcCBfX2QoY29zaChfXzJyKSArIGNvcyhfXzJpKSk7CiAgX1RwIF9fMnJzaChzaW5oKF9fMnIpKTsKICBpZiAoc3RkOjppc2luZihfXzJyc2gpICYmIHN0ZDo6aXNpbmYoX19kKSkKICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfXzJyc2ggPiBfVHAoMCkgPyBfVHAoMSkgOiBfVHAoLTEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fMmkgPiBfVHAoMCkgPyBfVHAoMCkgOiBfVHAoLTAuKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fMnJzaCAvIF9fZCwgc2luKF9fMmkpIC8gX19kKTsKfQoKLy8gYXNpbgoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBhc2luKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBzdGQ6OmNvbXBsZXg8X1RwPiBfX3ogPSBhc2luaChjb21wbGV4PF9UcD4oLV9feC5pbWFnKCksIF9feC5yZWFsKCkpKTsKICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX196LmltYWcoKSwgLV9fei5yZWFsKCkpOwp9CgovLyBhY29zCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGFjb3MoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIGNvbnN0IF9UcCBfX3BpKGF0YW4yKCswLiwgLTAuKSk7CiAgaWYgKHN0ZDo6aXNpbmYoX194LnJlYWwoKSkpIHsKICAgIGlmIChzdGQ6OmlzbmFuKF9feC5pbWFnKCkpKQogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LmltYWcoKSwgX194LnJlYWwoKSk7CiAgICBpZiAoc3RkOjppc2luZihfX3guaW1hZygpKSkgewogICAgICBpZiAoX194LnJlYWwoKSA8IF9UcCgwKSkKICAgICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDAuNzUpICogX19waSwgLV9feC5pbWFnKCkpOwogICAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDAuMjUpICogX19waSwgLV9feC5pbWFnKCkpOwogICAgfQogICAgaWYgKF9feC5yZWFsKCkgPCBfVHAoMCkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3BpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmJpdChfX3guaW1hZygpKSA/IC1fX3gucmVhbCgpIDogX194LnJlYWwoKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX1RwKDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25iaXQoX194LmltYWcoKSkgPyBfX3gucmVhbCgpIDogLV9feC5yZWFsKCkpOwogIH0KICBpZiAoc3RkOjppc25hbihfX3gucmVhbCgpKSkgewogICAgaWYgKHN0ZDo6aXNpbmYoX194LmltYWcoKSkpCiAgICAgIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3gucmVhbCgpLCAtX194LmltYWcoKSk7CiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oX194LnJlYWwoKSwgX194LnJlYWwoKSk7CiAgfQogIGlmIChzdGQ6OmlzaW5mKF9feC5pbWFnKCkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcGkgLyBfVHAoMiksIC1fX3guaW1hZygpKTsKICBpZiAoX194LnJlYWwoKSA9PSAwICYmIChfX3guaW1hZygpID09IDAgfHwgaXNuYW4oX194LmltYWcoKSkpKQogICAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fcGkgLyBfVHAoMiksIC1fX3guaW1hZygpKTsKICBzdGQ6OmNvbXBsZXg8X1RwPiBfX3ogPSBsb2coX194ICsgc3FydChfX3NxcihfX3gpIC0gX1RwKDEpKSk7CiAgaWYgKHNpZ25iaXQoX194LmltYWcoKSkpCiAgICByZXR1cm4gc3RkOjpjb21wbGV4PF9UcD4oYWJzKF9fei5pbWFnKCkpLCBhYnMoX196LnJlYWwoKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihhYnMoX196LmltYWcoKSksIC1hYnMoX196LnJlYWwoKSkpOwp9CgovLyBhdGFuCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPgpfX0RFVklDRV9fIHN0ZDo6Y29tcGxleDxfVHA+IGF0YW4oY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IGF0YW5oKGNvbXBsZXg8X1RwPigtX194LmltYWcoKSwgX194LnJlYWwoKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3ouaW1hZygpLCAtX196LnJlYWwoKSk7Cn0KCi8vIHNpbgoKdGVtcGxhdGUgPGNsYXNzIF9UcD4KX19ERVZJQ0VfXyBzdGQ6OmNvbXBsZXg8X1RwPiBzaW4oY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHN0ZDo6Y29tcGxleDxfVHA+IF9feiA9IHNpbmgoY29tcGxleDxfVHA+KC1fX3guaW1hZygpLCBfX3gucmVhbCgpKSk7CiAgcmV0dXJuIHN0ZDo6Y29tcGxleDxfVHA+KF9fei5pbWFnKCksIC1fX3oucmVhbCgpKTsKfQoKLy8gY29zCgp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdGQ6OmNvbXBsZXg8X1RwPiBjb3MoY29uc3Qgc3RkOjpjb21wbGV4PF9UcD4gJl9feCkgewogIHJldHVybiBjb3NoKGNvbXBsZXg8X1RwPigtX194LmltYWcoKSwgX194LnJlYWwoKSkpOwp9CgovLyB0YW4KCnRlbXBsYXRlIDxjbGFzcyBfVHA+Cl9fREVWSUNFX18gc3RkOjpjb21wbGV4PF9UcD4gdGFuKGNvbnN0IHN0ZDo6Y29tcGxleDxfVHA+ICZfX3gpIHsKICBzdGQ6OmNvbXBsZXg8X1RwPiBfX3ogPSB0YW5oKGNvbXBsZXg8X1RwPigtX194LmltYWcoKSwgX194LnJlYWwoKSkpOwogIHJldHVybiBzdGQ6OmNvbXBsZXg8X1RwPihfX3ouaW1hZygpLCAtX196LnJlYWwoKSk7Cn0KCn0gLy8gbmFtZXNwYWNlIHN0ZAoKI2VuZGlmCgBzYW5pdGl6ZXIvY292ZXJhZ2VfaW50ZXJmYWNlLmgAcmIAVGVybWluYXRlIHBhcnNpbmcgZHVlIHRvIEhhbmRsZXIgZXJyb3IuAGFsbABsaXN0IGNvdW50IABleHRlcm5hbC9yZWdleC1yZTIvcmUyL2RmYS5jYwBSdW5TdGF0ZU9uQnl0ZVVubG9ja2VkIGZhaWxlZCBhZnRlciBSZXNldENhY2hlAFVuZXhwZWN0ZWQgb3Bjb2RlIGluIHNob3J0IGNpcmN1aXQ6IABCYWQgcmVmZXJlbmNlIGNvdW50IABrUmVnZXhwQ2FwdHVyZSBjYXAoKSA9PSAwAD8AXHh7JXh9AEJ1aGlkAEluaGVyaXRlZABLYWl0aGkATHQATWVldGVpX01heWVrAFAAVGFpX0xlAFZEU08gc3ltYm9sIHVuZXhwZWN0ZWRseSBsb25nAC9wcm9jL3NlbGYvYXV4dgBtbWFwIGVycm9yOiAlZAB1bnNpZ25lZCBsb25nAGRWACY9AGxTAC0+KgBJTlZBTElEX0FSR1VNRU5UAFJFU09VUkNFX0VYSEFVU1RFRAAsIHN0YXJ0ID0gAHNsb3cgcmVsZWFzZQBNdXRleDo6RmVyIHdoaWxlIGluIHRpbWVkIHdhaXQARmFpbGVkIHRvIHJlYWQgcmVhbC10aW1lIGNsb2NrLgAvcGtnL2RhdGEvdHpkYXRhLwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2djZC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vbW9udGdvbWVyeS5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvY2lwaGVyL2FlYWQuYwBreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQuc291cmNlX2ZpbGUAa3l0aGUucHJvdG8uQ29tcGlsYXRpb25Vbml0LndvcmtpbmdfZGlyZWN0b3J5AGt5dGhlLnByb3RvLmNvbW1vbi5Db3JwdXNQYXRoLnJvb3QAa3l0aGUucHJvdG8uQ29udGV4dERlcGVuZGVudFZlcnNpb24uUm93LnNvdXJjZV9jb250ZXh0AFteLV0uKlwuZ28AJXMgKHJlZ2V4IHdhcyAlcykKACBpcyBub3QgYSBub3JtYWwgZGlyZWN0b3J5LgBLWVRIRV9FWENMVURFX0VNUFRZX0RJUlMAKSBkdWUgdG8gaXRzIGluY2x1c2lvbiBpbiAAL2J1aWxkACBmb3IgdHJhbnNjcmlwdCAAYXZ4NTEyaWZtYXZsaW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnBmaW50cmluLmggLSBQRiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnBmaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlBGSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlBGSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJwZiIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTMyZ2F0aGVyX3BkKGluZGV4LCBtYXNrLCBhZGRyLCBzY2FsZSwgaGludCkgXAogIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnBmZHBkKChfX21tYXNrOCkobWFzayksIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMmdhdGhlcl9wZChpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwZCgoX19tbWFzazgpIC0xLCAoX192OHNpKShfX20yNTZpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2kzMmdhdGhlcl9wcyhpbmRleCwgbWFzaywgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwcygoX19tbWFzazE2KShtYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMmdhdGhlcl9wcyhpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZmRwcygoX19tbWFzazE2KSAtMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShpbmRleCksICh2b2lkIGNvbnN0ICopKGFkZHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTY0Z2F0aGVyX3BkKGluZGV4LCBtYXNrLCBhZGRyLCBzY2FsZSwgaGludCkgXAogIF9fYnVpbHRpbl9pYTMyX2dhdGhlcnBmcXBkKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkIGNvbnN0ICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NGdhdGhlcl9wZChpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwZCgoX19tbWFzazgpIC0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NGdhdGhlcl9wcyhpbmRleCwgbWFzaywgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwcygoX19tbWFzazgpKG1hc2spLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NGdhdGhlcl9wcyhpbmRleCwgYWRkciwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9nYXRoZXJwZnFwcygoX19tbWFzazgpIC0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCBjb25zdCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2kzMnNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmZHBkKChfX21tYXNrOCktMSwgKF9fdjhzaSkoX19tMjU2aSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2kzMnNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmZHBkKChfX21tYXNrOCkobWFzayksIChfX3Y4c2kpKF9fbTI1NmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGhpbnQpKQoKI2RlZmluZSBfbW01MTJfcHJlZmV0Y2hfaTMyc2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZkcHMoKF9fbW1hc2sxNiktMSwgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcHJlZmV0Y2hfaTMyc2NhdHRlcl9wcyhhZGRyLCBtYXNrLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZkcHMoKF9fbW1hc2sxNikobWFzayksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpKF9fbTUxMmkpKGluZGV4KSwgKHZvaWQgKikoYWRkciksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiNkZWZpbmUgX21tNTEyX3ByZWZldGNoX2k2NHNjYXR0ZXJfcGQoYWRkciwgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBkKChfX21tYXNrOCktMSwgKF9fdjhkaSkoX19tNTEyaSkoaW5kZXgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopKGFkZHIpLCAoaW50KShzY2FsZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NHNjYXR0ZXJfcGQoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBkKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGhpbnQpKQoKI2RlZmluZSBfbW01MTJfcHJlZmV0Y2hfaTY0c2NhdHRlcl9wcyhhZGRyLCBpbmRleCwgc2NhbGUsIGhpbnQpIFwKICBfX2J1aWx0aW5faWEzMl9zY2F0dGVycGZxcHMoKF9fbW1hc2s4KS0xLCAoX192OGRpKShfX201MTJpKShpbmRleCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikoYWRkciksIChpbnQpKHNjYWxlKSwgKGludCkoaGludCkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3ByZWZldGNoX2k2NHNjYXR0ZXJfcHMoYWRkciwgbWFzaywgaW5kZXgsIHNjYWxlLCBoaW50KSBcCiAgX19idWlsdGluX2lhMzJfc2NhdHRlcnBmcXBzKChfX21tYXNrOCkobWFzayksIChfX3Y4ZGkpKF9fbTUxMmkpKGluZGV4KSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKShhZGRyKSwgKGludCkoc2NhbGUpLCAoaW50KShoaW50KSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMnZibWlpbnRyaW4uaCAtIFZCTUkgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJ2Ym1paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1ZCTUlJTlRSSU5fSAojZGVmaW5lIF9fVkJNSUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydmJtaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cGVybWkydmFycWk1MTIoKF9fdjY0cWkpX19BLCAoX192NjRxaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzUxMihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfbW01MTJfcGVybXV0ZXgydmFyX2VwaTgoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NjRxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFzazJfcGVybXV0ZXgydmFyX2VwaTgoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19JLCBfX21tYXNrNjQgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl81MTIoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4MnZhcl9lcGk4KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3Blcm11dGV4MnZhcl9lcGk4KF9fbW1hc2s2NCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9wZXJtdXRleDJ2YXJfZXBpOChfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfcGVybXV0ZXh2YXJfZXBpOCAoX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJxaTUxMigoX192NjRxaSkgX19CLCAoX192NjRxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3Blcm11dGV4dmFyX2VwaTggKF9fbW1hc2s2NCBfX00sIF9fbTUxMmkgX19BLAogICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX3Blcm11dGV4dmFyX2VwaTggKF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fQSwKICAgICAgICAgICAgIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX21tNTEyX3Blcm11dGV4dmFyX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjY0cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX211bHRpc2hpZnRfZXBpNjRfZXBpOChfX201MTJpIF9fWCwgX19tNTEyaSBfX1kpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfdnBtdWx0aXNoaWZ0cWI1MTIoKF9fdjY0cWkpX19YLCAoX192NjRxaSkgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfbXVsdGlzaGlmdF9lcGk2NF9lcGk4KF9fbTUxMmkgX19XLCBfX21tYXNrNjQgX19NLCBfX201MTJpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19tbWFzazY0IF9fTSwgX19tNTEyaSBfX1gsIF9fbTUxMmkgX19ZKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9tdWx0aXNoaWZ0X2VwaTY0X2VwaTgoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y2NHFpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAvKj09PS0tLS0tLS0tLS0tLS0tLSBhdnh2bm5paW50cmluLmggLSBWTk5JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4dm5uaWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlhWTk5JSU5UUklOX0gKI2RlZmluZSBfX0FWWFZOTklJTlRSSU5fSAoKLyogQmVsb3cgaW50cmluc2ljcyBkZWZpbmVkIGluIGF2eDUxMnZsdm5uaWludHJpbi5oIGNhbiBiZSB1c2VkIGZvciBBVlhWTk5JICovCi8vLyBcZm4gX19tMjU2aSBfbW0yNTZfZHBidXNkX2VwaTMyKF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCi8vLyBcZm4gX19tMjU2aSBfbW0yNTZfZHBidXNkc19lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQovLy8gXGZuIF9fbTI1NmkgX21tMjU2X2Rwd3NzZF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQovLy8gXGZuIF9fbTI1NmkgX21tMjU2X2Rwd3NzZHNfZXBpMzIoX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKLy8vIFxmbiBfX20xMjhpIF9tbV9kcGJ1c2RfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKLy8vIFxmbiBfX20xMjhpIF9tbV9kcGJ1c2RzX2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCi8vLyBcZm4gX19tMTI4aSBfbW1fZHB3c3NkX2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCi8vLyBcZm4gX19tMTI4aSBfbW1fZHB3c3Nkc19lcGkzMihfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQoKLyogSW50cmluc2ljcyB3aXRoIF9hdnhfIHByZWZpeCBhcmUgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBtc3ZjLiAqLwovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4dm5uaSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdnh2bm5pIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIF9fUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZHBidXNkX2F2eF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkMjU2KChfX3Y4c2kpX19TLCAoX192OHNpKV9fQSwgKF9fdjhzaSlfX0IpOwp9CgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgX19TIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byA3Ci8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjI1Nl0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZHBidXNkc19hdnhfZXBpMzIoX19tMjU2aSBfX1MsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMyNTYoKF9fdjhzaSlfX1MsIChfX3Y4c2kpX19BLCAoX192OHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TLAovLy8gIGFuZCBzdG9yZSB0aGUgcGFja2VkIDMyLWJpdCByZXN1bHRzIGluIERTVC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRFBXU1NEIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihfX0Iud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IF9fUy5kd29yZFtqXSArIHRtcDEgKyB0bXAyCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9kcHdzc2RfYXZ4X2VwaTMyKF9fbTI1NmkgX19TLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBkcHdzc2QyNTYoKF9fdjhzaSlfX1MsIChfX3Y4c2kpX19BLCAoX192OHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TCi8vLyB1c2luZyBzaWduZWQgc2F0dXJhdGlvbiwgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0RTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIEZPUiBqIDo9IDAgdG8gNwovLy8gICAgICB0bXAxLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmpdKSAqIFNpZ25FeHRlbmQzMihfX0Iud29yZFsyKmpdKQovLy8gICAgICB0bXAyLmR3b3JkIDo9IFNpZ25FeHRlbmQzMihfX0Eud29yZFsyKmorMV0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqaisxXSkKLy8vICAgICAgRFNULmR3b3JkW2pdIDo9IFNhdHVyYXRlMzIoX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIpCi8vLyAgICBFTkRGT1IKLy8vICAgIERTVFtNQVg6MjU2XSA6PSAwCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9kcHdzc2RzX2F2eF9lcGkzMihfX20yNTZpIF9fUywgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZHB3c3NkczI1NigoX192OHNpKV9fUywgKF9fdjhzaSlfX0EsIChfX3Y4c2kpX19CKTsKfQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSBzaWduZWQKLy8vIDE2LWJpdCByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIKLy8vIGluIFxhIF9fUywgYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUEJVU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIgKyB0bXAzICsgdG1wNAovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZHBidXNkX2F2eF9lcGkzMihfX20xMjhpIF9fUywgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZHBidXNkMTI4KChfX3Y0c2kpX19TLCAoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlIHNpZ25lZAovLy8gMTYtYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gXGEgX19TIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQQlVTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqal0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqal0pKQovLy8gICAgICB0bXAyLndvcmQgOj0gU2lnbmVkKFplcm9FeHRlbmQxNihfX0EuYnl0ZVs0KmorMV0pICogU2lnbkV4dGVuZDE2KF9fQi5ieXRlWzQqaisxXSkpCi8vLyAgICAgIHRtcDMud29yZCA6PSBTaWduZWQoWmVyb0V4dGVuZDE2KF9fQS5ieXRlWzQqaisyXSkgKiBTaWduRXh0ZW5kMTYoX19CLmJ5dGVbNCpqKzJdKSkKLy8vICAgICAgdG1wNC53b3JkIDo9IFNpZ25lZChaZXJvRXh0ZW5kMTYoX19BLmJ5dGVbNCpqKzNdKSAqIFNpZ25FeHRlbmQxNihfX0IuYnl0ZVs0KmorM10pKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMiArIHRtcDMgKyB0bXA0KQovLy8gICAgRU5ERk9SCi8vLyAgICBEU1RbTUFYOjEyOF0gOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZHBidXNkc19hdnhfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwYnVzZHMxMjgoKF9fdjRzaSlfX1MsIChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCi8vLyBNdWx0aXBseSBncm91cHMgb2YgMiBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQSB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIDE2LWJpdCBpbnRlZ2VycyBpbiBcYSBfX0IsIHByb2R1Y2luZyAyIGludGVybWVkaWF0ZSBzaWduZWQgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgMiByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gXGEgX19TLAovLy8gYW5kIHN0b3JlIHRoZSBwYWNrZWQgMzItYml0IHJlc3VsdHMgaW4gRFNULgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBEUFdTU0QgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoX19CLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gX19TLmR3b3JkW2pdICsgdG1wMSArIHRtcDIKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Rwd3NzZF9hdnhfZXBpMzIoX19tMTI4aSBfX1MsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGRwd3NzZDEyOCgoX192NHNpKV9fUywgKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKLy8vIE11bHRpcGx5IGdyb3VwcyBvZiAyIGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCAxNi1iaXQgaW50ZWdlcnMgaW4gXGEgX19BIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXJzIGluIFxhIF9fQiwgcHJvZHVjaW5nIDIgaW50ZXJtZWRpYXRlIHNpZ25lZCAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSAyIHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiBcYSBfX1MKLy8vIHVzaW5nIHNpZ25lZCBzYXR1cmF0aW9uLCBhbmQgc3RvcmUgdGhlIHBhY2tlZCAzMi1iaXQgcmVzdWx0cyBpbiBEU1QuCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUERQV1NTRFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICAgRk9SIGogOj0gMCB0byAzCi8vLyAgICAgIHRtcDEuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqal0pICogU2lnbkV4dGVuZDMyKF9fQi53b3JkWzIqal0pCi8vLyAgICAgIHRtcDIuZHdvcmQgOj0gU2lnbkV4dGVuZDMyKF9fQS53b3JkWzIqaisxXSkgKiBTaWduRXh0ZW5kMzIoX19CLndvcmRbMipqKzFdKQovLy8gICAgICBEU1QuZHdvcmRbal0gOj0gU2F0dXJhdGUzMihfX1MuZHdvcmRbal0gKyB0bXAxICsgdG1wMikKLy8vICAgIEVOREZPUgovLy8gICAgRFNUW01BWDoxMjhdIDo9IDAKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Rwd3NzZHNfYXZ4X2VwaTMyKF9fbTEyOGkgX19TLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBkcHdzc2RzMTI4KChfX3Y0c2kpX19TLCAoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZiAvLyBfX0FWWFZOTklJTlRSSU5fSAoALyo9PT0tLS0tIGJtaWludHJpbi5oIC0gQk1JIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fWDg2SU5UUklOX0ggJiYgIWRlZmluZWQgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8Ym1paW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0JNSUlOVFJJTl9ICiNkZWZpbmUgX19CTUlJTlRSSU5fSAoKLyogQWxsb3cgdXNpbmcgdGhlIHR6Y250IGludHJpbnNpY3MgZXZlbiBmb3Igbm9uLUJNSSB0YXJnZXRzLiBTaW5jZSB0aGUgVFpDTlQKICAgaW5zdHJ1Y3Rpb24gYmVoYXZlcyBhcyBCU0Ygb24gbm9uLUJNSSB0YXJnZXRzLCB0aGVyZSBpcyBjb2RlIHRoYXQgZXhwZWN0cwogICB0byB1c2UgaXQgYXMgYSBwb3RlbnRpYWxseSBmYXN0ZXIgdmVyc2lvbiBvZiBCU0YuICovCiNkZWZpbmUgX19SRUxBWEVEX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgojZGVmaW5lIF90emNudF91MTYoYSkgICAgIChfX3R6Y250X3UxNigoYSkpKQoKLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm8gYml0cyBpbiB0aGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUWkNOVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyIHdob3NlIHRyYWlsaW5nIHplcm9zIGFyZSB0byBiZSBjb3VudGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgMTYtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm8KLy8vICAgIGJpdHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIHNob3J0IF9fUkVMQVhFRF9GTl9BVFRSUwpfX3R6Y250X3UxNih1bnNpZ25lZCBzaG9ydCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTE2KF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19SRUxBWEVEX0ZOX0FUVFJTCl9fdHpjbnRfdTMyKHVuc2lnbmVkIGludCBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTMyKF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4KLy8vICAgIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19SRUxBWEVEX0ZOX0FUVFJTCl9tbV90emNudF8zMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3R6Y250X3UzMihfX1gpOwp9CgojZGVmaW5lIF90emNudF91MzIoYSkgICAgIChfX3R6Y250X3UzMigoYSkpKQoKI2lmZGVmIF9feDg2XzY0X18KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvCi8vLyAgICBiaXRzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19SRUxBWEVEX0ZOX0FUVFJTCl9fdHpjbnRfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdHpjbnRfdTY0KF9fWCk7Cn0KCi8vLyBDb3VudHMgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4gdGhlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSB0cmFpbGluZyB6ZXJvcyBhcmUgdG8gYmUgY291bnRlZC4KLy8vIFxyZXR1cm5zIEFuIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvIGJpdHMgaW4KLy8vICAgIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19SRUxBWEVEX0ZOX0FUVFJTCl9tbV90emNudF82NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3R6Y250X3U2NChfX1gpOwp9CgojZGVmaW5lIF90emNudF91NjQoYSkgICAgIChfX3R6Y250X3U2NCgoYSkpKQoKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiN1bmRlZiBfX1JFTEFYRURfRk5fQVRUUlMKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQk1JX18pCgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYm1pIikpKQoKI2RlZmluZSBfYW5kbl91MzIoYSwgYikgICAoX19hbmRuX3UzMigoYSksIChiKSkpCgovKiBfYmV4dHJfdTMyICE9IF9fYmV4dHJfdTMyICovCiNkZWZpbmUgX2Jsc2lfdTMyKGEpICAgICAgKF9fYmxzaV91MzIoKGEpKSkKCiNkZWZpbmUgX2Jsc21za191MzIoYSkgICAgKF9fYmxzbXNrX3UzMigoYSkpKQoKI2RlZmluZSBfYmxzcl91MzIoYSkgICAgICAoX19ibHNyX3UzMigoYSkpKQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZCBvcGVyYW5kIHdpdGggdGhlIG9uZSdzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFORE4gPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX1kKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUgc2Vjb25kCi8vLyAgICBvcGVyYW5kIHdpdGggdGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19hbmRuX3UzMih1bnNpZ25lZCBpbnQgX19YLCB1bnNpZ25lZCBpbnQgX19ZKQp7CiAgcmV0dXJuIH5fX1ggJiBfX1k7Cn0KCi8qIEFNRC1zcGVjaWZpZWQsIGRvdWJsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUiAqLwovLy8gRXh0cmFjdHMgdGhlIHNwZWNpZmllZCBiaXRzIGZyb20gdGhlIGZpcnN0IG9wZXJhbmQgYW5kIHJldHVybnMgdGhlbQovLy8gICAgaW4gdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCRVhUUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgd2hvc2UgYml0cyBhcmUgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggYml0cyBhcmUgZXh0cmFjdGVkLiBCaXRzIFs3OjBdCi8vLyAgICBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LiBCaXRzIFsxNTo4XSBzcGVjaWZ5IHRoZQovLy8gICAgbnVtYmVyIG9mIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIGNvbnRhaW4gdGhlCi8vLyAgICBleHRyYWN0ZWQgYml0cy4KLy8vIFxzZWUgX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmV4dHJfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYmV4dHJfdTMyKF9fWCwgX19ZKTsKfQoKLyogSW50ZWwtc3BlY2lmaWVkLCBzaW5nbGUtbGVhZGluZy11bmRlcnNjb3JlIHZlcnNpb24gb2YgQkVYVFIgKi8KLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZW0KLy8vICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGJpdHMgYXJlIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxwYXJhbSBfX1kKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQKLy8vICAgIGJpdCBmb3IgdGhlIGJpdHMgdG8gYmUgZXh0cmFjdGVkLiBCaXRzIFs3OjBdIHNwZWNpZnkgdGhlIGluZGV4LgovLy8gXHBhcmFtIF9fWgovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vICAgIEJpdHMgWzc6MF0gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIGJpdHMuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9iZXh0cl91MzIodW5zaWduZWQgaW50IF9fWCwgdW5zaWduZWQgaW50IF9fWSwgdW5zaWduZWQgaW50IF9fWikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91MzIgKF9fWCwgKChfX1kgJiAweGZmKSB8ICgoX19aICYgMHhmZikgPDwgOCkpKTsKfQoKLyogSW50ZWwtc3BlY2lmaWVkLCBzaW5nbGUtbGVhZGluZy11bmRlcnNjb3JlIHZlcnNpb24gb2YgQkVYVFIyICovCi8vLyBFeHRyYWN0cyB0aGUgc3BlY2lmaWVkIGJpdHMgZnJvbSB0aGUgZmlyc3Qgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGVtCi8vLyAgICBpbiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJFWFRSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBiaXRzIGFyZSBleHRyYWN0ZWQuIEJpdHMgWzc6MF0KLy8vICAgIHNwZWNpZnkgdGhlIGluZGV4IG9mIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQuIEJpdHMgWzE1OjhdIHNwZWNpZnkgdGhlCi8vLyAgICBudW1iZXIgb2YgYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfX2JleHRyX3UzMgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9iZXh0cjJfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYmV4dHJfdTMyKF9fWCwgX19ZKTsKfQoKLy8vIENsZWFycyBhbGwgYml0cyBpbiB0aGUgc291cmNlIGV4Y2VwdCBmb3IgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdAovLy8gICAgY29udGFpbmluZyBhIHZhbHVlIG9mIDEgYW5kIHJldHVybnMgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCTFNJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBjbGVhcmVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgY2xlYXJpbmcgdGhlIGJpdHMgZnJvbQovLy8gICAgdGhlIHNvdXJjZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzaV91MzIodW5zaWduZWQgaW50IF9fWCkKewogIHJldHVybiBfX1ggJiAtX19YOwp9CgovLy8gQ3JlYXRlcyBhIG1hc2sgd2hvc2UgYml0cyBhcmUgc2V0IHRvIDEsIHVzaW5nIGJpdCAwIHVwIHRvIGFuZAovLy8gICAgaW5jbHVkaW5nIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgdGhhdCBpcyBzZXQgdG8gMSBpbiB0aGUgc291cmNlCi8vLyAgICBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkxTTVNLIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciB1c2VkIHRvIGNyZWF0ZSB0aGUgbWFzay4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgbmV3bHkgY3JlYXRlZCBtYXNrLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzbXNrX3UzMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fWCBeIChfX1ggLSAxKTsKfQoKLy8vIENsZWFycyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG9wZXJhbmQgdG8gYmUgY2xlYXJlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIGNsZWFyaW5nIHRoZSBzb3VyY2UKLy8vICAgIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX19ibHNyX3UzMih1bnNpZ25lZCBpbnQgX19YKQp7CiAgcmV0dXJuIF9fWCAmIChfX1ggLSAxKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KCiNkZWZpbmUgX2FuZG5fdTY0KGEsIGIpICAgKF9fYW5kbl91NjQoKGEpLCAoYikpKQoKLyogX2JleHRyX3U2NCAhPSBfX2JleHRyX3U2NCAqLwojZGVmaW5lIF9ibHNpX3U2NChhKSAgICAgIChfX2Jsc2lfdTY0KChhKSkpCgojZGVmaW5lIF9ibHNtc2tfdTY0KGEpICAgIChfX2Jsc21za191NjQoKGEpKSkKCiNkZWZpbmUgX2Jsc3JfdTY0KGEpICAgICAgKF9fYmxzcl91NjQoKGEpKSkKCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHRoZSBzZWNvbmQgb3BlcmFuZCB3aXRoIHRoZSBvbmUncwovLy8gICAgY29tcGxlbWVudCBvZiB0aGUgZmlyc3Qgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBBTkROIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZAovLy8gICAgb3BlcmFuZCB3aXRoIHRoZSBvbmUncyBjb21wbGVtZW50IG9mIHRoZSBmaXJzdCBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYW5kbl91NjQgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX1kpCnsKICByZXR1cm4gfl9fWCAmIF9fWTsKfQoKLyogQU1ELXNwZWNpZmllZCwgZG91YmxlLWxlYWRpbmctdW5kZXJzY29yZSB2ZXJzaW9uIG9mIEJFWFRSICovCi8vLyBFeHRyYWN0cyB0aGUgc3BlY2lmaWVkIGJpdHMgZnJvbSB0aGUgZmlyc3Qgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGVtCi8vLyAgICBpbiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJFWFRSIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fWAovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgYml0cyBhcmUgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHBhcmFtIF9fWQovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIGJpdHMgYXJlIGV4dHJhY3RlZC4gQml0cwovLy8gICAgWzc6MF0gc3BlY2lmeSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdC4gQml0cyBbMTU6OF0gc3BlY2lmeQovLy8gICAgdGhlIG51bWJlciBvZiBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHdob3NlIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgY29udGFpbiB0aGUKLy8vICAgIGV4dHJhY3RlZCBiaXRzLgovLy8gXHNlZSBfYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19iZXh0cl91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91NjQoX19YLCBfX1kpOwp9CgovKiBJbnRlbC1zcGVjaWZpZWQsIHNpbmdsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUiAqLwovLy8gRXh0cmFjdHMgdGhlIHNwZWNpZmllZCBiaXRzIGZyb20gdGhlIGZpcnN0IG9wZXJhbmQgYW5kIHJldHVybnMgdGhlbQovLy8gICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIHVzZWQgdG8gc3BlY2lmeSB0aGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50Ci8vLyAgICBiaXQgZm9yIHRoZSBiaXRzIHRvIGJlIGV4dHJhY3RlZC4gQml0cyBbNzowXSBzcGVjaWZ5IHRoZSBpbmRleC4KLy8vIFxwYXJhbSBfX1oKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgdXNlZCB0byBzcGVjaWZ5IHRoZSBudW1iZXIgb2YgYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyAgICBCaXRzIFs3OjBdIHNwZWNpZnkgdGhlIG51bWJlciBvZiBiaXRzLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBjb250YWluIHRoZQovLy8gICAgZXh0cmFjdGVkIGJpdHMuCi8vLyBcc2VlIF9fYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX2JleHRyX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YLCB1bnNpZ25lZCBpbnQgX19ZLCB1bnNpZ25lZCBpbnQgX19aKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2JleHRyX3U2NCAoX19YLCAoKF9fWSAmIDB4ZmYpIHwgKChfX1ogJiAweGZmKSA8PCA4KSkpOwp9CgovKiBJbnRlbC1zcGVjaWZpZWQsIHNpbmdsZS1sZWFkaW5nLXVuZGVyc2NvcmUgdmVyc2lvbiBvZiBCRVhUUjIgKi8KLy8vIEV4dHJhY3RzIHRoZSBzcGVjaWZpZWQgYml0cyBmcm9tIHRoZSBmaXJzdCBvcGVyYW5kIGFuZCByZXR1cm5zIHRoZW0KLy8vICAgIGluIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQkVYVFIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBleHRyYWN0ZWQuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggYml0cyBhcmUgZXh0cmFjdGVkLiBCaXRzCi8vLyAgICBbNzowXSBzcGVjaWZ5IHRoZSBpbmRleCBvZiB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0LiBCaXRzIFsxNTo4XSBzcGVjaWZ5Ci8vLyAgICB0aGUgbnVtYmVyIG9mIGJpdHMgdG8gYmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgd2hvc2UgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBjb250YWluIHRoZQovLy8gICAgZXh0cmFjdGVkIGJpdHMuCi8vLyBcc2VlIF9fYmV4dHJfdTY0CnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX2JleHRyMl91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iZXh0cl91NjQoX19YLCBfX1kpOwp9CgovLy8gQ2xlYXJzIGFsbCBiaXRzIGluIHRoZSBzb3VyY2UgZXhjZXB0IGZvciB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0Ci8vLyAgICBjb250YWluaW5nIGEgdmFsdWUgb2YgMSBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU0kgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciB3aG9zZSBiaXRzIGFyZSB0byBiZSBjbGVhcmVkLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgcmVzdWx0IG9mIGNsZWFyaW5nIHRoZQovLy8gICAgYml0cyBmcm9tIHRoZSBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc2lfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19YICYgLV9fWDsKfQoKLy8vIENyZWF0ZXMgYSBtYXNrIHdob3NlIGJpdHMgYXJlIHNldCB0byAxLCB1c2luZyBiaXQgMCB1cCB0byBhbmQKLy8vICAgIGluY2x1ZGluZyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU01TSyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIHVzZWQgdG8gY3JlYXRlIHRoZSBtYXNrLgovLy8gXHJldHVybnMgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbmV3bHkgY3JlYXRlZCBtYXNrLgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9fYmxzbXNrX3U2NCh1bnNpZ25lZCBsb25nIGxvbmcgX19YKQp7CiAgcmV0dXJuIF9fWCBeIChfX1ggLSAxKTsKfQoKLy8vIENsZWFycyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IHRoYXQgaXMgc2V0IHRvIDEgaW4gdGhlIHNvdXJjZQovLy8gICAgb3BlcmFuZCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJMU1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19YCi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBvcGVyYW5kIHRvIGJlIGNsZWFyZWQuCi8vLyBccmV0dXJucyBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgY2xlYXJpbmcgdGhlCi8vLyAgICBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX2Jsc3JfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gpCnsKICByZXR1cm4gX19YICYgKF9fWCAtIDEpOwp9CgojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSAgIFwKICAgICAgICAgIHx8IGRlZmluZWQoX19CTUlfXykgKi8KCiNlbmRpZiAvKiBfX0JNSUlOVFJJTl9IICovCgBzdGRub3JldHVybi5oAHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaAAsIDE9AEVycm9yIHBhcnNpbmcgJwAnAF0AcmVxdWVzdGVkIGdyb3VwIABccwBbOl5wcmludDpdAGFsdG1hdGNoIC0+ICVkIHwgJWQAUnVuU3RhdGVPbkJ5dGVVbmxvY2tlZCBmYWlsZWQgYWZ0ZXIgUmVzZXQAKCVkLD8pAG5qb2JfID0gAFNpbXBsaWZ5IGNhc2Ugbm90IGhhbmRsZWQ6IAB7JWR9AFxmAEVneXB0aWFuX0hpZXJvZ2x5cGhzAE5ld2EAKioqICVzIHJlY2VpdmVkIGF0IHRpbWU9JWxkJXMgKioqCgAlczogZmFpbGVkIHRvIHJlYWQgcHJvZ3JhbSBoZWFkZXIgJWQAaW5kZXggPCBHZXROdW1TeW1ib2xzKCkAKGFub255bW91cyBuYW1lc3BhY2UpAG1pAG9yAFJlcXVlc3RlZCBzdWZmaXggc2l6ZSAAZWRnZSAhPSBudWxscHRyACIAdGhyZWFkIHNob3VsZCBob2xkIGF0IGxlYXN0IGEgcmVhZCBsb2NrIG9uIE11dGV4ICVwICVzACAlcABXYWl0IG9uIABGdXRleCBvcGVyYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJWQKAFVUQzAAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9ibi5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vcmFuZG9tLmMAUC0yMjQATklTVCBQLTI1NgBOQQBreXRoZS9wcm90by9jeHgucHJvdG8ALVcobm8tKT8oZXJyb3I9KT9jb3ZlcmFnZS1taXNtYXRjaHwtVyhuby0pPyhlcnJvcj0pP2ZyYW1lLWxhcmdlci10aGFuLip8LVcobm8tKT8oZXJyb3I9KT9tYXliZS11bmluaXRpYWxpemVkfC1XKG5vLSk/KGVycm9yPSk/dGhyZWFkLXNhZmV0eXwtVyhuby0pPyhlcnJvcj0pP3RocmVhZC11bnN1cHBvcnRlZC1sb2NrLW5hbWV8LVcobm8tKT8oZXJyb3I9KT91bnVzZWQtYnV0LXNldC1wYXJhbWV0ZXJ8LVcobm8tKT8oZXJyb3I9KT91bnVzZWQtYnV0LXNldC12YXJpYWJsZXwtVyhuby0pPyhlcnJvcj0pP3VudXNlZC1sb2NhbC10eXBlZGVmc3wtZW5hYmxlLWxpYnN0ZGN4eC1kZWJ1Z3wtZihuby0pP2FsaWduLWZ1bmN0aW9ucy4qfC1mKG5vLSk/YXN5bmNocm9ub3VzLXVud2luZC10YWJsZXN8LWYobm8tKT9idWlsdGluLS4qfC1mKG5vLSk/Y2FsbGdyYXBoLXByb2ZpbGVzLXNlY3Rpb25zfC1mKG5vLSk/ZmxvYXQtc3RvcmV8LWYobm8tKT9jYW5vbmljYWwtc3lzdGVtLWhlYWRlcnN8LWYobm8tKT9lbGltaW5hdGUtdW51c2VkLWRlYnVnLXR5cGVzfC1mKG5vLSk/Z2NzZXwtZihuby0pP2lkZW50fC1mKG5vLSk/aW5saW5lLXNtYWxsLWZ1bmN0aW9uc3wtZihuby0pP2l2b3B0c3wtZihuby0pP25vbi1jYWxsLWV4Y2VwdGlvbnN8LWYobm8tKT9vcHRpbWl6ZS1sb2NhbGl0eXwtZihuby0pP3Blcm1pc3NpdmV8LWYobm8tKT9wbHVnaW4tYXJnLS4qfC1mKG5vLSk/cGx1Z2luPS4qfC1mKG5vLSk/cHJlZmV0Y2gtbG9vcC1hcnJheXN8LWYobm8tKT9wcm9maWxlLWNvcnJlY3Rpb258LWYobm8tKT9wcm9maWxlLWRpci4qfC1mKG5vLSk/cHJvZmlsZS1nZW5lcmF0ZS4qfC1mKG5vLSk/cHJvZmlsZS11c2UuKnwtZihuby0pP3Byb2ZpbGUtcmV1c2VkaXN0fC1mKG5vLSk/cHJvZmlsZS12YWx1ZXN8LWYobm8tKT9yZWNvcmQtY29tcGlsYXRpb24taW5mby1pbi1lbGZ8LWYobm8tKT9yZW9yZGVyLWZ1bmN0aW9ucz0uKnwtZihuby0pP3JvdW5kaW5nLW1hdGh8LWYobm8tKT9yaXBhfC1mKG5vLSk/cmlwYS1kaXNhbGxvdy1hc20tbW9kdWxlc3wtZihuby0pP3Nhbml0aXplLip8LWYobm8tKT9zZWV8LWYobm8tKT9zdHJpY3QtZW51bS1wcmVjaXNpb258LWYobm8tKT90cmFjZXJ8LWYobm8tKT90cmVlLS4qfC1mKG5vLSk/dW5yb2xsLWFsbC1sb29wc3wtZihuby0pP3dhcm4taW5jb21wbGV0ZS1wYXR0ZXJuc3wtZyg6bGluZXMsc291cmNlfGdkYil8LW0obm8tKT9hbGlnbi1kb3VibGV8LW0obm8tKT9mcG1hdGg9Lip8LW0obm8tKT9jbGR8LW0obm8tKT9yZWQtem9uZXwtLXBhcmFtPS4qfC1tY3B1PS4qfC1tYXBjcy1mcmFtZXwtcGFzcy1leGl0LWNvZGVzAC1NW0ZUUV0ALWFuYWx5emVyLWNvbmZpZwBeKAA6IG1hcHBlZCB0byAAbm90X2ZyZWVzdGFuZGluZwAwAF9fY2xhbmdfY3VkYV9jb21wbGV4X2J1aWx0aW5zLmgALyo9PT0tLS0tIGFybV9jZGUuaCAtIEFSTSBDREUgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FSTV9DREVfSAojZGVmaW5lIF9fQVJNX0NERV9ICgojaWYgIV9fQVJNX0ZFQVRVUkVfQ0RFCiNlcnJvciAiQ0RFIHN1cHBvcnQgbm90IGVuYWJsZWQiCiNlbmRpZgoKI2luY2x1ZGUgPHN0ZGludC5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gxKSkpCnVpbnQzMl90IF9fYXJtX2N4MShpbnQsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDFhKSkpCnVpbnQzMl90IF9fYXJtX2N4MWEoaW50LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MWQpKSkKdWludDY0X3QgX19hcm1fY3gxZChpbnQsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDFkYSkpKQp1aW50NjRfdCBfX2FybV9jeDFkYShpbnQsIHVpbnQ2NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gyKSkpCnVpbnQzMl90IF9fYXJtX2N4MihpbnQsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gyYSkpKQp1aW50MzJfdCBfX2FybV9jeDJhKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gyZCkpKQp1aW50NjRfdCBfX2FybV9jeDJkKGludCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDJkYSkpKQp1aW50NjRfdCBfX2FybV9jeDJkYShpbnQsIHVpbnQ2NF90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX2N4MykpKQp1aW50MzJfdCBfX2FybV9jeDMoaW50LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV9jeDNhKSkpCnVpbnQzMl90IF9fYXJtX2N4M2EoaW50LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gzZCkpKQp1aW50NjRfdCBfX2FybV9jeDNkKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfY3gzZGEpKSkKdWludDY0X3QgX19hcm1fY3gzZGEoaW50LCB1aW50NjRfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MV91MzIpKSkKdWludDMyX3QgX19hcm1fdmN4MV91MzIoaW50LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MWFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDFhX3UzMihpbnQsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MWRfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZjeDFkX3U2NChpbnQsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxZGFfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZjeDFkYV91NjQoaW50LCB1aW50NjRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZjeDJfdTMyKGludCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gyYV91MzIpKSkKdWludDMyX3QgX19hcm1fdmN4MmFfdTMyKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MmRfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZjeDJkX3U2NChpbnQsIHVpbnQ2NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MmRhX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gyZGFfdTY0KGludCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M191MzIpKSkKdWludDMyX3QgX19hcm1fdmN4M191MzIoaW50LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzYV91MzIpKSkKdWludDMyX3QgX19hcm1fdmN4M2FfdTMyKGludCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNkX3U2NCkpKQp1aW50NjRfdCBfX2FybV92Y3gzZF91NjQoaW50LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzZGFfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZjeDNkYV91NjQoaW50LCB1aW50NjRfdCwgdWludDY0X3QsIHVpbnQ2NF90LCB1aW50MzJfdCk7CgojaWYgX19BUk1fRkVBVFVSRV9NVkUKCnR5cGVkZWYgdWludDE2X3QgbXZlX3ByZWQxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDgpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGludDE2X3QgaW50MTZ4OF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDQpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGludDMyX3QgaW50MzJ4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDIpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGludDY0X3QgaW50NjR4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDE2KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQ4X3QgaW50OHgxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDgpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIHVpbnQxNl90IHVpbnQxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oNCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDMyX3QgdWludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygyKSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSB1aW50NjRfdCB1aW50NjR4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDE2KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSB1aW50OF90IHVpbnQ4eDE2X3Q7CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gxcV9tKGludCwgaW50MTZ4OF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4MXFfbShpbnQsIGludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFfbV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDFxX20oaW50LCBpbnQ2NHgyX3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDFxX20oaW50LCBpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4MXFfbShpbnQsIHVpbnQxNng4X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MXFfbShpbnQsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MXFfbShpbnQsIHVpbnQ2NHgyX3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gxcV9tKGludCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gxcV91OChpbnQsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDFxYV9tKGludCwgaW50MTZ4OF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDFxYV9tKGludCwgaW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDFxYV9tKGludCwgaW50NjR4Ml90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4MXFhX20oaW50LCBpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDFxYV9tKGludCwgdWludDE2eDhfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MXFhX20oaW50LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfbV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gxcWFfbShpbnQsIHVpbnQ2NHgyX3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MXFhX20oaW50LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gxcWEoaW50LCBpbnQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gxcWEoaW50LCBpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gxcWEoaW50LCBpbnQ2NHgyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDFxYShpbnQsIGludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gxcWEoaW50LCB1aW50MTZ4OF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDFxYShpbnQsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MXFhKGludCwgdWludDY0eDJfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDFxYShpbnQsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9tX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9tX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDJxX21faW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX21faW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9tX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfbV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gycShpbnQsIGludDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4MnEoaW50LCBpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDJxKGludCwgaW50NjR4Ml90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDJxKGludCwgaW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4MnEoaW50LCB1aW50MTZ4OF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MnEoaW50LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MnEoaW50LCB1aW50NjR4Ml90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycShpbnQsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV91OF9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycV91OChpbnQsIGludDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X3MzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgaW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfczY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCBpbnQ2NHgyX3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV91OF9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgaW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCB1aW50MTZ4OF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfdTMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfdTY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCB1aW50NjR4Ml90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycV91OChpbnQsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDJxYV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX2ltcGxfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIHVpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxYV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y3gycWFfbV9pbXBsKGludCwgaW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX21faW1wbF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjeDJxYV9tX2ltcGwoaW50LCBpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIHVpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIHVpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9tX2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gycWFfbV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfaW1wbF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIGludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgaW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfaW1wbF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4M3FfaW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9pbXBsX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfaW1wbF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIGludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfbV9pbXBsX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgaW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gzcV9tX2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgaW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgdWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfbV9pbXBsX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDNxX21faW1wbChpbnQsIHVpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gzcV9tX2ltcGwoaW50LCB1aW50NjR4Ml90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV9tX2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV9tX2ltcGwoaW50LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3MzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCBpbnQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3M2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCBpbnQ2NHgyX3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX3U4X2ltcGxfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcV91OF9pbXBsX3UzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxX3U4X2ltcGwoaW50LCB1aW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF91NjQpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX3U4X2ltcGxfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgaW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX2ltcGxfczY0KSkpCmludDY0eDJfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIGludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgdWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgdWludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjeDNxYV9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjeDNxYV9tX2ltcGwoaW50LCBpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9tX2ltcGxfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgaW50MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfbV9pbXBsX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIGludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIGludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgdWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgdWludDMyeDRfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgdWludDY0eDJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDNxYV9tX2ltcGwoaW50LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91OCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTgpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U4KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U4KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTgpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91OCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczgpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3U2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdnJlaW50ZXJwcmV0cV91OF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgodWludDh4MTZfdCk7CiNkZWZpbmUgX19hcm1fdmN4MnFfbShjcCwgaW5hY3RpdmUsIG4sIGltbSwgcHJlZCkgX19hcm1fdmN4MnFfbV9pbXBsKChjcCksIChpbmFjdGl2ZSksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobiksIChpbW0pLCAocHJlZCkpCiNkZWZpbmUgX19hcm1fdmN4MnFhKGNwLCBhY2MsIG4sIGltbSkgX19hcm1fdmN4MnFhX2ltcGwoKGNwKSwgKGFjYyksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobiksIChpbW0pKQojZGVmaW5lIF9fYXJtX3ZjeDJxYV9tKGNwLCBhY2MsIG4sIGltbSwgcHJlZCkgX19hcm1fdmN4MnFhX21faW1wbCgoY3ApLCAoYWNjKSwgX19hcm1fdnJlaW50ZXJwcmV0cV91OChuKSwgKGltbSksIChwcmVkKSkKI2RlZmluZSBfX2FybV92Y3gzcShjcCwgbiwgbSwgaW1tKSBfX2FybV92Y3gzcV9pbXBsKChjcCksIChuKSwgX19hcm1fdnJlaW50ZXJwcmV0cV91OChtKSwgKGltbSkpCiNkZWZpbmUgX19hcm1fdmN4M3FfbShjcCwgaW5hY3RpdmUsIG4sIG0sIGltbSwgcHJlZCkgX19hcm1fdmN4M3FfbV9pbXBsKChjcCksIChpbmFjdGl2ZSksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobiksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobSksIChpbW0pLCAocHJlZCkpCiNkZWZpbmUgX19hcm1fdmN4M3FfdTgoY3AsIG4sIG0sIGltbSkgX19hcm1fdmN4M3FfdThfaW1wbCgoY3ApLCAobiksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobSksIChpbW0pKQojZGVmaW5lIF9fYXJtX3ZjeDNxYShjcCwgYWNjLCBuLCBtLCBpbW0pIF9fYXJtX3ZjeDNxYV9pbXBsKChjcCksIChhY2MpLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG4pLCBfX2FybV92cmVpbnRlcnByZXRxX3U4KG0pLCAoaW1tKSkKI2RlZmluZSBfX2FybV92Y3gzcWFfbShjcCwgYWNjLCBuLCBtLCBpbW0sIHByZWQpIF9fYXJtX3ZjeDNxYV9tX2ltcGwoKGNwKSwgKGFjYyksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobiksIF9fYXJtX3ZyZWludGVycHJldHFfdTgobSksIChpbW0pLCAocHJlZCkpCgojZW5kaWYgLyogX19BUk1fRkVBVFVSRV9NVkUgKi8KCiNpZiBfX0FSTV9GRUFUVVJFX01WRSAmIDIKCnR5cGVkZWYgX19mcDE2IGZsb2F0MTZfdDsKdHlwZWRlZiBmbG9hdCBmbG9hdDMyX3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oOCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgZmxvYXQxNl90IGZsb2F0MTZ4OF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDQpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGZsb2F0MzJfdCBmbG9hdDMyeDRfdDsKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MXFfbShpbnQsIGZsb2F0MTZ4OF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gxcV9tKGludCwgZmxvYXQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MXFhKGludCwgZmxvYXQxNng4X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gxcWFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjeDFxYShpbnQsIGZsb2F0MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MXFhX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDFxYV9tKGludCwgZmxvYXQxNng4X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDFxYV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gxcWFfbShpbnQsIGZsb2F0MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MnEoaW50LCBmbG9hdDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gycShpbnQsIGZsb2F0MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfbV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gycV9tX2ltcGwoaW50LCBmbG9hdDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFfdThfZjE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4MnFfdTgoaW50LCBmbG9hdDE2eDhfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxX3U4X2YzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZjeDJxX3U4KGludCwgZmxvYXQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfaW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MnFhX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDJxYV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gycWFfaW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4MnFhX21faW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4MnFhX21faW1wbChpbnQsIGZsb2F0MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gycWFfbV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gycWFfbV9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX2ltcGxfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjeDNxX2ltcGwoaW50LCBmbG9hdDMyeDRfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgZmxvYXQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX21faW1wbF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN4M3FfbV9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxX3U4X2ltcGxfZjE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmN4M3FfdThfaW1wbChpbnQsIGZsb2F0MTZ4OF90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FfdThfaW1wbF9mMzIpKSkKdWludDh4MTZfdCBfX2FybV92Y3gzcV91OF9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfaW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4M3FhX2ltcGwoaW50LCBmbG9hdDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fY2RlX3ZjeDNxYV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gzcWFfaW1wbChpbnQsIGZsb2F0MzJ4NF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9jZGVfdmN4M3FhX21faW1wbF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN4M3FhX21faW1wbChpbnQsIGZsb2F0MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX2NkZV92Y3gzcWFfbV9pbXBsX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3gzcWFfbV9pbXBsKGludCwgZmxvYXQzMng0X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3U4KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3U4KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMzIpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KGZsb2F0MzJ4NF90KTsKCiNlbmRpZiAvKiBfX0FSTV9GRUFUVVJFX01WRSAmIDIgKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8qIGV4dGVybiAiQyIgKi8KI2VuZGlmCgojZW5kaWYgLyogX19BUk1fQ0RFX0ggKi8KAC8vPT09LS0tLSBhcm1fY21zZS5oIC0gQXJtIENNU0Ugc3VwcG9ydCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCgojaWZuZGVmIF9fQVJNX0NNU0VfSAojZGVmaW5lIF9fQVJNX0NNU0VfSAoKI2lmIChfX0FSTV9GRUFUVVJFX0NNU0UgJiAweDEpCiNpbmNsdWRlIDxzdGRkZWYuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgoKI2RlZmluZSBfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFIChfX0FSTV9GRUFUVVJFX0NNU0UgJiAweDIpCiNkZWZpbmUgQ01TRV9NUFVfUkVBRFdSSVRFIDEgLyogY2hlY2tzIGlmIHJlYWR3cml0ZV9vayBmaWVsZCBpcyBzZXQgKi8KI2RlZmluZSBDTVNFX0FVX05PTlNFQ1VSRSAgMiAvKiBjaGVja3MgaWYgcGVybWlzc2lvbnMgaGF2ZSBzZWN1cmUgZmllbGQgdW5zZXQgKi8KI2RlZmluZSBDTVNFX01QVV9VTlBSSVYgICAgNCAvKiBzZXRzIFQgZmxhZyBvbiBUVCBpbnNydHVjdGlvbiAqLwojZGVmaW5lIENNU0VfTVBVX1JFQUQgICAgICA4IC8qIGNoZWNrcyBpZiByZWFkX29rIGZpZWxkIGlzIHNldCAqLwojZGVmaW5lIENNU0VfTVBVX05PTlNFQ1VSRSAxNiAvKiBzZXRzIEEgZmxhZywgY2hlY2tzIGlmIHNlY3VyZSBmaWVsZCB1bnNldCAqLwojZGVmaW5lIENNU0VfTk9OU0VDVVJFIChDTVNFX0FVX05PTlNFQ1VSRSB8IENNU0VfTVBVX05PTlNFQ1VSRSkKCiNkZWZpbmUgY21zZV9jaGVja19wb2ludGVkX29iamVjdChwLCBmKSBcCiAgY21zZV9jaGVja19hZGRyZXNzX3JhbmdlKChwKSwgc2l6ZW9mKCoocCkpLCAoZikpCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZgoKdHlwZWRlZiB1bmlvbiB7CiAgc3RydWN0IGNtc2VfYWRkcmVzc19pbmZvIHsKI2lmZGVmIF9fQVJNX0JJR19FTkRJQU4KICAgIC8qIF9fQVJNX0JJR19FTkRJQU4gKi8KI2lmIChfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogICAgdW5zaWduZWQgaWRhdV9yZWdpb24gOiA4OwogICAgdW5zaWduZWQgaWRhdV9yZWdpb25fdmFsaWQgOiAxOwogICAgdW5zaWduZWQgc2VjdXJlIDogMTsKICAgIHVuc2lnbmVkIG5vbnNlY3VyZV9yZWFkd3JpdGVfb2sgOiAxOwogICAgdW5zaWduZWQgbm9uc2VjdXJlX3JlYWRfb2sgOiAxOwojZWxzZQogICAgdW5zaWduZWQgOiAxMjsKI2VuZGlmCiAgICB1bnNpZ25lZCByZWFkd3JpdGVfb2sgOiAxOwogICAgdW5zaWduZWQgcmVhZF9vayA6IDE7CiNpZiAoX19BUk1fQ01TRV9TRUNVUkVfTU9ERSkKICAgIHVuc2lnbmVkIHNhdV9yZWdpb25fdmFsaWQgOiAxOwojZWxzZQogICAgdW5zaWduZWQgOiAxOwojZW5kaWYKICAgIHVuc2lnbmVkIG1wdV9yZWdpb25fdmFsaWQgOiAxOwojaWYgKF9fQVJNX0NNU0VfU0VDVVJFX01PREUpCiAgICB1bnNpZ25lZCBzYXVfcmVnaW9uIDogODsKI2Vsc2UKICAgIHVuc2lnbmVkIDogODsKI2VuZGlmCiAgICB1bnNpZ25lZCBtcHVfcmVnaW9uIDogODsKCiNlbHNlIC8qIF9fQVJNX0xJVFRMRV9FTkRJQU4gKi8KICAgIHVuc2lnbmVkIG1wdV9yZWdpb24gOiA4OwojaWYgKF9fQVJNX0NNU0VfU0VDVVJFX01PREUpCiAgICB1bnNpZ25lZCBzYXVfcmVnaW9uIDogODsKI2Vsc2UKICAgIHVuc2lnbmVkIDogODsKI2VuZGlmCiAgICB1bnNpZ25lZCBtcHVfcmVnaW9uX3ZhbGlkIDogMTsKI2lmIChfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogICAgdW5zaWduZWQgc2F1X3JlZ2lvbl92YWxpZCA6IDE7CiNlbHNlCiAgICB1bnNpZ25lZCA6IDE7CiNlbmRpZgogICAgdW5zaWduZWQgcmVhZF9vayA6IDE7CiAgICB1bnNpZ25lZCByZWFkd3JpdGVfb2sgOiAxOwojaWYgKF9fQVJNX0NNU0VfU0VDVVJFX01PREUpCiAgICB1bnNpZ25lZCBub25zZWN1cmVfcmVhZF9vayA6IDE7CiAgICB1bnNpZ25lZCBub25zZWN1cmVfcmVhZHdyaXRlX29rIDogMTsKICAgIHVuc2lnbmVkIHNlY3VyZSA6IDE7CiAgICB1bnNpZ25lZCBpZGF1X3JlZ2lvbl92YWxpZCA6IDE7CiAgICB1bnNpZ25lZCBpZGF1X3JlZ2lvbiA6IDg7CiNlbHNlCiAgICB1bnNpZ25lZCA6IDEyOwojZW5kaWYKI2VuZGlmIC8qX19BUk1fTElUVExFX0VORElBTiAqLwogIH0gZmxhZ3M7CiAgdW5zaWduZWQgdmFsdWU7Cn0gY21zZV9hZGRyZXNzX2luZm9fdDsKCnN0YXRpYyBjbXNlX2FkZHJlc3NfaW5mb190IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCmNtc2VfVFQodm9pZCAqX19wKSB7CiAgY21zZV9hZGRyZXNzX2luZm9fdCBfX3U7CiAgX191LnZhbHVlID0gX19idWlsdGluX2FybV9jbXNlX1RUKF9fcCk7CiAgcmV0dXJuIF9fdTsKfQpzdGF0aWMgY21zZV9hZGRyZXNzX2luZm9fdCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpjbXNlX1RUVCh2b2lkICpfX3ApIHsKICBjbXNlX2FkZHJlc3NfaW5mb190IF9fdTsKICBfX3UudmFsdWUgPSBfX2J1aWx0aW5fYXJtX2Ntc2VfVFRUKF9fcCk7CiAgcmV0dXJuIF9fdTsKfQoKI2lmIF9fQVJNX0NNU0VfU0VDVVJFX01PREUKc3RhdGljIGNtc2VfYWRkcmVzc19pbmZvX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKY21zZV9UVEEodm9pZCAqX19wKSB7CiAgY21zZV9hZGRyZXNzX2luZm9fdCBfX3U7CiAgX191LnZhbHVlID0gX19idWlsdGluX2FybV9jbXNlX1RUQShfX3ApOwogIHJldHVybiBfX3U7Cn0Kc3RhdGljIGNtc2VfYWRkcmVzc19pbmZvX3QgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKY21zZV9UVEFUKHZvaWQgKl9fcCkgewogIGNtc2VfYWRkcmVzc19pbmZvX3QgX191OwogIF9fdS52YWx1ZSA9IF9fYnVpbHRpbl9hcm1fY21zZV9UVEFUKF9fcCk7CiAgcmV0dXJuIF9fdTsKfQojZW5kaWYKCiNkZWZpbmUgY21zZV9UVF9mcHRyKHApIGNtc2VfVFQoX19idWlsdGluX2JpdF9jYXN0KHZvaWQgKiwgKHApKSkKI2RlZmluZSBjbXNlX1RUVF9mcHRyKHApIGNtc2VfVFRUKF9fYnVpbHRpbl9iaXRfY2FzdCh2b2lkICosIChwKSkpCgojaWYgX19BUk1fQ01TRV9TRUNVUkVfTU9ERQojZGVmaW5lIGNtc2VfVFRBX2ZwdHIocCkgY21zZV9UVEEoX19idWlsdGluX2JpdF9jYXN0KHZvaWQgKiwgKHApKSkKI2RlZmluZSBjbXNlX1RUQVRfZnB0cihwKSBjbXNlX1RUQVQoX19idWlsdGluX2JpdF9jYXN0KHZvaWQgKiwgKHApKSkKI2VuZGlmCgpzdGF0aWMgdm9pZCAqX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18pKQpjbXNlX2NoZWNrX2FkZHJlc3NfcmFuZ2Uodm9pZCAqX19wYiwgc2l6ZV90IF9fcywgaW50IF9fZmxhZ3MpIHsKICB1aW50cHRyX3QgX19iZWdpbiA9ICh1aW50cHRyX3QpX19wYjsKICB1aW50cHRyX3QgX19lbmQgPSBfX2JlZ2luICsgX19zIC0gMTsKCiAgaWYgKF9fZW5kIDwgX19iZWdpbikKICAgIHJldHVybiBOVUxMOyAvKiB3cmFwIGFyb3VuZCBjaGVjayAqLwoKICAvKiBDaGVjayB3aGV0aGVyIHRoZSByYW5nZSBjcm9zc2VzIGEgMzItYnl0ZXMgYWxpZ25lZCBhZGRyZXNzICovCiAgY29uc3QgaW50IF9fc2luZ2xlX2NoZWNrID0gKF9fYmVnaW4gXiBfX2VuZCkgPCAweDIwdTsKCiAgLyogZXhlY3V0ZSB0aGUgcmlnaHQgdmFyaWFudCBvZiB0aGUgVFQgaW5zdHJ1Y3Rpb25zICovCiAgdm9pZCAqX19wZSA9ICh2b2lkICopX19lbmQ7CiAgY21zZV9hZGRyZXNzX2luZm9fdCBfX3Blcm1iLCBfX3Blcm1lOwogIHN3aXRjaCAoX19mbGFncyAmIChDTVNFX01QVV9VTlBSSVYgfCBDTVNFX01QVV9OT05TRUNVUkUpKSB7CiAgY2FzZSAwOgogICAgX19wZXJtYiA9IGNtc2VfVFQoX19wYik7CiAgICBfX3Blcm1lID0gX19zaW5nbGVfY2hlY2sgPyBfX3Blcm1iIDogY21zZV9UVChfX3BlKTsKICAgIGJyZWFrOwogIGNhc2UgQ01TRV9NUFVfVU5QUklWOgogICAgX19wZXJtYiA9IGNtc2VfVFRUKF9fcGIpOwogICAgX19wZXJtZSA9IF9fc2luZ2xlX2NoZWNrID8gX19wZXJtYiA6IGNtc2VfVFRUKF9fcGUpOwogICAgYnJlYWs7CiNpZiBfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFCiAgY2FzZSBDTVNFX01QVV9OT05TRUNVUkU6CiAgICBfX3Blcm1iID0gY21zZV9UVEEoX19wYik7CiAgICBfX3Blcm1lID0gX19zaW5nbGVfY2hlY2sgPyBfX3Blcm1iIDogY21zZV9UVEEoX19wZSk7CiAgICBicmVhazsKICBjYXNlIENNU0VfTVBVX1VOUFJJViB8IENNU0VfTVBVX05PTlNFQ1VSRToKICAgIF9fcGVybWIgPSBjbXNlX1RUQVQoX19wYik7CiAgICBfX3Blcm1lID0gX19zaW5nbGVfY2hlY2sgPyBfX3Blcm1iIDogY21zZV9UVEFUKF9fcGUpOwogICAgYnJlYWs7CiNlbmRpZgogIC8qIGlmIENNU0VfTk9OU0VDVVJFIGlzIHNwZWNpZmllZCB3L28gX19BUk1fQ01TRV9TRUNVUkVfTU9ERSAqLwogIGRlZmF1bHQ6CiAgICByZXR1cm4gTlVMTDsKICB9CgogIC8qIGNoZWNrIHRoYXQgdGhlIHJhbmdlIGRvZXMgbm90IGNyb3NzIE1QVSwgU0FVLCBvciBJREFVIHJlZ2lvbiBib3VuZGFyaWVzICovCiAgaWYgKF9fcGVybWIudmFsdWUgIT0gX19wZXJtZS52YWx1ZSkKICAgIHJldHVybiBOVUxMOwojaWYgIShfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFKQogIC8qIENNU0VfQVVfTk9OU0VDVVJFIGlzIG9ubHkgc3VwcG9ydGVkIHdoZW4gX19BUk1fRkVBVFVSRV9DTVNFICYgMHgyICovCiAgaWYgKF9fZmxhZ3MgJiBDTVNFX0FVX05PTlNFQ1VSRSkKICAgIHJldHVybiBOVUxMOwojZW5kaWYKCiAgLyogY2hlY2sgdGhlIHBlcm1pc3Npb24gb24gdGhlIHJhbmdlICovCiAgc3dpdGNoIChfX2ZsYWdzICYgfihDTVNFX01QVV9VTlBSSVYgfCBDTVNFX01QVV9OT05TRUNVUkUpKSB7CiNpZiAoX19BUk1fQ01TRV9TRUNVUkVfTU9ERSkKICBjYXNlIENNU0VfTVBVX1JFQUQgfCBDTVNFX01QVV9SRUFEV1JJVEUgfCBDTVNFX0FVX05PTlNFQ1VSRToKICBjYXNlIENNU0VfTVBVX1JFQURXUklURSB8IENNU0VfQVVfTk9OU0VDVVJFOgogICAgcmV0dXJuIF9fcGVybWIuZmxhZ3Mubm9uc2VjdXJlX3JlYWR3cml0ZV9vayA/IF9fcGIgOiBOVUxMOwoKICBjYXNlIENNU0VfTVBVX1JFQUQgfCBDTVNFX0FVX05PTlNFQ1VSRToKICAgIHJldHVybiBfX3Blcm1iLmZsYWdzLm5vbnNlY3VyZV9yZWFkX29rID8gX19wYiA6IE5VTEw7CgogIGNhc2UgQ01TRV9BVV9OT05TRUNVUkU6CiAgICByZXR1cm4gX19wZXJtYi5mbGFncy5zZWN1cmUgPyBOVUxMIDogX19wYjsKI2VuZGlmCiAgY2FzZSBDTVNFX01QVV9SRUFEIHwgQ01TRV9NUFVfUkVBRFdSSVRFOgogIGNhc2UgQ01TRV9NUFVfUkVBRFdSSVRFOgogICAgcmV0dXJuIF9fcGVybWIuZmxhZ3MucmVhZHdyaXRlX29rID8gX19wYiA6IE5VTEw7CgogIGNhc2UgQ01TRV9NUFVfUkVBRDoKICAgIHJldHVybiBfX3Blcm1iLmZsYWdzLnJlYWRfb2sgPyBfX3BiIDogTlVMTDsKCiAgZGVmYXVsdDoKICAgIHJldHVybiBOVUxMOwogIH0KfQoKI2lmIF9fQVJNX0NNU0VfU0VDVVJFX01PREUKc3RhdGljIGludCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpjbXNlX25vbnNlY3VyZV9jYWxsZXIodm9pZCkgewogIHJldHVybiAhKCh1aW50cHRyX3QpX19idWlsdGluX3JldHVybl9hZGRyZXNzKDApICYgMSk7Cn0KCiNkZWZpbmUgY21zZV9uc2ZwdHJfY3JlYXRlKHApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19idWlsdGluX2JpdF9jYXN0KF9fdHlwZW9mX18ocCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgIChfX2J1aWx0aW5fYml0X2Nhc3QodWludHB0cl90LCBwKSAmIH4odWludHB0cl90KTEpKQoKI2RlZmluZSBjbXNlX2lzX25zZnB0cihwKSAoKF9fYnVpbHRpbl9iaXRfY2FzdCh1aW50cHRyX3QsIHApICYgMSkgPT0gMCkKCiNlbmRpZiAvKiBfX0FSTV9DTVNFX1NFQ1VSRV9NT0RFICovCgp2b2lkIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpIGNtc2VfYWJvcnQodm9pZCk7CiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQp9CiNlbmRpZgoKI2VuZGlmIC8qIChfX0FSTV9GRUFUVVJFX0NNU0UgJiAweDEpICovCgojZW5kaWYgLyogX19BUk1fQ01TRV9IICovCgAvKj09PS0tLS0gYXJtX3N2ZS5oIC0gQVJNIFNWRSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQVJNX1NWRV9ICiNkZWZpbmUgX19BUk1fU1ZFX0gKCiNpZiAhZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRSkKI2Vycm9yICJTVkUgc3VwcG9ydCBub3QgZW5hYmxlZCIKI2Vsc2UKCiNpZiAhZGVmaW5lZChfX0xJVFRMRV9FTkRJQU5fXykKI2Vycm9yICJCaWcgZW5kaWFuIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkIGZvciBhcm1fc3ZlLmgiCiNlbmRpZgojaW5jbHVkZSA8c3RkaW50Lmg+CgojaWZkZWYgIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZWxzZQojaW5jbHVkZSA8c3RkYm9vbC5oPgojZW5kaWYKCnR5cGVkZWYgX19mcDE2IGZsb2F0MTZfdDsKdHlwZWRlZiBmbG9hdCBmbG9hdDMyX3Q7CnR5cGVkZWYgZG91YmxlIGZsb2F0NjRfdDsKdHlwZWRlZiBfX1NWSW50OF90IHN2aW50OF90Owp0eXBlZGVmIF9fU1ZJbnQxNl90IHN2aW50MTZfdDsKdHlwZWRlZiBfX1NWSW50MzJfdCBzdmludDMyX3Q7CnR5cGVkZWYgX19TVkludDY0X3Qgc3ZpbnQ2NF90Owp0eXBlZGVmIF9fU1ZVaW50OF90IHN2dWludDhfdDsKdHlwZWRlZiBfX1NWVWludDE2X3Qgc3Z1aW50MTZfdDsKdHlwZWRlZiBfX1NWVWludDMyX3Qgc3Z1aW50MzJfdDsKdHlwZWRlZiBfX1NWVWludDY0X3Qgc3Z1aW50NjRfdDsKdHlwZWRlZiBfX1NWRmxvYXQxNl90IHN2ZmxvYXQxNl90OwoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgJiYgIWRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1NDQUxBUl9BUklUSE1FVElDKQojZXJyb3IgIl9fQVJNX0ZFQVRVUkVfQkYxNl9TQ0FMQVJfQVJJVEhNRVRJQyBtdXN0IGJlIGRlZmluZWQgd2hlbiBfX0FSTV9GRUFUVVJFX1NWRV9CRjE2IGlzIGRlZmluZWQiCiNlbmRpZgoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKdHlwZWRlZiBfX1NWQkZsb2F0MTZfdCBzdmJmbG9hdDE2X3Q7CiNlbmRpZgoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1NDQUxBUl9BUklUSE1FVElDKQojaW5jbHVkZSA8YXJtX2JmMTYuaD4KdHlwZWRlZiBfX2JmMTYgYmZsb2F0MTZfdDsKI2VuZGlmCgp0eXBlZGVmIF9fU1ZGbG9hdDMyX3Qgc3ZmbG9hdDMyX3Q7CnR5cGVkZWYgX19TVkZsb2F0NjRfdCBzdmZsb2F0NjRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50OHgyX3Qgc3ZpbnQ4eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50MTZ4Ml90IHN2aW50MTZ4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQzMngyX3Qgc3ZpbnQzMngyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDY0eDJfdCBzdmludDY0eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDh4Ml90IHN2dWludDh4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50MTZ4Ml90IHN2dWludDE2eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDMyeDJfdCBzdnVpbnQzMngyX3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQ2NHgyX3Qgc3Z1aW50NjR4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDE2eDJfdCBzdmZsb2F0MTZ4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDMyeDJfdCBzdmZsb2F0MzJ4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZmbG9hdDY0eDJfdCBzdmZsb2F0NjR4Ml90Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQ4eDNfdCBzdmludDh4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQxNngzX3Qgc3ZpbnQxNngzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDMyeDNfdCBzdmludDMyeDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50NjR4M190IHN2aW50NjR4M190Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50OHgzX3Qgc3Z1aW50OHgzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQxNngzX3Qgc3Z1aW50MTZ4M190Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50MzJ4M190IHN2dWludDMyeDNfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDY0eDNfdCBzdnVpbnQ2NHgzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0MTZ4M190IHN2ZmxvYXQxNngzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0MzJ4M190IHN2ZmxvYXQzMngzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmZsb2F0NjR4M190IHN2ZmxvYXQ2NHgzX3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDh4NF90IHN2aW50OHg0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdmludDE2eDRfdCBzdmludDE2eDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2aW50MzJ4NF90IHN2aW50MzJ4NF90Owp0eXBlZGVmIF9fY2xhbmdfc3ZpbnQ2NHg0X3Qgc3ZpbnQ2NHg0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQ4eDRfdCBzdnVpbnQ4eDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2dWludDE2eDRfdCBzdnVpbnQxNng0X3Q7CnR5cGVkZWYgX19jbGFuZ19zdnVpbnQzMng0X3Qgc3Z1aW50MzJ4NF90Owp0eXBlZGVmIF9fY2xhbmdfc3Z1aW50NjR4NF90IHN2dWludDY0eDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQxNng0X3Qgc3ZmbG9hdDE2eDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQzMng0X3Qgc3ZmbG9hdDMyeDRfdDsKdHlwZWRlZiBfX2NsYW5nX3N2ZmxvYXQ2NHg0X3Qgc3ZmbG9hdDY0eDRfdDsKdHlwZWRlZiBfX1NWQm9vbF90ICBzdmJvb2xfdDsKCiNpZmRlZiBfX0FSTV9GRUFUVVJFX1NWRV9CRjE2CnR5cGVkZWYgX19jbGFuZ19zdmJmbG9hdDE2eDJfdCBzdmJmbG9hdDE2eDJfdDsKdHlwZWRlZiBfX2NsYW5nX3N2YmZsb2F0MTZ4M190IHN2YmZsb2F0MTZ4M190Owp0eXBlZGVmIF9fY2xhbmdfc3ZiZmxvYXQxNng0X3Qgc3ZiZmxvYXQxNng0X3Q7CiNlbmRpZgplbnVtIHN2cGF0dGVybgp7CiAgU1ZfUE9XMiA9IDAsCiAgU1ZfVkwxID0gMSwKICBTVl9WTDIgPSAyLAogIFNWX1ZMMyA9IDMsCiAgU1ZfVkw0ID0gNCwKICBTVl9WTDUgPSA1LAogIFNWX1ZMNiA9IDYsCiAgU1ZfVkw3ID0gNywKICBTVl9WTDggPSA4LAogIFNWX1ZMMTYgPSA5LAogIFNWX1ZMMzIgPSAxMCwKICBTVl9WTDY0ID0gMTEsCiAgU1ZfVkwxMjggPSAxMiwKICBTVl9WTDI1NiA9IDEzLAogIFNWX01VTDQgPSAyOSwKICBTVl9NVUwzID0gMzAsCiAgU1ZfQUxMID0gMzEKfTsKCmVudW0gc3ZwcmZvcAp7CiAgU1ZfUExETDFLRUVQID0gMCwKICBTVl9QTERMMVNUUk0gPSAxLAogIFNWX1BMREwyS0VFUCA9IDIsCiAgU1ZfUExETDJTVFJNID0gMywKICBTVl9QTERMM0tFRVAgPSA0LAogIFNWX1BMREwzU1RSTSA9IDUsCiAgU1ZfUFNUTDFLRUVQID0gOCwKICBTVl9QU1RMMVNUUk0gPSA5LAogIFNWX1BTVEwyS0VFUCA9IDEwLAogIFNWX1BTVEwyU1RSTSA9IDExLAogIFNWX1BTVEwzS0VFUCA9IDEyLAogIFNWX1BTVEwzU1RSTSA9IDEzCn07CgovKiBGdW5jdGlvbiBhdHRyaWJ1dGVzICovCiNkZWZpbmUgX19haSBzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQoKI2RlZmluZSBfX2FpbyBzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fb3ZlcmxvYWRhYmxlX18pKQoKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczhfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9zOF9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M4X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMTZfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfczE2X2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MxNl9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3MzMl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9zMzJfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczMyX2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfczY0X2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X3M2NF9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9zNjRfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF91OF9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U4X2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdThfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UxNl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF91MTZfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTE2X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTMyX2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X3UzMl9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91MzJfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfZjY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3M4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfczE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3MzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3MzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9zNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9zNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfdTgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91OChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF91MTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91MTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfdTMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X3U2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3U2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9mMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9mMTYoX19WQV9BUkdTX18pCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF91NjRfYmYxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojZGVmaW5lIHN2cmVpbnRlcnByZXRfdTY0X2YzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2YzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X3U2NF9mNjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9mNjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YxNl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMTZfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjE2X2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X2Y2NChfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczgoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3MzMihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9zNjQoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91OChfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91MTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTMyKF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3U2NChfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCiNkZWZpbmUgc3ZyZWludGVycHJldF9iZjE2X2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9mMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X2JmMTYoX19WQV9BUkdTX18pCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfYmYxNl9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfZjMyKF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2JmMTZfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X2Y2NChfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfczgoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9zOChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl9zMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9zMTYoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfczMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX3M2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3M2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl91OCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3U4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX3UxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3UxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl91MzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl91MzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfdTY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfdTY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX2YxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX2YxNihfX1ZBX0FSR1NfXykKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2YzMl9iZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfYmYxNihfX1ZBX0FSR1NfXykKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNkZWZpbmUgc3ZyZWludGVycHJldF9mMzJfZjMyKC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfZjMyKF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjMyX2Y2NCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX2Y2NChfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF9zOCguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3M4KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X3MxNiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3MxNihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF9zMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfczY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfczY0KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X3U4KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTgoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfdTE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTE2KF9fVkFfQVJHU19fKQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X3UzMiguLi4pIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3UzMihfX1ZBX0FSR1NfXykKI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF91NjQoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF91NjQoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfZjE2KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfZjE2KF9fVkFfQVJHU19fKQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2cmVpbnRlcnByZXRfZjY0X2JmMTYoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9iZjE2KF9fVkFfQVJHU19fKQojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2RlZmluZSBzdnJlaW50ZXJwcmV0X2Y2NF9mMzIoLi4uKSBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9mMzIoX19WQV9BUkdTX18pCiNkZWZpbmUgc3ZyZWludGVycHJldF9mNjRfZjY0KC4uLikgX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfZjY0KF9fVkFfQVJHU19fKQpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczgob3ApOwp9CgpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3MxNihvcCk7Cn0KCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfczMyKG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zOF9zNjQob3ApOwp9CgpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X3U4KG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTE2KG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTMyKG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfdTY0KG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2aW50OF90IHN2cmVpbnRlcnByZXRfczgoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmludDhfdCBzdnJlaW50ZXJwcmV0X3M4KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczhfZjMyKG9wKTsKfQoKX19haW8gc3ZpbnQ4X3Qgc3ZyZWludGVycHJldF9zOChzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M4X2Y2NChvcCk7Cn0KCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9zOChvcCk7Cn0KCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfczE2KG9wKTsKfQoKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9zMzIob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczE2X3M2NChvcCk7Cn0KCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfdTgob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91MTYob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91MzIob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl91NjQob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZpbnQxNl90IHN2cmVpbnRlcnByZXRfczE2KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2aW50MTZfdCBzdnJlaW50ZXJwcmV0X3MxNihzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MxNl9mMzIob3ApOwp9CgpfX2FpbyBzdmludDE2X3Qgc3ZyZWludGVycHJldF9zMTYoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMTZfZjY0KG9wKTsKfQoKX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3M4KG9wKTsKfQoKX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9zMTYob3ApOwp9CgpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3MzMihvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zMzJfczY0KG9wKTsKfQoKX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl91OChvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3UxNihvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3UzMihvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX3U2NChvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmludDMyX3Qgc3ZyZWludGVycHJldF9zMzIoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZpbnQzMl90IHN2cmVpbnRlcnByZXRfczMyKHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczMyX2YzMihvcCk7Cn0KCl9fYWlvIHN2aW50MzJfdCBzdnJlaW50ZXJwcmV0X3MzMihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3MzMl9mNjQob3ApOwp9CgpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfczgob3ApOwp9CgpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3MxNihvcCk7Cn0KCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfczMyKG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3M2NF9zNjQob3ApOwp9CgpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X3U4KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTE2KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTMyKG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfdTY0KG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2aW50NjRfdCBzdnJlaW50ZXJwcmV0X3M2NChzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmludDY0X3Qgc3ZyZWludGVycHJldF9zNjQoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9zNjRfZjMyKG9wKTsKfQoKX19haW8gc3ZpbnQ2NF90IHN2cmVpbnRlcnByZXRfczY0KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfczY0X2Y2NChvcCk7Cn0KCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfczgob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zMTYob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF9zNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91OChvcCk7Cn0KCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91OF91MTYob3ApOwp9CgpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfdTMyKG9wKTsKfQoKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X3U2NChvcCk7Cn0KCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3Z1aW50OF90IHN2cmVpbnRlcnByZXRfdTgoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdnVpbnQ4X3Qgc3ZyZWludGVycHJldF91OChzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U4X2YzMihvcCk7Cn0KCl9fYWlvIHN2dWludDhfdCBzdnJlaW50ZXJwcmV0X3U4KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdThfZjY0KG9wKTsKfQoKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9zOChvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3MxNihvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3MzMihvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3M2NChvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3Z1aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3U4KG9wKTsKfQoKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTE2X3UxNihvcCk7Cn0KCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl91MzIob3ApOwp9CgpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2dWludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfdTY0KG9wKTsKfQoKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdnVpbnQxNl90IHN2cmVpbnRlcnByZXRfdTE2KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2dWludDE2X3Qgc3ZyZWludGVycHJldF91MTYoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MTZfZjMyKG9wKTsKfQoKX19haW8gc3Z1aW50MTZfdCBzdnJlaW50ZXJwcmV0X3UxNihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UxNl9mNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3M4KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfczE2KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfczMyKG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfczY0KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTgob3ApOwp9CgpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91MzJfdTE2KG9wKTsKfQoKX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX3UzMihvcCk7Cn0KCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl91NjQob3ApOwp9CgpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2dWludDMyX3Qgc3ZyZWludGVycHJldF91MzIoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX2JmMTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3Z1aW50MzJfdCBzdnJlaW50ZXJwcmV0X3UzMihzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3UzMl9mMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQzMl90IHN2cmVpbnRlcnByZXRfdTMyKHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTMyX2Y2NChvcCk7Cn0KCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfczgob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9zMTYob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9zMzIob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF9zNjQob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91OChvcCk7Cn0KCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3Z1aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X3U2NF91MTYob3ApOwp9CgpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfdTMyKG9wKTsKfQoKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X3U2NChvcCk7Cn0KCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3ZmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfZjE2KG9wKTsKfQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3Z1aW50NjRfdCBzdnJlaW50ZXJwcmV0X3U2NChzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdnVpbnQ2NF90IHN2cmVpbnRlcnByZXRfdTY0KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfdTY0X2YzMihvcCk7Cn0KCl9fYWlvIHN2dWludDY0X3Qgc3ZyZWludGVycHJldF91NjQoc3ZmbG9hdDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF91NjRfZjY0KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczgob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfczE2KG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3MzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfZjE2KHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9zNjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfdTgob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjE2X3UxNihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfZjE2KHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfdTMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9mMTYoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl91NjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMTZfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9mMzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2YxNihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YxNl9mNjQob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2aW50OF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9zOChvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfczE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9zMzIob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdmludDY0X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X3M2NChvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfdTgob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91MTYob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdnVpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91MzIob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl91NjQob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKX19haW8gc3ZiZmxvYXQxNl90IHN2cmVpbnRlcnByZXRfYmYxNihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2JmMTZfZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3ZiZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2YmZsb2F0MTZfdCBzdnJlaW50ZXJwcmV0X2JmMTYoc3ZmbG9hdDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9iZjE2X2YzMihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmJmbG9hdDE2X3Qgc3ZyZWludGVycHJldF9iZjE2KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfYmYxNl9mNjQob3ApOwp9CgojZW5kaWYgLyogI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikgKi8KX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczgob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfczE2KG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3ZpbnQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3MzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQzMl90IHN2cmVpbnRlcnByZXRfZjMyKHN2aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9zNjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdnVpbnQ4X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfdTgob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdnVpbnQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjMyX3UxNihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQzMl90IHN2cmVpbnRlcnByZXRfZjMyKHN2dWludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfdTMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDMyX3Qgc3ZyZWludGVycHJldF9mMzIoc3Z1aW50NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl91NjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9mMTYob3ApOwp9CgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmJmbG9hdDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mMzJfYmYxNihvcCk7Cn0KCiNlbmRpZiAvKiAjaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KSAqLwpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmZsb2F0MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9mMzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0MzJfdCBzdnJlaW50ZXJwcmV0X2YzMihzdmZsb2F0NjRfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2YzMl9mNjQob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zOChvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2aW50MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9zMTYob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdmludDMyX3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfczMyKG9wKTsKfQoKX19haW8gc3ZmbG9hdDY0X3Qgc3ZyZWludGVycHJldF9mNjQoc3ZpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3M2NChvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2dWludDhfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF91OChvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2dWludDE2X3Qgb3ApIHsKICByZXR1cm4gX19idWlsdGluX3N2ZV9yZWludGVycHJldF9mNjRfdTE2KG9wKTsKfQoKX19haW8gc3ZmbG9hdDY0X3Qgc3ZyZWludGVycHJldF9mNjQoc3Z1aW50MzJfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF91MzIob3ApOwp9CgpfX2FpbyBzdmZsb2F0NjRfdCBzdnJlaW50ZXJwcmV0X2Y2NChzdnVpbnQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X3U2NChvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2ZmxvYXQxNl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X2YxNihvcCk7Cn0KCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2YmZsb2F0MTZfdCBvcCkgewogIHJldHVybiBfX2J1aWx0aW5fc3ZlX3JlaW50ZXJwcmV0X2Y2NF9iZjE2KG9wKTsKfQoKI2VuZGlmIC8qICNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpICovCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2ZmxvYXQzMl90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X2YzMihvcCk7Cn0KCl9fYWlvIHN2ZmxvYXQ2NF90IHN2cmVpbnRlcnByZXRfZjY0KHN2ZmxvYXQ2NF90IG9wKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zdmVfcmVpbnRlcnByZXRfZjY0X2Y2NChvcCk7Cn0KCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfbl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfbl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfbl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczhfbSkpKQpzdmludDhfdCBzdmFiZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFiZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFiZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFiZF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhYmRfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhYmRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhYmRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhYmRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zOF96KSkpCnN2aW50OF90IHN2YWJkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YWJkX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YWJkX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YWJkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhYmRfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhYmRfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhYmRfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhYmRfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2YWJkX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWJkX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWJkX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWJkX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91OF96KSkpCnN2dWludDhfdCBzdmFiZF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFiZF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFiZF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFiZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWJkX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFiZF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFiZF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWJkX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFiZF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhYmRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhYmRfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczMyX20pKSkKc3ZpbnQzMl90IHN2YWJkX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFiZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYmRfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczhfeCkpKQpzdmludDhfdCBzdmFiZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhYmRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWJkX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MxNl94KSkpCnN2aW50MTZfdCBzdmFiZF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zOF96KSkpCnN2aW50OF90IHN2YWJkX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3MzMl96KSkpCnN2aW50MzJfdCBzdmFiZF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhYmRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczE2X3opKSkKc3ZpbnQxNl90IHN2YWJkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U4X20pKSkKc3Z1aW50OF90IHN2YWJkX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFiZF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhYmRfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWJkX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhYmRfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWJkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFiZF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhYmRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91OF96KSkpCnN2dWludDhfdCBzdmFiZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhYmRfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWJkX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFiZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWJzX2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFic19mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhYnNfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWJzX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWJzX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWJzX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWJzX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWJzX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWJzX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhYnNfczhfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczMyX20pKSkKc3ZpbnQzMl90IHN2YWJzX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFic19zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYnNfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczhfeCkpKQpzdmludDhfdCBzdmFic19zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MzMl94KSkpCnN2aW50MzJfdCBzdmFic19zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWJzX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMTZfeCkpKQpzdmludDE2X3Qgc3ZhYnNfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhYnNfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMzJfeikpKQpzdmludDMyX3Qgc3ZhYnNfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF96KSkpCnN2aW50NjRfdCBzdmFic19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X3opKSkKc3ZpbnQxNl90IHN2YWJzX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2Vfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2dlX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX25fZjMyKSkpCnN2Ym9vbF90IHN2YWNnZV9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9uX2YxNikpKQpzdmJvb2xfdCBzdmFjZ2Vfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2VfZjY0KSkpCnN2Ym9vbF90IHN2YWNnZV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9mMzIpKSkKc3Zib29sX3Qgc3ZhY2dlX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX2YxNikpKQpzdmJvb2xfdCBzdmFjZ2VfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3Rfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2d0X25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X25fZjMyKSkpCnN2Ym9vbF90IHN2YWNndF9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9uX2YxNikpKQpzdmJvb2xfdCBzdmFjZ3Rfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3RfZjY0KSkpCnN2Ym9vbF90IHN2YWNndF9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9mMzIpKSkKc3Zib29sX3Qgc3ZhY2d0X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X2YxNikpKQpzdmJvb2xfdCBzdmFjZ3RfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2xlX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX25fZjMyKSkpCnN2Ym9vbF90IHN2YWNsZV9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9uX2YxNikpKQpzdmJvb2xfdCBzdmFjbGVfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfZjY0KSkpCnN2Ym9vbF90IHN2YWNsZV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9mMzIpKSkKc3Zib29sX3Qgc3ZhY2xlX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX2YxNikpKQpzdmJvb2xfdCBzdmFjbGVfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfbl9mNjQpKSkKc3Zib29sX3Qgc3ZhY2x0X25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X25fZjMyKSkpCnN2Ym9vbF90IHN2YWNsdF9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9uX2YxNikpKQpzdmJvb2xfdCBzdmFjbHRfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfZjY0KSkpCnN2Ym9vbF90IHN2YWNsdF9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9mMzIpKSkKc3Zib29sX3Qgc3ZhY2x0X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X2YxNikpKQpzdmJvb2xfdCBzdmFjbHRfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWRkX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWRkX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWRkX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWRkX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWRkX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWRkX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWRkX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2YWRkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWRkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zOF9tKSkpCnN2aW50OF90IHN2YWRkX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YWRkX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YWRkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhZGRfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhZGRfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhZGRfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhZGRfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhZGRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdmFkZF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFkZF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFkZF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFkZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczhfeikpKQpzdmludDhfdCBzdmFkZF9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFkZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFkZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFkZF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFkZF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWRkX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFkZF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWRkX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFkZF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWRkX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91OF9tKSkpCnN2dWludDhfdCBzdmFkZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhZGRfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2YWRkX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhZGRfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhZGRfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWRkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkZF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhZGRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zOF94KSkpCnN2aW50OF90IHN2YWRkX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkZF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWRkX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U4X3opKSkKc3Z1aW50OF90IHN2YWRkX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFkZF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhZGRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2YWRkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczhfeikpKQpzdmludDhfdCBzdmFkZF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZhZGRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczY0X3opKSkKc3ZpbnQ2NF90IHN2YWRkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdmFkZF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGFfZjY0KSkpCmZsb2F0NjRfdCBzdmFkZGFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRhX2YzMikpKQpmbG9hdDMyX3Qgc3ZhZGRhX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkYV9mMTYpKSkKZmxvYXQxNl90IHN2YWRkYV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczgpKSkKaW50NjRfdCBzdmFkZHZfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3MzMikpKQppbnQ2NF90IHN2YWRkdl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9zNjQpKSkKaW50NjRfdCBzdmFkZHZfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczE2KSkpCmludDY0X3Qgc3ZhZGR2X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3U4KSkpCnVpbnQ2NF90IHN2YWRkdl91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3UzMikpKQp1aW50NjRfdCBzdmFkZHZfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3U2NCkpKQp1aW50NjRfdCBzdmFkZHZfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3UxNikpKQp1aW50NjRfdCBzdmFkZHZfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZhZGR2X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfZjMyKSkpCmZsb2F0MzJfdCBzdmFkZHZfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9mMTYpKSkKZmxvYXQxNl90IHN2YWRkdl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3UzMmJhc2VfdTMyb2Zmc2V0KSkpCnN2dWludDMyX3Qgc3ZhZHJiX3UzMmJhc2VfdTMyb2Zmc2V0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmJfdTY0YmFzZV91NjRvZmZzZXQpKSkKc3Z1aW50NjRfdCBzdmFkcmJfdTY0YmFzZV91NjRvZmZzZXQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyYl91MzJiYXNlX3MzMm9mZnNldCkpKQpzdnVpbnQzMl90IHN2YWRyYl91MzJiYXNlX3MzMm9mZnNldChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmJfdTY0YmFzZV9zNjRvZmZzZXQpKSkKc3Z1aW50NjRfdCBzdmFkcmJfdTY0YmFzZV9zNjRvZmZzZXQoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3UzMmJhc2VfdTMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcmRfdTMyYmFzZV91MzJpbmRleChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3U2NGJhc2VfdTY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmRfdTY0YmFzZV91NjRpbmRleChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3UzMmJhc2VfczMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcmRfdTMyYmFzZV9zMzJpbmRleChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmRfdTY0YmFzZV9zNjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyZF91NjRiYXNlX3M2NGluZGV4KHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91MzJiYXNlX3UzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJoX3UzMmJhc2VfdTMyaW5kZXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91NjRiYXNlX3U2NGluZGV4KSkpCnN2dWludDY0X3Qgc3ZhZHJoX3U2NGJhc2VfdTY0aW5kZXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91MzJiYXNlX3MzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJoX3UzMmJhc2VfczMyaW5kZXgoc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJoX3U2NGJhc2VfczY0aW5kZXgpKSkKc3Z1aW50NjRfdCBzdmFkcmhfdTY0YmFzZV9zNjRpbmRleChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTMyYmFzZV91MzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyd191MzJiYXNlX3UzMmluZGV4KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTY0YmFzZV91NjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyd191NjRiYXNlX3U2NGluZGV4KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTMyYmFzZV9zMzJpbmRleCkpKQpzdnVpbnQzMl90IHN2YWRyd191MzJiYXNlX3MzMmluZGV4KHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyd191NjRiYXNlX3M2NGluZGV4KSkpCnN2dWludDY0X3Qgc3ZhZHJ3X3U2NGJhc2VfczY0aW5kZXgoc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfYl96KSkpCnN2Ym9vbF90IHN2YW5kX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91OF9tKSkpCnN2dWludDhfdCBzdmFuZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFuZF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFuZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFuZF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczhfbSkpKQpzdmludDhfdCBzdmFuZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFuZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFuZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFuZF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2YW5kX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YW5kX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YW5kX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YW5kX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zOF94KSkpCnN2aW50OF90IHN2YW5kX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YW5kX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YW5kX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YW5kX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZhbmRfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhbmRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhbmRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhbmRfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhbmRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZhbmRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZhbmRfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZhbmRfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhbmRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YW5kX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFuZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhbmRfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zOF9tKSkpCnN2aW50OF90IHN2YW5kX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFuZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhbmRfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczE2X20pKSkKc3ZpbnQxNl90IHN2YW5kX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U4X3gpKSkKc3Z1aW50OF90IHN2YW5kX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFuZF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhbmRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YW5kX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczhfeCkpKQpzdmludDhfdCBzdmFuZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhbmRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YW5kX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MxNl94KSkpCnN2aW50MTZfdCBzdmFuZF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91OF96KSkpCnN2dWludDhfdCBzdmFuZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhbmRfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YW5kX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFuZF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhbmRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczMyX3opKSkKc3ZpbnQzMl90IHN2YW5kX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3M2NF96KSkpCnN2aW50NjRfdCBzdmFuZF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZhbmRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3U4KSkpCnVpbnQ4X3Qgc3ZhbmR2X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTMyKSkpCnVpbnQzMl90IHN2YW5kdl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTY0KSkpCnVpbnQ2NF90IHN2YW5kdl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTE2KSkpCnVpbnQxNl90IHN2YW5kdl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczgpKSkKaW50OF90IHN2YW5kdl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczMyKSkpCmludDMyX3Qgc3ZhbmR2X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3M2NCkpKQppbnQ2NF90IHN2YW5kdl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kdl9zMTYpKSkKaW50MTZfdCBzdmFuZHZfczE2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3Jfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YXNyX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFzcl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3Jfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczhfeCkpKQpzdmludDhfdCBzdmFzcl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3Jfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YXNyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zOF96KSkpCnN2aW50OF90IHN2YXNyX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFzcl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3Jfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zOF9tKSkpCnN2aW50OF90IHN2YXNyX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3JfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFzcl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zOF94KSkpCnN2aW50OF90IHN2YXNyX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3JfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zOF96KSkpCnN2aW50OF90IHN2YXNyX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3JfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M2NF96KSkpCnN2aW50NjRfdCBzdmFzcl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczhfbSkpKQpzdmludDhfdCBzdmFzcl93aWRlX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zOF94KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczMyX20pKSkKc3ZpbnQzMl90IHN2YXNyX3dpZGVfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyX3dpZGVfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3dpZGVfczhfeCkpKQpzdmludDhfdCBzdmFzcl93aWRlX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zOF96KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3MzMl96KSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl93aWRlX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zOF9tKSkpCnN2aW50OF90IHN2YXNyZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcmRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFzcmRfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcmRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3JkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YXNyZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YXNyZF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyZF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczhfeikpKQpzdmludDhfdCBzdmFzcmRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3JkX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3JkX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3JkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19iX3opKSkKc3Zib29sX3Qgc3ZiaWNfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U4X20pKSkKc3Z1aW50OF90IHN2YmljX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YmljX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YmljX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2YmljX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zOF9tKSkpCnN2aW50OF90IHN2YmljX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YmljX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YmljX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YmljX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZiaWNfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZiaWNfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZiaWNfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZiaWNfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZiaWNfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZiaWNfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZiaWNfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZiaWNfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91OF96KSkpCnN2dWludDhfdCBzdmJpY19uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmJpY19uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmJpY19uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmJpY19uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczhfeikpKQpzdmludDhfdCBzdmJpY19uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MzMl96KSkpCnN2aW50MzJfdCBzdmJpY19uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M2NF96KSkpCnN2aW50NjRfdCBzdmJpY19uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MxNl96KSkpCnN2aW50MTZfdCBzdmJpY19uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191OF9tKSkpCnN2dWludDhfdCBzdmJpY191OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZiaWNfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191NjRfbSkpKQpzdnVpbnQ2NF90IHN2YmljX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmJpY191MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZiaWNfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczMyX20pKSkKc3ZpbnQzMl90IHN2YmljX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3M2NF9tKSkpCnN2aW50NjRfdCBzdmJpY19zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMTZfbSkpKQpzdmludDE2X3Qgc3ZiaWNfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZiaWNfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MzJfeCkpKQpzdnVpbnQzMl90IHN2YmljX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmJpY191NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZiaWNfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zOF94KSkpCnN2aW50OF90IHN2YmljX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MzMl94KSkpCnN2aW50MzJfdCBzdmJpY19zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zNjRfeCkpKQpzdmludDY0X3Qgc3ZiaWNfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczE2X3gpKSkKc3ZpbnQxNl90IHN2YmljX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U4X3opKSkKc3Z1aW50OF90IHN2YmljX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmJpY191MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZiaWNfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MTZfeikpKQpzdnVpbnQxNl90IHN2YmljX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczhfeikpKQpzdmludDhfdCBzdmJpY19zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMzJfeikpKQpzdmludDMyX3Qgc3ZiaWNfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczY0X3opKSkKc3ZpbnQ2NF90IHN2YmljX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MxNl96KSkpCnN2aW50MTZfdCBzdmJpY19zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2FfYl9tKSkpCnN2Ym9vbF90IHN2YnJrYV9iX20oc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrYV9iX3opKSkKc3Zib29sX3Qgc3ZicmthX2JfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2JfYl9tKSkpCnN2Ym9vbF90IHN2YnJrYl9iX20oc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrYl9iX3opKSkKc3Zib29sX3Qgc3ZicmtiX2JfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya25fYl96KSkpCnN2Ym9vbF90IHN2YnJrbl9iX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrcGFfYl96KSkpCnN2Ym9vbF90IHN2YnJrcGFfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya3BiX2JfeikpKQpzdmJvb2xfdCBzdmJya3BiX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmNhZGRfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmNhZGRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y2FkZF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmNhZGRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjYWRkX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl91OCkpKQp1aW50OF90IHN2Y2xhc3RhX25fdTgoc3Zib29sX3QsIHVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTMyKSkpCnVpbnQzMl90IHN2Y2xhc3RhX25fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTY0KSkpCnVpbnQ2NF90IHN2Y2xhc3RhX25fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTE2KSkpCnVpbnQxNl90IHN2Y2xhc3RhX25fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fczgpKSkKaW50OF90IHN2Y2xhc3RhX25fczgoc3Zib29sX3QsIGludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZjbGFzdGFfbl9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2YzMikpKQpmbG9hdDMyX3Qgc3ZjbGFzdGFfbl9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2YxNikpKQpmbG9hdDE2X3Qgc3ZjbGFzdGFfbl9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3MzMikpKQppbnQzMl90IHN2Y2xhc3RhX25fczMyKHN2Ym9vbF90LCBpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3M2NCkpKQppbnQ2NF90IHN2Y2xhc3RhX25fczY0KHN2Ym9vbF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3MxNikpKQppbnQxNl90IHN2Y2xhc3RhX25fczE2KHN2Ym9vbF90LCBpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV91OCkpKQpzdnVpbnQ4X3Qgc3ZjbGFzdGFfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfdTMyKSkpCnN2dWludDMyX3Qgc3ZjbGFzdGFfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfdTY0KSkpCnN2dWludDY0X3Qgc3ZjbGFzdGFfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbGFzdGFfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfczgpKSkKc3ZpbnQ4X3Qgc3ZjbGFzdGFfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmNsYXN0YV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2YzMikpKQpzdmZsb2F0MzJfdCBzdmNsYXN0YV9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX2YxNikpKQpzdmZsb2F0MTZfdCBzdmNsYXN0YV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3MzMikpKQpzdmludDMyX3Qgc3ZjbGFzdGFfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3M2NCkpKQpzdmludDY0X3Qgc3ZjbGFzdGFfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3MxNikpKQpzdmludDE2X3Qgc3ZjbGFzdGFfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fdTgpKSkKdWludDhfdCBzdmNsYXN0Yl9uX3U4KHN2Ym9vbF90LCB1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3UzMikpKQp1aW50MzJfdCBzdmNsYXN0Yl9uX3UzMihzdmJvb2xfdCwgdWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3U2NCkpKQp1aW50NjRfdCBzdmNsYXN0Yl9uX3U2NChzdmJvb2xfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3UxNikpKQp1aW50MTZfdCBzdmNsYXN0Yl9uX3UxNihzdmJvb2xfdCwgdWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3M4KSkpCmludDhfdCBzdmNsYXN0Yl9uX3M4KHN2Ym9vbF90LCBpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9mNjQpKSkKZmxvYXQ2NF90IHN2Y2xhc3RiX25fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9mMzIpKSkKZmxvYXQzMl90IHN2Y2xhc3RiX25fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9mMTYpKSkKZmxvYXQxNl90IHN2Y2xhc3RiX25fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zMzIpKSkKaW50MzJfdCBzdmNsYXN0Yl9uX3MzMihzdmJvb2xfdCwgaW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zNjQpKSkKaW50NjRfdCBzdmNsYXN0Yl9uX3M2NChzdmJvb2xfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zMTYpKSkKaW50MTZfdCBzdmNsYXN0Yl9uX3MxNihzdmJvb2xfdCwgaW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfdTgpKSkKc3Z1aW50OF90IHN2Y2xhc3RiX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3UzMikpKQpzdnVpbnQzMl90IHN2Y2xhc3RiX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y2xhc3RiX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3UxNikpKQpzdnVpbnQxNl90IHN2Y2xhc3RiX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3M4KSkpCnN2aW50OF90IHN2Y2xhc3RiX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZjbGFzdGJfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZjbGFzdGJfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZjbGFzdGJfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zMzIpKSkKc3ZpbnQzMl90IHN2Y2xhc3RiX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2xhc3RiX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zMTYpKSkKc3ZpbnQxNl90IHN2Y2xhc3RiX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zOF9tKSkpCnN2dWludDhfdCBzdmNsc19zOF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczMyX20pKSkKc3Z1aW50MzJfdCBzdmNsc19zMzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczY0X20pKSkKc3Z1aW50NjRfdCBzdmNsc19zNjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczE2X20pKSkKc3Z1aW50MTZfdCBzdmNsc19zMTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczhfeCkpKQpzdnVpbnQ4X3Qgc3ZjbHNfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zMzJfeCkpKQpzdnVpbnQzMl90IHN2Y2xzX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y2xzX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zMTZfeCkpKQpzdnVpbnQxNl90IHN2Y2xzX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsc19zOF96KSkpCnN2dWludDhfdCBzdmNsc19zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MzMl96KSkpCnN2dWludDMyX3Qgc3ZjbHNfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M2NF96KSkpCnN2dWludDY0X3Qgc3ZjbHNfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3MxNl96KSkpCnN2dWludDE2X3Qgc3ZjbHNfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U4X20pKSkKc3Z1aW50OF90IHN2Y2x6X3U4X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmNsel91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbHpfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MTZfbSkpKQpzdnVpbnQxNl90IHN2Y2x6X3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczhfbSkpKQpzdnVpbnQ4X3Qgc3ZjbHpfczhfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbHpfczMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbHpfczY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbHpfczE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U4X3gpKSkKc3Z1aW50OF90IHN2Y2x6X3U4X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZjbHpfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfeCkpKQpzdnVpbnQ2NF90IHN2Y2x6X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsel91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X3gpKSkKc3Z1aW50OF90IHN2Y2x6X3M4X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczMyX3gpKSkKc3Z1aW50MzJfdCBzdmNsel9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczY0X3gpKSkKc3Z1aW50NjRfdCBzdmNsel9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsel9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdThfeikpKQpzdnVpbnQ4X3Qgc3ZjbHpfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmNsel91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZjbHpfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MTZfeikpKQpzdnVpbnQxNl90IHN2Y2x6X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczhfeikpKQpzdnVpbnQ4X3Qgc3ZjbHpfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMzJfeikpKQpzdnVpbnQzMl90IHN2Y2x6X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zNjRfeikpKQpzdnVpbnQ2NF90IHN2Y2x6X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMTZfeikpKQpzdnVpbnQxNl90IHN2Y2x6X3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmNtbGFfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2Y21sYV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmNtbGFfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y21sYV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZjbWxhX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmNtbGFfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2Y21sYV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZjbWxhX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdmNtbGFfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGVxX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGVxX25fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGVxX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZXFfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGVxX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZXFfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGVxX25fczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTgpKSkKc3Zib29sX3Qgc3ZjbXBlcV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3UzMikpKQpzdmJvb2xfdCBzdmNtcGVxX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTY0KSkpCnN2Ym9vbF90IHN2Y21wZXFfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3M4KSkpCnN2Ym9vbF90IHN2Y21wZXFfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczMyKSkpCnN2Ym9vbF90IHN2Y21wZXFfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczY0KSkpCnN2Ym9vbF90IHN2Y21wZXFfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfczE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfZjY0KSkpCnN2Ym9vbF90IHN2Y21wZXFfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX2YzMikpKQpzdmJvb2xfdCBzdmNtcGVxX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGdlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGdlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGdlX25fdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2VfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczY0KSkpCnN2Ym9vbF90IHN2Y21wZ2VfczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2VfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ2VfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX2YzMikpKQpzdmJvb2xfdCBzdmNtcGdlX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGdlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTY0KSkpCnN2Ym9vbF90IHN2Y21wZ2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGdlX3dpZGVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczgpKSkKc3Zib29sX3Qgc3ZjbXBndF9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGd0X25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fczY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndF9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0X25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBndF9uX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0X3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3MzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3M2NCkpKQpzdmJvb2xfdCBzdmNtcGd0X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3MxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGd0X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfZjE2KSkpCnN2Ym9vbF90IHN2Y21wZ3RfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3RfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3U2NCkpKQpzdmJvb2xfdCBzdmNtcGd0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ3RfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX25fdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfbl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ3Rfd2lkZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGVfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGxlX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGxlX25fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGxlX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGxlX25fczY0KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wbGVfbl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlX25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBsZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZV9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsZV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX2YxNikpKQpzdmJvb2xfdCBzdmNtcGxlX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfbl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfczgoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGVfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBsZV93aWRlX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGx0X25fdTgoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wbHRfbl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X25fdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0X25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfbl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdF9uX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGx0X25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3U4KSkpCnN2Ym9vbF90IHN2Y21wbHRfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3U2NCkpKQpzdmJvb2xfdCBzdmNtcGx0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0X3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3MzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3M2NCkpKQpzdmJvb2xfdCBzdmNtcGx0X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3MxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGx0X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfZjE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfbl91OChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfbl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX25fczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGVfczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfbl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcG5lX25fdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lX25fczMyKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fczY0KSkpCnN2Ym9vbF90IHN2Y21wbmVfbl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91OCkpKQpzdmJvb2xfdCBzdmNtcG5lX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91NjQpKSkKc3Zib29sX3Qgc3ZjbXBuZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3UxNikpKQpzdmJvb2xfdCBzdmNtcG5lX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfczgpKSkKc3Zib29sX3Qgc3ZjbXBuZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZV9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX2YxNikpKQpzdmJvb2xfdCBzdmNtcG5lX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlX25fczgoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9uX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9uX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcHVvX25fZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19uX2YzMikpKQpzdmJvb2xfdCBzdmNtcHVvX25fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19uX2YxNikpKQpzdmJvb2xfdCBzdmNtcHVvX25fZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19mNjQpKSkKc3Zib29sX3Qgc3ZjbXB1b19mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fZjMyKSkpCnN2Ym9vbF90IHN2Y21wdW9fZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX2YxNikpKQpzdmJvb2xfdCBzdmNtcHVvX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U4X20pKSkKc3Z1aW50OF90IHN2Y25vdF91OF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2Y25vdF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2Y25vdF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MTZfbSkpKQpzdnVpbnQxNl90IHN2Y25vdF91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zOF9tKSkpCnN2aW50OF90IHN2Y25vdF9zOF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczMyX20pKSkKc3ZpbnQzMl90IHN2Y25vdF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X20pKSkKc3ZpbnQ2NF90IHN2Y25vdF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczE2X20pKSkKc3ZpbnQxNl90IHN2Y25vdF9zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zjbm90X3U4X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MzJfeCkpKQpzdnVpbnQzMl90IHN2Y25vdF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2Y25vdF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91MTZfeCkpKQpzdnVpbnQxNl90IHN2Y25vdF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zOF94KSkpCnN2aW50OF90IHN2Y25vdF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zjbm90X3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X3gpKSkKc3ZpbnQ2NF90IHN2Y25vdF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl94KSkpCnN2aW50MTZfdCBzdmNub3RfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91OF96KSkpCnN2dWludDhfdCBzdmNub3RfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UzMl96KSkpCnN2dWludDMyX3Qgc3Zjbm90X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U2NF96KSkpCnN2dWludDY0X3Qgc3Zjbm90X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UxNl96KSkpCnN2dWludDE2X3Qgc3Zjbm90X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M4X3opKSkKc3ZpbnQ4X3Qgc3Zjbm90X3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MzMl96KSkpCnN2aW50MzJfdCBzdmNub3RfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zNjRfeikpKQpzdmludDY0X3Qgc3Zjbm90X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczE2X3opKSkKc3ZpbnQxNl90IHN2Y25vdF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZjbnRfdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MzJfbSkpKQpzdnVpbnQzMl90IHN2Y250X3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zOF9tKSkpCnN2dWludDhfdCBzdmNudF9zOF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF9mNjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMzJfbSkpKQpzdnVpbnQzMl90IHN2Y250X2YzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfZjE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczMyX20pKSkKc3Z1aW50MzJfdCBzdmNudF9zMzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF9zNjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczE2X20pKSkKc3Z1aW50MTZfdCBzdmNudF9zMTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZjbnRfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmNudF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZjbnRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MTZfeCkpKQpzdnVpbnQxNl90IHN2Y250X3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczhfeCkpKQpzdnVpbnQ4X3Qgc3ZjbnRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YzMl94KSkpCnN2dWludDMyX3Qgc3ZjbnRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMzJfeCkpKQpzdnVpbnQzMl90IHN2Y250X3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMTZfeCkpKQpzdnVpbnQxNl90IHN2Y250X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91OF96KSkpCnN2dWludDhfdCBzdmNudF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MzJfeikpKQpzdnVpbnQzMl90IHN2Y250X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmNudF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UxNl96KSkpCnN2dWludDE2X3Qgc3ZjbnRfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zOF96KSkpCnN2dWludDhfdCBzdmNudF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2Y2NF96KSkpCnN2dWludDY0X3Qgc3ZjbnRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjMyX3opKSkKc3Z1aW50MzJfdCBzdmNudF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMTZfeikpKQpzdnVpbnQxNl90IHN2Y250X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MzMl96KSkpCnN2dWludDMyX3Qgc3ZjbnRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M2NF96KSkpCnN2dWludDY0X3Qgc3ZjbnRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MxNl96KSkpCnN2dWludDE2X3Qgc3ZjbnRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250YikpKQp1aW50NjRfdCBzdmNudGIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRiX3BhdCkpKQp1aW50NjRfdCBzdmNudGJfcGF0KGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRkKSkpCnVpbnQ2NF90IHN2Y250ZCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudGRfcGF0KSkpCnVpbnQ2NF90IHN2Y250ZF9wYXQoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudGgpKSkKdWludDY0X3Qgc3ZjbnRoKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250aF9wYXQpKSkKdWludDY0X3Qgc3ZjbnRoX3BhdChlbnVtIHN2cGF0dGVybik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250cF9iOCkpKQp1aW50NjRfdCBzdmNudHBfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRwX2IzMikpKQp1aW50NjRfdCBzdmNudHBfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250cF9iNjQpKSkKdWludDY0X3Qgc3ZjbnRwX2I2NChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudHBfYjE2KSkpCnVpbnQ2NF90IHN2Y250cF9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnR3KSkpCnVpbnQ2NF90IHN2Y250dygpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudHdfcGF0KSkpCnVpbnQ2NF90IHN2Y250d19wYXQoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfdTMyKSkpCnN2dWludDMyX3Qgc3Zjb21wYWN0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF91NjQpKSkKc3Z1aW50NjRfdCBzdmNvbXBhY3RfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmNvbXBhY3RfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Zjb21wYWN0X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfczMyKSkpCnN2aW50MzJfdCBzdmNvbXBhY3RfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfczY0KSkpCnN2aW50NjRfdCBzdmNvbXBhY3RfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfdTgpKSkKc3Z1aW50OHgyX3Qgc3ZjcmVhdGUyX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3UzMikpKQpzdnVpbnQzMngyX3Qgc3ZjcmVhdGUyX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZjcmVhdGUyX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3UxNikpKQpzdnVpbnQxNngyX3Qgc3ZjcmVhdGUyX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3M4KSkpCnN2aW50OHgyX3Qgc3ZjcmVhdGUyX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmNyZWF0ZTJfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdmNyZWF0ZTJfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdmNyZWF0ZTJfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZjcmVhdGUyX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZjcmVhdGUyX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZjcmVhdGUyX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191OCkpKQpzdnVpbnQ4eDNfdCBzdmNyZWF0ZTNfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191MzIpKSkKc3Z1aW50MzJ4M190IHN2Y3JlYXRlM191MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191NjQpKSkKc3Z1aW50NjR4M190IHN2Y3JlYXRlM191NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191MTYpKSkKc3Z1aW50MTZ4M190IHN2Y3JlYXRlM191MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zOCkpKQpzdmludDh4M190IHN2Y3JlYXRlM19zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2Y3JlYXRlM19mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19mMzIpKSkKc3ZmbG9hdDMyeDNfdCBzdmNyZWF0ZTNfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZjcmVhdGUzX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX3MzMikpKQpzdmludDMyeDNfdCBzdmNyZWF0ZTNfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczY0KSkpCnN2aW50NjR4M190IHN2Y3JlYXRlM19zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zMTYpKSkKc3ZpbnQxNngzX3Qgc3ZjcmVhdGUzX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3U4KSkpCnN2dWludDh4NF90IHN2Y3JlYXRlNF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTMyKSkpCnN2dWludDMyeDRfdCBzdmNyZWF0ZTRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTY0KSkpCnN2dWludDY0eDRfdCBzdmNyZWF0ZTRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfdTE2KSkpCnN2dWludDE2eDRfdCBzdmNyZWF0ZTRfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczgpKSkKc3ZpbnQ4eDRfdCBzdmNyZWF0ZTRfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfZjY0KSkpCnN2ZmxvYXQ2NHg0X3Qgc3ZjcmVhdGU0X2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdmNyZWF0ZTRfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2Y3JlYXRlNF9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczMyKSkpCnN2aW50MzJ4NF90IHN2Y3JlYXRlNF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3M2NCkpKQpzdmludDY0eDRfdCBzdmNyZWF0ZTRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZjcmVhdGU0X3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X2YzMl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mMzJfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9mNjRfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjY0X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3MzMl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3M2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9zNjRfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3UzMl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MzJfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91NjRfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTY0X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfZjE2X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2YxNl96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX2Y2NF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mNjRfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3MzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9zMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zNjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfczY0X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3UzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91MzJfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl91NjRfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfZjE2X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YxNl96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X2YzMl9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMzJfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3MzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9zMzJfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfczY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3UzMl9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91MzJfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF91NjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfbSkpKQpzdmludDE2X3Qgc3ZjdnRfczE2X2YxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczE2X2YxNl94KSkpCnN2aW50MTZfdCBzdmN2dF9zMTZfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczE2X2YxNl96KSkpCnN2aW50MTZfdCBzdmN2dF9zMTZfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl9tKSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjE2X20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjE2X3gpKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjE2X3opKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX20pKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9mMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMzJfeCkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMzJfeikpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfbSkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX2Y2NF9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2Y2NF94KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2Y2NF96KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl9tKSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjE2X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjE2X3gpKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjE2X3opKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX20pKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9mMzJfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMzJfeCkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMzJfeikpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfbSkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X2Y2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2Y2NF94KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2Y2NF96KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTE2X2YxNl9tKSkpCnN2dWludDE2X3Qgc3ZjdnRfdTE2X2YxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UxNl9mMTZfeCkpKQpzdnVpbnQxNl90IHN2Y3Z0X3UxNl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MTZfZjE2X3opKSkKc3Z1aW50MTZfdCBzdmN2dF91MTZfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YxNl9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2YxNl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMTZfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjE2X3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YzMl9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2YzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMzJfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjMyX3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2Y2NF9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX2Y2NF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mNjRfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjY0X3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YxNl9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2YxNl9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMTZfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjE2X3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YzMl9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2YzMl9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMzJfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjMyX3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2Y2NF9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X2Y2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjY0X3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmRpdl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdl9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmRpdl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdl9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmRpdl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdl9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZkaXZfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZfbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkaXZfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZGl2X25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2X25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2X25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZGl2X25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2X25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2X25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2X2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2X3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2X3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmRpdnJfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmRpdnJfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2cl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkaXZyX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmRpdnJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2cl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZkaXZyX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmRpdnJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdnJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZGl2cl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkaXZyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdnJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdnJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZGl2cl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2cl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkaXZyX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdnJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdnJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl94KSkpCnN2aW50MzJfdCBzdmRpdnJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdnJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdnJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF96KSkpCnN2aW50NjRfdCBzdmRpdnJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZyX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZyX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZG90X25fczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fczY0KSkpCnN2aW50NjRfdCBzdmRvdF9uX3M2NChzdmludDY0X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X25fdTMyKSkpCnN2dWludDMyX3Qgc3Zkb3Rfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmRvdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X3MzMikpKQpzdmludDMyX3Qgc3Zkb3RfczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfczY0KSkpCnN2aW50NjRfdCBzdmRvdF9zNjQoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X3UzMikpKQpzdnVpbnQzMl90IHN2ZG90X3UzMihzdnVpbnQzMl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X3U2NCkpKQpzdnVpbnQ2NF90IHN2ZG90X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2ZG90X2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdmRvdF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3Zkb3RfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3RfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdmRvdF9sYW5lX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTgpKSkKc3Z1aW50OF90IHN2ZHVwX25fdTgodWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBfbl91MzIodWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZHVwX25fdTY0KHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmR1cF9uX3UxNih1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBfbl9zOChpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmR1cF9uX2Y2NChmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmR1cF9uX2YzMihmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNikpKQpzdmZsb2F0MTZfdCBzdmR1cF9uX2YxNihmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMikpKQpzdmludDMyX3Qgc3ZkdXBfbl9zMzIoaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczY0KSkpCnN2aW50NjRfdCBzdmR1cF9uX3M2NChpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZHVwX25fczE2KGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4X20pKSkKc3Z1aW50OF90IHN2ZHVwX25fdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZHVwX25fdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZHVwX25fdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZHVwX25fdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zOF9tKSkpCnN2aW50OF90IHN2ZHVwX25fczhfbShzdmludDhfdCwgc3Zib29sX3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfbl9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbl9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfbl9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZHVwX25fczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZHVwX25fczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczE2X20pKSkKc3ZpbnQxNl90IHN2ZHVwX25fczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYjgpKSkKc3Zib29sX3Qgc3ZkdXBfbl9iOChib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iMzIpKSkKc3Zib29sX3Qgc3ZkdXBfbl9iMzIoYm9vbCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYjY0KSkpCnN2Ym9vbF90IHN2ZHVwX25fYjY0KGJvb2wpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2IxNikpKQpzdmJvb2xfdCBzdmR1cF9uX2IxNihib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91OF94KSkpCnN2dWludDhfdCBzdmR1cF9uX3U4X3goc3Zib29sX3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkdXBfbl91MzJfeChzdmJvb2xfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkdXBfbl91NjRfeChzdmJvb2xfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZkdXBfbl91MTZfeChzdmJvb2xfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZkdXBfbl9zOF94KHN2Ym9vbF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX25fZjY0X3goc3Zib29sX3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbl9mMzJfeChzdmJvb2xfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmR1cF9uX2YxNl94KHN2Ym9vbF90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmR1cF9uX3MzMl94KHN2Ym9vbF90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkdXBfbl9zNjRfeChzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2ZHVwX25fczE2X3goc3Zib29sX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4X3opKSkKc3Z1aW50OF90IHN2ZHVwX25fdThfeihzdmJvb2xfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmR1cF9uX3UzMl96KHN2Ym9vbF90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmR1cF9uX3U2NF96KHN2Ym9vbF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmR1cF9uX3UxNl96KHN2Ym9vbF90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczhfeikpKQpzdmludDhfdCBzdmR1cF9uX3M4X3ooc3Zib29sX3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfbl9mNjRfeihzdmJvb2xfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmR1cF9uX2YzMl96KHN2Ym9vbF90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZHVwX25fZjE2X3ooc3Zib29sX3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZHVwX25fczMyX3ooc3Zib29sX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmR1cF9uX3M2NF96KHN2Ym9vbF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZkdXBfbl9zMTZfeihzdmJvb2xfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfdTgpKSkKc3Z1aW50OF90IHN2ZHVwX2xhbmVfdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmR1cF9sYW5lX3UzMihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBfbGFuZV91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2ZHVwX2xhbmVfdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zOCkpKQpzdmludDhfdCBzdmR1cF9sYW5lX3M4KHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfbGFuZV9mNjQoc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfbGFuZV9mMTYoc3ZmbG9hdDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwX2xhbmVfczMyKHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBfbGFuZV9zNjQoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdmR1cF9sYW5lX3MxNihzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBxX25fdTE2KHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2YxNikpKQpzdmZsb2F0MTZfdCBzdmR1cHFfbl9mMTYoZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZHVwcV9uX3MxNihpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBxX25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwcV9uX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJfdCwgZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwcV9uX3MzMihpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBxX25fdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmR1cHFfbl9mNjQoZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZHVwcV9uX3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTgpKSkKc3Z1aW50OF90IHN2ZHVwcV9uX3U4KHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9zOCkpKQpzdmludDhfdCBzdmR1cHFfbl9zOChpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iMTYpKSkKc3Zib29sX3Qgc3ZkdXBxX25fYjE2KGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iMzIpKSkKc3Zib29sX3Qgc3ZkdXBxX25fYjMyKGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iNjQpKSkKc3Zib29sX3Qgc3ZkdXBxX25fYjY0KGJvb2wsIGJvb2wpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iOCkpKQpzdmJvb2xfdCBzdmR1cHFfbl9iOChib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sLCBib29sKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTgpKSkKc3Z1aW50OF90IHN2ZHVwcV9sYW5lX3U4KHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmR1cHFfbGFuZV91MzIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdmR1cHFfbGFuZV91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdmR1cHFfbGFuZV91MTYoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9zOCkpKQpzdmludDhfdCBzdmR1cHFfbGFuZV9zOChzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBxX2xhbmVfZjY0KHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmR1cHFfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZHVwcV9sYW5lX2YxNihzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwcV9sYW5lX3MzMihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdmR1cHFfbGFuZV9zNjQoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZkdXBxX2xhbmVfczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9iX3opKSkKc3Zib29sX3Qgc3Zlb3JfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U4X20pKSkKc3Z1aW50OF90IHN2ZW9yX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZW9yX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZW9yX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZW9yX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zOF9tKSkpCnN2aW50OF90IHN2ZW9yX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZW9yX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZW9yX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczE2X20pKSkKc3ZpbnQxNl90IHN2ZW9yX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zlb3Jfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zlb3Jfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zlb3Jfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zlb3Jfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zlb3Jfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zlb3Jfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zlb3Jfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zlb3Jfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91OF96KSkpCnN2dWludDhfdCBzdmVvcl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmVvcl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmVvcl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmVvcl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczhfeikpKQpzdmludDhfdCBzdmVvcl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmVvcl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmVvcl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmVvcl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91OF9tKSkpCnN2dWludDhfdCBzdmVvcl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zlb3JfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZW9yX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmVvcl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zlb3JfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczMyX20pKSkKc3ZpbnQzMl90IHN2ZW9yX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M2NF9tKSkpCnN2aW50NjRfdCBzdmVvcl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zlb3JfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zlb3JfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZW9yX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmVvcl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zlb3JfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zOF94KSkpCnN2aW50OF90IHN2ZW9yX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MzMl94KSkpCnN2aW50MzJfdCBzdmVvcl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zlb3JfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczE2X3gpKSkKc3ZpbnQxNl90IHN2ZW9yX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U4X3opKSkKc3Z1aW50OF90IHN2ZW9yX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmVvcl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zlb3JfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MTZfeikpKQpzdnVpbnQxNl90IHN2ZW9yX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczhfeikpKQpzdmludDhfdCBzdmVvcl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMzJfeikpKQpzdmludDMyX3Qgc3Zlb3JfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZW9yX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3MxNl96KSkpCnN2aW50MTZfdCBzdmVvcl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfdTgpKSkKdWludDhfdCBzdmVvcnZfdTgoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91MzIpKSkKdWludDMyX3Qgc3Zlb3J2X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91NjQpKSkKdWludDY0X3Qgc3Zlb3J2X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl91MTYpKSkKdWludDE2X3Qgc3Zlb3J2X3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zOCkpKQppbnQ4X3Qgc3Zlb3J2X3M4KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zMzIpKSkKaW50MzJfdCBzdmVvcnZfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfczY0KSkpCmludDY0X3Qgc3Zlb3J2X3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3MxNikpKQppbnQxNl90IHN2ZW9ydl9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXhwYV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZleHBhX2Y2NChzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHBhX2YzMikpKQpzdmZsb2F0MzJfdCBzdmV4cGFfZjMyKHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4cGFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZXhwYV9mMTYoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3U4KSkpCnN2dWludDhfdCBzdmV4dF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF91MzIpKSkKc3Z1aW50MzJfdCBzdmV4dF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF91NjQpKSkKc3Z1aW50NjRfdCBzdmV4dF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF91MTYpKSkKc3Z1aW50MTZfdCBzdmV4dF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9zOCkpKQpzdmludDhfdCBzdmV4dF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZXh0X2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZXh0X2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZXh0X2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczMyKSkpCnN2aW50MzJfdCBzdmV4dF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczY0KSkpCnN2aW50NjRfdCBzdmV4dF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczE2KSkpCnN2aW50MTZfdCBzdmV4dF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl9tKSkpCnN2aW50MzJfdCBzdmV4dGJfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3M2NF9tKSkpCnN2aW50NjRfdCBzdmV4dGJfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MxNl9tKSkpCnN2aW50MTZfdCBzdmV4dGJfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl94KSkpCnN2aW50MzJfdCBzdmV4dGJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHRiX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczE2X3gpKSkKc3ZpbnQxNl90IHN2ZXh0Yl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3MzMl96KSkpCnN2aW50MzJfdCBzdmV4dGJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zNjRfeikpKQpzdmludDY0X3Qgc3ZleHRiX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczE2X3opKSkKc3ZpbnQxNl90IHN2ZXh0Yl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZleHRiX3UzMl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZleHRiX3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZleHRiX3UxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZleHRiX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZleHRiX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZleHRiX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZleHRiX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZleHRiX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZleHRiX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3MzMl9tKSkpCnN2aW50MzJfdCBzdmV4dGhfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3M2NF9tKSkpCnN2aW50NjRfdCBzdmV4dGhfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3MzMl94KSkpCnN2aW50MzJfdCBzdmV4dGhfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHRoX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczMyX3opKSkKc3ZpbnQzMl90IHN2ZXh0aF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3M2NF96KSkpCnN2aW50NjRfdCBzdmV4dGhfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZXh0aF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZXh0aF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZXh0aF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZXh0aF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91MzJfeikpKQpzdnVpbnQzMl90IHN2ZXh0aF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZXh0aF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d19zNjRfbSkpKQpzdmludDY0X3Qgc3ZleHR3X3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d19zNjRfeCkpKQpzdmludDY0X3Qgc3ZleHR3X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZXh0d19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZleHR3X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZleHR3X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZleHR3X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3U4KSkpCnN2dWludDhfdCBzdmdldDJfdTgoc3Z1aW50OHgyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3UzMikpKQpzdnVpbnQzMl90IHN2Z2V0Ml91MzIoc3Z1aW50MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml91NjQpKSkKc3Z1aW50NjRfdCBzdmdldDJfdTY0KHN2dWludDY0eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfdTE2KSkpCnN2dWludDE2X3Qgc3ZnZXQyX3UxNihzdnVpbnQxNngyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3M4KSkpCnN2aW50OF90IHN2Z2V0Ml9zOChzdmludDh4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZnZXQyX2Y2NChzdmZsb2F0NjR4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZnZXQyX2YzMihzdmZsb2F0MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZnZXQyX2YxNihzdmZsb2F0MTZ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zMzIpKSkKc3ZpbnQzMl90IHN2Z2V0Ml9zMzIoc3ZpbnQzMngyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3M2NCkpKQpzdmludDY0X3Qgc3ZnZXQyX3M2NChzdmludDY0eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfczE2KSkpCnN2aW50MTZfdCBzdmdldDJfczE2KHN2aW50MTZ4Ml90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M191OCkpKQpzdnVpbnQ4X3Qgc3ZnZXQzX3U4KHN2dWludDh4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M191MzIpKSkKc3Z1aW50MzJfdCBzdmdldDNfdTMyKHN2dWludDMyeDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTY0KSkpCnN2dWludDY0X3Qgc3ZnZXQzX3U2NChzdnVpbnQ2NHgzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3UxNikpKQpzdnVpbnQxNl90IHN2Z2V0M191MTYoc3Z1aW50MTZ4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zOCkpKQpzdmludDhfdCBzdmdldDNfczgoc3ZpbnQ4eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Z2V0M19mNjQoc3ZmbG9hdDY0eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Z2V0M19mMzIoc3ZmbG9hdDMyeDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Z2V0M19mMTYoc3ZmbG9hdDE2eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfczMyKSkpCnN2aW50MzJfdCBzdmdldDNfczMyKHN2aW50MzJ4M190LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zNjQpKSkKc3ZpbnQ2NF90IHN2Z2V0M19zNjQoc3ZpbnQ2NHgzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3MxNikpKQpzdmludDE2X3Qgc3ZnZXQzX3MxNihzdmludDE2eDNfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTgpKSkKc3Z1aW50OF90IHN2Z2V0NF91OChzdnVpbnQ4eDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTMyKSkpCnN2dWludDMyX3Qgc3ZnZXQ0X3UzMihzdnVpbnQzMng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3U2NCkpKQpzdnVpbnQ2NF90IHN2Z2V0NF91NjQoc3Z1aW50NjR4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF91MTYpKSkKc3Z1aW50MTZfdCBzdmdldDRfdTE2KHN2dWludDE2eDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfczgpKSkKc3ZpbnQ4X3Qgc3ZnZXQ0X3M4KHN2aW50OHg0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmdldDRfZjY0KHN2ZmxvYXQ2NHg0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmdldDRfZjMyKHN2ZmxvYXQzMng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2YxNikpKQpzdmZsb2F0MTZfdCBzdmdldDRfZjE2KHN2ZmxvYXQxNng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3MzMikpKQpzdmludDMyX3Qgc3ZnZXQ0X3MzMihzdmludDMyeDRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfczY0KSkpCnN2aW50NjRfdCBzdmdldDRfczY0KHN2aW50NjR4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9zMTYpKSkKc3ZpbnQxNl90IHN2Z2V0NF9zMTYoc3ZpbnQxNng0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF91OCkpKQpzdnVpbnQ4X3Qgc3ZpbmRleF91OCh1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmluZGV4X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2aW5kZXhfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfdTE2KSkpCnN2dWludDE2X3Qgc3ZpbmRleF91MTYodWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF9zOCkpKQpzdmludDhfdCBzdmluZGV4X3M4KGludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2aW5kZXhfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZpbmRleF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5kZXhfczE2KSkpCnN2aW50MTZfdCBzdmluZGV4X3MxNihpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fdTgpKSkKc3Z1aW50OF90IHN2aW5zcl9uX3U4KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2aW5zcl9uX3UzMihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2aW5zcl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3UxNikpKQpzdnVpbnQxNl90IHN2aW5zcl9uX3UxNihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3M4KSkpCnN2aW50OF90IHN2aW5zcl9uX3M4KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZpbnNyX25fZjY0KHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZpbnNyX25fZjMyKHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZpbnNyX25fZjE2KHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2aW5zcl9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2aW5zcl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2aW5zcl9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3U4KSkpCnVpbnQ4X3Qgc3ZsYXN0YV91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91MzIpKSkKdWludDMyX3Qgc3ZsYXN0YV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3U2NCkpKQp1aW50NjRfdCBzdmxhc3RhX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfdTE2KSkpCnVpbnQxNl90IHN2bGFzdGFfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9zOCkpKQppbnQ4X3Qgc3ZsYXN0YV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZsYXN0YV9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9mMzIpKSkKZmxvYXQzMl90IHN2bGFzdGFfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfZjE2KSkpCmZsb2F0MTZfdCBzdmxhc3RhX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3MzMikpKQppbnQzMl90IHN2bGFzdGFfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3M2NCkpKQppbnQ2NF90IHN2bGFzdGFfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3MxNikpKQppbnQxNl90IHN2bGFzdGFfczE2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3U4KSkpCnVpbnQ4X3Qgc3ZsYXN0Yl91OChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl91MzIpKSkKdWludDMyX3Qgc3ZsYXN0Yl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3U2NCkpKQp1aW50NjRfdCBzdmxhc3RiX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfdTE2KSkpCnVpbnQxNl90IHN2bGFzdGJfdTE2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zOCkpKQppbnQ4X3Qgc3ZsYXN0Yl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZsYXN0Yl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9mMzIpKSkKZmxvYXQzMl90IHN2bGFzdGJfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfZjE2KSkpCmZsb2F0MTZfdCBzdmxhc3RiX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3MzMikpKQppbnQzMl90IHN2bGFzdGJfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3M2NCkpKQppbnQ2NF90IHN2bGFzdGJfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3MxNikpKQppbnQxNl90IHN2bGFzdGJfczE2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZDFfdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3M4KSkpCnN2aW50OF90IHN2bGQxX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZDFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfczE2KSkpCnN2aW50MTZfdCBzdmxkMV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfdTY0YmFzZV9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9zMzJpbmRleF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfczMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfdTMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfdTMyaW5kZXhfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9zNjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfdTY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9zMzJvZmZzZXRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGQxX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkMV92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fczgpKSkKc3ZpbnQ4X3Qgc3ZsZDFfdm51bV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkMV92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMV92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3U4KSkpCnN2dWludDhfdCBzdmxkMXJxX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxcnFfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXJxX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFycV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3M4KSkpCnN2aW50OF90IHN2bGQxcnFfczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFycV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFycV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZDFycV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxcnFfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFycV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfczE2KSkpCnN2aW50MTZfdCBzdmxkMXJxX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2Jfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNiX3ZudW1fdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2Jfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNiX3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2Jfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkMXNiX3ZudW1fdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2Jfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2Jfdm51bV9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl92bnVtX3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkMXNiX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNiX3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxc2JfdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzYl9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxc2JfczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfczMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF92bnVtX3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfdm51bV91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfdm51bV9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfdm51bV9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X3ZudW1fczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc3dfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl92bnVtX3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxdWJfdm51bV91MTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfdm51bV9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGQxdWJfdm51bV9zMTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1Yl91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDF1Yl91MTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX3MxNikpKQpzdmludDE2X3Qgc3ZsZDF1Yl9zMTYoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3MzMmluZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzJpbmRleF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfdm51bV91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF92bnVtX3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX3ZudW1fczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d192bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfdm51bV91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X3ZudW1fczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d191NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3U4KSkpCnN2dWludDh4Ml90IHN2bGQyX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2bGQyX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZsZDJfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdTE2KSkpCnN2dWludDE2eDJfdCBzdmxkMl91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9zOCkpKQpzdmludDh4Ml90IHN2bGQyX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2Y2NCkpKQpzdmZsb2F0NjR4Ml90IHN2bGQyX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdmxkMl9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZsZDJfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3MzMikpKQpzdmludDMyeDJfdCBzdmxkMl9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3M2NCkpKQpzdmludDY0eDJfdCBzdmxkMl9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3MxNikpKQpzdmludDE2eDJfdCBzdmxkMl9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTgpKSkKc3Z1aW50OHgyX3Qgc3ZsZDJfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2bGQyX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV91NjQpKSkKc3Z1aW50NjR4Ml90IHN2bGQyX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2bGQyX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9zOCkpKQpzdmludDh4Ml90IHN2bGQyX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdmxkMl92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2YzMikpKQpzdmZsb2F0MzJ4Ml90IHN2bGQyX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZsZDJfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZsZDJfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczY0KSkpCnN2aW50NjR4Ml90IHN2bGQyX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3MxNikpKQpzdmludDE2eDJfdCBzdmxkMl92bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTgpKSkKc3Z1aW50OHgzX3Qgc3ZsZDNfdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZsZDNfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTY0KSkpCnN2dWludDY0eDNfdCBzdmxkM191NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM191MTYpKSkKc3Z1aW50MTZ4M190IHN2bGQzX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3M4KSkpCnN2aW50OHgzX3Qgc3ZsZDNfczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfZjY0KSkpCnN2ZmxvYXQ2NHgzX3Qgc3ZsZDNfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2bGQzX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdmxkM19mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfczMyKSkpCnN2aW50MzJ4M190IHN2bGQzX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfczY0KSkpCnN2aW50NjR4M190IHN2bGQzX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfczE2KSkpCnN2aW50MTZ4M190IHN2bGQzX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV91OCkpKQpzdnVpbnQ4eDNfdCBzdmxkM192bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZsZDNfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZsZDNfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3UxNikpKQpzdnVpbnQxNngzX3Qgc3ZsZDNfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3M4KSkpCnN2aW50OHgzX3Qgc3ZsZDNfdm51bV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2bGQzX3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZsZDNfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdmxkM192bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3MzMikpKQpzdmludDMyeDNfdCBzdmxkM192bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3ZsZDNfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fczE2KSkpCnN2aW50MTZ4M190IHN2bGQzX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91OCkpKQpzdnVpbnQ4eDRfdCBzdmxkNF91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTMyKSkpCnN2dWludDMyeDRfdCBzdmxkNF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91NjQpKSkKc3Z1aW50NjR4NF90IHN2bGQ0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3UxNikpKQpzdnVpbnQxNng0X3Qgc3ZsZDRfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfczgpKSkKc3ZpbnQ4eDRfdCBzdmxkNF9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9mNjQpKSkKc3ZmbG9hdDY0eDRfdCBzdmxkNF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZsZDRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2bGQ0X2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zMzIpKSkKc3ZpbnQzMng0X3Qgc3ZsZDRfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZsZDRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZsZDRfczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3U4KSkpCnN2dWludDh4NF90IHN2bGQ0X3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTMyKSkpCnN2dWludDMyeDRfdCBzdmxkNF92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTY0KSkpCnN2dWludDY0eDRfdCBzdmxkNF92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTE2KSkpCnN2dWludDE2eDRfdCBzdmxkNF92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczgpKSkKc3ZpbnQ4eDRfdCBzdmxkNF92bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NHg0X3Qgc3ZsZDRfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdmxkNF92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2bGQ0X3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczMyKSkpCnN2aW50MzJ4NF90IHN2bGQ0X3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3M2NCkpKQpzdmludDY0eDRfdCBzdmxkNF92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZsZDRfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdTgpKSkKc3Z1aW50OF90IHN2bGRmZjFfdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkZmYxX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczgpKSkKc3ZpbnQ4X3Qgc3ZsZGZmMV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkZmYxX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRmZjFfczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NGJhc2VfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9zMzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3MzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl9zMzJvZmZzZXRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfdTMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGRmZjFfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkZmYxX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGRmZjFfdm51bV9zOChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZGZmMV92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl92bnVtX3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2Jfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2Jfdm51bV91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMXNiX3ZudW1fdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZGZmMXNiX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl91MTYpKSkKc3Z1aW50MTZfdCBzdmxkZmYxc2JfdTE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNiX3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxc2JfczE2KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3MzMmluZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX3ZudW1fdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfdm51bV91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzaF92bnVtX3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X3ZudW1fdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc3dfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd192bnVtX3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd191NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9zMzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWJfdm51bV91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl92bnVtX3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMXViX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl92bnVtX3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfdm51bV9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZGZmMXViX3ZudW1fczE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX3UzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1Yl91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl91MTYpKSkKc3Z1aW50MTZfdCBzdmxkZmYxdWJfdTE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfczMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWJfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfczE2KSkpCnN2aW50MTZfdCBzdmxkZmYxdWJfczE2KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9zMzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3MzMmluZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmluZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMmluZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfczMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfdm51bV91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfdm51bV91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF92bnVtX3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX3ZudW1fczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfdm51bV9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3U4KSkpCnN2dWludDhfdCBzdmxkbmYxX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxX3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3M4KSkpCnN2aW50OF90IHN2bGRuZjFfczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG5mMV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG5mMV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZG5mMV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRuZjFfczMyKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfczE2KSkpCnN2aW50MTZfdCBzdmxkbmYxX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkbmYxX3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjFfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMV92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9zOCkpKQpzdmludDhfdCBzdmxkbmYxX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbmYxX3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG5mMV92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRuZjFfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMV92bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMV92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMV92bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMXNiX3ZudW1fdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjFzYl92bnVtX3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2Jfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbmYxc2Jfdm51bV91MTYoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxc2Jfdm51bV9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxc2Jfdm51bV9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkbmYxc2Jfdm51bV9zMTYoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFzYl91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjFzYl91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjFzYl91MTYoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNiX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXNiX3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2JfczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxc2JfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzYl9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjFzYl9zMTYoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMXNoX3ZudW1fdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxc2hfdm51bV91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzaF92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXNoX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjFzaF92bnVtX3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXNoX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFzaF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzaF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxc2hfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxc2hfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc2hfczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxc2hfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc3dfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxc3dfdm51bV91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFzd192bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXN3X3ZudW1fczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxc3dfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXN3X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXN3X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXN3X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMXViX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxdWJfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRuZjF1Yl92bnVtX3UxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxdWJfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXViX3ZudW1fczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRuZjF1Yl92bnVtX3MxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjF1Yl91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxdWJfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWJfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMXViX3UxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMXViX3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXViX3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXViX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMXViX3MxNihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG5mMXVoX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMXVoX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxdWhfdm51bV9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWhfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjF1aF92bnVtX3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1aF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbmYxdWhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjF1aF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdWhfczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxdWhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXVoX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXVoX3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1d192bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjF1d192bnVtX3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjF1d192bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMXV3X3ZudW1fczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMXV3X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRuZjF1d191NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxdXdfczY0KSkpCnN2aW50NjRfdCBzdmxkbmYxdXdfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG50MV91OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV91NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3UxNikpKQpzdnVpbnQxNl90IHN2bGRudDFfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9zOCkpKQpzdmludDhfdCBzdmxkbnQxX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRudDFfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRudDFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3MxNikpKQpzdmludDE2X3Qgc3ZsZG50MV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG50MV92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV92bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRudDFfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczgpKSkKc3ZpbnQ4X3Qgc3ZsZG50MV92bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRudDFfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkbnQxX3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRudDFfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3U4KSkpCnVpbnQ2NF90IHN2bGVuX3U4KHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3UzMikpKQp1aW50NjRfdCBzdmxlbl91MzIoc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3U2NCkpKQp1aW50NjRfdCBzdmxlbl91NjQoc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3UxNikpKQp1aW50NjRfdCBzdmxlbl91MTYoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3M4KSkpCnVpbnQ2NF90IHN2bGVuX3M4KHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fZjY0KSkpCnVpbnQ2NF90IHN2bGVuX2Y2NChzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2YzMikpKQp1aW50NjRfdCBzdmxlbl9mMzIoc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9mMTYpKSkKdWludDY0X3Qgc3ZsZW5fZjE2KHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fczMyKSkpCnVpbnQ2NF90IHN2bGVuX3MzMihzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9zNjQpKSkKdWludDY0X3Qgc3ZsZW5fczY0KHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3MxNikpKQp1aW50NjRfdCBzdmxlbl9zMTYoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzbF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzbF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczhfbSkpKQpzdmludDhfdCBzdmxzbF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bHNsX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91OF94KSkpCnN2dWludDhfdCBzdmxzbF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzbF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmxzbF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczhfeCkpKQpzdmludDhfdCBzdmxzbF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bHNsX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmxzbF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91OF96KSkpCnN2dWludDhfdCBzdmxzbF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmxzbF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzbF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczhfeikpKQpzdmludDhfdCBzdmxzbF9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zsc2xfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bHNsX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmxzbF9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNsX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzbF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc2xfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zOF9tKSkpCnN2aW50OF90IHN2bHNsX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M2NF9tKSkpCnN2aW50NjRfdCBzdmxzbF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczE2X20pKSkKc3ZpbnQxNl90IHN2bHNsX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91OF94KSkpCnN2dWludDhfdCBzdmxzbF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNsX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MzMl94KSkpCnN2aW50MzJfdCBzdmxzbF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bHNsX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U4X3opKSkKc3Z1aW50OF90IHN2bHNsX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc2xfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNsX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczhfeikpKQpzdmludDhfdCBzdmxzbF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zNjRfeikpKQpzdmludDY0X3Qgc3Zsc2xfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MxNl96KSkpCnN2aW50MTZfdCBzdmxzbF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczhfbSkpKQpzdmludDhfdCBzdmxzbF93aWRlX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91OF94KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zOF96KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91OF9tKSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczMyX20pKSkKc3ZpbnQzMl90IHN2bHNsX3dpZGVfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczE2X20pKSkKc3ZpbnQxNl90IHN2bHNsX3dpZGVfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfd2lkZV91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zOF94KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3MzMl94KSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3MxNl94KSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3U4X3opKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNsX3dpZGVfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfd2lkZV91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfczhfeikpKQpzdmludDhfdCBzdmxzbF93aWRlX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMzJfeikpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzcl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzcl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3Jfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zsc3Jfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3Jfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3U4X3opKSkKc3Z1aW50OF90IHN2bHNyX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNyX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bHNyX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNyX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3JfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNyX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzcl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc3JfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91OF94KSkpCnN2dWludDhfdCBzdmxzcl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3JfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNyX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzcl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U4X3opKSkKc3Z1aW50OF90IHN2bHNyX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc3JfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNyX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91OF96KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91OF9tKSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNyX3dpZGVfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3Jfd2lkZV91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc3Jfd2lkZV91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1hZF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWFkX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1hZF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWFkX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1hZF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYWRfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWFkX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91OF9tKSkpCnN2dWludDhfdCBzdm1hZF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWFkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWFkX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWFkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zOF9tKSkpCnN2aW50OF90IHN2bWFkX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1hZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWFkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYWRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bWFkX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYWRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYWRfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYWRfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtYWRfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWFkX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYWRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1hZF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYWRfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1hZF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1hZF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1hZF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczhfeikpKQpzdmludDhfdCBzdm1hZF9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtYWRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1hZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bWFkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1hZF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWFkX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1hZF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWFkX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1hZF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWFkX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYWRfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtYWRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWFkX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1hZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtYWRfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1hZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1hZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1hZF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U4X3gpKSkKc3Z1aW50OF90IHN2bWFkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWFkX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1hZF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYWRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zOF94KSkpCnN2aW50OF90IHN2bWFkX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtYWRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYWRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYWRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91OF96KSkpCnN2dWludDhfdCBzdm1hZF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1hZF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYWRfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MTZfeikpKQpzdnVpbnQxNl90IHN2bWFkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczhfeikpKQpzdmludDhfdCBzdm1hZF9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczMyX3opKSkKc3ZpbnQzMl90IHN2bWFkX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczY0X3opKSkKc3ZpbnQ2NF90IHN2bWFkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczE2X3opKSkKc3ZpbnQxNl90IHN2bWFkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heF9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heF9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heF9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1heF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zOF9tKSkpCnN2aW50OF90IHN2bWF4X25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWF4X25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWF4X25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWF4X25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczhfeCkpKQpzdmludDhfdCBzdm1heF9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1heF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1heF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1heF9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYXhfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtYXhfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtYXhfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtYXhfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91OF9tKSkpCnN2dWludDhfdCBzdm1heF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1heF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1heF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1heF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYXhfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYXhfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYXhfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYXhfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWF4X25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWF4X25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWF4X25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWF4X25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4X2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1heF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczhfbSkpKQpzdmludDhfdCBzdm1heF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYXhfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWF4X3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MxNl9tKSkpCnN2aW50MTZfdCBzdm1heF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zOF94KSkpCnN2aW50OF90IHN2bWF4X3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3MzMl94KSkpCnN2aW50MzJfdCBzdm1heF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYXhfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWF4X3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYXhfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczMyX3opKSkKc3ZpbnQzMl90IHN2bWF4X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M2NF96KSkpCnN2aW50NjRfdCBzdm1heF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtYXhfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWF4X3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1heF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYXhfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91OF94KSkpCnN2dWludDhfdCBzdm1heF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYXhfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWF4X3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1heF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U4X3opKSkKc3Z1aW50OF90IHN2bWF4X3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1heF91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYXhfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MTZfeikpKQpzdnVpbnQxNl90IHN2bWF4X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1fbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1fbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heG5tX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1fbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1heG5tX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heG5tX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjY0KSkpCmZsb2F0NjRfdCBzdm1heG5tdl9mNjQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjMyKSkpCmZsb2F0MzJfdCBzdm1heG5tdl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjE2KSkpCmZsb2F0MTZfdCBzdm1heG5tdl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtYXh2X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfZjMyKSkpCmZsb2F0MzJfdCBzdm1heHZfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9mMTYpKSkKZmxvYXQxNl90IHN2bWF4dl9mMTYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3M4KSkpCmludDhfdCBzdm1heHZfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3MzMikpKQppbnQzMl90IHN2bWF4dl9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zNjQpKSkKaW50NjRfdCBzdm1heHZfczY0KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfczE2KSkpCmludDE2X3Qgc3ZtYXh2X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3U4KSkpCnVpbnQ4X3Qgc3ZtYXh2X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTMyKSkpCnVpbnQzMl90IHN2bWF4dl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTY0KSkpCnVpbnQ2NF90IHN2bWF4dl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfdTE2KSkpCnVpbnQxNl90IHN2bWF4dl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWluX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWluX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWluX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWluX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWluX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWluX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWluX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWluX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWluX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtaW5fbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtaW5fbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtaW5fbl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtaW5fbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zOF94KSkpCnN2aW50OF90IHN2bWluX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWluX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWluX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWluX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczhfeikpKQpzdmludDhfdCBzdm1pbl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1pbl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1pbl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1pbl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U4X20pKSkKc3Z1aW50OF90IHN2bWluX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWluX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWluX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWluX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91OF94KSkpCnN2dWludDhfdCBzdm1pbl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1pbl9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1pbl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtaW5fbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtaW5fbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtaW5fbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtaW5fbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWluX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWluX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1pbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWluX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zOF9tKSkpCnN2aW50OF90IHN2bWluX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1pbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtaW5fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczE2X20pKSkKc3ZpbnQxNl90IHN2bWluX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtaW5fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWluX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M2NF94KSkpCnN2aW50NjRfdCBzdm1pbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtaW5fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczhfeikpKQpzdmludDhfdCBzdm1pbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtaW5fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWluX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MxNl96KSkpCnN2aW50MTZfdCBzdm1pbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91OF9tKSkpCnN2dWludDhfdCBzdm1pbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtaW5fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWluX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1pbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U4X3gpKSkKc3Z1aW50OF90IHN2bWluX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1pbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtaW5fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWluX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtaW5fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWluX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1pbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtaW5fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtaW5ubV9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbm5tX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mNjQpKSkKZmxvYXQ2NF90IHN2bWlubm12X2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mMzIpKSkKZmxvYXQzMl90IHN2bWlubm12X2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tdl9mMTYpKSkKZmxvYXQxNl90IHN2bWlubm12X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfZjY0KSkpCmZsb2F0NjRfdCBzdm1pbnZfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9mMzIpKSkKZmxvYXQzMl90IHN2bWludl9mMzIoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X2YxNikpKQpmbG9hdDE2X3Qgc3ZtaW52X2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczgpKSkKaW50OF90IHN2bWludl9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczMyKSkpCmludDMyX3Qgc3ZtaW52X3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3M2NCkpKQppbnQ2NF90IHN2bWludl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9zMTYpKSkKaW50MTZfdCBzdm1pbnZfczE2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTgpKSkKdWludDhfdCBzdm1pbnZfdTgoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl91MzIpKSkKdWludDMyX3Qgc3ZtaW52X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl91NjQpKSkKdWludDY0X3Qgc3ZtaW52X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl91MTYpKSkKdWludDE2X3Qgc3ZtaW52X3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxhX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sYV9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxhX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sYV9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtbGFfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxhX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sYV9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtbGFfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sYV9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sYV9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sYV9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczhfbSkpKQpzdmludDhfdCBzdm1sYV9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbGFfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1sYV9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWxhX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91OF94KSkpCnN2dWludDhfdCBzdm1sYV9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWxhX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxhX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxhX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zOF94KSkpCnN2aW50OF90IHN2bWxhX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sYV9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxhX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbGFfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWxhX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbGFfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtbGFfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbGFfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbGFfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWxhX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbGFfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sYV9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxhX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sYV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sYV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sYV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3U4X20pKSkKc3Z1aW50OF90IHN2bWxhX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWxhX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sYV91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbGFfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zOF9tKSkpCnN2aW50OF90IHN2bWxhX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbGFfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbGFfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbGFfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91OF94KSkpCnN2dWludDhfdCBzdm1sYV91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sYV91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtbGFfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxhX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczhfeCkpKQpzdmludDhfdCBzdm1sYV9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWxhX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxhX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxhX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtbGFfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbGFfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxhX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sYV91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbGFfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sYV9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M2NF96KSkpCnN2aW50NjRfdCBzdm1sYV9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sYV9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX2xhbmVfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdm1sYV9sYW5lX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfbl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxzX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sc19uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfbl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxzX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sc19uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtbHNfbl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxzX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sc19uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtbHNfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sc19uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sc19uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sc19uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczhfbSkpKQpzdmludDhfdCBzdm1sc19uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbHNfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1sc19uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczE2X20pKSkKc3ZpbnQxNl90IHN2bWxzX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91OF94KSkpCnN2dWludDhfdCBzdm1sc19uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWxzX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxzX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxzX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zOF94KSkpCnN2aW50OF90IHN2bWxzX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sc19uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxzX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbHNfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U4X3opKSkKc3Z1aW50OF90IHN2bWxzX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbHNfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtbHNfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtbHNfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbHNfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWxzX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbHNfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sc19uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxzX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sc19mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sc19mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sc19mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3U4X20pKSkKc3Z1aW50OF90IHN2bWxzX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MzJfbSkpKQpzdnVpbnQzMl90IHN2bWxzX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1sc191NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtbHNfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zOF9tKSkpCnN2aW50OF90IHN2bWxzX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbHNfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbHNfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbHNfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191OF94KSkpCnN2dWludDhfdCBzdm1sc191OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sc191MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtbHNfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxzX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczhfeCkpKQpzdmludDhfdCBzdm1sc19zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWxzX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWxzX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWxzX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtbHNfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbHNfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxzX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sc191MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbHNfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sc19zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M2NF96KSkpCnN2aW50NjRfdCBzdm1sc19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sc19zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX2xhbmVfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdm1sc19sYW5lX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92X2JfeikpKQpzdmJvb2xfdCBzdm1vdl9iX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1zYl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3Ztc2Jfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXNiX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1zYl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3Ztc2Jfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXNiX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1zYl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3Ztc2Jfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXNiX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91OF9tKSkpCnN2dWludDhfdCBzdm1zYl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXNiX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXNiX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXNiX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zOF9tKSkpCnN2aW50OF90IHN2bXNiX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1zYl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bXNiX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Ztc2Jfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bXNiX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Ztc2Jfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Ztc2Jfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Ztc2Jfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Ztc2Jfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bXNiX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Ztc2Jfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1zYl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Ztc2Jfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1zYl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1zYl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1zYl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczhfeikpKQpzdmludDhfdCBzdm1zYl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Ztc2Jfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1zYl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bXNiX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1zYl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXNiX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1zYl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXNiX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1zYl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXNiX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Ztc2JfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Ztc2JfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXNiX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1zYl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M4X20pKSkKc3ZpbnQ4X3Qgc3Ztc2JfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1zYl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1zYl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1zYl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U4X3gpKSkKc3Z1aW50OF90IHN2bXNiX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXNiX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1zYl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UxNl94KSkpCnN2dWludDE2X3Qgc3Ztc2JfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zOF94KSkpCnN2aW50OF90IHN2bXNiX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zMzJfeCkpKQpzdmludDMyX3Qgc3Ztc2JfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zNjRfeCkpKQpzdmludDY0X3Qgc3Ztc2JfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zMTZfeCkpKQpzdmludDE2X3Qgc3Ztc2JfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91OF96KSkpCnN2dWludDhfdCBzdm1zYl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1zYl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3U2NF96KSkpCnN2dWludDY0X3Qgc3Ztc2JfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MTZfeikpKQpzdnVpbnQxNl90IHN2bXNiX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczhfeikpKQpzdmludDhfdCBzdm1zYl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczMyX3opKSkKc3ZpbnQzMl90IHN2bXNiX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczY0X3opKSkKc3ZpbnQ2NF90IHN2bXNiX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczE2X3opKSkKc3ZpbnQxNl90IHN2bXNiX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm11bF9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bF9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm11bF9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bF9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm11bF9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bF9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91OF9tKSkpCnN2dWludDhfdCBzdm11bF9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm11bF9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczhfbSkpKQpzdmludDhfdCBzdm11bF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm11bF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm11bF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm11bF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bXVsX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXVsX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zOF94KSkpCnN2aW50OF90IHN2bXVsX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2bXVsX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtdWxfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVsX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVsX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVsX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXVsX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtdWxfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zOF9tKSkpCnN2aW50OF90IHN2bXVsX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MzMl9tKSkpCnN2aW50MzJfdCBzdm11bF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczE2X20pKSkKc3ZpbnQxNl90IHN2bXVsX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U4X3gpKSkKc3Z1aW50OF90IHN2bXVsX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtdWxfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczhfeCkpKQpzdmludDhfdCBzdm11bF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtdWxfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91OF96KSkpCnN2dWludDhfdCBzdm11bF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm11bF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbGFuZV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bXVsX2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdm11bF9sYW5lX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczhfbSkpKQpzdmludDhfdCBzdm11bGhfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsaF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxoX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm11bGhfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczhfeCkpKQpzdmludDhfdCBzdm11bGhfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsaF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtdWxoX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bGhfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczhfeikpKQpzdmludDhfdCBzdm11bGhfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsaF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtdWxoX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm11bGhfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bGhfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXVsaF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtdWxoX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bGhfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsaF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtdWxoX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxoX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm11bGhfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXVsaF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxoX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxoX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtdWxoX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxoX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxoX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zOF94KSkpCnN2aW50OF90IHN2bXVsaF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsaF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsaF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczE2X3gpKSkKc3ZpbnQxNl90IHN2bXVsaF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczhfeikpKQpzdmludDhfdCBzdm11bGhfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bGhfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bGhfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MxNl96KSkpCnN2aW50MTZfdCBzdm11bGhfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsaF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXVsaF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXVsaF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsaF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91OF94KSkpCnN2dWludDhfdCBzdm11bGhfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bGhfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm11bGhfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm11bGhfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxoX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxoX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxoX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxoX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm11bHhfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXVseF9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm11bHhfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXVseF9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bHhfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm11bHhfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVseF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXVseF9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVseF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXVseF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVseF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXVseF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVseF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXVseF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYW5kX2JfeikpKQpzdmJvb2xfdCBzdm5hbmRfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5lZ19mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZuZWdfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bmVnX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5lZ19mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5lZ19mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5lZ19mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5lZ19mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5lZ19mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5lZ19mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zOF9tKSkpCnN2aW50OF90IHN2bmVnX3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MzMl9tKSkpCnN2aW50MzJfdCBzdm5lZ19zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfbSkpKQpzdmludDY0X3Qgc3ZuZWdfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczE2X20pKSkKc3ZpbnQxNl90IHN2bmVnX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZuZWdfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMzJfeCkpKQpzdmludDMyX3Qgc3ZuZWdfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M2NF94KSkpCnN2aW50NjRfdCBzdm5lZ19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczE2X3gpKSkKc3ZpbnQxNl90IHN2bmVnX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zOF96KSkpCnN2aW50OF90IHN2bmVnX3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczMyX3opKSkKc3ZpbnQzMl90IHN2bmVnX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfeikpKQpzdmludDY0X3Qgc3ZuZWdfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl96KSkpCnN2aW50MTZfdCBzdm5lZ19zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tYWRfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tYWRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1hZF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tYWRfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWFkX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tbGFfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tbGFfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sYV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tbGFfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxhX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tbHNfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tbHNfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1sc19mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tbHNfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubWxzX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX25fZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX25fZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX25fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX25fZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX25fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX25fZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5tc2JfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm5tc2JfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bm1zYl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm5tc2JfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZubXNiX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3JfYl96KSkpCnN2Ym9vbF90IHN2bm9yX2JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfYl96KSkpCnN2Ym9vbF90IHN2bm90X2JfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91OF9tKSkpCnN2dWludDhfdCBzdm5vdF91OF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zub3RfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bm90X3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm5vdF91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M4X20pKSkKc3ZpbnQ4X3Qgc3Zub3RfczhfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczMyX20pKSkKc3ZpbnQzMl90IHN2bm90X3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF9tKSkpCnN2aW50NjRfdCBzdm5vdF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zub3RfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zub3RfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm5vdF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U2NF94KSkpCnN2dWludDY0X3Qgc3Zub3RfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bm90X3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczhfeCkpKQpzdmludDhfdCBzdm5vdF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MzMl94KSkpCnN2aW50MzJfdCBzdm5vdF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bm90X3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMTZfeCkpKQpzdmludDE2X3Qgc3Zub3RfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U4X3opKSkKc3Z1aW50OF90IHN2bm90X3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UzMl96KSkpCnN2dWludDMyX3Qgc3Zub3RfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2bm90X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm5vdF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M4X3opKSkKc3ZpbnQ4X3Qgc3Zub3RfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMzJfeikpKQpzdmludDMyX3Qgc3Zub3RfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF96KSkpCnN2aW50NjRfdCBzdm5vdF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczE2X3opKSkKc3ZpbnQxNl90IHN2bm90X3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ybl9iX3opKSkKc3Zib29sX3Qgc3Zvcm5fYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9iX3opKSkKc3Zib29sX3Qgc3ZvcnJfYl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U4X20pKSkKc3Z1aW50OF90IHN2b3JyX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2b3JyX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2b3JyX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2b3JyX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zOF9tKSkpCnN2aW50OF90IHN2b3JyX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2b3JyX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2b3JyX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2b3JyX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZvcnJfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZvcnJfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZvcnJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZvcnJfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZvcnJfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZvcnJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZvcnJfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZvcnJfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91OF96KSkpCnN2dWludDhfdCBzdm9ycl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm9ycl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm9ycl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm9ycl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczhfeikpKQpzdmludDhfdCBzdm9ycl9uX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm9ycl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm9ycl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm9ycl9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91OF9tKSkpCnN2dWludDhfdCBzdm9ycl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZvcnJfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2b3JyX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm9ycl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZvcnJfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczMyX20pKSkKc3ZpbnQzMl90IHN2b3JyX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M2NF9tKSkpCnN2aW50NjRfdCBzdm9ycl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZvcnJfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZvcnJfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MzJfeCkpKQpzdnVpbnQzMl90IHN2b3JyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm9ycl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZvcnJfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zOF94KSkpCnN2aW50OF90IHN2b3JyX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MzMl94KSkpCnN2aW50MzJfdCBzdm9ycl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZvcnJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2b3JyX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U4X3opKSkKc3Z1aW50OF90IHN2b3JyX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm9ycl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZvcnJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MTZfeikpKQpzdnVpbnQxNl90IHN2b3JyX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczhfeikpKQpzdmludDhfdCBzdm9ycl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMzJfeikpKQpzdmludDMyX3Qgc3ZvcnJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczY0X3opKSkKc3ZpbnQ2NF90IHN2b3JyX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3MxNl96KSkpCnN2aW50MTZfdCBzdm9ycl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl91OCkpKQp1aW50OF90IHN2b3J2X3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl91MzIpKSkKdWludDMyX3Qgc3ZvcnZfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTY0KSkpCnVpbnQ2NF90IHN2b3J2X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3UxNikpKQp1aW50MTZfdCBzdm9ydl91MTYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zOCkpKQppbnQ4X3Qgc3ZvcnZfczgoc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfczMyKSkpCmludDMyX3Qgc3ZvcnZfczMyKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zNjQpKSkKaW50NjRfdCBzdm9ydl9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3MxNikpKQppbnQxNl90IHN2b3J2X3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwZmFsc2VfYikpKQpzdmJvb2xfdCBzdnBmYWxzZV9iKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cGZpcnN0X2IpKSkKc3Zib29sX3Qgc3ZwZmlyc3RfYihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBuZXh0X2I4KSkpCnN2Ym9vbF90IHN2cG5leHRfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbmV4dF9iMzIpKSkKc3Zib29sX3Qgc3ZwbmV4dF9iMzIoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbmV4dF9iNjQpKSkKc3Zib29sX3Qgc3ZwbmV4dF9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbmV4dF9iMTYpKSkKc3Zib29sX3Qgc3ZwbmV4dF9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiKSkpCnZvaWQgc3ZwcmZiKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTMyYmFzZSkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTMyYmFzZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl91NjRiYXNlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl91MzJiYXNlX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91NjRiYXNlX29mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfczMyb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9zMzJvZmZzZXQoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3UzMm9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTMyb2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDMyX3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfczY0b2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9zNjRvZmZzZXQoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3U2NG9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfdTY0b2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl92bnVtKSkpCnZvaWQgc3ZwcmZiX3ZudW0oc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkKSkpCnZvaWQgc3ZwcmZkKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTMyYmFzZSkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfdTMyYmFzZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl91NjRiYXNlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX3UzMmJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTY0YmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfdTY0YmFzZV9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfczMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3UzMmluZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl91MzJpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZkX2dhdGhlcl9zNjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX3U2NGluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF92bnVtKSkpCnZvaWQgc3ZwcmZkX3ZudW0oc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoKSkpCnZvaWQgc3ZwcmZoKHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTMyYmFzZSkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfdTMyYmFzZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl91NjRiYXNlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX3UzMmJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTY0YmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfdTY0YmFzZV9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfczMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3UzMmluZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl91MzJpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZoX2dhdGhlcl9zNjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX3U2NGluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF92bnVtKSkpCnZvaWQgc3ZwcmZoX3ZudW0oc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3KSkpCnZvaWQgc3ZwcmZ3KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTMyYmFzZSkpKQp2b2lkIHN2cHJmd19nYXRoZXJfdTMyYmFzZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl91NjRiYXNlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3UzMmJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX3UzMmJhc2VfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTY0YmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfdTY0YmFzZV9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfczMyaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3UzMmluZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl91MzJpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3M2NGluZGV4KSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcl9zNjRpbmRleChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX3U2NGluZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd192bnVtKSkpCnZvaWQgc3ZwcmZ3X3ZudW0oc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdGVzdF9hbnkpKSkKYm9vbCBzdnB0ZXN0X2FueShzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnB0ZXN0X2ZpcnN0KSkpCmJvb2wgc3ZwdGVzdF9maXJzdChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnB0ZXN0X2xhc3QpKSkKYm9vbCBzdnB0ZXN0X2xhc3Qoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9wYXRfYjgpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9wYXRfYjgoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnB0cnVlX3BhdF9iMzIpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9wYXRfYjMyKGVudW0gc3ZwYXR0ZXJuKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9wYXRfYjY0KSkpCnN2Ym9vbF90IHN2cHRydWVfcGF0X2I2NChlbnVtIHN2cGF0dGVybik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHRydWVfcGF0X2IxNikpKQpzdmJvb2xfdCBzdnB0cnVlX3BhdF9iMTYoZW51bSBzdnBhdHRlcm4pOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnB0cnVlX2I4KSkpCnN2Ym9vbF90IHN2cHRydWVfYjgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9iMzIpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9iMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9iNjQpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9iNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwdHJ1ZV9iMTYpKSkKc3Zib29sX3Qgc3ZwdHJ1ZV9iMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxYWRkX25fczgoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxYWRkX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxYWRkX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxYWRkX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4KSkpCnN2dWludDhfdCBzdnFhZGRfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnFhZGRfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnFhZGRfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnFhZGRfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczgpKSkKc3ZpbnQ4X3Qgc3ZxYWRkX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMzIpKSkKc3ZpbnQzMl90IHN2cWFkZF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczY0KSkpCnN2aW50NjRfdCBzdnFhZGRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MxNikpKQpzdmludDE2X3Qgc3ZxYWRkX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91OCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMikpKQpzdnVpbnQzMl90IHN2cWFkZF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjQpKSkKc3Z1aW50NjRfdCBzdnFhZGRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9uX3MzMikpKQppbnQzMl90IHN2cWRlY2Jfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fczY0KSkpCmludDY0X3Qgc3ZxZGVjYl9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Jfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjYl9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2Jfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNiX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2JfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2JfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2JfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNiX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9uX3MzMikpKQppbnQzMl90IHN2cWRlY2Rfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fczY0KSkpCmludDY0X3Qgc3ZxZGVjZF9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjZF9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2Rfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRlY2RfczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWRlY2RfdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNkX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2RfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2RfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNkX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfczY0KSkpCnN2aW50NjRfdCBzdnFkZWNkX3BhdF9zNjQoc3ZpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF91NjQpKSkKc3Z1aW50NjRfdCBzdnFkZWNkX3BhdF91NjQoc3Z1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3MzMikpKQppbnQzMl90IHN2cWRlY2hfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX25fczY0KSkpCmludDY0X3Qgc3ZxZGVjaF9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjaF9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2hfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRlY2hfczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3UxNikpKQpzdnVpbnQxNl90IHN2cWRlY2hfdTE2KHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNoX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2hfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2hfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNoX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNoX3BhdF9zMTYoc3ZpbnQxNl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNoX3BhdF91MTYoc3Z1aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iOCkpKQppbnQzMl90IHN2cWRlY3Bfbl9zMzJfYjgoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczMyX2IzMikpKQppbnQzMl90IHN2cWRlY3Bfbl9zMzJfYjMyKGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iNjQpKSkKaW50MzJfdCBzdnFkZWNwX25fczMyX2I2NChpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zMzJfYjE2KSkpCmludDMyX3Qgc3ZxZGVjcF9uX3MzMl9iMTYoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2I4KSkpCmludDY0X3Qgc3ZxZGVjcF9uX3M2NF9iOChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zNjRfYjMyKSkpCmludDY0X3Qgc3ZxZGVjcF9uX3M2NF9iMzIoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2I2NCkpKQppbnQ2NF90IHN2cWRlY3Bfbl9zNjRfYjY0KGludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iMTYpKSkKaW50NjRfdCBzdnFkZWNwX25fczY0X2IxNihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91MzJfYjgpKSkKdWludDMyX3Qgc3ZxZGVjcF9uX3UzMl9iOCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2IzMikpKQp1aW50MzJfdCBzdnFkZWNwX25fdTMyX2IzMih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2I2NCkpKQp1aW50MzJfdCBzdnFkZWNwX25fdTMyX2I2NCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2IxNikpKQp1aW50MzJfdCBzdnFkZWNwX25fdTMyX2IxNih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTY0X2I4KSkpCnVpbnQ2NF90IHN2cWRlY3Bfbl91NjRfYjgodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iMzIpKSkKdWludDY0X3Qgc3ZxZGVjcF9uX3U2NF9iMzIodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iNjQpKSkKdWludDY0X3Qgc3ZxZGVjcF9uX3U2NF9iNjQodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iMTYpKSkKdWludDY0X3Qgc3ZxZGVjcF9uX3U2NF9iMTYodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRlY3BfczMyKHN2aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3M2NCkpKQpzdmludDY0X3Qgc3ZxZGVjcF9zNjQoc3ZpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNwX3MxNihzdmludDE2X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF91MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWNwX3UzMihzdnVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfdTY0KSkpCnN2dWludDY0X3Qgc3ZxZGVjcF91NjQoc3Z1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3UxNikpKQpzdnVpbnQxNl90IHN2cWRlY3BfdTE2KHN2dWludDE2X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3MzMikpKQppbnQzMl90IHN2cWRlY3dfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X25fczY0KSkpCmludDY0X3Qgc3ZxZGVjd19uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjd19uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY3dfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19zMzIpKSkKc3ZpbnQzMl90IHN2cWRlY3dfczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3UzMikpKQpzdnVpbnQzMl90IHN2cWRlY3dfdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWN3X3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY3dfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY3dfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWN3X3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfczMyKSkpCnN2aW50MzJfdCBzdnFkZWN3X3BhdF9zMzIoc3ZpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF91MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWN3X3BhdF91MzIoc3Z1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9uX3MzMikpKQppbnQzMl90IHN2cWluY2Jfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fczY0KSkpCmludDY0X3Qgc3ZxaW5jYl9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Jfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jYl9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2Jfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNiX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2JfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2JfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2JfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNiX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9uX3MzMikpKQppbnQzMl90IHN2cWluY2Rfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fczY0KSkpCmludDY0X3Qgc3ZxaW5jZF9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jZF9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2Rfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWluY2RfczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWluY2RfdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNkX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2RfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2RfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNkX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfczY0KSkpCnN2aW50NjRfdCBzdnFpbmNkX3BhdF9zNjQoc3ZpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF91NjQpKSkKc3Z1aW50NjRfdCBzdnFpbmNkX3BhdF91NjQoc3Z1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3MzMikpKQppbnQzMl90IHN2cWluY2hfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX25fczY0KSkpCmludDY0X3Qgc3ZxaW5jaF9uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jaF9uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2hfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9zMTYpKSkKc3ZpbnQxNl90IHN2cWluY2hfczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3UxNikpKQpzdnVpbnQxNl90IHN2cWluY2hfdTE2KHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNoX3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2hfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2hfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNoX3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNoX3BhdF9zMTYoc3ZpbnQxNl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNoX3BhdF91MTYoc3Z1aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iOCkpKQppbnQzMl90IHN2cWluY3Bfbl9zMzJfYjgoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczMyX2IzMikpKQppbnQzMl90IHN2cWluY3Bfbl9zMzJfYjMyKGludDMyX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iNjQpKSkKaW50MzJfdCBzdnFpbmNwX25fczMyX2I2NChpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zMzJfYjE2KSkpCmludDMyX3Qgc3ZxaW5jcF9uX3MzMl9iMTYoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2I4KSkpCmludDY0X3Qgc3ZxaW5jcF9uX3M2NF9iOChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zNjRfYjMyKSkpCmludDY0X3Qgc3ZxaW5jcF9uX3M2NF9iMzIoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2I2NCkpKQppbnQ2NF90IHN2cWluY3Bfbl9zNjRfYjY0KGludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iMTYpKSkKaW50NjRfdCBzdnFpbmNwX25fczY0X2IxNihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91MzJfYjgpKSkKdWludDMyX3Qgc3ZxaW5jcF9uX3UzMl9iOCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2IzMikpKQp1aW50MzJfdCBzdnFpbmNwX25fdTMyX2IzMih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2I2NCkpKQp1aW50MzJfdCBzdnFpbmNwX25fdTMyX2I2NCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2IxNikpKQp1aW50MzJfdCBzdnFpbmNwX25fdTMyX2IxNih1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTY0X2I4KSkpCnVpbnQ2NF90IHN2cWluY3Bfbl91NjRfYjgodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iMzIpKSkKdWludDY0X3Qgc3ZxaW5jcF9uX3U2NF9iMzIodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iNjQpKSkKdWludDY0X3Qgc3ZxaW5jcF9uX3U2NF9iNjQodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iMTYpKSkKdWludDY0X3Qgc3ZxaW5jcF9uX3U2NF9iMTYodWludDY0X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9zMzIpKSkKc3ZpbnQzMl90IHN2cWluY3BfczMyKHN2aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3M2NCkpKQpzdmludDY0X3Qgc3ZxaW5jcF9zNjQoc3ZpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNwX3MxNihzdmludDE2X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF91MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmNwX3UzMihzdnVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfdTY0KSkpCnN2dWludDY0X3Qgc3ZxaW5jcF91NjQoc3Z1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3UxNikpKQpzdnVpbnQxNl90IHN2cWluY3BfdTE2KHN2dWludDE2X3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3MzMikpKQppbnQzMl90IHN2cWluY3dfbl9zMzIoaW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X25fczY0KSkpCmludDY0X3Qgc3ZxaW5jd19uX3M2NChpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jd19uX3UzMih1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY3dfbl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19zMzIpKSkKc3ZpbnQzMl90IHN2cWluY3dfczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3UzMikpKQpzdnVpbnQzMl90IHN2cWluY3dfdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmN3X3BhdF9uX3MzMihpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY3dfcGF0X25fczY0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY3dfcGF0X25fdTMyKHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmN3X3BhdF9uX3U2NCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfczMyKSkpCnN2aW50MzJfdCBzdnFpbmN3X3BhdF9zMzIoc3ZpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF91MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmN3X3BhdF91MzIoc3Z1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczgpKSkKc3ZpbnQ4X3Qgc3Zxc3ViX25fczgoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMikpKQpzdmludDMyX3Qgc3Zxc3ViX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zxc3ViX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNikpKQpzdmludDE2X3Qgc3Zxc3ViX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4KSkpCnN2dWludDhfdCBzdnFzdWJfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnFzdWJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnFzdWJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnFzdWJfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczgpKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMzIpKSkKc3ZpbnQzMl90IHN2cXN1Yl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczY0KSkpCnN2aW50NjRfdCBzdnFzdWJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MxNikpKQpzdmludDE2X3Qgc3Zxc3ViX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91OCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMikpKQpzdnVpbnQzMl90IHN2cXN1Yl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjQpKSkKc3Z1aW50NjRfdCBzdnFzdWJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U4X20pKSkKc3Z1aW50OF90IHN2cmJpdF91OF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmJpdF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmJpdF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmJpdF91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF9tKSkpCnN2aW50OF90IHN2cmJpdF9zOF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczMyX20pKSkKc3ZpbnQzMl90IHN2cmJpdF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmJpdF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczE2X20pKSkKc3ZpbnQxNl90IHN2cmJpdF9zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZyYml0X3U4X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmJpdF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmJpdF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmJpdF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF94KSkpCnN2aW50OF90IHN2cmJpdF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyYml0X3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmJpdF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MxNl94KSkpCnN2aW50MTZfdCBzdnJiaXRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91OF96KSkpCnN2dWludDhfdCBzdnJiaXRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyYml0X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyYml0X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3UxNl96KSkpCnN2dWludDE2X3Qgc3ZyYml0X3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M4X3opKSkKc3ZpbnQ4X3Qgc3ZyYml0X3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MzMl96KSkpCnN2aW50MzJfdCBzdnJiaXRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zNjRfeikpKQpzdmludDY0X3Qgc3ZyYml0X3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczE2X3opKSkKc3ZpbnQxNl90IHN2cmJpdF9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZGZmcikpKQpzdmJvb2xfdCBzdnJkZmZyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmRmZnJfeikpKQpzdmJvb2xfdCBzdnJkZmZyX3ooc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJlY3BlX2Y2NChzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cmVjcGVfZjMyKHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNwZV9mMTYoc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJlY3BzX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJlY3BzX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2YxNikpKQpzdmZsb2F0MTZfdCBzdnJlY3BzX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJlY3B4X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJlY3B4X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJlY3B4X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91OCkpKQpzdnVpbnQ4X3Qgc3ZyZXZfdTgoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTMyKSkpCnN2dWludDMyX3Qgc3ZyZXZfdTMyKHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91NjQpKSkKc3Z1aW50NjRfdCBzdnJldl91NjQoc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3UxNikpKQpzdnVpbnQxNl90IHN2cmV2X3UxNihzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfczgpKSkKc3ZpbnQ4X3Qgc3ZyZXZfczgoc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZyZXZfZjY0KHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cmV2X2YzMihzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2YxNikpKQpzdmZsb2F0MTZfdCBzdnJldl9mMTYoc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zMzIpKSkKc3ZpbnQzMl90IHN2cmV2X3MzMihzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zNjQpKSkKc3ZpbnQ2NF90IHN2cmV2X3M2NChzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9zMTYpKSkKc3ZpbnQxNl90IHN2cmV2X3MxNihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9iOCkpKQpzdmJvb2xfdCBzdnJldl9iOChzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2IzMikpKQpzdmJvb2xfdCBzdnJldl9iMzIoc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9iNjQpKSkKc3Zib29sX3Qgc3ZyZXZfYjY0KHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfYjE2KSkpCnN2Ym9vbF90IHN2cmV2X2IxNihzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmV2Yl91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmV2Yl91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmV2Yl91MTZfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyZXZiX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyZXZiX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZyZXZiX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmV2Yl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmV2Yl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmV2Yl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyZXZiX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2Yl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3MxNl94KSkpCnN2aW50MTZfdCBzdnJldmJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2cmV2Yl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2Yl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2cmV2Yl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfeikpKQpzdmludDMyX3Qgc3ZyZXZiX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmV2Yl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3MxNl96KSkpCnN2aW50MTZfdCBzdnJldmJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmV2aF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmV2aF91NjRfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyZXZoX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyZXZoX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmV2aF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmV2aF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyZXZoX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2aF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyZXZoX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyZXZoX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3MzMl96KSkpCnN2aW50MzJfdCBzdnJldmhfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zNjRfeikpKQpzdmludDY0X3Qgc3ZyZXZoX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldndfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2d19zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldndfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2d19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyZXZ3X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF96KSkpCnN2aW50NjRfdCBzdnJldndfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludGFfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludGFfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludGFfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludGlfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludGlfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludGlfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludG1fZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludG1fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludG1fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludG5fZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludG5fZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludG5fZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHBfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHBfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHBfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHhfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHhfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHhfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHpfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHpfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHpfZjMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJzcXJ0ZV9mNjQoc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Zyc3FydGVfZjMyKHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cnNxcnRlX2YxNihzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJzcXJ0c19mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydHNfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cnNxcnRzX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0c19mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Zyc3FydHNfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzY2FsZV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c2NhbGVfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNjYWxlX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2IpKSkKc3Zib29sX3Qgc3ZzZWxfYihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfdTgpKSkKc3Z1aW50OF90IHN2c2VsX3U4KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3UzMikpKQpzdnVpbnQzMl90IHN2c2VsX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2VsX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3UxNikpKQpzdnVpbnQxNl90IHN2c2VsX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3M4KSkpCnN2aW50OF90IHN2c2VsX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZzZWxfZjY0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZzZWxfZjMyKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZzZWxfZjE2KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9zMzIpKSkKc3ZpbnQzMl90IHN2c2VsX3MzMihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9zNjQpKSkKc3ZpbnQ2NF90IHN2c2VsX3M2NChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF9zMTYpKSkKc3ZpbnQxNl90IHN2c2VsX3MxNihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfdTgpKSkKc3Z1aW50OHgyX3Qgc3ZzZXQyX3U4KHN2dWludDh4Ml90LCB1aW50NjRfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3UzMikpKQpzdnVpbnQzMngyX3Qgc3ZzZXQyX3UzMihzdnVpbnQzMngyX3QsIHVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3ZzZXQyX3U2NChzdnVpbnQ2NHgyX3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3UxNikpKQpzdnVpbnQxNngyX3Qgc3ZzZXQyX3UxNihzdnVpbnQxNngyX3QsIHVpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3M4KSkpCnN2aW50OHgyX3Qgc3ZzZXQyX3M4KHN2aW50OHgyX3QsIHVpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdnNldDJfZjY0KHN2ZmxvYXQ2NHgyX3QsIHVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdnNldDJfZjMyKHN2ZmxvYXQzMngyX3QsIHVpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdnNldDJfZjE2KHN2ZmxvYXQxNngyX3QsIHVpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZzZXQyX3MzMihzdmludDMyeDJfdCwgdWludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZzZXQyX3M2NChzdmludDY0eDJfdCwgdWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZzZXQyX3MxNihzdmludDE2eDJfdCwgdWludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M191OCkpKQpzdnVpbnQ4eDNfdCBzdnNldDNfdTgoc3Z1aW50OHgzX3QsIHVpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfdTMyKSkpCnN2dWludDMyeDNfdCBzdnNldDNfdTMyKHN2dWludDMyeDNfdCwgdWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfdTY0KSkpCnN2dWludDY0eDNfdCBzdnNldDNfdTY0KHN2dWludDY0eDNfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfdTE2KSkpCnN2dWludDE2eDNfdCBzdnNldDNfdTE2KHN2dWludDE2eDNfdCwgdWludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfczgpKSkKc3ZpbnQ4eDNfdCBzdnNldDNfczgoc3ZpbnQ4eDNfdCwgdWludDY0X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2c2V0M19mNjQoc3ZmbG9hdDY0eDNfdCwgdWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2YzMikpKQpzdmZsb2F0MzJ4M190IHN2c2V0M19mMzIoc3ZmbG9hdDMyeDNfdCwgdWludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2c2V0M19mMTYoc3ZmbG9hdDE2eDNfdCwgdWludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3MzMikpKQpzdmludDMyeDNfdCBzdnNldDNfczMyKHN2aW50MzJ4M190LCB1aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3M2NCkpKQpzdmludDY0eDNfdCBzdnNldDNfczY0KHN2aW50NjR4M190LCB1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3MxNikpKQpzdmludDE2eDNfdCBzdnNldDNfczE2KHN2aW50MTZ4M190LCB1aW50NjRfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3U4KSkpCnN2dWludDh4NF90IHN2c2V0NF91OChzdnVpbnQ4eDRfdCwgdWludDY0X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91MzIpKSkKc3Z1aW50MzJ4NF90IHN2c2V0NF91MzIoc3Z1aW50MzJ4NF90LCB1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91NjQpKSkKc3Z1aW50NjR4NF90IHN2c2V0NF91NjQoc3Z1aW50NjR4NF90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2c2V0NF91MTYoc3Z1aW50MTZ4NF90LCB1aW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9zOCkpKQpzdmludDh4NF90IHN2c2V0NF9zOChzdmludDh4NF90LCB1aW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfZjY0KSkpCnN2ZmxvYXQ2NHg0X3Qgc3ZzZXQ0X2Y2NChzdmZsb2F0NjR4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZzZXQ0X2YzMihzdmZsb2F0MzJ4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfZjE2KSkpCnN2ZmxvYXQxNng0X3Qgc3ZzZXQ0X2YxNihzdmZsb2F0MTZ4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfczMyKSkpCnN2aW50MzJ4NF90IHN2c2V0NF9zMzIoc3ZpbnQzMng0X3QsIHVpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfczY0KSkpCnN2aW50NjR4NF90IHN2c2V0NF9zNjQoc3ZpbnQ2NHg0X3QsIHVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfczE2KSkpCnN2aW50MTZ4NF90IHN2c2V0NF9zMTYoc3ZpbnQxNng0X3QsIHVpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldGZmcikpKQp2b2lkIHN2c2V0ZmZyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3U4KSkpCnN2dWludDhfdCBzdnNwbGljZV91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91MzIpKSkKc3Z1aW50MzJfdCBzdnNwbGljZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91NjQpKSkKc3Z1aW50NjRfdCBzdnNwbGljZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91MTYpKSkKc3Z1aW50MTZfdCBzdnNwbGljZV91MTYoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9zOCkpKQpzdmludDhfdCBzdnNwbGljZV9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2c3BsaWNlX2Y2NChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfZjMyKSkpCnN2ZmxvYXQzMl90IHN2c3BsaWNlX2YzMihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfZjE2KSkpCnN2ZmxvYXQxNl90IHN2c3BsaWNlX2YxNihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfczMyKSkpCnN2aW50MzJfdCBzdnNwbGljZV9zMzIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfczY0KSkpCnN2aW50NjRfdCBzdnNwbGljZV9zNjQoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfczE2KSkpCnN2aW50MTZfdCBzdnNwbGljZV9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3FydF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c3FydF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3FydF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3FydF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzcXJ0X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnNxcnRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3FydF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzcXJ0X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnNxcnRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdTgpKSkKdm9pZCBzdnN0MV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91MzIpKSkKdm9pZCBzdnN0MV91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91NjQpKSkKdm9pZCBzdnN0MV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV91MTYpKSkKdm9pZCBzdnN0MV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zOCkpKQp2b2lkIHN2c3QxX3M4KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9mNjQpKSkKdm9pZCBzdnN0MV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2YzMikpKQp2b2lkIHN2c3QxX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfZjE2KSkpCnZvaWQgc3ZzdDFfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zMzIpKSkKdm9pZCBzdnN0MV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfczY0KSkpCnZvaWQgc3ZzdDFfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3MxNikpKQp2b2lkIHN2c3QxX3MxNihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0YmFzZV9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczMyaW5kZXhfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmluZGV4X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3MzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczMyb2Zmc2V0X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczMyb2Zmc2V0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczY0b2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfczY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3U4KSkpCnZvaWQgc3ZzdDFfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3UzMikpKQp2b2lkIHN2c3QxX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91NjQpKSkKdm9pZCBzdnN0MV92bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fdTE2KSkpCnZvaWQgc3ZzdDFfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3M4KSkpCnZvaWQgc3ZzdDFfdm51bV9zOChzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mNjQpKSkKdm9pZCBzdnN0MV92bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mMzIpKSkKdm9pZCBzdnN0MV92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9mMTYpKSkKdm9pZCBzdnN0MV92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zMzIpKSkKdm9pZCBzdnN0MV92bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3M2NCkpKQp2b2lkIHN2c3QxX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fczE2KSkpCnZvaWQgc3ZzdDFfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3MzMikpKQp2b2lkIHN2c3QxYl9zMzIoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfczY0KSkpCnZvaWQgc3ZzdDFiX3M2NChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zMTYpKSkKdm9pZCBzdnN0MWJfczE2KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3UzMikpKQp2b2lkIHN2c3QxYl91MzIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl91NjQpKSkKdm9pZCBzdnN0MWJfdTY0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdTE2KSkpCnZvaWQgc3ZzdDFiX3UxNihzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfczMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3MzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3MzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV9zMzIpKSkKdm9pZCBzdnN0MWJfdm51bV9zMzIoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV9zNjQpKSkKdm9pZCBzdnN0MWJfdm51bV9zNjQoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV9zMTYpKSkKdm9pZCBzdnN0MWJfdm51bV9zMTYoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV91MzIpKSkKdm9pZCBzdnN0MWJfdm51bV91MzIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3U2NCkpKQp2b2lkIHN2c3QxYl92bnVtX3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fdTE2KSkpCnZvaWQgc3ZzdDFiX3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfczMyKSkpCnZvaWQgc3ZzdDFoX3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfczY0KSkpCnZvaWQgc3ZzdDFoX3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdTMyKSkpCnZvaWQgc3ZzdDFoX3UzMihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF91NjQpKSkKdm9pZCBzdnN0MWhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3UzMmJhc2VfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zMzJpbmRleF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zMzJpbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zMzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zMzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmluZGV4X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3UzMmluZGV4X3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJpbmRleF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91MzJpbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zMzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfczMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3MzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDFoX3ZudW1fczMyKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF92bnVtX3M2NCkpKQp2b2lkIHN2c3QxaF92bnVtX3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdm51bV91MzIpKSkKdm9pZCBzdnN0MWhfdm51bV91MzIoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdm51bV91NjQpKSkKdm9pZCBzdnN0MWhfdm51bV91NjQoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfczY0KSkpCnZvaWQgc3ZzdDF3X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfdTY0KSkpCnZvaWQgc3ZzdDF3X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd192bnVtX3M2NCkpKQp2b2lkIHN2c3Qxd192bnVtX3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfdm51bV91NjQpKSkKdm9pZCBzdnN0MXdfdm51bV91NjQoc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml91OCkpKQp2b2lkIHN2c3QyX3U4KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDh4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTMyKSkpCnZvaWQgc3ZzdDJfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml91NjQpKSkKdm9pZCBzdnN0Ml91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3UxNikpKQp2b2lkIHN2c3QyX3UxNihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MTZ4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfczgpKSkKdm9pZCBzdnN0Ml9zOChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9mNjQpKSkKdm9pZCBzdnN0Ml9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmZsb2F0NjR4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfZjMyKSkpCnZvaWQgc3ZzdDJfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyeDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX2YxNikpKQp2b2lkIHN2c3QyX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zMzIpKSkKdm9pZCBzdnN0Ml9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zNjQpKSkKdm9pZCBzdnN0Ml9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NHgyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zMTYpKSkKdm9pZCBzdnN0Ml9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3U4KSkpCnZvaWQgc3ZzdDJfdm51bV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDJfdm51bV91MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDMyeDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDJfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fdTE2KSkpCnZvaWQgc3ZzdDJfdm51bV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fczgpKSkKdm9pZCBzdnN0Ml92bnVtX3M4KHN2Ym9vbF90LCBpbnQ4X3QgKiwgaW50NjRfdCwgc3ZpbnQ4eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdDJfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBpbnQ2NF90LCBzdmZsb2F0NjR4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9mMzIpKSkKdm9pZCBzdnN0Ml92bnVtX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIGludDY0X3QsIHN2ZmxvYXQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX2YxNikpKQp2b2lkIHN2c3QyX3ZudW1fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDJfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQzMngyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3M2NCkpKQp2b2lkIHN2c3QyX3ZudW1fczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIGludDY0X3QsIHN2aW50NjR4Ml90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9zMTYpKSkKdm9pZCBzdnN0Ml92bnVtX3MxNihzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3U4KSkpCnZvaWQgc3ZzdDNfdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M191MzIpKSkKdm9pZCBzdnN0M191MzIoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3U2NCkpKQp2b2lkIHN2c3QzX3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjR4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdTE2KSkpCnZvaWQgc3ZzdDNfdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNngzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zOCkpKQp2b2lkIHN2c3QzX3M4KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX2Y2NCkpKQp2b2lkIHN2c3QzX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19mMzIpKSkKdm9pZCBzdnN0M19mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfZjE2KSkpCnZvaWQgc3ZzdDNfZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3MzMikpKQp2b2lkIHN2c3QzX3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3M2NCkpKQp2b2lkIHN2c3QzX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3MxNikpKQp2b2lkIHN2c3QzX3MxNihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2eDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fdTgpKSkKdm9pZCBzdnN0M192bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDh4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91MzIpKSkKdm9pZCBzdnN0M192bnVtX3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgaW50NjRfdCwgc3Z1aW50MzJ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91NjQpKSkKdm9pZCBzdnN0M192bnVtX3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgaW50NjRfdCwgc3Z1aW50NjR4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV91MTYpKSkKdm9pZCBzdnN0M192bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgKiwgaW50NjRfdCwgc3Z1aW50MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zOCkpKQp2b2lkIHN2c3QzX3ZudW1fczgoc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDh4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9mNjQpKSkKdm9pZCBzdnN0M192bnVtX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIGludDY0X3QsIHN2ZmxvYXQ2NHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX2YzMikpKQp2b2lkIHN2c3QzX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDNfdm51bV9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zMzIpKSkKdm9pZCBzdnN0M192bnVtX3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDMyeDNfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDNfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NHgzX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3MxNikpKQp2b2lkIHN2c3QzX3ZudW1fczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTgpKSkKdm9pZCBzdnN0NF91OChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3UzMikpKQp2b2lkIHN2c3Q0X3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTY0KSkpCnZvaWQgc3ZzdDRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF91MTYpKSkKdm9pZCBzdnN0NF91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3M4KSkpCnZvaWQgc3ZzdDRfczgoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDh4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfZjY0KSkpCnZvaWQgc3ZzdDRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZmbG9hdDY0eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X2YzMikpKQp2b2lkIHN2c3Q0X2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9mMTYpKSkKdm9pZCBzdnN0NF9mMTYoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBzdmZsb2F0MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczMyKSkpCnZvaWQgc3ZzdDRfczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczY0KSkpCnZvaWQgc3ZzdDRfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjR4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfczE2KSkpCnZvaWQgc3ZzdDRfczE2KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MTZ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV91OCkpKQp2b2lkIHN2c3Q0X3ZudW1fdTgoc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50OHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3UzMikpKQp2b2lkIHN2c3Q0X3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3U2NCkpKQp2b2lkIHN2c3Q0X3ZudW1fdTY0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3UxNikpKQp2b2lkIHN2c3Q0X3ZudW1fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBpbnQ2NF90LCBzdnVpbnQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3M4KSkpCnZvaWQgc3ZzdDRfdm51bV9zOChzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OHg0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX2Y2NCkpKQp2b2lkIHN2c3Q0X3ZudW1fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fZjMyKSkpCnZvaWQgc3ZzdDRfdm51bV9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9mMTYpKSkKdm9pZCBzdnN0NF92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3MzMikpKQp2b2lkIHN2c3Q0X3ZudW1fczMyKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJ4NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zNjQpKSkKdm9pZCBzdnN0NF92bnVtX3M2NChzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0eDRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fczE2KSkpCnZvaWQgc3ZzdDRfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3U4KSkpCnZvaWQgc3ZzdG50MV91OChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3UzMikpKQp2b2lkIHN2c3RudDFfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91NjQpKSkKdm9pZCBzdnN0bnQxX3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdTE2KSkpCnZvaWQgc3ZzdG50MV91MTYoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3M4KSkpCnZvaWQgc3ZzdG50MV9zOChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mNjQpKSkKdm9pZCBzdnN0bnQxX2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mMzIpKSkKdm9pZCBzdnN0bnQxX2YzMihzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mMTYpKSkKdm9pZCBzdnN0bnQxX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zMzIpKSkKdm9pZCBzdnN0bnQxX3MzMihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3M2NCkpKQp2b2lkIHN2c3RudDFfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfczE2KSkpCnZvaWQgc3ZzdG50MV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3U4KSkpCnZvaWQgc3ZzdG50MV92bnVtX3U4KHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91MzIpKSkKdm9pZCBzdnN0bnQxX3ZudW1fdTMyKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3U2NCkpKQp2b2lkIHN2c3RudDFfdm51bV91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fdTE2KSkpCnZvaWQgc3ZzdG50MV92bnVtX3UxNihzdmJvb2xfdCwgdWludDE2X3QgKiwgaW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9zOCkpKQp2b2lkIHN2c3RudDFfdm51bV9zOChzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2Y2NCkpKQp2b2lkIHN2c3RudDFfdm51bV9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9mMzIpKSkKdm9pZCBzdnN0bnQxX3ZudW1fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdG50MV92bnVtX2YxNihzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3MzMikpKQp2b2lkIHN2c3RudDFfdm51bV9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3M2NCkpKQp2b2lkIHN2c3RudDFfdm51bV9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3MxNikpKQp2b2lkIHN2c3RudDFfdm51bV9zMTYoc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnN1Yl9uX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1Yl9uX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1Yl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnN1Yl9uX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1Yl9uX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1Yl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnN1Yl9uX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1Yl9uX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1Yl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91OF9tKSkpCnN2dWludDhfdCBzdnN1Yl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1Yl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1Yl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnN1Yl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczhfbSkpKQpzdmludDhfdCBzdnN1Yl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1Yl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnN1Yl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1Yl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3ViX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3ViX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3ViX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3ViX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zOF94KSkpCnN2aW50OF90IHN2c3ViX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2c3ViX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3ViX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2c3ViX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzdWJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZzdWJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c3ViX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1Yl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3ViX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1Yl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJfZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3ViX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1Yl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3ViX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1Yl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zOF9tKSkpCnN2aW50OF90IHN2c3ViX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1Yl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZzdWJfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczE2X20pKSkKc3ZpbnQxNl90IHN2c3ViX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U4X3gpKSkKc3Z1aW50OF90IHN2c3ViX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1Yl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzdWJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3ViX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczhfeCkpKQpzdmludDhfdCBzdnN1Yl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3ViX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1Yl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91OF96KSkpCnN2dWludDhfdCBzdnN1Yl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3ViX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnN1Yl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczMyX3opKSkKc3ZpbnQzMl90IHN2c3ViX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3M2NF96KSkpCnN2aW50NjRfdCBzdnN1Yl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX25fZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfbl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9uX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX25fZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfbl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9uX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX25fZjY0X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1YnJfbl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9uX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnN1YnJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3Vicl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJyX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczhfbSkpKQpzdmludDhfdCBzdnN1YnJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2c3Vicl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZzdWJyX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1YnJfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1YnJfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3Vicl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzdWJyX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczhfeCkpKQpzdmludDhfdCBzdnN1YnJfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2c3Vicl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZzdWJyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1YnJfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZzdWJyX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnN1YnJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3Vicl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJyX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczhfeikpKQpzdmludDhfdCBzdnN1YnJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2c3Vicl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJyX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnN1YnJfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2c3Vicl9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3Vicl9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3Vicl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3Vicl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3Vicl9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U4X20pKSkKc3Z1aW50OF90IHN2c3Vicl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3Vicl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3Vicl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3Vicl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zOF9tKSkpCnN2aW50OF90IHN2c3Vicl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczMyX20pKSkKc3ZpbnQzMl90IHN2c3Vicl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczY0X20pKSkKc3ZpbnQ2NF90IHN2c3Vicl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczE2X20pKSkKc3ZpbnQxNl90IHN2c3Vicl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzdWJyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzdWJyX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzdWJyX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZzdWJyX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJyX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZzdWJyX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJyX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91OF96KSkpCnN2dWludDhfdCBzdnN1YnJfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnN1YnJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1YnJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnN1YnJfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczhfeikpKQpzdmludDhfdCBzdnN1YnJfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MzMl96KSkpCnN2aW50MzJfdCBzdnN1YnJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M2NF96KSkpCnN2aW50NjRfdCBzdnN1YnJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MxNl96KSkpCnN2aW50MTZfdCBzdnN1YnJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTgpKSkKc3Z1aW50OF90IHN2dGJsX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTMyKSkpCnN2dWludDMyX3Qgc3Z0YmxfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF91NjQpKSkKc3Z1aW50NjRfdCBzdnRibF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3UxNikpKQpzdnVpbnQxNl90IHN2dGJsX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfczgpKSkKc3ZpbnQ4X3Qgc3Z0Ymxfczgoc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRibF9mNjQoc3ZmbG9hdDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0YmxfZjMyKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dGJsX2YxNihzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3MzMikpKQpzdmludDMyX3Qgc3Z0YmxfczMyKHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3M2NCkpKQpzdmludDY0X3Qgc3Z0YmxfczY0KHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3MxNikpKQpzdmludDE2X3Qgc3Z0YmxfczE2KHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dG1hZF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0bWFkX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0bWFkX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRtYWRfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRtYWRfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dG1hZF9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV91OCkpKQpzdnVpbnQ4X3Qgc3Z0cm4xX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4xX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3M4KSkpCnN2aW50OF90IHN2dHJuMV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4xX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfczMyKSkpCnN2aW50MzJfdCBzdnRybjFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4xX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfYjgpKSkKc3Zib29sX3Qgc3Z0cm4xX2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9iMzIpKSkKc3Zib29sX3Qgc3Z0cm4xX2IzMihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfYjY0KSkpCnN2Ym9vbF90IHN2dHJuMV9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2IxNikpKQpzdmJvb2xfdCBzdnRybjFfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl91OCkpKQpzdnVpbnQ4X3Qgc3Z0cm4yX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4yX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3M4KSkpCnN2aW50OF90IHN2dHJuMl9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMl9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjJfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4yX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfczMyKSkpCnN2aW50MzJfdCBzdnRybjJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4yX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfYjgpKSkKc3Zib29sX3Qgc3Z0cm4yX2I4KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9iMzIpKSkKc3Zib29sX3Qgc3Z0cm4yX2IzMihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfYjY0KSkpCnN2Ym9vbF90IHN2dHJuMl9iNjQoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2IxNikpKQpzdmJvb2xfdCBzdnRybjJfYjE2KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNtdWxfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHNtdWxfZjY0KHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c211bF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0c211bF9mMzIoc3ZmbG9hdDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzbXVsX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRzbXVsX2YxNihzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNzZWxfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHNzZWxfZjY0KHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c3NlbF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0c3NlbF9mMzIoc3ZmbG9hdDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzc2VsX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRzc2VsX2YxNihzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3U4KSkpCnN2dWludDh4Ml90IHN2dW5kZWYyX3U4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3UzMikpKQpzdnVpbnQzMngyX3Qgc3Z1bmRlZjJfdTMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3U2NCkpKQpzdnVpbnQ2NHgyX3Qgc3Z1bmRlZjJfdTY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3UxNikpKQpzdnVpbnQxNngyX3Qgc3Z1bmRlZjJfdTE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3M4KSkpCnN2aW50OHgyX3Qgc3Z1bmRlZjJfczgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjJfZjY0KSkpCnN2ZmxvYXQ2NHgyX3Qgc3Z1bmRlZjJfZjY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX2YzMikpKQpzdmZsb2F0MzJ4Ml90IHN2dW5kZWYyX2YzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdnVuZGVmMl9mMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjJfczMyKSkpCnN2aW50MzJ4Ml90IHN2dW5kZWYyX3MzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmMl9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3Z1bmRlZjJfczY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX3MxNikpKQpzdmludDE2eDJfdCBzdnVuZGVmMl9zMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfdTgpKSkKc3Z1aW50OHgzX3Qgc3Z1bmRlZjNfdTgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfdTMyKSkpCnN2dWludDMyeDNfdCBzdnVuZGVmM191MzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfdTY0KSkpCnN2dWludDY0eDNfdCBzdnVuZGVmM191NjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfdTE2KSkpCnN2dWludDE2eDNfdCBzdnVuZGVmM191MTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfczgpKSkKc3ZpbnQ4eDNfdCBzdnVuZGVmM19zOCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmM19mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdnVuZGVmM19mNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3Z1bmRlZjNfZjMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2dW5kZWYzX2YxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmM19zMzIpKSkKc3ZpbnQzMngzX3Qgc3Z1bmRlZjNfczMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYzX3M2NCkpKQpzdmludDY0eDNfdCBzdnVuZGVmM19zNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjNfczE2KSkpCnN2aW50MTZ4M190IHN2dW5kZWYzX3MxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF91OCkpKQpzdnVpbnQ4eDRfdCBzdnVuZGVmNF91OCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF91MzIpKSkKc3Z1aW50MzJ4NF90IHN2dW5kZWY0X3UzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF91NjQpKSkKc3Z1aW50NjR4NF90IHN2dW5kZWY0X3U2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2dW5kZWY0X3UxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF9zOCkpKQpzdmludDh4NF90IHN2dW5kZWY0X3M4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWY0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2dW5kZWY0X2Y2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdnVuZGVmNF9mMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfZjE2KSkpCnN2ZmxvYXQxNng0X3Qgc3Z1bmRlZjRfZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWY0X3MzMikpKQpzdmludDMyeDRfdCBzdnVuZGVmNF9zMzIoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfczY0KSkpCnN2aW50NjR4NF90IHN2dW5kZWY0X3M2NCgpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmNF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3Z1bmRlZjRfczE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfdTgpKSkKc3Z1aW50OF90IHN2dW5kZWZfdTgoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZl91MzIpKSkKc3Z1aW50MzJfdCBzdnVuZGVmX3UzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX3U2NCkpKQpzdnVpbnQ2NF90IHN2dW5kZWZfdTY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfdTE2KSkpCnN2dWludDE2X3Qgc3Z1bmRlZl91MTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZl9zOCkpKQpzdmludDhfdCBzdnVuZGVmX3M4KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dW5kZWZfZjY0KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dW5kZWZfZjMyKCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dW5kZWZfZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfczMyKSkpCnN2aW50MzJfdCBzdnVuZGVmX3MzMigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmX3M2NCkpKQpzdmludDY0X3Qgc3Z1bmRlZl9zNjQoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZl9zMTYpKSkKc3ZpbnQxNl90IHN2dW5kZWZfczE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX2IpKSkKc3Zib29sX3Qgc3Z1bnBraGlfYihzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3MzMikpKQpzdmludDMyX3Qgc3Z1bnBraGlfczMyKHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3M2NCkpKQpzdmludDY0X3Qgc3Z1bnBraGlfczY0KHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3MxNikpKQpzdmludDE2X3Qgc3Z1bnBraGlfczE2KHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBraGlfdTMyKSkpCnN2dWludDMyX3Qgc3Z1bnBraGlfdTMyKHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV91NjQpKSkKc3Z1aW50NjRfdCBzdnVucGtoaV91NjQoc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3UxNikpKQpzdnVpbnQxNl90IHN2dW5wa2hpX3UxNihzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19iKSkpCnN2Ym9vbF90IHN2dW5wa2xvX2Ioc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zMzIpKSkKc3ZpbnQzMl90IHN2dW5wa2xvX3MzMihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zNjQpKSkKc3ZpbnQ2NF90IHN2dW5wa2xvX3M2NChzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19zMTYpKSkKc3ZpbnQxNl90IHN2dW5wa2xvX3MxNihzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3UzMikpKQpzdnVpbnQzMl90IHN2dW5wa2xvX3UzMihzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fdTY0KSkpCnN2dWludDY0X3Qgc3Z1bnBrbG9fdTY0KHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb191MTYpKSkKc3Z1aW50MTZfdCBzdnVucGtsb191MTYoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3U4KSkpCnN2dWludDhfdCBzdnV6cDFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z1enAxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dXpwMV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnV6cDFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9zMzIpKSkKc3ZpbnQzMl90IHN2dXpwMV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczY0KSkpCnN2aW50NjRfdCBzdnV6cDFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3MxNikpKQpzdmludDE2X3Qgc3Z1enAxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9iOCkpKQpzdmJvb2xfdCBzdnV6cDFfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2IzMikpKQpzdmJvb2xfdCBzdnV6cDFfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9iNjQpKSkKc3Zib29sX3Qgc3Z1enAxX2I2NChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfYjE2KSkpCnN2Ym9vbF90IHN2dXpwMV9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3U4KSkpCnN2dWludDhfdCBzdnV6cDJfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAyX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDJfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAyX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z1enAyX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dXpwMl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2YxNikpKQpzdmZsb2F0MTZfdCBzdnV6cDJfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9zMzIpKSkKc3ZpbnQzMl90IHN2dXpwMl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczY0KSkpCnN2aW50NjRfdCBzdnV6cDJfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3MxNikpKQpzdmludDE2X3Qgc3Z1enAyX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9iOCkpKQpzdmJvb2xfdCBzdnV6cDJfYjgoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2IzMikpKQpzdmJvb2xfdCBzdnV6cDJfYjMyKHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9iNjQpKSkKc3Zib29sX3Qgc3Z1enAyX2I2NChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfYjE2KSkpCnN2Ym9vbF90IHN2dXpwMl9iMTYoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjhfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyX3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMTZfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOF9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMzJfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I4X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyX3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjE2X3UzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IzMl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I2NF91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNl91NjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I4X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjhfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzJfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjRfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMTZfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMTZfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjMyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjMyX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjhfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iOF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzJfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjY0X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjY0X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IxNl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IxNl9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IzMl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IzMl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjRfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3cmZmcikpKQp2b2lkIHN2d3JmZnIoc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTgpKSkKc3Z1aW50OF90IHN2emlwMV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV91MzIpKSkKc3Z1aW50MzJfdCBzdnppcDFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTY0KSkpCnN2dWludDY0X3Qgc3Z6aXAxX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3UxNikpKQpzdnVpbnQxNl90IHN2emlwMV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9zOCkpKQpzdmludDhfdCBzdnppcDFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAxX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAxX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczE2KSkpCnN2aW50MTZfdCBzdnppcDFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2I4KSkpCnN2Ym9vbF90IHN2emlwMV9iOChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfYjMyKSkpCnN2Ym9vbF90IHN2emlwMV9iMzIoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2I2NCkpKQpzdmJvb2xfdCBzdnppcDFfYjY0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9iMTYpKSkKc3Zib29sX3Qgc3Z6aXAxX2IxNihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTgpKSkKc3Z1aW50OF90IHN2emlwMl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl91MzIpKSkKc3Z1aW50MzJfdCBzdnppcDJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTY0KSkpCnN2dWludDY0X3Qgc3Z6aXAyX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3UxNikpKQpzdnVpbnQxNl90IHN2emlwMl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9zOCkpKQpzdmludDhfdCBzdnppcDJfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDJfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAyX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMl9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAyX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczE2KSkpCnN2aW50MTZfdCBzdnppcDJfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2I4KSkpCnN2Ym9vbF90IHN2emlwMl9iOChzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfYjMyKSkpCnN2Ym9vbF90IHN2emlwMl9iMzIoc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2I2NCkpKQpzdmJvb2xfdCBzdnppcDJfYjY0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9iMTYpKSkKc3Zib29sX3Qgc3Z6aXAyX2IxNihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2YWJkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2YWJkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2YWJkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zOF9tKSkpCnN2aW50OF90IHN2YWJkX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2YWJkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zOF94KSkpCnN2aW50OF90IHN2YWJkX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWJkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zOF96KSkpCnN2aW50OF90IHN2YWJkX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2YWJkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91OF9tKSkpCnN2dWludDhfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWJkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91OF94KSkpCnN2dWludDhfdCBzdmFiZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWJkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFiZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91OF96KSkpCnN2dWludDhfdCBzdmFiZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2YWJkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFiZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWJkX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWJkX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWJkX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczhfbSkpKQpzdmludDhfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczMyX20pKSkKc3ZpbnQzMl90IHN2YWJkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczhfeCkpKQpzdmludDhfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczMyX3gpKSkKc3ZpbnQzMl90IHN2YWJkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M2NF94KSkpCnN2aW50NjRfdCBzdmFiZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczhfeikpKQpzdmludDhfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfczMyX3opKSkKc3ZpbnQzMl90IHN2YWJkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3M2NF96KSkpCnN2aW50NjRfdCBzdmFiZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFiZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhYmRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWJkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFiZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhYmRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWJkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFiZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhYmRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZF91MTZfeikpKQpzdnVpbnQxNl90IHN2YWJkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhYnNfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWJzX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFic19tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhYnNfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZhYnNfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhYnNfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczhfbSkpKQpzdmludDhfdCBzdmFic19tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczMyX20pKSkKc3ZpbnQzMl90IHN2YWJzX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFic19tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMTZfbSkpKQpzdmludDE2X3Qgc3ZhYnNfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczhfeCkpKQpzdmludDhfdCBzdmFic194KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMzJfeCkpKQpzdmludDMyX3Qgc3ZhYnNfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3M2NF94KSkpCnN2aW50NjRfdCBzdmFic194KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWJzX3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zOF96KSkpCnN2aW50OF90IHN2YWJzX3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJzX3MzMl96KSkpCnN2aW50MzJfdCBzdmFic196KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYnNfczY0X3opKSkKc3ZpbnQ2NF90IHN2YWJzX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFic19zMTZfeikpKQpzdmludDE2X3Qgc3ZhYnNfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmFjZ2Uoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX25fZjMyKSkpCnN2Ym9vbF90IHN2YWNnZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2Vfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2dlKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNnZV9mNjQpKSkKc3Zib29sX3Qgc3ZhY2dlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2dlX2YzMikpKQpzdmJvb2xfdCBzdmFjZ2Uoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ2VfZjE2KSkpCnN2Ym9vbF90IHN2YWNnZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9uX2Y2NCkpKQpzdmJvb2xfdCBzdmFjZ3Qoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X25fZjMyKSkpCnN2Ym9vbF90IHN2YWNndChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3Rfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2d0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNndF9mNjQpKSkKc3Zib29sX3Qgc3ZhY2d0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2d0X2YzMikpKQpzdmJvb2xfdCBzdmFjZ3Qoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjZ3RfZjE2KSkpCnN2Ym9vbF90IHN2YWNndChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmFjbGUoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX25fZjMyKSkpCnN2Ym9vbF90IHN2YWNsZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2xlKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsZV9mNjQpKSkKc3Zib29sX3Qgc3ZhY2xlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2xlX2YzMikpKQpzdmJvb2xfdCBzdmFjbGUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbGVfZjE2KSkpCnN2Ym9vbF90IHN2YWNsZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9uX2Y2NCkpKQpzdmJvb2xfdCBzdmFjbHQoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X25fZjMyKSkpCnN2Ym9vbF90IHN2YWNsdChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfbl9mMTYpKSkKc3Zib29sX3Qgc3ZhY2x0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWNsdF9mNjQpKSkKc3Zib29sX3Qgc3ZhY2x0KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhY2x0X2YzMikpKQpzdmJvb2xfdCBzdmFjbHQoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFjbHRfZjE2KSkpCnN2Ym9vbF90IHN2YWNsdChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2YWRkX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2YWRkX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2YWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczhfbSkpKQpzdmludDhfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczhfeCkpKQpzdmludDhfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2YWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczhfeikpKQpzdmludDhfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2YWRkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2YWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U4X20pKSkKc3Z1aW50OF90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U4X3gpKSkKc3Z1aW50OF90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2YWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3U4X3opKSkKc3Z1aW50OF90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdmFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRfczE2X3opKSkKc3ZpbnQxNl90IHN2YWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkYV9mNjQpKSkKZmxvYXQ2NF90IHN2YWRkYShzdmJvb2xfdCwgZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGFfZjMyKSkpCmZsb2F0MzJfdCBzdmFkZGEoc3Zib29sX3QsIGZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRhX2YxNikpKQpmbG9hdDE2X3Qgc3ZhZGRhKHN2Ym9vbF90LCBmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9zOCkpKQppbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3MzMikpKQppbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9zNjQpKSkKaW50NjRfdCBzdmFkZHYoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfczE2KSkpCmludDY0X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X3U4KSkpCnVpbnQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91MzIpKSkKdWludDY0X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91NjQpKSkKdWludDY0X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl91MTYpKSkKdWludDY0X3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkdl9mNjQpKSkKZmxvYXQ2NF90IHN2YWRkdihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR2X2YzMikpKQpmbG9hdDMyX3Qgc3ZhZGR2KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHZfZjE2KSkpCmZsb2F0MTZfdCBzdmFkZHYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyYl91MzJiYXNlX3UzMm9mZnNldCkpKQpzdnVpbnQzMl90IHN2YWRyYl9vZmZzZXQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmJfdTY0YmFzZV91NjRvZmZzZXQpKSkKc3Z1aW50NjRfdCBzdmFkcmJfb2Zmc2V0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3UzMmJhc2VfczMyb2Zmc2V0KSkpCnN2dWludDMyX3Qgc3ZhZHJiX29mZnNldChzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJiX3U2NGJhc2VfczY0b2Zmc2V0KSkpCnN2dWludDY0X3Qgc3ZhZHJiX29mZnNldChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJkX3UzMmJhc2VfdTMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcmRfaW5kZXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmRfdTY0YmFzZV91NjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyZF9pbmRleChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyZF91MzJiYXNlX3MzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJkX2luZGV4KHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmRfdTY0YmFzZV9zNjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyZF9pbmRleChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJoX3UzMmJhc2VfdTMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcmhfaW5kZXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTY0YmFzZV91NjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyaF9pbmRleChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyaF91MzJiYXNlX3MzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJoX2luZGV4KHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcmhfdTY0YmFzZV9zNjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyaF9pbmRleChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZHJ3X3UzMmJhc2VfdTMyaW5kZXgpKSkKc3Z1aW50MzJfdCBzdmFkcndfaW5kZXgoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTY0YmFzZV91NjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyd19pbmRleChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRyd191MzJiYXNlX3MzMmluZGV4KSkpCnN2dWludDMyX3Qgc3ZhZHJ3X2luZGV4KHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkcndfdTY0YmFzZV9zNjRpbmRleCkpKQpzdnVpbnQ2NF90IHN2YWRyd19pbmRleChzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfYl96KSkpCnN2Ym9vbF90IHN2YW5kX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2YW5kX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YW5kX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2YW5kX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YW5kX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFuZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2YW5kX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2YW5kX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91OF9tKSkpCnN2dWludDhfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YW5kX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zOF9tKSkpCnN2aW50OF90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhbmRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczY0X20pKSkKc3ZpbnQ2NF90IHN2YW5kX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFuZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91OF94KSkpCnN2dWludDhfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YW5kX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFuZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zOF94KSkpCnN2aW50OF90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZhbmRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YW5kX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MxNl94KSkpCnN2aW50MTZfdCBzdmFuZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91OF96KSkpCnN2dWludDhfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF91MzJfeikpKQpzdnVpbnQzMl90IHN2YW5kX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmFuZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zOF96KSkpCnN2aW50OF90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZhbmRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmRfczY0X3opKSkKc3ZpbnQ2NF90IHN2YW5kX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kX3MxNl96KSkpCnN2aW50MTZfdCBzdmFuZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTgpKSkKdWludDhfdCBzdmFuZHYoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTMyKSkpCnVpbnQzMl90IHN2YW5kdihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTY0KSkpCnVpbnQ2NF90IHN2YW5kdihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfdTE2KSkpCnVpbnQxNl90IHN2YW5kdihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczgpKSkKaW50OF90IHN2YW5kdihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhbmR2X3MzMikpKQppbnQzMl90IHN2YW5kdihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YW5kdl9zNjQpKSkKaW50NjRfdCBzdmFuZHYoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFuZHZfczE2KSkpCmludDE2X3Qgc3ZhbmR2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zOF9tKSkpCnN2aW50OF90IHN2YXNyX20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2YXNyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zhc3JfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczhfeCkpKQpzdmludDhfdCBzdmFzcl94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFzcl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YXNyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zhc3JfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3JfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFzcl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczhfbSkpKQpzdmludDhfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczY0X20pKSkKc3ZpbnQ2NF90IHN2YXNyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3JfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3JfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3M2NF94KSkpCnN2aW50NjRfdCBzdmFzcl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczE2X3gpKSkKc3ZpbnQxNl90IHN2YXNyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zOF96KSkpCnN2aW50OF90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JfczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcl9zNjRfeikpKQpzdmludDY0X3Qgc3Zhc3JfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zhc3Jfd2lkZV96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmFzcl93aWRlX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmFzcl93aWRlX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zOF9tKSkpCnN2aW50OF90IHN2YXNyX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMzJfbSkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMTZfbSkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zOF94KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMTZfeCkpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zOF96KSkpCnN2aW50OF90IHN2YXNyX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMzJfeikpKQpzdmludDMyX3Qgc3Zhc3Jfd2lkZV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3Jfd2lkZV9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3Jfd2lkZV96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczhfbSkpKQpzdmludDhfdCBzdmFzcmRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFzcmRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zhc3JkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YXNyZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zhc3JkX3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zhc3JkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2YXNyZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmFzcmRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zOF96KSkpCnN2aW50OF90IHN2YXNyZF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zhc3JkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2YXNyZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YXNyZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmFzcmRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFzcmRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zhc3JkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfYl96KSkpCnN2Ym9vbF90IHN2YmljX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U4X20pKSkKc3Z1aW50OF90IHN2YmljX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2YmljX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmJpY19tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczE2X20pKSkKc3ZpbnQxNl90IHN2YmljX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U4X3gpKSkKc3Z1aW50OF90IHN2YmljX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YmljX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MzMl94KSkpCnN2aW50MzJfdCBzdmJpY194KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2YmljX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3U4X3opKSkKc3Z1aW50OF90IHN2YmljX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2YmljX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19uX3MzMl96KSkpCnN2aW50MzJfdCBzdmJpY196KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX25fczE2X3opKSkKc3ZpbnQxNl90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191OF9tKSkpCnN2dWludDhfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MzJfbSkpKQpzdnVpbnQzMl90IHN2YmljX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmJpY19tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zOF9tKSkpCnN2aW50OF90IHN2YmljX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMzJfbSkpKQpzdmludDMyX3Qgc3ZiaWNfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczY0X20pKSkKc3ZpbnQ2NF90IHN2YmljX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MxNl9tKSkpCnN2aW50MTZfdCBzdmJpY19tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191OF94KSkpCnN2dWludDhfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MzJfeCkpKQpzdnVpbnQzMl90IHN2YmljX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmJpY194KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zOF94KSkpCnN2aW50OF90IHN2YmljX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMzJfeCkpKQpzdmludDMyX3Qgc3ZiaWNfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YmljX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MxNl94KSkpCnN2aW50MTZfdCBzdmJpY194KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191OF96KSkpCnN2dWludDhfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY191MzJfeikpKQpzdnVpbnQzMl90IHN2YmljX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmJpY196KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zOF96KSkpCnN2aW50OF90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJpY19zMzJfeikpKQpzdmludDMyX3Qgc3ZiaWNfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiaWNfczY0X3opKSkKc3ZpbnQ2NF90IHN2YmljX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmljX3MxNl96KSkpCnN2aW50MTZfdCBzdmJpY196KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya2FfYl9tKSkpCnN2Ym9vbF90IHN2YnJrYV9tKHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmthX2JfeikpKQpzdmJvb2xfdCBzdmJya2FfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZicmtiX2JfbSkpKQpzdmJvb2xfdCBzdmJya2JfbShzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrYl9iX3opKSkKc3Zib29sX3Qgc3ZicmtiX3ooc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnJrbl9iX3opKSkKc3Zib29sX3Qgc3ZicmtuX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya3BhX2JfeikpKQpzdmJvb2xfdCBzdmJya3BhX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJya3BiX2JfeikpKQpzdmJvb2xfdCBzdmJya3BiX3ooc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZjYWRkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y2FkZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmNhZGRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjYWRkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2Y2FkZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmNhZGRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZjYWRkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2Y2FkZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmNhZGRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3U4KSkpCnVpbnQ4X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3UzMikpKQp1aW50MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgdWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl91NjQpKSkKdWludDY0X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fdTE2KSkpCnVpbnQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCB1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3M4KSkpCmludDhfdCBzdmNsYXN0YShzdmJvb2xfdCwgaW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX2Y2NCkpKQpmbG9hdDY0X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIGZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9mMzIpKSkKZmxvYXQzMl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fZjE2KSkpCmZsb2F0MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV9uX3MzMikpKQppbnQzMl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfbl9zNjQpKSkKaW50NjRfdCBzdmNsYXN0YShzdmJvb2xfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fczE2KSkpCmludDE2X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIGludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0YV91OCkpKQpzdnVpbnQ4X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3UzMikpKQpzdnVpbnQzMl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3UxNikpKQpzdnVpbnQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX3M4KSkpCnN2aW50OF90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfczMyKSkpCnN2aW50MzJfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfczY0KSkpCnN2aW50NjRfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfczE2KSkpCnN2aW50MTZfdCBzdmNsYXN0YShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91OCkpKQp1aW50OF90IHN2Y2xhc3RiKHN2Ym9vbF90LCB1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl91MzIpKSkKdWludDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fdTY0KSkpCnVpbnQ2NF90IHN2Y2xhc3RiKHN2Ym9vbF90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3UxNikpKQp1aW50MTZfdCBzdmNsYXN0YihzdmJvb2xfdCwgdWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zOCkpKQppbnQ4X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIGludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9mNjQpKSkKZmxvYXQ2NF90IHN2Y2xhc3RiKHN2Ym9vbF90LCBmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fZjMyKSkpCmZsb2F0MzJfdCBzdmNsYXN0YihzdmJvb2xfdCwgZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX2YxNikpKQpmbG9hdDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIGZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfbl9zMzIpKSkKaW50MzJfdCBzdmNsYXN0YihzdmJvb2xfdCwgaW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fczY0KSkpCmludDY0X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX3MxNikpKQppbnQxNl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfdTgpKSkKc3Z1aW50OF90IHN2Y2xhc3RiKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91MzIpKSkKc3Z1aW50MzJfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl91MTYpKSkKc3Z1aW50MTZfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9zOCkpKQpzdmludDhfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX2YzMikpKQpzdmZsb2F0MzJfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX2YxNikpKQpzdmZsb2F0MTZfdCBzdmNsYXN0YihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3MzMikpKQpzdmludDMyX3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3M2NCkpKQpzdmludDY0X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX3MxNikpKQpzdmludDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xzX3M4X20pKSkKc3Z1aW50OF90IHN2Y2xzX20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczMyX20pKSkKc3Z1aW50MzJfdCBzdmNsc19tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczY0X20pKSkKc3Z1aW50NjRfdCBzdmNsc19tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczE2X20pKSkKc3Z1aW50MTZfdCBzdmNsc19tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczhfeCkpKQpzdnVpbnQ4X3Qgc3ZjbHNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczMyX3gpKSkKc3Z1aW50MzJfdCBzdmNsc194KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczY0X3gpKSkKc3Z1aW50NjRfdCBzdmNsc194KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsc194KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczhfeikpKQpzdnVpbnQ4X3Qgc3ZjbHNfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczMyX3opKSkKc3Z1aW50MzJfdCBzdmNsc196KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczY0X3opKSkKc3Z1aW50NjRfdCBzdmNsc196KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHNfczE2X3opKSkKc3Z1aW50MTZfdCBzdmNsc196KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZjbHpfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmNsel9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZjbHpfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MTZfbSkpKQpzdnVpbnQxNl90IHN2Y2x6X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczhfbSkpKQpzdnVpbnQ4X3Qgc3ZjbHpfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMzJfbSkpKQpzdnVpbnQzMl90IHN2Y2x6X20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zNjRfbSkpKQpzdnVpbnQ2NF90IHN2Y2x6X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel9zMTZfbSkpKQpzdnVpbnQxNl90IHN2Y2x6X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91OF94KSkpCnN2dWludDhfdCBzdmNsel94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmNsel94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91MTZfeCkpKQpzdnVpbnQxNl90IHN2Y2x6X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczhfeCkpKQpzdnVpbnQ4X3Qgc3ZjbHpfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczMyX3gpKSkKc3Z1aW50MzJfdCBzdmNsel94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczY0X3gpKSkKc3Z1aW50NjRfdCBzdmNsel94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfczE2X3gpKSkKc3Z1aW50MTZfdCBzdmNsel94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdThfeikpKQpzdnVpbnQ4X3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsel91NjRfeikpKQpzdnVpbnQ2NF90IHN2Y2x6X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbHpfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmNsel96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M4X3opKSkKc3Z1aW50OF90IHN2Y2x6X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MzMl96KSkpCnN2dWludDMyX3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3M2NF96KSkpCnN2dWludDY0X3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2x6X3MxNl96KSkpCnN2dWludDE2X3Qgc3ZjbHpfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmNtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y21sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZjbWxhX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmNtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2Y21sYV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjbWxhX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmNtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2Y21sYV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjbWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmNtbGFfbGFuZShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Y21sYV9sYW5lKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTgpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBlcShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfZjMyKSkpCnN2Ym9vbF90IHN2Y21wZXEoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX2YxNikpKQpzdmJvb2xfdCBzdmNtcGVxKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGVxX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZXFfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBlcV93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGVxX3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZXFfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBlcV93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX2YzMikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczgpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczMyKSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfZjY0KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX2YzMikpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV9mMTYpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTgpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGdlKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2VfdTE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Uoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX25fczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfczgpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGdlX3dpZGVfczE2KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBnZV93aWRlX3U4KSkpCnN2Ym9vbF90IHN2Y21wZ2Vfd2lkZShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV91MzIpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ2Vfd2lkZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBnZV93aWRlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfZjMyKSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X2YxNikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91OCkpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3RfdTY0KSkpCnN2Ym9vbF90IHN2Y21wZ3Qoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF91MTYpKSkKc3Zib29sX3Qgc3ZjbXBndChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9zOCkpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wZ3Rfd2lkZV9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGd0X3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBndF93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBndF93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGd0X3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fZjE2KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3U4KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfbl91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3MzMikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3M2NCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfZjE2KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3U4KSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV91NjQpKSkKc3Zib29sX3Qgc3ZjbXBsZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGxlKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsZV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbGVfd2lkZV91OCkpKQpzdmJvb2xfdCBzdmNtcGxlX3dpZGUoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTMyKSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGxlX3dpZGVfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbGVfd2lkZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX3U2NCkpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fdTE2KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF91MzIpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3U2NCkpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfdTE2KSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zOCkpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zMzIpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBsdChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfZjMyKSkpCnN2Ym9vbF90IHN2Y21wbHQoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X2YxNikpKQpzdmJvb2xfdCBzdmNtcGx0KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX25fczMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbHRfd2lkZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfdTgpKSkKc3Zib29sX3Qgc3ZjbXBsdF93aWRlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3UzMikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3UxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcGx0X3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbHRfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBsdF93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcGx0X3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX2YxNikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl91OCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3UzMikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX25fdTY0KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfbl91MTYpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3M2NCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9uX3MxNikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91OCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3UzMikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfdTY0KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV91MTYpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3M2NCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3MxNikpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX2Y2NCkpKQpzdmJvb2xfdCBzdmNtcG5lKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV9mMzIpKSkKc3Zib29sX3Qgc3ZjbXBuZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfZjE2KSkpCnN2Ym9vbF90IHN2Y21wbmUoc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfbl9zOCkpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGUoc3Zib29sX3QsIHN2aW50OF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wbmVfd2lkZV9uX3MzMikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGUoc3Zib29sX3QsIHN2aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfbl9zMTYpKSkKc3Zib29sX3Qgc3ZjbXBuZV93aWRlKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX3M4KSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcG5lX3dpZGVfczMyKSkpCnN2Ym9vbF90IHN2Y21wbmVfd2lkZShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXBuZV93aWRlX3MxNikpKQpzdmJvb2xfdCBzdmNtcG5lX3dpZGUoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fbl9mNjQpKSkKc3Zib29sX3Qgc3ZjbXB1byhzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX25fZjMyKSkpCnN2Ym9vbF90IHN2Y21wdW8oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19uX2YxNikpKQpzdmJvb2xfdCBzdmNtcHVvKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21wdW9fZjY0KSkpCnN2Ym9vbF90IHN2Y21wdW8oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtcHVvX2YzMikpKQpzdmJvb2xfdCBzdmNtcHVvKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbXB1b19mMTYpKSkKc3Zib29sX3Qgc3ZjbXB1byhzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF91OF9tKSkpCnN2dWludDhfdCBzdmNub3RfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zjbm90X20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zjbm90X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zjbm90X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M4X20pKSkKc3ZpbnQ4X3Qgc3Zjbm90X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczMyX20pKSkKc3ZpbnQzMl90IHN2Y25vdF9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X20pKSkKc3ZpbnQ2NF90IHN2Y25vdF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczE2X20pKSkKc3ZpbnQxNl90IHN2Y25vdF9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmNub3RfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmNub3RfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNub3RfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczhfeCkpKQpzdmludDhfdCBzdmNub3RfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MzMl94KSkpCnN2aW50MzJfdCBzdmNub3RfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zNjRfeCkpKQpzdmludDY0X3Qgc3Zjbm90X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczE2X3gpKSkKc3ZpbnQxNl90IHN2Y25vdF94KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U4X3opKSkKc3Z1aW50OF90IHN2Y25vdF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UzMl96KSkpCnN2dWludDMyX3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3U2NF96KSkpCnN2dWludDY0X3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3UxNl96KSkpCnN2dWludDE2X3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3M4X3opKSkKc3ZpbnQ4X3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y25vdF9zMzJfeikpKQpzdmludDMyX3Qgc3Zjbm90X3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNub3RfczY0X3opKSkKc3ZpbnQ2NF90IHN2Y25vdF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjbm90X3MxNl96KSkpCnN2aW50MTZfdCBzdmNub3RfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U4X20pKSkKc3Z1aW50OF90IHN2Y250X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZjbnRfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2Y250X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmNudF9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M4X20pKSkKc3Z1aW50OF90IHN2Y250X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMzJfbSkpKQpzdnVpbnQzMl90IHN2Y250X20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczMyX20pKSkKc3Z1aW50MzJfdCBzdmNudF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczY0X20pKSkKc3Z1aW50NjRfdCBzdmNudF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfczE2X20pKSkKc3Z1aW50MTZfdCBzdmNudF9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2Y250X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M4X3gpKSkKc3Z1aW50OF90IHN2Y250X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2Y2NF94KSkpCnN2dWludDY0X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjMyX3gpKSkKc3Z1aW50MzJfdCBzdmNudF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mMTZfeCkpKQpzdnVpbnQxNl90IHN2Y250X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MzMl94KSkpCnN2dWludDMyX3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3M2NF94KSkpCnN2dWludDY0X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3MxNl94KSkpCnN2dWludDE2X3Qgc3ZjbnRfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3U4X3opKSkKc3Z1aW50OF90IHN2Y250X3ooc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF91MzJfeikpKQpzdnVpbnQzMl90IHN2Y250X3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmNudF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X3UxNl96KSkpCnN2dWludDE2X3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zOF96KSkpCnN2dWludDhfdCBzdmNudF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9mNjRfeikpKQpzdnVpbnQ2NF90IHN2Y250X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2YzMl96KSkpCnN2dWludDMyX3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfZjE2X3opKSkKc3Z1aW50MTZfdCBzdmNudF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMzJfeikpKQpzdnVpbnQzMl90IHN2Y250X3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zNjRfeikpKQpzdnVpbnQ2NF90IHN2Y250X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9zMTZfeikpKQpzdnVpbnQxNl90IHN2Y250X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfdTMyKSkpCnN2dWludDMyX3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF91NjQpKSkKc3Z1aW50NjRfdCBzdmNvbXBhY3Qoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zjb21wYWN0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmNvbXBhY3Qoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y29tcGFjdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Zjb21wYWN0KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfczMyKSkpCnN2aW50MzJfdCBzdmNvbXBhY3Qoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNvbXBhY3RfczY0KSkpCnN2aW50NjRfdCBzdmNvbXBhY3Qoc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTJfdTgpKSkKc3Z1aW50OHgyX3Qgc3ZjcmVhdGUyKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91MzIpKSkKc3Z1aW50MzJ4Ml90IHN2Y3JlYXRlMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91NjQpKSkKc3Z1aW50NjR4Ml90IHN2Y3JlYXRlMihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2Y3JlYXRlMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9zOCkpKQpzdmludDh4Ml90IHN2Y3JlYXRlMihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX2Y2NCkpKQpzdmZsb2F0NjR4Ml90IHN2Y3JlYXRlMihzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX2YzMikpKQpzdmZsb2F0MzJ4Ml90IHN2Y3JlYXRlMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX2YxNikpKQpzdmZsb2F0MTZ4Ml90IHN2Y3JlYXRlMihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3MzMikpKQpzdmludDMyeDJfdCBzdmNyZWF0ZTIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3M2NCkpKQpzdmludDY0eDJfdCBzdmNyZWF0ZTIoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX3MxNikpKQpzdmludDE2eDJfdCBzdmNyZWF0ZTIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX3U4KSkpCnN2dWludDh4M190IHN2Y3JlYXRlMyhzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191MzIpKSkKc3Z1aW50MzJ4M190IHN2Y3JlYXRlMyhzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191NjQpKSkKc3Z1aW50NjR4M190IHN2Y3JlYXRlMyhzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM191MTYpKSkKc3Z1aW50MTZ4M190IHN2Y3JlYXRlMyhzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zOCkpKQpzdmludDh4M190IHN2Y3JlYXRlMyhzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19mNjQpKSkKc3ZmbG9hdDY0eDNfdCBzdmNyZWF0ZTMoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZjcmVhdGUzKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX2YxNikpKQpzdmZsb2F0MTZ4M190IHN2Y3JlYXRlMyhzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlM19zMzIpKSkKc3ZpbnQzMngzX3Qgc3ZjcmVhdGUzKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUzX3M2NCkpKQpzdmludDY0eDNfdCBzdmNyZWF0ZTMoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfczE2KSkpCnN2aW50MTZ4M190IHN2Y3JlYXRlMyhzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF91OCkpKQpzdnVpbnQ4eDRfdCBzdmNyZWF0ZTQoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF91MzIpKSkKc3Z1aW50MzJ4NF90IHN2Y3JlYXRlNChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF91NjQpKSkKc3Z1aW50NjR4NF90IHN2Y3JlYXRlNChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2Y3JlYXRlNChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9zOCkpKQpzdmludDh4NF90IHN2Y3JlYXRlNChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfZjY0KSkpCnN2ZmxvYXQ2NHg0X3Qgc3ZjcmVhdGU0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdmNyZWF0ZTQoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2Y3JlYXRlNChzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfczMyKSkpCnN2aW50MzJ4NF90IHN2Y3JlYXRlNChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X3M2NCkpKQpzdmludDY0eDRfdCBzdmNyZWF0ZTQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlNF9zMTYpKSkKc3ZpbnQxNng0X3Qgc3ZjcmVhdGU0KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjMyX3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9mMzJfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X2Y2NF94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfZjY0X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfczMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3MzMl96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3M2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl9zNjRfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3UxNl94KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MTZfeikpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YxNl91MzJfeCkpKQpzdmZsb2F0MTZfdCBzdmN2dF9mMTZfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTMyX3opKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF9tKSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMTZfdTY0X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRfZjE2X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjE2X3U2NF96KSkpCnN2ZmxvYXQxNl90IHN2Y3Z0X2YxNl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mMTZfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX2YxNl96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfZjY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9mNjRfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3MzMl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zMzJfeikpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl9zNjRfbSkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfczY0X3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2YzMl91MzJfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dF9mMzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mMzJfdTY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRfZjMyX3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjMyX3U2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0X2YzMl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMTZfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X2YxNl96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfZjMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9mMzJfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3MzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zMzJfeikpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF9zNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfczY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX20pKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2Y2NF91MzJfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dF9mNjRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTMyX3opKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9mNjRfdTY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRfZjY0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfZjY0X3U2NF96KSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0X2Y2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MxNl9mMTZfbSkpKQpzdmludDE2X3Qgc3ZjdnRfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczE2X2YxNl94KSkpCnN2aW50MTZfdCBzdmN2dF9zMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczE2X2YxNl96KSkpCnN2aW50MTZfdCBzdmN2dF9zMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2YxNl9tKSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjE2X3gpKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjE2X3opKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zMzJfZjMyX20pKSkKc3ZpbnQzMl90IHN2Y3Z0X3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMzJfeCkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mMzJfeikpKQpzdmludDMyX3Qgc3ZjdnRfczMyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3MzMl9mNjRfbSkpKQpzdmludDMyX3Qgc3ZjdnRfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2Y2NF94KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczMyX2Y2NF96KSkpCnN2aW50MzJfdCBzdmN2dF9zMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2YxNl9tKSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjE2X3gpKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjE2X3opKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9zNjRfZjMyX20pKSkKc3ZpbnQ2NF90IHN2Y3Z0X3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMzJfeCkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mMzJfeikpKQpzdmludDY0X3Qgc3ZjdnRfczY0X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3M2NF9mNjRfbSkpKQpzdmludDY0X3Qgc3ZjdnRfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2Y2NF94KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfczY0X2Y2NF96KSkpCnN2aW50NjRfdCBzdmN2dF9zNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTE2X2YxNl9tKSkpCnN2dWludDE2X3Qgc3ZjdnRfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UxNl9mMTZfeCkpKQpzdnVpbnQxNl90IHN2Y3Z0X3UxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MTZfZjE2X3opKSkKc3Z1aW50MTZfdCBzdmN2dF91MTZfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YxNl9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMTZfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjE2X3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2YzMl9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mMzJfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjMyX3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTMyX2Y2NF9tKSkpCnN2dWludDMyX3Qgc3ZjdnRfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3UzMl9mNjRfeCkpKQpzdnVpbnQzMl90IHN2Y3Z0X3UzMl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91MzJfZjY0X3opKSkKc3Z1aW50MzJfdCBzdmN2dF91MzJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YxNl9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMTZfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjE2X3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2YzMl9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mMzJfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjMyX3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfdTY0X2Y2NF9tKSkpCnN2dWludDY0X3Qgc3ZjdnRfdTY0X20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X3U2NF9mNjRfeCkpKQpzdnVpbnQ2NF90IHN2Y3Z0X3U2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF91NjRfZjY0X3opKSkKc3Z1aW50NjRfdCBzdmN2dF91NjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZGl2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZGl2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZGl2X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZGl2X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZGl2X3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZGl2X20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2ZGl2X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmRpdl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2X20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmRpdl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2X20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZkaXZfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl9zNjRfeikpKQpzdmludDY0X3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZGl2X3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZGl2X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRpdl91NjRfeikpKQpzdnVpbnQ2NF90IHN2ZGl2X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2ZGl2cl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl9tKSkpCnN2aW50MzJfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF9tKSkpCnN2aW50NjRfdCBzdmRpdnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl94KSkpCnN2aW50MzJfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF94KSkpCnN2aW50NjRfdCBzdmRpdnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3MzMl96KSkpCnN2aW50MzJfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3M2NF96KSkpCnN2aW50NjRfdCBzdmRpdnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZkaXZyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkaXZyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkaXZyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZG90KHN2aW50MzJfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9uX3M2NCkpKQpzdmludDY0X3Qgc3Zkb3Qoc3ZpbnQ2NF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmRvdChzdnVpbnQzMl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zkb3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmRvdChzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9zMzIpKSkKc3ZpbnQzMl90IHN2ZG90KHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X3M2NCkpKQpzdmludDY0X3Qgc3Zkb3Qoc3ZpbnQ2NF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF91MzIpKSkKc3Z1aW50MzJfdCBzdmRvdChzdnVpbnQzMl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF91NjQpKSkKc3Z1aW50NjRfdCBzdmRvdChzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmRvdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3Zkb3RfbGFuZShzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmRvdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2ZG90X2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZG90X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3Zkb3RfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4KSkpCnN2dWludDhfdCBzdmR1cF91OCh1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBfdTMyKHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBfdTY0KHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBfdTE2KHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBfczgoaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2Y2NChmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfZjMyKGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNikpKQpzdmZsb2F0MTZfdCBzdmR1cF9mMTYoZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczMyKSkpCnN2aW50MzJfdCBzdmR1cF9zMzIoaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBfczY0KGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZHVwX3MxNihpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZkdXBfdThfbShzdnVpbnQ4X3QsIHN2Ym9vbF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmR1cF91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2ZHVwX3U2NF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZkdXBfdTE2X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczhfbSkpKQpzdmludDhfdCBzdmR1cF9zOF9tKHN2aW50OF90LCBzdmJvb2xfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfZjY0X20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmR1cF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2ZHVwX2YxNl9tKHN2ZmxvYXQxNl90LCBzdmJvb2xfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fczMyX20pKSkKc3ZpbnQzMl90IHN2ZHVwX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZkdXBfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmR1cF9zMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYjgpKSkKc3Zib29sX3Qgc3ZkdXBfYjgoYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2IzMikpKQpzdmJvb2xfdCBzdmR1cF9iMzIoYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2I2NCkpKQpzdmJvb2xfdCBzdmR1cF9iNjQoYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2IxNikpKQpzdmJvb2xfdCBzdmR1cF9iMTYoYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2ZHVwX3U4X3goc3Zib29sX3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZHVwX3UzMl94KHN2Ym9vbF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZkdXBfdTY0X3goc3Zib29sX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmR1cF91MTZfeChzdmJvb2xfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zOF94KSkpCnN2aW50OF90IHN2ZHVwX3M4X3goc3Zib29sX3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2Y2NF94KHN2Ym9vbF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmR1cF9mMzJfeChzdmJvb2xfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfZjE2X3goc3Zib29sX3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmR1cF9zMzJfeChzdmJvb2xfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmR1cF9zNjRfeChzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmR1cF9zMTZfeChzdmJvb2xfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U4X3opKSkKc3Z1aW50OF90IHN2ZHVwX3U4X3ooc3Zib29sX3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZHVwX3UzMl96KHN2Ym9vbF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZkdXBfdTY0X3ooc3Zib29sX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmR1cF91MTZfeihzdmJvb2xfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9zOF96KSkpCnN2aW50OF90IHN2ZHVwX3M4X3ooc3Zib29sX3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwX2Y2NF96KHN2Ym9vbF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdmR1cF9mMzJfeihzdmJvb2xfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfZjE2X3ooc3Zib29sX3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmR1cF9zMzJfeihzdmJvb2xfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmR1cF9zNjRfeihzdmJvb2xfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmR1cF9zMTZfeihzdmJvb2xfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3U4KSkpCnN2dWludDhfdCBzdmR1cF9sYW5lKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2ZHVwX2xhbmUoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdmR1cF9sYW5lKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBfbGFuZShzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3M4KSkpCnN2aW50OF90IHN2ZHVwX2xhbmUoc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZkdXBfbGFuZShzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBfbGFuZShzdmZsb2F0MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBfbGFuZShzdmZsb2F0MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2ZHVwX2xhbmUoc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZkdXBfbGFuZShzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdmR1cF9sYW5lKHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBxX3UxNih1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QsIHVpbnQxNl90LCB1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZHVwcV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QsIGZsb2F0MTZfdCwgZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczE2KSkpCnN2aW50MTZfdCBzdmR1cHFfczE2KGludDE2X3QsIGludDE2X3QsIGludDE2X3QsIGludDE2X3QsIGludDE2X3QsIGludDE2X3QsIGludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBxX3UzMih1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZkdXBxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJfdCwgZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczMyKSkpCnN2aW50MzJfdCBzdmR1cHFfczMyKGludDMyX3QsIGludDMyX3QsIGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBxX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2ZHVwcV9mNjQoZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fczY0KSkpCnN2aW50NjRfdCBzdmR1cHFfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fdTgpKSkKc3Z1aW50OF90IHN2ZHVwcV91OCh1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX3M4KSkpCnN2aW50OF90IHN2ZHVwcV9zOChpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QsIGludDhfdCwgaW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjE2KSkpCnN2Ym9vbF90IHN2ZHVwcV9iMTYoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iMzIpKSkKc3Zib29sX3Qgc3ZkdXBxX2IzMihib29sLCBib29sLCBib29sLCBib29sKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2I2NCkpKQpzdmJvb2xfdCBzdmR1cHFfYjY0KGJvb2wsIGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX25fYjgpKSkKc3Zib29sX3Qgc3ZkdXBxX2I4KGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTgpKSkKc3Z1aW50OF90IHN2ZHVwcV9sYW5lKHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZkdXBxX2xhbmUoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZkdXBxX2xhbmUoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZkdXBxX2xhbmUoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczgpKSkKc3ZpbnQ4X3Qgc3ZkdXBxX2xhbmUoc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmR1cHFfbGFuZShzdmZsb2F0NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2ZHVwcV9sYW5lKHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZkdXBxX2xhbmUoc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZkdXBxX2xhbmUoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2ZHVwcV9sYW5lKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdmR1cHFfbGFuZShzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX2JfeikpKQpzdmJvb2xfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91OF9tKSkpCnN2dWludDhfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2ZW9yX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zOF9tKSkpCnN2aW50OF90IHN2ZW9yX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2ZW9yX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91OF94KSkpCnN2dWludDhfdCBzdmVvcl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2ZW9yX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmVvcl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zOF94KSkpCnN2aW50OF90IHN2ZW9yX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2ZW9yX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91OF96KSkpCnN2dWludDhfdCBzdmVvcl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmVvcl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zOF96KSkpCnN2aW50OF90IHN2ZW9yX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2ZW9yX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MTZfbSkpKQpzdnVpbnQxNl90IHN2ZW9yX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczhfbSkpKQpzdmludDhfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczMyX20pKSkKc3ZpbnQzMl90IHN2ZW9yX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M2NF9tKSkpCnN2aW50NjRfdCBzdmVvcl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zlb3JfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmVvcl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MTZfeCkpKQpzdnVpbnQxNl90IHN2ZW9yX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczhfeCkpKQpzdmludDhfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczMyX3gpKSkKc3ZpbnQzMl90IHN2ZW9yX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M2NF94KSkpCnN2aW50NjRfdCBzdmVvcl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zlb3JfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdThfeikpKQpzdnVpbnQ4X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmVvcl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl91MTZfeikpKQpzdnVpbnQxNl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczhfeikpKQpzdmludDhfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JfczMyX3opKSkKc3ZpbnQzMl90IHN2ZW9yX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yX3M2NF96KSkpCnN2aW50NjRfdCBzdmVvcl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcl9zMTZfeikpKQpzdmludDE2X3Qgc3Zlb3JfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3U4KSkpCnVpbnQ4X3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3UzMikpKQp1aW50MzJfdCBzdmVvcnYoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3U2NCkpKQp1aW50NjRfdCBzdmVvcnYoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3UxNikpKQp1aW50MTZfdCBzdmVvcnYoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3M4KSkpCmludDhfdCBzdmVvcnYoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydl9zMzIpKSkKaW50MzJfdCBzdmVvcnYoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnZfczY0KSkpCmludDY0X3Qgc3Zlb3J2KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J2X3MxNikpKQppbnQxNl90IHN2ZW9ydihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXhwYV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZleHBhKHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHBhX2YzMikpKQpzdmZsb2F0MzJfdCBzdmV4cGEoc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4cGFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2ZXhwYShzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0X3U4KSkpCnN2dWludDhfdCBzdmV4dChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZleHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZleHQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZleHQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRfczgpKSkKc3ZpbnQ4X3Qgc3ZleHQoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZleHQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZleHQoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZleHQoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9zMzIpKSkKc3ZpbnQzMl90IHN2ZXh0KHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9zNjQpKSkKc3ZpbnQ2NF90IHN2ZXh0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9zMTYpKSkKc3ZpbnQxNl90IHN2ZXh0KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczMyX20pKSkKc3ZpbnQzMl90IHN2ZXh0Yl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczY0X20pKSkKc3ZpbnQ2NF90IHN2ZXh0Yl9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczE2X20pKSkKc3ZpbnQxNl90IHN2ZXh0Yl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczMyX3gpKSkKc3ZpbnQzMl90IHN2ZXh0Yl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3M2NF94KSkpCnN2aW50NjRfdCBzdmV4dGJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZleHRiX3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfczMyX3opKSkKc3ZpbnQzMl90IHN2ZXh0Yl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRiX3M2NF96KSkpCnN2aW50NjRfdCBzdmV4dGJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0Yl9zMTZfeikpKQpzdmludDE2X3Qgc3ZleHRiX3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmV4dGJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmV4dGJfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmV4dGJfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmV4dGJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmV4dGJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmV4dGJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmV4dGJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmV4dGJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmV4dGJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczMyX20pKSkKc3ZpbnQzMl90IHN2ZXh0aF9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczY0X20pKSkKc3ZpbnQ2NF90IHN2ZXh0aF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczMyX3gpKSkKc3ZpbnQzMl90IHN2ZXh0aF94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3M2NF94KSkpCnN2aW50NjRfdCBzdmV4dGhfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0aF9zMzJfeikpKQpzdmludDMyX3Qgc3ZleHRoX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dGhfczY0X3opKSkKc3ZpbnQ2NF90IHN2ZXh0aF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZleHRoX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZleHRoX20oc3Z1aW50NjRfdCwgc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZleHRoX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZleHRoX3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZleHRoX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHRoX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZleHRoX3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3M2NF9tKSkpCnN2aW50NjRfdCBzdmV4dHdfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZleHR3X3M2NF94KSkpCnN2aW50NjRfdCBzdmV4dHdfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZXh0d19zNjRfeikpKQpzdmludDY0X3Qgc3ZleHR3X3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmV4dHdfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmV4dHdfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dHdfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmV4dHdfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfdTgpKSkKc3Z1aW50OF90IHN2Z2V0MihzdnVpbnQ4eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3UzMikpKQpzdnVpbnQzMl90IHN2Z2V0MihzdnVpbnQzMngyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml91NjQpKSkKc3Z1aW50NjRfdCBzdmdldDIoc3Z1aW50NjR4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfdTE2KSkpCnN2dWludDE2X3Qgc3ZnZXQyKHN2dWludDE2eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3M4KSkpCnN2aW50OF90IHN2Z2V0MihzdmludDh4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Z2V0MihzdmZsb2F0NjR4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Z2V0MihzdmZsb2F0MzJ4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Z2V0MihzdmZsb2F0MTZ4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDJfczMyKSkpCnN2aW50MzJfdCBzdmdldDIoc3ZpbnQzMngyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9zNjQpKSkKc3ZpbnQ2NF90IHN2Z2V0MihzdmludDY0eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX3MxNikpKQpzdmludDE2X3Qgc3ZnZXQyKHN2aW50MTZ4Ml90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTgpKSkKc3Z1aW50OF90IHN2Z2V0MyhzdnVpbnQ4eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3UzMikpKQpzdnVpbnQzMl90IHN2Z2V0MyhzdnVpbnQzMngzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M191NjQpKSkKc3Z1aW50NjRfdCBzdmdldDMoc3Z1aW50NjR4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfdTE2KSkpCnN2dWludDE2X3Qgc3ZnZXQzKHN2dWludDE2eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3M4KSkpCnN2aW50OF90IHN2Z2V0MyhzdmludDh4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Z2V0MyhzdmZsb2F0NjR4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Z2V0MyhzdmZsb2F0MzJ4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Z2V0MyhzdmZsb2F0MTZ4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfczMyKSkpCnN2aW50MzJfdCBzdmdldDMoc3ZpbnQzMngzX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0M19zNjQpKSkKc3ZpbnQ2NF90IHN2Z2V0MyhzdmludDY0eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX3MxNikpKQpzdmludDE2X3Qgc3ZnZXQzKHN2aW50MTZ4M190LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTgpKSkKc3Z1aW50OF90IHN2Z2V0NChzdnVpbnQ4eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3UzMikpKQpzdnVpbnQzMl90IHN2Z2V0NChzdnVpbnQzMng0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF91NjQpKSkKc3Z1aW50NjRfdCBzdmdldDQoc3Z1aW50NjR4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfdTE2KSkpCnN2dWludDE2X3Qgc3ZnZXQ0KHN2dWludDE2eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3M4KSkpCnN2aW50OF90IHN2Z2V0NChzdmludDh4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2Z2V0NChzdmZsb2F0NjR4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2Z2V0NChzdmZsb2F0MzJ4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfZjE2KSkpCnN2ZmxvYXQxNl90IHN2Z2V0NChzdmZsb2F0MTZ4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDRfczMyKSkpCnN2aW50MzJfdCBzdmdldDQoc3ZpbnQzMng0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0NF9zNjQpKSkKc3ZpbnQ2NF90IHN2Z2V0NChzdmludDY0eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X3MxNikpKQpzdmludDE2X3Qgc3ZnZXQ0KHN2aW50MTZ4NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZpbnNyKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmluc3Ioc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZpbnNyKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3UxNikpKQpzdnVpbnQxNl90IHN2aW5zcihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zOCkpKQpzdmludDhfdCBzdmluc3Ioc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZpbnNyKHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2aW5zcihzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX2YxNikpKQpzdmZsb2F0MTZfdCBzdmluc3Ioc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmluc3Jfbl9zMzIpKSkKc3ZpbnQzMl90IHN2aW5zcihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fczY0KSkpCnN2aW50NjRfdCBzdmluc3Ioc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX3MxNikpKQpzdmludDE2X3Qgc3ZpbnNyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3U4KSkpCnVpbnQ4X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfdTMyKSkpCnVpbnQzMl90IHN2bGFzdGEoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV91NjQpKSkKdWludDY0X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX3UxNikpKQp1aW50MTZfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfczgpKSkKaW50OF90IHN2bGFzdGEoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfZjY0KSkpCmZsb2F0NjRfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX2YzMikpKQpmbG9hdDMyX3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9mMTYpKSkKZmxvYXQxNl90IHN2bGFzdGEoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfczMyKSkpCmludDMyX3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfczY0KSkpCmludDY0X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGFfczE2KSkpCmludDE2X3Qgc3ZsYXN0YShzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfdTgpKSkKdWludDhfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl91MzIpKSkKdWludDMyX3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX3U2NCkpKQp1aW50NjRfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfdTE2KSkpCnVpbnQxNl90IHN2bGFzdGIoc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zOCkpKQppbnQ4X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9mNjQpKSkKZmxvYXQ2NF90IHN2bGFzdGIoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGFzdGJfZjMyKSkpCmZsb2F0MzJfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX2YxNikpKQpmbG9hdDE2X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zMzIpKSkKaW50MzJfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zNjQpKSkKaW50NjRfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9zMTYpKSkKaW50MTZfdCBzdmxhc3RiKHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdTgpKSkKc3Z1aW50OF90IHN2bGQxKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDEoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDEoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDEoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfczgpKSkKc3ZpbnQ4X3Qgc3ZsZDEoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMShzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZDEoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3MzMikpKQpzdmludDMyX3Qgc3ZsZDEoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfczE2KSkpCnN2aW50MTZfdCBzdmxkMShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX2luZGV4X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX2luZGV4X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXRfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0YmFzZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZDFfZ2F0aGVyX2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZDFfZ2F0aGVyX2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3UzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3U2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zMzJvZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGQxX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxX3ZudW0oc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxX3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMV92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFfdm51bShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfdTgpKSkKc3Z1aW50OF90IHN2bGQxcnEoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxcnEoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXJxKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFycShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3M4KSkpCnN2aW50OF90IHN2bGQxcnEoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxcnEoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxcnEoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxcnEoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcnFfczMyKSkpCnN2aW50MzJfdCBzdmxkMXJxKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxcnEoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFycShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2JfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzYl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2JfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zMzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2JfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNiX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXNoX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc2hfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzaF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFzd19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXN3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXViX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1Yl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWJfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXVoX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXVoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDF1d19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXV3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkMXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGQxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZDF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91OCkpKQpzdnVpbnQ4eDJfdCBzdmxkMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3UzMikpKQpzdnVpbnQzMngyX3Qgc3ZsZDIoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdTY0KSkpCnN2dWludDY0eDJfdCBzdmxkMihzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl91MTYpKSkKc3Z1aW50MTZ4Ml90IHN2bGQyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3M4KSkpCnN2aW50OHgyX3Qgc3ZsZDIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX2Y2NCkpKQpzdmZsb2F0NjR4Ml90IHN2bGQyKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdmxkMihzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfZjE2KSkpCnN2ZmxvYXQxNngyX3Qgc3ZsZDIoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3MzMikpKQpzdmludDMyeDJfdCBzdmxkMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3M2NCkpKQpzdmludDY0eDJfdCBzdmxkMihzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3MxNikpKQpzdmludDE2eDJfdCBzdmxkMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTgpKSkKc3Z1aW50OHgyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTMyKSkpCnN2dWludDMyeDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTY0KSkpCnN2dWludDY0eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fdTE2KSkpCnN2dWludDE2eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczgpKSkKc3ZpbnQ4eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2Y2NCkpKQpzdmZsb2F0NjR4Ml90IHN2bGQyX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMngyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX3MzMikpKQpzdmludDMyeDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfdm51bV9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZsZDJfdm51bShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fczE2KSkpCnN2aW50MTZ4Ml90IHN2bGQyX3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM191OCkpKQpzdnVpbnQ4eDNfdCBzdmxkMyhzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZsZDMoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdTY0KSkpCnN2dWludDY0eDNfdCBzdmxkMyhzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM191MTYpKSkKc3Z1aW50MTZ4M190IHN2bGQzKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3M4KSkpCnN2aW50OHgzX3Qgc3ZsZDMoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2bGQzKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19mMzIpKSkKc3ZmbG9hdDMyeDNfdCBzdmxkMyhzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZsZDMoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3MzMikpKQpzdmludDMyeDNfdCBzdmxkMyhzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3M2NCkpKQpzdmludDY0eDNfdCBzdmxkMyhzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3MxNikpKQpzdmludDE2eDNfdCBzdmxkMyhzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fdTgpKSkKc3Z1aW50OHgzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fdTMyKSkpCnN2dWludDMyeDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fdTY0KSkpCnN2dWludDY0eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fdTE2KSkpCnN2dWludDE2eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fczgpKSkKc3ZpbnQ4eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX2Y2NCkpKQpzdmZsb2F0NjR4M190IHN2bGQzX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9mMTYpKSkKc3ZmbG9hdDE2eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM192bnVtX3MzMikpKQpzdmludDMyeDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfdm51bV9zNjQpKSkKc3ZpbnQ2NHgzX3Qgc3ZsZDNfdm51bShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fczE2KSkpCnN2aW50MTZ4M190IHN2bGQzX3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91OCkpKQpzdnVpbnQ4eDRfdCBzdmxkNChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3UzMikpKQpzdnVpbnQzMng0X3Qgc3ZsZDQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdTY0KSkpCnN2dWludDY0eDRfdCBzdmxkNChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2bGQ0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3M4KSkpCnN2aW50OHg0X3Qgc3ZsZDQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2bGQ0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF9mMzIpKSkKc3ZmbG9hdDMyeDRfdCBzdmxkNChzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfZjE2KSkpCnN2ZmxvYXQxNng0X3Qgc3ZsZDQoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3MzMikpKQpzdmludDMyeDRfdCBzdmxkNChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3M2NCkpKQpzdmludDY0eDRfdCBzdmxkNChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3MxNikpKQpzdmludDE2eDRfdCBzdmxkNChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTgpKSkKc3Z1aW50OHg0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTMyKSkpCnN2dWludDMyeDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTY0KSkpCnN2dWludDY0eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fdTE2KSkpCnN2dWludDE2eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczgpKSkKc3ZpbnQ4eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2bGQ0X3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fZjMyKSkpCnN2ZmxvYXQzMng0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9mMTYpKSkKc3ZmbG9hdDE2eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkNF92bnVtX3MzMikpKQpzdmludDMyeDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9zNjQpKSkKc3ZpbnQ2NHg0X3Qgc3ZsZDRfdm51bShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fczE2KSkpCnN2aW50MTZ4NF90IHN2bGQ0X3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3U4KSkpCnN2dWludDhfdCBzdmxkZmYxKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3UxNikpKQpzdnVpbnQxNl90IHN2bGRmZjEoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9zOCkpKQpzdmludDhfdCBzdmxkZmYxKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkZmYxKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRmZjEoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2luZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXhfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRmZjFfZ2F0aGVyX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfZ2F0aGVyX29mZnNldF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRiYXNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTMyYmFzZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3MzMmluZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJpbmRleF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3M2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRpbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3UzMm9mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfZ2F0aGVyX3U2NG9mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTgpKSkKc3Z1aW50OF90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZGZmMV92bnVtKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9zOCkpKQpzdmludDhfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZGZmMV92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxX3ZudW1fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX2YxNikpKQpzdmZsb2F0MTZfdCBzdmxkZmYxX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9zMTYpKSkKc3ZpbnQxNl90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfczMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2JfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2JfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMmluZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMmluZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxc2hfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzaF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXNoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjFzd19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFzd19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXN3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl9zMzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXViX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWJfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1Yl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyYmFzZV91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJiYXNlX3MzMikpKQpzdmludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl9zMzJpbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczMyaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXVoX2dhdGhlcl91MzJpbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3MzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdWhfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1aF9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1aF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkZmYxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkZmYxdXdfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRmZjF1d19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMXV3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZGZmMXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdTgpKSkKc3Z1aW50OF90IHN2bGRuZjEoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjEoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbmYxKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdTE2KSkpCnN2dWludDE2X3Qgc3ZsZG5mMShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3M4KSkpCnN2aW50OF90IHN2bGRuZjEoc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRuZjEoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGRuZjEoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRuZjEoc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfczMyKSkpCnN2aW50MzJfdCBzdmxkbmYxKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRuZjEoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMShzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3UzMikpKQpzdnVpbnQzMl90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3M4KSkpCnN2aW50OF90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbmYxX3ZudW1fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGRuZjFfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3MzMikpKQpzdmludDMyX3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV92bnVtX3MxNikpKQpzdmludDE2X3Qgc3ZsZG5mMV92bnVtKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91OCkpKQpzdnVpbnQ4X3Qgc3ZsZG50MShzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MShzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDEoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV91MTYpKSkKc3Z1aW50MTZfdCBzdmxkbnQxKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczgpKSkKc3ZpbnQ4X3Qgc3ZsZG50MShzdmJvb2xfdCwgaW50OF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MShzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MShzdmJvb2xfdCwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZG50MShzdmJvb2xfdCwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDEoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MShzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfczE2KSkpCnN2aW50MTZfdCBzdmxkbnQxKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3U4KSkpCnN2dWludDhfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX3UxNikpKQpzdnVpbnQxNl90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczgpKSkKc3ZpbnQ4X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfdm51bShzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV92bnVtX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fczE2KSkpCnN2aW50MTZfdCBzdmxkbnQxX3ZudW0oc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl91OCkpKQp1aW50NjRfdCBzdmxlbihzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fdTMyKSkpCnVpbnQ2NF90IHN2bGVuKHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fdTY0KSkpCnVpbnQ2NF90IHN2bGVuKHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fdTE2KSkpCnVpbnQ2NF90IHN2bGVuKHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fczgpKSkKdWludDY0X3Qgc3ZsZW4oc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fZjY0KSkpCnVpbnQ2NF90IHN2bGVuKHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX2YzMikpKQp1aW50NjRfdCBzdmxlbihzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9mMTYpKSkKdWludDY0X3Qgc3ZsZW4oc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fczMyKSkpCnVpbnQ2NF90IHN2bGVuKHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxlbl9zNjQpKSkKdWludDY0X3Qgc3ZsZW4oc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGVuX3MxNikpKQp1aW50NjRfdCBzdmxlbihzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zOF9tKSkpCnN2aW50OF90IHN2bHNsX20oc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bHNsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzbF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczhfeCkpKQpzdmludDhfdCBzdmxzbF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmxzbF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bHNsX3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bHNsX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bHNsX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmxzbF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczhfbSkpKQpzdmludDhfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MzMl9tKSkpCnN2aW50MzJfdCBzdmxzbF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczY0X20pKSkKc3ZpbnQ2NF90IHN2bHNsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zsc2xfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bHNsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3M2NF94KSkpCnN2aW50NjRfdCBzdmxzbF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczE2X3gpKSkKc3ZpbnQxNl90IHN2bHNsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91OF96KSkpCnN2dWludDhfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfdTY0X3opKSkKc3Z1aW50NjRfdCBzdmxzbF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zOF96KSkpCnN2aW50OF90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfczMyX3opKSkKc3ZpbnQzMl90IHN2bHNsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF9zNjRfeikpKQpzdmludDY0X3Qgc3Zsc2xfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3MxNl96KSkpCnN2aW50MTZfdCBzdmxzbF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3U4X3opKSkKc3Z1aW50OF90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91OF9tKSkpCnN2dWludDhfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zOF9tKSkpCnN2aW50OF90IHN2bHNsX3dpZGVfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMzJfbSkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMTZfbSkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91OF94KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zOF94KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMzJfeCkpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMTZfeCkpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV91OF96KSkpCnN2dWludDhfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzbF93aWRlX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNsX3dpZGVfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzbF93aWRlX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zOF96KSkpCnN2aW50OF90IHN2bHNsX3dpZGVfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMzJfeikpKQpzdmludDMyX3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc2xfd2lkZV9zMTZfeikpKQpzdmludDE2X3Qgc3Zsc2xfd2lkZV96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91OF9tKSkpCnN2dWludDhfdCBzdmxzcl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bHNyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmxzcl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91OF94KSkpCnN2dWludDhfdCBzdmxzcl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bHNyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmxzcl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91OF96KSkpCnN2dWludDhfdCBzdmxzcl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bHNyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmxzcl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zsc3JfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzcl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zsc3JfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdThfeikpKQpzdnVpbnQ4X3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3JfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zsc3JfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV9uX3U4X3opKSkKc3Z1aW50OF90IHN2bHNyX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmxzcl93aWRlX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bHNyX3dpZGVfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91OF9tKSkpCnN2dWludDhfdCBzdmxzcl93aWRlX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91OF94KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsc3Jfd2lkZV91OF96KSkpCnN2dWludDhfdCBzdmxzcl93aWRlX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxzcl93aWRlX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zsc3Jfd2lkZV96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bHNyX3dpZGVfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmxzcl93aWRlX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWFkX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWFkX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91OF9tKSkpCnN2dWludDhfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWFkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91OF94KSkpCnN2dWludDhfdCBzdm1hZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWFkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1hZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91OF96KSkpCnN2dWludDhfdCBzdm1hZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWFkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1hZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWFkX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWFkX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWFkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1hZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYWRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zOF9tKSkpCnN2aW50OF90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczMyX20pKSkKc3ZpbnQzMl90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczE2X20pKSkKc3ZpbnQxNl90IHN2bWFkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWFkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1hZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYWRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zOF94KSkpCnN2aW50OF90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWFkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF91MzJfeikpKQpzdnVpbnQzMl90IHN2bWFkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1hZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWFkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtYWRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hZF9zOF96KSkpCnN2aW50OF90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczMyX3opKSkKc3ZpbnQzMl90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczY0X3opKSkKc3ZpbnQ2NF90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYWRfczE2X3opKSkKc3ZpbnQxNl90IHN2bWFkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWF4X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zOF9tKSkpCnN2aW50OF90IHN2bWF4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bWF4X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zOF94KSkpCnN2aW50OF90IHN2bWF4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWF4X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zOF96KSkpCnN2aW50OF90IHN2bWF4X3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bWF4X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91OF9tKSkpCnN2dWludDhfdCBzdm1heF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWF4X20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1heF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91OF94KSkpCnN2dWludDhfdCBzdm1heF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWF4X3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1heF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91OF96KSkpCnN2dWludDhfdCBzdm1heF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bWF4X3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1heF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4X20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1heF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczhfbSkpKQpzdmludDhfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczMyX20pKSkKc3ZpbnQzMl90IHN2bWF4X20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M2NF9tKSkpCnN2aW50NjRfdCBzdm1heF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczhfeCkpKQpzdmludDhfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWF4X3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M2NF94KSkpCnN2aW50NjRfdCBzdm1heF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczhfeikpKQpzdmludDhfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfczMyX3opKSkKc3ZpbnQzMl90IHN2bWF4X3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3M2NF96KSkpCnN2aW50NjRfdCBzdm1heF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1heF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYXhfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWF4X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1heF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYXhfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWF4X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1heF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtYXhfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heF91MTZfeikpKQpzdnVpbnQxNl90IHN2bWF4X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1fbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heG5tX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1feChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heG5tX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1feihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtYXhubV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1heG5tX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1fbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heG5tX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1heG5tX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjY0KSkpCmZsb2F0NjRfdCBzdm1heG5tdihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjMyKSkpCmZsb2F0MzJfdCBzdm1heG5tdihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXZfZjE2KSkpCmZsb2F0MTZfdCBzdm1heG5tdihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfZjMyKSkpCmZsb2F0MzJfdCBzdm1heHYoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9mMTYpKSkKZmxvYXQxNl90IHN2bWF4dihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3M4KSkpCmludDhfdCBzdm1heHYoc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl9zMzIpKSkKaW50MzJfdCBzdm1heHYoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHZfczY0KSkpCmludDY0X3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXh2X3MxNikpKQppbnQxNl90IHN2bWF4dihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl91OCkpKQp1aW50OF90IHN2bWF4dihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl91MzIpKSkKdWludDMyX3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl91NjQpKSkKdWludDY0X3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4dl91MTYpKSkKdWludDE2X3Qgc3ZtYXh2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWluX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWluX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWluX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczhfbSkpKQpzdmludDhfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczMyX20pKSkKc3ZpbnQzMl90IHN2bWluX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczhfeCkpKQpzdmludDhfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2bWluX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczhfeikpKQpzdmludDhfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bWluX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1pbl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1pbl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWluX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWluX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWluX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczE2X20pKSkKc3ZpbnQxNl90IHN2bWluX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MzMl94KSkpCnN2aW50MzJfdCBzdm1pbl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtaW5feChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczE2X3gpKSkKc3ZpbnQxNl90IHN2bWluX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3MzMl96KSkpCnN2aW50MzJfdCBzdm1pbl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZtaW5feihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fczE2X3opKSkKc3ZpbnQxNl90IHN2bWluX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U4X20pKSkKc3Z1aW50OF90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtaW5fbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWluX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1pbl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U4X3gpKSkKc3Z1aW50OF90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtaW5feChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWluX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3U4X3opKSkKc3Z1aW50OF90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWluX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtaW5feihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWluX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1pbl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWlubm1fbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1pbm5tX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWlubm1fbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWlubm1feChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubV9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1pbm5tX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bWlubm1feihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm12X2Y2NCkpKQpmbG9hdDY0X3Qgc3ZtaW5ubXYoc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm12X2YzMikpKQpmbG9hdDMyX3Qgc3ZtaW5ubXYoc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm12X2YxNikpKQpmbG9hdDE2X3Qgc3ZtaW5ubXYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9mNjQpKSkKZmxvYXQ2NF90IHN2bWludihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X2YzMikpKQpmbG9hdDMyX3Qgc3ZtaW52KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfZjE2KSkpCmZsb2F0MTZfdCBzdm1pbnYoc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9zOCkpKQppbnQ4X3Qgc3ZtaW52KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfczMyKSkpCmludDMyX3Qgc3ZtaW52KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW52X3M2NCkpKQppbnQ2NF90IHN2bWludihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWludl9zMTYpKSkKaW50MTZfdCBzdm1pbnYoc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTgpKSkKdWludDhfdCBzdm1pbnYoc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTMyKSkpCnVpbnQzMl90IHN2bWludihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTY0KSkpCnVpbnQ2NF90IHN2bWludihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnZfdTE2KSkpCnVpbnQxNl90IHN2bWludihzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxhX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U4X20pKSkKc3Z1aW50OF90IHN2bWxhX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWxhX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczhfbSkpKQpzdmludDhfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U4X3gpKSkKc3Z1aW50OF90IHN2bWxhX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxhX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczhfeCkpKQpzdmludDhfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U4X3opKSkKc3Z1aW50OF90IHN2bWxhX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWxhX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX25fczhfeikpKQpzdmludDhfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxhX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxhX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91OF9tKSkpCnN2dWludDhfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWxhX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sYV9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbGFfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91OF94KSkpCnN2dWludDhfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxhX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sYV94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbGFfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91OF96KSkpCnN2dWludDhfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV91NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxhX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sYV96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMzJfeikpKQpzdmludDMyX3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zNjRfeikpKQpzdmludDY0X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9zMTZfeikpKQpzdmludDE2X3Qgc3ZtbGFfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdm1sYV9sYW5lKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtbGFfbGFuZShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWxzX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1sc194KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm1sc196KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U4X20pKSkKc3Z1aW50OF90IHN2bWxzX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWxzX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczhfbSkpKQpzdmludDhfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U4X3gpKSkKc3Z1aW50OF90IHN2bWxzX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWxzX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczhfeCkpKQpzdmludDhfdCBzdm1sc194KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MzMl94KSkpCnN2aW50MzJfdCBzdm1sc194KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M2NF94KSkpCnN2aW50NjRfdCBzdm1sc194KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MxNl94KSkpCnN2aW50MTZfdCBzdm1sc194KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U4X3opKSkKc3Z1aW50OF90IHN2bWxzX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2bWxzX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX25fczhfeikpKQpzdmludDhfdCBzdm1sc196KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MzMl96KSkpCnN2aW50MzJfdCBzdm1sc196KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3M2NF96KSkpCnN2aW50NjRfdCBzdm1sc196KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19uX3MxNl96KSkpCnN2aW50MTZfdCBzdm1sc196KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWxzX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1sc194KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWxzX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1sc196KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191OF9tKSkpCnN2dWludDhfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWxzX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1sc19tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMzJfbSkpKQpzdmludDMyX3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zNjRfbSkpKQpzdmludDY0X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMTZfbSkpKQpzdmludDE2X3Qgc3ZtbHNfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191OF94KSkpCnN2dWludDhfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWxzX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1sc194KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMzJfeCkpKQpzdmludDMyX3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zNjRfeCkpKQpzdmludDY0X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMTZfeCkpKQpzdmludDE2X3Qgc3ZtbHNfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191OF96KSkpCnN2dWludDhfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc191NjRfeikpKQpzdnVpbnQ2NF90IHN2bWxzX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1sc196KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMzJfeikpKQpzdmludDMyX3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zNjRfeikpKQpzdmludDY0X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19zMTZfeikpKQpzdmludDE2X3Qgc3ZtbHNfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdm1sc19sYW5lKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZtbHNfbGFuZShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdl9iX3opKSkKc3Zib29sX3Qgc3Ztb3ZfeihzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXNiX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXNiX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91OF9tKSkpCnN2dWludDhfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXNiX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91OF94KSkpCnN2dWludDhfdCBzdm1zYl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXNiX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1zYl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91OF96KSkpCnN2dWludDhfdCBzdm1zYl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2bXNiX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm1zYl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2Jfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXNiX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXNiX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdThfbSkpKQpzdnVpbnQ4X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXNiX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm1zYl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Ztc2JfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zOF9tKSkpCnN2aW50OF90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczMyX20pKSkKc3ZpbnQzMl90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczY0X20pKSkKc3ZpbnQ2NF90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczE2X20pKSkKc3ZpbnQxNl90IHN2bXNiX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdThfeCkpKQpzdnVpbnQ4X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXNiX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1zYl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UxNl94KSkpCnN2dWludDE2X3Qgc3Ztc2JfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zOF94KSkpCnN2aW50OF90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczE2X3gpKSkKc3ZpbnQxNl90IHN2bXNiX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdThfeikpKQpzdnVpbnQ4X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl91MzJfeikpKQpzdnVpbnQzMl90IHN2bXNiX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfdTY0X3opKSkKc3Z1aW50NjRfdCBzdm1zYl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXNiX3UxNl96KSkpCnN2dWludDE2X3Qgc3Ztc2JfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1zYl9zOF96KSkpCnN2aW50OF90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczMyX3opKSkKc3ZpbnQzMl90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczY0X3opKSkKc3ZpbnQ2NF90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztc2JfczE2X3opKSkKc3ZpbnQxNl90IHN2bXNiX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXVsX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm11bF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXVsX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm11bF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXVsX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91OF9tKSkpCnN2dWludDhfdCBzdm11bF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXVsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zOF9tKSkpCnN2aW50OF90IHN2bXVsX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91OF94KSkpCnN2dWludDhfdCBzdm11bF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXVsX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm11bF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zOF94KSkpCnN2aW50OF90IHN2bXVsX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2bXVsX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91OF96KSkpCnN2dWludDhfdCBzdm11bF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2bXVsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm11bF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zOF96KSkpCnN2aW50OF90IHN2bXVsX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bXVsX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVsX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVsX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm11bF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVsX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm11bF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczhfbSkpKQpzdmludDhfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M2NF9tKSkpCnN2aW50NjRfdCBzdm11bF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm11bF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczhfeCkpKQpzdmludDhfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczMyX3gpKSkKc3ZpbnQzMl90IHN2bXVsX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdThfeikpKQpzdnVpbnQ4X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm11bF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF91MTZfeikpKQpzdnVpbnQxNl90IHN2bXVsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczhfeikpKQpzdmludDhfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9zMTZfeikpKQpzdmludDE2X3Qgc3ZtdWxfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWxfbGFuZShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bXVsX2xhbmUoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX2YxNikpKQpzdmZsb2F0MTZfdCBzdm11bF9sYW5lKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczhfbSkpKQpzdmludDhfdCBzdm11bGhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl9zOF94KSkpCnN2aW50OF90IHN2bXVsaF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdm11bGhfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdm11bGhfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm11bGhfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczMyX3opKSkKc3ZpbnQzMl90IHN2bXVsaF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2bXVsaF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fczE2X3opKSkKc3ZpbnQxNl90IHN2bXVsaF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfbl91OF94KSkpCnN2dWludDhfdCBzdm11bGhfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9uX3U4X3opKSkKc3Z1aW50OF90IHN2bXVsaF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdm11bGhfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm11bGhfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdm11bGhfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtdWxoX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczMyX20pKSkKc3ZpbnQzMl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczY0X20pKSkKc3ZpbnQ2NF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczE2X20pKSkKc3ZpbnQxNl90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfczhfeCkpKQpzdmludDhfdCBzdm11bGhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF9zOF96KSkpCnN2aW50OF90IHN2bXVsaF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MzMl96KSkpCnN2aW50MzJfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3M2NF96KSkpCnN2aW50NjRfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3MxNl96KSkpCnN2aW50MTZfdCBzdm11bGhfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U4X20pKSkKc3Z1aW50OF90IHN2bXVsaF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdTE2X20pKSkKc3Z1aW50MTZfdCBzdm11bGhfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGhfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZtdWxoX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bXVsaF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsaF91OF96KSkpCnN2dWludDhfdCBzdm11bGhfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxoX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZtdWxoX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtdWx4X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtdWx4X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZtdWx4X3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZtdWx4X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZtdWx4X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bXVseF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bXVseF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWx4X2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bXVseF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYW5kX2JfeikpKQpzdmJvb2xfdCBzdm5hbmRfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bmVnX20oc3ZmbG9hdDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm5lZ19tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZuZWdfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bmVnX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bmVnX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bmVnX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2bmVnX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bmVnX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bmVnX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZuZWdfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MzMl9tKSkpCnN2aW50MzJfdCBzdm5lZ19tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfbSkpKQpzdmludDY0X3Qgc3ZuZWdfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczE2X20pKSkKc3ZpbnQxNl90IHN2bmVnX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZuZWdfeChzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczMyX3gpKSkKc3ZpbnQzMl90IHN2bmVnX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zNjRfeCkpKQpzdmludDY0X3Qgc3ZuZWdfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3MxNl94KSkpCnN2aW50MTZfdCBzdm5lZ194KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczhfeikpKQpzdmludDhfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5lZ19zMzJfeikpKQpzdmludDMyX3Qgc3ZuZWdfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmVnX3M2NF96KSkpCnN2aW50NjRfdCBzdm5lZ196KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuZWdfczE2X3opKSkKc3ZpbnQxNl90IHN2bmVnX3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1hZF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tYWRfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tYWRfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYWRfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWFkX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWFkX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1hZF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hZF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tYWRfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sYV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tbGFfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tbGFfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxhX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sYV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sYV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tbGFfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1sc194KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1sc196KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1sc19tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tbHNfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1sc194KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tbHNfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tbHNfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubWxzX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWxzX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1sc196KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1sc19mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tbHNfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm5tc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm5tc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2Jfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdm5tc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX25fZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZubXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9uX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2bm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bm1zYl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm5tc2JfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm5tc2JfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tc2JfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZubXNiX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubXNiX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2bm1zYl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1zYl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdm5tc2JfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vcl9iX3opKSkKc3Zib29sX3Qgc3Zub3JfeihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X2JfeikpKQpzdmJvb2xfdCBzdm5vdF96KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91OF9tKSkpCnN2dWludDhfdCBzdm5vdF9tKHN2dWludDhfdCwgc3Zib29sX3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bm90X20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTY0X20pKSkKc3Z1aW50NjRfdCBzdm5vdF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zub3RfbShzdnVpbnQxNl90LCBzdmJvb2xfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zOF9tKSkpCnN2aW50OF90IHN2bm90X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zub3RfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczY0X20pKSkKc3ZpbnQ2NF90IHN2bm90X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3MxNl9tKSkpCnN2aW50MTZfdCBzdm5vdF9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91OF94KSkpCnN2dWludDhfdCBzdm5vdF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm5vdF94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U2NF94KSkpCnN2dWludDY0X3Qgc3Zub3RfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bm90X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczhfeCkpKQpzdmludDhfdCBzdm5vdF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMzJfeCkpKQpzdmludDMyX3Qgc3Zub3RfeChzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF94KSkpCnN2aW50NjRfdCBzdm5vdF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczE2X3gpKSkKc3ZpbnQxNl90IHN2bm90X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91OF96KSkpCnN2dWludDhfdCBzdm5vdF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm5vdF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3U2NF96KSkpCnN2dWludDY0X3Qgc3Zub3RfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF91MTZfeikpKQpzdnVpbnQxNl90IHN2bm90X3ooc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczhfeikpKQpzdmludDhfdCBzdm5vdF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5vdF9zMzJfeikpKQpzdmludDMyX3Qgc3Zub3RfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm90X3M2NF96KSkpCnN2aW50NjRfdCBzdm5vdF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zub3RfczE2X3opKSkKc3ZpbnQxNl90IHN2bm90X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ybl9iX3opKSkKc3Zib29sX3Qgc3Zvcm5feihzdmJvb2xfdCwgc3Zib29sX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX2JfeikpKQpzdmJvb2xfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmJvb2xfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91OF9tKSkpCnN2dWludDhfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2b3JyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zOF9tKSkpCnN2aW50OF90IHN2b3JyX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2b3JyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91OF94KSkpCnN2dWludDhfdCBzdm9ycl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2b3JyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm9ycl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zOF94KSkpCnN2aW50OF90IHN2b3JyX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2b3JyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91OF96KSkpCnN2dWludDhfdCBzdm9ycl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2b3JyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdm9ycl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zOF96KSkpCnN2aW50OF90IHN2b3JyX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2b3JyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MTZfbSkpKQpzdnVpbnQxNl90IHN2b3JyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczhfbSkpKQpzdmludDhfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczMyX20pKSkKc3ZpbnQzMl90IHN2b3JyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M2NF9tKSkpCnN2aW50NjRfdCBzdm9ycl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZvcnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm9ycl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MTZfeCkpKQpzdnVpbnQxNl90IHN2b3JyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczhfeCkpKQpzdmludDhfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2b3JyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M2NF94KSkpCnN2aW50NjRfdCBzdm9ycl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZvcnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdThfeikpKQpzdnVpbnQ4X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdm9ycl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl91MTZfeikpKQpzdnVpbnQxNl90IHN2b3JyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczhfeikpKQpzdmludDhfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnJfczMyX3opKSkKc3ZpbnQzMl90IHN2b3JyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3JyX3M2NF96KSkpCnN2aW50NjRfdCBzdm9ycl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ycl9zMTZfeikpKQpzdmludDE2X3Qgc3ZvcnJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTgpKSkKdWludDhfdCBzdm9ydihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3UzMikpKQp1aW50MzJfdCBzdm9ydihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl91NjQpKSkKdWludDY0X3Qgc3ZvcnYoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfdTE2KSkpCnVpbnQxNl90IHN2b3J2KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3M4KSkpCmludDhfdCBzdm9ydihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZvcnZfczMyKSkpCmludDMyX3Qgc3ZvcnYoc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm9ydl9zNjQpKSkKaW50NjRfdCBzdm9ydihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2b3J2X3MxNikpKQppbnQxNl90IHN2b3J2KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBmYWxzZV9iKSkpCnN2Ym9vbF90IHN2cGZhbHNlKCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBmaXJzdF9iKSkpCnN2Ym9vbF90IHN2cGZpcnN0KHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmJfZ2F0aGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZiX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmYl9nYXRoZXJfczMyb2Zmc2V0KSkpCnZvaWQgc3ZwcmZiX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl91MzJvZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZiX2dhdGhlcl9zNjRvZmZzZXQpKSkKdm9pZCBzdnByZmJfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgdm9pZCBjb25zdCAqLCBzdmludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmJfZ2F0aGVyX3U2NG9mZnNldCkpKQp2b2lkIHN2cHJmYl9nYXRoZXJfb2Zmc2V0KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmRfZ2F0aGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZkX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTMyYmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmRfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZkX2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmZF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfczY0aW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmZF9nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZmRfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZmhfZ2F0aGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZoX2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTMyYmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZmhfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZoX2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmaF9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfczY0aW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmaF9nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZmhfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3UzMmJhc2UpKSkKdm9pZCBzdnByZndfZ2F0aGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91NjRiYXNlKSkpCnZvaWQgc3ZwcmZ3X2dhdGhlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTMyYmFzZV9pbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnByZndfZ2F0aGVyX3U2NGJhc2VfaW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl9zMzJpbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3ZpbnQzMl90LCBlbnVtIHN2cHJmb3ApOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwcmZ3X2dhdGhlcl91MzJpbmRleCkpKQp2b2lkIHN2cHJmd19nYXRoZXJfaW5kZXgoc3Zib29sX3QsIHZvaWQgY29uc3QgKiwgc3Z1aW50MzJfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfczY0aW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2aW50NjRfdCwgZW51bSBzdnByZm9wKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cHJmd19nYXRoZXJfdTY0aW5kZXgpKSkKdm9pZCBzdnByZndfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB2b2lkIGNvbnN0ICosIHN2dWludDY0X3QsIGVudW0gc3ZwcmZvcCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zOCkpKQpzdmludDhfdCBzdnFhZGQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWFkZChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0KSkpCnN2aW50NjRfdCBzdnFhZGQoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxYWRkKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnFhZGQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZxYWRkKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNikpKQpzdnVpbnQxNl90IHN2cWFkZChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczgpKSkKc3ZpbnQ4X3Qgc3ZxYWRkKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyKSkpCnN2aW50MzJfdCBzdnFhZGQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NCkpKQpzdmludDY0X3Qgc3ZxYWRkKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTYpKSkKc3ZpbnQxNl90IHN2cWFkZChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTgpKSkKc3Z1aW50OF90IHN2cWFkZChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTMyKSkpCnN2dWludDMyX3Qgc3ZxYWRkKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U2NCkpKQpzdnVpbnQ2NF90IHN2cWFkZChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MTYpKSkKc3Z1aW50MTZfdCBzdnFhZGQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fczMyKSkpCmludDMyX3Qgc3ZxZGVjYihpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fczY0KSkpCmludDY0X3Qgc3ZxZGVjYihpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2IodWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Jfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjYih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNiX3BhdChpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNiX3BhdChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjYl9wYXRfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjYl9wYXQodWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNiX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNiX3BhdCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl9zMzIpKSkKaW50MzJfdCBzdnFkZWNkKGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl9zNjQpKSkKaW50NjRfdCBzdnFkZWNkKGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2Rfbl91MzIpKSkKdWludDMyX3Qgc3ZxZGVjZCh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9uX3U2NCkpKQp1aW50NjRfdCBzdnFkZWNkKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3M2NCkpKQpzdmludDY0X3Qgc3ZxZGVjZChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfdTY0KSkpCnN2dWludDY0X3Qgc3ZxZGVjZChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWRlY2RfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2RfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNkX3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2RfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2RfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjZF9wYXRfczY0KSkpCnN2aW50NjRfdCBzdnFkZWNkX3BhdChzdmludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNkX3BhdF91NjQpKSkKc3Z1aW50NjRfdCBzdnFkZWNkX3BhdChzdnVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3MzMikpKQppbnQzMl90IHN2cWRlY2goaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3M2NCkpKQppbnQ2NF90IHN2cWRlY2goaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9uX3UzMikpKQp1aW50MzJfdCBzdnFkZWNoKHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY2godWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNoKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF91MTYpKSkKc3Z1aW50MTZfdCBzdnFkZWNoKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjaF9wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxZGVjaF9wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY2hfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjaF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjaF9wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNoX3BhdF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRlY2hfcGF0KHN2aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY2hfcGF0X3UxNikpKQpzdnVpbnQxNl90IHN2cWRlY2hfcGF0KHN2dWludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczMyX2I4KSkpCmludDMyX3Qgc3ZxZGVjcF9iOChpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczMyX2IzMikpKQppbnQzMl90IHN2cWRlY3BfYjMyKGludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zMzJfYjY0KSkpCmludDMyX3Qgc3ZxZGVjcF9iNjQoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3MzMl9iMTYpKSkKaW50MzJfdCBzdnFkZWNwX2IxNihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2I4KSkpCmludDY0X3Qgc3ZxZGVjcF9iOChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fczY0X2IzMikpKQppbnQ2NF90IHN2cWRlY3BfYjMyKGludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl9zNjRfYjY0KSkpCmludDY0X3Qgc3ZxZGVjcF9iNjQoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3M2NF9iMTYpKSkKaW50NjRfdCBzdnFkZWNwX2IxNihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2I4KSkpCnVpbnQzMl90IHN2cWRlY3BfYjgodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91MzJfYjMyKSkpCnVpbnQzMl90IHN2cWRlY3BfYjMyKHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTMyX2I2NCkpKQp1aW50MzJfdCBzdnFkZWNwX2I2NCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3UzMl9iMTYpKSkKdWludDMyX3Qgc3ZxZGVjcF9iMTYodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjgpKSkKdWludDY0X3Qgc3ZxZGVjcF9iOCh1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9uX3U2NF9iMzIpKSkKdWludDY0X3Qgc3ZxZGVjcF9iMzIodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3Bfbl91NjRfYjY0KSkpCnVpbnQ2NF90IHN2cWRlY3BfYjY0KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX25fdTY0X2IxNikpKQp1aW50NjRfdCBzdnFkZWNwX2IxNih1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRlY3Aoc3ZpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3M2NCkpKQpzdmludDY0X3Qgc3ZxZGVjcChzdmludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfczE2KSkpCnN2aW50MTZfdCBzdnFkZWNwKHN2aW50MTZfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjcF91MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWNwKHN2dWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3BfdTY0KSkpCnN2dWludDY0X3Qgc3ZxZGVjcChzdnVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWNwX3UxNikpKQpzdnVpbnQxNl90IHN2cWRlY3Aoc3Z1aW50MTZfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3MzMikpKQppbnQzMl90IHN2cWRlY3coaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3M2NCkpKQppbnQ2NF90IHN2cWRlY3coaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19uX3UzMikpKQp1aW50MzJfdCBzdnFkZWN3KHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X25fdTY0KSkpCnVpbnQ2NF90IHN2cWRlY3codWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfczMyKSkpCnN2aW50MzJfdCBzdnFkZWN3KHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd191MzIpKSkKc3Z1aW50MzJfdCBzdnFkZWN3KHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxZGVjd19wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxZGVjd19wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWRlY3dfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZGVjd19wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxZGVjd19wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkZWN3X3BhdF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRlY3dfcGF0KHN2aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRlY3dfcGF0X3UzMikpKQpzdnVpbnQzMl90IHN2cWRlY3dfcGF0KHN2dWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fczMyKSkpCmludDMyX3Qgc3ZxaW5jYihpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fczY0KSkpCmludDY0X3Qgc3ZxaW5jYihpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2IodWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Jfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jYih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNiX3BhdChpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNiX3BhdChpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jYl9wYXRfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jYl9wYXQodWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNiX3BhdF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNiX3BhdCh1aW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl9zMzIpKSkKaW50MzJfdCBzdnFpbmNkKGludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl9zNjQpKSkKaW50NjRfdCBzdnFpbmNkKGludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2Rfbl91MzIpKSkKdWludDMyX3Qgc3ZxaW5jZCh1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9uX3U2NCkpKQp1aW50NjRfdCBzdnFpbmNkKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3M2NCkpKQpzdmludDY0X3Qgc3ZxaW5jZChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfdTY0KSkpCnN2dWludDY0X3Qgc3ZxaW5jZChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3MzMikpKQppbnQzMl90IHN2cWluY2RfcGF0KGludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2RfcGF0KGludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNkX3BhdCh1aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2RfcGF0X25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2RfcGF0KHVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jZF9wYXRfczY0KSkpCnN2aW50NjRfdCBzdnFpbmNkX3BhdChzdmludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNkX3BhdF91NjQpKSkKc3Z1aW50NjRfdCBzdnFpbmNkX3BhdChzdnVpbnQ2NF90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3MzMikpKQppbnQzMl90IHN2cWluY2goaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3M2NCkpKQppbnQ2NF90IHN2cWluY2goaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9uX3UzMikpKQp1aW50MzJfdCBzdnFpbmNoKHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY2godWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNoKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF91MTYpKSkKc3Z1aW50MTZfdCBzdnFpbmNoKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jaF9wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxaW5jaF9wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY2hfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jaF9wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jaF9wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNoX3BhdF9zMTYpKSkKc3ZpbnQxNl90IHN2cWluY2hfcGF0KHN2aW50MTZfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY2hfcGF0X3UxNikpKQpzdnVpbnQxNl90IHN2cWluY2hfcGF0KHN2dWludDE2X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczMyX2I4KSkpCmludDMyX3Qgc3ZxaW5jcF9iOChpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczMyX2IzMikpKQppbnQzMl90IHN2cWluY3BfYjMyKGludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zMzJfYjY0KSkpCmludDMyX3Qgc3ZxaW5jcF9iNjQoaW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3MzMl9iMTYpKSkKaW50MzJfdCBzdnFpbmNwX2IxNihpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2I4KSkpCmludDY0X3Qgc3ZxaW5jcF9iOChpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fczY0X2IzMikpKQppbnQ2NF90IHN2cWluY3BfYjMyKGludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl9zNjRfYjY0KSkpCmludDY0X3Qgc3ZxaW5jcF9iNjQoaW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3M2NF9iMTYpKSkKaW50NjRfdCBzdnFpbmNwX2IxNihpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2I4KSkpCnVpbnQzMl90IHN2cWluY3BfYjgodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91MzJfYjMyKSkpCnVpbnQzMl90IHN2cWluY3BfYjMyKHVpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTMyX2I2NCkpKQp1aW50MzJfdCBzdnFpbmNwX2I2NCh1aW50MzJfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3UzMl9iMTYpKSkKdWludDMyX3Qgc3ZxaW5jcF9iMTYodWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjgpKSkKdWludDY0X3Qgc3ZxaW5jcF9iOCh1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9uX3U2NF9iMzIpKSkKdWludDY0X3Qgc3ZxaW5jcF9iMzIodWludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3Bfbl91NjRfYjY0KSkpCnVpbnQ2NF90IHN2cWluY3BfYjY0KHVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX25fdTY0X2IxNikpKQp1aW50NjRfdCBzdnFpbmNwX2IxNih1aW50NjRfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF9zMzIpKSkKc3ZpbnQzMl90IHN2cWluY3Aoc3ZpbnQzMl90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3M2NCkpKQpzdmludDY0X3Qgc3ZxaW5jcChzdmludDY0X3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfczE2KSkpCnN2aW50MTZfdCBzdnFpbmNwKHN2aW50MTZfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jcF91MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmNwKHN2dWludDMyX3QsIHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3BfdTY0KSkpCnN2dWludDY0X3Qgc3ZxaW5jcChzdnVpbnQ2NF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmNwX3UxNikpKQpzdnVpbnQxNl90IHN2cWluY3Aoc3Z1aW50MTZfdCwgc3Zib29sX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3MzMikpKQppbnQzMl90IHN2cWluY3coaW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3M2NCkpKQppbnQ2NF90IHN2cWluY3coaW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19uX3UzMikpKQp1aW50MzJfdCBzdnFpbmN3KHVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X25fdTY0KSkpCnVpbnQ2NF90IHN2cWluY3codWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfczMyKSkpCnN2aW50MzJfdCBzdnFpbmN3KHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd191MzIpKSkKc3Z1aW50MzJfdCBzdnFpbmN3KHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fczMyKSkpCmludDMyX3Qgc3ZxaW5jd19wYXQoaW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fczY0KSkpCmludDY0X3Qgc3ZxaW5jd19wYXQoaW50NjRfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X25fdTMyKSkpCnVpbnQzMl90IHN2cWluY3dfcGF0KHVpbnQzMl90LCBlbnVtIHN2cGF0dGVybiwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxaW5jd19wYXRfbl91NjQpKSkKdWludDY0X3Qgc3ZxaW5jd19wYXQodWludDY0X3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFpbmN3X3BhdF9zMzIpKSkKc3ZpbnQzMl90IHN2cWluY3dfcGF0KHN2aW50MzJfdCwgZW51bSBzdnBhdHRlcm4sIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWluY3dfcGF0X3UzMikpKQpzdnVpbnQzMl90IHN2cWluY3dfcGF0KHN2dWludDMyX3QsIGVudW0gc3ZwYXR0ZXJuLCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zOCkpKQpzdmludDhfdCBzdnFzdWIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXN1YihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0KSkpCnN2aW50NjRfdCBzdnFzdWIoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNikpKQpzdmludDE2X3Qgc3Zxc3ViKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnFzdWIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zxc3ViKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2cXN1YihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczgpKSkKc3ZpbnQ4X3Qgc3Zxc3ViKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyKSkpCnN2aW50MzJfdCBzdnFzdWIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NCkpKQpzdmludDY0X3Qgc3Zxc3ViKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTYpKSkKc3ZpbnQxNl90IHN2cXN1YihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTgpKSkKc3Z1aW50OF90IHN2cXN1YihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTMyKSkpCnN2dWludDMyX3Qgc3Zxc3ViKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U2NCkpKQpzdnVpbnQ2NF90IHN2cXN1YihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MTYpKSkKc3Z1aW50MTZfdCBzdnFzdWIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZyYml0X20oc3Z1aW50OF90LCBzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmJpdF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmJpdF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmJpdF9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF9tKSkpCnN2aW50OF90IHN2cmJpdF9tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MzMl9tKSkpCnN2aW50MzJfdCBzdnJiaXRfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M2NF9tKSkpCnN2aW50NjRfdCBzdnJiaXRfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MxNl9tKSkpCnN2aW50MTZfdCBzdnJiaXRfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U4X3gpKSkKc3Z1aW50OF90IHN2cmJpdF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3UzMl94KSkpCnN2dWludDMyX3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3UxNl94KSkpCnN2dWludDE2X3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyYml0X3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmJpdF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3MxNl94KSkpCnN2aW50MTZfdCBzdnJiaXRfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91OF96KSkpCnN2dWludDhfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmJpdF96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmJpdF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF91MTZfeikpKQpzdnVpbnQxNl90IHN2cmJpdF96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zOF96KSkpCnN2aW50OF90IHN2cmJpdF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJiaXRfczMyX3opKSkKc3ZpbnQzMl90IHN2cmJpdF96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYml0X3M2NF96KSkpCnN2aW50NjRfdCBzdnJiaXRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmJpdF9zMTZfeikpKQpzdmludDE2X3Qgc3ZyYml0X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJlY3BlKHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cmVjcGUoc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNwZShzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJlY3BzKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2YzMikpKQpzdmZsb2F0MzJfdCBzdnJlY3BzKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BzX2YxNikpKQpzdmZsb2F0MTZfdCBzdnJlY3BzKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZyZWNweF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnJlY3B4X20oc3ZmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnJlY3B4X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3B4X2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2cmVjcHhfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNweF9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnJlY3B4X3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcHhfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZyZWNweF96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91OCkpKQpzdnVpbnQ4X3Qgc3ZyZXYoc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3UzMikpKQpzdnVpbnQzMl90IHN2cmV2KHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfdTY0KSkpCnN2dWludDY0X3Qgc3ZyZXYoc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl91MTYpKSkKc3Z1aW50MTZfdCBzdnJldihzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3M4KSkpCnN2aW50OF90IHN2cmV2KHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJldihzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZyZXYoc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cmV2KHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3MzMikpKQpzdmludDMyX3Qgc3ZyZXYoc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3M2NCkpKQpzdmludDY0X3Qgc3ZyZXYoc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X3MxNikpKQpzdmludDE2X3Qgc3ZyZXYoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmV2Yl9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmV2Yl9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmV2Yl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyZXZiX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyZXZiX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZyZXZiX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmV2Yl94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmV2Yl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cmV2Yl94KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyZXZiX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2Yl94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3MxNl94KSkpCnN2aW50MTZfdCBzdnJldmJfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2cmV2Yl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmV2Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2cmV2Yl96KHN2Ym9vbF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2Yl9zMzJfeikpKQpzdmludDMyX3Qgc3ZyZXZiX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmJfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmV2Yl96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZiX3MxNl96KSkpCnN2aW50MTZfdCBzdnJldmJfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmV2aF9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cmV2aF9tKHN2dWludDY0X3QsIHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyZXZoX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZyZXZoX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmV2aF94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmV2aF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyZXZoX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldmhfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2aF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyZXZoX3ooc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyZXZoX3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZoX3MzMl96KSkpCnN2aW50MzJfdCBzdnJldmhfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2aF9zNjRfeikpKQpzdmludDY0X3Qgc3ZyZXZoX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJldndfbShzdnVpbnQ2NF90LCBzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfczY0X20pKSkKc3ZpbnQ2NF90IHN2cmV2d19tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJldndfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJldndfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmV2d194KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyZXZ3X3ooc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZ3X3M2NF96KSkpCnN2aW50NjRfdCBzdnJldndfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRhX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludGFfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludGFfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGFfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50YV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRhX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludGFfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50YV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRhX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRpX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludGlfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludGlfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludGlfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50aV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRpX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludGlfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50aV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRpX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRtX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludG1fbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludG1feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG1fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRtX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludG1feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bV9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRtX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRuX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludG5fbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludG5feChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludG5fZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50bl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRuX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludG5feihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50bl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRuX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnRwX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHBfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHBfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHBfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50cF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnRwX2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHBfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50cF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnRwX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnR4X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHhfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHhfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHhfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50eF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR4X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHhfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50eF9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnR4X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnJpbnR6X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2cmludHpfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2cmludHpfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmludHpfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZyaW50el96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJpbnR6X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2cmludHpfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaW50el9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnJpbnR6X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJzcXJ0ZShzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Zyc3FydGUoc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfZjE2KSkpCnN2ZmxvYXQxNl90IHN2cnNxcnRlKHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRzX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnJzcXJ0cyhzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydHNfZjMyKSkpCnN2ZmxvYXQzMl90IHN2cnNxcnRzKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0c19mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Zyc3FydHMoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnNjYWxlX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnNjYWxlX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnNjYWxlX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnNjYWxlX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnNjYWxlX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2NhbGVfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzY2FsZV96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2IpKSkKc3Zib29sX3Qgc3ZzZWwoc3Zib29sX3QsIHN2Ym9vbF90LCBzdmJvb2xfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNlbF91OCkpKQpzdnVpbnQ4X3Qgc3ZzZWwoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3UzMikpKQpzdnVpbnQzMl90IHN2c2VsKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2VsKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3UxNikpKQpzdnVpbnQxNl90IHN2c2VsKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX3M4KSkpCnN2aW50OF90IHN2c2VsKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2c2VsKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2c2VsKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfZjE2KSkpCnN2ZmxvYXQxNl90IHN2c2VsKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczMyKSkpCnN2aW50MzJfdCBzdnNlbChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczY0KSkpCnN2aW50NjRfdCBzdnNlbChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfczE2KSkpCnN2aW50MTZfdCBzdnNlbChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQyX3U4KSkpCnN2dWludDh4Ml90IHN2c2V0MihzdnVpbnQ4eDJfdCwgdWludDY0X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfdTMyKSkpCnN2dWludDMyeDJfdCBzdnNldDIoc3Z1aW50MzJ4Ml90LCB1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfdTY0KSkpCnN2dWludDY0eDJfdCBzdnNldDIoc3Z1aW50NjR4Ml90LCB1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfdTE2KSkpCnN2dWludDE2eDJfdCBzdnNldDIoc3Z1aW50MTZ4Ml90LCB1aW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfczgpKSkKc3ZpbnQ4eDJfdCBzdnNldDIoc3ZpbnQ4eDJfdCwgdWludDY0X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mNjQpKSkKc3ZmbG9hdDY0eDJfdCBzdnNldDIoc3ZmbG9hdDY0eDJfdCwgdWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mMzIpKSkKc3ZmbG9hdDMyeDJfdCBzdnNldDIoc3ZmbG9hdDMyeDJfdCwgdWludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9mMTYpKSkKc3ZmbG9hdDE2eDJfdCBzdnNldDIoc3ZmbG9hdDE2eDJfdCwgdWludDY0X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zMzIpKSkKc3ZpbnQzMngyX3Qgc3ZzZXQyKHN2aW50MzJ4Ml90LCB1aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zNjQpKSkKc3ZpbnQ2NHgyX3Qgc3ZzZXQyKHN2aW50NjR4Ml90LCB1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0Ml9zMTYpKSkKc3ZpbnQxNngyX3Qgc3ZzZXQyKHN2aW50MTZ4Ml90LCB1aW50NjRfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M191OCkpKQpzdnVpbnQ4eDNfdCBzdnNldDMoc3Z1aW50OHgzX3QsIHVpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3UzMikpKQpzdnVpbnQzMngzX3Qgc3ZzZXQzKHN2dWludDMyeDNfdCwgdWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3U2NCkpKQpzdnVpbnQ2NHgzX3Qgc3ZzZXQzKHN2dWludDY0eDNfdCwgdWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3UxNikpKQpzdnVpbnQxNngzX3Qgc3ZzZXQzKHN2dWludDE2eDNfdCwgdWludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX3M4KSkpCnN2aW50OHgzX3Qgc3ZzZXQzKHN2aW50OHgzX3QsIHVpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfZjY0KSkpCnN2ZmxvYXQ2NHgzX3Qgc3ZzZXQzKHN2ZmxvYXQ2NHgzX3QsIHVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfZjMyKSkpCnN2ZmxvYXQzMngzX3Qgc3ZzZXQzKHN2ZmxvYXQzMngzX3QsIHVpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfZjE2KSkpCnN2ZmxvYXQxNngzX3Qgc3ZzZXQzKHN2ZmxvYXQxNngzX3QsIHVpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfczMyKSkpCnN2aW50MzJ4M190IHN2c2V0MyhzdmludDMyeDNfdCwgdWludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfczY0KSkpCnN2aW50NjR4M190IHN2c2V0MyhzdmludDY0eDNfdCwgdWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDNfczE2KSkpCnN2aW50MTZ4M190IHN2c2V0MyhzdmludDE2eDNfdCwgdWludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDRfdTgpKSkKc3Z1aW50OHg0X3Qgc3ZzZXQ0KHN2dWludDh4NF90LCB1aW50NjRfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91MzIpKSkKc3Z1aW50MzJ4NF90IHN2c2V0NChzdnVpbnQzMng0X3QsIHVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91NjQpKSkKc3Z1aW50NjR4NF90IHN2c2V0NChzdnVpbnQ2NHg0X3QsIHVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF91MTYpKSkKc3Z1aW50MTZ4NF90IHN2c2V0NChzdnVpbnQxNng0X3QsIHVpbnQ2NF90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9zOCkpKQpzdmludDh4NF90IHN2c2V0NChzdmludDh4NF90LCB1aW50NjRfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2Y2NCkpKQpzdmZsb2F0NjR4NF90IHN2c2V0NChzdmZsb2F0NjR4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2YzMikpKQpzdmZsb2F0MzJ4NF90IHN2c2V0NChzdmZsb2F0MzJ4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2YxNikpKQpzdmZsb2F0MTZ4NF90IHN2c2V0NChzdmZsb2F0MTZ4NF90LCB1aW50NjRfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3MzMikpKQpzdmludDMyeDRfdCBzdnNldDQoc3ZpbnQzMng0X3QsIHVpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3M2NCkpKQpzdmludDY0eDRfdCBzdnNldDQoc3ZpbnQ2NHg0X3QsIHVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X3MxNikpKQpzdmludDE2eDRfdCBzdnNldDQoc3ZpbnQxNng0X3QsIHVpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcGxpY2VfdTgpKSkKc3Z1aW50OF90IHN2c3BsaWNlKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91MzIpKSkKc3Z1aW50MzJfdCBzdnNwbGljZShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91NjQpKSkKc3Z1aW50NjRfdCBzdnNwbGljZShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV91MTYpKSkKc3Z1aW50MTZfdCBzdnNwbGljZShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9zOCkpKQpzdmludDhfdCBzdnNwbGljZShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnNwbGljZShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2YzMikpKQpzdmZsb2F0MzJfdCBzdnNwbGljZShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX2YxNikpKQpzdmZsb2F0MTZfdCBzdnNwbGljZShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3MzMikpKQpzdmludDMyX3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3M2NCkpKQpzdmludDY0X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3BsaWNlX3MxNikpKQpzdmludDE2X3Qgc3ZzcGxpY2Uoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnNxcnRfbShzdmZsb2F0NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnNxcnRfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnNxcnRfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnNxcnRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2c3FydF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzcXJ0X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FydF9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnNxcnRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcXJ0X2YzMl96KSkpCnN2ZmxvYXQzMl90IHN2c3FydF96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxcnRfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzcXJ0X3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3U4KSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3UzMikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3U2NCkpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3UxNikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3M4KSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9mNjQpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2YzMikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfZjE2KSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zMzIpKSkKdm9pZCBzdnN0MShzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfczY0KSkpCnZvaWQgc3ZzdDEoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3MxNikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGJhc2VfZjY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJiYXNlX2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMmluZGV4X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMmluZGV4X3UzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91MzJpbmRleF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NGluZGV4X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdmludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczMyb2Zmc2V0X2YzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3MzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3UzMm9mZnNldF9mMzIpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQzMl90ICosIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfczY0b2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV9zY2F0dGVyX3U2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3U4KSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV91MzIpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgdWludDY0X3QgKiwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3UxNikpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zOCkpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX2Y2NCkpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX2YzMikpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX2YxNikpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX3MzMikpKQp2b2lkIHN2c3QxX3ZudW0oc3Zib29sX3QsIGludDMyX3QgKiwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDFfdm51bShzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfdm51bV9zMTYpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfczMyKSkpCnZvaWQgc3ZzdDFiKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zNjQpKSkKdm9pZCBzdnN0MWIoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3MxNikpKQp2b2lkIHN2c3QxYihzdmJvb2xfdCwgaW50OF90ICosIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdTMyKSkpCnZvaWQgc3ZzdDFiKHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3U2NCkpKQp2b2lkIHN2c3QxYihzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl91MTYpKSkKdm9pZCBzdnN0MWIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3QxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3MzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDhfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDhfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3QxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczMyKSkpCnZvaWQgc3ZzdDFiX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDFiX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fczE2KSkpCnZvaWQgc3ZzdDFiX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFiX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDFiX3ZudW0oc3Zib29sX3QsIHVpbnQ4X3QgKiwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWJfdm51bV91NjQpKSkKdm9pZCBzdnN0MWJfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxYl92bnVtX3UxNikpKQp2b2lkIHN2c3QxYl92bnVtKHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3MzMikpKQp2b2lkIHN2c3QxaChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3M2NCkpKQp2b2lkIHN2c3QxaChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3UzMikpKQp2b2lkIHN2c3QxaChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdTY0KSkpCnZvaWQgc3ZzdDFoKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyYmFzZV91MzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3UzMmJhc2VfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3QxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfczMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91MzJpbmRleF9zMzIpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfczMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zMzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3QxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxaF92bnVtX3MzMikpKQp2b2lkIHN2c3QxaF92bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MWhfdm51bV9zNjQpKSkKdm9pZCBzdnN0MWhfdm51bShzdmJvb2xfdCwgaW50MTZfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdDFoX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFoX3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDFoX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3M2NCkpKQp2b2lkIHN2c3QxdyhzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3U2NCkpKQp2b2lkIHN2c3QxdyhzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Qxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0MXdfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0aW5kZXhfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3Qxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MXdfdm51bV9zNjQpKSkKdm9pZCBzdnN0MXdfdm51bShzdmJvb2xfdCwgaW50MzJfdCAqLCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDF3X3ZudW1fdTY0KSkpCnZvaWQgc3ZzdDF3X3ZudW0oc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTgpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml91MzIpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3U2NCkpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdTE2KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zOCkpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9mNjQpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfZjMyKSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX2YxNikpKQp2b2lkIHN2c3QyKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zMzIpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zNjQpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9zMTYpKSkKdm9pZCBzdnN0MihzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3U4KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3UzMikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDMyeDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3U2NCkpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3UxNikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3M4KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OHgyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9mNjQpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX2YzMikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9zMzIpKSkKdm9pZCBzdnN0Ml92bnVtKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJ4Ml90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml92bnVtX3MxNikpKQp2b2lkIHN2c3QyX3ZudW0oc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdTgpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M191MzIpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3U2NCkpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdTE2KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zOCkpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19mNjQpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfZjMyKSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX2YxNikpKQp2b2lkIHN2c3QzKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zMzIpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zNjQpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19zMTYpKSkKdm9pZCBzdnN0MyhzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3U4KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3UzMikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDMyeDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3U2NCkpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3UxNikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3M4KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OHgzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9mNjQpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX2YzMikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9zMzIpKSkKdm9pZCBzdnN0M192bnVtKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJ4M190KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX3ZudW1fczY0KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M192bnVtX3MxNikpKQp2b2lkIHN2c3QzX3ZudW0oc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTgpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ4eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF91MzIpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3U2NCkpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCB1aW50NjRfdCAqLCBzdnVpbnQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdTE2KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDE2eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9zOCkpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9mNjQpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2ZmxvYXQ2NHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfZjMyKSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdmZsb2F0MzJ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X2YxNikpKQp2b2lkIHN2c3Q0KHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9zMzIpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdmludDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9zNjQpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgaW50NjRfdCAqLCBzdmludDY0eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9zMTYpKSkKdm9pZCBzdnN0NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3U4KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgdWludDhfdCAqLCBpbnQ2NF90LCBzdnVpbnQ4eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3UzMikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIHVpbnQzMl90ICosIGludDY0X3QsIHN2dWludDMyeDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3U2NCkpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3UxNikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIHVpbnQxNl90ICosIGludDY0X3QsIHN2dWludDE2eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3M4KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgaW50OF90ICosIGludDY0X3QsIHN2aW50OHg0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9mNjQpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX2YzMikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MzJ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fZjE2KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgZmxvYXQxNl90ICosIGludDY0X3QsIHN2ZmxvYXQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9zMzIpKSkKdm9pZCBzdnN0NF92bnVtKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJ4NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Q0X3ZudW1fczY0KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgaW50NjRfdCAqLCBpbnQ2NF90LCBzdmludDY0eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX3MxNikpKQp2b2lkIHN2c3Q0X3ZudW0oc3Zib29sX3QsIGludDE2X3QgKiwgaW50NjRfdCwgc3ZpbnQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91OCkpKQp2b2lkIHN2c3RudDEoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdTMyKSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3U2NCkpKQp2b2lkIHN2c3RudDEoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV91MTYpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfczgpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mNjQpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mMzIpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBmbG9hdDMyX3QgKiwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9mMTYpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBmbG9hdDE2X3QgKiwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zMzIpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3M2NCkpKQp2b2lkIHN2c3RudDEoc3Zib29sX3QsIGludDY0X3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfczE2KSkpCnZvaWQgc3ZzdG50MShzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3U4KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCB1aW50OF90ICosIGludDY0X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fdTMyKSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCB1aW50MzJfdCAqLCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV91NjQpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIHVpbnQ2NF90ICosIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX3UxNikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgdWludDE2X3QgKiwgaW50NjRfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fczgpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIGludDhfdCAqLCBpbnQ2NF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fZjY0KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgaW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2YzMikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgZmxvYXQzMl90ICosIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfdm51bV9mMTYpKSkKdm9pZCBzdnN0bnQxX3ZudW0oc3Zib29sX3QsIGZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fczMyKSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBpbnQzMl90ICosIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fczY0KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBpbnQ2NF90ICosIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fczE2KSkpCnZvaWQgc3ZzdG50MV92bnVtKHN2Ym9vbF90LCBpbnQxNl90ICosIGludDY0X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2c3ViX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2c3ViX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX2Y2NF96KSkpCnN2ZmxvYXQ2NF90IHN2c3ViX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U4X20pKSkKc3Z1aW50OF90IHN2c3ViX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3ViX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczE2X20pKSkKc3ZpbnQxNl90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3ViX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3ViX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3ViX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3ViX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX25fczE2X3opKSkKc3ZpbnQxNl90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2c3ViX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2c3ViX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX2YxNl96KSkpCnN2ZmxvYXQxNl90IHN2c3ViX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91OF9tKSkpCnN2dWludDhfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3ViX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zOF9tKSkpCnN2aW50OF90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZzdWJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczY0X20pKSkKc3ZpbnQ2NF90IHN2c3ViX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1Yl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91OF94KSkpCnN2dWludDhfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3ViX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zOF94KSkpCnN2aW50OF90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2c3ViX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1Yl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91OF96KSkpCnN2dWludDhfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3ViX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zOF96KSkpCnN2aW50OF90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Yl9zMzJfeikpKQpzdmludDMyX3Qgc3ZzdWJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJfczY0X3opKSkKc3ZpbnQ2NF90IHN2c3ViX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViX3MxNl96KSkpCnN2aW50MTZfdCBzdnN1Yl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mNjRfeikpKQpzdmZsb2F0NjRfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIGZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMzJfeikpKQpzdmZsb2F0MzJfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIGZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9mMTZfeikpKQpzdmZsb2F0MTZfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91OF9tKSkpCnN2dWludDhfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2c3Vicl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zOF94KSkpCnN2aW50OF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX25fczhfeikpKQpzdmludDhfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjY0X3opKSkKc3ZmbG9hdDY0X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjMyX3opKSkKc3ZmbG9hdDMyX3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfZjE2X3opKSkKc3ZmbG9hdDE2X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzdWJyX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91MTZfbSkpKQpzdnVpbnQxNl90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zOF9tKSkpCnN2aW50OF90IHN2c3Vicl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MzMl9tKSkpCnN2aW50MzJfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M2NF9tKSkpCnN2aW50NjRfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3MxNl9tKSkpCnN2aW50MTZfdCBzdnN1YnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U4X3gpKSkKc3Z1aW50OF90IHN2c3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczhfeCkpKQpzdmludDhfdCBzdnN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZzdWJyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vicl91OF96KSkpCnN2dWludDhfdCBzdnN1YnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJyX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZzdWJyX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczMyX3opKSkKc3ZpbnQzMl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczY0X3opKSkKc3ZpbnQ2NF90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YnJfczE2X3opKSkKc3ZpbnQxNl90IHN2c3Vicl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF91OCkpKQpzdnVpbnQ4X3Qgc3Z0Ymwoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfdTMyKSkpCnN2dWludDMyX3Qgc3Z0Ymwoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF91NjQpKSkKc3Z1aW50NjRfdCBzdnRibChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX3UxNikpKQpzdnVpbnQxNl90IHN2dGJsKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfczgpKSkKc3ZpbnQ4X3Qgc3Z0Ymwoc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0Ymwoc3ZmbG9hdDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dGJsKHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRibChzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zMzIpKSkKc3ZpbnQzMl90IHN2dGJsKHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zNjQpKSkKc3ZpbnQ2NF90IHN2dGJsKHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9zMTYpKSkKc3ZpbnQxNl90IHN2dGJsKHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRtYWRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dG1hZChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dG1hZF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0bWFkKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0bWFkX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRtYWQoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTgpKSkKc3Z1aW50OF90IHN2dHJuMShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfdTMyKSkpCnN2dWludDMyX3Qgc3Z0cm4xKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3U2NCkpKQpzdnVpbnQ2NF90IHN2dHJuMShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV91MTYpKSkKc3Z1aW50MTZfdCBzdnRybjEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfczgpKSkKc3ZpbnQ4X3Qgc3Z0cm4xKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4xKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFfczMyKSkpCnN2aW50MzJfdCBzdnRybjEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4xKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTgpKSkKc3Z1aW50OF90IHN2dHJuMihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfdTMyKSkpCnN2dWludDMyX3Qgc3Z0cm4yKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3U2NCkpKQpzdnVpbnQ2NF90IHN2dHJuMihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl91MTYpKSkKc3Z1aW50MTZfdCBzdnRybjIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfczgpKSkKc3ZpbnQ4X3Qgc3Z0cm4yKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMihzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0cm4yKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJfczMyKSkpCnN2aW50MzJfdCBzdnRybjIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4yKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9zMTYpKSkKc3ZpbnQxNl90IHN2dHJuMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzbXVsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRzbXVsKHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNtdWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHNtdWwoc3ZmbG9hdDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c211bF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0c211bChzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRzc2VsX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRzc2VsKHN2ZmxvYXQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHNzZWxfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHNzZWwoc3ZmbG9hdDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0c3NlbF9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0c3NlbChzdmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV9iKSkpCnN2Ym9vbF90IHN2dW5wa2hpKHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3MzMikpKQpzdmludDMyX3Qgc3Z1bnBraGkoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3M2NCkpKQpzdmludDY0X3Qgc3Z1bnBraGkoc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3MxNikpKQpzdmludDE2X3Qgc3Z1bnBraGkoc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBraGlfdTMyKSkpCnN2dWludDMyX3Qgc3Z1bnBraGkoc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtoaV91NjQpKSkKc3Z1aW50NjRfdCBzdnVucGtoaShzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2hpX3UxNikpKQpzdnVpbnQxNl90IHN2dW5wa2hpKHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb19iKSkpCnN2Ym9vbF90IHN2dW5wa2xvKHN2Ym9vbF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3MzMikpKQpzdmludDMyX3Qgc3Z1bnBrbG8oc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3M2NCkpKQpzdmludDY0X3Qgc3Z1bnBrbG8oc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3MxNikpKQpzdmludDE2X3Qgc3Z1bnBrbG8oc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bnBrbG9fdTMyKSkpCnN2dWludDMyX3Qgc3Z1bnBrbG8oc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVucGtsb191NjQpKSkKc3Z1aW50NjRfdCBzdnVucGtsbyhzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5wa2xvX3UxNikpKQpzdnVpbnQxNl90IHN2dW5wa2xvKHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfdTgpKSkKc3Z1aW50OF90IHN2dXpwMShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfczMyKSkpCnN2aW50MzJfdCBzdnV6cDEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfdTgpKSkKc3Z1aW50OF90IHN2dXpwMihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl91MTYpKSkKc3Z1aW50MTZfdCBzdnV6cDIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAyKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMihzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAyKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJfczMyKSkpCnN2aW50MzJfdCBzdnV6cDIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAyX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAyKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjhfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iOChpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMzJfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IxNl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IxNihpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iOF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I4KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2IzMl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2IzMihpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iNjRfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjE2X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjE2KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWxlX2I4X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjgodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMzJfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMzIodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iNjRfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iNjQodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iMTZfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsZV9iMTYodWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsZV9iOF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWxlX2I4KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjMyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjMyKHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjY0X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjY0KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbGVfYjE2X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbGVfYjE2KHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjhfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iOCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IzMl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IzMih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I2NF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I2NCh1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IxNl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IxNih1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I4X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjgodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMzJfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMzIodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjQodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMTZfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMTYodWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iOF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I4KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2IzMl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2IzMihpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iNjRfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iNjQoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjE2X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjE2KGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I4X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjgoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlbHRfYjMyX3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlbHRfYjMyKGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWx0X2I2NF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWx0X2I2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVsdF9iMTZfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVsdF9iMTYoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTgpKSkKc3Z1aW50OF90IHN2emlwMShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2emlwMShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnppcDEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z6aXAxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFfczMyKSkpCnN2aW50MzJfdCBzdnppcDEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX3M2NCkpKQpzdmludDY0X3Qgc3Z6aXAxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9zMTYpKSkKc3ZpbnQxNl90IHN2emlwMShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTgpKSkKc3Z1aW50OF90IHN2emlwMihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAyKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2emlwMihzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX2YzMikpKQpzdmZsb2F0MzJfdCBzdnppcDIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z6aXAyKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfczMyKSkpCnN2aW50MzJfdCBzdnppcDIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAyX3M2NCkpKQpzdmludDY0X3Qgc3Z6aXAyKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9zMTYpKSkKc3ZpbnQxNl90IHN2emlwMihzdmludDE2X3QsIHN2aW50MTZfdCk7CgojaWYgZGVmaW5lZCAoX19BUk1fRkVBVFVSRV9TVkUyX0JJVFBFUk0pCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF9uX3U4KSkpCnN2dWludDhfdCBzdmJkZXBfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJkZXBfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJkZXBfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJkZXBfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTgpKSkKc3Z1aW50OF90IHN2YmRlcF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF91MzIpKSkKc3Z1aW50MzJfdCBzdmJkZXBfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTY0KSkpCnN2dWludDY0X3Qgc3ZiZGVwX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3UxNikpKQpzdnVpbnQxNl90IHN2YmRlcF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF9uX3U4KSkpCnN2dWludDhfdCBzdmJleHRfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJleHRfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJleHRfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJleHRfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTgpKSkKc3Z1aW50OF90IHN2YmV4dF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF91MzIpKSkKc3Z1aW50MzJfdCBzdmJleHRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZiZXh0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3UxNikpKQpzdnVpbnQxNl90IHN2YmV4dF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF9uX3U4KSkpCnN2dWludDhfdCBzdmJncnBfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJncnBfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJncnBfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJncnBfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTgpKSkKc3Z1aW50OF90IHN2YmdycF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF91MzIpKSkKc3Z1aW50MzJfdCBzdmJncnBfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTY0KSkpCnN2dWludDY0X3Qgc3ZiZ3JwX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3UxNikpKQpzdnVpbnQxNl90IHN2YmdycF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZGVwKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJkZXAoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZGVwKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YmRlcChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTgpKSkKc3Z1aW50OF90IHN2YmRlcChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJkZXBfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZGVwKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZGVwX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmRlcChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmRlcF91MTYpKSkKc3Z1aW50MTZfdCBzdmJkZXAoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZXh0KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJleHQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZXh0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YmV4dChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTgpKSkKc3Z1aW50OF90IHN2YmV4dChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJleHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZXh0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZXh0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YmV4dChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmV4dF91MTYpKSkKc3Z1aW50MTZfdCBzdmJleHQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZiZ3JwKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJncnAoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZiZ3JwKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YmdycChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTgpKSkKc3Z1aW50OF90IHN2YmdycChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJncnBfdTMyKSkpCnN2dWludDMyX3Qgc3ZiZ3JwKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZ3JwX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmdycChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmdycF91MTYpKSkKc3Z1aW50MTZfdCBzdmJncnAoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7CiNlbmRpZiAgLy9kZWZpbmVkIChfX0FSTV9GRUFUVVJFX1NWRTJfQklUUEVSTSkKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMikKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zOCkpKQpzdmludDhfdCBzdmFiYV9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZhYmFfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmFfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYV9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3M4KSkpCnN2aW50OF90IHN2YWJhX3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfczY0KSkpCnN2aW50NjRfdCBzdmFiYV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3MxNikpKQpzdmludDE2X3Qgc3ZhYmFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91OCkpKQpzdnVpbnQ4X3Qgc3ZhYmFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhbGJfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fczY0KSkpCnN2aW50NjRfdCBzdmFiYWxiX25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZhYmFsYl9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmFsYl9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWxiX25fdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhbGJfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhbGJfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFsYl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfczE2KSkpCnN2aW50MTZfdCBzdmFiYWxiX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmFsYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFsYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmFsYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fczMyKSkpCnN2aW50MzJfdCBzdmFiYWx0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmFsdF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbHRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbHRfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmFsdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWx0X25fdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfczMyKSkpCnN2aW50MzJfdCBzdmFiYWx0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhbHRfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3MxNikpKQpzdmludDE2X3Qgc3ZhYmFsdF9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbHRfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhbHRfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3UxNikpKQpzdnVpbnQxNl90IHN2YWJhbHRfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZhYmRsYl9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fczY0KSkpCnN2aW50NjRfdCBzdmFiZGxiX25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJkbGJfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiZGxiX25fdTMyKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbGJfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmRsYl9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3MzMikpKQpzdmludDMyX3Qgc3ZhYmRsYl9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmRsYl9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX3MxNikpKQpzdmludDE2X3Qgc3ZhYmRsYl9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiZGxiX3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiZGxiX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiZGxiX3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbHRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhYmRsdF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fczE2KSkpCnN2aW50MTZfdCBzdmFiZGx0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsdF9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiZGx0X25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbHRfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbHRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJkbHRfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9zMTYpKSkKc3ZpbnQxNl90IHN2YWJkbHRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsdF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmRsdF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmRsdF91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MzMl9tKSkpCnN2aW50MzJfdCBzdmFkYWxwX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczY0X20pKSkKc3ZpbnQ2NF90IHN2YWRhbHBfczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhZGFscF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczMyX3gpKSkKc3ZpbnQzMl90IHN2YWRhbHBfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZhZGFscF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MxNl94KSkpCnN2aW50MTZfdCBzdmFkYWxwX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMzJfeikpKQpzdmludDMyX3Qgc3ZhZGFscF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3M2NF96KSkpCnN2aW50NjRfdCBzdmFkYWxwX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczE2X3opKSkKc3ZpbnQxNl90IHN2YWRhbHBfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGFscF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmFkYWxwX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MTZfbSkpKQpzdnVpbnQxNl90IHN2YWRhbHBfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFkYWxwX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWRhbHBfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZhZGFscF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MzJfeikpKQpzdnVpbnQzMl90IHN2YWRhbHBfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZhZGFscF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTE2X3opKSkKc3Z1aW50MTZfdCBzdmFkYWxwX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkY2xiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGNsYl9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2xiX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2xiX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2xiX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRjbHRfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkY2x0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGNsdF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRjbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGNsdF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZhZGRobmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl91MTYpKSkKc3Z1aW50OF90IHN2YWRkaG5iX25fdTE2KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2YWRkaG5iX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdmFkZGhuYl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3MxNikpKQpzdmludDhfdCBzdmFkZGhuYl9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhuYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG5iX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfdTE2KSkpCnN2dWludDhfdCBzdmFkZGhuYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZhZGRobmJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfczY0KSkpCnN2aW50MzJfdCBzdmFkZGhuYl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobmJfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhudF9uX3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZhZGRobnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZhZGRobnRfbl91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fczMyKSkpCnN2aW50MTZfdCBzdmFkZGhudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fczY0KSkpCnN2aW50MzJfdCBzdmFkZGhudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fczE2KSkpCnN2aW50OF90IHN2YWRkaG50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhudF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG50X3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfdTE2KSkpCnN2dWludDhfdCBzdmFkZGhudF91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfczMyKSkpCnN2aW50MTZfdCBzdmFkZGhudF9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3M2NCkpKQpzdmludDMyX3Qgc3ZhZGRobnRfczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobnRfczE2KHN2aW50OF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGJfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsYl9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fczE2KSkpCnN2aW50MTZfdCBzdmFkZGxiX25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsYl9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGxiX25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkbGJfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGJfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsYl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsYl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsYl91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsYnRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJ0X25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X25fczE2KSkpCnN2aW50MTZfdCBzdmFkZGxidF9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfczMyKSkpCnN2aW50MzJfdCBzdmFkZGxidF9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJ0X3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYnRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbHRfbl9zMzIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsdF9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fczE2KSkpCnN2aW50MTZfdCBzdmFkZGx0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsdF9uX3UzMihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGx0X25fdTY0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkbHRfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbHRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbHRfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkbHRfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGRsdF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGRsdF91NjQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGRsdF91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRwX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjMyX20pKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRwX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRwX2YxNl9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZhZGRwX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjMyX3gpKSkKc3ZmbG9hdDMyX3Qgc3ZhZGRwX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZhZGRwX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZhZGRwX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGRwX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhZGRwX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhZGRwX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhZGRwX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhZGRwX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZhZGRwX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZhZGRwX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91OF94KSkpCnN2dWludDhfdCBzdmFkZHBfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmFkZHBfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkZHBfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmFkZHBfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczhfeCkpKQpzdmludDhfdCBzdmFkZHBfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkZHBfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M2NF94KSkpCnN2aW50NjRfdCBzdmFkZHBfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MxNl94KSkpCnN2aW50MTZfdCBzdmFkZHBfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3Yl9uX3MzMihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fczY0KSkpCnN2aW50NjRfdCBzdmFkZHdiX25fczY0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkd2Jfbl9zMTYoc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3Yl9uX3UzMihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2Jfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHdiX25fdTY0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWRkd2Jfbl91MTYoc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczMyKSkpCnN2aW50MzJfdCBzdmFkZHdiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczY0KSkpCnN2aW50NjRfdCBzdmFkZHdiX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczE2KSkpCnN2aW50MTZfdCBzdmFkZHdiX3MxNihzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHdiX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHdiX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHdiX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fczMyKSkpCnN2aW50MzJfdCBzdmFkZHd0X25fczMyKHN2aW50MzJfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkd3Rfbl9zNjQoc3ZpbnQ2NF90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGR3dF9uX3MxNihzdmludDE2X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHd0X25fdTMyKHN2dWludDMyX3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkd3Rfbl91NjQoc3Z1aW50NjRfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGR3dF9uX3UxNihzdnVpbnQxNl90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkd3RfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkd3RfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkd3RfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3UzMikpKQpzdnVpbnQzMl90IHN2YWRkd3RfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkd3RfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3UxNikpKQpzdnVpbnQxNl90IHN2YWRkd3RfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3U4KSkpCnN2dWludDhfdCBzdmJjYXhfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YmNheF9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmNheF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YmNheF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3M4KSkpCnN2aW50OF90IHN2YmNheF9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X25fczMyKSkpCnN2aW50MzJfdCBzdmJjYXhfbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YmNheF9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3MxNikpKQpzdmludDE2X3Qgc3ZiY2F4X25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3U4KSkpCnN2dWludDhfdCBzdmJjYXhfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91MzIpKSkKc3Z1aW50MzJfdCBzdmJjYXhfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZiY2F4X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3UxNikpKQpzdnVpbnQxNl90IHN2YmNheF91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zOCkpKQpzdmludDhfdCBzdmJjYXhfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zMzIpKSkKc3ZpbnQzMl90IHN2YmNheF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zNjQpKSkKc3ZpbnQ2NF90IHN2YmNheF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zMTYpKSkKc3ZpbnQxNl90IHN2YmNheF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wxbl9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsMW5fbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wxbl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDFuX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3M4KSkpCnN2aW50OF90IHN2YnNsMW5fbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMW5fbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fczY0KSkpCnN2aW50NjRfdCBzdmJzbDFuX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3MxNikpKQpzdmludDE2X3Qgc3Zic2wxbl9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTgpKSkKc3Z1aW50OF90IHN2YnNsMW5fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wxbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wxbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wxbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wxbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMW5fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wxbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczE2KSkpCnN2aW50MTZfdCBzdmJzbDFuX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3U4KSkpCnN2dWludDhfdCBzdmJzbDJuX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wybl9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbDJuX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsMm5fbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wybl9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3MzMikpKQpzdmludDMyX3Qgc3Zic2wybl9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsMm5fbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczE2KSkpCnN2aW50MTZfdCBzdmJzbDJuX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wybl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbDJuX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbDJuX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDJuX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zOCkpKQpzdmludDhfdCBzdmJzbDJuX3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3MzMikpKQpzdmludDMyX3Qgc3Zic2wybl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fczY0KSkpCnN2aW50NjRfdCBzdmJzbDJuX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsMm5fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3U4KSkpCnN2dWludDhfdCBzdmJzbF9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbF9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2xfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zOCkpKQpzdmludDhfdCBzdmJzbF9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfdTgpKSkKc3Z1aW50OF90IHN2YnNsX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfdTE2KSkpCnN2dWludDE2X3Qgc3Zic2xfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zOCkpKQpzdmludDhfdCBzdmJzbF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfczMyKSkpCnN2aW50MzJfdCBzdmJzbF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3M2NCkpKQpzdmludDY0X3Qgc3Zic2xfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3U4KSkpCnN2dWludDhfdCBzdmNhZGRfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3UzMikpKQpzdnVpbnQzMl90IHN2Y2FkZF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfdTY0KSkpCnN2dWludDY0X3Qgc3ZjYWRkX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91MTYpKSkKc3Z1aW50MTZfdCBzdmNhZGRfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3M4KSkpCnN2aW50OF90IHN2Y2FkZF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3MzMikpKQpzdmludDMyX3Qgc3ZjYWRkX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfczY0KSkpCnN2aW50NjRfdCBzdmNhZGRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zMTYpKSkKc3ZpbnQxNl90IHN2Y2FkZF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X3MzMikpKQpzdmludDMyX3Qgc3ZjZG90X3MzMihzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNkb3RfczY0KSkpCnN2aW50NjRfdCBzdmNkb3RfczY0KHN2aW50NjRfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmNkb3RfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2RvdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZjZG90X2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91OCkpKQpzdnVpbnQ4X3Qgc3ZjbWxhX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3UzMikpKQpzdnVpbnQzMl90IHN2Y21sYV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfdTY0KSkpCnN2dWludDY0X3Qgc3ZjbWxhX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91MTYpKSkKc3Z1aW50MTZfdCBzdmNtbGFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3M4KSkpCnN2aW50OF90IHN2Y21sYV9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zMzIpKSkKc3ZpbnQzMl90IHN2Y21sYV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfczY0KSkpCnN2aW50NjRfdCBzdmNtbGFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3MxNikpKQpzdmludDE2X3Qgc3ZjbWxhX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2Y21sYV9sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdmNtbGFfbGFuZV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdmNtbGFfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdmNtbGFfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRsdF9mMzJfZjE2X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRsdF9mMzJfZjE2X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bHRfZjMyX2YxNl94KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0bHRfZjMyX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bHRfZjY0X2YzMl9tKSkpCnN2ZmxvYXQ2NF90IHN2Y3Z0bHRfZjY0X2YzMl9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2Y2NF9mMzJfeCkpKQpzdmZsb2F0NjRfdCBzdmN2dGx0X2Y2NF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dG50X2YxNl9mMzJfbSkpKQpzdmZsb2F0MTZfdCBzdmN2dG50X2YxNl9mMzJfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRudF9mMzJfZjY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnRudF9mMzJfZjY0X20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0eF9mMzJfZjY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnR4X2YzMl9mNjRfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnR4X2YzMl9mNjRfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dHhfZjMyX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0eF9mMzJfZjY0X3opKSkKc3ZmbG9hdDMyX3Qgc3ZjdnR4X2YzMl9mNjRfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhudF9mMzJfZjY0X20pKSkKc3ZmbG9hdDMyX3Qgc3ZjdnR4bnRfZjMyX2Y2NF9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zlb3IzX25fdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcjNfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcjNfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcjNfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl9zOCkpKQpzdmludDhfdCBzdmVvcjNfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3MzMikpKQpzdmludDMyX3Qgc3Zlb3IzX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczY0KSkpCnN2aW50NjRfdCBzdmVvcjNfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9yM19uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191OCkpKQpzdnVpbnQ4X3Qgc3Zlb3IzX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3IzX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yM191NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191MTYpKSkKc3Z1aW50MTZfdCBzdmVvcjNfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfczgpKSkKc3ZpbnQ4X3Qgc3Zlb3IzX3M4KHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfczMyKSkpCnN2aW50MzJfdCBzdmVvcjNfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfczY0KSkpCnN2aW50NjRfdCBzdmVvcjNfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfczE2KSkpCnN2aW50MTZfdCBzdmVvcjNfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTgpKSkKc3Z1aW50OF90IHN2ZW9yYnRfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcmJ0X25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yYnRfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3JidF9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zOCkpKQpzdmludDhfdCBzdmVvcmJ0X25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczMyKSkpCnN2aW50MzJfdCBzdmVvcmJ0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3JidF9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9yYnRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3U4KSkpCnN2dWludDhfdCBzdmVvcmJ0X3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3UzMikpKQpzdnVpbnQzMl90IHN2ZW9yYnRfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yYnRfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3UxNikpKQpzdnVpbnQxNl90IHN2ZW9yYnRfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3M4KSkpCnN2aW50OF90IHN2ZW9yYnRfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfczMyKSkpCnN2aW50MzJfdCBzdmVvcmJ0X3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9yYnRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3MxNikpKQpzdmludDE2X3Qgc3Zlb3JidF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zlb3J0Yl9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9ydGJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3J0Yl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcnRiX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3M4KSkpCnN2aW50OF90IHN2ZW9ydGJfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9ydGJfbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fczY0KSkpCnN2aW50NjRfdCBzdmVvcnRiX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3MxNikpKQpzdmludDE2X3Qgc3Zlb3J0Yl9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTgpKSkKc3Z1aW50OF90IHN2ZW9ydGJfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3J0Yl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3J0Yl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3J0Yl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczgpKSkKc3ZpbnQ4X3Qgc3Zlb3J0Yl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9ydGJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3J0Yl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczE2KSkpCnN2aW50MTZfdCBzdmVvcnRiX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczhfbSkpKQpzdmludDhfdCBzdmhhZGRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2aGFkZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZoYWRkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhhZGRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczhfeCkpKQpzdmludDhfdCBzdmhhZGRfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2aGFkZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZoYWRkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdmhhZGRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczhfeikpKQpzdmludDhfdCBzdmhhZGRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2aGFkZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZoYWRkX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmhhZGRfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZoYWRkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhhZGRfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aGFkZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZoYWRkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZoYWRkX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhhZGRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aGFkZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZoYWRkX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZoYWRkX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhhZGRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGFkZF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZoYWRkX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZoYWRkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZoYWRkX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZoYWRkX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZoYWRkX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zOF94KSkpCnN2aW50OF90IHN2aGFkZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2aGFkZF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2aGFkZF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2aGFkZF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczhfeikpKQpzdmludDhfdCBzdmhhZGRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdmhhZGRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdmhhZGRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdmhhZGRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U4X20pKSkKc3Z1aW50OF90IHN2aGFkZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2aGFkZF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aGFkZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2aGFkZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91OF94KSkpCnN2dWludDhfdCBzdmhhZGRfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhhZGRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhhZGRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhhZGRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZoYWRkX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZoYWRkX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZoYWRkX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZoYWRkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0Y250X3UzMl96KSkpCnN2dWludDMyX3Qgc3ZoaXN0Y250X3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0Y250X3U2NF96KSkpCnN2dWludDY0X3Qgc3ZoaXN0Y250X3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0Y250X3MzMl96KSkpCnN2dWludDMyX3Qgc3ZoaXN0Y250X3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF9zNjRfeikpKQpzdnVpbnQ2NF90IHN2aGlzdGNudF9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RzZWdfdTgpKSkKc3Z1aW50OF90IHN2aGlzdHNlZ191OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdHNlZ19zOCkpKQpzdnVpbnQ4X3Qgc3ZoaXN0c2VnX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zoc3ViX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1Yl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zoc3ViX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3ViX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2aHN1Yl9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3ViX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3ViX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmhzdWJfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1Yl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3ViX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U4X20pKSkKc3Z1aW50OF90IHN2aHN1Yl9uX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3ViX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aHN1Yl9uX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1Yl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3ViX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhzdWJfbl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1Yl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1Yl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zoc3ViX25fdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1Yl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zOF9tKSkpCnN2aW50OF90IHN2aHN1Yl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczMyX20pKSkKc3ZpbnQzMl90IHN2aHN1Yl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1Yl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczE2X20pKSkKc3ZpbnQxNl90IHN2aHN1Yl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczhfeCkpKQpzdmludDhfdCBzdmhzdWJfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdmhzdWJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3ViX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3ViX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3ViX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3ViX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJfdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhzdWJfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhzdWJfdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zoc3ViX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3ViX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3ViX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zoc3ViX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1Yl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1Yl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1Yl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1Yl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zOF9tKSkpCnN2aW50OF90IHN2aHN1YnJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJyX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zoc3Vicl9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczE2X20pKSkKc3ZpbnQxNl90IHN2aHN1YnJfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2aHN1YnJfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3Vicl9uX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczhfeikpKQpzdmludDhfdCBzdmhzdWJyX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3Vicl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2aHN1YnJfbl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmhzdWJyX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJyX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3Vicl9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhzdWJyX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1YnJfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhzdWJyX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3Vicl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1YnJfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1YnJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdmhzdWJyX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczhfbSkpKQpzdmludDhfdCBzdmhzdWJyX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczMyX20pKSkKc3ZpbnQzMl90IHN2aHN1YnJfczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zoc3Vicl9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJyX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczhfeCkpKQpzdmludDhfdCBzdmhzdWJyX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2aHN1YnJfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zoc3Vicl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MxNl94KSkpCnN2aW50MTZfdCBzdmhzdWJyX3MxNl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczhfeikpKQpzdmludDhfdCBzdmhzdWJyX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1YnJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3Vicl9zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MxNl96KSkpCnN2aW50MTZfdCBzdmhzdWJyX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3Vicl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdThfeCkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1YnJfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9pbmRleF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9mNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJiYXNlX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX3M2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRpbmRleF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl91MzJvZmZzZXRfZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX3M2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl91NjRvZmZzZXRfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3U2NGluZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX3M2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXViX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9pbmRleF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0aW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl91MzJvZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfczY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9zNjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3M2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfbSkpKQpzdmludDY0X3Qgc3Zsb2diX2Y2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YzMl9tKSkpCnN2aW50MzJfdCBzdmxvZ2JfZjMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjE2X20pKSkKc3ZpbnQxNl90IHN2bG9nYl9mMTZfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfeCkpKQpzdmludDY0X3Qgc3Zsb2diX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMzJfeCkpKQpzdmludDMyX3Qgc3Zsb2diX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMTZfeCkpKQpzdmludDE2X3Qgc3Zsb2diX2YxNl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mNjRfeikpKQpzdmludDY0X3Qgc3Zsb2diX2Y2NF96KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMzJfeikpKQpzdmludDMyX3Qgc3Zsb2diX2YzMl96KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMTZfeikpKQpzdmludDE2X3Qgc3Zsb2diX2YxNl96KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfdTgpKSkKc3Zib29sX3Qgc3ZtYXRjaF91OChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3UxNikpKQpzdmJvb2xfdCBzdm1hdGNoX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfczgpKSkKc3Zib29sX3Qgc3ZtYXRjaF9zOChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXRjaF9zMTYpKSkKc3Zib29sX3Qgc3ZtYXRjaF9zMTYoc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubXBfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1wX2YzMl9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heG5tcF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtYXhubXBfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4bm1wX2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heG5tcF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4cF9mNjRfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWF4cF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWF4cF9mMTZfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4cF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWF4cF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWF4cF9mMTZfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtYXhwX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZtYXhwX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZtYXhwX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZtYXhwX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zOF94KSkpCnN2aW50OF90IHN2bWF4cF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWF4cF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWF4cF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWF4cF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhwX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtYXhwX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtYXhwX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtYXhwX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3U4X3gpKSkKc3Z1aW50OF90IHN2bWF4cF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MzJfeCkpKQpzdnVpbnQzMl90IHN2bWF4cF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2bWF4cF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MTZfeCkpKQpzdnVpbnQxNl90IHN2bWF4cF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1wX2Y2NF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tcF9mMzJfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubXBfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlubm1wX2Y2NF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbm5tcF9mMzJfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtaW5ubXBfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1pbnBfZjY0X20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1pbnBfZjMyX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbnBfZjE2X20oc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1pbnBfZjY0X3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1pbnBfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbnBfZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zOF9tKSkpCnN2aW50OF90IHN2bWlucF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczMyX20pKSkKc3ZpbnQzMl90IHN2bWlucF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWlucF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczE2X20pKSkKc3ZpbnQxNl90IHN2bWlucF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczhfeCkpKQpzdmludDhfdCBzdm1pbnBfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MzMl94KSkpCnN2aW50MzJfdCBzdm1pbnBfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M2NF94KSkpCnN2aW50NjRfdCBzdm1pbnBfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3MxNl94KSkpCnN2aW50MTZfdCBzdm1pbnBfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3U4X20pKSkKc3Z1aW50OF90IHN2bWlucF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWlucF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWlucF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWlucF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91OF94KSkpCnN2dWludDhfdCBzdm1pbnBfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1pbnBfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1pbnBfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbnBfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhX2xhbmVfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYV9sYW5lX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFfbGFuZV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZtbGFfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbGJfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fczMyKSkpCnN2aW50MzJfdCBzdm1sYWxiX25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYl9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbGJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbGJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsYl9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWxiX25fdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbGJfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsYl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfczY0KSkpCnN2aW50NjRfdCBzdm1sYWxiX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbGJfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWxiX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWxiX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWxiX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsYl9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbGJfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm1sYWxiX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbGJfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsYl9sYW5lX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsdF9uX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIGZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbHRfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fczY0KSkpCnN2aW50NjRfdCBzdm1sYWx0X25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZtbGFsdF9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsdF9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWx0X25fdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2bWxhbHRfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbGFsdF9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfczMyKSkpCnN2aW50MzJfdCBzdm1sYWx0X3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbHRfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3MxNikpKQpzdmludDE2X3Qgc3ZtbGFsdF9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3UzMikpKQpzdnVpbnQzMl90IHN2bWxhbHRfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbHRfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3UxNikpKQpzdnVpbnQxNl90IHN2bWxhbHRfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWx0X2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsdF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxhbHRfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsdF9sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWx0X2xhbmVfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc19sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2bWxzX2xhbmVfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiX25fZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsYl9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bWxzbGJfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fczE2KSkpCnN2aW50MTZfdCBzdm1sc2xiX25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2xiX25fdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbGJfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsYl9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbGJfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsYl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfczE2KSkpCnN2aW50MTZfdCBzdm1sc2xiX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsYl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsYl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbGJfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sc2xiX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsYl9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2xiX2xhbmVfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbGJfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbHRfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fczMyKSkpCnN2aW50MzJfdCBzdm1sc2x0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzbHRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2bWxzbHRfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sc2x0X25fdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbHRfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsdF9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfczY0KSkpCnN2aW50NjRfdCBzdm1sc2x0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzbHRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2x0X3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2x0X3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF91MTYpKSkKc3Z1aW50MTZfdCBzdm1sc2x0X3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZtbHNsdF9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbHRfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm1sc2x0X2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxzbHRfbGFuZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsdF9sYW5lX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfczMyKSkpCnN2aW50MzJfdCBzdm1vdmxiX3MzMihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3M2NCkpKQpzdmludDY0X3Qgc3Ztb3ZsYl9zNjQoc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl9zMTYpKSkKc3ZpbnQxNl90IHN2bW92bGJfczE2KHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl91MzIpKSkKc3Z1aW50MzJfdCBzdm1vdmxiX3UzMihzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl91NjQpKSkKc3Z1aW50NjRfdCBzdm1vdmxiX3U2NChzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl91MTYpKSkKc3Z1aW50MTZfdCBzdm1vdmxiX3UxNihzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3MzMikpKQpzdmludDMyX3Qgc3Ztb3ZsdF9zMzIoc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bW92bHRfczY0KHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfczE2KSkpCnN2aW50MTZfdCBzdm1vdmx0X3MxNihzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfdTMyKSkpCnN2dWludDMyX3Qgc3Ztb3ZsdF91MzIoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfdTY0KSkpCnN2dWludDY0X3Qgc3Ztb3ZsdF91NjQoc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfdTE2KSkpCnN2dWludDE2X3Qgc3Ztb3ZsdF91MTYoc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm11bF9sYW5lX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxfbGFuZV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3UxNikpKQpzdnVpbnQxNl90IHN2bXVsX2xhbmVfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdm11bF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZtdWxfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsYl9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fczY0KSkpCnN2aW50NjRfdCBzdm11bGxiX25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbGJfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGxiX25fdTMyKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbGJfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsYl9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsYl9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsYl9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX3MxNikpKQpzdmludDE2X3Qgc3ZtdWxsYl9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGxiX3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGxiX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl91MTYpKSkKc3Z1aW50MTZfdCBzdm11bGxiX3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbGJfbGFuZV9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsYl9sYW5lX3M2NChzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsYl9sYW5lX3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGxiX2xhbmVfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsdF9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fczY0KSkpCnN2aW50NjRfdCBzdm11bGx0X25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbHRfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGx0X25fdTMyKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsbHRfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsdF9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3MzMikpKQpzdmludDMyX3Qgc3ZtdWxsdF9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsdF9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X3MxNikpKQpzdmludDE2X3Qgc3ZtdWxsdF9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF91MzIpKSkKc3Z1aW50MzJfdCBzdm11bGx0X3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGx0X3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF91MTYpKSkKc3Z1aW50MTZfdCBzdm11bGx0X3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbHRfbGFuZV9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxsdF9sYW5lX3M2NChzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsdF9sYW5lX3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm11bGx0X2xhbmVfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTgpKSkKc3Z1aW50OF90IHN2bmJzbF9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZuYnNsX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZuYnNsX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZuYnNsX25fdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fczgpKSkKc3ZpbnQ4X3Qgc3ZuYnNsX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bmJzbF9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZuYnNsX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fczE2KSkpCnN2aW50MTZfdCBzdm5ic2xfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTgpKSkKc3Z1aW50OF90IHN2bmJzbF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3UzMikpKQpzdnVpbnQzMl90IHN2bmJzbF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF91NjQpKSkKc3Z1aW50NjRfdCBzdm5ic2xfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTE2KSkpCnN2dWludDE2X3Qgc3ZuYnNsX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3M4KSkpCnN2aW50OF90IHN2bmJzbF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3MzMikpKQpzdmludDMyX3Qgc3ZuYnNsX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3M2NCkpKQpzdmludDY0X3Qgc3ZuYnNsX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3MxNikpKQpzdmludDE2X3Qgc3ZuYnNsX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfdTgpKSkKc3Zib29sX3Qgc3ZubWF0Y2hfdTgoc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfdTE2KSkpCnN2Ym9vbF90IHN2bm1hdGNoX3UxNihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hdGNoX3M4KSkpCnN2Ym9vbF90IHN2bm1hdGNoX3M4KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYXRjaF9zMTYpKSkKc3Zib29sX3Qgc3ZubWF0Y2hfczE2KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bF9uX3U4KSkpCnN2dWludDhfdCBzdnBtdWxfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxfdTgpKSkKc3Z1aW50OF90IHN2cG11bF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGJfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2cG11bGxiX25fdTE2KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZwbXVsbGJfdTE2KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl9uX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsYl9wYWlyX25fdTgoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2cG11bGxiX3BhaXJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX3U4KSkpCnN2dWludDhfdCBzdnBtdWxsYl9wYWlyX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsYl9wYWlyX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdF9uX3U2NChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZwbXVsbHRfbl91MTYoc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbHRfdTY0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsdF91MTYoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX25fdTgpKSkKc3Z1aW50OF90IHN2cG11bGx0X3BhaXJfbl91OChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZwbXVsbHRfcGFpcl9uX3UzMihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3BhaXJfdTgpKSkKc3Z1aW50OF90IHN2cG11bGx0X3BhaXJfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX3UzMikpKQpzdnVpbnQzMl90IHN2cG11bGx0X3BhaXJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczhfbSkpKQpzdmludDhfdCBzdnFhYnNfczhfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFhYnNfczMyX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFhYnNfczY0X20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFhYnNfczE2X20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxYWJzX3M4X3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MzMl94KSkpCnN2aW50MzJfdCBzdnFhYnNfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfeCkpKQpzdmludDY0X3Qgc3ZxYWJzX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczE2X3gpKSkKc3ZpbnQxNl90IHN2cWFic19zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxYWJzX3M4X3ooc3Zib29sX3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhYnNfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfeikpKQpzdmludDY0X3Qgc3ZxYWJzX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczE2X3opKSkKc3ZpbnQxNl90IHN2cWFic19zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczhfbSkpKQpzdmludDhfdCBzdnFhZGRfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cWFkZF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxYWRkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFhZGRfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczhfeCkpKQpzdmludDhfdCBzdnFhZGRfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cWFkZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxYWRkX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFhZGRfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczhfeikpKQpzdmludDhfdCBzdnFhZGRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cWFkZF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZxYWRkX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhZGRfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFhZGRfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cWFkZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZxYWRkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFhZGRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cWFkZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZxYWRkX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZxYWRkX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFhZGRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cWFkZF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxYWRkX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWRkX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZxYWRkX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxYWRkX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3ZxYWRkX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zOF94KSkpCnN2aW50OF90IHN2cWFkZF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cWFkZF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cWFkZF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2cWFkZF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczhfeikpKQpzdmludDhfdCBzdnFhZGRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhZGRfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdnFhZGRfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhZGRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U4X20pKSkKc3Z1aW50OF90IHN2cWFkZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cWFkZF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cWFkZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cWFkZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91OF94KSkpCnN2dWludDhfdCBzdnFhZGRfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFhZGRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFhZGRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFhZGRfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxYWRkX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zOCkpKQpzdmludDhfdCBzdnFjYWRkX3M4KHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFjYWRkX3MzMikpKQpzdmludDMyX3Qgc3ZxY2FkZF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWNhZGRfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczE2KSkpCnN2aW50MTZfdCBzdnFjYWRkX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYl9uX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxiX25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxiX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWxiX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxiX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbGJfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGJ0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxidF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsYnRfbl9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYnRfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxidF9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGJ0X3MxNihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWx0X25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbHRfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsdF9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbHRfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbHRfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbHRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbHRfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsdF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xiX25fczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYl9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGJfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbGJfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGJfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsYl9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYnRfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJ0X25fczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2xidF9uX3MxNihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xidF9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJ0X3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYnRfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbHRfbl9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsdF9uX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2x0X25fczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsdF9zMzIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsdF9zNjQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsdF9zMTYoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsdF9sYW5lX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2x0X2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbl9zOCkpKQpzdmludDhfdCBzdnFkbXVsaF9uX3M4KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGhfbl9zMzIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxoX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsaF9uX3MxNihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zOCkpKQpzdmludDhfdCBzdnFkbXVsaF9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxoX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGhfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsaF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGhfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxoX2xhbmVfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsaF9sYW5lX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsYl9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsYl9uX3M2NChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsYl9uX3MxNihzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGxiX3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsYl9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsbGJfczE2KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGxiX2xhbmVfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGxiX2xhbmVfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGx0X25fczMyKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGx0X25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGx0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbHRfczMyKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGx0X3M2NChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsdF9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbHRfbGFuZV9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbHRfbGFuZV9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxbmVnX3M4X20oc3ZpbnQ4X3QsIHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMzJfbSkpKQpzdmludDMyX3Qgc3ZxbmVnX3MzMl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zNjRfbSkpKQpzdmludDY0X3Qgc3ZxbmVnX3M2NF9tKHN2aW50NjRfdCwgc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfbSkpKQpzdmludDE2X3Qgc3ZxbmVnX3MxNl9tKHN2aW50MTZfdCwgc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF94KSkpCnN2aW50OF90IHN2cW5lZ19zOF94KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMzJfeCkpKQpzdmludDMyX3Qgc3ZxbmVnX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cW5lZ19zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MxNl94KSkpCnN2aW50MTZfdCBzdnFuZWdfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF96KSkpCnN2aW50OF90IHN2cW5lZ19zOF96KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMzJfeikpKQpzdmludDMyX3Qgc3ZxbmVnX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczY0X3opKSkKc3ZpbnQ2NF90IHN2cW5lZ19zNjRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MxNl96KSkpCnN2aW50MTZfdCBzdnFuZWdfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRjbWxhaF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczMyKSkpCnN2aW50MzJfdCBzdnFyZGNtbGFoX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczY0KSkpCnN2aW50NjRfdCBzdnFyZGNtbGFoX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfczE2KSkpCnN2aW50MTZfdCBzdnFyZGNtbGFoX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkY21sYWhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkY21sYWhfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRjbWxhaF9sYW5lX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zOCkpKQpzdmludDhfdCBzdnFyZG1sYWhfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbGFoX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX25fczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sYWhfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaF9uX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zOCkpKQpzdmludDhfdCBzdnFyZG1sYWhfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxhaF9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxhaF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbGFoX2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sYWhfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaF9sYW5lX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3M4KSkpCnN2aW50OF90IHN2cXJkbWxzaF9uX3M4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX25fczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sc2hfbl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxzaF9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3M4KSkpCnN2aW50OF90IHN2cXJkbWxzaF9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbHNoX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbHNoX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sc2hfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxzaF9sYW5lX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoX2xhbmVfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtdWxoX25fczgoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtdWxoX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtdWxoX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtdWxoX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9zOCkpKQpzdmludDhfdCBzdnFyZG11bGhfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtdWxoX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbXVsaF9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczE2KSkpCnN2aW50MTZfdCBzdnFyZG11bGhfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZG11bGhfbGFuZV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFyZG11bGhfbGFuZV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFyZG11bGhfbGFuZV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxcnNobF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cXJzaGxfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFyc2hsX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZxcnNobF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczhfeCkpKQpzdmludDhfdCBzdnFyc2hsX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZxcnNobF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXJzaGxfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFyc2hsX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zOF96KSkpCnN2aW50OF90IHN2cXJzaGxfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFyc2hsX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZxcnNobF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cXJzaGxfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXJzaGxfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXJzaGxfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXJzaGxfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91OF94KSkpCnN2dWludDhfdCBzdnFyc2hsX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFyc2hsX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFyc2hsX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFyc2hsX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZxcnNobF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxcnNobF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxcnNobF9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxcnNobF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zOF9tKSkpCnN2aW50OF90IHN2cXJzaGxfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZxcnNobF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFyc2hsX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cXJzaGxfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zOF94KSkpCnN2aW50OF90IHN2cXJzaGxfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZxcnNobF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M2NF94KSkpCnN2aW50NjRfdCBzdnFyc2hsX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczE2X3gpKSkKc3ZpbnQxNl90IHN2cXJzaGxfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zOF96KSkpCnN2aW50OF90IHN2cXJzaGxfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMzJfeikpKQpzdmludDMyX3Qgc3ZxcnNobF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnFyc2hsX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczE2X3opKSkKc3ZpbnQxNl90IHN2cXJzaGxfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91OF9tKSkpCnN2dWludDhfdCBzdnFyc2hsX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZxcnNobF91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cXJzaGxfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFyc2hsX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZxcnNobF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXJzaGxfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdThfeikpKQpzdnVpbnQ4X3Qgc3ZxcnNobF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91MzJfeikpKQpzdnVpbnQzMl90IHN2cXJzaGxfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFyc2hsX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxcnNobF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fczMyKSkpCnN2aW50MTZfdCBzdnFyc2hybmJfbl9zMzIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZxcnNocm5iX25fczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZxcnNocm5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hybmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hybmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cXJzaHJuYl9uX3UxNihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZxcnNocm50X25fczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZxcnNocm50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnFyc2hybnRfbl9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hybnRfbl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hybnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl91MTYpKSkKc3Z1aW50OF90IHN2cXJzaHJudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVuYl9uX3MzMikpKQpzdnVpbnQxNl90IHN2cXJzaHJ1bmJfbl9zMzIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bmJfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hydW5iX25fczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW5iX25fczE2KSkpCnN2dWludDhfdCBzdnFyc2hydW5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW50X25fczMyKSkpCnN2dWludDE2X3Qgc3ZxcnNocnVudF9uX3MzMihzdnVpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVudF9uX3M2NCkpKQpzdnVpbnQzMl90IHN2cXJzaHJ1bnRfbl9zNjQoc3Z1aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bnRfbl9zMTYpKSkKc3Z1aW50OF90IHN2cXJzaHJ1bnRfbl9zMTYoc3Z1aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczhfbSkpKQpzdmludDhfdCBzdnFzaGxfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cXNobF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc2hsX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzaGxfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczhfeCkpKQpzdmludDhfdCBzdnFzaGxfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXNobF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc2hsX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzaGxfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczhfeikpKQpzdmludDhfdCBzdnFzaGxfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXNobF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc2hsX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzaGxfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc2hsX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXNobF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGxfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc2hsX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91OF94KSkpCnN2dWludDhfdCBzdnFzaGxfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc2hsX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXNobF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzaGxfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXNobF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzaGxfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc2hsX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXNobF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc2hsX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc2hsX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc2hsX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc2hsX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zOF94KSkpCnN2aW50OF90IHN2cXNobF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXNobF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXNobF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczE2X3gpKSkKc3ZpbnQxNl90IHN2cXNobF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczhfeikpKQpzdmludDhfdCBzdnFzaGxfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzaGxfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzaGxfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzaGxfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U4X20pKSkKc3Z1aW50OF90IHN2cXNobF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc2hsX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGxfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXNobF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cXNobF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc2hsX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzaGxfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXNobF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U4X3opKSkKc3Z1aW50OF90IHN2cXNobF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc2hsX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzaGxfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MTZfeikpKQpzdnVpbnQxNl90IHN2cXNobF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M4X20pKSkKc3Z1aW50OF90IHN2cXNobHVfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczMyX20pKSkKc3Z1aW50MzJfdCBzdnFzaGx1X25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGx1X25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczE2X20pKSkKc3Z1aW50MTZfdCBzdnFzaGx1X25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczhfeCkpKQpzdnVpbnQ4X3Qgc3Zxc2hsdV9uX3M4X3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobHVfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zNjRfeCkpKQpzdnVpbnQ2NF90IHN2cXNobHVfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMTZfeCkpKQpzdnVpbnQxNl90IHN2cXNobHVfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zOF96KSkpCnN2dWludDhfdCBzdnFzaGx1X25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MzMl96KSkpCnN2dWludDMyX3Qgc3Zxc2hsdV9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M2NF96KSkpCnN2dWludDY0X3Qgc3Zxc2hsdV9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MxNl96KSkpCnN2dWludDE2X3Qgc3Zxc2hsdV9uX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cXNocm5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3Zxc2hybmJfbl9zNjQoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fczE2KSkpCnN2aW50OF90IHN2cXNocm5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXNocm5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJuYl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnFzaHJuYl9uX3UxNihzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fczMyKSkpCnN2aW50MTZfdCBzdnFzaHJudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3M2NCkpKQpzdmludDMyX3Qgc3Zxc2hybnRfbl9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zxc2hybnRfbl9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXNocm50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJudF9uX3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnFzaHJudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW5iX25fczMyKSkpCnN2dWludDE2X3Qgc3Zxc2hydW5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bmJfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJ1bmJfbl9zNjQoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVuYl9uX3MxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hydW5iX25fczE2KHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bnRfbl9zMzIpKSkKc3Z1aW50MTZfdCBzdnFzaHJ1bnRfbl9zMzIoc3Z1aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVudF9uX3M2NCkpKQpzdnVpbnQzMl90IHN2cXNocnVudF9uX3M2NChzdnVpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hydW50X25fczE2KSkpCnN2dWludDhfdCBzdnFzaHJ1bnRfbl9zMTYoc3Z1aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczhfbSkpKQpzdmludDhfdCBzdnFzdWJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1Yl9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3ViX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzdWJfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczhfeCkpKQpzdmludDhfdCBzdnFzdWJfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1Yl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc3ViX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczhfeikpKQpzdmludDhfdCBzdnFzdWJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXN1Yl9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3ViX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1Yl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc3ViX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX25fdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXN1Yl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3ViX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3ViX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzdWJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1Yl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3ViX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3ViX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3ViX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3ViX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zOF94KSkpCnN2aW50OF90IHN2cXN1Yl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1Yl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXN1Yl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczE2X3gpKSkKc3ZpbnQxNl90IHN2cXN1Yl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczhfeikpKQpzdmludDhfdCBzdnFzdWJfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzdWJfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1Yl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1Yl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1Yl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1Yl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJfdThfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzdWJfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzdWJfdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3ViX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3ViX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cXN1YnJfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzdWJyX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3Vicl9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczhfeCkpKQpzdmludDhfdCBzdnFzdWJyX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zxc3Vicl9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXN1YnJfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJyX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zOF96KSkpCnN2aW50OF90IHN2cXN1YnJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJyX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3Vicl9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cXN1YnJfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1YnJfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzdWJyX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc3Vicl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1YnJfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXN1YnJfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzdWJyX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91OF96KSkpCnN2dWludDhfdCBzdnFzdWJyX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3Vicl9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1YnJfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzdWJyX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zOF9tKSkpCnN2aW50OF90IHN2cXN1YnJfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3Vicl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzdWJyX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1YnJfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zOF94KSkpCnN2aW50OF90IHN2cXN1YnJfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zxc3Vicl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJyX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2cXN1YnJfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zOF96KSkpCnN2aW50OF90IHN2cXN1YnJfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc3Vicl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M2NF96KSkpCnN2aW50NjRfdCBzdnFzdWJyX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczE2X3opKSkKc3ZpbnQxNl90IHN2cXN1YnJfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91OF9tKSkpCnN2dWludDhfdCBzdnFzdWJyX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1YnJfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc3Vicl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJyX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJyX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXN1YnJfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3Vicl91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzdWJyX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91OF96KSkpCnN2dWludDhfdCBzdnFzdWJyX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXN1YnJfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc3Vicl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzdWJyX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl9zMzIpKSkKc3ZpbnQxNl90IHN2cXh0bmJfczMyKHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfczY0KSkpCnN2aW50MzJfdCBzdnF4dG5iX3M2NChzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3MxNikpKQpzdmludDhfdCBzdnF4dG5iX3MxNihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3UzMikpKQpzdnVpbnQxNl90IHN2cXh0bmJfdTMyKHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3U2NCkpKQpzdnVpbnQzMl90IHN2cXh0bmJfdTY0KHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3ZxeHRuYl91MTYoc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczMyKSkpCnN2aW50MTZfdCBzdnF4dG50X3MzMihzdmludDE2X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczY0KSkpCnN2aW50MzJfdCBzdnF4dG50X3M2NChzdmludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfczE2KSkpCnN2aW50OF90IHN2cXh0bnRfczE2KHN2aW50OF90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3UzMikpKQpzdnVpbnQxNl90IHN2cXh0bnRfdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3U2NCkpKQpzdnVpbnQzMl90IHN2cXh0bnRfdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG50X3UxNikpKQpzdnVpbnQ4X3Qgc3ZxeHRudF91MTYoc3Z1aW50OF90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bmJfczMyKSkpCnN2dWludDE2X3Qgc3ZxeHR1bmJfczMyKHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW5iX3M2NCkpKQpzdnVpbnQzMl90IHN2cXh0dW5iX3M2NChzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVuYl9zMTYpKSkKc3Z1aW50OF90IHN2cXh0dW5iX3MxNihzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVudF9zMzIpKSkKc3Z1aW50MTZfdCBzdnF4dHVudF9zMzIoc3Z1aW50MTZfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bnRfczY0KSkpCnN2dWludDMyX3Qgc3ZxeHR1bnRfczY0KHN2dWludDMyX3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW50X3MxNikpKQpzdnVpbnQ4X3Qgc3ZxeHR1bnRfczE2KHN2dWludDhfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3ZyYWRkaG5iX25fdTMyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG5iX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fdTE2KSkpCnN2dWludDhfdCBzdnJhZGRobmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cmFkZGhuYl9uX3MzMihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhuYl9uX3M2NChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZyYWRkaG5iX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobmJfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG5iX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG5iX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3MzMikpKQpzdmludDE2X3Qgc3ZyYWRkaG5iX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhuYl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfczE2KSkpCnN2aW50OF90IHN2cmFkZGhuYl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobnRfbl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJhZGRobnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl91MTYpKSkKc3Z1aW50OF90IHN2cmFkZGhudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobnRfbl9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhudF9uX3M2NChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9uX3MxNikpKQpzdmludDhfdCBzdnJhZGRobnRfbl9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobnRfdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG50X3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG50X3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobnRfczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczY0KSkpCnN2aW50MzJfdCBzdnJhZGRobnRfczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfczE2KSkpCnN2aW50OF90IHN2cmFkZGhudF9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmVjcGVfdTMyX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZyZWNwZV91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJlY3BlX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF9uX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cmhhZGRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJoYWRkX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZyaGFkZF9uX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczhfeCkpKQpzdmludDhfdCBzdnJoYWRkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyaGFkZF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cmhhZGRfbl9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnJoYWRkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zOF96KSkpCnN2aW50OF90IHN2cmhhZGRfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnJoYWRkX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZyaGFkZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cmhhZGRfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2cmhhZGRfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJoYWRkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyaGFkZF9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmhhZGRfbl91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmhhZGRfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJoYWRkX25fdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdnJoYWRkX25fdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyaGFkZF9uX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmhhZGRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJoYWRkX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zOF9tKSkpCnN2aW50OF90IHN2cmhhZGRfczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyaGFkZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJoYWRkX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2cmhhZGRfczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zOF94KSkpCnN2aW50OF90IHN2cmhhZGRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyaGFkZF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M2NF94KSkpCnN2aW50NjRfdCBzdnJoYWRkX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2cmhhZGRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zOF96KSkpCnN2aW50OF90IHN2cmhhZGRfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZyaGFkZF9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdnJoYWRkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczE2X3opKSkKc3ZpbnQxNl90IHN2cmhhZGRfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91OF9tKSkpCnN2dWludDhfdCBzdnJoYWRkX3U4X20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmhhZGRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyaGFkZF91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJoYWRkX3UxNl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91OF94KSkpCnN2dWludDhfdCBzdnJoYWRkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmhhZGRfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyaGFkZF91NjRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJoYWRkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91OF96KSkpCnN2dWludDhfdCBzdnJoYWRkX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2cmhhZGRfdTMyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZyaGFkZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJoYWRkX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczhfbSkpKQpzdmludDhfdCBzdnJzaGxfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cnNobF9uX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hsX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnJzaGxfbl9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczhfeCkpKQpzdmludDhfdCBzdnJzaGxfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cnNobF9uX3MzMl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zyc2hsX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnJzaGxfbl9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczhfeikpKQpzdmludDhfdCBzdnJzaGxfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cnNobF9uX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zyc2hsX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnJzaGxfbl9zMTZfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zyc2hsX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cnNobF9uX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaGxfbl91NjRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zyc2hsX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91OF94KSkpCnN2dWludDhfdCBzdnJzaGxfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc2hsX25fdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cnNobF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJzaGxfbl91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cnNobF9uX3U4X3ooc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzaGxfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zyc2hsX25fdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cnNobF9uX3UxNl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zyc2hsX3M4X20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zyc2hsX3MzMl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hsX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hsX3MxNl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zOF94KSkpCnN2aW50OF90IHN2cnNobF9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczMyX3gpKSkKc3ZpbnQzMl90IHN2cnNobF9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cnNobF9zNjRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczE2X3gpKSkKc3ZpbnQxNl90IHN2cnNobF9zMTZfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczhfeikpKQpzdmludDhfdCBzdnJzaGxfczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MzMl96KSkpCnN2aW50MzJfdCBzdnJzaGxfczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M2NF96KSkpCnN2aW50NjRfdCBzdnJzaGxfczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MxNl96KSkpCnN2aW50MTZfdCBzdnJzaGxfczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U4X20pKSkKc3Z1aW50OF90IHN2cnNobF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc2hsX3UzMl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaGxfdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cnNobF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cnNobF91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc2hsX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJzaGxfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cnNobF91MTZfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U4X3opKSkKc3Z1aW50OF90IHN2cnNobF91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zyc2hsX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJzaGxfdTY0X3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MTZfeikpKQpzdnVpbnQxNl90IHN2cnNobF91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczhfbSkpKQpzdmludDhfdCBzdnJzaHJfbl9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zyc2hyX25fczMyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hyX25fczY0X20oc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hyX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91OF9tKSkpCnN2dWludDhfdCBzdnJzaHJfbl91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzaHJfbl91MzJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cnNocl9uX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zyc2hyX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczhfeCkpKQpzdmludDhfdCBzdnJzaHJfbl9zOF94KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zyc2hyX25fczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zyc2hyX25fczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zyc2hyX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91OF94KSkpCnN2dWludDhfdCBzdnJzaHJfbl91OF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJzaHJfbl91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cnNocl9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zyc2hyX25fdTE2X3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczhfeikpKQpzdmludDhfdCBzdnJzaHJfbl9zOF96KHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zyc2hyX25fczMyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zyc2hyX25fczY0X3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zyc2hyX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91OF96KSkpCnN2dWludDhfdCBzdnJzaHJfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzaHJfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cnNocl9uX3U2NF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zyc2hyX25fdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzaHJuYl9uX3UzMihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zyc2hybmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc2hybmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc2hybmJfbl9zMzIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fczY0KSkpCnN2aW50MzJfdCBzdnJzaHJuYl9uX3M2NChzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc2hybmJfbl9zMTYoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3Zyc2hybnRfbl91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnNocm50X25fdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl91MTYpKSkKc3Z1aW50OF90IHN2cnNocm50X25fdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc2hybnRfbl9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnNocm50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fczE2KSkpCnN2aW50OF90IHN2cnNocm50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzcXJ0ZV91MzJfbShzdnVpbnQzMl90LCBzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc3FydGVfdTMyX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV91MzJfeikpKQpzdnVpbnQzMl90IHN2cnNxcnRlX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fczgpKSkKc3ZpbnQ4X3Qgc3Zyc3JhX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3MzMikpKQpzdmludDMyX3Qgc3Zyc3JhX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3M2NCkpKQpzdmludDY0X3Qgc3Zyc3JhX25fczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3MxNikpKQpzdmludDE2X3Qgc3Zyc3JhX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3U4KSkpCnN2dWludDhfdCBzdnJzcmFfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnJzcmFfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnJzcmFfbl91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnJzcmFfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cnN1YmhuYl9uX3UxNihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc3ViaG5iX25fczMyKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3Zyc3ViaG5iX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3MxNikpKQpzdmludDhfdCBzdnJzdWJobmJfbl9zMTYoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhuYl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobmJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobmJfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobmJfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3M2NCkpKQpzdmludDMyX3Qgc3Zyc3ViaG5iX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG5iX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhudF9uX3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnN1YmhudF9uX3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG50X25fdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhudF9uX3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3M2NCkpKQpzdmludDMyX3Qgc3Zyc3ViaG50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fczE2KSkpCnN2aW50OF90IHN2cnN1YmhudF9uX3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhudF91MzIoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobnRfdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobnRfdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhudF9zMzIoc3ZpbnQxNl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhudF9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG50X3MxNihzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzYmNsYl9uX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNiY2xiX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl91MzIpKSkKc3Z1aW50MzJfdCBzdnNiY2xiX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsYl91NjQpKSkKc3Z1aW50NjRfdCBzdnNiY2xiX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzYmNsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbHRfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsdF9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZzYmNsdF91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2JjbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsdF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c2hsbGJfbl9zMzIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c2hsbGJfbl9zNjQoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c2hsbGJfbl9zMTYoc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2hsbGJfbl91MzIoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzaGxsYl9uX3U2NChzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnNobGxiX25fdTE2KHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fczMyKSkpCnN2aW50MzJfdCBzdnNobGx0X25fczMyKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fczY0KSkpCnN2aW50NjRfdCBzdnNobGx0X25fczY0KHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fczE2KSkpCnN2aW50MTZfdCBzdnNobGx0X25fczE2KHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNobGx0X25fdTMyKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2hsbHRfbl91NjQoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzaGxsdF9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2c2hybmJfbl91MzIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzaHJuYl9uX3U2NChzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2c2hybmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fczMyKSkpCnN2aW50MTZfdCBzdnNocm5iX25fczMyKHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fczY0KSkpCnN2aW50MzJfdCBzdnNocm5iX25fczY0KHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2c2hybmJfbl9zMTYoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnNocm50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c2hybnRfbl91NjQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnNocm50X25fdTE2KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fczMyKSkpCnN2aW50MTZfdCBzdnNocm50X25fczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2c2hybnRfbl9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnNocm50X25fczE2KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZzbGlfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2xpX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNsaV9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzbGlfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3M4KSkpCnN2aW50OF90IHN2c2xpX25fczgoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fczMyKSkpCnN2aW50MzJfdCBzdnNsaV9uX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzbGlfbl9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c2xpX25fczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91OF9tKSkpCnN2dWludDhfdCBzdnNxYWRkX25fdThfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnNxYWRkX25fdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnNxYWRkX25fdTY0X20oc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnNxYWRkX25fdTE2X20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF9uX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzcWFkZF9uX3UzMl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZzcWFkZF9uX3U2NF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF9uX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3FhZGRfbl91OF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2c3FhZGRfbl91MzJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3FhZGRfbl91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2c3FhZGRfbl91MTZfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZzcWFkZF91OF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3FhZGRfdTMyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3U2NF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzcWFkZF91MTZfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91OF94KSkpCnN2dWludDhfdCBzdnNxYWRkX3U4X3goc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzcWFkZF91MzJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3FhZGRfdTY0X3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnNxYWRkX3UxNl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U4X3opKSkKc3Z1aW50OF90IHN2c3FhZGRfdThfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnNxYWRkX3UzMl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZzcWFkZF91NjRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2c3FhZGRfdTE2X3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczgpKSkKc3ZpbnQ4X3Qgc3ZzcmFfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3JhX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczY0KSkpCnN2aW50NjRfdCBzdnNyYV9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3MxNikpKQpzdmludDE2X3Qgc3ZzcmFfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZzcmFfbl91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3UzMikpKQpzdnVpbnQzMl90IHN2c3JhX25fdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNyYV9uX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzcmFfbl91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3U4KSkpCnN2dWludDhfdCBzdnNyaV9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zzcmlfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3JpX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnNyaV9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczgpKSkKc3ZpbnQ4X3Qgc3Zzcmlfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3JpX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczY0KSkpCnN2aW50NjRfdCBzdnNyaV9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3MxNikpKQpzdmludDE2X3Qgc3Zzcmlfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X2YzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfZjMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2VfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfZjY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX2YzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91MzJiYXNlX2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRiYXNlX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9zNjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRpbmRleF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRpbmRleF91NjQoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0aW5kZXhfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NGluZGV4X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl91NjRpbmRleF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF9mMzIoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X2Y2NChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF9mNjQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF9zMzIoc3Zib29sX3QsIGludDhfdCAqLCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2VfdTMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91MzJvZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMihzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCAqLCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGJhc2VfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfczY0aW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3M2NGluZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NGluZGV4X3M2NChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfdTY0aW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX3U2NG9mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhuYl9uX3UzMihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobmJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZzdWJobmJfbl91MTYoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZzdWJobmJfbl9zMzIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2c3ViaG5iX25fczY0KHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fczE2KSkpCnN2aW50OF90IHN2c3ViaG5iX25fczE2KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG5iX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobmJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG5iX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfczMyKSkpCnN2aW50MTZfdCBzdnN1YmhuYl9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2c3ViaG5iX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3MxNikpKQpzdmludDhfdCBzdnN1YmhuYl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG50X25fdTMyKHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnN1YmhudF9uX3U2NChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fdTE2KSkpCnN2dWludDhfdCBzdnN1YmhudF9uX3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG50X25fczMyKHN2aW50MTZfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2c3ViaG50X25fczY0KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobnRfbl9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG50X3UzMihzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobnRfdTY0KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG50X3UxNihzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG50X3MzMihzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfczY0KSkpCnN2aW50MzJfdCBzdnN1YmhudF9zNjQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3MxNikpKQpzdmludDhfdCBzdnN1YmhudF9zMTYoc3ZpbnQ4X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYl9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fczY0KSkpCnN2aW50NjRfdCBzdnN1YmxiX25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGJfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YmxiX25fdTMyKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3VibGJfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsYl9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYl9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYl9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYl9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YmxiX3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YmxiX3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YmxiX3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdnN1YmxidF9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYnRfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibGJ0X25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGJ0X3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYnRfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfczE2KSkpCnN2aW50MTZfdCBzdnN1YmxidF9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdF9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fczY0KSkpCnN2aW50NjRfdCBzdnN1Ymx0X25fczY0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHRfbl9zMTYoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ymx0X25fdTMyKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3VibHRfbl91NjQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJsdF9uX3UxNihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdF9zMzIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdF9zNjQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdF9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ymx0X3UzMihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ymx0X3U2NChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ymx0X3UxNihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX25fczMyKSkpCnN2aW50MzJfdCBzdnN1Ymx0Yl9uX3MzMihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdGJfbl9zNjQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3VibHRiX25fczE2KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHRiX3MzMihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdGJfczY0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfczE2KSkpCnN2aW50MTZfdCBzdnN1Ymx0Yl9zMTYoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3Yl9uX3MzMihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fczY0KSkpCnN2aW50NjRfdCBzdnN1YndiX25fczY0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c3Vid2Jfbl9zMTYoc3ZpbnQxNl90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3Yl9uX3UzMihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2Jfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YndiX25fdTY0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2c3Vid2Jfbl91MTYoc3Z1aW50MTZfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczMyKSkpCnN2aW50MzJfdCBzdnN1YndiX3MzMihzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczY0KSkpCnN2aW50NjRfdCBzdnN1YndiX3M2NChzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczE2KSkpCnN2aW50MTZfdCBzdnN1YndiX3MxNihzdmludDE2X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YndiX3UzMihzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YndiX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YndiX3UxNihzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fczMyKSkpCnN2aW50MzJfdCBzdnN1Ynd0X25fczMyKHN2aW50MzJfdCwgaW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3Vid3Rfbl9zNjQoc3ZpbnQ2NF90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJ3dF9uX3MxNihzdmludDE2X3QsIGludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ynd0X25fdTMyKHN2dWludDMyX3QsIHVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3Vid3Rfbl91NjQoc3Z1aW50NjRfdCwgdWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJ3dF9uX3UxNihzdnVpbnQxNl90LCB1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vid3RfczMyKHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3Vid3RfczY0KHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zMTYpKSkKc3ZpbnQxNl90IHN2c3Vid3RfczE2KHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3UzMikpKQpzdnVpbnQzMl90IHN2c3Vid3RfdTMyKHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3U2NCkpKQpzdnVpbnQ2NF90IHN2c3Vid3RfdTY0KHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3UxNikpKQpzdnVpbnQxNl90IHN2c3Vid3RfdTE2KHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl91OCkpKQpzdnVpbnQ4X3Qgc3Z0YmwyX3U4KHN2dWludDh4Ml90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfdTMyKSkpCnN2dWludDMyX3Qgc3Z0YmwyX3UzMihzdnVpbnQzMngyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfdTY0KSkpCnN2dWludDY0X3Qgc3Z0YmwyX3U2NChzdnVpbnQ2NHgyX3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfdTE2KSkpCnN2dWludDE2X3Qgc3Z0YmwyX3UxNihzdnVpbnQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfczgpKSkKc3ZpbnQ4X3Qgc3Z0YmwyX3M4KHN2aW50OHgyX3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0YmwyX2Y2NChzdmZsb2F0NjR4Ml90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRibDJfZjMyKHN2ZmxvYXQzMngyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dGJsMl9mMTYoc3ZmbG9hdDE2eDJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9zMzIpKSkKc3ZpbnQzMl90IHN2dGJsMl9zMzIoc3ZpbnQzMngyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfczY0KSkpCnN2aW50NjRfdCBzdnRibDJfczY0KHN2aW50NjR4Ml90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3MxNikpKQpzdmludDE2X3Qgc3Z0YmwyX3MxNihzdmludDE2eDJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3U4KSkpCnN2dWludDhfdCBzdnRieF91OChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfdTMyKSkpCnN2dWludDMyX3Qgc3Z0YnhfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF91NjQpKSkKc3Z1aW50NjRfdCBzdnRieF91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3UxNikpKQpzdnVpbnQxNl90IHN2dGJ4X3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczgpKSkKc3ZpbnQ4X3Qgc3Z0Ynhfczgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z0YnhfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X2YzMikpKQpzdmZsb2F0MzJfdCBzdnRieF9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dGJ4X2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9zMzIpKSkKc3ZpbnQzMl90IHN2dGJ4X3MzMihzdmludDMyX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3M2NCkpKQpzdmludDY0X3Qgc3Z0YnhfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczE2KSkpCnN2aW50MTZfdCBzdnRieF9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczhfbSkpKQpzdmludDhfdCBzdnVxYWRkX25fczhfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2dXFhZGRfbl9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Z1cWFkZF9uX3M2NF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnVxYWRkX25fczE2X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczhfeCkpKQpzdmludDhfdCBzdnVxYWRkX25fczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2dXFhZGRfbl9zMzJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Z1cWFkZF9uX3M2NF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnVxYWRkX25fczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczhfeikpKQpzdmludDhfdCBzdnVxYWRkX25fczhfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2dXFhZGRfbl9zMzJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Z1cWFkZF9uX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnVxYWRkX25fczE2X3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9zOF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3Z1cWFkZF9zMzJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zNjRfbSkpKQpzdmludDY0X3Qgc3Z1cWFkZF9zNjRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMTZfbSkpKQpzdmludDE2X3Qgc3Z1cWFkZF9zMTZfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zOF94KSkpCnN2aW50OF90IHN2dXFhZGRfczhfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2dXFhZGRfczMyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2dXFhZGRfczY0X3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2dXFhZGRfczE2X3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczhfeikpKQpzdmludDhfdCBzdnVxYWRkX3M4X3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdnVxYWRkX3MzMl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdnVxYWRkX3M2NF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdnVxYWRkX3MxNl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMzJfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMzJfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNl9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iOF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I4X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IzMl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IzMl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iNjRfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iNjRfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjE2X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjE2X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I4X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjhfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMzJfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMzJfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iNjRfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iNjRfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMTZfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMTZfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iOF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I4X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjE2X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjE2X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOF9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMzJfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMzJfczMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0X3MzMihpbnQzMl90LCBpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNl9zMzIoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iOF9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I4X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IzMl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IzMl9zNjQoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iNjRfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iNjRfczY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjE2X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjE2X3M2NChpbnQ2NF90LCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I4X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjhfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMzJfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMzJfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iNjRfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iNjRfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMTZfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMTZfdTMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iOF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I4X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjE2X3U2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjE2X3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTgpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3X3U4KHVpbnQ4X3QgY29uc3QgKiwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3M4KSkpCnN2Ym9vbF90IHN2d2hpbGVyd19zOChpbnQ4X3QgY29uc3QgKiwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVyd191NjQodWludDY0X3QgY29uc3QgKiwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3X2Y2NChmbG9hdDY0X3QgY29uc3QgKiwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVyd19zNjQoaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTE2KSkpCnN2Ym9vbF90IHN2d2hpbGVyd191MTYodWludDE2X3QgY29uc3QgKiwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3X2YxNihmbG9hdDE2X3QgY29uc3QgKiwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczE2KSkpCnN2Ym9vbF90IHN2d2hpbGVyd19zMTYoaW50MTZfdCBjb25zdCAqLCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVyd191MzIodWludDMyX3QgY29uc3QgKiwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3X2YzMihmbG9hdDMyX3QgY29uc3QgKiwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVyd19zMzIoaW50MzJfdCBjb25zdCAqLCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTgpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyX3U4KHVpbnQ4X3QgY29uc3QgKiwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX3M4KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9zOChpbnQ4X3QgY29uc3QgKiwgaW50OF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl91NjQodWludDY0X3QgY29uc3QgKiwgdWludDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyX2Y2NChmbG9hdDY0X3QgY29uc3QgKiwgZmxvYXQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9zNjQoaW50NjRfdCBjb25zdCAqLCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl91MTYodWludDE2X3QgY29uc3QgKiwgdWludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyX2YxNihmbG9hdDE2X3QgY29uc3QgKiwgZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9zMTYoaW50MTZfdCBjb25zdCAqLCBpbnQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGV3cl91MzIodWludDMyX3QgY29uc3QgKiwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9mMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyX2YzMihmbG9hdDMyX3QgY29uc3QgKiwgZmxvYXQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9zMzIoaW50MzJfdCBjb25zdCAqLCBpbnQzMl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3U4KSkpCnN2dWludDhfdCBzdnhhcl9uX3U4KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fdTMyKSkpCnN2dWludDMyX3Qgc3Z4YXJfbl91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2eGFyX25fdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnhhcl9uX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fczgpKSkKc3ZpbnQ4X3Qgc3Z4YXJfbl9zOChzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2eGFyX25fczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fczY0KSkpCnN2aW50NjRfdCBzdnhhcl9uX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3MxNikpKQpzdmludDE2X3Qgc3Z4YXJfbl9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczgpKSkKc3ZpbnQ4X3Qgc3ZhYmEoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fczY0KSkpCnN2aW50NjRfdCBzdmFiYShzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3MxNikpKQpzdmludDE2X3Qgc3ZhYmEoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZhYmEoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfczgpKSkKc3ZpbnQ4X3Qgc3ZhYmEoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV9zMzIpKSkKc3ZpbnQzMl90IHN2YWJhKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfczY0KSkpCnN2aW50NjRfdCBzdmFiYShzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3MxNikpKQpzdmludDE2X3Qgc3ZhYmEoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91OCkpKQpzdnVpbnQ4X3Qgc3ZhYmEoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYV91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX25fczMyKSkpCnN2aW50MzJfdCBzdmFiYWxiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZhYmFsYihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbGIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhbGIoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhbGIoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbGJfczMyKSkpCnN2aW50MzJfdCBzdmFiYWxiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJhbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3MxNikpKQpzdmludDE2X3Qgc3ZhYmFsYihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3UzMikpKQpzdnVpbnQzMl90IHN2YWJhbGIoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJhbGIoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWxiX3UxNikpKQpzdnVpbnQxNl90IHN2YWJhbGIoc3Z1aW50MTZfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsdChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X25fczY0KSkpCnN2aW50NjRfdCBzdmFiYWx0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWx0KHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWx0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWx0KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiYWx0X3MzMikpKQpzdmludDMyX3Qgc3ZhYmFsdChzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJhbHRfczY0KSkpCnN2aW50NjRfdCBzdmFiYWx0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF9zMTYpKSkKc3ZpbnQxNl90IHN2YWJhbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91MzIpKSkKc3Z1aW50MzJfdCBzdmFiYWx0KHN2dWludDMyX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91NjQpKSkKc3Z1aW50NjRfdCBzdmFiYWx0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmFsdF91MTYpKSkKc3Z1aW50MTZfdCBzdmFiYWx0KHN2dWludDE2X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJkbGIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJkbGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmRsYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmRsYihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zMzIpKSkKc3ZpbnQzMl90IHN2YWJkbGIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWJkbGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsYl9zMTYpKSkKc3ZpbnQxNl90IHN2YWJkbGIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZhYmRsYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZhYmRsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZhYmRsYihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fczMyKSkpCnN2aW50MzJfdCBzdmFiZGx0KHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fczY0KSkpCnN2aW50NjRfdCBzdmFiZGx0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X25fczE2KSkpCnN2aW50MTZfdCBzdmFiZGx0KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbHQoc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbHQoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhYmRsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbHQoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczMyKSkpCnN2aW50MzJfdCBzdmFiZGx0KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczY0KSkpCnN2aW50NjRfdCBzdmFiZGx0KHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWJkbHRfczE2KSkpCnN2aW50MTZfdCBzdmFiZGx0KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3UzMikpKQpzdnVpbnQzMl90IHN2YWJkbHQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWJkbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFiZGx0X3UxNikpKQpzdnVpbnQxNl90IHN2YWJkbHQoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZhZGFscF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3M2NF9tKSkpCnN2aW50NjRfdCBzdmFkYWxwX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRhbHBfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkYWxwX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczY0X3gpKSkKc3ZpbnQ2NF90IHN2YWRhbHBfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZhZGFscF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfczMyX3opKSkKc3ZpbnQzMl90IHN2YWRhbHBfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF9zNjRfeikpKQpzdmludDY0X3Qgc3ZhZGFscF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3MxNl96KSkpCnN2aW50MTZfdCBzdmFkYWxwX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MzJfbSkpKQpzdnVpbnQzMl90IHN2YWRhbHBfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhZGFscF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTE2X20pKSkKc3Z1aW50MTZfdCBzdmFkYWxwX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZhZGFscF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmFkYWxwX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRhbHBfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRhbHBfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmFkYWxwX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGFscF91NjRfeikpKQpzdnVpbnQ2NF90IHN2YWRhbHBfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkYWxwX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZhZGFscF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRjbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRjbGIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2xiKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsYl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2xiKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YWRjbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRjbHQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF91MzIpKSkKc3Z1aW50MzJfdCBzdmFkY2x0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGNsdF91NjQpKSkKc3Z1aW50NjRfdCBzdmFkY2x0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdmFkZGhuYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2YWRkaG5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fdTE2KSkpCnN2dWludDhfdCBzdmFkZGhuYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZhZGRobmIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdmFkZGhuYihzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZhZGRobmIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2YWRkaG5iKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZhZGRobmIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl91MTYpKSkKc3Z1aW50OF90IHN2YWRkaG5iKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobmJfczMyKSkpCnN2aW50MTZfdCBzdmFkZGhuYihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2YWRkaG5iKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG5iX3MxNikpKQpzdmludDhfdCBzdmFkZGhuYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2YWRkaG50KHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZhZGRobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl91MTYpKSkKc3Z1aW50OF90IHN2YWRkaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2YWRkaG50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X25fczY0KSkpCnN2aW50MzJfdCBzdmFkZGhudChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9uX3MxNikpKQpzdmludDhfdCBzdmFkZGhudChzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3UzMikpKQpzdnVpbnQxNl90IHN2YWRkaG50KHN2dWludDE2X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZhZGRobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF91MTYpKSkKc3Z1aW50OF90IHN2YWRkaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGhudF9zMzIpKSkKc3ZpbnQxNl90IHN2YWRkaG50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRobnRfczY0KSkpCnN2aW50MzJfdCBzdmFkZGhudChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkaG50X3MxNikpKQpzdmludDhfdCBzdmFkZGhudChzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsYihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsYihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYihzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZGxiKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGxiKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGxiKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsYihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxiX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZGxiKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGxiKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGxiKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdmFkZGxidChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkbGJ0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsYnQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGxidF9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkbGJ0KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsYnQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsYnRfczE2KSkpCnN2aW50MTZfdCBzdmFkZGxidChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsdChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsdChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsdChzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZGx0KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGx0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGx0KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3MzMikpKQpzdmludDMyX3Qgc3ZhZGRsdChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3M2NCkpKQpzdmludDY0X3Qgc3ZhZGRsdChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZGx0X3MxNikpKQpzdmludDE2X3Qgc3ZhZGRsdChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZGx0KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZGx0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRsdF91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZGx0KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91OF9tKSkpCnN2dWludDhfdCBzdmFkZHBfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZhZGRwX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczMyX20pKSkKc3ZpbnQzMl90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczY0X20pKSkKc3ZpbnQ2NF90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfczE2X20pKSkKc3ZpbnQxNl90IHN2YWRkcF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHBfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZhZGRwX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MzJfeCkpKQpzdnVpbnQzMl90IHN2YWRkcF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2YWRkcF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF91MTZfeCkpKQpzdnVpbnQxNl90IHN2YWRkcF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkcF9zOF94KSkpCnN2aW50OF90IHN2YWRkcF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MzMl94KSkpCnN2aW50MzJfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3M2NF94KSkpCnN2aW50NjRfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGRwX3MxNl94KSkpCnN2aW50MTZfdCBzdmFkZHBfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZhZGR3YihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZhZGR3YihzdmludDY0X3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl9uX3MxNikpKQpzdmludDE2X3Qgc3ZhZGR3YihzdmludDE2X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZhZGR3YihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZhZGR3YihzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHdiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZhZGR3YihzdnVpbnQxNl90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczMyKSkpCnN2aW50MzJfdCBzdmFkZHdiKHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczY0KSkpCnN2aW50NjRfdCBzdmFkZHdiKHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd2JfczE2KSkpCnN2aW50MTZfdCBzdmFkZHdiKHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHdiKHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHdiKHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3Yl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHdiKHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fczMyKSkpCnN2aW50MzJfdCBzdmFkZHd0KHN2aW50MzJfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fczY0KSkpCnN2aW50NjRfdCBzdmFkZHd0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X25fczE2KSkpCnN2aW50MTZfdCBzdmFkZHd0KHN2aW50MTZfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmFkZHd0KHN2dWludDMyX3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmFkZHd0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWRkd3Rfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmFkZHd0KHN2dWludDE2X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zMzIpKSkKc3ZpbnQzMl90IHN2YWRkd3Qoc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zNjQpKSkKc3ZpbnQ2NF90IHN2YWRkd3Qoc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZGR3dF9zMTYpKSkKc3ZpbnQxNl90IHN2YWRkd3Qoc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3UzMikpKQpzdnVpbnQzMl90IHN2YWRkd3Qoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3U2NCkpKQpzdnVpbnQ2NF90IHN2YWRkd3Qoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFkZHd0X3UxNikpKQpzdnVpbnQxNl90IHN2YWRkd3Qoc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3U4KSkpCnN2dWludDhfdCBzdmJjYXgoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZiY2F4KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2YmNheChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJjYXgoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X25fczgpKSkKc3ZpbnQ4X3Qgc3ZiY2F4KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3MzMikpKQpzdmludDMyX3Qgc3ZiY2F4KHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZiY2F4KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9uX3MxNikpKQpzdmludDE2X3Qgc3ZiY2F4KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91OCkpKQpzdnVpbnQ4X3Qgc3ZiY2F4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3UzMikpKQpzdnVpbnQzMl90IHN2YmNheChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF91NjQpKSkKc3Z1aW50NjRfdCBzdmJjYXgoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJjYXhfdTE2KSkpCnN2dWludDE2X3Qgc3ZiY2F4KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiY2F4X3M4KSkpCnN2aW50OF90IHN2YmNheChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zMzIpKSkKc3ZpbnQzMl90IHN2YmNheChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zNjQpKSkKc3ZpbnQ2NF90IHN2YmNheChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmNheF9zMTYpKSkKc3ZpbnQxNl90IHN2YmNheChzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl91OCkpKQpzdnVpbnQ4X3Qgc3Zic2wxbihzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTMyKSkpCnN2dWludDMyX3Qgc3Zic2wxbihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2wxbihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zic2wxbihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fczgpKSkKc3ZpbnQ4X3Qgc3Zic2wxbihzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX25fczMyKSkpCnN2aW50MzJfdCBzdmJzbDFuKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fbl9zNjQpKSkKc3ZpbnQ2NF90IHN2YnNsMW4oc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9uX3MxNikpKQpzdmludDE2X3Qgc3Zic2wxbihzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3U4KSkpCnN2dWludDhfdCBzdmJzbDFuKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbDFuKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbDFuKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDFuKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9zOCkpKQpzdmludDhfdCBzdmJzbDFuKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wxbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMW4oc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDFuX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wxbihzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMW5fczE2KSkpCnN2aW50MTZfdCBzdmJzbDFuKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3U4KSkpCnN2dWludDhfdCBzdmJzbDJuKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91MzIpKSkKc3Z1aW50MzJfdCBzdmJzbDJuKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91NjQpKSkKc3Z1aW50NjRfdCBzdmJzbDJuKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbDJuKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl9zOCkpKQpzdmludDhfdCBzdmJzbDJuKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fbl9zMzIpKSkKc3ZpbnQzMl90IHN2YnNsMm4oc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9uX3M2NCkpKQpzdmludDY0X3Qgc3Zic2wybihzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX25fczE2KSkpCnN2aW50MTZfdCBzdmJzbDJuKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fdTgpKSkKc3Z1aW50OF90IHN2YnNsMm4oc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsMm4oc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3U2NCkpKQpzdnVpbnQ2NF90IHN2YnNsMm4oc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3UxNikpKQpzdnVpbnQxNl90IHN2YnNsMm4oc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3M4KSkpCnN2aW50OF90IHN2YnNsMm4oc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbDJuX3MzMikpKQpzdmludDMyX3Qgc3Zic2wybihzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsMm5fczY0KSkpCnN2aW50NjRfdCBzdmJzbDJuKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2wybl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsMm4oc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3U4KSkpCnN2dWludDhfdCBzdmJzbChzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zic2woc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3M4KSkpCnN2aW50OF90IHN2YnNsKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX25fczMyKSkpCnN2aW50MzJfdCBzdmJzbChzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9uX3M2NCkpKQpzdmludDY0X3Qgc3Zic2woc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfbl9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3U4KSkpCnN2dWludDhfdCBzdmJzbChzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3UzMikpKQpzdnVpbnQzMl90IHN2YnNsKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfdTY0KSkpCnN2dWludDY0X3Qgc3Zic2woc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF91MTYpKSkKc3Z1aW50MTZfdCBzdmJzbChzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3M4KSkpCnN2aW50OF90IHN2YnNsKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zic2xfczMyKSkpCnN2aW50MzJfdCBzdmJzbChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YnNsX3M2NCkpKQpzdmludDY0X3Qgc3Zic2woc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJzbF9zMTYpKSkKc3ZpbnQxNl90IHN2YnNsKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3U4KSkpCnN2dWludDhfdCBzdmNhZGQoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF91MzIpKSkKc3Z1aW50MzJfdCBzdmNhZGQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3U2NCkpKQpzdnVpbnQ2NF90IHN2Y2FkZChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfdTE2KSkpCnN2dWludDE2X3Qgc3ZjYWRkKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zOCkpKQpzdmludDhfdCBzdmNhZGQoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNhZGRfczMyKSkpCnN2aW50MzJfdCBzdmNhZGQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2FkZF9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2FkZChzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjYWRkX3MxNikpKQpzdmludDE2X3Qgc3ZjYWRkKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNkb3RfczMyKSkpCnN2aW50MzJfdCBzdmNkb3Qoc3ZpbnQzMl90LCBzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2RvdF9zNjQpKSkKc3ZpbnQ2NF90IHN2Y2RvdChzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNkb3RfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2Y2RvdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjZG90X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdmNkb3RfbGFuZShzdmludDY0X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3U4KSkpCnN2dWludDhfdCBzdmNtbGEoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3UzMikpKQpzdnVpbnQzMl90IHN2Y21sYShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfdTY0KSkpCnN2dWludDY0X3Qgc3ZjbWxhKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV91MTYpKSkKc3Z1aW50MTZfdCBzdmNtbGEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3M4KSkpCnN2aW50OF90IHN2Y21sYShzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfczMyKSkpCnN2aW50MzJfdCBzdmNtbGEoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX3M2NCkpKQpzdmludDY0X3Qgc3ZjbWxhKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9zMTYpKSkKc3ZpbnQxNl90IHN2Y21sYShzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNtbGFfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdmNtbGFfbGFuZShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbWxhX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZjbWxhX2xhbmUoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZjbWxhX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y21sYV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZjbWxhX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bHRfZjMyX2YxNl9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0bHRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2YzMl9mMTZfeCkpKQpzdmZsb2F0MzJfdCBzdmN2dGx0X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dGx0X2Y2NF9mMzJfbSkpKQpzdmZsb2F0NjRfdCBzdmN2dGx0X2Y2NF9tKHN2ZmxvYXQ2NF90LCBzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRsdF9mNjRfZjMyX3gpKSkKc3ZmbG9hdDY0X3Qgc3ZjdnRsdF9mNjRfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRudF9mMTZfZjMyX20pKSkKc3ZmbG9hdDE2X3Qgc3ZjdnRudF9mMTZfbShzdmZsb2F0MTZfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0bnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0bnRfZjMyX20oc3ZmbG9hdDMyX3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eF9mMzJfbShzdmZsb2F0MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0eF9mMzJfZjY0X3gpKSkKc3ZmbG9hdDMyX3Qgc3ZjdnR4X2YzMl94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dHhfZjMyX2Y2NF96KSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eF9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnR4bnRfZjMyX2Y2NF9tKSkpCnN2ZmxvYXQzMl90IHN2Y3Z0eG50X2YzMl9tKHN2ZmxvYXQzMl90LCBzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTgpKSkKc3Z1aW50OF90IHN2ZW9yMyhzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcjMoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3IzKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM19uX3UxNikpKQpzdnVpbnQxNl90IHN2ZW9yMyhzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfbl9zOCkpKQpzdmludDhfdCBzdmVvcjMoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczMyKSkpCnN2aW50MzJfdCBzdmVvcjMoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczY0KSkpCnN2aW50NjRfdCBzdmVvcjMoc3ZpbnQ2NF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX25fczE2KSkpCnN2aW50MTZfdCBzdmVvcjMoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3U4KSkpCnN2dWludDhfdCBzdmVvcjMoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3IzKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yMyhzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yM191MTYpKSkKc3Z1aW50MTZfdCBzdmVvcjMoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcjNfczgpKSkKc3ZpbnQ4X3Qgc3Zlb3IzKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3MzMikpKQpzdmludDMyX3Qgc3Zlb3IzKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3IzKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3IzX3MxNikpKQpzdmludDE2X3Qgc3Zlb3IzKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3U4KSkpCnN2dWludDhfdCBzdmVvcmJ0KHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdmVvcmJ0KHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdmVvcmJ0KHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdmVvcmJ0KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zOCkpKQpzdmludDhfdCBzdmVvcmJ0KHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2ZW9yYnQoc3ZpbnQzMl90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9uX3M2NCkpKQpzdmludDY0X3Qgc3Zlb3JidChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X25fczE2KSkpCnN2aW50MTZfdCBzdmVvcmJ0KHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfdTgpKSkKc3Z1aW50OF90IHN2ZW9yYnQoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3UzMikpKQpzdnVpbnQzMl90IHN2ZW9yYnQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9yYnQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3UxNikpKQpzdnVpbnQxNl90IHN2ZW9yYnQoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3M4KSkpCnN2aW50OF90IHN2ZW9yYnQoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcmJ0X3MzMikpKQpzdmludDMyX3Qgc3Zlb3JidChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9yYnRfczY0KSkpCnN2aW50NjRfdCBzdmVvcmJ0KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3JidF9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9yYnQoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fdTgpKSkKc3Z1aW50OF90IHN2ZW9ydGIoc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3UzMikpKQpzdnVpbnQzMl90IHN2ZW9ydGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2ZW9ydGIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3UxNikpKQpzdnVpbnQxNl90IHN2ZW9ydGIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3M4KSkpCnN2aW50OF90IHN2ZW9ydGIoc3ZpbnQ4X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9uX3MzMikpKQpzdmludDMyX3Qgc3Zlb3J0YihzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX25fczY0KSkpCnN2aW50NjRfdCBzdmVvcnRiKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2ZW9ydGIoc3ZpbnQxNl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl91OCkpKQpzdnVpbnQ4X3Qgc3Zlb3J0YihzdnVpbnQ4X3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTMyKSkpCnN2dWludDMyX3Qgc3Zlb3J0YihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTY0KSkpCnN2dWludDY0X3Qgc3Zlb3J0YihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfdTE2KSkpCnN2dWludDE2X3Qgc3Zlb3J0YihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczgpKSkKc3ZpbnQ4X3Qgc3Zlb3J0YihzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZW9ydGJfczMyKSkpCnN2aW50MzJfdCBzdmVvcnRiKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zlb3J0Yl9zNjQpKSkKc3ZpbnQ2NF90IHN2ZW9ydGIoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmVvcnRiX3MxNikpKQpzdmludDE2X3Qgc3Zlb3J0YihzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fczhfeCkpKQpzdmludDhfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl9zOF96KSkpCnN2aW50OF90IHN2aGFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zOF9tKSkpCnN2aW50OF90IHN2aGFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZoYWRkX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2aGFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfczhfeikpKQpzdmludDhfdCBzdmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91OF9tKSkpCnN2dWludDhfdCBzdmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZoYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoYWRkX3U4X3gpKSkKc3Z1aW50OF90IHN2aGFkZF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZoYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2aGFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF91MzJfeikpKQpzdnVpbnQzMl90IHN2aGlzdGNudF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF91NjRfeikpKQpzdnVpbnQ2NF90IHN2aGlzdGNudF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aGlzdGNudF9zMzJfeikpKQpzdnVpbnQzMl90IHN2aGlzdGNudF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhpc3RjbnRfczY0X3opKSkKc3Z1aW50NjRfdCBzdmhpc3RjbnRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0c2VnX3U4KSkpCnN2dWludDhfdCBzdmhpc3RzZWcoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZoaXN0c2VnX3M4KSkpCnN2dWludDhfdCBzdmhpc3RzZWcoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczMyX20pKSkKc3ZpbnQzMl90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczE2X20pKSkKc3ZpbnQxNl90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fczhfeCkpKQpzdmludDhfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl9zOF96KSkpCnN2aW50OF90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MzMl96KSkpCnN2aW50MzJfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U4X20pKSkKc3Z1aW50OF90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfbl91OF96KSkpCnN2dWludDhfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zOF9tKSkpCnN2aW50OF90IHN2aHN1Yl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M2NF9tKSkpCnN2aW50NjRfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3ViX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczMyX3gpKSkKc3ZpbnQzMl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczY0X3gpKSkKc3ZpbnQ2NF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfczhfeikpKQpzdmludDhfdCBzdmhzdWJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl9zMTZfeikpKQpzdmludDE2X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3ViX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3ViX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zoc3ViX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1Yl91MTZfeikpKQpzdnVpbnQxNl90IHN2aHN1Yl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zOF9tKSkpCnN2aW50OF90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczhfeCkpKQpzdmludDhfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3M2NF96KSkpCnN2aW50NjRfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fczE2X3opKSkKc3ZpbnQxNl90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91OF9tKSkpCnN2dWludDhfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U4X3opKSkKc3Z1aW50OF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczhfbSkpKQpzdmludDhfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MzMl9tKSkpCnN2aW50MzJfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczY0X20pKSkKc3ZpbnQ2NF90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3M2NF94KSkpCnN2aW50NjRfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczE2X3gpKSkKc3ZpbnQxNl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zOF96KSkpCnN2aW50OF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfczMyX3opKSkKc3ZpbnQzMl90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl9zNjRfeikpKQpzdmludDY0X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3MxNl96KSkpCnN2aW50MTZfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zoc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTY0X20pKSkKc3Z1aW50NjRfdCBzdmhzdWJyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MTZfbSkpKQpzdnVpbnQxNl90IHN2aHN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U4X3gpKSkKc3Z1aW50OF90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91MzJfeCkpKQpzdnVpbnQzMl90IHN2aHN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zoc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdmhzdWJyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91OF96KSkpCnN2dWludDhfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aHN1YnJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdmhzdWJyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zoc3Vicl91NjRfeikpKQpzdnVpbnQ2NF90IHN2aHN1YnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmhzdWJyX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zoc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2luZGV4X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl9pbmRleF9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0X2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZsZG50MV9nYXRoZXJfb2Zmc2V0X2YzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX29mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MV9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MV9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGJhc2VfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX2Y2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91MzJiYXNlX2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl9mMzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfczY0aW5kZXhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MV9nYXRoZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX2luZGV4KHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NGluZGV4X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9pbmRleChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTMyb2Zmc2V0X2YzMikpKQpzdmZsb2F0MzJfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3M2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGRudDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9nYXRoZXJfdTY0b2Zmc2V0X2Y2NCkpKQpzdmZsb2F0NjRfdCBzdmxkbnQxX2dhdGhlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfZ2F0aGVyX3U2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFfZ2F0aGVyX29mZnNldChzdmJvb2xfdCwgaW50NjRfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNiX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNiX2dhdGhlcl91MzJvZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzYl9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50OF90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2JfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2JfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIGludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzYl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXNiX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl9pbmRleF91MzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX2luZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9pbmRleF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfaW5kZXhfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9vZmZzZXRfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxc2hfZ2F0aGVyX29mZnNldF9zMzIoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3UzMmJhc2VfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl91MzIoc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRiYXNlX3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfdTY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyYmFzZV9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0YmFzZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfczY0aW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfczY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTY0aW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFzaF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc2hfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzaF9nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXNoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXNoX2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc2hfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9pbmRleF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX2luZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGJhc2VfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl91NjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRiYXNlX3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3U2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxc3dfZ2F0aGVyX3M2NG9mZnNldF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDFzd19nYXRoZXJfb2Zmc2V0X3M2NChzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXN3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXN3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxc3dfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIGludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXViX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMm9mZnNldF91MzIpKSkKc3Z1aW50MzJfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF91MzIoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWJfZ2F0aGVyX3UzMm9mZnNldF9zMzIpKSkKc3ZpbnQzMl90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3MzMihzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXViX2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWJfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1Yl9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1Yl9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXViX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50OF90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX2luZGV4X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfaW5kZXhfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfaW5kZXhfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3UzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJiYXNlX3UzMikpKQpzdnVpbnQzMl90IHN2bGRudDF1aF9nYXRoZXJfdTMyKHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3UzMmJhc2VfczMyKSkpCnN2aW50MzJfdCBzdmxkbnQxdWhfZ2F0aGVyX3MzMihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdWhfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdWhfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQxNl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91MzJvZmZzZXRfdTMyKSkpCnN2dWludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfdTMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTMyb2Zmc2V0X3MzMikpKQpzdmludDMyX3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfczMyKHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0b2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1aF9nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKiwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfczY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXVoX2dhdGhlcl91NjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1aF9nYXRoZXJfdTY0b2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXVoX2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqLCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX2luZGV4X3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfb2Zmc2V0X3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9vZmZzZXRfczY0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDF1d19nYXRoZXJfdTY0YmFzZV91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3U2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGJhc2VfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX3M2NChzdmJvb2xfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3M2NGluZGV4X3U2NCkpKQpzdnVpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfaW5kZXhfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRpbmRleF9zNjQpKSkKc3ZpbnQ2NF90IHN2bGRudDF1d19nYXRoZXJfaW5kZXhfczY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRpbmRleF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX2luZGV4X3U2NChzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKiwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NGluZGV4X3M2NCkpKQpzdmludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9pbmRleF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRvZmZzZXRfdTY0KSkpCnN2dWludDY0X3Qgc3ZsZG50MXV3X2dhdGhlcl9vZmZzZXRfdTY0KHN2Ym9vbF90LCB1aW50MzJfdCBjb25zdCAqLCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl9zNjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxdXdfZ2F0aGVyX3U2NG9mZnNldF91NjQpKSkKc3Z1aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX29mZnNldF91NjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MXV3X2dhdGhlcl91NjRvZmZzZXRfczY0KSkpCnN2aW50NjRfdCBzdmxkbnQxdXdfZ2F0aGVyX29mZnNldF9zNjQoc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICosIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2Y2NF9tKSkpCnN2aW50NjRfdCBzdmxvZ2JfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxvZ2JfZjMyX20pKSkKc3ZpbnQzMl90IHN2bG9nYl9tKHN2aW50MzJfdCwgc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bG9nYl9mMTZfbSkpKQpzdmludDE2X3Qgc3Zsb2diX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2Y2NF94KSkpCnN2aW50NjRfdCBzdmxvZ2JfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YzMl94KSkpCnN2aW50MzJfdCBzdmxvZ2JfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YxNl94KSkpCnN2aW50MTZfdCBzdmxvZ2JfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2Y2NF96KSkpCnN2aW50NjRfdCBzdmxvZ2JfeihzdmJvb2xfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YzMl96KSkpCnN2aW50MzJfdCBzdmxvZ2JfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zsb2diX2YxNl96KSkpCnN2aW50MTZfdCBzdmxvZ2JfeihzdmJvb2xfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXRjaF91OCkpKQpzdmJvb2xfdCBzdm1hdGNoKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1hdGNoX3UxNikpKQpzdmJvb2xfdCBzdm1hdGNoKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfczgpKSkKc3Zib29sX3Qgc3ZtYXRjaChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF0Y2hfczE2KSkpCnN2Ym9vbF90IHN2bWF0Y2goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1wX20oc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heG5tcF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjE2X20pKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubXBfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4bm1wX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWF4bm1wX3goc3Zib29sX3QsIHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heG5tcF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heG5tcF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhubXBfZjE2X3gpKSkKc3ZmbG9hdDE2X3Qgc3ZtYXhubXBfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mNjRfbSkpKQpzdmZsb2F0NjRfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMzJfbSkpKQpzdmZsb2F0MzJfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mNjRfeCkpKQpzdmZsb2F0NjRfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMzJfeCkpKQpzdmZsb2F0MzJfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1heHBfeChzdmJvb2xfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF9zOF9tKSkpCnN2aW50OF90IHN2bWF4cF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MzMl9tKSkpCnN2aW50MzJfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3M2NF9tKSkpCnN2aW50NjRfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3MxNl9tKSkpCnN2aW50MTZfdCBzdm1heHBfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczMyX3gpKSkKc3ZpbnQzMl90IHN2bWF4cF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczY0X3gpKSkKc3ZpbnQ2NF90IHN2bWF4cF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfczE2X3gpKSkKc3ZpbnQxNl90IHN2bWF4cF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1heHBfdThfbSkpKQpzdnVpbnQ4X3Qgc3ZtYXhwX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MzJfbSkpKQpzdnVpbnQzMl90IHN2bWF4cF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2bWF4cF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91MTZfbSkpKQpzdnVpbnQxNl90IHN2bWF4cF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWF4cF91OF94KSkpCnN2dWludDhfdCBzdm1heHBfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtYXhwX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZtYXhwX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjY0X20pKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubXBfbShzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWlubm1wX20oc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMTZfbSkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tcF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5ubXBfZjY0X3gpKSkKc3ZmbG9hdDY0X3Qgc3ZtaW5ubXBfeChzdmJvb2xfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlubm1wX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWlubm1wX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbm5tcF9mMTZfeCkpKQpzdmZsb2F0MTZfdCBzdm1pbm5tcF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2Y2NF9tKSkpCnN2ZmxvYXQ2NF90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2YzMl9tKSkpCnN2ZmxvYXQzMl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2YxNl9tKSkpCnN2ZmxvYXQxNl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2Y2NF94KSkpCnN2ZmxvYXQ2NF90IHN2bWlucF94KHN2Ym9vbF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2YzMl94KSkpCnN2ZmxvYXQzMl90IHN2bWlucF94KHN2Ym9vbF90LCBzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX2YxNl94KSkpCnN2ZmxvYXQxNl90IHN2bWlucF94KHN2Ym9vbF90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZtaW5wX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczMyX20pKSkKc3ZpbnQzMl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczY0X20pKSkKc3ZpbnQ2NF90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczE2X20pKSkKc3ZpbnQxNl90IHN2bWlucF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfczhfeCkpKQpzdmludDhfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZtaW5wX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWlucF91OF9tKSkpCnN2dWludDhfdCBzdm1pbnBfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZtaW5wX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZtaW5wX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZtaW5wX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtaW5wX3U4X3gpKSkKc3Z1aW50OF90IHN2bWlucF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1pbnBfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdm1pbnBfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxhX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYV9sYW5lKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFfbGFuZShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYV9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZtbGFfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbGIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsYihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX25fczY0KSkpCnN2aW50NjRfdCBzdm1sYWxiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWxiKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWxiKHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWxiKHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWxiKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYihzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfczE2KSkpCnN2aW50MTZfdCBzdm1sYWxiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsYihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsYihzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsYihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbGJfbGFuZShzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sYWxiX2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsYl9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbGJfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWxiX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsYl9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbGJfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbHQoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbGFsdChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X25fczY0KSkpCnN2aW50NjRfdCBzdm1sYWx0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxhbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWx0KHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sYWx0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sYWx0KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sYWx0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bWxhbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfczE2KSkpCnN2aW50MTZfdCBzdm1sYWx0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbGFsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbGFsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbGFsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxhbHRfbGFuZShzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sYWx0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sYWx0X2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbGFsdF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxhbHRfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sYWx0X2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbGFsdF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxhbHRfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bWxzX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNfbGFuZV91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc19sYW5lKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzX2xhbmVfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNfbGFuZShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc19sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZtbHNfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbGIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsYihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX25fczY0KSkpCnN2aW50NjRfdCBzdm1sc2xiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2xiKHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2xiKHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sc2xiKHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2xiKHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsYihzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfczE2KSkpCnN2aW50MTZfdCBzdm1sc2xiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsYihzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsYihzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsYihzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbGJfbGFuZShzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2xiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sc2xiX2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsYl9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbGJfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2xiX2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsYl9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbGJfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbHQoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQxNl90LCBmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZtbHNsdChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X25fczY0KSkpCnN2aW50NjRfdCBzdm1sc2x0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bWxzbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2x0KHN2dWludDMyX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdm1sc2x0KHN2dWludDY0X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm1sc2x0KHN2dWludDE2X3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2YzMikpKQpzdmZsb2F0MzJfdCBzdm1sc2x0KHN2ZmxvYXQzMl90LCBzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bWxzbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfczE2KSkpCnN2aW50MTZfdCBzdm1sc2x0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbHNsdChzdnVpbnQzMl90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZtbHNsdChzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZtbHNsdChzdnVpbnQxNl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bWxzbHRfbGFuZShzdmZsb2F0MzJfdCwgc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1sc2x0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm1sc2x0X2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtbHNsdF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bWxzbHRfbGFuZV91MzIpKSkKc3Z1aW50MzJfdCBzdm1sc2x0X2xhbmUoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtbHNsdF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bWxzbHRfbGFuZShzdnVpbnQ2NF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmxiX3MzMikpKQpzdmludDMyX3Qgc3Ztb3ZsYihzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bW92bGIoc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfczE2KSkpCnN2aW50MTZfdCBzdm1vdmxiKHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTMyKSkpCnN2dWludDMyX3Qgc3Ztb3ZsYihzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTY0KSkpCnN2dWludDY0X3Qgc3Ztb3ZsYihzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bGJfdTE2KSkpCnN2dWludDE2X3Qgc3Ztb3ZsYihzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Ztb3ZsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bW92bHQoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW92bHRfczY0KSkpCnN2aW50NjRfdCBzdm1vdmx0KHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3MxNikpKQpzdmludDE2X3Qgc3Ztb3ZsdChzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3UzMikpKQpzdnVpbnQzMl90IHN2bW92bHQoc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3U2NCkpKQpzdnVpbnQ2NF90IHN2bW92bHQoc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1vdmx0X3UxNikpKQpzdnVpbnQxNl90IHN2bW92bHQoc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxfbGFuZShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3U2NCkpKQpzdnVpbnQ2NF90IHN2bXVsX2xhbmUoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV91MTYpKSkKc3Z1aW50MTZfdCBzdm11bF9sYW5lKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZtdWxfbGFuZShzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbGIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsYihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbGIoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbGIoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsYihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsYihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bGxiX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbGJfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsYl9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbGJfbGFuZShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGxiX2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsYl9sYW5lKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbHQoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbHQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbHQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsdChzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsdChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsdChzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zMzIpKSkKc3ZpbnQzMl90IHN2bXVsbHQoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbHQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9zMTYpKSkKc3ZpbnQxNl90IHN2bXVsbHQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTMyKSkpCnN2dWludDMyX3Qgc3ZtdWxsdChzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfdTE2KSkpCnN2dWludDE2X3Qgc3ZtdWxsdChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdm11bGx0X2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bXVsbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2bXVsbHRfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZtdWxsdF9sYW5lX3UzMikpKQpzdnVpbnQzMl90IHN2bXVsbHRfbGFuZShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm11bGx0X2xhbmVfdTY0KSkpCnN2dWludDY0X3Qgc3ZtdWxsdF9sYW5lKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3U4KSkpCnN2dWludDhfdCBzdm5ic2woc3Z1aW50OF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZuYnNsKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2bmJzbChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfbl91MTYpKSkKc3Z1aW50MTZfdCBzdm5ic2woc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX25fczgpKSkKc3ZpbnQ4X3Qgc3ZuYnNsKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3MzMikpKQpzdmludDMyX3Qgc3ZuYnNsKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZuYnNsKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9uX3MxNikpKQpzdmludDE2X3Qgc3ZuYnNsKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF91OCkpKQpzdnVpbnQ4X3Qgc3ZuYnNsKHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3UzMikpKQpzdnVpbnQzMl90IHN2bmJzbChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF91NjQpKSkKc3Z1aW50NjRfdCBzdm5ic2woc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5ic2xfdTE2KSkpCnN2dWludDE2X3Qgc3ZuYnNsKHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZuYnNsX3M4KSkpCnN2aW50OF90IHN2bmJzbChzdmludDhfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zMzIpKSkKc3ZpbnQzMl90IHN2bmJzbChzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zNjQpKSkKc3ZpbnQ2NF90IHN2bmJzbChzdmludDY0X3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bmJzbF9zMTYpKSkKc3ZpbnQxNl90IHN2bmJzbChzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bm1hdGNoX3U4KSkpCnN2Ym9vbF90IHN2bm1hdGNoKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYXRjaF91MTYpKSkKc3Zib29sX3Qgc3ZubWF0Y2goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZubWF0Y2hfczgpKSkKc3Zib29sX3Qgc3ZubWF0Y2goc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm5tYXRjaF9zMTYpKSkKc3Zib29sX3Qgc3ZubWF0Y2goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bF9uX3U4KSkpCnN2dWludDhfdCBzdnBtdWwoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bF91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsYihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl91MTYpKSkKc3Z1aW50MTZfdCBzdnBtdWxsYihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX25fdTgpKSkKc3Z1aW50OF90IHN2cG11bGxiX3BhaXIoc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsYl9wYWlyKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfdTgpKSkKc3Z1aW50OF90IHN2cG11bGxiX3BhaXIoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl91MzIpKSkKc3Z1aW50MzJfdCBzdnBtdWxsYl9wYWlyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdChzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9uX3UxNikpKQpzdnVpbnQxNl90IHN2cG11bGx0KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3UxNikpKQpzdnVpbnQxNl90IHN2cG11bGx0KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGx0X3BhaXJfbl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsbHRfcGFpcihzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2cG11bGx0X3BhaXIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl91OCkpKQpzdnVpbnQ4X3Qgc3ZwbXVsbHRfcGFpcihzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX3UzMikpKQpzdnVpbnQzMl90IHN2cG11bGx0X3BhaXIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczhfbSkpKQpzdmludDhfdCBzdnFhYnNfbShzdmludDhfdCwgc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMzJfbSkpKQpzdmludDMyX3Qgc3ZxYWJzX20oc3ZpbnQzMl90LCBzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfbSkpKQpzdmludDY0X3Qgc3ZxYWJzX20oc3ZpbnQ2NF90LCBzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMTZfbSkpKQpzdmludDE2X3Qgc3ZxYWJzX20oc3ZpbnQxNl90LCBzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zOF94KSkpCnN2aW50OF90IHN2cWFic194KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczMyX3gpKSkKc3ZpbnQzMl90IHN2cWFic194KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3M2NF94KSkpCnN2aW50NjRfdCBzdnFhYnNfeChzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zMTZfeCkpKQpzdmludDE2X3Qgc3ZxYWJzX3goc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczhfeikpKQpzdmludDhfdCBzdnFhYnNfeihzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWJzX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhYnNfeihzdmJvb2xfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFic19zNjRfeikpKQpzdmludDY0X3Qgc3ZxYWJzX3ooc3Zib29sX3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhYnNfczE2X3opKSkKc3ZpbnQxNl90IHN2cWFic196KHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczhfbSkpKQpzdmludDhfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMzJfbSkpKQpzdmludDMyX3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zNjRfbSkpKQpzdmludDY0X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl9zOF94KSkpCnN2aW50OF90IHN2cWFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3MxNl94KSkpCnN2aW50MTZfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cWFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cWFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fczE2X3opKSkKc3ZpbnQxNl90IHN2cWFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfbl91OF94KSkpCnN2dWludDhfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cWFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxYWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczMyX20pKSkKc3ZpbnQzMl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczY0X20pKSkKc3ZpbnQ2NF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfczhfeCkpKQpzdmludDhfdCBzdnFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMzJfeCkpKQpzdmludDMyX3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zMTZfeCkpKQpzdmludDE2X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF9zOF96KSkpCnN2aW50OF90IHN2cWFkZF96KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3M2NF96KSkpCnN2aW50NjRfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3MxNl96KSkpCnN2aW50MTZfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U4X20pKSkKc3Z1aW50OF90IHN2cWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFhZGRfdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91MTZfeCkpKQpzdnVpbnQxNl90IHN2cWFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWFkZF91OF96KSkpCnN2dWludDhfdCBzdnFhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxYWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZxYWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zOCkpKQpzdmludDhfdCBzdnFjYWRkKHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxY2FkZF9zMzIpKSkKc3ZpbnQzMl90IHN2cWNhZGQoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWNhZGRfczY0KSkpCnN2aW50NjRfdCBzdnFjYWRkKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFjYWRkX3MxNikpKQpzdmludDE2X3Qgc3ZxY2FkZChzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGIoc3ZpbnQzMl90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbGIoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxiX25fczE2KSkpCnN2aW50MTZfdCBzdnFkbWxhbGIoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYihzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYihzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsYihzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsYl9sYW5lKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYl9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWxiX2xhbmUoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWxidChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbGJ0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsYnQoc3ZpbnQxNl90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsYnRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxhbGJ0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWxidF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsYnQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbGJ0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWxidChzdmludDE2X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbGFsdChzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbGFsdChzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxhbHRfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbGFsdChzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWx0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sYWx0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sYWx0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbGFsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sYWx0X2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sYWx0X2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxhbHRfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYihzdmludDMyX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsYihzdmludDY0X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtbHNsYihzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xiKHN2aW50MzJfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xiKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2xiKHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYl9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2xiX2xhbmUoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xiX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbGJfbGFuZShzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbGJ0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsYnQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2xidChzdmludDE2X3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2xidF9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtbHNsYnQoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2xidChzdmludDY0X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsYnRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbGJ0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG1sc2x0KHN2aW50MzJfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG1sc2x0KHN2aW50NjRfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtbHNsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG1sc2x0KHN2aW50MTZfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbHQoc3ZpbnQzMl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczY0KSkpCnN2aW50NjRfdCBzdnFkbWxzbHQoc3ZpbnQ2NF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfczE2KSkpCnN2aW50MTZfdCBzdnFkbWxzbHQoc3ZpbnQxNl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG1sc2x0X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFkbWxzbHRfbGFuZShzdmludDMyX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbWxzbHRfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtbHNsdF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxZG11bGgoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGgoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX25fczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsaChzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxoKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zOCkpKQpzdmludDhfdCBzdnFkbXVsaChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsaChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxoKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGgoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxoX2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxoX2xhbmVfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsaF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGhfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX25fczMyKSkpCnN2aW50MzJfdCBzdnFkbXVsbGIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGxiKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cWRtdWxsYihzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsYl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGxiX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGxiKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsYl9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbGJfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsYl9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cWRtdWxsdChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X25fczY0KSkpCnN2aW50NjRfdCBzdnFkbXVsbHQoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxZG11bGx0KHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxZG11bGx0X3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGx0KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9zNjQpKSkKc3ZpbnQ2NF90IHN2cWRtdWxsdChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFkbXVsbHRfczE2KSkpCnN2aW50MTZfdCBzdnFkbXVsbHQoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxZG11bGx0X2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cWRtdWxsdF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxZG11bGx0X2xhbmUoc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF9tKSkpCnN2aW50OF90IHN2cW5lZ19tKHN2aW50OF90LCBzdmJvb2xfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFuZWdfbShzdmludDMyX3QsIHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFuZWdfbShzdmludDY0X3QsIHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFuZWdfbShzdmludDE2X3QsIHN2Ym9vbF90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxbmVnX3goc3Zib29sX3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMzJfeCkpKQpzdmludDMyX3Qgc3ZxbmVnX3goc3Zib29sX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczY0X3gpKSkKc3ZpbnQ2NF90IHN2cW5lZ194KHN2Ym9vbF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3MxNl94KSkpCnN2aW50MTZfdCBzdnFuZWdfeChzdmJvb2xfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zOF96KSkpCnN2aW50OF90IHN2cW5lZ196KHN2Ym9vbF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFuZWdfczMyX3opKSkKc3ZpbnQzMl90IHN2cW5lZ196KHN2Ym9vbF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxbmVnX3M2NF96KSkpCnN2aW50NjRfdCBzdnFuZWdfeihzdmJvb2xfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cW5lZ19zMTZfeikpKQpzdmludDE2X3Qgc3ZxbmVnX3ooc3Zib29sX3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX3M4KSkpCnN2aW50OF90IHN2cXJkY21sYWgoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkY21sYWgoc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkY21sYWgoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkY21sYWgoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRjbWxhaF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRjbWxhaF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZGNtbGFoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFyZGNtbGFoX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9uX3M4KSkpCnN2aW50OF90IHN2cXJkbWxhaChzdmludDhfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxhaChzdmludDMyX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxhaChzdmludDY0X3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbl9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbWxhaChzdmludDE2X3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtbGFoKHN2aW50OF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbGFoKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbGFoKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbGFoKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbGFoX2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sYWhfbGFuZShzdmludDMyX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sYWhfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbWxhaF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxhaF9sYW5lX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbGFoX2xhbmUoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX25fczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtbHNoKHN2aW50OF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3MzMikpKQpzdmludDMyX3Qgc3ZxcmRtbHNoKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbHNoKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtbHNoKHN2aW50MTZfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9zOCkpKQpzdmludDhfdCBzdnFyZG1sc2goc3ZpbnQ4X3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfczMyKSkpCnN2aW50MzJfdCBzdnFyZG1sc2goc3ZpbnQzMl90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfczY0KSkpCnN2aW50NjRfdCBzdnFyZG1sc2goc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sc2goc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG1sc2hfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbWxzaF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbWxzaF9sYW5lX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtbHNoX2xhbmUoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtbHNoX2xhbmVfczE2KSkpCnN2aW50MTZfdCBzdnFyZG1sc2hfbGFuZShzdmludDE2X3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zOCkpKQpzdmludDhfdCBzdnFyZG11bGgoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbXVsaChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX25fczY0KSkpCnN2aW50NjRfdCBzdnFyZG11bGgoc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9uX3MxNikpKQpzdmludDE2X3Qgc3ZxcmRtdWxoKHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczgpKSkKc3ZpbnQ4X3Qgc3ZxcmRtdWxoKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfczMyKSkpCnN2aW50MzJfdCBzdnFyZG11bGgoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcmRtdWxoX3M2NCkpKQpzdmludDY0X3Qgc3ZxcmRtdWxoKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJkbXVsaF9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbXVsaChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbGFuZV9zMzIpKSkKc3ZpbnQzMl90IHN2cXJkbXVsaF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbGFuZV9zNjQpKSkKc3ZpbnQ2NF90IHN2cXJkbXVsaF9sYW5lKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyZG11bGhfbGFuZV9zMTYpKSkKc3ZpbnQxNl90IHN2cXJkbXVsaF9sYW5lKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczhfbSkpKQpzdmludDhfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zOF96KSkpCnN2aW50OF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdThfeikpKQpzdnVpbnQ4X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczE2X20pKSkKc3ZpbnQxNl90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zOF94KSkpCnN2aW50OF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczhfeikpKQpzdmludDhfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3MzMl96KSkpCnN2aW50MzJfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfczY0X3opKSkKc3ZpbnQ2NF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF9zMTZfeikpKQpzdmludDE2X3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U4X20pKSkKc3Z1aW50OF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZxcnNobF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFyc2hsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZxcnNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXJzaGxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3U4X3opKSkKc3Z1aW50OF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hsX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZxcnNobF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNobF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXJzaGxfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaGxfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFyc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cXJzaHJuYihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3ZxcnNocm5iKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2cXJzaHJuYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXJzaHJuYihzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hybmIoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm5iX25fdTE2KSkpCnN2dWludDhfdCBzdnFyc2hybmIoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fczMyKSkpCnN2aW50MTZfdCBzdnFyc2hybnQoc3ZpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZxcnNocm50KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZxcnNocm50KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cXJzaHJudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hybnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnFyc2hybnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW5iX25fczMyKSkpCnN2dWludDE2X3Qgc3ZxcnNocnVuYihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bmJfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFyc2hydW5iKHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVuYl9uX3MxNikpKQpzdnVpbnQ4X3Qgc3ZxcnNocnVuYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXJzaHJ1bnRfbl9zMzIpKSkKc3Z1aW50MTZfdCBzdnFyc2hydW50KHN2dWludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxcnNocnVudF9uX3M2NCkpKQpzdnVpbnQzMl90IHN2cXJzaHJ1bnQoc3Z1aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFyc2hydW50X25fczE2KSkpCnN2dWludDhfdCBzdnFyc2hydW50KHN2dWludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zOF9tKSkpCnN2aW50OF90IHN2cXNobF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXNobF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXNobF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cXNobF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fczhfeikpKQpzdmludDhfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91OF9tKSkpCnN2dWludDhfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXNobF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cXNobF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXNobF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczhfbSkpKQpzdmludDhfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF9zOF94KSkpCnN2aW50OF90IHN2cXNobF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczMyX3opKSkKc3ZpbnQzMl90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczY0X3opKSkKc3ZpbnQ2NF90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfczE2X3opKSkKc3ZpbnQxNl90IHN2cXNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc2hsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXNobF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc2hsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzaGxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91OF96KSkpCnN2dWludDhfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGxfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzaGxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXNobF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczhfbSkpKQpzdnVpbnQ4X3Qgc3Zxc2hsdV9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc2hsdV9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zNjRfbSkpKQpzdnVpbnQ2NF90IHN2cXNobHVfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczE2X20pKSkKc3Z1aW50MTZfdCBzdnFzaGx1X20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M4X3gpKSkKc3Z1aW50OF90IHN2cXNobHVfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMzJfeCkpKQpzdnVpbnQzMl90IHN2cXNobHVfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzaGx1X3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3MxNl94KSkpCnN2dWludDE2X3Qgc3Zxc2hsdV94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zOF96KSkpCnN2dWludDhfdCBzdnFzaGx1X3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaGx1X25fczMyX3opKSkKc3Z1aW50MzJfdCBzdnFzaGx1X3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hsdV9uX3M2NF96KSkpCnN2dWludDY0X3Qgc3Zxc2hsdV96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNobHVfbl9zMTZfeikpKQpzdnVpbnQxNl90IHN2cXNobHVfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3Zxc2hybmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3M2NCkpKQpzdmludDMyX3Qgc3Zxc2hybmIoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3MxNikpKQpzdmludDhfdCBzdnFzaHJuYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm5iX25fdTMyKSkpCnN2dWludDE2X3Qgc3Zxc2hybmIoc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJuYihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hybmIoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cXNocm50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3M2NCkpKQpzdmludDMyX3Qgc3Zxc2hybnQoc3ZpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fczE2KSkpCnN2aW50OF90IHN2cXNocm50KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3Zxc2hybnQoc3Z1aW50MTZfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc2hybnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJudChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJudF9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hybnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bmJfbl9zMzIpKSkKc3Z1aW50MTZfdCBzdnFzaHJ1bmIoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bmJfbl9zNjQpKSkKc3Z1aW50MzJfdCBzdnFzaHJ1bmIoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzaHJ1bmJfbl9zMTYpKSkKc3Z1aW50OF90IHN2cXNocnVuYihzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVudF9uX3MzMikpKQpzdnVpbnQxNl90IHN2cXNocnVudChzdnVpbnQxNl90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVudF9uX3M2NCkpKQpzdnVpbnQzMl90IHN2cXNocnVudChzdnVpbnQzMl90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXNocnVudF9uX3MxNikpKQpzdnVpbnQ4X3Qgc3Zxc2hydW50KHN2dWludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zOF9tKSkpCnN2aW50OF90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fczhfeikpKQpzdmludDhfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91OF9tKSkpCnN2dWludDhfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX25fdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczhfbSkpKQpzdmludDhfdCBzdnFzdWJfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zNjRfbSkpKQpzdmludDY0X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl9zOF94KSkpCnN2aW50OF90IHN2cXN1Yl94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MzMl94KSkpCnN2aW50MzJfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zxc3ViX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczMyX3opKSkKc3ZpbnQzMl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfczE2X3opKSkKc3ZpbnQxNl90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc3ViX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1Yl9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1Yl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3ViX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3ViX3U4X3opKSkKc3Z1aW50OF90IHN2cXN1Yl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJfdTE2X3opKSkKc3Z1aW50MTZfdCBzdnFzdWJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczhfbSkpKQpzdmludDhfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zOF96KSkpCnN2aW50OF90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91OF96KSkpCnN2dWludDhfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M4X20pKSkKc3ZpbnQ4X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMzJfbSkpKQpzdmludDMyX3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3M2NF9tKSkpCnN2aW50NjRfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczE2X20pKSkKc3ZpbnQxNl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zOF94KSkpCnN2aW50OF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczMyX3gpKSkKc3ZpbnQzMl90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MxNl94KSkpCnN2aW50MTZfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczhfeikpKQpzdmludDhfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3MzMl96KSkpCnN2aW50MzJfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfczY0X3opKSkKc3ZpbnQ2NF90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl9zMTZfeikpKQpzdmludDE2X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U4X20pKSkKc3Z1aW50OF90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MzJfbSkpKQpzdnVpbnQzMl90IHN2cXN1YnJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3U2NF9tKSkpCnN2dWludDY0X3Qgc3Zxc3Vicl9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnFzdWJyX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91OF94KSkpCnN2dWludDhfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnFzdWJyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cXN1YnJfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zxc3Vicl94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdThfeikpKQpzdnVpbnQ4X3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnFzdWJyX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zxc3Vicl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXN1YnJfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnFzdWJyX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zxc3Vicl91MTZfeikpKQpzdnVpbnQxNl90IHN2cXN1YnJfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dG5iX3MzMikpKQpzdmludDE2X3Qgc3ZxeHRuYihzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRuYl9zNjQpKSkKc3ZpbnQzMl90IHN2cXh0bmIoc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfczE2KSkpCnN2aW50OF90IHN2cXh0bmIoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfdTMyKSkpCnN2dWludDE2X3Qgc3ZxeHRuYihzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZxeHRuYihzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bmJfdTE2KSkpCnN2dWludDhfdCBzdnF4dG5iKHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF9zMzIpKSkKc3ZpbnQxNl90IHN2cXh0bnQoc3ZpbnQxNl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF9zNjQpKSkKc3ZpbnQzMl90IHN2cXh0bnQoc3ZpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHRudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZxeHRudChzdmludDhfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfdTMyKSkpCnN2dWludDE2X3Qgc3ZxeHRudChzdnVpbnQxNl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZxeHRudChzdnVpbnQzMl90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0bnRfdTE2KSkpCnN2dWludDhfdCBzdnF4dG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVuYl9zMzIpKSkKc3Z1aW50MTZfdCBzdnF4dHVuYihzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bmJfczY0KSkpCnN2dWludDMyX3Qgc3ZxeHR1bmIoc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW5iX3MxNikpKQpzdnVpbnQ4X3Qgc3ZxeHR1bmIoc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cXh0dW50X3MzMikpKQpzdnVpbnQxNl90IHN2cXh0dW50KHN2dWludDE2X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnF4dHVudF9zNjQpKSkKc3Z1aW50MzJfdCBzdnF4dHVudChzdnVpbnQzMl90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZxeHR1bnRfczE2KSkpCnN2dWludDhfdCBzdnF4dHVudChzdnVpbnQ4X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJhZGRobmIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3ZyYWRkaG5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3ZyYWRkaG5iKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZyYWRkaG5iKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhuYihzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX25fczE2KSkpCnN2aW50OF90IHN2cmFkZGhuYihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2cmFkZGhuYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl91NjQpKSkKc3Z1aW50MzJfdCBzdnJhZGRobmIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfdTE2KSkpCnN2dWludDhfdCBzdnJhZGRobmIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobmJfczMyKSkpCnN2aW50MTZfdCBzdnJhZGRobmIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG5iX3M2NCkpKQpzdmludDMyX3Qgc3ZyYWRkaG5iKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZyYWRkaG5iKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cmFkZGhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJhZGRobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X25fdTE2KSkpCnN2dWludDhfdCBzdnJhZGRobnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cmFkZGhudChzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhudChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZyYWRkaG50KHN2aW50OF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYWRkaG50X3UzMikpKQpzdnVpbnQxNl90IHN2cmFkZGhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF91NjQpKSkKc3Z1aW50MzJfdCBzdnJhZGRobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJhZGRobnRfdTE2KSkpCnN2dWludDhfdCBzdnJhZGRobnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9zMzIpKSkKc3ZpbnQxNl90IHN2cmFkZGhudChzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9zNjQpKSkKc3ZpbnQzMl90IHN2cmFkZGhudChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmFkZGhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3ZyYWRkaG50KHN2aW50OF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJlY3BlX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZyZWNwZV9tKHN2dWludDMyX3QsIHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmVjcGVfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJlY3BlX3goc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZWNwZV91MzJfeikpKQpzdnVpbnQzMl90IHN2cmVjcGVfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczhfbSkpKQpzdmludDhfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3M2NF94KSkpCnN2aW50NjRfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zOF96KSkpCnN2aW50OF90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fczMyX3opKSkKc3ZpbnQzMl90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl9zNjRfeikpKQpzdmludDY0X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MTZfbSkpKQpzdnVpbnQxNl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91MzJfeCkpKQpzdnVpbnQzMl90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91OF96KSkpCnN2dWludDhfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX25fdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9uX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M4X20pKSkKc3ZpbnQ4X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMzJfbSkpKQpzdmludDMyX3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczE2X20pKSkKc3ZpbnQxNl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zOF94KSkpCnN2aW50OF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zNjRfeCkpKQpzdmludDY0X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MxNl94KSkpCnN2aW50MTZfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczhfeikpKQpzdmludDhfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3MzMl96KSkpCnN2aW50MzJfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfczY0X3opKSkKc3ZpbnQ2NF90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U4X20pKSkKc3Z1aW50OF90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2cmhhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3U2NF9tKSkpCnN2dWludDY0X3Qgc3ZyaGFkZF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJoYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91OF94KSkpCnN2dWludDhfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJoYWRkX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91NjRfeCkpKQpzdnVpbnQ2NF90IHN2cmhhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZyaGFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdThfeikpKQpzdnVpbnQ4X3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJoYWRkX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZyaGFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmhhZGRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnJoYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyaGFkZF91MTZfeikpKQpzdnVpbnQxNl90IHN2cmhhZGRfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zOF9tKSkpCnN2aW50OF90IHN2cnNobF9tKHN2Ym9vbF90LCBzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MzMl9tKSkpCnN2aW50MzJfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3MxNl9tKSkpCnN2aW50MTZfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczMyX3gpKSkKc3ZpbnQzMl90IHN2cnNobF94KHN2Ym9vbF90LCBzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczY0X3gpKSkKc3ZpbnQ2NF90IHN2cnNobF94KHN2Ym9vbF90LCBzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cnNobF94KHN2Ym9vbF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fczhfeikpKQpzdmludDhfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zNjRfeikpKQpzdmludDY0X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl9zMTZfeikpKQpzdmludDE2X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91OF9tKSkpCnN2dWludDhfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2cnNobF9tKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UxNl9tKSkpCnN2dWludDE2X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdThfeCkpKQpzdnVpbnQ4X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2dWludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MTZfeCkpKQpzdnVpbnQxNl90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U4X3opKSkKc3Z1aW50OF90IHN2cnNobF96KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cnNobF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9uX3U2NF96KSkpCnN2dWludDY0X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50MTZfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczhfbSkpKQpzdmludDhfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMzJfbSkpKQpzdmludDMyX3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zNjRfbSkpKQpzdmludDY0X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF9zOF94KSkpCnN2aW50OF90IHN2cnNobF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MzMl94KSkpCnN2aW50MzJfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M2NF94KSkpCnN2aW50NjRfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3MxNl94KSkpCnN2aW50MTZfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczMyX3opKSkKc3ZpbnQzMl90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczY0X3opKSkKc3ZpbnQ2NF90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfczE2X3opKSkKc3ZpbnQxNl90IHN2cnNobF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdThfbSkpKQpzdnVpbnQ4X3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UzMl9tKSkpCnN2dWludDMyX3Qgc3Zyc2hsX20oc3Zib29sX3QsIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaGxfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MTZfbSkpKQpzdnVpbnQxNl90IHN2cnNobF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U4X3gpKSkKc3Z1aW50OF90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91MzJfeCkpKQpzdnVpbnQzMl90IHN2cnNobF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zyc2hsX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnJzaGxfeChzdmJvb2xfdCwgc3Z1aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91OF96KSkpCnN2dWludDhfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaGxfdTMyX3opKSkKc3Z1aW50MzJfdCBzdnJzaGxfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNobF91NjRfeikpKQpzdnVpbnQ2NF90IHN2cnNobF96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hsX3UxNl96KSkpCnN2dWludDE2X3Qgc3Zyc2hsX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zOF9tKSkpCnN2aW50OF90IHN2cnNocl9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczMyX20pKSkKc3ZpbnQzMl90IHN2cnNocl9tKHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M2NF9tKSkpCnN2aW50NjRfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMTZfbSkpKQpzdmludDE2X3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdThfbSkpKQpzdnVpbnQ4X3Qgc3Zyc2hyX20oc3Zib29sX3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTMyX20pKSkKc3Z1aW50MzJfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTY0X20pKSkKc3Z1aW50NjRfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnJzaHJfbShzdmJvb2xfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczhfeCkpKQpzdmludDhfdCBzdnJzaHJfeChzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3MzMl94KSkpCnN2aW50MzJfdCBzdnJzaHJfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczE2X3gpKSkKc3ZpbnQxNl90IHN2cnNocl94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3U4X3gpKSkKc3Z1aW50OF90IHN2cnNocl94KHN2Ym9vbF90LCBzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3U2NF94KSkpCnN2dWludDY0X3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3UxNl94KSkpCnN2dWludDE2X3Qgc3Zyc2hyX3goc3Zib29sX3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3M4X3opKSkKc3ZpbnQ4X3Qgc3Zyc2hyX3ooc3Zib29sX3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl9zMzJfeikpKQpzdmludDMyX3Qgc3Zyc2hyX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hyX25fczY0X3opKSkKc3ZpbnQ2NF90IHN2cnNocl96KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocl9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91OF96KSkpCnN2dWludDhfdCBzdnJzaHJfeihzdmJvb2xfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MzJfeikpKQpzdnVpbnQzMl90IHN2cnNocl96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2cnNocl96KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJfbl91MTZfeikpKQpzdnVpbnQxNl90IHN2cnNocl96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJuYl9uX3UzMikpKQpzdnVpbnQxNl90IHN2cnNocm5iKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zyc2hybmIoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2cnNocm5iKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fczMyKSkpCnN2aW50MTZfdCBzdnJzaHJuYihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fczY0KSkpCnN2aW50MzJfdCBzdnJzaHJuYihzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2cnNocm5iKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzaHJudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3U2NCkpKQpzdnVpbnQzMl90IHN2cnNocm50KHN2dWludDMyX3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnJzaHJudChzdnVpbnQ4X3QsIHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNocm50X25fczMyKSkpCnN2aW50MTZfdCBzdnJzaHJudChzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc2hybnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnNocm50KHN2aW50MzJfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnJzaHJudChzdmludDhfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcXJ0ZV91MzJfbSkpKQpzdnVpbnQzMl90IHN2cnNxcnRlX20oc3Z1aW50MzJfdCwgc3Zib29sX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3FydGVfdTMyX3gpKSkKc3Z1aW50MzJfdCBzdnJzcXJ0ZV94KHN2Ym9vbF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNxcnRlX3UzMl96KSkpCnN2dWludDMyX3Qgc3Zyc3FydGVfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zOCkpKQpzdmludDhfdCBzdnJzcmEoc3ZpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl9zMzIpKSkKc3ZpbnQzMl90IHN2cnNyYShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fczY0KSkpCnN2aW50NjRfdCBzdnJzcmEoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3MxNikpKQpzdmludDE2X3Qgc3Zyc3JhKHN2aW50MTZfdCwgc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91OCkpKQpzdnVpbnQ4X3Qgc3Zyc3JhKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzcmFfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnJzcmEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3JhX25fdTY0KSkpCnN2dWludDY0X3Qgc3Zyc3JhKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnNyYV9uX3UxNikpKQpzdnVpbnQxNl90IHN2cnNyYShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnJzdWJobmIoc3Z1aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fdTY0KSkpCnN2dWludDMyX3Qgc3Zyc3ViaG5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3UxNikpKQpzdnVpbnQ4X3Qgc3Zyc3ViaG5iKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3Zyc3ViaG5iKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhuYihzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX25fczE2KSkpCnN2aW50OF90IHN2cnN1YmhuYihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhuYihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobmIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobmIoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobmJfczMyKSkpCnN2aW50MTZfdCBzdnJzdWJobmIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG5iX3M2NCkpKQpzdmludDMyX3Qgc3Zyc3ViaG5iKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhuYl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG5iKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X25fdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhudChzdmludDE2X3QsIHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhudChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG50KHN2aW50OF90LCBzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zyc3ViaG50X3UzMikpKQpzdnVpbnQxNl90IHN2cnN1YmhudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF91NjQpKSkKc3Z1aW50MzJfdCBzdnJzdWJobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnJzdWJobnRfdTE2KSkpCnN2dWludDhfdCBzdnJzdWJobnQoc3Z1aW50OF90LCBzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zMzIpKSkKc3ZpbnQxNl90IHN2cnN1YmhudChzdmludDE2X3QsIHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zNjQpKSkKc3ZpbnQzMl90IHN2cnN1YmhudChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cnN1YmhudF9zMTYpKSkKc3ZpbnQ4X3Qgc3Zyc3ViaG50KHN2aW50OF90LCBzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzYmNsYihzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsYihzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbGIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2xiX3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbGIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzYmNsdChzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzYmNsdChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X3UzMikpKQpzdnVpbnQzMl90IHN2c2JjbHQoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNiY2x0X3U2NCkpKQpzdnVpbnQ2NF90IHN2c2JjbHQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGxiX25fczMyKSkpCnN2aW50MzJfdCBzdnNobGxiKHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzaGxsYihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl9zMTYpKSkKc3ZpbnQxNl90IHN2c2hsbGIoc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNobGxiKHN2dWludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnNobGxiKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnNobGxiKHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaGxsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzaGxsdChzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hsbHRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c2hsbHQoc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fczE2KSkpCnN2aW50MTZfdCBzdnNobGx0KHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzaGxsdChzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzaGxsdChzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNobGx0X25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzaGxsdChzdnVpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnNocm5iKHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl91NjQpKSkKc3Z1aW50MzJfdCBzdnNocm5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl91MTYpKSkKc3Z1aW50OF90IHN2c2hybmIoc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZzaHJuYihzdmludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2hybmJfbl9zNjQpKSkKc3ZpbnQzMl90IHN2c2hybmIoc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm5iX25fczE2KSkpCnN2aW50OF90IHN2c2hybmIoc3ZpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fdTMyKSkpCnN2dWludDE2X3Qgc3ZzaHJudChzdnVpbnQxNl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzaHJudChzdnVpbnQzMl90LCBzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNocm50X25fdTE2KSkpCnN2dWludDhfdCBzdnNocm50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3MzMikpKQpzdmludDE2X3Qgc3ZzaHJudChzdmludDE2X3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3M2NCkpKQpzdmludDMyX3Qgc3ZzaHJudChzdmludDMyX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzaHJudF9uX3MxNikpKQpzdmludDhfdCBzdnNocm50KHN2aW50OF90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTgpKSkKc3Z1aW50OF90IHN2c2xpKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3UzMikpKQpzdnVpbnQzMl90IHN2c2xpKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzbGkoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnNsaShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3M4KSkpCnN2aW50OF90IHN2c2xpKHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbGlfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c2xpKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNsaV9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzbGkoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2xpX25fczE2KSkpCnN2aW50MTZfdCBzdnNsaShzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U4X20pKSkKc3Z1aW50OF90IHN2c3FhZGRfbShzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UzMl9tKSkpCnN2dWludDMyX3Qgc3ZzcWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91NjRfbSkpKQpzdnVpbnQ2NF90IHN2c3FhZGRfbShzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTE2X20pKSkKc3Z1aW50MTZfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U4X3gpKSkKc3Z1aW50OF90IHN2c3FhZGRfeChzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UzMl94KSkpCnN2dWludDMyX3Qgc3ZzcWFkZF94KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91NjRfeCkpKQpzdnVpbnQ2NF90IHN2c3FhZGRfeChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTE2X3gpKSkKc3Z1aW50MTZfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3U4X3opKSkKc3Z1aW50OF90IHN2c3FhZGRfeihzdmJvb2xfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF9uX3UzMl96KSkpCnN2dWludDMyX3Qgc3ZzcWFkZF96KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfbl91NjRfeikpKQpzdnVpbnQ2NF90IHN2c3FhZGRfeihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX25fdTE2X3opKSkKc3Z1aW50MTZfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91OF9tKSkpCnN2dWludDhfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MzJfbSkpKQpzdnVpbnQzMl90IHN2c3FhZGRfbShzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTY0X20pKSkKc3Z1aW50NjRfdCBzdnNxYWRkX20oc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UxNl9tKSkpCnN2dWludDE2X3Qgc3ZzcWFkZF9tKHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91OF94KSkpCnN2dWludDhfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MzJfeCkpKQpzdnVpbnQzMl90IHN2c3FhZGRfeChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTY0X3gpKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3goc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UxNl94KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF94KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91OF96KSkpCnN2dWludDhfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcWFkZF91MzJfeikpKQpzdnVpbnQzMl90IHN2c3FhZGRfeihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3FhZGRfdTY0X3opKSkKc3Z1aW50NjRfdCBzdnNxYWRkX3ooc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNxYWRkX3UxNl96KSkpCnN2dWludDE2X3Qgc3ZzcWFkZF96KHN2Ym9vbF90LCBzdnVpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl9zOCkpKQpzdmludDhfdCBzdnNyYShzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fczMyKSkpCnN2aW50MzJfdCBzdnNyYShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3JhKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3MxNikpKQpzdmludDE2X3Qgc3ZzcmEoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTgpKSkKc3Z1aW50OF90IHN2c3JhKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyYV9uX3UzMikpKQpzdnVpbnQzMl90IHN2c3JhKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JhX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzcmEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzcmFfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnNyYShzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3U4KSkpCnN2dWludDhfdCBzdnNyaShzdnVpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnNyaShzdnVpbnQzMl90LCBzdnVpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2c3JpKHN2dWludDY0X3QsIHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fdTE2KSkpCnN2dWludDE2X3Qgc3Zzcmkoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl9zOCkpKQpzdmludDhfdCBzdnNyaShzdmludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3JpX25fczMyKSkpCnN2aW50MzJfdCBzdnNyaShzdmludDMyX3QsIHN2aW50MzJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Zzcmlfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3JpKHN2aW50NjRfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNyaV9uX3MxNikpKQpzdmludDE2X3Qgc3Zzcmkoc3ZpbnQxNl90LCBzdmludDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9pbmRleF9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX2luZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX29mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX29mZnNldF9mNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfZjMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50MzJfdCwgaW50NjRfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV9vZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX3UzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGJhc2VfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyYmFzZV9mMzIpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJiYXNlX3MzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcihzdmJvb2xfdCwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBmbG9hdDY0X3QgKiwgc3ZpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfczY0aW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQ2NF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3U2NGluZGV4X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2dWludDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91MzJvZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X2YzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0MzJfdCAqLCBzdnVpbnQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTMyb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl9zNjRvZmZzZXRfZjY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgZmxvYXQ2NF90ICosIHN2aW50NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV9zY2F0dGVyX3M2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ2NF90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MV9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X2Y2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGZsb2F0NjRfdCAqLCBzdnVpbnQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDY0X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV91MzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF9zMzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50OF90ICosIHN2dWludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxYl9zY2F0dGVyX3UzMm9mZnNldF91MzIpKSkKdm9pZCBzdnN0bnQxYl9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgdWludDhfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWJfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MWJfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQ4X3QgKiwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQ4X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFiX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFiX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50OF90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX2luZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDY0X3QsIGludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJiYXNlX2luZGV4X3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGJhc2VfaW5kZXhfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9pbmRleChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9vZmZzZXRfdTMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHN2dWludDMyX3QsIGludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3UzMmJhc2Vfb2Zmc2V0X3MzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQzMl90LCBpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX29mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV91MzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0YmFzZV91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyYmFzZV9zMzIpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyKHN2Ym9vbF90LCBzdnVpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDE2X3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxaF9zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxaF9zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQxNl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91MzJvZmZzZXRfczMyKSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTMyb2Zmc2V0X3UzMikpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBpbnQxNl90ICosIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfczY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MWhfc2NhdHRlcl91NjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MWhfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDE2X3QgKiwgc3Z1aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDFoX3NjYXR0ZXJfdTY0b2Zmc2V0X3U2NCkpKQp2b2lkIHN2c3RudDFoX3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCB1aW50MTZfdCAqLCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3RudDF3X3NjYXR0ZXJfdTY0YmFzZV9pbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX29mZnNldF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgc3Z1aW50NjRfdCwgaW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGJhc2Vfb2Zmc2V0X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfb2Zmc2V0KHN2Ym9vbF90LCBzdnVpbnQ2NF90LCBpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRiYXNlX3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXIoc3Zib29sX3QsIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3M2NGluZGV4X3M2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRpbmRleF91NjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCB1aW50MzJfdCAqLCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRpbmRleF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX2luZGV4KHN2Ym9vbF90LCBpbnQzMl90ICosIHN2dWludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NGluZGV4X3U2NCkpKQp2b2lkIHN2c3RudDF3X3NjYXR0ZXJfaW5kZXgoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfczY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIGludDMyX3QgKiwgc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl9zNjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxd19zY2F0dGVyX3U2NG9mZnNldF9zNjQpKSkKdm9pZCBzdnN0bnQxd19zY2F0dGVyX29mZnNldChzdmJvb2xfdCwgaW50MzJfdCAqLCBzdnVpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MXdfc2NhdHRlcl91NjRvZmZzZXRfdTY0KSkpCnZvaWQgc3ZzdG50MXdfc2NhdHRlcl9vZmZzZXQoc3Zib29sX3QsIHVpbnQzMl90ICosIHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl91MzIpKSkKc3Z1aW50MTZfdCBzdnN1YmhuYihzdnVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3U2NCkpKQpzdnVpbnQzMl90IHN2c3ViaG5iKHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fdTE2KSkpCnN2dWludDhfdCBzdnN1YmhuYihzdnVpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9uX3MzMikpKQpzdmludDE2X3Qgc3ZzdWJobmIoc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX25fczY0KSkpCnN2aW50MzJfdCBzdnN1YmhuYihzdmludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfbl9zMTYpKSkKc3ZpbnQ4X3Qgc3ZzdWJobmIoc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG5iKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobmIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG5iKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobmJfczMyKSkpCnN2aW50MTZfdCBzdnN1YmhuYihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhuYl9zNjQpKSkKc3ZpbnQzMl90IHN2c3ViaG5iKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG5iX3MxNikpKQpzdmludDhfdCBzdnN1YmhuYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG50KHN2dWludDE2X3QsIHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfbl9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X25fczY0KSkpCnN2aW50MzJfdCBzdnN1YmhudChzdmludDMyX3QsIHN2aW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9uX3MxNikpKQpzdmludDhfdCBzdnN1YmhudChzdmludDhfdCwgc3ZpbnQxNl90LCBpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3UzMikpKQpzdnVpbnQxNl90IHN2c3ViaG50KHN2dWludDE2X3QsIHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfdTY0KSkpCnN2dWludDMyX3Qgc3ZzdWJobnQoc3Z1aW50MzJfdCwgc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF91MTYpKSkKc3Z1aW50OF90IHN2c3ViaG50KHN2dWludDhfdCwgc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmhudF9zMzIpKSkKc3ZpbnQxNl90IHN2c3ViaG50KHN2aW50MTZfdCwgc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJobnRfczY0KSkpCnN2aW50MzJfdCBzdnN1YmhudChzdmludDMyX3QsIHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3ViaG50X3MxNikpKQpzdmludDhfdCBzdnN1YmhudChzdmludDhfdCwgc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYihzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYihzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YmxiKHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YmxiKHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YmxiKHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsYihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxiX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YmxiKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YmxiKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YmxiKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X25fczMyKSkpCnN2aW50MzJfdCBzdnN1YmxidChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibGJ0KHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsYnQoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YmxidF9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibGJ0KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibGJ0X3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsYnQoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsYnRfczE2KSkpCnN2aW50MTZfdCBzdnN1YmxidChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdChzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdChzdmludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdChzdmludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ymx0KHN2dWludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ymx0KHN2dWludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ymx0KHN2dWludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3MzMikpKQpzdmludDMyX3Qgc3ZzdWJsdChzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdChzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0X3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ymx0KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ymx0KHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdF91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ymx0KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX25fczMyKSkpCnN2aW50MzJfdCBzdnN1Ymx0YihzdmludDE2X3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfbl9zNjQpKSkKc3ZpbnQ2NF90IHN2c3VibHRiKHN2aW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJsdGIoc3ZpbnQ4X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ymx0Yl9zMzIpKSkKc3ZpbnQzMl90IHN2c3VibHRiKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3VibHRiX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJsdGIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJsdGJfczE2KSkpCnN2aW50MTZfdCBzdnN1Ymx0YihzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3MzMikpKQpzdmludDMyX3Qgc3ZzdWJ3YihzdmludDMyX3QsIGludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3M2NCkpKQpzdmludDY0X3Qgc3ZzdWJ3YihzdmludDY0X3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl9uX3MxNikpKQpzdmludDE2X3Qgc3ZzdWJ3YihzdmludDE2X3QsIGludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fdTMyKSkpCnN2dWludDMyX3Qgc3ZzdWJ3YihzdnVpbnQzMl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZzdWJ3YihzdnVpbnQ2NF90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1YndiX25fdTE2KSkpCnN2dWludDE2X3Qgc3ZzdWJ3YihzdnVpbnQxNl90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczMyKSkpCnN2aW50MzJfdCBzdnN1YndiKHN2aW50MzJfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczY0KSkpCnN2aW50NjRfdCBzdnN1YndiKHN2aW50NjRfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid2JfczE2KSkpCnN2aW50MTZfdCBzdnN1YndiKHN2aW50MTZfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1YndiKHN2dWludDMyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1YndiKHN2dWludDY0X3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3Yl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1YndiKHN2dWludDE2X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fczMyKSkpCnN2aW50MzJfdCBzdnN1Ynd0KHN2aW50MzJfdCwgaW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fczY0KSkpCnN2aW50NjRfdCBzdnN1Ynd0KHN2aW50NjRfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X25fczE2KSkpCnN2aW50MTZfdCBzdnN1Ynd0KHN2aW50MTZfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl91MzIpKSkKc3Z1aW50MzJfdCBzdnN1Ynd0KHN2dWludDMyX3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnN1Ynd0KHN2dWludDY0X3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vid3Rfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnN1Ynd0KHN2dWludDE2X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vid3Qoc3ZpbnQzMl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zNjQpKSkKc3ZpbnQ2NF90IHN2c3Vid3Qoc3ZpbnQ2NF90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWJ3dF9zMTYpKSkKc3ZpbnQxNl90IHN2c3Vid3Qoc3ZpbnQxNl90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3UzMikpKQpzdnVpbnQzMl90IHN2c3Vid3Qoc3Z1aW50MzJfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3U2NCkpKQpzdnVpbnQ2NF90IHN2c3Vid3Qoc3Z1aW50NjRfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1Ynd0X3UxNikpKQpzdnVpbnQxNl90IHN2c3Vid3Qoc3Z1aW50MTZfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl91OCkpKQpzdnVpbnQ4X3Qgc3Z0YmwyKHN2dWludDh4Ml90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3UzMikpKQpzdnVpbnQzMl90IHN2dGJsMihzdnVpbnQzMngyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3U2NCkpKQpzdnVpbnQ2NF90IHN2dGJsMihzdnVpbnQ2NHgyX3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3UxNikpKQpzdnVpbnQxNl90IHN2dGJsMihzdnVpbnQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3M4KSkpCnN2aW50OF90IHN2dGJsMihzdmludDh4Ml90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRibDIoc3ZmbG9hdDY0eDJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dGJsMihzdmZsb2F0MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z0YmwyKHN2ZmxvYXQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX3MzMikpKQpzdmludDMyX3Qgc3Z0YmwyKHN2aW50MzJ4Ml90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9zNjQpKSkKc3ZpbnQ2NF90IHN2dGJsMihzdmludDY0eDJfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibDJfczE2KSkpCnN2aW50MTZfdCBzdnRibDIoc3ZpbnQxNngyX3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfdTgpKSkKc3Z1aW50OF90IHN2dGJ4KHN2dWludDhfdCwgc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfdTMyKSkpCnN2dWludDMyX3Qgc3Z0Yngoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF91NjQpKSkKc3Z1aW50NjRfdCBzdnRieChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3UxNikpKQpzdnVpbnQxNl90IHN2dGJ4KHN2dWludDE2X3QsIHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczgpKSkKc3ZpbnQ4X3Qgc3Z0Yngoc3ZpbnQ4X3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dGJ4KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z0Yngoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X2YxNikpKQpzdmZsb2F0MTZfdCBzdnRieChzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YnhfczMyKSkpCnN2aW50MzJfdCBzdnRieChzdmludDMyX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9zNjQpKSkKc3ZpbnQ2NF90IHN2dGJ4KHN2aW50NjRfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X3MxNikpKQpzdmludDE2X3Qgc3Z0Yngoc3ZpbnQxNl90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M4X20pKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF9tKHN2Ym9vbF90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczMyX20pKSkKc3ZpbnQzMl90IHN2dXFhZGRfbShzdmJvb2xfdCwgc3ZpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczY0X20pKSkKc3ZpbnQ2NF90IHN2dXFhZGRfbShzdmJvb2xfdCwgc3ZpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczE2X20pKSkKc3ZpbnQxNl90IHN2dXFhZGRfbShzdmJvb2xfdCwgc3ZpbnQxNl90LCB1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX25fczhfeCkpKQpzdmludDhfdCBzdnVxYWRkX3goc3Zib29sX3QsIHN2aW50OF90LCB1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMzJfeCkpKQpzdmludDMyX3Qgc3Z1cWFkZF94KHN2Ym9vbF90LCBzdmludDMyX3QsIHVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zNjRfeCkpKQpzdmludDY0X3Qgc3Z1cWFkZF94KHN2Ym9vbF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zMTZfeCkpKQpzdmludDE2X3Qgc3Z1cWFkZF94KHN2Ym9vbF90LCBzdmludDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfbl9zOF96KSkpCnN2aW50OF90IHN2dXFhZGRfeihzdmJvb2xfdCwgc3ZpbnQ4X3QsIHVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MzMl96KSkpCnN2aW50MzJfdCBzdnVxYWRkX3ooc3Zib29sX3QsIHN2aW50MzJfdCwgdWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3M2NF96KSkpCnN2aW50NjRfdCBzdnVxYWRkX3ooc3Zib29sX3QsIHN2aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9uX3MxNl96KSkpCnN2aW50MTZfdCBzdnVxYWRkX3ooc3Zib29sX3QsIHN2aW50MTZfdCwgdWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zOF9tKSkpCnN2aW50OF90IHN2dXFhZGRfbShzdmJvb2xfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MzMl9tKSkpCnN2aW50MzJfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M2NF9tKSkpCnN2aW50NjRfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3MxNl9tKSkpCnN2aW50MTZfdCBzdnVxYWRkX20oc3Zib29sX3QsIHN2aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVxYWRkX3M4X3gpKSkKc3ZpbnQ4X3Qgc3Z1cWFkZF94KHN2Ym9vbF90LCBzdmludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczMyX3gpKSkKc3ZpbnQzMl90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczY0X3gpKSkKc3ZpbnQ2NF90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczE2X3gpKSkKc3ZpbnQxNl90IHN2dXFhZGRfeChzdmJvb2xfdCwgc3ZpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXFhZGRfczhfeikpKQpzdmludDhfdCBzdnVxYWRkX3ooc3Zib29sX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMzJfeikpKQpzdmludDMyX3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zNjRfeikpKQpzdmludDY0X3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1cWFkZF9zMTZfeikpKQpzdmludDE2X3Qgc3Z1cWFkZF96KHN2Ym9vbF90LCBzdmludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjgoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NChpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMTYoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iMzIoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNihpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVnZV9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I4KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjY0KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ2VfYjE2KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ2VfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVnZV9iOCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IzMih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2I2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWdlX2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWdlX2IxNih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I4X3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjgoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3MzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyKGludDMyX3QsIGludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NChpbnQzMl90LCBpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMTZfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMTYoaW50MzJfdCwgaW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOChpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iMzJfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iMzIoaW50NjRfdCwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3M2NCkpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0KGludDY0X3QsIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNihpbnQ2NF90LCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVndF9iOF91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I4KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjMyX3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjMyKHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjY0X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjY0KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjE2X3UzMikpKQpzdmJvb2xfdCBzdndoaWxlZ3RfYjE2KHVpbnQzMl90LCB1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlZ3RfYjhfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVndF9iOCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IzMl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IzMih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2I2NF91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2I2NCh1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZWd0X2IxNl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZWd0X2IxNih1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXJ3X3U4KSkpCnN2Ym9vbF90IHN2d2hpbGVydyh1aW50OF90IGNvbnN0ICosIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczgpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3KGludDhfdCBjb25zdCAqLCBpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTY0KSkpCnN2Ym9vbF90IHN2d2hpbGVydyh1aW50NjRfdCBjb25zdCAqLCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3KGZsb2F0NjRfdCBjb25zdCAqLCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczY0KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhpbnQ2NF90IGNvbnN0ICosIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTE2KSkpCnN2Ym9vbF90IHN2d2hpbGVydyh1aW50MTZfdCBjb25zdCAqLCB1aW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3KGZsb2F0MTZfdCBjb25zdCAqLCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczE2KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhpbnQxNl90IGNvbnN0ICosIGludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfdTMyKSkpCnN2Ym9vbF90IHN2d2hpbGVydyh1aW50MzJfdCBjb25zdCAqLCB1aW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19mMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXJ3KGZsb2F0MzJfdCBjb25zdCAqLCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfczMyKSkpCnN2Ym9vbF90IHN2d2hpbGVydyhpbnQzMl90IGNvbnN0ICosIGludDMyX3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfdTgpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKHVpbnQ4X3QgY29uc3QgKiwgdWludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9zOCkpKQpzdmJvb2xfdCBzdndoaWxld3IoaW50OF90IGNvbnN0ICosIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl91NjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKHVpbnQ2NF90IGNvbnN0ICosIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX2Y2NCkpKQpzdmJvb2xfdCBzdndoaWxld3IoZmxvYXQ2NF90IGNvbnN0ICosIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9zNjQpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGludDY0X3QgY29uc3QgKiwgaW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl91MTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKHVpbnQxNl90IGNvbnN0ICosIHVpbnQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX2YxNikpKQpzdmJvb2xfdCBzdndoaWxld3IoZmxvYXQxNl90IGNvbnN0ICosIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9zMTYpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGludDE2X3QgY29uc3QgKiwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl91MzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKHVpbnQzMl90IGNvbnN0ICosIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z3aGlsZXdyX2YzMikpKQpzdmJvb2xfdCBzdndoaWxld3IoZmxvYXQzMl90IGNvbnN0ICosIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9zMzIpKSkKc3Zib29sX3Qgc3Z3aGlsZXdyKGludDMyX3QgY29uc3QgKiwgaW50MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fdTgpKSkKc3Z1aW50OF90IHN2eGFyKHN2dWludDhfdCwgc3Z1aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3UzMikpKQpzdnVpbnQzMl90IHN2eGFyKHN2dWludDMyX3QsIHN2dWludDMyX3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fdTY0KSkpCnN2dWludDY0X3Qgc3Z4YXIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl91MTYpKSkKc3Z1aW50MTZfdCBzdnhhcihzdnVpbnQxNl90LCBzdnVpbnQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3M4KSkpCnN2aW50OF90IHN2eGFyKHN2aW50OF90LCBzdmludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z4YXJfbl9zMzIpKSkKc3ZpbnQzMl90IHN2eGFyKHN2aW50MzJfdCwgc3ZpbnQzMl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnhhcl9uX3M2NCkpKQpzdmludDY0X3Qgc3Z4YXIoc3ZpbnQ2NF90LCBzdmludDY0X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2eGFyX25fczE2KSkpCnN2aW50MTZfdCBzdnhhcihzdmludDE2X3QsIHN2aW50MTZfdCwgdWludDY0X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1NDQUxBUl9BUklUSE1FVElDKQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxlcndfYmYxNikpKQpzdmJvb2xfdCBzdndoaWxlcndfYmYxNihiZmxvYXQxNl90IGNvbnN0ICosIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGV3cl9iZjE2KSkpCnN2Ym9vbF90IHN2d2hpbGV3cl9iZjE2KGJmbG9hdDE2X3QgY29uc3QgKiwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2d2hpbGVyd19iZjE2KSkpCnN2Ym9vbF90IHN2d2hpbGVydyhiZmxvYXQxNl90IGNvbnN0ICosIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdndoaWxld3JfYmYxNikpKQpzdmJvb2xfdCBzdndoaWxld3IoYmZsb2F0MTZfdCBjb25zdCAqLCBiZmxvYXQxNl90IGNvbnN0ICopOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1NDQUxBUl9BUklUSE1FVElDKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJsMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRibDJfYmYxNihzdmJmbG9hdDE2eDJfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dGJ4X2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dGJ4X2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmwyX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dGJsMihzdmJmbG9hdDE2eDJfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRieF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRieChzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMikgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyX0FFUykKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNkX3U4KSkpCnN2dWludDhfdCBzdmFlc2RfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFlc2VfdTgpKSkKc3Z1aW50OF90IHN2YWVzZV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YWVzaW1jX3U4KSkpCnN2dWludDhfdCBzdmFlc2ltY191OChzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFlc21jX3U4KSkpCnN2dWludDhfdCBzdmFlc21jX3U4KHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cG11bGxiX3BhaXJfbl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsYl9wYWlyX25fdTY0KHN2dWludDY0X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbGJfcGFpcl91NjQpKSkKc3Z1aW50NjRfdCBzdnBtdWxsYl9wYWlyX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZwbXVsbHRfcGFpcl9uX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGx0X3BhaXJfbl91NjQoc3Z1aW50NjRfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGx0X3BhaXJfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNkX3U4KSkpCnN2dWludDhfdCBzdmFlc2Qoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNlX3U4KSkpCnN2dWludDhfdCBzdmFlc2Uoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZhZXNpbWNfdTgpKSkKc3Z1aW50OF90IHN2YWVzaW1jKHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmFlc21jX3U4KSkpCnN2dWludDhfdCBzdmFlc21jKHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbGJfcGFpcihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsYl9wYWlyX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGxiX3BhaXIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX25fdTY0KSkpCnN2dWludDY0X3Qgc3ZwbXVsbHRfcGFpcihzdnVpbnQ2NF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnBtdWxsdF9wYWlyX3U2NCkpKQpzdnVpbnQ2NF90IHN2cG11bGx0X3BhaXIoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMl9BRVMpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTJfU0hBMykKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYXgxX3U2NCkpKQpzdnVpbnQ2NF90IHN2cmF4MV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmF4MV9zNjQpKSkKc3ZpbnQ2NF90IHN2cmF4MV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyYXgxX3U2NCkpKQpzdnVpbnQ2NF90IHN2cmF4MShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmF4MV9zNjQpKSkKc3ZpbnQ2NF90IHN2cmF4MShzdmludDY0X3QsIHN2aW50NjRfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMl9TSEEzKQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkUyX1NNNCkKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbTRlX3UzMikpKQpzdnVpbnQzMl90IHN2c200ZV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c200ZWtleV91MzIpKSkKc3Z1aW50MzJfdCBzdnNtNGVrZXlfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzbTRlX3UzMikpKQpzdnVpbnQzMl90IHN2c200ZShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c200ZWtleV91MzIpKSkKc3Z1aW50MzJfdCBzdnNtNGVrZXkoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFMl9TTTQpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZkb3Rfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZkb3RfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZkb3RfZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZkb3RfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZmRvdF9sYW5lX2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWxiX25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsYl9uX2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWxiX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGJfZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsYl9sYW5lX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGJfbGFuZV9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsdF9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbHRfbl9mMzIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWx0X2YzMihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbHRfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWx0X2xhbmVfZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbW1sYV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1tbGFfZjMyKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fYmYxNikpKQpiZmxvYXQxNl90IHN2Y2xhc3RhX25fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZjbGFzdGFfYmYxNihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNsYXN0Yl9uX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmNsYXN0Yl9uX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Y2xhc3RiX2JmMTYoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfYmYxNl9tKSkpCnN2dWludDE2X3Qgc3ZjbnRfYmYxNl9tKHN2dWludDE2X3QsIHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9iZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF9iZjE2X3goc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2JmMTZfeikpKQpzdnVpbnQxNl90IHN2Y250X2JmMTZfeihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGUyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZjcmVhdGUyX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmNyZWF0ZTNfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjcmVhdGU0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZjcmVhdGU0X2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfYmYxNl9mMzJfbSkpKQpzdmJmbG9hdDE2X3Qgc3ZjdnRfYmYxNl9mMzJfbShzdmJmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2JmMTZfZjMyX3gpKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0X2JmMTZfZjMyX3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRfYmYxNl9mMzJfeikpKQpzdmJmbG9hdDE2X3Qgc3ZjdnRfYmYxNl9mMzJfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dG50X2JmMTZfZjMyX20pKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0bnRfYmYxNl9mMzJfbShzdmJmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbl9iZjE2KGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTZfbSkpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbl9iZjE2X20oc3ZiZmxvYXQxNl90LCBzdmJvb2xfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYmYxNl94KSkpCnN2YmZsb2F0MTZfdCBzdmR1cF9uX2JmMTZfeChzdmJvb2xfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX25fYmYxNl96KSkpCnN2YmZsb2F0MTZfdCBzdmR1cF9uX2JmMTZfeihzdmJvb2xfdCwgYmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbGFuZV9iZjE2KHN2YmZsb2F0MTZfdCwgdWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmR1cHFfbl9iZjE2KGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cHFfbGFuZV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmR1cHFfbGFuZV9iZjE2KHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmV4dF9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Z2V0Ml9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmdldDJfYmYxNihzdmJmbG9hdDE2eDJfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmdldDNfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZnZXQzX2JmMTYoc3ZiZmxvYXQxNngzX3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Z2V0NF9iZjE2KHN2YmZsb2F0MTZ4NF90LCB1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2aW5zcl9uX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2aW5zcl9uX2JmMTYoc3ZiZmxvYXQxNl90LCBiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0YV9iZjE2KSkpCmJmbG9hdDE2X3Qgc3ZsYXN0YV9iZjE2KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RiX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmxhc3RiX2JmMTYoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGQxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZDFfdm51bV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGQxcnFfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdmxkMl9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMl92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3ZsZDJfdm51bV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkM19iZjE2KSkpCnN2YmZsb2F0MTZ4M190IHN2bGQzX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmxkM192bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZsZDRfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZ4NF90IHN2bGQ0X3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkZmYxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRmZjFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkZmYxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG5mMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbmYxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbmYxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZG50MV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbnQxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRudDFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbnQxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fYmYxNikpKQp1aW50NjRfdCBzdmxlbl9iZjE2KHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2cmV2X2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2cmV2X2JmMTYoc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZWxfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZzZWxfYmYxNihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdnNldDJfYmYxNihzdmJmbG9hdDE2eDJfdCwgdWludDY0X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0M19iZjE2KSkpCnN2YmZsb2F0MTZ4M190IHN2c2V0M19iZjE2KHN2YmZsb2F0MTZ4M190LCB1aW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQ0X2JmMTYpKSkKc3ZiZmxvYXQxNng0X3Qgc3ZzZXQ0X2JmMTYoc3ZiZmxvYXQxNng0X3QsIHVpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnNwbGljZV9iZjE2KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX2JmMTYpKSkKdm9pZCBzdnN0MV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QxX3ZudW1fYmYxNikpKQp2b2lkIHN2c3QxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9iZjE2KSkpCnZvaWQgc3ZzdDJfYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBzdmJmbG9hdDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QyX3ZudW1fYmYxNikpKQp2b2lkIHN2c3QyX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2eDJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3QzX2JmMTYpKSkKdm9pZCBzdnN0M19iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDNfdm51bV9iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIGludDY0X3QsIHN2YmZsb2F0MTZ4M190KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfYmYxNikpKQp2b2lkIHN2c3Q0X2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF92bnVtX2JmMTYpKSkKdm9pZCBzdnN0NF92bnVtX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgaW50NjRfdCwgc3ZiZmxvYXQxNng0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX2JmMTYpKSkKdm9pZCBzdnN0bnQxX2JmMTYoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdG50MV92bnVtX2JmMTYpKSkKdm9pZCBzdnN0bnQxX3ZudW1fYmYxNihzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRibF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRibF9iZjE2KHN2YmZsb2F0MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjJfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWYyX2JmMTYpKSkKc3ZiZmxvYXQxNngyX3Qgc3Z1bmRlZjJfYmYxNigpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVuZGVmM19iZjE2KSkpCnN2YmZsb2F0MTZ4M190IHN2dW5kZWYzX2JmMTYoKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1bmRlZjRfYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdnVuZGVmNF9iZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dW5kZWZfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1bmRlZl9iZjE2KCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDJfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnppcDFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnppcDJfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZkb3Qoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmZG90KHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmZG90X2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZkb3RfbGFuZShzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsYl9uX2YzMikpKQpzdmZsb2F0MzJfdCBzdmJmbWxhbGIoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbGJfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsYihzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWxiX2xhbmVfZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsYl9sYW5lKHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZiZm1sYWx0X25fZjMyKSkpCnN2ZmxvYXQzMl90IHN2YmZtbGFsdChzdmZsb2F0MzJfdCwgc3ZiZmxvYXQxNl90LCBiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2YmZtbGFsdF9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWx0KHN2ZmxvYXQzMl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbWxhbHRfbGFuZV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1sYWx0X2xhbmUoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmJmbW1sYV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3ZiZm1tbGEoc3ZmbG9hdDMyX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RhX25fYmYxNikpKQpiZmxvYXQxNl90IHN2Y2xhc3RhKHN2Ym9vbF90LCBiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZjbGFzdGEoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y2xhc3RiX25fYmYxNikpKQpiZmxvYXQxNl90IHN2Y2xhc3RiKHN2Ym9vbF90LCBiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbGFzdGJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZjbGFzdGIoc3Zib29sX3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y250X2JmMTZfbSkpKQpzdnVpbnQxNl90IHN2Y250X20oc3Z1aW50MTZfdCwgc3Zib29sX3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNudF9iZjE2X3gpKSkKc3Z1aW50MTZfdCBzdmNudF94KHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjbnRfYmYxNl96KSkpCnN2dWludDE2X3Qgc3ZjbnRfeihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3JlYXRlMl9iZjE2KSkpCnN2YmZsb2F0MTZ4Ml90IHN2Y3JlYXRlMihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmNyZWF0ZTMoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmNyZWF0ZTRfYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdmNyZWF0ZTQoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2JmMTZfZjMyX20pKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0X2JmMTZfbShzdmJmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmN2dF9iZjE2X2YzMl94KSkpCnN2YmZsb2F0MTZfdCBzdmN2dF9iZjE2X3goc3Zib29sX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2Y3Z0X2JmMTZfZjMyX3opKSkKc3ZiZmxvYXQxNl90IHN2Y3Z0X2JmMTZfeihzdmJvb2xfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZjdnRudF9iZjE2X2YzMl9tKSkpCnN2YmZsb2F0MTZfdCBzdmN2dG50X2JmMTZfbShzdmJmbG9hdDE2X3QsIHN2Ym9vbF90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2JmMTYoYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTZfbSkpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfYmYxNl9tKHN2YmZsb2F0MTZfdCwgc3Zib29sX3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBfbl9iZjE2X3gpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwX2JmMTZfeChzdmJvb2xfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmR1cF9uX2JmMTZfeikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfYmYxNl96KHN2Ym9vbF90LCBiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwX2xhbmVfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBfbGFuZShzdmJmbG9hdDE2X3QsIHVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2ZHVwcV9uX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2ZHVwcV9iZjE2KGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QsIGJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZkdXBxX2xhbmVfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZkdXBxX2xhbmUoc3ZiZmxvYXQxNl90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmV4dF9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmV4dChzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQyX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Z2V0MihzdmJmbG9hdDE2eDJfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQzX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Z2V0MyhzdmJmbG9hdDE2eDNfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZnZXQ0X2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2Z2V0NChzdmJmbG9hdDE2eDRfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZpbnNyX25fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZpbnNyKHN2YmZsb2F0MTZfdCwgYmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxhc3RhX2JmMTYpKSkKYmZsb2F0MTZfdCBzdmxhc3RhKHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsYXN0Yl9iZjE2KSkpCmJmbG9hdDE2X3Qgc3ZsYXN0YihzdmJvb2xfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGQxKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMV92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMXJxKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDJfYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdmxkMihzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQyX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdmxkMl92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDNfYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmxkMyhzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQzX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2eDNfdCBzdmxkM192bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDRfYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdmxkNChzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQ0X3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2eDRfdCBzdmxkNF92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkZmYxKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZGZmMV92bnVtX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGRmZjFfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqLCBpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG5mMShzdmJvb2xfdCwgYmZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGRuZjFfdm51bV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkbmYxX3ZudW0oc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKiwgaW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2bGRudDEoc3Zib29sX3QsIGJmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkbnQxX3ZudW1fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZG50MV92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICosIGludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZW5fYmYxNikpKQp1aW50NjRfdCBzdmxlbihzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZyZXZfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZyZXYoc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2VsX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2c2VsKHN2Ym9vbF90LCBzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNldDJfYmYxNikpKQpzdmJmbG9hdDE2eDJfdCBzdnNldDIoc3ZiZmxvYXQxNngyX3QsIHVpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzZXQzX2JmMTYpKSkKc3ZiZmxvYXQxNngzX3Qgc3ZzZXQzKHN2YmZsb2F0MTZ4M190LCB1aW50NjRfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c2V0NF9iZjE2KSkpCnN2YmZsb2F0MTZ4NF90IHN2c2V0NChzdmJmbG9hdDE2eDRfdCwgdWludDY0X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnNwbGljZV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnNwbGljZShzdmJvb2xfdCwgc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDFfYmYxNikpKQp2b2lkIHN2c3QxKHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0MV92bnVtX2JmMTYpKSkKdm9pZCBzdnN0MV92bnVtKHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIGludDY0X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0Ml9iZjE2KSkpCnZvaWQgc3ZzdDIoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNngyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDJfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDJfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2eDJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0M19iZjE2KSkpCnZvaWQgc3ZzdDMoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNngzX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDNfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDNfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2eDNfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0NF9iZjE2KSkpCnZvaWQgc3ZzdDQoc3Zib29sX3QsIGJmbG9hdDE2X3QgKiwgc3ZiZmxvYXQxNng0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdDRfdm51bV9iZjE2KSkpCnZvaWQgc3ZzdDRfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2eDRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX2JmMTYpKSkKdm9pZCBzdnN0bnQxKHN2Ym9vbF90LCBiZmxvYXQxNl90ICosIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN0bnQxX3ZudW1fYmYxNikpKQp2b2lkIHN2c3RudDFfdm51bShzdmJvb2xfdCwgYmZsb2F0MTZfdCAqLCBpbnQ2NF90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0YmxfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0Ymwoc3ZiZmxvYXQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4yX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dHJuMihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z1enAxKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMl9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDIoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2emlwMShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAyKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfQkYxNikKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX01BVE1VTF9GUDMyKQpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bW1sYV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2bW1sYShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKI2VuZGlmICAvL2RlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfTUFUTVVMX0ZQMzIpCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfRlA2NCkKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb191OCkpKQpzdnVpbnQ4X3Qgc3ZsZDFyb191OChzdmJvb2xfdCwgdWludDhfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb191MzIpKSkKc3Z1aW50MzJfdCBzdmxkMXJvX3UzMihzdmJvb2xfdCwgdWludDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTY0KSkpCnN2dWludDY0X3Qgc3ZsZDFyb191NjQoc3Zib29sX3QsIHVpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3UxNikpKQpzdnVpbnQxNl90IHN2bGQxcm9fdTE2KHN2Ym9vbF90LCB1aW50MTZfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zOCkpKQpzdmludDhfdCBzdmxkMXJvX3M4KHN2Ym9vbF90LCBpbnQ4X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxcm9fZjY0KHN2Ym9vbF90LCBmbG9hdDY0X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxcm9fZjMyKHN2Ym9vbF90LCBmbG9hdDMyX3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxcm9fZjE2KHN2Ym9vbF90LCBmbG9hdDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fczMyKSkpCnN2aW50MzJfdCBzdmxkMXJvX3MzMihzdmJvb2xfdCwgaW50MzJfdCBjb25zdCAqKTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxcm9fczY0KHN2Ym9vbF90LCBpbnQ2NF90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFyb19zMTYoc3Zib29sX3QsIGludDE2X3QgY29uc3QgKik7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW1sYV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtbWxhX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV91OCkpKQpzdnVpbnQ4X3Qgc3Z0cm4xcV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfdTMyKSkpCnN2dWludDMyX3Qgc3Z0cm4xcV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfdTY0KSkpCnN2dWludDY0X3Qgc3Z0cm4xcV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfdTE2KSkpCnN2dWludDE2X3Qgc3Z0cm4xcV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfczgpKSkKc3ZpbnQ4X3Qgc3Z0cm4xcV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjFxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjFxX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRybjFxX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4xcV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4xcV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3MxNikpKQpzdmludDE2X3Qgc3Z0cm4xcV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3U4KSkpCnN2dWludDhfdCBzdnRybjJxX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91MzIpKSkKc3Z1aW50MzJfdCBzdnRybjJxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjJxX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91MTYpKSkKc3Z1aW50MTZfdCBzdnRybjJxX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9zOCkpKQpzdmludDhfdCBzdnRybjJxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMnFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHJuMnFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMnFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfczMyKSkpCnN2aW50MzJfdCBzdnRybjJxX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfczY0KSkpCnN2aW50NjRfdCBzdnRybjJxX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfczE2KSkpCnN2aW50MTZfdCBzdnRybjJxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfdTgpKSkKc3Z1aW50OF90IHN2dXpwMXFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMXFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMXFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3UxNikpKQpzdnVpbnQxNl90IHN2dXpwMXFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3M4KSkpCnN2aW50OF90IHN2dXpwMXFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z1enAxcV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z1enAxcV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAxcV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zMzIpKSkKc3ZpbnQzMl90IHN2dXpwMXFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zNjQpKSkKc3ZpbnQ2NF90IHN2dXpwMXFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMXFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV91OCkpKQpzdnVpbnQ4X3Qgc3Z1enAycV91OChzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAycV91MzIoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfdTY0KSkpCnN2dWludDY0X3Qgc3Z1enAycV91NjQoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAycV91MTYoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAycV9zOChzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnV6cDJxX2Y2NChzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnV6cDJxX2YzMihzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnV6cDJxX2YxNihzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3MzMikpKQpzdmludDMyX3Qgc3Z1enAycV9zMzIoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3M2NCkpKQpzdmludDY0X3Qgc3Z1enAycV9zNjQoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3MxNikpKQpzdmludDE2X3Qgc3Z1enAycV9zMTYoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3U4KSkpCnN2dWludDhfdCBzdnppcDFxX3U4KHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91MzIpKSkKc3Z1aW50MzJfdCBzdnppcDFxX3UzMihzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91NjQpKSkKc3Z1aW50NjRfdCBzdnppcDFxX3U2NChzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDFxX3UxNihzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9zOCkpKQpzdmludDhfdCBzdnppcDFxX3M4KHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2emlwMXFfZjY0KHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2emlwMXFfZjMyKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2emlwMXFfZjE2KHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfczMyKSkpCnN2aW50MzJfdCBzdnppcDFxX3MzMihzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfczY0KSkpCnN2aW50NjRfdCBzdnppcDFxX3M2NChzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfczE2KSkpCnN2aW50MTZfdCBzdnppcDFxX3MxNihzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfdTgpKSkKc3Z1aW50OF90IHN2emlwMnFfdTgoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3UzMikpKQpzdnVpbnQzMl90IHN2emlwMnFfdTMyKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3U2NCkpKQpzdnVpbnQ2NF90IHN2emlwMnFfdTY0KHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3UxNikpKQpzdnVpbnQxNl90IHN2emlwMnFfdTE2KHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3M4KSkpCnN2aW50OF90IHN2emlwMnFfczgoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z6aXAycV9mNjQoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAycV9mMzIoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z6aXAycV9mMTYoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zMzIpKSkKc3ZpbnQzMl90IHN2emlwMnFfczMyKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMnFfczY0KHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zMTYpKSkKc3ZpbnQxNl90IHN2emlwMnFfczE2KHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTgpKSkKc3Z1aW50OF90IHN2bGQxcm8oc3Zib29sX3QsIHVpbnQ4X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3UzMikpKQpzdnVpbnQzMl90IHN2bGQxcm8oc3Zib29sX3QsIHVpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb191NjQpKSkKc3Z1aW50NjRfdCBzdmxkMXJvKHN2Ym9vbF90LCB1aW50NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fdTE2KSkpCnN2dWludDE2X3Qgc3ZsZDFybyhzdmJvb2xfdCwgdWludDE2X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3M4KSkpCnN2aW50OF90IHN2bGQxcm8oc3Zib29sX3QsIGludDhfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjY0KSkpCnN2ZmxvYXQ2NF90IHN2bGQxcm8oc3Zib29sX3QsIGZsb2F0NjRfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjMyKSkpCnN2ZmxvYXQzMl90IHN2bGQxcm8oc3Zib29sX3QsIGZsb2F0MzJfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fZjE2KSkpCnN2ZmxvYXQxNl90IHN2bGQxcm8oc3Zib29sX3QsIGZsb2F0MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fczMyKSkpCnN2aW50MzJfdCBzdmxkMXJvKHN2Ym9vbF90LCBpbnQzMl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19zNjQpKSkKc3ZpbnQ2NF90IHN2bGQxcm8oc3Zib29sX3QsIGludDY0X3QgY29uc3QgKik7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdmxkMXJvX3MxNikpKQpzdmludDE2X3Qgc3ZsZDFybyhzdmJvb2xfdCwgaW50MTZfdCBjb25zdCAqKTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW1sYV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3ZtbWxhKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV91OCkpKQpzdnVpbnQ4X3Qgc3Z0cm4xcShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3UzMikpKQpzdnVpbnQzMl90IHN2dHJuMXEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dHJuMXEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3UxNikpKQpzdnVpbnQxNl90IHN2dHJuMXEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX3M4KSkpCnN2aW50OF90IHN2dHJuMXEoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dHJuMXEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dHJuMXEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dHJuMXEoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfczMyKSkpCnN2aW50MzJfdCBzdnRybjFxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfczY0KSkpCnN2aW50NjRfdCBzdnRybjFxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMXFfczE2KSkpCnN2aW50MTZfdCBzdnRybjFxKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfdTgpKSkKc3Z1aW50OF90IHN2dHJuMnEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91MzIpKSkKc3Z1aW50MzJfdCBzdnRybjJxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91NjQpKSkKc3Z1aW50NjRfdCBzdnRybjJxKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV91MTYpKSkKc3Z1aW50MTZfdCBzdnRybjJxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4ycV9zOCkpKQpzdmludDhfdCBzdnRybjJxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnRybjJxKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnRybjJxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnRybjJxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3MzMikpKQpzdmludDMyX3Qgc3Z0cm4ycShzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3M2NCkpKQpzdmludDY0X3Qgc3Z0cm4ycShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjJxX3MxNikpKQpzdmludDE2X3Qgc3Z0cm4ycShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX3U4KSkpCnN2dWludDhfdCBzdnV6cDFxKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfdTMyKSkpCnN2dWludDMyX3Qgc3Z1enAxcShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfdTY0KSkpCnN2dWludDY0X3Qgc3Z1enAxcShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfdTE2KSkpCnN2dWludDE2X3Qgc3Z1enAxcShzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMXFfczgpKSkKc3ZpbnQ4X3Qgc3Z1enAxcShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z1enAxcShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z1enAxcShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z1enAxcShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zMzIpKSkKc3ZpbnQzMl90IHN2dXpwMXEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zNjQpKSkKc3ZpbnQ2NF90IHN2dXpwMXEoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9zMTYpKSkKc3ZpbnQxNl90IHN2dXpwMXEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV91OCkpKQpzdnVpbnQ4X3Qgc3Z1enAycShzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3UzMikpKQpzdnVpbnQzMl90IHN2dXpwMnEoc3Z1aW50MzJfdCwgc3Z1aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3U2NCkpKQpzdnVpbnQ2NF90IHN2dXpwMnEoc3Z1aW50NjRfdCwgc3Z1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3UxNikpKQpzdnVpbnQxNl90IHN2dXpwMnEoc3Z1aW50MTZfdCwgc3Z1aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX3M4KSkpCnN2aW50OF90IHN2dXpwMnEoc3ZpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfZjY0KSkpCnN2ZmxvYXQ2NF90IHN2dXpwMnEoc3ZmbG9hdDY0X3QsIHN2ZmxvYXQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfZjMyKSkpCnN2ZmxvYXQzMl90IHN2dXpwMnEoc3ZmbG9hdDMyX3QsIHN2ZmxvYXQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfZjE2KSkpCnN2ZmxvYXQxNl90IHN2dXpwMnEoc3ZmbG9hdDE2X3QsIHN2ZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfczMyKSkpCnN2aW50MzJfdCBzdnV6cDJxKHN2aW50MzJfdCwgc3ZpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfczY0KSkpCnN2aW50NjRfdCBzdnV6cDJxKHN2aW50NjRfdCwgc3ZpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXpwMnFfczE2KSkpCnN2aW50MTZfdCBzdnV6cDJxKHN2aW50MTZfdCwgc3ZpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfdTgpKSkKc3Z1aW50OF90IHN2emlwMXEoc3Z1aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91MzIpKSkKc3Z1aW50MzJfdCBzdnppcDFxKHN2dWludDMyX3QsIHN2dWludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91NjQpKSkKc3Z1aW50NjRfdCBzdnppcDFxKHN2dWludDY0X3QsIHN2dWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV91MTYpKSkKc3Z1aW50MTZfdCBzdnppcDFxKHN2dWludDE2X3QsIHN2dWludDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAxcV9zOCkpKQpzdmludDhfdCBzdnppcDFxKHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2Y2NCkpKQpzdmZsb2F0NjRfdCBzdnppcDFxKHN2ZmxvYXQ2NF90LCBzdmZsb2F0NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2YzMikpKQpzdmZsb2F0MzJfdCBzdnppcDFxKHN2ZmxvYXQzMl90LCBzdmZsb2F0MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX2YxNikpKQpzdmZsb2F0MTZfdCBzdnppcDFxKHN2ZmxvYXQxNl90LCBzdmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3MzMikpKQpzdmludDMyX3Qgc3Z6aXAxcShzdmludDMyX3QsIHN2aW50MzJfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3M2NCkpKQpzdmludDY0X3Qgc3Z6aXAxcShzdmludDY0X3QsIHN2aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDFxX3MxNikpKQpzdmludDE2X3Qgc3Z6aXAxcShzdmludDE2X3QsIHN2aW50MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX3U4KSkpCnN2dWludDhfdCBzdnppcDJxKHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfdTMyKSkpCnN2dWludDMyX3Qgc3Z6aXAycShzdnVpbnQzMl90LCBzdnVpbnQzMl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfdTY0KSkpCnN2dWludDY0X3Qgc3Z6aXAycShzdnVpbnQ2NF90LCBzdnVpbnQ2NF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfdTE2KSkpCnN2dWludDE2X3Qgc3Z6aXAycShzdnVpbnQxNl90LCBzdnVpbnQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMnFfczgpKSkKc3ZpbnQ4X3Qgc3Z6aXAycShzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mNjQpKSkKc3ZmbG9hdDY0X3Qgc3Z6aXAycShzdmZsb2F0NjRfdCwgc3ZmbG9hdDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mMzIpKSkKc3ZmbG9hdDMyX3Qgc3Z6aXAycShzdmZsb2F0MzJfdCwgc3ZmbG9hdDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9mMTYpKSkKc3ZmbG9hdDE2X3Qgc3Z6aXAycShzdmZsb2F0MTZfdCwgc3ZmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zMzIpKSkKc3ZpbnQzMl90IHN2emlwMnEoc3ZpbnQzMl90LCBzdmludDMyX3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zNjQpKSkKc3ZpbnQ2NF90IHN2emlwMnEoc3ZpbnQ2NF90LCBzdmludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9zMTYpKSkKc3ZpbnQxNl90IHN2emlwMnEoc3ZpbnQxNl90LCBzdmludDE2X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfRlA2NCkKCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX01BVE1VTF9GUDY0KSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX0JGMTYpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bGQxcm9fYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3ZsZDFyb19iZjE2KHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnRybjFxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dHJuMXFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4ycV9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAxcV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDFxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDJxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dXpwMnFfYmYxNihzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAxcV9iZjE2KHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z6aXAycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnppcDJxX2JmMTYoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZsZDFyb19iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdmxkMXJvKHN2Ym9vbF90LCBiZmxvYXQxNl90IGNvbnN0ICopOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z0cm4xcV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnRybjFxKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dHJuMnFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z0cm4ycShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnV6cDFxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2dXpwMXEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1enAycV9iZjE2KSkpCnN2YmZsb2F0MTZfdCBzdnV6cDJxKHN2YmZsb2F0MTZfdCwgc3ZiZmxvYXQxNl90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2emlwMXFfYmYxNikpKQpzdmJmbG9hdDE2X3Qgc3Z6aXAxcShzdmJmbG9hdDE2X3QsIHN2YmZsb2F0MTZfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnppcDJxX2JmMTYpKSkKc3ZiZmxvYXQxNl90IHN2emlwMnEoc3ZiZmxvYXQxNl90LCBzdmJmbG9hdDE2X3QpOwojZW5kaWYgIC8vZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9NQVRNVUxfRlA2NCkgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQoKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TVkVfTUFUTVVMX0lOVDgpCl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW1sYV9zMzIpKSkKc3ZpbnQzMl90IHN2bW1sYV9zMzIoc3ZpbnQzMl90LCBzdmludDhfdCwgc3ZpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbWxhX3UzMihzdnVpbnQzMl90LCBzdnVpbnQ4X3QsIHN2dWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vkb3Rfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vkb3Rfbl9zMzIoc3ZpbnQzMl90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWkgX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vkb3RfczMyKSkpCnN2aW50MzJfdCBzdnN1ZG90X3MzMihzdmludDMyX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1ZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnN1ZG90X2xhbmVfczMyKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVzZG90X25fczMyKSkpCnN2aW50MzJfdCBzdnVzZG90X25fczMyKHN2aW50MzJfdCwgc3Z1aW50OF90LCBpbnQ4X3QpOwpfX2FpIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVzZG90X3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdF9zMzIoc3ZpbnQzMl90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c2RvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdF9sYW5lX3MzMihzdmludDMyX3QsIHN2dWludDhfdCwgc3ZpbnQ4X3QsIHVpbnQ2NF90KTsKX19haSBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c21tbGFfczMyKSkpCnN2aW50MzJfdCBzdnVzbW1sYV9zMzIoc3ZpbnQzMl90LCBzdnVpbnQ4X3QsIHN2aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2bW1sYV9zMzIpKSkKc3ZpbnQzMl90IHN2bW1sYShzdmludDMyX3QsIHN2aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdm1tbGFfdTMyKSkpCnN2dWludDMyX3Qgc3ZtbWxhKHN2dWludDMyX3QsIHN2dWludDhfdCwgc3Z1aW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2c3Vkb3Rfbl9zMzIpKSkKc3ZpbnQzMl90IHN2c3Vkb3Qoc3ZpbnQzMl90LCBzdmludDhfdCwgdWludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnN1ZG90X3MzMikpKQpzdmludDMyX3Qgc3ZzdWRvdChzdmludDMyX3QsIHN2aW50OF90LCBzdnVpbnQ4X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3ZzdWRvdF9sYW5lX3MzMikpKQpzdmludDMyX3Qgc3ZzdWRvdF9sYW5lKHN2aW50MzJfdCwgc3ZpbnQ4X3QsIHN2dWludDhfdCwgdWludDY0X3QpOwpfX2FpbyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9zdmVfc3Z1c2RvdF9uX3MzMikpKQpzdmludDMyX3Qgc3Z1c2RvdChzdmludDMyX3QsIHN2dWludDhfdCwgaW50OF90KTsKX19haW8gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fc3ZlX3N2dXNkb3RfczMyKSkpCnN2aW50MzJfdCBzdnVzZG90KHN2aW50MzJfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVzZG90X2xhbmVfczMyKSkpCnN2aW50MzJfdCBzdnVzZG90X2xhbmUoc3ZpbnQzMl90LCBzdnVpbnQ4X3QsIHN2aW50OF90LCB1aW50NjRfdCk7Cl9fYWlvIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX3N2ZV9zdnVzbW1sYV9zMzIpKSkKc3ZpbnQzMl90IHN2dXNtbWxhKHN2aW50MzJfdCwgc3Z1aW50OF90LCBzdmludDhfdCk7CiNlbmRpZiAgLy9kZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU1ZFX01BVE1VTF9JTlQ4KQojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRV9CRjE2KQojZGVmaW5lIHN2Y3Z0bnRfYmYxNl94ICAgICAgc3ZjdnRudF9iZjE2X20KI2RlZmluZSBzdmN2dG50X2JmMTZfZjMyX3ggIHN2Y3Z0bnRfYmYxNl9mMzJfbQojZW5kaWYgLypfX0FSTV9GRUFUVVJFX1NWRV9CRjE2ICovCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NWRTIpCiNkZWZpbmUgc3ZjdnRudF9mMTZfeCAgICAgIHN2Y3Z0bnRfZjE2X20KI2RlZmluZSBzdmN2dG50X2YxNl9mMzJfeCAgc3ZjdnRudF9mMTZfZjMyX20KI2RlZmluZSBzdmN2dG50X2YzMl94ICAgICAgc3ZjdnRudF9mMzJfbQojZGVmaW5lIHN2Y3Z0bnRfZjMyX2Y2NF94ICBzdmN2dG50X2YzMl9mNjRfbQoKI2RlZmluZSBzdmN2dHhudF9mMzJfeCAgICAgc3ZjdnR4bnRfZjMyX20KI2RlZmluZSBzdmN2dHhudF9mMzJfZjY0X3ggc3ZjdnR4bnRfZjMyX2Y2NF9tCgojZW5kaWYgLypfX0FSTV9GRUFUVVJFX1NWRTIgKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwp9IC8vIGV4dGVybiAiQyIKI2VuZGlmCgojZW5kaWYgLypfX0FSTV9GRUFUVVJFX1NWRSAqLwoKI2VuZGlmIC8qIF9fQVJNX1NWRV9IICovCgAvKj09PS0tLS0tIGF2eDUxMnZwb3BjbnRkcWludHJpbi5oIC0gQVZYNTEyVlBPUENOVERRIGludHJpbnNpY3MtLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIk5ldmVyIHVzZSA8YXZ4NTEydnBvcGNudGRxaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZQT1BDTlREUUlOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWUE9QQ05URFFJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEydnBvcGNudGRxIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMgX21tNTEyX3BvcGNudF9lcGk2NChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl92cG9wY250cV81MTIoKF9fdjhkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpNjQoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y4ZGkpX21tNTEyX3BvcGNudF9lcGk2NChfX0EpLCAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9wb3BjbnRfZXBpNjQoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpNjQoKF9fbTUxMmkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgX19VLCBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUyBfbW01MTJfcG9wY250X2VwaTMyKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3Zwb3BjbnRkXzUxMigoX192MTZzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpMzIoX19tNTEyaSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKAogICAgICAoX19tbWFzazE2KV9fVSwgKF9fdjE2c2kpX21tNTEyX3BvcGNudF9lcGkzMihfX0EpLCAoX192MTZzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfcG9wY250X2VwaTMyKF9fbW1hc2sxNiBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX3BvcGNudF9lcGkzMigoX19tNTEyaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBfX1UsIF9fQSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAYXZ4aW50cmluLmgALyo9PT0tLS0tIGh0bXhsaW50cmluLmggLSBYTCBjb21waWxlciBIVE0gZXhlY3V0aW9uIGludHJpbnNpY3MtLS0tLS0tLS0tLS0tPT09KlwKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKXCo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ki8KCiNpZm5kZWYgX19IVE1YTElOVFJJTl9ICiNkZWZpbmUgX19IVE1YTElOVFJJTl9ICgojaWZuZGVmIF9fSFRNX18KI2Vycm9yICJIVE0gaW5zdHJ1Y3Rpb24gc2V0IG5vdCBlbmFibGVkIgojZW5kaWYKCiNpbmNsdWRlIDxodG1pbnRyaW4uaD4KCiNpZmRlZiBfX3Bvd2VycGNfXwoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCiNkZWZpbmUgX1RFWEFTUl9QVFIoVE1fQlVGKSAoKHRleGFzcl90ICopKChjaGFyICopKFRNX0JVRikgKyAwKSkKI2RlZmluZSBfVEVYQVNSVV9QVFIoVE1fQlVGKSAoKHRleGFzcnVfdCAqKSgoY2hhciAqKShUTV9CVUYpICsgMCkpCiNkZWZpbmUgX1RFWEFTUkxfUFRSKFRNX0JVRikgKCh0ZXhhc3JsX3QgKikoKGNoYXIgKikoVE1fQlVGKSArIDQpKQojZGVmaW5lIF9URklBUl9QVFIoVE1fQlVGKSAoKHRmaWFyX3QgKikoKGNoYXIgKikoVE1fQlVGKSArIDgpKQoKdHlwZWRlZiBjaGFyIFRNX2J1ZmZfdHlwZVsxNl07CgovKiBUaGlzIG1hY3JvIGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVyIGEgdHJhbnNhY3Rpb24gd2FzIHN1Y2Nlc3NmdWxseQogICBzdGFydGVkIGZyb20gdGhlIF9fVE1fYmVnaW4oKSBhbmQgX19UTV9zaW1wbGVfYmVnaW4oKSBpbnRyaW5zaWMgZnVuY3Rpb25zCiAgIGJlbG93LiAgKi8KI2RlZmluZSBfSFRNX1RCRUdJTl9TVEFSVEVEICAgICAxCgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fc2ltcGxlX2JlZ2luICh2b2lkKQp7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QgKF9fYnVpbHRpbl90YmVnaW4gKDApLCAxKSkKICAgIHJldHVybiBfSFRNX1RCRUdJTl9TVEFSVEVEOwogIHJldHVybiAwOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fYmVnaW4gKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogICpfVEVYQVNSTF9QVFIgKF9fVE1fYnVmZikgPSAwOwogIGlmIChfX2J1aWx0aW5fZXhwZWN0IChfX2J1aWx0aW5fdGJlZ2luICgwKSwgMSkpCiAgICByZXR1cm4gX0hUTV9UQkVHSU5fU1RBUlRFRDsKI2lmZGVmIF9fcG93ZXJwYzY0X18KICAqX1RFWEFTUl9QVFIgKF9fVE1fYnVmZikgPSBfX2J1aWx0aW5fZ2V0X3RleGFzciAoKTsKI2Vsc2UKICAqX1RFWEFTUlVfUFRSIChfX1RNX2J1ZmYpID0gX19idWlsdGluX2dldF90ZXhhc3J1ICgpOwogICpfVEVYQVNSTF9QVFIgKF9fVE1fYnVmZikgPSBfX2J1aWx0aW5fZ2V0X3RleGFzciAoKTsKI2VuZGlmCiAgKl9URklBUl9QVFIgKF9fVE1fYnVmZikgPSBfX2J1aWx0aW5fZ2V0X3RmaWFyICgpOwogIHJldHVybiAwOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fZW5kICh2b2lkKQp7CiAgaWYgKF9fYnVpbHRpbl9leHBlY3QgKF9fYnVpbHRpbl90ZW5kICgwKSwgMSkpCiAgICByZXR1cm4gMTsKICByZXR1cm4gMDsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2Fib3J0ICh2b2lkKQp7CiAgX19idWlsdGluX3RhYm9ydCAoMCk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9uYW1lZF9hYm9ydCAodW5zaWduZWQgY2hhciBjb25zdCBfX2NvZGUpCnsKICBfX2J1aWx0aW5fdGFib3J0IChfX2NvZGUpOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZApfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fcmVzdW1lICh2b2lkKQp7CiAgX19idWlsdGluX3RyZXN1bWUgKCk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9zdXNwZW5kICh2b2lkKQp7CiAgX19idWlsdGluX3RzdXNwZW5kICgpOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1faXNfdXNlcl9hYm9ydCAodm9pZCogY29uc3QgX19UTV9idWZmKQp7CiAgdGV4YXNydV90IHRleGFzcnUgPSAqX1RFWEFTUlVfUFRSIChfX1RNX2J1ZmYpOwogIHJldHVybiBfVEVYQVNSVV9BQk9SVCAodGV4YXNydSk7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9pc19uYW1lZF91c2VyX2Fib3J0ICh2b2lkKiBjb25zdCBfX1RNX2J1ZmYsIHVuc2lnbmVkIGNoYXIgKl9fY29kZSkKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKCiAgKl9fY29kZSA9IF9URVhBU1JVX0ZBSUxVUkVfQ09ERSAodGV4YXNydSk7CiAgcmV0dXJuIF9URVhBU1JVX0FCT1JUICh0ZXhhc3J1KTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2lzX2lsbGVnYWwgKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKICByZXR1cm4gX1RFWEFTUlVfRElTQUxMT1dFRCAodGV4YXNydSk7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9pc19mb290cHJpbnRfZXhjZWVkZWQgKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcnVfdCB0ZXhhc3J1ID0gKl9URVhBU1JVX1BUUiAoX19UTV9idWZmKTsKICByZXR1cm4gX1RFWEFTUlVfRk9PVFBSSU5UX09WRVJGTE9XICh0ZXhhc3J1KTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX25lc3RpbmdfZGVwdGggKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHRleGFzcmxfdCB0ZXhhc3JsOwoKICBpZiAoX0hUTV9TVEFURSAoX19idWlsdGluX3R0ZXN0ICgpKSA9PSBfSFRNX05PTlRSQU5TQUNUSU9OQUwpCiAgICB7CiAgICAgIHRleGFzcmwgPSAqX1RFWEFTUkxfUFRSIChfX1RNX2J1ZmYpOwogICAgICBpZiAoIV9URVhBU1JfRkFJTFVSRV9TVU1NQVJZICh0ZXhhc3JsKSkKICAgICAgICB0ZXhhc3JsID0gMDsKICAgIH0KICBlbHNlCiAgICB0ZXhhc3JsID0gKHRleGFzcmxfdCkgX19idWlsdGluX2dldF90ZXhhc3IgKCk7CgogIHJldHVybiBfVEVYQVNSX1RSQU5TQUNUSU9OX0xFVkVMICh0ZXhhc3JsKTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcKX19hdHRyaWJ1dGVfXyAoKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfX1RNX2lzX25lc3RlZF90b29fZGVlcCh2b2lkKiBjb25zdCBfX1RNX2J1ZmYpCnsKICB0ZXhhc3J1X3QgdGV4YXNydSA9ICpfVEVYQVNSVV9QVFIgKF9fVE1fYnVmZik7CiAgcmV0dXJuIF9URVhBU1JVX05FU1RJTkdfT1ZFUkZMT1cgKHRleGFzcnUpOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1faXNfY29uZmxpY3Qodm9pZCogY29uc3QgX19UTV9idWZmKQp7CiAgdGV4YXNydV90IHRleGFzcnUgPSAqX1RFWEFTUlVfUFRSIChfX1RNX2J1ZmYpOwogIC8qIFJldHVybiBURVhBU1IgYml0cyAxMSAoU2VsZi1JbmR1Y2VkIENvbmZsaWN0KSB0aHJvdWdoCiAgICAgMTQgKFRyYW5zbGF0aW9uIEludmFsaWRhdGlvbiBDb25mbGljdCkuICAqLwogIHJldHVybiAoX1RFWEFTUlVfRVhUUkFDVF9CSVRTICh0ZXhhc3J1LCAxNCwgNCkpID8gMSA6IDA7Cn0KCmV4dGVybiBfX2lubGluZSBsb25nCl9fYXR0cmlidXRlX18gKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX19UTV9pc19mYWlsdXJlX3BlcnNpc3RlbnQodm9pZCogY29uc3QgX19UTV9idWZmKQp7CiAgdGV4YXNydV90IHRleGFzcnUgPSAqX1RFWEFTUlVfUFRSIChfX1RNX2J1ZmYpOwogIHJldHVybiBfVEVYQVNSVV9GQUlMVVJFX1BFUlNJU1RFTlQgKHRleGFzcnUpOwp9CgpleHRlcm4gX19pbmxpbmUgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fZmFpbHVyZV9hZGRyZXNzKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHJldHVybiAqX1RGSUFSX1BUUiAoX19UTV9idWZmKTsKfQoKZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZwpfX2F0dHJpYnV0ZV9fICgoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9fVE1fZmFpbHVyZV9jb2RlKHZvaWQqIGNvbnN0IF9fVE1fYnVmZikKewogIHJldHVybiAqX1RFWEFTUl9QVFIgKF9fVE1fYnVmZik7Cn0KCiNpZmRlZiBfX2NwbHVzcGx1cwp9CiNlbmRpZgoKI2VuZGlmIC8qIF9fcG93ZXJwY19fICovCgojaWZkZWYgX19zMzkwX18KCiNpbmNsdWRlIDxzdGRpbnQuaD4KCi8qIFRoZXNlIGludHJpbnNpY3MgYXJlIGJlaW5nIG1hZGUgYXZhaWxhYmxlIGZvciBjb21wYXRpYmlsaXR5IHdpdGgKICAgdGhlIElCTSBYTCBjb21waWxlci4gIEZvciBkb2N1bWVudGF0aW9uIHBsZWFzZSBzZWUgdGhlICJ6L09TIFhMCiAgIEMvQysrIFByb2dyYW1taW5nIEd1aWRlIiBwdWJsaWNseSBhdmFpbGFibGUgb24gdGhlIHdlYi4gICovCgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX3NpbXBsZV9iZWdpbiAoKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl90YmVnaW5fbm9mbG9hdCAoMCk7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1fYmVnaW4gKHZvaWQqIGNvbnN0IF9fdGRiKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl90YmVnaW5fbm9mbG9hdCAoX190ZGIpOwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2VuZCAoKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl90ZW5kICgpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCl9fVE1fYWJvcnQgKCkKewogIHJldHVybiBfX2J1aWx0aW5fdGFib3J0IChfSFRNX0ZJUlNUX1VTRVJfQUJPUlRfQ09ERSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1fbmFtZWRfYWJvcnQgKHVuc2lnbmVkIGNoYXIgY29uc3QgX19jb2RlKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl90YWJvcnQgKChpbnQpX0hUTV9GSVJTVF9VU0VSX0FCT1JUX0NPREUgKyBfX2NvZGUpOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX25vbl90cmFuc2FjdGlvbmFsX3N0b3JlICh2b2lkKiBjb25zdCBfX2FkZHIsIGxvbmcgbG9uZyBjb25zdCBfX3ZhbHVlKQp7CiAgX19idWlsdGluX25vbl90eF9zdG9yZSAoKHVpbnQ2NF90KilfX2FkZHIsICh1aW50NjRfdClfX3ZhbHVlKTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9uZXN0aW5nX2RlcHRoICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBpbnQgZGVwdGggPSBfX2J1aWx0aW5fdHhfbmVzdGluZ19kZXB0aCAoKTsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICBpZiAoZGVwdGggIT0gMCkKICAgIHJldHVybiBkZXB0aDsKCiAgaWYgKHRkYi0+Zm9ybWF0ICE9IDEpCiAgICByZXR1cm4gMDsKICByZXR1cm4gdGRiLT5uZXN0aW5nX2RlcHRoOwp9CgovKiBUcmFuc2FjdGlvbiBmYWlsdXJlIGRpYWdub3N0aWNzICovCgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2lzX3VzZXJfYWJvcnQgKHZvaWQqIGNvbnN0IF9fdGRiX3B0cikKewogIHN0cnVjdCBfX2h0bV90ZGIgKnRkYiA9IChzdHJ1Y3QgX19odG1fdGRiKilfX3RkYl9wdHI7CgogIGlmICh0ZGItPmZvcm1hdCAhPSAxKQogICAgcmV0dXJuIDA7CgogIHJldHVybiAhISh0ZGItPmFib3J0X2NvZGUgPj0gX0hUTV9GSVJTVF9VU0VSX0FCT1JUX0NPREUpOwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2lzX25hbWVkX3VzZXJfYWJvcnQgKHZvaWQqIGNvbnN0IF9fdGRiX3B0ciwgdW5zaWduZWQgY2hhciogX19jb2RlKQp7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgaWYgKHRkYi0+Zm9ybWF0ICE9IDEpCiAgICByZXR1cm4gMDsKCiAgaWYgKHRkYi0+YWJvcnRfY29kZSA+PSBfSFRNX0ZJUlNUX1VTRVJfQUJPUlRfQ09ERSkKICAgIHsKICAgICAgKl9fY29kZSA9IHRkYi0+YWJvcnRfY29kZSAtIF9IVE1fRklSU1RfVVNFUl9BQk9SVF9DT0RFOwogICAgICByZXR1cm4gMTsKICAgIH0KICByZXR1cm4gMDsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc19pbGxlZ2FsICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICByZXR1cm4gKHRkYi0+Zm9ybWF0ID09IDEKCSAgJiYgKHRkYi0+YWJvcnRfY29kZSA9PSA0IC8qIHVuZmlsdGVyZWQgcHJvZ3JhbSBpbnRlcnJ1cHRpb24gKi8KCSAgICAgIHx8IHRkYi0+YWJvcnRfY29kZSA9PSAxMSAvKiByZXN0cmljdGVkIGluc3RydWN0aW9uICovKSk7Cn0KCnN0YXRpYyBfX2lubGluZSBsb25nIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fVE1faXNfZm9vdHByaW50X2V4Y2VlZGVkICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICByZXR1cm4gKHRkYi0+Zm9ybWF0ID09IDEKCSAgJiYgKHRkYi0+YWJvcnRfY29kZSA9PSA3IC8qIGZldGNoIG92ZXJmbG93ICovCgkgICAgICB8fCB0ZGItPmFib3J0X2NvZGUgPT0gOCAvKiBzdG9yZSBvdmVyZmxvdyAqLykpOwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2lzX25lc3RlZF90b29fZGVlcCAodm9pZCogY29uc3QgX190ZGJfcHRyKQp7CiAgc3RydWN0IF9faHRtX3RkYiAqdGRiID0gKHN0cnVjdCBfX2h0bV90ZGIqKV9fdGRiX3B0cjsKCiAgcmV0dXJuIHRkYi0+Zm9ybWF0ID09IDEgJiYgdGRiLT5hYm9ydF9jb2RlID09IDEzOyAvKiBkZXB0aCBleGNlZWRlZCAqLwp9CgpzdGF0aWMgX19pbmxpbmUgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQpfX1RNX2lzX2NvbmZsaWN0ICh2b2lkKiBjb25zdCBfX3RkYl9wdHIpCnsKICBzdHJ1Y3QgX19odG1fdGRiICp0ZGIgPSAoc3RydWN0IF9faHRtX3RkYiopX190ZGJfcHRyOwoKICByZXR1cm4gKHRkYi0+Zm9ybWF0ID09IDEKCSAgJiYgKHRkYi0+YWJvcnRfY29kZSA9PSA5IC8qIGZldGNoIGNvbmZsaWN0ICovCgkgICAgICB8fCB0ZGItPmFib3J0X2NvZGUgPT0gMTAgLyogc3RvcmUgY29uZmxpY3QgKi8pKTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9pc19mYWlsdXJlX3BlcnNpc3RlbnQgKGxvbmcgY29uc3QgX19yZXN1bHQpCnsKICByZXR1cm4gX19yZXN1bHQgPT0gX0hUTV9UQkVHSU5fUEVSU0lTVEVOVDsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9mYWlsdXJlX2FkZHJlc3MgKHZvaWQqIGNvbnN0IF9fdGRiX3B0cikKewogIHN0cnVjdCBfX2h0bV90ZGIgKnRkYiA9IChzdHJ1Y3QgX19odG1fdGRiKilfX3RkYl9wdHI7CiAgcmV0dXJuIHRkYi0+YXRpYTsKfQoKc3RhdGljIF9faW5saW5lIGxvbmcgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19UTV9mYWlsdXJlX2NvZGUgKHZvaWQqIGNvbnN0IF9fdGRiX3B0cikKewogIHN0cnVjdCBfX2h0bV90ZGIgKnRkYiA9IChzdHJ1Y3QgX19odG1fdGRiKilfX3RkYl9wdHI7CgogIHJldHVybiB0ZGItPmFib3J0X2NvZGU7Cn0KCiNlbmRpZiAvKiBfX3MzOTBfXyAqLwoKI2VuZGlmIC8qIF9fSFRNWExJTlRSSU5fSCAgKi8KAC8qPT09LS0tLSBsd3BpbnRyaW4uaCAtIExXUCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8bHdwaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0xXUElOVFJJTl9ICiNkZWZpbmUgX19MV1BJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImx3cCIpKSkKCi8vLyBQYXJzZXMgdGhlIExXUENCIGF0IHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBhbmQgZW5hYmxlcwovLy8gICAgICAgIHByb2ZpbGluZyBpZiB2YWxpZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBMTFdQQ0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hZGRyCi8vLyAgICBBZGRyZXNzIHRvIHRoZSBuZXcgTGlnaHR3ZWlnaHQgUHJvZmlsaW5nIENvbnRyb2wgQmxvY2sgKExXUENCKS4gSWYgdGhlCi8vLyAgICBMV1BDQiBpcyB2YWxpZCwgd3JpdGVzIHRoZSBhZGRyZXNzIGludG8gdGhlIExXUF9DQkFERFIgTVNSIGFuZCBlbmFibGVzCi8vLyAgICBMaWdodHdlaWdodCBQcm9maWxpbmcuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9fbGx3cGNiICh2b2lkICpfX2FkZHIpCnsKICBfX2J1aWx0aW5faWEzMl9sbHdwY2IoX19hZGRyKTsKfQoKLy8vIEZsdXNoZXMgdGhlIExXUCBzdGF0ZSB0byBtZW1vcnkgYW5kIHJldHVybnMgdGhlIGFkZHJlc3Mgb2YgdGhlIExXUENCLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFNMV1BDQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm4KLy8vICAgIEFkZHJlc3MgdG8gdGhlIGN1cnJlbnQgTGlnaHR3ZWlnaHQgUHJvZmlsaW5nIENvbnRyb2wgQmxvY2sgKExXUENCKS4KLy8vICAgIElmIExXUCBpcyBub3QgY3VycmVudGx5IGVuYWJsZWQsIHJldHVybnMgTlVMTC4Kc3RhdGljIF9faW5saW5lX18gdm9pZCogX19ERUZBVUxUX0ZOX0FUVFJTCl9fc2x3cGNiICh2b2lkKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Nsd3BjYigpOwp9CgovLy8gSW5zZXJ0cyBwcm9ncmFtbWVkIGV2ZW50IHJlY29yZCBpbnRvIHRoZSBMV1AgZXZlbnQgcmluZyBidWZmZXIKLy8vICAgICAgICBhbmQgYWR2YW5jZXMgdGhlIHJpbmcgYnVmZmVyIHBvaW50ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTFdQSU5TIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIERBVEEyCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyB6ZXJvLWV4dGVuZGVkIGFuZCBpbnNlcnRlZCBpbnRvIHRoZSA2NC1iaXQgRGF0YTIgZmllbGQuCi8vLyBccGFyYW0gREFUQTEKLy8vICAgIEEgMzItYml0IHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBEYXRhMSBmaWVsZC4KLy8vIFxwYXJhbSBGTEFHUwovLy8gICAgQSAzMi1iaXQgaW1tZWRpYXRlIHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBGbGFncyBmaWVsZC4KLy8vIFxyZXR1cm5zIElmIHRoZSByaW5nIGJ1ZmZlciBpcyBmdWxsIGFuZCBMV1AgaXMgcnVubmluZyBpbiBTeW5jaHJvbml6ZWQgTW9kZSwKLy8vICAgIHRoZSBldmVudCByZWNvcmQgb3ZlcndyaXRlcyB0aGUgbGFzdCByZWNvcmQgaW4gdGhlIGJ1ZmZlciwgdGhlIE1pc3NlZEV2ZW50cwovLy8gICAgY291bnRlciBpbiB0aGUgTFdQQ0IgaXMgaW5jcmVtZW50ZWQsIHRoZSBoZWFkIHBvaW50ZXIgaXMgbm90IGFkdmFuY2VkLCBhbmQKLy8vICAgIDEgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSAwIGlzIHJldHVybmVkLgojZGVmaW5lIF9fbHdwaW5zMzIoREFUQTIsIERBVEExLCBGTEFHUykgXAogIChfX2J1aWx0aW5faWEzMl9sd3BpbnMzMigodW5zaWduZWQgaW50KSAoREFUQTIpLCAodW5zaWduZWQgaW50KSAoREFUQTEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIChGTEFHUykpKQoKLy8vIERlY3JlbWVudHMgdGhlIExXUCBwcm9ncmFtbWVkIHZhbHVlIHNhbXBsZSBldmVudCBjb3VudGVyLiBJZiB0aGUgcmVzdWx0IGlzCi8vLyAgICAgICAgbmVnYXRpdmUsIGluc2VydHMgYW4gZXZlbnQgcmVjb3JkIGludG8gdGhlIExXUCBldmVudCByaW5nIGJ1ZmZlciBpbiBtZW1vcnkKLy8vICAgICAgICBhbmQgYWR2YW5jZXMgdGhlIHJpbmcgYnVmZmVyIHBvaW50ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTFdQVkFMIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIERBVEEyCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyB6ZXJvLWV4dGVuZGVkIGFuZCBpbnNlcnRlZCBpbnRvIHRoZSA2NC1iaXQgRGF0YTIgZmllbGQuCi8vLyBccGFyYW0gREFUQTEKLy8vICAgIEEgMzItYml0IHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBEYXRhMSBmaWVsZC4KLy8vIFxwYXJhbSBGTEFHUwovLy8gICAgQSAzMi1iaXQgaW1tZWRpYXRlIHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBGbGFncyBmaWVsZC4KI2RlZmluZSBfX2x3cHZhbDMyKERBVEEyLCBEQVRBMSwgRkxBR1MpIFwKICAoX19idWlsdGluX2lhMzJfbHdwdmFsMzIoKHVuc2lnbmVkIGludCkgKERBVEEyKSwgKHVuc2lnbmVkIGludCkgKERBVEExKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KSAoRkxBR1MpKSkKCiNpZmRlZiBfX3g4Nl82NF9fCgovLy8gSW5zZXJ0cyBwcm9ncmFtbWVkIGV2ZW50IHJlY29yZCBpbnRvIHRoZSBMV1AgZXZlbnQgcmluZyBidWZmZXIKLy8vICAgICAgICBhbmQgYWR2YW5jZXMgdGhlIHJpbmcgYnVmZmVyIHBvaW50ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTFdQSU5TIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIERBVEEyCi8vLyAgICBBIDY0LWJpdCB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSA2NC1iaXQgRGF0YTIgZmllbGQuCi8vLyBccGFyYW0gREFUQTEKLy8vICAgIEEgMzItYml0IHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBEYXRhMSBmaWVsZC4KLy8vIFxwYXJhbSBGTEFHUwovLy8gICAgQSAzMi1iaXQgaW1tZWRpYXRlIHZhbHVlIGlzIGluc2VydGVkIGludG8gdGhlIDMyLWJpdCBGbGFncyBmaWVsZC4KLy8vIFxyZXR1cm5zIElmIHRoZSByaW5nIGJ1ZmZlciBpcyBmdWxsIGFuZCBMV1AgaXMgcnVubmluZyBpbiBTeW5jaHJvbml6ZWQgTW9kZSwKLy8vICAgIHRoZSBldmVudCByZWNvcmQgb3ZlcndyaXRlcyB0aGUgbGFzdCByZWNvcmQgaW4gdGhlIGJ1ZmZlciwgdGhlIE1pc3NlZEV2ZW50cwovLy8gICAgY291bnRlciBpbiB0aGUgTFdQQ0IgaXMgaW5jcmVtZW50ZWQsIHRoZSBoZWFkIHBvaW50ZXIgaXMgbm90IGFkdmFuY2VkLCBhbmQKLy8vICAgIDEgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSAwIGlzIHJldHVybmVkLgojZGVmaW5lIF9fbHdwaW5zNjQoREFUQTIsIERBVEExLCBGTEFHUykgXAogIChfX2J1aWx0aW5faWEzMl9sd3BpbnM2NCgodW5zaWduZWQgbG9uZyBsb25nKSAoREFUQTIpLCAodW5zaWduZWQgaW50KSAoREFUQTEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpIChGTEFHUykpKQoKLy8vIERlY3JlbWVudHMgdGhlIExXUCBwcm9ncmFtbWVkIHZhbHVlIHNhbXBsZSBldmVudCBjb3VudGVyLiBJZiB0aGUgcmVzdWx0IGlzCi8vLyAgICAgICAgbmVnYXRpdmUsIGluc2VydHMgYW4gZXZlbnQgcmVjb3JkIGludG8gdGhlIExXUCBldmVudCByaW5nIGJ1ZmZlciBpbiBtZW1vcnkKLy8vICAgICAgICBhbmQgYWR2YW5jZXMgdGhlIHJpbmcgYnVmZmVyIHBvaW50ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTFdQVkFMIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIERBVEEyCi8vLyAgICBBIDY0LWJpdCB2YWx1ZSBpcyBhbmQgaW5zZXJ0ZWQgaW50byB0aGUgNjQtYml0IERhdGEyIGZpZWxkLgovLy8gXHBhcmFtIERBVEExCi8vLyAgICBBIDMyLWJpdCB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRGF0YTEgZmllbGQuCi8vLyBccGFyYW0gRkxBR1MKLy8vICAgIEEgMzItYml0IGltbWVkaWF0ZSB2YWx1ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSAzMi1iaXQgRmxhZ3MgZmllbGQuCiNkZWZpbmUgX19sd3B2YWw2NChEQVRBMiwgREFUQTEsIEZMQUdTKSBcCiAgKF9fYnVpbHRpbl9pYTMyX2x3cHZhbDY0KCh1bnNpZ25lZCBsb25nIGxvbmcpIChEQVRBMiksICh1bnNpZ25lZCBpbnQpIChEQVRBMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGludCkgKEZMQUdTKSkpCgojZW5kaWYKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX0xXUElOVFJJTl9IICovCgBtbV9tYWxsb2MuaAAvKgogKiBpbmNsdWRlL29tcC5oLnZhcgogKi8KCgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKCiNpZm5kZWYgX19PTVBfSAojICAgZGVmaW5lIF9fT01QX0gKCiMgICBpbmNsdWRlIDxzdGRsaWIuaD4KIyAgIGluY2x1ZGUgPHN0ZGludC5oPgoKIyAgIGRlZmluZSBLTVBfVkVSU0lPTl9NQUpPUiAgICA1CiMgICBkZWZpbmUgS01QX1ZFUlNJT05fTUlOT1IgICAgMAojICAgZGVmaW5lIEtNUF9WRVJTSU9OX0JVSUxEICAgIDIwMTQwOTI2CiMgICBkZWZpbmUgS01QX0JVSUxEX0RBVEUgICAgICAgIk5vX1RpbWVzdGFtcCIKCiMgICBpZmRlZiBfX2NwbHVzcGx1cwogICAgZXh0ZXJuICJDIiB7CiMgICBlbmRpZgoKIyAgIGRlZmluZSBvbXBfc2V0X2FmZmluaXR5X2Zvcm1hdCAgIG9tcGNfc2V0X2FmZmluaXR5X2Zvcm1hdAojICAgZGVmaW5lIG9tcF9nZXRfYWZmaW5pdHlfZm9ybWF0ICAgb21wY19nZXRfYWZmaW5pdHlfZm9ybWF0CiMgICBkZWZpbmUgb21wX2Rpc3BsYXlfYWZmaW5pdHkgICAgICBvbXBjX2Rpc3BsYXlfYWZmaW5pdHkKIyAgIGRlZmluZSBvbXBfY2FwdHVyZV9hZmZpbml0eSAgICAgIG9tcGNfY2FwdHVyZV9hZmZpbml0eQoKIyAgIGlmIGRlZmluZWQoX1dJTjMyKQojICAgICAgIGRlZmluZSBfX0tBSV9LTVBDX0NPTlZFTlRJT04gX19jZGVjbAojICAgICAgIGlmbmRlZiBfX0tNUF9JTVAKIyAgICAgICAgICAgZGVmaW5lIF9fS01QX0lNUCBfX2RlY2xzcGVjKGRsbGltcG9ydCkKIyAgICAgICBlbmRpZgojICAgZWxzZQojICAgICAgIGRlZmluZSBfX0tBSV9LTVBDX0NPTlZFTlRJT04KIyAgICAgICBpZm5kZWYgX19LTVBfSU1QCiMgICAgICAgICAgIGRlZmluZSBfX0tNUF9JTVAKIyAgICAgICBlbmRpZgojICAgZW5kaWYKCiAgICAvKiBzY2hlZHVsZSBraW5kIGNvbnN0YW50cyAqLwogICAgdHlwZWRlZiBlbnVtIG9tcF9zY2hlZF90IHsKICAgICAgICBvbXBfc2NoZWRfc3RhdGljICA9IDEsCiAgICAgICAgb21wX3NjaGVkX2R5bmFtaWMgPSAyLAogICAgICAgIG9tcF9zY2hlZF9ndWlkZWQgID0gMywKICAgICAgICBvbXBfc2NoZWRfYXV0byAgICA9IDQsCiAgICAgICAgb21wX3NjaGVkX21vbm90b25pYyA9IDB4ODAwMDAwMDAKICAgIH0gb21wX3NjaGVkX3Q7CgogICAgLyogc2V0IEFQSSBmdW5jdGlvbnMgKi8KICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X251bV90aHJlYWRzIChpbnQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9zZXRfZHluYW1pYyAgICAgKGludCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3NldF9uZXN0ZWQgICAgICAoaW50KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X21heF9hY3RpdmVfbGV2ZWxzIChpbnQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9zZXRfc2NoZWR1bGUgICAgICAgICAgKG9tcF9zY2hlZF90LCBpbnQpOwoKICAgIC8qIHF1ZXJ5IEFQSSBmdW5jdGlvbnMgKi8KICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X251bV90aHJlYWRzICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9keW5hbWljICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbmVzdGVkICAgICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X21heF90aHJlYWRzICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF90aHJlYWRfbnVtICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbnVtX3Byb2NzICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfaW5fcGFyYWxsZWwgICAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2luX2ZpbmFsICAgICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfYWN0aXZlX2xldmVsICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9sZXZlbCAgICAgICAgICAgICAgICh2b2lkKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2FuY2VzdG9yX3RocmVhZF9udW0gKGludCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF90ZWFtX3NpemUgICAgICAgICAgIChpbnQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfdGhyZWFkX2xpbWl0ICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9tYXhfYWN0aXZlX2xldmVscyAgICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X3NjaGVkdWxlICAgICAgICAgICAgKG9tcF9zY2hlZF90ICosIGludCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X21heF90YXNrX3ByaW9yaXR5ICAgKHZvaWQpOwoKICAgIC8qIGxvY2sgQVBJIGZ1bmN0aW9ucyAqLwogICAgdHlwZWRlZiBzdHJ1Y3Qgb21wX2xvY2tfdCB7CiAgICAgICAgdm9pZCAqIF9sazsKICAgIH0gb21wX2xvY2tfdDsKCiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2luaXRfbG9jayAgICAob21wX2xvY2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X2xvY2sgICAgIChvbXBfbG9ja190ICopOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF91bnNldF9sb2NrICAgKG9tcF9sb2NrX3QgKik7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2Rlc3Ryb3lfbG9jayAob21wX2xvY2tfdCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGVzdF9sb2NrICAgIChvbXBfbG9ja190ICopOwoKICAgIC8qIG5lc3RlZCBsb2NrIEFQSSBmdW5jdGlvbnMgKi8KICAgIHR5cGVkZWYgc3RydWN0IG9tcF9uZXN0X2xvY2tfdCB7CiAgICAgICAgdm9pZCAqIF9sazsKICAgIH0gb21wX25lc3RfbG9ja190OwoKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfaW5pdF9uZXN0X2xvY2sgICAgKG9tcF9uZXN0X2xvY2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfc2V0X25lc3RfbG9jayAgICAgKG9tcF9uZXN0X2xvY2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdW5zZXRfbmVzdF9sb2NrICAgKG9tcF9uZXN0X2xvY2tfdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZGVzdHJveV9uZXN0X2xvY2sgKG9tcF9uZXN0X2xvY2tfdCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGVzdF9uZXN0X2xvY2sgICAgKG9tcF9uZXN0X2xvY2tfdCAqKTsKCiAgICAvKiBPcGVuTVAgNS4wICBTeW5jaHJvbml6YXRpb24gaGludHMqLwogICAgdHlwZWRlZiBlbnVtIG9tcF9zeW5jX2hpbnRfdCB7CiAgICAgICAgb21wX3N5bmNfaGludF9ub25lICAgICAgICAgICA9IDAsCiAgICAgICAgb21wX2xvY2tfaGludF9ub25lICAgICAgICAgICA9IG9tcF9zeW5jX2hpbnRfbm9uZSwKICAgICAgICBvbXBfc3luY19oaW50X3VuY29udGVuZGVkICAgID0gMSwKICAgICAgICBvbXBfbG9ja19oaW50X3VuY29udGVuZGVkICAgID0gb21wX3N5bmNfaGludF91bmNvbnRlbmRlZCwKICAgICAgICBvbXBfc3luY19oaW50X2NvbnRlbmRlZCAgICAgID0gKDE8PDEpLAogICAgICAgIG9tcF9sb2NrX2hpbnRfY29udGVuZGVkICAgICAgPSBvbXBfc3luY19oaW50X2NvbnRlbmRlZCwKICAgICAgICBvbXBfc3luY19oaW50X25vbnNwZWN1bGF0aXZlID0gKDE8PDIpLAogICAgICAgIG9tcF9sb2NrX2hpbnRfbm9uc3BlY3VsYXRpdmUgPSBvbXBfc3luY19oaW50X25vbnNwZWN1bGF0aXZlLAogICAgICAgIG9tcF9zeW5jX2hpbnRfc3BlY3VsYXRpdmUgICAgPSAoMTw8MyksCiAgICAgICAgb21wX2xvY2tfaGludF9zcGVjdWxhdGl2ZSAgICA9IG9tcF9zeW5jX2hpbnRfc3BlY3VsYXRpdmUsCiAgICAgICAga21wX2xvY2tfaGludF9obGUgICAgICAgICAgICA9ICgxPDwxNiksCiAgICAgICAga21wX2xvY2tfaGludF9ydG0gICAgICAgICAgICA9ICgxPDwxNyksCiAgICAgICAga21wX2xvY2tfaGludF9hZGFwdGl2ZSAgICAgICA9ICgxPDwxOCkKICAgIH0gb21wX3N5bmNfaGludF90OwoKICAgIC8qIGxvY2sgaGludCB0eXBlIGZvciBkeW5hbWljIHVzZXIgbG9jayAqLwogICAgdHlwZWRlZiBvbXBfc3luY19oaW50X3Qgb21wX2xvY2tfaGludF90OwoKICAgIC8qIGhpbnRlZCBsb2NrIGluaXRpYWxpemVycyAqLwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9pbml0X2xvY2tfd2l0aF9oaW50KG9tcF9sb2NrX3QgKiwgb21wX2xvY2tfaGludF90KTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfaW5pdF9uZXN0X2xvY2tfd2l0aF9oaW50KG9tcF9uZXN0X2xvY2tfdCAqLCBvbXBfbG9ja19oaW50X3QpOwoKICAgIC8qIHRpbWUgQVBJIGZ1bmN0aW9ucyAqLwogICAgZXh0ZXJuIGRvdWJsZSBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfd3RpbWUgKHZvaWQpOwogICAgZXh0ZXJuIGRvdWJsZSBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfd3RpY2sgKHZvaWQpOwoKICAgIC8qIE9wZW5NUCA0LjAgKi8KICAgIGV4dGVybiBpbnQgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9kZWZhdWx0X2RldmljZSAodm9pZCk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9zZXRfZGVmYXVsdF9kZXZpY2UgKGludCk7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9pc19pbml0aWFsX2RldmljZSAodm9pZCk7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfbnVtX2RldmljZXMgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X251bV90ZWFtcyAodm9pZCk7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfdGVhbV9udW0gKHZvaWQpOwogICAgZXh0ZXJuIGludCAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2NhbmNlbGxhdGlvbiAodm9pZCk7CgogICAgLyogT3Blbk1QIDQuNSAqLwogICAgZXh0ZXJuIGludCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9pbml0aWFsX2RldmljZSAodm9pZCk7CiAgICBleHRlcm4gdm9pZCogX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X2FsbG9jKHNpemVfdCwgaW50KTsKICAgIGV4dGVybiB2b2lkICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfZnJlZSh2b2lkICosIGludCk7CiAgICBleHRlcm4gaW50ICAgX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfdGFyZ2V0X2lzX3ByZXNlbnQoY29uc3Qgdm9pZCAqLCBpbnQpOwogICAgZXh0ZXJuIGludCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3RhcmdldF9tZW1jcHkodm9pZCAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgc2l6ZV90LCBzaXplX3QsIGludCwgaW50KTsKICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfbWVtY3B5X3JlY3Qodm9pZCAqLCBjb25zdCB2b2lkICosIHNpemVfdCwgaW50LCBjb25zdCBzaXplX3QgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgKiwgY29uc3Qgc2l6ZV90ICosIGNvbnN0IHNpemVfdCAqLCBjb25zdCBzaXplX3QgKiwgaW50LCBpbnQpOwogICAgZXh0ZXJuIGludCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3RhcmdldF9hc3NvY2lhdGVfcHRyKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwgaW50KTsKICAgIGV4dGVybiBpbnQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfZGlzYXNzb2NpYXRlX3B0cihjb25zdCB2b2lkICosIGludCk7CgogICAgLyogT3Blbk1QIDUuMCAqLwogICAgZXh0ZXJuIGludCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9kZXZpY2VfbnVtICh2b2lkKTsKICAgIHR5cGVkZWYgdm9pZCAqIG9tcF9kZXBlbmRfdDsKCiAgICAvKiBPcGVuTVAgNS4xIGludGVyb3AgKi8KICAgIHR5cGVkZWYgaW50cHRyX3Qgb21wX2ludHB0cl90OwoKICAgIC8qIDAuLm9tcF9nZXRfbnVtX2ludGVyb3BfcHJvcGVydGllcygpLTEgYXJlIHJlc2VydmVkIGZvciBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHByb3BlcnRpZXMgKi8KICAgIHR5cGVkZWYgZW51bSBvbXBfaW50ZXJvcF9wcm9wZXJ0eSB7CiAgICAgICAgb21wX2lwcl9mcl9pZCA9IC0xLAogICAgICAgIG9tcF9pcHJfZnJfbmFtZSA9IC0yLAogICAgICAgIG9tcF9pcHJfdmVuZG9yID0gLTMsCiAgICAgICAgb21wX2lwcl92ZW5kb3JfbmFtZSA9IC00LAogICAgICAgIG9tcF9pcHJfZGV2aWNlX251bSA9IC01LAogICAgICAgIG9tcF9pcHJfcGxhdGZvcm0gPSAtNiwKICAgICAgICBvbXBfaXByX2RldmljZSA9IC03LAogICAgICAgIG9tcF9pcHJfZGV2aWNlX2NvbnRleHQgPSAtOCwKICAgICAgICBvbXBfaXByX3RhcmdldHN5bmMgPSAtOSwKICAgICAgICBvbXBfaXByX2ZpcnN0ID0gLTkKICAgIH0gb21wX2ludGVyb3BfcHJvcGVydHlfdDsKCiAgICAjZGVmaW5lIG9tcF9pbnRlcm9wX25vbmUgMAoKICAgIHR5cGVkZWYgZW51bSBvbXBfaW50ZXJvcF9yYyB7CiAgICAgICAgb21wX2lyY19ub192YWx1ZSA9IDEsCiAgICAgICAgb21wX2lyY19zdWNjZXNzID0gMCwKICAgICAgICBvbXBfaXJjX2VtcHR5ID0gLTEsCiAgICAgICAgb21wX2lyY19vdXRfb2ZfcmFuZ2UgPSAtMiwKICAgICAgICBvbXBfaXJjX3R5cGVfaW50ID0gLTMsCiAgICAgICAgb21wX2lyY190eXBlX3B0ciA9IC00LAogICAgICAgIG9tcF9pcmNfdHlwZV9zdHIgPSAtNSwKICAgICAgICBvbXBfaXJjX290aGVyID0gLTYKICAgIH0gb21wX2ludGVyb3BfcmNfdDsKCiAgICB0eXBlZGVmIGVudW0gb21wX2ludGVyb3BfZnIgewogICAgICAgIG9tcF9pZnJfY3VkYSA9IDEsCiAgICAgICAgb21wX2lmcl9jdWRhX2RyaXZlciA9IDIsCiAgICAgICAgb21wX2lmcl9vcGVuY2wgPSAzLAogICAgICAgIG9tcF9pZnJfc3ljbCA9IDQsCiAgICAgICAgb21wX2lmcl9oaXAgPSA1LAogICAgICAgIG9tcF9pZnJfbGV2ZWxfemVybyA9IDYsCiAgICAgICAgb21wX2lmcl9sYXN0ID0gNwogICAgfSBvbXBfaW50ZXJvcF9mcl90OwoKICAgIHR5cGVkZWYgdm9pZCAqIG9tcF9pbnRlcm9wX3Q7CgogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfbnVtX2ludGVyb3BfcHJvcGVydGllc2Agcm91dGluZSByZXRyaWV2ZXMgdGhlIG51bWJlciBvZiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHByb3BlcnRpZXMgYXZhaWxhYmxlIGZvciBhbiBgb21wX2ludGVyb3BfdGAgb2JqZWN0LgogICAgICovCiAgICBleHRlcm4gaW50ICAgICAgICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9udW1faW50ZXJvcF9wcm9wZXJ0aWVzKGNvbnN0IG9tcF9pbnRlcm9wX3QpOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfaW50ZXJvcF9pbnRgIHJvdXRpbmUgcmV0cmlldmVzIGFuIGludGVnZXIgcHJvcGVydHkgZnJvbSBhbiBgb21wX2ludGVyb3BfdGAgb2JqZWN0LgogICAgICovCiAgICBleHRlcm4gb21wX2ludHB0cl90IF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9pbnRlcm9wX2ludChjb25zdCBvbXBfaW50ZXJvcF90LCBvbXBfaW50ZXJvcF9wcm9wZXJ0eV90LCBpbnQgKik7CiAgICAvKiEKICAgICAqIFRoZSBgb21wX2dldF9pbnRlcm9wX3B0cmAgcm91dGluZSByZXRyaWV2ZXMgYSBwb2ludGVyIHByb3BlcnR5IGZyb20gYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIHZvaWQgKiAgICAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW50ZXJvcF9wdHIoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcHJvcGVydHlfdCwgaW50ICopOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfaW50ZXJvcF9zdHJgIHJvdXRpbmUgcmV0cmlldmVzIGEgc3RyaW5nIHByb3BlcnR5IGZyb20gYW4gYG9tcF9pbnRlcm9wX3RgIG9iamVjdC4KICAgICAqLwogICAgZXh0ZXJuIGNvbnN0IGNoYXIgKiBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF9nZXRfaW50ZXJvcF9zdHIoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcHJvcGVydHlfdCwgaW50ICopOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfaW50ZXJvcF9uYW1lYCByb3V0aW5lIHJldHJpZXZlcyBhIHByb3BlcnR5IG5hbWUgZnJvbSBhbiBgb21wX2ludGVyb3BfdGAgb2JqZWN0LgogICAgICovCiAgICBleHRlcm4gY29uc3QgY2hhciAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9pbnRlcm9wX25hbWUoY29uc3Qgb21wX2ludGVyb3BfdCwgb21wX2ludGVyb3BfcHJvcGVydHlfdCk7CiAgICAvKiEKICAgICAqIFRoZSBgb21wX2dldF9pbnRlcm9wX3R5cGVfZGVzY2Agcm91dGluZSByZXRyaWV2ZXMgYSBkZXNjcmlwdGlvbiBvZiB0aGUgdHlwZSBvZiBhIHByb3BlcnR5IGFzc29jaWF0ZWQgd2l0aCBhbiBgb21wX2ludGVyb3BfdGAgb2JqZWN0LgogICAgICovCiAgICBleHRlcm4gY29uc3QgY2hhciAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX2dldF9pbnRlcm9wX3R5cGVfZGVzYyhjb25zdCBvbXBfaW50ZXJvcF90LCBvbXBfaW50ZXJvcF9wcm9wZXJ0eV90KTsKICAgIC8qIQogICAgICogVGhlIGBvbXBfZ2V0X2ludGVyb3BfcmNfZGVzY2Agcm91dGluZSByZXRyaWV2ZXMgYSBkZXNjcmlwdGlvbiBvZiB0aGUgcmV0dXJuIGNvZGUgYXNzb2NpYXRlZCB3aXRoIGFuIGBvbXBfaW50ZXJvcF90YCBvYmplY3QuCiAgICAgKi8KICAgIGV4dGVybiBjb25zdCBjaGFyICogX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X2ludGVyb3BfcmNfZGVzYyhjb25zdCBvbXBfaW50ZXJvcF90LCBvbXBfaW50ZXJvcF9yY190KTsKCiAgICAvKiBPcGVuTVAgNS4xIGRldmljZSBtZW1vcnkgcm91dGluZXMgKi8KCiAgICAvKiEKICAgICAqIFRoZSBgb21wX3RhcmdldF9tZW1jcHlfYXN5bmNgIHJvdXRpbmUgYXN5bmNocm9ub3VzbHkgcGVyZm9ybXMgYSBjb3B5IGJldHdlZW4gYW55IGNvbWJpbmF0aW9uIG9mIGhvc3QgYW5kIGRldmljZSBwb2ludGVycy4KICAgICAqLwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfbWVtY3B5X2FzeW5jKHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgaW50LCBvbXBfZGVwZW5kX3QgKik7CiAgICAvKiEKICAgICAqIFRoZSBgb21wX3RhcmdldF9tZW1jcHlfcmVjdF9hc3luY2Agcm91dGluZSBhc3luY2hyb25vdXNseSBwZXJmb3JtcyBhIGNvcHkgYmV0d2VlbiBhbnkgY29tYmluYXRpb24gb2YgaG9zdCBhbmQgZGV2aWNlIHBvaW50ZXJzLgogICAgICovCiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAgb21wX3RhcmdldF9tZW1jcHlfcmVjdF9hc3luYyh2b2lkICosIGNvbnN0IHZvaWQgKiwgc2l6ZV90LCBpbnQsIGNvbnN0IHNpemVfdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplX3QgKiwgY29uc3Qgc2l6ZV90ICosIGNvbnN0IHNpemVfdCAqLCBjb25zdCBzaXplX3QgKiwgaW50LCBpbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgb21wX2RlcGVuZF90ICopOwogICAgLyohCiAgICAgKiBUaGUgYG9tcF9nZXRfbWFwcGVkX3B0cmAgcm91dGluZSByZXR1cm5zIHRoZSBkZXZpY2UgcG9pbnRlciB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIGhvc3QgcG9pbnRlciBmb3IgYSBnaXZlbiBkZXZpY2UuCiAgICAgKi8KICAgIGV4dGVybiB2b2lkICogX19LQUlfS01QQ19DT05WRU5USU9OICBvbXBfZ2V0X21hcHBlZF9wdHIoY29uc3Qgdm9pZCAqLCBpbnQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIG9tcF90YXJnZXRfaXNfYWNjZXNzaWJsZShjb25zdCB2b2lkICosIHNpemVfdCwgaW50KTsKCiAgICAvKiBrbXAgQVBJIGZ1bmN0aW9ucyAqLwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9nZXRfc3RhY2tzaXplICAgICAgICAgICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X3N0YWNrc2l6ZSAgICAgICAgICAoaW50KTsKICAgIGV4dGVybiBzaXplX3QgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZ2V0X3N0YWNrc2l6ZV9zICAgICAgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9zdGFja3NpemVfcyAgICAgICAgKHNpemVfdCk7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2dldF9ibG9ja3RpbWUgICAgICAgICAgKHZvaWQpOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9nZXRfbGlicmFyeSAgICAgICAgICAgICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2Jsb2NrdGltZSAgICAgICAgICAoaW50KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2xpYnJhcnkgICAgICAgICAgICAoaW50KTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2xpYnJhcnlfc2VyaWFsICAgICAodm9pZCk7CiAgICBleHRlcm4gdm9pZCAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9saWJyYXJ5X3R1cm5hcm91bmQgKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfbGlicmFyeV90aHJvdWdocHV0ICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2RlZmF1bHRzICAgICAgICAgICAoY2hhciBjb25zdCAqKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X2Rpc3BfbnVtX2J1ZmZlcnMgICAoaW50KTsKCiAgICAvKiBJbnRlbCBhZmZpbml0eSBBUEkgKi8KICAgIHR5cGVkZWYgdm9pZCAqIGttcF9hZmZpbml0eV9tYXNrX3Q7CgogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfYWZmaW5pdHkgICAgICAgICAgICAgKGttcF9hZmZpbml0eV9tYXNrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2dldF9hZmZpbml0eSAgICAgICAgICAgICAoa21wX2FmZmluaXR5X21hc2tfdCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZ2V0X2FmZmluaXR5X21heF9wcm9jICAgICh2b2lkKTsKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfY3JlYXRlX2FmZmluaXR5X21hc2sgICAgIChrbXBfYWZmaW5pdHlfbWFza190ICopOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9kZXN0cm95X2FmZmluaXR5X21hc2sgICAgKGttcF9hZmZpbml0eV9tYXNrX3QgKik7CiAgICBleHRlcm4gaW50ICAgIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX3NldF9hZmZpbml0eV9tYXNrX3Byb2MgICAoaW50LCBrbXBfYWZmaW5pdHlfbWFza190ICopOwogICAgZXh0ZXJuIGludCAgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF91bnNldF9hZmZpbml0eV9tYXNrX3Byb2MgKGludCwga21wX2FmZmluaXR5X21hc2tfdCAqKTsKICAgIGV4dGVybiBpbnQgICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfZ2V0X2FmZmluaXR5X21hc2tfcHJvYyAgIChpbnQsIGttcF9hZmZpbml0eV9tYXNrX3QgKik7CgogICAgLyogT3Blbk1QIDQuMCBhZmZpbml0eSBBUEkgKi8KICAgIHR5cGVkZWYgZW51bSBvbXBfcHJvY19iaW5kX3QgewogICAgICAgIG9tcF9wcm9jX2JpbmRfZmFsc2UgPSAwLAogICAgICAgIG9tcF9wcm9jX2JpbmRfdHJ1ZSA9IDEsCiAgICAgICAgb21wX3Byb2NfYmluZF9tYXN0ZXIgPSAyLAogICAgICAgIG9tcF9wcm9jX2JpbmRfY2xvc2UgPSAzLAogICAgICAgIG9tcF9wcm9jX2JpbmRfc3ByZWFkID0gNAogICAgfSBvbXBfcHJvY19iaW5kX3Q7CgogICAgZXh0ZXJuIG9tcF9wcm9jX2JpbmRfdCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wcm9jX2JpbmQgKHZvaWQpOwoKICAgIC8qIE9wZW5NUCA0LjUgYWZmaW5pdHkgQVBJICovCiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9udW1fcGxhY2VzICh2b2lkKTsKICAgIGV4dGVybiBpbnQgIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X3BsYWNlX251bV9wcm9jcyAoaW50KTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X3BsYWNlX3Byb2NfaWRzIChpbnQsIGludCAqKTsKICAgIGV4dGVybiBpbnQgIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X3BsYWNlX251bSAodm9pZCk7CiAgICBleHRlcm4gaW50ICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wYXJ0aXRpb25fbnVtX3BsYWNlcyAodm9pZCk7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9wYXJ0aXRpb25fcGxhY2VfbnVtcyAoaW50ICopOwoKICAgIGV4dGVybiB2b2lkICogX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfbWFsbG9jICAoc2l6ZV90KTsKICAgIGV4dGVybiB2b2lkICogX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfYWxpZ25lZF9tYWxsb2MgIChzaXplX3QsIHNpemVfdCk7CiAgICBleHRlcm4gdm9pZCAqIF9fS0FJX0tNUENfQ09OVkVOVElPTiAga21wX2NhbGxvYyAgKHNpemVfdCwgc2l6ZV90KTsKICAgIGV4dGVybiB2b2lkICogX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfcmVhbGxvYyAodm9pZCAqLCBzaXplX3QpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9mcmVlICAgICh2b2lkICopOwoKICAgIGV4dGVybiB2b2lkICAgX19LQUlfS01QQ19DT05WRU5USU9OICBrbXBfc2V0X3dhcm5pbmdzX29uKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgICBfX0tBSV9LTVBDX0NPTlZFTlRJT04gIGttcF9zZXRfd2FybmluZ3Nfb2ZmKHZvaWQpOwoKICAgIC8qIE9wZW5NUCA1LjAgVG9vbCBDb250cm9sICovCiAgICB0eXBlZGVmIGVudW0gb21wX2NvbnRyb2xfdG9vbF9yZXN1bHRfdCB7CiAgICAgICAgb21wX2NvbnRyb2xfdG9vbF9ub3Rvb2wgPSAtMiwKICAgICAgICBvbXBfY29udHJvbF90b29sX25vY2FsbGJhY2sgPSAtMSwKICAgICAgICBvbXBfY29udHJvbF90b29sX3N1Y2Nlc3MgPSAwLAogICAgICAgIG9tcF9jb250cm9sX3Rvb2xfaWdub3JlZCA9IDEKICAgIH0gb21wX2NvbnRyb2xfdG9vbF9yZXN1bHRfdDsKCiAgICB0eXBlZGVmIGVudW0gb21wX2NvbnRyb2xfdG9vbF90IHsKICAgICAgICBvbXBfY29udHJvbF90b29sX3N0YXJ0ID0gMSwKICAgICAgICBvbXBfY29udHJvbF90b29sX3BhdXNlID0gMiwKICAgICAgICBvbXBfY29udHJvbF90b29sX2ZsdXNoID0gMywKICAgICAgICBvbXBfY29udHJvbF90b29sX2VuZCA9IDQKICAgIH0gb21wX2NvbnRyb2xfdG9vbF90OwoKICAgIGV4dGVybiBpbnQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9jb250cm9sX3Rvb2woaW50LCBpbnQsIHZvaWQqKTsKCiAgICAvKiBPcGVuTVAgNS4wIE1lbW9yeSBNYW5hZ2VtZW50ICovCiAgICB0eXBlZGVmIHVpbnRwdHJfdCBvbXBfdWludHB0cl90OwoKICAgIHR5cGVkZWYgZW51bSB7CiAgICAgICAgb21wX2F0a19zeW5jX2hpbnQgPSAxLAogICAgICAgIG9tcF9hdGtfYWxpZ25tZW50ID0gMiwKICAgICAgICBvbXBfYXRrX2FjY2VzcyA9IDMsCiAgICAgICAgb21wX2F0a19wb29sX3NpemUgPSA0LAogICAgICAgIG9tcF9hdGtfZmFsbGJhY2sgPSA1LAogICAgICAgIG9tcF9hdGtfZmJfZGF0YSA9IDYsCiAgICAgICAgb21wX2F0a19waW5uZWQgPSA3LAogICAgICAgIG9tcF9hdGtfcGFydGl0aW9uID0gOAogICAgfSBvbXBfYWxsb2N0cmFpdF9rZXlfdDsKCiAgICB0eXBlZGVmIGVudW0gewogICAgICAgIG9tcF9hdHZfZmFsc2UgPSAwLAogICAgICAgIG9tcF9hdHZfdHJ1ZSA9IDEsCiAgICAgICAgb21wX2F0dl9jb250ZW5kZWQgPSAzLAogICAgICAgIG9tcF9hdHZfdW5jb250ZW5kZWQgPSA0LAogICAgICAgIG9tcF9hdHZfc2VyaWFsaXplZCA9IDUsCiAgICAgICAgb21wX2F0dl9zZXF1ZW50aWFsID0gb21wX2F0dl9zZXJpYWxpemVkLCAvLyAoZGVwcmVjYXRlZCkKICAgICAgICBvbXBfYXR2X3ByaXZhdGUgPSA2LAogICAgICAgIG9tcF9hdHZfYWxsID0gNywKICAgICAgICBvbXBfYXR2X3RocmVhZCA9IDgsCiAgICAgICAgb21wX2F0dl9wdGVhbSA9IDksCiAgICAgICAgb21wX2F0dl9jZ3JvdXAgPSAxMCwKICAgICAgICBvbXBfYXR2X2RlZmF1bHRfbWVtX2ZiID0gMTEsCiAgICAgICAgb21wX2F0dl9udWxsX2ZiID0gMTIsCiAgICAgICAgb21wX2F0dl9hYm9ydF9mYiA9IDEzLAogICAgICAgIG9tcF9hdHZfYWxsb2NhdG9yX2ZiID0gMTQsCiAgICAgICAgb21wX2F0dl9lbnZpcm9ubWVudCA9IDE1LAogICAgICAgIG9tcF9hdHZfbmVhcmVzdCA9IDE2LAogICAgICAgIG9tcF9hdHZfYmxvY2tlZCA9IDE3LAogICAgICAgIG9tcF9hdHZfaW50ZXJsZWF2ZWQgPSAxOAogICAgfSBvbXBfYWxsb2N0cmFpdF92YWx1ZV90OwogICAgI2RlZmluZSBvbXBfYXR2X2RlZmF1bHQgKChvbXBfdWludHB0cl90KS0xKQoKICAgIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICBvbXBfYWxsb2N0cmFpdF9rZXlfdCBrZXk7CiAgICAgICAgb21wX3VpbnRwdHJfdCB2YWx1ZTsKICAgIH0gb21wX2FsbG9jdHJhaXRfdDsKCiMgICBpZiBkZWZpbmVkKF9XSU4zMikKICAgIC8vIE9uIFdpbmRvd3MgY2wgYW5kIGljbCBkbyBub3Qgc3VwcG9ydCA2NC1iaXQgZW51bSwgbGV0J3MgdXNlIGludGVnZXIgdGhlbi4KICAgIHR5cGVkZWYgb21wX3VpbnRwdHJfdCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90OwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9udWxsX2FsbG9jYXRvcjsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBvbXBfZGVmYXVsdF9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX2xhcmdlX2NhcF9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX2NvbnN0X21lbV9hbGxvYzsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBvbXBfaGlnaF9id19tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX2xvd19sYXRfbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9jZ3JvdXBfbWVtX2FsbG9jOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IG9tcF9wdGVhbV9tZW1fYWxsb2M7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgY29uc3Qgb21wX3RocmVhZF9tZW1fYWxsb2M7CiAgICAvKiBQcmV2aWV3IG9mIHRhcmdldCBtZW1vcnkgc3VwcG9ydCAqLwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGNvbnN0IGxsdm1fb21wX3RhcmdldF9ob3N0X21lbV9hbGxvYzsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBsbHZtX29tcF90YXJnZXRfc2hhcmVkX21lbV9hbGxvYzsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBjb25zdCBsbHZtX29tcF90YXJnZXRfZGV2aWNlX21lbV9hbGxvYzsKCiAgICB0eXBlZGVmIG9tcF91aW50cHRyX3Qgb21wX21lbXNwYWNlX2hhbmRsZV90OwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3Qgb21wX2RlZmF1bHRfbWVtX3NwYWNlOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3Qgb21wX2xhcmdlX2NhcF9tZW1fc3BhY2U7CiAgICBleHRlcm4gX19LTVBfSU1QIG9tcF9tZW1zcGFjZV9oYW5kbGVfdCBjb25zdCBvbXBfY29uc3RfbWVtX3NwYWNlOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3Qgb21wX2hpZ2hfYndfbWVtX3NwYWNlOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3Qgb21wX2xvd19sYXRfbWVtX3NwYWNlOwogICAgLyogUHJldmlldyBvZiB0YXJnZXQgbWVtb3J5IHN1cHBvcnQgKi8KICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IGxsdm1fb21wX3RhcmdldF9ob3N0X21lbV9zcGFjZTsKICAgIGV4dGVybiBfX0tNUF9JTVAgb21wX21lbXNwYWNlX2hhbmRsZV90IGNvbnN0IGxsdm1fb21wX3RhcmdldF9zaGFyZWRfbWVtX3NwYWNlOwogICAgZXh0ZXJuIF9fS01QX0lNUCBvbXBfbWVtc3BhY2VfaGFuZGxlX3QgY29uc3QgbGx2bV9vbXBfdGFyZ2V0X2RldmljZV9tZW1fc3BhY2U7CiMgICBlbHNlCiMgICAgICAgaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzCiAgICB0eXBlZGVmIGVudW0gb21wX2FsbG9jYXRvcl9oYW5kbGVfdCA6IG9tcF91aW50cHRyX3QKIyAgICAgICBlbHNlCiAgICB0eXBlZGVmIGVudW0gb21wX2FsbG9jYXRvcl9oYW5kbGVfdAojICAgICAgIGVuZGlmCiAgICB7CiAgICAgIG9tcF9udWxsX2FsbG9jYXRvciA9IDAsCiAgICAgIG9tcF9kZWZhdWx0X21lbV9hbGxvYyA9IDEsCiAgICAgIG9tcF9sYXJnZV9jYXBfbWVtX2FsbG9jID0gMiwKICAgICAgb21wX2NvbnN0X21lbV9hbGxvYyA9IDMsCiAgICAgIG9tcF9oaWdoX2J3X21lbV9hbGxvYyA9IDQsCiAgICAgIG9tcF9sb3dfbGF0X21lbV9hbGxvYyA9IDUsCiAgICAgIG9tcF9jZ3JvdXBfbWVtX2FsbG9jID0gNiwKICAgICAgb21wX3B0ZWFtX21lbV9hbGxvYyA9IDcsCiAgICAgIG9tcF90aHJlYWRfbWVtX2FsbG9jID0gOCwKICAgICAgLyogUHJldmlldyBvZiB0YXJnZXQgbWVtb3J5IHN1cHBvcnQgKi8KICAgICAgbGx2bV9vbXBfdGFyZ2V0X2hvc3RfbWVtX2FsbG9jID0gMTAwLAogICAgICBsbHZtX29tcF90YXJnZXRfc2hhcmVkX21lbV9hbGxvYyA9IDEwMSwKICAgICAgbGx2bV9vbXBfdGFyZ2V0X2RldmljZV9tZW1fYWxsb2MgPSAxMDIsCiAgICAgIEtNUF9BTExPQ0FUT1JfTUFYX0hBTkRMRSA9IFVJTlRQVFJfTUFYCiAgICB9IG9tcF9hbGxvY2F0b3JfaGFuZGxlX3Q7CiMgICAgICAgaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzCiAgICB0eXBlZGVmIGVudW0gb21wX21lbXNwYWNlX2hhbmRsZV90IDogb21wX3VpbnRwdHJfdAojICAgICAgIGVsc2UKICAgIHR5cGVkZWYgZW51bSBvbXBfbWVtc3BhY2VfaGFuZGxlX3QKIyAgICAgICBlbmRpZgogICAgewogICAgICBvbXBfZGVmYXVsdF9tZW1fc3BhY2UgPSAwLAogICAgICBvbXBfbGFyZ2VfY2FwX21lbV9zcGFjZSA9IDEsCiAgICAgIG9tcF9jb25zdF9tZW1fc3BhY2UgPSAyLAogICAgICBvbXBfaGlnaF9id19tZW1fc3BhY2UgPSAzLAogICAgICBvbXBfbG93X2xhdF9tZW1fc3BhY2UgPSA0LAogICAgICAvKiBQcmV2aWV3IG9mIHRhcmdldCBtZW1vcnkgc3VwcG9ydCAqLwogICAgICBsbHZtX29tcF90YXJnZXRfaG9zdF9tZW1fc3BhY2UgPSAxMDAsCiAgICAgIGxsdm1fb21wX3RhcmdldF9zaGFyZWRfbWVtX3NwYWNlID0gMTAxLAogICAgICBsbHZtX29tcF90YXJnZXRfZGV2aWNlX21lbV9zcGFjZSA9IDEwMiwKICAgICAgS01QX01FTVNQQUNFX01BWF9IQU5ETEUgPSBVSU5UUFRSX01BWAogICAgfSBvbXBfbWVtc3BhY2VfaGFuZGxlX3Q7CiMgICBlbmRpZgogICAgZXh0ZXJuIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9pbml0X2FsbG9jYXRvcihvbXBfbWVtc3BhY2VfaGFuZGxlX3QgbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudHJhaXRzLCBvbXBfYWxsb2N0cmFpdF90IHRyYWl0c1tdKTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZGVzdHJveV9hbGxvY2F0b3Iob21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhbGxvY2F0b3IpOwoKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfc2V0X2RlZmF1bHRfYWxsb2NhdG9yKG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYSk7CiAgICBleHRlcm4gb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2dldF9kZWZhdWx0X2FsbG9jYXRvcih2b2lkKTsKIyAgIGlmZGVmIF9fY3BsdXNwbHVzCiAgICBleHRlcm4gdm9pZCAqX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9hbGxvYyhzaXplX3Qgc2l6ZSwgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhID0gb21wX251bGxfYWxsb2NhdG9yKTsKICAgIGV4dGVybiB2b2lkICpfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2NhbGxvYyhzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplLCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGEgPSBvbXBfbnVsbF9hbGxvY2F0b3IpOwogICAgZXh0ZXJuIHZvaWQgKl9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfcmVhbGxvYyh2b2lkICpwdHIsIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGFsbG9jYXRvciA9IG9tcF9udWxsX2FsbG9jYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBmcmVlX2FsbG9jYXRvciA9IG9tcF9udWxsX2FsbG9jYXRvcik7CiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2ZyZWUodm9pZCAqIHB0ciwgb21wX2FsbG9jYXRvcl9oYW5kbGVfdCBhID0gb21wX251bGxfYWxsb2NhdG9yKTsKIyAgIGVsc2UKICAgIGV4dGVybiB2b2lkICpfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2FsbG9jKHNpemVfdCBzaXplLCBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGEpOwogICAgZXh0ZXJuIHZvaWQgKl9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfY2FsbG9jKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUsIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYSk7CiAgICBleHRlcm4gdm9pZCAqX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9yZWFsbG9jKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUsIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYWxsb2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBfYWxsb2NhdG9yX2hhbmRsZV90IGZyZWVfYWxsb2NhdG9yKTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZnJlZSh2b2lkICpwdHIsIG9tcF9hbGxvY2F0b3JfaGFuZGxlX3QgYSk7CiMgICBlbmRpZgoKICAgIC8qIE9wZW5NUCA1LjAgQWZmaW5pdHkgRm9ybWF0ICovCiAgICBleHRlcm4gdm9pZCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX3NldF9hZmZpbml0eV9mb3JtYXQoY2hhciBjb25zdCAqKTsKICAgIGV4dGVybiBzaXplX3QgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfYWZmaW5pdHlfZm9ybWF0KGNoYXIgKiwgc2l6ZV90KTsKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZGlzcGxheV9hZmZpbml0eShjaGFyIGNvbnN0ICopOwogICAgZXh0ZXJuIHNpemVfdCBfX0tBSV9LTVBDX0NPTlZFTlRJT04gb21wX2NhcHR1cmVfYWZmaW5pdHkoY2hhciAqLCBzaXplX3QsIGNoYXIgY29uc3QgKik7CgogICAgLyogT3Blbk1QIDUuMCBldmVudHMgKi8KIyAgIGlmIGRlZmluZWQoX1dJTjMyKQogICAgLy8gT24gV2luZG93cyBjbCBhbmQgaWNsIGRvIG5vdCBzdXBwb3J0IDY0LWJpdCBlbnVtLCBsZXQncyB1c2UgaW50ZWdlciB0aGVuLgogICAgdHlwZWRlZiBvbXBfdWludHB0cl90IG9tcF9ldmVudF9oYW5kbGVfdDsKIyAgIGVsc2UKICAgIHR5cGVkZWYgZW51bSBvbXBfZXZlbnRfaGFuZGxlX3QgeyBLTVBfRVZFTlRfTUFYX0hBTkRMRSA9IFVJTlRQVFJfTUFYIH0gb21wX2V2ZW50X2hhbmRsZV90OwojICAgZW5kaWYKICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZnVsZmlsbF9ldmVudCAoIG9tcF9ldmVudF9oYW5kbGVfdCBldmVudCApOwoKICAgIC8qIE9wZW5NUCA1LjAgUGF1c2UgUmVzb3VyY2VzICovCiAgICB0eXBlZGVmIGVudW0gb21wX3BhdXNlX3Jlc291cmNlX3QgewogICAgICBvbXBfcGF1c2VfcmVzdW1lID0gMCwKICAgICAgb21wX3BhdXNlX3NvZnQgPSAxLAogICAgICBvbXBfcGF1c2VfaGFyZCA9IDIKICAgIH0gb21wX3BhdXNlX3Jlc291cmNlX3Q7CiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfcGF1c2VfcmVzb3VyY2Uob21wX3BhdXNlX3Jlc291cmNlX3QsIGludCk7CiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfcGF1c2VfcmVzb3VyY2VfYWxsKG9tcF9wYXVzZV9yZXNvdXJjZV90KTsKCiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X3N1cHBvcnRlZF9hY3RpdmVfbGV2ZWxzKHZvaWQpOwoKICAgIC8qIE9wZW5NUCA1LjEgKi8KICAgIGV4dGVybiB2b2lkIF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfc2V0X251bV90ZWFtcyhpbnQgbnVtX3RlYW1zKTsKICAgIGV4dGVybiBpbnQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9nZXRfbWF4X3RlYW1zKHZvaWQpOwogICAgZXh0ZXJuIHZvaWQgX19LQUlfS01QQ19DT05WRU5USU9OIG9tcF9zZXRfdGVhbXNfdGhyZWFkX2xpbWl0KGludCBsaW1pdCk7CiAgICBleHRlcm4gaW50IF9fS0FJX0tNUENfQ09OVkVOVElPTiBvbXBfZ2V0X3RlYW1zX3RocmVhZF9saW1pdCh2b2lkKTsKCiAgICAvKiBPcGVuTVAgNS4xIERpc3BsYXkgRW52aXJvbm1lbnQgKi8KICAgIGV4dGVybiB2b2lkIG9tcF9kaXNwbGF5X2VudihpbnQgdmVyYm9zZSk7CgojICAgaWYgZGVmaW5lZChfT1BFTk1QKSAmJiBfT1BFTk1QID49IDIwMTgxMQogICAgI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGRldmljZT17a2luZChob3N0KX0pCiAgICBzdGF0aWMgaW5saW5lIGludCBvbXBfaXNfaW5pdGlhbF9kZXZpY2Uodm9pZCkgeyByZXR1cm4gMTsgfQogICAgI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAogICAgI3ByYWdtYSBvbXAgYmVnaW4gZGVjbGFyZSB2YXJpYW50IG1hdGNoKGRldmljZT17a2luZChub2hvc3QpfSkKICAgIHN0YXRpYyBpbmxpbmUgaW50IG9tcF9pc19pbml0aWFsX2RldmljZSh2b2lkKSB7IHJldHVybiAwOyB9CiAgICAjcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CiMgICBlbmRpZgoKIyAgIHVuZGVmIF9fS0FJX0tNUENfQ09OVkVOVElPTgojICAgdW5kZWYgX19LTVBfSU1QCgogICAgLyogV2FybmluZzoKICAgICAgIFRoZSBmb2xsb3dpbmcgdHlwZWRlZnMgYXJlIG5vdCBzdGFuZGFyZCwgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2UuCiAgICAqLwogICAgdHlwZWRlZiBpbnQgICAgIG9tcF9pbnRfdDsKICAgIHR5cGVkZWYgZG91YmxlICBvbXBfd3RpbWVfdDsKCiMgICBpZmRlZiBfX2NwbHVzcGx1cwogICAgfQojICAgZW5kaWYKCiNlbmRpZiAvKiBfX09NUF9IICovCgAvKj09PS0tLS0gc21taW50cmluLmggLSBTU0U0IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fU01NSU5UUklOX0gKI2RlZmluZSBfX1NNTUlOVFJJTl9ICgojaW5jbHVkZSA8dG1taW50cmluLmg+CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygic3NlNC4xIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLyogU1NFNCBSb3VuZGluZyBtYWNyb3MuICovCiNkZWZpbmUgX01NX0ZST1VORF9UT19ORUFSRVNUX0lOVCAgICAweDAwCiNkZWZpbmUgX01NX0ZST1VORF9UT19ORUdfSU5GICAgICAgICAweDAxCiNkZWZpbmUgX01NX0ZST1VORF9UT19QT1NfSU5GICAgICAgICAweDAyCiNkZWZpbmUgX01NX0ZST1VORF9UT19aRVJPICAgICAgICAgICAweDAzCiNkZWZpbmUgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OICAgICAweDA0CgojZGVmaW5lIF9NTV9GUk9VTkRfUkFJU0VfRVhDICAgICAgICAgMHgwMAojZGVmaW5lIF9NTV9GUk9VTkRfTk9fRVhDICAgICAgICAgICAgMHgwOAoKI2RlZmluZSBfTU1fRlJPVU5EX05JTlQgICAgICAoX01NX0ZST1VORF9SQUlTRV9FWEMgfCBfTU1fRlJPVU5EX1RPX05FQVJFU1RfSU5UKQojZGVmaW5lIF9NTV9GUk9VTkRfRkxPT1IgICAgIChfTU1fRlJPVU5EX1JBSVNFX0VYQyB8IF9NTV9GUk9VTkRfVE9fTkVHX0lORikKI2RlZmluZSBfTU1fRlJPVU5EX0NFSUwgICAgICAoX01NX0ZST1VORF9SQUlTRV9FWEMgfCBfTU1fRlJPVU5EX1RPX1BPU19JTkYpCiNkZWZpbmUgX01NX0ZST1VORF9UUlVOQyAgICAgKF9NTV9GUk9VTkRfUkFJU0VfRVhDIHwgX01NX0ZST1VORF9UT19aRVJPKQojZGVmaW5lIF9NTV9GUk9VTkRfUklOVCAgICAgIChfTU1fRlJPVU5EX1JBSVNFX0VYQyB8IF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKI2RlZmluZSBfTU1fRlJPVU5EX05FQVJCWUlOVCAoX01NX0ZST1VORF9OT19FWEMgfCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgovLy8gUm91bmRzIHVwIGVhY2ggZWxlbWVudCBvZiB0aGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYW4KLy8vICAgIGludGVnZXIgYW5kIHJldHVybnMgdGhlIHJvdW5kZWQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9jZWlsX3BzKF9fbTEyOCBYKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQUyAvIFJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB2YWx1ZXMgdG8gYmUgcm91bmRlZCB1cC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcm91bmRlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2NlaWxfcHMoWCkgICAgICAgX21tX3JvdW5kX3BzKChYKSwgX01NX0ZST1VORF9DRUlMKQoKLy8vIFJvdW5kcyB1cCBlYWNoIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBhbgovLy8gICAgaW50ZWdlciBhbmQgcmV0dXJucyB0aGUgcm91bmRlZCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fY2VpbF9wZChfX20xMjhkIFgpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIC8gUk9VTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB2YWx1ZXMgdG8gYmUgcm91bmRlZCB1cC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9jZWlsX3BkKFgpICAgICAgIF9tbV9yb3VuZF9wZCgoWCksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBDb3BpZXMgdGhyZWUgdXBwZXIgZWxlbWVudHMgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLiBSb3VuZHMgdXAgdGhlIGxvd2VzdCBlbGVtZW50IG9mIHRoZSBzZWNvbmQgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgdG8gYW4gaW50ZWdlciBhbmQgY29waWVzIGl0IHRvIHRoZSBsb3dlc3QgZWxlbWVudCBvZiB0aGUgMTI4LWJpdAovLy8gICAgcmVzdWx0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fY2VpbF9zcyhfX20xMjggWCwgX19tMTI4IFkpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFNTIC8gUk9VTkRTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWVzIHN0b3JlZCBpbiBiaXRzIFsxMjc6MzJdIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzMxOjBdIGlzCi8vLyAgICByb3VuZGVkIHVwIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgYW5kIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fY2VpbF9zcyhYLCBZKSAgICBfbW1fcm91bmRfc3MoKFgpLCAoWSksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBDb3BpZXMgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHVwcGVyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyAgICBSb3VuZHMgdXAgdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCAxMjgtYml0IHZlY3RvciBvcGVyYW5kIHRvIGFuCi8vLyAgICBpbnRlZ2VyIGFuZCBjb3BpZXMgaXQgdG8gdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvcgovLy8gICAgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fY2VpbF9zZChfX20xMjhkIFgsIF9fbTEyOGQgWSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EU0QgLyBST1VORFNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzEyNzo2NF0gaXMKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB2YWx1ZSBzdG9yZWQgaW4gYml0cyBbNjM6MF0gaXMKLy8vICAgIHJvdW5kZWQgdXAgdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBhbmQgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMKLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fY2VpbF9zZChYLCBZKSAgICBfbW1fcm91bmRfc2QoKFgpLCAoWSksIF9NTV9GUk9VTkRfQ0VJTCkKCi8vLyBSb3VuZHMgZG93biBlYWNoIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGFuCi8vLyAgICBhbiBpbnRlZ2VyIGFuZCByZXR1cm5zIHRoZSByb3VuZGVkIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fZmxvb3JfcHMoX19tMTI4IFgpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBTIC8gUk9VTkRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHZhbHVlcyB0byBiZSByb3VuZGVkIGRvd24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9mbG9vcl9wcyhYKSAgICAgIF9tbV9yb3VuZF9wcygoWCksIF9NTV9GUk9VTkRfRkxPT1IpCgovLy8gUm91bmRzIGRvd24gZWFjaCBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYW4KLy8vICAgIGludGVnZXIgYW5kIHJldHVybnMgdGhlIHJvdW5kZWQgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFsyIHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2Zsb29yX3BkKF9fbTEyOGQgWCk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUEQgLyBST1VORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcm91bmRlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2Zsb29yX3BkKFgpICAgICAgX21tX3JvdW5kX3BkKChYKSwgX01NX0ZST1VORF9GTE9PUikKCi8vLyBDb3BpZXMgdGhyZWUgdXBwZXIgZWxlbWVudHMgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLiBSb3VuZHMgZG93biB0aGUgbG93ZXN0IGVsZW1lbnQgb2YgdGhlIHNlY29uZCAxMjgtYml0IHZlY3RvcgovLy8gICAgb3BlcmFuZCB0byBhbiBpbnRlZ2VyIGFuZCBjb3BpZXMgaXQgdG8gdGhlIGxvd2VzdCBlbGVtZW50IG9mIHRoZSAxMjgtYml0Ci8vLyAgICByZXN1bHQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9mbG9vcl9zcyhfX20xMjggWCwgX19tMTI4IFkpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFNTIC8gUk9VTkRTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWVzIHN0b3JlZCBpbiBiaXRzIFsxMjc6MzJdIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzMxOjBdIGlzCi8vLyAgICByb3VuZGVkIGRvd24gdG8gdGhlIG5lYXJlc3QgaW50ZWdlciBhbmQgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMKLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgcm91bmRlZAovLy8gICAgdmFsdWVzLgojZGVmaW5lIF9tbV9mbG9vcl9zcyhYLCBZKSAgIF9tbV9yb3VuZF9zcygoWCksIChZKSwgX01NX0ZST1VORF9GTE9PUikKCi8vLyBDb3BpZXMgdGhlIHVwcGVyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8gdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHVwcGVyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyAgICBSb3VuZHMgZG93biB0aGUgbG93ZXIgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8gYW4KLy8vICAgIGludGVnZXIgYW5kIGNvcGllcyBpdCB0byB0aGUgbG93ZXIgZWxlbWVudCBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yCi8vLyAgICBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9mbG9vcl9zZChfX20xMjhkIFgsIF9fbTEyOGQgWSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EU0QgLyBST1VORFNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzEyNzo2NF0gaXMKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gWQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB2YWx1ZSBzdG9yZWQgaW4gYml0cyBbNjM6MF0gaXMKLy8vICAgIHJvdW5kZWQgZG93biB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIGFuZCBjb3BpZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYml0cwovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgcm91bmRlZAovLy8gICAgdmFsdWVzLgojZGVmaW5lIF9tbV9mbG9vcl9zZChYLCBZKSAgIF9tbV9yb3VuZF9zZCgoWCksIChZKSwgX01NX0ZST1VORF9GTE9PUikKCi8vLyBSb3VuZHMgZWFjaCBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBhbgovLy8gICAgaW50ZWdlciB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlIHJvdW5kaW5nIGNvbnRyb2wgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQKLy8vICAgIGFyZ3VtZW50IGFuZCByZXR1cm5zIHRoZSByb3VuZGVkIHZhbHVlcyBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fcm91bmRfcHMoX19tMTI4IFgsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQUyAvIFJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSByb3VuZGluZyBvcGVyYXRpb24uIFxuCi8vLyAgICBCaXRzIFs3OjRdIGFyZSByZXNlcnZlZC4gXG4KLy8vICAgIEJpdCBbM10gaXMgYSBwcmVjaXNpb24gZXhjZXB0aW9uIHZhbHVlOiBcbgovLy8gICAgICAwOiBBIG5vcm1hbCBQRSBleGNlcHRpb24gaXMgdXNlZCBcbgovLy8gICAgICAxOiBUaGUgUEUgZmllbGQgaXMgbm90IHVwZGF0ZWQgXG4KLy8vICAgIEJpdCBbMl0gaXMgdGhlIHJvdW5kaW5nIGNvbnRyb2wgc291cmNlOiBcbgovLy8gICAgICAwOiBVc2UgYml0cyBbMTowXSBvZiBcYSBNIFxuCi8vLyAgICAgIDE6IFVzZSB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nIFxuCi8vLyAgICBCaXRzIFsxOjBdIGNvbnRhaW4gdGhlIHJvdW5kaW5nIGNvbnRyb2wgZGVmaW5pdGlvbjogXG4KLy8vICAgICAgMDA6IE5lYXJlc3QgXG4KLy8vICAgICAgMDE6IERvd253YXJkICh0b3dhcmQgbmVnYXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDEwOiBVcHdhcmQgKHRvd2FyZCBwb3NpdGl2ZSBpbmZpbml0eSkgXG4KLy8vICAgICAgMTE6IFRydW5jYXRlZAovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByb3VuZGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fcm91bmRfcHMoWCwgTSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JvdW5kcHMoKF9fdjRzZikoX19tMTI4KShYKSwgKE0pKSkKCi8vLyBDb3BpZXMgdGhyZWUgdXBwZXIgZWxlbWVudHMgb2YgdGhlIGZpcnN0IDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIHRocmVlIHVwcGVyIGVsZW1lbnRzIG9mIHRoZSAxMjgtYml0IHJlc3VsdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLiBSb3VuZHMgdGhlIGxvd2VzdCBlbGVtZW50IG9mIHRoZSBzZWNvbmQgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIG9wZXJhbmQgdG8gYW4gaW50ZWdlciB2YWx1ZSBhY2NvcmRpbmcgdG8gdGhlIHJvdW5kaW5nIGNvbnRyb2wgc3BlY2lmaWVkCi8vLyAgICBieSB0aGUgdGhpcmQgYXJndW1lbnQgYW5kIGNvcGllcyBpdCB0byB0aGUgbG93ZXN0IGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQKLy8vICAgIHJlc3VsdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX3JvdW5kX3NzKF9fbTEyOCBYLCBfX20xMjggWSwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFNTIC8gUk9VTkRTUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWVzIHN0b3JlZCBpbiBiaXRzIFsxMjc6MzJdIGFyZQovLy8gICAgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLiBUaGUgdmFsdWUgc3RvcmVkIGluIGJpdHMgWzMxOjBdIGlzCi8vLyAgICByb3VuZGVkIHRvIHRoZSBuZWFyZXN0IGludGVnZXIgdXNpbmcgdGhlIHNwZWNpZmllZCByb3VuZGluZyBjb250cm9sIGFuZAovLy8gICAgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbnRlZ2VyIHZhbHVlIHRoYXQgc3BlY2lmaWVzIHRoZSByb3VuZGluZyBvcGVyYXRpb24uIFxuCi8vLyAgICBCaXRzIFs3OjRdIGFyZSByZXNlcnZlZC4gXG4KLy8vICAgIEJpdCBbM10gaXMgYSBwcmVjaXNpb24gZXhjZXB0aW9uIHZhbHVlOiBcbgovLy8gICAgICAwOiBBIG5vcm1hbCBQRSBleGNlcHRpb24gaXMgdXNlZCBcbgovLy8gICAgICAxOiBUaGUgUEUgZmllbGQgaXMgbm90IHVwZGF0ZWQgXG4KLy8vICAgIEJpdCBbMl0gaXMgdGhlIHJvdW5kaW5nIGNvbnRyb2wgc291cmNlOiBcbgovLy8gICAgICAwOiBVc2UgYml0cyBbMTowXSBvZiBcYSBNIFxuCi8vLyAgICAgIDE6IFVzZSB0aGUgY3VycmVudCBNWENTUiBzZXR0aW5nIFxuCi8vLyAgICBCaXRzIFsxOjBdIGNvbnRhaW4gdGhlIHJvdW5kaW5nIGNvbnRyb2wgZGVmaW5pdGlvbjogXG4KLy8vICAgICAgMDA6IE5lYXJlc3QgXG4KLy8vICAgICAgMDE6IERvd253YXJkICh0b3dhcmQgbmVnYXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDEwOiBVcHdhcmQgKHRvd2FyZCBwb3NpdGl2ZSBpbmZpbml0eSkgXG4KLy8vICAgICAgMTE6IFRydW5jYXRlZAovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgYW5kIHJvdW5kZWQKLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW1fcm91bmRfc3MoWCwgWSwgTSkgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JvdW5kc3MoKF9fdjRzZikoX19tMTI4KShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKE0pKSkKCi8vLyBSb3VuZHMgZWFjaCBlbGVtZW50IG9mIHRoZSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYW4KLy8vICAgIGludGVnZXIgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSByb3VuZGluZyBjb250cm9sIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kCi8vLyAgICBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgcm91bmRlZCB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fcm91bmRfcGQoX19tMTI4ZCBYLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUEQgLyBST1VORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGludGVnZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHJvdW5kaW5nIG9wZXJhdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6NF0gYXJlIHJlc2VydmVkLiBcbgovLy8gICAgQml0IFszXSBpcyBhIHByZWNpc2lvbiBleGNlcHRpb24gdmFsdWU6IFxuCi8vLyAgICAgIDA6IEEgbm9ybWFsIFBFIGV4Y2VwdGlvbiBpcyB1c2VkIFxuCi8vLyAgICAgIDE6IFRoZSBQRSBmaWVsZCBpcyBub3QgdXBkYXRlZCBcbgovLy8gICAgQml0IFsyXSBpcyB0aGUgcm91bmRpbmcgY29udHJvbCBzb3VyY2U6IFxuCi8vLyAgICAgIDA6IFVzZSBiaXRzIFsxOjBdIG9mIFxhIE0gXG4KLy8vICAgICAgMTogVXNlIHRoZSBjdXJyZW50IE1YQ1NSIHNldHRpbmcgXG4KLy8vICAgIEJpdHMgWzE6MF0gY29udGFpbiB0aGUgcm91bmRpbmcgY29udHJvbCBkZWZpbml0aW9uOiBcbgovLy8gICAgICAwMDogTmVhcmVzdCBcbgovLy8gICAgICAwMTogRG93bndhcmQgKHRvd2FyZCBuZWdhdGl2ZSBpbmZpbml0eSkgXG4KLy8vICAgICAgMTA6IFVwd2FyZCAodG93YXJkIHBvc2l0aXZlIGluZmluaXR5KSBcbgovLy8gICAgICAxMTogVHJ1bmNhdGVkCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByb3VuZGVkIHZhbHVlcy4KI2RlZmluZSBfbW1fcm91bmRfcGQoWCwgTSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yb3VuZHBkKChfX3YyZGYpKF9fbTEyOGQpKFgpLCAoTSkpKQoKLy8vIENvcGllcyB0aGUgdXBwZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgMTI4LWJpdCB2ZWN0b3Igb3BlcmFuZCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgdXBwZXIgZWxlbWVudCBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vICAgIFJvdW5kcyB0aGUgbG93ZXIgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQgdG8gYW4KLy8vICAgIGludGVnZXIgdmFsdWUgYWNjb3JkaW5nIHRvIHRoZSByb3VuZGluZyBjb250cm9sIHNwZWNpZmllZCBieSB0aGUgdGhpcmQKLy8vICAgIGFyZ3VtZW50IGFuZCBjb3BpZXMgaXQgdG8gdGhlIGxvd2VyIGVsZW1lbnQgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvcgovLy8gICAgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fcm91bmRfc2QoX19tMTI4ZCBYLCBfX20xMjhkIFksIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRTRCAvIFJPVU5EU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSB2YWx1ZSBzdG9yZWQgaW4gYml0cyBbMTI3OjY0XSBpcwovLy8gICAgY29waWVkIHRvIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gVGhlIHZhbHVlIHN0b3JlZCBpbiBiaXRzIFs2MzowXSBpcwovLy8gICAgcm91bmRlZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHVzaW5nIHRoZSBzcGVjaWZpZWQgcm91bmRpbmcgY29udHJvbCBhbmQKLy8vICAgIGNvcGllZCB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW50ZWdlciB2YWx1ZSB0aGF0IHNwZWNpZmllcyB0aGUgcm91bmRpbmcgb3BlcmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo0XSBhcmUgcmVzZXJ2ZWQuIFxuCi8vLyAgICBCaXQgWzNdIGlzIGEgcHJlY2lzaW9uIGV4Y2VwdGlvbiB2YWx1ZTogXG4KLy8vICAgICAgMDogQSBub3JtYWwgUEUgZXhjZXB0aW9uIGlzIHVzZWQgXG4KLy8vICAgICAgMTogVGhlIFBFIGZpZWxkIGlzIG5vdCB1cGRhdGVkIFxuCi8vLyAgICBCaXQgWzJdIGlzIHRoZSByb3VuZGluZyBjb250cm9sIHNvdXJjZTogXG4KLy8vICAgICAgMDogVXNlIGJpdHMgWzE6MF0gb2YgXGEgTSBcbgovLy8gICAgICAxOiBVc2UgdGhlIGN1cnJlbnQgTVhDU1Igc2V0dGluZyBcbgovLy8gICAgQml0cyBbMTowXSBjb250YWluIHRoZSByb3VuZGluZyBjb250cm9sIGRlZmluaXRpb246IFxuCi8vLyAgICAgIDAwOiBOZWFyZXN0IFxuCi8vLyAgICAgIDAxOiBEb3dud2FyZCAodG93YXJkIG5lZ2F0aXZlIGluZmluaXR5KSBcbgovLy8gICAgICAxMDogVXB3YXJkICh0b3dhcmQgcG9zaXRpdmUgaW5maW5pdHkpIFxuCi8vLyAgICAgIDExOiBUcnVuY2F0ZWQKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCBhbmQgcm91bmRlZAovLy8gICAgdmFsdWVzLgojZGVmaW5lIF9tbV9yb3VuZF9zZChYLCBZLCBNKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JvdW5kc2QoKF9fdjJkZikoX19tMTI4ZCkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKE0pKSkKCi8qIFNTRTQgUGFja2VkIEJsZW5kaW5nIEludHJpbnNpY3MuICAqLwovLy8gUmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB3aGVyZSB0aGUgdmFsdWVzIGFyZQovLy8gICAgc2VsZWN0ZWQgZnJvbSBlaXRoZXIgdGhlIGZpcnN0IG9yIHNlY29uZCBvcGVyYW5kIGFzIHNwZWNpZmllZCBieSB0aGUKLy8vICAgIHRoaXJkIG9wZXJhbmQsIHRoZSBjb250cm9sIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9ibGVuZF9wZChfX20xMjhkIFYxLCBfX20xMjhkIFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EUEQgLyBCTEVORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgWzE6MF0gc3BlY2lmeWluZyBob3cgdGhlCi8vLyAgICB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZC4gVGhlIHBvc2l0aW9uIG9mIHRoZSBtYXNrIGJpdCBjb3JyZXNwb25kcyB0byB0aGUKLy8vICAgIGluZGV4IG9mIGEgY29waWVkIHZhbHVlLiBXaGVuIGEgbWFzayBiaXQgaXMgMCwgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0Ci8vLyAgICBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyAgICBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0IGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBWMgovLy8gICAgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9ibGVuZF9wZChWMSwgVjIsIE0pIFwKICAoKF9fbTEyOGQpIF9fYnVpbHRpbl9pYTMyX2JsZW5kcGQgKChfX3YyZGYpKF9fbTEyOGQpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVjIpLCAoaW50KShNKSkpCgovLy8gUmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIHNlbGVjdGVkCi8vLyAgICBmcm9tIGVpdGhlciB0aGUgZmlyc3Qgb3Igc2Vjb25kIG9wZXJhbmQgYXMgc3BlY2lmaWVkIGJ5IHRoZSB0aGlyZAovLy8gICAgb3BlcmFuZCwgdGhlIGNvbnRyb2wgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW1fYmxlbmRfcHMoX19tMTI4IFYxLCBfX20xMjggVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRQUyAvIEJMRU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBtYXNrIGJpdHMgWzM6MF0gc3BlY2lmeWluZyBob3cgdGhlCi8vLyAgICB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZC4gVGhlIHBvc2l0aW9uIG9mIHRoZSBtYXNrIGJpdCBjb3JyZXNwb25kcyB0byB0aGUKLy8vICAgIGluZGV4IG9mIGEgY29waWVkIHZhbHVlLiBXaGVuIGEgbWFzayBiaXQgaXMgMCwgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0Ci8vLyAgICBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyAgICBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBWMgovLy8gICAgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2JsZW5kX3BzKFYxLCBWMiwgTSkgXAogICgoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9ibGVuZHBzICgoX192NHNmKShfX20xMjgpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFYyKSwgKGludCkoTSkpKQoKLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gd2hlcmUgdGhlIHZhbHVlcyBhcmUKLy8vICAgIHNlbGVjdGVkIGZyb20gZWl0aGVyIHRoZSBmaXJzdCBvciBzZWNvbmQgb3BlcmFuZCBhcyBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICB0aGlyZCBvcGVyYW5kLCB0aGUgY29udHJvbCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCTEVORFZQRCAvIEJMRU5EVlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fTQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyAxMjcgYW5kIDYzIHNwZWNpZnlpbmcgaG93IHRoZQovLy8gICAgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgICBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyA2NC1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lCi8vLyAgICBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0Ci8vLyAgICBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19WMiBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9ibGVuZHZfcGQgKF9fbTEyOGQgX19WMSwgX19tMTI4ZCBfX1YyLCBfX20xMjhkIF9fTSkKewogIHJldHVybiAoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfYmxlbmR2cGQgKChfX3YyZGYpX19WMSwgKF9fdjJkZilfX1YyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19NKTsKfQoKLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aGVyZSB0aGUgdmFsdWVzIGFyZQovLy8gICAgc2VsZWN0ZWQgZnJvbSBlaXRoZXIgdGhlIGZpcnN0IG9yIHNlY29uZCBvcGVyYW5kIGFzIHNwZWNpZmllZCBieSB0aGUKLy8vICAgIHRoaXJkIG9wZXJhbmQsIHRoZSBjb250cm9sIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJMRU5EVlBTIC8gQkxFTkRWUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fTQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyAxMjcsIDk1LCA2MywgYW5kIDMxIHNwZWNpZnlpbmcKLy8vICAgIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMKLy8vICAgIHRvIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyAzMi1iaXQgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjEgaXMgY29waWVkIHRvIHRoZSBzYW1lCi8vLyAgICBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0Ci8vLyAgICBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19WMiBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYmxlbmR2X3BzIChfX20xMjggX19WMSwgX19tMTI4IF9fVjIsIF9fbTEyOCBfX00pCnsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfYmxlbmR2cHMgKChfX3Y0c2YpX19WMSwgKF9fdjRzZilfX1YyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX00pOwp9CgovLy8gUmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB3aGVyZSB0aGUgdmFsdWVzIGFyZSBzZWxlY3RlZAovLy8gICAgZnJvbSBlaXRoZXIgb2YgdGhlIGZpcnN0IG9yIHNlY29uZCBvcGVyYW5kIGFzIHNwZWNpZmllZCBieSB0aGUgdGhpcmQKLy8vICAgIG9wZXJhbmQsIHRoZSBjb250cm9sIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBCTEVORFZCIC8gUEJMRU5EVkIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccGFyYW0gX19NCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9wZXJhbmQsIHdpdGggbWFzayBiaXRzIDEyNywgMTE5LCAxMTEuLi43IHNwZWNpZnlpbmcKLy8vICAgIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMKLy8vICAgIHRvIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyA4LWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19WMSBpcyBjb3BpZWQgdG8gdGhlIHNhbWUKLy8vICAgIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuIFdoZW4gYSBtYXNrIGJpdCBpcyAxLCB0aGUgY29ycmVzcG9uZGluZyA4LWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIF9fVjIgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYmxlbmR2X2VwaTggKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyLCBfX20xMjhpIF9fTSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcGJsZW5kdmIxMjggKChfX3YxNnFpKV9fVjEsIChfX3YxNnFpKV9fVjIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19NKTsKfQoKLy8vIFJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gd2hlcmUgdGhlIHZhbHVlcyBhcmUgc2VsZWN0ZWQKLy8vICAgIGZyb20gZWl0aGVyIG9mIHRoZSBmaXJzdCBvciBzZWNvbmQgb3BlcmFuZCBhcyBzcGVjaWZpZWQgYnkgdGhlIHRoaXJkCi8vLyAgICBvcGVyYW5kLCB0aGUgY29udHJvbCBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fYmxlbmRfZXBpMTYoX19tMTI4aSBWMSwgX19tMTI4aSBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQkxFTkRXIC8gUEJMRU5EVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggbWFzayBiaXRzIFs3OjBdIHNwZWNpZnlpbmcgaG93IHRoZQovLy8gICAgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgICBpbmRleCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZSBjb3JyZXNwb25kaW5nIDE2LWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIFYxIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gICAgV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDE2LWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgVjIKLy8vICAgIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4KI2RlZmluZSBfbW1fYmxlbmRfZXBpMTYoVjEsIFYyLCBNKSBcCiAgKChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wYmxlbmR3MTI4ICgoX192OGhpKShfX20xMjhpKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFYyKSwgKGludCkoTSkpKQoKLyogU1NFNCBEd29yZCBNdWx0aXBseSBJbnN0cnVjdGlvbnMuICAqLwovLy8gTXVsdGlwbGVzIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZiBbNCB4IGkzMl0KLy8vICAgIGFuZCByZXR1cm5zIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSBlYWNoIHByb2R1Y3QgaW4gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTVVMTEQgLyBQTVVMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBwcm9kdWN0cyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGxvX2VwaTMyIChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3Y0c3UpX19WMSAqIChfX3Y0c3UpX19WMik7Cn0KCi8vLyBNdWx0aXBsaWVzIGNvcnJlc3BvbmRpbmcgZXZlbi1pbmRleGVkIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0Ci8vLyAgICB2ZWN0b3JzIG9mIFs0IHggaTMyXSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XQovLy8gICAgY29udGFpbmluZyB0aGUgcHJvZHVjdHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNVUxEUSAvIFBNVUxEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bF9lcGkzMiAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtdWxkcTEyOCAoKF9fdjRzaSlfX1YxLCAoX192NHNpKV9fVjIpOwp9CgovKiBTU0U0IEZsb2F0aW5nIFBvaW50IERvdCBQcm9kdWN0IEluc3RydWN0aW9ucy4gICovCi8vLyBDb21wdXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdGhlIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0KLy8vICAgIGFuZCByZXR1cm5zIGl0IGluIHRoZSBlbGVtZW50cyBvZiB0aGUgMTI4LWJpdCByZXN1bHQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGZsb2F0XS4KLy8vCi8vLyAgICBUaGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBjb250cm9scyB3aGljaCBpbnB1dCBlbGVtZW50cwovLy8gICAgd2lsbCBjb250cmlidXRlIHRvIHRoZSBkb3QgcHJvZHVjdCwgYW5kIHdoZXJlIHRoZSBmaW5hbCByZXN1bHRzIGFyZQovLy8gICAgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2RwX3BzKF9fbTEyOCBYLCBfX20xMjggWSwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUFBTIC8gRFBQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIFkKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4gTWFzayBiaXRzIFs3OjRdIGRldGVybWluZSB3aGljaCBlbGVtZW50cwovLy8gICAgb2YgdGhlIGlucHV0IHZlY3RvcnMgYXJlIHVzZWQsIHdpdGggYml0IFs0XSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb3dlc3QKLy8vICAgIGVsZW1lbnQgYW5kIGJpdCBbN10gY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBlbGVtZW50IG9mIGVhY2ggWzQgeAovLy8gICAgZmxvYXRdIHZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBmcm9tIHRoZSB0d28KLy8vICAgIGlucHV0IHZlY3RvcnMgYXJlIHVzZWQgYXMgYW4gaW5wdXQgZm9yIGRvdCBwcm9kdWN0OyBvdGhlcndpc2UgdGhhdCBpbnB1dAovLy8gICAgaXMgdHJlYXRlZCBhcyB6ZXJvLiBCaXRzIFszOjBdIGRldGVybWluZSB3aGljaCBlbGVtZW50cyBvZiB0aGUgcmVzdWx0Ci8vLyAgICB3aWxsIHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBmaW5hbCBkb3QgcHJvZHVjdCwgd2l0aCBiaXQgWzBdIGNvcnJlc3BvbmRpbmcKLy8vICAgIHRvIHRoZSBsb3dlc3QgZWxlbWVudCBhbmQgYml0IFszXSBjb3JyZXNwb25kaW5nIHRvIHRoZSBoaWdoZXN0IGVsZW1lbnQgb2YKLy8vICAgIGVhY2ggWzQgeCBmbG9hdF0gc3VidmVjdG9yLiBJZiBhIGJpdCBpcyBzZXQsIHRoZSBkb3QgcHJvZHVjdCBpcyByZXR1cm5lZAovLy8gICAgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudDsgb3RoZXJ3aXNlIHRoYXQgZWxlbWVudCBpcyBzZXQgdG8gemVyby4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZG90IHByb2R1Y3QuCiNkZWZpbmUgX21tX2RwX3BzKFgsIFksIE0pIFwKICAoKF9fbTEyOCkgX19idWlsdGluX2lhMzJfZHBwcygoX192NHNmKShfX20xMjgpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShZKSwgKE0pKSkKCi8vLyBDb21wdXRlcyB0aGUgZG90IHByb2R1Y3Qgb2YgdGhlIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdCi8vLyAgICBhbmQgcmV0dXJucyBpdCBpbiB0aGUgZWxlbWVudHMgb2YgdGhlIDEyOC1iaXQgcmVzdWx0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdLgovLy8KLy8vICAgIFRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIGNvbnRyb2xzIHdoaWNoIGlucHV0Ci8vLyAgICBlbGVtZW50cyB3aWxsIGNvbnRyaWJ1dGUgdG8gdGhlIGRvdCBwcm9kdWN0LCBhbmQgd2hlcmUgdGhlIGZpbmFsIHJlc3VsdHMKLy8vICAgIGFyZSByZXR1cm5lZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2RwX3BkKF9fbTEyOGQgWCwgX19tMTI4ZCBZLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQUEQgLyBEUFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIFkKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuIE1hc2sgYml0cyBbNTo0XSBkZXRlcm1pbmUgd2hpY2ggZWxlbWVudHMKLy8vICAgIG9mIHRoZSBpbnB1dCB2ZWN0b3JzIGFyZSB1c2VkLCB3aXRoIGJpdCBbNF0gY29ycmVzcG9uZGluZyB0byB0aGUgbG93ZXN0Ci8vLyAgICBlbGVtZW50IGFuZCBiaXQgWzVdIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgZWxlbWVudCBvZiBlYWNoIG9mIFsyIHgKLy8vICAgIGRvdWJsZV0gdmVjdG9yLiBJZiBhIGJpdCBpcyBzZXQsIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGZyb20gdGhlIHR3bwovLy8gICAgaW5wdXQgdmVjdG9ycyBhcmUgdXNlZCBhcyBhbiBpbnB1dCBmb3IgZG90IHByb2R1Y3Q7IG90aGVyd2lzZSB0aGF0IGlucHV0Ci8vLyAgICBpcyB0cmVhdGVkIGFzIHplcm8uIEJpdHMgWzE6MF0gZGV0ZXJtaW5lIHdoaWNoIGVsZW1lbnRzIG9mIHRoZSByZXN1bHQKLy8vICAgIHdpbGwgcmVjZWl2ZSBhIGNvcHkgb2YgdGhlIGZpbmFsIGRvdCBwcm9kdWN0LCB3aXRoIGJpdCBbMF0gY29ycmVzcG9uZGluZwovLy8gICAgdG8gdGhlIGxvd2VzdCBlbGVtZW50IGFuZCBiaXQgWzFdIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhpZ2hlc3QgZWxlbWVudCBvZgovLy8gICAgZWFjaCBbMiB4IGRvdWJsZV0gdmVjdG9yLiBJZiBhIGJpdCBpcyBzZXQsIHRoZSBkb3QgcHJvZHVjdCBpcyByZXR1cm5lZCBpbgovLy8gICAgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudDsgb3RoZXJ3aXNlIHRoYXQgZWxlbWVudCBpcyBzZXQgdG8gemVyby4KI2RlZmluZSBfbW1fZHBfcGQoWCwgWSwgTSkgXAogICgoX19tMTI4ZCkgX19idWlsdGluX2lhMzJfZHBwZCgoX192MmRmKShfX20xMjhkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShZKSwgKE0pKSkKCi8qIFNTRTQgU3RyZWFtaW5nIExvYWQgSGludCBJbnN0cnVjdGlvbi4gICovCi8vLyBMb2FkcyBpbnRlZ2VyIHZhbHVlcyBmcm9tIGEgMTI4LWJpdCBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0byBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZOVERRQSAvIE1PVk5URFFBIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBhbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZGF0YSBzdG9yZWQgYXQgdGhlCi8vLyAgICBzcGVjaWZpZWQgbWVtb3J5IGxvY2F0aW9uLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N0cmVhbV9sb2FkX3NpMTI4IChfX20xMjhpIGNvbnN0ICpfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9sb2FkICgoY29uc3QgX192MmRpICopIF9fVik7Cn0KCi8qIFNTRTQgUGFja2VkIEludGVnZXIgTWluL01heCBJbnN0cnVjdGlvbnMuICAqLwovLy8gQ29tcGFyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzE2IHggaThdIGFuZCByZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIGNvbnRhaW5pbmcgdGhlIGxlc3NlcgovLy8gICAgb2YgdGhlIHR3byB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNSU5TQiAvIFBNSU5TQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XQovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyB0aGUgbGVzc2VyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fZXBpOCAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtaW5zYjEyOCAoKF9fdjE2cWkpIF9fVjEsIChfX3YxNnFpKSBfX1YyKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFsxNiB4IGk4XSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZQovLy8gICAgZ3JlYXRlciB2YWx1ZSBvZiB0aGUgdHdvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUFYU0IgLyBQTUFYU0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIHRoZSBncmVhdGVyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfZXBpOCAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtYXhzYjEyOCAoKF9fdjE2cWkpIF9fVjEsIChfX3YxNnFpKSBfX1YyKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs4IHggdTE2XSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XSBjb250YWluaW5nIHRoZSBsZXNzZXIKLy8vICAgIHZhbHVlIG9mIHRoZSB0d28uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNSU5VVyAvIFBNSU5VVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCB1MTZdIGNvbnRhaW5pbmcgdGhlIGxlc3NlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWluX2VwdTE2IChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1pbnV3MTI4ICgoX192OGhpKSBfX1YxLCAoX192OGhpKSBfX1YyKTsKfQoKLy8vIENvbXBhcmVzIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs4IHggdTE2XSBhbmQgcmV0dXJucyBhIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XSBjb250YWluaW5nIHRoZQovLy8gICAgZ3JlYXRlciB2YWx1ZSBvZiB0aGUgdHdvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUFYVVcgLyBQTUFYVVcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0uCi8vLyBccGFyYW0gX19WMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IHUxNl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggdTE2XSBjb250YWluaW5nIHRoZSBncmVhdGVyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYXhfZXB1MTYgKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWF4dXcxMjggKChfX3Y4aGkpIF9fVjEsIChfX3Y4aGkpIF9fVjIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMzJdIGFuZCByZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGxlc3NlcgovLy8gICAgdmFsdWUgb2YgdGhlIHR3by4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1JTlNEIC8gUE1JTlNEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgbGVzc2VyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fZXBpMzIgKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWluc2QxMjggKChfX3Y0c2kpIF9fVjEsIChfX3Y0c2kpIF9fVjIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgb2YgdHdvIDEyOC1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMzJdIGFuZCByZXR1cm5zIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBncmVhdGVyIHZhbHVlIG9mIHRoZSB0d28uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNQVhTRCAvIFBNQVhTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YxCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxwYXJhbSBfX1YyCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGdyZWF0ZXIgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyAgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21heF9lcGkzMiAoX19tMTI4aSBfX1YxLCBfX20xMjhpIF9fVjIpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BtYXhzZDEyOCAoKF9fdjRzaSkgX19WMSwgKF9fdjRzaSkgX19WMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbNCB4IHUzMl0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IHUzMl0gY29udGFpbmluZyB0aGUgbGVzc2VyCi8vLyAgICB2YWx1ZSBvZiB0aGUgdHdvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTUlOVUQgLyBQTUlOVUQgPC9jPiAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IHUzMl0gY29udGFpbmluZyB0aGUgbGVzc2VyIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5fZXB1MzIgKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbWludWQxMjgoKF9fdjRzaSkgX19WMSwgKF9fdjRzaSkgX19WMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbNCB4IHUzMl0gYW5kIHJldHVybnMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IHUzMl0gY29udGFpbmluZyB0aGUKLy8vICAgIGdyZWF0ZXIgdmFsdWUgb2YgdGhlIHR3by4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1BWFVEIC8gUE1BWFVEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVjEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCB1MzJdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IHUzMl0gY29udGFpbmluZyB0aGUgZ3JlYXRlciB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fICBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWF4X2VwdTMyIChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1heHVkMTI4KChfX3Y0c2kpIF9fVjEsIChfX3Y0c2kpIF9fVjIpOwp9CgovKiBTU0U0IEluc2VydGlvbiBhbmQgRXh0cmFjdGlvbiBmcm9tIFhNTSBSZWdpc3RlciBJbnN0cnVjdGlvbnMuICAqLwovLy8gVGFrZXMgdGhlIGZpcnN0IGFyZ3VtZW50IFxhIFggYW5kIGluc2VydHMgYW4gZWxlbWVudCBmcm9tIHRoZSBzZWNvbmQKLy8vICAgIGFyZ3VtZW50IFxhIFkgYXMgc2VsZWN0ZWQgYnkgdGhlIHRoaXJkIGFyZ3VtZW50IFxhIE4uIFRoYXQgcmVzdWx0IHRoZW4KLy8vICAgIGhhcyBlbGVtZW50cyB6ZXJvZWQgb3V0IGFsc28gYXMgc2VsZWN0ZWQgYnkgdGhlIHRoaXJkIGFyZ3VtZW50IFxhIE4uIFRoZQovLy8gICAgcmVzdWx0aW5nIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGlzIHRoZW4gcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2luc2VydF9wcyhfX20xMjggWCwgX19tMTI4IFksIGNvbnN0IGludCBOKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBzb3VyY2Ugb3BlcmFuZCBvZiBbNCB4IGZsb2F0XS4gV2l0aCB0aGUgZXhjZXB0aW9uIG9mCi8vLyAgICB0aG9zZSBiaXRzIGluIHRoZSByZXN1bHQgY29waWVkIGZyb20gcGFyYW1ldGVyIFxhIFkgYW5kIHplcm9lZCBieSBiaXRzCi8vLyAgICBbMzowXSBvZiBcYSBOLCBhbGwgYml0cyBmcm9tIHRoaXMgcGFyYW1ldGVyIGFyZSBjb3BpZWQgdG8gdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIHNvdXJjZSBvcGVyYW5kIG9mIFs0IHggZmxvYXRdLiBPbmUgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgZWxlbWVudCBmcm9tIHRoaXMgc291cmNlLCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBpbW1lZGlhdGUKLy8vICAgIHBhcmFtZXRlciwgaXMgY29waWVkIHRvIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gTgovLy8gICAgU3BlY2lmaWVzIHdoaWNoIGJpdHMgZnJvbSBvcGVyYW5kIFxhIFkgd2lsbCBiZSBjb3BpZWQsIHdoaWNoIGJpdHMgaW4gdGhlCi8vLyAgICByZXN1bHQgdGhleSB3aWxsIGJlIGJlIGNvcGllZCB0bywgYW5kIHdoaWNoIGJpdHMgaW4gdGhlIHJlc3VsdCB3aWxsIGJlCi8vLyAgICBjbGVhcmVkLiBUaGUgZm9sbG93aW5nIGFzc2lnbm1lbnRzIGFyZSBtYWRlOiBcbgovLy8gICAgQml0cyBbNzo2XSBzcGVjaWZ5IHRoZSBiaXRzIHRvIGNvcHkgZnJvbSBvcGVyYW5kIFxhIFk6IFxuCi8vLyAgICAgIDAwOiBTZWxlY3RzIGJpdHMgWzMxOjBdIGZyb20gb3BlcmFuZCBcYSBZLiBcbgovLy8gICAgICAwMTogU2VsZWN0cyBiaXRzIFs2MzozMl0gZnJvbSBvcGVyYW5kIFxhIFkuIFxuCi8vLyAgICAgIDEwOiBTZWxlY3RzIGJpdHMgWzk1OjY0XSBmcm9tIG9wZXJhbmQgXGEgWS4gXG4KLy8vICAgICAgMTE6IFNlbGVjdHMgYml0cyBbMTI3Ojk2XSBmcm9tIG9wZXJhbmQgXGEgWS4gXG4KLy8vICAgIEJpdHMgWzU6NF0gc3BlY2lmeSB0aGUgYml0cyBpbiB0aGUgcmVzdWx0IHRvIHdoaWNoIHRoZSBzZWxlY3RlZCBiaXRzCi8vLyAgICBmcm9tIG9wZXJhbmQgXGEgWSBhcmUgY29waWVkOiBcbgovLy8gICAgICAwMDogQ29waWVzIHRoZSBzZWxlY3RlZCBiaXRzIGZyb20gXGEgWSB0byByZXN1bHQgYml0cyBbMzE6MF0uIFxuCi8vLyAgICAgIDAxOiBDb3BpZXMgdGhlIHNlbGVjdGVkIGJpdHMgZnJvbSBcYSBZIHRvIHJlc3VsdCBiaXRzIFs2MzozMl0uIFxuCi8vLyAgICAgIDEwOiBDb3BpZXMgdGhlIHNlbGVjdGVkIGJpdHMgZnJvbSBcYSBZIHRvIHJlc3VsdCBiaXRzIFs5NTo2NF0uIFxuCi8vLyAgICAgIDExOiBDb3BpZXMgdGhlIHNlbGVjdGVkIGJpdHMgZnJvbSBcYSBZIHRvIHJlc3VsdCBiaXRzIFsxMjc6OTZdLiBcbgovLy8gICAgQml0c1szOjBdOiBJZiBhbnkgb2YgdGhlc2UgYml0cyBhcmUgc2V0LCB0aGUgY29ycmVzcG9uZGluZyByZXN1bHQKLy8vICAgIGVsZW1lbnQgaXMgY2xlYXJlZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkCi8vLyAgICBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IGVsZW1lbnRzIGZyb20gdGhlIG9wZXJhbmRzLgojZGVmaW5lIF9tbV9pbnNlcnRfcHMoWCwgWSwgTikgX19idWlsdGluX2lhMzJfaW5zZXJ0cHMxMjgoKFgpLCAoWSksIChOKSkKCi8vLyBFeHRyYWN0cyBhIDMyLWJpdCBpbnRlZ2VyIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBhbmQKLy8vICAgIHJldHVybnMgaXQsIHVzaW5nIHRoZSBpbW1lZGlhdGUgdmFsdWUgcGFyYW1ldGVyIFxhIE4gYXMgYSBzZWxlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fZXh0cmFjdF9wcyhfX20xMjggWCwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNUUFMgLyBFWFRSQUNUUFMgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXRzIFsxOjBdIGRldGVybWluZXMgd2hpY2ggYml0cyBmcm9tIHRoZSBhcmd1bWVudAovLy8gICAgXGEgWCBhcmUgZXh0cmFjdGVkIGFuZCByZXR1cm5lZDogXG4KLy8vICAgIDAwOiBCaXRzIFszMTowXSBvZiBwYXJhbWV0ZXIgXGEgWCBhcmUgcmV0dXJuZWQuIFxuCi8vLyAgICAwMTogQml0cyBbNjM6MzJdIG9mIHBhcmFtZXRlciBcYSBYIGFyZSByZXR1cm5lZC4gXG4KLy8vICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgcGFyYW1ldGVyIFxhIFggYXJlIHJldHVybmVkLiBcbgovLy8gICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgcGFyYW1ldGVyIFxhIFggYXJlIHJldHVybmVkLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgMzIgYml0cyBvZiBmbG9hdCBkYXRhLgojZGVmaW5lIF9tbV9leHRyYWN0X3BzKFgsIE4pIFwKICBfX2J1aWx0aW5fYml0X2Nhc3QoaW50LCBfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0c2YoKF9fdjRzZikoX19tMTI4KShYKSwgKGludCkoTikpKQoKLyogTWlzY2VsbGFuZW91cyBpbnNlcnQgYW5kIGV4dHJhY3QgbWFjcm9zLiAgKi8KLyogRXh0cmFjdCBhIHNpbmdsZS1wcmVjaXNpb24gZmxvYXQgZnJvbSBYIGF0IGluZGV4IE4gaW50byBELiAgKi8KI2RlZmluZSBfTU1fRVhUUkFDVF9GTE9BVChELCBYLCBOKSBcCiAgZG8geyAoRCkgPSBfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y0c2YoKF9fdjRzZikoX19tMTI4KShYKSwgKGludCkoTikpOyB9IHdoaWxlICgwKQoKLyogT3IgdG9nZXRoZXIgMiBzZXRzIG9mIGluZGV4ZXMgKFggYW5kIFkpIHdpdGggdGhlIHplcm9pbmcgYml0cyAoWikgdG8gY3JlYXRlCiAgIGFuIGluZGV4IHN1aXRhYmxlIGZvciBfbW1faW5zZXJ0X3BzLiAgKi8KI2RlZmluZSBfTU1fTUtfSU5TRVJUUFNfTkRYKFgsIFksIFopICgoKFgpIDw8IDYpIHwgKChZKSA8PCA0KSB8IChaKSkKCi8qIEV4dHJhY3QgYSBmbG9hdCBmcm9tIFggYXQgaW5kZXggTiBpbnRvIHRoZSBmaXJzdCBpbmRleCBvZiB0aGUgcmV0dXJuLiAgKi8KI2RlZmluZSBfTU1fUElDS19PVVRfUFMoWCwgTikgX21tX2luc2VydF9wcyAoX21tX3NldHplcm9fcHMoKSwgKFgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX01LX0lOU0VSVFBTX05EWCgoTiksIDAsIDB4MGUpKQoKLyogSW5zZXJ0IGludCBpbnRvIHBhY2tlZCBpbnRlZ2VyIGFycmF5IGF0IGluZGV4LiAgKi8KLy8vIENvbnN0cnVjdHMgYSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gYnkgZmlyc3QgbWFraW5nIGEgY29weSBvZgovLy8gICAgdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyLCBhbmQgdGhlbiBpbnNlcnRpbmcgdGhlIGxvd2VyIDggYml0cwovLy8gICAgb2YgYW4gaW50ZWdlciBwYXJhbWV0ZXIgXGEgSSBpbnRvIGFuIG9mZnNldCBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZQovLy8gICAgdmFsdWUgcGFyYW1ldGVyIFxhIE4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9pbnNlcnRfZXBpOChfX20xMjhpIFgsIGludCBJLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBJTlNSQiAvIFBJTlNSQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaThdLiBUaGlzIHZlY3RvciBpcyBjb3BpZWQgdG8gdGhlCi8vLyAgICByZXN1bHQgYW5kIHRoZW4gb25lIG9mIHRoZSBzaXh0ZWVuIGVsZW1lbnRzIGluIHRoZSByZXN1bHQgdmVjdG9yIGlzCi8vLyAgICByZXBsYWNlZCBieSB0aGUgbG93ZXIgOCBiaXRzIG9mIFxhIEkuCi8vLyBccGFyYW0gSQovLy8gICAgQW4gaW50ZWdlci4gVGhlIGxvd2VyIDggYml0cyBvZiB0aGlzIG9wZXJhbmQgYXJlIHdyaXR0ZW4gdG8gdGhlIHJlc3VsdAovLy8gICAgYmVnaW5uaW5nIGF0IHRoZSBvZmZzZXQgc3BlY2lmaWVkIGJ5IFxhIE4uCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXRzIFszOjBdIHNwZWNpZnkgdGhlIGJpdCBvZmZzZXQgaW4gdGhlIHJlc3VsdCBhdAovLy8gICAgd2hpY2ggdGhlIGxvd2VyIDggYml0cyBvZiBcYSBJIGFyZSB3cml0dGVuLiBcbgovLy8gICAgMDAwMDogQml0cyBbNzowXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAwMDAxOiBCaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAwMDEwOiBCaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDAxMTogQml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDAxMDA6IEJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAwMTAxOiBCaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDExMDogQml0cyBbNTU6NDhdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDAxMTE6IEJpdHMgWzYzOjU2XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMDAwOiBCaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTAwMTogQml0cyBbNzk6NzJdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDEwMTA6IEJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMDExOiBCaXRzIFs5NTo4OF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMTEwMDogQml0cyBbMTAzOjk2XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMTAxOiBCaXRzIFsxMTE6MTA0XSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMTEwOiBCaXRzIFsxMTk6MTEyXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMTExOiBCaXRzIFsxMjc6MTIwXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29uc3RydWN0ZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9pbnNlcnRfZXBpOChYLCBJLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjE2cWkoKF9fdjE2cWkpKF9fbTEyOGkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoSSksIChpbnQpKE4pKSkKCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGJ5IGZpcnN0IG1ha2luZyBhIGNvcHkgb2YKLy8vICAgIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHBhcmFtZXRlciwgYW5kIHRoZW4gaW5zZXJ0aW5nIHRoZSAzMi1iaXQKLy8vICAgIGludGVnZXIgcGFyYW1ldGVyIFxhIEkgYXQgdGhlIG9mZnNldCBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSB2YWx1ZQovLy8gICAgcGFyYW1ldGVyIFxhIE4uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9pbnNlcnRfZXBpMzIoX19tMTI4aSBYLCBpbnQgSSwgY29uc3QgaW50IE4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQSU5TUkQgLyBQSU5TUkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gWAovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhpcyB2ZWN0b3IgaXMgY29waWVkIHRvIHRoZQovLy8gICAgcmVzdWx0IGFuZCB0aGVuIG9uZSBvZiB0aGUgZm91ciBlbGVtZW50cyBpbiB0aGUgcmVzdWx0IHZlY3RvciBpcwovLy8gICAgcmVwbGFjZWQgYnkgXGEgSS4KLy8vIFxwYXJhbSBJCi8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHRoYXQgaXMgd3JpdHRlbiB0byB0aGUgcmVzdWx0IGJlZ2lubmluZyBhdCB0aGUgb2Zmc2V0Ci8vLyAgICBzcGVjaWZpZWQgYnkgXGEgTi4KLy8vIFxwYXJhbSBOCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUuIEJpdHMgWzE6MF0gc3BlY2lmeSB0aGUgYml0IG9mZnNldCBpbiB0aGUgcmVzdWx0IGF0Ci8vLyAgICB3aGljaCB0aGUgaW50ZWdlciBcYSBJIGlzIHdyaXR0ZW4uIFxuCi8vLyAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdCBhcmUgdXNlZCBmb3IgaW5zZXJ0aW9uLiBcbgovLy8gICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25zdHJ1Y3RlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2luc2VydF9lcGkzMihYLCBJLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjRzaSgoX192NHNpKShfX20xMjhpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoSSksIChpbnQpKE4pKSkKCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBDb25zdHJ1Y3RzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGJ5IGZpcnN0IG1ha2luZyBhIGNvcHkgb2YKLy8vICAgIHRoZSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHBhcmFtZXRlciwgYW5kIHRoZW4gaW5zZXJ0aW5nIHRoZSA2NC1iaXQKLy8vICAgIGludGVnZXIgcGFyYW1ldGVyIFxhIEksIHVzaW5nIHRoZSBpbW1lZGlhdGUgdmFsdWUgcGFyYW1ldGVyIFxhIE4gYXMgYW4KLy8vICAgIGluc2VydGlvbiBsb2NhdGlvbiBzZWxlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX2luc2VydF9lcGk2NChfX20xMjhpIFgsIGxvbmcgbG9uZyBJLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBJTlNSUSAvIFBJTlNSUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGlzIHZlY3RvciBpcyBjb3BpZWQgdG8gdGhlCi8vLyAgICByZXN1bHQgYW5kIHRoZW4gb25lIG9mIHRoZSB0d28gZWxlbWVudHMgaW4gdGhlIHJlc3VsdCB2ZWN0b3IgaXMgcmVwbGFjZWQKLy8vICAgIGJ5IFxhIEkuCi8vLyBccGFyYW0gSQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB0aGF0IGlzIHdyaXR0ZW4gdG8gdGhlIHJlc3VsdCBiZWdpbm5pbmcgYXQgdGhlIG9mZnNldAovLy8gICAgc3BlY2lmaWVkIGJ5IFxhIE4uCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXQgWzBdIHNwZWNpZmllcyB0aGUgYml0IG9mZnNldCBpbiB0aGUgcmVzdWx0IGF0Ci8vLyAgICB3aGljaCB0aGUgaW50ZWdlciBcYSBJIGlzIHdyaXR0ZW4uIFxuCi8vLyAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgcmVzdWx0IGFyZSB1c2VkIGZvciBpbnNlcnRpb24uIFxuCi8vLyAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSByZXN1bHQgYXJlIHVzZWQgZm9yIGluc2VydGlvbi4gXG4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25zdHJ1Y3RlZCB2YWx1ZXMuCiNkZWZpbmUgX21tX2luc2VydF9lcGk2NChYLCBJLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjJkaSgoX192MmRpKShfX20xMjhpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoSSksIChpbnQpKE4pKSkKI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCi8qIEV4dHJhY3QgaW50IGZyb20gcGFja2VkIGludGVnZXIgYXJyYXkgYXQgaW5kZXguICBUaGlzIHJldHVybnMgdGhlIGVsZW1lbnQKICogYXMgYSB6ZXJvIGV4dGVuZGVkIHZhbHVlLCBzbyBpdCBpcyB1bnNpZ25lZC4KICovCi8vLyBFeHRyYWN0cyBhbiA4LWJpdCBlbGVtZW50IGZyb20gdGhlIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YKLy8vICAgIFsxNiB4IGk4XSwgdXNpbmcgdGhlIGltbWVkaWF0ZSB2YWx1ZSBwYXJhbWV0ZXIgXGEgTiBhcyBhIHNlbGVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9leHRyYWN0X2VwaTgoX19tMTI4aSBYLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFWFRSQiAvIFBFWFRSQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXRzIFszOjBdIHNwZWNpZnkgd2hpY2ggOC1iaXQgdmVjdG9yIGVsZW1lbnQgZnJvbQovLy8gICAgdGhlIGFyZ3VtZW50IFxhIFggdG8gZXh0cmFjdCBhbmQgY29weSB0byB0aGUgcmVzdWx0LiBcbgovLy8gICAgMDAwMDogQml0cyBbNzowXSBvZiBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMDAwMTogQml0cyBbMTU6OF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMDEwOiBCaXRzIFsyMzoxNl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMDExOiBCaXRzIFszMToyNF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMTAwOiBCaXRzIFszOTozMl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMTAxOiBCaXRzIFs0Nzo0MF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMTEwOiBCaXRzIFs1NTo0OF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAwMTExOiBCaXRzIFs2Mzo1Nl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMDAwOiBCaXRzIFs3MTo2NF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMDAxOiBCaXRzIFs3OTo3Ml0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMDEwOiBCaXRzIFs4Nzo4MF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMDExOiBCaXRzIFs5NTo4OF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMTAwOiBCaXRzIFsxMDM6OTZdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTEwMTogQml0cyBbMTExOjEwNF0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMTEwOiBCaXRzIFsxMTk6MTEyXSBvZiB0aGUgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4gXG4KLy8vICAgIDExMTE6IEJpdHMgWzEyNzoxMjBdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLgovLy8gXHJldHVybnMgIEFuIHVuc2lnbmVkIGludGVnZXIsIHdob3NlIGxvd2VyIDggYml0cyBhcmUgc2VsZWN0ZWQgZnJvbSB0aGUKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgcGFyYW1ldGVyIGFuZCB0aGUgcmVtYWluaW5nIGJpdHMgYXJlIGFzc2lnbmVkCi8vLyAgICB6ZXJvcy4KI2RlZmluZSBfbW1fZXh0cmFjdF9lcGk4KFgsIE4pIFwKICAoKGludCkodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3YxNnFpKChfX3YxNnFpKShfX20xMjhpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTikpKQoKLy8vIEV4dHJhY3RzIGEgMzItYml0IGVsZW1lbnQgZnJvbSB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzQgeCBpMzJdLCB1c2luZyB0aGUgaW1tZWRpYXRlIHZhbHVlIHBhcmFtZXRlciBcYSBOIGFzIGEgc2VsZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2V4dHJhY3RfZXBpMzIoX19tMTI4aSBYLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFWFRSRCAvIFBFWFRSRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXRzIFsxOjBdIHNwZWNpZnkgd2hpY2ggMzItYml0IHZlY3RvciBlbGVtZW50IGZyb20KLy8vICAgIHRoZSBhcmd1bWVudCBcYSBYIHRvIGV4dHJhY3QgYW5kIGNvcHkgdG8gdGhlIHJlc3VsdC4gXG4KLy8vICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgcGFyYW1ldGVyIFxhIFggYXJlIGV4dHJhY3RlZC4gXG4KLy8vICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHRyYWN0ZWQuIFxuCi8vLyAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBwYXJhbWV0ZXIgXGEgWCBhcmUgZXh0cmFjdGVkLiBcbgovLy8gICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHBhcmFtZXRlciBcYSBYIGFyZSBleHJhY3RlZC4KLy8vIFxyZXR1cm5zICBBbiBpbnRlZ2VyLCB3aG9zZSBsb3dlciAzMiBiaXRzIGFyZSBzZWxlY3RlZCBmcm9tIHRoZSAxMjgtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBwYXJhbWV0ZXIgYW5kIHRoZSByZW1haW5pbmcgYml0cyBhcmUgYXNzaWduZWQgemVyb3MuCiNkZWZpbmUgX21tX2V4dHJhY3RfZXBpMzIoWCwgTikgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3ZlY19leHRfdjRzaSgoX192NHNpKShfX20xMjhpKShYKSwgKGludCkoTikpKQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIEV4dHJhY3RzIGEgNjQtYml0IGVsZW1lbnQgZnJvbSB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzIgeCBpNjRdLCB1c2luZyB0aGUgaW1tZWRpYXRlIHZhbHVlIHBhcmFtZXRlciBcYSBOIGFzIGEgc2VsZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBsb25nIGxvbmcgX21tX2V4dHJhY3RfZXBpNjQoX19tMTI4aSBYLCBjb25zdCBpbnQgTik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFWFRSUSAvIFBFWFRSUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBYCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gTgovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlLiBCaXQgWzBdIHNwZWNpZmllcyB3aGljaCA2NC1iaXQgdmVjdG9yIGVsZW1lbnQgZnJvbQovLy8gICAgdGhlIGFyZ3VtZW50IFxhIFggdG8gcmV0dXJuLiBcbgovLy8gICAgMDogQml0cyBbNjM6MF0gYXJlIHJldHVybmVkLiBcbgovLy8gICAgMTogQml0cyBbMTI3OjY0XSBhcmUgcmV0dXJuZWQuIFxuCi8vLyBccmV0dXJucyAgQSA2NC1iaXQgaW50ZWdlci4KI2RlZmluZSBfbW1fZXh0cmFjdF9lcGk2NChYLCBOKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmVjX2V4dF92MmRpKChfX3YyZGkpKF9fbTEyOGkpKFgpLCAoaW50KShOKSkpCiNlbmRpZiAvKiBfX3g4Nl82NCAqLwoKLyogU1NFNCAxMjgtYml0IFBhY2tlZCBJbnRlZ2VyIENvbXBhcmlzb25zLiAgKi8KLy8vIFRlc3RzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBiaXRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhcmUgYWxsCi8vLyAgICB6ZXJvcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgLyBQVEVTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX00KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBzZWxlY3Rpbmcgd2hpY2ggYml0cyB0byB0ZXN0IGluIG9wZXJhbmQgXGEgX19NLgovLy8gXHJldHVybnMgVFJVRSBpZiB0aGUgc3BlY2lmaWVkIGJpdHMgYXJlIGFsbCB6ZXJvczsgRkFMU0Ugb3RoZXJ3aXNlLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV90ZXN0el9zaTEyOChfX20xMjhpIF9fTSwgX19tMTI4aSBfX1YpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHRlc3R6MTI4KChfX3YyZGkpX19NLCAoX192MmRpKV9fVik7Cn0KCi8vLyBUZXN0cyB3aGV0aGVyIHRoZSBzcGVjaWZpZWQgYml0cyBpbiBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgYXJlIGFsbAovLy8gICAgb25lcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgLyBQVEVTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX00KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBzZWxlY3Rpbmcgd2hpY2ggYml0cyB0byB0ZXN0IGluIG9wZXJhbmQgXGEgX19NLgovLy8gXHJldHVybnMgVFJVRSBpZiB0aGUgc3BlY2lmaWVkIGJpdHMgYXJlIGFsbCBvbmVzOyBGQUxTRSBvdGhlcndpc2UuCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3Rlc3RjX3NpMTI4KF9fbTEyOGkgX19NLCBfX20xMjhpIF9fVikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wdGVzdGMxMjgoKF9fdjJkaSlfX00sIChfX3YyZGkpX19WKTsKfQoKLy8vIFRlc3RzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBiaXRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhcmUKLy8vICAgIG5laXRoZXIgYWxsIHplcm9zIG5vciBhbGwgb25lcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgLyBQVEVTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX00KLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXRzIHRvIGJlIHRlc3RlZC4KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBzZWxlY3Rpbmcgd2hpY2ggYml0cyB0byB0ZXN0IGluIG9wZXJhbmQgXGEgX19NLgovLy8gXHJldHVybnMgVFJVRSBpZiB0aGUgc3BlY2lmaWVkIGJpdHMgYXJlIG5laXRoZXIgYWxsIHplcm9zIG5vciBhbGwgb25lczsKLy8vICAgIEZBTFNFIG90aGVyd2lzZS4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdGVzdG56Y19zaTEyOChfX20xMjhpIF9fTSwgX19tMTI4aSBfX1YpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHRlc3RuemMxMjgoKF9fdjJkaSlfX00sIChfX3YyZGkpX19WKTsKfQoKLy8vIFRlc3RzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBiaXRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhcmUgYWxsCi8vLyAgICBvbmVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV90ZXN0X2FsbF9vbmVzKF9fbTEyOGkgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGJpdHMgdG8gYmUgdGVzdGVkLgovLy8gXHJldHVybnMgVFJVRSBpZiB0aGUgYml0cyBzcGVjaWZpZWQgaW4gdGhlIG9wZXJhbmQgYXJlIGFsbCBzZXQgdG8gMTsgRkFMU0UKLy8vICAgIG90aGVyd2lzZS4KI2RlZmluZSBfbW1fdGVzdF9hbGxfb25lcyhWKSBfbW1fdGVzdGNfc2kxMjgoKFYpLCBfbW1fY21wZXFfZXBpMzIoKFYpLCAoVikpKQoKLy8vIFRlc3RzIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBiaXRzIGluIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBhcmUKLy8vICAgIG5laXRoZXIgYWxsIHplcm9zIG5vciBhbGwgb25lcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fdGVzdF9taXhfb25lc196ZXJvcyhfX20xMjhpIE0sIF9fbTEyOGkgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gTQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGJpdHMgdG8gYmUgdGVzdGVkLgovLy8gXHBhcmFtIFYKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBzZWxlY3Rpbmcgd2hpY2ggYml0cyB0byB0ZXN0IGluIG9wZXJhbmQgXGEgTS4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIHNwZWNpZmllZCBiaXRzIGFyZSBuZWl0aGVyIGFsbCB6ZXJvcyBub3IgYWxsIG9uZXM7Ci8vLyAgICBGQUxTRSBvdGhlcndpc2UuCiNkZWZpbmUgX21tX3Rlc3RfbWl4X29uZXNfemVyb3MoTSwgVikgX21tX3Rlc3RuemNfc2kxMjgoKE0pLCAoVikpCgovLy8gVGVzdHMgd2hldGhlciB0aGUgc3BlY2lmaWVkIGJpdHMgaW4gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGFyZSBhbGwKLy8vICAgIHplcm9zLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV90ZXN0X2FsbF96ZXJvcyhfX20xMjhpIE0sIF9fbTEyOGkgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBURVNUIC8gUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gTQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGJpdHMgdG8gYmUgdGVzdGVkLgovLy8gXHBhcmFtIFYKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBzZWxlY3Rpbmcgd2hpY2ggYml0cyB0byB0ZXN0IGluIG9wZXJhbmQgXGEgTS4KLy8vIFxyZXR1cm5zIFRSVUUgaWYgdGhlIHNwZWNpZmllZCBiaXRzIGFyZSBhbGwgemVyb3M7IEZBTFNFIG90aGVyd2lzZS4KI2RlZmluZSBfbW1fdGVzdF9hbGxfemVyb3MoTSwgVikgX21tX3Rlc3R6X3NpMTI4ICgoTSksIChWKSkKCi8qIFNTRTQgNjQtYml0IFBhY2tlZCBJbnRlZ2VyIENvbXBhcmlzb25zLiAgKi8KLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIGZvciBlcXVhbGl0eS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVRUSAvIFBDTVBFUVEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9lcGk2NChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkaSlfX1YxID09IChfX3YyZGkpX19WMik7Cn0KCi8qIFNTRTQgUGFja2VkIEludGVnZXIgU2lnbi1FeHRlbnNpb24uICAqLwovLy8gU2lnbi1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIGVpZ2h0IDgtYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHRvIDE2LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoZSB1cHBlciBlaWdodCBlbGVtZW50cyBvZiB0aGUgaW5wdXQgdmVjdG9yCi8vLyAgICBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WU1hCVyAvIFBNT1ZTWEJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciBlaWdodCA4LWJpdCBlbGVtZW50cyBhcmUgc2lnbi0KLy8vICAgIGV4dGVuZGVkIHRvIDE2LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBzaWduLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwaThfZXBpMTYoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX1YsIChfX3YxNnFzKV9fViwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyksIF9fdjhoaSk7Cn0KCi8vLyBTaWduLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgZm91ciA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB0byAzMi1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBUaGUgdXBwZXIgdHdlbHZlIGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZTWEJEIC8gUE1PVlNYQkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4gVGhlIGxvd2VyIGZvdXIgOC1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICBzaWduLWV4dGVuZGVkIHRvIDMyLWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSBzaWduLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwaThfZXBpMzIoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX1YsIChfX3YxNnFzKV9fViwgMCwgMSwgMiwgMyksIF9fdjRzaSk7Cn0KCi8vLyBTaWduLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgdHdvIDgtYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMTYgeCBpOF0gdG8gNjQtYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIHVwcGVyIGZvdXJ0ZWVuIGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZTWEJRIC8gUE1PVlNYQlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4gVGhlIGxvd2VyIHR3byA4LWJpdCBlbGVtZW50cyBhcmUKLy8vICAgIHNpZ24tZXh0ZW5kZWQgdG8gNjQtYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHNpZ24tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXBpOF9lcGk2NChfX20xMjhpIF9fVikKewogIC8qIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHBlcmZvcm1zIGEgc2lnbmVkIGV4dGVuc2lvbiwgYnV0IF9fdjE2cWkgaXMgYSBjaGFyCiAgICAgd2hpY2ggbWF5IGJlIHNpZ25lZCBvciB1bnNpZ25lZCwgc28gdXNlIF9fdjE2cXMuICovCiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnFzKV9fViwgKF9fdjE2cXMpX19WLCAwLCAxKSwgX192MmRpKTsKfQoKLy8vIFNpZ24tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciBmb3VyIDE2LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdIHRvIDMyLWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uIFRoZSB1cHBlciBmb3VyIGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZTWFdEIC8gUE1PVlNYV0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4gVGhlIGxvd2VyIGZvdXIgMTYtYml0IGVsZW1lbnRzIGFyZQovLy8gICAgc2lnbi1leHRlbmRlZCB0byAzMi1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgc2lnbi1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkxNl9lcGkzMihfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fViwgKF9fdjhoaSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0c2kpOwp9CgovLy8gU2lnbi1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIHR3byAxNi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTE2XSB0byA2NC1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4KLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgdXBwZXIgc2l4IGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZTWFdRIC8gUE1PVlNYV1EgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XS4gVGhlIGxvd2VyIHR3byAxNi1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICAgc2lnbi1leHRlbmRlZCB0byA2NC1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgc2lnbi1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcGkxNl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fViwgKF9fdjhoaSlfX1YsIDAsIDEpLCBfX3YyZGkpOwp9CgovLy8gU2lnbi1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIHR3byAzMi1iaXQgaW50ZWdlciBlbGVtZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTMyXSB0byA2NC1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4KLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdLiBUaGUgdXBwZXIgdHdvIGVsZW1lbnRzIG9mIHRoZSBpbnB1dCB2ZWN0b3IKLy8vICAgIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZTWERRIC8gUE1PVlNYRFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIGxvd2VyIHR3byAzMi1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICBzaWduLWV4dGVuZGVkIHRvIDY0LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSBzaWduLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwaTMyX2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19WLCAoX192NHNpKV9fViwgMCwgMSksIF9fdjJkaSk7Cn0KCi8qIFNTRTQgUGFja2VkIEludGVnZXIgWmVyby1FeHRlbnNpb24uICAqLwovLy8gWmVyby1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIGVpZ2h0IDgtYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdIHRvIDE2LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uIFRoZSB1cHBlciBlaWdodCBlbGVtZW50cyBvZiB0aGUgaW5wdXQgdmVjdG9yCi8vLyAgICBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WWlhCVyAvIFBNT1ZaWEJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciBlaWdodCA4LWJpdCBlbGVtZW50cyBhcmUKLy8vICAgIHplcm8tZXh0ZW5kZWQgdG8gMTYtYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHplcm8tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXB1OF9lcGkxNihfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxdSlfX1YsIChfX3YxNnF1KV9fViwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyksIF9fdjhoaSk7Cn0KCi8vLyBaZXJvLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgZm91ciA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSB0byAzMi1iaXQgdmFsdWVzIGFuZCByZXR1cm5zIHRoZW0gaW4gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBUaGUgdXBwZXIgdHdlbHZlIGVsZW1lbnRzIG9mIHRoZSBpbnB1dAovLy8gICAgdmVjdG9yIGFyZSB1bnVzZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBNT1ZaWEJEIC8gUE1PVlpYQkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XS4gVGhlIGxvd2VyIGZvdXIgOC1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICB6ZXJvLWV4dGVuZGVkIHRvIDMyLWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSB6ZXJvLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwdThfZXBpMzIoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXUpX19WLCAoX192MTZxdSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0c2kpOwp9CgovLy8gWmVyby1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIHR3byA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaThdIHRvIDY0LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSB1cHBlciBmb3VydGVlbiBlbGVtZW50cyBvZiB0aGUgaW5wdXQKLy8vICAgIHZlY3RvciBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WWlhCUSAvIFBNT1ZaWEJRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uIFRoZSBsb3dlciB0d28gOC1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICB6ZXJvLWV4dGVuZGVkIHRvIDY0LWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIHRoZSB6ZXJvLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwdThfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXUpX19WLCAoX192MTZxdSlfX1YsIDAsIDEpLCBfX3YyZGkpOwp9CgovLy8gWmVyby1leHRlbmRzIGVhY2ggb2YgdGhlIGxvd2VyIGZvdXIgMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkxNl0gdG8gMzItYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXS4gVGhlIHVwcGVyIGZvdXIgZWxlbWVudHMgb2YgdGhlIGlucHV0Ci8vLyAgICB2ZWN0b3IgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlpYV0QgLyBQTU9WWlhXRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBUaGUgbG93ZXIgZm91ciAxNi1iaXQgZWxlbWVudHMgYXJlCi8vLyAgICB6ZXJvLWV4dGVuZGVkIHRvIDMyLWJpdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIHRoZSB6ZXJvLWV4dGVuZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2N2dGVwdTE2X2VwaTMyKF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aHUpX19WLCAoX192OGh1KV9fViwgMCwgMSwgMiwgMyksIF9fdjRzaSk7Cn0KCi8vLyBaZXJvLWV4dGVuZHMgZWFjaCBvZiB0aGUgbG93ZXIgdHdvIDE2LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIGEKLy8vICAgIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpMTZdIHRvIDY0LWJpdCB2YWx1ZXMgYW5kIHJldHVybnMgdGhlbSBpbgovLy8gICAgYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0uIFRoZSB1cHBlciBzaXggZWxlbWVudHMgb2YgdGhlIGlucHV0IHZlY3RvcgovLy8gICAgYXJlIHVudXNlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUE1PVlpYV1EgLyBQTU9WWlhXUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdLiBUaGUgbG93ZXIgdHdvIDE2LWJpdCBlbGVtZW50cyBhcmUKLy8vICAgIHplcm8tZXh0ZW5kZWQgdG8gNjQtYml0IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgdGhlIHplcm8tZXh0ZW5kZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0ZXB1MTZfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhodSlfX1YsIChfX3Y4aHUpX19WLCAwLCAxKSwgX192MmRpKTsKfQoKLy8vIFplcm8tZXh0ZW5kcyBlYWNoIG9mIHRoZSBsb3dlciB0d28gMzItYml0IGludGVnZXIgZWxlbWVudHMgb2YgYQovLy8gICAgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkzMl0gdG8gNjQtYml0IHZhbHVlcyBhbmQgcmV0dXJucyB0aGVtIGluCi8vLyAgICBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XS4gVGhlIHVwcGVyIHR3byBlbGVtZW50cyBvZiB0aGUgaW5wdXQgdmVjdG9yCi8vLyAgICBhcmUgdW51c2VkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQTU9WWlhEUSAvIFBNT1ZaWERRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uIFRoZSBsb3dlciB0d28gMzItYml0IGVsZW1lbnRzIGFyZQovLy8gICAgemVyby1leHRlbmRlZCB0byA2NC1iaXQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGk2NF0gY29udGFpbmluZyB0aGUgemVyby1leHRlbmRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRlcHUzMl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHN1KV9fViwgKF9fdjRzdSlfX1YsIDAsIDEpLCBfX3YyZGkpOwp9CgovKiBTU0U0IFBhY2sgd2l0aCBVbnNpZ25lZCBTYXR1cmF0aW9uLiAgKi8KLy8vIENvbnZlcnRzIDMyLWJpdCBzaWduZWQgaW50ZWdlcnMgZnJvbSBib3RoIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9wZXJhbmRzIGludG8gMTYtYml0IHVuc2lnbmVkIGludGVnZXJzLCBhbmQgcmV0dXJucyB0aGUgcGFja2VkIHJlc3VsdC4KLy8vICAgIFZhbHVlcyBncmVhdGVyIHRoYW4gMHhGRkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRkZGLiBWYWx1ZXMgbGVzcyB0aGFuCi8vLyAgICAweDAwMDAgYXJlIHNhdHVyYXRlZCB0byAweDAwMDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBBQ0tVU0RXIC8gUEFDS1VTRFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcyBhCi8vLyAgICBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGEgMTYtYml0IHVuc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gVmFsdWVzIGdyZWF0ZXIgdGhhbiAweEZGRkYgYXJlIHNhdHVyYXRlZCB0byAweEZGRkYuIFZhbHVlcwovLy8gICAgbGVzcyB0aGFuIDB4MDAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4MDAwMC4gVGhlIGNvbnZlcnRlZCBbNCB4IGkxNl0gdmFsdWVzCi8vLyAgICBhcmUgd3JpdHRlbiB0byB0aGUgbG93ZXIgNjQgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdLiBFYWNoIDMyLWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgc2lnbmVkIGludGVnZXIgYW5kIGlzIGNvbnZlcnRlZCB0byBhIDE2LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFZhbHVlcyBncmVhdGVyIHRoYW4gMHhGRkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRkZGLiBWYWx1ZXMKLy8vICAgIGxlc3MgdGhhbiAweDAwMDAgYXJlIHNhdHVyYXRlZCB0byAweDAwMDAuIFRoZSBjb252ZXJ0ZWQgWzQgeCBpMTZdIHZhbHVlcwovLy8gICAgYXJlIHdyaXR0ZW4gdG8gdGhlIGhpZ2hlciA2NCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcGFja3VzX2VwaTMyKF9fbTEyOGkgX19WMSwgX19tMTI4aSBfX1YyKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wYWNrdXNkdzEyOCgoX192NHNpKV9fVjEsIChfX3Y0c2kpX19WMik7Cn0KCi8qIFNTRTQgTXVsdGlwbGUgUGFja2VkIFN1bXMgb2YgQWJzb2x1dGUgRGlmZmVyZW5jZS4gICovCi8vLyBTdWJ0cmFjdHMgOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMgYW5kIGNvbXB1dGVzIHRoZSBhYnNvbHV0ZQovLy8gICAgdmFsdWVzIG9mIHRoZSBkaWZmZXJlbmNlcyB0byB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vICAgIFRoZW4gc3VtcyBvZiB0aGUgYWJzb2x1dGUgZGlmZmVyZW5jZXMgYXJlIHJldHVybmVkIGFjY29yZGluZyB0byB0aGUgYml0Ci8vLyAgICBmaWVsZHMgaW4gdGhlIGltbWVkaWF0ZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fbXBzYWRid19lcHU4KF9fbTEyOGkgWCwgX19tMTI4aSBZLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1QU0FEQlcgLyBNUFNBREJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFgKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIFkKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzE2IHggaThdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSBhYnNvbHV0ZSBkaWZmZXJlbmNlcyBhcmUgdG8KLy8vICAgIGJlIGNhbGN1bGF0ZWQsIGFjY29yZGluZyB0byB0aGUgZm9sbG93aW5nIGFsZ29yaXRobToKLy8vICAgIFxjb2RlCi8vLyAgICAvLyBNMiByZXByZXNlbnRzIGJpdCAyIG9mIHRoZSBpbW1lZGlhdGUgb3BlcmFuZAovLy8gICAgLy8gTTEwIHJlcHJlc2VudHMgYml0cyBbMTowXSBvZiB0aGUgaW1tZWRpYXRlIG9wZXJhbmQKLy8vICAgIGkgPSBNMiAqIDQ7Ci8vLyAgICBqID0gTTEwICogNDsKLy8vICAgIGZvciAoayA9IDA7IGsgPCA4OyBrID0gayArIDEpIHsKLy8vICAgICAgZDAgPSBhYnMoWFtpICsgayArIDBdIC0gWVtqICsgMF0pOwovLy8gICAgICBkMSA9IGFicyhYW2kgKyBrICsgMV0gLSBZW2ogKyAxXSk7Ci8vLyAgICAgIGQyID0gYWJzKFhbaSArIGsgKyAyXSAtIFlbaiArIDJdKTsKLy8vICAgICAgZDMgPSBhYnMoWFtpICsgayArIDNdIC0gWVtqICsgM10pOwovLy8gICAgICByW2tdID0gZDAgKyBkMSArIGQyICsgZDM7Ci8vLyAgICB9Ci8vLyAgICBcZW5kY29kZQovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgdGhlIHNldHMgb2YKLy8vICAgIGFic29sdXRlIGRpZmZlcmVuY2VzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4KI2RlZmluZSBfbW1fbXBzYWRid19lcHU4KFgsIFksIE0pIFwKICAoKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX21wc2FkYncxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShZKSwgKE0pKSkKCi8vLyBGaW5kcyB0aGUgbWluaW11bSB1bnNpZ25lZCAxNi1iaXQgZWxlbWVudCBpbiB0aGUgaW5wdXQgMTI4LWJpdAovLy8gICAgdmVjdG9yIG9mIFs4IHggdTE2XSBhbmQgcmV0dXJucyBpdCBhbmQgYWxvbmcgd2l0aCBpdHMgaW5kZXguCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBITUlOUE9TVVcgLyBQSE1JTlBPU1VXIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCB1MTZdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZhbHVlIHdoZXJlIGJpdHMgWzE1OjBdIGNvbnRhaW4gdGhlIG1pbmltdW0gdmFsdWUgZm91bmQKLy8vICAgIGluIHBhcmFtZXRlciBcYSBfX1YsIGJpdHMgWzE4OjE2XSBjb250YWluIHRoZSBpbmRleCBvZiB0aGUgbWluaW11bSB2YWx1ZQovLy8gICAgYW5kIHRoZSByZW1haW5pbmcgYml0cyBhcmUgc2V0IHRvIDAuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9taW5wb3NfZXB1MTYoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3BobWlucG9zdXcxMjgoKF9fdjhoaSlfX1YpOwp9CgovKiBIYW5kbGUgdGhlIHNzZTQuMiBkZWZpbml0aW9ucyBoZXJlLiAqLwoKLyogVGhlc2UgZGVmaW5pdGlvbnMgYXJlIG5vcm1hbGx5IGluIG5tbWludHJpbi5oLCBidXQgZ2NjIHB1dHMgdGhlbSBpbiBoZXJlCiAgIHNvIHdlJ2xsIGRvIHRoZSBzYW1lLiAgKi8KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2U0LjIiKSkpCgovKiBUaGVzZSBzcGVjaWZ5IHRoZSB0eXBlIG9mIGRhdGEgdGhhdCB3ZSdyZSBjb21wYXJpbmcuICAqLwojZGVmaW5lIF9TSUREX1VCWVRFX09QUyAgICAgICAgICAgICAgICAgMHgwMAojZGVmaW5lIF9TSUREX1VXT1JEX09QUyAgICAgICAgICAgICAgICAgMHgwMQojZGVmaW5lIF9TSUREX1NCWVRFX09QUyAgICAgICAgICAgICAgICAgMHgwMgojZGVmaW5lIF9TSUREX1NXT1JEX09QUyAgICAgICAgICAgICAgICAgMHgwMwoKLyogVGhlc2Ugc3BlY2lmeSB0aGUgdHlwZSBvZiBjb21wYXJpc29uIG9wZXJhdGlvbi4gICovCiNkZWZpbmUgX1NJRERfQ01QX0VRVUFMX0FOWSAgICAgICAgICAgICAweDAwCiNkZWZpbmUgX1NJRERfQ01QX1JBTkdFUyAgICAgICAgICAgICAgICAweDA0CiNkZWZpbmUgX1NJRERfQ01QX0VRVUFMX0VBQ0ggICAgICAgICAgICAweDA4CiNkZWZpbmUgX1NJRERfQ01QX0VRVUFMX09SREVSRUQgICAgICAgICAweDBjCgovKiBUaGVzZSBtYWNyb3Mgc3BlY2lmeSB0aGUgcG9sYXJpdHkgb2YgdGhlIG9wZXJhdGlvbi4gICovCiNkZWZpbmUgX1NJRERfUE9TSVRJVkVfUE9MQVJJVFkgICAgICAgICAweDAwCiNkZWZpbmUgX1NJRERfTkVHQVRJVkVfUE9MQVJJVFkgICAgICAgICAweDEwCiNkZWZpbmUgX1NJRERfTUFTS0VEX1BPU0lUSVZFX1BPTEFSSVRZICAweDIwCiNkZWZpbmUgX1NJRERfTUFTS0VEX05FR0FUSVZFX1BPTEFSSVRZICAweDMwCgovKiBUaGVzZSBtYWNyb3MgYXJlIHVzZWQgaW4gX21tX2NtcFhzdHJpKCkgdG8gc3BlY2lmeSB0aGUgcmV0dXJuLiAgKi8KI2RlZmluZSBfU0lERF9MRUFTVF9TSUdOSUZJQ0FOVCAgICAgICAgIDB4MDAKI2RlZmluZSBfU0lERF9NT1NUX1NJR05JRklDQU5UICAgICAgICAgIDB4NDAKCi8qIFRoZXNlIG1hY3JvcyBhcmUgdXNlZCBpbiBfbW1fY21wWHN0cmkoKSB0byBzcGVjaWZ5IHRoZSByZXR1cm4uICAqLwojZGVmaW5lIF9TSUREX0JJVF9NQVNLICAgICAgICAgICAgICAgICAgMHgwMAojZGVmaW5lIF9TSUREX1VOSVRfTUFTSyAgICAgICAgICAgICAgICAgMHg0MAoKLyogU1NFNC4yIFBhY2tlZCBDb21wYXJpc29uIEludHJpbnNpY3MuICAqLwovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBpbXBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0Ci8vLyAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fY21waXN0cm0oX19tMTI4aSBBLCBfX20xMjhpIEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUElTVFJNIC8gUENNUElTVFJNIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzLCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0sIGFuZCB0aGUgZm9ybWF0IG9mIHRoZSByZXR1cm4KLy8vICAgIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vICAgIEJpdCBbNl06IERldGVybWluZXMgd2hldGhlciB0aGUgcmVzdWx0IGlzIHplcm8tZXh0ZW5kZWQgb3IgZXhwYW5kZWQgdG8gMTYKLy8vICAgICAgICAgICAgIGJ5dGVzLiBcbgovLy8gICAgICAwOiBUaGUgcmVzdWx0IGlzIHplcm8tZXh0ZW5kZWQgdG8gMTYgYnl0ZXMuIFxuCi8vLyAgICAgIDE6IFRoZSByZXN1bHQgaXMgZXhwYW5kZWQgdG8gMTYgYnl0ZXMgKHRoaXMgZXhwYW5zaW9uIGlzIHBlcmZvcm1lZCBieQovLy8gICAgICAgICByZXBlYXRpbmcgZWFjaCBiaXQgOCBvciAxNiB0aW1lcykuCi8vLyBccmV0dXJucyBSZXR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdCBtYXNrIG9mCi8vLyAgICB0aGUgY29tcGFyaXNvbi4KI2RlZmluZSBfbW1fY21waXN0cm0oQSwgQiwgTSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wY21waXN0cm0xMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGltcGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IGluZGV4IG9mIHRoZQovLy8gICAgY29tcGFyaXNvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21waXN0cmkoX19tMTI4aSBBLCBfX20xMjhpIEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUElTVFJJIC8gUENNUElTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzLCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0sIGFuZCB0aGUgZm9ybWF0IG9mIHRoZSByZXR1cm4KLy8vICAgIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vICAgIEJpdCBbNl06IERldGVybWluZXMgd2hldGhlciB0aGUgaW5kZXggb2YgdGhlIGxvd2VzdCBzZXQgYml0IG9yIHRoZQovLy8gICAgICAgICAgICAgaGlnaGVzdCBzZXQgYml0IGlzIHJldHVybmVkLiBcbgovLy8gICAgICAwOiBUaGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IHNldCBiaXQuIFxuCi8vLyAgICAgIDE6IFRoZSBpbmRleCBvZiB0aGUgbW9zdCBzaWduaWZpY2FudCBzZXQgYml0LiBcbgovLy8gXHJldHVybnMgUmV0dXJucyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IGluZGV4IG9mIHRoZSBjb21wYXJpc29uLgojZGVmaW5lIF9tbV9jbXBpc3RyaShBLCBCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGlzdHJpMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciByZXByZXNlbnRpbmcgdGhlIHJlc3VsdAovLy8gICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tX2NtcGVzdHJtKF9fbTEyOGkgQSwgaW50IExBLCBfX20xMjhpIEIsIGludCBMQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVNUUk0gLyBQQ01QRVNUUk0gPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMsIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybSwgYW5kIHRoZSBmb3JtYXQgb2YgdGhlIHJldHVybgovLy8gICAgdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLiBcbgovLy8gICAgQml0IFs2XTogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSByZXN1bHQgaXMgemVyby1leHRlbmRlZCBvciBleHBhbmRlZCB0byAxNgovLy8gICAgICAgICAgICAgYnl0ZXMuIFxuCi8vLyAgICAgIDA6IFRoZSByZXN1bHQgaXMgemVyby1leHRlbmRlZCB0byAxNiBieXRlcy4gXG4KLy8vICAgICAgMTogVGhlIHJlc3VsdCBpcyBleHBhbmRlZCB0byAxNiBieXRlcyAodGhpcyBleHBhbnNpb24gaXMgcGVyZm9ybWVkIGJ5Ci8vLyAgICAgICAgIHJlcGVhdGluZyBlYWNoIGJpdCA4IG9yIDE2IHRpbWVzKS4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgYSAxMjgtYml0IGludGVnZXIgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IG1hc2sgb2YKLy8vICAgIHRoZSBjb21wYXJpc29uLgojZGVmaW5lIF9tbV9jbXBlc3RybShBLCBMQSwgQiwgTEIsIE0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGNtcGVzdHJtMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKExCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIGFuIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSByZXN1bHQgaW5kZXggb2YgdGhlCi8vLyAgICBjb21wYXJpc29uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBlc3RyaShfX20xMjhpIEEsIGludCBMQSwgX19tMTI4aSBCLCBpbnQgTEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVTVFJJIC8gUENNUEVTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEEKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExCCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzLCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0sIGFuZCB0aGUgZm9ybWF0IG9mIHRoZSByZXR1cm4KLy8vICAgIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vICAgIEJpdCBbNl06IERldGVybWluZXMgd2hldGhlciB0aGUgaW5kZXggb2YgdGhlIGxvd2VzdCBzZXQgYml0IG9yIHRoZQovLy8gICAgICAgICAgICAgaGlnaGVzdCBzZXQgYml0IGlzIHJldHVybmVkLiBcbgovLy8gICAgICAwOiBUaGUgaW5kZXggb2YgdGhlIGxlYXN0IHNpZ25pZmljYW50IHNldCBiaXQuIFxuCi8vLyAgICAgIDE6IFRoZSBpbmRleCBvZiB0aGUgbW9zdCBzaWduaWZpY2FudCBzZXQgYml0LiBcbgovLy8gXHJldHVybnMgUmV0dXJucyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgcmVzdWx0IGluZGV4IG9mIHRoZSBjb21wYXJpc29uLgojZGVmaW5lIF9tbV9jbXBlc3RyaShBLCBMQSwgQiwgTEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21wZXN0cmkxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCAoaW50KShMQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShMQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLyogU1NFNC4yIFBhY2tlZCBDb21wYXJpc29uIEludHJpbnNpY3MgYW5kIEVGbGFnIFJlYWRpbmcuICAqLwovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBpbXBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgYml0IG1hc2sgaXMgemVybyBhbmQgdGhlIGxlbmd0aCBvZiB0aGUKLy8vICAgIHN0cmluZyBpbiBcYSBCIGlzIHRoZSBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21waXN0cmEoX19tMTI4aSBBLCBfX20xMjhpIEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUElTVFJJIC8gUENNUElTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLiBcbgovLy8gXHJldHVybnMgUmV0dXJucyAxIGlmIHRoZSBiaXQgbWFzayBpcyB6ZXJvIGFuZCB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4KLy8vICAgIFxhIEIgaXMgdGhlIG1heGltdW07IG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBpc3RyYShBLCBCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGlzdHJpYTEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggaW1wbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIGJpdCBtYXNrIGlzIG5vbi16ZXJvLCBvdGhlcndpc2UsIHJldHVybnMKLy8vICAgIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGlzdHJjKF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSSSAvIFBDTVBJU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgYml0IG1hc2sgaXMgbm9uLXplcm8sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBpc3RyYyhBLCBCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGlzdHJpYzEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggaW1wbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIGJpdCAwIG9mIHRoZSByZXN1bHRpbmcgYml0IG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGlzdHJvKF9fbTEyOGkgQSwgX19tMTI4aSBCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBJU1RSSSAvIFBDTVBJU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgYml0IDAgb2YgdGhlIHJlc3VsdGluZyBiaXQgbWFzay4KI2RlZmluZSBfbW1fY21waXN0cm8oQSwgQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBpc3RyaW8xMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGltcGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyAxIGlmIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBBIGlzIGxlc3MgdGhhbgovLy8gICAgdGhlIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBpc3RycyhfX20xMjhpIEEsIF9fbTEyOGkgQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QSVNUUkkgLyBQQ01QSVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuIFxuCi8vLyBccmV0dXJucyBSZXR1cm5zIDEgaWYgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEEgaXMgbGVzcyB0aGFuIHRoZQovLy8gICAgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCiNkZWZpbmUgX21tX2NtcGlzdHJzKEEsIEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21waXN0cmlzMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBpbXBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQiBpcyBsZXNzIHRoYW4KLy8vICAgIHRoZSBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21waXN0cnooX19tMTI4aSBBLCBfX20xMjhpIEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUElTVFJJIC8gUENNUElTVFJJIDwvYz4KLy8vIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gQgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIDgtYml0IGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgd2hldGhlciB0aGUgY2hhcmFjdGVycyBhcmUgYnl0ZXMgb3IKLy8vICAgIHdvcmRzIGFuZCB0aGUgdHlwZSBvZiBjb21wYXJpc29uIHRvIHBlcmZvcm0uIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBEZXRlcm1pbmUgc291cmNlIGRhdGEgZm9ybWF0LiBcbgovLy8gICAgICAwMDogMTYgdW5zaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLgovLy8gXHJldHVybnMgUmV0dXJucyAxIGlmIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCIGlzIGxlc3MgdGhhbiB0aGUKLy8vICAgIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBpc3RyeihBLCBCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGlzdHJpejEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIDEgaWYgdGhlIGJpdCBtYXNrIGlzIHplcm8gYW5kIHRoZSBsZW5ndGggb2YgdGhlCi8vLyAgICBzdHJpbmcgaW4gXGEgQiBpcyB0aGUgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGVzdHJhKF9fbTEyOGkgQSwgaW50IExBLCBfX20xMjhpIEIsIGludCBMQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVNUUkkgLyBQQ01QRVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuCi8vLyBccmV0dXJucyBSZXR1cm5zIDEgaWYgdGhlIGJpdCBtYXNrIGlzIHplcm8gYW5kIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbgovLy8gICAgXGEgQiBpcyB0aGUgbWF4aW11bSwgb3RoZXJ3aXNlLCByZXR1cm5zIDAuCiNkZWZpbmUgX21tX2NtcGVzdHJhKEEsIExBLCBCLCBMQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBlc3RyaWExMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCAoaW50KShMQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBleHBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgcmVzdWx0aW5nIG1hc2sgaXMgbm9uLXplcm8sIG90aGVyd2lzZSwKLy8vICAgIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21wZXN0cmMoX19tMTI4aSBBLCBpbnQgTEEsIF9fbTEyOGkgQiwgaW50IExCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFU1RSSSAvIFBDTVBFU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExBCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBBLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQgovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQi4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IG9uIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgcmVzdWx0aW5nIG1hc2sgaXMgbm9uLXplcm8sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBlc3RyYyhBLCBMQSwgQiwgTEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21wZXN0cmljMTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKExCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLy8vIFVzZXMgdGhlIGltbWVkaWF0ZSBvcGVyYW5kIFxhIE0gdG8gcGVyZm9ybSBhIGNvbXBhcmlzb24gb2Ygc3RyaW5nCi8vLyAgICBkYXRhIHdpdGggZXhwbGljaXRseSBkZWZpbmVkIGxlbmd0aHMgdGhhdCBpcyBjb250YWluZWQgaW4gc291cmNlIG9wZXJhbmRzCi8vLyAgICBcYSBBIGFuZCBcYSBCLiBSZXR1cm5zIGJpdCAwIG9mIHRoZSByZXN1bHRpbmcgYml0IG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBpbnQgX21tX2NtcGVzdHJvKF9fbTEyOGkgQSwgaW50IExBLCBfX20xMjhpIEIsIGludCBMQiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQQ01QRVNUUkkgLyBQQ01QRVNUUkkgPC9jPgovLy8gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyBcbgovLy8gICAgICAwMTogOCB1bnNpZ25lZCB3b3JkcyBcbgovLy8gICAgICAxMDogMTYgc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDExOiA4IHNpZ25lZCB3b3JkcyBcbgovLy8gICAgQml0cyBbMzoyXTogRGV0ZXJtaW5lIGNvbXBhcmlzb24gdHlwZSBhbmQgYWdncmVnYXRpb24gbWV0aG9kLiBcbgovLy8gICAgICAwMDogU3Vic2V0OiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIGZvciBlcXVhbGl0eSB3aXRoIGFsbAovLy8gICAgICAgICAgdGhlIGNoYXJhY3RlcnMgaW4gXGEgQS4gXG4KLy8vICAgICAgMDE6IFJhbmdlczogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCB0byBcYSBBLiBUaGUgY29tcGFyaXNvbgovLy8gICAgICAgICAgYmFzaXMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGZvciBldmVuLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQSwKLy8vICAgICAgICAgIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgZm9yIG9kZC1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEuIFxuCi8vLyAgICAgIDEwOiBNYXRjaDogQ29tcGFyZSBlYWNoIHBhaXIgb2YgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXJzIGluIFxhIEEgYW5kCi8vLyAgICAgICAgICBcYSBCIGZvciBlcXVhbGl0eS4gXG4KLy8vICAgICAgMTE6IFN1YnN0cmluZzogU2VhcmNoIFxhIEIgZm9yIHN1YnN0cmluZyBtYXRjaGVzIG9mIFxhIEEuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBEZXRlcm1pbmUgd2hldGhlciB0byBwZXJmb3JtIGEgb25lJ3MgY29tcGxlbWVudCBvbiB0aGUgYml0Ci8vLyAgICAgICAgICAgICAgICBtYXNrIG9mIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuIFxuCi8vLyAgICAgIDAwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDAxOiBOZWdhdGUgdGhlIGJpdCBtYXNrLiBcbgovLy8gICAgICAxMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAxMTogTmVnYXRlIHRoZSBiaXQgbWFzayBvbmx5IGZvciBiaXRzIHdpdGggYW4gaW5kZXggbGVzcyB0aGFuIG9yIGVxdWFsCi8vLyAgICAgICAgICB0byB0aGUgc2l6ZSBvZiBcYSBBIG9yIFxhIEIuCi8vLyBccmV0dXJucyBSZXR1cm5zIGJpdCAwIG9mIHRoZSByZXN1bHRpbmcgYml0IG1hc2suCiNkZWZpbmUgX21tX2NtcGVzdHJvKEEsIExBLCBCLCBMQiwgTSkgXAogICgoaW50KV9fYnVpbHRpbl9pYTMyX3BjbXBlc3RyaW8xMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCAoaW50KShMQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoTEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShNKSkpCgovLy8gVXNlcyB0aGUgaW1tZWRpYXRlIG9wZXJhbmQgXGEgTSB0byBwZXJmb3JtIGEgY29tcGFyaXNvbiBvZiBzdHJpbmcKLy8vICAgIGRhdGEgd2l0aCBleHBsaWNpdGx5IGRlZmluZWQgbGVuZ3RocyB0aGF0IGlzIGNvbnRhaW5lZCBpbiBzb3VyY2Ugb3BlcmFuZHMKLy8vICAgIFxhIEEgYW5kIFxhIEIuIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQSBpcyBsZXNzIHRoYW4KLy8vICAgIHRoZSBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIGludCBfbW1fY21wZXN0cnMoX19tMTI4aSBBLCBpbnQgTEEsIF9fbTEyOGkgQiwgaW50IExCLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTVBFU1RSSSAvIFBDTVBFU1RSSSA8L2M+Ci8vLyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMgdG8gYmUKLy8vICAgIGNvbXBhcmVkLgovLy8gXHBhcmFtIExBCi8vLyAgICBBbiBpbnRlZ2VyIHRoYXQgc3BlY2lmaWVzIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBBLgovLy8gXHBhcmFtIEIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQgovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQi4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiA4LWJpdCBpbW1lZGlhdGUgb3BlcmFuZCBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGNoYXJhY3RlcnMgYXJlIGJ5dGVzIG9yCi8vLyAgICB3b3JkcyBhbmQgdGhlIHR5cGUgb2YgY29tcGFyaXNvbiB0byBwZXJmb3JtLiBcbgovLy8gICAgQml0cyBbMTowXTogRGV0ZXJtaW5lIHNvdXJjZSBkYXRhIGZvcm1hdC4gXG4KLy8vICAgICAgMDA6IDE2IHVuc2lnbmVkIGJ5dGVzIFxuCi8vLyAgICAgIDAxOiA4IHVuc2lnbmVkIHdvcmRzIFxuCi8vLyAgICAgIDEwOiAxNiBzaWduZWQgYnl0ZXMgXG4KLy8vICAgICAgMTE6IDggc2lnbmVkIHdvcmRzIFxuCi8vLyAgICBCaXRzIFszOjJdOiBEZXRlcm1pbmUgY29tcGFyaXNvbiB0eXBlIGFuZCBhZ2dyZWdhdGlvbiBtZXRob2QuIFxuCi8vLyAgICAgIDAwOiBTdWJzZXQ6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgZm9yIGVxdWFsaXR5IHdpdGggYWxsCi8vLyAgICAgICAgICB0aGUgY2hhcmFjdGVycyBpbiBcYSBBLiBcbgovLy8gICAgICAwMTogUmFuZ2VzOiBFYWNoIGNoYXJhY3RlciBpbiBcYSBCIGlzIGNvbXBhcmVkIHRvIFxhIEEuIFRoZSBjb21wYXJpc29uCi8vLyAgICAgICAgICBiYXNpcyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgZm9yIGV2ZW4taW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLAovLy8gICAgICAgICAgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCBmb3Igb2RkLWluZGV4ZWQgZWxlbWVudHMgaW4gXGEgQS4gXG4KLy8vICAgICAgMTA6IE1hdGNoOiBDb21wYXJlIGVhY2ggcGFpciBvZiBjb3JyZXNwb25kaW5nIGNoYXJhY3RlcnMgaW4gXGEgQSBhbmQKLy8vICAgICAgICAgIFxhIEIgZm9yIGVxdWFsaXR5LiBcbgovLy8gICAgICAxMTogU3Vic3RyaW5nOiBTZWFyY2ggXGEgQiBmb3Igc3Vic3RyaW5nIG1hdGNoZXMgb2YgXGEgQS4gXG4KLy8vICAgIEJpdHMgWzU6NF06IERldGVybWluZSB3aGV0aGVyIHRvIHBlcmZvcm0gYSBvbmUncyBjb21wbGVtZW50IGluIHRoZSBiaXQKLy8vICAgICAgICAgICAgICAgIG1hc2sgb2YgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4gXG4KLy8vICAgICAgMDA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMDE6IE5lZ2F0ZSB0aGUgYml0IG1hc2suIFxuCi8vLyAgICAgIDEwOiBObyBlZmZlY3QuIFxuCi8vLyAgICAgIDExOiBOZWdhdGUgdGhlIGJpdCBtYXNrIG9ubHkgZm9yIGJpdHMgd2l0aCBhbiBpbmRleCBsZXNzIHRoYW4gb3IgZXF1YWwKLy8vICAgICAgICAgIHRvIHRoZSBzaXplIG9mIFxhIEEgb3IgXGEgQi4gXG4KLy8vIFxyZXR1cm5zIFJldHVybnMgMSBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQSBpcyBsZXNzIHRoYW4gdGhlCi8vLyAgICBtYXhpbXVtLCBvdGhlcndpc2UsIHJldHVybnMgMC4KI2RlZmluZSBfbW1fY21wZXN0cnMoQSwgTEEsIEIsIExCLCBNKSBcCiAgKChpbnQpX19idWlsdGluX2lhMzJfcGNtcGVzdHJpczEyOCgoX192MTZxaSkoX19tMTI4aSkoQSksIChpbnQpKExBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKEIpLCAoaW50KShMQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE0pKSkKCi8vLyBVc2VzIHRoZSBpbW1lZGlhdGUgb3BlcmFuZCBcYSBNIHRvIHBlcmZvcm0gYSBjb21wYXJpc29uIG9mIHN0cmluZwovLy8gICAgZGF0YSB3aXRoIGV4cGxpY2l0bHkgZGVmaW5lZCBsZW5ndGhzIHRoYXQgaXMgY29udGFpbmVkIGluIHNvdXJjZSBvcGVyYW5kcwovLy8gICAgXGEgQSBhbmQgXGEgQi4gUmV0dXJucyAxIGlmIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCIGlzIGxlc3MgdGhhbgovLy8gICAgdGhlIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gaW50IF9tbV9jbXBlc3RyeihfX20xMjhpIEEsIGludCBMQSwgX19tMTI4aSBCLCBpbnQgTEIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEVTVFJJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzIHRvIGJlCi8vLyAgICBjb21wYXJlZC4KLy8vIFxwYXJhbSBMQQovLy8gICAgQW4gaW50ZWdlciB0aGF0IHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcgaW4gXGEgQS4KLy8vIFxwYXJhbSBCCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcyB0byBiZQovLy8gICAgY29tcGFyZWQuCi8vLyBccGFyYW0gTEIKLy8vICAgIEFuIGludGVnZXIgdGhhdCBzcGVjaWZpZXMgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIFxhIEIuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gOC1iaXQgaW1tZWRpYXRlIG9wZXJhbmQgc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBjaGFyYWN0ZXJzIGFyZSBieXRlcyBvcgovLy8gICAgd29yZHMgYW5kIHRoZSB0eXBlIG9mIGNvbXBhcmlzb24gdG8gcGVyZm9ybS4gXG4KLy8vICAgIEJpdHMgWzE6MF06IERldGVybWluZSBzb3VyY2UgZGF0YSBmb3JtYXQuIFxuCi8vLyAgICAgIDAwOiAxNiB1bnNpZ25lZCBieXRlcyAgXG4KLy8vICAgICAgMDE6IDggdW5zaWduZWQgd29yZHMgXG4KLy8vICAgICAgMTA6IDE2IHNpZ25lZCBieXRlcyBcbgovLy8gICAgICAxMTogOCBzaWduZWQgd29yZHMgXG4KLy8vICAgIEJpdHMgWzM6Ml06IERldGVybWluZSBjb21wYXJpc29uIHR5cGUgYW5kIGFnZ3JlZ2F0aW9uIG1ldGhvZC4gXG4KLy8vICAgICAgMDA6IFN1YnNldDogRWFjaCBjaGFyYWN0ZXIgaW4gXGEgQiBpcyBjb21wYXJlZCBmb3IgZXF1YWxpdHkgd2l0aCBhbGwKLy8vICAgICAgICAgIHRoZSBjaGFyYWN0ZXJzIGluIFxhIEEuIFxuCi8vLyAgICAgIDAxOiBSYW5nZXM6IEVhY2ggY2hhcmFjdGVyIGluIFxhIEIgaXMgY29tcGFyZWQgdG8gXGEgQS4gVGhlIGNvbXBhcmlzb24KLy8vICAgICAgICAgIGJhc2lzIGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCBmb3IgZXZlbi1pbmRleGVkIGVsZW1lbnRzIGluIFxhIEEsCi8vLyAgICAgICAgICBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIGZvciBvZGQtaW5kZXhlZCBlbGVtZW50cyBpbiBcYSBBLiBcbgovLy8gICAgICAxMDogTWF0Y2g6IENvbXBhcmUgZWFjaCBwYWlyIG9mIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVycyBpbiBcYSBBIGFuZAovLy8gICAgICAgICAgXGEgQiBmb3IgZXF1YWxpdHkuIFxuCi8vLyAgICAgIDExOiBTdWJzdHJpbmc6IFNlYXJjaCBcYSBCIGZvciBzdWJzdHJpbmcgbWF0Y2hlcyBvZiBcYSBBLiBcbgovLy8gICAgQml0cyBbNTo0XTogRGV0ZXJtaW5lIHdoZXRoZXIgdG8gcGVyZm9ybSBhIG9uZSdzIGNvbXBsZW1lbnQgb24gdGhlIGJpdAovLy8gICAgICAgICAgICAgICAgbWFzayBvZiB0aGUgY29tcGFyaXNvbiByZXN1bHRzLiBcbgovLy8gICAgICAwMDogTm8gZWZmZWN0LiBcbgovLy8gICAgICAwMTogTmVnYXRlIHRoZSBiaXQgbWFzay4gXG4KLy8vICAgICAgMTA6IE5vIGVmZmVjdC4gXG4KLy8vICAgICAgMTE6IE5lZ2F0ZSB0aGUgYml0IG1hc2sgb25seSBmb3IgYml0cyB3aXRoIGFuIGluZGV4IGxlc3MgdGhhbiBvciBlcXVhbAovLy8gICAgICAgICAgdG8gdGhlIHNpemUgb2YgXGEgQSBvciBcYSBCLgovLy8gXHJldHVybnMgUmV0dXJucyAxIGlmIHRoZSBsZW5ndGggb2YgdGhlIHN0cmluZyBpbiBcYSBCIGlzIGxlc3MgdGhhbiB0aGUKLy8vICAgIG1heGltdW0sIG90aGVyd2lzZSwgcmV0dXJucyAwLgojZGVmaW5lIF9tbV9jbXBlc3RyeihBLCBMQSwgQiwgTEIsIE0pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl9wY21wZXN0cml6MTI4KChfX3YxNnFpKShfX20xMjhpKShBKSwgKGludCkoTEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChpbnQpKExCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoTSkpKQoKLyogU1NFNC4yIENvbXBhcmUgUGFja2VkIERhdGEgLS0gR3JlYXRlciBUaGFuLiAgKi8KLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0IHZhbHVlcyBvZiB0aGUgMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzIHRvIGRldGVybWluZSBpZiB0aGUgdmFsdWVzIGluIHRoZSBmaXJzdCBvcGVyYW5kIGFyZQovLy8gICAgZ3JlYXRlciB0aGFuIHRob3NlIGluIHRoZSBzZWNvbmQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUENNUEdUUSAvIFBDTVBHVFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WMQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fVjIKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBndF9lcGk2NChfX20xMjhpIF9fVjEsIF9fbTEyOGkgX19WMikKewogIHJldHVybiAoX19tMTI4aSkoKF9fdjJkaSlfX1YxID4gKF9fdjJkaSlfX1YyKTsKfQoKLyogU1NFNC4yIEFjY3VtdWxhdGUgQ1JDMzIuICAqLwovLy8gQWRkcyB0aGUgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIHRoZQovLy8gICAgdW5zaWduZWQgY2hhciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENSQzMyQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX0MKLy8vICAgIEFuIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byBhZGQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2Ygb3BlcmFuZAovLy8gICAgXGEgIF9fRC4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEFuIHVuc2lnbmVkIDgtYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCi8vLyBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgovLy8gICAgb3BlcmFuZCBcYSBfX0QuCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NyYzMyX3U4KHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIGNoYXIgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMycWkoX19DLCBfX0QpOwp9CgovLy8gQWRkcyB0aGUgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIHRoZQovLy8gICAgdW5zaWduZWQgc2hvcnQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDUkMzMlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19DCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKLy8vICAgIFxhIF9fRC4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyIG9wZXJhbmQgdXNlZCB0byBjb21wdXRlIHRoZSBDUkMtMzJDIGNoZWNrc3VtLgovLy8gXHJldHVybnMgVGhlIHJlc3VsdCBvZiBhZGRpbmcgb3BlcmFuZCBcYSBfX0MgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YKLy8vICAgIG9wZXJhbmQgXGEgX19ELgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jcmMzMl91MTYodW5zaWduZWQgaW50IF9fQywgdW5zaWduZWQgc2hvcnQgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMyaGkoX19DLCBfX0QpOwp9CgovLy8gQWRkcyB0aGUgZmlyc3QgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCi8vLyAgICB0aGUgc2Vjb25kIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDUkMzMkwgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19DCi8vLyAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKLy8vICAgIFxhIF9fRC4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIG9wZXJhbmQgdXNlZCB0byBjb21wdXRlIHRoZSBDUkMtMzJDIGNoZWNrc3VtLgovLy8gXHJldHVybnMgVGhlIHJlc3VsdCBvZiBhZGRpbmcgb3BlcmFuZCBcYSBfX0MgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2YKLy8vICAgIG9wZXJhbmQgXGEgX19ELgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jcmMzMl91MzIodW5zaWduZWQgaW50IF9fQywgdW5zaWduZWQgaW50IF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMnNpKF9fQywgX19EKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKLy8vICAgIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQwovLy8gICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCi8vLyAgICBcYSBfX0QuCi8vLyBccGFyYW0gX19ECi8vLyAgICBBbiB1bnNpZ25lZCA2NC1iaXQgaW50ZWdlciBvcGVyYW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgQ1JDLTMyQyBjaGVja3N1bS4KLy8vIFxyZXR1cm5zIFRoZSByZXN1bHQgb2YgYWRkaW5nIG9wZXJhbmQgXGEgX19DIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCi8vLyAgICBvcGVyYW5kIFxhIF9fRC4Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3JjMzJfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX0MsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0QpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3JjMzJkaShfX0MsIF9fRCk7Cn0KI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNpbmNsdWRlIDxwb3BjbnRpbnRyaW4uaD4KCiNlbmRpZiAvKiBfX1NNTUlOVFJJTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0tLSB4ODZncHJpbnRyaW4uaCAtIFg4NiBHUFIgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZHUFJJTlRSSU5fSAojZGVmaW5lIF9fWDg2R1BSSU5UUklOX0gKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fSFJFU0VUX18pCiNpbmNsdWRlIDxocmVzZXRpbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1VJTlRSX18pCiNpbmNsdWRlIDx1aW50cmludHJpbi5oPgojZW5kaWYKCiNkZWZpbmUgX19TU0NfTUFSSyhUYWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hc21fXyBfX3ZvbGF0aWxlX18oIm1vdmwgJSVlYngsICUlZWF4OyBtb3ZsICUwLCAlJWVieDsgLmJ5dGUgMHg2NCwgMHg2NywgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgIjB4OTA7IG1vdmwgJSVlYXgsICUlZWJ4OyIgOjoiaSIoVGFnKSAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgOiAiJWVheCIpOwoKI2VuZGlmIC8qIF9fWDg2R1BSSU5UUklOX0ggKi8KAHhzYXZlY2ludHJpbi5oAC8qPT09LS0tLSB4dGVzdGludHJpbi5oIC0gWFRFU1QgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8eHRlc3RpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fWFRFU1RJTlRSSU5fSAojZGVmaW5lIF9fWFRFU1RJTlRSSU5fSAoKLyogeHRlc3QgcmV0dXJucyBub24temVybyBpZiB0aGUgaW5zdHJ1Y3Rpb24gaXMgZXhlY3V0ZWQgd2l0aGluIGFuIFJUTSBvciBhY3RpdmUKICogSExFIHJlZ2lvbi4gKi8KLyogRklYTUU6IFRoaXMgY2FuIGJlIGFuIGVpdGhlciBvciBmb3IgUlRNL0hMRS4gRGVhbCB3aXRoIHRoaXMgd2hlbiBITEUgaXMKICogc3VwcG9ydGVkLiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQKICAgIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygicnRtIikpKQogICAgX3h0ZXN0KHZvaWQpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfeHRlc3QoKTsKfQoKI2VuZGlmCgBvcGVubXBfd3JhcHBlcnMvbWF0aC5oAEBcdytAAFxcAHVuc3VwcG9ydGVkIGVuY29kaW5nAHJvb3QvZmlsZXMvAENvbXBpbGVyOjpDb3B5IGNhbGxlZCEAZXh0ZXJuYWwvcmVnZXgtcmUyL3JlMi9uZmEuY2MAXGIAQ2MARHVwbG95YW4ATmtvAE5sAFN5cmlhYwBTSUdBQlJUAHVuZXhwZWN0ZWQgcF90eXBlAEluaXQoKSBkaWQgbm90IHNldCBnZXRjcHVfZm5fAHN5bWJvbCBvdXQgb2YgcmFuZ2UAY2hhcgB1bnNpZ25lZCBpbnQARGQAY28AbHMAcnMAZ3QAIQBSZXF1ZXN0ZWQgcHJlZml4IHNpemUgAD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgB0cmVlLT5Jc0J0cmVlKCkAICgALCBsZW4gPSAAXSBoYXMgYW4gaW52YWxpZCBsZW5ndGggAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL2ludGVybmFsL2VzY2FwaW5nLmNjAG5vAGluaXR5AG5ld19oICE9IG51bGxwdHIAdy0+d2FpdHAtPmNvbmQgPT0gbnVsbHB0cgBSZWFkZXJVbmxvY2sgAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vamFjb2JpLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9vY3QuYwBFQ0RTQSBLZXlHZW4gZmFpbGVkCgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2NpcGhlci9lX2Flcy5jAERpZmZpZS1IZWxsbWFuIHJvdXRpbmVzAEVDREggcm91dGluZXMAa3l0aGUucHJvdG8uQW5hbHlzaXNSZXF1ZXN0LnJldmlzaW9uAGt5dGhlLnByb3RvLkluZGV4ZWRDb21waWxhdGlvbi5JbmRleC5yZXZpc2lvbnMAa3l0aGUucHJvdG8uY29tbW9uLk9yaWdpbi5yZXZpc2lvbgBreXRoZS9wcm90by9maWxlY29udGV4dC5wcm90bwAtWGNsYW5nLW9ubHk9AC9yb290AD09AD4AU3lzdGVtIGhlYWRlciBwcmVmaXg6IABObyBGaWxlUmVmIGZvciAAZXh0ZXJuYWwva3l0aGUva3l0aGUvY3h4L2luZGV4ZXIvY3h4L2luZGV4ZWRfcGFyZW50X21hcC5jYwAvKj09PS0tLS0tLS0tLSBhdng1MTJ2bGJmMTZpbnRyaW4uaCAtIEFWWDUxMl9CRjE2IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxiZjE2aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMlZMQkYxNklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTEJGMTZJTlRSSU5fSAoKdHlwZWRlZiBzaG9ydCBfX20xMjhiaCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpLCBfX2FsaWduZWRfXygxNikpKTsKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIFwKICAgICAgICAgICAgICAgICBfX3RhcmdldF9fKCJhdng1MTJ2bCwgYXZ4NTEyYmYxNiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgXAogICAgICAgICAgICAgICAgIF9fdGFyZ2V0X18oImF2eDUxMnZsLCBhdng1MTJiZjE2IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciA2NCBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRuZTJwc19wYmgoX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4YmgpX19idWlsdGluX2lhMzJfY3Z0bmUycHMyYmYxNl8xMjgoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikgX19CKTsKfQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1cKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQSBvciBfX0IuIEEgMCBtZWFucyBlbGVtZW50IGZyb20gX19XLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDY0IGJpdHMgY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0bmUycHNfcGJoKF9fbTEyOGJoIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9jdnRuZTJwc19wYmgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCi8vLyBDb252ZXJ0IFR3byBQYWNrZWQgU2luZ2xlIERhdGEgdG8gT25lIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FMlBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BIG9yIF9fQi4gQSAwIG1lYW5zIGVsZW1lbnQgaXMgemVyby4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIHdob3NlIGxvd2VyIDY0IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciA2NCBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRuZTJwc19wYmgoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9jdnRuZTJwc19wYmgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdIHdob3NlIGxvd2VyIDEyOCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0IsIGFuZCBoaWdoZXIgMTI4IGJpdHMgY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZiaCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dG5lMnBzX3BiaChfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTZiaClfX2J1aWx0aW5faWEzMl9jdnRuZTJwczJiZjE2XzI1NigoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKSBfX0IpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0Egb3IgX19CLiBBIDAgbWVhbnMgZWxlbWVudCBmcm9tIF9fVy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XSB3aG9zZSBsb3dlciAxMjggYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDEyOCBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2YmggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dG5lMnBzX3BiaChfX20yNTZiaCBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9jdnRuZTJwc19wYmgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCi8vLyBDb252ZXJ0IFR3byBQYWNrZWQgU2luZ2xlIERhdGEgdG8gT25lIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FMlBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQSBvciBfX0IuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMTI4IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAxMjggYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmJoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0bmUycHNfcGJoKF9fbW1hc2sxNiBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9jdnRuZTJwc19wYmgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0EsIGFuZCBoaWdoZXIgNjQgYml0cyBhcmUgMC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRuZXBzX3BiaChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMTI4X21hc2soKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBTaW5nbGUgRGF0YSB0byBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1cKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA0LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQS4gQSAwIG1lYW5zIGVsZW1lbnQgZnJvbSBfX1cuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XSB3aG9zZSBsb3dlciA2NCBiaXRzIGNvbWUgZnJvbQovLy8gICAgY29udmVyc2lvbiBvZiBfX0EsIGFuZCBoaWdoZXIgNjQgYml0cyBhcmUgMC4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4YmggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dG5lcHNfcGJoKF9fbTEyOGJoIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMTI4X21hc2soKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOClfX1UpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDQtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIGNvbnZlcnNpb24gb2YgX19BLiBBIDAgbWVhbnMgZWxlbWVudCBpcyB6ZXJvLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgNjQgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19BLCBhbmQgaGlnaGVyIDY0IGJpdHMgYXJlIDAuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGJoIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0bmVwc19wYmgoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMTI4X21hc2soKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KV9fVSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBTaW5nbGUgRGF0YSB0byBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIGNvbWVzIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGJoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0bmVwc19wYmgoX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tMTI4YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzI1Nl9tYXNrKChfX3Y4c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBTaW5nbGUgRGF0YSB0byBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1cKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQS4gQSAwIG1lYW5zIGVsZW1lbnQgZnJvbSBfX1cuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XSBjb21lcyBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhiaCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0bmVwc19wYmgoX19tMTI4YmggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl8yNTZfbWFzaygoX192OHNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQS4gQSAwIG1lYW5zIGVsZW1lbnQgaXMgemVyby4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdIGNvbWVzIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGJoIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0bmVwc19wYmgoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX20xMjhiaClfX2J1aWx0aW5faWEzMl9jdnRuZXBzMmJmMTZfMjU2X21hc2soKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpX19VKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbWVzIGZyb20gIERvdCBQcm9kdWN0IG9mCi8vLyAgX19BLCBfX0IgYW5kIF9fRApzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9kcGJmMTZfcHMoX19tMTI4IF9fRCwgX19tMTI4YmggX19BLCBfX20xMjhiaCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9kcGJmMTZwc18xMjgoKF9fdjRzZilfX0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQik7Cn0KCi8vLyBEb3QgUHJvZHVjdCBvZiBCRjE2IFBhaXJzIEFjY3VtdWxhdGVkIGludG8gUGFja2VkIFNpbmdsZSBQcmVjaXNpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBfX0EgYW5kIF9fQidzIGRvdCBwcm9kdWN0IGFjY3VtdWxhdGVkIHdpdGggX19ELiBBIDAgbWVhbnMgX19ELgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19kcGJmMTZfcHMoX19tMTI4IF9fRCwgX19tbWFzazggX19VLCBfX20xMjhiaCBfX0EsIF9fbTEyOGJoIF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fZHBiZjE2X3BzKF9fRCwgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX0QpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgOC1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgX19BIGFuZCBfX0IncyBkb3QgcHJvZHVjdCBhY2N1bXVsYXRlZCB3aXRoIF9fRC4gQSAwIG1lYW5zIDAuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbWVzIGZyb20gIERvdCBQcm9kdWN0IG9mCi8vLyAgX19BLCBfX0IgYW5kIF9fRApzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9kcGJmMTZfcHMoX19tbWFzazggX19VLCBfX20xMjggX19ELCBfX20xMjhiaCBfX0EsIF9fbTEyOGJoIF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fZHBiZjE2X3BzKF9fRCwgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29tZXMgZnJvbSAgRG90IFByb2R1Y3Qgb2YKLy8vICBfX0EsIF9fQiBhbmQgX19ECnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2RwYmYxNl9wcyhfX20yNTYgX19ELCBfX20yNTZiaCBfX0EsIF9fbTI1NmJoIF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2RwYmYxNnBzXzI1NigoX192OHNmKV9fRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19CKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgMTYtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIF9fQSBhbmQgX19CJ3MgZG90IHByb2R1Y3QgYWNjdW11bGF0ZWQgd2l0aCBfX0QuIEEgMCBtZWFucyBfX0QuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbWVzIGZyb20gIERvdCBQcm9kdWN0IG9mCi8vLyAgX19BLCBfX0IgYW5kIF9fRApzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2RwYmYxNl9wcyhfX20yNTYgX19ELCBfX21tYXNrOCBfX1UsIF9fbTI1NmJoIF9fQSwgX19tMjU2YmggX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9kcGJmMTZfcHMoX19ELCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fRCk7Cn0KCi8vLyBEb3QgUHJvZHVjdCBvZiBCRjE2IFBhaXJzIEFjY3VtdWxhdGVkIGludG8gUGFja2VkIFNpbmdsZSBQcmVjaXNpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDgtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIF9fQSBhbmQgX19CJ3MgZG90IHByb2R1Y3QgYWNjdW11bGF0ZWQgd2l0aCBfX0QuIEEgMCBtZWFucyAwLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfZHBiZjE2X3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fRCwgX19tMjU2YmggX19BLCBfX20yNTZiaCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2RwYmYxNl9wcyhfX0QsIF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCi8vLyBDb252ZXJ0IE9uZSBTaW5nbGUgZmxvYXQgRGF0YSB0byBPbmUgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORVBTMkJGMTYgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSBmbG9hdCBkYXRhLgovLy8gXHJldHVybnMgQSBiZjE2IGRhdGEgd2hvc2Ugc2lnbiBmaWVsZCBhbmQgZXhwb25lbnQgZmllbGQga2VlcCB1bmNoYW5nZWQsCi8vLyAgICBhbmQgZnJhY3Rpb24gZmllbGQgaXMgdHJ1bmNhdGVkIHRvIDcgYml0cy4Kc3RhdGljIF9faW5saW5lX18gX19iZmxvYXQxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX21tX2N2dG5lc3Nfc2JoKGZsb2F0IF9fQSkgewogIF9fdjRzZiBfX1YgPSB7X19BLCAwLCAwLCAwfTsKICBfX3Y4aGkgX19SID0gX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzEyOF9tYXNrKAogICAgICAoX192NHNmKV9fViwgKF9fdjhoaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIChfX21tYXNrOCktMSk7CiAgcmV0dXJuIF9fUlswXTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIEJGMTYgRGF0YSB0byBQYWNrZWQgZmxvYXQgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbWUgZnJvbSBjb252ZXJ0aW9uIG9mIF9fQQpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9tbTI1Nl9jdnRwYmhfcHMoX19tMTI4YmggX19BKSB7CiAgcmV0dXJuIF9tbTI1Nl9jYXN0c2kyNTZfcHMoKF9fbTI1NmkpX21tMjU2X3NsbGlfZXBpMzIoCiAgICAgIChfX20yNTZpKV9tbTI1Nl9jdnRlcGkxNl9lcGkzMigoX19tMTI4aSlfX0EpLCAxNikpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgQkYxNiBEYXRhIHRvIFBhY2tlZCBmbG9hdCBEYXRhIHVzaW5nIHplcm9pbmcgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrLiBFbGVtZW50cyBhcmUgemVyb2VkIG91dCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sKLy8vICAgIGJpdCBpcyBub3Qgc2V0LgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbWUgZnJvbSBjb252ZXJ0aW9uIG9mIF9fQQpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRwYmhfcHMoX19tbWFzazggX19VLCBfX20xMjhiaCBfX0EpIHsKICByZXR1cm4gX21tMjU2X2Nhc3RzaTI1Nl9wcygoX19tMjU2aSlfbW0yNTZfc2xsaV9lcGkzMigKICAgICAgKF9fbTI1NmkpX21tMjU2X21hc2t6X2N2dGVwaTE2X2VwaTMyKChfX21tYXNrOClfX1UsIChfX20xMjhpKV9fQSksIDE2KSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBCRjE2IERhdGEgdG8gUGFja2VkIGZsb2F0IERhdGEgdXNpbmcgbWVyZ2luZyBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBccGFyYW0gX19TCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBFbGVtZW50cyBhcmUgY29waWVkIGZyb20gX19TIHdoZW4KLy8vICAgICB0aGUgY29ycmVzcG9uZGluZyBtYXNrIGJpdCBpcyBub3Qgc2V0LgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSA4LWJpdCBtYXNrLiBFbGVtZW50cyBhcmUgemVyb2VkIG91dCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sKLy8vICAgIGJpdCBpcyBub3Qgc2V0LgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGJmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbWUgZnJvbSBjb252ZXJ0aW9uIG9mIF9fQQpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBiaF9wcyhfX20yNTYgX19TLCBfX21tYXNrOCBfX1UsIF9fbTEyOGJoIF9fQSkgewogIHJldHVybiBfbW0yNTZfY2FzdHNpMjU2X3BzKChfX20yNTZpKV9tbTI1Nl9tYXNrX3NsbGlfZXBpMzIoCiAgICAgIChfX20yNTZpKV9fUywgKF9fbW1hc2s4KV9fVSwgKF9fbTI1NmkpX21tMjU2X2N2dGVwaTE2X2VwaTMyKChfX20xMjhpKV9fQSksCiAgICAgIDE2KSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgAvKj09PS0tLS0gYXZ4NTEydmxid2ludHJpbi5oIC0gQVZYNTEyVkwgYW5kIEFWWDUxMkJXIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMnZsYndpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxCV0lOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWTEJXSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJidyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJidyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCi8qIEludGVnZXIgY29tcGFyZSAqLwoKI2RlZmluZSBfbW1fY21wX2VwaThfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfY21wYjEyOF9tYXNrKChfX3YxNnFpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXBpOF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXBiMTI4X21hc2soKF9fdjE2cWkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobSkpKQoKI2RlZmluZSBfbW1fY21wX2VwdThfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMTYpX19idWlsdGluX2lhMzJfdWNtcGIxMjhfbWFzaygoX192MTZxaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXB1OF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl91Y21wYjEyOF9tYXNrKChfX3YxNnFpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwaThfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfY21wYjI1Nl9tYXNrKChfX3YzMnFpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXBpOF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl9jbXBiMjU2X21hc2soKF9fdjMycWkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwdThfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrMzIpX19idWlsdGluX2lhMzJfdWNtcGIyNTZfbWFzaygoX192MzJxaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMzIpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19jbXBfZXB1OF9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2szMilfX2J1aWx0aW5faWEzMl91Y21wYjI1Nl9tYXNrKChfX3YzMnFpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikobSkpKQoKI2RlZmluZSBfbW1fY21wX2VwaTE2X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wdzEyOF9tYXNrKChfX3Y4aGkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfY21wX2VwaTE2X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfY21wdzEyOF9tYXNrKChfX3Y4aGkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShtKSkpCgojZGVmaW5lIF9tbV9jbXBfZXB1MTZfbWFzayhhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wdzEyOF9tYXNrKChfX3Y4aGkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19jbXBfZXB1MTZfbWFzayhtLCBhLCBiLCBwKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl91Y21wdzEyOF9tYXNrKChfX3Y4aGkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKGIpLCAoaW50KShwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKG0pKSkKCiNkZWZpbmUgX21tMjU2X2NtcF9lcGkxNl9tYXNrKGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXB3MjU2X21hc2soKF9fdjE2aGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcF9lcGkxNl9tYXNrKG0sIGEsIGIsIHApIFwKICAoKF9fbW1hc2sxNilfX2J1aWx0aW5faWEzMl9jbXB3MjU2X21hc2soKF9fdjE2aGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShiKSwgKGludCkocCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikobSkpKQoKI2RlZmluZSBfbW0yNTZfY21wX2VwdTE2X21hc2soYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX3VjbXB3MjU2X21hc2soKF9fdjE2aGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2sobSwgYSwgYiwgcCkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX3VjbXB3MjU2X21hc2soKF9fdjE2aGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoYiksIChpbnQpKHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShtKSkpCgojZGVmaW5lIF9tbV9jbXBlcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fY21wZ2VfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fbWFza19jbXBndF9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcGk4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fY21wbHRfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tX21hc2tfY21wbmVxX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfY21wZ2VfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwaThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBndF9lcGk4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcGk4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXBpOF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGk4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfY21wbHRfZXBpOF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpOF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcGk4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGk4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbmVxX2VwaThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpOF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX21hc2tfY21wZXFfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fY21wZ2VfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tX2NtcGd0X2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW1fbWFza19jbXBndF9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcHU4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX21hc2tfY21wbGVfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fY21wbHRfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tX2NtcG5lcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tX21hc2tfY21wbmVxX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZXFfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfY21wZ2VfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfR0UpCiNkZWZpbmUgX21tMjU2X2NtcGd0X2VwdThfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdThfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9HVCkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBndF9lcHU4X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdThfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcHU4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbGVfZXB1OF9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHU4X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfY21wbHRfZXB1OF9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1OF9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTFQpCiNkZWZpbmUgX21tMjU2X2NtcG5lcV9lcHU4X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHU4X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wbmVxX2VwdThfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1OF9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwaTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXBpMTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwaTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXBpMTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXBpMTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcGkxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXBpMTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwaTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwaTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwaTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwaTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcGkxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcGkxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcGkxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbV9jbXBlcV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW1fbWFza19jbXBlcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tX2NtcGdlX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbV9tYXNrX2NtcGdlX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW1fY21wZ3RfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW1fY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tX21hc2tfY21wZ3RfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW1fbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbV9jbXBsZV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbV9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW1fbWFza19jbXBsZV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tX2NtcGx0X2VwdTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbV9tYXNrX2NtcGx0X2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tX21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW1fY21wbmVxX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tX2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbV9tYXNrX2NtcG5lcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbV9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgojZGVmaW5lIF9tbTI1Nl9jbXBlcV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9FUSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBlcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfRVEpCiNkZWZpbmUgX21tMjU2X2NtcGdlX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0dFKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGdlX2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9HRSkKI2RlZmluZSBfbW0yNTZfY21wZ3RfZXB1MTZfbWFzayhBLCBCKSBcCiAgICBfbW0yNTZfY21wX2VwdTE2X21hc2soKEEpLCAoQiksIF9NTV9DTVBJTlRfR1QpCiNkZWZpbmUgX21tMjU2X21hc2tfY21wZ3RfZXB1MTZfbWFzayhrLCBBLCBCKSBcCiAgICBfbW0yNTZfbWFza19jbXBfZXB1MTZfbWFzaygoayksIChBKSwgKEIpLCBfTU1fQ01QSU5UX0dUKQojZGVmaW5lIF9tbTI1Nl9jbXBsZV9lcHUxNl9tYXNrKEEsIEIpIFwKICAgIF9tbTI1Nl9jbXBfZXB1MTZfbWFzaygoQSksIChCKSwgX01NX0NNUElOVF9MRSkKI2RlZmluZSBfbW0yNTZfbWFza19jbXBsZV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTEUpCiNkZWZpbmUgX21tMjU2X2NtcGx0X2VwdTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX0xUKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcGx0X2VwdTE2X21hc2soaywgQSwgQikgXAogICAgX21tMjU2X21hc2tfY21wX2VwdTE2X21hc2soKGspLCAoQSksIChCKSwgX01NX0NNUElOVF9MVCkKI2RlZmluZSBfbW0yNTZfY21wbmVxX2VwdTE2X21hc2soQSwgQikgXAogICAgX21tMjU2X2NtcF9lcHUxNl9tYXNrKChBKSwgKEIpLCBfTU1fQ01QSU5UX05FKQojZGVmaW5lIF9tbTI1Nl9tYXNrX2NtcG5lcV9lcHUxNl9tYXNrKGssIEEsIEIpIFwKICAgIF9tbTI1Nl9tYXNrX2NtcF9lcHUxNl9tYXNrKChrKSwgKEEpLCAoQiksIF9NTV9DTVBJTlRfTkUpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKXsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2FkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N1Yl9lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zdWJfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zdWJfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3N1Yl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3ViX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FkZF9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hZGRfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2FkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hZGRfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJfZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc3ViX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3ViX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc3ViX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3ViX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zdWJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3ViX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsbG9fZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bGxvX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bGxvX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tdWxsb19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bGxvX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGxvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYmxlbmRfZXBpOCAoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19XKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX1csCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX2VwaTggKF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fVykKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYgKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAgKF9fdjMycWkpIF9fVywKICAgICAgICAgICAgICAgKF9fdjMycWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2JsZW5kX2VwaTE2IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fVykKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjggKChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAoX192OGhpKSBfX1csCiAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JsZW5kX2VwaTE2IChfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX1cpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX1csCiAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hYnNfZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hYnNfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWJzX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hYnNfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWJzX2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYWJzX2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Fic19lcGk4IChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X2Fic19lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hYnNfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYWJzX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Fic19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2Fic19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hYnNfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfYWJzX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hYnNfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9hYnNfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wYWNrc19lcGkzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wYWNrc19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BhY2tzX2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wYWNrc19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3BhY2tzX2VwaTMyKF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3BhY2tzX2VwaTMyKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3BhY2tzX2VwaTMyKF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9wYWNrc19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wYWNrc19lcGkxNihfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wYWNrc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wYWNrc19lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fcGFja3NfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGFja3NfZXBpMTYoX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGFja3NfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGFja3NfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3BhY2tzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BhY2t1c19lcGkzMihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wYWNrdXNfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wYWNrdXNfZXBpMzIoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3BhY2t1c19lcGkzMihfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3BhY2t1c19lcGkzMihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3BhY2t1c19lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9wYWNrdXNfZXBpMzIoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wYWNrdXNfZXBpMTYoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9wYWNrdXNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wYWNrdXNfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fcGFja3VzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcGFja3VzX2VwaTE2KF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfcGFja3VzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfcGFja3VzX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3BhY2t1c19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkc19lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hZGRzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkc19lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FkZHNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hZGRzX2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYWRkc19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYWRkc19lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYWRkc19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYWRkc19lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYWRkc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FkZHNfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYWRkc19lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZHNfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9hZGRzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRzX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9hZGRzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRzX2VwdTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX2FkZHNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hZGRzX2VwdTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fYWRkc19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FkZHNfZXB1OChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hZGRzX2VwdTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hZGRzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hZGRzX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hZGRzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYWRkc19lcHUxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hZGRzX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYWRkc19lcHUxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2FkZHNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FkZHNfZXB1MTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2FkZHNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2F2Z19lcHU4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hdmdfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hdmdfZXB1OChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hdmdfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hdmdfZXB1OChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYXZnX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYXZnX2VwdTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfYXZnX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYXZnX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9hdmdfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hdmdfZXB1MTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fYXZnX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYXZnX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2F2Z19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2F2Z19lcHUxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2F2Z19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfZXBpOChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tYXhfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXBpOChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWF4X2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X2VwaTgoX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbWF4X2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWF4X2VwaTgoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21heF9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21heF9lcGkxNihfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tYXhfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21heF9lcGkxNihfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21heF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9tYXhfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfZXB1OChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9tYXhfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYXhfZXB1OChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWF4X2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWF4X2VwdTggKF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21heF9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21heF9lcHU4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9tYXhfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tYXhfZXB1MTYoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWF4X2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWF4X2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tYXhfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYXhfZXB1MTYoX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9tYXhfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYXhfZXB1MTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbWF4X2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwaTgoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWluX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX21pbl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcGk4KF9fbW1hc2szMiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NigoX19tbWFzazMyKV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X21pbl9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX21pbl9lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9taW5fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9taW5fZXBpMTYoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWluX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9taW5fZXBpMTYoX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9taW5fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbWluX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwdTgoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fbWluX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbWluX2VwdTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX21pbl9lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21pbl9lcHU4IChfX21tYXNrMzIgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9taW5fZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19taW5fZXB1OChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fTSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfbWluX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWluX2VwdTE2KF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21pbl9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21pbl9lcHUxNihfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbWluX2VwdTE2KF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfbWluX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWluX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X21pbl9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2h1ZmZsZV9lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NodWZmbGVfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NodWZmbGVfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NodWZmbGVfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zaHVmZmxlX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zaHVmZmxlX2VwaTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zaHVmZmxlX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJzX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3N1YnNfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJzX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc3Vic19lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3N1YnNfZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zdWJzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zdWJzX2VwaTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zdWJzX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdWJzX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zdWJzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Vic19lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zdWJzX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Vic19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3N1YnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1YnNfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3N1YnNfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1YnNfZXB1OChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc3Vic19lcHU4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3N1YnNfZXB1OChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zdWJzX2VwdTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Vic19lcHU4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1YnNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3N1YnNfZXB1OChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3N1YnNfZXB1OChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3N1YnNfZXB1MTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3N1YnNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zdWJzX2VwdTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3N1YnNfZXB1MTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zdWJzX2VwdTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwKICAgICAgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Vic19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3Vic19lcHUxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3Vic19lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV4MnZhcl9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0ksIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJoaTEyOCgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19wZXJtdXRleDJ2YXJfZXBpMTYoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19JLCBfX21tYXNrOCBfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fcGVybXV0ZXgydmFyX2VwaTE2KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcGVybXV0ZXgydmFyX2VwaTE2IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fSSwKICAgICAgICAgICAgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fcGVybXV0ZXgydmFyX2VwaTE2KF9fQSwgX19JLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV4MnZhcl9lcGkxNihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0ksIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaTJ2YXJoaTI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fSSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4MnZhcl9lcGkxNihfX20yNTZpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrMl9wZXJtdXRleDJ2YXJfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19JLCBfX21tYXNrMTYgX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3Blcm11dGV4MnZhcl9lcGkxNihfX0EsIF9fSSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19JKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV4MnZhcl9lcGkxNiAoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19JLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9wZXJtdXRleDJ2YXJfZXBpMTYoX19BLCBfX0ksIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYWRkdWJzX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX21hZGR1YnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X21hZGR1YnNfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tYWRkdWJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tYWRkdWJzX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fWCwKICAgICAgICAgICAgICAgICAgICAgICAgICBfX20yNTZpIF9fWSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9tYWRkdWJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYWRkdWJzX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9tYWRkdWJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19tYWRkX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbWFkZF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9tYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbWFkZF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9tYWRkX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tYWRkX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfbWFkZF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHNlcGkxNl9lcGk4IChfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0c2VwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRzZXBpMTZfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnN3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0c2VwaTE2X2VwaTggKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92c3diMjU2X21hc2sgKChfX3YxNmhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAoX19tbWFzazE2KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGkxNl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRzZXBpMTZfZXBpOCAoX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR1c2VwaTE2X2VwaTggKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR1c2VwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHVzZXBpMTZfZXBpOCAoX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2IxMjhfbWFzayAoKF9fdjhoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dXNlcGkxNl9lcGk4IChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2sxNikgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR1c2VwaTE2X2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08sCiAgICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0dXNlcGkxNl9lcGk4IChfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdnVzd2IyNTZfbWFzayAoKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dGVwaTE2X2VwaTggKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKAogICAgICBfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGhpKV9fQSwgX192OHFpKSwKICAgICAgKF9fdjhxaSl7MCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0sIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwKICAgICAgMTIsIDEzLCAxNCwgMTUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkxNl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfcG1vdndiMTI4X21hc2sgKChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fTywKICAgICAgICAgICAgICAgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTE2X2VwaTggKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3Btb3Z3YjEyOF9tYXNrICgoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICBfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z3YjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4aGkpIF9fQSwgX19NKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Zzd2IxMjhtZW1fbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192OGhpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHVzZXBpMTZfc3RvcmV1X2VwaTggKHZvaWQgKiBfX1AsIF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjEyOG1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3Y4aGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTE2X2VwaTggKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNmhpKSBfX0EsIF9fdjE2cWkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGkxNl9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbTI1Nl9jdnRlcGkxNl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcGkxNl9lcGk4IChfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tMjU2X2N2dGVwaTE2X2VwaTgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2cWkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTE2X3N0b3JldV9lcGk4ICh2b2lkICogX19QLCBfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3Btb3Z3YjI1Nm1lbV9tYXNrICgoX192MTZxaSAqKSBfX1AsIChfX3YxNmhpKSBfX0EsIF9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92c3diMjU2bWVtX21hc2sgKChfX3YxNnFpICopIF9fUCwgKF9fdjE2aGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dXNlcGkxNl9zdG9yZXVfZXBpOCAodm9pZCAqIF9fUCwgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9wbW92dXN3YjI1Nm1lbV9tYXNrICgoX192MTZxaSopIF9fUCwgKF9fdjE2aGkpIF9fQSwgX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsaHJzX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tdWxocnNfZXBpMTYoX19YLCBfX1kpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tdWxocnNfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fbXVsaHJzX2VwaTE2KF9fWCwgX19ZKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsaHJzX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhyc19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bGhyc19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhyc19lcGkxNihfX1gsIF9fWSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bGhpX2VwdTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tdWxoaV9lcHUxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bGhpX2VwdTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGhpX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsaGlfZXB1MTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhpX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bGhpX2VwdTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhpX2VwdTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX211bGhpX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9tdWxoaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X211bGhpX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX211bGhpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbXVsaGlfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X211bGhpX2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X211bGhpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3VucGFja2hpX2VwaTgoX19tMTI4aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2toaV9lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOCgoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV91bnBhY2toaV9lcGk4KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2toaV9lcGk4KF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfdW5wYWNraGlfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfdW5wYWNraGlfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoKF9fbW1hc2szMilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfdW5wYWNraGlfZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdW5wYWNraGlfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV91bnBhY2toaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel91bnBhY2toaV9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5wYWNraGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3VucGFja2hpX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bnBhY2toaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel91bnBhY2toaV9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bnBhY2toaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza191bnBhY2tsb19lcGk4KF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5wYWNrbG9fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfdW5wYWNrbG9fZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fdW5wYWNrbG9fZXBpOChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdW5wYWNrbG9fZXBpOChfX20yNTZpIF9fVywgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3VucGFja2xvX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3VucGFja2xvX2VwaTgoX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3VucGFja2xvX2VwaTgoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3VucGFja2xvX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfdW5wYWNrbG9fZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3VucGFja2xvX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza191bnBhY2tsb19lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfdW5wYWNrbG9fZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfdW5wYWNrbG9fZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXBpOF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9jdnRlcGk4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaThfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9jdnRlcGk4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaThfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfY3Z0ZXBpOF9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpOF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2N2dGVwaThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcHU4X2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1OF9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0ZXB1OF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9jdnRlcHU4X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jdnRlcHU4X2VwaTE2IChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2N2dGVwdThfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCgojZGVmaW5lIF9tbV9tYXNrX3NodWZmbGVoaV9lcGkxNihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHVmZmxlaGlfZXBpMTYoKEEpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoVykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2h1ZmZsZWhpX2VwaTE2KFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NodWZmbGVoaV9lcGkxNigoQSksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHVmZmxlaGlfZXBpMTYoVywgVSwgQSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zaHVmZmxlaGlfZXBpMTYoKEEpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVoaV9lcGkxNihVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NodWZmbGVoaV9lcGkxNigoQSksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX21hc2tfc2h1ZmZsZWxvX2VwaTE2KFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NodWZmbGVsb19lcGkxNigoQSksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHVmZmxlbG9fZXBpMTYoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2h1ZmZsZWxvX2VwaTE2KChBKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NodWZmbGVsb19lcGkxNihXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NodWZmbGVsb19lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NodWZmbGVsb19lcGkxNihVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NodWZmbGVsb19lcGkxNigoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2xsdl9lcGkxNihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNsbHYxNmhpKChfX3YxNmhpKV9fQSwgKF9fdjE2aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsdl9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbHZfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NsbHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zbGx2X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2xsdjhoaSgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zbGx2X2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zbGx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsdl9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zbGx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsX2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zbGxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zbGxfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NsbF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NsbF9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2xsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbF9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zbGxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2xsaV9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zbGxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2xsaV9lcGkxNiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zbGxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2xsaV9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2xsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NsbGlfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIHVuc2lnbmVkIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NsbGlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Jsdl9lcGkxNihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybHYxNmhpKChfX3YxNmhpKV9fQSwgKF9fdjE2aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3Jsdl9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NybHZfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NybHZfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmx2X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JsdjhoaSgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zcmx2X2VwaTE2KF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3Jsdl9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmx2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYXZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmF2MTZoaSgoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NyYXZfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmF2X2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmF2X2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3Jhdl9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNyYXY4aGkoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3Jhdl9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3Jhdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NyYXZfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3Jhdl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NyYV9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JhX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JhX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NyYV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NyYV9lcGkxNihfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3JhX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NyYV9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmFfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc3JhaV9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmFpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JhaV9lcGkxNihfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NyYWlfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmFpX2VwaTE2KF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmFpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JhaV9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgdW5zaWduZWQgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3JhaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybF9lcGkxNihfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc3JsX2VwaTE2IChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zcmxfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zcmxfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NybF9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zcmxfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3JsX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NybGlfZXBpMTYoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NybGlfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc3JsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NybGlfZXBpMTYoX19tMjU2aSBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBpbnQgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zcmxpX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc3JsaV9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgaW50IF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc3JsaV9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdl9lcGkxNiAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZfZXBpMTYgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4ICgoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92X2VwaTE2IChfX20yNTZpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAoX192MTZoaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tb3ZfZXBpMTYgKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NiAoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX21vdl9lcGk4IChfX20xMjhpIF9fVywgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9tb3ZfZXBpOCAoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4ICgoX19tbWFzazE2KSBfX1UsCiAgICAgICAgICAgICAgICAoX192MTZxaSkgX19BLAogICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9tbV9zZXR6ZXJvX3NpMTI4ICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbW92X2VwaTggKF9fbTI1NmkgX19XLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYgKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJxaSkgX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X21vdl9lcGk4IChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYgKChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAgIChfX3YzMnFpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYgKCkpOwp9CgoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2V0MV9lcGk4IChfX20xMjhpIF9fTywgX19tbWFzazE2IF9fTSwgY2hhciBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0MV9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NldDFfZXBpOCAoX19tbWFzazE2IF9fTSwgY2hhciBfX0EpCnsKIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldDFfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NldDFfZXBpOCAoX19tMjU2aSBfX08sIF9fbW1hc2szMiBfX00sIGNoYXIgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldDFfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpIF9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zZXQxX2VwaTggKF9fbW1hc2szMiBfX00sIGNoYXIgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldDFfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2xvYWR1X2VwaTE2ICh2b2lkIGNvbnN0ICpfX1ApCnsKICBzdHJ1Y3QgX19sb2FkdV9lcGkxNiB7CiAgICBfX20xMjhpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTE2KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2xvYWR1X2VwaTE2IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192OGhpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZHVfZXBpMTYgKF9fbW1hc2s4IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1aGkxMjhfbWFzayAoKGNvbnN0IF9fdjhoaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjhoaSkKICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19zaTEyOCAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZHVfZXBpMTYgKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTE2IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfZXBpMTYqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZHVfZXBpMTYgKF9fbTI1NmkgX19XLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVoaTI1Nl9tYXNrICgoY29uc3QgX192MTZoaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfbG9hZHVfZXBpMTYgKF9fbW1hc2sxNiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdWhpMjU2X21hc2sgKChjb25zdCBfX3YxNmhpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MTZoaSkKICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2xvYWR1X2VwaTggKHZvaWQgY29uc3QgKl9fUCkKewogIHN0cnVjdCBfX2xvYWR1X2VwaTggewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9lcGk4KilfX1ApLT5fX3Y7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2xvYWR1X2VwaTggKF9fbTEyOGkgX19XLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVxaTEyOF9tYXNrICgoY29uc3QgX192MTZxaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazE2KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbG9hZHVfZXBpOCAoX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9sb2FkZHF1cWkxMjhfbWFzayAoKGNvbnN0IF9fdjE2cWkgKikgX19QLAogICAgICAgICAgICAgICAgIChfX3YxNnFpKQogICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4ICgpLAogICAgICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbG9hZHVfZXBpOCAodm9pZCBjb25zdCAqX19QKQp7CiAgc3RydWN0IF9fbG9hZHVfZXBpOCB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogIHJldHVybiAoKGNvbnN0IHN0cnVjdCBfX2xvYWR1X2VwaTgqKV9fUCktPl9fdjsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfbG9hZHVfZXBpOCAoX19tMjU2aSBfX1csIF9fbW1hc2szMiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfbG9hZGRxdXFpMjU2X21hc2sgKChjb25zdCBfX3YzMnFpICopIF9fUCwKICAgICAgICAgICAgICAgICAoX192MzJxaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrMzIpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9sb2FkdV9lcGk4IChfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2xvYWRkcXVxaTI1Nl9tYXNrICgoY29uc3QgX192MzJxaSAqKSBfX1AsCiAgICAgICAgICAgICAgICAgKF9fdjMycWkpCiAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYgKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2szMikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tMTI4aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpMTYgewogICAgX19tMTI4aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9lcGkxNiopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZXVfZXBpMTYgKHZvaWQgKl9fUCwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1aGkxMjhfbWFzayAoKF9fdjhoaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192OGhpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3RvcmV1X2VwaTE2ICh2b2lkICpfX1AsIF9fbTI1NmkgX19BKQp7CiAgc3RydWN0IF9fc3RvcmV1X2VwaTE2IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpMTYqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmV1X2VwaTE2ICh2b2lkICpfX1AsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BKQp7CiAgX19idWlsdGluX2lhMzJfc3RvcmVkcXVoaTI1Nl9tYXNrICgoX192MTZoaSAqKSBfX1AsCiAgICAgICAgICAgICAoX192MTZoaSkgX19BLAogICAgICAgICAgICAgKF9fbW1hc2sxNikgX19VKTsKfQoKc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zdG9yZXVfZXBpOCAodm9pZCAqX19QLCBfX20xMjhpIF9fQSkKewogIHN0cnVjdCBfX3N0b3JldV9lcGk4IHsKICAgIF9fbTEyOGlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgKChzdHJ1Y3QgX19zdG9yZXVfZXBpOCopX19QKS0+X192ID0gX19BOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zdG9yZXVfZXBpOCAodm9pZCAqX19QLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSkKewogIF9fYnVpbHRpbl9pYTMyX3N0b3JlZHF1cWkxMjhfbWFzayAoKF9fdjE2cWkgKikgX19QLAogICAgICAgICAgICAgKF9fdjE2cWkpIF9fQSwKICAgICAgICAgICAgIChfX21tYXNrMTYpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3RvcmV1X2VwaTggKHZvaWQgKl9fUCwgX19tMjU2aSBfX0EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfZXBpOCB7CiAgICBfX20yNTZpX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X2VwaTgqKV9fUCktPl9fdiA9IF9fQTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc3RvcmV1X2VwaTggKHZvaWQgKl9fUCwgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0EpCnsKICBfX2J1aWx0aW5faWEzMl9zdG9yZWRxdXFpMjU2X21hc2sgKChfX3YzMnFpICopIF9fUCwKICAgICAgICAgICAgIChfX3YzMnFpKSBfX0EsCiAgICAgICAgICAgICAoX19tbWFzazMyKSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0X2VwaThfbWFzayAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jbXBuZXFfZXBpOF9tYXNrIChfbW1fYW5kX3NpMTI4KF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfdGVzdF9lcGk4X21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19jbXBuZXFfZXBpOF9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Rlc3RfZXBpOF9tYXNrIChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X2NtcG5lcV9lcGk4X21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdF9lcGk4X21hc2sgKF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBuZXFfZXBpOF9tYXNrIChfX1UsIF9tbTI1Nl9hbmRfc2kyNTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0X2VwaTE2X21hc2sgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY21wbmVxX2VwaTE2X21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0X2VwaTE2X21hc2sgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX2NtcG5lcV9lcGkxNl9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl90ZXN0X2VwaTE2X21hc2sgKF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfY21wbmVxX2VwaTE2X21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NiAoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdF9lcGkxNl9tYXNrIChfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfY21wbmVxX2VwaTE2X21hc2sgKF9fVSwgX21tMjU2X2FuZF9zaTI1NihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdG5fZXBpOF9tYXNrIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NtcGVxX2VwaThfbWFzayAoX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0bl9lcGk4X21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19jbXBlcV9lcGk4X21hc2sgKF9fVSwgX21tX2FuZF9zaTEyOCAoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Rlc3RuX2VwaThfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBlcV9lcGk4X21hc2sgKF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfdGVzdG5fZXBpOF9tYXNrIChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfY21wZXFfZXBpOF9tYXNrIChfX1UsIF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0bl9lcGkxNl9tYXNrIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NtcGVxX2VwaTE2X21hc2sgKF9tbV9hbmRfc2kxMjggKF9fQSwgX19CKSwgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza190ZXN0bl9lcGkxNl9tYXNrIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19jbXBlcV9lcGkxNl9tYXNrIChfX1UsIF9tbV9hbmRfc2kxMjgoX19BLCBfX0IpLCBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdGVzdG5fZXBpMTZfbWFzayAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9jbXBlcV9lcGkxNl9tYXNrIChfbW0yNTZfYW5kX3NpMjU2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Rlc3RuX2VwaTE2X21hc2sgKF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19jbXBlcV9lcGkxNl9tYXNrIChfX1UsIF9tbTI1Nl9hbmRfc2kyNTYgKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21vdmVwaThfbWFzayAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfY3Z0YjJtYXNrMTI4ICgoX192MTZxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazMyIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbW92ZXBpOF9tYXNrIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tbWFzazMyKSBfX2J1aWx0aW5faWEzMl9jdnRiMm1hc2syNTYgKChfX3YzMnFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21vdmVwaTE2X21hc2sgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY3Z0dzJtYXNrMTI4ICgoX192OGhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZlcGkxNl9tYXNrIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tbWFzazE2KSBfX2J1aWx0aW5faWEzMl9jdnR3Mm1hc2syNTYgKChfX3YxNmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92bV9lcGk4IChfX21tYXNrMTYgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMmIxMjggKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZtX2VwaTggKF9fbW1hc2szMiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syYjI1NiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21vdm1fZXBpMTYgKF9fbW1hc2s4IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJ3MTI4IChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbW92bV9lcGkxNiAoX19tbWFzazE2IF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJ3MjU2IChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19icm9hZGNhc3RiX2VwaTggKF9fbTEyOGkgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYnJvYWRjYXN0Yl9lcGk4IChfX21tYXNrMTYgX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RiXzEyOChfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fYnJvYWRjYXN0Yl9lcGk4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0Yl9lcGk4IChfX20yNTZpIF9fTywgX19tbWFzazMyIF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X2Jyb2FkY2FzdGJfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdGJfZXBpOCAoX19tbWFzazMyIF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0Yl8yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X2Jyb2FkY2FzdGJfZXBpOChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2Jyb2FkY2FzdHdfZXBpMTYgKF9fbTEyOGkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX2Jyb2FkY2FzdHdfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2Jyb2FkY2FzdHdfZXBpMTYgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fYnJvYWRjYXN0d19lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0d19lcGkxNiAoX19tMjU2aSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9icm9hZGNhc3R3X2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0d19lcGkxNiAoX19tbWFzazE2IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X2Jyb2FkY2FzdHdfZXBpMTYoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zZXQxX2VwaTE2IChfX20yNTZpIF9fTywgX19tbWFzazE2IF9fTSwgc2hvcnQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NiAoX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0MV9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2V0MV9lcGkxNiAoX19tbWFzazE2IF9fTSwgc2hvcnQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0MV9lcGkxNihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zZXQxX2VwaTE2IChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBzaG9ydCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2V0MV9lcGkxNiAoX19tbWFzazggX19NLCBzaG9ydCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXQxX2VwaTE2KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Blcm11dGV4dmFyX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGVybXZhcmhpMTI4KChfX3Y4aGkpIF9fQiwgKF9fdjhoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3Blcm11dGV4dmFyX2VwaTE2IChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fcGVybXV0ZXh2YXJfZXBpMTYoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3Blcm11dGV4dmFyX2VwaTE2IChfX20xMjhpIF9fVywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSwKICAgICAgICAgIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9wZXJtdXRleHZhcl9lcGkxNihfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wZXJtdXRleHZhcl9lcGkxNiAoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Blcm12YXJoaTI1NigoX192MTZoaSkgX19CLCAoX192MTZoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3Blcm11dGV4dmFyX2VwaTE2IChfX21tYXNrMTYgX19NLCBfX20yNTZpIF9fQSwKICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3Blcm11dGV4dmFyX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3Blcm11dGV4dmFyX2VwaTE2IChfX20yNTZpIF9fVywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EsCiAgICAgICAgICAgICBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3Blcm11dGV4dmFyX2VwaTE2KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19XKTsKfQoKI2RlZmluZSBfbW1fbWFza19hbGlnbnJfZXBpOChXLCBVLCBBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9hbGlnbnJfZXBpOChVLCBBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMTI4KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19hbGlnbnJfZXBpOChXLCBVLCBBLCBCLCBOKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKShfX20yNTZpKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9hbGlnbnJfZXBpOChVLCBBLCBCLCBOKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9hbGlnbnJfZXBpOCgoQSksIChCKSwgKGludCkoTikpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fZGJzYWRfZXB1OChBLCBCLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZGJwc2FkYncxMjgoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbV9tYXNrX2Ric2FkX2VwdTgoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9kYnNhZF9lcHU4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShXKSkpCgojZGVmaW5lIF9tbV9tYXNrel9kYnNhZF9lcHU4KFUsIEEsIEIsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fZGJzYWRfZXB1OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X2Ric2FkX2VwdTgoQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2RicHNhZGJ3MjU2KChfX3YzMnFpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoQiksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19kYnNhZF9lcHU4KFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X2Ric2FkX2VwdTgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2Ric2FkX2VwdTgoVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfZGJzYWRfZXB1OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmIC8qIF9fQVZYNTEyVkxCV0lOVFJJTl9IICovCgBsemNudGludHJpbi5oAHN0ZGludC5oAHdibm9pbnZkaW50cmluLmgAb3Blbm1wX3dyYXBwZXJzL2NvbXBsZXguaABzYW5pdGl6ZXIvbGludXhfc3lzY2FsbF9ob29rcy5oAHNpemUAVk5hbWUgcnVsZSBpcyBtaXNzaW5nIGl0cyBwYXR0ZXJuLgBUaGUgZG9jdW1lbnQgaXMgZW1wdHkuAGZvcm1hdABJbnZhbGlkIFJFMjogACBpbiBDb21wdXRlRmlyc3RCeXRlAEJhZCBhcmcgaW4ga0luc3RBbHRNYXRjaDogAG1pc3NpbmcgKQBccgBDaGVyb2tlZQBIYW5pZmlfUm9oaW5neWEASGF0cmFuAEphdmFuZXNlAE1jAE1ybwBlbGVtZW50IG5vdCBpbiBmcmVlbGlzdAB9AHcAc2hvcnQAbG9uZyBkb3VibGUAZU8AXj0AbHQAc3RyaW5nAG9zdHJlYW0AdHJlZS0+aGVpZ2h0KCkgPD0gQ29yZFJlcEJ0cmVlOjprTWF4SGVpZ2h0ACAgQ29yZFJlcFJpbmcoACwgcmMgPSAAfQoAMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlhYmNkZWYAU2lnbmFsIHdha2V1cABSZWxlYXNhYmxlTXV0ZXhMb2NrOjpSZWxlYXNlIG1heSBvbmx5IGJlIGNhbGxlZCBvbmNlAGNsb2NrX2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUsICZ0cykgPT0gMABmaWxlOgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL2Rpdi5jAEVWUF9BRUFEX0NUWF9pbml0IGZvciBBRVMtMTI4LUdDTSBmYWlsZWQuCgBQRU0gcm91dGluZXMAWC41MDkgY2VydGlmaWNhdGUgcm91dGluZXMAY29tbW9uIGxpYmNyeXB0byByb3V0aW5lcwBYNTA5IFYzIHJvdXRpbmVzAE9DU1Agcm91dGluZXMARUNEU0Egcm91dGluZXMAb3ZlcmZsb3cAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZXhfZGF0YS5jAGt5dGhlLnByb3RvLkNvbXBpbGF0aW9uVW5pdC5FbnYudmFsdWUAa3l0aGUucHJvdG8uS3ppcEluZm8uQ29ycHVzSW5mby5MYW5ndWFnZVJlcXVpcmVkSW5wdXRzRW50cnkua2V5AENhbGwgc2V0IG1ldGhvZHMgdG8gaW5pdGlhbGl6ZSBNYXBLZXkuAGV4dGVybmFsL3Byb3RvYnVmL3NyYy9nb29nbGUvcHJvdG9idWYvbWFwX2ZpZWxkX2lubC5oAGt5dGhlLnByb3RvLkJ1aWxkRGV0YWlscy5idWlsZF90YXJnZXQAa3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5IZWFkZXJTZWFyY2hEaXIucGF0aABmNzctY3BwLWlucHV0AEVycm9yIGNsb3Npbmcga3ppcCBvdXRwdXQ6IABhcm1fYWNsZS5oAGF2eDUxMnZwb3BjbnRkcXZsaW50cmluLmgALyo9PT0tLS0tIGJ1aWx0aW5zLmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIGV4dHJhIGJ1aWx0aW5zIC0tLS0tLS0tLS0tLS0tLS0tPT09KlwKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKXCo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ki8KCi8vLyBTb21lIGxlZ2FjeSBjb21waWxlcnMgaGF2ZSBidWlsdGluIGRlZmluaXRpb25zIGluIGEgZmlsZSBuYW1lZCBidWlsdGlucy5oLgovLy8gVGhpcyBoZWFkZXIgZmlsZSBoYXMgYmVlbiBhZGRlZCB0byBhbGxvdyBjb21wYXRpYmlsaXR5IHdpdGggY29kZSB0aGF0IHdhcwovLy8gd3JpdHRlbiBmb3IgdGhvc2UgY29tcGlsZXJzLiBDb2RlIG1heSBoYXZlIGFuIGluY2x1ZGUgbGluZSBmb3IgdGhpcyBmaWxlCi8vLyBhbmQgdG8gYXZvaWQgYW4gZXJyb3IgYW4gZW1wdHkgZmlsZSB3aXRoIHRoaXMgbmFtZSBpcyBwcm92aWRlZC4KI2lmbmRlZiBfX0JVSUxUSU5TX0gKI2RlZmluZSBfX0JVSUxUSU5TX0gKCiNlbmRpZiAvKiBfX0JVSUxUSU5TX0ggKi8KAC8qPT09LS0tLSBjbGRlbW90ZWludHJpbi5oIC0gQ0xERU1PVEUgaW50cmluc2ljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGNsZGVtb3RlaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0NMREVNT1RFSU5UUklOX0gKI2RlZmluZSBfX0NMREVNT1RFSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImNsZGVtb3RlIikpKQoKLy8vIEhpbnQgdG8gaGFyZHdhcmUgdGhhdCB0aGUgY2FjaGUgbGluZSB0aGF0IGNvbnRhaW5zIFxwIF9fUCBzaG91bGQgYmUgZGVtb3RlZAovLy8gZnJvbSB0aGUgY2FjaGUgY2xvc2VzdCB0byB0aGUgcHJvY2Vzc29yIGNvcmUgdG8gYSBsZXZlbCBtb3JlIGRpc3RhbnQgZnJvbQovLy8gdGhlIHByb2Nlc3NvciBjb3JlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENMREVNT1RFIDwvYz4gaW5zdHJ1Y3Rpb24uCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9jbGRlbW90ZShjb25zdCB2b2lkICogX19QKSB7CiAgX19idWlsdGluX2lhMzJfY2xkZW1vdGUoX19QKTsKfQoKI2RlZmluZSBfbW1fY2xkZW1vdGUocCkgX2NsZGVtb3RlKHApCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAbHdwaW50cmluLmgAbXdhaXR4aW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tLS0tLS0gdWludHJpbnRyaW4uaCAtIFVJTlRSIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1g4NkdQUklOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx1aW50cmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2Z3ByaW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19VSU5UUklOVFJJTl9ICiNkZWZpbmUgX19VSU5UUklOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygidWludHIiKSkpCgojaWZkZWYgX194ODZfNjRfXwoKc3RydWN0IF9fdWludHJfZnJhbWUKewogIHVuc2lnbmVkIGxvbmcgbG9uZyByaXA7CiAgdW5zaWduZWQgbG9uZyBsb25nIHJmbGFnczsKICB1bnNpZ25lZCBsb25nIGxvbmcgcnNwOwp9OwoKLy8vIENsZWFycyB0aGUgdXNlciBpbnRlcnJ1cHQgZmxhZyAoVUlGKS4gSXRzIGVmZmVjdCB0YWtlcyBwbGFjZSBpbW1lZGlhdGVseTogYQovLy8gICAgdXNlciBpbnRlcnJ1cHQgY2Fubm90IGJlIGRlbGl2ZXJlZCBvbiB0aGUgaW5zdHJ1Y3Rpb24gYm91bmRhcnkgZm9sbG93aW5nCi8vLyAgICBDTFVJLiBDYW4gYmUgZXhlY3V0ZWQgb25seSBpZiBDUjQuVUlOVCA9IDEsIHRoZSBsb2dpY2FsIHByb2Nlc3NvciBpcyBpbgovLy8gICAgNjQtYml0IG1vZGUsIGFuZCBzb2Z0d2FyZSBpcyBub3QgZXhlY3V0aW5nIGluc2lkZSBhbiBlbmNsYXZlOyBvdGhlcndpc2UsCi8vLyAgICBlYWNoIGNhdXNlcyBhbiBpbnZhbGlkLW9wY29kZSBleGNlcHRpb24uIENhdXNlcyBhIHRyYW5zYWN0aW9uYWwgYWJvcnQgaWYKLy8vICAgIGV4ZWN1dGVkIGluc2lkZSBhIHRyYW5zYWN0aW9uYWwgcmVnaW9uOyB0aGUgYWJvcnQgbG9hZHMgRUFYIGFzIGl0IHdvdWxkCi8vLyAgICBoYWQgaXQgYmVlbiBkdWUgdG8gYW4gZXhlY3V0aW9uIG9mIENMSS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2Z3ByaW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDTFVJIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXG9wZXJhdGlvbgovLy8gICBVSUYgOj0gMAovLy8gXGVuZG9wZXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfY2x1aSAodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX2NsdWkoKTsKfQoKLy8vIFNldHMgdGhlIHVzZXIgaW50ZXJydXB0IGZsYWcgKFVJRikuIEl0cyBlZmZlY3QgdGFrZXMgcGxhY2UgaW1tZWRpYXRlbHk7IGEKLy8vICAgIHVzZXIgaW50ZXJydXB0IG1heSBiZSBkZWxpdmVyZWQgb24gdGhlIGluc3RydWN0aW9uIGJvdW5kYXJ5IGZvbGxvd2luZwovLy8gICAgU1RVSS4gQ2FuIGJlIGV4ZWN1dGVkIG9ubHkgaWYgQ1I0LlVJTlQgPSAxLCB0aGUgbG9naWNhbCBwcm9jZXNzb3IgaXMgaW4KLy8vICAgIDY0LWJpdCBtb2RlLCBhbmQgc29mdHdhcmUgaXMgbm90IGV4ZWN1dGluZyBpbnNpZGUgYW4gZW5jbGF2ZTsgb3RoZXJ3aXNlLAovLy8gICAgZWFjaCBjYXVzZXMgYW4gaW52YWxpZC1vcGNvZGUgZXhjZXB0aW9uLiBDYXVzZXMgYSB0cmFuc2FjdGlvbmFsIGFib3J0IGlmCi8vLyAgICBleGVjdXRlZCBpbnNpZGUgYSB0cmFuc2FjdGlvbmFsIHJlZ2lvbjsgdGhlIGFib3J0IGxvYWRzIEVBWCBhcyBpdCB3b3VsZAovLy8gICAgaGFkIGl0IGJlZW4gZHVlIHRvIGFuIGV4ZWN1dGlvbiBvZiBTVEkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmdwcmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gU1RVSSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgVUlGIDo9IDEKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX3N0dWkgKHZvaWQpCnsKICBfX2J1aWx0aW5faWEzMl9zdHVpKCk7Cn0KCi8vLyBHZXQgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHVzZXIgaW50ZXJydXB0IGZsYWcgKFVJRikuIENhbiBiZSBleGVjdXRlZAovLy8gICAgcmVnYXJkbGVzcyBvZiBDUEwgYW5kIGluc2lkZSBhIHRyYW5zYWN0aW9uYWwgcmVnaW9uLiBDYW4gYmUgZXhlY3V0ZWQgb25seQovLy8gICAgaWYgQ1I0LlVJTlQgPSAxLCB0aGUgbG9naWNhbCBwcm9jZXNzb3IgaXMgaW4gNjQtYml0IG1vZGUsIGFuZCBzb2Z0d2FyZSBpcwovLy8gICAgbm90IGV4ZWN1dGluZyBpbnNpZGUgYW4gZW5jbGF2ZTsgb3RoZXJ3aXNlLCBpdCBjYXVzZXMgYW4gaW52YWxpZC1vcGNvZGUKLy8vICAgIGV4Y2VwdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2Z3ByaW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBURVNUVUkgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgdXNlciBpbnRlcnJ1cHQgZmxhZyAoVUlGKS4KLy8vCi8vLyBcb3BlcmF0aW9uCi8vLyAgIENGIDo9IFVJRgovLy8gICBaRiA6PSAwCi8vLyAgIEFGIDo9IDAKLy8vICAgT0YgOj0gMAovLy8gICBQRiA6PSAwCi8vLyAgIFNGIDo9IDAKLy8vICAgZHN0IDo9IENGCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl90ZXN0dWkgKHZvaWQpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdGVzdHVpKCk7Cn0KCi8vLyBTZW5kIGludGVycHJvY2Vzc29yIHVzZXIgaW50ZXJydXB0LiBDYW4gYmUgZXhlY3V0ZWQgb25seSBpZgovLy8gICAgQ1I0LlVJTlQgPSBJQTMyX1VJTlRfVFRbMF0gPSAxLCB0aGUgbG9naWNhbCBwcm9jZXNzb3IgaXMgaW4gNjQtYml0IG1vZGUsCi8vLyAgICBhbmQgc29mdHdhcmUgaXMgbm90IGV4ZWN1dGluZyBpbnNpZGUgYW4gZW5jbGF2ZTsgb3RoZXJ3aXNlLCBpdCBjYXVzZXMgYW4KLy8vICAgIGludmFsaWQtb3Bjb2RlIGV4Y2VwdGlvbi4gTWF5IGJlIGV4ZWN1dGVkIGF0IGFueSBwcml2aWxlZ2UgbGV2ZWwsIGFsbCBvZgovLy8gICAgaXRzIG1lbW9yeSBhY2Nlc3NlcyBhcmUgcGVyZm9ybWVkIHdpdGggc3VwZXJ2aXNvciBwcml2aWxlZ2UuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmdwcmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gU0VORFVJUEkgPC9jPiBpbnN0cnVjdGlvbgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEluZGV4IG9mIHVzZXItaW50ZXJydXB0IHRhcmdldCB0YWJsZSBlbnRyeSBpbiB1c2VyLWludGVycnVwdCB0YXJnZXQKLy8vICAgIHRhYmxlLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgSUYgX19hID4gVUlUVFNaCi8vLyAgICAgR1AgKDApCi8vLyAgIEZJCi8vLyAgIHRlbXBVSVRURSA6PSBNRU1bVUlUVEFERFIgKyAoYTw8NCldCi8vLyAgIC8vIHRlbXBVSVRURSBtdXN0IGJlIHZhbGlkLCBhbmQgY2FuJ3QgaGF2ZSBhbnkgcmVzZXJ2ZWQgYml0IHNldAovLy8gICBJRiAodGVtcFVJVFRFLlYgPT0gMCBPUiB0ZW1wVUlUVEVbNzoxXSAhPSAwKQovLy8gICAgIEdQICgwKQovLy8gICBGSQovLy8gICB0ZW1wVVBJRCA6PSBNRU1bdGVtcFVJVFRFLlVQSURBRERSXSAvLyB1bmRlciBsb2NrCi8vLyAgIC8vIHRlbXBVUElEIGNhbid0IGhhdmUgYW55IHJlc2VydmVkIGJpdCBzZXQKLy8vICAgSUYgKHRlbXBVUElEWzE1OjJdICE9IDAgT1IgdGVtcFVQSURbMzE6MjRdICE9IDApCi8vLyAgICAgR1AgKDApIC8vIHJlbGVhc2UgbG9jawovLy8gICBGSQovLy8gICB0ZW1wVVBJRC5QSVJbdGVtcFVJVFRFLlVWXSA6PSAxOwovLy8gICBJRiAodGVtcFVQSUQuU04gPT0gMCBBTkQgdGVtcFVQSUQuT04gPT0gMCkKLy8vICAgICB0ZW1wVVBJRC5PTiA6PSAxCi8vLyAgICAgc2VuZE5vdGlmeSA6PSAxCi8vLyAgIEVMU0UKLy8vICAgICBzZW5kTm90aWZ5IDo9IDAKLy8vICAgRkkKLy8vICAgTUVNW3RlbXBVSVRURS5VUElEQUREUl0gOj0gdGVtcFVQSUQgLy8gcmVsZWFzZSBsb2NrCi8vLyAgIElGIHNlbmROb3RpZnkgPT0gMQovLy8gICAgIElGIElBMzJfQVBJQ19CQVNFWzEwXSA9PSAxIC8vIGxvY2FsIEFQSUMgaXMgaW4geDJBUElDIG1vZGUKLy8vICAgICAgIC8vIHNlbmQgb3JkaW5hcnkgSVBJIHdpdGggdmVjdG9yIHRlbXBVUElELk5WIHRvIDMyLWJpdCBwaHlzaWNhbCBBUElDCi8vLyAgICAgICAvLyBJRCB0ZW1wVVBJRC5ORFNUCi8vLyAgICAgICBTZW5kT3JkaW5hcnlJUEkodGVtcFVQSUQuTlYsIHRlbXBVUElELk5EU1QpCi8vLyAgICAgRUxTRQovLy8gICAgICAgLy8gc2VuZCBvcmRpbmFyeSBJUEkgd2l0aCB2ZWN0b3IgdGVtcFVQSUQuTlYgdG8gOC1iaXQgcGh5c2ljYWwgQVBJQwovLy8gICAgICAgLy8gSUQgdGVtcFVQSUQuTkRTVFsxNTo4XQovLy8gICAgICAgU2VuZE9yZGluYXJ5SVBJKHRlbXBVUElELk5WLCB0ZW1wVVBJRC5ORFNUWzE1OjhdKQovLy8gICAgIEZJCi8vLyAgIEZJCi8vLyBcZW5kb3BlcmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9zZW5kdWlwaSAodW5zaWduZWQgbG9uZyBsb25nIF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX3NlbmR1aXBpKF9fYSk7Cn0KCiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19VSU5UUklOVFJJTl9IICovCgB2YWVzaW50cmluLmgALy89PT0tLSBkZnNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBEYXRhRmxvd1Nhbml0aXplci4KLy8KLy8gUHVibGljIGludGVyZmFjZSBoZWFkZXIuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgREZTQU5fSU5URVJGQUNFX0gKI2RlZmluZSBERlNBTl9JTlRFUkZBQ0VfSAoKI2luY2x1ZGUgPHN0ZGRlZi5oPgojaW5jbHVkZSA8c3RkaW50Lmg+CiNpbmNsdWRlIDxzYW5pdGl6ZXIvY29tbW9uX2ludGVyZmFjZV9kZWZzLmg+CgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgoKdHlwZWRlZiB1aW50OF90IGRmc2FuX2xhYmVsOwp0eXBlZGVmIHVpbnQzMl90IGRmc2FuX29yaWdpbjsKCi8vLyBTaWduYXR1cmUgb2YgdGhlIGNhbGxiYWNrIGFyZ3VtZW50IHRvIGRmc2FuX3NldF93cml0ZV9jYWxsYmFjaygpLgp0eXBlZGVmIHZvaWQgKCpkZnNhbl93cml0ZV9jYWxsYmFja190KShpbnQgZmQsIGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IGNvdW50KTsKCi8vLyBDb21wdXRlcyB0aGUgdW5pb24gb2YgXGMgbDEgYW5kIFxjIGwyLCByZXN1bHRpbmcgaW4gYSB1bmlvbiBsYWJlbC4KZGZzYW5fbGFiZWwgZGZzYW5fdW5pb24oZGZzYW5fbGFiZWwgbDEsIGRmc2FuX2xhYmVsIGwyKTsKCi8vLyBTZXRzIHRoZSBsYWJlbCBmb3IgZWFjaCBhZGRyZXNzIGluIFthZGRyLGFkZHIrc2l6ZSkgdG8gXGMgbGFiZWwuCnZvaWQgZGZzYW5fc2V0X2xhYmVsKGRmc2FuX2xhYmVsIGxhYmVsLCB2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSk7CgovLy8gU2V0cyB0aGUgbGFiZWwgZm9yIGVhY2ggYWRkcmVzcyBpbiBbYWRkcixhZGRyK3NpemUpIHRvIHRoZSB1bmlvbiBvZiB0aGUKLy8vIGN1cnJlbnQgbGFiZWwgZm9yIHRoYXQgYWRkcmVzcyBhbmQgXGMgbGFiZWwuCnZvaWQgZGZzYW5fYWRkX2xhYmVsKGRmc2FuX2xhYmVsIGxhYmVsLCB2b2lkICphZGRyLCBzaXplX3Qgc2l6ZSk7CgovLy8gUmV0cmlldmVzIHRoZSBsYWJlbCBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGRhdGEuCi8vLwovLy8gVGhlIHR5cGUgb2YgJ2RhdGEnIGlzIGFyYml0cmFyeS4gIFRoZSBmdW5jdGlvbiBhY2NlcHRzIGEgdmFsdWUgb2YgYW55IHR5cGUsCi8vLyB3aGljaCBjYW4gYmUgdHJ1bmNhdGVkIG9yIGV4dGVuZGVkIChpbXBsaWNpdGx5IG9yIGV4cGxpY2l0bHkpIGFzIG5lY2Vzc2FyeS4KLy8vIFRoZSB0cnVuY2F0aW9uL2V4dGVuc2lvbiBvcGVyYXRpb25zIHdpbGwgcHJlc2VydmUgdGhlIGxhYmVsIG9mIHRoZSBvcmlnaW5hbAovLy8gdmFsdWUuCmRmc2FuX2xhYmVsIGRmc2FuX2dldF9sYWJlbChsb25nIGRhdGEpOwoKLy8vIFJldHJpZXZlcyB0aGUgaW1tZWRpYXRlIG9yaWdpbiBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGRhdGEuIFRoZSByZXR1cm5lZAovLy8gb3JpZ2luIG1heSBwb2ludCB0byBhbm90aGVyIG9yaWdpbi4KLy8vCi8vLyBUaGUgdHlwZSBvZiAnZGF0YScgaXMgYXJiaXRyYXJ5LgpkZnNhbl9vcmlnaW4gZGZzYW5fZ2V0X29yaWdpbihsb25nIGRhdGEpOwoKLy8vIFJldHJpZXZlcyB0aGUgbGFiZWwgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhIGF0IHRoZSBnaXZlbiBhZGRyZXNzLgpkZnNhbl9sYWJlbCBkZnNhbl9yZWFkX2xhYmVsKGNvbnN0IHZvaWQgKmFkZHIsIHNpemVfdCBzaXplKTsKCi8vLyBSZXR1cm5zIHdoZXRoZXIgdGhlIGdpdmVuIGxhYmVsIGxhYmVsIGNvbnRhaW5zIHRoZSBsYWJlbCBlbGVtLgppbnQgZGZzYW5faGFzX2xhYmVsKGRmc2FuX2xhYmVsIGxhYmVsLCBkZnNhbl9sYWJlbCBlbGVtKTsKCi8vLyBGbHVzaGVzIHRoZSBERlNhbiBzaGFkb3csIGkuZS4gZm9yZ2V0cyBhYm91dCBhbGwgbGFiZWxzIGN1cnJlbnRseSBhc3NvY2lhdGVkCi8vLyB3aXRoIHRoZSBhcHBsaWNhdGlvbiBtZW1vcnkuICBVc2UgdGhpcyBjYWxsIHRvIHN0YXJ0IG92ZXIgdGhlIHRhaW50IHRyYWNraW5nCi8vLyB3aXRoaW4gdGhlIHNhbWUgcHJvY2Vzcy4KLy8vCi8vLyBOb3RlOiBJZiBhbm90aGVyIHRocmVhZCBpcyB3b3JraW5nIHdpdGggdGFpbnRlZCBkYXRhIGR1cmluZyB0aGUgZmx1c2gsIHRoYXQKLy8vIHRhaW50IGNvdWxkIHN0aWxsIGJlIHdyaXR0ZW4gdG8gc2hhZG93IGFmdGVyIHRoZSBmbHVzaC4Kdm9pZCBkZnNhbl9mbHVzaCh2b2lkKTsKCi8vLyBTZXRzIGEgY2FsbGJhY2sgdG8gYmUgaW52b2tlZCBvbiBjYWxscyB0byB3cml0ZSgpLiAgVGhlIGNhbGxiYWNrIGlzIGludm9rZWQKLy8vIGJlZm9yZSB0aGUgd3JpdGUgaXMgZG9uZS4gIFRoZSB3cml0ZSBpcyBub3QgZ3VhcmFudGVlZCB0byBzdWNjZWVkIHdoZW4gdGhlCi8vLyBjYWxsYmFjayBleGVjdXRlcy4gIFBhc3MgaW4gTlVMTCB0byByZW1vdmUgYW55IGNhbGxiYWNrLgp2b2lkIGRmc2FuX3NldF93cml0ZV9jYWxsYmFjayhkZnNhbl93cml0ZV9jYWxsYmFja190IGxhYmVsZWRfd3JpdGVfY2FsbGJhY2spOwoKLy8vIEludGVyY2VwdG9yIGhvb2tzLgovLy8gV2hlbmV2ZXIgYSBkZnNhbidzIGN1c3RvbSBmdW5jdGlvbiBpcyBjYWxsZWQgdGhlIGNvcnJlc3BvbmRpbmcKLy8vIGhvb2sgaXMgY2FsbGVkIGl0IG5vbi16ZXJvLiBUaGUgaG9va3Mgc2hvdWxkIGJlIGRlZmluZWQgYnkgdGhlIHVzZXIuCi8vLyBUaGUgcHJpbWFyeSB1c2UgY2FzZSBpcyB0YWludC1ndWlkZWQgZnV6emluZywgd2hlcmUgdGhlIGZ1enplcgovLy8gbmVlZHMgdG8gc2VlIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBmdW5jdGlvbiBhbmQgdGhlIGxhYmVscy4KLy8vIEZJWE1FOiBpbXBsZW1lbnQgbW9yZSBob29rcy4Kdm9pZCBkZnNhbl93ZWFrX2hvb2tfbWVtY21wKHZvaWQgKmNhbGxlcl9wYywgY29uc3Qgdm9pZCAqczEsIGNvbnN0IHZvaWQgKnMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IG4sIGRmc2FuX2xhYmVsIHMxX2xhYmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGZzYW5fbGFiZWwgczJfbGFiZWwsIGRmc2FuX2xhYmVsIG5fbGFiZWwpOwp2b2lkIGRmc2FuX3dlYWtfaG9va19zdHJuY21wKHZvaWQgKmNhbGxlcl9wYywgY29uc3QgY2hhciAqczEsIGNvbnN0IGNoYXIgKnMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBuLCBkZnNhbl9sYWJlbCBzMV9sYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZnNhbl9sYWJlbCBzMl9sYWJlbCwgZGZzYW5fbGFiZWwgbl9sYWJlbCk7CgovLy8gUHJpbnRzIHRoZSBvcmlnaW4gdHJhY2Ugb2YgdGhlIGxhYmVsIGF0IHRoZSBhZGRyZXNzIGFkZHIgdG8gc3RkZXJyLiBJdCBhbHNvCi8vLyBwcmludHMgZGVzY3JpcHRpb24gYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdHJhY2UuIElmIG9yaWdpbiB0cmFja2luZyBpcyBub3QKLy8vIG9uLCBvciB0aGUgYWRkcmVzcyBpcyBub3QgbGFiZWxlZCwgaXQgcHJpbnRzIG5vdGhpbmcuCnZvaWQgZGZzYW5fcHJpbnRfb3JpZ2luX3RyYWNlKGNvbnN0IHZvaWQgKmFkZHIsIGNvbnN0IGNoYXIgKmRlc2NyaXB0aW9uKTsKCi8vLyBQcmludHMgdGhlIG9yaWdpbiB0cmFjZSBvZiB0aGUgbGFiZWwgYXQgdGhlIGFkZHJlc3MgXHAgYWRkciB0byBhCi8vLyBwcmUtYWxsb2NhdGVkIG91dHB1dCBidWZmZXIuIElmIG9yaWdpbiB0cmFja2luZyBpcyBub3Qgb24sIG9yIHRoZSBhZGRyZXNzIGlzCi8vLyBub3QgbGFiZWxlZCwgaXQgcHJpbnRzIG5vdGhpbmcuCi8vLwovLy8gVHlwaWNhbCB1c2FnZToKLy8vIFxjb2RlCi8vLyAgIGNoYXIga0Rlc2NyaXB0aW9uW10gPSAiLi4uIjsKLy8vICAgY2hhciBidWZbMTAyNF07Ci8vLyAgIGRmc2FuX3NwcmludF9vcmlnaW5fdHJhY2UoJnRhaW50ZWRfdmFyLCBrRGVzY3JpcHRpb24sIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUeXBpY2FsIHVzYWdlIHRoYXQgaGFuZGxlcyB0cnVuY2F0aW9uOgovLy8gXGNvZGUKLy8vICAgY2hhciBidWZbMTAyNF07Ci8vLyAgIGludCBsZW4gPSBkZnNhbl9zcHJpbnRfb3JpZ2luX3RyYWNlKCZ2YXIsIG51bGxwdHIsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOwovLy8KLy8vICAgaWYgKGxlbiA8IHNpemVvZihidWYpKSB7Ci8vLyAgICAgUHJvY2Vzc09yaWdpblRyYWNlKGJ1Zik7Ci8vLyAgIH0gZWxzZSB7Ci8vLyAgICAgY2hhciAqdG1wYnVmID0gbmV3IGNoYXJbbGVuICsgMV07Ci8vLyAgICAgZGZzYW5fc3ByaW50X29yaWdpbl90cmFjZSgmdmFyLCBudWxscHRyLCB0bXBidWYsIGxlbiArIDEpOwovLy8gICAgIFByb2Nlc3NPcmlnaW5UcmFjZSh0bXBidWYpOwovLy8gICAgIGRlbGV0ZVtdIHRtcGJ1ZjsKLy8vICAgfQovLy8gXGVuZGNvZGUKLy8vCi8vLyBccGFyYW0gYWRkciBUaGUgdGFpbnRlZCBtZW1vcnkgYWRkcmVzcyB3aG9zZSBvcmlnaW4gd2UgYXJlIHByaW50aW5nLgovLy8gXHBhcmFtIGRlc2NyaXB0aW9uIEEgZGVzY3JpcHRpb24gcHJpbnRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0cmFjZS4KLy8vIFxwYXJhbSBbb3V0XSBvdXRfYnVmIFRoZSBvdXRwdXQgYnVmZmVyIHRvIHdyaXRlIHRoZSByZXN1bHRzIHRvLgovLy8gXHBhcmFtIG91dF9idWZfc2l6ZSBUaGUgc2l6ZSBvZiBccCBvdXRfYnVmLgovLy8KLy8vIFxyZXR1cm5zIFRoZSBudW1iZXIgb2Ygc3ltYm9scyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gd3JpdHRlbiB0byBccCBvdXRfYnVmCi8vLyAobm90IGluY2x1ZGluZyB0cmFpbGluZyBudWxsIGJ5dGUgJ1wwJykuIFRodXMsIHRoZSBzdHJpbmcgaXMgdHJ1bmNhdGVkIGlmZgovLy8gcmV0dXJuIHZhbHVlIGlzIG5vdCBsZXNzIHRoYW4gXHAgb3V0X2J1Zl9zaXplLgpzaXplX3QgZGZzYW5fc3ByaW50X29yaWdpbl90cmFjZShjb25zdCB2b2lkICphZGRyLCBjb25zdCBjaGFyICpkZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqb3V0X2J1Ziwgc2l6ZV90IG91dF9idWZfc2l6ZSk7CgovLy8gUHJpbnRzIHRoZSBzdGFjayB0cmFjZSBsZWFkaW5nIHRvIHRoaXMgY2FsbCB0byBhIHByZS1hbGxvY2F0ZWQgb3V0cHV0Ci8vLyBidWZmZXIuCi8vLwovLy8gRm9yIHVzYWdlIGV4YW1wbGVzLCBzZWUgZGZzYW5fc3ByaW50X29yaWdpbl90cmFjZS4KLy8vCi8vLyBccGFyYW0gW291dF0gb3V0X2J1ZiBUaGUgb3V0cHV0IGJ1ZmZlciB0byB3cml0ZSB0aGUgcmVzdWx0cyB0by4KLy8vIFxwYXJhbSBvdXRfYnVmX3NpemUgVGhlIHNpemUgb2YgXHAgb3V0X2J1Zi4KLy8vCi8vLyBccmV0dXJucyBUaGUgbnVtYmVyIG9mIHN5bWJvbHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gXHAgb3V0X2J1ZgovLy8gKG5vdCBpbmNsdWRpbmcgdHJhaWxpbmcgbnVsbCBieXRlICdcMCcpLiBUaHVzLCB0aGUgc3RyaW5nIGlzIHRydW5jYXRlZCBpZmYKLy8vIHJldHVybiB2YWx1ZSBpcyBub3QgbGVzcyB0aGFuIFxwIG91dF9idWZfc2l6ZS4Kc2l6ZV90IGRmc2FuX3NwcmludF9zdGFja190cmFjZShjaGFyICpvdXRfYnVmLCBzaXplX3Qgb3V0X2J1Zl9zaXplKTsKCi8vLyBSZXRyaWV2ZXMgdGhlIHZlcnkgZmlyc3Qgb3JpZ2luIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGF0YSBhdCB0aGUgZ2l2ZW4KLy8vIGFkZHJlc3MuCmRmc2FuX29yaWdpbiBkZnNhbl9nZXRfaW5pdF9vcmlnaW4oY29uc3Qgdm9pZCAqYWRkcik7CgovLy8gUmV0dXJucyB0aGUgdmFsdWUgb2YgLWRmc2FuLXRyYWNrLW9yaWdpbnMuCi8vLyAqIDA6IGRvIG5vdCB0cmFjayBvcmlnaW5zLgovLy8gKiAxOiB0cmFjayBvcmlnaW5zIGF0IG1lbW9yeSBzdG9yZSBvcGVyYXRpb25zLgovLy8gKiAyOiB0cmFjayBvcmlnaW5zIGF0IG1lbW9yeSBsb2FkIGFuZCBzdG9yZSBvcGVyYXRpb25zLgppbnQgZGZzYW5fZ2V0X3RyYWNrX29yaWdpbnModm9pZCk7CiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBkZnNhbl9zZXRfbGFiZWwoZGZzYW5fbGFiZWwgbGFiZWwsIFQgJmRhdGEpIHsKICBkZnNhbl9zZXRfbGFiZWwobGFiZWwsICh2b2lkICopJmRhdGEsIHNpemVvZihUKSk7Cn0KCiNlbmRpZgoKI2VuZGlmICAvLyBERlNBTl9JTlRFUkZBQ0VfSAoAQ2FwdHVyZSBpbmRleCBvdXQgb2YgcmFuZ2U6IABVbmhhbmRsZWQgAEJhZCBhcmcgaW4ga0luc3RDYXB0dXJlOiAAbm8gZXJyb3IARG9Db2FsZXNjZSBmYWlsZWQ6IHIxLT5vcCgpIGlzIAB7JWQsfQAoKXt9W10qKz98Ll4kXABBcmFiaWMAQ2hhbQBEZXNlcmV0AExpbmVhcl9CAE9sZF9JdGFsaWMAVGhhYW5hAHNpZ2FjdGlvbihkYXRhLT5zaWdubywgJmFjdCwgJmRhdGEtPnByZXZpb3VzX2FjdGlvbikgPT0gMABmZCBvdXQgb2YgcmFuZ2UAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL2RlYnVnZ2luZy9zeW1ib2xpemVfZWxmLmluYwBwLnBfdHlwZSA9PSBQVF9OVUxMAGZuICE9ICZJbml0QW5kR2V0Q1BVAGJhZCBtYWdpYyBudW1iZXIgaW4gTmV4dCgpAGJhZCBhcmVuYSBwb2ludGVyIGluIE5leHQoKQB7dW5uYW1lZCB0eXBlIwBvbwAgZXhjZWVkcyBDb3JkJ3Mgc2l6ZSAAKi4qAHRydWUAd2FrZV9saXN0ICE9IGtQZXJUaHJlYWRTeW5jaE51bGwAQUVTX3NldF9kZWNyeXB0X2tleSBmYWlsZWQuCgBTSEEtNTEyIEtBVABFQ0RTQSBzaWduYXR1cmUgS0FUIGZhaWxlZC4KAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL21lbS5jAHVua25vd24gZXJyb3IARFNBIHJvdXRpbmVzAGNmZy10ZW1wb3JhcnktZHRvcnM9dHJ1ZQApJABLWVRIRV9CVUlMRF9DT05GSUcAc3lzdGVtX2hlYWRlcl9wcmVmaXgAaW5wdXRzLnNpemUoKQBHTlVtb2RlAG5vdF9HTlVNb2RlAG5vdF9PYmpDAC8qPT09LS0tIF9fY2xhbmdfY3VkYV9pbnRyaW5zaWNzLmggLSBEZXZpY2Utc2lkZSBDVURBIGludHJpbnNpYyB3cmFwcGVycyAtLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NMQU5HX0NVREFfSU5UUklOU0lDU19IX18KI2RlZmluZSBfX0NMQU5HX0NVREFfSU5UUklOU0lDU19IX18KI2lmbmRlZiBfX0NVREFfXwojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgQ1VEQSBjb21waWxhdGlvbiBvbmx5LiIKI2VuZGlmCgovLyBzbV8zMCBpbnRyaW5zaWNzOiBfX3NoZmxfe3VwLGRvd24seG9yfS4KCiNkZWZpbmUgX19TTV8zMF9JTlRSSU5TSUNTX0hfXwojZGVmaW5lIF9fU01fMzBfSU5UUklOU0lDU19IUFBfXwoKI2lmICFkZWZpbmVkKF9fQ1VEQV9BUkNIX18pIHx8IF9fQ1VEQV9BUkNIX18gPj0gMzAwCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fTUFLRV9TSFVGRkxFUyIpCiNkZWZpbmUgX19NQUtFX1NIVUZGTEVTKF9fRm5OYW1lLCBfX0ludEludHJpbnNpYywgX19GbG9hdEludHJpbnNpYywgX19NYXNrLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgIF9fVHlwZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaW5saW5lIF9fZGV2aWNlX18gaW50IF9fRm5OYW1lKGludCBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgICAgICAgICAgICBcCiAgICByZXR1cm4gX19JbnRJbnRyaW5zaWMoX192YWwsIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3YXJwU2l6ZSAtIF9fd2lkdGgpIDw8IDgpIHwgKF9fTWFzaykpOyAgICAgICAgICAgICBcCiAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaW5saW5lIF9fZGV2aWNlX18gZmxvYXQgX19Gbk5hbWUoZmxvYXQgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgICAgICBcCiAgICByZXR1cm4gX19GbG9hdEludHJpbnNpYyhfX3ZhbCwgX19vZmZzZXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHdhcnBTaXplIC0gX193aWR0aCkgPDwgOCkgfCAoX19NYXNrKSk7ICAgICAgICAgICBcCiAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fRm5OYW1lKHVuc2lnbmVkIGludCBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgICBcCiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgOjpfX0ZuTmFtZShzdGF0aWNfY2FzdDxpbnQ+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgICAgICAgICBcCiAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgaW5saW5lIF9fZGV2aWNlX18gbG9uZyBsb25nIF9fRm5OYW1lKGxvbmcgbG9uZyBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgICAgICBcCiAgICBzdHJ1Y3QgX19CaXRzIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCBfX2EsIF9fYjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfU3RhdGljX2Fzc2VydChzaXplb2YoX192YWwpID09IHNpemVvZihfX0JpdHMpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfU3RhdGljX2Fzc2VydChzaXplb2YoX19CaXRzKSA9PSAyICogc2l6ZW9mKGludCkpOyAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfX0JpdHMgX190bXA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtZW1jcHkoJl9fdG1wLCAmX192YWwsIHNpemVvZihfX3ZhbCkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX190bXAuX19hID0gOjpfX0ZuTmFtZShfX3RtcC5fX2EsIF9fb2Zmc2V0LCBfX3dpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgXAogICAgX190bXAuX19iID0gOjpfX0ZuTmFtZShfX3RtcC5fX2IsIF9fb2Zmc2V0LCBfX3dpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgXAogICAgbG9uZyBsb25nIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3JldCwgJl9fdG1wLCBzaXplb2YoX190bXApKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGxvbmcgX19Gbk5hbWUobG9uZyBfX3ZhbCwgX19UeXBlIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKGxvbmcpID09IHNpemVvZihsb25nIGxvbmcpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKGxvbmcpID09IHNpemVvZihpbnQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgOjpfX0ZuTmFtZShzdGF0aWNfY2FzdDxsb25nIGxvbmc+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgXAogICAgfSBlbHNlIGlmIChzaXplb2YobG9uZykgPT0gc2l6ZW9mKGludCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgOjpfX0ZuTmFtZShzdGF0aWNfY2FzdDxpbnQ+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgICAgICAgXAogICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgX19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBsb25nIF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgICAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDo6X19Gbk5hbWUoc3RhdGljX2Nhc3Q8bG9uZz4oX192YWwpLCBfX29mZnNldCwgX193aWR0aCkpOyAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0ZuTmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192YWwsIF9fVHlwZSBfX29mZnNldCwgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oOjpfX0ZuTmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oX192YWwpLCBfX29mZnNldCwgX193aWR0aCkpOyAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGRvdWJsZSBfX0ZuTmFtZShkb3VibGUgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgICAgXAogICAgbG9uZyBsb25nIF9fdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fdG1wKSA9PSBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3RtcCwgJl9fdmFsLCBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX190bXAgPSA6Ol9fRm5OYW1lKF9fdG1wLCBfX29mZnNldCwgX193aWR0aCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZG91YmxlIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3JldCwgJl9fdG1wLCBzaXplb2YoX19yZXQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KCl9fTUFLRV9TSFVGRkxFUyhfX3NoZmwsIF9fbnZ2bV9zaGZsX2lkeF9pMzIsIF9fbnZ2bV9zaGZsX2lkeF9mMzIsIDB4MWYsIGludCk7Ci8vIFdlIHVzZSAwIHJhdGhlciB0aGFuIDMxIGFzIG91ciBtYXNrLCBiZWNhdXNlIHNoZmwudXAgYXBwbGllcyB0byBsYW5lcyA+PQovLyBtYXhMYW5lLgpfX01BS0VfU0hVRkZMRVMoX19zaGZsX3VwLCBfX252dm1fc2hmbF91cF9pMzIsIF9fbnZ2bV9zaGZsX3VwX2YzMiwgMCwKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCk7Cl9fTUFLRV9TSFVGRkxFUyhfX3NoZmxfZG93biwgX19udnZtX3NoZmxfZG93bl9pMzIsIF9fbnZ2bV9zaGZsX2Rvd25fZjMyLCAweDFmLAogICAgICAgICAgICAgICAgdW5zaWduZWQgaW50KTsKX19NQUtFX1NIVUZGTEVTKF9fc2hmbF94b3IsIF9fbnZ2bV9zaGZsX2JmbHlfaTMyLCBfX252dm1fc2hmbF9iZmx5X2YzMiwgMHgxZiwKICAgICAgICAgICAgICAgIGludCk7CiNwcmFnbWEgcG9wX21hY3JvKCJfX01BS0VfU0hVRkZMRVMiKQoKI2VuZGlmIC8vICFkZWZpbmVkKF9fQ1VEQV9BUkNIX18pIHx8IF9fQ1VEQV9BUkNIX18gPj0gMzAwCgojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAKI2lmICghZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDMwMCkKLy8gX19zaGZsX3N5bmNfKiB2YXJpYW50cyBhdmFpbGFibGUgaW4gQ1VEQS05CiNwcmFnbWEgcHVzaF9tYWNybygiX19NQUtFX1NZTkNfU0hVRkZMRVMiKQojZGVmaW5lIF9fTUFLRV9TWU5DX1NIVUZGTEVTKF9fRm5OYW1lLCBfX0ludEludHJpbnNpYywgX19GbG9hdEludHJpbnNpYywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fTWFzaywgX19UeXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGludCBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX19tYXNrLCBpbnQgX192YWwsICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1R5cGUgX19vZmZzZXQsIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgICAgXAogICAgcmV0dXJuIF9fSW50SW50cmluc2ljKF9fbWFzaywgX192YWwsIF9fb2Zmc2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICgod2FycFNpemUgLSBfX3dpZHRoKSA8PCA4KSB8IChfX01hc2spKTsgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGZsb2F0IF9fRm5OYW1lKHVuc2lnbmVkIGludCBfX21hc2ssIGZsb2F0IF9fdmFsLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVHlwZSBfX29mZnNldCwgaW50IF9fd2lkdGggPSB3YXJwU2l6ZSkgeyAgXAogICAgcmV0dXJuIF9fRmxvYXRJbnRyaW5zaWMoX19tYXNrLCBfX3ZhbCwgX19vZmZzZXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKCh3YXJwU2l6ZSAtIF9fd2lkdGgpIDw8IDgpIHwgKF9fTWFzaykpOyAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGludCBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX19tYXNrLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192YWwsIF9fVHlwZSBfX29mZnNldCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGludD4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDo6X19Gbk5hbWUoX19tYXNrLCBzdGF0aWNfY2FzdDxpbnQ+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGxvbmcgbG9uZyBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX19tYXNrLCBsb25nIGxvbmcgX192YWwsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1R5cGUgX19vZmZzZXQsICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgXAogICAgc3RydWN0IF9fQml0cyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgX19hLCBfX2I7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fdmFsKSA9PSBzaXplb2YoX19CaXRzKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fQml0cykgPT0gMiAqIHNpemVvZihpbnQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX19CaXRzIF9fdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3RtcCwgJl9fdmFsLCBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX190bXAuX19hID0gOjpfX0ZuTmFtZShfX21hc2ssIF9fdG1wLl9fYSwgX19vZmZzZXQsIF9fd2lkdGgpOyAgICAgICAgICAgICAgXAogICAgX190bXAuX19iID0gOjpfX0ZuTmFtZShfX21hc2ssIF9fdG1wLl9fYiwgX19vZmZzZXQsIF9fd2lkdGgpOyAgICAgICAgICAgICAgXAogICAgbG9uZyBsb25nIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3JldCwgJl9fdG1wLCBzaXplb2YoX190bXApKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0ZuTmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgX19tYXNrLCB1bnNpZ25lZCBsb25nIGxvbmcgX192YWwsIF9fVHlwZSBfX29mZnNldCwgICAgICAgICAgXAogICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4oOjpfX0ZuTmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIF9fbWFzaywgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGxvbmcgX19Gbk5hbWUodW5zaWduZWQgaW50IF9fbWFzaywgbG9uZyBfX3ZhbCwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19UeXBlIF9fb2Zmc2V0LCBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKGxvbmcpID09IHNpemVvZihsb25nIGxvbmcpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKGxvbmcpID09IHNpemVvZihpbnQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgaWYgKHNpemVvZihsb25nKSA9PSBzaXplb2YobG9uZyBsb25nKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oOjpfX0ZuTmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgX19tYXNrLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KF9fdmFsKSwgX19vZmZzZXQsIF9fd2lkdGgpKTsgICAgICAgICAgXAogICAgfSBlbHNlIGlmIChzaXplb2YobG9uZykgPT0gc2l6ZW9mKGludCkpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8bG9uZz4oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgOjpfX0ZuTmFtZShfX21hc2ssIHN0YXRpY19jYXN0PGludD4oX192YWwpLCBfX29mZnNldCwgX193aWR0aCkpOyAgICAgXAogICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgX19Gbk5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgX19tYXNrLCB1bnNpZ25lZCBsb25nIF9fdmFsLCBfX1R5cGUgX19vZmZzZXQsICAgICAgICAgICAgICAgXAogICAgICBpbnQgX193aWR0aCA9IHdhcnBTaXplKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmc+KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgIDo6X19Gbk5hbWUoX19tYXNrLCBzdGF0aWNfY2FzdDxsb25nPihfX3ZhbCksIF9fb2Zmc2V0LCBfX3dpZHRoKSk7ICAgICAgXAogIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIGlubGluZSBfX2RldmljZV9fIGRvdWJsZSBfX0ZuTmFtZSh1bnNpZ25lZCBpbnQgX19tYXNrLCBkb3VibGUgX192YWwsICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1R5cGUgX19vZmZzZXQsIGludCBfX3dpZHRoID0gd2FycFNpemUpIHsgXAogICAgbG9uZyBsb25nIF9fdG1wOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1N0YXRpY19hc3NlcnQoc2l6ZW9mKF9fdG1wKSA9PSBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3RtcCwgJl9fdmFsLCBzaXplb2YoX192YWwpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX190bXAgPSA6Ol9fRm5OYW1lKF9fbWFzaywgX190bXAsIF9fb2Zmc2V0LCBfX3dpZHRoKTsgICAgICAgICAgICAgICAgICAgICAgXAogICAgZG91YmxlIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWVtY3B5KCZfX3JldCwgJl9fdG1wLCBzaXplb2YoX19yZXQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KX19NQUtFX1NZTkNfU0hVRkZMRVMoX19zaGZsX3N5bmMsIF9fbnZ2bV9zaGZsX3N5bmNfaWR4X2kzMiwKICAgICAgICAgICAgICAgICAgICAgX19udnZtX3NoZmxfc3luY19pZHhfZjMyLCAweDFmLCBpbnQpOwovLyBXZSB1c2UgMCByYXRoZXIgdGhhbiAzMSBhcyBvdXIgbWFzaywgYmVjYXVzZSBzaGZsLnVwIGFwcGxpZXMgdG8gbGFuZXMgPj0KLy8gbWF4TGFuZS4KX19NQUtFX1NZTkNfU0hVRkZMRVMoX19zaGZsX3VwX3N5bmMsIF9fbnZ2bV9zaGZsX3N5bmNfdXBfaTMyLAogICAgICAgICAgICAgICAgICAgICBfX252dm1fc2hmbF9zeW5jX3VwX2YzMiwgMCwgdW5zaWduZWQgaW50KTsKX19NQUtFX1NZTkNfU0hVRkZMRVMoX19zaGZsX2Rvd25fc3luYywgX19udnZtX3NoZmxfc3luY19kb3duX2kzMiwKICAgICAgICAgICAgICAgICAgICAgX19udnZtX3NoZmxfc3luY19kb3duX2YzMiwgMHgxZiwgdW5zaWduZWQgaW50KTsKX19NQUtFX1NZTkNfU0hVRkZMRVMoX19zaGZsX3hvcl9zeW5jLCBfX252dm1fc2hmbF9zeW5jX2JmbHlfaTMyLAogICAgICAgICAgICAgICAgICAgICBfX252dm1fc2hmbF9zeW5jX2JmbHlfZjMyLCAweDFmLCBpbnQpOwojcHJhZ21hIHBvcF9tYWNybygiX19NQUtFX1NZTkNfU0hVRkZMRVMiKQoKaW5saW5lIF9fZGV2aWNlX18gdm9pZCBfX3N5bmN3YXJwKHVuc2lnbmVkIGludCBtYXNrID0gMHhmZmZmZmZmZikgewogIHJldHVybiBfX252dm1fYmFyX3dhcnBfc3luYyhtYXNrKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdm9pZCBfX2JhcnJpZXJfc3luYyh1bnNpZ25lZCBpbnQgaWQpIHsKICBfX252dm1fYmFycmllcl9zeW5jKGlkKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdm9pZCBfX2JhcnJpZXJfc3luY19jb3VudCh1bnNpZ25lZCBpbnQgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvdW50KSB7CiAgX19udnZtX2JhcnJpZXJfc3luY19jbnQoaWQsIGNvdW50KTsKfQoKaW5saW5lIF9fZGV2aWNlX18gaW50IF9fYWxsX3N5bmModW5zaWduZWQgaW50IG1hc2ssIGludCBwcmVkKSB7CiAgcmV0dXJuIF9fbnZ2bV92b3RlX2FsbF9zeW5jKG1hc2ssIHByZWQpOwp9CgppbmxpbmUgX19kZXZpY2VfXyBpbnQgX19hbnlfc3luYyh1bnNpZ25lZCBpbnQgbWFzaywgaW50IHByZWQpIHsKICByZXR1cm4gX19udnZtX3ZvdGVfYW55X3N5bmMobWFzaywgcHJlZCk7Cn0KCmlubGluZSBfX2RldmljZV9fIGludCBfX3VuaV9zeW5jKHVuc2lnbmVkIGludCBtYXNrLCBpbnQgcHJlZCkgewogIHJldHVybiBfX252dm1fdm90ZV91bmlfc3luYyhtYXNrLCBwcmVkKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgaW50IF9fYmFsbG90X3N5bmModW5zaWduZWQgaW50IG1hc2ssIGludCBwcmVkKSB7CiAgcmV0dXJuIF9fbnZ2bV92b3RlX2JhbGxvdF9zeW5jKG1hc2ssIHByZWQpOwp9CgppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQgX19hY3RpdmVtYXNrKCkgewojaWYgQ1VEQV9WRVJTSU9OIDwgOTAyMAogIHJldHVybiBfX252dm1fdm90ZV9iYWxsb3QoMSk7CiNlbHNlCiAgdW5zaWduZWQgaW50IG1hc2s7CiAgYXNtIHZvbGF0aWxlKCJhY3RpdmVtYXNrLmIzMiAlMDsiIDogIj1yIihtYXNrKSk7CiAgcmV0dXJuIG1hc2s7CiNlbmRpZgp9CgppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQgX19mbnModW5zaWduZWQgbWFzaywgdW5zaWduZWQgYmFzZSwgaW50IG9mZnNldCkgewogIHJldHVybiBfX252dm1fZm5zKG1hc2ssIGJhc2UsIG9mZnNldCk7Cn0KCiNlbmRpZiAvLyAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDMwMAoKLy8gRGVmaW5lIF9fbWF0Y2gqIGJ1aWx0aW5zIENVREEtOSBoZWFkZXJzIGV4cGVjdCB0byBzZWUuCiNpZiAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDcwMAppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQgX19tYXRjaDMyX2FueV9zeW5jKHVuc2lnbmVkIGludCBtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCB2YWx1ZSkgewogIHJldHVybiBfX252dm1fbWF0Y2hfYW55X3N5bmNfaTMyKG1hc2ssIHZhbHVlKTsKfQoKaW5saW5lIF9fZGV2aWNlX18gdW5zaWduZWQgbG9uZyBsb25nCl9fbWF0Y2g2NF9hbnlfc3luYyh1bnNpZ25lZCBpbnQgbWFzaywgdW5zaWduZWQgbG9uZyBsb25nIHZhbHVlKSB7CiAgcmV0dXJuIF9fbnZ2bV9tYXRjaF9hbnlfc3luY19pNjQobWFzaywgdmFsdWUpOwp9CgppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQKX19tYXRjaDMyX2FsbF9zeW5jKHVuc2lnbmVkIGludCBtYXNrLCB1bnNpZ25lZCBpbnQgdmFsdWUsIGludCAqcHJlZCkgewogIHJldHVybiBfX252dm1fbWF0Y2hfYWxsX3N5bmNfaTMycChtYXNrLCB2YWx1ZSwgcHJlZCk7Cn0KCmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgbG9uZwpfX21hdGNoNjRfYWxsX3N5bmModW5zaWduZWQgaW50IG1hc2ssIHVuc2lnbmVkIGxvbmcgbG9uZyB2YWx1ZSwgaW50ICpwcmVkKSB7CiAgcmV0dXJuIF9fbnZ2bV9tYXRjaF9hbGxfc3luY19pNjRwKG1hc2ssIHZhbHVlLCBwcmVkKTsKfQojaW5jbHVkZSAiY3J0L3NtXzcwX3J0LmhwcCIKCiNlbmRpZiAvLyAhZGVmaW5lZChfX0NVREFfQVJDSF9fKSB8fCBfX0NVREFfQVJDSF9fID49IDcwMAojZW5kaWYgLy8gX19DVURBX1ZFUlNJT04gPj0gOTAwMAoKLy8gc21fMzIgaW50cmluc2ljczogX19sZGcgYW5kIF9fZnVubmVsc2hpZnRfe2wsbGMscixyY30uCgovLyBQcmV2ZW50IHRoZSB2YW5pbGxhIHNtXzMyIGludHJpbnNpY3MgaGVhZGVyIGZyb20gYmVpbmcgaW5jbHVkZWQuCiNkZWZpbmUgX19TTV8zMl9JTlRSSU5TSUNTX0hfXwojZGVmaW5lIF9fU01fMzJfSU5UUklOU0lDU19IUFBfXwoKI2lmICFkZWZpbmVkKF9fQ1VEQV9BUkNIX18pIHx8IF9fQ1VEQV9BUkNIX18gPj0gMzIwCgppbmxpbmUgX19kZXZpY2VfXyBjaGFyIF9fbGRnKGNvbnN0IGNoYXIgKnB0cikgeyByZXR1cm4gX19udnZtX2xkZ19jKHB0cik7IH0KaW5saW5lIF9fZGV2aWNlX18gc2hvcnQgX19sZGcoY29uc3Qgc2hvcnQgKnB0cikgeyByZXR1cm4gX19udnZtX2xkZ19zKHB0cik7IH0KaW5saW5lIF9fZGV2aWNlX18gaW50IF9fbGRnKGNvbnN0IGludCAqcHRyKSB7IHJldHVybiBfX252dm1fbGRnX2kocHRyKTsgfQppbmxpbmUgX19kZXZpY2VfXyBsb25nIF9fbGRnKGNvbnN0IGxvbmcgKnB0cikgeyByZXR1cm4gX19udnZtX2xkZ19sKHB0cik7IH0KaW5saW5lIF9fZGV2aWNlX18gbG9uZyBsb25nIF9fbGRnKGNvbnN0IGxvbmcgbG9uZyAqcHRyKSB7CiAgcmV0dXJuIF9fbnZ2bV9sZGdfbGwocHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBjaGFyIF9fbGRnKGNvbnN0IHVuc2lnbmVkIGNoYXIgKnB0cikgewogIHJldHVybiBfX252dm1fbGRnX3VjKHB0cik7Cn0KaW5saW5lIF9fZGV2aWNlX18gc2lnbmVkIGNoYXIgX19sZGcoY29uc3Qgc2lnbmVkIGNoYXIgKnB0cikgewogIHJldHVybiBfX252dm1fbGRnX3VjKChjb25zdCB1bnNpZ25lZCBjaGFyICopcHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBzaG9ydCBfX2xkZyhjb25zdCB1bnNpZ25lZCBzaG9ydCAqcHRyKSB7CiAgcmV0dXJuIF9fbnZ2bV9sZGdfdXMocHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBpbnQgX19sZGcoY29uc3QgdW5zaWduZWQgaW50ICpwdHIpIHsKICByZXR1cm4gX19udnZtX2xkZ191aShwdHIpOwp9CmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIGxvbmcgX19sZGcoY29uc3QgdW5zaWduZWQgbG9uZyAqcHRyKSB7CiAgcmV0dXJuIF9fbnZ2bV9sZGdfdWwocHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19sZGcoY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpwdHIpIHsKICByZXR1cm4gX19udnZtX2xkZ191bGwocHRyKTsKfQppbmxpbmUgX19kZXZpY2VfXyBmbG9hdCBfX2xkZyhjb25zdCBmbG9hdCAqcHRyKSB7IHJldHVybiBfX252dm1fbGRnX2YocHRyKTsgfQppbmxpbmUgX19kZXZpY2VfXyBkb3VibGUgX19sZGcoY29uc3QgZG91YmxlICpwdHIpIHsgcmV0dXJuIF9fbnZ2bV9sZGdfZChwdHIpOyB9CgppbmxpbmUgX19kZXZpY2VfXyBjaGFyMiBfX2xkZyhjb25zdCBjaGFyMiAqcHRyKSB7CiAgdHlwZWRlZiBjaGFyIGMyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIC8vIFdlIGNhbiBhc3N1bWUgdGhhdCBwdHIgaXMgYWxpZ25lZCBhdCBsZWFzdCB0byBjaGFyMidzIGFsaWdubWVudCwgYnV0IHRoZQogIC8vIGxvYWQgd2lsbCBhc3N1bWUgdGhhdCBwdHIgaXMgYWxpZ25lZCB0byBjaGFyMidzIGFsaWdubWVudC4gIFRoaXMgaXMgb25seQogIC8vIHNhZmUgaWYgYWxpZ25vZihjMikgPD0gYWxpZ25vZihjaGFyMikuCiAgYzIgcnYgPSBfX252dm1fbGRnX2MyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgYzIgKj4ocHRyKSk7CiAgY2hhcjIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIGNoYXI0IF9fbGRnKGNvbnN0IGNoYXI0ICpwdHIpIHsKICB0eXBlZGVmIGNoYXIgYzQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgYzQgcnYgPSBfX252dm1fbGRnX2M0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgYzQgKj4ocHRyKSk7CiAgY2hhcjQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBzaG9ydDIgX19sZGcoY29uc3Qgc2hvcnQyICpwdHIpIHsKICB0eXBlZGVmIHNob3J0IHMyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIHMyIHJ2ID0gX19udnZtX2xkZ19zMihyZWludGVycHJldF9jYXN0PGNvbnN0IHMyICo+KHB0cikpOwogIHNob3J0MiByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gc2hvcnQ0IF9fbGRnKGNvbnN0IHNob3J0NCAqcHRyKSB7CiAgdHlwZWRlZiBzaG9ydCBzNCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKICBzNCBydiA9IF9fbnZ2bV9sZGdfczQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBzNCAqPihwdHIpKTsKICBzaG9ydDQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBpbnQyIF9fbGRnKGNvbnN0IGludDIgKnB0cikgewogIHR5cGVkZWYgaW50IGkyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIGkyIHJ2ID0gX19udnZtX2xkZ19pMihyZWludGVycHJldF9jYXN0PGNvbnN0IGkyICo+KHB0cikpOwogIGludDIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIGludDQgX19sZGcoY29uc3QgaW50NCAqcHRyKSB7CiAgdHlwZWRlZiBpbnQgaTQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgaTQgcnYgPSBfX252dm1fbGRnX2k0KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgaTQgKj4ocHRyKSk7CiAgaW50NCByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldC56ID0gcnZbMl07CiAgcmV0LncgPSBydlszXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIGxvbmdsb25nMiBfX2xkZyhjb25zdCBsb25nbG9uZzIgKnB0cikgewogIHR5cGVkZWYgbG9uZyBsb25nIGxsMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKICBsbDIgcnYgPSBfX252dm1fbGRnX2xsMihyZWludGVycHJldF9jYXN0PGNvbnN0IGxsMiAqPihwdHIpKTsKICBsb25nbG9uZzIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CgppbmxpbmUgX19kZXZpY2VfXyB1Y2hhcjIgX19sZGcoY29uc3QgdWNoYXIyICpwdHIpIHsKICB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdWMyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIHVjMiBydiA9IF9fbnZ2bV9sZGdfdWMyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWMyICo+KHB0cikpOwogIHVjaGFyMiByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldHVybiByZXQ7Cn0KaW5saW5lIF9fZGV2aWNlX18gdWNoYXI0IF9fbGRnKGNvbnN0IHVjaGFyNCAqcHRyKSB7CiAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjNCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKICB1YzQgcnYgPSBfX252dm1fbGRnX3VjNChyZWludGVycHJldF9jYXN0PGNvbnN0IHVjNCAqPihwdHIpKTsKICB1Y2hhcjQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyB1c2hvcnQyIF9fbGRnKGNvbnN0IHVzaG9ydDIgKnB0cikgewogIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgdXMyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwogIHVzMiBydiA9IF9fbnZ2bV9sZGdfdXMyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdXMyICo+KHB0cikpOwogIHVzaG9ydDIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIHVzaG9ydDQgX19sZGcoY29uc3QgdXNob3J0NCAqcHRyKSB7CiAgdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1czQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgdXM0IHJ2ID0gX19udnZtX2xkZ191czQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1czQgKj4ocHRyKSk7CiAgdXNob3J0NCByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldC56ID0gcnZbMl07CiAgcmV0LncgPSBydlszXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIHVpbnQyIF9fbGRnKGNvbnN0IHVpbnQyICpwdHIpIHsKICB0eXBlZGVmIHVuc2lnbmVkIGludCB1aTIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CiAgdWkyIHJ2ID0gX19udnZtX2xkZ191aTIocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aTIgKj4ocHRyKSk7CiAgdWludDIgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIHVpbnQ0IF9fbGRnKGNvbnN0IHVpbnQ0ICpwdHIpIHsKICB0eXBlZGVmIHVuc2lnbmVkIGludCB1aTQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CiAgdWk0IHJ2ID0gX19udnZtX2xkZ191aTQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aTQgKj4ocHRyKSk7CiAgdWludDQgcmV0OwogIHJldC54ID0gcnZbMF07CiAgcmV0LnkgPSBydlsxXTsKICByZXQueiA9IHJ2WzJdOwogIHJldC53ID0gcnZbM107CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyB1bG9uZ2xvbmcyIF9fbGRnKGNvbnN0IHVsb25nbG9uZzIgKnB0cikgewogIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CiAgdWxsMiBydiA9IF9fbnZ2bV9sZGdfdWxsMihyZWludGVycHJldF9jYXN0PGNvbnN0IHVsbDIgKj4ocHRyKSk7CiAgdWxvbmdsb25nMiByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldHVybiByZXQ7Cn0KCmlubGluZSBfX2RldmljZV9fIGZsb2F0MiBfX2xkZyhjb25zdCBmbG9hdDIgKnB0cikgewogIHR5cGVkZWYgZmxvYXQgZjIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CiAgZjIgcnYgPSBfX252dm1fbGRnX2YyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZjIgKj4ocHRyKSk7CiAgZmxvYXQyIHJldDsKICByZXQueCA9IHJ2WzBdOwogIHJldC55ID0gcnZbMV07CiAgcmV0dXJuIHJldDsKfQppbmxpbmUgX19kZXZpY2VfXyBmbG9hdDQgX19sZGcoY29uc3QgZmxvYXQ0ICpwdHIpIHsKICB0eXBlZGVmIGZsb2F0IGY0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwogIGY0IHJ2ID0gX19udnZtX2xkZ19mNChyZWludGVycHJldF9jYXN0PGNvbnN0IGY0ICo+KHB0cikpOwogIGZsb2F0NCByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldC56ID0gcnZbMl07CiAgcmV0LncgPSBydlszXTsKICByZXR1cm4gcmV0Owp9CmlubGluZSBfX2RldmljZV9fIGRvdWJsZTIgX19sZGcoY29uc3QgZG91YmxlMiAqcHRyKSB7CiAgdHlwZWRlZiBkb3VibGUgZDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CiAgZDIgcnYgPSBfX252dm1fbGRnX2QyKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZDIgKj4ocHRyKSk7CiAgZG91YmxlMiByZXQ7CiAgcmV0LnggPSBydlswXTsKICByZXQueSA9IHJ2WzFdOwogIHJldHVybiByZXQ7Cn0KCi8vIFRPRE86IEltcGxlbWVudCB0aGVzZSBhcyBpbnRyaW5zaWNzLCBzbyB0aGUgYmFja2VuZCBjYW4gd29yayBpdHMgbWFnaWMgb24KLy8gdGhlc2UuICBBbHRlcm5hdGl2ZWx5LCB3ZSBjb3VsZCBpbXBsZW1lbnQgdGhlc2UgYXMgcGxhaW4gQyBhbmQgdHJ5IHRvIGdldAovLyBsbHZtIHRvIHJlY29nbml6ZSB0aGUgcmVsZXZhbnQgcGF0dGVybnMuCmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIF9fZnVubmVsc2hpZnRfbCh1bnNpZ25lZCBsb3czMiwgdW5zaWduZWQgaGlnaDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hpZnRXaWR0aCkgewogIHVuc2lnbmVkIHJlc3VsdDsKICBhc20oInNoZi5sLndyYXAuYjMyICUwLCAlMSwgJTIsICUzOyIKICAgICAgOiAiPXIiKHJlc3VsdCkKICAgICAgOiAiciIobG93MzIpLCAiciIoaGlnaDMyKSwgInIiKHNoaWZ0V2lkdGgpKTsKICByZXR1cm4gcmVzdWx0Owp9CmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIF9fZnVubmVsc2hpZnRfbGModW5zaWduZWQgbG93MzIsIHVuc2lnbmVkIGhpZ2gzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaGlmdFdpZHRoKSB7CiAgdW5zaWduZWQgcmVzdWx0OwogIGFzbSgic2hmLmwuY2xhbXAuYjMyICUwLCAlMSwgJTIsICUzOyIKICAgICAgOiAiPXIiKHJlc3VsdCkKICAgICAgOiAiciIobG93MzIpLCAiciIoaGlnaDMyKSwgInIiKHNoaWZ0V2lkdGgpKTsKICByZXR1cm4gcmVzdWx0Owp9CmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIF9fZnVubmVsc2hpZnRfcih1bnNpZ25lZCBsb3czMiwgdW5zaWduZWQgaGlnaDMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgc2hpZnRXaWR0aCkgewogIHVuc2lnbmVkIHJlc3VsdDsKICBhc20oInNoZi5yLndyYXAuYjMyICUwLCAlMSwgJTIsICUzOyIKICAgICAgOiAiPXIiKHJlc3VsdCkKICAgICAgOiAiciIobG93MzIpLCAiciIoaGlnaDMyKSwgInIiKHNoaWZ0V2lkdGgpKTsKICByZXR1cm4gcmVzdWx0Owp9CmlubGluZSBfX2RldmljZV9fIHVuc2lnbmVkIF9fZnVubmVsc2hpZnRfcmModW5zaWduZWQgbG93MzIsIHVuc2lnbmVkIGhpZ2gzMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzaGlmdFdpZHRoKSB7CiAgdW5zaWduZWQgcmV0OwogIGFzbSgic2hmLnIuY2xhbXAuYjMyICUwLCAlMSwgJTIsICUzOyIKICAgICAgOiAiPXIiKHJldCkKICAgICAgOiAiciIobG93MzIpLCAiciIoaGlnaDMyKSwgInIiKHNoaWZ0V2lkdGgpKTsKICByZXR1cm4gcmV0Owp9CgojZW5kaWYgLy8gIWRlZmluZWQoX19DVURBX0FSQ0hfXykgfHwgX19DVURBX0FSQ0hfXyA+PSAzMjAKCiNlbmRpZiAvLyBkZWZpbmVkKF9fQ0xBTkdfQ1VEQV9JTlRSSU5TSUNTX0hfXykKAC8qPT09LS0tLSBfX2NsYW5nX2N1ZGFfcnVudGltZV93cmFwcGVyLmggLSBDVURBIHJ1bnRpbWUgc3VwcG9ydCAtLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKgogKiBXQVJOSU5HOiBUaGlzIGhlYWRlciBpcyBpbnRlbmRlZCB0byBiZSBkaXJlY3RseSAtaW5jbHVkZSdkIGJ5CiAqIHRoZSBjb21waWxlciBhbmQgaXMgbm90IHN1cHBvc2VkIHRvIGJlIGluY2x1ZGVkIGJ5IHVzZXJzLgogKgogKiBDVURBIGhlYWRlcnMgYXJlIGltcGxlbWVudGVkIGluIGEgd2F5IHRoYXQgY3VycmVudGx5IG1ha2VzIGl0CiAqIGltcG9zc2libGUgZm9yIHVzZXIgY29kZSB0byAjaW5jbHVkZSBkaXJlY3RseSB3aGVuIGNvbXBpbGluZyB3aXRoCiAqIENsYW5nLiBUaGV5IHByZXNlbnQgZGlmZmVyZW50IHZpZXcgb2YgQ1VEQS1zdXBwbGllZCBmdW5jdGlvbnMKICogZGVwZW5kaW5nIG9uIHdoZXJlIGluIE5WQ0MncyBjb21waWxhdGlvbiBwaXBlbGluZSB0aGUgaGVhZGVycyBhcmUKICogaW5jbHVkZWQuIE5laXRoZXIgb2YgdGhlc2UgbW9kZXMgcHJvdmlkZXMgZnVuY3Rpb24gZGVmaW5pdGlvbnMgd2l0aAogKiBjb3JyZWN0IGF0dHJpYnV0ZXMsIHNvIHdlIHVzZSBwcmVwcm9jZXNzb3IgdG8gZm9yY2UgdGhlIGhlYWRlcnMKICogaW50byBhIGZvcm0gdGhhdCBDbGFuZyBjYW4gdXNlLgogKgogKiBTaW1pbGFybHkgdG8gTlZDQyB3aGljaCAtaW5jbHVkZSdzIGN1ZGFfcnVudGltZS5oLCBDbGFuZyAtaW5jbHVkZSdzCiAqIHRoaXMgZmlsZSBkdXJpbmcgZXZlcnkgQ1VEQSBjb21waWxhdGlvbi4KICovCgojaWZuZGVmIF9fQ0xBTkdfQ1VEQV9SVU5USU1FX1dSQVBQRVJfSF9fCiNkZWZpbmUgX19DTEFOR19DVURBX1JVTlRJTUVfV1JBUFBFUl9IX18KCiNpZiBkZWZpbmVkKF9fQ1VEQV9fKSAmJiBkZWZpbmVkKF9fY2xhbmdfXykKCi8vIEluY2x1ZGUgc29tZSBmb3J3YXJkIGRlY2xhcmVzIHRoYXQgbXVzdCBjb21lIGJlZm9yZSBjbWF0aC4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9tYXRoX2ZvcndhcmRfZGVjbGFyZXMuaD4KCi8vIERlZmluZSBfX0NVREFDQ19fIGVhcmx5IGFzIGxpYnN0ZGMrKyBzdGFuZGFyZCBoZWFkZXJzIHdpdGggR05VIGV4dGVuc2lvbnMKLy8gZW5hYmxlZCBkZXBlbmQgb24gaXQgdG8gYXZvaWQgdXNpbmcgX19mbG9hdDEyOCwgd2hpY2ggaXMgdW5zdXBwb3J0ZWQgaW4KLy8gQ1VEQS4KI2RlZmluZSBfX0NVREFDQ19fCgovLyBJbmNsdWRlIHNvbWUgc3RhbmRhcmQgaGVhZGVycyB0byBhdm9pZCBDVURBIGhlYWRlcnMgaW5jbHVkaW5nIHRoZW0KLy8gd2hpbGUgc29tZSByZXF1aXJlZCBtYWNyb3MgKGxpa2UgX19USFJPVykgYXJlIGluIGEgd2VpcmQgc3RhdGUuCiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNzdGRsaWI+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI3VuZGVmIF9fQ1VEQUNDX18KCi8vIFByZXNlcnZlIGNvbW1vbiBtYWNyb3MgdGhhdCB3aWxsIGJlIGNoYW5nZWQgYmVsb3cgYnkgdXMgb3IgYnkgQ1VEQQovLyBoZWFkZXJzLgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fVEhST1ciKQojcHJhZ21hIHB1c2hfbWFjcm8oIl9fQ1VEQV9BUkNIX18iKQoKLy8gV0FSTklORzogUHJlcHJvY2Vzc29yIGhhY2tzIGJlbG93IGFyZSBiYXNlZCBvbiBzcGVjaWZpYyBkZXRhaWxzIG9mCi8vIENVREEtNy54IGhlYWRlcnMgYW5kIGFyZSBub3QgZXhwZWN0ZWQgdG8gd29yayB3aXRoIGFueSBvdGhlcgovLyB2ZXJzaW9uIG9mIENVREEgaGVhZGVycy4KI2luY2x1ZGUgImN1ZGEuaCIKI2lmICFkZWZpbmVkKENVREFfVkVSU0lPTikKI2Vycm9yICJjdWRhLmggZGlkIG5vdCBkZWZpbmUgQ1VEQV9WRVJTSU9OIgojZWxpZiBDVURBX1ZFUlNJT04gPCA3MDAwCiNlcnJvciAiVW5zdXBwb3J0ZWQgQ1VEQSB2ZXJzaW9uISIKI2VuZGlmCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fQ1VEQV9JTkNMVURFX0NPTVBJTEVSX0lOVEVSTkFMX0hFQURFUlNfXyIpCiNpZiBDVURBX1ZFUlNJT04gPj0gMTAwMDAKI2RlZmluZSBfX0NVREFfSU5DTFVERV9DT01QSUxFUl9JTlRFUk5BTF9IRUFERVJTX18KI2VuZGlmCgovLyBNYWtlIGxhcmdlc3Qgc3Vic2V0IG9mIGRldmljZSBmdW5jdGlvbnMgYXZhaWxhYmxlIGR1cmluZyBob3N0Ci8vIGNvbXBpbGF0aW9uIC0tIFNNXzM1IGZvciB0aGUgdGltZSBiZWluZy4KI2lmbmRlZiBfX0NVREFfQVJDSF9fCiNkZWZpbmUgX19DVURBX0FSQ0hfXyAzNTAKI2VuZGlmCgojaW5jbHVkZSAiX19jbGFuZ19jdWRhX2J1aWx0aW5fdmFycy5oIgoKLy8gTm8gbmVlZCBmb3IgZGV2aWNlX2xhdW5jaF9wYXJhbWV0ZXJzLmggYXMgX19jbGFuZ19jdWRhX2J1aWx0aW5fdmFycy5oIGFib3ZlCi8vIGhhcyB0YWtlbiBjYXJlIG9mIGJ1aWx0aW4gdmFyaWFibGVzIGRlY2xhcmVkIGluIHRoZSBmaWxlLgojZGVmaW5lIF9fREVWSUNFX0xBVU5DSF9QQVJBTUVURVJTX0hfXwoKLy8ge21hdGgsZGV2aWNlfV9mdW5jdGlvbnMuaCBvbmx5IGhhdmUgZGVjbGFyYXRpb25zIG9mIHRoZQovLyBmdW5jdGlvbnMuIFdlIGRvbid0IG5lZWQgdGhlbSBhcyB3ZSdyZSBnb2luZyB0byBwdWxsIGluIHRoZWlyCi8vIGRlZmluaXRpb25zIGZyb20gLmhwcCBmaWxlcy4KI2RlZmluZSBfX0RFVklDRV9GVU5DVElPTlNfSF9fCiNkZWZpbmUgX19NQVRIX0ZVTkNUSU9OU19IX18KI2RlZmluZSBfX0NPTU1PTl9GVU5DVElPTlNfSF9fCi8vIGRldmljZV9mdW5jdGlvbnNfZGVjbHMgaXMgcmVwbGFjZWQgYnkgX19jbGFuZ19jdWRhX2RldmljZV9mdW5jdGlvbnMuaAovLyBpbmNsdWRlZCBiZWxvdy4KI2RlZmluZSBfX0RFVklDRV9GVU5DVElPTlNfREVDTFNfSF9fCgojdW5kZWYgX19DVURBQ0NfXwojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojZGVmaW5lIF9fQ1VEQUJFX18KI2Vsc2UKI2RlZmluZSBfX0NVREFDQ19fCiNkZWZpbmUgX19DVURBX0xJQkRFVklDRV9fCiNlbmRpZgovLyBEaXNhYmxlcyBkZWZpbml0aW9ucyBvZiBkZXZpY2Utc2lkZSBydW50aW1lIHN1cHBvcnQgc3R1YnMgaW4KLy8gY3VkYV9kZXZpY2VfcnVudGltZV9hcGkuaAojaW5jbHVkZSAiaG9zdF9kZWZpbmVzLmgiCiN1bmRlZiBfX0NVREFDQ19fCiNpbmNsdWRlICJkcml2ZXJfdHlwZXMuaCIKI2luY2x1ZGUgImhvc3RfY29uZmlnLmgiCgovLyBUZW1wb3JhcmlseSByZXBsYWNlICJudl93ZWFrIiB3aXRoIHdlYWssIHNvIF9fYXR0cmlidXRlX18oKG52X3dlYWspKSBpbgovLyBjdWRhX2RldmljZV9ydW50aW1lX2FwaS5oIGVuZHMgdXAgYmVpbmcgX19hdHRyaWJ1dGVfXygod2VhaykpIHdoaWNoIGlzIHRoZQovLyBmdW5jdGlvbmFsIGVxdWl2YWxlbnQgb2Ygd2hhdCB3ZSBuZWVkLgojcHJhZ21hIHB1c2hfbWFjcm8oIm52X3dlYWsiKQojZGVmaW5lIG52X3dlYWsgd2VhawojdW5kZWYgX19DVURBQkVfXwojdW5kZWYgX19DVURBX0xJQkRFVklDRV9fCiNkZWZpbmUgX19DVURBQ0NfXwojaW5jbHVkZSAiY3VkYV9ydW50aW1lLmgiCgojcHJhZ21hIHBvcF9tYWNybygibnZfd2VhayIpCiN1bmRlZiBfX0NVREFDQ19fCiNkZWZpbmUgX19DVURBQkVfXwoKLy8gQ1VEQSBoZWFkZXJzIHVzZSBfX252dm1fbWVtY3B5IGFuZCBfX252dm1fbWVtc2V0IHdoaWNoIENsYW5nIGRvZXMKLy8gbm90IGhhdmUgYXQgdGhlIG1vbWVudC4gRW11bGF0ZSB0aGVtIHdpdGggYSBidWlsdGluIG1lbWNweS9tZW1zZXQuCiNkZWZpbmUgX19udnZtX21lbWNweShzLCBkLCBuLCBhKSBfX2J1aWx0aW5fbWVtY3B5KHMsIGQsIG4pCiNkZWZpbmUgX19udnZtX21lbXNldChkLCBjLCBuLCBhKSBfX2J1aWx0aW5fbWVtc2V0KGQsIGMsIG4pCgojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojaW5jbHVkZSAiY3J0L2RldmljZV9ydW50aW1lLmgiCiNlbmRpZgojaW5jbHVkZSAiY3J0L2hvc3RfcnVudGltZS5oIgovLyBkZXZpY2VfcnVudGltZS5oIGRlZmluZXMgX19jeGFfKiBtYWNyb3MgdGhhdCB3aWxsIGNvbmZsaWN0IHdpdGgKLy8gY3h4YWJpLmguCi8vIEZJWE1FOiByZWRlZmluZSB0aGVzZSBhcyBfX2RldmljZV9fIGZ1bmN0aW9ucy4KI3VuZGVmIF9fY3hhX3ZlY19jdG9yCiN1bmRlZiBfX2N4YV92ZWNfY2N0b3IKI3VuZGVmIF9fY3hhX3ZlY19kdG9yCiN1bmRlZiBfX2N4YV92ZWNfbmV3CiN1bmRlZiBfX2N4YV92ZWNfbmV3MgojdW5kZWYgX19jeGFfdmVjX25ldzMKI3VuZGVmIF9fY3hhX3ZlY19kZWxldGUyCiN1bmRlZiBfX2N4YV92ZWNfZGVsZXRlCiN1bmRlZiBfX2N4YV92ZWNfZGVsZXRlMwojdW5kZWYgX19jeGFfcHVyZV92aXJ0dWFsCgovLyBtYXRoX2Z1bmN0aW9ucy5ocHAgZXhwZWN0cyB0aGlzIGhvc3QgZnVuY3Rpb24gYmUgZGVmaW5lZCBvbiBNYWNPUywgYnV0IGl0Ci8vIGVuZHMgdXAgbm90IGJlaW5nIHRoZXJlIGJlY2F1c2Ugb2YgdGhlIGdhbWVzIHdlIHBsYXkgaGVyZS4gIEp1c3QgZGVmaW5lIGl0Ci8vIG91cnNlbHZlczsgaXQncyBzaW1wbGUgZW5vdWdoLgojaWZkZWYgX19BUFBMRV9fCmlubGluZSBfX2hvc3RfXyBkb3VibGUgX19zaWduYml0ZChkb3VibGUgeCkgewogIHJldHVybiBzdGQ6OnNpZ25iaXQoeCk7Cn0KI2VuZGlmCgovLyBDVURBIDkuMSBubyBsb25nZXIgcHJvdmlkZXMgZGVjbGFyYXRpb25zIGZvciBsaWJkZXZpY2UgZnVuY3Rpb25zLCBzbyB3ZSBuZWVkCi8vIHRvIHByb3ZpZGUgb3VyIG93bi4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9saWJkZXZpY2VfZGVjbGFyZXMuaD4KCi8vIFdyYXBwZXJzIGZvciBtYW55IGRldmljZS1zaWRlIHN0YW5kYXJkIGxpYnJhcnkgZnVuY3Rpb25zLCBpbmNsLiBtYXRoCi8vIGZ1bmN0aW9ucywgYmVjYW1lIGNvbXBpbGVyIGJ1aWx0aW5zIGluIENVREEtOSBhbmQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUKLy8gQ1VEQSBoZWFkZXJzLiBDbGFuZyBub3cgcHJvdmlkZXMgaXRzIG93biBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgd3JhcHBlcnMuCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMAojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2RldmljZV9mdW5jdGlvbnMuaD4KI2luY2x1ZGUgPF9fY2xhbmdfY3VkYV9tYXRoLmg+CiNlbmRpZgoKLy8gX19USFJPVyBpcyByZWRlZmluZWQgdG8gYmUgZW1wdHkgYnkgZGV2aWNlX2Z1bmN0aW9uc19kZWNscy5oIGluIENVREEuIENsYW5nJ3MKLy8gY291bnRlcnBhcnQgZG9lcyBub3QgZG8gaXQsIHNvIHdlIG5lZWQgdG8gbWFrZSBpdCBlbXB0eSBoZXJlIHRvIGtlZXAKLy8gZm9sbG93aW5nIENVREEgaW5jbHVkZXMgaGFwcHkuCiN1bmRlZiBfX1RIUk9XCiNkZWZpbmUgX19USFJPVwoKLy8gQ1VEQSA4LjAuNDEgcmVsaWVzIG9uIF9fVVNFX0ZBU1RfTUFUSF9fIGFuZCBfX0NVREFfUFJFQ19ESVYncyB2YWx1ZXMuCi8vIFByZXZpb3VzIHZlcnNpb25zIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGV5IGFyZSBkZWZpbmVkIG9yIG5vdC4KLy8gQ1VfREVWSUNFX0lOVkFMSUQgbWFjcm8gaXMgb25seSBkZWZpbmVkIGluIDguMC40MSwgc28gd2UgdXNlIGl0Ci8vIGhlcmUgdG8gZGV0ZWN0IHRoZSBzd2l0Y2guCgojaWYgZGVmaW5lZChDVV9ERVZJQ0VfSU5WQUxJRCkKI2lmICFkZWZpbmVkKF9fVVNFX0ZBU1RfTUFUSF9fKQojZGVmaW5lIF9fVVNFX0ZBU1RfTUFUSF9fIDAKI2VuZGlmCgojaWYgIWRlZmluZWQoX19DVURBX1BSRUNfRElWKQojZGVmaW5lIF9fQ1VEQV9QUkVDX0RJViAwCiNlbmRpZgojZW5kaWYKCi8vIFRlbXBvcmFyaWx5IHBvaXNvbiBfX2hvc3RfXyBtYWNybyB0byBlbnN1cmUgaXQncyBub3QgdXNlZCBieSBhbnkgb2YKLy8gdGhlIGhlYWRlcnMgd2UncmUgYWJvdXQgdG8gaW5jbHVkZS4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX2hvc3RfXyIpCiNkZWZpbmUgX19ob3N0X18gVU5FWFBFQ1RFRF9IT1NUX0FUVFJJQlVURQoKLy8gZGV2aWNlX2Z1bmN0aW9ucy5ocHAgYW5kIG1hdGhfZnVuY3Rpb25zKi5ocHAgdXNlICdzdGF0aWMKLy8gX19mb3JjZWlubGluZV9fJyAod2l0aCBubyBfX2RldmljZV9fKSBmb3IgZGVmaW5pdGlvbnMgb2YgZGV2aWNlCi8vIGZ1bmN0aW9ucy4gVGVtcG9yYXJpbHkgcmVkZWZpbmUgX19mb3JjZWlubGluZV9fIHRvIGluY2x1ZGUKLy8gX19kZXZpY2VfXy4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX2ZvcmNlaW5saW5lX18iKQojZGVmaW5lIF9fZm9yY2VpbmxpbmVfXyBfX2RldmljZV9fIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpCiNpZiBDVURBX1ZFUlNJT04gPCA5MDAwCiNpbmNsdWRlICJkZXZpY2VfZnVuY3Rpb25zLmhwcCIKI2VuZGlmCgovLyBtYXRoX2Z1bmN0aW9uLmhwcCB1c2VzIHRoZSBfX1VTRV9GQVNUX01BVEhfXyBtYWNybyB0byBkZXRlcm1pbmUgd2hldGhlciB3ZQovLyBnZXQgdGhlIHNsb3ctYnV0LWFjY3VyYXRlIG9yIGZhc3QtYnV0LWluYWNjdXJhdGUgdmVyc2lvbnMgb2YgZnVuY3Rpb25zIGxpa2UKLy8gc2luIGFuZCBleHAuICBUaGlzIGlzIGNvbnRyb2xsZWQgaW4gY2xhbmcgYnkgLWZjdWRhLWFwcHJveC10cmFuc2NlbmRlbnRhbHMuCi8vCi8vIGRldmljZV9mdW5jdGlvbnMuaHBwIHVzZXMgX19VU0VfRkFTVF9NQVRIX18gZm9yIGEgZGlmZmVyZW50IHB1cnBvc2UgKGZhc3QgdnMuCi8vIHNsb3cgZGl2aWRlcyksIHNvIHdlIG5lZWQgdG8gc2NvcGUgb3VyIGRlZmluZSBjYXJlZnVsbHkgaGVyZS4KI3ByYWdtYSBwdXNoX21hY3JvKCJfX1VTRV9GQVNUX01BVEhfXyIpCiNpZiBkZWZpbmVkKF9fQ0xBTkdfQ1VEQV9BUFBST1hfVFJBTlNDRU5ERU5UQUxTX18pCiNkZWZpbmUgX19VU0VfRkFTVF9NQVRIX18gMQojZW5kaWYKCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMAovLyBDVURBLTkuMiBuZWVkcyBob3N0LXNpZGUgbWVtY3B5IGZvciBzb21lIGhvc3QgZnVuY3Rpb25zIGluCi8vIGRldmljZV9mdW5jdGlvbnMuaHBwCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAyMAojaW5jbHVkZSA8c3RyaW5nLmg+CiNlbmRpZgojaW5jbHVkZSAiY3J0L21hdGhfZnVuY3Rpb25zLmhwcCIKI2Vsc2UKI2luY2x1ZGUgIm1hdGhfZnVuY3Rpb25zLmhwcCIKI2VuZGlmCgojcHJhZ21hIHBvcF9tYWNybygiX19VU0VfRkFTVF9NQVRIX18iKQoKI2lmIENVREFfVkVSU0lPTiA8IDkwMDAKI2luY2x1ZGUgIm1hdGhfZnVuY3Rpb25zX2RibF9wdHgzLmhwcCIKI2VuZGlmCiNwcmFnbWEgcG9wX21hY3JvKCJfX2ZvcmNlaW5saW5lX18iKQoKLy8gUHVsbCBpbiBob3N0LW9ubHkgZnVuY3Rpb25zIHRoYXQgYXJlIG9ubHkgYXZhaWxhYmxlIHdoZW4gbmVpdGhlcgovLyBfX0NVREFDQ19fIG5vciBfX0NVREFCRV9fIGFyZSBkZWZpbmVkLgojdW5kZWYgX19NQVRIX0ZVTkNUSU9OU19IUFBfXwojdW5kZWYgX19DVURBQkVfXwojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojaW5jbHVkZSAibWF0aF9mdW5jdGlvbnMuaHBwIgojZW5kaWYKLy8gQWxhcywgYWRkaXRpb25hbCBvdmVybG9hZHMgZm9yIHRoZXNlIGZ1bmN0aW9ucyBhcmUgaGFyZCB0byBnZXQgdG8uCi8vIENvbnNpZGVyaW5nIHRoYXQgd2Ugb25seSBuZWVkIHRoZXNlIG92ZXJsb2FkcyBmb3IgYSBmZXcgZnVuY3Rpb25zLAovLyB3ZSBjYW4gcHJvdmlkZSB0aGVtIGhlcmUuCnN0YXRpYyBpbmxpbmUgZmxvYXQgcnNxcnQoZmxvYXQgX19hKSB7IHJldHVybiByc3FydGYoX19hKTsgfQpzdGF0aWMgaW5saW5lIGZsb2F0IHJjYnJ0KGZsb2F0IF9fYSkgeyByZXR1cm4gcmNicnRmKF9fYSk7IH0Kc3RhdGljIGlubGluZSBmbG9hdCBzaW5waShmbG9hdCBfX2EpIHsgcmV0dXJuIHNpbnBpZihfX2EpOyB9CnN0YXRpYyBpbmxpbmUgZmxvYXQgY29zcGkoZmxvYXQgX19hKSB7IHJldHVybiBjb3NwaWYoX19hKTsgfQpzdGF0aWMgaW5saW5lIHZvaWQgc2luY29zcGkoZmxvYXQgX19hLCBmbG9hdCAqX19iLCBmbG9hdCAqX19jKSB7CiAgcmV0dXJuIHNpbmNvc3BpZihfX2EsIF9fYiwgX19jKTsKfQpzdGF0aWMgaW5saW5lIGZsb2F0IGVyZmNpbnYoZmxvYXQgX19hKSB7IHJldHVybiBlcmZjaW52ZihfX2EpOyB9CnN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWNkZmludihmbG9hdCBfX2EpIHsgcmV0dXJuIG5vcm1jZGZpbnZmKF9fYSk7IH0Kc3RhdGljIGlubGluZSBmbG9hdCBub3JtY2RmKGZsb2F0IF9fYSkgeyByZXR1cm4gbm9ybWNkZmYoX19hKTsgfQpzdGF0aWMgaW5saW5lIGZsb2F0IGVyZmN4KGZsb2F0IF9fYSkgeyByZXR1cm4gZXJmY3hmKF9fYSk7IH0KCiNpZiBDVURBX1ZFUlNJT04gPCA5MDAwCi8vIEZvciBzb21lIHJlYXNvbiBzaW5nbGUtYXJndW1lbnQgdmFyaWFudCBpcyBub3QgYWx3YXlzIGRlY2xhcmVkIGJ5Ci8vIENVREEgaGVhZGVycy4gQWxhcywgZGV2aWNlX2Z1bmN0aW9ucy5ocHAgaW5jbHVkZWQgYmVsb3cgbmVlZHMgaXQuCnN0YXRpYyBpbmxpbmUgX19kZXZpY2VfXyB2b2lkIF9fYnJrcHQoaW50IF9fYykgeyBfX2Jya3B0KCk7IH0KI2VuZGlmCgovLyBOb3cgaW5jbHVkZSAqLmhwcCB3aXRoIGRlZmluaXRpb25zIG9mIHZhcmlvdXMgR1BVIGZ1bmN0aW9ucy4gIEFsYXMsCi8vIGEgbG90IG9mIHRoaW5zIGdldCBkZWNsYXJlZC9kZWZpbmVkIHdpdGggX19ob3N0X18gYXR0cmlidXRlIHdoaWNoCi8vIHdlIGRvbid0IHdhbnQgYW5kIHdlIGhhdmUgdG8gZGVmaW5lIGl0IG91dC4gV2UgYWxzbyBoYXZlIHRvIGluY2x1ZGUKLy8ge2RldmljZSxtYXRofV9mdW5jdGlvbnMuaHBwIGFnYWluIGluIG9yZGVyIHRvIGV4dHJhY3QgdGhlIG90aGVyCi8vIGJyYW5jaCBvZiAjaWYvZWxzZSBpbnNpZGUuCiNkZWZpbmUgX19ob3N0X18KI3VuZGVmIF9fQ1VEQUJFX18KI2RlZmluZSBfX0NVREFDQ19fCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMAovLyBTb21lIGF0b21pYyBmdW5jdGlvbnMgYmVjYW1lIGNvbXBpbGVyIGJ1aWx0aW5zIGluIENVREEtOSAsIHNvIHdlIG5lZWQgdGhlaXIKLy8gZGVjbGFyYXRpb25zLgojaW5jbHVkZSAiZGV2aWNlX2F0b21pY19mdW5jdGlvbnMuaCIKI2VuZGlmCiN1bmRlZiBfX0RFVklDRV9GVU5DVElPTlNfSFBQX18KI2luY2x1ZGUgImRldmljZV9hdG9taWNfZnVuY3Rpb25zLmhwcCIKI2lmIENVREFfVkVSU0lPTiA+PSA5MDAwCiNpbmNsdWRlICJjcnQvZGV2aWNlX2Z1bmN0aW9ucy5ocHAiCiNpbmNsdWRlICJjcnQvZGV2aWNlX2RvdWJsZV9mdW5jdGlvbnMuaHBwIgojZWxzZQojaW5jbHVkZSAiZGV2aWNlX2Z1bmN0aW9ucy5ocHAiCiNkZWZpbmUgX19DVURBQkVfXwojaW5jbHVkZSAiZGV2aWNlX2RvdWJsZV9mdW5jdGlvbnMuaCIKI3VuZGVmIF9fQ1VEQUJFX18KI2VuZGlmCiNpbmNsdWRlICJzbV8yMF9hdG9taWNfZnVuY3Rpb25zLmhwcCIKI2luY2x1ZGUgInNtXzIwX2ludHJpbnNpY3MuaHBwIgojaW5jbHVkZSAic21fMzJfYXRvbWljX2Z1bmN0aW9ucy5ocHAiCgovLyBEb24ndCBpbmNsdWRlIHNtXzMwX2ludHJpbnNpY3MuaCBhbmQgc21fMzJfaW50cmluc2ljcy5oLiAgVGhlc2UgZGVmaW5lIHRoZQovLyBfX3NoZmwgYW5kIF9fbGRnIGludHJpbnNpY3MgdXNpbmcgaW5saW5lICh2b2xhdGlsZSkgYXNtLCBidXQgd2Ugd2FudCB0bwovLyBkZWZpbmUgdGhlbSB1c2luZyBidWlsdGlucyBzbyB0aGF0IHRoZSBvcHRpbWl6ZXIgY2FuIHJlYXNvbiBhYm91dCBhbmQgYWNyb3NzCi8vIHRoZXNlIGluc3RydWN0aW9ucy4gIEluIHBhcnRpY3VsYXIsIHVzaW5nIGludHJpbnNpY3MgZm9yIGxkZyBnZXRzIHVzIHRoZQovLyBbYWRkcitpbW1dIGFkZHJlc3NpbmcgbW9kZSwgd2hpY2gsIGFsdGhvdWdoIGl0IGRvZXNuJ3QgYWN0dWFsbHkgZXhpc3QgaW4gdGhlCi8vIGhhcmR3YXJlLCBzZWVtcyB0byBnZW5lcmF0ZSBmYXN0ZXIgbWFjaGluZSBjb2RlIGJlY2F1c2UgcHR4YXMgY2FuIG1vcmUgZWFzaWx5Ci8vIHJlYXNvbiBhYm91dCBvdXIgY29kZS4KCiNpZiBDVURBX1ZFUlNJT04gPj0gODAwMAojcHJhZ21hIHB1c2hfbWFjcm8oIl9fQ1VEQV9BUkNIX18iKQojdW5kZWYgX19DVURBX0FSQ0hfXwojaW5jbHVkZSAic21fNjBfYXRvbWljX2Z1bmN0aW9ucy5ocHAiCiNpbmNsdWRlICJzbV82MV9pbnRyaW5zaWNzLmhwcCIKI3ByYWdtYSBwb3BfbWFjcm8oIl9fQ1VEQV9BUkNIX18iKQojZW5kaWYKCiN1bmRlZiBfX01BVEhfRlVOQ1RJT05TX0hQUF9fCgovLyBtYXRoX2Z1bmN0aW9ucy5ocHAgZGVmaW5lcyA6OnNpZ25iaXQgYXMgYSBfX2hvc3RfXyBfX2RldmljZV9fIGZ1bmN0aW9uLiAgVGhpcwovLyBjb25mbGljdHMgd2l0aCBsaWJzdGRjKysncyBjb25zdGV4cHIgOjpzaWduYml0LCBzbyB3ZSBoYXZlIHRvIHJlbmFtZQovLyBtYXRoX2Z1bmN0aW9uLmhwcCdzIDo6c2lnbmJpdC4gIEl0J3MgZ3VhcmRlZCBieSAjdW5kZWYgc2lnbmJpdCwgYnV0IHRoYXQncwovLyBjb25kaXRpb25hbCBvbiBfX0dOVUNfXy4gIDopCiNwcmFnbWEgcHVzaF9tYWNybygic2lnbmJpdCIpCiNwcmFnbWEgcHVzaF9tYWNybygiX19HTlVDX18iKQojdW5kZWYgX19HTlVDX18KI2RlZmluZSBzaWduYml0IF9faWdub3JlZF9jdWRhX3NpZ25iaXQKCi8vIENVREEtOSBvbWl0cyBkZXZpY2Utc2lkZSBkZWZpbml0aW9ucyBvZiBzb21lIG1hdGggZnVuY3Rpb25zIGlmIGl0IHNlZXMKLy8gaW5jbHVkZSBndWFyZCBmcm9tIG1hdGguaCB3cmFwcGVyIGZyb20gbGlic3RkYysrLiBXZSBoYXZlIHRvIHVuZG8gdGhlIGhlYWRlcgovLyBndWFyZCB0ZW1wb3JhcmlseSB0byBnZXQgdGhlIGRlZmluaXRpb25zIHdlIG5lZWQuCiNwcmFnbWEgcHVzaF9tYWNybygiX0dMSUJDWFhfTUFUSF9IIikKI3ByYWdtYSBwdXNoX21hY3JvKCJfTElCQ1BQX1ZFUlNJT04iKQojaWYgQ1VEQV9WRVJTSU9OID49IDkwMDAKI3VuZGVmIF9HTElCQ1hYX01BVEhfSAovLyBXZSBhbHNvIG5lZWQgdG8gdW5kbyBhbm90aGVyIGd1YXJkIHRoYXQgY2hlY2tzIGZvciBsaWJjKysgMy44KwojaWZkZWYgX0xJQkNQUF9WRVJTSU9OCiNkZWZpbmUgX0xJQkNQUF9WRVJTSU9OIDM3MDAKI2VuZGlmCiNlbmRpZgoKI2lmIENVREFfVkVSU0lPTiA+PSA5MDAwCiNpbmNsdWRlICJjcnQvbWF0aF9mdW5jdGlvbnMuaHBwIgojZWxzZQojaW5jbHVkZSAibWF0aF9mdW5jdGlvbnMuaHBwIgojZW5kaWYKI3ByYWdtYSBwb3BfbWFjcm8oIl9HTElCQ1hYX01BVEhfSCIpCiNwcmFnbWEgcG9wX21hY3JvKCJfTElCQ1BQX1ZFUlNJT04iKQojcHJhZ21hIHBvcF9tYWNybygiX19HTlVDX18iKQojcHJhZ21hIHBvcF9tYWNybygic2lnbmJpdCIpCgojcHJhZ21hIHBvcF9tYWNybygiX19ob3N0X18iKQoKI2luY2x1ZGUgInRleHR1cmVfaW5kaXJlY3RfZnVuY3Rpb25zLmgiCgovLyBSZXN0b3JlIHN0YXRlIG9mIF9fQ1VEQV9BUkNIX18gYW5kIF9fVEhST1cgd2UgaGFkIG9uIGVudHJ5LgojcHJhZ21hIHBvcF9tYWNybygiX19DVURBX0FSQ0hfXyIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX1RIUk9XIikKCi8vIFNldCB1cCBjb21waWxlciBtYWNyb3MgZXhwZWN0ZWQgdG8gYmUgc2VlbiBkdXJpbmcgY29tcGlsYXRpb24uCiN1bmRlZiBfX0NVREFCRV9fCiNkZWZpbmUgX19DVURBQ0NfXwoKZXh0ZXJuICJDIiB7Ci8vIERldmljZS1zaWRlIENVREEgc3lzdGVtIGNhbGxzLgovLyBodHRwOi8vZG9jcy5udmlkaWEuY29tL2N1ZGEvcHR4LXdyaXRlcnMtZ3VpZGUtdG8taW50ZXJvcGVyYWJpbGl0eS9pbmRleC5odG1sI3N5c3RlbS1jYWxscwovLyBXZSBuZWVkIHRoZXNlIGRlY2xhcmF0aW9ucyBhbmQgd3JhcHBlcnMgZm9yIGRldmljZS1zaWRlCi8vIG1hbGxvYy9mcmVlL3ByaW50ZiBjYWxscyB0byB3b3JrIHdpdGhvdXQgcmVseWluZyBvbgovLyAtZmN1ZGEtZGlzYWJsZS10YXJnZXQtY2FsbC1jaGVja3Mgb3B0aW9uLgpfX2RldmljZV9fIGludCB2cHJpbnRmKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKX19kZXZpY2VfXyB2b2lkIGZyZWUodm9pZCAqKSBfX2F0dHJpYnV0ZSgobm90aHJvdykpOwpfX2RldmljZV9fIHZvaWQgKm1hbGxvYyhzaXplX3QpIF9fYXR0cmlidXRlKChub3Rocm93KSkgX19hdHRyaWJ1dGVfXygobWFsbG9jKSk7CgovLyBfX2Fzc2VydGZhaWwoKSB1c2VkIHRvIGhhdmUgYSBgbm9yZXR1cm5gIGF0dHJpYnV0ZS4gVW5mb3J0dW5hdGVseSB0aGF0Ci8vIGNvbnRyaWJ1dGVkIHRvIHRyaWdnZXJpbmcgdGhlIGxvbmdzdGFuZGluZyBidWcgaW4gcHR4YXMgd2hlbiBhc3NlcnQgd2FzIHVzZWQKLy8gaW4gc3VmZmljaWVudGx5IGNvbnZvbHV0ZWQgY29kZS4gU2VlCi8vIGh0dHBzOi8vYnVncy5sbHZtLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MzggZm9yIHRoZSBkZXRhaWxzLgpfX2RldmljZV9fIHZvaWQgX19hc3NlcnRmYWlsKGNvbnN0IGNoYXIgKl9fbWVzc2FnZSwgY29uc3QgY2hhciAqX19maWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIF9fbGluZSwgY29uc3QgY2hhciAqX19mdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19jaGFyU2l6ZSk7CgovLyBJbiBvcmRlciBmb3Igc3RhbmRhcmQgYXNzZXJ0KCkgbWFjcm8gb24gbGludXggdG8gd29yayB3ZSBuZWVkIHRvCi8vIHByb3ZpZGUgZGV2aWNlLXNpZGUgX19hc3NlcnRfZmFpbCgpCl9fZGV2aWNlX18gc3RhdGljIGlubGluZSB2b2lkIF9fYXNzZXJ0X2ZhaWwoY29uc3QgY2hhciAqX19tZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKl9fZmlsZSwgdW5zaWduZWQgX19saW5lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKl9fZnVuY3Rpb24pIHsKICBfX2Fzc2VydGZhaWwoX19tZXNzYWdlLCBfX2ZpbGUsIF9fbGluZSwgX19mdW5jdGlvbiwgc2l6ZW9mKGNoYXIpKTsKfQoKLy8gQ2xhbmcgd2lsbCBjb252ZXJ0IHByaW50ZiBpbnRvIHZwcmludGYsIGJ1dCB3ZSBzdGlsbCBuZWVkCi8vIGRldmljZS1zaWRlIGRlY2xhcmF0aW9uIGZvciBpdC4KX19kZXZpY2VfXyBpbnQgcHJpbnRmKGNvbnN0IGNoYXIgKiwgLi4uKTsKfSAvLyBleHRlcm4gIkMiCgovLyBXZSBhbHNvIG5lZWQgZGV2aWNlLXNpZGUgc3RkOjptYWxsb2MgYW5kIHN0ZDo6ZnJlZS4KbmFtZXNwYWNlIHN0ZCB7Cl9fZGV2aWNlX18gc3RhdGljIGlubGluZSB2b2lkIGZyZWUodm9pZCAqX19wdHIpIHsgOjpmcmVlKF9fcHRyKTsgfQpfX2RldmljZV9fIHN0YXRpYyBpbmxpbmUgdm9pZCAqbWFsbG9jKHNpemVfdCBfX3NpemUpIHsKICByZXR1cm4gOjptYWxsb2MoX19zaXplKTsKfQp9IC8vIG5hbWVzcGFjZSBzdGQKCi8vIE91dC1vZi1saW5lIGltcGxlbWVudGF0aW9ucyBmcm9tIF9fY2xhbmdfY3VkYV9idWlsdGluX3ZhcnMuaC4gIFRoZXNlIG5lZWQgdG8KLy8gY29tZSBhZnRlciB3ZSd2ZSBwdWxsZWQgaW4gdGhlIGRlZmluaXRpb24gb2YgdWludDMgYW5kIGRpbTMuCgpfX2RldmljZV9fIGlubGluZSBfX2N1ZGFfYnVpbHRpbl90aHJlYWRJZHhfdDo6b3BlcmF0b3IgZGltMygpIGNvbnN0IHsKICByZXR1cm4gZGltMyh4LCB5LCB6KTsKfQoKX19kZXZpY2VfXyBpbmxpbmUgX19jdWRhX2J1aWx0aW5fdGhyZWFkSWR4X3Q6Om9wZXJhdG9yIHVpbnQzKCkgY29uc3QgewogIHJldHVybiB7eCwgeSwgen07Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2Jsb2NrSWR4X3Q6Om9wZXJhdG9yIGRpbTMoKSBjb25zdCB7CiAgcmV0dXJuIGRpbTMoeCwgeSwgeik7Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2Jsb2NrSWR4X3Q6Om9wZXJhdG9yIHVpbnQzKCkgY29uc3QgewogIHJldHVybiB7eCwgeSwgen07Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2Jsb2NrRGltX3Q6Om9wZXJhdG9yIGRpbTMoKSBjb25zdCB7CiAgcmV0dXJuIGRpbTMoeCwgeSwgeik7Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2Jsb2NrRGltX3Q6Om9wZXJhdG9yIHVpbnQzKCkgY29uc3QgewogIHJldHVybiB7eCwgeSwgen07Cn0KCl9fZGV2aWNlX18gaW5saW5lIF9fY3VkYV9idWlsdGluX2dyaWREaW1fdDo6b3BlcmF0b3IgZGltMygpIGNvbnN0IHsKICByZXR1cm4gZGltMyh4LCB5LCB6KTsKfQoKX19kZXZpY2VfXyBpbmxpbmUgX19jdWRhX2J1aWx0aW5fZ3JpZERpbV90OjpvcGVyYXRvciB1aW50MygpIGNvbnN0IHsKICByZXR1cm4ge3gsIHksIHp9Owp9CgojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2NtYXRoLmg+CiNpbmNsdWRlIDxfX2NsYW5nX2N1ZGFfaW50cmluc2ljcy5oPgojaW5jbHVkZSA8X19jbGFuZ19jdWRhX2NvbXBsZXhfYnVpbHRpbnMuaD4KCi8vIGN1cmFuZF9tdGdwMzJfa2VybmVsIGhlbHBmdWxseSByZWRlY2xhcmVzIGJsb2NrRGltIGFuZCB0aHJlYWRJZHggaW4gaG9zdAovLyBtb2RlLCBnaXZpbmcgdGhlbSB0aGVpciAicHJvcGVyIiB0eXBlcyBvZiBkaW0zIGFuZCB1aW50My4gIFRoaXMgaXMKLy8gaW5jb21wYXRpYmxlIHdpdGggdGhlIHR5cGVzIHdlIGdpdmUgaW4gX19jbGFuZ19jdWRhX2J1aWx0aW5fdmFycy5oLiAgQXMgYXMKLy8gaGFjaywgZm9yY2UtaW5jbHVkZSB0aGUgaGVhZGVyIChudmNjIGRvZXNuJ3QgaW5jbHVkZSBpdCBieSBkZWZhdWx0KSBidXQKLy8gcmVkZWZpbmUgZGltMyBhbmQgdWludDMgdG8gb3VyIGJ1aWx0aW4gdHlwZXMuICAoVGhhbmtmdWxseSBkaW0zIGFuZCB1aW50MyBhcmUKLy8gb25seSB1c2VkIGhlcmUgZm9yIHRoZSByZWRlY2xhcmF0aW9ucyBvZiBibG9ja0RpbSBhbmQgdGhyZWFkSWR4LikKI3ByYWdtYSBwdXNoX21hY3JvKCJkaW0zIikKI3ByYWdtYSBwdXNoX21hY3JvKCJ1aW50MyIpCiNkZWZpbmUgZGltMyBfX2N1ZGFfYnVpbHRpbl9ibG9ja0RpbV90CiNkZWZpbmUgdWludDMgX19jdWRhX2J1aWx0aW5fdGhyZWFkSWR4X3QKI2luY2x1ZGUgImN1cmFuZF9tdGdwMzJfa2VybmVsLmgiCiNwcmFnbWEgcG9wX21hY3JvKCJkaW0zIikKI3ByYWdtYSBwb3BfbWFjcm8oInVpbnQzIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fVVNFX0ZBU1RfTUFUSF9fIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fQ1VEQV9JTkNMVURFX0NPTVBJTEVSX0lOVEVSTkFMX0hFQURFUlNfXyIpCgovLyBDVURBIHJ1bnRpbWUgdXNlcyB0aGlzIHVuZG9jdW1lbnRlZCBmdW5jdGlvbiB0byBhY2Nlc3Mga2VybmVsIGxhdW5jaAovLyBjb25maWd1cmF0aW9uLiBUaGUgZGVjbGFyYXRpb24gaXMgaW4gY3J0L2RldmljZV9mdW5jdGlvbnMuaCBidXQgdGhhdCBmaWxlCi8vIGluY2x1ZGVzIGEgbG90IG9mIG90aGVyIHN0dWZmIHdlIGRvbid0IHdhbnQuIEluc3RlYWQsIHdlJ2xsIHByb3ZpZGUgb3VyIG93bgovLyBkZWNsYXJhdGlvbiBmb3IgaXQgaGVyZS4KI2lmIENVREFfVkVSU0lPTiA+PSA5MDIwCmV4dGVybiAiQyIgdW5zaWduZWQgX19jdWRhUHVzaENhbGxDb25maWd1cmF0aW9uKGRpbTMgZ3JpZERpbSwgZGltMyBibG9ja0RpbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNoYXJlZE1lbSA9IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKnN0cmVhbSA9IDApOwojZW5kaWYKCiNlbmRpZiAvLyBfX0NVREFfXwojZW5kaWYgLy8gX19DTEFOR19DVURBX1JVTlRJTUVfV1JBUFBFUl9IX18KAF9fY2xhbmdfaGlwX2xpYmRldmljZV9kZWNsYXJlcy5oAF9fc3RkZGVmX21heF9hbGlnbl90LmgAYW1taW50cmluLmgALyo9PT0tLS0tIGFybV9tdmUuaCAtIEFSTSBNVkUgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0FSTV9NVkVfSAojZGVmaW5lIF9fQVJNX01WRV9ICgojaWYgIV9fQVJNX0ZFQVRVUkVfTVZFCiNlcnJvciAiTVZFIHN1cHBvcnQgbm90IGVuYWJsZWQiCiNlbmRpZgoKI2luY2x1ZGUgPHN0ZGludC5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKCnR5cGVkZWYgdWludDE2X3QgbXZlX3ByZWQxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDgpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGludDE2X3QgaW50MTZ4OF90Owp0eXBlZGVmIHN0cnVjdCB7IGludDE2eDhfdCB2YWxbMl07IH0gaW50MTZ4OHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgaW50MTZ4OF90IHZhbFs0XTsgfSBpbnQxNng4eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg0KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQzMl90IGludDMyeDRfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBpbnQzMng0X3QgdmFsWzJdOyB9IGludDMyeDR4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IGludDMyeDRfdCB2YWxbNF07IH0gaW50MzJ4NHg0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oMiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgaW50NjRfdCBpbnQ2NHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgaW50NjR4Ml90IHZhbFsyXTsgfSBpbnQ2NHgyeDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBpbnQ2NHgyX3QgdmFsWzRdOyB9IGludDY0eDJ4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDE2KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSBpbnQ4X3QgaW50OHgxNl90Owp0eXBlZGVmIHN0cnVjdCB7IGludDh4MTZfdCB2YWxbMl07IH0gaW50OHgxNngyX3Q7CnR5cGVkZWYgc3RydWN0IHsgaW50OHgxNl90IHZhbFs0XTsgfSBpbnQ4eDE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXyg4KSwgX19jbGFuZ19hcm1fbXZlX3N0cmljdF9wb2x5bW9ycGhpc20pKSB1aW50MTZfdCB1aW50MTZ4OF90Owp0eXBlZGVmIHN0cnVjdCB7IHVpbnQxNng4X3QgdmFsWzJdOyB9IHVpbnQxNng4eDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50MTZ4OF90IHZhbFs0XTsgfSB1aW50MTZ4OHg0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oNCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDMyX3QgdWludDMyeDRfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50MzJ4NF90IHZhbFsyXTsgfSB1aW50MzJ4NHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgdWludDMyeDRfdCB2YWxbNF07IH0gdWludDMyeDR4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDIpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIHVpbnQ2NF90IHVpbnQ2NHgyX3Q7CnR5cGVkZWYgc3RydWN0IHsgdWludDY0eDJfdCB2YWxbMl07IH0gdWludDY0eDJ4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IHVpbnQ2NHgyX3QgdmFsWzRdOyB9IHVpbnQ2NHgyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChfX25lb25fdmVjdG9yX3R5cGVfXygxNiksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgdWludDhfdCB1aW50OHgxNl90Owp0eXBlZGVmIHN0cnVjdCB7IHVpbnQ4eDE2X3QgdmFsWzJdOyB9IHVpbnQ4eDE2eDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyB1aW50OHgxNl90IHZhbFs0XTsgfSB1aW50OHgxNng0X3Q7CgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX2FzcmwpKSkKaW50NjRfdCBfX2FybV9hc3JsKGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX2xzbGwpKSkKdWludDY0X3QgX19hcm1fbHNsbCh1aW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3Fyc2hyKSkpCmludDMyX3QgX19hcm1fc3Fyc2hyKGludDMyX3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3NxcnNocmwpKSkKaW50NjRfdCBfX2FybV9zcXJzaHJsKGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3NxcnNocmxfc2F0NDgpKSkKaW50NjRfdCBfX2FybV9zcXJzaHJsX3NhdDQ4KGludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Nxc2hsKSkpCmludDMyX3QgX19hcm1fc3FzaGwoaW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXNobGwpKSkKaW50NjRfdCBfX2FybV9zcXNobGwoaW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcnNocikpKQppbnQzMl90IF9fYXJtX3Nyc2hyKGludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3JzaHJsKSkpCmludDY0X3QgX19hcm1fc3JzaHJsKGludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFyc2hsKSkpCnVpbnQzMl90IF9fYXJtX3VxcnNobCh1aW50MzJfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFyc2hsbCkpKQp1aW50NjRfdCBfX2FybV91cXJzaGxsKHVpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXJzaGxsX3NhdDQ4KSkpCnVpbnQ2NF90IF9fYXJtX3VxcnNobGxfc2F0NDgodWludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vxc2hsKSkpCnVpbnQzMl90IF9fYXJtX3Vxc2hsKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Vxc2hsbCkpKQp1aW50NjRfdCBfX2FybV91cXNobGwodWludDY0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXJzaHIpKSkKdWludDMyX3QgX19hcm1fdXJzaHIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXJzaHJsKSkpCnVpbnQ2NF90IF9fYXJtX3Vyc2hybCh1aW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMTYpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfczE2KHVpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zMTYpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3AodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcF9zMzIodWludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcCh1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfczgodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3M4KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9wKHVpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcCh1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcF91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92YWJhdnFfcCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9zMTYodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cSh1aW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxKHVpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3M4KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV9zOCh1aW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zOCkpKQp1aW50MzJfdCBfX2FybV92YWJhdnEodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MTYpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhYmF2cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MzIpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfdTgpKSkKdWludDMyX3QgX19hcm1fdmFiYXZxKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFiZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFiZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFiZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYmRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhYmRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWJkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWJkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFiZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWJkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhYmRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYmRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFiZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYmRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWJkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFiZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFiZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhYmRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFiZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWJkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFiZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYmRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYmRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYmRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFiZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhYmRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWJkcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWJkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFiZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWJkcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhYmRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFic3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYnNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYnNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhYnNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFic3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhYnNxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFic3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhYnNxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFic3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFic3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFic3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFic3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWJzcV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFic3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWJzcV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJzcV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YWJzcV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNpcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkY2lxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjaXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRjaXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNpcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNpcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNpcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkY3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkY3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGNxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRjcShpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2YXFfcF91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2YXFfcCh1aW50NjRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92YWRkbHZhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92YWRkbHZhcShpbnQ2NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3UzMikpKQp1aW50NjRfdCBfX2FybV92YWRkbHZhcV91MzIodWludDY0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3UzMikpKQp1aW50NjRfdCBfX2FybV92YWRkbHZhcSh1aW50NjRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZhZGRsdnFfcF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92YWRkbHZxX3AoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2cV9wX3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdmFkZGx2cV9wKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9zMzIpKSkKaW50NjRfdCBfX2FybV92YWRkbHZxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfczMyKSkpCmludDY0X3QgX19hcm1fdmFkZGx2cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdnFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdnFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZhZGRsdnEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhZGRxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFkZHFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhZGRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YWRkcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFkZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhZGRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YWRkcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFkZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhZGRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3BfczMyKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXFfcChpbnQzMl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxX3BfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV9wKHVpbnQzMl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfcCh1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV9wX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxX3AodWludDMyX3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zMTYpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxX3MxNihpbnQzMl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcShpbnQzMl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2YXEoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZhcV9zOChpbnQzMl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczgpKSkKaW50MzJfdCBfX2FybV92YWRkdmFxKGludDMyX3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcV91MTYodWludDMyX3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXEodWludDMyX3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWRkdmFxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2YXFfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZhcSh1aW50MzJfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3BfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfcChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3BfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfcChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfcF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92YWRkdnFfcChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cV9wX3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfcCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfcF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3AodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91OCkpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfcF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cV9wKHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczE2KSkpCmludDMyX3QgX19hcm1fdmFkZHZxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZhZGR2cV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczMyKSkpCmludDMyX3QgX19hcm1fdmFkZHZxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3M4KSkpCmludDMyX3QgX19hcm1fdmFkZHZxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3UxNikpKQp1aW50MzJfdCBfX2FybV92YWRkdnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MTYpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MzIpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZhZGR2cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTgpKSkKdWludDMyX3QgX19hcm1fdmFkZHZxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91OCkpKQp1aW50MzJfdCBfX2FybV92YWRkdnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhbmRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhbmRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFuZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFuZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhbmRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92YW5kcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YW5kcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFuZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFuZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhbmRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFuZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YW5kcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92YW5kcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmFuZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFuZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZhbmRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmFuZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YW5kcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFuZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZhbmRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhbmRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YW5kcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZhbmRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFuZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZhbmRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92YW5kcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YW5kcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmFuZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92YW5kcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZhbmRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YW5kcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmFuZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmFuZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZhbmRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmFuZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YW5kcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3FfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3FfbV9uKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV9tX24odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX21fbih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJpY3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZiaWNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZiaWNxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJpY3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YmljcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZiaWNxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3Ffbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3EoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3Ffbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3EoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZiaWNxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZiaWNxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92YmljcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJpY3EoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3M4KSkpCmludDh4MTZfdCBfX2FybV92YmljcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZiaWNxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJpY3EodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJpY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZiaWNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJpY3FfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YmljcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJpY3FfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZiaWNxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZiaWNxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92YmljcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZiaWNxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJpY3FfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZiaWNxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YmljcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YmljcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJpY3FfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92YmljcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZiaWNxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJyc3JxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZicnNycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YnJzcnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJyc3JxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmJyc3JxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YnJzcnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZicnNycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YnJzcnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJyc3JxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZicnNycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZicnNycV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJyc3JxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZicnNycV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJyc3JxKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92YnJzcnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZicnNycShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YnJzcnFfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92YnJzcnEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YnJzcnFfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmJyc3JxKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZicnNycV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92YnJzcnEodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92YnJzcnFfbl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZicnNycSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmJyc3JxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92YnJzcnFfeChpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZicnNycV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmJyc3JxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZicnNycV94X25fczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZicnNycV94KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZicnNycV94X25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92YnJzcnFfeCh1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmJyc3JxX3hfbl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZicnNycV94KHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZicnNycV94X25fdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmJyc3JxX3godWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MCh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDI3MCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90MjcwX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90MjcwX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTBfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTAoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTBfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTAodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2FkZHFfcm90OTBfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNhZGRxX3JvdDkwX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsc3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2xzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsc3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHNxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsc3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHNxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsc3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsc3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsc3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsc3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2xzcV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsc3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2xzcV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2xzcV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2xzcV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsenFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHpxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHpxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2x6cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZjbHpxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsenFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjbHpxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2x6cV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2x6cV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNsenFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2x6cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjbHpxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjbHpxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsenEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjbHpxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsenEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsenFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmNsenEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2x6cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmNsenEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNsenFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjbHpxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNsenFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2x6cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNsenFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92Y2x6cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmNsenFfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y2x6cV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2x6cV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92Y2x6cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjbHpxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92Y2x6cV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92Y2x6cV94X3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmNsenFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92Y2x6cV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZjbHpxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3FfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBjc3EodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGNzcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wY3NxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbl91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21waGlxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBoaXFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGhpcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfczgpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTE2KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91MzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91OCkpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3U4KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmNyZWF0ZXFfczE2KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfczMyKSkpCmludDMyeDRfdCBfX2FybV92Y3JlYXRlcV9zMzIodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZjcmVhdGVxX3M2NCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3M4KSkpCmludDh4MTZfdCBfX2FybV92Y3JlYXRlcV9zOCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjcmVhdGVxX3UxNih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjcmVhdGVxX3UzMih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZjcmVhdGVxX3U2NCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmNyZWF0ZXFfdTgodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMTZxKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwMTZxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMTZxX20pKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjdHAxNnFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMzJxKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwMzJxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwMzJxX20pKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjdHAzMnFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwNjRxKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y3RwNjRxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwNjRxX20pKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjdHA2NHFfbSh1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwOHEpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjdHA4cSh1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN0cDhxX20pKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjdHA4cV9tKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmRkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV9uX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfdTE2KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV9uX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfdTMyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX25fdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV93Yl91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX3UxNih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfd2JfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV91MzIodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfd2JfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV94X25fdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZGR1cHFfeF91MTYodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV94X25fdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfeF91MzIodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmRkdXBxX3hfbl91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfeF91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmRkdXBxX3hfdTE2KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZGR1cHFfeF93Yl91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkZHVwcV94X3UzMih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfeF93Yl91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZGR1cHFfeF91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmR1cHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmR1cHFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmR1cHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmR1cHFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92ZHVwcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92ZHVwcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZkdXBxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmR1cHFfbl9zMTYoaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZkdXBxX25fczMyKGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZkdXBxX25fczgoaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZkdXBxX25fdTE2KHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZkdXBxX25fdTMyKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmR1cHFfbl91OCh1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92ZHVwcV94X25fczE2KGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmR1cHFfeF9uX3MzMihpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmR1cHFfeF9uX3M4KGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR1cHFfeF9uX3UxNih1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR1cHFfeF9uX3UzMih1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHVwcV94X25fdTgodWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZHdkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV9uX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX25fdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV93Yl91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfd2JfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfd2JfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV94X25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zkd2R1cHFfeF91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV94X25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfeF91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZHdkdXBxX3hfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfeF91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmR3ZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZHdkdXBxX3hfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zkd2R1cHFfeF93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmR3ZHVwcV94X3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfeF93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zkd2R1cHFfeF91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92ZW9ycV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92ZW9ycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zlb3JxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zlb3JxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92ZW9ycV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmVvcnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmVvcnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zlb3JxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zlb3JxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZW9ycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zlb3JxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmVvcnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmVvcnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zlb3JxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zlb3JxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92ZW9ycShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zlb3JxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmVvcnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zlb3JxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92ZW9ycSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZW9ycV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmVvcnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92ZW9ycV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zlb3JxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92ZW9ycV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmVvcnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmVvcnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zlb3JxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmVvcnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92ZW9ycV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmVvcnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zlb3JxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zlb3JxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92ZW9ycV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zlb3JxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmVvcnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczE2KSkpCmludDE2X3QgX19hcm1fdmdldHFfbGFuZV9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczE2KSkpCmludDE2X3QgX19hcm1fdmdldHFfbGFuZShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMzIpKSkKaW50MzJfdCBfX2FybV92Z2V0cV9sYW5lX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMzIpKSkKaW50MzJfdCBfX2FybV92Z2V0cV9sYW5lKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M2NCkpKQppbnQ2NF90IF9fYXJtX3ZnZXRxX2xhbmVfczY0KGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3M2NCkpKQppbnQ2NF90IF9fYXJtX3ZnZXRxX2xhbmUoaW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczgpKSkKaW50OF90IF9fYXJtX3ZnZXRxX2xhbmVfczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczgpKSkKaW50OF90IF9fYXJtX3ZnZXRxX2xhbmUoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZnZXRxX2xhbmVfdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MTYpKSkKdWludDE2X3QgX19hcm1fdmdldHFfbGFuZSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZnZXRxX2xhbmVfdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MzIpKSkKdWludDMyX3QgX19hcm1fdmdldHFfbGFuZSh1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NF90IF9fYXJtX3ZnZXRxX2xhbmVfdTY0KHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91NjQpKSkKdWludDY0X3QgX19hcm1fdmdldHFfbGFuZSh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfdTgpKSkKdWludDhfdCBfX2FybV92Z2V0cV9sYW5lX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91OCkpKQp1aW50OF90IF9fYXJtX3ZnZXRxX2xhbmUodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aGFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aGFkZHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aGFkZHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZoYWRkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhhZGRxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGFkZHFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhhZGRxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhhZGRxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZoYWRkcV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoYWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhhZGRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoYWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aGFkZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZoYWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aGFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhhZGRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDI3MChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3QyNzAoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDI3MF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90MjcwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDI3MF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90MjcwX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3QyNzBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDkwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDkwX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDkwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhjYWRkcV9yb3Q5MF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDkwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDkwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCBfX2FybV92aGNhZGRxX3JvdDkwKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92aGNhZGRxX3JvdDkwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92aGNhZGRxX3JvdDkwX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZoY2FkZHFfcm90OTBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90OTBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZoY2FkZHFfcm90OTBfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aHN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92aHN1YnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aHN1YnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zoc3VicSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdmhzdWJxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92aHN1YnFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zoc3VicV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmhzdWJxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmhzdWJxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zoc3VicV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zoc3VicV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmhzdWJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zoc3VicV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92aHN1YnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aHN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zoc3VicV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92aHN1YnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmhzdWJxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfbV93Yl91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfbV93Yl91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZpZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV9tX3diX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfbl91MTYodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfbl91MzIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV9uX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3U4KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfd2JfdTE2KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3diX3UzMih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3diX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3U4KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfeF9uX3UxNih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmlkdXBxX3hfdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfeF9uX3UzMih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3hfdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZpZHVwcV94X25fdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3hfdTgodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aWR1cHFfeF93Yl91MTYodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZpZHVwcV94X3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmlkdXBxX3hfd2JfdTMyKHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aWR1cHFfeF91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3hfd2JfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmlkdXBxX3hfdTgodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX21fd2JfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX21fd2JfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zpd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfbV93Yl91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX3hfbl91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdml3ZHVwcV94X3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX3hfbl91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV94X3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zpd2R1cHFfeF9uX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV94X3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92aXdkdXBxX3hfd2JfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zpd2R1cHFfeF91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdml3ZHVwcV94X3diX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92aXdkdXBxX3hfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV94X3diX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdml3ZHVwcV94X3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGQxcV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZDFxKGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGQxcV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZDFxKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZDFxX3M4KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmxkMXEoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZDFxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGQxcShjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGQxcV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkMXEoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGQxcV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkMXEoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkMXFfel9zMTYoY29uc3QgaW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGQxcV96KGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkMXFfel9zMzIoY29uc3QgaW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGQxcV96KGNvbnN0IGludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGQxcV96X3M4KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZDFxX3ooY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGQxcV96X3UxNihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkMXFfeihjb25zdCB1aW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkMXFfel91MzIoY29uc3QgdWludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZDFxX3ooY29uc3QgdWludDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkMXFfel91OChjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZDFxX3ooY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3MxNikpKQppbnQxNng4eDJfdCBfX2FybV92bGQycV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMTYpKSkKaW50MTZ4OHgyX3QgX19hcm1fdmxkMnEoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMzIpKSkKaW50MzJ4NHgyX3QgX19hcm1fdmxkMnFfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczMyKSkpCmludDMyeDR4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczgpKSkKaW50OHgxNngyX3QgX19hcm1fdmxkMnFfczgoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3M4KSkpCmludDh4MTZ4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MTYpKSkKdWludDE2eDh4Ml90IF9fYXJtX3ZsZDJxX3UxNihjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91MTYpKSkKdWludDE2eDh4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UzMikpKQp1aW50MzJ4NHgyX3QgX19hcm1fdmxkMnFfdTMyKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UzMikpKQp1aW50MzJ4NHgyX3QgX19hcm1fdmxkMnEoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTgpKSkKdWludDh4MTZ4Ml90IF9fYXJtX3ZsZDJxX3U4KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTgpKSkKdWludDh4MTZ4Ml90IF9fYXJtX3ZsZDJxKGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczE2KSkpCmludDE2eDh4NF90IF9fYXJtX3ZsZDRxX3MxNihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MxNikpKQppbnQxNng4eDRfdCBfX2FybV92bGQ0cShjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MzMikpKQppbnQzMng0eDRfdCBfX2FybV92bGQ0cV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zMzIpKSkKaW50MzJ4NHg0X3QgX19hcm1fdmxkNHEoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zOCkpKQppbnQ4eDE2eDRfdCBfX2FybV92bGQ0cV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczgpKSkKaW50OHgxNng0X3QgX19hcm1fdmxkNHEoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UxNikpKQp1aW50MTZ4OHg0X3QgX19hcm1fdmxkNHFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3UxNikpKQp1aW50MTZ4OHg0X3QgX19hcm1fdmxkNHEoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTMyKSkpCnVpbnQzMng0eDRfdCBfX2FybV92bGQ0cV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTMyKSkpCnVpbnQzMng0eDRfdCBfX2FybV92bGQ0cShjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91OCkpKQp1aW50OHgxNng0X3QgX19hcm1fdmxkNHFfdTgoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91OCkpKQp1aW50OHgxNng0X3QgX19hcm1fdmxkNHEoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MxNihjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMzIoY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF9zOChjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF91MTYoY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMihjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF91OChjb25zdCB1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMTYoY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczMyKGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczgoY29uc3QgaW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTE2KGNvbnN0IHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MzIoY29uc3QgdWludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTgoY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyYnFfczE2KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyYnFfczMyKGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZsZHJicV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJicV91MTYoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmJxX3UzMihjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZsZHJicV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmJxX3pfczE2KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmJxX3pfczMyKGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3M4KSkpCmludDh4MTZfdCBfX2FybV92bGRyYnFfel9zOChjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyYnFfel91MTYoY29uc3QgdWludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJicV96X3UzMihjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bGRyYnFfel91OChjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9iYXNlX3M2NCh1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX2Jhc2VfdTY0KHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9iYXNlX3diX3M2NCh1aW50NjR4Ml90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl91NjQodWludDY0eDJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9iYXNlX3diX3pfczY0KHVpbnQ2NHgyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV93Yl96X3U2NCh1aW50NjR4Ml90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfYmFzZV96X3M2NCh1aW50NjR4Ml90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3pfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9iYXNlX3pfdTY0KHVpbnQ2NHgyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX29mZnNldF91NjQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfczY0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCmludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCmludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCBfX2FybV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczE2KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIoY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MTYoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UxNihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bGRyaHFfczE2KGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcmhxX3MzMihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bGRyaHFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyaHFfdTMyKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X3MxNikpKQppbnQxNng4X3QgX19hcm1fdmxkcmhxX3pfczE2KGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJocV96X3MzMihjb25zdCBpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmxkcmhxX3pfdTE2KGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcmhxX3pfdTMyKGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3MzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX2Jhc2VfdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3diX3MzMih1aW50MzJ4NF90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl91MzIodWludDMyeDRfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfczMyKHVpbnQzMng0X3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X3UzMih1aW50MzJ4NF90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X3MzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3pfdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF91MzIoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfczMyKGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMihjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgdWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3FfczMyKGNvbnN0IGludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3pfczMyKSkpCmludDMyeDRfdCBfX2FybV92bGRyd3Ffel9zMzIoY29uc3QgaW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV96X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZsZHJ3cV96X3UzMihjb25zdCB1aW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhhcV9tX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heGFxX20odWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhhcV9tX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heGFxX20odWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heGFxX21fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9tX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heGFxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4YXFfczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhhcSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4YXFfczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhhcSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhhcV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhcV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhhcSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1heGF2cV9wX3MxNih1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1heGF2cV9wKHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWF4YXZxX3BfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWF4YXZxX3AodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczgpKSkKdWludDhfdCBfX2FybV92bWF4YXZxX3BfczgodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zOCkpKQp1aW50OF90IF9fYXJtX3ZtYXhhdnFfcCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1heGF2cV9zMTYodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1heGF2cSh1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWF4YXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWF4YXZxKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczgpKSkKdWludDhfdCBfX2FybV92bWF4YXZxX3M4KHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zOCkpKQp1aW50OF90IF9fYXJtX3ZtYXhhdnEodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1heHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1heHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWF4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWF4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1heHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtYXhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4cV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4cV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtYXhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWF4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWF4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1heHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWF4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtYXhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4cV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1heHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtYXhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1heHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4cSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1heHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtYXhxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtYXhxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWF4cV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtYXhxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1heHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtYXhxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWF4cV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWF4cV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1heHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWF4cV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtYXhxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMTYpKSkKaW50MTZfdCBfX2FybV92bWF4dnFfcF9zMTYoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtYXh2cV9wKGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWF4dnFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtYXh2cV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zOCkpKQppbnQ4X3QgX19hcm1fdm1heHZxX3BfczgoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczgpKSkKaW50OF90IF9fYXJtX3ZtYXh2cV9wKGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWF4dnFfcF91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXh2cV9wKHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWF4dnFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtYXh2cV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1heHZxX3BfdTgodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91OCkpKQp1aW50OF90IF9fYXJtX3ZtYXh2cV9wKHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtYXh2cV9zMTYoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczE2KSkpCmludDE2X3QgX19hcm1fdm1heHZxKGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtYXh2cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczMyKSkpCmludDMyX3QgX19hcm1fdm1heHZxKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3M4KSkpCmludDhfdCBfX2FybV92bWF4dnFfczgoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zOCkpKQppbnQ4X3QgX19hcm1fdm1heHZxKGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtYXh2cV91MTYodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MTYpKSkKdWludDE2X3QgX19hcm1fdm1heHZxKHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtYXh2cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MzIpKSkKdWludDMyX3QgX19hcm1fdm1heHZxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTgpKSkKdWludDhfdCBfX2FybV92bWF4dnFfdTgodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1heHZxKHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5hcV9tX3MxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbmFxX20odWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5hcV9tX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbmFxX20odWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbmFxX21fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9tX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbmFxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92bWluYXFfczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5hcSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92bWluYXFfczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5hcSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5hcV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hcV9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5hcSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1pbmF2cV9wX3MxNih1aW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1pbmF2cV9wKHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWluYXZxX3BfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWluYXZxX3AodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczgpKSkKdWludDhfdCBfX2FybV92bWluYXZxX3BfczgodWludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zOCkpKQp1aW50OF90IF9fYXJtX3ZtaW5hdnFfcCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1pbmF2cV9zMTYodWludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zMTYpKSkKdWludDE2X3QgX19hcm1fdm1pbmF2cSh1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWluYXZxX3MzMih1aW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MzMikpKQp1aW50MzJfdCBfX2FybV92bWluYXZxKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczgpKSkKdWludDhfdCBfX2FybV92bWluYXZxX3M4KHVpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zOCkpKQp1aW50OF90IF9fYXJtX3ZtaW5hdnEodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1pbnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1pbnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWlucV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWlucV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1pbnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtaW5xX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5xX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWlucV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWlucV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWlucV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5xX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtaW5xX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bWlucShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWlucV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1pbnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWlucV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtaW5xKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWlucV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1pbnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtaW5xKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1pbnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWlucSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm1pbnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtaW5xX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtaW5xX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bWlucV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtaW5xX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1pbnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtaW5xX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWlucV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bWlucV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1pbnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bWlucV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtaW5xX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMTYpKSkKaW50MTZfdCBfX2FybV92bWludnFfcF9zMTYoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtaW52cV9wKGludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWludnFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtaW52cV9wKGludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zOCkpKQppbnQ4X3QgX19hcm1fdm1pbnZxX3BfczgoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczgpKSkKaW50OF90IF9fYXJtX3ZtaW52cV9wKGludDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UxNikpKQp1aW50MTZfdCBfX2FybV92bWludnFfcF91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW52cV9wKHVpbnQxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWludnFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtaW52cV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1pbnZxX3BfdTgodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91OCkpKQp1aW50OF90IF9fYXJtX3ZtaW52cV9wKHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MxNikpKQppbnQxNl90IF9fYXJtX3ZtaW52cV9zMTYoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczE2KSkpCmludDE2X3QgX19hcm1fdm1pbnZxKGludDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtaW52cV9zMzIoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczMyKSkpCmludDMyX3QgX19hcm1fdm1pbnZxKGludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3M4KSkpCmludDhfdCBfX2FybV92bWludnFfczgoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zOCkpKQppbnQ4X3QgX19hcm1fdm1pbnZxKGludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTE2KSkpCnVpbnQxNl90IF9fYXJtX3ZtaW52cV91MTYodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MTYpKSkKdWludDE2X3QgX19hcm1fdm1pbnZxKHVpbnQxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtaW52cV91MzIodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MzIpKSkKdWludDMyX3QgX19hcm1fdm1pbnZxKHVpbnQzMl90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTgpKSkKdWludDhfdCBfX2FybV92bWludnFfdTgodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3U4KSkpCnVpbnQ4X3QgX19hcm1fdm1pbnZxKHVpbnQ4X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZhcV9wKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZhcShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmFxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MTYpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXEodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91MzIpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdmFxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXEodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXFfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV91OCkpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2YXEodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2YXhxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdmF4cV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZheHEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3BfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MTYpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfcCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3BfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MzIpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfcCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfcF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3BfdTgpKSkKdWludDMyX3QgX19hcm1fdm1sYWRhdnFfcCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UxNikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTE2KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3UzMikpKQp1aW50MzJfdCBfX2FybV92bWxhZGF2cV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTMyKSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZxX3U4KSkpCnVpbnQzMl90IF9fYXJtX3ZtbGFkYXZxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbGFkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sYWRhdnhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczgpKSkKaW50MzJfdCBfX2FybV92bWxhZGF2eHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfdTE2KSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXFfcF91MTYodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3AodWludDY0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UzMikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3BfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9wKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcV9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZhcShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdmFxX3UxNih1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MTYpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcSh1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZhcV91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXEodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHFfcF9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmF4cV9wKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdmF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2YXhxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfdTE2KSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9wX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UxNikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnFfcCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UzMikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnFfcF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZxX3AodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV91MTYpKSkKdWludDY0X3QgX19hcm1fdm1sYWxkYXZxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTE2KSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZtbGFsZGF2cV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3UzMikpKQp1aW50NjRfdCBfX2FybV92bWxhbGRhdnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbGFsZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sYWxkYXZ4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxhbGRhdnhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtbGFxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWxhcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtbGFxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bWxhcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm1sYXFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhcShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtbGFxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXEodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtbGFzcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhc3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXNxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtbGFzcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhc3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1sYXNxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhc3FfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1sYXNxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFzcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXNxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtbGFzcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bWxhc3EoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm1sYXNxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtbGFzcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtbGFzcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bWxhc3EoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm1sYXNxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bWxhc3EodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtbGFzcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm1sYXNxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtbGFzcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1sYXNxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXFfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZhcShpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmFxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3AoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3BfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9wKGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cShpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2YXhxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdmF4cV9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZheHEoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3MxNikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMzIpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfcF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zOCkpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cV9wKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zMTYpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczE2KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczMyKSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3MzMikpKQppbnQzMl90IF9fYXJtX3ZtbHNkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3M4KSkpCmludDMyX3QgX19hcm1fdm1sc2RhdnhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczgpKSkKaW50MzJfdCBfX2FybV92bWxzZGF2eHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmFxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXEoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cV9wX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXhxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2YXhxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZheHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdmF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3BfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfczE2KSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9zMzIpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfcF9zMTYpKSkKaW50NjRfdCBfX2FybV92bWxzbGRhdnhxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3MxNikpKQppbnQ2NF90IF9fYXJtX3ZtbHNsZGF2eHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZ4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczMyKSkpCmludDY0X3QgX19hcm1fdm1sc2xkYXZ4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmxicV9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bGJxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bGJxX21fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bGJxX20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmxicV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicV9tX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdmxicV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bGJxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmxicV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bGJxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bGJxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bGJxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsYnFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bGJxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm1vdmxicV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmxicV94X3UxNih1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bGJxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bGJxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bGJxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bW92bHRxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfbV9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm1vdmx0cV9tX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bHRxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxX21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX21fdTgpKSkKdWludDE2eDhfdCBfX2FybV92bW92bHRxX20odWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmx0cV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmx0cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bHRxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmx0cV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm1vdmx0cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfczgpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3M4KSkpCmludDE2eDhfdCBfX2FybV92bW92bHRxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bW92bHRxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztb3ZsdHFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZsdHFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZuYnFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdm1vdm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZuYnFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MzMikpKQppbnQxNng4X3QgX19hcm1fdm1vdm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bmJxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Ztb3ZuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bmJxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bmJxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZuYnEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bmJxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm5icV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm5icV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZudHFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdm1vdm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZudHFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MzMikpKQppbnQxNng4X3QgX19hcm1fdm1vdm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bnRxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Ztb3ZudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bnRxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztb3ZudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczE2KSkpCmludDh4MTZfdCBfX2FybV92bW92bnRxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Ztb3ZudHEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfczMyKSkpCmludDE2eDhfdCBfX2FybV92bW92bnRxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Ztb3ZudHEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm1vdm50cV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92bW92bnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZudHFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdm1vdm50cV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92bW92bnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxocV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxocV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGhxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGhxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxocV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVsaHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVsaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVsaHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxocSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVsaHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bGhxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bGhxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bGhxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVsaHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVsaHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bGhxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxocV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxocV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxocV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGhxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGhxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxocV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVsaHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X21fdTMyKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF9tKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnQoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnQodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbGJxX2ludF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdm11bGxicV9pbnRfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbGJxX2ludF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9pbnRfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfaW50X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsYnFfaW50X3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbGJxX2ludF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfaW50X3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9pbnRfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seV9tX3AxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsYnFfcG9seV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX3BvbHlfbV9wOCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGxicV9wb2x5X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9wb2x5X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9wb2x5KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfcG9seV9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX3BvbHkodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9wb2x5X3hfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGxicV9wb2x5X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsYnFfcG9seV94X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbGJxX3BvbHlfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfbV91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X21fdTMyKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF9tKHVpbnQ2NHgyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczMyKSkpCmludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnQoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MTYpKSkKdWludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludCh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnQodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczE2KSkpCmludDMyeDRfdCBfX2FybV92bXVsbHRxX2ludF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MxNikpKQppbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdm11bGx0cV9pbnRfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zOCkpKQppbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3M4KSkpCmludDE2eDhfdCBfX2FybV92bXVsbHRxX2ludF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9pbnRfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfaW50X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZtdWxsdHFfaW50X3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92bXVsbHRxX2ludF94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfaW50X3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9pbnRfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seV9tX3AxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3AxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxsdHFfcG9seV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX3BvbHlfbV9wOCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9tX3A4KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bGx0cV9wb2x5X20odWludDE2eDhfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9wb2x5X3AxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9wb2x5KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfcG9seV9wOCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX3BvbHkodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9wb2x5X3hfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDE2KSkpCnVpbnQzMng0X3QgX19hcm1fdm11bGx0cV9wb2x5X3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxsdHFfcG9seV94X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3hfcDgpKSkKdWludDE2eDhfdCBfX2FybV92bXVsbHRxX3BvbHlfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZtdWxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXVscV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm11bHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXVscSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92bXVscV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZtdWxxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXVscV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm11bHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm11bHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZtdWxxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm11bHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bXVscV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm11bHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZtdWxxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZtdWxxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXVscV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZtdWxxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm11bHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm12bnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm12bnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92bXZucV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztdm5xX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Ztdm5xX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm12bnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV9uX3MxNihpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm12bnFfbl9zMzIoaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV9uX3UxNih1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV9uX3UzMih1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Ztdm5xKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Ztdm5xX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Ztdm5xKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Ztdm5xX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Ztdm5xX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm12bnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfeF9uX3MxNihpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Ztdm5xX3hfbl9zMzIoaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm12bnFfeF9uX3UxNih1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfeF9uX3UzMih1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm12bnFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92bXZucV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm12bnFfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bXZucV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bXZucV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bXZucV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Ztdm5xX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92bXZucV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92bXZucV94X3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm12bnFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92bXZucV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Ztdm5xX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm5lZ3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZuZWdxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZuZWdxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92bmVncV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZuZWdxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm5lZ3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZuZWdxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm5lZ3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZuZWdxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm5lZ3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm5lZ3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm5lZ3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm5lZ3FfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92bmVncV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm5lZ3FfeF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92bmVncV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bmVncV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92bmVncV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ybnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ybnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JucV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JucV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ybnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zvcm5xX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zvcm5xX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JucV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JucV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ybnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JucV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zvcm5xX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zvcm5xX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JucShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JucV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ybnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JucV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zvcm5xKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JucV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ybnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ybnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zvcm5xKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ybnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JucSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ybnFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zvcm5xX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zvcm5xX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JucV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zvcm5xX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ybnFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zvcm5xX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JucV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JucV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ybnFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JucV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zvcm5xX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV9tX24oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fbihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX21fbih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfbV9uKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JycV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ycnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ycnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZvcnJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ycnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ycnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ycnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZvcnJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92b3JycShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZvcnJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ycnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92b3JycSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JycV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdm9ycnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92b3JycV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZvcnJxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92b3JycV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdm9ycnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdm9ycnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZvcnJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdm9ycnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92b3JycV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdm9ycnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZvcnJxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZvcnJxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92b3JycV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZvcnJxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdm9ycnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwbm90KSkpCm12ZV9wcmVkMTZfdCBfX2FybV92cG5vdChtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zwc2VscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnBzZWxxKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zwc2VscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnBzZWxxKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3Zwc2VscV9zNjQoaW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdnBzZWxxKGludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnBzZWxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnBzZWxxKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cHNlbHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zwc2VscSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cHNlbHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zwc2VscSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92cHNlbHFfdTY0KHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3U2NCkpKQp1aW50NjR4Ml90IF9fYXJtX3Zwc2VscSh1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zwc2VscV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zwc2VscSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhYnNxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhYnNxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFic3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFic3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhYnNxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWJzcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWJzcV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFic3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFic3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhYnNxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFic3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWJzcShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWRkcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFkZHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFhZGRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxYWRkcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFhZGRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWFkZHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFkZHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxYWRkcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxYWRkcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cWFkZHFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWRkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxYWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFhZGRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cWFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxYWRkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhZGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhZGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhZGh4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhZGh4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWRoeHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWRoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWRoeHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYWhxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYWhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYWhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFzaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxhc2hxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYXNocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbGFzaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFzaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxhc2hxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sYXNocV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbGFzaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxhc2hxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sYXNocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sYXNocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbGFzaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sc2RocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sc2RocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sc2RocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sc2RocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxzZGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbWxzZGh4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sc2RoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG1sc2RoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sc2RoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbWxzZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG1sc2RoeHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtbHNkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtbHNkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbWxzZGh4cShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtbHNkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG1sc2RoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFkbXVsaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxZG11bGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cWRtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsaHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cWRtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxZG11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbGJxX21fbl9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX25fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnFfbV9uX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbGJxX20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnFfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnFfbV9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGxicV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGxicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbGJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsYnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsYnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGxicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGxicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZxZG11bGx0cV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxX21fbl9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGx0cV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxX21fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsdHFfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92cWRtdWxsdHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbl9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZxZG11bGx0cV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MzMikpKQppbnQ2NHgyX3QgX19hcm1fdnFkbXVsbHRxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnFkbXVsbHRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsdHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczMyKSkpCmludDY0eDJfdCBfX2FybV92cWRtdWxsdHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm5icV9tX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZuYnFfbV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm5icV9tX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3ZuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZuYnFfbV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92bmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxbW92bmJxX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczMyKSkpCmludDE2eDhfdCBfX2FybV92cW1vdm5icV9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92bmJxX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdm5icV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxbW92bnRxX21fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczE2KSkpCmludDh4MTZfdCBfX2FybV92cW1vdm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczMyKSkpCmludDE2eDhfdCBfX2FybV92cW1vdm50cV9tX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFtb3ZudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92bnRxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdm50cV9tX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3ZudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFtb3ZudHFfczE2KGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxbW92bnRxKGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbW92bnRxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfczMyKSkpCmludDE2eDhfdCBfX2FybV92cW1vdm50cShpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3ZudHFfdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92bnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92bnRxX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVuYnFfbV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92dW5icV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfbV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVuYnFfbV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92dW5icV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bmJxX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVuYnEodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVuYnFfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bmJxX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVuYnEodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVudHFfbV9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxbW92dW50cV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfbV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVudHFfbV9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxbW92dW50cV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFtb3Z1bnRxX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cW1vdnVudHEodWludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdnVudHFfczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFtb3Z1bnRxX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cW1vdnVudHEodWludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbmVncV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxbmVncV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFuZWdxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFuZWdxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxbmVncV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cW5lZ3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92cW5lZ3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFuZWdxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFuZWdxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxbmVncShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFuZWdxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cW5lZ3EoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhZGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWRocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFkaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWRocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWRocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhZGhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWRocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWRoeHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWRoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhZGh4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWRoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWRoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWhxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbGFocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYWhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYWhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbGFocV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sYWhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYXNocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sYXNocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYXNocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sYXNocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhc2hxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxhc2hxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhc2hxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxhc2hxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhc2hxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxhc2hxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFzaHFfbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbGFzaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG1sc2RocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbHNkaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxzZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbHNkaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sc2RocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbHNkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbWxzZGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sc2RocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbHNkaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbHNkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtbHNkaHhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sc2RoeHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG1sc2RoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtbHNkaHhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGh4cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbWxzZGh4cShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtbHNkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbWxzZGh4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG1sc2RoeHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcmRtdWxocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG11bGhxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtdWxocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyZG11bGhxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyZG11bGhxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcmRtdWxocV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJkbXVsaHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcmRtdWxocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJkbXVsaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyZG11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJzaGxxX21fbihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNobHFfbV9uKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaGxxX21fbl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaGxxX21fbih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbV9uKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaGxxX21fbl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tX24odWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXJzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJzaGxxX25fczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscShpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZxcnNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJzaGxxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxX25fczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNobHEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hscSh1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFyc2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFyc2hscSh1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaGxxX25fdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hscSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXJzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFyc2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXJzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXJzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXJzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFyc2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFyc2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFyc2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZxcnNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZxcnNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bmJxX21fbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hydW5icV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVuYnFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJ1bmJxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocnVuYnFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bmJxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hydW5icV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVuYnEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocnVudHFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXJzaHJ1bnRxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hydW50cV9tX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZxcnNocnVudHFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFyc2hydW50cV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZxcnNocnVudHEodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXJzaHJ1bnRxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFyc2hydW50cSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX24oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX21fbihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfbV9uKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfbV9uKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX24odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fbih1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX21fcihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX21fcihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fcl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fcihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfbV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX21fcih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX21fcl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tX3IodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX21fcl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfbV9yKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX24oaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzaGxxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9uKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXNobHFfbihpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX24odWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfbih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9uKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXNobHFfcl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hscV9yKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc2hscV9yKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscV9yKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxX3JfdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV9yKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHFfcih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hscV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX3IodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzaGxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cXNobHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzaGxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hscV91MTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGxxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGxxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxX3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaGx1cV9tX25fczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hsdXFfbSh1aW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zMzIpKSkKdWludDMyeDRfdCBfX2FybV92cXNobHVxX21fbl9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGx1cV9tKHVpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGx1cV9tX25fczgodWludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczgpKSkKdWludDh4MTZfdCBfX2FybV92cXNobHVxX20odWludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hsdXFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zMTYpKSkKdWludDE2eDhfdCBfX2FybV92cXNobHVxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnFzaGx1cV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc2hsdXEoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hsdXFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaGx1cShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocm5icV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hybmJxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybmJxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cXNocm5icV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocm5icV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybnRxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJudHFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm50cV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zxc2hybnRxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cXNocm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnFzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc2hybnRxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJudHFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocm50cV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJudHEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW5icV9tX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJ1bmJxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVuYnFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hydW5icV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW5icV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX25fczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzaHJ1bmJxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVuYnFfbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc2hydW5icSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVudHFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW50cV9tKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bnRxX21fbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVudHFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cXNocnVudHFfbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zxc2hydW50cSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX25fczMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnFzaHJ1bnRxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cXNocnVudHEodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnFzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc3VicV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXN1YnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc3VicV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zxc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzdWJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zxc3VicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnFzdWJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cXN1YnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXN1YnEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zxc3VicV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zxc3VicSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cXN1YnFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cXN1YnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc3VicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zxc3VicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cXN1YnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnFzdWJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnFzdWJxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cXN1YnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnFzdWJxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zxc3VicSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zNjQpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3M2NCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91MTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UzMikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UzMikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTY0KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTY0KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91OCkpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTgpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczE2KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M2NCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczY0KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M4KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3M4KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UxNikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3UxNikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTMyKSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTMyKSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91NjQpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91NjQpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyKHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U4KSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91OCkpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzIodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczE2KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMTYpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczMyKSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczgpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfczgpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTE2KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTE2KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U2NCkpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U2NCkpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTgpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3U4KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczMyKSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczMyKSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zNjQpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zNjQpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczgoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3UxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MTYpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczgodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MzIpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczhfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTMyKSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTY0KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U2NCkpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3U4KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfczgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMzIpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M2NCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M2NCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczgpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3M4KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTYoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTY0KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U2NCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTgpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zMTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczY0KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzJfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczY0KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzIoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zOCkpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczgpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91NjQpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTY0KSkpCnVpbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91MzIodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTgpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91OCkpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MxNikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3MxNikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczMyKSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjQoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zNjQpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zNjQpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3M4KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zOCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTE2KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjRfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UxNikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91MzIpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NCh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91OCkpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0X3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3U4KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV91NjQodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zMTYpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MzMikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M2NCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zNjQpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zOCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MzIpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfdTY0KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91NjQpKSkKdWludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3U4KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjE2cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjE2cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MTZxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYxNnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYxNnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MTZxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjE2cV94KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MTZxX3godWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2MzJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjMycV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2MzJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2MzJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjMycV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjMycShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2MzJxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXYzMnEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYzMnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjMycV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjMycV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2MzJxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2MzJxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXYzMnFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXYzMnFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJldjY0cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJldjY0cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjY0cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjY0cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2NjRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmV2NjRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2NjRxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmV2NjRxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZXY2NHEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2NjRxX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJldjY0cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJldjY0cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2NjRxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJldjY0cV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmV2NjRxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmV2NjRxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfeF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfeChpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJldjY0cV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJldjY0cV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cmV2NjRxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmV2NjRxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZXY2NHFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmV2NjRxX3hfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZXY2NHFfeCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyZXY2NHFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cmhhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92cmhhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJoYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cmhhZGRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmhhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmhhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cmhhZGRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyaGFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cmhhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyaGFkZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZyaGFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJoYWRkcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmhhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJoYWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmhhZGRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cmhhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJoYWRkcV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJoYWRkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJoYWRkcV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJoYWRkcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cmhhZGRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyaGFkZHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cmhhZGRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyaGFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZyaGFkZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdnJtbGFsZGF2aGFxX3BfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXFfcCh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aGFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhhcShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZoYXFfdTMyKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhhcSh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhheHFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGF4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhheHFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhheHEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZocV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3BfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxX3BfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF91MzIpKSkKdWludDY0X3QgX19hcm1fdnJtbGFsZGF2aHFfcCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhxX3UzMikpKQp1aW50NjRfdCBfX2FybV92cm1sYWxkYXZocV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfdTMyKSkpCnVpbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmh4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sYWxkYXZoeHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbGFsZGF2aHhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHhxX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxhbGRhdmh4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGFxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhhcV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZoYXFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGF4cV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aGF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZocV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHhxX3BfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IF9fYXJtX3ZybWxzbGRhdmh4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9zMzIpKSkKaW50NjRfdCBfX2FybV92cm1sc2xkYXZoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoeHFfczMyKSkpCmludDY0X3QgX19hcm1fdnJtbHNsZGF2aHhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczE2KSkpCmludDE2eDhfdCBfX2FybV92cm11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJtdWxocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92cm11bGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJtdWxocV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cm11bGhxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJtdWxocV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cm11bGhxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cm11bGhxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cm11bGhxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cm11bGhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJtdWxocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92cm11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cm11bGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cm11bGhxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJtdWxocSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJtdWxocSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJtdWxocSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92cm11bGhxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZybXVsaHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92cm11bGhxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZybXVsaHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZybXVsaHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZybXVsaHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJtdWxocV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cm11bGhxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJtdWxocV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cm11bGhxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cm11bGhxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cm11bGhxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfbV9uKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHFfbV9uKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfbV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfbV9uKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hscV9tX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfbV9uKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfbV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxX21fbih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscV9tX24odWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaGxxKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHEoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHEodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfbl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscSh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaGxxX3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hscV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaGxxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hscV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNobHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92cnNobHFfeF91MTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hscV94KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92cnNobHFfeF91MzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hscV94KHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscV94X3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hscV94KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cnNocm5icV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJuYnFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92cnNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJuYnEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hybmJxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm50cV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJudHFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92cnNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJudHEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92cnNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hybnRxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92cnNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNocnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNocnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNocnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNocnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hycV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNocnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaHJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaHJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNocnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Zyc2hycShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNocnFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnJzaHJxKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnJzaHJxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNocnEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Zyc2hycSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3Zyc2hycSh1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3Zyc2hycSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92cnNocnFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnJzaHJxX3goaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Zyc2hycV94X25fczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92cnNocnFfeChpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92cnNocnFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3Zyc2hycV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnJzaHJxX3godWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaHJxX3hfbl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnJzaHJxX3godWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92cnNocnFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJzaHJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY2lxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2JjaXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNpcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzYmNpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY2lxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY2lxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY2lxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY2lxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2JjcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2JjcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2JjcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNiY3FfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzYmNxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2JjcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNiY3EodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzZXRxX2xhbmVfczE2KGludDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNldHFfbGFuZShpbnQxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzZXRxX2xhbmVfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNldHFfbGFuZShpbnQzMl90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3ZzZXRxX2xhbmVfczY0KGludDY0X3QsIGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdnNldHFfbGFuZShpbnQ2NF90LCBpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNldHFfbGFuZV9zOChpbnQ4X3QsIGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2V0cV9sYW5lKGludDhfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNldHFfbGFuZV91MTYodWludDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2V0cV9sYW5lKHVpbnQxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNldHFfbGFuZV91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2V0cV9sYW5lKHVpbnQzMl90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTY0KSkpCnVpbnQ2NHgyX3QgX19hcm1fdnNldHFfbGFuZV91NjQodWludDY0X3QsIHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92c2V0cV9sYW5lKHVpbnQ2NF90LCB1aW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2V0cV9sYW5lX3U4KHVpbnQ4X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzZXRxX2xhbmUodWludDhfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxjcV9tX3MxNihpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxjcV9tKGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobGNxX21fczMyKGludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobGNxX20oaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxjcV9tX3M4KGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hsY3FfbShpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hsY3FfbV91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxjcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hsY3FfbV91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxjcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxjcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxjcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hsY3FfczE2KGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hsY3EoaW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxjcV9zMzIoaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxjcShpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hsY3FfczgoaW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobGNxKGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGNxX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hsY3EodWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGNxX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hsY3EodWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hsY3FfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hsY3EodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbV9uX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGxicV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfbV9uX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbV9uX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGxicV9tKHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfbV9uX3U4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGxicV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGxicShpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbGJxX25fczgoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGxicShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGxicSh1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsYnEodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGxicV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsYnFfeChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbGJxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsYnFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTgpKSkKdWludDE2eDhfdCBfX2FybV92c2hsbGJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbHRxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGx0cV9tX25fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGx0cV9tKGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGx0cV9tX25fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbHRxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGx0cV9tX25fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGx0cV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbHRxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczE2KSkpCmludDMyeDRfdCBfX2FybV92c2hsbHRxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczgpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbHRxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGx0cV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl91MTYpKSkKdWludDMyeDRfdCBfX2FybV92c2hsbHRxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGx0cV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3U4KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobGx0cSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3MxNikpKQppbnQzMng0X3QgX19hcm1fdnNobGx0cV94KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3M4KSkpCmludDE2eDhfdCBfX2FybV92c2hsbHRxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl9zOCkpKQppbnQxNng4X3QgX19hcm1fdnNobGx0cV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3UxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxsdHFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fdTE2KSkpCnVpbnQzMng0X3QgX19hcm1fdnNobGx0cV94KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91OCkpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxsdHFfeCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fbihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV9tX24oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfbV9uKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9tX24odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfbV9uKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX21fbih1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfbV9yX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfbV9yKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV9tX3JfczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV9tX3IoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfbV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX21fcihpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fcl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbV9yKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fcl91MzIodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfbV9yKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbV9yKHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfbihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfbihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfbihpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfbih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfbl91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX24odWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV9uKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX3IoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfcihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX3JfczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV9yKGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX3IodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX3IodWludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX3JfdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX3IodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV91MzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNobHFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV94X24oaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfeF9uX3MzMihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV94X24oaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV94X24oaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaGxxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV94X24odWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hscV94X25fdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNobHFfeF9uKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaGxxX3hfbih1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaGxxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hscV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hscV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNobHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hscV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaGxxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV94X3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hscV94KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX3hfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaGxxX3godWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hscV94X3U4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNobHFfeCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92c2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnNocm5icV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92c2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJuYnFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJuYnFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJuYnEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybmJxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnNocm50cV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCBfX2FybV92c2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJudHFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCBfX2FybV92c2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJudHFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgX19hcm1fdnNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fczE2KSkpCmludDh4MTZfdCBfX2FybV92c2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJudHFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgX19hcm1fdnNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCBfX2FybV92c2hybnRxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgX19hcm1fdnNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNocnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaHJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzaHJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNocnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hycV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNocnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaHJxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hycV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hycV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2hycV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNocnFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hycShpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNocnFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNocnEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNocnFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzaHJxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hycV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNocnEodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNocnFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hycSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzaHJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNocnFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2hycV94X25fczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzaHJxX3goaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hycV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2hycV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2hycV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNocnFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzaHJxX3hfbl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2hycV94KHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2hycV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzaHJxX3godWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzbGlxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2xpcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNsaXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzbGlxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzbGlxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNsaXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c2xpcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNsaXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzbGlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2xpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2xpcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzbGlxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c2xpcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNsaXEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzbGlxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c2xpcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c2xpcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzbGlxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNsaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzbGlxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c2xpcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNsaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNsaXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c2xpcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzcmlxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3JpcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnNyaXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzcmlxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzcmlxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnNyaXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3JpcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNyaXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzcmlxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3JpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3JpcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzcmlxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3JpcV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnNyaXEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzcmlxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3JpcShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3JpcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzcmlxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnNyaXFfbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzcmlxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3JpcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnNyaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnNyaXFfbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3JpcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczE2KSkpCnZvaWQgX19hcm1fdnN0MXFfcF9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMTYpKSkKdm9pZCBfX2FybV92c3QxcV9wKGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcF9zMzIoaW50MzJfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMzIpKSkKdm9pZCBfX2FybV92c3QxcV9wKGludDMyX3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfczgpKSkKdm9pZCBfX2FybV92c3QxcV9wX3M4KGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zOCkpKQp2b2lkIF9fYXJtX3ZzdDFxX3AoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MTYpKSkKdm9pZCBfX2FybV92c3QxcV9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MzIpKSkKdm9pZCBfX2FybV92c3QxcV9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0MXFfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTgpKSkKdm9pZCBfX2FybV92c3QxcV9wX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3U4KSkpCnZvaWQgX19hcm1fdnN0MXFfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczE2KSkpCnZvaWQgX19hcm1fdnN0MXFfczE2KGludDE2X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMTYpKSkKdm9pZCBfX2FybV92c3QxcShpbnQxNl90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczMyKSkpCnZvaWQgX19hcm1fdnN0MXFfczMyKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMzIpKSkKdm9pZCBfX2FybV92c3QxcShpbnQzMl90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfczgpKSkKdm9pZCBfX2FybV92c3QxcV9zOChpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zOCkpKQp2b2lkIF9fYXJtX3ZzdDFxKGludDhfdCAqLCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdDFxX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MTYpKSkKdm9pZCBfX2FybV92c3QxcSh1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MzIpKSkKdm9pZCBfX2FybV92c3QxcV91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTMyKSkpCnZvaWQgX19hcm1fdnN0MXEodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTgpKSkKdm9pZCBfX2FybV92c3QxcV91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3U4KSkpCnZvaWQgX19hcm1fdnN0MXEodWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zMTYpKSkKdm9pZCBfX2FybV92c3QycV9zMTYoaW50MTZfdCAqLCBpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczE2KSkpCnZvaWQgX19hcm1fdnN0MnEoaW50MTZfdCAqLCBpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczMyKSkpCnZvaWQgX19hcm1fdnN0MnFfczMyKGludDMyX3QgKiwgaW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3MzMikpKQp2b2lkIF9fYXJtX3ZzdDJxKGludDMyX3QgKiwgaW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3M4KSkpCnZvaWQgX19hcm1fdnN0MnFfczgoaW50OF90ICosIGludDh4MTZ4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zOCkpKQp2b2lkIF9fYXJtX3ZzdDJxKGludDhfdCAqLCBpbnQ4eDE2eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTE2KSkpCnZvaWQgX19hcm1fdnN0MnFfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTE2KSkpCnZvaWQgX19hcm1fdnN0MnEodWludDE2X3QgKiwgdWludDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MzIpKSkKdm9pZCBfX2FybV92c3QycV91MzIodWludDMyX3QgKiwgdWludDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MzIpKSkKdm9pZCBfX2FybV92c3QycSh1aW50MzJfdCAqLCB1aW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3U4KSkpCnZvaWQgX19hcm1fdnN0MnFfdTgodWludDhfdCAqLCB1aW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3U4KSkpCnZvaWQgX19hcm1fdnN0MnEodWludDhfdCAqLCB1aW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdDRxX3MxNihpbnQxNl90ICosIGludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMTYpKSkKdm9pZCBfX2FybV92c3Q0cShpbnQxNl90ICosIGludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMzIpKSkKdm9pZCBfX2FybV92c3Q0cV9zMzIoaW50MzJfdCAqLCBpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczMyKSkpCnZvaWQgX19hcm1fdnN0NHEoaW50MzJfdCAqLCBpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczgpKSkKdm9pZCBfX2FybV92c3Q0cV9zOChpbnQ4X3QgKiwgaW50OHgxNng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3M4KSkpCnZvaWQgX19hcm1fdnN0NHEoaW50OF90ICosIGludDh4MTZ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MTYpKSkKdm9pZCBfX2FybV92c3Q0cV91MTYodWludDE2X3QgKiwgdWludDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91MTYpKSkKdm9pZCBfX2FybV92c3Q0cSh1aW50MTZfdCAqLCB1aW50MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdDRxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdDRxKHVpbnQzMl90ICosIHVpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTgpKSkKdm9pZCBfX2FybV92c3Q0cV91OCh1aW50OF90ICosIHVpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTgpKSkKdm9pZCBfX2FybV92c3Q0cSh1aW50OF90ICosIHVpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfczE2KGludDhfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3AoaW50OF90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyYnFfcF9zMzIoaW50OF90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyYnFfcChpbnQ4X3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3M4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfczgoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9wKGludDhfdCAqLCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyYnFfcCh1aW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3BfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MzIpKSkKdm9pZCBfX2FybV92c3RyYnFfcCh1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTgpKSkKdm9pZCBfX2FybV92c3RyYnFfcF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfdTgpKSkKdm9pZCBfX2FybV92c3RyYnFfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zMTYoaW50OF90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicShpbnQ4X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3MzMihpbnQ4X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxKGludDhfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zOChpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczgpKSkKdm9pZCBfX2FybV92c3RyYnEoaW50OF90ICosIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KGludDhfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIoaW50OF90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcChpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3M4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczgoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wKGludDhfdCAqLCB1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTgpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91OCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfdTgpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcCh1aW50OF90ICosIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMTYoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldChpbnQ4X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MzMihpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KGludDhfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zOCkpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zOChpbnQ4X3QgKiwgdWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczgpKSkKdm9pZCBfX2FybV92c3RyYnFfc2NhdHRlcl9vZmZzZXQoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MTYodWludDhfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MzIodWludDhfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJicV91MTYodWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTE2KSkpCnZvaWQgX19hcm1fdnN0cmJxKHVpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJicV91MzIodWludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmJxKHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3U4KSkpCnZvaWQgX19hcm1fdnN0cmJxKHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF9zNjQodWludDY0eDJfdCwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcCh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3U2NCh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcCh1aW50NjR4Ml90LCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlX3M2NCh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlKHVpbnQ2NHgyX3QsIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfdTY0KHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9iYXNlKHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF9zNjQodWludDY0eDJfdCAqLCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF91NjQodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50NjR4Ml90ICosIGludCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfczY0KHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yih1aW50NjR4Ml90ICosIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfdTY0KHVpbnQ2NHgyX3QgKiwgaW50LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2IodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3M2NChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfcCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfczY0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3U2NCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9vZmZzZXRfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3U2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zNjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NCkpKQp2b2lkIF9fYXJtX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdm9pZCBfX2FybV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91NjQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTY0KSkpCnZvaWQgX19hcm1fdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3BfczE2KGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wKGludDE2X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wX3MzMihpbnQxNl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfcChpbnQxNl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfcF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfcCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHEoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfczMyKGludDE2X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxKGludDE2X3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMTYoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMzIoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXQoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXQodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczE2KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3UxNikpKQp2b2lkIF9fYXJtX3ZzdHJocSh1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxX3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTMyKSkpCnZvaWQgX19hcm1fdnN0cmhxKHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9wX3MzMihpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfcChpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfcF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfczMyKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3MzMih1aW50MzJ4NF90LCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9wKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfdTMyKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9wKHVpbnQzMng0X3QsIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfczMyKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2UodWludDMyeDRfdCwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV91MzIodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2UodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3MzMih1aW50MzJ4NF90ICosIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3AodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3UzMih1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQzMng0X3QgKiwgaW50LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9zMzIodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diKHVpbnQzMng0X3QgKiwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl91MzIodWludDMyeDRfdCAqLCBpbnQsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yih1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9zMzIoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXQoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXQodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfdTMyKSkpCnZvaWQgX19hcm1fdnN0cndxKHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3VicV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnEodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZzdWJxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91MTYpKSkKdWludDE2eDhfdCBfX2FybV92c3VicV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnN1YnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTgpKSkKdWludDh4MTZfdCBfX2FybV92c3VicSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV94X25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV94KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczMyKSkpCmludDMyeDRfdCBfX2FybV92c3VicV94KGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX3hfbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fczgpKSkKaW50OHgxNl90IF9fYXJtX3ZzdWJxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX3hfbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX3godWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX3godWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfeF9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczE2KSkpCmludDE2eDhfdCBfX2FybV92c3VicV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MxNikpKQppbnQxNng4X3QgX19hcm1fdnN1YnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MzMikpKQppbnQzMng0X3QgX19hcm1fdnN1YnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZzdWJxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnN1YnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3M4KSkpCmludDh4MTZfdCBfX2FybV92c3VicV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTE2KSkpCnVpbnQxNng4X3QgX19hcm1fdnN1YnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZzdWJxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZzdWJxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91MzIpKSkKdWludDMyeDRfdCBfX2FybV92c3VicV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91OCkpKQp1aW50OHgxNl90IF9fYXJtX3ZzdWJxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnN1YnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zMzIpKSkKaW50MzJ4NF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zNjQpKSkKaW50NjR4Ml90IF9fYXJtX3Z1bmluaXRpYWxpemVkcShpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY191NjQpKSkKdWludDY0eDJfdCBfX2FybV92dW5pbml0aWFsaXplZHEodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zMTYpKSkKaW50MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV9zMTYoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfczMyKSkpCmludDMyeDRfdCBfX2FybV92dW5pbml0aWFsaXplZHFfczMyKCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3M2NCkpKQppbnQ2NHgyX3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3M2NCgpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zOCkpKQppbnQ4eDE2X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3M4KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3UxNikpKQp1aW50MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV91MTYoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfdTMyKSkpCnVpbnQzMng0X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3UzMigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV91NjQpKSkKdWludDY0eDJfdCBfX2FybV92dW5pbml0aWFsaXplZHFfdTY0KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3U4KSkpCnVpbnQ4eDE2X3QgX19hcm1fdnVuaW5pdGlhbGl6ZWRxX3U4KCk7CgojaWYgKF9fQVJNX0ZFQVRVUkVfTVZFICYgMikKCnR5cGVkZWYgX19mcDE2IGZsb2F0MTZfdDsKdHlwZWRlZiBmbG9hdCBmbG9hdDMyX3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygoX19uZW9uX3ZlY3Rvcl90eXBlX18oOCksIF9fY2xhbmdfYXJtX212ZV9zdHJpY3RfcG9seW1vcnBoaXNtKSkgZmxvYXQxNl90IGZsb2F0MTZ4OF90Owp0eXBlZGVmIHN0cnVjdCB7IGZsb2F0MTZ4OF90IHZhbFsyXTsgfSBmbG9hdDE2eDh4Ml90Owp0eXBlZGVmIHN0cnVjdCB7IGZsb2F0MTZ4OF90IHZhbFs0XTsgfSBmbG9hdDE2eDh4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKF9fbmVvbl92ZWN0b3JfdHlwZV9fKDQpLCBfX2NsYW5nX2FybV9tdmVfc3RyaWN0X3BvbHltb3JwaGlzbSkpIGZsb2F0MzJfdCBmbG9hdDMyeDRfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBmbG9hdDMyeDRfdCB2YWxbMl07IH0gZmxvYXQzMng0eDJfdDsKdHlwZWRlZiBzdHJ1Y3QgeyBmbG9hdDMyeDRfdCB2YWxbNF07IH0gZmxvYXQzMng0eDRfdDsKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYmRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJkcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJkcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFiZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJkcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYmRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWJkcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYmRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJkcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFiZHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFiZHFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYmRxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJzcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJzcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWJzcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFic3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFic3FfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhYnNxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYnNxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhYnNxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFic3FfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFic3FfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhZGRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YWRkcShmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YWRkcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhZGRxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfeF9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFkZHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfeF9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFkZHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YW5kcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFuZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFuZHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhbmRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFuZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YW5kcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmFuZHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YW5kcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmFuZHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZhbmRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZhbmRxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YW5kcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJpY3FfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZiaWNxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZiaWNxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YmljcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZiaWNxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJpY3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZiaWNxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJpY3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZiaWNxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YmljcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YmljcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJpY3FfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmJyc3JxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZicnNycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YnJzcnFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmJyc3JxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YnJzcnFfbl9mMTYoZmxvYXQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92YnJzcnEoZmxvYXQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YnJzcnFfbl9mMzIoZmxvYXQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92YnJzcnEoZmxvYXQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZicnNycV94X25fZjE2KGZsb2F0MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZicnNycV94KGZsb2F0MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZicnNycV94X25fZjMyKGZsb2F0MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZicnNycV94KGZsb2F0MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90MjcwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjYWRkcV9yb3QyNzBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDI3MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjYWRkcV9yb3Q5MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y2FkZHFfcm90OTBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNhZGRxX3JvdDkwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNhZGRxX3JvdDkwX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y2FkZHFfcm90OTBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QxODAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDE4MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDE4MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3QxODBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDE4MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDE4MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDI3MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90MjcwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDI3MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90MjcwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90MjcwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbWxhcV9yb3Q5MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90OTAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y21sYXFfcm90OTBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDkwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y21sYXFfcm90OTBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtbGFxX3JvdDkwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtbGFxX3JvdDkwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbWxhcV9yb3Q5MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGVxcShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZXFxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBlcXEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGdlcShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ2VxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBnZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGd0cShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wZ3RxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBndHEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGxlcShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbGVxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcGx0cShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbHRxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBsdHEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX2YzMikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX2YxNikpKQptdmVfcHJlZDE2X3QgX19hcm1fdmNtcG5lcShmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCBfX2FybV92Y21wbmVxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9mMzIpKSkKbXZlX3ByZWQxNl90IF9fYXJtX3ZjbXBuZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MTgwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDE4MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MTgwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MTgwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MTgwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QxODBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QxODBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDE4MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90MTgwX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDE4MF94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MTgwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDI3MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDI3MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDI3MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDI3MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MjcwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90MjcwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDI3MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjbXVscV9yb3QyNzBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDI3MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3Q5MF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3Q5MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV9yb3Q5MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y211bHFfcm90OTBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90OTBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3JvdDkwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDkwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmNtdWxxX3JvdDkwX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90OTBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y211bHFfcm90OTBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjbXVscV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNtdWxxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3JlYXRlcV9mMTYodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmNyZWF0ZXFfZjMyKHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dGFxX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRhcV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dGFxX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRhcV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRhcV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRhcV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0YXFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0YXFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dGFxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0YXFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0YXFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0YXFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3hfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dGFxX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0YXFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0YXFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0YXFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRicV9mMTZfZjMyKGZsb2F0MTZ4OF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dGJxX2YzMl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9tX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dGJxX21fZjE2X2YzMihmbG9hdDE2eDhfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX21fZjMyX2YxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0YnFfbV9mMzJfZjE2KGZsb2F0MzJ4NF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfeF9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRicV94X2YzMl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dG1xX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRtcV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG1xX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRtcV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRtcV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRtcV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0bXFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0bXFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dG1xX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0bXFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bXFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0bXFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3hfczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dG1xX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0bXFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bXFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0bXFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRucV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0bnFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRucV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0bnFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bnFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0bnFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG5xX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG5xX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRucV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG5xX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG5xX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG5xX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRucV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dG5xX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dG5xX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dG5xX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cHFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHBxX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cHFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHBxX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHBxX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHBxX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRwcV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRwcV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cHFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRwcV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRwcV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRwcV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cHFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRwcV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRwcV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRwcV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9mMTZfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfZjE2X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfZjMyX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX2YzMl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbV9mMTZfczE2KGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX20oZmxvYXQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbV9mMTZfdTE2KGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9tKGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tX2YzMl9zMzIoZmxvYXQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbShmbG9hdDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tX2YzMl91MzIoZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX20oZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbV9uX2YxNl9zMTYoZmxvYXQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX21fbihmbG9hdDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbV9uX2YxNl91MTYoZmxvYXQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9tX24oZmxvYXQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tX25fZjMyX3MzMihmbG9hdDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbV9uKGZsb2F0MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9tX25fZjMyX3UzMihmbG9hdDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX21fbihmbG9hdDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV9tX25fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRxX21fbihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRxX21fbl9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHFfbV9uKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRxX21fbl91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cV9tX24odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX21fbl91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92Y3Z0cV9tX24odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRxX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fczE2X2YxNikpKQppbnQxNng4X3QgX19hcm1fdmN2dHFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fczMyX2YzMikpKQppbnQzMng0X3QgX19hcm1fdmN2dHFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZjdnRxX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dHFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX25fZjE2X3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX24oaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV9uX2YxNl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfbih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9uX2YzMl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV9uKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfbl9mMzJfdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX24odWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRxX25fczE2X2YxNihmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRxX25fczMyX2YzMihmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cV9uX3UxNl9mMTYoZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dHFfbl91MzJfZjMyKGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZjdnRxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZjdnRxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92Y3Z0cV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV91MzJfZjMyKSkpCnVpbnQzMng0X3QgX19hcm1fdmN2dHFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX3hfZjE2X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94X2YxNl91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV94X2YzMl9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV94KGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeF9mMzJfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX3godWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94X25fZjE2X3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0cV94X24oaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmN2dHFfeF9uX2YxNl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnRxX3hfbih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeF9uX2YzMl9zMzIoaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHFfeF9uKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnRxX3hfbl9mMzJfdTMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0cV94X24odWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV94X25fczE2X2YxNihmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV94X25fczMyX2YzMihmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfeF9uX3UxNl9mMTYoZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX3hfbl91MzJfZjMyKGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92Y3Z0cV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92Y3Z0cV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgX19hcm1fdmN2dHFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZjdnRxX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfZjE2X2YzMikpKQpmbG9hdDE2eDhfdCBfX2FybV92Y3Z0dHFfZjE2X2YzMihmbG9hdDE2eDhfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZjdnR0cV9mMzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfbV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZjdnR0cV9tX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV9tX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdmN2dHRxX21fZjMyX2YxNihmbG9hdDMyeDRfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX3hfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92Y3Z0dHFfeF9mMzJfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmR1cHFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmR1cHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmR1cHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmR1cHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZkdXBxX25fZjE2KGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmR1cHFfbl9mMzIoZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZkdXBxX3hfbl9mMTYoZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmR1cHFfeF9uX2YzMihmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zlb3JxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZW9ycShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92ZW9ycV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmVvcnEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZW9ycV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zlb3JxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92ZW9ycV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zlb3JxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92ZW9ycV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmVvcnFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmVvcnFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zlb3JxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXFfbV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1hcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9uX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXNxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtYXNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXNxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtYXNxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFzcV9uX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbWFzcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFzcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXNxX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbWFzcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZmbXNxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtc3EoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZmbXNxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtc3EoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmZtc3FfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92Zm1zcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmZtc3FfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1zcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92Zm1zcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZnZXRxX2xhbmVfZjE2KGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92Z2V0cV9sYW5lKGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92Z2V0cV9sYW5lX2YzMihmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdmdldHFfbGFuZShmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkMXFfZjE2KGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkMXEoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGQxcV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGQxcShjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkMXFfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkMXFfeihjb25zdCBmbG9hdDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGQxcV96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bGQxcV96KGNvbnN0IGZsb2F0MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YxNikpKQpmbG9hdDE2eDh4Ml90IF9fYXJtX3ZsZDJxX2YxNihjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfZjE2KSkpCmZsb2F0MTZ4OHgyX3QgX19hcm1fdmxkMnEoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YzMikpKQpmbG9hdDMyeDR4Ml90IF9fYXJtX3ZsZDJxX2YzMihjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfZjMyKSkpCmZsb2F0MzJ4NHgyX3QgX19hcm1fdmxkMnEoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YxNikpKQpmbG9hdDE2eDh4NF90IF9fYXJtX3ZsZDRxX2YxNihjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfZjE2KSkpCmZsb2F0MTZ4OHg0X3QgX19hcm1fdmxkNHEoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YzMikpKQpmbG9hdDMyeDR4NF90IF9fYXJtX3ZsZDRxX2YzMihjb25zdCBmbG9hdDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfZjMyKSkpCmZsb2F0MzJ4NHg0X3QgX19hcm1fdmxkNHEoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdmxkcmhxX2YxNihjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZsZHJocV96X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX2YzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3diX2YzMih1aW50MzJ4NF90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X2YzMih1aW50MzJ4NF90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfel9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9iYXNlX3pfZjMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXRfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9vZmZzZXQoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMzIoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3Ffel9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdmxkcndxX3pfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1hcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1heG5tYXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tYXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubWFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1heG5tYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubWFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubWFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1hcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm1hdnFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtYXhubWF2cShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWF4bm1hdnFfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubWF2cShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtYXhubWF2cV9wX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1heG5tYXZxX3AoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubWF2cV9wX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWF2cV9wX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1heG5tYXZxX3AoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubXEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1xX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1heG5tcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWF4bm1xX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtYXhubXFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWF4bm1xX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtYXhubXFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm12cV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm12cShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubXZxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubXZxKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm12cV9wX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWF4bm12cV9wKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfcF9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubXZxX3BfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfcF9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtYXhubXZxX3AoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtaW5ubWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubWFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtaW5ubWFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1hcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tYXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWlubm1hdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YzMikpKQpmbG9hdDMyX3QgX19hcm1fdm1pbm5tYXZxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm1hdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCBfX2FybV92bWlubm1hdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfcF9mMTYpKSkKZmxvYXQxNl90IF9fYXJtX3ZtaW5ubWF2cV9wKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm1hdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hdnFfcF9mMzIpKSkKZmxvYXQzMl90IF9fYXJtX3ZtaW5ubWF2cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1xKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1xKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtaW5ubXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm1pbm5tcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bWlubm1xX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm1pbm5tcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bWlubm1xX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tdnFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm12cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm12cShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YxNikpKQpmbG9hdDE2X3QgX19hcm1fdm1pbm5tdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm12cV9wX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCBfX2FybV92bWlubm12cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bXVscV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm11bHEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm11bHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bXVscV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX3hfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZtdWxxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX3hfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZtdWxxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm5lZ3FfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm5lZ3EoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm5lZ3FfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZuZWdxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZuZWdxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92bmVncV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bmVncV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92bmVncV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZuZWdxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZuZWdxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zvcm5xX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JucShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JucV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ybnEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JucV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zvcm5xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JucV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zvcm5xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JucV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ybnFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ybnFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zvcm5xX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JycV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ycnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ycnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZvcnJxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ycnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92b3JycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdm9ycnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JycV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdm9ycnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZvcnJxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZvcnJxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92b3JycV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Zwc2VscV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnBzZWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Zwc2VscV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zwc2VscV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnBzZWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zMzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczMyKSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczY0KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M2NCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M4KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfZjE2X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczgpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTYoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MzIpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3UzMikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91NjQpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMTZfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3U2NCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91OCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91OCkpKQpmbG9hdDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX2YxNih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3MxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zMTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczY0KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M2NCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M4KSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfZjMyX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczgpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzIoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MTYpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3UxNikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91NjQpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9mMzJfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3U2NCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91OCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91OCkpKQpmbG9hdDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX2YzMih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9mMTYpKSkKaW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfZjE2KSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfZjMyKSkpCmludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3MxNl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YzMikpKQppbnQxNng4X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMTYoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX2YxNikpKQppbnQzMng0X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zMzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9mMTYpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9mMzIpKSkKaW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjMyKSkpCmludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3MzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfZjE2KSkpCmludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3M2NF9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X2YxNikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjQoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X2YzMikpKQppbnQ2NHgyX3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zNjRfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMzIpKSkKaW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfczY0KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YxNikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfZjE2KSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YzMikpKQppbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV9zOF9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfZjMyKSkpCmludDh4MTZfdCBfX2FybV92cmVpbnRlcnByZXRxX3M4KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMTYpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X2YxNikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMzIpKSkKdWludDE2eDhfdCBfX2FybV92cmVpbnRlcnByZXRxX3UxNl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X2YzMikpKQp1aW50MTZ4OF90IF9fYXJtX3ZyZWludGVycHJldHFfdTE2KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMTYpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX2YxNikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMzIpKSkKdWludDMyeDRfdCBfX2FybV92cmVpbnRlcnByZXRxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX2YzMikpKQp1aW50MzJ4NF90IF9fYXJtX3ZyZWludGVycHJldHFfdTMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMTYpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X2YxNikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMzIpKSkKdWludDY0eDJfdCBfX2FybV92cmVpbnRlcnByZXRxX3U2NF9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X2YzMikpKQp1aW50NjR4Ml90IF9fYXJtX3ZyZWludGVycHJldHFfdTY0KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdThfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YxNikpKQp1aW50OHgxNl90IF9fYXJtX3ZyZWludGVycHJldHFfdTgoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OF9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfZjMyKSkpCnVpbnQ4eDE2X3QgX19hcm1fdnJlaW50ZXJwcmV0cV91OChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjMycV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXYzMnEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjMycV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2MzJxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjMycV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXYzMnFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2NjRxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjY0cShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJldjY0cV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZXY2NHEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjY0cV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cmV2NjRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJldjY0cV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmV2NjRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJldjY0cV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZyZXY2NHFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZyZXY2NHFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cmV2NjRxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRhcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kYXFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRhcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRhcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRhcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZGFxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZGFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kYXFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRhcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kYXFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRhcV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbXEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG1xX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbXEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRtcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRtcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG1xX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kbXFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG1xX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbXFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG5xKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRucV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG5xKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG5xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG5xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kbnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRucV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZG5xX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRucV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZG5xX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRwcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRwcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRwcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRwcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHBxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHBxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRwcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5kcHFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRwcV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92cm5kcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmRxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHhxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmR4cV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHhxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHhxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHhxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5keHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92cm5keHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZybmR4cV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnJuZHhxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZybmR4cV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnJuZHhxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnNldHFfbGFuZV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c2V0cV9sYW5lKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnNldHFfbGFuZV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c2V0cV9sYW5lKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjE2KSkpCnZvaWQgX19hcm1fdnN0MXFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjE2KSkpCnZvaWQgX19hcm1fdnN0MXEoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9mMzIpKSkKdm9pZCBfX2FybV92c3QxcV9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9mMzIpKSkKdm9pZCBfX2FybV92c3QxcShmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0MXFfcF9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0MXFfcChmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9mMzIpKSkKdm9pZCBfX2FybV92c3QxcV9wX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9mMzIpKSkKdm9pZCBfX2FybV92c3QxcV9wKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMTYpKSkKdm9pZCBfX2FybV92c3QycV9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDJxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMzIpKSkKdm9pZCBfX2FybV92c3QycV9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX2YzMikpKQp2b2lkIF9fYXJtX3ZzdDJxKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMTYpKSkKdm9pZCBfX2FybV92c3Q0cV9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX2YxNikpKQp2b2lkIF9fYXJtX3ZzdDRxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMzIpKSkKdm9pZCBfX2FybV92c3Q0cV9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX2YzMikpKQp2b2lkIF9fYXJtX3ZzdDRxKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHEoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfcF9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9wKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X2YxNihmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXQoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9mMTYoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX2YxNikpKQp2b2lkIF9fYXJtX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wKGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMTYoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMTYpKSkKdm9pZCBfX2FybV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldChmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMTYoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjE2KSkpCnZvaWQgX19hcm1fdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3BfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3FfcF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3FfcChmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX2YzMih1aW50MzJ4NF90LCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2UodWludDMyeDRfdCwgaW50LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9mMzIodWludDMyeDRfdCwgaW50LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV9wKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX2YzMih1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yih1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfZjMyKHVpbnQzMng0X3QgKiwgaW50LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQzMng0X3QgKiwgaW50LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X2YzMihmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXQoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9mMzIoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wX2YzMikpKQp2b2lkIF9fYXJtX3ZzdHJ3cV9zY2F0dGVyX29mZnNldF9wKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMzIoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9mMzIpKSkKdm9pZCBfX2FybV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldChmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9mMzIoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjMyKSkpCnZvaWQgX19hcm1fdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCBfX2FybV92c3VicV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgX19hcm1fdnN1YnEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgX19hcm1fdnN1YnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92c3VicV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX3hfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3ZzdWJxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX3hfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3ZzdWJxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV9mMTYoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfZjMyKSkpCmZsb2F0MzJ4NF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcV9mMzIoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfZjE2KSkpCmZsb2F0MTZ4OF90IF9fYXJtX3Z1bmluaXRpYWxpemVkcShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX2YzMikpKQpmbG9hdDMyeDRfdCBfX2FybV92dW5pbml0aWFsaXplZHEoZmxvYXQzMng0X3QpOwoKI2VuZGlmIC8qIChfX0FSTV9GRUFUVVJFX01WRSAmIDIpICovCgojaWYgKCFkZWZpbmVkIF9fQVJNX01WRV9QUkVTRVJWRV9VU0VSX05BTUVTUEFDRSkKCnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfYXNybCkpKQppbnQ2NF90IGFzcmwoaW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfbHNsbCkpKQp1aW50NjRfdCBsc2xsKHVpbnQ2NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcXJzaHIpKSkKaW50MzJfdCBzcXJzaHIoaW50MzJfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3Fyc2hybCkpKQppbnQ2NF90IHNxcnNocmwoaW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3Fyc2hybF9zYXQ0OCkpKQppbnQ2NF90IHNxcnNocmxfc2F0NDgoaW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfc3FzaGwpKSkKaW50MzJfdCBzcXNobChpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Nxc2hsbCkpKQppbnQ2NF90IHNxc2hsbChpbnQ2NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Nyc2hyKSkpCmludDMyX3Qgc3JzaHIoaW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV9zcnNocmwpKSkKaW50NjRfdCBzcnNocmwoaW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXJzaGwpKSkKdWludDMyX3QgdXFyc2hsKHVpbnQzMl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cXJzaGxsKSkpCnVpbnQ2NF90IHVxcnNobGwodWludDY0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3VxcnNobGxfc2F0NDgpKSkKdWludDY0X3QgdXFyc2hsbF9zYXQ0OCh1aW50NjRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFzaGwpKSkKdWludDMyX3QgdXFzaGwodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdXFzaGxsKSkpCnVpbnQ2NF90IHVxc2hsbCh1aW50NjRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cnNocikpKQp1aW50MzJfdCB1cnNocih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV91cnNocmwpKSkKdWludDY0X3QgdXJzaHJsKHVpbnQ2NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MxNikpKQp1aW50MzJfdCB2YWJhdnFfcF9zMTYodWludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3MxNikpKQp1aW50MzJfdCB2YWJhdnFfcCh1aW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczMyKSkpCnVpbnQzMl90IHZhYmF2cV9wX3MzMih1aW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczMyKSkpCnVpbnQzMl90IHZhYmF2cV9wKHVpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfcF9zOCkpKQp1aW50MzJfdCB2YWJhdnFfcF9zOCh1aW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfczgpKSkKdWludDMyX3QgdmFiYXZxX3AodWludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UxNikpKQp1aW50MzJfdCB2YWJhdnFfcF91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTE2KSkpCnVpbnQzMl90IHZhYmF2cV9wKHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3UzMikpKQp1aW50MzJfdCB2YWJhdnFfcF91MzIodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3BfdTMyKSkpCnVpbnQzMl90IHZhYmF2cV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3U4KSkpCnVpbnQzMl90IHZhYmF2cV9wX3U4KHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9wX3U4KSkpCnVpbnQzMl90IHZhYmF2cV9wKHVpbnQzMl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMTYpKSkKdWludDMyX3QgdmFiYXZxX3MxNih1aW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV9zMTYpKSkKdWludDMyX3QgdmFiYXZxKHVpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3MzMikpKQp1aW50MzJfdCB2YWJhdnFfczMyKHVpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3MzMikpKQp1aW50MzJfdCB2YWJhdnEodWludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJhdnFfczgpKSkKdWludDMyX3QgdmFiYXZxX3M4KHVpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3M4KSkpCnVpbnQzMl90IHZhYmF2cSh1aW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MTYpKSkKdWludDMyX3QgdmFiYXZxX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3UxNikpKQp1aW50MzJfdCB2YWJhdnEodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91MzIpKSkKdWludDMyX3QgdmFiYXZxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiYXZxX3UzMikpKQp1aW50MzJfdCB2YWJhdnEodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91OCkpKQp1aW50MzJfdCB2YWJhdnFfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmF2cV91OCkpKQp1aW50MzJfdCB2YWJhdnEodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczE2KSkpCmludDE2eDhfdCB2YWJkcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fczE2KSkpCmludDE2eDhfdCB2YWJkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZhYmRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZhYmRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3M4KSkpCmludDh4MTZfdCB2YWJkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9zOCkpKQppbnQ4eDE2X3QgdmFiZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX21fdTE2KSkpCnVpbnQxNng4X3QgdmFiZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZhYmRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhYmRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91MzIpKSkKdWludDMyeDRfdCB2YWJkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV91OCkpKQp1aW50OHgxNl90IHZhYmRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmFiZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3MxNikpKQppbnQxNng4X3QgdmFiZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zMTYpKSkKaW50MTZ4OF90IHZhYmRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zMzIpKSkKaW50MzJ4NF90IHZhYmRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczMyKSkpCmludDMyeDRfdCB2YWJkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfczgpKSkKaW50OHgxNl90IHZhYmRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9zOCkpKQppbnQ4eDE2X3QgdmFiZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3UxNikpKQp1aW50MTZ4OF90IHZhYmRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91MTYpKSkKdWludDE2eDhfdCB2YWJkcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91MzIpKSkKdWludDMyeDRfdCB2YWJkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTMyKSkpCnVpbnQzMng0X3QgdmFiZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfdTgpKSkKdWludDh4MTZfdCB2YWJkcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV91OCkpKQp1aW50OHgxNl90IHZhYmRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfczE2KSkpCmludDE2eDhfdCB2YWJkcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3MxNikpKQppbnQxNng4X3QgdmFiZHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3MzMikpKQppbnQzMng0X3QgdmFiZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zMzIpKSkKaW50MzJ4NF90IHZhYmRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9zOCkpKQppbnQ4eDE2X3QgdmFiZHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3M4KSkpCmludDh4MTZfdCB2YWJkcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmFiZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3UxNikpKQp1aW50MTZ4OF90IHZhYmRxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3UzMikpKQp1aW50MzJ4NF90IHZhYmRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91MzIpKSkKdWludDMyeDRfdCB2YWJkcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF91OCkpKQp1aW50OHgxNl90IHZhYmRxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X3U4KSkpCnVpbnQ4eDE2X3QgdmFiZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fczE2KSkpCmludDE2eDhfdCB2YWJzcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3MxNikpKQppbnQxNng4X3QgdmFic3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3MzMikpKQppbnQzMng0X3QgdmFic3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zMzIpKSkKaW50MzJ4NF90IHZhYnNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9zOCkpKQppbnQ4eDE2X3QgdmFic3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX3M4KSkpCmludDh4MTZfdCB2YWJzcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MxNikpKQppbnQxNng4X3QgdmFic3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczE2KSkpCmludDE2eDhfdCB2YWJzcShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3MzMikpKQppbnQzMng0X3QgdmFic3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfczMyKSkpCmludDMyeDRfdCB2YWJzcShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3M4KSkpCmludDh4MTZfdCB2YWJzcV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3M4KSkpCmludDh4MTZfdCB2YWJzcShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczE2KSkpCmludDE2eDhfdCB2YWJzcV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zMTYpKSkKaW50MTZ4OF90IHZhYnNxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczMyKSkpCmludDMyeDRfdCB2YWJzcV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfeF9zMzIpKSkKaW50MzJ4NF90IHZhYnNxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczgpKSkKaW50OHgxNl90IHZhYnNxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfczgpKSkKaW50OHgxNl90IHZhYnNxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9tX3MzMikpKQppbnQzMng0X3QgdmFkY2lxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX21fczMyKSkpCmludDMyeDRfdCB2YWRjaXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhZGNpcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNpcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhZGNpcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3MzMikpKQppbnQzMng0X3QgdmFkY2lxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY2lxX3MzMikpKQppbnQzMng0X3QgdmFkY2lxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfdTMyKSkpCnVpbnQzMng0X3QgdmFkY2lxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjaXFfdTMyKSkpCnVpbnQzMng0X3QgdmFkY2lxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX21fczMyKSkpCmludDMyeDRfdCB2YWRjcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX21fczMyKSkpCmludDMyeDRfdCB2YWRjcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfbV91MzIpKSkKdWludDMyeDRfdCB2YWRjcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFkY3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGNxX3MzMikpKQppbnQzMng0X3QgdmFkY3FfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV9zMzIpKSkKaW50MzJ4NF90IHZhZGNxKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRjcV91MzIpKSkKdWludDMyeDRfdCB2YWRjcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkY3FfdTMyKSkpCnVpbnQzMng0X3QgdmFkY3EodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF9zMzIpKSkKaW50NjRfdCB2YWRkbHZhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfcF9zMzIpKSkKaW50NjRfdCB2YWRkbHZhcV9wKGludDY0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9wX3UzMikpKQp1aW50NjRfdCB2YWRkbHZhcV9wX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZhcV9wX3UzMikpKQp1aW50NjRfdCB2YWRkbHZhcV9wKHVpbnQ2NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3MzMikpKQppbnQ2NF90IHZhZGRsdmFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRsdmFxX3MzMikpKQppbnQ2NF90IHZhZGRsdmFxKGludDY0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfdTMyKSkpCnVpbnQ2NF90IHZhZGRsdmFxX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2YXFfdTMyKSkpCnVpbnQ2NF90IHZhZGRsdmFxKHVpbnQ2NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3BfczMyKSkpCmludDY0X3QgdmFkZGx2cV9wX3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9wX3MzMikpKQppbnQ2NF90IHZhZGRsdnFfcChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9wX3UzMikpKQp1aW50NjRfdCB2YWRkbHZxX3BfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9wX3UzMikpKQp1aW50NjRfdCB2YWRkbHZxX3AodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkbHZxX3MzMikpKQppbnQ2NF90IHZhZGRsdnFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV9zMzIpKSkKaW50NjRfdCB2YWRkbHZxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV91MzIpKSkKdWludDY0X3QgdmFkZGx2cV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZGx2cV91MzIpKSkKdWludDY0X3QgdmFkZGx2cSh1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczE2KSkpCmludDE2eDhfdCB2YWRkcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgdmFkZHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fczMyKSkpCmludDMyeDRfdCB2YWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCB2YWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczE2KSkpCmludDE2eDhfdCB2YWRkcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fczE2KSkpCmludDE2eDhfdCB2YWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3M4KSkpCmludDh4MTZfdCB2YWRkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdmFkZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2YWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZhZGRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczE2KSkpCmludDE2eDhfdCB2YWRkcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczE2KSkpCmludDE2eDhfdCB2YWRkcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczMyKSkpCmludDMyeDRfdCB2YWRkcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczMyKSkpCmludDMyeDRfdCB2YWRkcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczgpKSkKaW50OHgxNl90IHZhZGRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX25fczgpKSkKaW50OHgxNl90IHZhZGRxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfczE2KSkpCmludDE2eDhfdCB2YWRkcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3MxNikpKQppbnQxNng4X3QgdmFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3MzMikpKQppbnQzMng0X3QgdmFkZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zMzIpKSkKaW50MzJ4NF90IHZhZGRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3M4KSkpCmludDh4MTZfdCB2YWRkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdmFkZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3UxNikpKQp1aW50MTZ4OF90IHZhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3UzMikpKQp1aW50MzJ4NF90IHZhZGRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91MzIpKSkKdWludDMyeDRfdCB2YWRkcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV91OCkpKQp1aW50OHgxNl90IHZhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgdmFkZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3MxNikpKQppbnQxNng4X3QgdmFkZHFfeF9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3MxNikpKQppbnQxNng4X3QgdmFkZHFfeChpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3MzMikpKQppbnQzMng0X3QgdmFkZHFfeF9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3MzMikpKQppbnQzMng0X3QgdmFkZHFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3M4KSkpCmludDh4MTZfdCB2YWRkcV94X25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9uX3M4KSkpCmludDh4MTZfdCB2YWRkcV94KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcV94X25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2YWRkcV94KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcV94X25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2YWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91OCkpKQp1aW50OHgxNl90IHZhZGRxX3hfbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfbl91OCkpKQp1aW50OHgxNl90IHZhZGRxX3godWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3MxNikpKQppbnQxNng4X3QgdmFkZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZhZGRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zMzIpKSkKaW50MzJ4NF90IHZhZGRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczMyKSkpCmludDMyeDRfdCB2YWRkcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfczgpKSkKaW50OHgxNl90IHZhZGRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgdmFkZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X3UxNikpKQp1aW50MTZ4OF90IHZhZGRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91MTYpKSkKdWludDE2eDhfdCB2YWRkcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91MzIpKSkKdWludDMyeDRfdCB2YWRkcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfdTgpKSkKdWludDh4MTZfdCB2YWRkcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF91OCkpKQp1aW50OHgxNl90IHZhZGRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfczE2KSkpCmludDMyX3QgdmFkZHZhcV9wX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3MxNikpKQppbnQzMl90IHZhZGR2YXFfcChpbnQzMl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3MzMikpKQppbnQzMl90IHZhZGR2YXFfcF9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zMzIpKSkKaW50MzJfdCB2YWRkdmFxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF9zOCkpKQppbnQzMl90IHZhZGR2YXFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3M4KSkpCmludDMyX3QgdmFkZHZhcV9wKGludDMyX3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3BfdTE2KSkpCnVpbnQzMl90IHZhZGR2YXFfcF91MTYodWludDMyX3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3UxNikpKQp1aW50MzJfdCB2YWRkdmFxX3AodWludDMyX3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3UzMikpKQp1aW50MzJfdCB2YWRkdmFxX3BfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91MzIpKSkKdWludDMyX3QgdmFkZHZhcV9wKHVpbnQzMl90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfcF91OCkpKQp1aW50MzJfdCB2YWRkdmFxX3BfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9wX3U4KSkpCnVpbnQzMl90IHZhZGR2YXFfcCh1aW50MzJfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3MxNikpKQppbnQzMl90IHZhZGR2YXFfczE2KGludDMyX3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zMTYpKSkKaW50MzJfdCB2YWRkdmFxKGludDMyX3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zMzIpKSkKaW50MzJfdCB2YWRkdmFxX3MzMihpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczMyKSkpCmludDMyX3QgdmFkZHZhcShpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfczgpKSkKaW50MzJfdCB2YWRkdmFxX3M4KGludDMyX3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV9zOCkpKQppbnQzMl90IHZhZGR2YXEoaW50MzJfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdmFxX3UxNikpKQp1aW50MzJfdCB2YWRkdmFxX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91MTYpKSkKdWludDMyX3QgdmFkZHZhcSh1aW50MzJfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91MzIpKSkKdWludDMyX3QgdmFkZHZhcV91MzIodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTMyKSkpCnVpbnQzMl90IHZhZGR2YXEodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2YXFfdTgpKSkKdWludDMyX3QgdmFkZHZhcV91OCh1aW50MzJfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZhcV91OCkpKQp1aW50MzJfdCB2YWRkdmFxKHVpbnQzMl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMTYpKSkKaW50MzJfdCB2YWRkdnFfcF9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3MxNikpKQppbnQzMl90IHZhZGR2cV9wKGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zMzIpKSkKaW50MzJfdCB2YWRkdnFfcF9zMzIoaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3MzMikpKQppbnQzMl90IHZhZGR2cV9wKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zOCkpKQppbnQzMl90IHZhZGR2cV9wX3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF9zOCkpKQppbnQzMl90IHZhZGR2cV9wKGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfcF91MTYpKSkKdWludDMyX3QgdmFkZHZxX3BfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTE2KSkpCnVpbnQzMl90IHZhZGR2cV9wKHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTMyKSkpCnVpbnQzMl90IHZhZGR2cV9wX3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3UzMikpKQp1aW50MzJfdCB2YWRkdnFfcCh1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9wX3U4KSkpCnVpbnQzMl90IHZhZGR2cV9wX3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3BfdTgpKSkKdWludDMyX3QgdmFkZHZxX3AodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczE2KSkpCmludDMyX3QgdmFkZHZxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zMTYpKSkKaW50MzJfdCB2YWRkdnEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczMyKSkpCmludDMyX3QgdmFkZHZxX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV9zMzIpKSkKaW50MzJfdCB2YWRkdnEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczgpKSkKaW50MzJfdCB2YWRkdnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfczgpKSkKaW50MzJfdCB2YWRkdnEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkdnFfdTE2KSkpCnVpbnQzMl90IHZhZGR2cV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3UxNikpKQp1aW50MzJfdCB2YWRkdnEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3UzMikpKQp1aW50MzJfdCB2YWRkdnFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91MzIpKSkKdWludDMyX3QgdmFkZHZxKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGR2cV91OCkpKQp1aW50MzJfdCB2YWRkdnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHZxX3U4KSkpCnVpbnQzMl90IHZhZGR2cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MxNikpKQppbnQxNng4X3QgdmFuZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3MxNikpKQppbnQxNng4X3QgdmFuZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczMyKSkpCmludDMyeDRfdCB2YW5kcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczMyKSkpCmludDMyeDRfdCB2YW5kcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9zOCkpKQppbnQ4eDE2X3QgdmFuZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fczgpKSkKaW50OHgxNl90IHZhbmRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9tX3UxNikpKQp1aW50MTZ4OF90IHZhbmRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91MTYpKSkKdWludDE2eDhfdCB2YW5kcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91MzIpKSkKdWludDMyeDRfdCB2YW5kcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTMyKSkpCnVpbnQzMng0X3QgdmFuZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fdTgpKSkKdWludDh4MTZfdCB2YW5kcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV91OCkpKQp1aW50OHgxNl90IHZhbmRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9zMTYpKSkKaW50MTZ4OF90IHZhbmRxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczE2KSkpCmludDE2eDhfdCB2YW5kcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczMyKSkpCmludDMyeDRfdCB2YW5kcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3MzMikpKQppbnQzMng0X3QgdmFuZHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3M4KSkpCmludDh4MTZfdCB2YW5kcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfczgpKSkKaW50OHgxNl90IHZhbmRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV91MTYpKSkKdWludDE2eDhfdCB2YW5kcV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTE2KSkpCnVpbnQxNng4X3QgdmFuZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTMyKSkpCnVpbnQzMng0X3QgdmFuZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3UzMikpKQp1aW50MzJ4NF90IHZhbmRxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3U4KSkpCnVpbnQ4eDE2X3QgdmFuZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfdTgpKSkKdWludDh4MTZfdCB2YW5kcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3MxNikpKQppbnQxNng4X3QgdmFuZHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zMTYpKSkKaW50MTZ4OF90IHZhbmRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zMzIpKSkKaW50MzJ4NF90IHZhbmRxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczMyKSkpCmludDMyeDRfdCB2YW5kcV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfczgpKSkKaW50OHgxNl90IHZhbmRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9zOCkpKQppbnQ4eDE2X3QgdmFuZHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X3UxNikpKQp1aW50MTZ4OF90IHZhbmRxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91MTYpKSkKdWludDE2eDhfdCB2YW5kcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91MzIpKSkKdWludDMyeDRfdCB2YW5kcV94X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmFuZHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfdTgpKSkKdWludDh4MTZfdCB2YW5kcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF91OCkpKQp1aW50OHgxNl90IHZhbmRxX3godWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczE2KSkpCmludDE2eDhfdCB2YmljcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fczE2KSkpCmludDE2eDhfdCB2YmljcV9tX24oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX21fbihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX21fbih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmJpY3FfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmJpY3FfbV9uKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczE2KSkpCmludDE2eDhfdCB2YmljcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fczE2KSkpCmludDE2eDhfdCB2YmljcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3M4KSkpCmludDh4MTZfdCB2YmljcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV9zOCkpKQppbnQ4eDE2X3QgdmJpY3FfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fdTE2KSkpCnVpbnQxNng4X3QgdmJpY3FfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3UzMikpKQp1aW50MzJ4NF90IHZiaWNxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91MzIpKSkKdWludDMyeDRfdCB2YmljcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfbV91OCkpKQp1aW50OHgxNl90IHZiaWNxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmJpY3FfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fczE2KSkpCmludDE2eDhfdCB2YmljcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fczE2KSkpCmludDE2eDhfdCB2YmljcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fczMyKSkpCmludDMyeDRfdCB2YmljcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fczMyKSkpCmludDMyeDRfdCB2YmljcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fdTE2KSkpCnVpbnQxNng4X3QgdmJpY3Ffbl91MTYodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fdTE2KSkpCnVpbnQxNng4X3QgdmJpY3EodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fdTMyKSkpCnVpbnQzMng0X3QgdmJpY3Ffbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX25fdTMyKSkpCnVpbnQzMng0X3QgdmJpY3EodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3MxNikpKQppbnQxNng4X3QgdmJpY3FfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zMTYpKSkKaW50MTZ4OF90IHZiaWNxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczMyKSkpCmludDMyeDRfdCB2YmljcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfczgpKSkKaW50OHgxNl90IHZiaWNxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9zOCkpKQppbnQ4eDE2X3QgdmJpY3EoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91MTYpKSkKdWludDE2eDhfdCB2YmljcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91MzIpKSkKdWludDMyeDRfdCB2YmljcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTMyKSkpCnVpbnQzMng0X3QgdmJpY3EodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfdTgpKSkKdWludDh4MTZfdCB2YmljcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV91OCkpKQp1aW50OHgxNl90IHZiaWNxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfczE2KSkpCmludDE2eDhfdCB2YmljcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3MxNikpKQppbnQxNng4X3QgdmJpY3FfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3MzMikpKQppbnQzMng0X3QgdmJpY3FfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zMzIpKSkKaW50MzJ4NF90IHZiaWNxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9zOCkpKQppbnQ4eDE2X3QgdmJpY3FfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3M4KSkpCmludDh4MTZfdCB2YmljcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmJpY3FfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3UxNikpKQp1aW50MTZ4OF90IHZiaWNxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3UzMikpKQp1aW50MzJ4NF90IHZiaWNxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91MzIpKSkKdWludDMyeDRfdCB2YmljcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF91OCkpKQp1aW50OHgxNl90IHZiaWNxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X3U4KSkpCnVpbnQ4eDE2X3QgdmJpY3FfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczE2KSkpCmludDE2eDhfdCB2YnJzcnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3MxNikpKQppbnQxNng4X3QgdmJyc3JxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZicnNycV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczMyKSkpCmludDMyeDRfdCB2YnJzcnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3M4KSkpCmludDh4MTZfdCB2YnJzcnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fczgpKSkKaW50OHgxNl90IHZicnNycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmJyc3JxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZicnNycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl91MzIpKSkKdWludDMyeDRfdCB2YnJzcnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmJyc3JxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmJyc3JxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fdTgpKSkKdWludDh4MTZfdCB2YnJzcnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3MxNikpKQppbnQxNng4X3QgdmJyc3JxX25fczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczE2KSkpCmludDE2eDhfdCB2YnJzcnEoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9zMzIpKSkKaW50MzJ4NF90IHZicnNycV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3MzMikpKQppbnQzMng0X3QgdmJyc3JxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczgpKSkKaW50OHgxNl90IHZicnNycV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fczgpKSkKaW50OHgxNl90IHZicnNycShpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3UxNikpKQp1aW50MTZ4OF90IHZicnNycV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91MTYpKSkKdWludDE2eDhfdCB2YnJzcnEodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX25fdTMyKSkpCnVpbnQzMng0X3QgdmJyc3JxX25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3UzMikpKQp1aW50MzJ4NF90IHZicnNycSh1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl91OCkpKQp1aW50OHgxNl90IHZicnNycV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmJyc3JxKHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczE2KSkpCmludDE2eDhfdCB2YnJzcnFfeF9uX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZicnNycV94KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3MzMikpKQppbnQzMng0X3QgdmJyc3JxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fczMyKSkpCmludDMyeDRfdCB2YnJzcnFfeChpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmJyc3JxX3hfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmJyc3JxX3goaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmJyc3JxX3hfbl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZicnNycV94KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2YnJzcnFfeF9uX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmJyc3JxX3godWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmJyc3JxX3hfbl91OCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV94X25fdTgpKSkKdWludDh4MTZfdCB2YnJzcnFfeCh1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90MjcwX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90MjcwX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDI3MF9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90MjcwX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3QyNzBfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90MjcwX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90MjcwX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9tX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3QyNzBfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3QyNzBfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90MjcwX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3QyNzAoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90MjcwX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3QyNzAoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3QyNzBfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3QyNzAoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTE2KSkpCnVpbnQxNng4X3QgdmNhZGRxX3JvdDI3MF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90MjcwKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDI3MF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90MjcwKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90MjcwKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDI3MF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDI3MF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDI3MF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDI3MF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90MjcwX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3QyNzBfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91MzIpKSkKdWludDMyeDRfdCB2Y2FkZHFfcm90MjcwX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3QyNzBfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3QyNzBfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfeF91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3QyNzBfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDkwX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczE2KSkpCmludDE2eDhfdCB2Y2FkZHFfcm90OTBfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90OTBfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90OTBfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90OTBfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3Q5MF9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3Q5MF9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDkwX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDkwX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3Q5MF9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90OTBfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3Q5MF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9zMTYpKSkKaW50MTZ4OF90IHZjYWRkcV9yb3Q5MChpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3MzMikpKQppbnQzMng0X3QgdmNhZGRxX3JvdDkwKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3Q5MF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3M4KSkpCmludDh4MTZfdCB2Y2FkZHFfcm90OTAoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTBfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF91MTYpKSkKdWludDE2eDhfdCB2Y2FkZHFfcm90OTAodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3UzMikpKQp1aW50MzJ4NF90IHZjYWRkcV9yb3Q5MCh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90OTBfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3U4KSkpCnVpbnQ4eDE2X3QgdmNhZGRxX3JvdDkwKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDkwX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3MxNikpKQppbnQxNng4X3QgdmNhZGRxX3JvdDkwX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90OTBfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczMyKSkpCmludDMyeDRfdCB2Y2FkZHFfcm90OTBfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9zOCkpKQppbnQ4eDE2X3QgdmNhZGRxX3JvdDkwX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfczgpKSkKaW50OHgxNl90IHZjYWRkcV9yb3Q5MF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3Q5MF94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF94X3UxNikpKQp1aW50MTZ4OF90IHZjYWRkcV9yb3Q5MF94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDkwX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTMyKSkpCnVpbnQzMng0X3QgdmNhZGRxX3JvdDkwX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF91OCkpKQp1aW50OHgxNl90IHZjYWRkcV9yb3Q5MF94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfdTgpKSkKdWludDh4MTZfdCB2Y2FkZHFfcm90OTBfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX21fczE2KSkpCmludDE2eDhfdCB2Y2xzcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3MxNikpKQppbnQxNng4X3QgdmNsc3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3MzMikpKQppbnQzMng0X3QgdmNsc3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zMzIpKSkKaW50MzJ4NF90IHZjbHNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfbV9zOCkpKQppbnQ4eDE2X3QgdmNsc3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2xzcV9tX3M4KSkpCmludDh4MTZfdCB2Y2xzcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MxNikpKQppbnQxNng4X3QgdmNsc3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczE2KSkpCmludDE2eDhfdCB2Y2xzcShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3MzMikpKQppbnQzMng0X3QgdmNsc3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfczMyKSkpCmludDMyeDRfdCB2Y2xzcShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3M4KSkpCmludDh4MTZfdCB2Y2xzcV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3M4KSkpCmludDh4MTZfdCB2Y2xzcShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczE2KSkpCmludDE2eDhfdCB2Y2xzcV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zMTYpKSkKaW50MTZ4OF90IHZjbHNxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczMyKSkpCmludDMyeDRfdCB2Y2xzcV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsc3FfeF9zMzIpKSkKaW50MzJ4NF90IHZjbHNxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczgpKSkKaW50OHgxNl90IHZjbHNxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHNxX3hfczgpKSkKaW50OHgxNl90IHZjbHNxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fczE2KSkpCmludDE2eDhfdCB2Y2x6cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3MxNikpKQppbnQxNng4X3QgdmNsenFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3MzMikpKQppbnQzMng0X3QgdmNsenFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zMzIpKSkKaW50MzJ4NF90IHZjbHpxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV9zOCkpKQppbnQ4eDE2X3QgdmNsenFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3M4KSkpCmludDh4MTZfdCB2Y2x6cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX21fdTE2KSkpCnVpbnQxNng4X3QgdmNsenFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3UxNikpKQp1aW50MTZ4OF90IHZjbHpxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3UzMikpKQp1aW50MzJ4NF90IHZjbHpxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91MzIpKSkKdWludDMyeDRfdCB2Y2x6cV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfbV91OCkpKQp1aW50OHgxNl90IHZjbHpxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmNsenFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MxNikpKQppbnQxNng4X3QgdmNsenFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczE2KSkpCmludDE2eDhfdCB2Y2x6cShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3MzMikpKQppbnQzMng0X3QgdmNsenFfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfczMyKSkpCmludDMyeDRfdCB2Y2x6cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3M4KSkpCmludDh4MTZfdCB2Y2x6cV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3M4KSkpCmludDh4MTZfdCB2Y2x6cShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3UxNikpKQp1aW50MTZ4OF90IHZjbHpxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91MTYpKSkKdWludDE2eDhfdCB2Y2x6cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91MzIpKSkKdWludDMyeDRfdCB2Y2x6cV91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTMyKSkpCnVpbnQzMng0X3QgdmNsenEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfdTgpKSkKdWludDh4MTZfdCB2Y2x6cV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV91OCkpKQp1aW50OHgxNl90IHZjbHpxKHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczE2KSkpCmludDE2eDhfdCB2Y2x6cV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zMTYpKSkKaW50MTZ4OF90IHZjbHpxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczMyKSkpCmludDMyeDRfdCB2Y2x6cV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF9zMzIpKSkKaW50MzJ4NF90IHZjbHpxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczgpKSkKaW50OHgxNl90IHZjbHpxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfczgpKSkKaW50OHgxNl90IHZjbHpxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbHpxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmNsenFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3UxNikpKQp1aW50MTZ4OF90IHZjbHpxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3UzMikpKQp1aW50MzJ4NF90IHZjbHpxX3hfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91MzIpKSkKdWludDMyeDRfdCB2Y2x6cV94KHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNsenFfeF91OCkpKQp1aW50OHgxNl90IHZjbHpxX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2x6cV94X3U4KSkpCnVpbnQ4eDE2X3QgdmNsenFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGNzcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3Ffbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3EodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGNzcV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3FfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGNzcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wY3NxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wY3NxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBjc3FfdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBjc3EodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20odWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfczgpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGdlcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbSh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9tX25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fbl91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9tX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX21fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfbV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV9uX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBoaXFfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3UxNikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91MzIpKSkKbXZlX3ByZWQxNl90IHZjbXBoaXEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGhpcV91OCkpKQptdmVfcHJlZDE2X3QgdmNtcGhpcV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21waGlxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21waGlxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGxlcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX20oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfczMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fczgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX3M4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3MxNikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3MzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9zOCkpKQptdmVfcHJlZDE2X3QgdmNtcG5lcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV91MTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3UzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX3U4KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfdTgpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfczE2KSkpCmludDE2eDhfdCB2Y3JlYXRlcV9zMTYodWludDY0X3QsIHVpbnQ2NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9zMzIpKSkKaW50MzJ4NF90IHZjcmVhdGVxX3MzMih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjcmVhdGVxX3M2NCkpKQppbnQ2NHgyX3QgdmNyZWF0ZXFfczY0KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfczgpKSkKaW50OHgxNl90IHZjcmVhdGVxX3M4KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfdTE2KSkpCnVpbnQxNng4X3QgdmNyZWF0ZXFfdTE2KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfdTMyKSkpCnVpbnQzMng0X3QgdmNyZWF0ZXFfdTMyKHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfdTY0KSkpCnVpbnQ2NHgyX3QgdmNyZWF0ZXFfdTY0KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfdTgpKSkKdWludDh4MTZfdCB2Y3JlYXRlcV91OCh1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHAxNnEpKSkKbXZlX3ByZWQxNl90IHZjdHAxNnEodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHAxNnFfbSkpKQptdmVfcHJlZDE2X3QgdmN0cDE2cV9tKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHAzMnEpKSkKbXZlX3ByZWQxNl90IHZjdHAzMnEodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHAzMnFfbSkpKQptdmVfcHJlZDE2X3QgdmN0cDMycV9tKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHA2NHEpKSkKbXZlX3ByZWQxNl90IHZjdHA2NHEodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHA2NHFfbSkpKQptdmVfcHJlZDE2X3QgdmN0cDY0cV9tKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdHA4cSkpKQptdmVfcHJlZDE2X3QgdmN0cDhxKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3RwOHFfbSkpKQptdmVfcHJlZDE2X3QgdmN0cDhxX20odWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX21fd2JfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX21fd2JfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCB2ZGR1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfbV93Yl91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX21fd2JfdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX25fdTE2KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV91MTYodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX25fdTMyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV91MzIodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfbl91OCh1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfbl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV91OCh1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX3diX3UxNih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfdTE2KHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV93Yl91MzIodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX3UzMih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV93Yl91OCh1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV93Yl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV91OCh1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX3hfbl91MTYodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZkZHVwcV94X3UxNih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX3hfbl91MzIodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV94X3UzMih1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2ZGR1cHFfeF9uX3U4KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV94X3U4KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmRkdXBxX3hfd2JfdTE2KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCB2ZGR1cHFfeF91MTYodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IHZkZHVwcV94X3diX3UzMih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmRkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmRkdXBxX3hfdTMyKHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV94X3diX3U4KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZGR1cHFfeF93Yl91OCkpKQp1aW50OHgxNl90IHZkZHVwcV94X3U4KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczE2KSkpCmludDE2eDhfdCB2ZHVwcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczE2KSkpCmludDE2eDhfdCB2ZHVwcV9tKGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczMyKSkpCmludDMyeDRfdCB2ZHVwcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczMyKSkpCmludDMyeDRfdCB2ZHVwcV9tKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczgpKSkKaW50OHgxNl90IHZkdXBxX21fbl9zOChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fczgpKSkKaW50OHgxNl90IHZkdXBxX20oaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZkdXBxX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR1cHFfbSh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fczE2KSkpCmludDE2eDhfdCB2ZHVwcV9uX3MxNihpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX3MzMikpKQppbnQzMng0X3QgdmR1cHFfbl9zMzIoaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfbl9zOCkpKQppbnQ4eDE2X3QgdmR1cHFfbl9zOChpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgdmR1cHFfbl91MTYodWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgdmR1cHFfbl91MzIodWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2ZHVwcV9uX3U4KHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZkdXBxX3hfbl9zMTYoaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fczMyKSkpCmludDMyeDRfdCB2ZHVwcV94X25fczMyKGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX3M4KSkpCmludDh4MTZfdCB2ZHVwcV94X25fczgoaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2ZHVwcV94X25fdTE2KHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2ZHVwcV94X25fdTMyKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZkdXBxX3hfbl91OCh1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX21fbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX21fd2JfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX21fd2JfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZkd2R1cHFfbSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfbV93Yl91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbV93Yl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX25fdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX25fdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX25fdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfbl91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV91OCh1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX3diX3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV93Yl91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV93Yl91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV91OCh1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX3hfbl91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTE2KSkpCnVpbnQxNng4X3QgdmR3ZHVwcV94X3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX3hfbl91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV94X3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfbl91OCkpKQp1aW50OHgxNl90IHZkd2R1cHFfeF9uX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV94X3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91MTYpKSkKdWludDE2eDhfdCB2ZHdkdXBxX3hfd2JfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZkd2R1cHFfeF91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHdkdXBxX3hfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmR3ZHVwcV94X3diX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zkd2R1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2ZHdkdXBxX3hfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV94X3diX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR3ZHVwcV94X3diX3U4KSkpCnVpbnQ4eDE2X3QgdmR3ZHVwcV94X3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMTYpKSkKaW50MTZ4OF90IHZlb3JxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9zMTYpKSkKaW50MTZ4OF90IHZlb3JxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3MzMikpKQppbnQzMng0X3QgdmVvcnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3MzMikpKQppbnQzMng0X3QgdmVvcnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fczgpKSkKaW50OHgxNl90IHZlb3JxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3M4KSkpCmludDh4MTZfdCB2ZW9ycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV91MTYpKSkKdWludDE2eDhfdCB2ZW9ycV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTE2KSkpCnVpbnQxNng4X3QgdmVvcnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTMyKSkpCnVpbnQzMng0X3QgdmVvcnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3UzMikpKQp1aW50MzJ4NF90IHZlb3JxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmVvcnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX21fdTgpKSkKdWludDh4MTZfdCB2ZW9ycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfczE2KSkpCmludDE2eDhfdCB2ZW9ycV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3MxNikpKQppbnQxNng4X3QgdmVvcnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3MzMikpKQppbnQzMng0X3QgdmVvcnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zMzIpKSkKaW50MzJ4NF90IHZlb3JxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9zOCkpKQppbnQ4eDE2X3QgdmVvcnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3M4KSkpCmludDh4MTZfdCB2ZW9ycShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfdTE2KSkpCnVpbnQxNng4X3QgdmVvcnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3UxNikpKQp1aW50MTZ4OF90IHZlb3JxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3UzMikpKQp1aW50MzJ4NF90IHZlb3JxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91MzIpKSkKdWludDMyeDRfdCB2ZW9ycSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV91OCkpKQp1aW50OHgxNl90IHZlb3JxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3U4KSkpCnVpbnQ4eDE2X3QgdmVvcnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9zMTYpKSkKaW50MTZ4OF90IHZlb3JxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczE2KSkpCmludDE2eDhfdCB2ZW9ycV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczMyKSkpCmludDMyeDRfdCB2ZW9ycV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3MzMikpKQppbnQzMng0X3QgdmVvcnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3M4KSkpCmludDh4MTZfdCB2ZW9ycV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfczgpKSkKaW50OHgxNl90IHZlb3JxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF91MTYpKSkKdWludDE2eDhfdCB2ZW9ycV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTE2KSkpCnVpbnQxNng4X3QgdmVvcnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmVvcnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3UzMikpKQp1aW50MzJ4NF90IHZlb3JxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X3U4KSkpCnVpbnQ4eDE2X3QgdmVvcnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfdTgpKSkKdWludDh4MTZfdCB2ZW9ycV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMTYpKSkKaW50MTZfdCB2Z2V0cV9sYW5lX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zMTYpKSkKaW50MTZfdCB2Z2V0cV9sYW5lKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3MzMikpKQppbnQzMl90IHZnZXRxX2xhbmVfczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3MzMikpKQppbnQzMl90IHZnZXRxX2xhbmUoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczY0KSkpCmludDY0X3QgdmdldHFfbGFuZV9zNjQoaW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfczY0KSkpCmludDY0X3QgdmdldHFfbGFuZShpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zOCkpKQppbnQ4X3QgdmdldHFfbGFuZV9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9zOCkpKQppbnQ4X3QgdmdldHFfbGFuZShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MTYpKSkKdWludDE2X3QgdmdldHFfbGFuZV91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3UxNikpKQp1aW50MTZfdCB2Z2V0cV9sYW5lKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91MzIpKSkKdWludDMyX3QgdmdldHFfbGFuZV91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3UzMikpKQp1aW50MzJfdCB2Z2V0cV9sYW5lKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91NjQpKSkKdWludDY0X3QgdmdldHFfbGFuZV91NjQodWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3U2NCkpKQp1aW50NjRfdCB2Z2V0cV9sYW5lKHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV91OCkpKQp1aW50OF90IHZnZXRxX2xhbmVfdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX3U4KSkpCnVpbnQ4X3QgdmdldHFfbGFuZSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczE2KSkpCmludDE2eDhfdCB2aGFkZHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fczMyKSkpCmludDMyeDRfdCB2aGFkZHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCB2aGFkZHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZoYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX25fdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IHZoYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczE2KSkpCmludDE2eDhfdCB2aGFkZHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczMyKSkpCmludDMyeDRfdCB2aGFkZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczgpKSkKaW50OHgxNl90IHZoYWRkcV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fczgpKSkKaW50OHgxNl90IHZoYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbV91OCkpKQp1aW50OHgxNl90IHZoYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczE2KSkpCmludDE2eDhfdCB2aGFkZHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IHZoYWRkcShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3MzMikpKQppbnQzMng0X3QgdmhhZGRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fczMyKSkpCmludDMyeDRfdCB2aGFkZHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3M4KSkpCmludDh4MTZfdCB2aGFkZHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IHZoYWRkcSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX25fdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfbl91OCkpKQp1aW50OHgxNl90IHZoYWRkcSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczE2KSkpCmludDE2eDhfdCB2aGFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfczE2KSkpCmludDE2eDhfdCB2aGFkZHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3M4KSkpCmludDh4MTZfdCB2aGFkZHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfdTE2KSkpCnVpbnQxNng4X3QgdmhhZGRxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91MzIpKSkKdWludDMyeDRfdCB2aGFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV91OCkpKQp1aW50OHgxNl90IHZoYWRkcSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3MxNikpKQppbnQxNng4X3QgdmhhZGRxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczE2KSkpCmludDE2eDhfdCB2aGFkZHFfeChpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZoYWRkcV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3MzMikpKQppbnQzMng0X3QgdmhhZGRxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fczgpKSkKaW50OHgxNl90IHZoYWRkcV94X25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aGFkZHFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV94KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aGFkZHFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhhZGRxX3hfbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X25fdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MxNikpKQppbnQxNng4X3QgdmhhZGRxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3MxNikpKQppbnQxNng4X3QgdmhhZGRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczMyKSkpCmludDMyeDRfdCB2aGFkZHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczMyKSkpCmludDMyeDRfdCB2aGFkZHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF9zOCkpKQppbnQ4eDE2X3QgdmhhZGRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfczgpKSkKaW50OHgxNl90IHZoYWRkcV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoYWRkcV94X3UxNikpKQp1aW50MTZ4OF90IHZoYWRkcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmhhZGRxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGFkZHFfeF91OCkpKQp1aW50OHgxNl90IHZoYWRkcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhhZGRxX3hfdTgpKSkKdWludDh4MTZfdCB2aGFkZHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDI3MF9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX21fczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDI3MF9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90MjcwX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90MjcwX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9tX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDI3MF9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfbV9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3QyNzBfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3QyNzBfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90MjcwKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90MjcwX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDI3MChpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90MjcwX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3QyNzAoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90MjcwX3hfczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDI3MF94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3QyNzBfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3QyNzBfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90MjcwX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3QyNzBfeF9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3QyNzBfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDI3MF94X3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDI3MF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfbV9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90OTBfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDkwX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDkwX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3Q5MF9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9tX3M4KSkpCmludDh4MTZfdCB2aGNhZGRxX3JvdDkwX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aGNhZGRxX3JvdDkwX21fczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90OTBfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczE2KSkpCmludDE2eDhfdCB2aGNhZGRxX3JvdDkwX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90OTAoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczMyKSkpCmludDMyeDRfdCB2aGNhZGRxX3JvdDkwX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90OTAoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90OTBfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfczgpKSkKaW50OHgxNl90IHZoY2FkZHFfcm90OTAoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMTYpKSkKaW50MTZ4OF90IHZoY2FkZHFfcm90OTBfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3MxNikpKQppbnQxNng4X3QgdmhjYWRkcV9yb3Q5MF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zMzIpKSkKaW50MzJ4NF90IHZoY2FkZHFfcm90OTBfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhjYWRkcV9yb3Q5MF94X3MzMikpKQppbnQzMng0X3QgdmhjYWRkcV9yb3Q5MF94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3Q5MF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZoY2FkZHFfcm90OTBfeF9zOCkpKQppbnQ4eDE2X3QgdmhjYWRkcV9yb3Q5MF94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczE2KSkpCmludDE2eDhfdCB2aHN1YnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fczMyKSkpCmludDMyeDRfdCB2aHN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCB2aHN1YnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZoc3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX25fdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfbV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IHZoc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczE2KSkpCmludDE2eDhfdCB2aHN1YnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IHZoc3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczMyKSkpCmludDMyeDRfdCB2aHN1YnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczgpKSkKaW50OHgxNl90IHZoc3VicV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fczgpKSkKaW50OHgxNl90IHZoc3VicV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX21fdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbV91OCkpKQp1aW50OHgxNl90IHZoc3VicV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczE2KSkpCmludDE2eDhfdCB2aHN1YnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IHZoc3VicShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3MzMikpKQppbnQzMng0X3QgdmhzdWJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fczMyKSkpCmludDMyeDRfdCB2aHN1YnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3M4KSkpCmludDh4MTZfdCB2aHN1YnEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxKHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9uX3UzMikpKQp1aW50MzJ4NF90IHZoc3VicSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX25fdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfbl91OCh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfbl91OCkpKQp1aW50OHgxNl90IHZoc3VicSh1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczE2KSkpCmludDE2eDhfdCB2aHN1YnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfczE2KSkpCmludDE2eDhfdCB2aHN1YnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zMzIpKSkKaW50MzJ4NF90IHZoc3VicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3M4KSkpCmludDh4MTZfdCB2aHN1YnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfdTE2KSkpCnVpbnQxNng4X3QgdmhzdWJxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91MzIpKSkKdWludDMyeDRfdCB2aHN1YnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV91OCkpKQp1aW50OHgxNl90IHZoc3VicSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3MxNikpKQppbnQxNng4X3QgdmhzdWJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczE2KSkpCmludDE2eDhfdCB2aHN1YnFfeChpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZoc3VicV94X25fczMyKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3MzMikpKQppbnQzMng0X3QgdmhzdWJxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fczgpKSkKaW50OHgxNl90IHZoc3VicV94X25fczgoaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX3goaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aHN1YnFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV94KHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX3hfbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aHN1YnFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmhzdWJxX3hfbl91OCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X25fdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfeCh1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MxNikpKQppbnQxNng4X3QgdmhzdWJxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3MxNikpKQppbnQxNng4X3QgdmhzdWJxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczMyKSkpCmludDMyeDRfdCB2aHN1YnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczMyKSkpCmludDMyeDRfdCB2aHN1YnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF9zOCkpKQppbnQ4eDE2X3QgdmhzdWJxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfczgpKSkKaW50OHgxNl90IHZoc3VicV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zoc3VicV94X3UxNikpKQp1aW50MTZ4OF90IHZoc3VicV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTMyKSkpCnVpbnQzMng0X3QgdmhzdWJxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aHN1YnFfeF91OCkpKQp1aW50OHgxNl90IHZoc3VicV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmhzdWJxX3hfdTgpKSkKdWludDh4MTZfdCB2aHN1YnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX21fbl91MTYodWludDE2eDhfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX21fbl91OCh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfbSh1aW50OHgxNl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV9tX3diX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV9tX3diX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3QgdmlkdXBxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX21fd2JfdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV9uX3UxNih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfdTE2KHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV9uX3UzMih1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfdTMyKHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX25fdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfdTgodWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV93Yl91MTYodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX3UxNih1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfd2JfdTMyKHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV91MzIodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfd2JfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfdTgodWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV94X25fdTE2KHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aWR1cHFfeF91MTYodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV94X25fdTMyKHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfeF91MzIodWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdmlkdXBxX3hfbl91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfeF91OCh1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZpZHVwcV94X3diX3UxNih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3QgdmlkdXBxX3hfdTE2KHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aWR1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2aWR1cHFfeF93Yl91MzIodWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZpZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IHZpZHVwcV94X3UzMih1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfeF93Yl91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmlkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2aWR1cHFfeF91OCh1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfbSh1aW50MTZ4OF90LCB1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fbl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV9tX25fdTgodWludDh4MTZfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX25fdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX20odWludDh4MTZfdCwgdWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfbV93Yl91MTYodWludDE2eDhfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV9tKHVpbnQxNng4X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfbV93Yl91MzIodWludDMyeDRfdCwgdWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX21fd2JfdTMyKSkpCnVpbnQzMng0X3Qgdml3ZHVwcV9tKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV9tX3diX3U4KHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9tX3diX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV9tKHVpbnQ4eDE2X3QsIHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfbl91MTYodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfbl91MzIodWludDMyX3QsIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfbl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV9uX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX25fdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3U4KHVpbnQzMl90LCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfd2JfdTE2KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV93Yl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3diX3UzMih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3diX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3diX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfd2JfdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3U4KHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfeF9uX3UxNih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2aXdkdXBxX3hfdTE2KHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfeF9uX3UzMih1aW50MzJfdCwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3hfdTMyKHVpbnQzMl90LCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3Qgdml3ZHVwcV94X25fdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X25fdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3hfdTgodWludDMyX3QsIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3UxNikpKQp1aW50MTZ4OF90IHZpd2R1cHFfeF93Yl91MTYodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTE2KSkpCnVpbnQxNng4X3Qgdml3ZHVwcV94X3UxNih1aW50MzJfdCAqLCB1aW50MzJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zpd2R1cHFfeF93Yl91MzIpKSkKdWludDMyeDRfdCB2aXdkdXBxX3hfd2JfdTMyKHVpbnQzMl90ICosIHVpbnQzMl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdml3ZHVwcV94X3diX3UzMikpKQp1aW50MzJ4NF90IHZpd2R1cHFfeF91MzIodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3hfd2JfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92aXdkdXBxX3hfd2JfdTgpKSkKdWludDh4MTZfdCB2aXdkdXBxX3hfdTgodWludDMyX3QgKiwgdWludDMyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMTYpKSkKaW50MTZ4OF90IHZsZDFxX3MxNihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3MxNikpKQppbnQxNng4X3QgdmxkMXEoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zMzIpKSkKaW50MzJ4NF90IHZsZDFxX3MzMihjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3MzMikpKQppbnQzMng0X3QgdmxkMXEoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9zOCkpKQppbnQ4eDE2X3QgdmxkMXFfczgoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3M4KSkpCmludDh4MTZfdCB2bGQxcShjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTE2KSkpCnVpbnQxNng4X3QgdmxkMXFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3UxNikpKQp1aW50MTZ4OF90IHZsZDFxKGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3UzMikpKQp1aW50MzJ4NF90IHZsZDFxX3UzMihjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91MzIpKSkKdWludDMyeDRfdCB2bGQxcShjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV91OCkpKQp1aW50OHgxNl90IHZsZDFxX3U4KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfdTgpKSkKdWludDh4MTZfdCB2bGQxcShjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczE2KSkpCmludDE2eDhfdCB2bGQxcV96X3MxNihjb25zdCBpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zMTYpKSkKaW50MTZ4OF90IHZsZDFxX3ooY29uc3QgaW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczMyKSkpCmludDMyeDRfdCB2bGQxcV96X3MzMihjb25zdCBpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zMzIpKSkKaW50MzJ4NF90IHZsZDFxX3ooY29uc3QgaW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfczgpKSkKaW50OHgxNl90IHZsZDFxX3pfczgoY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9zOCkpKQppbnQ4eDE2X3QgdmxkMXFfeihjb25zdCBpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3UxNikpKQp1aW50MTZ4OF90IHZsZDFxX3pfdTE2KGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91MTYpKSkKdWludDE2eDhfdCB2bGQxcV96KGNvbnN0IHVpbnQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel91MzIpKSkKdWludDMyeDRfdCB2bGQxcV96X3UzMihjb25zdCB1aW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkMXFfeihjb25zdCB1aW50MzJfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfdTgpKSkKdWludDh4MTZfdCB2bGQxcV96X3U4KGNvbnN0IHVpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV96X3U4KSkpCnVpbnQ4eDE2X3QgdmxkMXFfeihjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczE2KSkpCmludDE2eDh4Ml90IHZsZDJxX3MxNihjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3MxNikpKQppbnQxNng4eDJfdCB2bGQycShjb25zdCBpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3MzMikpKQppbnQzMng0eDJfdCB2bGQycV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zMzIpKSkKaW50MzJ4NHgyX3QgdmxkMnEoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9zOCkpKQppbnQ4eDE2eDJfdCB2bGQycV9zOChjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfczgpKSkKaW50OHgxNngyX3QgdmxkMnEoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UxNikpKQp1aW50MTZ4OHgyX3QgdmxkMnFfdTE2KGNvbnN0IHVpbnQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX3UxNikpKQp1aW50MTZ4OHgyX3QgdmxkMnEoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTMyKSkpCnVpbnQzMng0eDJfdCB2bGQycV91MzIoY29uc3QgdWludDMyX3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMnFfdTMyKSkpCnVpbnQzMng0eDJfdCB2bGQycShjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91OCkpKQp1aW50OHgxNngyX3QgdmxkMnFfdTgoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV91OCkpKQp1aW50OHgxNngyX3QgdmxkMnEoY29uc3QgdWludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zMTYpKSkKaW50MTZ4OHg0X3QgdmxkNHFfczE2KGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczE2KSkpCmludDE2eDh4NF90IHZsZDRxKGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfczMyKSkpCmludDMyeDR4NF90IHZsZDRxX3MzMihjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3MzMikpKQppbnQzMng0eDRfdCB2bGQ0cShjb25zdCBpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3M4KSkpCmludDh4MTZ4NF90IHZsZDRxX3M4KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9zOCkpKQppbnQ4eDE2eDRfdCB2bGQ0cShjb25zdCBpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTE2KSkpCnVpbnQxNng4eDRfdCB2bGQ0cV91MTYoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkNHFfdTE2KSkpCnVpbnQxNng4eDRfdCB2bGQ0cShjb25zdCB1aW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91MzIpKSkKdWludDMyeDR4NF90IHZsZDRxX3UzMihjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV91MzIpKSkKdWludDMyeDR4NF90IHZsZDRxKGNvbnN0IHVpbnQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3U4KSkpCnVpbnQ4eDE2eDRfdCB2bGQ0cV91OChjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX3U4KSkpCnVpbnQ4eDE2eDRfdCB2bGQ0cShjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfczE2KGNvbnN0IGludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMTYpKSkKaW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3MzMihjb25zdCBpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfczgpKSkKaW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3M4KGNvbnN0IGludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF9zOCkpKQppbnQ4eDE2X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgaW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3UxNihjb25zdCB1aW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0KGNvbnN0IHVpbnQ4X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTMyKGNvbnN0IHVpbnQ4X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF91OCkpKQp1aW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3U4KGNvbnN0IHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfdTgpKSkKdWludDh4MTZfdCB2bGRyYnFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfczE2KSkpCmludDE2eDhfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96X3MxNihjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMzIoY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgaW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zOCkpKQppbnQ4eDE2X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel9zOChjb25zdCBpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3M4KSkpCmludDh4MTZfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MTYoY29uc3QgdWludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9nYXRoZXJfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50OF90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96X3UzMihjb25zdCB1aW50OF90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyYnFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfZ2F0aGVyX29mZnNldF96X3U4KSkpCnVpbnQ4eDE2X3QgdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91OChjb25zdCB1aW50OF90ICosIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX2dhdGhlcl9vZmZzZXRfel91OCkpKQp1aW50OHgxNl90IHZsZHJicV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9zMTYpKSkKaW50MTZ4OF90IHZsZHJicV9zMTYoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9zMzIpKSkKaW50MzJ4NF90IHZsZHJicV9zMzIoY29uc3QgaW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV9zOCkpKQppbnQ4eDE2X3QgdmxkcmJxX3M4KGNvbnN0IGludDhfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmJxX3UxNihjb25zdCB1aW50OF90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV91MzIpKSkKdWludDMyeDRfdCB2bGRyYnFfdTMyKGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3U4KSkpCnVpbnQ4eDE2X3QgdmxkcmJxX3U4KGNvbnN0IHVpbnQ4X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfczE2KSkpCmludDE2eDhfdCB2bGRyYnFfel9zMTYoY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfczMyKSkpCmludDMyeDRfdCB2bGRyYnFfel9zMzIoY29uc3QgaW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfczgpKSkKaW50OHgxNl90IHZsZHJicV96X3M4KGNvbnN0IGludDhfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJicV96X3UxNikpKQp1aW50MTZ4OF90IHZsZHJicV96X3UxNihjb25zdCB1aW50OF90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmJxX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmJxX3pfdTMyKGNvbnN0IHVpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyYnFfel91OCkpKQp1aW50OHgxNl90IHZsZHJicV96X3U4KGNvbnN0IHVpbnQ4X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2VfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX2Jhc2VfczY0KHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfYmFzZV91NjQodWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2JfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX2Jhc2Vfd2JfczY0KHVpbnQ2NHgyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfd2JfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3diX3U2NCh1aW50NjR4Ml90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3pfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX2Jhc2Vfd2Jfel9zNjQodWludDY0eDJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9iYXNlX3diX3pfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3diX3pfdTY0KHVpbnQ2NHgyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfYmFzZV96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9iYXNlX3pfczY0KHVpbnQ2NHgyX3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX2Jhc2Vfel91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX2Jhc2Vfel91NjQodWludDY0eDJfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXRfczY0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfb2Zmc2V0X3U2NChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3M2NCkpKQppbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9vZmZzZXRfel9zNjQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX29mZnNldF96X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfb2Zmc2V0X3pfdTY0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zNjQpKSkKaW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczY0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zNjQpKSkKaW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTY0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTY0KSkpCnVpbnQ2NHgyX3QgdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczY0KGNvbnN0IGludDY0X3QgKiwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczY0KSkpCmludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgaW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91NjQpKSkKdWludDY0eDJfdCB2bGRyZHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTY0KGNvbnN0IHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmRxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3U2NCkpKQp1aW50NjR4Ml90IHZsZHJkcV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCB1aW50NjRfdCAqLCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfczE2KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfczE2KSkpCmludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfczMyKGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3UxNihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF91MzIoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXQoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczE2KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9zMzIpKSkKaW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfczMyKGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF96X3UxNihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTE2KSkpCnVpbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfel91MzIoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV9nYXRoZXJfb2Zmc2V0X3ooY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMTYoY29uc3QgaW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3MzMihjb25zdCBpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNikpKQp1aW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgdWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MxNihjb25zdCBpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3MxNikpKQppbnQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKGNvbnN0IGludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgaW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTE2KGNvbnN0IHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UxNikpKQp1aW50MTZ4OF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCB1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCB1aW50MTZfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9zMTYpKSkKaW50MTZ4OF90IHZsZHJocV9zMTYoY29uc3QgaW50MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfczMyKSkpCmludDMyeDRfdCB2bGRyaHFfczMyKGNvbnN0IGludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3UxNikpKQp1aW50MTZ4OF90IHZsZHJocV91MTYoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3UzMikpKQp1aW50MzJ4NF90IHZsZHJocV91MzIoY29uc3QgdWludDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX3pfczE2KSkpCmludDE2eDhfdCB2bGRyaHFfel9zMTYoY29uc3QgaW50MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X3MzMikpKQppbnQzMng0X3QgdmxkcmhxX3pfczMyKGNvbnN0IGludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel91MTYpKSkKdWludDE2eDhfdCB2bGRyaHFfel91MTYoY29uc3QgdWludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfel91MzIpKSkKdWludDMyeDRfdCB2bGRyaHFfel91MzIoY29uc3QgdWludDE2X3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2VfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2VfczMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV91MzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfczMyKHVpbnQzMng0X3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3diX3UzMih1aW50MzJ4NF90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel9zMzIodWludDMyeDRfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3diX3pfdTMyKHVpbnQzMng0X3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9iYXNlX3pfczMyKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfel91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfel91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfczMyKGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldChjb25zdCBpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3UzMihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldChjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3MzMikpKQppbnQzMng0X3QgdmxkcndxX2dhdGhlcl9vZmZzZXRfel9zMzIoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF96KGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF96KGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfczMyKGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXQoY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKGNvbnN0IGludDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfczMyKSkpCmludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgaW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel91MzIpKSkKdWludDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfdTMyKGNvbnN0IHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X3UzMikpKQp1aW50MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfeihjb25zdCB1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV9zMzIoY29uc3QgaW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX3UzMihjb25zdCB1aW50MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3Ffel9zMzIpKSkKaW50MzJ4NF90IHZsZHJ3cV96X3MzMihjb25zdCBpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3pfdTMyKSkpCnVpbnQzMng0X3QgdmxkcndxX3pfdTMyKGNvbnN0IHVpbnQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczE2KSkpCnVpbnQxNng4X3Qgdm1heGFxX21fczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zMTYpKSkKdWludDE2eDhfdCB2bWF4YXFfbSh1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczMyKSkpCnVpbnQzMng0X3Qgdm1heGFxX21fczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfbV9zMzIpKSkKdWludDMyeDRfdCB2bWF4YXFfbSh1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczgpKSkKdWludDh4MTZfdCB2bWF4YXFfbV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX21fczgpKSkKdWludDh4MTZfdCB2bWF4YXFfbSh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MxNikpKQp1aW50MTZ4OF90IHZtYXhhcV9zMTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczE2KSkpCnVpbnQxNng4X3Qgdm1heGFxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3MzMikpKQp1aW50MzJ4NF90IHZtYXhhcV9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXFfczMyKSkpCnVpbnQzMng0X3Qgdm1heGFxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3M4KSkpCnVpbnQ4eDE2X3Qgdm1heGFxX3M4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGFxX3M4KSkpCnVpbnQ4eDE2X3Qgdm1heGFxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MxNikpKQp1aW50MTZfdCB2bWF4YXZxX3BfczE2KHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3MxNikpKQp1aW50MTZfdCB2bWF4YXZxX3AodWludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczMyKSkpCnVpbnQzMl90IHZtYXhhdnFfcF9zMzIodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3BfczMyKSkpCnVpbnQzMl90IHZtYXhhdnFfcCh1aW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfcF9zOCkpKQp1aW50OF90IHZtYXhhdnFfcF9zOCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9wX3M4KSkpCnVpbnQ4X3Qgdm1heGF2cV9wKHVpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MxNikpKQp1aW50MTZfdCB2bWF4YXZxX3MxNih1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3MxNikpKQp1aW50MTZfdCB2bWF4YXZxKHVpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczMyKSkpCnVpbnQzMl90IHZtYXhhdnFfczMyKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhhdnFfczMyKSkpCnVpbnQzMl90IHZtYXhhdnEodWludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heGF2cV9zOCkpKQp1aW50OF90IHZtYXhhdnFfczgodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4YXZxX3M4KSkpCnVpbnQ4X3Qgdm1heGF2cSh1aW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczE2KSkpCmludDE2eDhfdCB2bWF4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fczE2KSkpCmludDE2eDhfdCB2bWF4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zMzIpKSkKaW50MzJ4NF90IHZtYXhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zMzIpKSkKaW50MzJ4NF90IHZtYXhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3M4KSkpCmludDh4MTZfdCB2bWF4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV9zOCkpKQppbnQ4eDE2X3Qgdm1heHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm1heHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3UxNikpKQp1aW50MTZ4OF90IHZtYXhxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3UzMikpKQp1aW50MzJ4NF90IHZtYXhxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91MzIpKSkKdWludDMyeDRfdCB2bWF4cV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfbV91OCkpKQp1aW50OHgxNl90IHZtYXhxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm1heHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3MxNikpKQppbnQxNng4X3Qgdm1heHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zMTYpKSkKaW50MTZ4OF90IHZtYXhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zMzIpKSkKaW50MzJ4NF90IHZtYXhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczMyKSkpCmludDMyeDRfdCB2bWF4cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfczgpKSkKaW50OHgxNl90IHZtYXhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV9zOCkpKQppbnQ4eDE2X3Qgdm1heHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3UxNikpKQp1aW50MTZ4OF90IHZtYXhxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91MTYpKSkKdWludDE2eDhfdCB2bWF4cSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91MzIpKSkKdWludDMyeDRfdCB2bWF4cV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTMyKSkpCnVpbnQzMng0X3Qgdm1heHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfdTgpKSkKdWludDh4MTZfdCB2bWF4cV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV91OCkpKQp1aW50OHgxNl90IHZtYXhxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfczE2KSkpCmludDE2eDhfdCB2bWF4cV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3MxNikpKQppbnQxNng4X3Qgdm1heHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3MzMikpKQppbnQzMng0X3Qgdm1heHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zMzIpKSkKaW50MzJ4NF90IHZtYXhxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF9zOCkpKQppbnQ4eDE2X3Qgdm1heHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3M4KSkpCmludDh4MTZfdCB2bWF4cV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm1heHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3UxNikpKQp1aW50MTZ4OF90IHZtYXhxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3UzMikpKQp1aW50MzJ4NF90IHZtYXhxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91MzIpKSkKdWludDMyeDRfdCB2bWF4cV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHFfeF91OCkpKQp1aW50OHgxNl90IHZtYXhxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4cV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm1heHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MxNikpKQppbnQxNl90IHZtYXh2cV9wX3MxNihpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczE2KSkpCmludDE2X3Qgdm1heHZxX3AoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3MzMikpKQppbnQzMl90IHZtYXh2cV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfczMyKSkpCmludDMyX3Qgdm1heHZxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3M4KSkpCmludDhfdCB2bWF4dnFfcF9zOChpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF9zOCkpKQppbnQ4X3Qgdm1heHZxX3AoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTE2KSkpCnVpbnQxNl90IHZtYXh2cV9wX3UxNih1aW50MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91MTYpKSkKdWludDE2X3Qgdm1heHZxX3AodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTMyKSkpCnVpbnQzMl90IHZtYXh2cV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfcF91MzIpKSkKdWludDMyX3Qgdm1heHZxX3AodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3BfdTgpKSkKdWludDhfdCB2bWF4dnFfcF91OCh1aW50OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9wX3U4KSkpCnVpbnQ4X3Qgdm1heHZxX3AodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczE2KSkpCmludDE2X3Qgdm1heHZxX3MxNihpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zMTYpKSkKaW50MTZfdCB2bWF4dnEoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczMyKSkpCmludDMyX3Qgdm1heHZxX3MzMihpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV9zMzIpKSkKaW50MzJfdCB2bWF4dnEoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfczgpKSkKaW50OF90IHZtYXh2cV9zOChpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3M4KSkpCmludDhfdCB2bWF4dnEoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MTYpKSkKdWludDE2X3Qgdm1heHZxX3UxNih1aW50MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3UxNikpKQp1aW50MTZfdCB2bWF4dnEodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91MzIpKSkKdWludDMyX3Qgdm1heHZxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heHZxX3UzMikpKQp1aW50MzJfdCB2bWF4dnEodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXh2cV91OCkpKQp1aW50OF90IHZtYXh2cV91OCh1aW50OF90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4dnFfdTgpKSkKdWludDhfdCB2bWF4dnEodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczE2KSkpCnVpbnQxNng4X3Qgdm1pbmFxX21fczE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zMTYpKSkKdWludDE2eDhfdCB2bWluYXFfbSh1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczMyKSkpCnVpbnQzMng0X3Qgdm1pbmFxX21fczMyKHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfbV9zMzIpKSkKdWludDMyeDRfdCB2bWluYXFfbSh1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczgpKSkKdWludDh4MTZfdCB2bWluYXFfbV9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX21fczgpKSkKdWludDh4MTZfdCB2bWluYXFfbSh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MxNikpKQp1aW50MTZ4OF90IHZtaW5hcV9zMTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczE2KSkpCnVpbnQxNng4X3Qgdm1pbmFxKHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3MzMikpKQp1aW50MzJ4NF90IHZtaW5hcV9zMzIodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXFfczMyKSkpCnVpbnQzMng0X3Qgdm1pbmFxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3M4KSkpCnVpbnQ4eDE2X3Qgdm1pbmFxX3M4KHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmFxX3M4KSkpCnVpbnQ4eDE2X3Qgdm1pbmFxKHVpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MxNikpKQp1aW50MTZfdCB2bWluYXZxX3BfczE2KHVpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3MxNikpKQp1aW50MTZfdCB2bWluYXZxX3AodWludDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczMyKSkpCnVpbnQzMl90IHZtaW5hdnFfcF9zMzIodWludDMyX3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3BfczMyKSkpCnVpbnQzMl90IHZtaW5hdnFfcCh1aW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfcF9zOCkpKQp1aW50OF90IHZtaW5hdnFfcF9zOCh1aW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9wX3M4KSkpCnVpbnQ4X3Qgdm1pbmF2cV9wKHVpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MxNikpKQp1aW50MTZfdCB2bWluYXZxX3MxNih1aW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3MxNikpKQp1aW50MTZfdCB2bWluYXZxKHVpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczMyKSkpCnVpbnQzMl90IHZtaW5hdnFfczMyKHVpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5hdnFfczMyKSkpCnVpbnQzMl90IHZtaW5hdnEodWludDMyX3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbmF2cV9zOCkpKQp1aW50OF90IHZtaW5hdnFfczgodWludDhfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWluYXZxX3M4KSkpCnVpbnQ4X3Qgdm1pbmF2cSh1aW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczE2KSkpCmludDE2eDhfdCB2bWlucV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fczE2KSkpCmludDE2eDhfdCB2bWlucV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zMzIpKSkKaW50MzJ4NF90IHZtaW5xX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zMzIpKSkKaW50MzJ4NF90IHZtaW5xX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3M4KSkpCmludDh4MTZfdCB2bWlucV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm1pbnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX21fdTE2KSkpCnVpbnQxNng4X3Qgdm1pbnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3UxNikpKQp1aW50MTZ4OF90IHZtaW5xX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3UzMikpKQp1aW50MzJ4NF90IHZtaW5xX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91MzIpKSkKdWludDMyeDRfdCB2bWlucV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfbV91OCkpKQp1aW50OHgxNl90IHZtaW5xX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm1pbnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3MxNikpKQppbnQxNng4X3Qgdm1pbnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zMTYpKSkKaW50MTZ4OF90IHZtaW5xKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zMzIpKSkKaW50MzJ4NF90IHZtaW5xX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczMyKSkpCmludDMyeDRfdCB2bWlucShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfczgpKSkKaW50OHgxNl90IHZtaW5xX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV9zOCkpKQppbnQ4eDE2X3Qgdm1pbnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3UxNikpKQp1aW50MTZ4OF90IHZtaW5xX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91MTYpKSkKdWludDE2eDhfdCB2bWlucSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91MzIpKSkKdWludDMyeDRfdCB2bWlucV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTMyKSkpCnVpbnQzMng0X3Qgdm1pbnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfdTgpKSkKdWludDh4MTZfdCB2bWlucV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV91OCkpKQp1aW50OHgxNl90IHZtaW5xKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfczE2KSkpCmludDE2eDhfdCB2bWlucV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3MxNikpKQppbnQxNng4X3Qgdm1pbnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3MzMikpKQppbnQzMng0X3Qgdm1pbnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zMzIpKSkKaW50MzJ4NF90IHZtaW5xX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF9zOCkpKQppbnQ4eDE2X3Qgdm1pbnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3M4KSkpCmludDh4MTZfdCB2bWlucV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5xX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm1pbnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3UxNikpKQp1aW50MTZ4OF90IHZtaW5xX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3UzMikpKQp1aW50MzJ4NF90IHZtaW5xX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91MzIpKSkKdWludDMyeDRfdCB2bWlucV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnFfeF91OCkpKQp1aW50OHgxNl90IHZtaW5xX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlucV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm1pbnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MxNikpKQppbnQxNl90IHZtaW52cV9wX3MxNihpbnQxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczE2KSkpCmludDE2X3Qgdm1pbnZxX3AoaW50MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3MzMikpKQppbnQzMl90IHZtaW52cV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfczMyKSkpCmludDMyX3Qgdm1pbnZxX3AoaW50MzJfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3M4KSkpCmludDhfdCB2bWludnFfcF9zOChpbnQ4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF9zOCkpKQppbnQ4X3Qgdm1pbnZxX3AoaW50OF90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTE2KSkpCnVpbnQxNl90IHZtaW52cV9wX3UxNih1aW50MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91MTYpKSkKdWludDE2X3Qgdm1pbnZxX3AodWludDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTMyKSkpCnVpbnQzMl90IHZtaW52cV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfcF91MzIpKSkKdWludDMyX3Qgdm1pbnZxX3AodWludDMyX3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3BfdTgpKSkKdWludDhfdCB2bWludnFfcF91OCh1aW50OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9wX3U4KSkpCnVpbnQ4X3Qgdm1pbnZxX3AodWludDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczE2KSkpCmludDE2X3Qgdm1pbnZxX3MxNihpbnQxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zMTYpKSkKaW50MTZfdCB2bWludnEoaW50MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczMyKSkpCmludDMyX3Qgdm1pbnZxX3MzMihpbnQzMl90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV9zMzIpKSkKaW50MzJfdCB2bWludnEoaW50MzJfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfczgpKSkKaW50OF90IHZtaW52cV9zOChpbnQ4X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3M4KSkpCmludDhfdCB2bWludnEoaW50OF90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MTYpKSkKdWludDE2X3Qgdm1pbnZxX3UxNih1aW50MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3UxNikpKQp1aW50MTZfdCB2bWludnEodWludDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91MzIpKSkKdWludDMyX3Qgdm1pbnZxX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbnZxX3UzMikpKQp1aW50MzJfdCB2bWludnEodWludDMyX3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW52cV91OCkpKQp1aW50OF90IHZtaW52cV91OCh1aW50OF90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWludnFfdTgpKSkKdWludDhfdCB2bWludnEodWludDhfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfczE2KSkpCmludDMyX3Qgdm1sYWRhdmFxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZhcV9wKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3MzMikpKQppbnQzMl90IHZtbGFkYXZhcV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2YXFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZhcV9wX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9wX3M4KSkpCmludDMyX3Qgdm1sYWRhdmFxX3AoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wX3UxNih1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91MTYpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3AodWludDMyX3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZhcV9wX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfcF91MzIpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3AodWludDMyX3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTgpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3BfdTgodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3BfdTgpKSkKdWludDMyX3Qgdm1sYWRhdmFxX3AodWludDMyX3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3MxNikpKQppbnQzMl90IHZtbGFkYXZhcV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXEoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zMzIpKSkKaW50MzJfdCB2bWxhZGF2YXFfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczMyKSkpCmludDMyX3Qgdm1sYWRhdmFxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfczgpKSkKaW50MzJfdCB2bWxhZGF2YXFfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZhcV9zOCkpKQppbnQzMl90IHZtbGFkYXZhcShpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UxNikpKQp1aW50MzJfdCB2bWxhZGF2YXFfdTE2KHVpbnQzMl90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZhcSh1aW50MzJfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3UzMikpKQp1aW50MzJfdCB2bWxhZGF2YXFfdTMyKHVpbnQzMl90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXFfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZhcSh1aW50MzJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZhcV91OCh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmFxX3U4KSkpCnVpbnQzMl90IHZtbGFkYXZhcSh1aW50MzJfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZheHFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZheHFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczMyKSkpCmludDMyX3Qgdm1sYWRhdmF4cV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczMyKSkpCmludDMyX3Qgdm1sYWRhdmF4cV9wKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZheHFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3BfczgpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3AoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdmF4cV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2YXhxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3MzMikpKQppbnQzMl90IHZtbGFkYXZheHFfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3MzMikpKQppbnQzMl90IHZtbGFkYXZheHEoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZheHFfczgpKSkKaW50MzJfdCB2bWxhZGF2YXhxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2YXhxX3M4KSkpCmludDMyX3Qgdm1sYWRhdmF4cShpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMTYpKSkKaW50MzJfdCB2bWxhZGF2cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3MzMikpKQppbnQzMl90IHZtbGFkYXZxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZxX3BfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZxX3AoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MTYpKSkKdWludDMyX3Qgdm1sYWRhdnFfcF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3UxNikpKQp1aW50MzJfdCB2bWxhZGF2cV9wKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91MzIpKSkKdWludDMyX3Qgdm1sYWRhdnFfcF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9wX3UzMikpKQp1aW50MzJfdCB2bWxhZGF2cV9wKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91OCkpKQp1aW50MzJfdCB2bWxhZGF2cV9wX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfcF91OCkpKQp1aW50MzJfdCB2bWxhZGF2cV9wKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczE2KSkpCmludDMyX3Qgdm1sYWRhdnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczMyKSkpCmludDMyX3Qgdm1sYWRhdnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV9zMzIpKSkKaW50MzJfdCB2bWxhZGF2cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczgpKSkKaW50MzJfdCB2bWxhZGF2cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfczgpKSkKaW50MzJfdCB2bWxhZGF2cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTE2KSkpCnVpbnQzMl90IHZtbGFkYXZxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91MTYpKSkKdWludDMyX3Qgdm1sYWRhdnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTMyKSkpCnVpbnQzMl90IHZtbGFkYXZxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2cV91MzIpKSkKdWludDMyX3Qgdm1sYWRhdnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTgpKSkKdWludDMyX3Qgdm1sYWRhdnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnFfdTgpKSkKdWludDMyX3Qgdm1sYWRhdnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3BfczE2KSkpCmludDMyX3Qgdm1sYWRhdnhxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3MxNikpKQppbnQzMl90IHZtbGFkYXZ4cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3MzMikpKQppbnQzMl90IHZtbGFkYXZ4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zMzIpKSkKaW50MzJfdCB2bWxhZGF2eHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfcF9zOCkpKQppbnQzMl90IHZtbGFkYXZ4cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9wX3M4KSkpCmludDMyX3Qgdm1sYWRhdnhxX3AoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWRhdnhxX3MxNikpKQppbnQzMl90IHZtbGFkYXZ4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zMTYpKSkKaW50MzJfdCB2bWxhZGF2eHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zMzIpKSkKaW50MzJfdCB2bWxhZGF2eHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczMyKSkpCmludDMyX3Qgdm1sYWRhdnhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhZGF2eHFfczgpKSkKaW50MzJfdCB2bWxhZGF2eHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFkYXZ4cV9zOCkpKQppbnQzMl90IHZtbGFkYXZ4cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2YXFfcF9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2YXFfcChpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZhcV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfcF91MTYpKSkKdWludDY0X3Qgdm1sYWxkYXZhcV9wX3UxNih1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2YXFfcCh1aW50NjRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3BfdTMyKSkpCnVpbnQ2NF90IHZtbGFsZGF2YXFfcF91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9wX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdmFxX3AodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmFxX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmFxKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2YXFfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2YXFfdTE2KHVpbnQ2NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3UxNikpKQp1aW50NjRfdCB2bWxhbGRhdmFxKHVpbnQ2NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmFxX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdmFxX3UzMih1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZhcV91MzIpKSkKdWludDY0X3Qgdm1sYWxkYXZhcSh1aW50NjRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmF4cV9wX3MxNihpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2YXhxX3AoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdmF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9wX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2YXhxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZheHFfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdmF4cShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZheHFfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZheHFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdmF4cV9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdmF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3MxNikpKQppbnQ2NF90IHZtbGFsZGF2cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfcF91MTYpKSkKdWludDY0X3Qgdm1sYWxkYXZxX3BfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfdTE2KSkpCnVpbnQ2NF90IHZtbGFsZGF2cV9wKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3BfdTMyKSkpCnVpbnQ2NF90IHZtbGFsZGF2cV9wX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9wX3UzMikpKQp1aW50NjRfdCB2bWxhbGRhdnFfcCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfczMyKSkpCmludDY0X3Qgdm1sYWxkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZxX3UxNikpKQp1aW50NjRfdCB2bWxhbGRhdnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV91MTYpKSkKdWludDY0X3Qgdm1sYWxkYXZxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2cV91MzIpKSkKdWludDY0X3Qgdm1sYWxkYXZxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnFfdTMyKSkpCnVpbnQ2NF90IHZtbGFsZGF2cSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZ4cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3BfczE2KSkpCmludDY0X3Qgdm1sYWxkYXZ4cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFsZGF2eHFfcF9zMzIpKSkKaW50NjRfdCB2bWxhbGRhdnhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdnhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYWxkYXZ4cV9zMTYpKSkKaW50NjRfdCB2bWxhbGRhdnhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2eHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhbGRhdnhxX3MzMikpKQppbnQ2NF90IHZtbGFsZGF2eHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3MxNikpKQppbnQxNng4X3Qgdm1sYXFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczMyKSkpCmludDMyeDRfdCB2bWxhcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtbGFxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbV9uX3M4KSkpCmludDh4MTZfdCB2bWxhcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fczgpKSkKaW50OHgxNl90IHZtbGFxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTgpKSkKdWludDh4MTZfdCB2bWxhcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9tX25fdTgpKSkKdWludDh4MTZfdCB2bWxhcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3MxNikpKQppbnQxNng4X3Qgdm1sYXEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczMyKSkpCmludDMyeDRfdCB2bWxhcV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXFfbl9zMzIpKSkKaW50MzJ4NF90IHZtbGFxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhcV9uX3M4KSkpCmludDh4MTZfdCB2bWxhcV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fczgpKSkKaW50OHgxNl90IHZtbGFxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXFfbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTE2KSkpCnVpbnQxNng4X3Qgdm1sYXEodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXFfbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTgpKSkKdWludDh4MTZfdCB2bWxhcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFxX25fdTgpKSkKdWludDh4MTZfdCB2bWxhcSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3MxNikpKQppbnQxNng4X3Qgdm1sYXNxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFzcV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczMyKSkpCmludDMyeDRfdCB2bWxhc3FfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl9zOCkpKQppbnQ4eDE2X3Qgdm1sYXNxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fczgpKSkKaW50OHgxNl90IHZtbGFzcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91MTYpKSkKdWludDE2eDhfdCB2bWxhc3FfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFzcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXNxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX21fbl91MzIpKSkKdWludDMyeDRfdCB2bWxhc3FfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3FfbV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXNxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9tX25fdTgpKSkKdWludDh4MTZfdCB2bWxhc3FfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3MxNikpKQppbnQxNng4X3Qgdm1sYXNxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zMTYpKSkKaW50MTZ4OF90IHZtbGFzcShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczMyKSkpCmludDMyeDRfdCB2bWxhc3Ffbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3MzMikpKQppbnQzMng0X3Qgdm1sYXNxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl9zOCkpKQppbnQ4eDE2X3Qgdm1sYXNxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fczgpKSkKaW50OHgxNl90IHZtbGFzcShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91MTYpKSkKdWludDE2eDhfdCB2bWxhc3Ffbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3UxNikpKQp1aW50MTZ4OF90IHZtbGFzcSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTMyKSkpCnVpbnQzMng0X3Qgdm1sYXNxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxhc3Ffbl91MzIpKSkKdWludDMyeDRfdCB2bWxhc3EodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbGFzcV9uX3U4KSkpCnVpbnQ4eDE2X3Qgdm1sYXNxX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sYXNxX25fdTgpKSkKdWludDh4MTZfdCB2bWxhc3EodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3BfczE2KSkpCmludDMyX3Qgdm1sc2RhdmFxX3BfczE2KGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZhcV9wKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3MzMikpKQppbnQzMl90IHZtbHNkYXZhcV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2YXFfcChpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZhcV9wX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9wX3M4KSkpCmludDMyX3Qgdm1sc2RhdmFxX3AoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmFxX3MxNikpKQppbnQzMl90IHZtbHNkYXZhcV9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXEoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zMzIpKSkKaW50MzJfdCB2bWxzZGF2YXFfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczMyKSkpCmludDMyX3Qgdm1sc2RhdmFxKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXFfczgpKSkKaW50MzJfdCB2bWxzZGF2YXFfczgoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZhcV9zOCkpKQppbnQzMl90IHZtbHNkYXZhcShpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZheHFfcF9zMTYoaW50MzJfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZheHFfcChpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczMyKSkpCmludDMyX3Qgdm1sc2RhdmF4cV9wX3MzMihpbnQzMl90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczMyKSkpCmludDMyX3Qgdm1sc2RhdmF4cV9wKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZheHFfcF9zOChpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3BfczgpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3AoaW50MzJfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3MxNihpbnQzMl90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdmF4cV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2YXhxKGludDMyX3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3MzMikpKQppbnQzMl90IHZtbHNkYXZheHFfczMyKGludDMyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3MzMikpKQppbnQzMl90IHZtbHNkYXZheHEoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZheHFfczgpKSkKaW50MzJfdCB2bWxzZGF2YXhxX3M4KGludDMyX3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2YXhxX3M4KSkpCmludDMyX3Qgdm1sc2RhdmF4cShpbnQzMl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMTYpKSkKaW50MzJfdCB2bWxzZGF2cV9wX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9wX3MzMikpKQppbnQzMl90IHZtbHNkYXZxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZxX3BfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZxX3AoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczE2KSkpCmludDMyX3Qgdm1sc2RhdnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczMyKSkpCmludDMyX3Qgdm1sc2RhdnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2cV9zMzIpKSkKaW50MzJfdCB2bWxzZGF2cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczgpKSkKaW50MzJfdCB2bWxzZGF2cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnFfczgpKSkKaW50MzJfdCB2bWxzZGF2cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3BfczE2KSkpCmludDMyX3Qgdm1sc2RhdnhxX3BfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3MxNikpKQppbnQzMl90IHZtbHNkYXZ4cV9wKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3MzMikpKQppbnQzMl90IHZtbHNkYXZ4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zMzIpKSkKaW50MzJfdCB2bWxzZGF2eHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfcF9zOCkpKQppbnQzMl90IHZtbHNkYXZ4cV9wX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9wX3M4KSkpCmludDMyX3Qgdm1sc2RhdnhxX3AoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2RhdnhxX3MxNikpKQppbnQzMl90IHZtbHNkYXZ4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zMTYpKSkKaW50MzJfdCB2bWxzZGF2eHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zMzIpKSkKaW50MzJfdCB2bWxzZGF2eHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczMyKSkpCmludDMyX3Qgdm1sc2RhdnhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzZGF2eHFfczgpKSkKaW50MzJfdCB2bWxzZGF2eHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNkYXZ4cV9zOCkpKQppbnQzMl90IHZtbHNkYXZ4cShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXFfcF9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXFfcChpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZhcV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmFxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZhcV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZhcV9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZhcShpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdmFxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZhcV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdmFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXhxX3BfczE2KGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3BfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZheHFfcChpbnQ2NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2YXhxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZheHFfcChpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdmF4cV9zMTYoaW50NjRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2YXhxKGludDY0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdmF4cV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdmF4cV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2YXhxX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2YXhxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfcF9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdnFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3BfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZxX3AoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9wX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2cV9zMTYpKSkKaW50NjRfdCB2bWxzbGRhdnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnFfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZxX3MzMikpKQppbnQ2NF90IHZtbHNsZGF2cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2eHFfcF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9wX3MxNikpKQppbnQ2NF90IHZtbHNsZGF2eHFfcChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZ4cV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWxzbGRhdnhxX3BfczMyKSkpCmludDY0X3Qgdm1sc2xkYXZ4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZ4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtbHNsZGF2eHFfczE2KSkpCmludDY0X3Qgdm1sc2xkYXZ4cShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdnhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1sc2xkYXZ4cV9zMzIpKSkKaW50NjRfdCB2bWxzbGRhdnhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fczE2KSkpCmludDMyeDRfdCB2bW92bGJxX21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsYnFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fczgpKSkKaW50MTZ4OF90IHZtb3ZsYnFfbV9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fczgpKSkKaW50MTZ4OF90IHZtb3ZsYnFfbShpbnQxNng4X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmxicV9tX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfbV91MTYpKSkKdWludDMyeDRfdCB2bW92bGJxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fdTgpKSkKdWludDE2eDhfdCB2bW92bGJxX21fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX21fdTgpKSkKdWludDE2eDhfdCB2bW92bGJxX20odWludDE2eDhfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3MxNikpKQppbnQzMng0X3Qgdm1vdmxicV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3MxNikpKQppbnQzMng0X3Qgdm1vdmxicShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfczgpKSkKaW50MTZ4OF90IHZtb3ZsYnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3M4KSkpCmludDE2eDhfdCB2bW92bGJxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV91MTYpKSkKdWludDMyeDRfdCB2bW92bGJxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsYnEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsYnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsYnEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3MxNikpKQppbnQzMng0X3Qgdm1vdmxicV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3MxNikpKQppbnQzMng0X3Qgdm1vdmxicV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bGJxX3hfczgpKSkKaW50MTZ4OF90IHZtb3ZsYnFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3M4KSkpCmludDE2eDhfdCB2bW92bGJxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF91MTYpKSkKdWludDMyeDRfdCB2bW92bGJxX3hfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmxicV94X3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsYnFfeCh1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF91OCkpKQp1aW50MTZ4OF90IHZtb3ZsYnFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsYnFfeF91OCkpKQp1aW50MTZ4OF90IHZtb3ZsYnFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV9zMTYpKSkKaW50MzJ4NF90IHZtb3ZsdHFfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3MxNikpKQppbnQzMng0X3Qgdm1vdmx0cV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV9zOCkpKQppbnQxNng4X3Qgdm1vdmx0cV9tX3M4KGludDE2eDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV9zOCkpKQppbnQxNng4X3Qgdm1vdmx0cV9tKGludDE2eDhfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV91MTYpKSkKdWludDMyeDRfdCB2bW92bHRxX21fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9tX3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsdHFfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHFfbV91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfbV91OCkpKQp1aW50MTZ4OF90IHZtb3ZsdHFfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfczE2KSkpCmludDMyeDRfdCB2bW92bHRxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfczE2KSkpCmludDMyeDRfdCB2bW92bHRxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV9zOCkpKQppbnQxNng4X3Qgdm1vdmx0cV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfczgpKSkKaW50MTZ4OF90IHZtb3ZsdHEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsdHFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmx0cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3U4KSkpCnVpbnQxNng4X3Qgdm1vdmx0cV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3U4KSkpCnVpbnQxNng4X3Qgdm1vdmx0cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfczE2KSkpCmludDMyeDRfdCB2bW92bHRxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfczE2KSkpCmludDMyeDRfdCB2bW92bHRxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztb3ZsdHFfeF9zOCkpKQppbnQxNng4X3Qgdm1vdmx0cV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfczgpKSkKaW50MTZ4OF90IHZtb3ZsdHFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3UxNikpKQp1aW50MzJ4NF90IHZtb3ZsdHFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bHRxX3hfdTE2KSkpCnVpbnQzMng0X3Qgdm1vdmx0cV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3U4KSkpCnVpbnQxNng4X3Qgdm1vdmx0cV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdmx0cV94X3U4KSkpCnVpbnQxNng4X3Qgdm1vdmx0cV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm5icV9tX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fczE2KSkpCmludDh4MTZfdCB2bW92bmJxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3MzMikpKQppbnQxNng4X3Qgdm1vdm5icV9tX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fczMyKSkpCmludDE2eDhfdCB2bW92bmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UxNikpKQp1aW50OHgxNl90IHZtb3ZuYnFfbV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fdTE2KSkpCnVpbnQ4eDE2X3Qgdm1vdm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9tX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZuYnFfbV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX21fdTMyKSkpCnVpbnQxNng4X3Qgdm1vdm5icV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMTYpKSkKaW50OHgxNl90IHZtb3ZuYnFfczE2KGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZuYnFfczMyKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3MzMikpKQppbnQxNng4X3Qgdm1vdm5icShpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MTYpKSkKdWludDh4MTZfdCB2bW92bmJxX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3UxNikpKQp1aW50OHgxNl90IHZtb3ZuYnEodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm5icV91MzIpKSkKdWludDE2eDhfdCB2bW92bmJxX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bmJxX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm50cV9tX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fczE2KSkpCmludDh4MTZfdCB2bW92bnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3MzMikpKQppbnQxNng4X3Qgdm1vdm50cV9tX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fczMyKSkpCmludDE2eDhfdCB2bW92bnRxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IHZtb3ZudHFfbV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fdTE2KSkpCnVpbnQ4eDE2X3Qgdm1vdm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9tX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZudHFfbV91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX21fdTMyKSkpCnVpbnQxNng4X3Qgdm1vdm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMTYpKSkKaW50OHgxNl90IHZtb3ZudHFfczE2KGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3MxNikpKQppbnQ4eDE2X3Qgdm1vdm50cShpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV9zMzIpKSkKaW50MTZ4OF90IHZtb3ZudHFfczMyKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3MzMikpKQppbnQxNng4X3Qgdm1vdm50cShpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MTYpKSkKdWludDh4MTZfdCB2bW92bnRxX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3UxNikpKQp1aW50OHgxNl90IHZtb3ZudHEodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1vdm50cV91MzIpKSkKdWludDE2eDhfdCB2bW92bnRxX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bW92bnRxX3UzMikpKQp1aW50MTZ4OF90IHZtb3ZudHEodWludDE2eDhfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczE2KSkpCmludDE2eDhfdCB2bXVsaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczMyKSkpCmludDMyeDRfdCB2bXVsaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczgpKSkKaW50OHgxNl90IHZtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fczgpKSkKaW50OHgxNl90IHZtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm11bGhxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm11bGhxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91MzIpKSkKdWludDMyeDRfdCB2bXVsaHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91MzIpKSkKdWludDMyeDRfdCB2bXVsaHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm11bGhxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfbV91OCkpKQp1aW50OHgxNl90IHZtdWxocV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MxNikpKQppbnQxNng4X3Qgdm11bGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3MxNikpKQppbnQxNng4X3Qgdm11bGhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczMyKSkpCmludDMyeDRfdCB2bXVsaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczMyKSkpCmludDMyeDRfdCB2bXVsaHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV9zOCkpKQppbnQ4eDE2X3Qgdm11bGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfczgpKSkKaW50OHgxNl90IHZtdWxocShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UxNikpKQp1aW50MTZ4OF90IHZtdWxocV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3UxNikpKQp1aW50MTZ4OF90IHZtdWxocSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTMyKSkpCnVpbnQzMng0X3Qgdm11bGhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV91OCkpKQp1aW50OHgxNl90IHZtdWxocV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfdTgpKSkKdWludDh4MTZfdCB2bXVsaHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczE2KSkpCmludDE2eDhfdCB2bXVsaHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfczE2KSkpCmludDE2eDhfdCB2bXVsaHFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zMzIpKSkKaW50MzJ4NF90IHZtdWxocV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zMzIpKSkKaW50MzJ4NF90IHZtdWxocV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3M4KSkpCmludDh4MTZfdCB2bXVsaHFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF9zOCkpKQppbnQ4eDE2X3Qgdm11bGhxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm11bGhxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGhxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm11bGhxX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91MzIpKSkKdWludDMyeDRfdCB2bXVsaHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91MzIpKSkKdWludDMyeDRfdCB2bXVsaHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxocV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm11bGhxX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsaHFfeF91OCkpKQp1aW50OHgxNl90IHZtdWxocV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMTYpKSkKaW50MzJ4NF90IHZtdWxsYnFfaW50X21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV9zMTYpKSkKaW50MzJ4NF90IHZtdWxsYnFfaW50X20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3MzMikpKQppbnQ2NHgyX3Qgdm11bGxicV9pbnRfbV9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3MzMikpKQppbnQ2NHgyX3Qgdm11bGxicV9pbnRfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fczgpKSkKaW50MTZ4OF90IHZtdWxsYnFfaW50X21fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3M4KSkpCmludDE2eDhfdCB2bXVsbGJxX2ludF9tKGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfbV91MTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX2ludF9tX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9pbnRfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGxicV9pbnRfbV91MzIodWludDY0eDJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IHZtdWxsYnFfaW50X20odWludDY0eDJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9tX3U4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9pbnRfbV91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X21fdTgpKSkKdWludDE2eDhfdCB2bXVsbGJxX2ludF9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfczE2KSkpCmludDMyeDRfdCB2bXVsbGJxX2ludF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3MxNikpKQppbnQzMng0X3Qgdm11bGxicV9pbnQoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3MzMikpKQppbnQ2NHgyX3Qgdm11bGxicV9pbnRfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsYnFfaW50KGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF9zOCkpKQppbnQxNng4X3Qgdm11bGxicV9pbnRfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3M4KSkpCmludDE2eDhfdCB2bXVsbGJxX2ludChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9pbnRfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsYnFfaW50KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsYnFfaW50X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91MzIpKSkKdWludDY0eDJfdCB2bXVsbGJxX2ludCh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF91OCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfaW50X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3U4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9pbnQodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF9zMTYpKSkKaW50MzJ4NF90IHZtdWxsYnFfaW50X3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczE2KSkpCmludDMyeDRfdCB2bXVsbGJxX2ludF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczMyKSkpCmludDY0eDJfdCB2bXVsbGJxX2ludF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3MzMikpKQppbnQ2NHgyX3Qgdm11bGxicV9pbnRfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3M4KSkpCmludDE2eDhfdCB2bXVsbGJxX2ludF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfczgpKSkKaW50MTZ4OF90IHZtdWxsYnFfaW50X3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9pbnRfeF91MTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX2ludF94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9pbnRfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGxicV9pbnRfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsYnFfaW50X3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX2ludF94X3U4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9pbnRfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfaW50X3hfdTgpKSkKdWludDE2eDhfdCB2bXVsbGJxX2ludF94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X21fcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5X21fcDE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X21fcDE2KSkpCnVpbnQzMng0X3Qgdm11bGxicV9wb2x5X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfbV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfcG9seV9tX3A4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCB2bXVsbGJxX3BvbHlfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9wMTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX3BvbHlfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9wMTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX3BvbHkodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGxicV9wb2x5X3A4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9wb2x5X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfcG9seSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfeF9wMTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX3BvbHlfeF9wMTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfeF9wMTYpKSkKdWludDMyeDRfdCB2bXVsbGJxX3BvbHlfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsYnFfcG9seV94X3A4KSkpCnVpbnQxNng4X3Qgdm11bGxicV9wb2x5X3hfcDgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbGJxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IHZtdWxsYnFfcG9seV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMTYpKSkKaW50MzJ4NF90IHZtdWxsdHFfaW50X21fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV9zMTYpKSkKaW50MzJ4NF90IHZtdWxsdHFfaW50X20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3MzMikpKQppbnQ2NHgyX3Qgdm11bGx0cV9pbnRfbV9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3MzMikpKQppbnQ2NHgyX3Qgdm11bGx0cV9pbnRfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fczgpKSkKaW50MTZ4OF90IHZtdWxsdHFfaW50X21fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3M4KSkpCmludDE2eDhfdCB2bXVsbHRxX2ludF9tKGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfbV91MTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX2ludF9tX3UxNih1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9pbnRfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGx0cV9pbnRfbV91MzIodWludDY0eDJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3UzMikpKQp1aW50NjR4Ml90IHZtdWxsdHFfaW50X20odWludDY0eDJfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9tX3U4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9pbnRfbV91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X21fdTgpKSkKdWludDE2eDhfdCB2bXVsbHRxX2ludF9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfczE2KSkpCmludDMyeDRfdCB2bXVsbHRxX2ludF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3MxNikpKQppbnQzMng0X3Qgdm11bGx0cV9pbnQoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3MzMikpKQppbnQ2NHgyX3Qgdm11bGx0cV9pbnRfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zMzIpKSkKaW50NjR4Ml90IHZtdWxsdHFfaW50KGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF9zOCkpKQppbnQxNng4X3Qgdm11bGx0cV9pbnRfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3M4KSkpCmludDE2eDhfdCB2bXVsbHRxX2ludChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9pbnRfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3UxNikpKQp1aW50MzJ4NF90IHZtdWxsdHFfaW50KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsdHFfaW50X3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91MzIpKSkKdWludDY0eDJfdCB2bXVsbHRxX2ludCh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF91OCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfaW50X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3U4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9pbnQodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF9zMTYpKSkKaW50MzJ4NF90IHZtdWxsdHFfaW50X3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczE2KSkpCmludDMyeDRfdCB2bXVsbHRxX2ludF94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczMyKSkpCmludDY0eDJfdCB2bXVsbHRxX2ludF94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3MzMikpKQppbnQ2NHgyX3Qgdm11bGx0cV9pbnRfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3M4KSkpCmludDE2eDhfdCB2bXVsbHRxX2ludF94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfczgpKSkKaW50MTZ4OF90IHZtdWxsdHFfaW50X3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9pbnRfeF91MTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX2ludF94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9pbnRfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTMyKSkpCnVpbnQ2NHgyX3Qgdm11bGx0cV9pbnRfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3UzMikpKQp1aW50NjR4Ml90IHZtdWxsdHFfaW50X3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX2ludF94X3U4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9pbnRfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfaW50X3hfdTgpKSkKdWludDE2eDhfdCB2bXVsbHRxX2ludF94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X21fcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5X21fcDE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X21fcDE2KSkpCnVpbnQzMng0X3Qgdm11bGx0cV9wb2x5X20odWludDMyeDRfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfbV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfcG9seV9tX3A4KHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X21fcDgpKSkKdWludDE2eDhfdCB2bXVsbHRxX3BvbHlfbSh1aW50MTZ4OF90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9wMTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX3BvbHlfcDE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9wMTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX3BvbHkodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bGx0cV9wb2x5X3A4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9wb2x5X3A4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV9wOCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfcG9seSh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfeF9wMTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX3BvbHlfeF9wMTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfeF9wMTYpKSkKdWludDMyeDRfdCB2bXVsbHRxX3BvbHlfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxsdHFfcG9seV94X3A4KSkpCnVpbnQxNng4X3Qgdm11bGx0cV9wb2x5X3hfcDgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVsbHRxX3BvbHlfeF9wOCkpKQp1aW50MTZ4OF90IHZtdWxsdHFfcG9seV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3MxNikpKQppbnQxNng4X3Qgdm11bHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczE2KSkpCmludDE2eDhfdCB2bXVscV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm11bHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fczgpKSkKaW50OHgxNl90IHZtdWxxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2bXVscV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91MTYpKSkKdWludDE2eDhfdCB2bXVscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2bXVscV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2bXVscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91OCkpKQp1aW50OHgxNl90IHZtdWxxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl91OCkpKQp1aW50OHgxNl90IHZtdWxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MxNikpKQppbnQxNng4X3Qgdm11bHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3MxNikpKQppbnQxNng4X3Qgdm11bHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczMyKSkpCmludDMyeDRfdCB2bXVscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczMyKSkpCmludDMyeDRfdCB2bXVscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fczgpKSkKaW50OHgxNl90IHZtdWxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX3UxNikpKQp1aW50MTZ4OF90IHZtdWxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91MTYpKSkKdWludDE2eDhfdCB2bXVscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91MzIpKSkKdWludDMyeDRfdCB2bXVscV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fdTgpKSkKdWludDh4MTZfdCB2bXVscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV91OCkpKQp1aW50OHgxNl90IHZtdWxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3MxNikpKQppbnQxNng4X3Qgdm11bHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3MxNikpKQppbnQxNng4X3Qgdm11bHEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3MzMikpKQppbnQzMng0X3Qgdm11bHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3MzMikpKQppbnQzMng0X3Qgdm11bHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3M4KSkpCmludDh4MTZfdCB2bXVscV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9uX3M4KSkpCmludDh4MTZfdCB2bXVscShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91MTYpKSkKdWludDE2eDhfdCB2bXVscV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91MTYpKSkKdWludDE2eDhfdCB2bXVscSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91MzIpKSkKdWludDMyeDRfdCB2bXVscV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91MzIpKSkKdWludDMyeDRfdCB2bXVscSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91OCkpKQp1aW50OHgxNl90IHZtdWxxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbl91OCkpKQp1aW50OHgxNl90IHZtdWxxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3MxNikpKQppbnQxNng4X3Qgdm11bHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zMTYpKSkKaW50MTZ4OF90IHZtdWxxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczMyKSkpCmludDMyeDRfdCB2bXVscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfczgpKSkKaW50OHgxNl90IHZtdWxxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9zOCkpKQppbnQ4eDE2X3Qgdm11bHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3UxNikpKQp1aW50MTZ4OF90IHZtdWxxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91MTYpKSkKdWludDE2eDhfdCB2bXVscSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91MzIpKSkKdWludDMyeDRfdCB2bXVscV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTMyKSkpCnVpbnQzMng0X3Qgdm11bHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfdTgpKSkKdWludDh4MTZfdCB2bXVscV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV91OCkpKQp1aW50OHgxNl90IHZtdWxxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZtdWxxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfbl9zOCkpKQppbnQ4eDE2X3Qgdm11bHFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTgpKSkKdWludDh4MTZfdCB2bXVscV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X25fdTgpKSkKdWludDh4MTZfdCB2bXVscV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9zMTYpKSkKaW50MTZ4OF90IHZtdWxxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczE2KSkpCmludDE2eDhfdCB2bXVscV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczMyKSkpCmludDMyeDRfdCB2bXVscV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3MzMikpKQppbnQzMng0X3Qgdm11bHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3M4KSkpCmludDh4MTZfdCB2bXVscV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfczgpKSkKaW50OHgxNl90IHZtdWxxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF91MTYpKSkKdWludDE2eDhfdCB2bXVscV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm11bHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm11bHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3UzMikpKQp1aW50MzJ4NF90IHZtdWxxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm11bHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfdTgpKSkKdWludDh4MTZfdCB2bXVscV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3MxNikpKQppbnQxNng4X3Qgdm12bnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3MxNikpKQppbnQxNng4X3Qgdm12bnFfbShpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm12bnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm12bnFfbShpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX21fbl91MTYodWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX20odWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX21fbl91MzIodWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX20odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczE2KSkpCmludDE2eDhfdCB2bXZucV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczMyKSkpCmludDMyeDRfdCB2bXZucV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3MzMikpKQppbnQzMng0X3Qgdm12bnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3M4KSkpCmludDh4MTZfdCB2bXZucV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fczgpKSkKaW50OHgxNl90IHZtdm5xX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbV91MTYpKSkKdWludDE2eDhfdCB2bXZucV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTE2KSkpCnVpbnQxNng4X3Qgdm12bnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTMyKSkpCnVpbnQzMng0X3Qgdm12bnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm12bnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX21fdTgpKSkKdWludDh4MTZfdCB2bXZucV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfbl9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX25fczE2KGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX25fczMyKSkpCmludDMyeDRfdCB2bXZucV9uX3MzMihpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9uX3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX25fdTE2KHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9uX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX25fdTMyKHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3MxNikpKQppbnQxNng4X3Qgdm12bnEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3MzMikpKQppbnQzMng0X3Qgdm12bnEoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zOCkpKQppbnQ4eDE2X3Qgdm12bnFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV9zOCkpKQppbnQ4eDE2X3Qgdm12bnEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV91MTYpKSkKdWludDE2eDhfdCB2bXZucV91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTE2KSkpCnVpbnQxNng4X3Qgdm12bnEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTMyKSkpCnVpbnQzMng0X3Qgdm12bnFfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3UzMikpKQp1aW50MzJ4NF90IHZtdm5xKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3U4KSkpCnVpbnQ4eDE2X3Qgdm12bnFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfdTgpKSkKdWludDh4MTZfdCB2bXZucSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X25fczE2KSkpCmludDE2eDhfdCB2bXZucV94X25fczE2KGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9uX3MzMikpKQppbnQzMng0X3Qgdm12bnFfeF9uX3MzMihpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfbl91MTYpKSkKdWludDE2eDhfdCB2bXZucV94X25fdTE2KHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfbl91MzIpKSkKdWludDMyeDRfdCB2bXZucV94X25fdTMyKHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczE2KSkpCmludDE2eDhfdCB2bXZucV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zMTYpKSkKaW50MTZ4OF90IHZtdm5xX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczMyKSkpCmludDMyeDRfdCB2bXZucV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF9zMzIpKSkKaW50MzJ4NF90IHZtdm5xX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczgpKSkKaW50OHgxNl90IHZtdm5xX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfczgpKSkKaW50OHgxNl90IHZtdm5xX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Ztdm5xX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm12bnFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3UxNikpKQp1aW50MTZ4OF90IHZtdm5xX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3UzMikpKQp1aW50MzJ4NF90IHZtdm5xX3hfdTMyKHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91MzIpKSkKdWludDMyeDRfdCB2bXZucV94KHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm12bnFfeF91OCkpKQp1aW50OHgxNl90IHZtdm5xX3hfdTgodWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXZucV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm12bnFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fczE2KSkpCmludDE2eDhfdCB2bmVncV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3MxNikpKQppbnQxNng4X3Qgdm5lZ3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3MzMikpKQppbnQzMng0X3Qgdm5lZ3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zMzIpKSkKaW50MzJ4NF90IHZuZWdxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9zOCkpKQppbnQ4eDE2X3Qgdm5lZ3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX3M4KSkpCmludDh4MTZfdCB2bmVncV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MxNikpKQppbnQxNng4X3Qgdm5lZ3FfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczE2KSkpCmludDE2eDhfdCB2bmVncShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3MzMikpKQppbnQzMng0X3Qgdm5lZ3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfczMyKSkpCmludDMyeDRfdCB2bmVncShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3M4KSkpCmludDh4MTZfdCB2bmVncV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3M4KSkpCmludDh4MTZfdCB2bmVncShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczE2KSkpCmludDE2eDhfdCB2bmVncV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zMTYpKSkKaW50MTZ4OF90IHZuZWdxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczMyKSkpCmludDMyeDRfdCB2bmVncV94X3MzMihpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9zMzIpKSkKaW50MzJ4NF90IHZuZWdxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczgpKSkKaW50OHgxNl90IHZuZWdxX3hfczgoaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX3hfczgpKSkKaW50OHgxNl90IHZuZWdxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczE2KSkpCmludDE2eDhfdCB2b3JucV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fczE2KSkpCmludDE2eDhfdCB2b3JucV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zMzIpKSkKaW50MzJ4NF90IHZvcm5xX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zMzIpKSkKaW50MzJ4NF90IHZvcm5xX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3M4KSkpCmludDh4MTZfdCB2b3JucV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9zOCkpKQppbnQ4eDE2X3Qgdm9ybnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX21fdTE2KSkpCnVpbnQxNng4X3Qgdm9ybnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3UxNikpKQp1aW50MTZ4OF90IHZvcm5xX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3UzMikpKQp1aW50MzJ4NF90IHZvcm5xX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91MzIpKSkKdWludDMyeDRfdCB2b3JucV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV91OCkpKQp1aW50OHgxNl90IHZvcm5xX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm9ybnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3MxNikpKQppbnQxNng4X3Qgdm9ybnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zMTYpKSkKaW50MTZ4OF90IHZvcm5xKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zMzIpKSkKaW50MzJ4NF90IHZvcm5xX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczMyKSkpCmludDMyeDRfdCB2b3JucShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfczgpKSkKaW50OHgxNl90IHZvcm5xX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9zOCkpKQppbnQ4eDE2X3Qgdm9ybnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3UxNikpKQp1aW50MTZ4OF90IHZvcm5xX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91MTYpKSkKdWludDE2eDhfdCB2b3JucSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91MzIpKSkKdWludDMyeDRfdCB2b3JucV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTMyKSkpCnVpbnQzMng0X3Qgdm9ybnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfdTgpKSkKdWludDh4MTZfdCB2b3JucV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV91OCkpKQp1aW50OHgxNl90IHZvcm5xKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfczE2KSkpCmludDE2eDhfdCB2b3JucV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3MxNikpKQppbnQxNng4X3Qgdm9ybnFfeChpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3MzMikpKQppbnQzMng0X3Qgdm9ybnFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zMzIpKSkKaW50MzJ4NF90IHZvcm5xX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9zOCkpKQppbnQ4eDE2X3Qgdm9ybnFfeF9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3M4KSkpCmludDh4MTZfdCB2b3JucV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm9ybnFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3UxNikpKQp1aW50MTZ4OF90IHZvcm5xX3godWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3UzMikpKQp1aW50MzJ4NF90IHZvcm5xX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91MzIpKSkKdWludDMyeDRfdCB2b3JucV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF91OCkpKQp1aW50OHgxNl90IHZvcm5xX3hfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm9ybnFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX21fbihpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm9ycnFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9uX3MzMikpKQppbnQzMng0X3Qgdm9ycnFfbV9uKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX25fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfbV9uKHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2b3JycV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2b3JycV9tX24odWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3MzMikpKQppbnQzMng0X3Qgdm9ycnFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3MzMikpKQppbnQzMng0X3Qgdm9ycnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fczgpKSkKaW50OHgxNl90IHZvcnJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3M4KSkpCmludDh4MTZfdCB2b3JycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV91MTYpKSkKdWludDE2eDhfdCB2b3JycV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3UzMikpKQp1aW50MzJ4NF90IHZvcnJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9tX3U4KSkpCnVpbnQ4eDE2X3Qgdm9ycnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fdTgpKSkKdWludDh4MTZfdCB2b3JycV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl9zMTYpKSkKaW50MTZ4OF90IHZvcnJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl9zMzIpKSkKaW50MzJ4NF90IHZvcnJxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl9zMzIpKSkKaW50MzJ4NF90IHZvcnJxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl91MTYpKSkKdWludDE2eDhfdCB2b3JycV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl91MTYpKSkKdWludDE2eDhfdCB2b3JycSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl91MzIpKSkKdWludDMyeDRfdCB2b3JycV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbl91MzIpKSkKdWludDMyeDRfdCB2b3JycSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfczE2KSkpCmludDE2eDhfdCB2b3JycV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3MxNikpKQppbnQxNng4X3Qgdm9ycnEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3MzMikpKQppbnQzMng0X3Qgdm9ycnFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zMzIpKSkKaW50MzJ4NF90IHZvcnJxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9zOCkpKQppbnQ4eDE2X3Qgdm9ycnFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3M4KSkpCmludDh4MTZfdCB2b3JycShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3UxNikpKQp1aW50MTZ4OF90IHZvcnJxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3UzMikpKQp1aW50MzJ4NF90IHZvcnJxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91MzIpKSkKdWludDMyeDRfdCB2b3JycSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV91OCkpKQp1aW50OHgxNl90IHZvcnJxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3U4KSkpCnVpbnQ4eDE2X3Qgdm9ycnEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9zMTYpKSkKaW50MTZ4OF90IHZvcnJxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczE2KSkpCmludDE2eDhfdCB2b3JycV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczMyKSkpCmludDMyeDRfdCB2b3JycV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3MzMikpKQppbnQzMng0X3Qgdm9ycnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3M4KSkpCmludDh4MTZfdCB2b3JycV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfczgpKSkKaW50OHgxNl90IHZvcnJxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF91MTYpKSkKdWludDE2eDhfdCB2b3JycV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTE2KSkpCnVpbnQxNng4X3Qgdm9ycnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTMyKSkpCnVpbnQzMng0X3Qgdm9ycnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3UzMikpKQp1aW50MzJ4NF90IHZvcnJxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X3U4KSkpCnVpbnQ4eDE2X3Qgdm9ycnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfdTgpKSkKdWludDh4MTZfdCB2b3JycV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBub3QpKSkKbXZlX3ByZWQxNl90IHZwbm90KG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MxNikpKQppbnQxNng4X3QgdnBzZWxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczE2KSkpCmludDE2eDhfdCB2cHNlbHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3MzMikpKQppbnQzMng0X3QgdnBzZWxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczMyKSkpCmludDMyeDRfdCB2cHNlbHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3M2NCkpKQppbnQ2NHgyX3QgdnBzZWxxX3M2NChpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfczY0KSkpCmludDY0eDJfdCB2cHNlbHEoaW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3M4KSkpCmludDh4MTZfdCB2cHNlbHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3M4KSkpCmludDh4MTZfdCB2cHNlbHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UxNikpKQp1aW50MTZ4OF90IHZwc2VscV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTE2KSkpCnVpbnQxNng4X3QgdnBzZWxxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3UzMikpKQp1aW50MzJ4NF90IHZwc2VscV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTMyKSkpCnVpbnQzMng0X3QgdnBzZWxxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3U2NCkpKQp1aW50NjR4Ml90IHZwc2VscV91NjQodWludDY0eDJfdCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfdTY0KSkpCnVpbnQ2NHgyX3QgdnBzZWxxKHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3U4KSkpCnVpbnQ4eDE2X3QgdnBzZWxxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX3U4KSkpCnVpbnQ4eDE2X3QgdnBzZWxxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczE2KSkpCmludDE2eDhfdCB2cWFic3FfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX21fczE2KSkpCmludDE2eDhfdCB2cWFic3FfbShpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zMzIpKSkKaW50MzJ4NF90IHZxYWJzcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zMzIpKSkKaW50MzJ4NF90IHZxYWJzcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9tX3M4KSkpCmludDh4MTZfdCB2cWFic3FfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfbV9zOCkpKQppbnQ4eDE2X3QgdnFhYnNxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhYnNxX3MxNikpKQppbnQxNng4X3QgdnFhYnNxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zMTYpKSkKaW50MTZ4OF90IHZxYWJzcShpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zMzIpKSkKaW50MzJ4NF90IHZxYWJzcV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczMyKSkpCmludDMyeDRfdCB2cWFic3EoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFic3FfczgpKSkKaW50OHgxNl90IHZxYWJzcV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWJzcV9zOCkpKQppbnQ4eDE2X3QgdnFhYnNxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczE2KSkpCmludDE2eDhfdCB2cWFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFhZGRxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fczgpKSkKaW50OHgxNl90IHZxYWRkcV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWFkZHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cWFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFhZGRxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fbl91OCkpKQp1aW50OHgxNl90IHZxYWRkcV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3MxNikpKQppbnQxNng4X3QgdnFhZGRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3MzMikpKQppbnQzMng0X3QgdnFhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFhZGRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFhZGRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MTYpKSkKdWludDE2eDhfdCB2cWFkZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbV91MTYpKSkKdWludDE2eDhfdCB2cWFkZHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX21fdTgpKSkKdWludDh4MTZfdCB2cWFkZHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3MxNikpKQppbnQxNng4X3QgdnFhZGRxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczMyKSkpCmludDMyeDRfdCB2cWFkZHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxYWRkcShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3M4KSkpCmludDh4MTZfdCB2cWFkZHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fczgpKSkKaW50OHgxNl90IHZxYWRkcShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFhZGRxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91MTYpKSkKdWludDE2eDhfdCB2cWFkZHEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX25fdTMyKSkpCnVpbnQzMng0X3QgdnFhZGRxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfbl91OCkpKQp1aW50OHgxNl90IHZxYWRkcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV9zMTYpKSkKaW50MTZ4OF90IHZxYWRkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3MzMikpKQppbnQzMng0X3QgdnFhZGRxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3MzMikpKQppbnQzMng0X3QgdnFhZGRxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfczgpKSkKaW50OHgxNl90IHZxYWRkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3M4KSkpCmludDh4MTZfdCB2cWFkZHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MTYpKSkKdWludDE2eDhfdCB2cWFkZHFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxYWRkcV91MTYpKSkKdWludDE2eDhfdCB2cWFkZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3UzMikpKQp1aW50MzJ4NF90IHZxYWRkcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWFkZHFfdTgpKSkKdWludDh4MTZfdCB2cWFkZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFhZGRxX3U4KSkpCnVpbnQ4eDE2X3QgdnFhZGRxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtbGFkaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX21fczMyKSkpCmludDMyeDRfdCB2cWRtbGFkaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3M4KSkpCmludDh4MTZfdCB2cWRtbGFkaHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9tX3M4KSkpCmludDh4MTZfdCB2cWRtbGFkaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWRocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGhxX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRocV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWRoeHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtbGFkaHhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cWRtbGFkaHhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGh4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9tX3M4KSkpCmludDh4MTZfdCB2cWRtbGFkaHhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX21fczgpKSkKaW50OHgxNl90IHZxZG1sYWRoeHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWRoeHFfczE2KSkpCmludDE2eDhfdCB2cWRtbGFkaHhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3MxNikpKQppbnQxNng4X3QgdnFkbWxhZGh4cShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3MzMikpKQppbnQzMng0X3QgdnFkbWxhZGh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWRoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhZGh4cV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhZGh4cV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFkaHhxX3M4KSkpCmludDh4MTZfdCB2cWRtbGFkaHhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYWhxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFkbWxhaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCB2cWRtbGFocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9tX25fczgpKSkKaW50OHgxNl90IHZxZG1sYWhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3MxNikpKQppbnQxNng4X3QgdnFkbWxhaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczE2KSkpCmludDE2eDhfdCB2cWRtbGFocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYWhxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFocV9uX3MzMikpKQppbnQzMng0X3QgdnFkbWxhaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYWhxX25fczgpKSkKaW50OHgxNl90IHZxZG1sYWhxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYXNocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczE2KSkpCmludDE2eDhfdCB2cWRtbGFzaHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFkbWxhc2hxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxZG1sYXNocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9tX25fczgpKSkKaW50OHgxNl90IHZxZG1sYXNocV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWRtbGFzaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3MxNikpKQppbnQxNng4X3QgdnFkbWxhc2hxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxZG1sYXNocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczMyKSkpCmludDMyeDRfdCB2cWRtbGFzaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sYXNocV9uX3MzMikpKQppbnQzMng0X3QgdnFkbWxhc2hxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbGFzaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFkbWxhc2hxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxhc2hxX25fczgpKSkKaW50OHgxNl90IHZxZG1sYXNocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RocV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxzZGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxzZGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxzZGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxzZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczE2KSkpCmludDE2eDhfdCB2cWRtbHNkaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RocV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczgpKSkKaW50OHgxNl90IHZxZG1sc2RocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHFfczgpKSkKaW50OHgxNl90IHZxZG1sc2RocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX21fczE2KSkpCmludDE2eDhfdCB2cWRtbHNkaHhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFkbWxzZGh4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3MzMikpKQppbnQzMng0X3QgdnFkbWxzZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RoeHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxzZGh4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9tX3M4KSkpCmludDh4MTZfdCB2cWRtbHNkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtbHNkaHhxX3MxNikpKQppbnQxNng4X3QgdnFkbWxzZGh4cV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxZG1sc2RoeHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zMzIpKSkKaW50MzJ4NF90IHZxZG1sc2RoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczMyKSkpCmludDMyeDRfdCB2cWRtbHNkaHhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG1sc2RoeHFfczgpKSkKaW50OHgxNl90IHZxZG1sc2RoeHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbWxzZGh4cV9zOCkpKQppbnQ4eDE2X3QgdnFkbWxzZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczE2KSkpCmludDE2eDhfdCB2cWRtdWxocV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFkbXVsaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX25fczMyKSkpCmludDMyeDRfdCB2cWRtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cWRtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3MzMikpKQppbnQzMng0X3QgdnFkbXVsaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3MzMikpKQppbnQzMng0X3QgdnFkbXVsaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX21fczgpKSkKaW50OHgxNl90IHZxZG11bGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cWRtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxX25fczE2KGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGhxX3MxNikpKQppbnQxNng4X3QgdnFkbXVsaHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZxZG11bGhxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zMzIpKSkKaW50MzJ4NF90IHZxZG11bGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczMyKSkpCmludDMyeDRfdCB2cWRtdWxocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsaHFfczgpKSkKaW50OHgxNl90IHZxZG11bGhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxocV9zOCkpKQppbnQ4eDE2X3QgdnFkbXVsaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX25fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsYnFfbV9uX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbGJxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX21fbl9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicV9tX25fczMyKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsYnFfbShpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicV9tX3MxNihpbnQzMng0X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbGJxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicV9tX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9tX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbGJxX20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9uX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbGJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsYnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsYnFfbl9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGxicShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGxicV9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGxicShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbGJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbGJxX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbGJxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9uX3MxNikpKQppbnQzMng0X3QgdnFkbXVsbHRxX21fbl9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGx0cV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9tX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHFfbV9uX3MzMihpbnQ2NHgyX3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbHRxX20oaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHFfbV9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGx0cV9tKGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX21fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHFfbV9zMzIoaW50NjR4Ml90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGx0cV9tKGludDY0eDJfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX25fczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfbl9zMTYpKSkKaW50MzJ4NF90IHZxZG11bGx0cShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9uX3MzMikpKQppbnQ2NHgyX3QgdnFkbXVsbHRxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFkbXVsbHRxX25fczMyKSkpCmludDY0eDJfdCB2cWRtdWxsdHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cWRtdWxsdHFfczE2KSkpCmludDMyeDRfdCB2cWRtdWxsdHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGx0cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxZG11bGx0cV9zMzIpKSkKaW50NjR4Ml90IHZxZG11bGx0cShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV9zMTYpKSkKaW50OHgxNl90IHZxbW92bmJxX21fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fczE2KSkpCmludDh4MTZfdCB2cW1vdm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fczMyKSkpCmludDE2eDhfdCB2cW1vdm5icV9tX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3MzMikpKQppbnQxNng4X3QgdnFtb3ZuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9tX3UxNikpKQp1aW50OHgxNl90IHZxbW92bmJxX21fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV91MTYpKSkKdWludDh4MTZfdCB2cW1vdm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfbV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm5icV9tX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX21fdTMyKSkpCnVpbnQxNng4X3QgdnFtb3ZuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3MxNikpKQppbnQ4eDE2X3QgdnFtb3ZuYnFfczE2KGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9zMTYpKSkKaW50OHgxNl90IHZxbW92bmJxKGludDh4MTZfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV9zMzIpKSkKaW50MTZ4OF90IHZxbW92bmJxX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfczMyKSkpCmludDE2eDhfdCB2cW1vdm5icShpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZuYnFfdTE2KSkpCnVpbnQ4eDE2X3QgdnFtb3ZuYnFfdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3UxNikpKQp1aW50OHgxNl90IHZxbW92bmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bmJxX3UzMikpKQp1aW50MTZ4OF90IHZxbW92bmJxX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm5icV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3MxNikpKQppbnQ4eDE2X3QgdnFtb3ZudHFfbV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV9zMTYpKSkKaW50OHgxNl90IHZxbW92bnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV9zMzIpKSkKaW50MTZ4OF90IHZxbW92bnRxX21fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fczMyKSkpCmludDE2eDhfdCB2cW1vdm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX21fdTE2KSkpCnVpbnQ4eDE2X3QgdnFtb3ZudHFfbV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3UxNikpKQp1aW50OHgxNl90IHZxbW92bnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9tX3UzMikpKQp1aW50MTZ4OF90IHZxbW92bnRxX21fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfbV91MzIpKSkKdWludDE2eDhfdCB2cW1vdm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfczE2KSkpCmludDh4MTZfdCB2cW1vdm50cV9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3MxNikpKQppbnQ4eDE2X3QgdnFtb3ZudHEoaW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3MzMikpKQppbnQxNng4X3QgdnFtb3ZudHFfczMyKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV9zMzIpKSkKaW50MTZ4OF90IHZxbW92bnRxKGludDE2eDhfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW1vdm50cV91MTYpKSkKdWludDh4MTZfdCB2cW1vdm50cV91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfdTE2KSkpCnVpbnQ4eDE2X3QgdnFtb3ZudHEodWludDh4MTZfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3ZudHFfdTMyKSkpCnVpbnQxNng4X3QgdnFtb3ZudHFfdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92bnRxX3UzMikpKQp1aW50MTZ4OF90IHZxbW92bnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW5icV9tX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX21fczE2KSkpCnVpbnQ4eDE2X3QgdnFtb3Z1bmJxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9tX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW5icV9tX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX21fczMyKSkpCnVpbnQxNng4X3QgdnFtb3Z1bmJxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVuYnFfczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW5icSh1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW5icV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVuYnFfczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bmJxX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW5icSh1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW50cV9tX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX21fczE2KSkpCnVpbnQ4eDE2X3QgdnFtb3Z1bnRxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9tX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW50cV9tX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX21fczMyKSkpCnVpbnQxNng4X3QgdnFtb3Z1bnRxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMTYpKSkKdWludDh4MTZfdCB2cW1vdnVudHFfczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX3MxNikpKQp1aW50OHgxNl90IHZxbW92dW50cSh1aW50OHgxNl90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbW92dW50cV9zMzIpKSkKdWludDE2eDhfdCB2cW1vdnVudHFfczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFtb3Z1bnRxX3MzMikpKQp1aW50MTZ4OF90IHZxbW92dW50cSh1aW50MTZ4OF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MxNikpKQppbnQxNng4X3QgdnFuZWdxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9tX3MxNikpKQppbnQxNng4X3QgdnFuZWdxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczMyKSkpCmludDMyeDRfdCB2cW5lZ3FfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczMyKSkpCmludDMyeDRfdCB2cW5lZ3FfbShpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfbV9zOCkpKQppbnQ4eDE2X3QgdnFuZWdxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX21fczgpKSkKaW50OHgxNl90IHZxbmVncV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxbmVncV9zMTYpKSkKaW50MTZ4OF90IHZxbmVncV9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczE2KSkpCmludDE2eDhfdCB2cW5lZ3EoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczMyKSkpCmludDMyeDRfdCB2cW5lZ3FfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3MzMikpKQppbnQzMng0X3QgdnFuZWdxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFuZWdxX3M4KSkpCmludDh4MTZfdCB2cW5lZ3FfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cW5lZ3FfczgpKSkKaW50OHgxNl90IHZxbmVncShpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFkaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhZGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWRocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhZGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtbGFkaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHFfczE2KSkpCmludDE2eDhfdCB2cXJkbWxhZGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRocShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWRocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFkaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRocV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGhxX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhZGhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhZGh4cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhZGh4cV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFkaHhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFkaHhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhZGh4cV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRoeHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRoeHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFkaHhxX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWRoeHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczMyKSkpCmludDMyeDRfdCB2cXJkbWxhZGh4cShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhZGh4cV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWRoeHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWRoeHFfczgpKSkKaW50OHgxNl90IHZxcmRtbGFkaHhxKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhaHFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG1sYWhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFocV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYWhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFocV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG1sYWhxX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxhaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFocShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYWhxX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFocV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbWxhaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhc2hxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczE2KSkpCmludDE2eDhfdCB2cXJkbWxhc2hxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhc2hxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJkbWxhc2hxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFzaHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sYXNocV9tX25fczgpKSkKaW50OHgxNl90IHZxcmRtbGFzaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFzaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbGFzaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFzaHFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbGFzaHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYXNocV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbGFzaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sYXNocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbWxzZGhxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sc2RocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RocV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbHNkaHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sc2RocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9tX3M4KSkpCmludDh4MTZfdCB2cXJkbWxzZGhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGhxX3MxNikpKQppbnQxNng4X3QgdnFyZG1sc2RocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHEoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtbHNkaHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczMyKSkpCmludDMyeDRfdCB2cXJkbWxzZGhxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHFfczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RocV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sc2RocShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sc2RoeHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9tX3MxNikpKQppbnQxNng4X3QgdnFyZG1sc2RoeHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxzZGh4cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbWxzZGh4cV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFyZG1sc2RoeHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHhxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbWxzZGh4cV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtbHNkaHhxKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3MzMikpKQppbnQzMng0X3QgdnFyZG1sc2RoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG1sc2RoeHFfczgpKSkKaW50OHgxNl90IHZxcmRtbHNkaHhxX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtbHNkaHhxX3M4KSkpCmludDh4MTZfdCB2cXJkbWxzZGh4cShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyZG11bGhxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJkbXVsaHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG11bGhxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9tX25fczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczMyKSkpCmludDMyeDRfdCB2cXJkbXVsaHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxcmRtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX21fczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczE2KSkpCmludDE2eDhfdCB2cXJkbXVsaHFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocShpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxX25fczMyKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX25fczMyKSkpCmludDMyeDRfdCB2cXJkbXVsaHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyZG11bGhxX25fczgoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9uX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHEoaW50OHgxNl90LCBpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcmRtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZxcmRtdWxocShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3MzMikpKQppbnQzMng0X3QgdnFyZG11bGhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJkbXVsaHFfczgpKSkKaW50OHgxNl90IHZxcmRtdWxocV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyZG11bGhxX3M4KSkpCmludDh4MTZfdCB2cXJkbXVsaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFyc2hscV9tX25fczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxcnNobHFfbV9uKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxcnNobHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cXJzaGxxX21fbihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZxcnNobHFfbV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFyc2hscV9tX24oaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxcnNobHFfbV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxcnNobHFfbV9uKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscV9tX25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscV9tX24odWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZxcnNobHFfbV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxX21fbih1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxcnNobHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczE2KSkpCmludDE2eDhfdCB2cXJzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczMyKSkpCmludDMyeDRfdCB2cXJzaGxxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3MzMikpKQppbnQzMng0X3QgdnFyc2hscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3M4KSkpCmludDh4MTZfdCB2cXJzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fczgpKSkKaW50OHgxNl90IHZxcnNobHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgdnFyc2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgdnFyc2hscV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZxcnNobHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFyc2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX21fdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxcnNobHFfbl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczE2KSkpCmludDE2eDhfdCB2cXJzaGxxKGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9uX3MzMikpKQppbnQzMng0X3QgdnFyc2hscV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZxcnNobHEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fczgpKSkKaW50OHgxNl90IHZxcnNobHFfbl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl9zOCkpKQppbnQ4eDE2X3QgdnFyc2hscShpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxX25fdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cXJzaGxxKHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2cXJzaGxxX25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2cXJzaGxxKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfbl91OCkpKQp1aW50OHgxNl90IHZxcnNobHFfbl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2cXJzaGxxKHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczE2KSkpCmludDE2eDhfdCB2cXJzaGxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zMTYpKSkKaW50MTZ4OF90IHZxcnNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczMyKSkpCmludDMyeDRfdCB2cXJzaGxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV9zMzIpKSkKaW50MzJ4NF90IHZxcnNobHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczgpKSkKaW50OHgxNl90IHZxcnNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfczgpKSkKaW50OHgxNl90IHZxcnNobHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnFyc2hscV91MTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3UxNikpKQp1aW50MTZ4OF90IHZxcnNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3UzMikpKQp1aW50MzJ4NF90IHZxcnNobHFfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91MzIpKSkKdWludDMyeDRfdCB2cXJzaGxxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hscV91OCkpKQp1aW50OHgxNl90IHZxcnNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgdnFyc2hscSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2cXJzaHJuYnFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2cXJzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2cXJzaHJuYnFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2cXJzaHJuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hybmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFyc2hybmJxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFyc2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybmJxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybmJxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybmJxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm5icV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm5icV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCB2cXJzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCB2cXJzaHJudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2cXJzaHJudHFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2cXJzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hybnRxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hybnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFyc2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFyc2hybnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybnRxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnFyc2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybnRxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnFyc2hybnRxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IHZxcnNocm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm50cV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZxcnNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVuYnFfbV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX21fbl9zMTYpKSkKdWludDh4MTZfdCB2cXJzaHJ1bmJxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9tX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW5icV9tX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxcnNocnVuYnFfbSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hydW5icV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW5icV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVuYnEodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVuYnFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXJzaHJ1bmJxX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bmJxX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW5icSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hydW50cV9tX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxcnNocnVudHFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX21fbl9zMzIpKSkKdWludDE2eDhfdCB2cXJzaHJ1bnRxX21fbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9tX25fczMyKSkpCnVpbnQxNng4X3QgdnFyc2hydW50cV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbl9zMTYpKSkKdWludDh4MTZfdCB2cXJzaHJ1bnRxX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXJzaHJ1bnRxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFyc2hydW50cSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFyc2hydW50cV9uX3MzMikpKQp1aW50MTZ4OF90IHZxcnNocnVudHFfbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZxcnNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXJzaHJ1bnRxKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX21fbl9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX21fbihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cXNobHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cXNobHFfbV9uKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZxc2hscV9tX24oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV9tX24odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX21fbih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZxc2hscV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX25fdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbV9uKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX21fcl9zMTYoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczE2KSkpCmludDE2eDhfdCB2cXNobHFfbV9yKGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX21fcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfczMyKSkpCmludDMyeDRfdCB2cXNobHFfbV9yKGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3M4KSkpCmludDh4MTZfdCB2cXNobHFfbV9yX3M4KGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3M4KSkpCmludDh4MTZfdCB2cXNobHFfbV9yKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9yX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV9tX3JfdTE2KHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbV9yKHVpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfbV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX21fcih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3JfdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbV9yX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX21fcl91OCkpKQp1aW50OHgxNl90IHZxc2hscV9tX3IodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZxc2hscV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91MzIpKSkKdWludDMyeDRfdCB2cXNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91OCkpKQp1aW50OHgxNl90IHZxc2hscV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbV91OCkpKQp1aW50OHgxNl90IHZxc2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczE2KSkpCmludDE2eDhfdCB2cXNobHFfbihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczMyKSkpCmludDMyeDRfdCB2cXNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX24oaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3M4KSkpCmludDh4MTZfdCB2cXNobHFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fczgpKSkKaW50OHgxNl90IHZxc2hscV9uKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbl91MTYodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfbih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9uKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2cXNobHFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX24odWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMTYpKSkKaW50MTZ4OF90IHZxc2hscV9yX3MxNihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3MxNikpKQppbnQxNng4X3QgdnFzaGxxX3IoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9yX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3MzMikpKQppbnQzMng0X3QgdnFzaGxxX3IoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX3JfczgoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxX3IoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfcl91MTYpKSkKdWludDE2eDhfdCB2cXNobHFfcl91MTYodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX3IodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX3JfdTMyKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3UzMikpKQp1aW50MzJ4NF90IHZxc2hscV9yKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnFzaGxxX3JfdTgodWludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3JfdTgpKSkKdWludDh4MTZfdCB2cXNobHFfcih1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczE2KSkpCmludDE2eDhfdCB2cXNobHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfczE2KSkpCmludDE2eDhfdCB2cXNobHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zMzIpKSkKaW50MzJ4NF90IHZxc2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zMzIpKSkKaW50MzJ4NF90IHZxc2hscShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGxxX3M4KSkpCmludDh4MTZfdCB2cXNobHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV9zOCkpKQppbnQ4eDE2X3QgdnFzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTE2KSkpCnVpbnQxNng4X3QgdnFzaGxxX3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91MTYpKSkKdWludDE2eDhfdCB2cXNobHEodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTMyKSkpCnVpbnQzMng0X3QgdnFzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hscV91MzIpKSkKdWludDMyeDRfdCB2cXNobHEodWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTgpKSkKdWludDh4MTZfdCB2cXNobHFfdTgodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHFfdTgpKSkKdWludDh4MTZfdCB2cXNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zMTYpKSkKdWludDE2eDhfdCB2cXNobHVxX21fbl9zMTYodWludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczE2KSkpCnVpbnQxNng4X3QgdnFzaGx1cV9tKHVpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbV9uX3MzMikpKQp1aW50MzJ4NF90IHZxc2hsdXFfbV9uX3MzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zMzIpKSkKdWludDMyeDRfdCB2cXNobHVxX20odWludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9tX25fczgpKSkKdWludDh4MTZfdCB2cXNobHVxX21fbl9zOCh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX21fbl9zOCkpKQp1aW50OHgxNl90IHZxc2hsdXFfbSh1aW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczE2KSkpCnVpbnQxNng4X3QgdnFzaGx1cV9uX3MxNihpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3MxNikpKQp1aW50MTZ4OF90IHZxc2hsdXEoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hsdXFfbl9zMzIpKSkKdWludDMyeDRfdCB2cXNobHVxX25fczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczMyKSkpCnVpbnQzMng0X3QgdnFzaGx1cShpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaGx1cV9uX3M4KSkpCnVpbnQ4eDE2X3QgdnFzaGx1cV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNobHVxX25fczgpKSkKdWludDh4MTZfdCB2cXNobHVxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2cXNocm5icV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJuYnFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZxc2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2cXNocm5icV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZxc2hybmJxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnFzaHJuYnFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybmJxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fczE2KSkpCmludDh4MTZfdCB2cXNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJuYnEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZxc2hybmJxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fczMyKSkpCmludDE2eDhfdCB2cXNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZxc2hybmJxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm5icSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgdnFzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybmJxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJudHFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2cXNocm50cV9tX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJudHFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJudHFfbSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybnRxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX21fbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnFzaHJudHFfbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZxc2hybnRxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fczMyKSkpCmludDE2eDhfdCB2cXNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnFzaHJudHEoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2cXNocm50cV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hybnRxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZxc2hybnRxX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2cXNocm50cSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bmJxX21fbl9zMTYodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX21fbl9zMTYpKSkKdWludDh4MTZfdCB2cXNocnVuYnFfbSh1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW5icV9tX25fczMyKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9tX25fczMyKSkpCnVpbnQxNng4X3QgdnFzaHJ1bmJxX20odWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bmJxX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVuYnFfbl9zMTYpKSkKdWludDh4MTZfdCB2cXNocnVuYnEodWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW5icV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW5icV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bmJxX25fczMyKSkpCnVpbnQxNng4X3QgdnFzaHJ1bmJxKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW50cV9tX25fczE2KHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9tX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bnRxX20odWludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX21fbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVudHFfbV9uX3MzMih1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW50cV9tKHVpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9uX3MxNikpKQp1aW50OHgxNl90IHZxc2hydW50cV9uX3MxNih1aW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzaHJ1bnRxX25fczE2KSkpCnVpbnQ4eDE2X3QgdnFzaHJ1bnRxKHVpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXNocnVudHFfbl9zMzIpKSkKdWludDE2eDhfdCB2cXNocnVudHFfbl9zMzIodWludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc2hydW50cV9uX3MzMikpKQp1aW50MTZ4OF90IHZxc2hydW50cSh1aW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZxc3VicV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczE2KSkpCmludDE2eDhfdCB2cXN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgdnFzdWJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZxc3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fczgpKSkKaW50OHgxNl90IHZxc3VicV9tX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3M4KSkpCmludDh4MTZfdCB2cXN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cXN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnFzdWJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IHZxc3VicV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMTYpKSkKaW50MTZ4OF90IHZxc3VicV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3MxNikpKQppbnQxNng4X3QgdnFzdWJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zMzIpKSkKaW50MzJ4NF90IHZxc3VicV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3MzMikpKQppbnQzMng0X3QgdnFzdWJxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgdnFzdWJxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgdnFzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MTYpKSkKdWludDE2eDhfdCB2cXN1YnFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbV91MTYpKSkKdWludDE2eDhfdCB2cXN1YnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX21fdTgpKSkKdWludDh4MTZfdCB2cXN1YnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zMTYpKSkKaW50MTZ4OF90IHZxc3VicV9uX3MxNihpbnQxNng4X3QsIGludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3MxNikpKQppbnQxNng4X3QgdnFzdWJxKGludDE2eDhfdCwgaW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczMyKSkpCmludDMyeDRfdCB2cXN1YnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl9zMzIpKSkKaW50MzJ4NF90IHZxc3VicShpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3M4KSkpCmludDh4MTZfdCB2cXN1YnFfbl9zOChpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fczgpKSkKaW50OHgxNl90IHZxc3VicShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnFzdWJxX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91MTYpKSkKdWludDE2eDhfdCB2cXN1YnEodWludDE2eDhfdCwgdWludDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnFzdWJxKHVpbnQzMng0X3QsIHVpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfbl91OCkpKQp1aW50OHgxNl90IHZxc3VicV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMTYpKSkKaW50MTZ4OF90IHZxc3VicV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV9zMTYpKSkKaW50MTZ4OF90IHZxc3VicShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3MzMikpKQppbnQzMng0X3QgdnFzdWJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3MzMikpKQppbnQzMng0X3QgdnFzdWJxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfczgpKSkKaW50OHgxNl90IHZxc3VicV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3M4KSkpCmludDh4MTZfdCB2cXN1YnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MTYpKSkKdWludDE2eDhfdCB2cXN1YnFfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zxc3VicV91MTYpKSkKdWludDE2eDhfdCB2cXN1YnEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3UzMikpKQp1aW50MzJ4NF90IHZxc3VicSh1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cXN1YnFfdTgpKSkKdWludDh4MTZfdCB2cXN1YnFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnFzdWJxX3U4KSkpCnVpbnQ4eDE2X3QgdnFzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3MzMikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczMyKSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3M2NCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfczY0KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3M4KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3M4KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UxNikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3UxNikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTMyKSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfdTMyKSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91NjQpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91NjQpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X3U4KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl91OCkpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zMTYpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczY0KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9zNjQpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczgpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfczgpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91MzIpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl91MzIpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U2NCkpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U2NCkpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzIodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfdTgpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX3U4KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMih1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3MxNikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zMzIpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3MzMikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zOCkpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9zOCkpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91MTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3UzMikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X3UzMikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjQodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTY0KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTY0KSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF91OCkpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfdTgpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczE2KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfczE2KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zMzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9zMzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3M2NCkpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3M2NCkpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTE2KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3UxNikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOCh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X3UzMikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91MzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91MzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczgodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91NjQpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTY0KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTY0KSkpCmludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4KHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczhfdTgpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF91OCkpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMTYpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMTYoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zMTYpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3MzMikpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3MzMikpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2KGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczY0KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczY0KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9zOCkpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3M4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfczgpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNihpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTE2X3UzMikpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91MzIpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91NjQpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl91NjQodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTY0KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTYodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfdTgpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl91OCkpKQp1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MxNikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3MxNikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczMyKSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczMyKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfczMyKSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zNjQpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zNjQpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMihpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3M4KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9zOCkpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfdTE2KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3UxNikpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3U2NCkpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91NjQpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMih1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl91OCkpKQp1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3U4KHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTMyX3U4KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzIodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zMzIpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9zMzIpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NChpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3M2NCkpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3M2NChpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3M2NCkpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0KGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfczgpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3M4KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF91MTYpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjQodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTMyKSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3UzMikpKQp1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0KHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdTY0X3U4KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfdTgpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3MxNikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zMTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9zMzIpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczMyKSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OChpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczY0KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M2NCkpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3M4KSkpCnVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfdThfczgpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3UxNikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91MzIpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3UzMikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF91NjQpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X3U2NCkpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9tX3M4KSkpCmludDh4MTZfdCB2cmV2MTZxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9tX3M4KSkpCmludDh4MTZfdCB2cmV2MTZxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjE2cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjE2cV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV9zOCkpKQppbnQ4eDE2X3QgdnJldjE2cV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfczgpKSkKaW50OHgxNl90IHZyZXYxNnEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjE2cV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjE2cSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MTZxX3hfczgpKSkKaW50OHgxNl90IHZyZXYxNnFfeF9zOChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjE2cV94X3M4KSkpCmludDh4MTZfdCB2cmV2MTZxX3goaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfeF91OCkpKQp1aW50OHgxNl90IHZyZXYxNnFfeF91OCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYxNnFfeF91OCkpKQp1aW50OHgxNl90IHZyZXYxNnFfeCh1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9zMTYpKSkKaW50MTZ4OF90IHZyZXYzMnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3MxNikpKQppbnQxNng4X3QgdnJldjMycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjMycV9tX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9zOCkpKQppbnQ4eDE2X3QgdnJldjMycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV91MTYpKSkKdWludDE2eDhfdCB2cmV2MzJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9tX3UxNikpKQp1aW50MTZ4OF90IHZyZXYzMnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV91OCkpKQp1aW50OHgxNl90IHZyZXYzMnFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV91OCkpKQp1aW50OHgxNl90IHZyZXYzMnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfczE2KSkpCmludDE2eDhfdCB2cmV2MzJxX3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfczE2KSkpCmludDE2eDhfdCB2cmV2MzJxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV9zOCkpKQppbnQ4eDE2X3QgdnJldjMycV9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfczgpKSkKaW50OHgxNl90IHZyZXYzMnEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3UxNikpKQp1aW50MTZ4OF90IHZyZXYzMnFfdTE2KHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfdTE2KSkpCnVpbnQxNng4X3QgdnJldjMycSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjMycV91OCh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjMycSh1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfczE2KSkpCmludDE2eDhfdCB2cmV2MzJxX3hfczE2KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfczE2KSkpCmludDE2eDhfdCB2cmV2MzJxX3goaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfeF9zOCkpKQppbnQ4eDE2X3QgdnJldjMycV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfczgpKSkKaW50OHgxNl90IHZyZXYzMnFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3UxNikpKQp1aW50MTZ4OF90IHZyZXYzMnFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnJldjMycV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJldjMycV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJldjMycV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MxNikpKQppbnQxNng4X3QgdnJldjY0cV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczE2KSkpCmludDE2eDhfdCB2cmV2NjRxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3MzMikpKQppbnQzMng0X3QgdnJldjY0cV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fczMyKSkpCmludDMyeDRfdCB2cmV2NjRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3M4KSkpCmludDh4MTZfdCB2cmV2NjRxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3M4KSkpCmludDh4MTZfdCB2cmV2NjRxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UxNikpKQp1aW50MTZ4OF90IHZyZXY2NHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTE2KSkpCnVpbnQxNng4X3QgdnJldjY0cV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3UzMikpKQp1aW50MzJ4NF90IHZyZXY2NHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fdTMyKSkpCnVpbnQzMng0X3QgdnJldjY0cV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjY0cV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJldjY0cV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMTYpKSkKaW50MTZ4OF90IHZyZXY2NHFfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9zMTYpKSkKaW50MTZ4OF90IHZyZXY2NHEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3MzMikpKQppbnQzMng0X3QgdnJldjY0cV9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3MzMikpKQppbnQzMng0X3QgdnJldjY0cShpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfczgpKSkKaW50OHgxNl90IHZyZXY2NHFfczgoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3M4KSkpCmludDh4MTZfdCB2cmV2NjRxKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MTYpKSkKdWludDE2eDhfdCB2cmV2NjRxX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3UxNikpKQp1aW50MTZ4OF90IHZyZXY2NHEodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91MzIpKSkKdWludDMyeDRfdCB2cmV2NjRxX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3UzMikpKQp1aW50MzJ4NF90IHZyZXY2NHEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91OCkpKQp1aW50OHgxNl90IHZyZXY2NHFfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV91OCkpKQp1aW50OHgxNl90IHZyZXY2NHEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MxNikpKQppbnQxNng4X3QgdnJldjY0cV94X3MxNihpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3MxNikpKQppbnQxNng4X3QgdnJldjY0cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczMyKSkpCmludDMyeDRfdCB2cmV2NjRxX3hfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczMyKSkpCmludDMyeDRfdCB2cmV2NjRxX3goaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJldjY0cV94X3M4KGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfczgpKSkKaW50OHgxNl90IHZyZXY2NHFfeChpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UxNikpKQp1aW50MTZ4OF90IHZyZXY2NHFfeF91MTYodWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnJldjY0cV94KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3UzMikpKQp1aW50MzJ4NF90IHZyZXY2NHFfeF91MzIodWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnJldjY0cV94KHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJldjY0cV94X3U4KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJldjY0cV94KHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3MxNikpKQppbnQxNng4X3QgdnJoYWRkcV9tX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zMTYpKSkKaW50MTZ4OF90IHZyaGFkZHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zMzIpKSkKaW50MzJ4NF90IHZyaGFkZHFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczMyKSkpCmludDMyeDRfdCB2cmhhZGRxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fczgpKSkKaW50OHgxNl90IHZyaGFkZHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyaGFkZHFfbV9zOCkpKQppbnQ4eDE2X3QgdnJoYWRkcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UxNikpKQp1aW50MTZ4OF90IHZyaGFkZHFfbV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTE2KSkpCnVpbnQxNng4X3QgdnJoYWRkcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3UzMikpKQp1aW50MzJ4NF90IHZyaGFkZHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX21fdTMyKSkpCnVpbnQzMng0X3QgdnJoYWRkcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJoYWRkcV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJoYWRkcV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMTYpKSkKaW50MTZ4OF90IHZyaGFkZHFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3MxNikpKQppbnQxNng4X3QgdnJoYWRkcShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zMzIpKSkKaW50MzJ4NF90IHZyaGFkZHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3MzMikpKQppbnQzMng0X3QgdnJoYWRkcShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zOCkpKQppbnQ4eDE2X3QgdnJoYWRkcV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV9zOCkpKQppbnQ4eDE2X3QgdnJoYWRkcShpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MTYpKSkKdWludDE2eDhfdCB2cmhhZGRxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3UxNikpKQp1aW50MTZ4OF90IHZyaGFkZHEodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91MzIpKSkKdWludDMyeDRfdCB2cmhhZGRxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3UzMikpKQp1aW50MzJ4NF90IHZyaGFkZHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91OCkpKQp1aW50OHgxNl90IHZyaGFkZHFfdTgodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV91OCkpKQp1aW50OHgxNl90IHZyaGFkZHEodWludDh4MTZfdCwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MxNikpKQppbnQxNng4X3QgdnJoYWRkcV94X3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczE2KSkpCmludDE2eDhfdCB2cmhhZGRxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3MzMikpKQppbnQzMng0X3QgdnJoYWRkcV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfczMyKSkpCmludDMyeDRfdCB2cmhhZGRxX3goaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3M4KSkpCmludDh4MTZfdCB2cmhhZGRxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3M4KSkpCmludDh4MTZfdCB2cmhhZGRxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UxNikpKQp1aW50MTZ4OF90IHZyaGFkZHFfeF91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnJoYWRkcV94KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3UzMikpKQp1aW50MzJ4NF90IHZyaGFkZHFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmhhZGRxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnJoYWRkcV94KHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJoYWRkcV94X3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJoYWRkcV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJoYWRkcV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3BfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGFxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhhcV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9wX3UzMikpKQp1aW50NjRfdCB2cm1sYWxkYXZoYXFfcF91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aGFxX3BfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhhcV9wKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZoYXFfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGFxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXFfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhhcV91MzIodWludDY0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhhcV91MzIpKSkKdWludDY0X3QgdnJtbGFsZGF2aGFxKHVpbnQ2NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGF4cV9wX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoYXhxX3BfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGF4cV9wKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhheHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGF4cV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmhheHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aGF4cShpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZocV9wX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfcF91MzIpKSkKdWludDY0X3QgdnJtbGFsZGF2aHFfcF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9wX3UzMikpKQp1aW50NjRfdCB2cm1sYWxkYXZocV9wKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZocShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHFfdTMyKSkpCnVpbnQ2NF90IHZybWxhbGRhdmhxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZocV91MzIpKSkKdWludDY0X3QgdnJtbGFsZGF2aHEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbGFsZGF2aHhxX3BfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmh4cV9wX3MzMikpKQppbnQ2NF90IHZybWxhbGRhdmh4cV9wKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxhbGRhdmh4cV9zMzIpKSkKaW50NjRfdCB2cm1sYWxkYXZoeHFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sYWxkYXZoeHFfczMyKSkpCmludDY0X3QgdnJtbGFsZGF2aHhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoYXFfcF9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXFfcF9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGFxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aGFxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGFxX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmhhcV9zMzIoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhhcV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXEoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXhxX3BfczMyKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhheHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXhxX3AoaW50NjRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGF4cV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXhxX3MzMihpbnQ2NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aGF4cV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoYXhxKGludDY0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9wX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmhxX3BfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aHFfcChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZocV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZocV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmhxX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmhxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm1sc2xkYXZoeHFfcF9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoeHFfcF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHhxX3BfczMyKSkpCmludDY0X3QgdnJtbHNsZGF2aHhxX3AoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtbHNsZGF2aHhxX3MzMikpKQppbnQ2NF90IHZybWxzbGRhdmh4cV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybWxzbGRhdmh4cV9zMzIpKSkKaW50NjRfdCB2cm1sc2xkYXZoeHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV9zMTYpKSkKaW50MTZ4OF90IHZybXVsaHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczE2KSkpCmludDE2eDhfdCB2cm11bGhxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczMyKSkpCmludDMyeDRfdCB2cm11bGhxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3MzMikpKQppbnQzMng0X3QgdnJtdWxocV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3M4KSkpCmludDh4MTZfdCB2cm11bGhxX21fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm11bGhxX21fczgpKSkKaW50OHgxNl90IHZybXVsaHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MTYpKSkKdWludDE2eDhfdCB2cm11bGhxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3UxNikpKQp1aW50MTZ4OF90IHZybXVsaHFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91MzIpKSkKdWludDMyeDRfdCB2cm11bGhxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9tX3UzMikpKQp1aW50MzJ4NF90IHZybXVsaHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91OCkpKQp1aW50OHgxNl90IHZybXVsaHFfbV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfbV91OCkpKQp1aW50OHgxNl90IHZybXVsaHFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczE2KSkpCmludDE2eDhfdCB2cm11bGhxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zMTYpKSkKaW50MTZ4OF90IHZybXVsaHEoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczMyKSkpCmludDMyeDRfdCB2cm11bGhxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV9zMzIpKSkKaW50MzJ4NF90IHZybXVsaHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczgpKSkKaW50OHgxNl90IHZybXVsaHFfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfczgpKSkKaW50OHgxNl90IHZybXVsaHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTE2KSkpCnVpbnQxNng4X3QgdnJtdWxocV91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91MTYpKSkKdWludDE2eDhfdCB2cm11bGhxKHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTMyKSkpCnVpbnQzMng0X3QgdnJtdWxocV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV91MzIpKSkKdWludDMyeDRfdCB2cm11bGhxKHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTgpKSkKdWludDh4MTZfdCB2cm11bGhxX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfdTgpKSkKdWludDh4MTZfdCB2cm11bGhxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMTYpKSkKaW50MTZ4OF90IHZybXVsaHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3MxNikpKQppbnQxNng4X3QgdnJtdWxocV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zMzIpKSkKaW50MzJ4NF90IHZybXVsaHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3MzMikpKQppbnQzMng0X3QgdnJtdWxocV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJtdWxocV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJtdWxocV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MTYpKSkKdWludDE2eDhfdCB2cm11bGhxX3hfdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3UxNikpKQp1aW50MTZ4OF90IHZybXVsaHFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91MzIpKSkKdWludDMyeDRfdCB2cm11bGhxX3hfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJtdWxocV94X3UzMikpKQp1aW50MzJ4NF90IHZybXVsaHFfeCh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91OCkpKQp1aW50OHgxNl90IHZybXVsaHFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybXVsaHFfeF91OCkpKQp1aW50OHgxNl90IHZybXVsaHFfeCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczE2KSkpCmludDE2eDhfdCB2cnNobHFfbV9uX3MxNihpbnQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV9tX24oaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczMyKSkpCmludDMyeDRfdCB2cnNobHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hscV9tX24oaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZyc2hscV9tX25fczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fczgpKSkKaW50OHgxNl90IHZyc2hscV9tX24oaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaGxxX21fbl91MTYodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV9tX24odWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV9tX25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cnNobHFfbV9uKHVpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZyc2hscV9tX25fdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxX21fbih1aW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MxNikpKQppbnQxNng4X3QgdnJzaGxxX21fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczE2KSkpCmludDE2eDhfdCB2cnNobHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3MzMikpKQppbnQzMng0X3QgdnJzaGxxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fczMyKSkpCmludDMyeDRfdCB2cnNobHFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3M4KSkpCmludDh4MTZfdCB2cnNobHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3M4KSkpCmludDh4MTZfdCB2cnNobHFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV9tX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTE2KSkpCnVpbnQxNng4X3QgdnJzaGxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgdnJzaGxxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3MxNikpKQppbnQxNng4X3QgdnJzaGxxX25fczE2KGludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczE2KSkpCmludDE2eDhfdCB2cnNobHEoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hscV9uX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3MzMikpKQppbnQzMng0X3QgdnJzaGxxKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczgpKSkKaW50OHgxNl90IHZyc2hscV9uX3M4KGludDh4MTZfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fczgpKSkKaW50OHgxNl90IHZyc2hscShpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV9uX3UxNih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2cnNobHEodWludDE2eDhfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaGxxX25fdTMyKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscSh1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfbl91OCkpKQp1aW50OHgxNl90IHZyc2hscV9uX3U4KHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxKHVpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMTYpKSkKaW50MTZ4OF90IHZyc2hscV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV9zMTYpKSkKaW50MTZ4OF90IHZyc2hscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3MzMikpKQppbnQzMng0X3QgdnJzaGxxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3MzMikpKQppbnQzMng0X3QgdnJzaGxxKGludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfczgpKSkKaW50OHgxNl90IHZyc2hscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3M4KSkpCmludDh4MTZfdCB2cnNobHEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MTYpKSkKdWludDE2eDhfdCB2cnNobHFfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3UxNikpKQp1aW50MTZ4OF90IHZyc2hscSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91MzIpKSkKdWludDMyeDRfdCB2cnNobHFfdTMyKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3UzMikpKQp1aW50MzJ4NF90IHZyc2hscSh1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91OCkpKQp1aW50OHgxNl90IHZyc2hscV91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV91OCkpKQp1aW50OHgxNl90IHZyc2hscSh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MxNikpKQppbnQxNng4X3QgdnJzaGxxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3MxNikpKQppbnQxNng4X3QgdnJzaGxxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczMyKSkpCmludDMyeDRfdCB2cnNobHFfeF9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczMyKSkpCmludDMyeDRfdCB2cnNobHFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNobHFfeF9zOCkpKQppbnQ4eDE2X3QgdnJzaGxxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfczgpKSkKaW50OHgxNl90IHZyc2hscV94KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UxNikpKQp1aW50MTZ4OF90IHZyc2hscV94X3UxNih1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnJzaGxxX3godWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3UzMikpKQp1aW50MzJ4NF90IHZyc2hscV94X3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaGxxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnJzaGxxX3godWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxX3hfdTgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hscV94X3U4KSkpCnVpbnQ4eDE2X3QgdnJzaGxxX3godWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IHZyc2hybmJxX21fbl9zMTYoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fczE2KSkpCmludDh4MTZfdCB2cnNocm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3MzMikpKQppbnQxNng4X3QgdnJzaHJuYnFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybmJxX20oaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnJzaHJuYnFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybmJxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCB2cnNocm5icV9tX25fdTMyKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl9zMTYpKSkKaW50OHgxNl90IHZyc2hybmJxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fczE2KSkpCmludDh4MTZfdCB2cnNocm5icShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgdnJzaHJuYnFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybmJxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnJzaHJuYnFfbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm5icV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJuYnFfbl91MzIpKSkKdWludDE2eDhfdCB2cnNocm5icV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJuYnEodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCB2cnNocm50cV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJudHFfbShpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybnRxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fczMyKSkpCmludDE2eDhfdCB2cnNocm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybnRxX21fbl91MTYodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm50cV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJudHFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybnRxX20odWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fczE2KSkpCmludDh4MTZfdCB2cnNocm50cV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3MxNikpKQppbnQ4eDE2X3QgdnJzaHJudHEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl9zMzIpKSkKaW50MTZ4OF90IHZyc2hybnRxX25fczMyKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fczMyKSkpCmludDE2eDhfdCB2cnNocm50cShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IHZyc2hybnRxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2cnNocm50cSh1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgdnJzaHJudHFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocm50cV9uX3UzMikpKQp1aW50MTZ4OF90IHZyc2hybnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hycV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hycV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hycV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hycV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnJzaHJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fczgpKSkKaW50OHgxNl90IHZyc2hycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cnNocnFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2cnNocnFfbSh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cnNocnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2cnNocnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX21fbl91OCkpKQp1aW50OHgxNl90IHZyc2hycV9tX25fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9tX25fdTgpKSkKdWludDh4MTZfdCB2cnNocnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczE2KSkpCmludDE2eDhfdCB2cnNocnFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3MxNikpKQppbnQxNng4X3QgdnJzaHJxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hycV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczMyKSkpCmludDMyeDRfdCB2cnNocnEoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3M4KSkpCmludDh4MTZfdCB2cnNocnFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fczgpKSkKaW50OHgxNl90IHZyc2hycShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnJzaHJxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxX25fdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTMyKSkpCnVpbnQzMng0X3QgdnJzaHJxKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX25fdTgpKSkKdWludDh4MTZfdCB2cnNocnFfbl91OCh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnJzaHJxKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZyc2hycV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczE2KSkpCmludDE2eDhfdCB2cnNocnFfeChpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cnNocnFfeF9uX3MzMikpKQppbnQzMng0X3QgdnJzaHJxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZyc2hycV94KGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fczgpKSkKaW50OHgxNl90IHZyc2hycV94X25fczgoaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdnJzaHJxX3goaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2cnNocnFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2cnNocnFfeCh1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2cnNocnFfeF9uX3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2cnNocnFfeCh1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJzaHJxX3hfbl91OCkpKQp1aW50OHgxNl90IHZyc2hycV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zyc2hycV94X25fdTgpKSkKdWludDh4MTZfdCB2cnNocnFfeCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX21fczMyKSkpCmludDMyeDRfdCB2c2JjaXFfbV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfbV9zMzIpKSkKaW50MzJ4NF90IHZzYmNpcV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNiY2lxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY2lxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNiY2lxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfczMyKSkpCmludDMyeDRfdCB2c2JjaXFfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjaXFfczMyKSkpCmludDMyeDRfdCB2c2JjaXEoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV91MzIpKSkKdWludDMyeDRfdCB2c2JjaXFfdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNpcV91MzIpKSkKdWludDMyeDRfdCB2c2JjaXEodWludDMyeDRfdCwgdWludDMyeDRfdCwgdW5zaWduZWQgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfbV9zMzIpKSkKaW50MzJ4NF90IHZzYmNxX21fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfbV9zMzIpKSkKaW50MzJ4NF90IHZzYmNxX20oaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyeDRfdCwgdW5zaWduZWQgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV9tX3UzMikpKQp1aW50MzJ4NF90IHZzYmNxX21fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfbV91MzIpKSkKdWludDMyeDRfdCB2c2JjcV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVuc2lnbmVkICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNiY3FfczMyKSkpCmludDMyeDRfdCB2c2JjcV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX3MzMikpKQppbnQzMng0X3QgdnNiY3EoaW50MzJ4NF90LCBpbnQzMng0X3QsIHVuc2lnbmVkICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzYmNxX3UzMikpKQp1aW50MzJ4NF90IHZzYmNxX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2JjcV91MzIpKSkKdWludDMyeDRfdCB2c2JjcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1bnNpZ25lZCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MxNikpKQppbnQxNng4X3QgdnNldHFfbGFuZV9zMTYoaW50MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczE2KSkpCmludDE2eDhfdCB2c2V0cV9sYW5lKGludDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3MzMikpKQppbnQzMng0X3QgdnNldHFfbGFuZV9zMzIoaW50MzJfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczMyKSkpCmludDMyeDRfdCB2c2V0cV9sYW5lKGludDMyX3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M2NCkpKQppbnQ2NHgyX3QgdnNldHFfbGFuZV9zNjQoaW50NjRfdCwgaW50NjR4Ml90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczY0KSkpCmludDY0eDJfdCB2c2V0cV9sYW5lKGludDY0X3QsIGludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3M4KSkpCmludDh4MTZfdCB2c2V0cV9sYW5lX3M4KGludDhfdCwgaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfczgpKSkKaW50OHgxNl90IHZzZXRxX2xhbmUoaW50OF90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MTYpKSkKdWludDE2eDhfdCB2c2V0cV9sYW5lX3UxNih1aW50MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3UxNikpKQp1aW50MTZ4OF90IHZzZXRxX2xhbmUodWludDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91MzIpKSkKdWludDMyeDRfdCB2c2V0cV9sYW5lX3UzMih1aW50MzJfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3UzMikpKQp1aW50MzJ4NF90IHZzZXRxX2xhbmUodWludDMyX3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91NjQpKSkKdWludDY0eDJfdCB2c2V0cV9sYW5lX3U2NCh1aW50NjRfdCwgdWludDY0eDJfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3U2NCkpKQp1aW50NjR4Ml90IHZzZXRxX2xhbmUodWludDY0X3QsIHVpbnQ2NHgyX3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV91OCkpKQp1aW50OHgxNl90IHZzZXRxX2xhbmVfdTgodWludDhfdCwgdWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2V0cV9sYW5lX3U4KSkpCnVpbnQ4eDE2X3QgdnNldHFfbGFuZSh1aW50OF90LCB1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MxNikpKQppbnQxNng4X3QgdnNobGNxX21fczE2KGludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3MxNikpKQppbnQxNng4X3QgdnNobGNxX20oaW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczMyKSkpCmludDMyeDRfdCB2c2hsY3FfbV9zMzIoaW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczMyKSkpCmludDMyeDRfdCB2c2hsY3FfbShpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfbV9zOCkpKQppbnQ4eDE2X3QgdnNobGNxX21fczgoaW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fczgpKSkKaW50OHgxNl90IHZzaGxjcV9tKGludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UxNikpKQp1aW50MTZ4OF90IHZzaGxjcV9tX3UxNih1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTE2KSkpCnVpbnQxNng4X3QgdnNobGNxX20odWludDE2eDhfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3UzMikpKQp1aW50MzJ4NF90IHZzaGxjcV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNobGNxX20odWludDMyeDRfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnNobGNxX21fdTgodWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9tX3U4KSkpCnVpbnQ4eDE2X3QgdnNobGNxX20odWludDh4MTZfdCwgdWludDMyX3QgKiwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMTYpKSkKaW50MTZ4OF90IHZzaGxjcV9zMTYoaW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV9zMTYpKSkKaW50MTZ4OF90IHZzaGxjcShpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3MzMikpKQppbnQzMng0X3QgdnNobGNxX3MzMihpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3MzMikpKQppbnQzMng0X3QgdnNobGNxKGludDMyeDRfdCwgdWludDMyX3QgKiwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsY3FfczgpKSkKaW50OHgxNl90IHZzaGxjcV9zOChpbnQ4eDE2X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3M4KSkpCmludDh4MTZfdCB2c2hsY3EoaW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MTYpKSkKdWludDE2eDhfdCB2c2hsY3FfdTE2KHVpbnQxNng4X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3UxNikpKQp1aW50MTZ4OF90IHZzaGxjcSh1aW50MTZ4OF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91MzIpKSkKdWludDMyeDRfdCB2c2hsY3FfdTMyKHVpbnQzMng0X3QsIHVpbnQzMl90ICosIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGNxX3UzMikpKQp1aW50MzJ4NF90IHZzaGxjcSh1aW50MzJ4NF90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91OCkpKQp1aW50OHgxNl90IHZzaGxjcV91OCh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxjcV91OCkpKQp1aW50OHgxNl90IHZzaGxjcSh1aW50OHgxNl90LCB1aW50MzJfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicV9tX25fczE2KGludDMyeDRfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fczE2KSkpCmludDMyeDRfdCB2c2hsbGJxX20oaW50MzJ4NF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl9zOCkpKQppbnQxNng4X3QgdnNobGxicV9tX25fczgoaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl9zOCkpKQppbnQxNng4X3QgdnNobGxicV9tKGludDE2eDhfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9tX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGxicV9tX25fdTE2KHVpbnQzMng0X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX21fbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbGJxX20odWludDMyeDRfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGxicV9tX25fdTgodWludDE2eDhfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGxicV9tKHVpbnQxNng4X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fczE2KSkpCmludDMyeDRfdCB2c2hsbGJxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fczE2KSkpCmludDMyeDRfdCB2c2hsbGJxKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fczgpKSkKaW50MTZ4OF90IHZzaGxsYnFfbl9zOChpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3M4KSkpCmludDE2eDhfdCB2c2hsbGJxKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGxicV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbGJxKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGxicV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGxicSh1aW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3MxNikpKQppbnQzMng0X3QgdnNobGxicV94KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3M4KSkpCmludDE2eDhfdCB2c2hsbGJxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl9zOCkpKQppbnQxNng4X3QgdnNobGxicV94KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsYnFfeF9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsYnFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGxicV94X25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGxicV94KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnFfeF9uX3U4KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbGJxX3hfbl91OCkpKQp1aW50MTZ4OF90IHZzaGxsYnFfeCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxX21fbl9zMTYoaW50MzJ4NF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsdHFfbShpbnQzMng0X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3M4KSkpCmludDE2eDhfdCB2c2hsbHRxX21fbl9zOChpbnQxNng4X3QsIGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3M4KSkpCmludDE2eDhfdCB2c2hsbHRxX20oaW50MTZ4OF90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX21fbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbHRxX21fbl91MTYodWludDMyeDRfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbV9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsdHFfbSh1aW50MzJ4NF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fdTgpKSkKdWludDE2eDhfdCB2c2hsbHRxX21fbl91OCh1aW50MTZ4OF90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9tX25fdTgpKSkKdWludDE2eDhfdCB2c2hsbHRxX20odWludDE2eDhfdCwgdWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsdHFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl9zMTYpKSkKaW50MzJ4NF90IHZzaGxsdHEoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl9zOCkpKQppbnQxNng4X3QgdnNobGx0cV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fczgpKSkKaW50MTZ4OF90IHZzaGxsdHEoaW50OHgxNl90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbHRxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV9uX3UxNikpKQp1aW50MzJ4NF90IHZzaGxsdHEodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fdTgpKSkKdWludDE2eDhfdCB2c2hsbHRxX25fdTgodWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX25fdTgpKSkKdWludDE2eDhfdCB2c2hsbHRxKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fczE2KSkpCmludDMyeDRfdCB2c2hsbHRxX3goaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fczgpKSkKaW50MTZ4OF90IHZzaGxsdHFfeF9uX3M4KGludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3M4KSkpCmludDE2eDhfdCB2c2hsbHRxX3goaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobGx0cV94X25fdTE2KSkpCnVpbnQzMng0X3QgdnNobGx0cV94X25fdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hsbHRxX3hfbl91MTYpKSkKdWludDMyeDRfdCB2c2hsbHRxX3godWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cV94X25fdTgodWludDh4MTZfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxsdHFfeF9uX3U4KSkpCnVpbnQxNng4X3QgdnNobGx0cV94KHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fczE2KSkpCmludDE2eDhfdCB2c2hscV9tX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3MxNikpKQppbnQxNng4X3QgdnNobHFfbV9uKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNobHFfbV9uX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX21fbihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3M4KSkpCmludDh4MTZfdCB2c2hscV9tX24oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX25fdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfbV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX21fbih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX21fbl91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c2hscV9tX24odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fbl91OCkpKQp1aW50OHgxNl90IHZzaGxxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfbV9uKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczE2KSkpCmludDE2eDhfdCB2c2hscV9tX3JfczE2KGludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfczE2KSkpCmludDE2eDhfdCB2c2hscV9tX3IoaW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX21fcl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX21fcihpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9yX3M4KSkpCmludDh4MTZfdCB2c2hscV9tX3JfczgoaW50OHgxNl90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbV9yKGludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfbV9yX3UxNih1aW50MTZ4OF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91MTYpKSkKdWludDE2eDhfdCB2c2hscV9tX3IodWludDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbV9yX3UzMih1aW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fcl91MzIpKSkKdWludDMyeDRfdCB2c2hscV9tX3IodWludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTgpKSkKdWludDh4MTZfdCB2c2hscV9tX3JfdTgodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3JfdTgpKSkKdWludDh4MTZfdCB2c2hscV9tX3IodWludDh4MTZfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MxNikpKQppbnQxNng4X3QgdnNobHFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3MxNikpKQppbnQxNng4X3QgdnNobHFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczMyKSkpCmludDMyeDRfdCB2c2hscV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczMyKSkpCmludDMyeDRfdCB2c2hscV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV9zOCkpKQppbnQ4eDE2X3QgdnNobHFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fczgpKSkKaW50OHgxNl90IHZzaGxxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9tX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX20odWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbV91OCkpKQp1aW50OHgxNl90IHZzaGxxX21fdTgodWludDh4MTZfdCwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX21fdTgpKSkKdWludDh4MTZfdCB2c2hscV9tKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MxNikpKQppbnQxNng4X3QgdnNobHFfbl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczE2KSkpCmludDE2eDhfdCB2c2hscV9uKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3MzMikpKQppbnQzMng0X3QgdnNobHFfbl9zMzIoaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fczMyKSkpCmludDMyeDRfdCB2c2hscV9uKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3M4KSkpCmludDh4MTZfdCB2c2hscV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3M4KSkpCmludDh4MTZfdCB2c2hscV9uKGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9uX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX25fdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91MTYpKSkKdWludDE2eDhfdCB2c2hscV9uKHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91MzIpKSkKdWludDMyeDRfdCB2c2hscV9uX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfbih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX25fdTgpKSkKdWludDh4MTZfdCB2c2hscV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfbl91OCkpKQp1aW50OHgxNl90IHZzaGxxX24odWludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MxNikpKQppbnQxNng4X3QgdnNobHFfcl9zMTYoaW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3MxNikpKQppbnQxNng4X3QgdnNobHFfcihpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczMyKSkpCmludDMyeDRfdCB2c2hscV9yX3MzMihpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczMyKSkpCmludDMyeDRfdCB2c2hscV9yKGludDMyeDRfdCwgaW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfcl9zOCkpKQppbnQ4eDE2X3QgdnNobHFfcl9zOChpbnQ4eDE2X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfczgpKSkKaW50OHgxNl90IHZzaGxxX3IoaW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3JfdTE2KHVpbnQxNng4X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfcih1aW50MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3JfdTMyKHVpbnQzMng0X3QsIGludDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3JfdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfcih1aW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfcl91OCh1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9yX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfcih1aW50OHgxNl90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczE2KSkpCmludDE2eDhfdCB2c2hscShpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczMyKSkpCmludDMyeDRfdCB2c2hscV9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3MzMikpKQppbnQzMng0X3QgdnNobHEoaW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3M4KSkpCmludDh4MTZfdCB2c2hscV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfczgpKSkKaW50OHgxNl90IHZzaGxxKGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MTYpKSkKdWludDE2eDhfdCB2c2hscV91MTYodWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV91MTYpKSkKdWludDE2eDhfdCB2c2hscSh1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3UzMih1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxKHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfdTgpKSkKdWludDh4MTZfdCB2c2hscV91OCh1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHEodWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczE2KSkpCmludDE2eDhfdCB2c2hscV94X25fczE2KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3hfbihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczMyKSkpCmludDMyeDRfdCB2c2hscV94X25fczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX3hfbihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczgpKSkKaW50OHgxNl90IHZzaGxxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fczgpKSkKaW50OHgxNl90IHZzaGxxX3hfbihpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnNobHFfeF9uX3UxNih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3hfbih1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZzaGxxX3hfbl91MzIodWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91MzIpKSkKdWludDMyeDRfdCB2c2hscV94X24odWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfbl91OCkpKQp1aW50OHgxNl90IHZzaGxxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNobHFfeF9uKHVpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3MxNikpKQppbnQxNng4X3QgdnNobHFfeF9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zMTYpKSkKaW50MTZ4OF90IHZzaGxxX3goaW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zMzIpKSkKaW50MzJ4NF90IHZzaGxxX3hfczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczMyKSkpCmludDMyeDRfdCB2c2hscV94KGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfczgpKSkKaW50OHgxNl90IHZzaGxxX3hfczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF9zOCkpKQppbnQ4eDE2X3QgdnNobHFfeChpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3hfdTE2KHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hscV94X3UxNikpKQp1aW50MTZ4OF90IHZzaGxxX3godWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfeF91MzIodWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnNobHFfeCh1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNobHFfeF91OCkpKQp1aW50OHgxNl90IHZzaGxxX3hfdTgodWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaGxxX3hfdTgpKSkKdWludDh4MTZfdCB2c2hscV94KHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl9zMTYpKSkKaW50OHgxNl90IHZzaHJuYnFfbV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm5icV9tKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fczMyKSkpCmludDE2eDhfdCB2c2hybmJxX21fbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJuYnFfbShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3UxNikpKQp1aW50OHgxNl90IHZzaHJuYnFfbV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm5icV9tKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX21fbl91MzIpKSkKdWludDE2eDhfdCB2c2hybmJxX21fbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJuYnFfbSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm5icV9uX3MxNihpbnQ4eDE2X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fczE2KSkpCmludDh4MTZfdCB2c2hybmJxKGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJuYnFfbl9zMzIoaW50MTZ4OF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3MzMikpKQppbnQxNng4X3QgdnNocm5icShpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm5icV9uX3UxNih1aW50OHgxNl90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJuYnFfbl91MTYpKSkKdWludDh4MTZfdCB2c2hybmJxKHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm5icV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJuYnFfbl91MzIodWludDE2eDhfdCwgdWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybmJxX25fdTMyKSkpCnVpbnQxNng4X3QgdnNocm5icSh1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3MxNikpKQppbnQ4eDE2X3QgdnNocm50cV9tX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fczE2KSkpCmludDh4MTZfdCB2c2hybnRxX20oaW50OHgxNl90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl9zMzIpKSkKaW50MTZ4OF90IHZzaHJudHFfbV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3MzMikpKQppbnQxNng4X3QgdnNocm50cV9tKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fdTE2KSkpCnVpbnQ4eDE2X3QgdnNocm50cV9tX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX21fbl91MTYpKSkKdWludDh4MTZfdCB2c2hybnRxX20odWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbV9uX3UzMikpKQp1aW50MTZ4OF90IHZzaHJudHFfbV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9tX25fdTMyKSkpCnVpbnQxNng4X3QgdnNocm50cV9tKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fczE2KSkpCmludDh4MTZfdCB2c2hybnRxX25fczE2KGludDh4MTZfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl9zMTYpKSkKaW50OHgxNl90IHZzaHJudHEoaW50OHgxNl90LCBpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3MzMikpKQppbnQxNng4X3QgdnNocm50cV9uX3MzMihpbnQxNng4X3QsIGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fczMyKSkpCmludDE2eDhfdCB2c2hybnRxKGludDE2eDhfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl91MTYpKSkKdWludDh4MTZfdCB2c2hybnRxX25fdTE2KHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocm50cV9uX3UxNikpKQp1aW50OHgxNl90IHZzaHJudHEodWludDh4MTZfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hybnRxX25fdTMyKSkpCnVpbnQxNng4X3QgdnNocm50cV9uX3UzMih1aW50MTZ4OF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJudHFfbl91MzIpKSkKdWludDE2eDhfdCB2c2hybnRxKHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3MxNikpKQppbnQxNng4X3QgdnNocnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzaHJxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fczMyKSkpCmludDMyeDRfdCB2c2hycV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNocnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNocnFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3M4KSkpCmludDh4MTZfdCB2c2hycV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZzaHJxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c2hycV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnNocnFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzaHJxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX21fbl91OCkpKQp1aW50OHgxNl90IHZzaHJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNocnFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zMTYpKSkKaW50MTZ4OF90IHZzaHJxX25fczE2KGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3MxNikpKQppbnQxNng4X3QgdnNocnEoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fczMyKSkpCmludDMyeDRfdCB2c2hycV9uX3MzMihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl9zMzIpKSkKaW50MzJ4NF90IHZzaHJxKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3M4KSkpCmludDh4MTZfdCB2c2hycV9uX3M4KGludDh4MTZfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3M4KSkpCmludDh4MTZfdCB2c2hycShpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91MTYpKSkKdWludDE2eDhfdCB2c2hycV9uX3UxNih1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNocnEodWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV9uX3UzMikpKQp1aW50MzJ4NF90IHZzaHJxX25fdTMyKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91MzIpKSkKdWludDMyeDRfdCB2c2hycSh1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX25fdTgpKSkKdWludDh4MTZfdCB2c2hycV9uX3U4KHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfbl91OCkpKQp1aW50OHgxNl90IHZzaHJxKHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3MxNikpKQppbnQxNng4X3QgdnNocnFfeF9uX3MxNihpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczE2KSkpCmludDE2eDhfdCB2c2hycV94KGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZzaHJxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3MzMikpKQppbnQzMng0X3QgdnNocnFfeChpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczgpKSkKaW50OHgxNl90IHZzaHJxX3hfbl9zOChpbnQ4eDE2X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fczgpKSkKaW50OHgxNl90IHZzaHJxX3goaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3UxNikpKQp1aW50MTZ4OF90IHZzaHJxX3hfbl91MTYodWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91MTYpKSkKdWludDE2eDhfdCB2c2hycV94KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2hycV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnNocnFfeF9uX3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3UzMikpKQp1aW50MzJ4NF90IHZzaHJxX3godWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzaHJxX3hfbl91OCkpKQp1aW50OHgxNl90IHZzaHJxX3hfbl91OCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNocnFfeF9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNocnFfeCh1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3MxNikpKQppbnQxNng4X3QgdnNsaXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzbGlxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fczMyKSkpCmludDMyeDRfdCB2c2xpcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNsaXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNsaXFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3M4KSkpCmludDh4MTZfdCB2c2xpcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZzbGlxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c2xpcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnNsaXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzbGlxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX21fbl91OCkpKQp1aW50OHgxNl90IHZzbGlxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNsaXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zMTYpKSkKaW50MTZ4OF90IHZzbGlxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczE2KSkpCmludDE2eDhfdCB2c2xpcShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3MzMikpKQppbnQzMng0X3QgdnNsaXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zMzIpKSkKaW50MzJ4NF90IHZzbGlxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fczgpKSkKaW50OHgxNl90IHZzbGlxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl9zOCkpKQppbnQ4eDE2X3QgdnNsaXEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91MTYpKSkKdWludDE2eDhfdCB2c2xpcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNsaXEodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c2xpcV9uX3UzMikpKQp1aW50MzJ4NF90IHZzbGlxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91MzIpKSkKdWludDMyeDRfdCB2c2xpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzbGlxX25fdTgpKSkKdWludDh4MTZfdCB2c2xpcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNsaXFfbl91OCkpKQp1aW50OHgxNl90IHZzbGlxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3MxNikpKQppbnQxNng4X3QgdnNyaXFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zMTYpKSkKaW50MTZ4OF90IHZzcmlxX20oaW50MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fczMyKSkpCmludDMyeDRfdCB2c3JpcV9tX25fczMyKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3MzMikpKQppbnQzMng0X3QgdnNyaXFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnNyaXFfbV9uX3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3M4KSkpCmludDh4MTZfdCB2c3JpcV9tKGludDh4MTZfdCwgaW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3UxNikpKQp1aW50MTZ4OF90IHZzcmlxX21fbl91MTYodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c3JpcV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9tX25fdTMyKSkpCnVpbnQzMng0X3QgdnNyaXFfbV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3UzMikpKQp1aW50MzJ4NF90IHZzcmlxX20odWludDMyeDRfdCwgdWludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX21fbl91OCkpKQp1aW50OHgxNl90IHZzcmlxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbV9uX3U4KSkpCnVpbnQ4eDE2X3QgdnNyaXFfbSh1aW50OHgxNl90LCB1aW50OHgxNl90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zMTYpKSkKaW50MTZ4OF90IHZzcmlxX25fczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczE2KSkpCmludDE2eDhfdCB2c3JpcShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3MzMikpKQppbnQzMng0X3QgdnNyaXFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zMzIpKSkKaW50MzJ4NF90IHZzcmlxKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fczgpKSkKaW50OHgxNl90IHZzcmlxX25fczgoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl9zOCkpKQppbnQ4eDE2X3QgdnNyaXEoaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91MTYpKSkKdWludDE2eDhfdCB2c3JpcV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTE2KSkpCnVpbnQxNng4X3QgdnNyaXEodWludDE2eDhfdCwgdWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3JpcV9uX3UzMikpKQp1aW50MzJ4NF90IHZzcmlxX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91MzIpKSkKdWludDMyeDRfdCB2c3JpcSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzcmlxX25fdTgpKSkKdWludDh4MTZfdCB2c3JpcV9uX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNyaXFfbl91OCkpKQp1aW50OHgxNl90IHZzcmlxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMTYpKSkKdm9pZCB2c3QxcV9wX3MxNihpbnQxNl90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3MxNikpKQp2b2lkIHZzdDFxX3AoaW50MTZfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zMzIpKSkKdm9pZCB2c3QxcV9wX3MzMihpbnQzMl90ICosIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3MzMikpKQp2b2lkIHZzdDFxX3AoaW50MzJfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF9zOCkpKQp2b2lkIHZzdDFxX3BfczgoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3M4KSkpCnZvaWQgdnN0MXFfcChpbnQ4X3QgKiwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTE2KSkpCnZvaWQgdnN0MXFfcF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3UxNikpKQp2b2lkIHZzdDFxX3AodWludDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX3UzMikpKQp2b2lkIHZzdDFxX3BfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91MzIpKSkKdm9pZCB2c3QxcV9wKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfcF91OCkpKQp2b2lkIHZzdDFxX3BfdTgodWludDhfdCAqLCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfdTgpKSkKdm9pZCB2c3QxcV9wKHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMTYpKSkKdm9pZCB2c3QxcV9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3MxNikpKQp2b2lkIHZzdDFxKGludDE2X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zMzIpKSkKdm9pZCB2c3QxcV9zMzIoaW50MzJfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3MzMikpKQp2b2lkIHZzdDFxKGludDMyX3QgKiwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9zOCkpKQp2b2lkIHZzdDFxX3M4KGludDhfdCAqLCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3M4KSkpCnZvaWQgdnN0MXEoaW50OF90ICosIGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTE2KSkpCnZvaWQgdnN0MXFfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3UxNikpKQp2b2lkIHZzdDFxKHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3UzMikpKQp2b2lkIHZzdDFxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91MzIpKSkKdm9pZCB2c3QxcSh1aW50MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV91OCkpKQp2b2lkIHZzdDFxX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfdTgpKSkKdm9pZCB2c3QxcSh1aW50OF90ICosIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3MxNikpKQp2b2lkIHZzdDJxX3MxNihpbnQxNl90ICosIGludDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zMTYpKSkKdm9pZCB2c3QycShpbnQxNl90ICosIGludDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9zMzIpKSkKdm9pZCB2c3QycV9zMzIoaW50MzJfdCAqLCBpbnQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczMyKSkpCnZvaWQgdnN0MnEoaW50MzJfdCAqLCBpbnQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfczgpKSkKdm9pZCB2c3QycV9zOChpbnQ4X3QgKiwgaW50OHgxNngyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3M4KSkpCnZvaWQgdnN0MnEoaW50OF90ICosIGludDh4MTZ4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MTYpKSkKdm9pZCB2c3QycV91MTYodWludDE2X3QgKiwgdWludDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV91MTYpKSkKdm9pZCB2c3QycSh1aW50MTZfdCAqLCB1aW50MTZ4OHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3UzMikpKQp2b2lkIHZzdDJxX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDJxX3UzMikpKQp2b2lkIHZzdDJxKHVpbnQzMl90ICosIHVpbnQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTgpKSkKdm9pZCB2c3QycV91OCh1aW50OF90ICosIHVpbnQ4eDE2eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfdTgpKSkKdm9pZCB2c3QycSh1aW50OF90ICosIHVpbnQ4eDE2eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczE2KSkpCnZvaWQgdnN0NHFfczE2KGludDE2X3QgKiwgaW50MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3MxNikpKQp2b2lkIHZzdDRxKGludDE2X3QgKiwgaW50MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3MzMikpKQp2b2lkIHZzdDRxX3MzMihpbnQzMl90ICosIGludDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zMzIpKSkKdm9pZCB2c3Q0cShpbnQzMl90ICosIGludDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9zOCkpKQp2b2lkIHZzdDRxX3M4KGludDhfdCAqLCBpbnQ4eDE2eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfczgpKSkKdm9pZCB2c3Q0cShpbnQ4X3QgKiwgaW50OHgxNng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UxNikpKQp2b2lkIHZzdDRxX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OHg0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDRxX3UxNikpKQp2b2lkIHZzdDRxKHVpbnQxNl90ICosIHVpbnQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTMyKSkpCnZvaWQgdnN0NHFfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfdTMyKSkpCnZvaWQgdnN0NHEodWludDMyX3QgKiwgdWludDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91OCkpKQp2b2lkIHZzdDRxX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV91OCkpKQp2b2lkIHZzdDRxKHVpbnQ4X3QgKiwgdWludDh4MTZ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMTYpKSkKdm9pZCB2c3RyYnFfcF9zMTYoaW50OF90ICosIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF9zMTYpKSkKdm9pZCB2c3RyYnFfcChpbnQ4X3QgKiwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3MzMikpKQp2b2lkIHZzdHJicV9wX3MzMihpbnQ4X3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3MzMikpKQp2b2lkIHZzdHJicV9wKGludDhfdCAqLCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3BfczgpKSkKdm9pZCB2c3RyYnFfcF9zOChpbnQ4X3QgKiwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3M4KSkpCnZvaWQgdnN0cmJxX3AoaW50OF90ICosIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MTYpKSkKdm9pZCB2c3RyYnFfcF91MTYodWludDhfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3UxNikpKQp2b2lkIHZzdHJicV9wKHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91MzIpKSkKdm9pZCB2c3RyYnFfcF91MzIodWludDhfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9wX3UzMikpKQp2b2lkIHZzdHJicV9wKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91OCkpKQp2b2lkIHZzdHJicV9wX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfcF91OCkpKQp2b2lkIHZzdHJicV9wKHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczE2KSkpCnZvaWQgdnN0cmJxX3MxNihpbnQ4X3QgKiwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfczE2KSkpCnZvaWQgdnN0cmJxKGludDhfdCAqLCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zMzIpKSkKdm9pZCB2c3RyYnFfczMyKGludDhfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zMzIpKSkKdm9pZCB2c3RyYnEoaW50OF90ICosIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3M4KSkpCnZvaWQgdnN0cmJxX3M4KGludDhfdCAqLCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zOCkpKQp2b2lkIHZzdHJicShpbnQ4X3QgKiwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMTYpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMTYoaW50OF90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zMTYpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcChpbnQ4X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MzMihpbnQ4X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wKGludDhfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3BfczgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF9zOChpbnQ4X3QgKiwgdWludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3M4KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50OF90ICosIHVpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MTYpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MTYodWludDhfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UxNikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wKHVpbnQ4X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91MzIodWludDhfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9wX3UzMikpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wKHVpbnQ4X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91OCkpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wX3U4KHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfcF91OCkpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldF9wKHVpbnQ4X3QgKiwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3MxNihpbnQ4X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0KGludDhfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfczMyKGludDhfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zMzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXQoaW50OF90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3M4KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3M4KGludDhfdCAqLCB1aW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF9zOCkpKQp2b2lkIHZzdHJicV9zY2F0dGVyX29mZnNldChpbnQ4X3QgKiwgdWludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTE2KSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UxNih1aW50OF90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MTYpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXQodWludDhfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cmJxX3NjYXR0ZXJfb2Zmc2V0X3UzMih1aW50OF90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV9zY2F0dGVyX29mZnNldF91MzIpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXQodWludDhfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTgodWludDhfdCAqLCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfc2NhdHRlcl9vZmZzZXRfdTgpKSkKdm9pZCB2c3RyYnFfc2NhdHRlcl9vZmZzZXQodWludDhfdCAqLCB1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTE2KSkpCnZvaWQgdnN0cmJxX3UxNih1aW50OF90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91MTYpKSkKdm9pZCB2c3RyYnEodWludDhfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTMyKSkpCnZvaWQgdnN0cmJxX3UzMih1aW50OF90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJicV91MzIpKSkKdm9pZCB2c3RyYnEodWludDhfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTgpKSkKdm9pZCB2c3RyYnFfdTgodWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyYnFfdTgpKSkKdm9pZCB2c3RyYnEodWludDhfdCAqLCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV9wX3M2NCh1aW50NjR4Ml90LCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV9wKHVpbnQ2NHgyX3QsIGludCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfcF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlX3BfdTY0KHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV9wKHVpbnQ2NHgyX3QsIGludCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2VfczY0KHVpbnQ2NHgyX3QsIGludCwgaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2UodWludDY0eDJfdCwgaW50LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2VfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV91NjQodWludDY0eDJfdCwgaW50LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX2Jhc2UodWludDY0eDJfdCwgaW50LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3M2NCh1aW50NjR4Ml90ICosIGludCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfcF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlX3diX3AodWludDY0eDJfdCAqLCBpbnQsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wX3U2NCh1aW50NjR4Ml90ICosIGludCwgdWludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9iYXNlX3diX3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9wKHVpbnQ2NHgyX3QgKiwgaW50LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9zNjQodWludDY0eDJfdCAqLCBpbnQsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9iYXNlX3diKHVpbnQ2NHgyX3QgKiwgaW50LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yl91NjQodWludDY0eDJfdCAqLCBpbnQsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX2Jhc2Vfd2JfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfYmFzZV93Yih1aW50NjR4Ml90ICosIGludCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3BfczY0KGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX29mZnNldF9wKGludDY0X3QgKiwgdWludDY0eDJfdCwgaW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3U2NCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9wX3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX29mZnNldF9wKHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfb2Zmc2V0X3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX29mZnNldF9zNjQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXRfdTY0KHVpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIHVpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX29mZnNldF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9vZmZzZXQodWludDY0X3QgKiwgdWludDY0eDJfdCwgdWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zNjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3M2NChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3U2NCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3M2NChpbnQ2NF90ICosIHVpbnQ2NHgyX3QsIGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczY0KSkpCnZvaWQgdnN0cmRxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoaW50NjRfdCAqLCB1aW50NjR4Ml90LCBpbnQ2NHgyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCkpKQp2b2lkIHZzdHJkcV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3U2NCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91NjQpKSkKdm9pZCB2c3RyZHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50NjRfdCAqLCB1aW50NjR4Ml90LCB1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9zMTYpKSkKdm9pZCB2c3RyaHFfcF9zMTYoaW50MTZfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfczE2KSkpCnZvaWQgdnN0cmhxX3AoaW50MTZfdCAqLCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfczMyKSkpCnZvaWQgdnN0cmhxX3BfczMyKGludDE2X3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3MzMikpKQp2b2lkIHZzdHJocV9wKGludDE2X3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UxNikpKQp2b2lkIHZzdHJocV9wX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9wX3UxNikpKQp2b2lkIHZzdHJocV9wKHVpbnQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfdTMyKSkpCnZvaWQgdnN0cmhxX3BfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfdTMyKSkpCnZvaWQgdnN0cmhxX3AodWludDE2X3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfczE2KSkpCnZvaWQgdnN0cmhxX3MxNihpbnQxNl90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3MxNikpKQp2b2lkIHZzdHJocShpbnQxNl90ICosIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3MzMikpKQp2b2lkIHZzdHJocV9zMzIoaW50MTZfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zMzIpKSkKdm9pZCB2c3RyaHEoaW50MTZfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9wX3MxNihpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9zMzIoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MzIodWludDE2X3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX29mZnNldF9zMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfczE2KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MzMihpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldChpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldCh1aW50MTZfdCAqLCB1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMTYoaW50MTZfdCAqLCB1aW50MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIoaW50MTZfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MTYodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AodWludDE2X3QgKiwgdWludDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKHVpbnQxNl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczE2KGludDE2X3QgKiwgdWludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldChpbnQxNl90ICosIHVpbnQxNng4X3QsIGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKGludDE2X3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldChpbnQxNl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTE2KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KHVpbnQxNl90ICosIHVpbnQxNng4X3QsIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMih1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF91MzIpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldCh1aW50MTZfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTE2KSkpCnZvaWQgdnN0cmhxX3UxNih1aW50MTZfdCAqLCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfdTE2KSkpCnZvaWQgdnN0cmhxKHVpbnQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV91MzIpKSkKdm9pZCB2c3RyaHFfdTMyKHVpbnQxNl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJocV91MzIpKSkKdm9pZCB2c3RyaHEodWludDE2X3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfczMyKSkpCnZvaWQgdnN0cndxX3BfczMyKGludDMyX3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX3MzMikpKQp2b2lkIHZzdHJ3cV9wKGludDMyX3QgKiwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX3UzMikpKQp2b2lkIHZzdHJ3cV9wX3UzMih1aW50MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX3UzMikpKQp2b2lkIHZzdHJ3cV9wKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3MzMikpKQp2b2lkIHZzdHJ3cV9zMzIoaW50MzJfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zMzIpKSkKdm9pZCB2c3Ryd3EoaW50MzJfdCAqLCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfczMyKHVpbnQzMng0X3QsIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3AodWludDMyeDRfdCwgaW50LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF91MzIodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3AodWludDMyeDRfdCwgaW50LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9zMzIodWludDMyeDRfdCwgaW50LCBpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZSh1aW50MzJ4NF90LCBpbnQsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3UzMih1aW50MzJ4NF90LCBpbnQsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZSh1aW50MzJ4NF90LCBpbnQsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfczMyKHVpbnQzMng0X3QgKiwgaW50LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50MzJ4NF90ICosIGludCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfdTMyKHVpbnQzMng0X3QgKiwgaW50LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3AodWludDMyeDRfdCAqLCBpbnQsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3MzMih1aW50MzJ4NF90ICosIGludCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2IodWludDMyeDRfdCAqLCBpbnQsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3UzMih1aW50MzJ4NF90ICosIGludCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3diKHVpbnQzMng0X3QgKiwgaW50LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9zMzIoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3AoaW50MzJfdCAqLCB1aW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3AodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3MzMihpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldChpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF91MzIodWludDMyX3QgKiwgdWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldCh1aW50MzJfdCAqLCB1aW50MzJ4NF90LCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3MzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcChpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfcF91MzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfczMyKGludDMyX3QgKiwgdWludDMyeDRfdCwgaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9zMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldChpbnQzMl90ICosIHVpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3UzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0KHVpbnQzMl90ICosIHVpbnQzMng0X3QsIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV91MzIpKSkKdm9pZCB2c3Ryd3FfdTMyKHVpbnQzMl90ICosIHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV91MzIpKSkKdm9pZCB2c3Ryd3EodWludDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3MxNikpKQppbnQxNng4X3QgdnN1YnFfbV9uX3MxNihpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczE2KSkpCmludDE2eDhfdCB2c3VicV9tKGludDE2eDhfdCwgaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX21fbl9zMzIoaW50MzJ4NF90LCBpbnQzMng0X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX3MzMikpKQppbnQzMng0X3QgdnN1YnFfbShpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fczgpKSkKaW50OHgxNl90IHZzdWJxX21fbl9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfbShpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c3VicV9tX25fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91MTYpKSkKdWludDE2eDhfdCB2c3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c3VicV9tX25fdTMyKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91MzIpKSkKdWludDMyeDRfdCB2c3VicV9tKHVpbnQzMng0X3QsIHVpbnQzMng0X3QsIHVpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IHZzdWJxX21fbl91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCB1aW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl91OCkpKQp1aW50OHgxNl90IHZzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MxNikpKQppbnQxNng4X3QgdnN1YnFfbV9zMTYoaW50MTZ4OF90LCBpbnQxNng4X3QsIGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3MxNikpKQppbnQxNng4X3QgdnN1YnFfbShpbnQxNng4X3QsIGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczMyKSkpCmludDMyeDRfdCB2c3VicV9tX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgaW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczMyKSkpCmludDMyeDRfdCB2c3VicV9tKGludDMyeDRfdCwgaW50MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfbV9zOChpbnQ4eDE2X3QsIGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fczgpKSkKaW50OHgxNl90IHZzdWJxX20oaW50OHgxNl90LCBpbnQ4eDE2X3QsIGludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX3UxNikpKQp1aW50MTZ4OF90IHZzdWJxX21fdTE2KHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91MTYpKSkKdWludDE2eDhfdCB2c3VicV9tKHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91MzIpKSkKdWludDMyeDRfdCB2c3VicV9tX3UzMih1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfbSh1aW50MzJ4NF90LCB1aW50MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fdTgpKSkKdWludDh4MTZfdCB2c3VicV9tX3U4KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV91OCkpKQp1aW50OHgxNl90IHZzdWJxX20odWludDh4MTZfdCwgdWludDh4MTZfdCwgdWludDh4MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3MxNikpKQppbnQxNng4X3QgdnN1YnFfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3MxNikpKQppbnQxNng4X3QgdnN1YnEoaW50MTZ4OF90LCBpbnQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3MzMikpKQppbnQzMng0X3QgdnN1YnFfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3MzMikpKQppbnQzMng0X3QgdnN1YnEoaW50MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3M4KSkpCmludDh4MTZfdCB2c3VicV9uX3M4KGludDh4MTZfdCwgaW50OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9uX3M4KSkpCmludDh4MTZfdCB2c3VicShpbnQ4eDE2X3QsIGludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91MTYpKSkKdWludDE2eDhfdCB2c3VicV9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91MTYpKSkKdWludDE2eDhfdCB2c3VicSh1aW50MTZ4OF90LCB1aW50MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91MzIpKSkKdWludDMyeDRfdCB2c3VicV9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91MzIpKSkKdWludDMyeDRfdCB2c3VicSh1aW50MzJ4NF90LCB1aW50MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91OCkpKQp1aW50OHgxNl90IHZzdWJxX25fdTgodWludDh4MTZfdCwgdWludDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbl91OCkpKQp1aW50OHgxNl90IHZzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3MxNikpKQppbnQxNng4X3QgdnN1YnFfczE2KGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zMTYpKSkKaW50MTZ4OF90IHZzdWJxKGludDE2eDhfdCwgaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX3MzMihpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczMyKSkpCmludDMyeDRfdCB2c3VicShpbnQzMng0X3QsIGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfczgpKSkKaW50OHgxNl90IHZzdWJxX3M4KGludDh4MTZfdCwgaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9zOCkpKQppbnQ4eDE2X3QgdnN1YnEoaW50OHgxNl90LCBpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3UxNikpKQp1aW50MTZ4OF90IHZzdWJxX3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91MTYpKSkKdWludDE2eDhfdCB2c3VicSh1aW50MTZ4OF90LCB1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91MzIpKSkKdWludDMyeDRfdCB2c3VicV91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTMyKSkpCnVpbnQzMng0X3QgdnN1YnEodWludDMyeDRfdCwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfdTgpKSkKdWludDh4MTZfdCB2c3VicV91OCh1aW50OHgxNl90LCB1aW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV91OCkpKQp1aW50OHgxNl90IHZzdWJxKHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX3hfbl9zMTYoaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX3goaW50MTZ4OF90LCBpbnQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX3hfbl9zMzIoaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zMzIpKSkKaW50MzJ4NF90IHZzdWJxX3goaW50MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfeF9uX3M4KGludDh4MTZfdCwgaW50OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfbl9zOCkpKQppbnQ4eDE2X3QgdnN1YnFfeChpbnQ4eDE2X3QsIGludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfeF9uX3UxNih1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfeF9uX3UzMih1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfeCh1aW50MzJ4NF90LCB1aW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTgpKSkKdWludDh4MTZfdCB2c3VicV94X25fdTgodWludDh4MTZfdCwgdWludDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X25fdTgpKSkKdWludDh4MTZfdCB2c3VicV94KHVpbnQ4eDE2X3QsIHVpbnQ4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9zMTYpKSkKaW50MTZ4OF90IHZzdWJxX3hfczE2KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczE2KSkpCmludDE2eDhfdCB2c3VicV94KGludDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczMyKSkpCmludDMyeDRfdCB2c3VicV94X3MzMihpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3MzMikpKQppbnQzMng0X3QgdnN1YnFfeChpbnQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3M4KSkpCmludDh4MTZfdCB2c3VicV94X3M4KGludDh4MTZfdCwgaW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfczgpKSkKaW50OHgxNl90IHZzdWJxX3goaW50OHgxNl90LCBpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF91MTYpKSkKdWludDE2eDhfdCB2c3VicV94X3UxNih1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTE2KSkpCnVpbnQxNng4X3QgdnN1YnFfeCh1aW50MTZ4OF90LCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTMyKSkpCnVpbnQzMng0X3QgdnN1YnFfeF91MzIodWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3UzMikpKQp1aW50MzJ4NF90IHZzdWJxX3godWludDMyeDRfdCwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X3U4KSkpCnVpbnQ4eDE2X3QgdnN1YnFfeF91OCh1aW50OHgxNl90LCB1aW50OHgxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfdTgpKSkKdWludDh4MTZfdCB2c3VicV94KHVpbnQ4eDE2X3QsIHVpbnQ4eDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3MxNikpKQppbnQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3MzMikpKQppbnQzMng0X3QgdnVuaW5pdGlhbGl6ZWRxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3M2NCkpKQppbnQ2NHgyX3QgdnVuaW5pdGlhbGl6ZWRxKGludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3M4KSkpCmludDh4MTZfdCB2dW5pbml0aWFsaXplZHEoaW50OHgxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfdTE2KSkpCnVpbnQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxKHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY191MzIpKSkKdWludDMyeDRfdCB2dW5pbml0aWFsaXplZHEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX3U2NCkpKQp1aW50NjR4Ml90IHZ1bmluaXRpYWxpemVkcSh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfcG9seW1vcnBoaWNfdTgpKSkKdWludDh4MTZfdCB2dW5pbml0aWFsaXplZHEodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3MxNikpKQppbnQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxX3MxNigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9zMzIpKSkKaW50MzJ4NF90IHZ1bmluaXRpYWxpemVkcV9zMzIoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfczY0KSkpCmludDY0eDJfdCB2dW5pbml0aWFsaXplZHFfczY0KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3M4KSkpCmludDh4MTZfdCB2dW5pbml0aWFsaXplZHFfczgoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfdTE2KSkpCnVpbnQxNng4X3QgdnVuaW5pdGlhbGl6ZWRxX3UxNigpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV91MzIpKSkKdWludDMyeDRfdCB2dW5pbml0aWFsaXplZHFfdTMyKCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3U2NCkpKQp1aW50NjR4Ml90IHZ1bmluaXRpYWxpemVkcV91NjQoKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92dW5pbml0aWFsaXplZHFfdTgpKSkKdWludDh4MTZfdCB2dW5pbml0aWFsaXplZHFfdTgoKTsKCiNlbmRpZiAvKiAoIWRlZmluZWQgX19BUk1fTVZFX1BSRVNFUlZFX1VTRVJfTkFNRVNQQUNFKSAqLwoKI2lmIChfX0FSTV9GRUFUVVJFX01WRSAmIDIpICYmICghZGVmaW5lZCBfX0FSTV9NVkVfUFJFU0VSVkVfVVNFUl9OQU1FU1BBQ0UpCgpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX2YxNikpKQpmbG9hdDE2eDhfdCB2YWJkcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFiZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFiZHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZhYmRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmFiZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YWJkcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmFiZHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJkcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFiZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmFiZHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZhYmRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZhYmRxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJkcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWJkcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFic3FfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFic3EoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFic3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmFic3FfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhYnNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZhYnNxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YWJzcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YWJzcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWJzcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YWJzcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZhYnNxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhYnNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZhYnNxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YWRkcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHFfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmFkZHEoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFkZHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmFkZHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhZGRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YWRkcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX3hfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjE2KSkpCmZsb2F0MTZ4OF90IHZhZGRxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX3hfbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YWRkcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IHZhZGRxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV9mMTYpKSkKZmxvYXQxNng4X3QgdmFuZHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZhbmRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZhbmRxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX2YzMikpKQpmbG9hdDMyeDRfdCB2YW5kcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZhbmRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmFuZHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZhbmRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmFuZHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZhbmRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZhbmRxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YW5kcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YW5kcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2YW5kcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmFuZHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmFuZHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZiaWNxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YxNikpKQpmbG9hdDE2eDhfdCB2YmljcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX2YzMikpKQpmbG9hdDMyeDRfdCB2YmljcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9mMzIpKSkKZmxvYXQzMng0X3QgdmJpY3EoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2YmljcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZiaWNxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2YmljcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZiaWNxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YmljcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2YmljcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmJpY3FfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJpY3FfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmJpY3FfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZiaWNxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZiaWNxX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZicnNycV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YnJzcnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGludDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmJyc3JxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgdmJyc3JxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZicnNycV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZicnNycV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmJyc3JxX25fZjE2KGZsb2F0MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmJyc3JxKGZsb2F0MTZ4OF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmJyc3JxX25fZjMyKGZsb2F0MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmJyc3JxKGZsb2F0MzJ4NF90LCBpbnQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YnJzcnFfeF9uX2YxNihmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2YnJzcnFfeChmbG9hdDE2eDhfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YnJzcnFfeF9uX2YzMihmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92YnJzcnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2YnJzcnFfeChmbG9hdDMyeDRfdCwgaW50MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3QyNzAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3QyNzBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjYWRkcV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNhZGRxX3JvdDkwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjYWRkcV9yb3Q5MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3Q5MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNhZGRxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjYWRkcV9yb3Q5MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y2FkZHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QxODBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QxODAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDE4MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QxODBfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MTgwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3QxODBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDI3MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDkwKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21sYXFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtbGFxX3JvdDkwX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbWxhcV9yb3Q5MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtbGFxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbWxhcV9yb3Q5MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbWxhcV9yb3Q5MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y21sYXFfcm90OTBfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBlcXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBlcXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGVxcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGVxcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZXFxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZXFxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBnZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBnZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGdlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGdlcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ2VxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ2VxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBndHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBndHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGd0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGd0cV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wZ3RxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wZ3RxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGxlcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGxlcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbGVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbGVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBsdHFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBsdHEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcGx0cV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcGx0cV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbHRxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbHRxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9mMzIpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX21fbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9tX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjE2KSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXBuZXFfbl9mMTYpKSkKbXZlX3ByZWQxNl90IHZjbXBuZXEoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtcG5lcV9uX2YzMikpKQptdmVfcHJlZDE2X3QgdmNtcG5lcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y21wbmVxX25fZjMyKSkpCm12ZV9wcmVkMTZfdCB2Y21wbmVxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDE4MChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QxODBfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDE4MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDE4MF9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDE4MF9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MTgwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDE4MF9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MTgwX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QxODBfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDE4MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MTgwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QxODBfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QxODBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDE4MF94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QyNzAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QyNzAoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QyNzBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QyNzBfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDI3MF9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3QyNzBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDI3MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90MjcwX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3QyNzBfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDI3MF94X2YzMikpKQpmbG9hdDMyeDRfdCB2Y211bHFfcm90MjcwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90MjcwX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3QyNzBfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90OTAoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV9yb3Q5MF9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfcm90OTBfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmNtdWxxX3JvdDkwX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDkwX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV9yb3Q5MF9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3Q5MF94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3JvdDkwX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZjbXVscV9yb3Q5MF94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDkwX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y211bHFfcm90OTBfeF9mMzIpKSkKZmxvYXQzMng0X3QgdmNtdWxxX3JvdDkwX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjbXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCB2Y211bHFfeChmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNtdWxxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZjbXVscV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3JlYXRlcV9mMTYpKSkKZmxvYXQxNng4X3QgdmNyZWF0ZXFfZjE2KHVpbnQ2NF90LCB1aW50NjRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmNyZWF0ZXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZjcmVhdGVxX2YzMih1aW50NjRfdCwgdWludDY0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRhcV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0YXFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRhcV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0YXFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0YXFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0YXFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dGFxX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dGFxX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRhcV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dGFxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dGFxX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dGFxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRhcV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRhcV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGFxX3hfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dGFxX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dGFxX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YXFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dGFxX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfZjE2X2YzMikpKQpmbG9hdDE2eDhfdCB2Y3Z0YnFfZjE2X2YzMihmbG9hdDE2eDhfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZjdnRicV9mMzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0YnFfbV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IHZjdnRicV9tX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRicV9tX2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgdmN2dGJxX21fZjMyX2YxNihmbG9hdDMyeDRfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dGJxX3hfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2Y3Z0YnFfeF9mMzJfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRtcV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bXFfbShpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRtcV9tX3MzMl9mMzIoaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0bXFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0bXFfbV91MTZfZjE2KHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0bXFfbSh1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dG1xX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfbV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dG1xX20odWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRtcV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG1xX3UxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dG1xX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRtcV94X3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRtcV94X3MxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG1xX3hfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dG1xX3hfczMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG1xX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bXFfeF91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dG1xX3hfdTMyX2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bnFfbV9zMTZfZjE2KGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dG5xX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0bnFfbV9zMzJfZjMyKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dG5xX20oaW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG5xX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfbV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dG5xX20odWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRucV9tX3UzMl9mMzIodWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRucV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bnFfczE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRucV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRucV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0bnFfeF9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0bnFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRucV94X3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRucV94X3MzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRucV94X3UxNl9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dG5xX3hfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRucV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHBxX21fczE2X2YxNihpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRwcV9tKGludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHBxX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRwcV9tKGludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRwcV9tX3UxNl9mMTYodWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRwcV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cHFfbV91MzJfZjMyKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cHFfbSh1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHBxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cHFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cHFfdTMyX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHBxX3hfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHBxX3hfczE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cHFfeF9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cHFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cHFfeF91MTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRwcV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cHFfeF91MzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfZjE2X3MxNihpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHEoaW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX2YxNl91MTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cSh1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX2YzMl9zMzIoaW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxKGludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHEodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX21fZjE2X3MxNihmbG9hdDE2eDhfdCwgaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tKGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX21fZjE2X3UxNihmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbShmbG9hdDE2eDhfdCwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbV9mMzJfczMyKGZsb2F0MzJ4NF90LCBpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX20oZmxvYXQzMng0X3QsIGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbV9mMzJfdTMyKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9tKGZsb2F0MzJ4NF90LCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX21fbl9mMTZfczE2KGZsb2F0MTZ4OF90LCBpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9tX24oZmxvYXQxNng4X3QsIGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX21fbl9mMTZfdTE2KGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbV9uKGZsb2F0MTZ4OF90LCB1aW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbV9uX2YzMl9zMzIoZmxvYXQzMng0X3QsIGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX21fbihmbG9hdDMyeDRfdCwgaW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbV9uX2YzMl91MzIoZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9tX24oZmxvYXQzMng0X3QsIHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX25fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfbV9uX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cV9tX24oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cV9tX25fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRxX21fbihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cV9tX25fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHFfbV9uKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV9tX25fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fbl91MzJfZjMyKSkpCnVpbnQzMng0X3QgdmN2dHFfbV9uKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cV9tX3MxNl9mMTYoaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MxNl9mMTYpKSkKaW50MTZ4OF90IHZjdnRxX20oaW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3MzMl9mMzIpKSkKaW50MzJ4NF90IHZjdnRxX21fczMyX2YzMihpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfbShpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX21fdTE2X2YxNih1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2Y3Z0cV9tKHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX21fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRxX21fdTMyX2YzMih1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9tX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV9tKHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9uX2YxNl9zMTYoaW50MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV9uKGludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfbl9mMTZfdTE2KHVpbnQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX24odWludDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbl9mMzJfczMyKGludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9uX2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfbihpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX25fZjMyX3UzMih1aW50MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV9uKHVpbnQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cV9uX3MxNl9mMTYoZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cV9uX3MzMl9mMzIoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfbl91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHFfbl91MTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX25fdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRxX25fdTMyX2YzMihmbG9hdDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9zMTZfZjE2KSkpCmludDE2eDhfdCB2Y3Z0cV9zMTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV9zMzJfZjMyKSkpCmludDMyeDRfdCB2Y3Z0cV9zMzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdmN2dHFfdTE2X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfdTMyX2YzMikpKQp1aW50MzJ4NF90IHZjdnRxX3UzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV94X2YxNl9zMTYoaW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjE2X3MxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV94KGludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeF9mMTZfdTE2KHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX3godWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfeF9mMzJfczMyKGludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X2YzMl9zMzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfeChpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3hfZjMyX3UzMih1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV94KHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeF9uX2YxNl9zMTYoaW50MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdmN2dHFfeF9uKGludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZjdnRxX3hfbl9mMTZfdTE2KHVpbnQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjE2X3UxNikpKQpmbG9hdDE2eDhfdCB2Y3Z0cV94X24odWludDE2eDhfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3hfbl9mMzJfczMyKGludDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfbl9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZjdnRxX3hfbihpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fZjMyX3UzMikpKQpmbG9hdDMyeDRfdCB2Y3Z0cV94X25fZjMyX3UzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdmN2dHFfeF9uKHVpbnQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfeF9uX3MxNl9mMTYoZmxvYXQxNng4X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfeF9uX3MzMl9mMzIoZmxvYXQzMng0X3QsIGludCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X25fdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX3hfbl91MTZfZjE2KGZsb2F0MTZ4OF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHFfeF9uX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV94X25fdTMyX2YzMihmbG9hdDMyeDRfdCwgaW50LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfczE2X2YxNikpKQppbnQxNng4X3QgdmN2dHFfeF9zMTZfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfczMyX2YzMikpKQppbnQzMng0X3QgdmN2dHFfeF9zMzJfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnRxX3hfdTE2X2YxNikpKQp1aW50MTZ4OF90IHZjdnRxX3hfdTE2X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0cV94X3UzMl9mMzIpKSkKdWludDMyeDRfdCB2Y3Z0cV94X3UzMl9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX2YxNl9mMzIpKSkKZmxvYXQxNng4X3QgdmN2dHRxX2YxNl9mMzIoZmxvYXQxNng4X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfZjMyX2YxNikpKQpmbG9hdDMyeDRfdCB2Y3Z0dHFfZjMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmN2dHRxX21fZjE2X2YzMikpKQpmbG9hdDE2eDhfdCB2Y3Z0dHFfbV9mMTZfZjMyKGZsb2F0MTZ4OF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Y3Z0dHFfbV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZjdnR0cV9tX2YzMl9mMTYoZmxvYXQzMng0X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZjdnR0cV94X2YzMl9mMTYpKSkKZmxvYXQzMng0X3QgdmN2dHRxX3hfZjMyX2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZkdXBxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZkdXBxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZkdXBxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZkdXBxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2ZHVwcV9uX2YxNihmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZkdXBxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZkdXBxX25fZjMyKGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmR1cHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2ZHVwcV94X25fZjE2KGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZHVwcV94X25fZjMyKSkpCmZsb2F0MzJ4NF90IHZkdXBxX3hfbl9mMzIoZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX2YxNikpKQpmbG9hdDE2eDhfdCB2ZW9ycV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMTYpKSkKZmxvYXQxNng4X3QgdmVvcnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9mMzIpKSkKZmxvYXQzMng0X3QgdmVvcnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZlb3JxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmVvcnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2ZW9ycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmVvcnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2ZW9ycV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmVvcnFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdmVvcnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZlb3JxX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zlb3JxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZlb3JxX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92ZW9ycV94X2YzMikpKQpmbG9hdDMyeDRfdCB2ZW9ycV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFxX21fbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX21fbl9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXFfbV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMTYpKSkKZmxvYXQxNng4X3QgdmZtYXFfbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Zm1hcV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hcV9uX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtYXFfbl9mMzIpKSkKZmxvYXQzMng0X3QgdmZtYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFzcV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbWFzcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFzcV9tX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbWFzcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hc3Ffbl9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1hc3EoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hc3Ffbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbWFzcV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1hc3EoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YxNikpKQpmbG9hdDE2eDhfdCB2Zm1zcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZmbXNxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX2YzMikpKQpmbG9hdDMyeDRfdCB2Zm1zcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfZjMyKSkpCmZsb2F0MzJ4NF90IHZmbXNxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZmbXNxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMTYpKSkKZmxvYXQxNng4X3QgdmZtc3FfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZmbXNxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZmbXNxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmZtc3FfbV9mMzIpKSkKZmxvYXQzMng0X3QgdmZtc3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZnZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZfdCB2Z2V0cV9sYW5lX2YxNihmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YxNikpKQpmbG9hdDE2X3QgdmdldHFfbGFuZShmbG9hdDE2eDhfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92Z2V0cV9sYW5lX2YzMikpKQpmbG9hdDMyX3QgdmdldHFfbGFuZV9mMzIoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmdldHFfbGFuZV9mMzIpKSkKZmxvYXQzMl90IHZnZXRxX2xhbmUoZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZDFxX2YxNihjb25zdCBmbG9hdDE2X3QgKik7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZDFxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMzIpKSkKZmxvYXQzMng0X3QgdmxkMXFfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQxcV9mMzIpKSkKZmxvYXQzMng0X3QgdmxkMXEoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZDFxX3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDFxX3pfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZDFxX3ooY29uc3QgZmxvYXQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkMXFfel9mMzIoY29uc3QgZmxvYXQzMl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkMXFfel9mMzIpKSkKZmxvYXQzMng0X3QgdmxkMXFfeihjb25zdCBmbG9hdDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMTYpKSkKZmxvYXQxNng4eDJfdCB2bGQycV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YxNikpKQpmbG9hdDE2eDh4Ml90IHZsZDJxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQycV9mMzIpKSkKZmxvYXQzMng0eDJfdCB2bGQycV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDJxX2YzMikpKQpmbG9hdDMyeDR4Ml90IHZsZDJxKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMTYpKSkKZmxvYXQxNng4eDRfdCB2bGQ0cV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YxNikpKQpmbG9hdDE2eDh4NF90IHZsZDRxKGNvbnN0IGZsb2F0MTZfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGQ0cV9mMzIpKSkKZmxvYXQzMng0eDRfdCB2bGQ0cV9mMzIoY29uc3QgZmxvYXQzMl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZDRxX2YzMikpKQpmbG9hdDMyeDR4NF90IHZsZDRxKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZsZHJocV9mMTYoY29uc3QgZmxvYXQxNl90ICopOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldF9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfZ2F0aGVyX29mZnNldChjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9vZmZzZXRfeihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YxNihjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldChjb25zdCBmbG9hdDE2X3QgKiwgdWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjE2KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMTYpKSkKZmxvYXQxNng4X3QgdmxkcmhxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96KGNvbnN0IGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJocV96X2YxNikpKQpmbG9hdDE2eDhfdCB2bGRyaHFfel9mMTYoY29uc3QgZmxvYXQxNl90ICosIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZjMyKGNvbnN0IGZsb2F0MzJfdCAqKTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2VfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV9mMzIodWludDMyeDRfdCwgaW50KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX2Jhc2Vfd2JfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV93Yl9mMzIodWludDMyeDRfdCAqLCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfYmFzZV93Yl96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX2Jhc2Vfd2Jfel9mMzIodWludDMyeDRfdCAqLCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9iYXNlX3pfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfYmFzZV96X2YzMih1aW50MzJ4NF90LCBpbnQsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfb2Zmc2V0KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX29mZnNldF96KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfZjMyKGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0KGNvbnN0IGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3pfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV9nYXRoZXJfc2hpZnRlZF9vZmZzZXRfel9mMzIoY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX2dhdGhlcl9zaGlmdGVkX29mZnNldF96X2YzMikpKQpmbG9hdDMyeDRfdCB2bGRyd3FfZ2F0aGVyX3NoaWZ0ZWRfb2Zmc2V0X3ooY29uc3QgZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdmxkcndxX3pfZjMyKSkpCmZsb2F0MzJ4NF90IHZsZHJ3cV96X2YzMihjb25zdCBmbG9hdDMyX3QgKiwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tYXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtYXhubWFxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubWFxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1hcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubWFxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZtYXhubWFxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1hcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1hcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tYXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tYXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjE2KSkpCmZsb2F0MTZfdCB2bWF4bm1hdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1heG5tYXZxX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm1hdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCB2bWF4bm1hdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtYXhubWF2cV9wKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm1hdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1hdnFfcF9mMzIpKSkKZmxvYXQzMl90IHZtYXhubWF2cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1xKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1xKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm1xX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtYXhubXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm1heG5tcV94X2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2bWF4bm1xX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm1heG5tcV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2bWF4bm1xX3goZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tdnFfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tdnEoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm12cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1heG5tdnFfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm12cShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tdnFfcF9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWF4bm12cV9wX2YxNikpKQpmbG9hdDE2X3Qgdm1heG5tdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm12cV9wX2YzMihmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtYXhubXZxX3BfZjMyKSkpCmZsb2F0MzJfdCB2bWF4bm12cV9wKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubWFxX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YxNikpKQpmbG9hdDE2eDhfdCB2bWlubm1hcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1hcV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tYXEoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1hcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bWlubm1hcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tYXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubWFxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubWF2cV9mMTYoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YxNikpKQpmbG9hdDE2X3Qgdm1pbm5tYXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9mMzIpKSkKZmxvYXQzMl90IHZtaW5ubWF2cV9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tYXZxKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YxNikpKQpmbG9hdDE2X3Qgdm1pbm5tYXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjE2KSkpCmZsb2F0MTZfdCB2bWlubm1hdnFfcChmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubWF2cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tYXZxX3BfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tYXZxX3BfZjMyKSkpCmZsb2F0MzJfdCB2bWlubm1hdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tcShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubXFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tcShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tcV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tcV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bWlubm1xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZtaW5ubXFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm1pbm5tcV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZtaW5ubXFfeF9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm1pbm5tcV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubXZxX2YxNihmbG9hdDE2X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubXZxKGZsb2F0MTZfdCwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tdnFfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtaW5ubXZxX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tdnEoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubXZxX3BfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm1pbm5tdnFfcF9mMTYpKSkKZmxvYXQxNl90IHZtaW5ubXZxX3AoZmxvYXQxNl90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tdnFfcF9mMzIoZmxvYXQzMl90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bWlubm12cV9wX2YzMikpKQpmbG9hdDMyX3Qgdm1pbm5tdnFfcChmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX21fbl9mMTYpKSkKZmxvYXQxNng4X3Qgdm11bHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZtdWxxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZtdWxxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZtdWxxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bXVscV94X2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm11bHFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV94X25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2bXVscV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV94X25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm11bHFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2bXVscV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZuZWdxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfZjE2KSkpCmZsb2F0MTZ4OF90IHZuZWdxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3FfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3EoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZuZWdxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZuZWdxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2bmVncV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2bmVncV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm5lZ3FfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm5lZ3FfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm5lZ3FfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm5lZ3FfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YzMikpKQpmbG9hdDMyeDRfdCB2bmVncV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92bmVncV94X2YzMikpKQpmbG9hdDMyeDRfdCB2bmVncV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX2YxNikpKQpmbG9hdDE2eDhfdCB2b3JucV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ybnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ybnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZvcm5xKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ybnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2b3JucV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ybnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2b3JucV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ybnFfeF9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ybnFfeF9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcm5xX3goZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Zvcm5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZvcm5xX3hfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JucV94X2YzMikpKQpmbG9hdDMyeDRfdCB2b3JucV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ycnFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcnJxKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZvcnJxX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX2YzMikpKQpmbG9hdDMyeDRfdCB2b3JycShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZvcnJxX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMTYpKSkKZmxvYXQxNng4X3Qgdm9ycnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZvcnJxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfbV9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ycnFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZvcnJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZvcnJxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YxNikpKQpmbG9hdDE2eDhfdCB2b3JycV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92b3JycV94X2YzMikpKQpmbG9hdDMyeDRfdCB2b3JycV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdm9ycnFfeF9mMzIpKSkKZmxvYXQzMng0X3Qgdm9ycnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YxNikpKQpmbG9hdDE2eDhfdCB2cHNlbHFfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZwc2VscShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnBzZWxxX2YzMikpKQpmbG9hdDMyeDRfdCB2cHNlbHFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cHNlbHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZwc2VscShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfZjMyKSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zMTYpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczE2KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfczMyKSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3MzMikpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M2NCkpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zNjQpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl9zOCkpKQpmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjE2X3M4KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2KGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTE2KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MTYpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTMyKSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91MzIpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTY0KSkpCmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YxNl91NjQpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTgpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMTZfdTgpKSkKZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTYodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfZjE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zMTYpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczE2KGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKGludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfczMyKSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3MzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3MzMikpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMihpbnQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M2NCkpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zNjQoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zNjQpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIoaW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl9zOCkpKQpmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zOChpbnQ4eDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfZjMyX3M4KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyKGludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTE2KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UxNih1aW50MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MTYpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIodWludDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTMyKSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UzMih1aW50MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91MzIpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIodWludDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTY0KSkpCmZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3U2NCh1aW50NjR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX2YzMl91NjQpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIodWludDY0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTgpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTgodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9mMzJfdTgpKSkKZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzIodWludDh4MTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMTZfZjE2KSkpCmludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YxNikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczE2X2YzMikpKQppbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MxNl9mMzIpKSkKaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2KGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3MzMl9mMTYpKSkKaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjE2KSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zMzJfZjMyKSkpCmludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczMyX2YzMikpKQppbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZWludGVycHJldHFfczY0X2YxNikpKQppbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMTYpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M2NF9mMzIpKSkKaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zNjRfZjMyKSkpCmludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMTYpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YxNikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV9zOF9mMzIpKSkKaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3M4X2YzMikpKQppbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjE2KSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMTYpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MTZfZjMyKSkpCnVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UxNl9mMzIpKSkKdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjE2KSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMTYpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91MzJfZjMyKSkpCnVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3UzMl9mMzIpKSkKdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjE2KSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMTYpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NChmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91NjRfZjMyKSkpCnVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U2NF9mMzIpKSkKdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NChmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJlaW50ZXJwcmV0cV91OF9mMTYpKSkKdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YzMikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmVpbnRlcnByZXRxX3U4X2YzMikpKQp1aW50OHgxNl90IHZyZWludGVycHJldHFfdTgoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXYzMnFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2MzJxKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXYzMnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXYzMnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjMycV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2MzJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXYzMnFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjMycV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2MzJxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjY0cV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXY2NHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX2YzMikpKQpmbG9hdDMyeDRfdCB2cmV2NjRxKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXY2NHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJldjY0cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZyZXY2NHFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJldjY0cV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cmV2NjRxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZyZXY2NHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cmV2NjRxX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJldjY0cV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cmV2NjRxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZyZXY2NHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJldjY0cV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kYXEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZGFxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kYXEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kYXFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kYXFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRhcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZGFxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRhcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZGFxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kYXFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kYXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZGFxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRhcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kYXFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcV9mMTYoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG1xKGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRtcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG1xKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG1xX21fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG1xX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbXFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRtcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbXFfbShmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRtcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZG1xX3goZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG1xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRtcV94X2YzMihmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbXFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG1xX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRucShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbnFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRucShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRucV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRucV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG5xX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kbnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZG5xX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kbnFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRucV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRucV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kbnFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZG5xX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRucV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxX2YxNihmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHBxX2YzMihmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcHEoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcHFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRwcV9tX2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHBxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRwcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHBxX3hfZjE2KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcHFfeChmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcHFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHBxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRwcV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcHFfeChmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcV9mMzIoZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnJuZHFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmRxX20oZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX21fZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5kcV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcV94X2YxNihmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5kcV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5kcV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRxX3hfZjMyKGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmRxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmRxX3goZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHFfZjE2KGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmR4cShmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX2YzMikpKQpmbG9hdDMyeDRfdCB2cm5keHFfZjMyKGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmR4cShmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmR4cV9tX2YxNihmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX21fZjE2KSkpCmZsb2F0MTZ4OF90IHZybmR4cV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHhxX21fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92cm5keHFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnJuZHhxX20oZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YxNikpKQpmbG9hdDE2eDhfdCB2cm5keHFfeF9mMTYoZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZybmR4cV94KGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZybmR4cV94X2YzMikpKQpmbG9hdDMyeDRfdCB2cm5keHFfeF9mMzIoZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnJuZHhxX3hfZjMyKSkpCmZsb2F0MzJ4NF90IHZybmR4cV94KGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjE2KSkpCmZsb2F0MTZ4OF90IHZzZXRxX2xhbmVfZjE2KGZsb2F0MTZfdCwgZmxvYXQxNng4X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMTYpKSkKZmxvYXQxNng4X3QgdnNldHFfbGFuZShmbG9hdDE2X3QsIGZsb2F0MTZ4OF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzZXRxX2xhbmVfZjMyKSkpCmZsb2F0MzJ4NF90IHZzZXRxX2xhbmVfZjMyKGZsb2F0MzJfdCwgZmxvYXQzMng0X3QsIGludCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnNldHFfbGFuZV9mMzIpKSkKZmxvYXQzMng0X3QgdnNldHFfbGFuZShmbG9hdDMyX3QsIGZsb2F0MzJ4NF90LCBpbnQpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YxNikpKQp2b2lkIHZzdDFxX2YxNihmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX2YxNikpKQp2b2lkIHZzdDFxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjMyKSkpCnZvaWQgdnN0MXFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MXFfZjMyKSkpCnZvaWQgdnN0MXEoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YxNikpKQp2b2lkIHZzdDFxX3BfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QxcV9wX2YxNikpKQp2b2lkIHZzdDFxX3AoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjMyKSkpCnZvaWQgdnN0MXFfcF9mMzIoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdDFxX3BfZjMyKSkpCnZvaWQgdnN0MXFfcChmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjE2KSkpCnZvaWQgdnN0MnFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMTYpKSkKdm9pZCB2c3QycShmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0MnFfZjMyKSkpCnZvaWQgdnN0MnFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4Ml90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3QycV9mMzIpKSkKdm9pZCB2c3QycShmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDJfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjE2KSkpCnZvaWQgdnN0NHFfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDh4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMTYpKSkKdm9pZCB2c3Q0cShmbG9hdDE2X3QgKiwgZmxvYXQxNng4eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0NHFfZjMyKSkpCnZvaWQgdnN0NHFfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDR4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Q0cV9mMzIpKSkKdm9pZCB2c3Q0cShmbG9hdDMyX3QgKiwgZmxvYXQzMng0eDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX2YxNikpKQp2b2lkIHZzdHJocV9mMTYoZmxvYXQxNl90ICosIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfZjE2KSkpCnZvaWQgdnN0cmhxKGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3BfZjE2KSkpCnZvaWQgdnN0cmhxX3BfZjE2KGZsb2F0MTZfdCAqLCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfcF9mMTYpKSkKdm9pZCB2c3RyaHFfcChmbG9hdDE2X3QgKiwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX29mZnNldF9mMTYoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfZjE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfZjE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfb2Zmc2V0X3BfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9vZmZzZXRfcF9mMTYpKSkKdm9pZCB2c3RyaHFfc2NhdHRlcl9vZmZzZXRfcChmbG9hdDE2X3QgKiwgdWludDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjE2KSkpCnZvaWQgdnN0cmhxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjE2KGZsb2F0MTZfdCAqLCB1aW50MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3RyaHFfc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YxNikpKQp2b2lkIHZzdHJocV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoZmxvYXQxNl90ICosIHVpbnQxNng4X3QsIGZsb2F0MTZ4OF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9mMzIpKSkKdm9pZCB2c3Ryd3FfZjMyKGZsb2F0MzJfdCAqLCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX2YzMikpKQp2b2lkIHZzdHJ3cShmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9wX2YzMikpKQp2b2lkIHZzdHJ3cV9wX2YzMihmbG9hdDMyX3QgKiwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3BfZjMyKSkpCnZvaWQgdnN0cndxX3AoZmxvYXQzMl90ICosIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV9mMzIodWludDMyeDRfdCwgaW50LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2VfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9iYXNlX3BfZjMyKHVpbnQzMng0X3QsIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2VfcCh1aW50MzJ4NF90LCBpbnQsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9mMzIodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2IodWludDMyeDRfdCAqLCBpbnQsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9iYXNlX3diX3BfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX2YzMih1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfYmFzZV93Yl9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX2Jhc2Vfd2JfcCh1aW50MzJ4NF90ICosIGludCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX29mZnNldF9mMzIoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0KGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfb2Zmc2V0X3BfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcF9mMzIpKSkKdm9pZCB2c3Ryd3Ffc2NhdHRlcl9vZmZzZXRfcChmbG9hdDMyX3QgKiwgdWludDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXRfZjMyKSkpCnZvaWQgdnN0cndxX3NjYXR0ZXJfc2hpZnRlZF9vZmZzZXQoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3BfZjMyKGZsb2F0MzJfdCAqLCB1aW50MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3Ryd3Ffc2NhdHRlcl9zaGlmdGVkX29mZnNldF9wX2YzMikpKQp2b2lkIHZzdHJ3cV9zY2F0dGVyX3NoaWZ0ZWRfb2Zmc2V0X3AoZmxvYXQzMl90ICosIHVpbnQzMng0X3QsIGZsb2F0MzJ4NF90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnEoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfbV9mMTYoZmxvYXQxNng4X3QsIGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV9tKGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfbV9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV9tX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgZmxvYXQxNl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX21fbl9mMTYpKSkKZmxvYXQxNng4X3QgdnN1YnFfbShmbG9hdDE2eDhfdCwgZmxvYXQxNng4X3QsIGZsb2F0MTZfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV9tX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxX21fbl9mMzIoZmxvYXQzMng0X3QsIGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfbV9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV9tKGZsb2F0MzJ4NF90LCBmbG9hdDMyeDRfdCwgZmxvYXQzMl90LCBtdmVfcHJlZDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxX25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxKGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxX25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX25fZjMyKSkpCmZsb2F0MzJ4NF90IHZzdWJxKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3ZzdWJxX3hfZjE2KSkpCmZsb2F0MTZ4OF90IHZzdWJxX3hfZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXywgX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2eDhfdCwgbXZlX3ByZWQxNl90KTsKc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19jbGFuZ19hcm1fYnVpbHRpbl9hbGlhcyhfX2J1aWx0aW5fYXJtX212ZV92c3VicV94X2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV94X2YzMihmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9mMzIpKSkKZmxvYXQzMng0X3QgdnN1YnFfeChmbG9hdDMyeDRfdCwgZmxvYXQzMng0X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV94X25fZjE2KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YxNikpKQpmbG9hdDE2eDhfdCB2c3VicV94KGZsb2F0MTZ4OF90LCBmbG9hdDE2X3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV94X25fZjMyKGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnN1YnFfeF9uX2YzMikpKQpmbG9hdDMyeDRfdCB2c3VicV94KGZsb2F0MzJ4NF90LCBmbG9hdDMyX3QsIG12ZV9wcmVkMTZfdCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX2YxNikpKQpmbG9hdDE2eDhfdCB2dW5pbml0aWFsaXplZHFfZjE2KCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX2YzMikpKQpmbG9hdDMyeDRfdCB2dW5pbml0aWFsaXplZHFfZjMyKCk7CnN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fY2xhbmdfYXJtX2J1aWx0aW5fYWxpYXMoX19idWlsdGluX2FybV9tdmVfdnVuaW5pdGlhbGl6ZWRxX3BvbHltb3JwaGljX2YxNikpKQpmbG9hdDE2eDhfdCB2dW5pbml0aWFsaXplZHEoZmxvYXQxNng4X3QpOwpzdGF0aWMgX19pbmxpbmVfXyBfX2F0dHJpYnV0ZV9fKChfX292ZXJsb2FkYWJsZV9fLCBfX2NsYW5nX2FybV9idWlsdGluX2FsaWFzKF9fYnVpbHRpbl9hcm1fbXZlX3Z1bmluaXRpYWxpemVkcV9wb2x5bW9ycGhpY19mMzIpKSkKZmxvYXQzMng0X3QgdnVuaW5pdGlhbGl6ZWRxKGZsb2F0MzJ4NF90KTsKCiNlbmRpZiAvKiAoX19BUk1fRkVBVFVSRV9NVkUgJiAyKSAmJiAoIWRlZmluZWQgX19BUk1fTVZFX1BSRVNFUlZFX1VTRVJfTkFNRVNQQUNFKSAqLwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLyogZXh0ZXJuICJDIiAqLwojZW5kaWYKCiNlbmRpZiAvKiBfX0FSTV9NVkVfSCAqLwoAYXZ4NTEyY2RpbnRyaW4uaAAvKj09PS0tLS0gYXZ4NTEydmxiaXRhbGdpbnRyaW4uaCAtIEJJVEFMRyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxiaXRhbGdpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyVkxCSVRBTEdJTlRSSU5fSAojZGVmaW5lIF9fQVZYNTEyVkxCSVRBTEdJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmJpdGFsZyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2bCxhdng1MTJiaXRhbGciKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcG9wY250X2VwaTE2KF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cG9wY250d18yNTYoKF9fdjE2aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3BvcGNudF9lcGkxNihfX20yNTZpIF9fQSwgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpIF9fVSwKICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3BvcGNudF9lcGkxNihfX0IpLAogICAgICAgICAgICAgIChfX3YxNmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfcG9wY250X2VwaTE2KF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX3BvcGNudF9lcGkxNigoX19tMjU2aSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICBfX1UsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3BvcGNudF9lcGkxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBvcGNudHdfMTI4KChfX3Y4aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BvcGNudF9lcGkxNihfX20xMjhpIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3BvcGNudF9lcGkxNihfX0IpLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9wb3BjbnRfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fbWFza19wb3BjbnRfZXBpMTYoKF9fbTEyOGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgX19VLAogICAgICAgICAgICAgIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wb3BjbnRfZXBpOChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfdnBvcGNudGJfMjU2KChfX3YzMnFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wb3BjbnRfZXBpOChfX20yNTZpIF9fQSwgX19tbWFzazMyIF9fVSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfMjU2KChfX21tYXNrMzIpIF9fVSwKICAgICAgICAgICAgICAoX192MzJxaSkgX21tMjU2X3BvcGNudF9lcGk4KF9fQiksCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wb3BjbnRfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQikKewogIHJldHVybiBfbW0yNTZfbWFza19wb3BjbnRfZXBpOCgoX19tMjU2aSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICBfX1UsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3BvcGNudF9lcGk4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cG9wY250Yl8xMjgoKF9fdjE2cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BvcGNudF9lcGk4KF9fbTEyOGkgX19BLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfc2VsZWN0Yl8xMjgoKF9fbW1hc2sxNikgX19VLAogICAgICAgICAgICAgIChfX3YxNnFpKSBfbW1fcG9wY250X2VwaTgoX19CKSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BvcGNudF9lcGk4KF9fbW1hc2sxNiBfX1UsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9tYXNrX3BvcGNudF9lcGk4KChfX20xMjhpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSwKICAgICAgICAgICAgICBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMzIgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzayhfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2szMikgX19idWlsdGluX2lhMzJfdnBzaHVmYml0cW1iMjU2X21hc2soKF9fdjMycWkpIF9fQSwKICAgICAgICAgICAgICAoX192MzJxaSkgX19CLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2szMiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2JpdHNodWZmbGVfZXBpNjRfbWFzayhfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpCnsKICByZXR1cm4gX21tMjU2X21hc2tfYml0c2h1ZmZsZV9lcGk2NF9tYXNrKChfX21tYXNrMzIpIC0xLAogICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrMTYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzayhfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfdnBzaHVmYml0cW1iMTI4X21hc2soKF9fdjE2cWkpIF9fQSwKICAgICAgICAgICAgICAoX192MTZxaSkgX19CLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2sxNiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2JpdHNodWZmbGVfZXBpNjRfbWFzayhfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX21hc2tfYml0c2h1ZmZsZV9lcGk2NF9tYXNrKChfX21tYXNrMTYpIC0xLAogICAgICAgICAgICAgIF9fQSwKICAgICAgICAgICAgICBfX0IpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAC8qPT09LS0tLSBhdng1MTJ2cG9wY250ZHFpbnRyaW4uaCAtIEFWWDUxMlZQT1BDTlREUSBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAiTmV2ZXIgdXNlIDxhdng1MTJ2cG9wY250ZHF2bGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWUE9QQ05URFFWTElOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJWUE9QQ05URFFWTElOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2cG9wY250ZHEsYXZ4NTEydmwiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJ2cG9wY250ZHEsYXZ4NTEydmwiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcG9wY250X2VwaTY0KF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwb3BjbnRxXzEyOCgoX192MmRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3BvcGNudF9lcGk2NChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjJkaSlfbW1fcG9wY250X2VwaTY0KF9fQSksIChfX3YyZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3BvcGNudF9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIF9tbV9tYXNrX3BvcGNudF9lcGk2NCgoX19tMTI4aSlfbW1fc2V0emVyb19zaTEyOCgpLCBfX1UsIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wb3BjbnRfZXBpMzIoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBvcGNudGRfMTI4KChfX3Y0c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfcG9wY250X2VwaTMyKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KAogICAgICAoX19tbWFzazgpX19VLCAoX192NHNpKV9tbV9wb3BjbnRfZXBpMzIoX19BKSwgKF9fdjRzaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfcG9wY250X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gX21tX21hc2tfcG9wY250X2VwaTMyKChfX20xMjhpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIF9fVSwgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BvcGNudF9lcGk2NChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cG9wY250cV8yNTYoKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19wb3BjbnRfZXBpNjQoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoCiAgICAgIChfX21tYXNrOClfX1UsIChfX3Y0ZGkpX21tMjU2X3BvcGNudF9lcGk2NChfX0EpLCAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9wb3BjbnRfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiBfbW0yNTZfbWFza19wb3BjbnRfZXBpNjQoKF9fbTI1NmkpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgX19VLCBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcG9wY250X2VwaTMyKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwb3BjbnRkXzI1NigoX192OHNpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3BvcGNudF9lcGkzMihfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigKICAgICAgKF9fbW1hc2s4KV9fVSwgKF9fdjhzaSlfbW0yNTZfcG9wY250X2VwaTMyKF9fQSksIChfX3Y4c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3BvcGNudF9lcGkzMihfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIF9tbTI1Nl9tYXNrX3BvcGNudF9lcGkzMigoX19tMjU2aSlfbW0yNTZfc2V0emVyb19zaTI1NigpLCBfX1UsIF9fQSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmCgBmMTZjaW50cmluLmgALyo9PT0tLS0tIGZsb2F0LmggLSBDaGFyYWN0ZXJpc3RpY3Mgb2YgZmxvYXRpbmcgcG9pbnQgdHlwZXMgLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0NMQU5HX0ZMT0FUX0gKI2RlZmluZSBfX0NMQU5HX0ZMT0FUX0gKCi8qIElmIHdlJ3JlIG9uIE1pbkdXLCBmYWxsIGJhY2sgdG8gdGhlIHN5c3RlbSdzIGZsb2F0LmgsIHdoaWNoIG1pZ2h0IGhhdmUKICogYWRkaXRpb25hbCBkZWZpbml0aW9ucyBwcm92aWRlZCBmb3IgV2luZG93cy4KICogRm9yIG1vcmUgZGV0YWlscyBzZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3kweWJ3OWZ5LmFzcHgKICoKICogQWxzbyBmYWxsIGJhY2sgb24gRGFyd2luIHRvIGFsbG93IGFkZGl0aW9uYWwgZGVmaW5pdGlvbnMgYW5kCiAqIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWVzLgogKi8KI2lmIChkZWZpbmVkKF9fQVBQTEVfXykgfHwgKGRlZmluZWQoX19NSU5HVzMyX18pIHx8IGRlZmluZWQoX01TQ19WRVIpKSkgJiYgXAogICAgX19TVERDX0hPU1RFRF9fICYmIF9faGFzX2luY2x1ZGVfbmV4dCg8ZmxvYXQuaD4pCgovKiBQcmlvciB0byBBcHBsZSdzIDEwLjcgU0RLLCBmbG9hdC5oIFNESyBoZWFkZXIgdXNlZCB0byBhcHBseSBhbiBleHRyYSBsZXZlbAogKiBvZiAjaW5jbHVkZV9uZXh0PGZsb2F0Lmg+IHRvIGtlZXAgTWV0cm93ZXJrcyBjb21waWxlcnMgaGFwcHkuIEF2b2lkIHRoaXMKICogZXh0cmEgaW5kaXJlY3Rpb24uCiAqLwojaWZkZWYgX19BUFBMRV9fCiNkZWZpbmUgX0ZMT0FUX0hfCiNlbmRpZgoKIyAgaW5jbHVkZV9uZXh0IDxmbG9hdC5oPgoKLyogVW5kZWZpbmUgYW55dGhpbmcgdGhhdCB3ZSdsbCBiZSByZWRlZmluaW5nIGJlbG93LiAqLwojICB1bmRlZiBGTFRfRVZBTF9NRVRIT0QKIyAgdW5kZWYgRkxUX1JPVU5EUwojICB1bmRlZiBGTFRfUkFESVgKIyAgdW5kZWYgRkxUX01BTlRfRElHCiMgIHVuZGVmIERCTF9NQU5UX0RJRwojICB1bmRlZiBMREJMX01BTlRfRElHCiMgIGlmIF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKIyAgICB1bmRlZiBERUNJTUFMX0RJRwojICBlbmRpZgojICB1bmRlZiBGTFRfRElHCiMgIHVuZGVmIERCTF9ESUcKIyAgdW5kZWYgTERCTF9ESUcKIyAgdW5kZWYgRkxUX01JTl9FWFAKIyAgdW5kZWYgREJMX01JTl9FWFAKIyAgdW5kZWYgTERCTF9NSU5fRVhQCiMgIHVuZGVmIEZMVF9NSU5fMTBfRVhQCiMgIHVuZGVmIERCTF9NSU5fMTBfRVhQCiMgIHVuZGVmIExEQkxfTUlOXzEwX0VYUAojICB1bmRlZiBGTFRfTUFYX0VYUAojICB1bmRlZiBEQkxfTUFYX0VYUAojICB1bmRlZiBMREJMX01BWF9FWFAKIyAgdW5kZWYgRkxUX01BWF8xMF9FWFAKIyAgdW5kZWYgREJMX01BWF8xMF9FWFAKIyAgdW5kZWYgTERCTF9NQVhfMTBfRVhQCiMgIHVuZGVmIEZMVF9NQVgKIyAgdW5kZWYgREJMX01BWAojICB1bmRlZiBMREJMX01BWAojICB1bmRlZiBGTFRfRVBTSUxPTgojICB1bmRlZiBEQkxfRVBTSUxPTgojICB1bmRlZiBMREJMX0VQU0lMT04KIyAgdW5kZWYgRkxUX01JTgojICB1bmRlZiBEQkxfTUlOCiMgIHVuZGVmIExEQkxfTUlOCiMgIGlmIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTcwM0wKIyAgICB1bmRlZiBGTFRfVFJVRV9NSU4KIyAgICB1bmRlZiBEQkxfVFJVRV9NSU4KIyAgICB1bmRlZiBMREJMX1RSVUVfTUlOCiMgICAgdW5kZWYgRkxUX0RFQ0lNQUxfRElHCiMgICAgdW5kZWYgREJMX0RFQ0lNQUxfRElHCiMgICAgdW5kZWYgTERCTF9ERUNJTUFMX0RJRwojICAgIHVuZGVmIEZMVF9IQVNfU1VCTk9STQojICAgIHVuZGVmIERCTF9IQVNfU1VCTk9STQojICAgIHVuZGVmIExEQkxfSEFTX1NVQk5PUk0KIyAgZW5kaWYKI2VuZGlmCgovKiBDaGFyYWN0ZXJpc3RpY3Mgb2YgZmxvYXRpbmcgcG9pbnQgdHlwZXMsIEM5OSA1LjIuNC4yLjIgKi8KCiNkZWZpbmUgRkxUX0VWQUxfTUVUSE9EIF9fRkxUX0VWQUxfTUVUSE9EX18KI2RlZmluZSBGTFRfUk9VTkRTIChfX2J1aWx0aW5fZmx0X3JvdW5kcygpKQojZGVmaW5lIEZMVF9SQURJWCBfX0ZMVF9SQURJWF9fCgojZGVmaW5lIEZMVF9NQU5UX0RJRyBfX0ZMVF9NQU5UX0RJR19fCiNkZWZpbmUgREJMX01BTlRfRElHIF9fREJMX01BTlRfRElHX18KI2RlZmluZSBMREJMX01BTlRfRElHIF9fTERCTF9NQU5UX0RJR19fCgojaWYgX19TVERDX1ZFUlNJT05fXyA+PSAxOTk5MDFMIHx8ICFkZWZpbmVkKF9fU1RSSUNUX0FOU0lfXykgfHwgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAojICBkZWZpbmUgREVDSU1BTF9ESUcgX19ERUNJTUFMX0RJR19fCiNlbmRpZgoKI2RlZmluZSBGTFRfRElHIF9fRkxUX0RJR19fCiNkZWZpbmUgREJMX0RJRyBfX0RCTF9ESUdfXwojZGVmaW5lIExEQkxfRElHIF9fTERCTF9ESUdfXwoKI2RlZmluZSBGTFRfTUlOX0VYUCBfX0ZMVF9NSU5fRVhQX18KI2RlZmluZSBEQkxfTUlOX0VYUCBfX0RCTF9NSU5fRVhQX18KI2RlZmluZSBMREJMX01JTl9FWFAgX19MREJMX01JTl9FWFBfXwoKI2RlZmluZSBGTFRfTUlOXzEwX0VYUCBfX0ZMVF9NSU5fMTBfRVhQX18KI2RlZmluZSBEQkxfTUlOXzEwX0VYUCBfX0RCTF9NSU5fMTBfRVhQX18KI2RlZmluZSBMREJMX01JTl8xMF9FWFAgX19MREJMX01JTl8xMF9FWFBfXwoKI2RlZmluZSBGTFRfTUFYX0VYUCBfX0ZMVF9NQVhfRVhQX18KI2RlZmluZSBEQkxfTUFYX0VYUCBfX0RCTF9NQVhfRVhQX18KI2RlZmluZSBMREJMX01BWF9FWFAgX19MREJMX01BWF9FWFBfXwoKI2RlZmluZSBGTFRfTUFYXzEwX0VYUCBfX0ZMVF9NQVhfMTBfRVhQX18KI2RlZmluZSBEQkxfTUFYXzEwX0VYUCBfX0RCTF9NQVhfMTBfRVhQX18KI2RlZmluZSBMREJMX01BWF8xMF9FWFAgX19MREJMX01BWF8xMF9FWFBfXwoKI2RlZmluZSBGTFRfTUFYIF9fRkxUX01BWF9fCiNkZWZpbmUgREJMX01BWCBfX0RCTF9NQVhfXwojZGVmaW5lIExEQkxfTUFYIF9fTERCTF9NQVhfXwoKI2RlZmluZSBGTFRfRVBTSUxPTiBfX0ZMVF9FUFNJTE9OX18KI2RlZmluZSBEQkxfRVBTSUxPTiBfX0RCTF9FUFNJTE9OX18KI2RlZmluZSBMREJMX0VQU0lMT04gX19MREJMX0VQU0lMT05fXwoKI2RlZmluZSBGTFRfTUlOIF9fRkxUX01JTl9fCiNkZWZpbmUgREJMX01JTiBfX0RCTF9NSU5fXwojZGVmaW5lIExEQkxfTUlOIF9fTERCTF9NSU5fXwoKI2lmIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pIHx8IF9fY3BsdXNwbHVzID49IDIwMTcwM0wKIyAgZGVmaW5lIEZMVF9UUlVFX01JTiBfX0ZMVF9ERU5PUk1fTUlOX18KIyAgZGVmaW5lIERCTF9UUlVFX01JTiBfX0RCTF9ERU5PUk1fTUlOX18KIyAgZGVmaW5lIExEQkxfVFJVRV9NSU4gX19MREJMX0RFTk9STV9NSU5fXwojICBkZWZpbmUgRkxUX0RFQ0lNQUxfRElHIF9fRkxUX0RFQ0lNQUxfRElHX18KIyAgZGVmaW5lIERCTF9ERUNJTUFMX0RJRyBfX0RCTF9ERUNJTUFMX0RJR19fCiMgIGRlZmluZSBMREJMX0RFQ0lNQUxfRElHIF9fTERCTF9ERUNJTUFMX0RJR19fCiMgIGRlZmluZSBGTFRfSEFTX1NVQk5PUk0gX19GTFRfSEFTX0RFTk9STV9fCiMgIGRlZmluZSBEQkxfSEFTX1NVQk5PUk0gX19EQkxfSEFTX0RFTk9STV9fCiMgIGRlZmluZSBMREJMX0hBU19TVUJOT1JNIF9fTERCTF9IQVNfREVOT1JNX18KI2VuZGlmCgojaWZkZWYgX19TVERDX1dBTlRfSUVDXzYwNTU5X1RZUEVTX0VYVF9fCiMgIGRlZmluZSBGTFQxNl9NQU5UX0RJRyAgICBfX0ZMVDE2X01BTlRfRElHX18KIyAgZGVmaW5lIEZMVDE2X0RFQ0lNQUxfRElHIF9fRkxUMTZfREVDSU1BTF9ESUdfXwojICBkZWZpbmUgRkxUMTZfRElHICAgICAgICAgX19GTFQxNl9ESUdfXwojICBkZWZpbmUgRkxUMTZfTUlOX0VYUCAgICAgX19GTFQxNl9NSU5fRVhQX18KIyAgZGVmaW5lIEZMVDE2X01JTl8xMF9FWFAgIF9fRkxUMTZfTUlOXzEwX0VYUF9fCiMgIGRlZmluZSBGTFQxNl9NQVhfRVhQICAgICBfX0ZMVDE2X01BWF9FWFBfXwojICBkZWZpbmUgRkxUMTZfTUFYXzEwX0VYUCAgX19GTFQxNl9NQVhfMTBfRVhQX18KIyAgZGVmaW5lIEZMVDE2X01BWCAgICAgICAgIF9fRkxUMTZfTUFYX18KIyAgZGVmaW5lIEZMVDE2X0VQU0lMT04gICAgIF9fRkxUMTZfRVBTSUxPTl9fCiMgIGRlZmluZSBGTFQxNl9NSU4gICAgICAgICBfX0ZMVDE2X01JTl9fCiMgIGRlZmluZSBGTFQxNl9UUlVFX01JTiAgICBfX0ZMVDE2X1RSVUVfTUlOX18KI2VuZGlmIC8qIF9fU1REQ19XQU5UX0lFQ182MDU1OV9UWVBFU19FWFRfXyAqLwoKI2VuZGlmIC8qIF9fQ0xBTkdfRkxPQVRfSCAqLwoALyo9PT0tLS0tIGZtYTRpbnRyaW4uaCAtIEZNQTQgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1g4NklOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxmbWE0aW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0ZNQTRJTlRSSU5fSAojZGVmaW5lIF9fRk1BNElOVFJJTl9ICgojaW5jbHVkZSA8cG1taW50cmluLmg+CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZm1hNCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJmbWE0IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFjY19wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkcHMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYWNjX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hY2Nfc3MoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFjY19zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tc3ViX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIC0oX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tc3ViX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIC0oX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tc3ViX3NkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9ubWFjY19wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkcHMoLShfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1hY2NfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX25tYWNjX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzcygtKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9ubWFjY19zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkKC0oX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1zdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzKC0oX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIC0oX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9ubXN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkKC0oX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIC0oX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX25tc3ViX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzcygtKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAtKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbm1zdWJfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYWRkc3ViX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hZGRzdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1YmFkZF9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAtKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbXN1YmFkZF9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFjY19wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYWNjX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYoKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAoX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21zdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2KChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgLShfX3Y4c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X25tYWNjX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Zm1hZGRwczI1NigtKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9ubWFjY19wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2KC0oX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIChfX3Y0ZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbm1zdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2KC0oX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIC0oX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9ubXN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2KC0oX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hZGRzdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzMjU2KChfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFkZHN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tc3ViYWRkX3BzKF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IsIF9fbTI1NiBfX0MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwczI1NigoX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIC0oX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tc3ViYWRkX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQyNTYoKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAtKF9fdjRkZilfX0MpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZiAvKiBfX0ZNQTRJTlRSSU5fSCAqLwoALyo9PT0tLS0tIHBtbWludHJpbi5oIC0gU1NFMyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1BNTUlOVFJJTl9ICiNkZWZpbmUgX19QTU1JTlRSSU5fSAoKI2luY2x1ZGUgPGVtbWludHJpbi5oPgoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc2UzIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIExvYWRzIGRhdGEgZnJvbSBhbiB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRvIGVsZW1lbnRzIGluIGEgMTI4LWJpdAovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIElmIHRoZSBhZGRyZXNzIG9mIHRoZSBkYXRhIGlzIG5vdCAxNi1ieXRlIGFsaWduZWQsIHRoZSBpbnN0cnVjdGlvbiBtYXkKLy8vICAgIHJlYWQgdHdvIGFkamFjZW50IGFsaWduZWQgYmxvY2tzIG9mIG1lbW9yeSB0byByZXRyaWV2ZSB0aGUgcmVxdWVzdGVkCi8vLyAgICBkYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZMRERRVSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbGRkcXVfc2kxMjgoX19tMTI4aSBjb25zdCAqX19wKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2xkZHF1KChjaGFyIGNvbnN0ICopX19wKTsKfQoKLy8vIEFkZHMgdGhlIGV2ZW4taW5kZXhlZCB2YWx1ZXMgYW5kIHN1YnRyYWN0cyB0aGUgb2RkLWluZGV4ZWQgdmFsdWVzIG9mCi8vLyAgICB0d28gMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERTVUJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGFsdGVybmF0aW5nIHN1bXMgYW5kCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzdWJfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZGRzdWJwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkhBRERQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHN1bXMgb2YKLy8vICAgIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9oYWRkcHMoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkhTVUJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlcgovLy8gICAgYml0cyBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIKLy8vICAgIGJpdHMgb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfaHN1YnBzKChfX3Y0c2YpX19hLCAoX192NHNmKV9fYik7Cn0KCi8vLyBNb3ZlcyBhbmQgZHVwbGljYXRlcyBvZGQtaW5kZXhlZCB2YWx1ZXMgZnJvbSBhIDEyOC1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGZsb2F0XSB0byBmbG9hdCB2YWx1ZXMgc3RvcmVkIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTSERVUCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBhbmQgWzk1OjY0XSBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIGFuZCBbMzE6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kIGR1cGxpY2F0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZWhkdXBfcHMoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDEsIDEsIDMsIDMpOwp9CgovLy8gRHVwbGljYXRlcyBldmVuLWluZGV4ZWQgdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzQgeCBmbG9hdF0gdG8gZmxvYXQgdmFsdWVzIHN0b3JlZCBpbiBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTTERVUCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gXG4KLy8vICAgIEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gYW5kIFs5NTo2NF0gb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIGFuZCBbMzE6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kIGR1cGxpY2F0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZWxkdXBfcHMoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfX2EsIDAsIDAsIDIsIDIpOwp9CgovLy8gQWRkcyB0aGUgZXZlbi1pbmRleGVkIHZhbHVlcyBhbmQgc3VidHJhY3RzIHRoZSBvZGQtaW5kZXhlZCB2YWx1ZXMgb2YKLy8vICAgIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERTVUJQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxlZnQgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSByaWdodCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGFsdGVybmF0aW5nIHN1bXMKLy8vICAgIGFuZCBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc3ViX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9hZGRzdWJwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvIDEyOC1iaXQKLy8vICAgIHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIQUREUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtIG9mIHRoZSB2YWx1ZXMgaXMgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtIG9mIHRoZSB2YWx1ZXMgaXMgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHN1bXMgb2YKLy8vICAgIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9oYWRkcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvIDEyOC1iaXQKLy8vICAgIHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIU1VCUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgZGlmZmVyZW5jZSBvZiB0aGUgdmFsdWVzIGlzIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2Ugb2YgdGhlIHZhbHVlcyBpcyBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwKLy8vICAgIGRpZmZlcmVuY2VzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9oc3VicGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIE1vdmVzIGFuZCBkdXBsaWNhdGVzIG9uZSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIHRvIGRvdWJsZS1wcmVjaXNpb24KLy8vICAgIHZhbHVlcyBzdG9yZWQgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9sb2FkZHVwX3BkKGRvdWJsZSBjb25zdCAqZHApOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRwCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBkb3VibGUtcHJlY2lzaW9uIHZhbHVlIHRvIGJlIG1vdmVkIGFuZCBkdXBsaWNhdGVkLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbW92ZWQgYW5kCi8vLyAgICBkdXBsaWNhdGVkIHZhbHVlcy4KI2RlZmluZSAgICAgICAgX21tX2xvYWRkdXBfcGQoZHApICAgICAgICBfbW1fbG9hZDFfcGQoZHApCgovLy8gTW92ZXMgYW5kIGR1cGxpY2F0ZXMgdGhlIGRvdWJsZS1wcmVjaXNpb24gdmFsdWUgaW4gdGhlIGxvd2VyIGJpdHMgb2YKLy8vICAgIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIHN0b3JlZCBpbiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkREVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4gQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cwovLy8gICAgWzEyNzo2NF0gYW5kIFs2MzowXSBvZiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCBhbmQKLy8vICAgIGR1cGxpY2F0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW92ZWR1cF9wZChfX20xMjhkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fYSwgKF9fdjJkZilfX2EsIDAsIDApOwp9CgovLy8gRXN0YWJsaXNoZXMgYSBsaW5lYXIgYWRkcmVzcyBtZW1vcnkgcmFuZ2UgdG8gYmUgbW9uaXRvcmVkIGFuZCBwdXRzCi8vLyAgICB0aGUgcHJvY2Vzc29yIGluIHRoZSBtb25pdG9yIGV2ZW50IHBlbmRpbmcgc3RhdGUuIERhdGEgc3RvcmVkIGluIHRoZQovLy8gICAgbW9uaXRvcmVkIGFkZHJlc3MgcmFuZ2UgY2F1c2VzIHRoZSBwcm9jZXNzb3IgdG8gZXhpdCB0aGUgcGVuZGluZyBzdGF0ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT05JVE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgVGhlIG1lbW9yeSByYW5nZSB0byBiZSBtb25pdG9yZWQuIFRoZSBzaXplIG9mIHRoZSByYW5nZSBpcyBkZXRlcm1pbmVkIGJ5Ci8vLyAgICBDUFVJRCBmdW5jdGlvbiAwMDAwXzAwMDVoLgovLy8gXHBhcmFtIF9fZXh0ZW5zaW9ucwovLy8gICAgT3B0aW9uYWwgZXh0ZW5zaW9ucyBmb3IgdGhlIG1vbml0b3Jpbmcgc3RhdGUuCi8vLyBccGFyYW0gX19oaW50cwovLy8gICAgT3B0aW9uYWwgaGludHMgZm9yIHRoZSBtb25pdG9yaW5nIHN0YXRlLgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbW9uaXRvcih2b2lkIGNvbnN0ICpfX3AsIHVuc2lnbmVkIF9fZXh0ZW5zaW9ucywgdW5zaWduZWQgX19oaW50cykKewogIF9fYnVpbHRpbl9pYTMyX21vbml0b3IoX19wLCBfX2V4dGVuc2lvbnMsIF9faGludHMpOwp9CgovLy8gVXNlZCB3aXRoIHRoZSBNT05JVE9SIGluc3RydWN0aW9uIHRvIHdhaXQgd2hpbGUgdGhlIHByb2Nlc3NvciBpcyBpbgovLy8gICAgdGhlIG1vbml0b3IgZXZlbnQgcGVuZGluZyBzdGF0ZS4gRGF0YSBzdG9yZWQgaW4gdGhlIG1vbml0b3JlZCBhZGRyZXNzCi8vLyAgICByYW5nZSBjYXVzZXMgdGhlIHByb2Nlc3NvciB0byBleGl0IHRoZSBwZW5kaW5nIHN0YXRlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1XQUlUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZXh0ZW5zaW9ucwovLy8gICAgT3B0aW9uYWwgZXh0ZW5zaW9ucyBmb3IgdGhlIG1vbml0b3Jpbmcgc3RhdGUsIHdoaWNoIG1heSB2YXJ5IGJ5Ci8vLyAgICBwcm9jZXNzb3IuCi8vLyBccGFyYW0gX19oaW50cwovLy8gICAgT3B0aW9uYWwgaGludHMgZm9yIHRoZSBtb25pdG9yaW5nIHN0YXRlLCB3aGljaCBtYXkgdmFyeSBieSBwcm9jZXNzb3IuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9td2FpdCh1bnNpZ25lZCBfX2V4dGVuc2lvbnMsIHVuc2lnbmVkIF9faGludHMpCnsKICBfX2J1aWx0aW5faWEzMl9td2FpdChfX2V4dGVuc2lvbnMsIF9faGludHMpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19QTU1JTlRSSU5fSCAqLwoALyo9PT0tLS0tIHN0ZGFsaWduLmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIGFsaWdubWVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19TVERBTElHTl9ICiNkZWZpbmUgX19TVERBTElHTl9ICgojaWZuZGVmIF9fY3BsdXNwbHVzCiNkZWZpbmUgYWxpZ25hcyBfQWxpZ25hcwojZGVmaW5lIGFsaWdub2YgX0FsaWdub2YKI2VuZGlmCgojZGVmaW5lIF9fYWxpZ25hc19pc19kZWZpbmVkIDEKI2RlZmluZSBfX2FsaWdub2ZfaXNfZGVmaW5lZCAxCgojZW5kaWYgLyogX19TVERBTElHTl9IICovCgB0c3hsZHRya2ludHJpbi5oAHg4NmdwcmludHJpbi5oAEludmFsaWQgdmFsdWUuAE1pc3NpbmcgYSBuYW1lIGZvciBvYmplY3QgbWVtYmVyLgBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvY29tbW9uL3BhdGhfdXRpbHMuY2MAUmV3cml0ZSBzY2hlbWEgcmVxdWVzdHMgJWQgbWF0Y2hlcywgYnV0IHRoZSByZWdleHAgb25seSBoYXMgJWQgcGFyZW50aGVzaXplZCBzdWJleHByZXNzaW9ucy4AQmFkIGNhbGwgdG8gUGFyc2VTdGF0ZTo6UGFyc2VQZXJsRmxhZ3MAXFcAWzpjbnRybDpdAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvY29tcGlsZS5jYwBVbmV4cGVjdGVkIG9wY29kZTogAGludmFsaWQgY2hhcmFjdGVyIGNsYXNzIHJhbmdlACBbdHJ1bmNhdGVkXQBCdWdpbmVzZQBDb21tb24ATWFoYWphbmkATWFrYXNhcgBPbGRfU291dGhfQXJhYmlhbgBTYXVyYXNodHJhAFNvAFRpZmluYWdoAHNpZ2FjdGlvbigpIGZhaWxlZAByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocmVnaW9uKSAlIGFyZW5hLT5wYWdlc2l6ZSA9PSAwAGUARGEAY2hhcjhfdABuYQBybQArPQBvUgA+Pj0AaXN0cmVhbQBERUFETElORV9FWENFRURFRABlZGdlLT5idHJlZSgpLT5oZWlnaHQoKSA9PSB0cmVlLT5oZWlnaHQoKSAtIDEASU5GAHRoaXMtPkF3YWl0Q29tbW9uKGNvbmQsIEtlcm5lbFRpbWVvdXQ6Ok5ldmVyKCkpAHJlcyB8fCB0Lmhhc190aW1lb3V0KCkAUmVhZGVyTG9jayBibG9ja2luZyAAQ2hlY2sgKHYgJiAoa011V3JpdGVyIHwga011UmVhZGVyKSkgIT0gKGtNdVdyaXRlciB8IGtNdVJlYWRlcikgZmFpbGVkOiAlczogTXV0ZXggY29ycnVwdDogYm90aCByZWFkZXIgYW5kIHdyaXRlciBsb2NrIGhlbGQ6ICVwAHB0aHJlYWRfZ2V0c2NoZWRwYXJhbSBmYWlsZWQ6ICVkAC0wMAAvZGF0YS9taXNjL3pvbmVpbmZvL2N1cnJlbnQvdHpkYXRhAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vZXhwb25lbnRpYXRpb24uYwBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2JuL3NoaWZ0LmMAUC0yNTYAJXMgZmFpbGVkLgpFeHBlY3RlZDogAGxpYigldSkAbWVtb3J5IGJ1ZmZlciByb3V0aW5lcwBIS0RGIGZ1bmN0aW9ucwBreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQuRW52Lm5hbWUAa3l0aGUucHJvdG8uQ29udGV4dERlcGVuZGVudFZlcnNpb24uQ29sdW1uLmxpbmtlZF9jb250ZXh0AGFzc2VtYmxlci13aXRoLWNwcAAtLWFuYWx5emUAS1lUSEVfRVhDTFVERV9BVVRPQ09ORklHVVJBVElPTl9GSUxFUwBoZWFkZXJfc2VhcmNoX2luZm8AQ2hlY2sgZmFpbGVkOiAAKTogAF9fd21taW50cmluX2Flcy5oAGF2eDUxMnZwb3BjbnRkcWludHJpbi5oAGNsZGVtb3RlaW50cmluLmgALyo9PT0tLS0tIGZtYWludHJpbi5oIC0gRk1BIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxmbWFpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRk1BSU5UUklOX0gKI2RlZmluZSBfX0ZNQUlOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZm1hIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImZtYSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygoX192NHNmKV9fQSwgKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZtYWRkX3NzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRzczMoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbWFkZF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkMygoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1zdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViX3NkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc2QzKChfX3YyZGYpX19BLCAoX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm5tYWRkX3BzKF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IsIF9fbTEyOCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Zm1hZGRwcygtKF9fdjRzZilfX0EsIChfX3Y0c2YpX19CLCAoX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbm1hZGRfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZCgtKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubWFkZF9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAtKF9fdjRzZilfX0IsIChfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubWFkZF9zZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHNkMygoX192MmRmKV9fQSwgLShfX3YyZGYpX19CLCAoX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9wcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkcHMoLShfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIF9fbTEyOGQgX19DKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkKC0oX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIC0oX192MmRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2ZubXN1Yl9zcyhfX20xMjggX19BLCBfX20xMjggX19CLCBfX20xMjggX19DKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZtYWRkc3MzKChfX3Y0c2YpX19BLCAtKF9fdjRzZilfX0IsIC0oX192NHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9mbm1zdWJfc2QoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzZDMoKF9fdjJkZilfX0EsIC0oX192MmRmKV9fQiwgLShfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1hZGRzdWJfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgKF9fdjRzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1hZGRzdWJfcGQoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CLCBfX20xMjhkIF9fQykKewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZCgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IsIChfX3YyZGYpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fZm1zdWJhZGRfcHMoX19tMTI4IF9fQSwgX19tMTI4IF9fQiwgX19tMTI4IF9fQykKewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBzKChfX3Y0c2YpX19BLCAoX192NHNmKV9fQiwgLShfX3Y0c2YpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Ztc3ViYWRkX3BkKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQiwgX19tMTI4ZCBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicGQoKF9fdjJkZilfX0EsIChfX3YyZGYpX19CLCAtKF9fdjJkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZF9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbXN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2ZubWFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkcHMyNTYoLShfX3Y4c2YpX19BLCAoX192OHNmKV9fQiwgKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm5tYWRkX3BkKF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQiwgX19tMjU2ZCBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdmZtYWRkcGQyNTYoLShfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbm1zdWJfcHMoX19tMjU2IF9fQSwgX19tMjU2IF9fQiwgX19tMjU2IF9fQykKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHBzMjU2KC0oX192OHNmKV9fQSwgKF9fdjhzZilfX0IsIC0oX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbm1zdWJfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRwZDI1NigtKF9fdjRkZilfX0EsIChfX3Y0ZGYpX19CLCAtKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZHN1Yl9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAoX192OHNmKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbWFkZHN1Yl9wZChfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IsIF9fbTI1NmQgX19DKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZmbWFkZHN1YnBkMjU2KChfX3Y0ZGYpX19BLCAoX192NGRmKV9fQiwgKF9fdjRkZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9mbXN1YmFkZF9wcyhfX20yNTYgX19BLCBfX20yNTYgX19CLCBfX20yNTYgX19DKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmZtYWRkc3VicHMyNTYoKF9fdjhzZilfX0EsIChfX3Y4c2YpX19CLCAtKF9fdjhzZilfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZm1zdWJhZGRfcGQoX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CLCBfX20yNTZkIF9fQykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92Zm1hZGRzdWJwZDI1NigoX192NGRmKV9fQSwgKF9fdjRkZilfX0IsIC0oX192NGRmKV9fQyk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgoKI2VuZGlmIC8qIF9fRk1BSU5UUklOX0ggKi8KAC8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUsIGRvIG5vdCBlZGl0IQovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKCgojaWZuZGVmIF9fSEVYQUdPTl9QUk9UT1NfSF8KI2RlZmluZSBfX0hFWEFHT05fUFJPVE9TX0hfIDEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hYnMoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hYnNfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hYnNfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hYnMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YWJzKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Fic19QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hYnNfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hYnNwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWJzKFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fic19SX3NhdChXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hYnNfUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWJzc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUlIgX19idWlsdGluX0hFWEFHT05fQTJfYWRkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIuaCxSczMyLmgpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSaF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmhSaF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9oMTZfaGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIubCk6PDwxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SaFJsX3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SaFJsX3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSdDMyLmwsUnMzMi5oKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JsUmhfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmhfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX2FkZGhfaDE2X2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSbF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSbF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9oMTZfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIuaCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSaF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JoUmhfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfaGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5oLFJzMzIubCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmhSbF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JoUmxfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfaGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIuaCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmhfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfbGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIubCk6c2F0Ojw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSbF9zYXRfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX1JsUmxfc2F0X3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2gxNl9zYXRfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnQzMi5sLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaChXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FkZGhfbDE2X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JsUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2wxNl9sbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSdDMyLmwsUnMzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfUmxSaF9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfUmxSaF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWRkaF9sMTZfc2F0X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ0MzIubCxSczMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SbFJsX3NhdChXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRoX2wxNl9zYXRfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnMzMiwjczE2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczE2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyX0FEREkKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hZGRfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FkZF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYWRkX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYWRkX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRwc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfYWRkc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWFkZChSczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FkZF9SUChXb3JkMzIgUnMsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FkZF9SUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hZGRzcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kX1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRfUkkgX19idWlsdGluX0hFWEFHT05fQTJfYW5kaXIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YW5kKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FuZF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYW5kX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX2FuZHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2xoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsaF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9hc2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YXNyaChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcmhfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JoX1IgX19idWlsdGluX0hFWEFHT05fQTJfYXNyaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5oLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JoUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JoUmggX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9oaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5oLFJzMzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JoUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JoUmwgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5sLFJzMzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JsUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JsUmggX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9saAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbWJpbmUoUnQzMi5sLFJzMzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb21iaW5lX1JsUmwoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb21iaW5lX1JsUmwgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZV9sbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb21iaW5lKCNzOCwjUzgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9JSShXb3JkMzIgSXM4LCBXb3JkMzIgSVM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29tYmluZV9JSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl9jb21iaW5laWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29tYmluZShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbWJpbmVfUlIgX19idWlsdGluX0hFWEFHT05fQTJfY29tYmluZXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tYXgoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21heF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21heF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9tYXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bWF4KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21heF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWF4X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX21heHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tYXh1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbWF4dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21heHVfUlIgX19idWlsdGluX0hFWEFHT05fQTJfbWF4dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tYXh1KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tYXh1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tYXh1X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX21heHVwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWluKFJ0MzIsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9taW5fUlIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9taW5fUlIgX19idWlsdGluX0hFWEFHT05fQTJfbWluCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1pbihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9taW5fUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21pbl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9taW5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWludShSdDMyLFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21pbnVfUlIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9taW51X1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX21pbnUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bWludShSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbWludV9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWludV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9taW51cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW5lZyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25lZ19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX25lZ19SIF9fYnVpbHRpbl9IRVhBR09OX0EyX25lZwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1uZWcoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbmVnX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX25lZ19QIF9fYnVpbHRpbl9IRVhBR09OX0EyX25lZ3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1uZWcoUnMzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbmVnX1Jfc2F0KFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX25lZ19SX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9uZWdzYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1ub3QoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9ub3RfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3RfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bm90KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX25vdF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9ub3RfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9ub3RwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfUlIgX19idWlsdGluX0hFWEFHT05fQTJfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1vcihSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3JfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXMxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX29yX1JJIF9fYnVpbHRpbl9IRVhBR09OX0EyX29yaXIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9b3IoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfb3JfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX29yX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX29ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXJvdW5kKFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9yb3VuZF9QX3NhdChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm91bmRfUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfcm91bmRzYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXQoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc2F0X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdF9QIF9fYnVpbHRpbl9IRVhBR09OX0EyX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNhdGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zYXRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2F0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3NhdGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc2F0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zYXRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2F0dWIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zYXR1Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NhdHViX1IgX19idWlsdGluX0hFWEFHT05fQTJfc2F0dWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zYXR1aChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NhdHVoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2F0dWhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zYXR1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JSKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmgsUnMzMi5oKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmhfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JoUmhfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfaDE2X2hoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmwpOjw8MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfUmhSbF9zMTYoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmhSbF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfaGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zdWIoUnQzMi5sLFJzMzIuaCk6PDwxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SbFJoX3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJoX3MxNiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJoX2gxNl9saAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKTo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmxfczE2KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmxfczE2IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfaDE2X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmgpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmhfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SaFJoX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2hoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIuaCxSczMyLmwpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JoUmxfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SaFJsX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2hsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmgpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmhfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJoX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2xoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmwpOnNhdDo8PDE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmxfc2F0X3MxNihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9SbFJsX3NhdF9zMTYgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9oMTZfc2F0X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKFJ0MzIubCxSczMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmgoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJoX2wxNl9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SbFJsKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmwgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9sMTZfbGwKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zdWIoUnQzMi5sLFJzMzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3ViX1JsUmhfc2F0KFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3ViX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YmhfbDE2X3NhdF9obAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLmwsUnMzMi5sKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfUmxSbF9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUmxSbF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfc3ViaF9sMTZfc2F0X2xsCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXN1YihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9zdWJfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3N1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3ViKCNzMTAsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfSVIoV29yZDMyIElzMTAsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N1Yl9JUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdWJyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN1YihSdDMyLFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1Yl9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N1YnNhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YWRkaF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZhZGRoX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YWRkaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRoKFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmFkZGhfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFkZGhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YWRkaHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12YWRkdWgoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YWRkdWhfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFkZHVoX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdmFkZHVocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhdmdoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YXZnaF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZhdmdoX1JSIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YXZnaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhdmdoKFJzMzIsUnQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmF2Z2hfUlJfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmF2Z2hfUlJfcm5kIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2YXZnaHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12bmF2Z2goUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZuYXZnaF9SUihXb3JkMzIgUnQsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZuYXZnaF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zdm5hdmdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnN1YmgoUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzdWJoX1JSKFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnN1YmhfUlIgX19idWlsdGluX0hFWEFHT05fQTJfc3ZzdWJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnN1YmgoUnQzMixSczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c3ViaF9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c3ViaF9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfc3ZzdWJocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzdWJ1aChSdDMyLFJzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzdWJ1aF9SUl9zYXQoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c3VidWhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3N2c3VidWhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c3dpeihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N3aXpfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zd2l6X1IgX19idWlsdGluX0hFWEFHT05fQTJfc3dpegoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXN4dGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zeHRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc3h0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N4dGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zeHRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfc3h0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3N4dGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl9zeHRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXN4dHcoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9zeHR3X1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfc3h0d19SIF9fYnVpbHRpbl9IRVhBR09OX0EyX3N4dHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1SczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXF1YWxzX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXF1YWxzX1IgX19idWlsdGluX0hFWEFHT05fQTJfdGZyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIuaD0jdTE2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JoX2VxdWFsc19JKFdvcmQzMiBSeCwgV29yZDMyIEl1MTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUmhfZXF1YWxzX0kgX19idWlsdGluX0hFWEFHT05fQTJfdGZyaWgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi5sPSN1MTYKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUmxfZXF1YWxzX0koV29yZDMyIFJ4LCBXb3JkMzIgSXUxNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SbF9lcXVhbHNfSSBfX2J1aWx0aW5fSEVYQUdPTl9BMl90ZnJpbAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1Sc3MzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2VxdWFsc19QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9lcXVhbHNfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl90ZnJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPSNzOAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2VxdWFsc19JKFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2VxdWFsc19JIF9fYnVpbHRpbl9IRVhBR09OX0EyX3RmcnBpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9I3MxNgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2VxdWFsc19JKFdvcmQzMiBJczE2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXF1YWxzX0kgX19idWlsdGluX0hFWEFHT05fQTJfdGZyc2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFic2goUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2hfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFic2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWJzaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzaChSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2hfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNoX1Bfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhYnNoc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnN3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhYnN3X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnN3X1AgX19idWlsdGluX0hFWEFHT05fQTJfdmFic3cKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFic3coUnNzMzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhYnN3X1Bfc2F0KFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWJzd19QX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWJzd3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkYihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWRkYl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhZGRiX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhZGRiX21hcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWRkaF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZGhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFkZGgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhZGRoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZGhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZhZGRocwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHViX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkdWJfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZHViCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR1YihSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHViX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZHViX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdWJzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR1aChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHVoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFkZHVoX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdWhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhZGR3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhZGR3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YWRkdwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWRkdyhSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFkZHdfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWRkd19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfdmFkZHdzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmdoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhdmdoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZnaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZnaChSc3MzMixSdHQzMik6Y3JuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhdmdoX1BQX2NybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhdmdoX1BQX2NybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z2hjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZnaChSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z2hfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnaF9QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z2hyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd1YihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXZndWJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmF2Z3ViKFJzczMyLFJ0dDMyKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXZndWJfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZndWJfUFBfcm5kIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zhdmd1YnIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmF2Z3VoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd1aF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmF2Z3VoX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zhdmd1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndWgoUnNzMzIsUnR0MzIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd1aF9QUF9ybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd1aF9QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3VocgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3V3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZndXdfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3V3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd1dyhSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3V3X1BQX3JuZChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmF2Z3V3X1BQX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndXdyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhdmd3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92YXZndwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndyhSc3MzMixSdHQzMik6Y3JuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhdmd3X1BQX2NybmQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhdmd3X1BQX2NybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3djcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXZndyhSc3MzMixSdHQzMik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmF2Z3dfUFBfcm5kKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXZnd19QUF9ybmQgX19idWlsdGluX0hFWEFHT05fQTJfdmF2Z3dyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wYi5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGJfZXFfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBiX2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXBiZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0dShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGJfZ3R1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wYl9ndHVfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcGJndHUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBoLmVxKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZXFfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcGhlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGguZ3QoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBoX2d0X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21waF9ndF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92Y21waGd0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21waC5ndHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBoX2d0dV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZ3R1X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXBoZ3R1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wdy5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZXFfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZjbXB3ZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXB3Lmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wd19ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcHdfZ3RfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdmNtcHdndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcHcuZ3R1KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wd19ndHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2d0dV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92Y21wd2d0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y29uaihSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNvbmpfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zjb25qX1Bfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zjb25qCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtYXhiKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtYXhiX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWF4Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWF4YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWF4aChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWF4aF9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1heGhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1heGgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1heHViKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtYXh1Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1heHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtYXh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWF4dWgoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1heHVoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWF4dWhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1heHVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtYXh1dyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWF4dXdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtYXh1d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWF4dXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1heHcoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1heHdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtYXh3X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtYXh3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtaW5iKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtaW5iX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWluYl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWluYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWluaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWluaF9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1pbmhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1pbmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1pbnViKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtaW51Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1pbnViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtaW51YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bWludWgoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1pbnVoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bWludWhfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdm1pbnVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtaW51dyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bWludXdfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtaW51d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bWludXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1pbncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1pbndfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtaW53X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZtaW53CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZnaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bmF2Z2hfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZuYXZnaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm5hdmdoKFJ0dDMyLFJzczMyKTpjcm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnaF9QUF9jcm5kX3NhdChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm5hdmdoX1BQX2NybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZuYXZnaGNyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZnaChSdHQzMixSc3MzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnaF9QUF9ybmRfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bmF2Z2hfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z2hyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZndyhSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bmF2Z3dfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZuYXZnd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z3cKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm5hdmd3KFJ0dDMyLFJzczMyKTpjcm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnd19QUF9jcm5kX3NhdChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm5hdmd3X1BQX2NybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZuYXZnd2NyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZuYXZndyhSdHQzMixSc3MzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZuYXZnd19QUF9ybmRfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bmF2Z3dfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92bmF2Z3dyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyYWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJhZGR1Yl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmFkZHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZyYWRkdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZyYWRkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJhZGR1YmFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmFkZHViYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZyYWRkdWJfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyc2FkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJzYWR1Yl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cnNhZHViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zyc2FkdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZyc2FkdWIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJzYWR1YmFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cnNhZHViYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3Zyc2FkdWJfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJiKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzdWJiX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnN1YmJfUFAgX19idWlsdGluX0hFWEFHT05fQTJfdnN1YmJfbWFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJoKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzdWJoX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3ViaF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3ViaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3ViaChSdHQzMixSc3MzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN1YmhfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3ViaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fQTJfdnN1YmhzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJ1YihSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWJfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ1Yl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3VidWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YnViKFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWJfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3VidWJfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ1YnMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YnVoKFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3VidWhfUFBfc2F0KFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3VidWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ1aHMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN1YncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN1YndfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ3X1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3ZzdWJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzdWJ3KFJ0dDMyLFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3Vid19QUF9zYXQoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzdWJ3X1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BMl92c3Vid3MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3hvcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9eG9yKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3hvcl9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfeG9yX1BQIF9fYnVpbHRpbl9IRVhBR09OX0EyX3hvcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj16eHRiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfenh0Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3p4dGJfUiBfX2J1aWx0aW5fSEVYQUdPTl9BMl96eHRiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9enh0aChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3p4dGhfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl96eHRoX1IgX19idWlsdGluX0hFWEFHT05fQTJfenh0aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFuZChSdDMyLH5SczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9SblIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRfUm5SIF9fYnVpbHRpbl9IRVhBR09OX0E0X2FuZG4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YW5kKFJ0dDMyLH5Sc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hbmRfUG5QKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hbmRfUG5QIF9fYnVpbHRpbl9IRVhBR09OX0E0X2FuZG5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWJpdHNwbGl0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9iaXRzcGxpdF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2JpdHNwbGl0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2JpdHNwbGl0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWJpdHNwbGl0KFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2JpdHNwbGl0X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2JpdHNwbGl0X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2JpdHNwbGl0aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Ym91bmRzY2hlY2soUnMzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYm91bmRzY2hlY2tfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ib3VuZHNjaGVja19SUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9ib3VuZHNjaGVjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5lcShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBiX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5lcShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wYl9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBiX2VxX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGIuZ3QoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBiX2d0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBiZ3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGIuZ3QoUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3RfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBiZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBiLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3R1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wYl9ndHVfUlIgX19idWlsdGluX0hFWEFHT05fQTRfY21wYmd0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wYi5ndHUoUnMzMiwjdTcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGJfZ3R1X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGJfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGJndHVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGhfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQTRfY21waGVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBoX2VxX1JJKFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcGhfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQTRfY21waGVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21waC5ndChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcGhfZ3RfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGhndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21waC5ndChSczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0X1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NtcGhndGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcGguZ3R1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndHVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBoX2d0dV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF9jbXBoZ3R1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXBoLmd0dShSczMyLCN1NykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21waF9ndHVfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21waF9ndHVfUkkgX19idWlsdGluX0hFWEFHT05fQTRfY21waGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29tYmluZSgjczgsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb21iaW5lX0lSKFdvcmQzMiBJczgsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbWJpbmVfSVIgX19idWlsdGluX0hFWEFHT05fQTRfY29tYmluZWlyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbWJpbmUoUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29tYmluZV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb21iaW5lX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2NvbWJpbmVyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNyb3VuZChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jcm91bmRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY3JvdW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X2Nyb3VuZF9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNyb3VuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3JvdW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY3JvdW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X2Nyb3VuZF9ycgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1vZHdyYXAoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21vZHdyYXBfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tb2R3cmFwX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X21vZHdyYXB1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9b3IoUnQzMix+UnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9vcl9SblIoV29yZDMyIFJ0LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcl9SblIgX19idWlsdGluX0hFWEFHT05fQTRfb3JuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW9yKFJ0dDMyLH5Sc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9vcl9QblAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX29yX1BuUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9vcm5wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXBfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXBfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQTRfcmNtcGVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21wLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcF9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXBfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQTRfcmNtcGVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPSFjbXAuZXEoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vdF9jbXBfZXFfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3RfY21wX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3JjbXBuZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj0hY21wLmVxKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vdF9jbXBfZXFfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfbm90X2NtcF9lcV9SSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF9yY21wbmVxaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXJvdW5kKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvdW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3JvdW5kX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9cm91bmQoUnMzMiwjdTUpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JJX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9yb3VuZF9SSV9zYXQgX19idWlsdGluX0hFWEFHT05fQTRfcm91bmRfcmlfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9cm91bmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm91bmRfUlIgX19idWlsdGluX0hFWEFHT05fQTRfcm91bmRfcnIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1yb3VuZChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3JvdW5kX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvdW5kX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BNF9yb3VuZF9ycl9zYXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXRsYm1hdGNoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3RsYm1hdGNoX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3RsYm1hdGNoX1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3RsYm1hdGNoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbnk4KHZjbXBiLmVxKFJzczMyLFJ0dDMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW55OF92Y21wYl9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW55OF92Y21wYl9lcV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21wYmVxX2FueQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGIuZXEoUnNzMzIsI3U4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9lcV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZXFfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3RfUFAgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGIuZ3QoUnNzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21wYl9ndF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3RfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGJndGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBiLmd0dShSc3MzMiwjdTcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXBiX2d0dV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGJfZ3R1X1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXBiZ3R1aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcGguZXEoUnNzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9lcV9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdmNtcGhfZXFfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcGhlcWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXBoLmd0KFJzczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcGhfZ3RfUEkoV29yZDY0IFJzcywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBoX2d0X1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXBoZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21waC5ndHUoUnNzMzIsI3U3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF92Y21waF9ndHVfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXBoX2d0dV9QSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21waGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXZjbXB3LmVxKFJzczMyLCNzOCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZXFfUEkoV29yZDY0IFJzcywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3ZjbXB3X2VxX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZjbXB3ZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND12Y21wdy5ndChSc3MzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3ZjbXB3X2d0X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wd19ndF9QSSBfX2J1aWx0aW5fSEVYQUdPTl9BNF92Y21wd2d0aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dmNtcHcuZ3R1KFJzczMyLCN1NykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdmNtcHdfZ3R1X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTcpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF92Y21wd19ndHVfUEkgX19idWlsdGluX0hFWEFHT05fQTRfdmNtcHdndHVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWF4aChSc3MzMixSdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybWF4aF9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1heGhfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtYXhoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWF4dWgoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1heHVoX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWF4dWhfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtYXh1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj12cm1heHV3KFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtYXh1d19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1heHV3X1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZybWF4dXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtYXh3KFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtYXh3X1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWF4d19QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1heHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtaW5oKFJzczMyLFJ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtaW5oX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWluaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1pbmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9dnJtaW51aChSc3MzMixSdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybWludWhfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtaW51aF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9BNF92cm1pbnVoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyPXZybWludXcoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1pbnV3X1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybWludXdfUFIgX19idWlsdGluX0hFWEFHT05fQTRfdnJtaW51dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj12cm1pbncoUnNzMzIsUnUzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1pbndfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtaW53X1BSIF9fYnVpbHRpbl9IRVhBR09OX0E0X3ZybWludwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhZGRodWIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZhZGRodWJfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YWRkaHViX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9BNV92YWRkaHVicwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YWxsOChQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FsbDhfcChCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYWxsOF9wIF9fYnVpbHRpbl9IRVhBR09OX0MyX2FsbDgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWFuZChQdDQsUHM0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9hbmRfcHAoQnl0ZSBQdCwgQnl0ZSBQcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2FuZF9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWFuZChQdDQsIVBzNCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW5kX3BucChCeXRlIFB0LCBCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW5kX3BucCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbnk4KFBzNCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfYW55OF9wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbnk4X3AgX19idWlsdGluX0hFWEFHT05fQzJfYW55OAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Yml0c2NscihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNjbHJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9iaXRzY2xyX1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2JpdHNjbHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWJpdHNjbHIoUnMzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNjbHJfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYml0c2Nscl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DMl9iaXRzY2xyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Yml0c3NldChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2JpdHNzZXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9iaXRzc2V0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2JpdHNzZXQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5lcShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9lcV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9jbXBlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmVxKFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2VxX1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZXFfUkkgX19idWlsdGluX0hFWEFHT05fQzJfY21wZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAuZXEoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9lcV9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2VxX1BQIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGVxcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmdlKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9jbXBfZ2VfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2dlX1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGdlaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmdldShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2dldV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ2V1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGdldWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5ndChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9ndF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9jbXBndAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0KFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2d0X1JJKFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3RfUkkgX19idWlsdGluX0hFWEFHT05fQzJfY21wZ3RpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAuZ3QoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2d0X1BQIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndHVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3R1X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmd0dShSczMyLCN1OSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2d0dV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTkpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9jbXBfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGd0dWkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWNtcC5ndHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2NtcF9ndHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9ndHVfUFAgX19idWlsdGluX0hFWEFHT05fQzJfY21wZ3R1cAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9Y21wLmx0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2x0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfY21wX2x0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0MyX2NtcGx0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1jbXAubHR1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfY21wX2x0dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2NtcF9sdHVfUlIgX19idWlsdGluX0hFWEFHT05fQzJfY21wbHR1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1hc2soUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21hc2tfcChCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbWFza19wIF9fYnVpbHRpbl9IRVhBR09OX0MyX21hc2sKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tdXgoUHU0LFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tdXhfcFJSKEJ5dGUgUHUsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXV4X3BSUiBfX2J1aWx0aW5fSEVYQUdPTl9DMl9tdXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tdXgoUHU0LCNzOCwjUzgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXV4X3BJSShCeXRlIFB1LCBXb3JkMzIgSXM4LCBXb3JkMzIgSVM4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXV4X3BJSSBfX2J1aWx0aW5fSEVYQUdPTl9DMl9tdXhpaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW11eChQdTQsUnMzMiwjczgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXV4X3BSSShCeXRlIFB1LCBXb3JkMzIgUnMsIFdvcmQzMiBJczgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVMzJfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tdXhfcFJJIF9fYnVpbHRpbl9IRVhBR09OX0MyX211eGlyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXV4KFB1NCwjczgsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tdXhfcElSKEJ5dGUgUHUsIFdvcmQzMiBJczgsIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX211eF9wSVIgX19idWlsdGluX0hFWEFHT05fQzJfbXV4cmkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PW5vdChQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PW9yKFB0NCxQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX3BwKEJ5dGUgUHQsIEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DMl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9b3IoUHQ0LCFQczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX3BucChCeXRlIFB0LCBCeXRlIFBzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfb3JfcG5wIF9fYnVpbHRpbl9IRVhBR09OX0MyX29ybgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9UHM0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2VxdWFsc19wKEJ5dGUgUHMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZXF1YWxzX3AgX19idWlsdGluX0hFWEFHT05fQzJfcHhmZXJfbWFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9UHM0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXF1YWxzX3AoQnl0ZSBQcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2VxdWFsc19wIF9fYnVpbHRpbl9IRVhBR09OX0MyX3RmcnByCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1SczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2VxdWFsc19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2VxdWFsc19SIF9fYnVpbHRpbl9IRVhBR09OX0MyX3RmcnJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dml0cGFjayhQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZpdHBhY2tfcHAoQnl0ZSBQcywgQnl0ZSBQdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZpdHBhY2tfcHAgX19idWlsdGluX0hFWEFHT05fQzJfdml0cGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXV4KFB1NCxSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXV4X3BQUChCeXRlIFB1LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm11eF9wUFAgX19idWlsdGluX0hFWEFHT05fQzJfdm11eAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9eG9yKFBzNCxQdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX3hvcl9wcChCeXRlIFBzLCBCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfeG9yX3BwIF9fYnVpbHRpbl9IRVhBR09OX0MyX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YW5kKFBzNCxhbmQoUHQ0LFB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9hbmRfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfYW5kX3BwcCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9hbmRfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbmQoUHM0LGFuZChQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9hbmRfcHBucChCeXRlIFBzLCBCeXRlIFB0LCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfYW5kX2FuZF9wcG5wIF9fYnVpbHRpbl9IRVhBR09OX0M0X2FuZF9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1hbmQoUHM0LG9yKFB0NCxQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9hbmRfb3JfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfb3JfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X2FuZF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9YW5kKFBzNCxvcihQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2FuZF9vcl9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9hbmRfb3JfcHBucCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9hbmRfb3JuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9ndF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZ3RfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbHRlCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0KFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9ndF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9ndF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DNF9jbXBsdGVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmd0dShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9jbXBfZ3R1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9ndHVfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbHRldQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWNtcC5ndHUoUnMzMiwjdTkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9jbXBfZ3R1X1JJKFdvcmQzMiBScywgV29yZDMyIEl1OSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZ3R1X1JJIF9fYnVpbHRpbl9IRVhBR09OX0M0X2NtcGx0ZXVpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9lcV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFUzMl8zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9jbXBfZXFfUlIgX19idWlsdGluX0hFWEFHT05fQzRfY21wbmVxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hY21wLmVxKFJzMzIsI3MxMCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2NtcF9lcV9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfbm90X2NtcF9lcV9SSSBfX2J1aWx0aW5fSEVYQUdPTl9DNF9jbXBuZXFpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1mYXN0Y29ybmVyOShQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9mYXN0Y29ybmVyOV9wcChCeXRlIFBzLCBCeXRlIFB0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZmFzdGNvcm5lcjlfcHAgX19idWlsdGluX0hFWEFHT05fQzRfZmFzdGNvcm5lcjkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PSFmYXN0Y29ybmVyOShQczQsUHQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9ub3RfZmFzdGNvcm5lcjlfcHAoQnl0ZSBQcywgQnl0ZSBQdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9mYXN0Y29ybmVyOV9wcCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9mYXN0Y29ybmVyOV9ub3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PSFiaXRzY2xyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X2JpdHNjbHJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfYml0c2Nscl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9DNF9uYml0c2NscgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWJpdHNjbHIoUnMzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9iaXRzY2xyX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9iaXRzY2xyX1JJIF9fYnVpbHRpbl9IRVhBR09OX0M0X25iaXRzY2xyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IWJpdHNzZXQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9ub3RfYml0c3NldF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX25vdF9iaXRzc2V0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0M0X25iaXRzc2V0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsYW5kKFB0NCxQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9vcl9hbmRfcHBwKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9hbmRfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9b3IoUHM0LGFuZChQdDQsIVB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX2FuZF9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9hbmRfcHBucCBfX2J1aWx0aW5fSEVYQUdPTl9DNF9vcl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsb3IoUHQ0LFB1NCkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX29yX29yX3BwcChCeXRlIFBzLCBCeXRlIFB0LCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3Bfb3Jfb3JfcHBwIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1vcihQczQsb3IoUHQ0LCFQdTQpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9vcl9vcl9wcG5wKEJ5dGUgUHMsIEJ5dGUgUHQsIEJ5dGUgUHUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1IKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9vcl9vcl9wcG5wIF9fYnVpbHRpbl9IRVhBR09OX0M0X29yX29ybgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X2QyZGYoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfZDJkZl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2QyZGZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2QyZGYKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X2Qyc2YoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX2NvbnZlcnRfZDJzZl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X2Qyc2ZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2Qyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9kZjJkKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfZGYyZF9QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29udmVydF9kZjJkX1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfZGYyZChSc3MzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfZGYyZF9QX2Nob3AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMmRfUF9jaG9wIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfZGYyZF9jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJzZihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1JfY29udmVydF9kZjJzZl9QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJzZl9QIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfZGYyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9kZjJ1ZChSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb252ZXJ0X2RmMnVkX1AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMnVkX1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ1ZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X2RmMnVkKFJzczMyKTpjaG9wCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29udmVydF9kZjJ1ZF9QX2Nob3AoRmxvYXQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X2RmMnVkX1BfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2RmMnVkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X2RmMnV3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYydXdfUChGbG9hdDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfZGYydXdfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X2RmMnV3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ1dyhSc3MzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYydXdfUF9jaG9wKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJ1d19QX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ1d19jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ3KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfZGYyd19QKEZsb2F0NjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9kZjJ3X1AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9kZjJ3KFJzczMyKTpjaG9wCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY29udmVydF9kZjJ3X1BfY2hvcChGbG9hdDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfZGYyd19QX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9kZjJ3X2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9zZjJkKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY29udmVydF9zZjJkX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZF9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfc2YyZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jb252ZXJ0X3NmMmQoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfc2YyZF9SX2Nob3AoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZF9SX2Nob3AgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF9zZjJkZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9jb252ZXJ0X3NmMmRmX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YyZGZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMmRmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfc2YydWQoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jb252ZXJ0X3NmMnVkX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfc2YydWRfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnVkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfc2YydWQoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NvbnZlcnRfc2YydWRfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jb252ZXJ0X3NmMnVkX1JfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnVkX2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3NmMnV3KFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY29udmVydF9zZjJ1d19SKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMnV3X1IgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJ1dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbnZlcnRfc2YydXcoUnMzMik6Y2hvcAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NvbnZlcnRfc2YydXdfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMnV3X1JfY2hvcCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3NmMnV3X2Nob3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3NmMncoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb252ZXJ0X3NmMndfUihGbG9hdDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF9zZjJ3X1IgX19idWlsdGluX0hFWEFHT05fRjJfY29udl9zZjJ3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF9zZjJ3KFJzMzIpOmNob3AKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jb252ZXJ0X3NmMndfUl9jaG9wKEZsb2F0MzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3NmMndfUl9jaG9wIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfc2Yyd19jaG9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfdWQyZGYoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfdWQyZGZfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY29udmVydF91ZDJkZl9QIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdWQyZGYKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jb252ZXJ0X3VkMnNmKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3VkMnNmX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NvbnZlcnRfdWQyc2ZfUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3VkMnNmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNvbnZlcnRfdXcyZGYoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfY29udmVydF91dzJkZl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfdXcyZGZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3V3MmRmCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y29udmVydF91dzJzZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3V3MnNmX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY29udmVydF91dzJzZl9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdXcyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y29udmVydF93MmRmKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2NvbnZlcnRfdzJkZl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NvbnZlcnRfdzJkZl9SIF9fYnVpbHRpbl9IRVhBR09OX0YyX2NvbnZfdzJkZgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNvbnZlcnRfdzJzZihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9jb252ZXJ0X3cyc2ZfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jb252ZXJ0X3cyc2ZfUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9jb252X3cyc2YKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWRmY2xhc3MoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9kZmNsYXNzX1BJKEZsb2F0NjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbGFzc19QSSBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmNsYXNzCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1kZmNtcC5lcShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfZGZjbXBfZXFfUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbXBfZXFfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZjbXBlcQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9ZGZjbXAuZ2UoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX2RmY21wX2dlX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX2RmY21wX2dlX1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmY21wZ2UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PWRmY21wLmd0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9kZmNtcF9ndF9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9kZmNtcF9ndF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmNtcGd0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1kZmNtcC51byhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfZGZjbXBfdW9fUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfZGZjbXBfdW9fUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZjbXB1bwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1ha2UoI3UxMCk6bmVnCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbWFrZV9JX25lZyhXb3JkMzIgSXUxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbWFrZV9JX25lZyBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZmltbV9uCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmbWFrZSgjdTEwKTpwb3MKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfZGZtYWtlX0lfcG9zKFdvcmQzMiBJdTEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtYWtlX0lfcG9zIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmaW1tX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZmFkZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmYWRkX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmYWRkX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmYWRkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND1zZmNsYXNzKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEJ5dGUgUTZfcF9zZmNsYXNzX1JJKEZsb2F0MzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9zZmNsYXNzX1JJIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY2xhc3MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmVxKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZXFfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2VxX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZXEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmdlKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZ2VfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2dlX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZ2UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLmd0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfZ3RfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX2d0X1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wZ3QKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXNmY21wLnVvKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfc2ZjbXBfdW9fUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3NmY21wX3VvX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmY21wdW8KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZmZpeHVwZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmZml4dXBkX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmZml4dXBkX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZml4dXBkCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZmaXh1cG4oUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZmZpeHVwbl9SUihGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZmZpeHVwbl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZpeHVwbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmZml4dXByKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmZml4dXByX1IoRmxvYXQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmZml4dXByX1IgX19idWlsdGluX0hFWEFHT05fRjJfc2ZmaXh1cHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9c2ZtcHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUihGbG9hdDMyIFJ4LCBGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1weWFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZtYQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zZm1weShSczMyLFJ0MzIpOmxpYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUl9saWIoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHlhY2NfUlJfbGliIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZm1hX2xpYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zZm1weShSczMyLFJ0MzIsUHU0KTpzY2FsZQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weWFjY19SUnBfc2NhbGUoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCwgQnl0ZSBQdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHlhY2NfUlJwX3NjYWxlIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmZm1hX3NjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPXNmbXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtcHluYWNfUlIoRmxvYXQzMiBSeCwgRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtcHluYWNfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZmbXMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09c2ZtcHkoUnMzMixSdDMyKTpsaWIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtcHluYWNfUlJfbGliKEZsb2F0MzIgUngsIEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbXB5bmFjX1JSX2xpYiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmZtc19saWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZm1ha2UoI3UxMCk6bmVnCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmbWFrZV9JX25lZyhXb3JkMzIgSXUxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbWFrZV9JX25lZyBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZmltbV9uCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZtYWtlKCN1MTApOnBvcwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1ha2VfSV9wb3MoV29yZDMyIEl1MTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1ha2VfSV9wb3MgX19idWlsdGluX0hFWEFHT05fRjJfc2ZpbW1fcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmbWF4KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZtYXhfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZtYXhfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZtYXgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZm1pbihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQzMiBRNl9SX3NmbWluX1JSKEZsb2F0MzIgUnMsIEZsb2F0MzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NmbWluX1JSIF9fYnVpbHRpbl9IRVhBR09OX0YyX3NmbWluCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2ZtcHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0MzIgUTZfUl9zZm1weV9SUihGbG9hdDMyIFJzLCBGbG9hdDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZm1weV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9GMl9zZm1weQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXNmc3ViKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDMyIFE2X1Jfc2ZzdWJfUlIoRmxvYXQzMiBScywgRmxvYXQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfc2ZzdWJfUlIgX19idWlsdGluX0hFWEFHT05fRjJfc2ZzdWIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tZW1iKFJ4MzIrKyNzNDowOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW1iX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzAsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW1iX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJiX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbWIoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtYl9NX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtYl9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJiX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tZW1kKFJ4MzIrKyNzNDozOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tZW1kX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzMsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tZW1kX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJkX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tZW1kKFJ4MzIrK0k6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21lbWRfTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21lbWRfTV9jaXJjIF9fYnVpbHRpbl9IRVhBR09OX0wyX2xvYWRyZF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tZW1oKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW1oX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzEsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW1oX0lNX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJoX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbWgoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtaF9NX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtaF9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJoX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXcoUngzMisrI3M0OjI6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXdfSU1fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMiwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21lbXdfSU1fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcmlfcGNpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdyhSeDMyKytJOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW13X01fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW13X01fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcmlfcGNyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdWIoUngzMisrI3M0OjA6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXViX0lNX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzAsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW11Yl9JTV9jaXJjIF9fYnVpbHRpbl9IRVhBR09OX0wyX2xvYWRydWJfcGNpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWVtdWIoUngzMisrSTpjaXJjKE11MikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbWVtdWJfTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBMRAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21lbXViX01fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcnViX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXVoKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tZW11aF9JTV9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIElzNF8xLCBXb3JkMzIgTXUsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIExECiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbWVtdWhfSU1fY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9MMl9sb2FkcnVoX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1lbXVoKFJ4MzIrK0k6Y2lyYyhNdTIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21lbXVoX01fY2lyYyh2b2lkKiogUngsIFdvcmQzMiBNdSwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tZW11aF9NX2NpcmMgX19idWlsdGluX0hFWEFHT05fTDJfbG9hZHJ1aF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YWRkKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2FjY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YWRkKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX2FjY2lpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWlhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlpYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNpX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5cihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNyX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWFjY19SUl9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlhY2NfUlJfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5YWNjX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbWFjc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weShSczMyLFJ0MzIqKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5YWNjX1JSX2Nvbmpfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5YWNjX1JSX2Nvbmpfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtYWNzY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWFjY19SUl9jb25qX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weWFjY19SUl9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbWFjc2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weWkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlpX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5aV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5cihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlyX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weShSczMyLFJ0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlfUlJfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5cnNfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5KFJzMzIsUnQzMik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX3MxX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlfUlJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5cnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5KFJzMzIsUnQzMiopOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX2Nvbmpfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weV9SUl9jb25qX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY21weXJzY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHkoUnMzMixSdDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5X1JSX2NvbmpfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weV9SUl9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY21weXJzY19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHkoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NtcHlzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHkoUnMzMixSdDMyKik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9jb25qX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weV9SUl9jb25qX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5c2NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weShSczMyLFJ0MzIqKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weV9SUl9jb25qX3MxX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weV9SUl9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9jbXB5c2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWNtcHkoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5bmFjX1JSX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weW5hY19SUl9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY25hY3NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWNtcHkoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weW5hY19SUl9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHluYWNfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NuYWNzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHluYWNfUlJfY29ual9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHluYWNfUlJfY29ual9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfY25hY3NjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5bmFjX1JSX2NvbmpfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5bmFjX1JSX2NvbmpfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX2NuYWNzY19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX2FjY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX25hY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUl9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SUl9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfZHBtcHlzc19ybmRfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9kcG1weXNzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfYWNjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfbmFjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX2RwbXB5dXVfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMixSdDMyLmgpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSaF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJoX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfaG1tcHloX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUmhfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9obW1weWhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMixSdDMyLmwpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSbF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJsX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfaG1tcHlsX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUmxfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJsX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9obW1weWxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5aWFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX00yX21hY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5aShSczMyLCN1OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU4KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX21hY3NpbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHlpKFJzMzIsI3U4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWlhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWlhY2NfUkkgX19idWlsdGluX0hFWEFHT05fTTJfbWFjc2lwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjaHNfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d29oYWNjX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdvaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2hzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZWhhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjbHNfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoYWNjX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdlaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdlaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY2xzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoYWNjX1BQX3JuZF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhhY2NfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWhzX3JzMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdvdWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvdWhhY2NfUFBfczFfcm5kX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aGFjY19QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tYWN1aHNfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvdWhhY2NfUFBfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b3VoYWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWhzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5d291aChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoYWNjX1BQX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aGFjY19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Voc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2V1aGFjY19QUF9ybmRfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Vsc19yczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3MxX3JuZF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdldWhhY2NfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbWFjdWxzX3JzMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aGFjY19QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1hY3Vsc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2V1aGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdldWhhY2NfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tYWN1bHNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hfUFBfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d29oX1BQX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWhfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b2goUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaF9QUF9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5aF9yczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdvaF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdvaChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b2hfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3b2hfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHloX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2VoX1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdlaF9QUF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHlsX3JzMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoX1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weWxfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZWhfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHlsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d2VoX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2VoX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5bF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d291aChSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWhfcnMwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWhfcnMxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3b3VoKFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5d291aF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weXdvdWhfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1aF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5d291aChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3b3VoX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d291aF9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weXVoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1bF9yczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdldWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21tcHl1bF9yczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weXdldWgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHl3ZXVoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5d2V1aF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbW1weXVsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weXdldWhfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHl3ZXVoX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tbXB5dWxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2NfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2NfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JoUmhfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SaFJoX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SaFJsX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmhSbF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmhSbF9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2Nfc2F0X2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUmxSaF9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5YWNjX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9hY2Nfc2F0X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmhfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5YWNjX1JsUmxfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfYWNjX3NhdF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weWFjY19SbFJsX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlhY2NfUmxSbF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2FjY19zYXRfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JoUmhfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SaFJoX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SaFJsX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmhSbF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmhSbF9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfc2F0X2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHluYWNfUmxSaF9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JsUmhfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9uYWNfc2F0X2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmhfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5bmFjX1JsUmxfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weW5hY19SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfbmFjX3NhdF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SbFJsX3MxX3NhdChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHluYWNfUmxSbF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X25hY19zYXRfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIuaCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5oKTo8PDE6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfczFfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9zMV9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfcm5kX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOjw8MTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSbF9zMV9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3MxX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfcm5kX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmgpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmhfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9ybmRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9ybmRfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIubCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5sKTo8PDE6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfczFfcm5kKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9zMV9ybmQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3JuZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJoX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJoX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmwpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmhfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmhfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmwsUnQzMi5sKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJsX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJsX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmhSaF9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmhSaF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIuaCxSdDMyLmgpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmhfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmhfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JoUmxfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JoUmxfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLmgsUnQzMi5sKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SaFJsX3MxX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SaFJsX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9ybmRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SbFJoX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SbFJoX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3NhdF9ybmRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSaF9zMV9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSaF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlfUmxSbF9ybmRfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUmxSbF9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX21weV9zYXRfcm5kX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIubCxSdDMyLmwpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JsUmxfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5X1JsUmxfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlfc2F0X3JuZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIsUnQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5X1JSX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlfUlJfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weV9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weV9SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfbXB5X3VwX3MxX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JoUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JoUmhfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5YWNjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9hY2NfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlhY2NfUmhSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5YWNjX1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9hY2NfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weWFjY19SbFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2FjY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weWFjY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlhY2NfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2FjY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JsUmwoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5YWNjX1JsUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfYWNjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJoKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSaF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5X1JoUmxfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5X1JsUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHlfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JoUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JoUmhfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5bmFjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9uYWNfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHluYWNfUmhSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5bmFjX1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5ZF9uYWNfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weW5hY19SbFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHluYWNfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX25hY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weW5hY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHluYWNfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX25hY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JsUmwoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5bmFjX1JsUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weW5hY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfbmFjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5oKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSaF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJoX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmgsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmhSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SaFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5oLFJ0MzIubCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SaFJsX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JoUmxfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5oKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSaF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJoX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5sLFJ0MzIuaCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJoX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmhfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weShSczMyLmwsUnQzMi5sKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHlfUmxSbF9ybmQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weV9SbFJsX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlkX3JuZF9sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHkoUnMzMi5sLFJ0MzIubCk6PDwxOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weV9SbFJsX3MxX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5X1JsUmxfczFfcm5kIF9fYnVpbHRpbl9IRVhBR09OX00yX21weWRfcm5kX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5aShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5aV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHlpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5aShSczMyLCNtOSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpX1JJKFdvcmQzMiBScywgV29yZDMyIEltOSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHlpX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXNtaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlzdV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5c3VfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbXB5c3VfdXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmhSaChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfaGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JoUmhfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JoUmwoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2hsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weXUoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dWFjY19SaFJsX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2FjY19obF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHl1KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dWFjY19SbFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2FjY19saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmxSaF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfbGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVhY2NfUmxSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9hY2NfbGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9bXB5dShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1YWNjX1JsUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfYWNjX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JoUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmgsUnQzMi5oKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SaFJoX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SaFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXUoUnMzMi5oLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21weXVfUmhSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIubCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQzMiBRNl9SX21weXVfUmxSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JsUmhfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmwsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkMzIgUTZfUl9tcHl1X1JsUmwoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bXB5dShSczMyLmwsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SbFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1X1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SaFJoKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmhSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19oaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmhSaF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JoUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfaGhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmhSbChXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1bmFjX1JoUmxfczEoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dW5hY19SaFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbmFjX2hsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1bmFjX1JsUmgoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dW5hY19SbFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVfbmFjX2xoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SbFJoX3MxKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbXB5dW5hY19SbFJsKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weXVuYWNfUmxSbCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X25hY19sbF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weXVuYWNfUmxSbF9zMShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1bmFjX1JsUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dV9uYWNfbGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1tcHl1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDMyIFE2X1JfbXB5dV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5dV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1X3VwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SaFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmhSaF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JoUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVhY2NfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9hY2NfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1YWNjX1JsUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVhY2NfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9hY2NfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dWFjY19SbFJsKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1YWNjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfYWNjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVhY2NfUmxSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dWFjY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2FjY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmhSaChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SaFJoIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5oLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmhSaF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2hoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5oLFJ0MzIubCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbXB5dV9SaFJsKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JoUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfaGxfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBVV29yZDY0IFE2X1BfbXB5dV9SaFJsX3MxKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1X1JoUmxfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bXB5dShSczMyLmwsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JsUmgoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9saF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIubCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFVXb3JkNjQgUTZfUF9tcHl1X1JsUmhfczEoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVfUmxSaF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9saF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmxSbChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SbFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPW1weXUoUnMzMi5sLFJ0MzIubCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogVVdvcmQ2NCBRNl9QX21weXVfUmxSbF9zMShXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dV9SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX2xsX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SaFJoKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JoUmggX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2hoX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIuaCxSdDMyLmgpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmhSaF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SaFJoX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19oaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5dShSczMyLmgsUnQzMi5sKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmhSbChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SaFJsIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19obF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bXB5dShSczMyLmgsUnQzMi5sKTo8PDEKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JoUmxfczEoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVuYWNfUmhSbF9zMSBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9uYWNfaGxfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9tcHl1bmFjX1JsUmgoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX21weXVuYWNfUmxSaCBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1ZF9uYWNfbGhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPW1weXUoUnMzMi5sLFJ0MzIuaCk6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SbFJoX3MxKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JsUmhfczEgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2xoX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbXB5dW5hY19SbFJsKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9tcHl1bmFjX1JsUmwgX19idWlsdGluX0hFWEFHT05fTTJfbXB5dWRfbmFjX2xsX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1tcHl1KFJzMzIubCxSdDMyLmwpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX21weXVuYWNfUmxSbF9zMShXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbXB5dW5hY19SbFJsX3MxIF9fYnVpbHRpbl9IRVhBR09OX00yX21weXVkX25hY19sbF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW1weXVpKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHl1aV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9tcHl1aV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl9tcHl1aQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hZGQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZG5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRuYWNfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbmFjY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09YWRkKFJzMzIsI3M4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZG5hY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzOCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX00yX25hY2NpaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1zdWIoUnQzMixSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3N1YmFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBSdCwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTJfc3ViYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnNkaWZmaChSdHQzMixSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWJzZGlmZmhfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFic2RpZmZoX1BQIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZhYnNkaWZmaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzZGlmZncoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZ3X1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNkaWZmd19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92YWJzZGlmZncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZjbXB5aShSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNtcHlpYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y21weWlhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZjbWFjX3MwX3NhdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12Y21weXIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5cmFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlyYWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21hY19zMF9zYXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weWkoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5aV9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlpX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21weV9zMF9zYXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weXIoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZjbXB5cl9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmNtcHlyX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92Y21weV9zMF9zYXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y21weWkoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92Y21weWlfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbXB5aV9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdmNtcHlfczFfc2F0X2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNtcHlyKFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNtcHlyX1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y21weXJfUFBfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZjbXB5X3MxX3NhdF9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12ZG1weShSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlhY2NfUFBfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5YWNjX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1hY3NfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZkbXB5KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlhY2NfUFBfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5YWNjX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1hY3NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12ZG1weShSc3MzMixSdHQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZkbXB5X1BQX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmRtcHlfUFBfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1weXJzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dmRtcHkoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmRtcHlfUFBfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92ZG1weV9QUF9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZkbXB5cnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmRtcHkoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZkbXB5X1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92ZG1weV9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdmRtcHlzX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZkbXB5KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHlfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5X1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92ZG1weXNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHloKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aGFjY19SUihXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTJfdm1hYzIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhhY2NfUFAoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWVoYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyZXMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWVoYWNjX1BQX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5ZWhhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyZXNfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHllaGFjY19QUF9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWVoYWNjX1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bWFjMmVzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5aChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloYWNjX1JSX3NhdChXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dm1weWgoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhhY2NfUlJfczFfc2F0KFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5aGFjY19SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1hYzJzX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5aHN1KFJzMzIsUnQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhzdWFjY19SUl9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloc3VhY2NfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc3VfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWhzdWFjY19SUl9zMV9zYXQoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloc3VhY2NfUlJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtYWMyc3VfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weWVoKFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHllaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJlc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5ZWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5ZWhfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHllaF9QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJlc19zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloX1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZtcHkyc19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZtcHloKFJzMzIsUnQzMik6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZtcHloX1JSX3JuZF9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZtcHloX1JSX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJzX3MwcGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aChSczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aF9SUl9zMV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHloX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12bXB5aChSczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfdm1weWhfUlJfczFfcm5kX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfdm1weWhfUlJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnNfczFwYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZtcHloc3UoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5aHN1X1JSX3NhdChXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdm1weWhzdV9SUl9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdm1weTJzdV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5aHN1KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZtcHloc3VfUlJfczFfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5aHN1X1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92bXB5MnN1X3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJhZGRoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZyYWRkaF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cmFkZGhfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJhZGRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJhZGR1aChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92cmFkZHVoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZyYWRkdWhfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJhZGR1aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5aShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlpYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weWlhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbWFjaV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5aShSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5aWFjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weWlhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtYWNpX3MwYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5cihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbWFjcl9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbXB5cihSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5cmFjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtYWNyX3MwYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNtcHlpKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY21weWlfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5aV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cmNtcHlpX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZyY21weWkoUnNzMzIsUnR0MzIqKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY21weWlfUFBfY29uaihXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmNtcHlpX1BQX2NvbmogX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5aV9zMGMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJjbXB5cihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXJfUFAgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5cl9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNtcHlyKFJzczMyLFJ0dDMyKikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlyX1BQX2NvbmooV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5cl9QUF9jb25qIF9fYnVpbHRpbl9IRVhBR09OX00yX3ZyY21weXJfczBjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cmNtcHlzKFJzczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cmNtcHlzYWNjX1BSX3MxX3NhdChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbXB5c2FjY19QUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5c19hY2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJjbXB5cyhSc3MzMixSdDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjbXB5c19QUl9zMV9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZyY21weXNfUFJfczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX00yX3ZyY21weXNfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12cmNtcHlzKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnJjbXB5c19QUl9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cmNtcHlzX1BSX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTJfdnJjbXB5c19zMXJwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weWgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHloYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5aGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cm1hY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cm1weWgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHloX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5aF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NMl92cm1weV9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcnhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfeG9yeGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NMl94b3JfeGFjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hbmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZGFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRhbmRfUlIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hbmQoUnMzMix+UnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hbmRhbmRfUm5SKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZGFuZF9SblIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX2FuZG4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yYW5kX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX29yYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X2FuZF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj14b3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3hvcmFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl94b3JhbmRfUlIgX19idWlsdGluX0hFWEFHT05fTTRfYW5kX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpd2goUnNzMzIsUnQzMik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdoX1BSX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weWl3aF9QUl9zMV9ybmRfc2F0IF9fYnVpbHRpbl9IRVhBR09OX000X2NtcHlpX3doCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3aChSc3MzMixSdDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdoX1BSX2NvbmpfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5aXdoX1BSX2NvbmpfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9jbXB5aV93aGMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cndoKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3aF9QUl9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlyd2hfUFJfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9jbXB5cl93aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlyd2goUnNzMzIsUnQzMiopOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3aF9QUl9jb25qX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3aF9QUl9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTRfY21weXJfd2hjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPW1weShSczMyLFJ0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlhY2NfUlJfczFfc2F0KFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWFjY19SUl9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTRfbWFjX3VwX3MxX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZCgjdTYsbXB5aShSczMyLCNVNikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX21weWlfSVJJKFdvcmQzMiBJdTYsIFdvcmQzMiBScywgV29yZDMyIElVNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9tcHlpX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9NNF9tcHlyaV9hZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKFJ1MzIsbXB5aShSczMyLCN1NikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX21weWlfUlJJKFdvcmQzMiBSdSwgV29yZDMyIFJzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUlJJIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJpX2FkZHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnUzMixtcHlpKCN1NjoyLFJzMzIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9tcHlpX1JJUihXb3JkMzIgUnUsIFdvcmQzMiBJdTZfMiwgV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUklSIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJpX2FkZHJfdTIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoI3U2LG1weWkoUnMzMixSdDMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfbXB5aV9JUlIoV29yZDMyIEl1NiwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfbXB5aV9JUlIgX19idWlsdGluX0hFWEFHT05fTTRfbXB5cnJfYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeTMyPWFkZChSdTMyLG1weWkoUnkzMixSczMyKSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRfbXB5aV9SUlIoV29yZDMyIFJ1LCBXb3JkMzIgUnksIFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX21weWlfUlJSIF9fYnVpbHRpbl9IRVhBR09OX000X21weXJyX2FkZHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bXB5KFJzMzIsUnQzMik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21weW5hY19SUl9zMV9zYXQoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbXB5bmFjX1JSX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NNF9uYWNfdXBfczFfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFuZChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYW5kb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5kb3JfUlIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFuZChSczMyLH5SdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZG9yX1JuUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hbmRvcl9SblIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfYW5kbgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1vcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3Jvcl9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X29yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PXhvcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfeG9yb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfeG9yb3JfUlIgX19idWlsdGluX0hFWEFHT05fTTRfb3JfeG9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXBtcHl3KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9wbXB5d19SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfcG1weXdfUlIgX19idWlsdGluX0hFWEFHT05fTTRfcG1weXcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePXBtcHl3KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9wbXB5d3hhY2NfUlIoV29yZDY0IFJ4eCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3BtcHl3eGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF9wbXB5d19hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnBtcHloKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cG1weWhfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZwbXB5aF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cG1weWgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePXZwbXB5aChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnBtcHloeGFjY19SUihXb3JkNjQgUnh4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnBtcHloeGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cG1weWhfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weXdlaChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weXdlaGFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1weXdlaGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNF92cm1weWVoX2FjY19zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoYWNjX1BQX3MxKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoYWNjX1BQX3MxIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfYWNjX3MxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZybXB5d2VoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoX1BQIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfczAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d2VoX1BQX3MxKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d2VoX1BQX3MxIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5ZWhfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZybXB5d29oKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZybXB5d29oYWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5d29oYWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX000X3ZybXB5b2hfYWNjX3MwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weXdvaChSc3MzMixSdHQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hhY2NfUFBfczEoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hhY2NfUFBfczEgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9hY2NfczEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHl3b2goUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hfUFAgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9zMAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cm1weXdvaChSc3MzMixSdHQzMik6PDwxCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHl3b2hfUFBfczEoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHl3b2hfUFBfczEgX19idWlsdGluX0hFWEFHT05fTTRfdnJtcHlvaF9zMQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1hbmQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZHhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYW5keGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNF94b3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJePWFuZChSczMyLH5SdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZHhhY2NfUm5SKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZHhhY2NfUm5SIF9fYnVpbHRpbl9IRVhBR09OX000X3hvcl9hbmRuCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJePW9yKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9vcnhhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3J4YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX000X3hvcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49eG9yKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3hvcnhhY2NfUFAoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3hvcnhhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTRfeG9yX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZkbXB5YnN1KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92ZG1weWJzdWFjY19QUF9zYXQoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHlic3VhY2NfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX001X3ZkbWFjYnN1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZkbXB5YnN1KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92ZG1weWJzdV9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHlic3VfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX001X3ZkbXB5YnN1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12bXB5YnN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnN1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnN1YWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX001X3ZtYWNic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPXZtcHlidShSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdm1weWJ1YWNjX1JSKFdvcmQ2NCBSeHgsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnVhY2NfUlIgX19idWlsdGluX0hFWEFHT05fTTVfdm1hY2J1dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bXB5YnN1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnN1X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bXB5YnN1X1JSIF9fYnVpbHRpbl9IRVhBR09OX001X3ZtcHlic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dm1weWJ1KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bXB5YnVfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZtcHlidV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9NNV92bXB5YnV1CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12cm1weWJzdShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJzdWFjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cm1weWJzdWFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNV92cm1hY2JzdQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJtcHlidShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJ1YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5YnVhY2NfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtYWNidXUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHlic3UoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJtcHlic3VfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJtcHlic3VfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtcHlic3UKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnJtcHlidShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92cm1weWJ1X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZybXB5YnVfUFAgX19idWlsdGluX0hFWEFHT05fTTVfdnJtcHlidXUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGRhc2woUnQzMixSczMyLCN1MykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hZGRhc2xfUlJJKFdvcmQzMiBSdCwgV29yZDMyIFJzLCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkYXNsX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hZGRhc2xfcnJyaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNsX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsbmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNsb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzbG9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWFzbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNseGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNseGFjY19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9wX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWFzbChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9YXNsKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbGFuZF9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGFuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFzbChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbG9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9pX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc2woUnMzMiwjdTUpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbF9SSV9zYXQoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsX1JJX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV9yX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1hc2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNseGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbHhhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfcl94YWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc2xoKFJzczMyLCN1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNsaF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzbGhfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX2lfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzbHcoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhc2x3X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNsd19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfaV92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc2woUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc2xfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNsX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbGFjY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbGFuZF9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xhbmRfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbG5hY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc2xuYWNfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbG9yX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzbG9yX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWFzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzbHhhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNseGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl9wX3hvcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YXNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xhY2NfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzbGFjY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl9yX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbGFuZF9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsYW5kX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPWFzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNsbmFjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xuYWNfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3Jfcl9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMnw9YXNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc2xvcl9SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNsb3JfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3Jfcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzbChSczMyLFJ0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzbF9SUl9zYXQoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc2xfUlJfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1MyX2FzbF9yX3Jfc2F0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc2xoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzbGhfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzbGhfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNsX3JfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzbHcoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNsd19QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNsd19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc2xfcl92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc3IoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Fzcl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNybmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWFzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Fzcm9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YXNyKFJzczMyLCN1Nik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyX1BJX3JuZChXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyX1BJX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9wX3JuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1hc3JybmQoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2FzcnJuZF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3JybmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcF9ybmRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMis9YXNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcmFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcmFjY19SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9yX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1hc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyYW5kX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyYW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3JfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzItPWFzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JuYWNfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JuYWNfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcl9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMnw9YXNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcm9yX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyb3JfUkkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfcl9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFzcihSczMyLCN1NSk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyX1JJX3JuZChXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JfUklfcm5kIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3Jfcm5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YXNycm5kKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FzcnJuZF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcnJuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9yX3JuZF9nb29kc3ludGF4CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dmFzcncoUnNzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Zhc3J3X1BJKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YXNyd19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3JfaV9zdndfdHJ1bgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXNyaChSc3MzMiwjdTQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzcmhfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3JoX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9pX3ZoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc3J3KFJzczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNyd19QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFzcndfUEkgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX2lfdncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9YXNyKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfYXNyX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Fzcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyYWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyJj1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JhbmRfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNyYW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3JuYWNfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYXNybmFjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3BfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3Jvcl9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9hc3Jvcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9wX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyXj1hc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9hc3J4YWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2FzcnhhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3JfcF94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2Fzcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWFzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyYWNjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hc3JhY2NfUlIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3Jfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9YXNyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JhbmRfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FzcmFuZF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1hc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2Fzcm5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNybmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWFzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYXNyb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2Fzcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hc3IoUnMzMixSdDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9hc3JfUlJfc2F0KFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYXNyX1JSX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl9yX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhc3J3KFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdmFzcndfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFzcndfUFIgX19idWlsdGluX0hFWEFHT05fUzJfYXNyX3Jfc3Z3X3RydW4KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmFzcmgoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YXNyaF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YXNyaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9hc3Jfcl92aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YXNydyhSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zhc3J3X1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3J3X1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2Fzcl9yX3Z3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YnJldihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2JyZXZfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9icmV2X1IgX19idWlsdGluX0hFWEFHT05fUzJfYnJldgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1icmV2KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2JyZXZfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfYnJldl9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2JyZXZwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wwKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2wwX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2wwX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2wwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wwKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NsMF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbDBfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jbDBwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wxKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2wxX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2wxX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2wxCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2wxKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NsMV9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbDFfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jbDFwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2xiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2xiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xiX1IgX19idWlsdGluX0hFWEFHT05fUzJfY2xiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bm9ybWFtdChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX25vcm1hbXRfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3JtYW10X1IgX19idWlsdGluX0hFWEFHT05fUzJfY2xibm9ybQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNsYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xiX1AgX19idWlsdGluX0hFWEFHT05fUzJfY2xicAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNscmJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbHJiaXRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY2xyYml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2NscmJpdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y2xyYml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbHJiaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbHJiaXRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfY2xyYml0X3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDAoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jdDBfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jdDBfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jdDAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDAoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3QwX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2N0MF9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2N0MHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDEoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jdDFfUihXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jdDFfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9jdDEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jdDEoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY3QxX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2N0MV9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX2N0MXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGVpbnRlcmxlYXZlKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2RlaW50ZXJsZWF2ZV9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9kZWludGVybGVhdmVfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9kZWludGVybGVhdmUKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1leHRyYWN0dShSczMyLCN1NSwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXh0cmFjdHVfUklJKFdvcmQzMiBScywgV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2V4dHJhY3R1X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9leHRyYWN0dQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWV4dHJhY3R1KFJzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZXh0cmFjdHVfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXh0cmFjdHVfUlAgX19idWlsdGluX0hFWEFHT05fUzJfZXh0cmFjdHVfcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdHUoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0dV9QSUkoV29yZDY0IFJzcywgV29yZDMyIEl1NiwgV29yZDMyIElVNikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2V4dHJhY3R1X1BJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9leHRyYWN0dXAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdHUoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfZXh0cmFjdHVfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2V4dHJhY3R1X1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2V4dHJhY3R1cF9ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPWluc2VydChSczMyLCN1NSwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfaW5zZXJ0X1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2luc2VydF9SSUkgX19idWlsdGluX0hFWEFHT05fUzJfaW5zZXJ0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9aW5zZXJ0KFJzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfaW5zZXJ0X1JQKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfaW5zZXJ0X1JQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydF9ycAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMj1pbnNlcnQoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9pbnNlcnRfUElJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYsIFdvcmQzMiBJVTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9pbnNlcnRfUElJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzI9aW5zZXJ0KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2luc2VydF9QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfaW5zZXJ0X1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX2luc2VydHBfcnAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9aW50ZXJsZWF2ZShSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9pbnRlcmxlYXZlX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2ludGVybGVhdmVfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9pbnRlcmxlYXZlCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWxmcyhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sZnNfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xmc19QUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sZnNwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWxzbChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2xzbF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc2xfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsYWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX2FjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMiY9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsYW5kX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbGFuZF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMi09bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsbmFjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzbG5hY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9wX25hYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMnw9bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNsb3JfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNsb3JfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcF9vcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49bHNsKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNseGFjY19QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc2x4YWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzbF9yX3BfeG9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bHNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc2xfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1sc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbGFjY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNsYWNjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzbF9yX3JfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzImPWxzbChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNsYW5kX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xhbmRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3Jfcl9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMi09bHNsKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc2xuYWNfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzbG5hY19SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9yX25hYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1sc2woUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbG9yX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xvcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl9yX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZsc2xoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmxzbGhfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmxzbGhfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNsX3JfdmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmxzbHcoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNsd19QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bHNsd19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc2xfcl92dwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1sc3IoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2xzcl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3AKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyYWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JhY2NfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzImPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyYW5kX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JhbmRfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9hbmQKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNybmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3JuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcF9uYWMKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJ8PWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyb3JfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcm9yX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3Bfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzJePWxzcihSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyeGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyeGFjY19QSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9wX3hhY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1sc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWxzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3JhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3JhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9bHNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcmFuZF9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcmFuZF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3JfaV9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1sc3IoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNybmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNybmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWxzcihSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3Jvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcm9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMl49bHNyKFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcnhhY2NfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3J4YWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3JfeGFjYwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bHNyaChSc3MzMiwjdTQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmxzcmhfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zsc3JoX1BJIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9pX3ZoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZsc3J3KFJzczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNyd19QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmxzcndfUEkgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX2lfdncKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9bHNyKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfbHNyX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9wCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyYWNjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyJj1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JhbmRfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNyYW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfYW5kCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyLT1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3JuYWNfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfbHNybmFjX1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3BfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3Jvcl9QUihXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9sc3Jvcl9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9wX29yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyXj1sc3IoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9sc3J4YWNjX1BSKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2xzcnhhY2NfUFIgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX3JfcF94b3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1sc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcl9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcl9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzIrPWxzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyYWNjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc3JhY2NfUlIgX19idWlsdGluX0hFWEFHT05fUzJfbHNyX3Jfcl9hY2MKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMiY9bHNyKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9sc3JhbmRfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcmFuZF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl9yX2FuZAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1sc3IoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzcm5hY19SUihXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfbHNybmFjX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3JfbmFjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzJ8PWxzcihSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfbHNyb3JfUlIoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2xzcm9yX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3Jfb3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmxzcmgoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92bHNyaF9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92bHNyaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9sc3Jfcl92aAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12bHNydyhSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Zsc3J3X1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zsc3J3X1BSIF9fYnVpbHRpbl9IRVhBR09OX1MyX2xzcl9yX3Z3CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXBhY2tobChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfcGFja2hsX1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTMyXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfcGFja2hsX1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX3BhY2tobAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXBhcml0eShSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9wYXJpdHlfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Bhcml0eV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl9wYXJpdHlwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9c2V0Yml0KFJzMzIsI3U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NldGJpdF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zZXRiaXRfUkkgX19idWlsdGluX0hFWEFHT05fUzJfc2V0Yml0X2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1zZXRiaXQoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3NldGJpdF9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3NldGJpdF9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zZXRiaXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZmViKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmZWJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmZWJfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZlYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZmVoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmZWhfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmZWhfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZlaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZm9iKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmb2JfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmb2JfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZvYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1zaHVmZm9oKFJ0dDMyLFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3NodWZmb2hfUFAoV29yZDY0IFJ0dCwgV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3NodWZmb2hfUFAgX19idWlsdGluX0hFWEFHT05fUzJfc2h1ZmZvaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1iKFJ4MzIrKyNzNDowOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtYl9JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWJfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyYl9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtYihSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtYl9NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWJfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJiX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1kKFJ4MzIrKyNzNDozOmNpcmMoTXUyKSk9UnR0MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X21lbWRfSU1QX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzMsIFdvcmQzMiBNdSwgV29yZDY0IFJ0dCwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbWVtZF9JTVBfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJkX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1kKFJ4MzIrK0k6Y2lyYyhNdTIpKT1SdHQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtZF9NUF9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkNjQgUnR0LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9tZW1kX01QX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyZF9wY3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtaChSeDMyKysjczQ6MTpjaXJjKE11MikpPVJ0MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9JTVJoX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgSXM0XzEsIFdvcmQzMiBNdSwgV29yZDMyIFJ0LCB2b2lkKiBCYXNlQWRkcmVzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9tZW1oX0lNUmhfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJmX3BjaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1oKFJ4MzIrK0k6Y2lyYyhNdTIpKT1SdDMyLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X21lbWhfTVJoX2NpcmModm9pZCoqIFJ4LCBXb3JkMzIgTXUsIFdvcmQzMiBSdCwgdm9pZCogQmFzZUFkZHJlc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbWVtaF9NUmhfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJmX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW1oKFJ4MzIrKyNzNDoxOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMSwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWhfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyaF9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtaChSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtaF9NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbWhfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJoX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBtZW13KFJ4MzIrKyNzNDoyOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtd19JTVJfY2lyYyh2b2lkKiogUngsIFdvcmQzMiBJczRfMiwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbXdfSU1SX2NpcmMgX19idWlsdGluX0hFWEFHT05fUzJfc3RvcmVyaV9wY2kKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgbWVtdyhSeDMyKytJOmNpcmMoTXUyKSk9UnQzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfbWVtd19NUl9jaXJjKHZvaWQqKiBSeCwgV29yZDMyIE11LCBXb3JkMzIgUnQsIHZvaWQqIEJhc2VBZGRyZXNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X21lbXdfTVJfY2lyYyBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdG9yZXJpX3BjcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRoYihSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzYXRoYl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXRoYl9SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3N2c2F0aGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12c2F0aHViKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNhdGh1Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXRodWJfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl9zdnNhdGh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4YihSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhiX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhiX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGJfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4ZChSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhkX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhkX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4aChSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHhoX1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHhoX1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeGhfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXRhYmxlaWR4dyhSczMyLCN1NCwjVTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdGFibGVpZHh3X1JJSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdGFibGVpZHh3X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90YWJsZWlkeHdfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXRvZ2dsZWJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl90b2dnbGViaXRfUkkoV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdG9nZ2xlYml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1MyX3RvZ2dsZWJpdF9pCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dG9nZ2xlYml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl90b2dnbGViaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl90b2dnbGViaXRfUlIgX19idWlsdGluX0hFWEFHT05fUzJfdG9nZ2xlYml0X3IKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUGQ0PXRzdGJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdHN0Yml0X1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9wX3RzdGJpdF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl90c3RiaXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9dHN0Yml0KFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3BfdHN0Yml0X1JSKFdvcmQzMiBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3BfdHN0Yml0X1JSIF9fYnVpbHRpbl9IRVhBR09OX1MyX3RzdGJpdF9yCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhbGlnbmIoUnR0MzIsUnNzMzIsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZhbGlnbmJfUFBJKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWxpZ25iX1BQSSBfX2J1aWx0aW5fSEVYQUdPTl9TMl92YWxpZ25pYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLFB1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92YWxpZ25iX1BQcChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzLCBCeXRlIFB1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmFsaWduYl9QUHAgX19idWlsdGluX0hFWEFHT05fUzJfdmFsaWducmIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNuZWdoKFJzczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNuZWdoX1BSKFdvcmQ2NCBSc3MsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbmVnaF9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92Y25lZ2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmNyb3RhdGUoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92Y3JvdGF0ZV9QUihXb3JkNjQgUnNzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92Y3JvdGF0ZV9QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92Y3JvdGF0ZQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjbmVnaChSc3MzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY25lZ2hhY2NfUFIoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjbmVnaGFjY19QUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cmNuZWdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJuZHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZybmR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92cm5kd2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cm5kcGFja3doCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnJuZHdoKFJzczMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92cm5kd2hfUF9zYXQoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZybmR3aF9QX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92cm5kcGFja3docwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRoYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c2F0aGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnNhdGhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGhiCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzYXRoYihSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c2F0aGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNhdGhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGhiX25vcGFjawoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZzYXRodWIoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNhdGh1Yl9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c2F0aHViX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdGh1YgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c2F0aHViKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzYXRodWJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNhdGh1Yl9QIF9fYnVpbHRpbl9IRVhBR09OX1MyX3ZzYXRodWJfbm9wYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnNhdHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3ZzYXR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92c2F0d2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnNhdHdoKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzYXR3aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c2F0d2hfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d2hfbm9wYWNrCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnNhdHd1aChSc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92c2F0d3VoX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzYXR3dWhfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c2F0d3VoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzYXR3dWgoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNhdHd1aF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c2F0d3VoX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnNhdHd1aF9ub3BhY2sKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12c3BsYXRiKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnNwbGF0Yl9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZzcGxhdGJfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsYXRyYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3BsYXRoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNwbGF0aF9SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzcGxhdGhfUiBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsYXRyaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12c3BsaWNlYihSc3MzMixSdHQzMiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnNwbGljZWJfUFBJKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92c3BsaWNlYl9QUEkgX19idWlsdGluX0hFWEFHT05fUzJfdnNwbGljZWliCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzcGxpY2ViKFJzczMyLFJ0dDMyLFB1NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3BsaWNlYl9QUHAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCwgQnl0ZSBQdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzcGxpY2ViX1BQcCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92c3BsaWNlcmIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnN4dGJoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnN4dGJoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnN4dGJoX1IgX19idWlsdGluX0hFWEFHT05fUzJfdnN4dGJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzeHRodyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZzeHRod19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZzeHRod19SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3ZzeHRodwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZ0cnVuZWhiKFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Z0cnVuZWhiX1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Z0cnVuZWhiX1AgX19idWlsdGluX0hFWEFHT05fUzJfdnRydW5laGIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5ld2goUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5ld2hfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVuZXdoX1BQIF9fYnVpbHRpbl9IRVhBR09OX1MyX3Z0cnVuZXdoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9dnRydW5vaGIoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfdnRydW5vaGJfUChXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdnRydW5vaGJfUCBfX2J1aWx0aW5fSEVYQUdPTl9TMl92dHJ1bm9oYgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12dHJ1bm93aChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92dHJ1bm93aF9QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnRydW5vd2hfUFAgX19idWlsdGluX0hFWEFHT05fUzJfdnRydW5vd2gKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnp4dGJoKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfdnp4dGJoX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfdnp4dGJoX1IgX19idWlsdGluX0hFWEFHT05fUzJfdnp4dGJoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ6eHRodyhSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z6eHRod19SKFdvcmQzMiBScykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z6eHRod19SIF9fYnVpbHRpbl9IRVhBR09OX1MyX3Z6eHRodwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWFkZChSczMyLGFkZChSdTMyLCNzNikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2FkZF9SUkkoV29yZDMyIFJzLCBXb3JkMzIgUnUsIFdvcmQzMiBJczYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfYWRkX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9hZGRhZGRpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YWRkKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9hc2xfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9hc2xfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FkZGlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YWRkKCN1OCxsc3IoUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9sc3JfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FkZF9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FkZGlfbHNyX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YW5kKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9hc2xfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZF9hc2xfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FuZGlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9YW5kKCN1OCxsc3IoUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZF9sc3JfSVJJKFdvcmQzMiBJdTgsIFdvcmQzMiBSeCwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZF9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2FuZGlfbHNyX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9YWRkKGNsYihSczMyKSwjczYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2NsYl9SSShXb3JkMzIgUnMsIFdvcmQzMiBJczYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9hZGRfY2xiX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X2NsYmFkZGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoY2xiKFJzczMyKSwjczYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfYWRkX2NsYl9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXM2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX2NsYl9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9jbGJwYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPW5vcm1hbXQoUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfbm9ybWFtdF9QKFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9ub3JtYW10X1AgX19idWlsdGluX0hFWEFHT05fUzRfY2xicG5vcm0KCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1leHRyYWN0KFJzMzIsI3U1LCNVNSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9leHRyYWN0X1JJSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9leHRyYWN0X1JJSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9leHRyYWN0CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9ZXh0cmFjdChSczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2V4dHJhY3RfUlAoV29yZDMyIFJzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfZXh0cmFjdF9SUCBfX2J1aWx0aW5fSEVYQUdPTl9TNF9leHRyYWN0X3JwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWV4dHJhY3QoUnNzMzIsI3U2LCNVNikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0X1BJSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2LCBXb3JkMzIgSVU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZXh0cmFjdF9QSUkgX19idWlsdGluX0hFWEFHT05fUzRfZXh0cmFjdHAKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZXh0cmFjdChSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9leHRyYWN0X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9leHRyYWN0X1BQIF9fYnVpbHRpbl9IRVhBR09OX1M0X2V4dHJhY3RwX3JwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bHNsKCNzNixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2xzbF9JUihXb3JkMzIgSXM2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9sc2xfSVIgX19idWlsdGluX0hFWEFHT05fUzRfbHNsaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IXRzdGJpdChSczMyLCN1NSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBCeXRlIFE2X3Bfbm90X3RzdGJpdF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfdHN0Yml0X1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X250c3RiaXRfaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBQZDQ9IXRzdGJpdChSczMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF90c3RiaXRfUlIoV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfdHN0Yml0X1JSIF9fYnVpbHRpbl9IRVhBR09OX1M0X250c3RiaXRfcgoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1hbmQoUnMzMiwjczEwKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FuZG9yX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXMxMCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2FuZG9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yX2FuZGkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUngzMj1vcihSdTMyLGFuZChSeDMyLCNzMTApKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX2FuZF9SUkkoV29yZDMyIFJ1LCBXb3JkMzIgUngsIFdvcmQzMiBJczEwKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfYW5kX1JSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9vcl9hbmRpeAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1vcihSczMyLCNzMTApCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3Jvcl9SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIElzMTApCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcm9yX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yX29yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPW9yKCN1OCxhc2woUngzMiwjVTUpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX29yX2FzbF9JUkkoV29yZDMyIEl1OCwgV29yZDMyIFJ4LCBXb3JkMzIgSVU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfb3JfYXNsX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9vcmlfYXNsX3JpCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4MzI9b3IoI3U4LGxzcihSeDMyLCNVNSkpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfb3JfbHNyX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9vcl9sc3JfSVJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X29yaV9sc3JfcmkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1wYXJpdHkoUnMzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Bhcml0eV9SUihXb3JkMzIgUnMsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBBTFU2NAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3Bhcml0eV9SUiBfX2J1aWx0aW5fSEVYQUdPTl9TNF9wYXJpdHkKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1hZGQoUnMzMixzdWIoI3M2LFJ1MzIpKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2FkZF9zdWJfUklSKFdvcmQzMiBScywgV29yZDMyIElzNiwgV29yZDMyIFJ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIEFMVTY0CiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfYWRkX3N1Yl9SSVIgX19idWlsdGluX0hFWEFHT05fUzRfc3ViYWRkaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXN1YigjdTgsYXNsKFJ4MzIsI1U1KSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfYXNsX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfYXNsX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9zdWJpX2FzbF9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyPXN1YigjdTgsbHNyKFJ4MzIsI1U1KSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9zdWJfbHNyX0lSSShXb3JkMzIgSXU4LCBXb3JkMzIgUngsIFdvcmQzMiBJVTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9zdWJfbHNyX0lSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF9zdWJpX2xzcl9yaQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12cmNyb3RhdGUoUnNzMzIsUnQzMiwjdTIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnJjcm90YXRlX1BSSShXb3JkNjQgUnNzLCBXb3JkMzIgUnQsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92cmNyb3RhdGVfUFJJIF9fYnVpbHRpbl9IRVhBR09OX1M0X3ZyY3JvdGF0ZQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9dnJjcm90YXRlKFJzczMyLFJ0MzIsI3UyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZyY3JvdGF0ZWFjY19QUkkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIFJ0LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnJjcm90YXRlYWNjX1BSSSBfX2J1aWx0aW5fSEVYQUdPTl9TNF92cmNyb3RhdGVfYWNjCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4YWRkc3ViaChSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnhhZGRzdWJoX1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhhZGRzdWJoX1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eGFkZHN1YmgKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnhhZGRzdWJoKFJzczMyLFJ0dDMyKTpybmQ6Pj4xOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z4YWRkc3ViaF9QUF9ybmRfcnMxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhhZGRzdWJoX1BQX3JuZF9yczFfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1M0X3Z4YWRkc3ViaHIKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnhhZGRzdWJ3KFJzczMyLFJ0dDMyKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92eGFkZHN1YndfUFBfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18zb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92eGFkZHN1YndfUFBfc2F0IF9fYnVpbHRpbl9IRVhBR09OX1M0X3Z4YWRkc3VidwoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12eHN1YmFkZGgoUnNzMzIsUnR0MzIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3Z4c3ViYWRkaF9QUF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z4c3ViYWRkaF9QUF9zYXQgX19idWlsdGluX0hFWEFHT05fUzRfdnhzdWJhZGRoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4c3ViYWRkaChSc3MzMixSdHQzMik6cm5kOj4+MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92eHN1YmFkZGhfUFBfcm5kX3JzMV9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z4c3ViYWRkaF9QUF9ybmRfcnMxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eHN1YmFkZGhyCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZ4c3ViYWRkdyhSc3MzMixSdHQzMik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnhzdWJhZGR3X1BQX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnhzdWJhZGR3X1BQX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9TNF92eHN1YmFkZHcKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj12YXNyaHViKFJzczMyLCN1NCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3Zhc3JodWJfUElfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl92YXNyaHViX1BJX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fUzVfYXNyaHViX3JuZF9zYXRfZ29vZHN5bnRheAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZhc3JodWIoUnNzMzIsI3U0KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92YXNyaHViX1BJX3NhdChXb3JkNjQgUnNzLCBXb3JkMzIgSXU0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfdmFzcmh1Yl9QSV9zYXQgX19idWlsdGluX0hFWEFHT05fUzVfYXNyaHViX3NhdAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXBvcGNvdW50KFJzczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX3BvcGNvdW50X1AoV29yZDY0IFJzcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3BvcGNvdW50X1AgX19idWlsdGluX0hFWEFHT05fUzVfcG9wY291bnRwCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhc3JoKFJzczMyLCN1NCk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFzcmhfUElfcm5kKFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Zhc3JoX1BJX3JuZCBfX2J1aWx0aW5fSEVYQUdPTl9TNV92YXNyaHJuZF9nb29kc3ludGF4CgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjY2xlYW5hKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9kY2NsZWFuYV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2NsZWFuYV9BIF9fYnVpbHRpbl9IRVhBR09OX1kyX2RjY2xlYW5hCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjY2xlYW5pbnZhKFJzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl9kY2NsZWFuaW52YV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2NsZWFuaW52YV9BIF9fYnVpbHRpbl9IRVhBR09OX1kyX2RjY2xlYW5pbnZhCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGRjZmV0Y2goUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RjZmV0Y2hfQShBZGRyZXNzIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2ZldGNoX0EgX19idWlsdGluX0hFWEFHT05fWTJfZGNmZXRjaAoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBkY2ludmEoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RjaW52YV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY2ludmFfQSBfX2J1aWx0aW5fSEVYQUdPTl9ZMl9kY2ludmEKCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZGN6ZXJvYShSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZGN6ZXJvYV9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kY3plcm9hX0EgX19idWlsdGluX0hFWEFHT05fWTJfZGN6ZXJvYQoKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBsMmZldGNoKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2wyZmV0Y2hfQVIoQWRkcmVzcyBScywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfbDJmZXRjaF9BUiBfX2J1aWx0aW5fSEVYQUdPTl9ZNF9sMmZldGNoCgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGwyZmV0Y2goUnMzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2wyZmV0Y2hfQVAoQWRkcmVzcyBScywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X2wyZmV0Y2hfQVAgX19idWlsdGluX0hFWEFHT05fWTVfbDJmZXRjaAoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfcm9sX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3AKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbGFjY19QSShXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Bfcm9sYWNjX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3BfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMiY9cm9sKFJzczMyLCN1NikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9yb2xhbmRfUEkoV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDMyIEl1NikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3JvbGFuZF9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9wX2FuZAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzItPXJvbChSc3MzMiwjdTYpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1Bfcm9sbmFjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2xuYWNfUEkgX19idWlsdGluX0hFWEFHT05fUzZfcm9sX2lfcF9uYWMKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyfD1yb2woUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3JvbG9yX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2xvcl9QSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9wX29yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMl49cm9sKFJzczMyLCN1NikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9yb2x4YWNjX1BJKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQzMiBJdTYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9yb2x4YWNjX1BJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3BfeGFjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sX1JJKFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvbF9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyKz1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sYWNjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sYWNjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyJj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sYW5kX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sYW5kX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfYW5kCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sbmFjX1JJKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgSXU1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Jfcm9sbmFjX1JJIF9fYnVpbHRpbl9IRVhBR09OX1M2X3JvbF9pX3JfbmFjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyfD1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9sb3JfUkkoV29yZDMyIFJ4LCBXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9yb2xvcl9SSSBfX2J1aWx0aW5fSEVYQUdPTl9TNl9yb2xfaV9yX29yCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyXj1yb2woUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1Jfcm9seGFjY19SSShXb3JkMzIgUngsIFdvcmQzMiBScywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3JvbHhhY2NfUkkgX19idWlsdGluX0hFWEFHT05fUzZfcm9sX2lfcl94YWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12YWJzZGlmZmIoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZiX1BQKFdvcmQ2NCBSdHQsIFdvcmQ2NCBSc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZhYnNkaWZmYl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9NNl92YWJzZGlmZmIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZhYnNkaWZmdWIoUnR0MzIsUnNzMzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmFic2RpZmZ1Yl9QUChXb3JkNjQgUnR0LCBXb3JkNjQgUnNzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF92YWJzZGlmZnViX1BQIF9fYnVpbHRpbl9IRVhBR09OX002X3ZhYnNkaWZmdWIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPXZzcGxhdGIoUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF92c3BsYXRiX1IoV29yZDMyIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdnNwbGF0Yl9SIF9fYnVpbHRpbl9IRVhBR09OX1M2X3ZzcGxhdHJicAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5laGIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5laGJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVuZWhiX1BQIF9fYnVpbHRpbl9IRVhBR09OX1M2X3Z0cnVuZWhiX3BwcAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dnRydW5vaGIoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdnRydW5vaGJfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzNvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3Z0cnVub2hiX1BQIF9fYnVpbHRpbl9IRVhBR09OX1M2X3Z0cnVub2hiX3BwcAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12bWVtKFJ0MzIpOm50CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZtZW1fUl9udChXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTUFQUElORwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Zfdm1lbV9SX250IF9fYnVpbHRpbl9IRVhBR09OX1Y2X2xkbnRudDAKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFBkND0hYW55OCh2Y21wYi5lcShSc3MzMixSdHQzMikpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogQnl0ZSBRNl9wX25vdF9hbnk4X3ZjbXBiX2VxX1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQUxVNjQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfcF9ub3RfYW55OF92Y21wYl9lcV9QUCBfX2J1aWx0aW5fSEVYQUdPTl9BNl92Y21wYmVxX25vdGFueQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY2Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGZhZGQoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmYWRkX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZhZGRfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZhZGQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmc3ViKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZnN1Yl9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2Rmc3ViX1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2Rmc3ViCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NiAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjYKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeDMyLT1tcHlpKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9tcHlpbmFjX1JSKFdvcmQzMiBSeCwgV29yZDMyIFJzLCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21weWluYWNfUlIgX19idWlsdGluX0hFWEFHT05fTTJfbW5hY2kKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9bWFzaygjdTUsI1U1KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX21hc2tfSUkoV29yZDMyIEl1NSwgV29yZDMyIElVNSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX21hc2tfSUkgX19idWlsdGluX0hFWEFHT05fUzJfbWFzawojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNsaXAoUnMzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY2xpcF9SSShXb3JkMzIgUnMsIFdvcmQzMiBJdTUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU18yb3AKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbGlwX1JJIF9fYnVpbHRpbl9IRVhBR09OX0E3X2NsaXAKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jcm91bmQoUnNzMzIsI3U2KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2Nyb3VuZF9QSShXb3JkNjQgUnNzLCBXb3JkMzIgSXU2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfMm9wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY3JvdW5kX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E3X2Nyb3VuZGRfcmkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jcm91bmQoUnNzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jcm91bmRfUFIoV29yZDY0IFJzcywgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNfM29wCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY3JvdW5kX1BSIF9fYnVpbHRpbl9IRVhBR09OX0E3X2Nyb3VuZGRfcnIKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj12Y2xpcChSc3MzMiwjdTUpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmNsaXBfUEkoV29yZDY0IFJzcywgV29yZDMyIEl1NSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBTXzJvcAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZjbGlwX1BJIF9fYnVpbHRpbl9IRVhBR09OX0E3X3ZjbGlwCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWRmbWF4KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1heF9QUChGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbWF4X1BQIF9fYnVpbHRpbl9IRVhBR09OX0YyX2RmbWF4CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1pbihSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBGbG9hdDY0IFE2X1BfZGZtaW5fUFAoRmxvYXQ2NCBSc3MsIEZsb2F0NjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9kZm1pbl9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1pbgojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9ZGZtcHlmaXgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbXB5Zml4X1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlmaXhfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZtcHlmaXgKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1kZm1weWhoKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1weWhoYWNjX1BQKEZsb2F0NjQgUnh4LCBGbG9hdDY0IFJzcywgRmxvYXQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2RmbXB5aGhhY2NfUFAgX19idWlsdGluX0hFWEFHT05fRjJfZGZtcHloaAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWRmbXB5bGgoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogRmxvYXQ2NCBRNl9QX2RmbXB5bGhhY2NfUFAoRmxvYXQ2NCBSeHgsIEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlsaGFjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1weWxoCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1kZm1weWxsKFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEZsb2F0NjQgUTZfUF9kZm1weWxsX1BQKEZsb2F0NjQgUnNzLCBGbG9hdDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfZGZtcHlsbF9QUCBfX2J1aWx0aW5fSEVYQUdPTl9GMl9kZm1weWxsCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHlpdyhSc3MzMixSdHQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5aXdfUFAoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aXdfUFAgX19idWlsdGluX0hFWEFHT05fTTdfZGNtcHlpdwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5aXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWl3YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weWl3YWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5aXdfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9Y21weWl3KFJzczMyLFJ0dDMyKikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkNjQgUTZfUF9jbXB5aXdfUFBfY29uaihXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlpd19QUF9jb25qIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5aXdjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUnh4MzIrPWNtcHlpdyhSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weWl3YWNjX1BQX2NvbmooV29yZDY0IFJ4eCwgV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5aXdhY2NfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weWl3Y19hY2MKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZGQzMj1jbXB5cncoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJ3X1BQKFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weXJ3X1BQIF9fYnVpbHRpbl9IRVhBR09OX003X2RjbXB5cncKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSeHgzMis9Y21weXJ3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlyd2FjY19QUChXb3JkNjQgUnh4LCBXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX2NtcHlyd2FjY19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weXJ3X2FjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkZDMyPWNtcHlydyhSc3MzMixSdHQzMiopCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfY21weXJ3X1BQX2NvbmooV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUF9jbXB5cndfUFBfY29uaiBfX2J1aWx0aW5fSEVYQUdPTl9NN19kY21weXJ3YwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz1jbXB5cncoUnNzMzIsUnR0MzIqKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX2NtcHlyd2FjY19QUF9jb25qKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfY21weXJ3YWNjX1BQX2NvbmogX19idWlsdGluX0hFWEFHT05fTTdfZGNtcHlyd2NfYWNjCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmRkMzI9dmRtcHl3KFJzczMyLFJ0dDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQ2NCBRNl9QX3ZkbXB5d19QUChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9QX3ZkbXB5d19QUCBfX2J1aWx0aW5fSEVYQUdPTl9NN192ZG1weQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJ4eDMyKz12ZG1weXcoUnNzMzIsUnR0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDY0IFE2X1BfdmRtcHl3YWNjX1BQKFdvcmQ2NCBSeHgsIFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1BfdmRtcHl3YWNjX1BQIF9fYnVpbHRpbl9IRVhBR09OX003X3ZkbXB5X2FjYwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3KFJzczMyLFJ0dDMyKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weWl3X1BQX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlpd19QUF9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpdwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weWl3KFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcHlpd19QUF9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weWl3X1BQX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd19ybmQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpdyhSc3MzMixSdHQzMiopOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5aXdfUFBfY29ual9zMV9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5aXdfUFBfY29ual9zMV9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd2MKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY3ICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18KLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPWNtcHlpdyhSc3MzMixSdHQzMiopOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weWl3X1BQX2NvbmpfczFfcm5kX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlpd19QUF9jb25qX3MxX3JuZF9zYXQgX19idWlsdGluX0hFWEFHT05fTTdfd2NtcHlpd2Nfcm5kCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cncoUnNzMzIsUnR0MzIpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5cndfUFBfczFfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3X1BQX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NyAgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXyovCgojaWYgX19IRVhBR09OX0FSQ0hfXyA+PSA2NyAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1jbXB5cncoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfY21weXJ3X1BQX3MxX3JuZF9zYXQoV29yZDY0IFJzcywgV29yZDY0IFJ0dCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBNCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9jbXB5cndfUFBfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3X3JuZAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weXJ3KFJzczMyLFJ0dDMyKik6PDwxOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IFdvcmQzMiBRNl9SX2NtcHlyd19QUF9jb25qX3MxX3NhdChXb3JkNjQgUnNzLCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE0KICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2NtcHlyd19QUF9jb25qX3MxX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3YwojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjcgICYmIGRlZmluZWQgX19IRVhBR09OX0FVRElPX18qLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjcgJiYgZGVmaW5lZCBfX0hFWEFHT05fQVVESU9fXwovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFJkMzI9Y21weXJ3KFJzczMyLFJ0dDMyKik6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9jbXB5cndfUFBfY29ual9zMV9ybmRfc2F0KFdvcmQ2NCBSc3MsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1JfY21weXJ3X1BQX2NvbmpfczFfcm5kX3NhdCBfX2J1aWx0aW5fSEVYQUdPTl9NN193Y21weXJ3Y19ybmQKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY3ICAmJiBkZWZpbmVkIF9fSEVYQUdPTl9BVURJT19fKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZG1saW5rKFJzMzIsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X2RtbGlua19BQShBZGRyZXNzIFJzLCBBZGRyZXNzIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfZG1saW5rX0FBIF9fYnVpbHRpbl9IRVhBR09OX1k2X2RtbGluawojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXBhdXNlCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogV29yZDMyIFE2X1JfZG1wYXVzZSgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX2RtcGF1c2UgX19idWlsdGluX0hFWEFHT05fWTZfZG1wYXVzZQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXBvbGwKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9kbXBvbGwoKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9kbXBvbGwgX19idWlsdGluX0hFWEFHT05fWTZfZG1wb2xsCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2lmIF9fSEVYQUdPTl9BUkNIX18gPj0gNjgKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBkbXJlc3VtZShSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZG1yZXN1bWVfQShBZGRyZXNzIFJzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfZG1yZXN1bWVfQSBfX2J1aWx0aW5fSEVYQUdPTl9ZNl9kbXJlc3VtZQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgZG1zdGFydChSczMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfZG1zdGFydF9BKEFkZHJlc3MgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9kbXN0YXJ0X0EgX19idWlsdGluX0hFWEFHT05fWTZfZG1zdGFydAojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjggKi8KCiNpZiBfX0hFWEFHT05fQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUmQzMj1kbXdhaXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl9kbXdhaXQoKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIFNUCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUl9kbXdhaXQgX19idWlsdGluX0hFWEFHT05fWTZfZG13YWl0CiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2luY2x1ZGUgPGhleGFnb25fY2lyY19icmV2X2ludHJpbnNpY3MuaD4KI2lmZGVmIF9fSFZYX18KI2luY2x1ZGUgPGh2eF9oZXhhZ29uX3Byb3Rvcy5oPgojZW5kaWYgLyogX19IVlhfXyAqLwojZW5kaWYKAC8qPT09LS0tLSB0bW1pbnRyaW4uaCAtIFNTU0UzIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19UTU1JTlRSSU5fSAojZGVmaW5lIF9fVE1NSU5UUklOX0gKCiNpbmNsdWRlIDxwbW1pbnRyaW4uaD4KCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzc3NlMyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19NTVggX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJtbXgsc3NzZTMiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNjQpKSkKCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDgtYml0IHNpZ25lZAovLy8gICAgaW50ZWdlcnMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGFuZCBzdG9yZXMgdGhlIDgtYml0IHVuc2lnbmVkIGludGVnZXIKLy8vICAgIHJlc3VsdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEFCU0IgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs4IHggaThdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTgoX19tNjQgX19hKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhYnNiKChfX3Y4cWkpX19hKTsKfQoKLy8vIENvbXB1dGVzIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiBlYWNoIG9mIHRoZSBwYWNrZWQgOC1iaXQgc2lnbmVkCi8vLyAgICBpbnRlZ2VycyBpbiB0aGUgc291cmNlIG9wZXJhbmQgYW5kIHN0b3JlcyB0aGUgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU0IgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpOChfX20xMjhpIF9fYSkKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BhYnNiMTI4KChfX3YxNnFpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDE2LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAxNi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQQUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTE2KF9fbTY0IF9fYSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWJzdygoX192NGhpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDE2LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAxNi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU1cgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpMTYoX19tMTI4aSBfX2EpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWJzdzEyOCgoX192OGhpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDMyLWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQQUJTRCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2Fic19waTMyKF9fbTY0IF9fYSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWJzZCgoX192MnNpKV9fYSk7Cn0KCi8vLyBDb21wdXRlcyB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgZWFjaCBvZiB0aGUgcGFja2VkIDMyLWJpdCBzaWduZWQKLy8vICAgIGludGVnZXJzIGluIHRoZSBzb3VyY2Ugb3BlcmFuZCBhbmQgc3RvcmVzIHRoZSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgcmVzdWx0cyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBWUEFCU0QgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZQovLy8gICAgZWxlbWVudHMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hYnNfZXBpMzIoX19tMTI4aSBfX2EpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wYWJzZDEyOCgoX192NHNpKV9fYSk7Cn0KCi8vLyBDb25jYXRlbmF0ZXMgdGhlIHR3byAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmRzLCBhbmQKLy8vICAgIHJpZ2h0LXNoaWZ0cyB0aGUgcmVzdWx0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9hbGlnbnJfZXBpOChfX20xMjhpIGEsIF9fbTEyOGkgYiwgY29uc3QgaW50IG4pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEFMSUdOUiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMTYgeCBpOF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsxNiB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IG1hbnkgYnl0ZXMgdG8gcmlnaHQtc2hpZnQgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWUuCiNkZWZpbmUgX21tX2FsaWducl9lcGk4KGEsIGIsIG4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGFsaWducjEyOCgoX192MTZxaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoYiksIChuKSkpCgovLy8gQ29uY2F0ZW5hdGVzIHRoZSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmRzLCBhbmQgcmlnaHQtc2hpZnRzCi8vLyAgICB0aGUgcmVzdWx0IGJ5IHRoZSBudW1iZXIgb2YgYnl0ZXMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTY0IF9tbV9hbGlnbnJfcGk4KF9fbTY0IGEsIF9fbTY0IGIsIGNvbnN0IGludCBuKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBBTElHTlIgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIG4KLy8vICAgIEFuIGltbWVkaWF0ZSBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IG1hbnkgYnl0ZXMgdG8gcmlnaHQtc2hpZnQgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbmNhdGVuYXRlZCByaWdodC1zaGlmdGVkCi8vLyAgICB2YWx1ZS4KI2RlZmluZSBfbW1fYWxpZ25yX3BpOChhLCBiLCBuKSBcCiAgKChfX202NClfX2J1aWx0aW5faWEzMl9wYWxpZ25yKChfX3Y4cWkpKF9fbTY0KShhKSwgKF9fdjhxaSkoX19tNjQpKGIpLCAobikpKQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzggeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBIQUREVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZF9lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9waGFkZHcxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICAxMjgtYml0IHZlY3RvcnMgb2YgWzQgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBIQURERCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZF9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9waGFkZGQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIgcGFja2VkCi8vLyAgICA2NC1iaXQgdmVjdG9ycyBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQSEFERFcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc3VtcyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1faGFkZF9waTE2KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BoYWRkdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMiBwYWNrZWQKLy8vICAgIDY0LWJpdCB2ZWN0b3JzIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBIQURERCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9oYWRkX3BpMzIoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhhZGRkKChfX3Yyc2kpX19hLCAoX192MnNpKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgYWRkcyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyIHBhY2tlZAovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFs4IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSEFERFNXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHNhdHVyYXRlZAovLy8gICAgc3VtcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZHNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGhhZGRzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMiBwYWNrZWQKLy8vICAgIDY0LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4gMHg3RkZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBIQUREU1cgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIHN1bXMgb2YgdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc2F0dXJhdGVkCi8vLyAgICBzdW1zIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hhZGRzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhhZGRzdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgMTI4LWJpdCB2ZWN0b3JzIG9mIFs4IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3VidzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgMTI4LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQkQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGkzMl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oc3ViX2VwaTMyKF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3ViZDEyOCgoX192NHNpKV9fYSwgKF9fdjRzaSlfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiAyCi8vLyAgICBwYWNrZWQgNjQtYml0IHZlY3RvcnMgb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEhTVUJXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBsb3dlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgdXBwZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzCi8vLyAgICBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9oc3ViX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhzdWJ3KChfX3Y0aGkpX19hLCAoX192NGhpKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgc3VidHJhY3RzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIDIKLy8vICAgIHBhY2tlZCA2NC1iaXQgdmVjdG9ycyBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQSFNVQkQgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIGxvd2VyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMKLy8vICAgIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hzdWJfcGkzMihfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9waHN1YmQoKF9fdjJzaSlfX2EsIChfX3Yyc2kpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMgovLy8gICAgcGFja2VkIDEyOC1iaXQgdmVjdG9ycyBvZiBbOCB4IGkxNl0uIFBvc2l0aXZlIGRpZmZlcmVuY2VzIGdyZWF0ZXIgdGhhbgovLy8gICAgMHg3RkZGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3RkZGLiBOZWdhdGl2ZSBkaWZmZXJlbmNlcyBsZXNzIHRoYW4gMHg4MDAwIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQSFNVQlNXIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4gVGhlCi8vLyAgICBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB1cHBlciBiaXRzIG9mCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hzdWJzX2VwaTE2KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Boc3Vic3cxMjgoKF9fdjhoaSlfX2EsIChfX3Y4aGkpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBzdWJ0cmFjdHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gMgovLy8gICAgcGFja2VkIDY0LWJpdCB2ZWN0b3JzIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgZGlmZmVyZW5jZXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIGRpZmZlcmVuY2VzIGxlc3MgdGhhbiAweDgwMDAgYXJlCi8vLyAgICBzYXR1cmF0ZWQgdG8gMHg4MDAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUEhTVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuIFRoZQovLy8gICAgaG9yaXpvbnRhbCBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRoZSB2YWx1ZXMgYXJlIHN0b3JlZCBpbiB0aGUgbG93ZXIgYml0cyBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLiBUaGUKLy8vICAgIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIHVwcGVyIGJpdHMgb2YKLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzYXR1cmF0ZWQKLy8vICAgIGRpZmZlcmVuY2VzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSU19NTVgKX21tX2hzdWJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGhzdWJzdygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBjb3JyZXNwb25kaW5nIHBhaXJzIG9mIHBhY2tlZCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZCBhbmQgcGFja2VkIDgtYml0IHNpZ25lZAovLy8gICAgaW50ZWdlciB2YWx1ZXMgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQsIGFkZHMgcGFpcnMgb2YKLy8vICAgIGNvbnRpZ3VvdXMgcHJvZHVjdHMgd2l0aCBzaWduZWQgc2F0dXJhdGlvbiwgYW5kIHdyaXRlcyB0aGUgMTYtYml0IHN1bXMgdG8KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFs3OjBdIG9mIGJvdGggb3BlcmFuZHMgYXJlIG11bHRpcGxpZWQsIGJpdHMgWzE1OjhdIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzIGFyZSBtdWx0aXBsaWVkLCBhbmQgdGhlIHN1bSBvZiBib3RoIHJlc3VsdHMgaXMgd3JpdHRlbiB0bwovLy8gICAgYml0cyBbMTU6MF0gb2YgdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBNQUREVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHM6IFxuCi8vLyAgICBcYSBSMCA6PSAoXGEgX19hMCAqIFxhIF9fYjApICsgKFxhIF9fYTEgKiBcYSBfX2IxKSBcbgovLy8gICAgXGEgUjEgOj0gKFxhIF9fYTIgKiBcYSBfX2IyKSArIChcYSBfX2EzICogXGEgX19iMykgXG4KLy8vICAgIFxhIFIyIDo9IChcYSBfX2E0ICogXGEgX19iNCkgKyAoXGEgX19hNSAqIFxhIF9fYjUpIFxuCi8vLyAgICBcYSBSMyA6PSAoXGEgX19hNiAqIFxhIF9fYjYpICsgKFxhIF9fYTcgKiBcYSBfX2I3KSBcbgovLy8gICAgXGEgUjQgOj0gKFxhIF9fYTggKiBcYSBfX2I4KSArIChcYSBfX2E5ICogXGEgX19iOSkgXG4KLy8vICAgIFxhIFI1IDo9IChcYSBfX2ExMCAqIFxhIF9fYjEwKSArIChcYSBfX2ExMSAqIFxhIF9fYjExKSBcbgovLy8gICAgXGEgUjYgOj0gKFxhIF9fYTEyICogXGEgX19iMTIpICsgKFxhIF9fYTEzICogXGEgX19iMTMpIFxuCi8vLyAgICBcYSBSNyA6PSAoXGEgX19hMTQgKiBcYSBfX2IxNCkgKyAoXGEgX19hMTUgKiBcYSBfX2IxNSkKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGR1YnNfZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcG1hZGR1YnN3MTI4KChfX3YxNnFpKV9fYSwgKF9fdjE2cWkpX19iKTsKfQoKLy8vIE11bHRpcGxpZXMgY29ycmVzcG9uZGluZyBwYWlycyBvZiBwYWNrZWQgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQgYW5kIHBhY2tlZCA4LWJpdCBzaWduZWQKLy8vICAgIGludGVnZXIgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLCBhZGRzIHBhaXJzIG9mCi8vLyAgICBjb250aWd1b3VzIHByb2R1Y3RzIHdpdGggc2lnbmVkIHNhdHVyYXRpb24sIGFuZCB3cml0ZXMgdGhlIDE2LWJpdCBzdW1zIHRvCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyBiaXRzIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyAgICBGb3IgZXhhbXBsZSwgYml0cyBbNzowXSBvZiBib3RoIG9wZXJhbmRzIGFyZSBtdWx0aXBsaWVkLCBiaXRzIFsxNTo4XSBvZgovLy8gICAgYm90aCBvcGVyYW5kcyBhcmUgbXVsdGlwbGllZCwgYW5kIHRoZSBzdW0gb2YgYm90aCByZXN1bHRzIGlzIHdyaXR0ZW4gdG8KLy8vICAgIGJpdHMgWzE1OjBdIG9mIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBNQUREVUJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNlY29uZCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgcHJvZHVjdHMgb2YgYm90aAovLy8gICAgb3BlcmFuZHM6IFxuCi8vLyAgICBcYSBSMCA6PSAoXGEgX19hMCAqIFxhIF9fYjApICsgKFxhIF9fYTEgKiBcYSBfX2IxKSBcbgovLy8gICAgXGEgUjEgOj0gKFxhIF9fYTIgKiBcYSBfX2IyKSArIChcYSBfX2EzICogXGEgX19iMykgXG4KLy8vICAgIFxhIFIyIDo9IChcYSBfX2E0ICogXGEgX19iNCkgKyAoXGEgX19hNSAqIFxhIF9fYjUpIFxuCi8vLyAgICBcYSBSMyA6PSAoXGEgX19hNiAqIFxhIF9fYjYpICsgKFxhIF9fYTcgKiBcYSBfX2I3KQpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9tYWRkdWJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG1hZGR1YnN3KChfX3Y4cWkpX19hLCAoX192OHFpKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHBhY2tlZCAxNi1iaXQgc2lnbmVkIGludGVnZXIgdmFsdWVzLCB0cnVuY2F0ZXMgdGhlIDMyLWJpdAovLy8gICAgcHJvZHVjdHMgdG8gdGhlIDE4IG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBieSByaWdodC1zaGlmdGluZywgcm91bmRzIHRoZQovLy8gICAgdHJ1bmNhdGVkIHZhbHVlIGJ5IGFkZGluZyAxLCBhbmQgd3JpdGVzIGJpdHMgWzE2OjFdIHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQTVVMSFJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs4IHggaTE2XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbOCB4IGkxNl0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzggeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgYW5kIHNjYWxlZAovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhyc19lcGkxNihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wbXVsaHJzdzEyOCgoX192OGhpKV9fYSwgKF9fdjhoaSlfX2IpOwp9CgovLy8gTXVsdGlwbGllcyBwYWNrZWQgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlcywgdHJ1bmNhdGVzIHRoZSAzMi1iaXQKLy8vICAgIHByb2R1Y3RzIHRvIHRoZSAxOCBtb3N0IHNpZ25pZmljYW50IGJpdHMgYnkgcmlnaHQtc2hpZnRpbmcsIHJvdW5kcyB0aGUKLy8vICAgIHRydW5jYXRlZCB2YWx1ZSBieSBhZGRpbmcgMSwgYW5kIHdyaXRlcyBiaXRzIFsxNjoxXSB0byB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQTVVMSFJTVyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgYW5kIHNjYWxlZAovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fbXVsaHJzX3BpMTYoX19tNjQgX19hLCBfX202NCBfX2IpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcG11bGhyc3coKF9fdjRoaSlfX2EsIChfX3Y0aGkpX19iKTsKfQoKLy8vIENvcGllcyB0aGUgOC1iaXQgaW50ZWdlcnMgZnJvbSBhIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiBvciBjbGVhcnMgOC1iaXQgdmFsdWVzIGluIHRoZSBkZXN0aW5hdGlvbiwgYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBTSFVGQiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgYnl0ZXMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbjoKLy8vICAgIEJpdCA3OiBcbgovLy8gICAgMTogQ2xlYXIgdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZSBpbiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwOiBDb3B5IHRoZSBzZWxlY3RlZCBzb3VyY2UgYnl0ZSB0byB0aGUgY29ycmVzcG9uZGluZyBieXRlIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs2OjRdIFJlc2VydmVkLiAgXG4KLy8vICAgIEJpdHMgWzM6MF0gc2VsZWN0IHRoZSBzb3VyY2UgYnl0ZSB0byBiZSBjb3BpZWQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29waWVkIG9yIGNsZWFyZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2h1ZmZsZV9lcGk4KF9fbTEyOGkgX19hLCBfX20xMjhpIF9fYikKewogICAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzaHVmYjEyOCgoX192MTZxaSlfX2EsIChfX3YxNnFpKV9fYik7Cn0KCi8vLyBDb3BpZXMgdGhlIDgtYml0IGludGVnZXJzIGZyb20gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbiBvciBjbGVhcnMgOC1iaXQgdmFsdWVzIGluIHRoZSBkZXN0aW5hdGlvbiwgYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgUFNIVUZCIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgYnl0ZXMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbjoKLy8vICAgIEJpdCA3OiBcbgovLy8gICAgMTogQ2xlYXIgdGhlIGNvcnJlc3BvbmRpbmcgYnl0ZSBpbiB0aGUgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwOiBDb3B5IHRoZSBzZWxlY3RlZCBzb3VyY2UgYnl0ZSB0byB0aGUgY29ycmVzcG9uZGluZyBieXRlIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFszOjBdIHNlbGVjdCB0aGUgc291cmNlIGJ5dGUgdG8gYmUgY29waWVkLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29waWVkIG9yIGNsZWFyZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zaHVmZmxlX3BpOChfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2h1ZmIoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKLy8vIEZvciBlYWNoIDgtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGJ5dGUgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQU0lHTkIgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NpZ25fZXBpOChfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2lnbmIxMjgoKF9fdjE2cWkpX19hLCAoX192MTZxaSlfX2IpOwp9CgovLy8gRm9yIGVhY2ggMTYtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIHdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIHdvcmQgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFZQU0lHTlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBjb3BpZWQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIHdvcmRzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NpZ25fZXBpMTYoX19tMTI4aSBfX2EsIF9fbTEyOGkgX19iKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNpZ253MTI4KChfX3Y4aGkpX19hLCAoX192OGhpKV9fYik7Cn0KCi8vLyBGb3IgZWFjaCAzMi1iaXQgaW50ZWdlciBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQsIHBlcmZvcm0gb25lIG9mCi8vLyAgICB0aGUgZm9sbG93aW5nIGFjdGlvbnMgYXMgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQuCi8vLwovLy8gICAgSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgbmVnYXRpdmUsIGNhbGN1bGF0ZSB0aGUgdHdvJ3MKLy8vICAgIGNvbXBsZW1lbnQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgd29yZCBpbiB0aGUgZmlyc3Qgc291cmNlLCBhbmQgd3JpdGUgdGhhdAovLy8gICAgdmFsdWUgdG8gdGhlIGRlc3RpbmF0aW9uLiBJZiB0aGUgZG91Ymxld29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcwovLy8gICAgcG9zaXRpdmUsIGNvcHkgdGhlIGNvcnJlc3BvbmRpbmcgd29yZCBmcm9tIHRoZSBmaXJzdCBzb3VyY2UgdG8gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgemVybywgY2xlYXIgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIHdvcmQgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgXGMgVlBTSUdORCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGNvbnRyb2wgZG91Ymxld29yZHMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgcG9zaXRpb25zIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByZXN1bHRhbnQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2lnbl9lcGkzMihfX20xMjhpIF9fYSwgX19tMTI4aSBfX2IpCnsKICAgIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc2lnbmQxMjgoKF9fdjRzaSlfX2EsIChfX3Y0c2kpX19iKTsKfQoKLy8vIEZvciBlYWNoIDgtYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kIHdyaXRlIHRoYXQKLy8vICAgIHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGJ5dGUgaW4gdGhlIHNlY29uZCBzb3VyY2UgaXMgcG9zaXRpdmUsCi8vLyAgICBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgZnJvbSB0aGUgZmlyc3Qgc291cmNlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYKLy8vICAgIHRoZSBieXRlIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHplcm8sIGNsZWFyIHRoZSBjb3JyZXNwb25kaW5nIGJ5dGUgaW4KLy8vICAgIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBTSUdOQiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBjb250cm9sIGJ5dGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHBvc2l0aW9ucyBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByZXN1bHRhbnQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCl9tbV9zaWduX3BpOChfX202NCBfX2EsIF9fbTY0IF9fYikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2lnbmIoKF9fdjhxaSlfX2EsIChfX3Y4cWkpX19iKTsKfQoKLy8vIEZvciBlYWNoIDE2LWJpdCBpbnRlZ2VyIGluIHRoZSBmaXJzdCBzb3VyY2Ugb3BlcmFuZCwgcGVyZm9ybSBvbmUgb2YKLy8vICAgIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyBhcyBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBzb3VyY2Ugb3BlcmFuZC4KLy8vCi8vLyAgICBJZiB0aGUgd29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcyBuZWdhdGl2ZSwgY2FsY3VsYXRlIHRoZSB0d28ncwovLy8gICAgY29tcGxlbWVudCBvZiB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGluIHRoZSBmaXJzdCBzb3VyY2UsIGFuZCB3cml0ZSB0aGF0Ci8vLyAgICB2YWx1ZSB0byB0aGUgZGVzdGluYXRpb24uIElmIHRoZSB3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIHBvc2l0aXZlLAovLy8gICAgY29weSB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGZyb20gdGhlIGZpcnN0IHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24uIElmCi8vLyAgICB0aGUgd29yZCBpbiB0aGUgc2Vjb25kIHNvdXJjZSBpcyB6ZXJvLCBjbGVhciB0aGUgY29ycmVzcG9uZGluZyB3b3JkIGluCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSBcYyBQU0lHTlcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIGNvcGllZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgY29udHJvbCB3b3JkcyBjb3JyZXNwb25kaW5nIHRvCi8vLyAgICBwb3NpdGlvbnMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fc2lnbl9waTE2KF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzaWdudygoX192NGhpKV9fYSwgKF9fdjRoaSlfX2IpOwp9CgovLy8gRm9yIGVhY2ggMzItYml0IGludGVnZXIgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kLCBwZXJmb3JtIG9uZSBvZgovLy8gICAgdGhlIGZvbGxvd2luZyBhY3Rpb25zIGFzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHNvdXJjZSBvcGVyYW5kLgovLy8KLy8vICAgIElmIHRoZSBkb3VibGV3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzIG5lZ2F0aXZlLCBjYWxjdWxhdGUgdGhlIHR3bydzCi8vLyAgICBjb21wbGVtZW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZXdvcmQgaW4gdGhlIGZpcnN0IHNvdXJjZSwgYW5kCi8vLyAgICB3cml0ZSB0aGF0IHZhbHVlIHRvIHRoZSBkZXN0aW5hdGlvbi4gSWYgdGhlIGRvdWJsZXdvcmQgaW4gdGhlIHNlY29uZAovLy8gICAgc291cmNlIGlzIHBvc2l0aXZlLCBjb3B5IHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZXdvcmQgZnJvbSB0aGUgZmlyc3QKLy8vICAgIHNvdXJjZSB0byB0aGUgZGVzdGluYXRpb24uIElmIHRoZSBkb3VibGV3b3JkIGluIHRoZSBzZWNvbmQgc291cmNlIGlzCi8vLyAgICB6ZXJvLCBjbGVhciB0aGUgY29ycmVzcG9uZGluZyBkb3VibGV3b3JkIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIFxjIFBTSUdORCBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgY29waWVkLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0d28gY29udHJvbCBkb3VibGV3b3JkcyBjb3JyZXNwb25kaW5nCi8vLyAgICB0byBwb3NpdGlvbnMgaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcmVzdWx0YW50IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTX01NWApfbW1fc2lnbl9waTMyKF9fbTY0IF9fYSwgX19tNjQgX19iKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzaWduZCgoX192MnNpKV9fYSwgKF9fdjJzaSlfX2IpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfTU1YCgojZW5kaWYgLyogX19UTU1JTlRSSU5fSCAqLwoAcHBjX3dyYXBwZXJzL21taW50cmluLmgAc2FuaXRpemVyL2xzYW5faW50ZXJmYWNlLmgALy89PT0tLSBuZXRic2Rfc3lzY2FsbF9ob29rcy5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBwdWJsaWMgc2FuaXRpemVyIGludGVyZmFjZS4KLy8KLy8gU3lzdGVtIGNhbGwgaGFuZGxlcnMuCi8vCi8vIEludGVyZmFjZSBtZXRob2RzIGRlY2xhcmVkIGluIHRoaXMgaGVhZGVyIGltcGxlbWVudCBwcmUtIGFuZCBwb3N0LSBzeXNjYWxsCi8vIGFjdGlvbnMgZm9yIHRoZSBhY3RpdmUgc2FuaXRpemVyLgovLyBVc2FnZToKLy8gICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRmb28oLi4uYXJncy4uLik7Ci8vICAgbG9uZyBsb25nIHJlcyA9IHN5c2NhbGwoU1lTX2dldGZvbywgLi4uYXJncy4uLik7Ci8vICAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGZvbyhyZXMsIC4uLmFyZ3MuLi4pOwovLwovLyBETyBOT1QgRURJVCEgVEhJUyBGSUxFIEhBUyBCRUVOIEdFTkVSQVRFRCEKLy8KLy8gR2VuZXJhdGVkIHdpdGg6IGdlbmVyYXRlX25ldGJzZF9zeXNjYWxscy5hd2sKLy8gR2VuZXJhdGVkIGRhdGU6IDIwMjAtMDktMTAKLy8gR2VuZXJhdGVkIGZyb206IHN5c2NhbGxzLm1hc3Rlcix2IDEuMzA2IDIwMjAvMDgvMTQgMDA6NTM6MTYgcmlhc3RyYWRoIEV4cAovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFNBTklUSVpFUl9ORVRCU0RfU1lTQ0FMTF9IT09LU19ICiNkZWZpbmUgU0FOSVRJWkVSX05FVEJTRF9TWVNDQUxMX0hPT0tTX0gKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3lzY2FsbChjb2RlLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc1LCBhcmc2LCBhcmc3KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNjYWxsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvZGUpLCAobG9uZyBsb25nKShhcmcwKSwgKGxvbmcgbG9uZykoYXJnMSksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2NhbGwocmVzLCBjb2RlLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNCwgYXJnNSwgYXJnNiwgYXJnNykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzY2FsbCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoY29kZSksIChsb25nIGxvbmcpKGFyZzApLCAobG9uZyBsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXhpdChydmFsKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leGl0KChsb25nIGxvbmcpKHJ2YWwpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leGl0KHJlcywgcnZhbCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4aXQocmVzLCAobG9uZyBsb25nKShydmFsKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mb3JrKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZm9yayhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mb3JrKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWFkKGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkKHJlcywgZmQsIGJ1ZiwgbmJ5dGUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWQocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3dyaXRlKGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGUoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93cml0ZShyZXMsIGZkLCBidWYsIG5ieXRlKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuKHBhdGgsIGZsYWdzLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW4oKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29wZW4ocmVzLCBwYXRoLCBmbGFncywgbW9kZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3BlbihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb3NlKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UoKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9zZShyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb3NlKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF93YWl0NChwaWQsIHN0YXR1cywgb3B0aW9ucywgcnVzYWdlKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3dhaXQ0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAobG9uZyBsb25nKShvcHRpb25zKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfd2FpdDQocmVzLCBwaWQsIHN0YXR1cywgb3B0aW9ucywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVzYWdlKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF93YWl0NCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHN0YXR1cyksIChsb25nIGxvbmcpKG9wdGlvbnMpLCAgICAgICAgXAogICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vY3JlYXQocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29jcmVhdCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29jcmVhdChyZXMsIHBhdGgsIG1vZGUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2NyZWF0KHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpbmsocGF0aCwgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluaygobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGluaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpbmsocmVzLCBwYXRoLCBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGluayhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaW5rKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmxpbmsocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGluaygobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW5saW5rKHJlcywgcGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmxpbmsocmVzLCAobG9uZyBsb25nKShwYXRoKSkKLyogc3lzY2FsbCAxMSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hkaXIocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaGRpcigobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hkaXIocmVzLCBwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGRpcihyZXMsIChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaGRpcihmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZGlyKChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNoZGlyKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hkaXIocmVzLCAobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX21rbm9kKHBhdGgsIG1vZGUsIGRldikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbWtub2QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX21rbm9kKHJlcywgcGF0aCwgbW9kZSwgZGV2KSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbWtub2QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGRldikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2htb2QocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG1vZCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NobW9kKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2htb2QocmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hvd24ocGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG93bihyZXMsIHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYnJlYWsobnNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9icmVhaygobG9uZyBsb25nKShuc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2JyZWFrKHJlcywgbnNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYnJlYWsocmVzLCAobG9uZyBsb25nKShuc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzIwX2dldGZzc3RhdChidWYsIGJ1ZnNpemUsIGZsYWdzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfZ2V0ZnNzdGF0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8yMF9nZXRmc3N0YXQocmVzLCBidWYsIGJ1ZnNpemUsIGZsYWdzKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzIwX2dldGZzc3RhdCggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoYnVmc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2xzZWVrKGZkLCBvZmZzZXQsIHdoZW5jZSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vbHNlZWsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShvZmZzZXQpLCAobG9uZyBsb25nKSh3aGVuY2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2xzZWVrKHJlcywgZmQsIG9mZnNldCwgd2hlbmNlKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vbHNlZWsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykob2Zmc2V0KSwgKGxvbmcgbG9uZykod2hlbmNlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDBfbW91bnQodHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80MF9tb3VudCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80MF9tb3VudChyZXMsIHR5cGUsIHBhdGgsIGZsYWdzLCBkYXRhKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQwX21vdW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VubW91bnQocGF0aCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5tb3VudCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bm1vdW50KHJlcywgcGF0aCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubW91bnQocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHVpZCh1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0dWlkKChsb25nIGxvbmcpKHVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHVpZChyZXMsIHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dWlkKHJlcywgKGxvbmcgbG9uZykodWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR1aWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHVpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRldWlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRldWlkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZXVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wdHJhY2UocmVxLCBwaWQsIGFkZHIsIGRhdGEpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B0cmFjZSgobG9uZyBsb25nKShyZXEpLCAobG9uZyBsb25nKShwaWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B0cmFjZShyZXMsIHJlcSwgcGlkLCBhZGRyLCBkYXRhKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHRyYWNlKHJlcywgKGxvbmcgbG9uZykocmVxKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGFkZHIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlY3Ztc2cocywgbXNnLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdm1zZygobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobXNnKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlY3Ztc2cocmVzLCBzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhyZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZG1zZyhzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbXNnKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1zZyhyZXMsIHMsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbXNnKHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1zZyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2ZnJvbShzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tbGVuYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Zmcm9tKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSwgIFwKICAgICAgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKGZyb21sZW5hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVjdmZyb20ocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MsIGZyb20sICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxlbmFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2ZnJvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykoZnJvbWxlbmFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VwdChzLCBuYW1lLCBhbmFtZWxlbikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXB0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4pICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQocmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYW5hbWVsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBlZXJuYW1lKGZkZXMsIGFzYSwgYWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGVlcm5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBlZXJuYW1lKHJlcywgZmRlcywgYXNhLCBhbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGVlcm5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHNvY2tuYW1lKGZkZXMsIGFzYSwgYWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c29ja25hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHNvY2tuYW1lKHJlcywgZmRlcywgYXNhLCBhbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja25hbWUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY2VzcyhwYXRoLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXNzKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2FjY2VzcyhyZXMsIHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXNzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaGZsYWdzKHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NoZmxhZ3MoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hmbGFncyhyZXMsIHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGZsYWdzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2hmbGFncyhmZCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaGZsYWdzKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2hmbGFncyhyZXMsIGZkLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGZsYWdzKHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW5jKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW5jKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3luYyhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW5jKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9raWxsKHBpZCwgc2lnbnVtKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2tpbGwoKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa2lsbChyZXMsIHBpZCwgc2lnbnVtKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKHJlcywgKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfc3RhdDQzKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19zdGF0NDMoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfc3RhdDQzKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19zdGF0NDMocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBwaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBwaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwcGlkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBwaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19sc3RhdDQzKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX2xzdGF0NDMoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfbHN0YXQ0MyhyZXMsIHBhdGgsIHViKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19sc3RhdDQzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9kdXAoZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cCgobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cChyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BpcGUoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BpcGUoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9waXBlKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGVnaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGVnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRlZ2lkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGVnaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2ZpbChzYW1wbGVzLCBzaXplLCBvZmZzZXQsIHNjYWxlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvZmlsKChsb25nIGxvbmcpKHNhbXBsZXMpLCAobG9uZyBsb25nKShzaXplKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCksIChsb25nIGxvbmcpKHNjYWxlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJvZmlsKHJlcywgc2FtcGxlcywgc2l6ZSwgb2Zmc2V0LCBzY2FsZSkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcm9maWwocmVzLCAobG9uZyBsb25nKShzYW1wbGVzKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2l6ZSksIChsb25nIGxvbmcpKG9mZnNldCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2NhbGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2t0cmFjZShmbmFtZSwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa3RyYWNlKChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykob3BzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZhY3MpLCAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9rdHJhY2UocmVzLCBmbmFtZSwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2t0cmFjZShyZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvcHMpLCAobG9uZyBsb25nKShmYWNzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xM19zaWdhY3Rpb24xMyhzaWdudW0sIG5zYSwgb3NhKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ2FjdGlvbjEzKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaWdudW0pLCAobG9uZyBsb25nKShuc2EpLCAobG9uZyBsb25nKShvc2EpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTNfc2lnYWN0aW9uMTMocmVzLCBzaWdudW0sIG5zYSwgb3NhKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdhY3Rpb24xMyggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zYSksIChsb25nIGxvbmcpKG9zYSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Z2lkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3Byb2NtYXNrMTMoaG93LCBtYXNrKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMygobG9uZyBsb25nKShob3cpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3Byb2NtYXNrMTMocmVzLCBob3csIG1hc2spICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMyhyZXMsIChsb25nIGxvbmcpKGhvdyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGxvZ2luKG5hbWVidWYsIG5hbWVsZW4pICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0bG9naW4oKGxvbmcgbG9uZykobmFtZWJ1ZiksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZ2V0bG9naW4ocmVzLCBuYW1lYnVmLCBuYW1lbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRsb2dpbihyZXMsIChsb25nIGxvbmcpKG5hbWVidWYpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NldGxvZ2luKG5hbWVidWYpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0bG9naW4oKGxvbmcgbG9uZykobmFtZWJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2V0bG9naW4ocmVzLCBuYW1lYnVmKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zZXRsb2dpbihyZXMsIChsb25nIGxvbmcpKG5hbWVidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2FjY3QocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjdCgobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWNjdChyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2N0KHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3BlbmRpbmcxMygpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3BlbmRpbmcxMyhyZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTNfc2lnYWx0c3RhY2sxMyhuc3MsIG9zcykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xM19zaWdhbHRzdGFjazEzKChsb25nIGxvbmcpKG5zcyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9zcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xM19zaWdhbHRzdGFjazEzKHJlcywgbnNzLCBvc3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ2FsdHN0YWNrMTMocmVzLCAobG9uZyBsb25nKShuc3MpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3NzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb2N0bChmZCwgY29tLCBkYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvY3RsKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY29tKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb2N0bChyZXMsIGZkLCBjb20sIGRhdGEpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShjb20pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9vcmVib290KG9wdCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX29yZWJvb3QoKGxvbmcgbG9uZykob3B0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX29yZWJvb3QocmVzLCBvcHQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChyZXMsIChsb25nIGxvbmcpKG9wdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmV2b2tlKHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZXZva2UoKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Jldm9rZShyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmV2b2tlKHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3ltbGluayhwYXRoLCBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW1saW5rKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaW5rKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3ltbGluayhyZXMsIHBhdGgsIGxpbmspICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW1saW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxpbmspKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWRsaW5rKHBhdGgsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmsoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkbGluayhyZXMsIHBhdGgsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leGVjdmUocGF0aCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4ZWN2ZSgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXJncCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShlbnZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXhlY3ZlKHJlcywgcGF0aCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leGVjdmUocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJncCksIChsb25nIGxvbmcpKGVudnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VtYXNrKG5ld21hc2spICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW1hc2soKGxvbmcgbG9uZykobmV3bWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VtYXNrKHJlcywgbmV3bWFzaykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW1hc2socmVzLCAobG9uZyBsb25nKShuZXdtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaHJvb3QocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nocm9vdCgobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hyb290KHJlcywgcGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaHJvb3QocmVzLCAobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfZnN0YXQ0MyhmZCwgc2IpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19mc3RhdDQzKChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX2ZzdGF0NDMocmVzLCBmZCwgc2IpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfZnN0YXQ0MyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRrZXJuaW5mbyhvcCwgd2hlcmUsIHNpemUsIGFyZykgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldGtlcm5pbmZvKCAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG9wKSwgKGxvbmcgbG9uZykod2hlcmUpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0a2VybmluZm8ocmVzLCBvcCwgd2hlcmUsIHNpemUsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRrZXJuaW5mbyggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKSh3aGVyZSksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRwYWdlc2l6ZSgpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29nZXRwYWdlc2l6ZShyZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfbXN5bmMoYWRkciwgbGVuKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9tc3luYygobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfbXN5bmMocmVzLCBhZGRyLCBsZW4pICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9tc3luYyhyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Zmb3JrKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92Zm9yaygpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Zmb3JrKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdmZvcmsocmVzKQovKiBzeXNjYWxsIDY3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA2OCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDcwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb21tYXAoYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vbW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKHByb3QpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vbW1hcChyZXMsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZCwgcG9zKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29tbWFwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKHByb3QpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwb3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ZhZHZpc2UoYW5vbSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmFkdmlzZSgobG9uZyBsb25nKShhbm9tKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdmFkdmlzZShyZXMsIGFub20pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92YWR2aXNlKHJlcywgKGxvbmcgbG9uZykoYW5vbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubWFwKGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5tYXAoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X211bm1hcChyZXMsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubWFwKHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXByb3RlY3QoYWRkciwgbGVuLCBwcm90KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcHJvdGVjdCgobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwcm90KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXByb3RlY3QocmVzLCBhZGRyLCBsZW4sIHByb3QpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcHJvdGVjdChyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShwcm90KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tYWR2aXNlKGFkZHIsIGxlbiwgYmVoYXYpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21hZHZpc2UoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYmVoYXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tYWR2aXNlKHJlcywgYWRkciwgbGVuLCBiZWhhdikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21hZHZpc2UocmVzLCAobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoYmVoYXYpKQovKiBzeXNjYWxsIDc2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3NyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWluY29yZShhZGRyLCBsZW4sIHZlYykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZlYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pbmNvcmUocmVzLCBhZGRyLCBsZW4sIHZlYykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluY29yZShyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKSh2ZWMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdyb3VwcyhnaWRzZXRzaXplLCBnaWRzZXQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z3JvdXBzKChsb25nIGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdyb3VwcyhyZXMsIGdpZHNldHNpemUsIGdpZHNldCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzKHJlcywgKGxvbmcgbG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z3JvdXBzKGdpZHNldHNpemUsIGdpZHNldCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRncm91cHMoKGxvbmcgbG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z3JvdXBzKHJlcywgZ2lkc2V0c2l6ZSwgZ2lkc2V0KSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMocmVzLCAobG9uZyBsb25nKShnaWRzZXRzaXplKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ3JwKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ3JwKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGdycChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ3JwKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRwZ2lkKHBpZCwgcGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHBnaWQoKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykocGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHBnaWQocmVzLCBwaWQsIHBnaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChyZXMsIChsb25nIGxvbmcpKHBpZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfc2V0aXRpbWVyKHdoaWNoLCBpdHYsIG9pdHYpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZXRpdGltZXIoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShpdHYpLCAobG9uZyBsb25nKShvaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3NldGl0aW1lcihyZXMsIHdoaWNoLCBpdHYsIG9pdHYpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfc2V0aXRpbWVyKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGl0diksIChsb25nIGxvbmcpKG9pdHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vd2FpdCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX293YWl0KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX293YWl0KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3dhaXQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9vc3dhcG9uKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX29zd2Fwb24oKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xMl9vc3dhcG9uKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEyX29zd2Fwb24ocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfZ2V0aXRpbWVyKHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRpdGltZXIoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2dldGl0aW1lcihyZXMsIHdoaWNoLCBpdHYpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0aXRpbWVyKHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGl0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29nZXRob3N0bmFtZShob3N0bmFtZSwgbGVuKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldGhvc3RuYW1lKChsb25nIGxvbmcpKGhvc3RuYW1lKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0aG9zdG5hbWUocmVzLCBob3N0bmFtZSwgbGVuKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRob3N0bmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaG9zdG5hbWUpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2V0aG9zdG5hbWUoaG9zdG5hbWUsIGxlbikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zZXRob3N0bmFtZSgobG9uZyBsb25nKShob3N0bmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3NldGhvc3RuYW1lKHJlcywgaG9zdG5hbWUsIGxlbikgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2V0aG9zdG5hbWUoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGhvc3RuYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2dldGR0YWJsZXNpemUoKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZShyZXMpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRkdGFibGVzaXplKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9kdXAyKGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDIoKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZHVwMihyZXMsIGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAyKHJlcywgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyYW5kb20oYnVmLCBidWZsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJhbmRvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoYnVmbGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyYW5kb20ocmVzLCBidWYsIGJ1ZmxlbiwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJhbmRvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZmxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY250bChmZCwgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjbnRsKHJlcywgZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNudGwocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNtZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfc2VsZWN0KG5kLCBpbiwgb3UsIGV4LCB0dikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZWxlY3QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfc2VsZWN0KHJlcywgbmQsIGluLCBvdSwgZXgsIHR2KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZWxlY3QoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAobG9uZyBsb25nKShvdSksIChsb25nIGxvbmcpKGV4KSwgXAogICAgICAobG9uZyBsb25nKSh0dikpCi8qIHN5c2NhbGwgOTQgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzeW5jKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMoKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3luYyhyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzeW5jKHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHByaW9yaXR5KHdoaWNoLCB3aG8sIHByaW8pICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cHJpb3JpdHkoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHdobyksIChsb25nIGxvbmcpKHByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRwcmlvcml0eShyZXMsIHdoaWNoLCB3aG8sIHByaW8pICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHByaW9yaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykod2hvKSwgKGxvbmcgbG9uZykocHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX3NvY2tldChkb21haW4sIHR5cGUsIHByb3RvY29sKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfc29ja2V0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRvbWFpbiksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShwcm90b2NvbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9zb2NrZXQocmVzLCBkb21haW4sIHR5cGUsIHByb3RvY29sKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX3NvY2tldCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb25uZWN0KHMsIG5hbWUsIG5hbWVsZW4pICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nvbm5lY3QoKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nvbm5lY3QocmVzLCBzLCBuYW1lLCBuYW1lbGVuKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29ubmVjdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShuYW1lbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2FjY2VwdChzLCBuYW1lLCBhbmFtZWxlbikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vYWNjZXB0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShhbmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4pICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29hY2NlcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKShhbmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cHJpb3JpdHkod2hpY2gsIHdobykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcmlvcml0eSgobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHdobykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHByaW9yaXR5KHJlcywgd2hpY2gsIHdobykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHJpb3JpdHkocmVzLCAobG9uZyBsb25nKSh3aGljaCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykod2hvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NlbmQocywgYnVmLCBsZW4sIGZsYWdzKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2VuZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29zZW5kKHJlcywgcywgYnVmLCBsZW4sIGZsYWdzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdihzLCBidWYsIGxlbiwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3YocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShsZW4pLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEzX3NpZ3JldHVybjEzKHNpZ2NudHhwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncmV0dXJuMTMoKGxvbmcgbG9uZykoc2lnY250eHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTNfc2lncmV0dXJuMTMocmVzLCBzaWdjbnR4cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdyZXR1cm4xMyhyZXMsICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdjbnR4cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYmluZChzLCBuYW1lLCBuYW1lbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iaW5kKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWVsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9iaW5kKHJlcywgcywgbmFtZSwgbmFtZWxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JpbmQocmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0c29ja29wdChzLCBsZXZlbCwgbmFtZSwgdmFsLCB2YWxzaXplKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzb2Nrb3B0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRzb2Nrb3B0KHJlcywgcywgbGV2ZWwsIG5hbWUsIHZhbCwgdmFsc2l6ZSkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNvY2tvcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksIChsb25nIGxvbmcpKG5hbWUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWwpLCAobG9uZyBsb25nKSh2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0ZW4ocywgYmFja2xvZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3RlbigobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYmFja2xvZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpc3RlbihyZXMsIHMsIGJhY2tsb2cpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdGVuKHJlcywgKGxvbmcgbG9uZykocyksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJhY2tsb2cpKQovKiBzeXNjYWxsIDEwNyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zaWd2ZWMoc2lnbnVtLCBuc3YsIG9zdikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3ZlYyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zdiksIChsb25nIGxvbmcpKG9zdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lndmVjKHJlcywgc2lnbnVtLCBuc3YsIG9zdikgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWd2ZWMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnN2KSwgKGxvbmcgbG9uZykob3N2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NpZ2Jsb2NrKG1hc2spICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2lnYmxvY2soKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lnYmxvY2socmVzLCBtYXNrKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWdibG9jayhyZXMsIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2lnc2V0bWFzayhtYXNrKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zaWdzZXRtYXNrKChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3NpZ3NldG1hc2socmVzLCBtYXNrKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc2V0bWFzayhyZXMsIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xM19zaWdzdXNwZW5kMTMobWFzaykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ3N1c3BlbmQxMygobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEzX3NpZ3N1c3BlbmQxMyhyZXMsIG1hc2spICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKHJlcywgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zaWdzdGFjayhuc3MsIG9zcykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3N0YWNrKChsb25nIGxvbmcpKG5zcyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9zcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2lnc3RhY2socmVzLCBuc3MsIG9zcykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWdzdGFjayhyZXMsIChsb25nIGxvbmcpKG5zcyksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdm1zZyhzLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2bXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobXNnKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3Ztc2cocmVzLCBzLCBtc2csIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzQzX29zZW5kbXNnKHMsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NlbmRtc2coICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtc2cpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2VuZG1zZyhyZXMsIHMsIG1zZywgZmxhZ3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zZW5kbXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1zZyksIChsb25nIGxvbmcpKGZsYWdzKSkKLyogc3lzY2FsbCAxMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkodHAsIHR6cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHRpbWVvZmRheSgobG9uZyBsb25nKSh0cCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfZ2V0dGltZW9mZGF5KHJlcywgdHAsIHR6cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkocmVzLCAobG9uZyBsb25nKSh0cCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfZ2V0cnVzYWdlKHdobywgcnVzYWdlKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRydXNhZ2UoKGxvbmcgbG9uZykod2hvKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2dldHJ1c2FnZShyZXMsIHdobywgcnVzYWdlKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0cnVzYWdlKHJlcywgKGxvbmcgbG9uZykod2hvKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJ1c2FnZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja29wdChzLCBsZXZlbCwgbmFtZSwgdmFsLCBhdmFsc2l6ZSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGF2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c29ja29wdChyZXMsIHMsIGxldmVsLCBuYW1lLCB2YWwsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdmFsc2l6ZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzb2Nrb3B0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobGV2ZWwpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodmFsKSwgKGxvbmcgbG9uZykoYXZhbHNpemUpKQovKiBzeXNjYWxsIDExOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZHYoZmQsIGlvdnAsIGlvdmNudCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkdigobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGlvdnApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShpb3ZjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkdihyZXMsIGZkLCBpb3ZwLCBpb3ZjbnQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWR2KHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd3JpdGV2KGZkLCBpb3ZwLCBpb3ZjbnQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZXYoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW92Y250KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd3JpdGV2KHJlcywgZmQsIGlvdnAsIGlvdmNudCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93cml0ZXYocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW92cCksIChsb25nIGxvbmcpKGlvdmNudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3NldHRpbWVvZmRheSh0diwgdHpwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfc2V0dGltZW9mZGF5KChsb25nIGxvbmcpKHR2KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR6cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9zZXR0aW1lb2ZkYXkocmVzLCB0diwgdHpwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3NldHRpbWVvZmRheShyZXMsIChsb25nIGxvbmcpKHR2KSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bihmZCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bihyZXMsIGZkLCB1aWQsIGdpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh1aWQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNobW9kKGZkLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2QoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNobW9kKHJlcywgZmQsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QocmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vcmVjdmZyb20ocywgYnVmLCBsZW4sIGZsYWdzLCBmcm9tLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxlbmFkZHIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29yZWN2ZnJvbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAgXAogICAgICAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykoZnJvbWxlbmFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3JlY3Zmcm9tKHJlcywgcywgYnVmLCBsZW4sIGZsYWdzLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20sIGZyb21sZW5hZGRyKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdmZyb20oICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShsZW4pLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKGZyb20pLCAobG9uZyBsb25nKShmcm9tbGVuYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmV1aWQocnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZCgobG9uZyBsb25nKShydWlkKSwgKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJldWlkKHJlcywgcnVpZCwgZXVpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmV1aWQocmVzLCAobG9uZyBsb25nKShydWlkKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVnaWQocmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZWdpZCgobG9uZyBsb25nKShyZ2lkKSwgKGxvbmcgbG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlZ2lkKHJlcywgcmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQocmVzLCAobG9uZyBsb25nKShyZ2lkKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVuYW1lKGZyb20sIHRvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWUoKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVuYW1lKHJlcywgZnJvbSwgdG8pICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW5hbWUocmVzLCAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vdHJ1bmNhdGUocGF0aCwgbGVuZ3RoKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX290cnVuY2F0ZSgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3RydW5jYXRlKHJlcywgcGF0aCwgbGVuZ3RoKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuZ3RoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2Z0cnVuY2F0ZShmZCwgbGVuZ3RoKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZnRydW5jYXRlKChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZnRydW5jYXRlKHJlcywgZmQsIGxlbmd0aCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29mdHJ1bmNhdGUocmVzLCAobG9uZyBsb25nKShmZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuZ3RoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mbG9jayhmZCwgaG93KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zsb2NrKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaG93KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmxvY2socmVzLCBmZCwgaG93KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbG9jayhyZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaG93KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2ZpZm8ocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZmlmbygobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZmlmbyhyZXMsIHBhdGgsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmR0byhzLCBidWYsIGxlbiwgZmxhZ3MsIHRvLCB0b2xlbikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZHRvKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRvKSwgKGxvbmcgbG9uZykodG9sZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kdG8ocmVzLCBzLCBidWYsIGxlbiwgZmxhZ3MsIHRvLCB0b2xlbikgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmR0byhyZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShidWYpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShmbGFncyksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0byksIChsb25nIGxvbmcpKHRvbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaHV0ZG93bihzLCBob3cpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NodXRkb3duKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShob3cpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaHV0ZG93bihyZXMsIHMsIGhvdykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NodXRkb3duKHJlcywgKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKGhvdykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc29ja2V0cGFpcihkb21haW4sIHR5cGUsIHByb3RvY29sLCByc3YpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRwYWlyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGRvbWFpbiksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShwcm90b2NvbCksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJzdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NvY2tldHBhaXIocmVzLCBkb21haW4sIHR5cGUsIHByb3RvY29sLCByc3YpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc29ja2V0cGFpciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJzdikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWtkaXIocGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta2RpcigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZGlyKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXIocmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcm1kaXIocGF0aCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ybWRpcigobG9uZyBsb25nKShwYXRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfcm1kaXIocmVzLCBwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ybWRpcihyZXMsIChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF91dGltZXMocGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3V0aW1lcygobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3V0aW1lcyhyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfdXRpbWVzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQovKiBzeXNjYWxsIDEzOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2FkanRpbWUoZGVsdGEsIG9sZGRlbHRhKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfYWRqdGltZSgobG9uZyBsb25nKShkZWx0YSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvbGRkZWx0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9hZGp0aW1lKHJlcywgZGVsdGEsIG9sZGRlbHRhKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2FkanRpbWUocmVzLCAobG9uZyBsb25nKShkZWx0YSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2xkZGVsdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0cGVlcm5hbWUoZmRlcywgYXNhLCBhbGVuKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVzKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0cGVlcm5hbWUocmVzLCBmZGVzLCBhc2EsIGFsZW4pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlcyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0aG9zdGlkKCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2dldGhvc3RpZChyZXMpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0aG9zdGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3NldGhvc3RpZChob3N0aWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2V0aG9zdGlkKChsb25nIGxvbmcpKGhvc3RpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vc2V0aG9zdGlkKHJlcywgaG9zdGlkKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zZXRob3N0aWQocmVzLCAobG9uZyBsb25nKShob3N0aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0cmxpbWl0KHdoaWNoLCBybHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29nZXRybGltaXQocmVzLCB3aGljaCwgcmxwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHJsaW1pdChyZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vc2V0cmxpbWl0KHdoaWNoLCBybHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29zZXRybGltaXQoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29zZXRybGltaXQocmVzLCB3aGljaCwgcmxwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChyZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19va2lsbHBnKHBnaWQsIHNpZ251bSkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29raWxscGcoKGxvbmcgbG9uZykocGdpZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2lnbnVtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzQzX29raWxscGcocmVzLCBwZ2lkLCBzaWdudW0pICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2tpbGxwZyhyZXMsIChsb25nIGxvbmcpKHBnaWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdudW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHNpZCgpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c2lkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0c2lkKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzaWQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9xdW90YWN0bChwYXRoLCBjbWQsIHVpZCwgYXJnKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3F1b3RhY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3F1b3RhY3RsKHJlcywgcGF0aCwgY21kLCB1aWQsIGFyZykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfcXVvdGFjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykodWlkKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb3F1b3RhKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcXVvdGEoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb3F1b3RhKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcXVvdGEocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF80M19vZ2V0c29ja25hbWUoZmRlYywgYXNhLCBhbGVuKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRzb2NrbmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZGVjKSwgKGxvbmcgbG9uZykoYXNhKSwgKGxvbmcgbG9uZykoYWxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF80M19vZ2V0c29ja25hbWUocmVzLCBmZGVjLCBhc2EsIGFsZW4pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRzb2NrbmFtZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRlYyksIChsb25nIGxvbmcpKGFzYSksIChsb25nIGxvbmcpKGFsZW4pKQovKiBzeXNjYWxsIDE1MSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTUyIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNTMgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE1NCBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmZzc3ZjKGZsYWcsIGFyZ3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZnNzdmMoKGxvbmcgbG9uZykoZmxhZyksIChsb25nIGxvbmcpKGFyZ3ApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZnNzdmMocmVzLCBmbGFnLCBhcmdwKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25mc3N2YyhyZXMsIChsb25nIGxvbmcpKGZsYWcpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhcmdwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNDNfb2dldGRpcmVudHJpZXMoZmQsIGJ1ZiwgY291bnQsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShjb3VudCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYmFzZXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNDNfb2dldGRpcmVudHJpZXMocmVzLCBmZCwgYnVmLCBjb3VudCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShiYXNlcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzIwX3N0YXRmcyhwYXRoLCBidWYpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfc3RhdGZzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8yMF9zdGF0ZnMocmVzLCBwYXRoLCBidWYpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzIwX3N0YXRmcyhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8yMF9mc3RhdGZzKGZkLCBidWYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzIwX2ZzdGF0ZnMoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzIwX2ZzdGF0ZnMocmVzLCBmZCwgYnVmKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQovKiBzeXNjYWxsIDE1OSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTYwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMzBfZ2V0ZmgoZm5hbWUsIGZocCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9nZXRmaCgobG9uZyBsb25nKShmbmFtZSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmaHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfZ2V0ZmgocmVzLCBmbmFtZSwgZmhwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRmaChyZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmaHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8wOV9vZ2V0ZG9tYWlubmFtZShkb21haW5uYW1lLCBsZW4pICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShkb21haW5uYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKHJlcywgZG9tYWlubmFtZSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb2dldGRvbWFpbm5hbWUoICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShkb21haW5uYW1lKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMDlfb3NldGRvbWFpbm5hbWUoZG9tYWlubmFtZSwgbGVuKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZG9tYWlubmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZShyZXMsIGRvbWFpbm5hbWUsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4pICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzA5X29zZXRkb21haW5uYW1lKCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZG9tYWlubmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzA5X291bmFtZShuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMDlfb3VuYW1lKChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMDlfb3VuYW1lKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8wOV9vdW5hbWUocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeXNhcmNoKG9wLCBwYXJtcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2FyY2goKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKShwYXJtcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5c2FyY2gocmVzLCBvcCwgcGFybXMpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3lzYXJjaChyZXMsIChsb25nIGxvbmcpKG9wKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXJtcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mdXRleCh1YWRkciwgb3AsIHZhbCwgdGltZW91dCwgdWFkZHIyLCB2YWwyLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4KChsb25nIGxvbmcpKHVhZGRyKSwgKGxvbmcgbG9uZykob3ApLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbCksIChsb25nIGxvbmcpKHRpbWVvdXQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHVhZGRyMiksIChsb25nIGxvbmcpKHZhbDIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbDMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Z1dGV4KHJlcywgdWFkZHIsIG9wLCB2YWwsIHRpbWVvdXQsIHVhZGRyMiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDIsIHZhbDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZnV0ZXgoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHVhZGRyKSwgKGxvbmcgbG9uZykob3ApLCAobG9uZyBsb25nKSh2YWwpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh0aW1lb3V0KSwgKGxvbmcgbG9uZykodWFkZHIyKSwgKGxvbmcgbG9uZykodmFsMiksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWwzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Z1dGV4X3NldF9yb2J1c3RfbGlzdChoZWFkLCBsZW4pICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KChsb25nIGxvbmcpKGhlYWQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KHJlcywgaGVhZCwgbGVuKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRleF9zZXRfcm9idXN0X2xpc3QoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaGVhZCksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mdXRleF9nZXRfcm9idXN0X2xpc3QobHdwaWQsIGhlYWRwLCBsZW5wKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdCggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGx3cGlkKSwgKGxvbmcgbG9uZykoaGVhZHApLCAobG9uZyBsb25nKShsZW5wKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19mdXRleF9nZXRfcm9idXN0X2xpc3QocmVzLCBsd3BpZCwgaGVhZHAsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVucCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShsd3BpZCksIChsb25nIGxvbmcpKGhlYWRwKSwgKGxvbmcgbG9uZykobGVucCkpCiNpZiAhZGVmaW5lZChfTFA2NCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTBfb3NlbXN5cyh3aGljaCwgYTIsIGEzLCBhNCwgYTUpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMF9vc2Vtc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgKGxvbmcgbG9uZykoYTQpLCAgIFwKICAgICAgKGxvbmcgbG9uZykoYTUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTBfb3NlbXN5cyhyZXMsIHdoaWNoLCBhMiwgYTMsIGE0LCBhNSkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMF9vc2Vtc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykoYTIpLCAobG9uZyBsb25nKShhMyksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhNCksIChsb25nIGxvbmcpKGE1KSkKI2Vsc2UKLyogc3lzY2FsbCAxNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMF9vbXNnc3lzKHdoaWNoLCBhMiwgYTMsIGE0LCBhNSwgYTYpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29tc2dzeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAobG9uZyBsb25nKShhNCksICAgXAogICAgICAobG9uZyBsb25nKShhNSksIChsb25nIGxvbmcpKGE2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEwX29tc2dzeXMocmVzLCB3aGljaCwgYTIsIGEzLCBhNCwgYTUsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYTYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTBfb21zZ3N5cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYTQpLCAobG9uZyBsb25nKShhNSksIChsb25nIGxvbmcpKGE2KSkKI2Vsc2UKLyogc3lzY2FsbCAxNzAgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMF9vc2htc3lzKHdoaWNoLCBhMiwgYTMsIGE0KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29zaG1zeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCAobG9uZyBsb25nKShhNCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xMF9vc2htc3lzKHJlcywgd2hpY2gsIGEyLCBhMywgYTQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEwX29zaG1zeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGE0KSkKI2Vsc2UKLyogc3lzY2FsbCAxNzEgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKLyogc3lzY2FsbCAxNzIgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkKGZkLCBidWYsIG5ieXRlLCBQQUQsIG9mZnNldCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmJ5dGUpLCAobG9uZyBsb25nKShQQUQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2Zmc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJlYWQocmVzLCBmZCwgYnVmLCBuYnl0ZSwgUEFELCBvZmZzZXQpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZChyZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYnl0ZSksIChsb25nIGxvbmcpKFBBRCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmZzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3B3cml0ZShmZCwgYnVmLCBuYnl0ZSwgUEFELCBvZmZzZXQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRlKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZShyZXMsIGZkLCBidWYsIG5ieXRlLCBQQUQsIG9mZnNldCkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRlKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5ieXRlKSwgKGxvbmcgbG9uZykoUEFEKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX250cF9nZXR0aW1lKG50dnApICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfbnRwX2dldHRpbWUoKGxvbmcgbG9uZykobnR2cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9udHBfZ2V0dGltZShyZXMsIG50dnApICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX250cF9nZXR0aW1lKHJlcywgKGxvbmcgbG9uZykobnR2cCkpCiNpZiBkZWZpbmVkKE5UUCkgfHwgIWRlZmluZWQoX0tFUk5FTF9PUFQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbnRwX2FkanRpbWUodHApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9udHBfYWRqdGltZSgobG9uZyBsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X250cF9hZGp0aW1lKHJlcywgdHApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbnRwX2FkanRpbWUocmVzLCAobG9uZyBsb25nKSh0cCkpCiNlbHNlCi8qIHN5c2NhbGwgMTc2IGhhcyBiZWVuIHNraXBwZWQgKi8KI2VuZGlmCi8qIHN5c2NhbGwgMTc3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNzggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE3OSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTgwIGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRnaWQoZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdpZCgobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRnaWQocmVzLCBnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdpZChyZXMsIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZWdpZChlZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRlZ2lkKChsb25nIGxvbmcpKGVnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRlZ2lkKHJlcywgZWdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGVnaWQocmVzLCAobG9uZyBsb25nKShlZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRldWlkKGV1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGV1aWQoKGxvbmcgbG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGV1aWQocmVzLCBldWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZXVpZChyZXMsIChsb25nIGxvbmcpKGV1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19ibWFwdihmc2lkcCwgYmxraW92LCBibGtjbnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX2JtYXB2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmc2lkcCksIChsb25nIGxvbmcpKGJsa2lvdiksIChsb25nIGxvbmcpKGJsa2NudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xmc19ibWFwdihyZXMsIGZzaWRwLCBibGtpb3YsIGJsa2NudCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX2JtYXB2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAobG9uZyBsb25nKShibGtpb3YpLCAobG9uZyBsb25nKShibGtjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19tYXJrdihmc2lkcCwgYmxraW92LCBibGtjbnQpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX21hcmt2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmc2lkcCksIChsb25nIGxvbmcpKGJsa2lvdiksIChsb25nIGxvbmcpKGJsa2NudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xmc19tYXJrdihyZXMsIGZzaWRwLCBibGtpb3YsIGJsa2NudCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX21hcmt2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAobG9uZyBsb25nKShibGtpb3YpLCAobG9uZyBsb25nKShibGtjbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xmc19zZWdjbGVhbihmc2lkcCwgc2VnbWVudCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX3NlZ2NsZWFuKChsb25nIGxvbmcpKGZzaWRwKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNlZ21lbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sZnNfc2VnY2xlYW4ocmVzLCBmc2lkcCwgc2VnbWVudCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xmc19zZWdjbGVhbihyZXMsIChsb25nIGxvbmcpKGZzaWRwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzZWdtZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfbGZzX3NlZ3dhaXQoZnNpZHAsIHR2KSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9sZnNfc2Vnd2FpdCgobG9uZyBsb25nKShmc2lkcCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9sZnNfc2Vnd2FpdChyZXMsIGZzaWRwLCB0dikgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2xmc19zZWd3YWl0KHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfc3RhdDEyKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9zdGF0MTIoKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfc3RhdDEyKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9zdGF0MTIocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xMl9mc3RhdDEyKGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2ZzdGF0MTIoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTJfZnN0YXQxMihyZXMsIGZkLCBzYikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9mc3RhdDEyKHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTJfbHN0YXQxMihwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9sc3RhdDEyKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX2xzdGF0MTIocmVzLCBwYXRoLCB1YikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfbHN0YXQxMihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGF0aGNvbmYocGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wYXRoY29uZigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BhdGhjb25mKHJlcywgcGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF0aGNvbmYocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnBhdGhjb25mKGZkLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mcGF0aGNvbmYoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnBhdGhjb25mKHJlcywgZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mcGF0aGNvbmYocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja29wdDIocywgbGV2ZWwsIG5hbWUsIHZhbCwgYXZhbHNpemUpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0MiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShsZXZlbCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWwpLCBcCiAgICAgIChsb25nIGxvbmcpKGF2YWxzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c29ja29wdDIocmVzLCBzLCBsZXZlbCwgbmFtZSwgdmFsLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXZhbHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzb2Nrb3B0MiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobGV2ZWwpLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodmFsKSwgKGxvbmcgbG9uZykoYXZhbHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJsaW1pdCh3aGljaCwgcmxwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmxpbWl0KChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cmxpbWl0KHJlcywgd2hpY2gsIHJscCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRybGltaXQocmVzLCAobG9uZyBsb25nKSh3aGljaCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocmxwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRybGltaXQod2hpY2gsIHJscCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdCgobG9uZyBsb25nKSh3aGljaCksIChsb25nIGxvbmcpKHJscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJsaW1pdChyZXMsIHdoaWNoLCBybHApICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmxpbWl0KHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzEyX2dldGRpcmVudHJpZXMoZmQsIGJ1ZiwgY291bnQsIGJhc2VwKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGJhc2VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzEyX2dldGRpcmVudHJpZXMocmVzLCBmZCwgYnVmLCBjb3VudCwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZXApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfZ2V0ZGlyZW50cmllcyggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGNvdW50KSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYmFzZXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21tYXAoYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsIFBBRCwgcG9zKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykocHJvdCksICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW1hcChyZXMsIGFkZHIsIGxlbiwgcHJvdCwgZmxhZ3MsIGZkLCBQQUQsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbWFwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykocHJvdCksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zeXNjYWxsKGNvZGUsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzUsIGFyZzYsIGFyZzcpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N5c2NhbGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvZGUpLCAobG9uZyBsb25nKShhcmcwKSwgKGxvbmcgbG9uZykoYXJnMSksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3lzY2FsbChyZXMsIGNvZGUsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc0LCBhcmc1LCBhcmc2LCBhcmc3KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjYWxsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoY29kZSksIChsb25nIGxvbmcpKGFyZzApLCAobG9uZyBsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzIpLCAobG9uZyBsb25nKShhcmczKSwgKGxvbmcgbG9uZykoYXJnNCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZzUpLCAobG9uZyBsb25nKShhcmc2KSwgKGxvbmcgbG9uZykoYXJnNykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHNlZWsoZmQsIFBBRCwgb2Zmc2V0LCB3aGVuY2UpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc2VlaygobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmZzZXQpLCAobG9uZyBsb25nKSh3aGVuY2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2VlayhyZXMsIGZkLCBQQUQsIG9mZnNldCwgd2hlbmNlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZWVrKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCksICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHdoZW5jZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdHJ1bmNhdGUocGF0aCwgUEFELCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90cnVuY2F0ZSgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoUEFEKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90cnVuY2F0ZShyZXMsIHBhdGgsIFBBRCwgbGVuZ3RoKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RydW5jYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z0cnVuY2F0ZShmZCwgUEFELCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnRydW5jYXRlKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Z0cnVuY2F0ZShyZXMsIGZkLCBQQUQsIGxlbmd0aCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc3lzY3RsKG5hbWUsIG5hbWVsZW4sIG9sZHYsIG9sZGxlbnAsIG5ld3YsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zeXNjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykobmFtZWxlbiksIChsb25nIGxvbmcpKG9sZHYpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvbGRsZW5wKSwgKGxvbmcgbG9uZykobmV3diksIChsb25nIGxvbmcpKG5ld2xlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3lzY3RsKHJlcywgbmFtZSwgbmFtZWxlbiwgb2xkdiwgb2xkbGVucCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld3YsIG5ld2xlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG5hbWVsZW4pLCAobG9uZyBsb25nKShvbGR2KSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG9sZGxlbnApLCAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykobmV3bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbG9jayhhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbG9jayhyZXMsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21sb2NrKHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9jayhhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tdW5sb2NrKHJlcywgYWRkciwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2socmVzLCAobG9uZyBsb25nKShhZGRyKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmRlbGV0ZShwYXRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuZGVsZXRlKChsb25nIGxvbmcpKHBhdGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bmRlbGV0ZShyZXMsIHBhdGgpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VuZGVsZXRlKHJlcywgKGxvbmcgbG9uZykocGF0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2Z1dGltZXMoZmQsIHRwdHIpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfZnV0aW1lcygobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Z1dGltZXMocmVzLCBmZCwgdHB0cikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZnV0aW1lcyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ2lkKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBnaWQoKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cGdpZChyZXMsIHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ2lkKHJlcywgKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWJvb3Qob3B0LCBib290c3RyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYm9vdCgobG9uZyBsb25nKShvcHQpLCAobG9uZyBsb25nKShib290c3RyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVib290KHJlcywgb3B0LCBib290c3RyKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWJvb3QocmVzLCAobG9uZyBsb25nKShvcHQpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYm9vdHN0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9sbChmZHMsIG5mZHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb2xsKChsb25nIGxvbmcpKGZkcyksIChsb25nIGxvbmcpKG5mZHMpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb2xsKHJlcywgZmRzLCBuZmRzLCB0aW1lb3V0KSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BvbGwocmVzLCAobG9uZyBsb25nKShmZHMpLCAobG9uZyBsb25nKShuZmRzKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWZzc3lzKGlkLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZnNzeXMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoYTEpLCAobG9uZyBsb25nKShhMiksIChsb25nIGxvbmcpKGEzKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGE0KSwgKGxvbmcgbG9uZykoYTUpLCAobG9uZyBsb25nKShhNikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Fmc3N5cyhyZXMsIGlkLCBhMSwgYTIsIGEzLCBhNCwgYTUsIGE2KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWZzc3lzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaWQpLCAobG9uZyBsb25nKShhMSksIChsb25nIGxvbmcpKGEyKSwgKGxvbmcgbG9uZykoYTMpLCBcCiAgICAgIChsb25nIGxvbmcpKGE0KSwgKGxvbmcgbG9uZykoYTUpLCAobG9uZyBsb25nKShhNikpCi8qIHN5c2NhbGwgMjExIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxMyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE0IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxNiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxOSBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzE0X19fc2VtY3RsKHNlbWlkLCBzZW1udW0sIGNtZCwgYXJnKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTRfX19zZW1jdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNF9fX3NlbWN0bChyZXMsIHNlbWlkLCBzZW1udW0sIGNtZCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE0X19fc2VtY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2VtaWQpLCAobG9uZyBsb25nKShzZW1udW0pLCAobG9uZyBsb25nKShjbWQpLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VtZ2V0KGtleSwgbnNlbXMsIHNlbWZsZykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1nZXQoKGxvbmcgbG9uZykoa2V5KSwgKGxvbmcgbG9uZykobnNlbXMpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2VtZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtZ2V0KHJlcywga2V5LCBuc2Vtcywgc2VtZmxnKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1nZXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShuc2VtcyksIChsb25nIGxvbmcpKHNlbWZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2Vtb3Aoc2VtaWQsIHNvcHMsIG5zb3BzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1vcCgobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNvcHMpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuc29wcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbW9wKHJlcywgc2VtaWQsIHNvcHMsIG5zb3BzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2Vtb3AocmVzLCAobG9uZyBsb25nKShzZW1pZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc29wcyksIChsb25nIGxvbmcpKG5zb3BzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW1jb25maWcoZmxhZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWNvbmZpZygobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtY29uZmlnKHJlcywgZmxhZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1jb25maWcocmVzLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMTRfbXNnY3RsKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9tc2djdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNxaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTRfbXNnY3RsKHJlcywgbXNxaWQsIGNtZCwgYnVmKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9tc2djdGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2dnZXQoa2V5LCBtc2dmbGcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ2dldCgobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dnZXQocmVzLCBrZXksIG1zZ2ZsZykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ2dldChyZXMsIChsb25nIGxvbmcpKGtleSksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21zZ3NuZChtc3FpZCwgbXNncCwgbXNnc3osIG1zZ2ZsZykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnc25kKChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykobXNncCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1zZ3N6KSwgKGxvbmcgbG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXNnc25kKHJlcywgbXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2dmbGcpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQocmVzLCAobG9uZyBsb25nKShtc3FpZCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobXNncCksIChsb25nIGxvbmcpKG1zZ3N6KSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2dyY3YobXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2d0eXAsIG1zZ2ZsZykgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3JjdigobG9uZyBsb25nKShtc3FpZCksIChsb25nIGxvbmcpKG1zZ3ApLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dzeiksIChsb25nIGxvbmcpKG1zZ3R5cCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dyY3YocmVzLCBtc3FpZCwgbXNncCwgbXNnc3osIG1zZ3R5cCwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnZmxnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ3JjdiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1zcWlkKSwgKGxvbmcgbG9uZykobXNncCksIChsb25nIGxvbmcpKG1zZ3N6KSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2d0eXApLCAobG9uZyBsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWF0KHNobWlkLCBzaG1hZGRyLCBzaG1mbGcpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htYXQoKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShzaG1hZGRyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htYXQocmVzLCBzaG1pZCwgc2htYWRkciwgc2htZmxnKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKHNobWFkZHIpLCAobG9uZyBsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xNF9zaG1jdGwoc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE0X3NobWN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNF9zaG1jdGwocmVzLCBzaG1pZCwgY21kLCBidWYpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE0X3NobWN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWR0KHNobWFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htZHQoKGxvbmcgbG9uZykoc2htYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NobWR0KHJlcywgc2htYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZHQocmVzLCAobG9uZyBsb25nKShzaG1hZGRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1nZXQoa2V5LCBzaXplLCBzaG1mbGcpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWdldCgobG9uZyBsb25nKShrZXkpLCAobG9uZyBsb25nKShzaXplKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaG1nZXQocmVzLCBrZXksIHNpemUsIHNobWZsZykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWdldChyZXMsIChsb25nIGxvbmcpKGtleSksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoc2htZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfZ2V0dGltZShjbG9ja19pZCwgdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXR0aW1lKChsb25nIGxvbmcpKGNsb2NrX2lkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Nsb2NrX2dldHRpbWUocmVzLCBjbG9ja19pZCwgdHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfY2xvY2tfZ2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfc2V0dGltZShjbG9ja19pZCwgdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19zZXR0aW1lKChsb25nIGxvbmcpKGNsb2NrX2lkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2Nsb2NrX3NldHRpbWUocmVzLCBjbG9ja19pZCwgdHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfY2xvY2tfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfY2xvY2tfZ2V0cmVzKGNsb2NrX2lkLCB0cCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfY2xvY2tfZ2V0cmVzKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyX2NyZWF0ZShjbG9ja19pZCwgZXZwLCB0aW1lcmlkKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJfY3JlYXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjbG9ja19pZCksIChsb25nIGxvbmcpKGV2cCksIChsb25nIGxvbmcpKHRpbWVyaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcl9jcmVhdGUocmVzLCBjbG9ja19pZCwgZXZwLCB0aW1lcmlkKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2NyZWF0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZXZwKSwgKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfZGVsZXRlKHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9kZWxldGUoKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2RlbGV0ZShyZXMsIHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZGVsZXRlKHJlcywgKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUodGltZXJpZCwgZmxhZ3MsIHZhbHVlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZhbHVlKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfdGltZXJfc2V0dGltZSggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHRpbWVyaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF90aW1lcl9zZXR0aW1lKHJlcywgdGltZXJpZCwgZmxhZ3MsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBvdmFsdWUpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUodGltZXJpZCwgdmFsdWUpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfdGltZXJfZ2V0dGltZSgobG9uZyBsb25nKSh0aW1lcmlkKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF90aW1lcl9nZXR0aW1lKHJlcywgdGltZXJpZCwgdmFsdWUpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksIChsb25nIGxvbmcpKHZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcl9nZXRvdmVycnVuKHRpbWVyaWQpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4oKGxvbmcgbG9uZykodGltZXJpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyX2dldG92ZXJydW4ocmVzLCB0aW1lcmlkKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0b3ZlcnJ1bihyZXMsIChsb25nIGxvbmcpKHRpbWVyaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9uYW5vc2xlZXAocnF0cCwgcm10cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX25hbm9zbGVlcCgobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX25hbm9zbGVlcChyZXMsIHJxdHAsIHJtdHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbmFub3NsZWVwKHJlcywgKGxvbmcgbG9uZykocnF0cCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZkYXRhc3luYyhmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmRhdGFzeW5jKChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmRhdGFzeW5jKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZGF0YXN5bmMocmVzLCAobG9uZyBsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWxvY2thbGwoZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tbG9ja2FsbCgobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21sb2NrYWxsKHJlcywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWxvY2thbGwocmVzLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9ja2FsbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrYWxsKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXVubG9ja2FsbChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19zaWd0aW1lZHdhaXQoc2V0LCBpbmZvLCB0aW1lb3V0KSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2V0KSwgKGxvbmcgbG9uZykoaW5mbyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19zaWd0aW1lZHdhaXQocmVzLCBzZXQsIGluZm8sICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdCggICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNldCksIChsb25nIGxvbmcpKGluZm8pLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdxdWV1ZWluZm8ocGlkLCBpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ3F1ZXVlaW5mbygobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lncXVldWVpbmZvKHJlcywgcGlkLCBpbmZvKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdxdWV1ZWluZm8ocmVzLCAobG9uZyBsb25nKShwaWQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW9kY3RsKGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb2RjdGwoKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW9kY3RsKHJlcywgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tb2RjdGwocmVzLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX2luaXQodmFsdWUsIGlkcCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1faW5pdCgobG9uZyBsb25nKSh2YWx1ZSksIChsb25nIGxvbmcpKGlkcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX2luaXQocmVzLCB2YWx1ZSwgaWRwKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1faW5pdChyZXMsIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShpZHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX29wZW4obmFtZSwgb2ZsYWcsIG1vZGUsIHZhbHVlLCBpZHApICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fb3BlbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykob2ZsYWcpLCAobG9uZyBsb25nKShtb2RlKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh2YWx1ZSksIChsb25nIGxvbmcpKGlkcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX29wZW4ocmVzLCBuYW1lLCBvZmxhZywgbW9kZSwgdmFsdWUsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fb3BlbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG9mbGFnKSwgKGxvbmcgbG9uZykobW9kZSksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHZhbHVlKSwgKGxvbmcgbG9uZykoaWRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV91bmxpbmsobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3VubGluaygobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fdW5saW5rKHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV91bmxpbmsocmVzLCAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9jbG9zZShpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2Nsb3NlKChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fY2xvc2UocmVzLCBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9jbG9zZShyZXMsIChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9wb3N0KGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3Bvc3QoKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fa3NlbV9wb3N0KHJlcywgaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3Bvc3QocmVzLCAobG9uZyBsb25nKShpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2tzZW1fd2FpdChpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV93YWl0KChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fd2FpdChyZXMsIGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV93YWl0KHJlcywgKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX3RyeXdhaXQoaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdHJ5d2FpdCgobG9uZyBsb25nKShpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19rc2VtX3RyeXdhaXQocmVzLCBpZCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fdHJ5d2FpdChyZXMsIChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fa3NlbV9nZXR2YWx1ZShpZCwgdmFsdWUpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2dldHZhbHVlKChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fZ2V0dmFsdWUocmVzLCBpZCwgdmFsdWUpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9nZXR2YWx1ZShyZXMsIChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2tzZW1fZGVzdHJveShpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9kZXN0cm95KChsb25nIGxvbmcpKGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2tzZW1fZGVzdHJveShyZXMsIGlkKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9kZXN0cm95KHJlcywgKGxvbmcgbG9uZykoaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19rc2VtX3RpbWVkd2FpdChpZCwgYWJzdGltZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdGltZWR3YWl0KChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFic3RpbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fa3NlbV90aW1lZHdhaXQocmVzLCBpZCwgYWJzdGltZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3RpbWVkd2FpdChyZXMsIChsb25nIGxvbmcpKGlkKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhYnN0aW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9vcGVuKG5hbWUsIG9mbGFnLCBtb2RlLCBhdHRyKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX29wZW4oKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKG9mbGFnKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGF0dHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9vcGVuKHJlcywgbmFtZSwgb2ZsYWcsIG1vZGUsIGF0dHIpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4ocmVzLCAobG9uZyBsb25nKShuYW1lKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2ZsYWcpLCAobG9uZyBsb25nKShtb2RlKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXR0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfY2xvc2UobXFkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9jbG9zZSgobG9uZyBsb25nKShtcWRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX2Nsb3NlKHJlcywgbXFkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfY2xvc2UocmVzLCAobG9uZyBsb25nKShtcWRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfdW5saW5rKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV91bmxpbmsoKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX3VubGluayhyZXMsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfdW5saW5rKHJlcywgKGxvbmcgbG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfZ2V0YXR0cihtcWRlcywgbXFzdGF0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9nZXRhdHRyKChsb25nIGxvbmcpKG1xZGVzKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1xc3RhdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21xX2dldGF0dHIocmVzLCBtcWRlcywgbXFzdGF0KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfZ2V0YXR0cihyZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtcXN0YXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX3NldGF0dHIobXFkZXMsIG1xc3RhdCwgb21xc3RhdCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfc2V0YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1xc3RhdCksIChsb25nIGxvbmcpKG9tcXN0YXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9zZXRhdHRyKHJlcywgbXFkZXMsIG1xc3RhdCwgb21xc3RhdCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NldGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXFzdGF0KSwgKGxvbmcgbG9uZykob21xc3RhdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfbm90aWZ5KG1xZGVzLCBub3RpZmljYXRpb24pICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9ub3RpZnkoKGxvbmcgbG9uZykobXFkZXMpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfbm90aWZ5KHJlcywgbXFkZXMsIG5vdGlmaWNhdGlvbikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9ub3RpZnkocmVzLCAobG9uZyBsb25nKShtcWRlcyksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9zZW5kKG1xZGVzLCBtc2dfcHRyLCBtc2dfbGVuLCBtc2dfcHJpbykgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXFkZXMpLCAobG9uZyBsb25nKShtc2dfcHRyKSwgKGxvbmcgbG9uZykobXNnX2xlbiksICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9zZW5kKHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ19wcmlvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NlbmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfcmVjZWl2ZShtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8pICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9yZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXFfcmVjZWl2ZShyZXMsIG1xZGVzLCBtc2dfcHRyLCBtc2dfbGVuLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfcHJpbykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9yZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9tcV90aW1lZHNlbmQoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX21xX3RpbWVkc2VuZCggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX21xX3RpbWVkc2VuZCggICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRzZW5kKCAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pLCAobG9uZyBsb25nKShhYnNfdGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX21xX3RpbWVkcmVjZWl2ZSggICAgICAgICAgICAgICAgICAgICBcCiAgICBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSwgKGxvbmcgbG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgXAogICAgcmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9tcV90aW1lZHJlY2VpdmUoICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKLyogc3lzY2FsbCAyNjcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDI2OCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjY5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X3JlbmFtZShmcm9tLCB0bykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfcmVuYW1lKChsb25nIGxvbmcpKGZyb20pLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19wb3NpeF9yZW5hbWUocmVzLCBmcm9tLCB0bykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Bvc2l4X3JlbmFtZShyZXMsIChsb25nIGxvbmcpKGZyb20pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3dhcGN0bChjbWQsIGFyZywgbWlzYykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zd2FwY3RsKChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGFyZyksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG1pc2MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zd2FwY3RsKHJlcywgY21kLCBhcmcsIG1pc2MpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBjdGwocmVzLCAobG9uZyBsb25nKShjbWQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJnKSwgKGxvbmcgbG9uZykobWlzYykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2dldGRlbnRzKGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZ2V0ZGVudHMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfZ2V0ZGVudHMocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21pbmhlcml0KGFkZHIsIGxlbiwgaW5oZXJpdCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWluaGVyaXQoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaW5oZXJpdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21pbmhlcml0KHJlcywgYWRkciwgbGVuLCBpbmhlcml0KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluaGVyaXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGluaGVyaXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xjaG1vZChwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNobW9kKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNobW9kKHJlcywgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2htb2QocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGNob3duKHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2hvd24oKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNob3duKHJlcywgcGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24ocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfbHV0aW1lcyhwYXRoLCB0cHRyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9sdXRpbWVzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfbHV0aW1lcyhyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9sdXRpbWVzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbXN5bmMxMyhhZGRyLCBsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tc3luYzEzKChsb25nIGxvbmcpKGFkZHIpLCAobG9uZyBsb25nKShsZW4pLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tc3luYzEzKHJlcywgYWRkciwgbGVuLCBmbGFncykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zeW5jMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShhZGRyKSwgKGxvbmcgbG9uZykobGVuKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX3N0YXQxMyhwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fc3RhdDEzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX19fc3RhdDEzKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX2ZzdGF0MTMoZmQsIHNiKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fZnN0YXQxMygobG9uZyBsb25nKShmZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9fX2ZzdGF0MTMocmVzLCBmZCwgc2IpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX19fZnN0YXQxMyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX19fbHN0YXQxMyhwYXRoLCB1YikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX19fbHN0YXQxMyhyZXMsIHBhdGgsIHViKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ2FsdHN0YWNrMTQobnNzLCBvc3MpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnYWx0c3RhY2sxNCgobG9uZyBsb25nKShuc3MpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3NpZ2FsdHN0YWNrMTQocmVzLCBuc3MsIG9zcykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lnYWx0c3RhY2sxNChyZXMsIChsb25nIGxvbmcpKG5zcyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvc3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdmZvcmsxNCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX192Zm9yazE0KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX192Zm9yazE0KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Zmb3JrMTQocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fcG9zaXhfY2hvd24ocGF0aCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wb3NpeF9jaG93biggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19wb3NpeF9jaG93bihyZXMsIHBhdGgsIHVpZCwgZ2lkKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3Bvc2l4X2Nob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X2ZjaG93bihmZCwgdWlkLCBnaWQpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh1aWQpLCAobG9uZyBsb25nKShnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3Bvc2l4X2ZjaG93bihyZXMsIGZkLCB1aWQsIGdpZCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfZmNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodWlkKSwgKGxvbmcgbG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3Bvc2l4X2xjaG93bihwYXRoLCB1aWQsIGdpZCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfbGNob3duKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9zaXhfbGNob3duKHJlcywgcGF0aCwgdWlkLCBnaWQpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9sY2hvd24oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHVpZCksIChsb25nIGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c2lkKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzaWQoKGxvbmcgbG9uZykocGlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0c2lkKHJlcywgcGlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRzaWQocmVzLCAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fY2xvbmUoZmxhZ3MsIHN0YWNrKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9uZSgobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHN0YWNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19jbG9uZShyZXMsIGZsYWdzLCBzdGFjaykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Nsb25lKHJlcywgKGxvbmcgbG9uZykoZmxhZ3MpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHN0YWNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ma3RyYWNlKGZkLCBvcHMsIGZhY3MsIHBpZCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZrdHJhY2UoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShvcHMpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmFjcyksIChsb25nIGxvbmcpKHBpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZrdHJhY2UocmVzLCBmZCwgb3BzLCBmYWNzLCBwaWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmt0cmFjZShyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvcHMpLCAobG9uZyBsb25nKShmYWNzKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ByZWFkdihmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJlYWR2KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaW92cCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCksIChsb25nIGxvbmcpKFBBRCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ByZWFkdihyZXMsIGZkLCBpb3ZwLCBpb3ZjbnQsIFBBRCwgb2Zmc2V0KSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWR2KHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdnApLCAobG9uZyBsb25nKShpb3ZjbnQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHdyaXRldihmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGV2KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoaW92cCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGlvdmNudCksIChsb25nIGxvbmcpKFBBRCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZXYocmVzLCBmZCwgaW92cCwgaW92Y250LCBQQUQsIG9mZnNldCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShpb3ZwKSwgKGxvbmcgbG9uZykoaW92Y250KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKG9mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQoc2lnbnVtLCBuc2EsIG9zYSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTZfX19zaWdhY3Rpb24xNCggICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpZ251bSksIChsb25nIGxvbmcpKG5zYSksIChsb25nIGxvbmcpKG9zYSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8xNl9fX3NpZ2FjdGlvbjE0KHJlcywgc2lnbnVtLCBuc2EsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zYSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQoICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnNhKSwgKGxvbmcgbG9uZykob3NhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ3BlbmRpbmcxNChzZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lncGVuZGluZzE0KChsb25nIGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2lncGVuZGluZzE0KHJlcywgc2V0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdwZW5kaW5nMTQocmVzLCAobG9uZyBsb25nKShzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc2lncHJvY21hc2sxNChob3csIHNldCwgb3NldCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdwcm9jbWFzazE0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShob3cpLCAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShvc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zaWdwcm9jbWFzazE0KHJlcywgaG93LCBzZXQsIG9zZXQpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ3Byb2NtYXNrMTQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShob3cpLCAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShvc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ3N1c3BlbmQxNChzZXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnc3VzcGVuZDE0KChsb25nIGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2lnc3VzcGVuZDE0KHJlcywgc2V0KSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdzdXNwZW5kMTQocmVzLCAobG9uZyBsb25nKShzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KHNpZ2NudHhwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE2X19fc2lncmV0dXJuMTQoKGxvbmcgbG9uZykoc2lnY250eHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMTZfX19zaWdyZXR1cm4xNChyZXMsIHNpZ2NudHhwKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KHJlcywgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpZ2NudHhwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGN3ZChidWZwLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0Y3dkKChsb25nIGxvbmcpKGJ1ZnApLCAobG9uZyBsb25nKShsZW5ndGgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGN3ZChyZXMsIGJ1ZnAsIGxlbmd0aCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0Y3dkKHJlcywgKGxvbmcgbG9uZykoYnVmcCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNocm9vdChmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hyb290KChsb25nIGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNocm9vdChyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hyb290KHJlcywgKGxvbmcgbG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9maG9wZW4oZmhwLCBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX2Zob3BlbigobG9uZyBsb25nKShmaHApLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF8zMF9maG9wZW4ocmVzLCBmaHAsIGZsYWdzKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX2Zob3BlbihyZXMsIChsb25nIGxvbmcpKGZocCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2Zoc3RhdChmaHAsIHNiKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0KChsb25nIGxvbmcpKGZocCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX2Zoc3RhdChyZXMsIGZocCwgc2IpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0KHJlcywgKGxvbmcgbG9uZykoZmhwKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfMjBfZmhzdGF0ZnMoZmhwLCBidWYpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcygobG9uZyBsb25nKShmaHApLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMjBfZmhzdGF0ZnMocmVzLCBmaHAsIGJ1ZikgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhyZXMsIChsb25nIGxvbmcpKGZocCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX19fc2VtY3RsMTMoc2VtaWQsIHNlbW51bSwgY21kLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fX19zZW1jdGwxMyggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNlbW51bSksIChsb25nIGxvbmcpKGNtZCksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19fX3NlbWN0bDEzKHJlcywgc2VtaWQsIHNlbW51bSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZCwgYXJnKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX19fc2VtY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX21zZ2N0bDEzKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc3FpZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX21zZ2N0bDEzKHJlcywgbXNxaWQsIGNtZCwgYnVmKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobXNxaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX3NobWN0bDEzKHNobWlkLCBjbWQsIGJ1ZikgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaG1pZCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX3NobWN0bDEzKHJlcywgc2htaWQsIGNtZCwgYnVmKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2htaWQpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xjaGZsYWdzKHBhdGgsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNoZmxhZ3MoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGNoZmxhZ3MocmVzLCBwYXRoLCBmbGFncykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hmbGFncyhyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaXNzZXR1Z2lkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pc3NldHVnaWQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pc3NldHVnaWQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lzc2V0dWdpZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXRyYWNlKGxhYmVsLCBhZGRyLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dHJhY2UoKGxvbmcgbG9uZykobGFiZWwpLCAobG9uZyBsb25nKShhZGRyKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXRyYWNlKHJlcywgbGFiZWwsIGFkZHIsIGxlbikgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dHJhY2UocmVzLCAobG9uZyBsb25nKShsYWJlbCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Y29udGV4dCh1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRjb250ZXh0KChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGNvbnRleHQocmVzLCB1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Y29udGV4dChyZXMsIChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Y29udGV4dCh1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRjb250ZXh0KChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGNvbnRleHQocmVzLCB1Y3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Y29udGV4dChyZXMsIChsb25nIGxvbmcpKHVjcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jcmVhdGUodWNwLCBmbGFncywgbmV3X2x3cCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2NyZWF0ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVjcCksIChsb25nIGxvbmcpKGZsYWdzKSwgKGxvbmcgbG9uZykobmV3X2x3cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfY3JlYXRlKHJlcywgdWNwLCBmbGFncywgbmV3X2x3cCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodWNwKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShuZXdfbHdwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2V4aXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZXhpdCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZXhpdChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9leGl0KHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3NlbGYoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2VsZigpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3Bfc2VsZihyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zZWxmKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3dhaXQod2FpdF9mb3IsIGRlcGFydGVkKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfd2FpdCgobG9uZyBsb25nKSh3YWl0X2ZvciksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXBhcnRlZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3Bfd2FpdChyZXMsIHdhaXRfZm9yLCBkZXBhcnRlZCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF93YWl0KHJlcywgKGxvbmcgbG9uZykod2FpdF9mb3IpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGRlcGFydGVkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3N1c3BlbmQodGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc3VzcGVuZCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3N1c3BlbmQocmVzLCB0YXJnZXQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc3VzcGVuZChyZXMsIChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jb250aW51ZSh0YXJnZXQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2NvbnRpbnVlKChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfY29udGludWUocmVzLCB0YXJnZXQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jb250aW51ZShyZXMsIChsb25nIGxvbmcpKHRhcmdldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF93YWtldXAodGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3dha2V1cCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3dha2V1cChyZXMsIHRhcmdldCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FrZXVwKHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2dldHByaXZhdGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZ2V0cHJpdmF0ZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZ2V0cHJpdmF0ZShyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9nZXRwcml2YXRlKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX3NldHByaXZhdGUocHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0cHJpdmF0ZSgobG9uZyBsb25nKShwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3NldHByaXZhdGUocmVzLCBwdHIpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc2V0cHJpdmF0ZShyZXMsIChsb25nIGxvbmcpKHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9raWxsKHRhcmdldCwgc2lnbm8pICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2tpbGwoKGxvbmcgbG9uZykodGFyZ2V0KSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2lnbm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX2tpbGwocmVzLCB0YXJnZXQsIHNpZ25vKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfa2lsbChyZXMsIChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaWdubykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9kZXRhY2godGFyZ2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2RldGFjaCgobG9uZyBsb25nKSh0YXJnZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX2RldGFjaChyZXMsIHRhcmdldCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZGV0YWNoKHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX2x3cF9wYXJrKHRzLCB1bnBhcmssIGhpbnQsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fbHdwX3BhcmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fbHdwX3BhcmsocmVzLCB0cywgdW5wYXJrLCBoaW50LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wYXJraGludCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19sd3BfdW5wYXJrKHRhcmdldCwgaGludCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmsoKGxvbmcgbG9uZykodGFyZ2V0KSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfdW5wYXJrKHJlcywgdGFyZ2V0LCBoaW50KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF91bnBhcmsocmVzLCAobG9uZyBsb25nKSh0YXJnZXQpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF91bnBhcmtfYWxsKHRhcmdldHMsIG50YXJnZXRzLCBoaW50KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3VucGFya19hbGwoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHRhcmdldHMpLCAobG9uZyBsb25nKShudGFyZ2V0cyksIChsb25nIGxvbmcpKGhpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3VucGFya19hbGwocmVzLCB0YXJnZXRzLCBudGFyZ2V0cywgaGludCkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfdW5wYXJrX2FsbCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHRhcmdldHMpLCAobG9uZyBsb25nKShudGFyZ2V0cyksIChsb25nIGxvbmcpKGhpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19sd3Bfc2V0bmFtZSh0YXJnZXQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9zZXRuYW1lKChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fbHdwX3NldG5hbWUocmVzLCB0YXJnZXQsIG5hbWUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfc2V0bmFtZShyZXMsIChsb25nIGxvbmcpKHRhcmdldCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbHdwX2dldG5hbWUodGFyZ2V0LCBuYW1lLCBsZW4pICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZ2V0bmFtZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodGFyZ2V0KSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19sd3BfZ2V0bmFtZShyZXMsIHRhcmdldCwgbmFtZSwgbGVuKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9nZXRuYW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodGFyZ2V0KSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX2x3cF9jdGwoZmVhdHVyZXMsIGFkZHJlc3MpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2N0bCgobG9uZyBsb25nKShmZWF0dXJlcyksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyZXNzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2x3cF9jdGwocmVzLCBmZWF0dXJlcywgYWRkcmVzcykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2N0bChyZXMsIChsb25nIGxvbmcpKGZlYXR1cmVzKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhZGRyZXNzKSkKLyogc3lzY2FsbCAzMjYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMyNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzI4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF82MF9zYV9yZWdpc3RlcihuZXd2LCBvbGR2LCBmbGFncywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFja2luZm9fb2Zmc2V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykob2xkdiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzdGFja2luZm9fb2Zmc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKHJlcywgbmV3diwgb2xkdiwgZmxhZ3MsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNraW5mb19vZmZzZXQpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2FfcmVnaXN0ZXIoICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShuZXd2KSwgKGxvbmcgbG9uZykob2xkdiksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc3RhY2tpbmZvX29mZnNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3N0YWNrcyhudW0sIHN0YWNrcykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc3RhY2tzKChsb25nIGxvbmcpKG51bSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHN0YWNrcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9zdGFja3MocmVzLCBudW0sIHN0YWNrcykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3N0YWNrcyhyZXMsIChsb25nIGxvbmcpKG51bSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzdGFja3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF82MF9zYV9lbmFibGUoKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZSgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9lbmFibGUocmVzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZShyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KGNvbmN1cnJlbmN5KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc2V0Y29uY3VycmVuY3koICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNvbmN1cnJlbmN5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KHJlcywgY29uY3VycmVuY3kpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2Ffc2V0Y29uY3VycmVuY3koICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShjb25jdXJyZW5jeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3lpZWxkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfeWllbGQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNjBfc2FfeWllbGQocmVzKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV95aWVsZChyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzYwX3NhX3ByZWVtcHQoc2FfaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfcHJlZW1wdCgobG9uZyBsb25nKShzYV9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9zYV9wcmVlbXB0KHJlcywgc2FfaWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3ByZWVtcHQocmVzLCAobG9uZyBsb25nKShzYV9pZCkpCi8qIHN5c2NhbGwgMzM2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMzcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMzOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzM5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NpZ2FjdGlvbl9zaWd0cmFtcChzaWdudW0sIG5zYSwgb3NhLCB0cmFtcCwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lnYWN0aW9uX3NpZ3RyYW1wKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2lnbnVtKSwgKGxvbmcgbG9uZykobnNhKSwgKGxvbmcgbG9uZykob3NhKSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHJhbXApLCAobG9uZyBsb25nKSh2ZXJzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zaWdhY3Rpb25fc2lndHJhbXAocmVzLCBzaWdudW0sIG5zYSwgb3NhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbXAsIHZlcnMpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ2FjdGlvbl9zaWd0cmFtcCggICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShzaWdudW0pLCAobG9uZyBsb25nKShuc2EpLCAobG9uZyBsb25nKShvc2EpLCAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHJhbXApLCAobG9uZyBsb25nKSh2ZXJzKSkKLyogc3lzY2FsbCAzNDEgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDM0MiBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmFzY3RsKGFkZHIsIGxlbiwgb3ApICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yYXNjdGwoKGxvbmcgbG9uZykoYWRkciksIChsb25nIGxvbmcpKGxlbiksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3ApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yYXNjdGwocmVzLCBhZGRyLCBsZW4sIG9wKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jhc2N0bChyZXMsIChsb25nIGxvbmcpKGFkZHIpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsZW4pLCAobG9uZyBsb25nKShvcCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa3F1ZXVlKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rcXVldWUoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9rcXVldWUocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2txdWV1ZShyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX2tldmVudChmZCwgY2hhbmdlbGlzdCwgbmNoYW5nZXMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudGxpc3QsIG5ldmVudHMsIHRpbWVvdXQpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfa2V2ZW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoY2hhbmdlbGlzdCksIChsb25nIGxvbmcpKG5jaGFuZ2VzKSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGV2ZW50bGlzdCksIChsb25nIGxvbmcpKG5ldmVudHMpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX2tldmVudCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgZmQsIGNoYW5nZWxpc3QsIG5jaGFuZ2VzLCBldmVudGxpc3QsIG5ldmVudHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfa2V2ZW50KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNoYW5nZWxpc3QpLCAobG9uZyBsb25nKShuY2hhbmdlcyksICAgIFwKICAgICAgKGxvbmcgbG9uZykoZXZlbnRsaXN0KSwgKGxvbmcgbG9uZykobmV2ZW50cyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9zZXRwYXJhbShwaWQsIGxpZCwgcG9saWN5LCBwYXJhbXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX3NldHBhcmFtKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShwb2xpY3kpLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfc2V0cGFyYW0ocmVzLCBwaWQsIGxpZCwgcG9saWN5LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRwYXJhbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHBvbGljeSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9nZXRwYXJhbShwaWQsIGxpZCwgcG9saWN5LCBwYXJhbXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldHBhcmFtKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShwb2xpY3kpLCAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfZ2V0cGFyYW0ocmVzLCBwaWQsIGxpZCwgcG9saWN5LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRwYXJhbSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHBvbGljeSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXJhbXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9zZXRhZmZpbml0eShwaWQsIGxpZCwgc2l6ZSwgY3B1c2V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX3NldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfc2V0YWZmaW5pdHkocmVzLCBwaWQsIGxpZCwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1c2V0KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19zY2hlZF9nZXRhZmZpbml0eShwaWQsIGxpZCwgc2l6ZSwgY3B1c2V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShsaWQpLCAobG9uZyBsb25nKShzaXplKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fc2NoZWRfZ2V0YWZmaW5pdHkocmVzLCBwaWQsIGxpZCwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1c2V0KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRhZmZpbml0eSggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKGxpZCksIChsb25nIGxvbmcpKHNpemUpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShjcHVzZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX3lpZWxkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfeWllbGQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF95aWVsZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3lpZWxkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fc2NoZWRfcHJvdGVjdChwcmlvcml0eSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9wcm90ZWN0KChsb25nIGxvbmcpKHByaW9yaXR5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX3NjaGVkX3Byb3RlY3QocmVzLCBwcmlvcml0eSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fc2NoZWRfcHJvdGVjdChyZXMsIChsb25nIGxvbmcpKHByaW9yaXR5KSkKLyogc3lzY2FsbCAzNTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDM1MyBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN5bmNfcmFuZ2UoZmQsIGZsYWdzLCBzdGFydCwgbGVuZ3RoKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3luY19yYW5nZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShzdGFydCksICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzeW5jX3JhbmdlKHJlcywgZmQsIGZsYWdzLCBzdGFydCwgbGVuZ3RoKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN5bmNfcmFuZ2UoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHN0YXJ0KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXVpZGdlbihzdG9yZSwgY291bnQpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dWlkZ2VuKChsb25nIGxvbmcpKHN0b3JlKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dWlkZ2VuKHJlcywgc3RvcmUsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V1aWRnZW4ocmVzLCAobG9uZyBsb25nKShzdG9yZSksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF85MF9nZXR2ZnNzdGF0KGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2dldHZmc3N0YXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShidWZzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfOTBfZ2V0dmZzc3RhdChyZXMsIGJ1ZiwgYnVmc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9nZXR2ZnNzdGF0KCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX3N0YXR2ZnMxKHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfOTBfc3RhdHZmczEoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9zdGF0dmZzMShyZXMsIHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX3N0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZnN0YXR2ZnMxKGZkLCBidWYsIGZsYWdzKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9mc3RhdHZmczEoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9mc3RhdHZmczEocmVzLCBmZCwgYnVmLCBmbGFncykgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzMwX2Zoc3RhdHZmczEoZmhwLCBidWYsIGZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzMwX2Zoc3RhdHZmczEocmVzLCBmaHAsIGJ1ZiwgZmxhZ3MpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMSggICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cmN0bChwYXRoLCBjbWQsIGZpbGVuYW1lLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyY3RsKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShmaWxlbmFtZSksICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJjdGwocmVzLCBwYXRoLCBjbWQsIGZpbGVuYW1lLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWVzcGFjZSwgYXR0cm5hbWUpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cmN0bCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9zZXRfZmlsZShwYXRoLCBhdHRybmFtZXNwYWNlLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leHRhdHRyX3NldF9maWxlKHJlcywgcGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfc2V0X2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRybmFtZSksIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2ZpbGUocGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSwgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfZmlsZShyZXMsIHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2RlbGV0ZV9maWxlKHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfZGVsZXRlX2ZpbGUocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX3NldF9mZChmZCwgYXR0cm5hbWVzcGFjZSwgYXR0cm5hbWUsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCBuYnl0ZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfc2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKG5ieXRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfc2V0X2ZkKHJlcywgZmQsIGF0dHJuYW1lc3BhY2UsICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2ZkKGZkLCBhdHRybmFtZXNwYWNlLCBhdHRybmFtZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsIG5ieXRlcykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSksICAgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfZmQocmVzLCBmZCwgYXR0cm5hbWVzcGFjZSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSksIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKG5ieXRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9kZWxldGVfZmQoZmQsIGF0dHJuYW1lc3BhY2UsIGF0dHJuYW1lKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX2RlbGV0ZV9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9kZWxldGVfZmQocmVzLCBmZCwgYXR0cm5hbWVzcGFjZSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2RlbGV0ZV9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXh0YXR0cl9zZXRfbGluayhwYXRoLCBhdHRybmFtZXNwYWNlLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9leHRhdHRyX3NldF9saW5rKHJlcywgcGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lLCBkYXRhLCBuYnl0ZXMpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfc2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRybmFtZSksIChsb25nIGxvbmcpKGRhdGEpLCAobG9uZyBsb25nKShuYnl0ZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4dGF0dHJfZ2V0X2xpbmsocGF0aCwgYXR0cm5hbWVzcGFjZSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUsIGRhdGEsIG5ieXRlcykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGF0dHJuYW1lKSwgICAgXAogICAgICAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9nZXRfbGluayhyZXMsIHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRybmFtZSwgZGF0YSwgbmJ5dGVzKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoYXR0cm5hbWUpLCAobG9uZyBsb25nKShkYXRhKSwgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2RlbGV0ZV9saW5rKHBhdGgsIGF0dHJuYW1lc3BhY2UsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJuYW1lKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShhdHRybmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4dGF0dHJfZGVsZXRlX2xpbmsocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cm5hbWUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfZmQoZmQsIGF0dHJuYW1lc3BhY2UsIGRhdGEsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmJ5dGVzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhdHRybmFtZXNwYWNlKSwgKGxvbmcgbG9uZykoZGF0YSksICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2ZkKHJlcywgZmQsIGF0dHJuYW1lc3BhY2UsIGRhdGEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ieXRlcykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfZmlsZShwYXRoLCBhdHRybmFtZXNwYWNlLCBkYXRhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2ZpbGUocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgbmJ5dGVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGRhdGEpLCAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leHRhdHRyX2xpc3RfbGluayhwYXRoLCBhdHRybmFtZXNwYWNlLCBkYXRhLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGF0dHJuYW1lc3BhY2UpLCAobG9uZyBsb25nKShkYXRhKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXh0YXR0cl9saXN0X2xpbmsocmVzLCBwYXRoLCBhdHRybmFtZXNwYWNlLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSwgbmJ5dGVzKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYXR0cm5hbWVzcGFjZSksIChsb25nIGxvbmcpKGRhdGEpLCAgIFwKICAgICAgKGxvbmcgbG9uZykobmJ5dGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfcHNlbGVjdChuZCwgaW4sIG91LCBleCwgdHMsIG1hc2spICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wc2VsZWN0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzUwX3BzZWxlY3QocmVzLCBuZCwgaW4sIG91LCBleCwgdHMsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfcHNlbGVjdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShuZCksIChsb25nIGxvbmcpKGluKSwgKGxvbmcgbG9uZykob3UpLCAobG9uZyBsb25nKShleCksIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfcG9sbHRzKGZkcywgbmZkcywgdHMsIG1hc2spICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wb2xsdHMoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmRzKSwgKGxvbmcgbG9uZykobmZkcyksIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9wb2xsdHMocmVzLCBmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3BvbGx0cyggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmRzKSwgKGxvbmcgbG9uZykobmZkcyksIChsb25nIGxvbmcpKHRzKSwgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1hc2spKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAobG9uZyBsb25nKShzaXplKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xzZXR4YXR0cihwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sc2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzZXR4YXR0cihmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnNldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0eGF0dHIocmVzLCBwYXRoLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGdldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZ2V0eGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xnZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGdldHhhdHRyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZnZXR4YXR0cihmZCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmdldHhhdHRyKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mZ2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobmFtZSksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0eGF0dHIocGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cigobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlzdHhhdHRyKHJlcywgcGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xsaXN0eGF0dHIocGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGxpc3R4YXR0ciggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sbGlzdHhhdHRyKHJlcywgcGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsaXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmxpc3R4YXR0cihmZCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbGlzdHhhdHRyKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobGlzdCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mbGlzdHhhdHRyKHJlcywgZmQsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZsaXN0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbW92ZXhhdHRyKHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtb3ZleGF0dHIoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZW1vdmV4YXR0cihyZXMsIHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbW92ZXhhdHRyKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xyZW1vdmV4YXR0cihwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHJlbW92ZXhhdHRyKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9scmVtb3ZleGF0dHIocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mcmVtb3ZleGF0dHIoZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZyZW1vdmV4YXR0cigobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mcmVtb3ZleGF0dHIocmVzLCBmZCwgbmFtZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZyZW1vdmV4YXR0cihyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19zdGF0MzAocGF0aCwgdWIpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX3N0YXQzMChyZXMsIHBhdGgsIHViKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc3RhdDMwKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19mc3RhdDMwKGZkLCBzYikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAoKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfX19mc3RhdDMwKHJlcywgZmQsIHNiKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9fX2xzdGF0MzAocGF0aCwgdWIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbHN0YXQzMCgobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX2xzdGF0MzAocmVzLCBwYXRoLCB1YikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbHN0YXQzMChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19nZXRkZW50czMwKGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGRlbnRzMzAoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGRlbnRzMzAocmVzLCBmZCwgYnVmLCBjb3VudCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0ZGVudHMzMCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoYnVmKSwgKGxvbmcgbG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Bvc2l4X2ZhZHZpc2UoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9zaXhfZmFkdmlzZSgobG9uZyBsb25nKSgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb3NpeF9mYWR2aXNlKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X2ZhZHZpc2UocmVzLCAobG9uZyBsb25nKSgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGZocCwgc2IpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fZmhzdGF0MzAoKGxvbmcgbG9uZykoZmhwKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoc2IpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfMzBfX19maHN0YXQzMChyZXMsIGZocCwgc2IpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKHJlcywgKGxvbmcgbG9uZykoZmhwKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNTBfX19udHBfZ2V0dGltZTMwKG50dnApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX250cF9nZXR0aW1lMzAoKGxvbmcgbG9uZykobnR2cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX250cF9nZXR0aW1lMzAocmVzLCBudHZwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChyZXMsICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShudHZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NvY2tldDMwKGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc29ja2V0MzAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZG9tYWluKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHByb3RvY29sKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zb2NrZXQzMChyZXMsIGRvbWFpbiwgdHlwZSwgcHJvdG9jb2wpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NvY2tldDMwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShkb21haW4pLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykocHJvdG9jb2wpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0ZmgzMChmbmFtZSwgZmhwLCBmaF9zaXplKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRmaDMwKChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykoZmhwKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZoX3NpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldGZoMzAocmVzLCBmbmFtZSwgZmhwLCBmaF9zaXplKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0ZmgzMCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZuYW1lKSwgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maG9wZW40MChmaHAsIGZoX3NpemUsIGZsYWdzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zob3BlbjQwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZmhvcGVuNDAocmVzLCBmaHAsIGZoX3NpemUsIGZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19maG9wZW40MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZmhzdGF0dmZzMShmaHAsIGZoX3NpemUsIGJ1ZiwgZmxhZ3MpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfOTBfZmhzdGF0dmZzMShyZXMsIGZocCwgZmhfc2l6ZSwgYnVmLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzUwX19fZmhzdGF0NDAoZmhwLCBmaF9zaXplLCBzYikgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19maHN0YXQ0MCggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF81MF9fX2Zoc3RhdDQwKHJlcywgZmhwLCBmaF9zaXplLCBzYikgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fZmhzdGF0NDAoICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9haW9fY2FuY2VsKGZpbGRlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19jYW5jZWwoKGxvbmcgbG9uZykoZmlsZGVzKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2NhbmNlbChyZXMsIGZpbGRlcywgYWlvY2JwKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fY2FuY2VsKHJlcywgKGxvbmcgbG9uZykoZmlsZGVzKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGFpb2NicCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWlvX2Vycm9yKGFpb2NicCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fZXJyb3IoKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2Vycm9yKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZXJyb3IocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Fpb19mc3luYyhvcCwgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX2ZzeW5jKChsb25nIGxvbmcpKG9wKSwgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX2ZzeW5jKHJlcywgb3AsIGFpb2NicCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZnN5bmMocmVzLCAobG9uZyBsb25nKShvcCksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9haW9fcmVhZChhaW9jYnApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19yZWFkKChsb25nIGxvbmcpKGFpb2NicCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Fpb19yZWFkKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWlvX3JlYWQocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Fpb19yZXR1cm4oYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX3JldHVybigobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9haW9fcmV0dXJuKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Fpb19yZXR1cm4ocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NvbXBhdF81MF9haW9fc3VzcGVuZChsaXN0LCBuZW50LCB0aW1lb3V0KSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2Fpb19zdXNwZW5kKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykobmVudCksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jb21wYXRfNTBfYWlvX3N1c3BlbmQocmVzLCBsaXN0LCBuZW50LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9haW9fc3VzcGVuZCggICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGxpc3QpLCAobG9uZyBsb25nKShuZW50KSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWlvX3dyaXRlKGFpb2NicCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fd3JpdGUoKGxvbmcgbG9uZykoYWlvY2JwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWlvX3dyaXRlKHJlcywgYWlvY2JwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fd3JpdGUocmVzLCAobG9uZyBsb25nKShhaW9jYnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpb19saXN0aW8obW9kZSwgbGlzdCwgbmVudCwgc2lnKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlvX2xpc3RpbygobG9uZyBsb25nKShtb2RlKSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShsaXN0KSwgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuZW50KSwgKGxvbmcgbG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlvX2xpc3RpbyhyZXMsIG1vZGUsIGxpc3QsIG5lbnQsIHNpZykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW9fbGlzdGlvKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKG5lbnQpLCAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoc2lnKSkKLyogc3lzY2FsbCA0MDcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDQwOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNDA5IGhhcyBiZWVuIHNraXBwZWQgKi8KI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21vdW50NTAodHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEsIGRhdGFfbGVuKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbW91bnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmbGFncyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKGRhdGFfbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tb3VudDUwKHJlcywgdHlwZSwgcGF0aCwgZmxhZ3MsIGRhdGEsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21vdW50NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWdzKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZGF0YSksIChsb25nIGxvbmcpKGRhdGFfbGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcmVtYXAob2xkX2FkZHJlc3MsIG9sZF9zaXplLCBuZXdfYWRkcmVzcywgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3NpemUsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21yZW1hcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykob2xkX2FkZHJlc3MpLCAobG9uZyBsb25nKShvbGRfc2l6ZSksICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmV3X2FkZHJlc3MpLCAobG9uZyBsb25nKShuZXdfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXJlbWFwKHJlcywgb2xkX2FkZHJlc3MsIG9sZF9zaXplLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19hZGRyZXNzLCBuZXdfc2l6ZSwgZmxhZ3MpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcmVtYXAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShvbGRfYWRkcmVzcyksIChsb25nIGxvbmcpKG9sZF9zaXplKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobmV3X2FkZHJlc3MpLCAobG9uZyBsb25nKShuZXdfc2l6ZSksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wc2V0X2NyZWF0ZShwc2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfY3JlYXRlKChsb25nIGxvbmcpKHBzaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wc2V0X2NyZWF0ZShyZXMsIHBzaWQpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfY3JlYXRlKHJlcywgKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHNldF9kZXN0cm95KHBzaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wc2V0X2Rlc3Ryb3koKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BzZXRfZGVzdHJveShyZXMsIHBzaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHNldF9kZXN0cm95KHJlcywgKGxvbmcgbG9uZykocHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHNldF9hc3NpZ24ocHNpZCwgY3B1aWQsIG9wc2lkKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wc2V0X2Fzc2lnbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShjcHVpZCksIChsb25nIGxvbmcpKG9wc2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHNldF9hc3NpZ24ocmVzLCBwc2lkLCBjcHVpZCwgb3BzaWQpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wc2V0X2Fzc2lnbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwc2lkKSwgKGxvbmcgbG9uZykoY3B1aWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX3BzZXRfYmluZChpZHR5cGUsIGZpcnN0X2lkLCBzZWNvbmRfaWQsIHBzaWQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHNpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fcHNldF9iaW5kKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGZpcnN0X2lkKSwgKGxvbmcgbG9uZykoc2Vjb25kX2lkKSwgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19wc2V0X2JpbmQocmVzLCBpZHR5cGUsIGZpcnN0X2lkLCBzZWNvbmRfaWQsICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHNpZCwgb3BzaWQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3BzZXRfYmluZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoaWR0eXBlKSwgKGxvbmcgbG9uZykoZmlyc3RfaWQpLCAobG9uZyBsb25nKShzZWNvbmRfaWQpLCBcCiAgICAgIChsb25nIGxvbmcpKHBzaWQpLCAobG9uZyBsb25nKShvcHNpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19wb3NpeF9mYWR2aXNlNTAoZmQsIFBBRCwgb2Zmc2V0LCBsZW4sICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWR2aWNlKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3Bvc2l4X2ZhZHZpc2U1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykob2Zmc2V0KSwgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGFkdmljZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9zaXhfZmFkdmlzZTUwKHJlcywgZmQsIFBBRCwgb2Zmc2V0LCBsZW4sICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkdmljZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9mYWR2aXNlNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShQQUQpLCAobG9uZyBsb25nKShvZmZzZXQpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGxlbiksIChsb25nIGxvbmcpKGFkdmljZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zZWxlY3Q1MChuZCwgaW4sIG91LCBleCwgdHYpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NlbGVjdDUwKChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zZWxlY3Q1MChyZXMsIG5kLCBpbiwgb3UsIGV4LCB0dikgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NlbGVjdDUwKHJlcywgKGxvbmcgbG9uZykobmQpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGluKSwgKGxvbmcgbG9uZykob3UpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGV4KSwgKGxvbmcgbG9uZykodHYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0dGltZW9mZGF5NTAodHAsIHR6cCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXR0aW1lb2ZkYXk1MCgobG9uZyBsb25nKSh0cCksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0enApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldHRpbWVvZmRheTUwKHJlcywgdHAsIHR6cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0dGltZW9mZGF5NTAocmVzLCAobG9uZyBsb25nKSh0cCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3NldHRpbWVvZmRheTUwKHR2LCB0enApICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0dGltZW9mZGF5NTAoKGxvbmcgbG9uZykodHYpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHpwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zZXR0aW1lb2ZkYXk1MChyZXMsIHR2LCB0enApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NldHRpbWVvZmRheTUwKHJlcywgKGxvbmcgbG9uZykodHYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR6cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX191dGltZXM1MChwYXRoLCB0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3V0aW1lczUwKChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX191dGltZXM1MChyZXMsIHBhdGgsIHRwdHIpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3V0aW1lczUwKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWRqdGltZTUwKGRlbHRhLCBvbGRkZWx0YSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hZGp0aW1lNTAoKGxvbmcgbG9uZykoZGVsdGEpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob2xkZGVsdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FkanRpbWU1MChyZXMsIGRlbHRhLCBvbGRkZWx0YSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWRqdGltZTUwKHJlcywgKGxvbmcgbG9uZykoZGVsdGEpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG9sZGRlbHRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2xmc19zZWd3YWl0NTAoZnNpZHAsIHR2KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbGZzX3NlZ3dhaXQ1MCgobG9uZyBsb25nKShmc2lkcCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fbGZzX3NlZ3dhaXQ1MChyZXMsIGZzaWRwLCB0dikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19sZnNfc2Vnd2FpdDUwKHJlcywgKGxvbmcgbG9uZykoZnNpZHApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Z1dGltZXM1MChmZCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0aW1lczUwKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnV0aW1lczUwKHJlcywgZmQsIHRwdHIpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRpbWVzNTAocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19sdXRpbWVzNTAocGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2x1dGltZXM1MCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fbHV0aW1lczUwKHJlcywgcGF0aCwgdHB0cikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19sdXRpbWVzNTAocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zZXRpdGltZXI1MCh3aGljaCwgaXR2LCBvaXR2KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NldGl0aW1lcjUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHdoaWNoKSwgKGxvbmcgbG9uZykoaXR2KSwgKGxvbmcgbG9uZykob2l0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc2V0aXRpbWVyNTAocmVzLCB3aGljaCwgaXR2LCBvaXR2KSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zZXRpdGltZXI1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAobG9uZyBsb25nKShpdHYpLCAobG9uZyBsb25nKShvaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2dldGl0aW1lcjUwKHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0aXRpbWVyNTAoKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoaXR2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19nZXRpdGltZXI1MChyZXMsIHdoaWNoLCBpdHYpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGl0aW1lcjUwKHJlcywgKGxvbmcgbG9uZykod2hpY2gpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGl0dikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19jbG9ja19nZXR0aW1lNTAoY2xvY2tfaWQsIHRwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHRpbWU1MCgobG9uZyBsb25nKShjbG9ja19pZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fY2xvY2tfZ2V0dGltZTUwKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19jbG9ja19nZXR0aW1lNTAocmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fY2xvY2tfc2V0dGltZTUwKGNsb2NrX2lkLCB0cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9ja19zZXR0aW1lNTAoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Nsb2NrX3NldHRpbWU1MChyZXMsIGNsb2NrX2lkLCB0cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfc2V0dGltZTUwKHJlcywgKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Nsb2NrX2dldHJlczUwKGNsb2NrX2lkLCB0cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fY2xvY2tfZ2V0cmVzNTAoKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2Nsb2NrX2dldHJlczUwKHJlcywgY2xvY2tfaWQsIHRwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfZ2V0cmVzNTAocmVzLCAobG9uZyBsb25nKShjbG9ja19pZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbmFub3NsZWVwNTAocnF0cCwgcm10cCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19uYW5vc2xlZXA1MCgobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19uYW5vc2xlZXA1MChyZXMsIHJxdHAsIHJtdHApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX25hbm9zbGVlcDUwKHJlcywgKGxvbmcgbG9uZykocnF0cCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fX19zaWd0aW1lZHdhaXQ1MChzZXQsIGluZm8sIHRpbWVvdXQpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZXQpLCAobG9uZyBsb25nKShpbmZvKSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fX19zaWd0aW1lZHdhaXQ1MChyZXMsIHNldCwgaW5mbywgdGltZW91dCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoc2V0KSwgKGxvbmcgbG9uZykoaW5mbyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fbXFfdGltZWRzZW5kNTAobXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tcV90aW1lZHNlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tcV90aW1lZHNlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJlcywgbXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sIG1zZ19wcmlvLCBhYnNfdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21xX3RpbWVkc2VuZDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShtcWRlcyksIChsb25nIGxvbmcpKG1zZ19wdHIpLCAobG9uZyBsb25nKShtc2dfbGVuKSwgICAgIFwKICAgICAgKGxvbmcgbG9uZykobXNnX3ByaW8pLCAobG9uZyBsb25nKShhYnNfdGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19tcV90aW1lZHJlY2VpdmU1MChtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfcHJpbywgYWJzX3RpbWVvdXQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21xX3RpbWVkcmVjZWl2ZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKG1zZ19wcmlvKSwgKGxvbmcgbG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX21xX3RpbWVkcmVjZWl2ZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXFfdGltZWRyZWNlaXZlNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKG1xZGVzKSwgKGxvbmcgbG9uZykobXNnX3B0ciksIChsb25nIGxvbmcpKG1zZ19sZW4pLCAgICAgXAogICAgICAobG9uZyBsb25nKShtc2dfcHJpbyksIChsb25nIGxvbmcpKGFic190aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfNjBfX2x3cF9wYXJrKHRzLCB1bnBhcmssIGhpbnQsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF82MF9fbHdwX3BhcmsocmVzLCB0cywgdW5wYXJrLCBoaW50LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wYXJraGludCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX19sd3BfcGFyayggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykodHMpLCAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fa2V2ZW50NTAoZmQsIGNoYW5nZWxpc3QsIG5jaGFuZ2VzLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRsaXN0LCBuZXZlbnRzLCB0aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19rZXZlbnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKGNoYW5nZWxpc3QpLCAobG9uZyBsb25nKShuY2hhbmdlcyksICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShldmVudGxpc3QpLCAobG9uZyBsb25nKShuZXZlbnRzKSwgKGxvbmcgbG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fa2V2ZW50NTAocmVzLCBmZCwgY2hhbmdlbGlzdCwgbmNoYW5nZXMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRsaXN0LCBuZXZlbnRzLCB0aW1lb3V0KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19rZXZlbnQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShjaGFuZ2VsaXN0KSwgKGxvbmcgbG9uZykobmNoYW5nZXMpLCAgICBcCiAgICAgIChsb25nIGxvbmcpKGV2ZW50bGlzdCksIChsb25nIGxvbmcpKG5ldmVudHMpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3BzZWxlY3Q1MChuZCwgaW4sIG91LCBleCwgdHMsIG1hc2spICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcHNlbGVjdDUwKChsb25nIGxvbmcpKG5kKSwgKGxvbmcgbG9uZykoaW4pLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcHNlbGVjdDUwKHJlcywgbmQsIGluLCBvdSwgZXgsIHRzLCBtYXNrKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wc2VsZWN0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykobmQpLCAobG9uZyBsb25nKShpbiksIChsb25nIGxvbmcpKG91KSwgKGxvbmcgbG9uZykoZXgpLCBcCiAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19wb2xsdHM1MChmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3BvbGx0czUwKChsb25nIGxvbmcpKGZkcyksIChsb25nIGxvbmcpKG5mZHMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRzKSwgKGxvbmcgbG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fcG9sbHRzNTAocmVzLCBmZHMsIG5mZHMsIHRzLCBtYXNrKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb2xsdHM1MChyZXMsIChsb25nIGxvbmcpKGZkcyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuZmRzKSwgKGxvbmcgbG9uZykodHMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Fpb19zdXNwZW5kNTAobGlzdCwgbmVudCwgdGltZW91dCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWlvX3N1c3BlbmQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobGlzdCksIChsb25nIGxvbmcpKG5lbnQpLCAobG9uZyBsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19haW9fc3VzcGVuZDUwKHJlcywgbGlzdCwgbmVudCwgdGltZW91dCkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Fpb19zdXNwZW5kNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShsaXN0KSwgKGxvbmcgbG9uZykobmVudCksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc3RhdDUwKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zdGF0NTAoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19zdGF0NTAocmVzLCBwYXRoLCB1YikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3N0YXQ1MChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh1YikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19mc3RhdDUwKGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2ZzdGF0NTAoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnN0YXQ1MChyZXMsIGZkLCBzYikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdDUwKHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShzYikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19sc3RhdDUwKHBhdGgsIHViKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2xzdGF0NTAoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHViKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19sc3RhdDUwKHJlcywgcGF0aCwgdWIpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2xzdGF0NTAocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodWIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fX19zZW1jdGw1MChzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fX3NlbWN0bDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShzZW1pZCksIChsb25nIGxvbmcpKHNlbW51bSksIChsb25nIGxvbmcpKGNtZCksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX19fc2VtY3RsNTAocmVzLCBzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX19zZW1jdGw1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHNlbWlkKSwgKGxvbmcgbG9uZykoc2VtbnVtKSwgKGxvbmcgbG9uZykoY21kKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fc2htY3RsNTAoc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaG1jdGw1MCgobG9uZyBsb25nKShzaG1pZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShjbWQpLCAobG9uZyBsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3NobWN0bDUwKHJlcywgc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2htY3RsNTAocmVzLCAobG9uZyBsb25nKShzaG1pZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21zZ2N0bDUwKG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbXNnY3RsNTAoKGxvbmcgbG9uZykobXNxaWQpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoY21kKSwgKGxvbmcgbG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19tc2djdGw1MChyZXMsIG1zcWlkLCBjbWQsIGJ1ZikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zZ2N0bDUwKHJlcywgKGxvbmcgbG9uZykobXNxaWQpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGNtZCksIChsb25nIGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19nZXRydXNhZ2U1MCh3aG8sIHJ1c2FnZSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHJ1c2FnZTUwKChsb25nIGxvbmcpKHdobyksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHJ1c2FnZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZ2V0cnVzYWdlNTAocmVzLCB3aG8sIHJ1c2FnZSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRydXNhZ2U1MChyZXMsIChsb25nIGxvbmcpKHdobyksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShydXNhZ2UpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdGltZXJfc2V0dGltZTUwKHRpbWVyaWQsIGZsYWdzLCB2YWx1ZSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92YWx1ZSkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9zZXR0aW1lNTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh0aW1lcmlkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKSh2YWx1ZSksICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvdmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3RpbWVyX3NldHRpbWU1MChyZXMsIHRpbWVyaWQsIGZsYWdzLCB2YWx1ZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmFsdWUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdGltZXJfc2V0dGltZTUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHRpbWVyaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHZhbHVlKSwgICAgICAgXAogICAgICAobG9uZyBsb25nKShvdmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fdGltZXJfZ2V0dGltZTUwKHRpbWVyaWQsIHZhbHVlKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9nZXR0aW1lNTAoKGxvbmcgbG9uZykodGltZXJpZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmFsdWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3RpbWVyX2dldHRpbWU1MChyZXMsIHRpbWVyaWQsIHZhbHVlKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdGltZXJfZ2V0dGltZTUwKHJlcywgKGxvbmcgbG9uZykodGltZXJpZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZhbHVlKSkKI2lmIGRlZmluZWQoTlRQKSB8fCAhZGVmaW5lZChfS0VSTkVMX09QVCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX250cF9nZXR0aW1lNTAobnR2cCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbnRwX2dldHRpbWU1MCgobG9uZyBsb25nKShudHZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19udHBfZ2V0dGltZTUwKHJlcywgbnR2cCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX250cF9nZXR0aW1lNTAocmVzLCAobG9uZyBsb25nKShudHZwKSkKI2Vsc2UKLyogc3lzY2FsbCA0NDggaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3dhaXQ0NTAocGlkLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fd2FpdDQ1MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGlkKSwgKGxvbmcgbG9uZykoc3RhdHVzKSwgKGxvbmcgbG9uZykob3B0aW9ucyksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX193YWl0NDUwKHJlcywgcGlkLCBzdGF0dXMsIG9wdGlvbnMsIHJ1c2FnZSkgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3dhaXQ0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAobG9uZyBsb25nKShvcHRpb25zKSwgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocnVzYWdlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX21rbm9kNTAocGF0aCwgbW9kZSwgZGV2KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbWtub2Q1MCgobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX21rbm9kNTAocmVzLCBwYXRoLCBtb2RlLCBkZXYpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbWtub2Q1MChyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2Zoc3RhdDUwKGZocCwgZmhfc2l6ZSwgc2IpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZmhzdGF0NTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmhwKSwgKGxvbmcgbG9uZykoZmhfc2l6ZSksIChsb25nIGxvbmcpKHNiKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXQ1MChyZXMsIGZocCwgZmhfc2l6ZSwgc2IpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Zoc3RhdDUwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShmaF9zaXplKSwgKGxvbmcgbG9uZykoc2IpKQovKiBzeXNjYWxsIDQ1MiBoYXMgYmVlbiBza2lwcGVkICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGlwZTIoZmlsZGVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlMigobG9uZyBsb25nKShmaWxkZXMpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BpcGUyKHJlcywgZmlsZGVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGlwZTIocmVzLCAobG9uZyBsb25nKShmaWxkZXMpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2R1cDMoZnJvbSwgdG8sIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwMygobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG8pLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cDMocmVzLCBmcm9tLCB0bywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMyhyZXMsIChsb25nIGxvbmcpKGZyb20pLCAobG9uZyBsb25nKSh0byksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa3F1ZXVlMShmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rcXVldWUxKChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa3F1ZXVlMShyZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rcXVldWUxKHJlcywgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BhY2NlcHQocywgbmFtZSwgYW5hbWVsZW4sIG1hc2ssIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGFjY2VwdCgobG9uZyBsb25nKShzKSwgKGxvbmcgbG9uZykobmFtZSksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhbmFtZWxlbiksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtYXNrKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wYWNjZXB0KHJlcywgcywgbmFtZSwgYW5hbWVsZW4sIG1hc2ssIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BhY2NlcHQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShuYW1lKSwgKGxvbmcgbG9uZykoYW5hbWVsZW4pLCAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShtYXNrKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xpbmthdChmZDEsIG5hbWUxLCBmZDIsIG5hbWUyLCBmbGFncykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlua2F0KChsb25nIGxvbmcpKGZkMSksIChsb25nIGxvbmcpKG5hbWUxKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZkMiksIChsb25nIGxvbmcpKG5hbWUyKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlua2F0KHJlcywgZmQxLCBuYW1lMSwgZmQyLCBuYW1lMiwgZmxhZ3MpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW5rYXQocmVzLCAobG9uZyBsb25nKShmZDEpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZTEpLCAobG9uZyBsb25nKShmZDIpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobmFtZTIpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVuYW1lYXQoZnJvbWZkLCBmcm9tLCB0b2ZkLCB0bykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWVhdCgobG9uZyBsb25nKShmcm9tZmQpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmcm9tKSwgKGxvbmcgbG9uZykodG9mZCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlbmFtZWF0KHJlcywgZnJvbWZkLCBmcm9tLCB0b2ZkLCB0bykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQocmVzLCAobG9uZyBsb25nKShmcm9tZmQpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZnJvbSksIChsb25nIGxvbmcpKHRvZmQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rZmlmb2F0KGZkLCBwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtmaWZvYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZmlmb2F0KHJlcywgZmQsIHBhdGgsIG1vZGUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rbm9kYXQoZmQsIHBhdGgsIG1vZGUsIFBBRCwgZGV2KSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtub2RhdCgobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtb2RlKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta25vZGF0KHJlcywgZmQsIHBhdGgsIG1vZGUsIFBBRCwgZGV2KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rbm9kYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG1vZGUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykoZGV2KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ta2RpcmF0KGZkLCBwYXRoLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZGlyYXQocmVzLCBmZCwgcGF0aCwgbW9kZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmFjY2Vzc2F0KGZkLCBwYXRoLCBhbW9kZSwgZmxhZykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mYWNjZXNzYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYW1vZGUpLCAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZhY2Nlc3NhdChyZXMsIGZkLCBwYXRoLCBhbW9kZSwgZmxhZykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFjY2Vzc2F0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykoYW1vZGUpLCAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG1vZGF0KGZkLCBwYXRoLCBtb2RlLCBmbGFnKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2htb2RhdChyZXMsIGZkLCBwYXRoLCBtb2RlLCBmbGFnKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG1vZGF0KHJlcywgKGxvbmcgbG9uZykoZmQpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShtb2RlKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bmF0KGZkLCBwYXRoLCBvd25lciwgZ3JvdXAsIGZsYWcpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykob3duZXIpLCAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZ3JvdXApLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNob3duYXQocmVzLCBmZCwgcGF0aCwgb3duZXIsIGdyb3VwLCBmbGFnKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd25hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShvd25lciksICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZ3JvdXApLCAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZXhlY3ZlKGZkLCBhcmdwLCBlbnZwKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZleGVjdmUoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShhcmdwKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZW52cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZleGVjdmUocmVzLCBmZCwgYXJncCwgZW52cCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmV4ZWN2ZShyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShhcmdwKSwgKGxvbmcgbG9uZykoZW52cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXRhdChmZCwgcGF0aCwgYnVmLCBmbGFnKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGF0KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdGF0KHJlcywgZmQsIHBhdGgsIGJ1ZiwgZmxhZykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0YXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXRpbWVuc2F0KGZkLCBwYXRoLCB0cHRyLCBmbGFnKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZW5zYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodHB0ciksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dGltZW5zYXQocmVzLCBmZCwgcGF0aCwgdHB0ciwgZmxhZykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lbnNhdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHRwdHIpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuYXQoZmQsIHBhdGgsIG9mbGFncywgbW9kZSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5hdCgobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKHBhdGgpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShvZmxhZ3MpLCAobG9uZyBsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb3BlbmF0KHJlcywgZmQsIHBhdGgsIG9mbGFncywgbW9kZSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG9mbGFncyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZGxpbmthdChmZCwgcGF0aCwgYnVmLCBidWZzaXplKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGlua2F0KChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGJ1ZnNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkbGlua2F0KHJlcywgZmQsIHBhdGgsIGJ1ZiwgYnVmc2l6ZSkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rYXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWZzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW1saW5rYXQocGF0aDEsIGZkLCBwYXRoMikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdCgobG9uZyBsb25nKShwYXRoMSksIChsb25nIGxvbmcpKGZkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShwYXRoMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bWxpbmthdChyZXMsIHBhdGgxLCBmZCwgcGF0aDIpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGlua2F0KHJlcywgKGxvbmcgbG9uZykocGF0aDEpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykocGF0aDIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VubGlua2F0KGZkLCBwYXRoLCBmbGFnKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5saW5rYXQoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShwYXRoKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VubGlua2F0KHJlcywgZmQsIHBhdGgsIGZsYWcpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z1dGltZW5zKGZkLCB0cHRyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnV0aW1lbnMoKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnV0aW1lbnMocmVzLCBmZCwgdHB0cikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdXRpbWVucyhyZXMsIChsb25nIGxvbmcpKGZkKSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0cHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX3F1b3RhY3RsKHBhdGgsIGFyZ3MpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcXVvdGFjdGwoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGFyZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX3F1b3RhY3RsKHJlcywgcGF0aCwgYXJncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcXVvdGFjdGwocmVzLCAobG9uZyBsb25nKShwYXRoKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoYXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9zaXhfc3Bhd24ocGlkLCBwYXRoLCBmaWxlX2FjdGlvbnMsIGF0dHJwLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndiwgZW52cCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9zcGF3biggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmaWxlX2FjdGlvbnMpLCAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGF0dHJwKSwgKGxvbmcgbG9uZykoYXJndiksIChsb25nIGxvbmcpKGVudnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wb3NpeF9zcGF3bihyZXMsIHBpZCwgcGF0aCwgZmlsZV9hY3Rpb25zLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRycCwgYXJndiwgZW52cCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X3NwYXduKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBpZCksIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShmaWxlX2FjdGlvbnMpLCAgICAgXAogICAgICAobG9uZyBsb25nKShhdHRycCksIChsb25nIGxvbmcpKGFyZ3YpLCAobG9uZyBsb25nKShlbnZwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2bW1zZyhzLCBtbXNnLCB2bGVuLCBmbGFncywgdGltZW91dCkgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtbXNnKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHZsZW4pLCAobG9uZyBsb25nKShmbGFncyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWN2bW1zZyhyZXMsIHMsIG1tc2csIHZsZW4sIGZsYWdzLCB0aW1lb3V0KSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3ZtbXNnKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHMpLCAobG9uZyBsb25nKShtbXNnKSwgKGxvbmcgbG9uZykodmxlbiksICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRtbXNnKHMsIG1tc2csIHZsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2coKGxvbmcgbG9uZykocyksIChsb25nIGxvbmcpKG1tc2cpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykodmxlbiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1tc2cocmVzLCBzLCBtbXNnLCB2bGVuLCBmbGFncykgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbW1zZyhyZXMsIChsb25nIGxvbmcpKHMpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShtbXNnKSwgKGxvbmcgbG9uZykodmxlbiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfbmFub3NsZWVwKGNsb2NrX2lkLCBmbGFncywgcnF0cCwgcm10cCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19uYW5vc2xlZXAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShycXRwKSwgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHJtdHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19uYW5vc2xlZXAocmVzLCBjbG9ja19pZCwgZmxhZ3MsIHJxdHAsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm10cCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX25hbm9zbGVlcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKShycXRwKSwgICAgICAgXAogICAgICAobG9uZyBsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX19sd3BfcGFyazYwKGNsb2NrX2lkLCBmbGFncywgdHMsIHVucGFyaywgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpbnQsIHVucGFya2hpbnQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fX2x3cF9wYXJrNjAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoY2xvY2tfaWQpLCAobG9uZyBsb25nKShmbGFncyksIChsb25nIGxvbmcpKHRzKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykodW5wYXJrKSwgKGxvbmcgbG9uZykoaGludCksIChsb25nIGxvbmcpKHVucGFya2hpbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX19sd3BfcGFyazYwKHJlcywgY2xvY2tfaWQsIGZsYWdzLCB0cywgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVucGFyaywgaGludCwgdW5wYXJraGludCkgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX2x3cF9wYXJrNjAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGNsb2NrX2lkKSwgKGxvbmcgbG9uZykoZmxhZ3MpLCAobG9uZyBsb25nKSh0cyksICAgICAgICAgXAogICAgICAobG9uZyBsb25nKSh1bnBhcmspLCAobG9uZyBsb25nKShoaW50KSwgKGxvbmcgbG9uZykodW5wYXJraGludCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcG9zaXhfZmFsbG9jYXRlKGZkLCBQQUQsIHBvcywgbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9mYWxsb2NhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSwgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcG9zaXhfZmFsbG9jYXRlKHJlcywgZmQsIFBBRCwgcG9zLCBsZW4pICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wb3NpeF9mYWxsb2NhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmZCksIChsb25nIGxvbmcpKFBBRCksIChsb25nIGxvbmcpKHBvcyksICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZGlzY2FyZChmZCwgUEFELCBwb3MsIGxlbikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZkaXNjYXJkKChsb25nIGxvbmcpKGZkKSwgKGxvbmcgbG9uZykoUEFEKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHBvcyksIChsb25nIGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZkaXNjYXJkKHJlcywgZmQsIFBBRCwgcG9zLCBsZW4pICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmRpc2NhcmQocmVzLCAobG9uZyBsb25nKShmZCksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykoUEFEKSwgKGxvbmcgbG9uZykocG9zKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV93YWl0NihpZHR5cGUsIGlkLCBzdGF0dXMsIG9wdGlvbnMsIHdydSwgaW5mbykgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXQ2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoaWR0eXBlKSwgKGxvbmcgbG9uZykoaWQpLCAobG9uZyBsb25nKShzdGF0dXMpLCAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykob3B0aW9ucyksIChsb25nIGxvbmcpKHdydSksIChsb25nIGxvbmcpKGluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93YWl0NihyZXMsIGlkdHlwZSwgaWQsIHN0YXR1cywgb3B0aW9ucywgd3J1LCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXQ2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoc3RhdHVzKSwgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShvcHRpb25zKSwgKGxvbmcgbG9uZykod3J1KSwgKGxvbmcgbG9uZykoaW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfZ2V0Y3B1Y2xvY2tpZDIoaWR0eXBlLCBpZCwgY2xvY2tfaWQpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19nZXRjcHVjbG9ja2lkMiggICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoY2xvY2tfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19nZXRjcHVjbG9ja2lkMihyZXMsIGlkdHlwZSwgaWQsICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9ja19pZCkgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKCAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGlkdHlwZSksIChsb25nIGxvbmcpKGlkKSwgKGxvbmcgbG9uZykoY2xvY2tfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fZ2V0dmZzc3RhdDkwKGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXR2ZnNzdGF0OTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShidWZzaXplKSwgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2dldHZmc3N0YXQ5MChyZXMsIGJ1ZiwgYnVmc2l6ZSwgZmxhZ3MpICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0dmZzc3RhdDkwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGJ1ZnNpemUpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19zdGF0dmZzMTkwKHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N0YXR2ZnMxOTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fc3RhdHZmczE5MChyZXMsIHBhdGgsIGJ1ZiwgZmxhZ3MpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zdGF0dmZzMTkwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKGJ1ZiksIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2ZzdGF0dmZzMTkwKGZkLCBidWYsIGZsYWdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnN0YXR2ZnMxOTAoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fZnN0YXR2ZnMxOTAocmVzLCBmZCwgYnVmLCBmbGFncykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmQpLCAobG9uZyBsb25nKShidWYpLCAobG9uZyBsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maHN0YXR2ZnMxOTAoZmhwLCBmaF9zaXplLCBidWYsIGZsYWdzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zoc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZocCksIChsb25nIGxvbmcpKGZoX3NpemUpLCAobG9uZyBsb25nKShidWYpLCAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXR2ZnMxOTAocmVzLCBmaHAsIGZoX3NpemUsIGJ1ZiwgZmxhZ3MpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Zoc3RhdHZmczE5MCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShmaHApLCAobG9uZyBsb25nKShmaF9zaXplKSwgKGxvbmcgbG9uZykoYnVmKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2dldF9saW5rKHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9nZXRfbGluayhyZXMsIHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9saW5rKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfc2V0X2xpbmsocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX3NldF9saW5rKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9kZWxldGVfbGluayhwYXRoLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2RlbGV0ZV9saW5rKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfbGluayhyZXMsIHBhdGgsIHR5cGUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9saW5rKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2FjbGNoZWNrX2xpbmsocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfbGluayggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9hY2xjaGVja19saW5rKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2FjbGNoZWNrX2xpbmsoICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfZ2V0X2ZpbGUocGF0aCwgdHlwZSwgYWNscCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9nZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKHBhdGgpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX2dldF9maWxlKHJlcywgcGF0aCwgdHlwZSwgYWNscCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZ2V0X2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9zZXRfZmlsZShwYXRoLCB0eXBlLCBhY2xwKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX3NldF9maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19hY2xfc2V0X2ZpbGUocmVzLCBwYXRoLCB0eXBlLCBhY2xwKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9zZXRfZmlsZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2dldF9mZChmaWxlZGVzLCB0eXBlLCBhY2xwKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmaWxlZGVzKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9nZXRfZmQocmVzLCBmaWxlZGVzLCB0eXBlLCBhY2xwKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9mZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19hY2xfc2V0X2ZkKGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19fYWNsX3NldF9mZChyZXMsIGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcgbG9uZykoZmlsZWRlcyksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9kZWxldGVfZmlsZShwYXRoLCB0eXBlKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2RlbGV0ZV9maWxlKChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfZmlsZShyZXMsIHBhdGgsIHR5cGUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9maWxlKHJlcywgKGxvbmcgbG9uZykocGF0aCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2RlbGV0ZV9mZChmaWxlZGVzLCB0eXBlKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZGVsZXRlX2ZkKChsb25nIGxvbmcpKGZpbGVkZXMpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcpKHR5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9kZWxldGVfZmQocmVzLCBmaWxlZGVzLCB0eXBlKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9mZChyZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKSh0eXBlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fX2FjbF9hY2xjaGVja19maWxlKHBhdGgsIHR5cGUsIGFjbHApICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2FjbGNoZWNrX2ZpbGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKHR5cGUpLCAobG9uZyBsb25nKShhY2xwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19hY2xfYWNsY2hlY2tfZmlsZShyZXMsIHBhdGgsIHR5cGUsIGFjbHApICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19maWxlKCAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZyBsb25nKShwYXRoKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19fYWNsX2FjbGNoZWNrX2ZkKGZpbGVkZXMsIHR5cGUsIGFjbHApICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZyBsb25nKShmaWxlZGVzKSwgKGxvbmcgbG9uZykodHlwZSksIChsb25nIGxvbmcpKGFjbHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9fX2FjbF9hY2xjaGVja19mZChyZXMsIGZpbGVkZXMsIHR5cGUsIGFjbHApICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2FjbGNoZWNrX2ZkKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nIGxvbmcpKGZpbGVkZXMpLCAobG9uZyBsb25nKSh0eXBlKSwgKGxvbmcgbG9uZykoYWNscCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHBhdGhjb25mKHBhdGgsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9scGF0aGNvbmYoKGxvbmcgbG9uZykocGF0aCksIChsb25nIGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9scGF0aGNvbmYocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xwYXRoY29uZihyZXMsIChsb25nIGxvbmcpKHBhdGgpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShuYW1lKSkKCi8qIENvbXBhdCB3aXRoIG9sZGVyIHJlbGVhc2VzICovCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0dmZzc3RhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX2dldHZmc3N0YXQKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0dmZzc3RhdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzkwX2dldHZmc3N0YXQKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3RhdHZmczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX3N0YXR2ZnMxCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N0YXR2ZnMxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9zdGF0dmZzMQoKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mc3RhdHZmczEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb21wYXRfOTBfZnN0YXR2ZnMxCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzdGF0dmZzMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NvbXBhdF85MF9mc3RhdHZmczEKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfX19maHN0YXR2ZnMxNDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY29tcGF0XzkwX2Zoc3RhdHZmczEKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX19maHN0YXR2ZnMxNDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29tcGF0XzkwX2Zoc3RhdHZmczEKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgovLyBQcml2YXRlIGRlY2xhcmF0aW9ucy4gRG8gbm90IGNhbGwgZGlyZWN0bHkgZnJvbSB1c2VyIGNvZGUuIFVzZSBtYWNyb3MgYWJvdmUuCgovLyBETyBOT1QgRURJVCEgVEhJUyBGSUxFIEhBUyBCRUVOIEdFTkVSQVRFRCEKCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNjYWxsKGxvbmcgbG9uZyBjb2RlLCBsb25nIGxvbmcgYXJnMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzEsIGxvbmcgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMywgbG9uZyBsb25nIGFyZzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmc1LCBsb25nIGxvbmcgYXJnNiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5c2NhbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMCwgbG9uZyBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMiwgbG9uZyBsb25nIGFyZzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNCwgbG9uZyBsb25nIGFyZzUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNiwgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXhpdChsb25nIGxvbmcgcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXhpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZvcmsobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBuYnl0ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3Blbihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3Blbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UobG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9zZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3dhaXQ0KGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfd2FpdDQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29jcmVhdChsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vY3JlYXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpbmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGluayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmsobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7Ci8qIHN5c2NhbGwgMTEgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hkaXIobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NoZGlyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaGRpcihsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGRpcihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX21rbm9kKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9ta25vZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2htb2QobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaG1vZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG93bihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1aWQsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYnJlYWsobG9uZyBsb25nIG5zaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9icmVhayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbnNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzIwX2dldGZzc3RhdChsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZ2V0ZnNzdGF0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29sc2Vlayhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vbHNlZWsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mZnNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGlkKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBpZChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80MF9tb3VudChsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80MF9tb3VudChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5tb3VudChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bm1vdW50KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHVpZChsb25nIGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR1aWQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZXVpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHRyYWNlKGxvbmcgbG9uZyByZXEsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wdHJhY2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJlcSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCwgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Ztc2cobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBtc2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2csIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbXNnKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRtc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdmZyb20obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnJvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdmZyb20obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhbmFtZWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXB0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGFuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBlZXJuYW1lKGxvbmcgbG9uZyBmZGVzLCBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBlZXJuYW1lKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tuYW1lKGxvbmcgbG9uZyBmZGVzLCBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tuYW1lKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2Vzcyhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2Nlc3MobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaGZsYWdzKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NoZmxhZ3MobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNoZmxhZ3MobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaGZsYWdzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luYyh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW5jKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa2lsbChsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19zdGF0NDMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX3N0YXQ0Myhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHBpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcGlkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX2xzdGF0NDMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19sc3RhdDQzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cChsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGlwZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9waXBlKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZWdpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvZmlsKGxvbmcgbG9uZyBzYW1wbGVzLCBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgc2NhbGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Byb2ZpbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2FtcGxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUsIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzY2FsZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rdHJhY2UobG9uZyBsb25nIGZuYW1lLCBsb25nIGxvbmcgb3BzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmYWNzLCBsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rdHJhY2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzLCBsb25nIGxvbmcgZmFjcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnYWN0aW9uMTMobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc2EpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdhY3Rpb24xMyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRnaWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncHJvY21hc2sxMyhsb25nIGxvbmcgaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdwcm9jbWFzazEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGhvdywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGxvZ2luKGxvbmcgbG9uZyBuYW1lYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXRsb2dpbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmFtZWJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0bG9naW4obG9uZyBsb25nIG5hbWVidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2V0bG9naW4obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWVidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjdChsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lncGVuZGluZzEzKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xM19zaWdwZW5kaW5nMTMobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnYWx0c3RhY2sxMyhsb25nIGxvbmcgbnNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ2FsdHN0YWNrMTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9jdGwobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY29tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY29tLCBsb25nIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChsb25nIGxvbmcgb3B0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3JlYm9vdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmV2b2tlKGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZXZva2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3ltbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpbmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bWxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGluayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGluayhsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4ZWN2ZShsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGFyZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVudnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4ZWN2ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZ3AsIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VtYXNrKGxvbmcgbG9uZyBuZXdtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bWFzayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmV3bWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaHJvb3QobG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nocm9vdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfZnN0YXQ0Myhsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBzYik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX2ZzdGF0NDMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0a2VybmluZm8obG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hlcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGtlcm5pbmZvKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hlcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRwYWdlc2l6ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHBhZ2VzaXplKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX21zeW5jKGxvbmcgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9tc3luYyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92Zm9yayh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92Zm9yayhsb25nIGxvbmcgcmVzKTsKLyogc3lzY2FsbCA2NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgNjggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDY5IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb21tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29tbWFwKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBwcm90LAogICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwb3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmFkdmlzZShsb25nIGxvbmcgYW5vbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdmFkdmlzZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYW5vbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bm1hcChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcHJvdGVjdChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcHJvdGVjdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgcHJvdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tYWR2aXNlKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmVoYXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21hZHZpc2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgYmVoYXYpOwovKiBzeXNjYWxsIDc2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA3NyBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmVjKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taW5jb3JlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIHZlYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRncm91cHMobG9uZyBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZHNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWRzZXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdyb3Vwcyhsb25nIGxvbmcgZ2lkc2V0c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWRzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdycCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ3JwKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cGdpZChsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgcGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3NldGl0aW1lcihsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpdHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfc2V0aXRpbWVyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX293YWl0KHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vd2FpdChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9vc3dhcG9uKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfb3N3YXBvbihsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9nZXRpdGltZXIobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0aXRpbWVyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaXR2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0aG9zdG5hbWUobG9uZyBsb25nIGhvc3RuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGhvc3RuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2V0aG9zdG5hbWUobG9uZyBsb25nIGhvc3RuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaG9zdG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0ZHRhYmxlc2l6ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldGR0YWJsZXNpemUobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAyKGxvbmcgbG9uZyBmcm9tLCBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cDIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmFuZG9tKGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBidWZsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyYW5kb20obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZmxlbiwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjbnRsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLCBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9zZWxlY3QobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZWxlY3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluLCBsb25nIGxvbmcgb3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0dik7Ci8qIHN5c2NhbGwgOTQgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN5bmMobG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3luYyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cHJpb3JpdHkobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHByaW9yaXR5KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hvLCBsb25nIGxvbmcgcHJpbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfc29ja2V0KGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHJvdG9jb2wpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9zb2NrZXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb25uZWN0KGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nvbm5lY3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29hY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFuYW1lbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2FjY2VwdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYW5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cHJpb3JpdHkobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgd2hvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcmlvcml0eShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdobyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NlbmQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2VuZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcmVjdihsb25nIGxvbmcgcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29yZWN2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEzX3NpZ3JldHVybjEzKGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEzX3NpZ3JldHVybjEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iaW5kKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JpbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0c29ja29wdChsb25nIGxvbmcgcywgbG9uZyBsb25nIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHNvY2tvcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGV2ZWwsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbCwgbG9uZyBsb25nIHZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlzdGVuKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgYmFja2xvZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdGVuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmFja2xvZyk7Ci8qIHN5c2NhbGwgMTA3IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2lndmVjKGxvbmcgbG9uZyBzaWdudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnN2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zdik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29zaWd2ZWMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zdik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ2Jsb2NrKGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NpZ2Jsb2NrKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3NldG1hc2sobG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc2V0bWFzayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTNfc2lnc3VzcGVuZDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NpZ3N0YWNrKGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2lnc3RhY2sobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyhsb25nIGxvbmcgcywgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdm1zZyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vc2VuZG1zZyhsb25nIGxvbmcgcywgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vc2VuZG1zZyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKLyogc3lzY2FsbCAxMTUgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHRpbWVvZmRheShsb25nIGxvbmcgdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9nZXR0aW1lb2ZkYXkobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2dldHJ1c2FnZShsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfZ2V0cnVzYWdlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJ1c2FnZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2Nrb3B0KGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXZhbHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tvcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGV2ZWwsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7Ci8qIHN5c2NhbGwgMTE5IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWR2KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGlvdnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92Y250KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdnAsIGxvbmcgbG9uZyBpb3ZjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGV2KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGlvdnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdmNudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd3JpdGV2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdnAsIGxvbmcgbG9uZyBpb3ZjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3NldHRpbWVvZmRheShsb25nIGxvbmcgdHYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9zZXR0aW1lb2ZkYXkobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG1vZChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3JlY3Zmcm9tKAogICAgbG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIGZyb20sCiAgICBsb25nIGxvbmcgZnJvbWxlbmFkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vcmVjdmZyb20oCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcywgbG9uZyBsb25nIGJ1ZiwgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIGZsYWdzLAogICAgbG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyBmcm9tbGVuYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZChsb25nIGxvbmcgcnVpZCwgbG9uZyBsb25nIGV1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBydWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlZ2lkKGxvbmcgbG9uZyByZ2lkLCBsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJnaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVuYW1lKGxvbmcgbG9uZyBmcm9tLCBsb25nIGxvbmcgdG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbmFtZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZnJvbSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vdHJ1bmNhdGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2Z0cnVuY2F0ZShsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2Z0cnVuY2F0ZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zsb2NrKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGhvdyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmxvY2sobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtmaWZvKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kdG8obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0bywgbG9uZyBsb25nIHRvbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kdG8obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdG9sZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2h1dGRvd24obG9uZyBsb25nIHMsIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NodXRkb3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3cpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0cGFpcihsb25nIGxvbmcgZG9tYWluLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3RvY29sLCBsb25nIGxvbmcgcnN2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXRwYWlyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyByc3YpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXIobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta2Rpcihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ybWRpcihsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcm1kaXIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3V0aW1lcyhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF91dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwovKiBzeXNjYWxsIDEzOSBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfYWRqdGltZShsb25nIGxvbmcgZGVsdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9hZGp0aW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRlbHRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRkZWx0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb2dldHBlZXJuYW1lKGxvbmcgbG9uZyBmZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRwZWVybmFtZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXNhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRob3N0aWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RpZChsb25nIGxvbmcgaG9zdGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldGhvc3RpZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBob3N0aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29nZXRybGltaXQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb3NldHJsaW1pdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19va2lsbHBnKGxvbmcgbG9uZyBwZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZ251bSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29raWxscGcobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGdpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnbnVtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHNpZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzaWQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfcXVvdGFjdGwobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9xdW90YWN0bCgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgY21kLCBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vcXVvdGEodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzQzX29xdW90YShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF80M19vZ2V0c29ja25hbWUobG9uZyBsb25nIGZkZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNDNfb2dldHNvY2tuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmRlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWxlbik7Ci8qIHN5c2NhbGwgMTUxIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNTIgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE1MyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTU0IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25mc3N2Yyhsb25nIGxvbmcgZmxhZywgbG9uZyBsb25nIGFyZ3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25mc3N2Yyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZ3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzQzX29nZXRkaXJlbnRyaWVzKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYmFzZXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF80M19vZ2V0ZGlyZW50cmllcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJhc2VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9zdGF0ZnMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9zdGF0ZnMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMjBfZnN0YXRmcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKLyogc3lzY2FsbCAxNTkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE2MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZ2V0ZmgobG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRmaChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzA5X29nZXRkb21haW5uYW1lKGxvbmcgbG9uZyBkb21haW5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8wOV9vZ2V0ZG9tYWlubmFtZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW5uYW1lLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8wOV9vc2V0ZG9tYWlubmFtZShsb25nIGxvbmcgZG9tYWlubmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb3NldGRvbWFpbm5hbWUoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZG9tYWlubmFtZSwgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMDlfb3VuYW1lKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMDlfb3VuYW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNhcmNoKGxvbmcgbG9uZyBvcCwgbG9uZyBsb25nIHBhcm1zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNhcmNoKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXJtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGV4KGxvbmcgbG9uZyB1YWRkciwgbG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsLCBsb25nIGxvbmcgdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVhZGRyMiwgbG9uZyBsb25nIHZhbDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWwzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1YWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcCwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0LCBsb25nIGxvbmcgdWFkZHIyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbDIsIGxvbmcgbG9uZyB2YWwzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfc2V0X3JvYnVzdF9saXN0KGxvbmcgbG9uZyBoZWFkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mdXRleF9zZXRfcm9idXN0X2xpc3QobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZnV0ZXhfZ2V0X3JvYnVzdF9saXN0KGxvbmcgbG9uZyBsd3BpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoZWFkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5wKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGV4X2dldF9yb2J1c3RfbGlzdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsd3BpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGVhZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbnApOwojaWYgIWRlZmluZWQoX0xQNjQpCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTBfb3NlbXN5cyhsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTIsIGxvbmcgbG9uZyBhMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNCwgbG9uZyBsb25nIGE1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTBfb3NlbXN5cyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGljaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTIsIGxvbmcgbG9uZyBhMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE1KTsKI2Vsc2UKLyogc3lzY2FsbCAxNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29tc2dzeXMobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQsIGxvbmcgbG9uZyBhNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEwX29tc2dzeXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE0LCBsb25nIGxvbmcgYTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE2KTsKI2Vsc2UKLyogc3lzY2FsbCAxNzAgaGFzIGJlZW4gc2tpcHBlZCAqLwojZW5kaWYKI2lmICFkZWZpbmVkKF9MUDY0KQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEwX29zaG1zeXMobG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMF9vc2htc3lzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhMiwgbG9uZyBsb25nIGEzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNCk7CiNlbHNlCi8qIHN5c2NhbGwgMTcxIGhhcyBiZWVuIHNraXBwZWQgKi8KI2VuZGlmCi8qIHN5c2NhbGwgMTcyIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3ByZWFkKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZSwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIG9mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGUobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZSwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2Zmc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgbmJ5dGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX250cF9nZXR0aW1lKGxvbmcgbG9uZyBudHZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfbnRwX2dldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwojaWYgZGVmaW5lZChOVFApIHx8ICFkZWZpbmVkKF9LRVJORUxfT1BUKQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbnRwX2FkanRpbWUobG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9udHBfYWRqdGltZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdHApOwojZWxzZQovKiBzeXNjYWxsIDE3NiBoYXMgYmVlbiBza2lwcGVkICovCiNlbmRpZgovKiBzeXNjYWxsIDE3NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMTc4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAxNzkgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDE4MCBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQobG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZWdpZChsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZWdpZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRldWlkKGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRldWlkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xmc19ibWFwdihsb25nIGxvbmcgZnNpZHAsIGxvbmcgbG9uZyBibGtpb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2NudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX2JtYXB2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2lvdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJsa2NudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZnNfbWFya3YobG9uZyBsb25nIGZzaWRwLCBsb25nIGxvbmcgYmxraW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xmc19tYXJrdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtpb3YsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBibGtjbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGZzX3NlZ2NsZWFuKGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VnbWVudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGZzX3NlZ2NsZWFuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlZ21lbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2xmc19zZWd3YWl0KGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9sZnNfc2Vnd2FpdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMTJfc3RhdDEyKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9zdGF0MTIobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xMl9mc3RhdDEyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTJfZnN0YXQxMihsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2xzdGF0MTIobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xMl9sc3RhdDEyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhdGhjb25mKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGF0aGNvbmYobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnBhdGhjb25mKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZwYXRoY29uZihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tvcHQyKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja29wdDIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxldmVsLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdmFsc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRybGltaXQobG9uZyBsb25nIHdoaWNoLCBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRybGltaXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcmxwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdChsb25nIGxvbmcgd2hpY2gsIGxvbmcgbG9uZyBybHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJsaW1pdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2hpY2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzEyX2dldGRpcmVudHJpZXMobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBiYXNlcCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzEyX2dldGRpcmVudHJpZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJhc2VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21tYXAobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90LCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW1hcChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgcG9zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc3lzY2FsbChsb25nIGxvbmcgY29kZSwgbG9uZyBsb25nIGFyZzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzEsIGxvbmcgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmczLCBsb25nIGxvbmcgYXJnNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnNSwgbG9uZyBsb25nIGFyZzYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc3lzY2FsbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzAsIGxvbmcgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnMiwgbG9uZyBsb25nIGFyZzMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmc0LCBsb25nIGxvbmcgYXJnNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFyZzYsIGxvbmcgbG9uZyBhcmc3KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xzZWVrKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZWVrKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB3aGVuY2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdHJ1bmNhdGUobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90cnVuY2F0ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Z0cnVuY2F0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N5c2N0bChsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG5hbWVsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkdiwgbG9uZyBsb25nIG9sZGxlbnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV3diwgbG9uZyBsb25nIG5ld2xlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zeXNjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWVsZW4sIGxvbmcgbG9uZyBvbGR2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbGRsZW5wLCBsb25nIGxvbmcgbmV3diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV3bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrKGxvbmcgbG9uZyBhZGRyLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9jayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bmxvY2sobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2sobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuZGVsZXRlKGxvbmcgbG9uZyBwYXRoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmRlbGV0ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfZnV0aW1lcyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Z1dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGdpZChsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVib290KGxvbmcgbG9uZyBvcHQsIGxvbmcgbG9uZyBib290c3RyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWJvb3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJvb3RzdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9sbChsb25nIGxvbmcgZmRzLCBsb25nIGxvbmcgbmZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BvbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZmRzLCBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZnNzeXMobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgYTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEyLCBsb25nIGxvbmcgYTMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE0LCBsb25nIGxvbmcgYTUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGE2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hZnNzeXMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYTEsIGxvbmcgbG9uZyBhMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGEzLCBsb25nIGxvbmcgYTQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhNSwgbG9uZyBsb25nIGE2KTsKLyogc3lzY2FsbCAyMTEgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxMiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjEzIGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTQgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxNSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE2IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyMTcgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDIxOCBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjE5IGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9fX3NlbWN0bChsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlbW51bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9fX3NlbWN0bChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZW1udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtZ2V0KGxvbmcgbG9uZyBrZXksIGxvbmcgbG9uZyBuc2VtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1nZXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5zZW1zLCBsb25nIGxvbmcgc2VtZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbW9wKGxvbmcgbG9uZyBzZW1pZCwgbG9uZyBsb25nIHNvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnNvcHMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbW9wKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzZW1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc29wcywgbG9uZyBsb25nIG5zb3BzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbWNvbmZpZyhsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtY29uZmlnKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNF9tc2djdGwobG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTRfbXNnY3RsKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNxaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dnZXQobG9uZyBsb25nIGtleSwgbG9uZyBsb25nIG1zZ2ZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnZ2V0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnc25kKGxvbmcgbG9uZyBtc3FpZCwgbG9uZyBsb25nIG1zZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ3N6LCBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNncCwgbG9uZyBsb25nIG1zZ3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3Jjdihsb25nIGxvbmcgbXNxaWQsIGxvbmcgbG9uZyBtc2dwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dzeiwgbG9uZyBsb25nIG1zZ3R5cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dyY3YobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNncCwgbG9uZyBsb25nIG1zZ3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNndHlwLCBsb25nIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWF0KGxvbmcgbG9uZyBzaG1pZCwgbG9uZyBsb25nIHNobWFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNobWFkZHIsIGxvbmcgbG9uZyBzaG1mbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE0X3NobWN0bChsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8xNF9zaG1jdGwobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaG1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWR0KGxvbmcgbG9uZyBzaG1hZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1kdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2htYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1nZXQobG9uZyBsb25nIGtleSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNobWZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZ2V0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLCBsb25nIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXR0aW1lKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Nsb2NrX2dldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19zZXR0aW1lKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2Nsb2NrX3NldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9jbG9ja19nZXRyZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9jcmVhdGUobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVyaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2NyZWF0ZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBldnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2RlbGV0ZShsb25nIGxvbmcgdGltZXJpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZGVsZXRlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF90aW1lcl9zZXR0aW1lKGxvbmcgbG9uZyB0aW1lcmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX3RpbWVyX3NldHRpbWUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX3RpbWVyX2dldHRpbWUobG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF90aW1lcl9nZXR0aW1lKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZhbHVlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyBsb25nIHRpbWVyaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9uYW5vc2xlZXAobG9uZyBsb25nIHJxdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbmFub3NsZWVwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBybXRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZkYXRhc3luYyhsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZkYXRhc3luYyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWxvY2thbGwobG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9ja2FsbChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXVubG9ja2FsbCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fc2lndGltZWR3YWl0KGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3NpZ3RpbWVkd2FpdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncXVldWVpbmZvKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdxdWV1ZWluZm8obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW9kY3RsKGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21vZGN0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX2luaXQobG9uZyBsb25nIHZhbHVlLCBsb25nIGxvbmcgaWRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9pbml0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpZHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fb3Blbihsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG9mbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV9vcGVuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mbGFnLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIGlkcCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV91bmxpbmsobG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3VubGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9jbG9zZShsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX2Nsb3NlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9wb3N0KGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fcG9zdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fd2FpdChsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19rc2VtX3dhaXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19rc2VtX3RyeXdhaXQobG9uZyBsb25nIGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fa3NlbV90cnl3YWl0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9nZXR2YWx1ZShsb25nIGxvbmcgaWQsIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fZ2V0dmFsdWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fa3NlbV9kZXN0cm95KGxvbmcgbG9uZyBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fZGVzdHJveShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2tzZW1fdGltZWR3YWl0KGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWJzdGltZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2tzZW1fdGltZWR3YWl0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFic3RpbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfb3Blbihsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIG9mbGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGF0dHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2ZsYWcsIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfY2xvc2UobG9uZyBsb25nIG1xZGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9jbG9zZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfdW5saW5rKGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV91bmxpbmsobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfZ2V0YXR0cihsb25nIGxvbmcgbXFkZXMsIGxvbmcgbG9uZyBtcXN0YXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX2dldGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1xc3RhdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9zZXRhdHRyKGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1xc3RhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9tcXN0YXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NldGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1xc3RhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvbXFzdGF0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX25vdGlmeShsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5vdGlmaWNhdGlvbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfbm90aWZ5KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5vdGlmaWNhdGlvbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9zZW5kKGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3ByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3NlbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3JlY2VpdmUobG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHJpbyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfcmVjZWl2ZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9tcV90aW1lZHNlbmQobG9uZyBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHJpbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRzZW5kKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwgbG9uZyBsb25nIG1zZ19sZW4sCiAgICBsb25nIGxvbmcgbXNnX3ByaW8sIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfbXFfdGltZWRyZWNlaXZlKAogICAgbG9uZyBsb25nIG1xZGVzLCBsb25nIGxvbmcgbXNnX3B0ciwgbG9uZyBsb25nIG1zZ19sZW4sIGxvbmcgbG9uZyBtc2dfcHJpbywKICAgIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX21xX3RpbWVkcmVjZWl2ZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgbG9uZyBsb25nIG1zZ19wcmlvLCBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwovKiBzeXNjYWxsIDI2NyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMjY4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAyNjkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wb3NpeF9yZW5hbWUobG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9yZW5hbWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb20sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N3YXBjdGwobG9uZyBsb25nIGNtZCwgbG9uZyBsb25nIGFyZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1pc2MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcsIGxvbmcgbG9uZyBtaXNjKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyhsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9nZXRkZW50cyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5oZXJpdChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmhlcml0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taW5oZXJpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLCBsb25nIGxvbmcgaW5oZXJpdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sY2htb2QobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2htb2QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1aWQsIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2x1dGltZXMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX2x1dGltZXMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21zeW5jMTMobG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21zeW5jMTMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4sIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19zdGF0MTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfX19mc3RhdDEzKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19mc3RhdDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzMwX19fbHN0YXQxMyhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfX19sc3RhdDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1Yik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NpZ2FsdHN0YWNrMTQobG9uZyBsb25nIG5zcywgbG9uZyBsb25nIG9zcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zaWdhbHRzdGFjazE0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvc3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX192Zm9yazE0KHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdmZvcmsxNChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfY2hvd24obG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmNob3duKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcG9zaXhfZmNob3duKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWlkLCBsb25nIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfbGNob3duKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9sY2hvd24obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVpZCwgbG9uZyBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzaWQobG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c2lkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19jbG9uZShsb25nIGxvbmcgZmxhZ3MsIGxvbmcgbG9uZyBzdGFjayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19jbG9uZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc3RhY2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmt0cmFjZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBvcHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmYWNzLCBsb25nIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ma3RyYWNlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHMsIGxvbmcgbG9uZyBmYWNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZHYobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgaW92cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92Y250LCBsb25nIGxvbmcgUEFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkdihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpb3ZwLCBsb25nIGxvbmcgaW92Y250LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgUEFELCBsb25nIGxvbmcgb2Zmc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZXYobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgaW92cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlvdmNudCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRldihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW92cCwgbG9uZyBsb25nIGlvdmNudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzE2X19fc2lnYWN0aW9uMTQobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMTZfX19zaWdhY3Rpb24xNChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaWdudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5zYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2lncGVuZGluZzE0KGxvbmcgbG9uZyBzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lncGVuZGluZzE0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdwcm9jbWFzazE0KGxvbmcgbG9uZyBob3csIGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9zZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lncHJvY21hc2sxNChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgaG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NpZ3N1c3BlbmQxNChsb25nIGxvbmcgc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NpZ3N1c3BlbmQxNChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8xNl9fX3NpZ3JldHVybjE0KGxvbmcgbG9uZyBzaWdjbnR4cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzE2X19fc2lncmV0dXJuMTQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2lnY250eHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRjd2QobG9uZyBsb25nIGJ1ZnAsIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0Y3dkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBidWZwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNocm9vdChsb25nIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaHJvb3QobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9maG9wZW4obG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhvcGVuKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9maHN0YXQobG9uZyBsb25nIGZocCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfMzBfZmhzdGF0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8yMF9maHN0YXRmcyhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX19fc2VtY3RsMTMobG9uZyBsb25nIHNlbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfX19fX3NlbWN0bDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbXNnY3RsMTMobG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX21zZ2N0bDEzKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19zaG1jdGwxMyhsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fc2htY3RsMTMobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2htaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaGZsYWdzKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaGZsYWdzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pc3NldHVnaWQodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaXNzZXR1Z2lkKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRyYWNlKGxvbmcgbG9uZyBsYWJlbCwgbG9uZyBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXRyYWNlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBsYWJlbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkZHIsIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y29udGV4dChsb25nIGxvbmcgdWNwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRjb250ZXh0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Y29udGV4dChsb25nIGxvbmcgdWNwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRjb250ZXh0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9jcmVhdGUobG9uZyBsb25nIHVjcCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19sd3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfY3JlYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB1Y3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfbHdwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZXhpdCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2V4aXQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3NlbGYodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zZWxmKGxvbmcgbG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF93YWl0KGxvbmcgbG9uZyB3YWl0X2ZvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGVwYXJ0ZWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FpdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgd2FpdF9mb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkZXBhcnRlZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX3N1c3BlbmQobG9uZyBsb25nIHRhcmdldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9zdXNwZW5kKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9jb250aW51ZShsb25nIGxvbmcgdGFyZ2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2NvbnRpbnVlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGFyZ2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfd2FrZXVwKGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3Bfd2FrZXVwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9nZXRwcml2YXRlKHZvaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZ2V0cHJpdmF0ZShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0cHJpdmF0ZShsb25nIGxvbmcgcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX3NldHByaXZhdGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2tpbGwobG9uZyBsb25nIHRhcmdldCwgbG9uZyBsb25nIHNpZ25vKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX2tpbGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZ25vKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3BfZGV0YWNoKGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZGV0YWNoKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayhsb25nIGxvbmcgdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJraGludCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19sd3BfcGFyayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFyaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmsobG9uZyBsb25nIHRhcmdldCwgbG9uZyBsb25nIGhpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfdW5wYXJrKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0YXJnZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGhpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF91bnBhcmtfYWxsKGxvbmcgbG9uZyB0YXJnZXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBudGFyZ2V0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF91bnBhcmtfYWxsKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0YXJnZXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbnRhcmdldHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19sd3Bfc2V0bmFtZShsb25nIGxvbmcgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fbHdwX3NldG5hbWUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX2x3cF9nZXRuYW1lKGxvbmcgbG9uZyB0YXJnZXQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19sd3BfZ2V0bmFtZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdGFyZ2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fbHdwX2N0bChsb25nIGxvbmcgZmVhdHVyZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWRkcmVzcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX2x3cF9jdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZlYXR1cmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhZGRyZXNzKTsKLyogc3lzY2FsbCAzMjYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMyNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzI4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMjkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKAogICAgbG9uZyBsb25nIG5ld3YsIGxvbmcgbG9uZyBvbGR2LCBsb25nIGxvbmcgZmxhZ3MsCiAgICBsb25nIGxvbmcgc3RhY2tpbmZvX29mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3JlZ2lzdGVyKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5ld3YsIGxvbmcgbG9uZyBvbGR2LCBsb25nIGxvbmcgZmxhZ3MsCiAgICBsb25nIGxvbmcgc3RhY2tpbmZvX29mZnNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2Ffc3RhY2tzKGxvbmcgbG9uZyBudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGFja3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV9zdGFja3MobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBudW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc3RhY2tzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV9lbmFibGUodm9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX2VuYWJsZShsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV9zZXRjb25jdXJyZW5jeSgKICAgIGxvbmcgbG9uZyBjb25jdXJyZW5jeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzYwX3NhX3NldGNvbmN1cnJlbmN5KAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGNvbmN1cnJlbmN5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9zYV95aWVsZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNjBfc2FfeWllbGQobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNjBfc2FfcHJlZW1wdChsb25nIGxvbmcgc2FfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9zYV9wcmVlbXB0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNhX2lkKTsKLyogc3lzY2FsbCAzMzYgaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDMzNyBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzM4IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCAzMzkgaGFzIGJlZW4gc2tpcHBlZCAqLwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zaWdhY3Rpb25fc2lndHJhbXAobG9uZyBsb25nIHNpZ251bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuc2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3NhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRyYW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZlcnMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2lnYWN0aW9uX3NpZ3RyYW1wKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHNpZ251bSwgbG9uZyBsb25nIG5zYSwgbG9uZyBsb25nIG9zYSwKICAgIGxvbmcgbG9uZyB0cmFtcCwgbG9uZyBsb25nIHZlcnMpOwovKiBzeXNjYWxsIDM0MSBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzQyIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Jhc2N0bChsb25nIGxvbmcgYWRkciwgbG9uZyBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Jhc2N0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbiwgbG9uZyBsb25nIG9wKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2txdWV1ZSh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rcXVldWUobG9uZyBsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfa2V2ZW50KAogICAgbG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwgbG9uZyBsb25nIG5jaGFuZ2VzLCBsb25nIGxvbmcgZXZlbnRsaXN0LAogICAgbG9uZyBsb25nIG5ldmVudHMsIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfa2V2ZW50KAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwgbG9uZyBsb25nIG5jaGFuZ2VzLAogICAgbG9uZyBsb25nIGV2ZW50bGlzdCwgbG9uZyBsb25nIG5ldmVudHMsIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9zZXRwYXJhbShsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhcmFtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3NjaGVkX3NldHBhcmFtKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwb2xpY3ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXJhbXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3NjaGVkX2dldHBhcmFtKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBsaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGFyYW1zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fc2NoZWRfZ2V0cGFyYW0obG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhcmFtcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fc2NoZWRfc2V0YWZmaW5pdHkobG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9zZXRhZmZpbml0eShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNwdXNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fc2NoZWRfZ2V0YWZmaW5pdHkobG9uZyBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVzZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19zY2hlZF9nZXRhZmZpbml0eShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNwdXNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF95aWVsZCh2b2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF95aWVsZChsb25nIGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19zY2hlZF9wcm90ZWN0KGxvbmcgbG9uZyBwcmlvcml0eSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX3NjaGVkX3Byb3RlY3QobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHJpb3JpdHkpOwovKiBzeXNjYWxsIDM1MiBoYXMgYmVlbiBza2lwcGVkICovCi8qIHN5c2NhbGwgMzUzIGhhcyBiZWVuIHNraXBwZWQgKi8Kdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzeW5jX3JhbmdlKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN5bmNfcmFuZ2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXVpZGdlbihsb25nIGxvbmcgc3RvcmUsIGxvbmcgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXVpZGdlbihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgc3RvcmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2dldHZmc3N0YXQobG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWZzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfOTBfZ2V0dmZzc3RhdChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZnNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9zdGF0dmZzMShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX3N0YXR2ZnMxKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMShsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzkwX2ZzdGF0dmZzMShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfMzBfZmhzdGF0dmZzMShsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzMwX2Zoc3RhdHZmczEobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJjdGwobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cmN0bChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfc2V0X2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX3NldF9maWxlKAogICAgbG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLCBsb25nIGxvbmcgYXR0cm5hbWUsCiAgICBsb25nIGxvbmcgZGF0YSwgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX2dldF9maWxlKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9nZXRfZmlsZSgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgbG9uZyBsb25nIGRhdGEsIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9kZWxldGVfZmlsZShsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9mZChsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfZmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZ2V0X2ZkKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2dldF9mZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9kZWxldGVfZmQobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZGVsZXRlX2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leHRhdHRyX3NldF9saW5rKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9zZXRfbGluaygKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwgbG9uZyBsb25nIGF0dHJuYW1lLAogICAgbG9uZyBsb25nIGRhdGEsIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9nZXRfbGluayhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZ2V0X2xpbmsoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsIGxvbmcgbG9uZyBhdHRybmFtZSwKICAgIGxvbmcgbG9uZyBkYXRhLCBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhdHRybmFtZXNwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfZGVsZXRlX2xpbmsobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9saXN0X2ZkKGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leHRhdHRyX2xpc3RfZmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXh0YXR0cl9saXN0X2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXh0YXR0cl9saXN0X2ZpbGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cm5hbWVzcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmJ5dGVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYnl0ZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4dGF0dHJfbGlzdF9saW5rKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGF0dHJuYW1lc3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ieXRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfcHNlbGVjdChsb25nIGxvbmcgbmQsIGxvbmcgbG9uZyBpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9wc2VsZWN0KGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG91LCBsb25nIGxvbmcgZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9wb2xsdHMobG9uZyBsb25nIGZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5mZHMsIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9wb2xsdHMoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmRzLCBsb25nIGxvbmcgbmZkcywgbG9uZyBsb25nIHRzLCBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHNldHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzZXR4YXR0cihsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc2V0eGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGdldHhhdHRyKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sZ2V0eGF0dHIobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZnZXR4YXR0cihsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSwgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lLCBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpc3R4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xsaXN0eGF0dHIobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGxpc3R4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaXN0LCBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbGlzdHhhdHRyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbGlzdHhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBsaXN0LCBsb25nIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW1vdmV4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbW92ZXhhdHRyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xyZW1vdmV4YXR0cihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnJlbW92ZXhhdHRyKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZyZW1vdmV4YXR0cihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMChsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX3N0YXQzMChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAobG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2ZzdGF0MzAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzYik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19sc3RhdDMwKGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2xzdGF0MzAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0ZGVudHMzMChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGRlbnRzMzAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9zaXhfZmFkdmlzZShsb25nIGxvbmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X2ZhZHZpc2UobG9uZyBsb25nIHJlcywgbG9uZyBsb25nKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF8zMF9fX2Zoc3RhdDMwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChsb25nIGxvbmcgbnR2cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY29tcGF0XzUwX19fbnRwX2dldHRpbWUzMChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zb2NrZXQzMChsb25nIGxvbmcgZG9tYWluLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHByb3RvY29sKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NvY2tldDMwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwcm90b2NvbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldGZoMzAobG9uZyBsb25nIGZuYW1lLCBsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2dldGZoMzAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhwLCBsb25nIGxvbmcgZmhfc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zob3BlbjQwKGxvbmcgbG9uZyBmaHAsIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhvcGVuNDAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF85MF9maHN0YXR2ZnMxKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb21wYXRfNTBfX19maHN0YXQ0MChsb25nIGxvbmcgZmhwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZoX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF81MF9fX2Zoc3RhdDQwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX2NhbmNlbChsb25nIGxvbmcgZmlsZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fY2FuY2VsKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaWxkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19lcnJvcihsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZXJyb3IobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGFpb2NicCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fZnN5bmMobG9uZyBsb25nIG9wLCBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fZnN5bmMobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Fpb19yZWFkKGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Fpb19yZWFkKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWlvX3JldHVybihsb25nIGxvbmcgYWlvY2JwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9haW9fcmV0dXJuKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY29tcGF0XzUwX2Fpb19zdXNwZW5kKGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb21wYXRfNTBfYWlvX3N1c3BlbmQobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9haW9fd3JpdGUobG9uZyBsb25nIGFpb2NicCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWlvX3dyaXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBhaW9jYnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlvX2xpc3Rpbyhsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LCBsb25nIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saW9fbGlzdGlvKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNpZyk7Ci8qIHN5c2NhbGwgNDA3IGhhcyBiZWVuIHNraXBwZWQgKi8KLyogc3lzY2FsbCA0MDggaGFzIGJlZW4gc2tpcHBlZCAqLwovKiBzeXNjYWxsIDQwOSBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21vdW50NTAobG9uZyBsb25nIHR5cGUsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRhdGFfbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX21vdW50NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGF0YV9sZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXJlbWFwKGxvbmcgbG9uZyBvbGRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfc2l6ZSwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcmVtYXAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG9sZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5ld19zaXplLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHNldF9jcmVhdGUobG9uZyBsb25nIHBzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfY3JlYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfZGVzdHJveShsb25nIGxvbmcgcHNpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHNldF9kZXN0cm95KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZXRfYXNzaWduKGxvbmcgbG9uZyBwc2lkLCBsb25nIGxvbmcgY3B1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZXRfYXNzaWduKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwc2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjcHVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX3BzZXRfYmluZChsb25nIGxvbmcgaWR0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmlyc3RfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZWNvbmRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwc2lkLCBsb25nIGxvbmcgb3BzaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19wc2V0X2JpbmQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGlkdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaXJzdF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZWNvbmRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcHNpZCwgbG9uZyBsb25nIG9wc2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fcG9zaXhfZmFkdmlzZTUwKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIFBBRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFkdmljZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19wb3NpeF9mYWR2aXNlNTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBvZmZzZXQsIGxvbmcgbG9uZyBsZW4sCiAgICBsb25nIGxvbmcgYWR2aWNlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2VsZWN0NTAobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvdSwgbG9uZyBsb25nIGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2VsZWN0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGluLCBsb25nIGxvbmcgb3UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHRpbWVvZmRheTUwKGxvbmcgbG9uZyB0cCwgbG9uZyBsb25nIHR6cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXR0aW1lb2ZkYXk1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHpwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2V0dGltZW9mZGF5NTAobG9uZyBsb25nIHR2LCBsb25nIGxvbmcgdHpwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NldHRpbWVvZmRheTUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyB0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0enApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX191dGltZXM1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fdXRpbWVzNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FkanRpbWU1MChsb25nIGxvbmcgZGVsdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWRqdGltZTUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBkZWx0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb2xkZGVsdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sZnNfc2Vnd2FpdDUwKGxvbmcgbG9uZyBmc2lkcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbGZzX3NlZ3dhaXQ1MChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnNpZHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Z1dGltZXM1MChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Z1dGltZXM1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sdXRpbWVzNTAobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2x1dGltZXM1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3NldGl0aW1lcjUwKGxvbmcgbG9uZyB3aGljaCwgbG9uZyBsb25nIGl0diwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fc2V0aXRpbWVyNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGl0diwgbG9uZyBsb25nIG9pdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19nZXRpdGltZXI1MChsb25nIGxvbmcgd2hpY2gsIGxvbmcgbG9uZyBpdHYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0aXRpbWVyNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGl0dik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHRpbWU1MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfZ2V0dGltZTUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX3NldHRpbWU1MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fY2xvY2tfc2V0dGltZTUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Nsb2NrX2dldHJlczUwKGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Nsb2NrX2dldHJlczUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19uYW5vc2xlZXA1MChsb25nIGxvbmcgcnF0cCwgbG9uZyBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbmFub3NsZWVwNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHJxdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcm10cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX19fc2lndGltZWR3YWl0NTAobG9uZyBsb25nIHNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19fX3NpZ3RpbWVkd2FpdDUwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX21xX3RpbWVkc2VuZDUwKGxvbmcgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX3ByaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19tcV90aW1lZHNlbmQ1MCgKICAgIGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBtcWRlcywgbG9uZyBsb25nIG1zZ19wdHIsIGxvbmcgbG9uZyBtc2dfbGVuLAogICAgbG9uZyBsb25nIG1zZ19wcmlvLCBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tcV90aW1lZHJlY2VpdmU1MChsb25nIGxvbmcgbXFkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtc2dfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbXNnX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1zZ19wcmlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXFfdGltZWRyZWNlaXZlNTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgbXFkZXMsIGxvbmcgbG9uZyBtc2dfcHRyLCBsb25nIGxvbmcgbXNnX2xlbiwKICAgIGxvbmcgbG9uZyBtc2dfcHJpbywgbG9uZyBsb25nIGFic190aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsobG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NvbXBhdF82MF9fbHdwX3BhcmsobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB1bnBhcmtoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fa2V2ZW50NTAobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgY2hhbmdlbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5jaGFuZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXZlbnRsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmV2ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fa2V2ZW50NTAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBjaGFuZ2VsaXN0LCBsb25nIGxvbmcgbmNoYW5nZXMsCiAgICBsb25nIGxvbmcgZXZlbnRsaXN0LCBsb25nIGxvbmcgbmV2ZW50cywgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19wc2VsZWN0NTAobG9uZyBsb25nIG5kLCBsb25nIGxvbmcgaW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3UsIGxvbmcgbG9uZyBleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0cywgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcHNlbGVjdDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaW4sIGxvbmcgbG9uZyBvdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZXgsIGxvbmcgbG9uZyB0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3BvbGx0czUwKGxvbmcgbG9uZyBmZHMsIGxvbmcgbG9uZyBuZmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHMsIGxvbmcgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3BvbGx0czUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmZkcywgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19haW9fc3VzcGVuZDUwKGxvbmcgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2Fpb19zdXNwZW5kNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3N0YXQ1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3N0YXQ1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19mc3RhdDUwKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHNiKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2ZzdGF0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19sc3RhdDUwKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdWIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbHN0YXQ1MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHViKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fX19zZW1jdGw1MChsb25nIGxvbmcgc2VtaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHNlbW51bSwgbG9uZyBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX19fc2VtY3RsNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHNlbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2VtbnVtLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fc2htY3RsNTAobG9uZyBsb25nIHNobWlkLCBsb25nIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3NobWN0bDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBzaG1pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbWQsIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19tc2djdGw1MChsb25nIGxvbmcgbXNxaWQsIGxvbmcgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fbXNnY3RsNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIG1zcWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNtZCwgbG9uZyBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2dldHJ1c2FnZTUwKGxvbmcgbG9uZyB3aG8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZ2V0cnVzYWdlNTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHdobywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBydXNhZ2UpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX190aW1lcl9zZXR0aW1lNTAobG9uZyBsb25nIHRpbWVyaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgb3ZhbHVlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX3RpbWVyX3NldHRpbWU1MChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0aW1lcmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX3RpbWVyX2dldHRpbWU1MChsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX190aW1lcl9nZXR0aW1lNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZXJpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdmFsdWUpOwojaWYgZGVmaW5lZChOVFApIHx8ICFkZWZpbmVkKF9LRVJORUxfT1BUKQp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19udHBfZ2V0dGltZTUwKGxvbmcgbG9uZyBudHZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX250cF9nZXR0aW1lNTAobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG50dnApOwojZWxzZQovKiBzeXNjYWxsIDQ0OCBoYXMgYmVlbiBza2lwcGVkICovCiNlbmRpZgp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX193YWl0NDUwKGxvbmcgbG9uZyBwaWQsIGxvbmcgbG9uZyBzdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG9wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJ1c2FnZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX193YWl0NDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGF0dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnVzYWdlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fbWtub2Q1MChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGRldik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19ta25vZDUwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSwgbG9uZyBsb25nIGRldik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2Zoc3RhdDUwKGxvbmcgbG9uZyBmaHAsIGxvbmcgbG9uZyBmaF9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgc2IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhzdGF0NTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZocCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaF9zaXplLCBsb25nIGxvbmcgc2IpOwovKiBzeXNjYWxsIDQ1MiBoYXMgYmVlbiBza2lwcGVkICovCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlMihsb25nIGxvbmcgZmlsZGVzLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUyKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaWxkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDMobG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyB0bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAzKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfa3F1ZXVlMShsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2txdWV1ZTEobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhY2NlcHQobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYW5hbWVsZW4sIGxvbmcgbG9uZyBtYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BhY2NlcHQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZSwgbG9uZyBsb25nIGFuYW1lbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1hc2ssIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saW5rYXQobG9uZyBsb25nIGZkMSwgbG9uZyBsb25nIG5hbWUxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZDIsIGxvbmcgbG9uZyBuYW1lMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbmFtZTEsIGxvbmcgbG9uZyBmZDIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBuYW1lMiwgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbmFtZWF0KGxvbmcgbG9uZyBmcm9tZmQsIGxvbmcgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvZmQsIGxvbmcgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZyb21mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZnJvbSwgbG9uZyBsb25nIHRvZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZmlmb2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtmaWZvYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta25vZGF0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLCBsb25nIGxvbmcgUEFELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta25vZGF0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBQQUQsIGxvbmcgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXJhdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmFjY2Vzc2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFtb2RlLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFjY2Vzc2F0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyBhbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNobW9kYXQobG9uZyBsb25nIGZkLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBtb2RlLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNobW9kYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hvd25hdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG93bmVyLCBsb25nIGxvbmcgZ3JvdXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgb3duZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGdyb3VwLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZXhlY3ZlKGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIGFyZ3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZXhlY3ZlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhcmdwLCBsb25nIGxvbmcgZW52cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGF0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGF0KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVuc2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIsIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZW5zYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHRwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW5hdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvZmxhZ3MsIGxvbmcgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG9mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZGxpbmthdChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgYnVmc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWZzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdChsb25nIGxvbmcgcGF0aDEsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aDIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5bWxpbmthdChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGlua2F0KGxvbmcgbG9uZyBmZCwgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mdXRpbWVucyhsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyB0cHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdXRpbWVucyhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHRwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19xdW90YWN0bChsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIGFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fcXVvdGFjdGwobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXJncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wb3NpeF9zcGF3bihsb25nIGxvbmcgcGlkLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlX2FjdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cnAsIGxvbmcgbG9uZyBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGVudnApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bvc2l4X3NwYXduKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZpbGVfYWN0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYXR0cnAsIGxvbmcgbG9uZyBhcmd2LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBlbnZwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3ZtbXNnKGxvbmcgbG9uZyBzLCBsb25nIGxvbmcgbW1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB2bGVuLCBsb25nIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1tc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1tc2csIGxvbmcgbG9uZyB2bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2cobG9uZyBsb25nIHMsIGxvbmcgbG9uZyBtbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHZsZW4sIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZG1tc2cobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG1tc2csIGxvbmcgbG9uZyB2bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19uYW5vc2xlZXAobG9uZyBsb25nIGNsb2NrX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcm10cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfbmFub3NsZWVwKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBjbG9ja19pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcnF0cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19fbHdwX3Bhcms2MChsb25nIGxvbmcgY2xvY2tfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdW5wYXJrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaGludCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHVucGFya2hpbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fX2x3cF9wYXJrNjAoCiAgICBsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgY2xvY2tfaWQsIGxvbmcgbG9uZyBmbGFncywgbG9uZyBsb25nIHRzLAogICAgbG9uZyBsb25nIHVucGFyaywgbG9uZyBsb25nIGhpbnQsIGxvbmcgbG9uZyB1bnBhcmtoaW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Bvc2l4X2ZhbGxvY2F0ZShsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBvcywgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcG9zaXhfZmFsbG9jYXRlKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIHBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZGlzY2FyZChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBQQUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcG9zLCBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mZGlzY2FyZChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFBBRCwgbG9uZyBsb25nIHBvcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXQ2KGxvbmcgbG9uZyBpZHR5cGUsIGxvbmcgbG9uZyBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBzdGF0dXMsIGxvbmcgbG9uZyBvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHdydSwgbG9uZyBsb25nIGluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXQ2KGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBpZHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlkLCBsb25nIGxvbmcgc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBvcHRpb25zLCBsb25nIGxvbmcgd3J1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKGxvbmcgbG9uZyBpZHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgY2xvY2tfaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2dldGNwdWNsb2NraWQyKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGlkdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGNsb2NrX2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZ2V0dmZzc3RhdDkwKGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19nZXR2ZnNzdGF0OTAobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19zdGF0dmZzMTkwKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19zdGF0dmZzMTkwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLCBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19mc3RhdHZmczE5MChsb25nIGxvbmcgZmQsIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19mc3RhdHZmczE5MChsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fZmhzdGF0dmZzMTkwKGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmhfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fZmhzdGF0dmZzMTkwKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBmaHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGZoX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2xpbmsobG9uZyBsb25nIHBhdGgsIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2dldF9saW5rKGxvbmcgbG9uZyByZXMsIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX3NldF9saW5rKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9zZXRfbGluayhsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9kZWxldGVfbGluayhsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9kZWxldGVfbGluayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2FjbGNoZWNrX2xpbmsobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfYWNsY2hlY2tfbGluayhsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX19fYWNsX2dldF9maWxlKGxvbmcgbG9uZyBwYXRoLCBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9nZXRfZmlsZShsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9zZXRfZmlsZShsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZpbGUobG9uZyBsb25nIHJlcywgbG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZ2V0X2ZkKGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLCBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZ2V0X2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfc2V0X2ZkKGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLCBsb25nIGxvbmcgYWNscCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfc2V0X2ZkKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfZGVsZXRlX2ZpbGUobG9uZyBsb25nIHBhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfX19hY2xfZGVsZXRlX2ZpbGUobG9uZyBsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9fX2FjbF9kZWxldGVfZmQobG9uZyBsb25nIGZpbGVkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX19fYWNsX2RlbGV0ZV9mZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgZmlsZWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmlsZShsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19maWxlKGxvbmcgbG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIGFjbHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfX19hY2xfYWNsY2hlY2tfZmQobG9uZyBsb25nIGZpbGVkZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9fX2FjbF9hY2xjaGVja19mZChsb25nIGxvbmcgcmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBmaWxlZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbG9uZyBhY2xwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xwYXRoY29uZihsb25nIGxvbmcgcGF0aCwgbG9uZyBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xwYXRoY29uZihsb25nIGxvbmcgcmVzLCBsb25nIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsb25nIG5hbWUpOwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gLy8gZXh0ZXJuICJDIgojZW5kaWYKCi8vIERPIE5PVCBFRElUISBUSElTIEZJTEUgSEFTIEJFRU4gR0VORVJBVEVEIQoKI2VuZGlmIC8vIFNBTklUSVpFUl9ORVRCU0RfU1lTQ0FMTF9IT09LU19ICgBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvY29tbW9uL2ZpbGVfdXRpbHMuY2MAQ2hlY2sgZmFpbGVkOiBoYW5kbGUgIT0gbnVsbHB0cgBreXRoZQAyACc6IABFcnJvciByZXZlcnNlIGNvbXBpbGluZyAnAEJhZCBoZXggZGlnaXQgAFs6YXNjaWk6XQAlZC4gJXMKAHx8AFN0YXRlU2F2ZXIgZmFpbGVkIHRvIHJlc3RvcmUgc3RhdGUuACBhcmcgAD9QPABCcmFobWkARG9ncmEASGFuAE0AUnVuaWMAY2xvY2tfZ2V0dGltZSgpIGZhaWxlZAAvcHJvYy9zZWxmL3Rhc2svJWQvbWFwcwBpbnRlcm5hbCBlcnJvcgA6OgB1bnNpZ25lZCBsb25nIGxvbmcAX19pbnQxMjgAcGwAPQBzegBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3RhdHVzL3N0YXR1cy5jYwBVbmtub3duIGVzY2FwZSBzZXF1ZW5jZTogXAAsIGxlbmd0aCA9IAAobmlsKQBuYW4AVHJ5TG9jayBzdWNjZWVkZWQgAC91c3Ivc2hhcmUvem9uZWluZm8Aa3l0aGUucHJvdG8uVk5hbWUubGFuZ3VhZ2UAa3l0aGUucHJvdG8uRW50cnkuZmFjdF9uYW1lAGt5dGhlLnByb3RvLlNjYW5SZXF1ZXN0LmVkZ2Vfa2luZABjKystY3BwLW91dHB1dABub19idWlsdGluAG5vX21hdGhfYnVpbHRpbgBPYmpDWFhTeXN0ZW0ALyo9PT0tLS0tLS0tIGF2eDUxMnZwaW50ZXJzZWN0aW50cmluLmggLSBWUDJJTlRFUlNFQ1QgaW50cmluc2ljcyAtLS0tLS0tLS0tLS09PT0KICoKICoKICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weQogKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwgdG8gZGVhbAogKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzCiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGwKICogY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAqCiAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgogKgogKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgogKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTgogKiBUSEUgU09GVFdBUkUuCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydnAyaW50ZXJzZWN0Lmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfQVZYNTEyVlAySU5URVJTRUNUX0gKI2RlZmluZSBfQVZYNTEyVlAySU5URVJTRUNUX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJhdng1MTJ2cDJpbnRlcnNlY3QiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKLy8vIFN0b3JlLCBpbiBhbiBldmVuL29kZCBwYWlyIG9mIG1hc2sgcmVnaXN0ZXJzLCB0aGUgaW5kaWNhdG9ycyBvZiB0aGUKLy8vIGxvY2F0aW9ucyBvZiB2YWx1ZSBtYXRjaGVzIGJldHdlZW4gZHdvcmRzIGluIG9wZXJhbmRzIF9fYSBhbmQgX19iLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQMklOVEVSU0VDVEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGkzMl0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGkzMl0KLy8vIFxwYXJhbSBfX20wCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gMTYtYml0IG1hc2sKLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIHBvaW50ZXIgcG9pbnQgdG8gMTYtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyXzJpbnRlcnNlY3RfZXBpMzIoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iLCBfX21tYXNrMTYgKl9fbTAsIF9fbW1hc2sxNiAqX19tMSkgewogIF9fYnVpbHRpbl9pYTMyX3ZwMmludGVyc2VjdF9kXzUxMigoX192MTZzaSlfX2EsIChfX3YxNnNpKV9fYiwgX19tMCwgX19tMSk7Cn0KCi8vLyBTdG9yZSwgaW4gYW4gZXZlbi9vZGQgcGFpciBvZiBtYXNrIHJlZ2lzdGVycywgdGhlIGluZGljYXRvcnMgb2YgdGhlCi8vLyBsb2NhdGlvbnMgb2YgdmFsdWUgbWF0Y2hlcyBiZXR3ZWVuIHF1YWR3b3JkcyBpbiBvcGVyYW5kcyBfX2EgYW5kIF9fYi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUDJJTlRFUlNFQ1RRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbOCB4IGk2NF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFs4IHggaTY0XQovLy8gXHBhcmFtIF9fbTAKLy8vICAgIEEgcG9pbnRlciBwb2ludCB0byA4LWJpdCBtYXNrCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSBwb2ludGVyIHBvaW50IHRvIDgtYml0IG1hc2sKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyXzJpbnRlcnNlY3RfZXBpNjQoX19tNTEyaSBfX2EsIF9fbTUxMmkgX19iLCBfX21tYXNrOCAqX19tMCwgX19tbWFzazggKl9fbTEpIHsKICBfX2J1aWx0aW5faWEzMl92cDJpbnRlcnNlY3RfcV81MTIoKF9fdjhkaSlfX2EsIChfX3Y4ZGkpX19iLCBfX20wLCBfX20xKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgBibWkyaW50cmluLmgALyo9PT0tLS0tIGYxNmNpbnRyaW4uaCAtIEYxNkMgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGYxNmNpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRjE2Q0lOVFJJTl9ICiNkZWZpbmUgX19GMTZDSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMxMjggXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZjE2YyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZjE2YyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygyNTYpKSkKCi8qIE5PVEU6IEludGVsIGRvY3VtZW50cyB0aGUgMTI4LWJpdCB2ZXJzaW9ucyBvZiB0aGVzZSBhcyBiZWluZyBpbiBlbW1pbnRyaW4uaCwKICogYnV0IHRoYXQncyBiZWNhdXNlIGljYyBjYW4gZW11bGF0ZSB0aGVzZSB3aXRob3V0IGYxNmMgdXNpbmcgYSBsaWJyYXJ5IGNhbGwuCiAqIFNpbmNlIHdlIGRvbid0IGRvIHRoYXQgbGV0J3MgbGVhdmUgdGhlc2UgaW4gZjE2Y2ludHJpbi5oLgogKi8KCi8vLyBDb252ZXJ0cyBhIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZSBpbnRvIGEgMzItYml0IGZsb2F0Ci8vLyAgICB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUEgyUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZS4KLy8vIFxyZXR1cm5zIFRoZSBjb252ZXJ0ZWQgMzItYml0IGZsb2F0IHZhbHVlLgpzdGF0aWMgX19pbmxpbmUgZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9jdnRzaF9zcyh1bnNpZ25lZCBzaG9ydCBfX2EpCnsKICBfX3Y4aGkgX192ID0geyhzaG9ydClfX2EsIDAsIDAsIDAsIDAsIDAsIDAsIDB9OwogIF9fdjRzZiBfX3IgPSBfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMoX192KTsKICByZXR1cm4gX19yWzBdOwp9CgovLy8gQ29udmVydHMgYSAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdCB2YWx1ZSB0byBhIDE2LWJpdAovLy8gICAgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyB1bnNpZ25lZCBzaG9ydCBfY3Z0c3Nfc2goZmxvYXQgYSwgY29uc3QgaW50IGltbSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMlBIIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMzItYml0IHNpbmdsZS1wcmVjaXNpb24gZmxvYXQgdmFsdWUgdG8gYmUgY29udmVydGVkIHRvIGEgMTYtYml0Ci8vLyAgICBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZS4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250cm9sbGluZyByb3VuZGluZyB1c2luZyBiaXRzIFsyOjBdOiBcbgovLy8gICAgMDAwOiBOZWFyZXN0IFxuCi8vLyAgICAwMDE6IERvd24gXG4KLy8vICAgIDAxMDogVXAgXG4KLy8vICAgIDAxMTogVHJ1bmNhdGUgXG4KLy8vICAgIDFYWDogVXNlIE1YQ1NSLlJDIGZvciByb3VuZGluZwovLy8gXHJldHVybnMgVGhlIGNvbnZlcnRlZCAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWUuCiNkZWZpbmUgX2N2dHNzX3NoKGEsIGltbSkgXAogICgodW5zaWduZWQgc2hvcnQpKCgoX192OGhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaCgoX192NHNmKXthLCAwLCAwLCAwfSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbW0pKSlbMF0pKQoKLy8vIENvbnZlcnRzIGEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAzMi1iaXQgZmxvYXQgdmFsdWVzIGludG8gYQovLy8gICAgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fY3Z0cHNfcGgoX19tMTI4IGEsIGNvbnN0IGludCBpbW0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQUzJQSCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIGNvbnRhaW5pbmcgMzItYml0IGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBpbW0KLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250cm9sbGluZyByb3VuZGluZyB1c2luZyBiaXRzIFsyOjBdOiBcbgovLy8gICAgMDAwOiBOZWFyZXN0IFxuCi8vLyAgICAwMDE6IERvd24gXG4KLy8vICAgIDAxMDogVXAgXG4KLy8vICAgIDAxMTogVHJ1bmNhdGUgXG4KLy8vICAgIDFYWDogVXNlIE1YQ1NSLlJDIGZvciByb3VuZGluZwovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIGNvbnZlcnRlZCAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQKLy8vICAgIHZhbHVlcy4gVGhlIGxvd2VyIDY0IGJpdHMgYXJlIHVzZWQgdG8gc3RvcmUgdGhlIGNvbnZlcnRlZCAxNi1iaXQKLy8vICAgIGhhbGYtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KI2RlZmluZSBfbW1fY3Z0cHNfcGgoYSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZjdnRwczJwaCgoX192NHNmKShfX20xMjgpKGEpLCAoaW1tKSkpCgovLy8gQ29udmVydHMgYSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdAovLy8gICAgdmFsdWVzIGludG8gYSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDMyLWJpdCBmbG9hdCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBIMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuIFRoZSBsb3dlcgovLy8gICAgNjQgYml0cyBhcmUgdXNlZCBpbiB0aGUgY29udmVyc2lvbi4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyBjb252ZXJ0ZWQgZmxvYXQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cGhfcHMoX19tMTI4aSBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92Y3Z0cGgycHMoKF9fdjhoaSlfX2EpOwp9CgovLy8gQ29udmVydHMgYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3IKLy8vICAgIGNvbnRhaW5pbmcgMTYtYml0IGhhbGYtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tMjU2X2N2dHBzX3BoKF9fbTI1NiBhLCBjb25zdCBpbnQgaW1tKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUUFMyUEggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBjb250YWluaW5nIDMyLWJpdCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcyB0byBiZQovLy8gICAgY29udmVydGVkIHRvIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gaW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgY29udHJvbGxpbmcgcm91bmRpbmcgdXNpbmcgYml0cyBbMjowXTogXG4KLy8vICAgIDAwMDogTmVhcmVzdCBcbgovLy8gICAgMDAxOiBEb3duIFxuCi8vLyAgICAwMTA6IFVwIFxuCi8vLyAgICAwMTE6IFRydW5jYXRlIFxuCi8vLyAgICAxWFg6IFVzZSBNWENTUi5SQyBmb3Igcm91bmRpbmcKLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIDE2LWJpdCBoYWxmLXByZWNpc2lvbgovLy8gICAgZmxvYXQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9jdnRwc19waChhLCBpbW0pIFwKICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92Y3Z0cHMycGgyNTYoKF9fdjhzZikoX19tMjU2KShhKSwgKGltbSkpKQoKLy8vIENvbnZlcnRzIGEgMTI4LWJpdCB2ZWN0b3IgY29udGFpbmluZyAxNi1iaXQgaGFsZi1wcmVjaXNpb24gZmxvYXQKLy8vICAgIHZhbHVlcyBpbnRvIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBIMlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBjb250YWluaW5nIDE2LWJpdCBoYWxmLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMgdG8gYmUKLy8vICAgIGNvbnZlcnRlZCB0byAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgMzItYml0Ci8vLyAgICBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0IHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBoX3BzKF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfdmN2dHBoMnBzMjU2KChfX3Y4aGkpX19hKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19GMTZDSU5UUklOX0ggKi8KAGhleGFnb25fY2lyY19icmV2X2ludHJpbnNpY3MuaAAvKj09PS0tLS0gbW1pbnRyaW4uaCAtIE1NWCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fTU1JTlRSSU5fSAojZGVmaW5lIF9fTU1JTlRSSU5fSAoKdHlwZWRlZiBsb25nIGxvbmcgX19tNjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpLCBfX2FsaWduZWRfXyg4KSkpOwoKdHlwZWRlZiBsb25nIGxvbmcgX192MWRpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwp0eXBlZGVmIGludCBfX3Yyc2kgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CnR5cGVkZWYgc2hvcnQgX192NGhpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwp0eXBlZGVmIGNoYXIgX192OHFpIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1teCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKLy8vIENsZWFycyB0aGUgTU1YIHN0YXRlIGJ5IHNldHRpbmcgdGhlIHN0YXRlIG9mIHRoZSB4ODcgc3RhY2sgcmVnaXN0ZXJzCi8vLyAgICB0byBlbXB0eS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFTU1TIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIm1teCIpKSkKX21tX2VtcHR5KHZvaWQpCnsKICAgIF9fYnVpbHRpbl9pYTMyX2VtbXMoKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIHNldHRpbmcgdGhlIGxvd2VyIDMyIGJpdHMgdG8gdGhlCi8vLyAgICB2YWx1ZSBvZiB0aGUgMzItYml0IGludGVnZXIgcGFyYW1ldGVyIGFuZCBzZXR0aW5nIHRoZSB1cHBlciAzMiBiaXRzIHRvIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGxvd2VyIDMyIGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlCi8vLyAgICBwYXJhbWV0ZXIuIFRoZSB1cHBlciAzMiBiaXRzIGFyZSBzZXQgdG8gMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTMyX3NpNjQoaW50IF9faSkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92MnNpKF9faSwgMCk7Cn0KCi8vLyBSZXR1cm5zIHRoZSBsb3dlciAzMiBiaXRzIG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGFzIGEgMzItYml0Ci8vLyAgICBzaWduZWQgaW50ZWdlci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBNT1ZEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDMyLWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZSBjb250YWluaW5nIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRzaTY0X3NpMzIoX19tNjQgX19tKQp7CiAgICByZXR1cm4gX19idWlsdGluX2lhMzJfdmVjX2V4dF92MnNpKChfX3Yyc2kpX19tLCAwKTsKfQoKLy8vIENhc3RzIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gTU9WUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc2FtZSBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlCi8vLyAgICBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY3Z0c2k2NF9tNjQobG9uZyBsb25nIF9faSkKewogICAgcmV0dXJuIChfX202NClfX2k7Cn0KCi8vLyBDYXN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IE1PVlEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IHNpZ25lZCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jdnRtNjRfc2k2NChfX202NCBfX20pCnsKICAgIHJldHVybiAobG9uZyBsb25nKV9fbTsKfQoKLy8vIENvbnZlcnRzIDE2LWJpdCBzaWduZWQgaW50ZWdlcnMgZnJvbSBib3RoIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgcGFyYW1ldGVycyBvZiBbNCB4IGkxNl0gaW50byA4LWJpdCBzaWduZWQgaW50ZWdlciB2YWx1ZXMsIGFuZCBjb25zdHJ1Y3RzCi8vLyAgICBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBhcyB0aGUgcmVzdWx0LiBQb3NpdGl2ZSB2YWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgdmFsdWVzIGxlc3MgdGhhbiAweDgwCi8vLyAgICBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFDS1NTV0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4KLy8vICAgIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4gMHg4MCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAuIFRoZSBjb252ZXJ0ZWQKLy8vICAgIFs0IHggaThdIHZhbHVlcyBhcmUgd3JpdHRlbiB0byB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4gRWFjaCAxNi1iaXQgZWxlbWVudCBpcyB0cmVhdGVkIGFzIGEKLy8vICAgIDE2LWJpdCBzaWduZWQgaW50ZWdlciBhbmQgaXMgY29udmVydGVkIHRvIGFuIDgtYml0IHNpZ25lZCBpbnRlZ2VyIHdpdGgKLy8vICAgIHNhdHVyYXRpb24uIFBvc2l0aXZlIHZhbHVlcyBncmVhdGVyIHRoYW4gMHg3RiBhcmUgc2F0dXJhdGVkIHRvIDB4N0YuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgY29udmVydGVkCi8vLyAgICBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2tzX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWNrc3N3YigoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBDb252ZXJ0cyAzMi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIHBhcmFtZXRlcnMgb2YgWzIgeCBpMzJdIGludG8gMTYtYml0IHNpZ25lZCBpbnRlZ2VyIHZhbHVlcywgYW5kIGNvbnN0cnVjdHMKLy8vICAgIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBhcyB0aGUgcmVzdWx0LiBQb3NpdGl2ZSB2YWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4KLy8vICAgIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQUNLU1NEVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uIEVhY2ggMzItYml0IGVsZW1lbnQgaXMgdHJlYXRlZCBhcyBhCi8vLyAgICAzMi1iaXQgc2lnbmVkIGludGVnZXIgYW5kIGlzIGNvbnZlcnRlZCB0byBhIDE2LWJpdCBzaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBQb3NpdGl2ZSB2YWx1ZXMgZ3JlYXRlciB0aGFuIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRi4KLy8vICAgIE5lZ2F0aXZlIHZhbHVlcyBsZXNzIHRoYW4gMHg4MDAwIGFyZSBzYXR1cmF0ZWQgdG8gMHg4MDAwLiBUaGUgY29udmVydGVkCi8vLyAgICBbMiB4IGkxNl0gdmFsdWVzIGFyZSB3cml0dGVuIHRvIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBFYWNoIDMyLWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMzItYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYSAxNi1iaXQgc2lnbmVkIGludGVnZXIgd2l0aAovLy8gICAgc2F0dXJhdGlvbi4gUG9zaXRpdmUgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuCi8vLyAgICBOZWdhdGl2ZSB2YWx1ZXMgbGVzcyB0aGFuIDB4ODAwMCBhcmUgc2F0dXJhdGVkIHRvIDB4ODAwMC4gVGhlIGNvbnZlcnRlZAovLy8gICAgWzIgeCBpMTZdIHZhbHVlcyBhcmUgd3JpdHRlbiB0byB0aGUgdXBwZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3BhY2tzX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWNrc3NkdygoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBDb252ZXJ0cyAxNi1iaXQgc2lnbmVkIGludGVnZXJzIGZyb20gYm90aCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIHBhcmFtZXRlcnMgb2YgWzQgeCBpMTZdIGludG8gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZXMsIGFuZAovLy8gICAgY29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBhcyB0aGUgcmVzdWx0LiBWYWx1ZXMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweEZGIGFyZSBzYXR1cmF0ZWQgdG8gMHhGRi4gVmFsdWVzIGxlc3MgdGhhbiAwIGFyZSBzYXR1cmF0ZWQKLy8vICAgIHRvIDAuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFDS1VTV0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAwIGFyZSBzYXR1cmF0ZWQgdG8gMC4gVGhlIGNvbnZlcnRlZCBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBFYWNoIDE2LWJpdCBlbGVtZW50IGlzIHRyZWF0ZWQgYXMgYQovLy8gICAgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGFuZCBpcyBjb252ZXJ0ZWQgdG8gYW4gOC1iaXQgdW5zaWduZWQgaW50ZWdlciB3aXRoCi8vLyAgICBzYXR1cmF0aW9uLiBWYWx1ZXMgZ3JlYXRlciB0aGFuIDB4RkYgYXJlIHNhdHVyYXRlZCB0byAweEZGLiBWYWx1ZXMgbGVzcwovLy8gICAgdGhhbiAwIGFyZSBzYXR1cmF0ZWQgdG8gMC4gVGhlIGNvbnZlcnRlZCBbNCB4IGk4XSB2YWx1ZXMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9wYWNrc19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFja3Vzd2IoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gVW5wYWNrcyB0aGUgdXBwZXIgMzIgYml0cyBmcm9tIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mIFs4IHggaThdCi8vLyAgICBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hCVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gXG4KLy8vICAgIEJpdHMgWzM5OjMyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs0Nzo0MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjM6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs1NTo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzk6MzJdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo1Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNTU6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyAgICBCaXRzIFszOTozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6OF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzQ3OjQwXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzU1OjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjU2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fdW5wYWNraGlfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraGJ3KChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIHVwcGVyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBpMTZdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hXRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzYzOjQ4XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFs0NzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFs2Mzo0OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraHdkKChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIHVwcGVyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZgovLy8gICAgWzIgeCBpMzJdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBVTlBDS0hEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uIFRoZSB1cHBlciAzMiBiaXRzIGFyZSB3cml0dGVuIHRvCi8vLyAgICB0aGUgbG93ZXIgMzIgYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIHVwcGVyIDMyIGJpdHMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV91bnBhY2toaV9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHVucGNraGRxKChfX3Yyc2kpX19tMSwgKF9fdjJzaSlfX20yKTsKfQoKLy8vIFVucGFja3MgdGhlIGxvd2VyIDMyIGJpdHMgZnJvbSB0d28gNjQtYml0IGludGVnZXIgdmVjdG9ycyBvZiBbOCB4IGk4XQovLy8gICAgYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQVU5QQ0tMQlcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyAgICBCaXRzIFs3OjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzE1OjhdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIzOjE2XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMjM6MTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMzE6MjRdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8gICAgQml0cyBbNzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LiBcbgovLy8gICAgQml0cyBbMTU6OF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFsyMzoxNl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNDc6NDBdIG9mIHRoZSByZXN1bHQuIFxuCi8vLyAgICBCaXRzIFszMToyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3B1bnBja2xidygoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSBsb3dlciAzMiBiaXRzIGZyb20gdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQVU5QQ0tMV0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gICAgQml0cyBbMTU6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyAgICBCaXRzIFsxNTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4gXG4KLy8vICAgIEJpdHMgWzMxOjE2XSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wdW5wY2tsd2QoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gVW5wYWNrcyB0aGUgbG93ZXIgMzIgYml0cyBmcm9tIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbMiB4IGkzMl0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFVOUENLTERRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGxvd2VyIDMyIGJpdHMgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBUaGUgbG93ZXIgMzIgYml0cyBhcmUgd3JpdHRlbiB0bwovLy8gICAgdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3VucGFja2xvX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wdW5wY2tsZHEoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDgtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZAovLy8gICAgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLiBUaGUgbG93ZXIgOCBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFEREIgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BpOChfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGRiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IKLy8vICAgIG9mIFs0IHggaTE2XSB0byB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQKLy8vICAgIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBRERXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VtcyBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZF9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFkZHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzIgeCBpMzJdIHRvIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZAovLy8gICAgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4gVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlCi8vLyAgICBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFEREQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBBZGRzIGVhY2ggOC1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mCi8vLyAgICB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4KLy8vICAgIDB4N0YgYXJlIHNhdHVyYXRlZCB0byAweDdGLiBOZWdhdGl2ZSBzdW1zIGxlc3MgdGhhbiAweDgwIGFyZSBzYXR1cmF0ZWQgdG8KLy8vICAgIDB4ODAuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQUREU0IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQgc3VtcwovLy8gICAgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGFkZHNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbNCB4IGkxNl0gdG8gdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YKLy8vICAgIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4gUG9zaXRpdmUgc3VtcyBncmVhdGVyIHRoYW4KLy8vICAgIDB4N0ZGRiBhcmUgc2F0dXJhdGVkIHRvIDB4N0ZGRi4gTmVnYXRpdmUgc3VtcyBsZXNzIHRoYW4gMHg4MDAwIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4ODAwMC4gVGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc2F0dXJhdGVkIHN1bXMKLy8vICAgIG9mIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZGRzX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkc3coKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQWRkcyBlYWNoIDgtYml0IHVuc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSB0byB0aGUgY29ycmVzcG9uZGluZyA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YKLy8vICAgIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLiBTdW1zIGdyZWF0ZXIgdGhhbiAweEZGIGFyZQovLy8gICAgc2F0dXJhdGVkIHRvIDB4RkYuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUEFERFVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgdW5zaWduZWQgc3VtcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWRkc19wdTgoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wYWRkdXNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIEFkZHMgZWFjaCAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFs0IHggaTE2XSB0byB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50Ci8vLyAgICBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFN1bXMgZ3JlYXRlciB0aGFuCi8vLyAgICAweEZGRkYgYXJlIHNhdHVyYXRlZCB0byAweEZGRkYuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBRERVU1cgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBzYXR1cmF0ZWQKLy8vICAgIHVuc2lnbmVkIHN1bXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FkZHNfcHUxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BhZGR1c3coKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gU3VidHJhY3RzIGVhY2ggOC1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbOCB4IGk4XSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUKLy8vICAgIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4gVGhlIGxvd2VyIDggYml0cyBvZiB0aGUgcmVzdWx0cwovLy8gICAgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJCIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIG1pbnVlbmRzLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YmIoKF9fdjhxaSlfX20xLCAoX192OHFpKV9fbTIpOwp9CgovLy8gU3VidHJhY3RzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUKLy8vICAgIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgb2YKLy8vICAgIGJvdGggcGFyYW1ldGVycy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zdWJfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzdWJ3KChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLy8vIFN1YnRyYWN0cyBlYWNoIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFsyIHggaTMyXSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlCi8vLyAgICBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLiBUaGUgbG93ZXIgMzIgYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1VCRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGRpZmZlcmVuY2VzIG9mCi8vLyAgICBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3ViX3BpMzIoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3ViZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCA4LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIDgtYml0IHNpZ25lZCBpbnRlZ2VyCi8vLyAgICBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uIFBvc2l0aXZlIHJlc3VsdHMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGIGFyZSBzYXR1cmF0ZWQgdG8gMHg3Ri4gTmVnYXRpdmUgcmVzdWx0cyBsZXNzIHRoYW4gMHg4MAovLy8gICAgYXJlIHNhdHVyYXRlZCB0byAweDgwLiBUaGUgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnNiKChfX3Y4cWkpX19tMSwgKF9fdjhxaSlfX20yKTsKfQoKLy8vIFN1YnRyYWN0cyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gZnJvbSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uIFBvc2l0aXZlIHJlc3VsdHMKLy8vICAgIGdyZWF0ZXIgdGhhbiAweDdGRkYgYXJlIHNhdHVyYXRlZCB0byAweDdGRkYuIE5lZ2F0aXZlIHJlc3VsdHMgbGVzcyB0aGFuCi8vLyAgICAweDgwMDAgYXJlIHNhdHVyYXRlZCB0byAweDgwMDAuIFRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTVUJTVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgbWludWVuZHMuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmRzLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzdWJzdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCA4LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgovLy8gICAgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLgovLy8KLy8vICAgIElmIGFuIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBsZXNzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudAovLy8gICAgb2YgdGhlIHNlY29uZCB2ZWN0b3IsIHRoZSByZXN1bHQgaXMgc2F0dXJhdGVkIHRvIDAuIFRoZSByZXN1bHRzIGFyZQovLy8gICAgcGFja2VkIGludG8gYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzggeCBpOF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNVQlVTQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XSBjb250YWluaW5nIHRoZSBzdWJ0cmFoZW5kcy4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIHNhdHVyYXRlZAovLy8gICAgZGlmZmVyZW5jZXMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3N1YnNfcHU4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnVzYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBTdWJ0cmFjdHMgZWFjaCAxNi1iaXQgdW5zaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gZnJvbSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgdW5zaWduZWQKLy8vICAgIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyAgICBJZiBhbiBlbGVtZW50IG9mIHRoZSBmaXJzdCB2ZWN0b3IgaXMgbGVzcyB0aGFuIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQKLy8vICAgIG9mIHRoZSBzZWNvbmQgdmVjdG9yLCB0aGUgcmVzdWx0IGlzIHNhdHVyYXRlZCB0byAwLiBUaGUgcmVzdWx0cyBhcmUKLy8vICAgIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1VCVVNXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBtaW51ZW5kcy4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZHMuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgc2F0dXJhdGVkCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIHBhcmFtZXRlcnMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3Vic19wdTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHN1YnVzdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBNdWx0aXBsaWVzIGVhY2ggMTYtYml0IHNpZ25lZCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGJ5IHRoZSBjb3JyZXNwb25kaW5nIDE2LWJpdCBzaWduZWQgaW50ZWdlcgovLy8gICAgZWxlbWVudCBvZiB0aGUgc2Vjb25kIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gYW5kIGdldCBmb3VyCi8vLyAgICAzMi1iaXQgcHJvZHVjdHMuIEFkZHMgYWRqYWNlbnQgcGFpcnMgb2YgcHJvZHVjdHMgdG8gZ2V0IHR3byAzMi1iaXQgc3Vtcy4KLy8vICAgIFRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZXNlIHR3byBzdW1zIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vICAgIEZvciBleGFtcGxlLCBiaXRzIFsxNTowXSBvZiBib3RoIHBhcmFtZXRlcnMgYXJlIG11bHRpcGxpZWQsIGJpdHMgWzMxOjE2XQovLy8gICAgb2YgYm90aCBwYXJhbWV0ZXJzIGFyZSBtdWx0aXBsaWVkLCBhbmQgdGhlIHN1bSBvZiBib3RoIHJlc3VsdHMgaXMgd3JpdHRlbgovLy8gICAgdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTUFERFdEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgc3VtcyBvZgovLy8gICAgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGRfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BtYWRkd2QoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTXVsdGlwbGllcyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBieSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBQYWNrcyB0aGUgdXBwZXIKLy8vICAgIDE2IGJpdHMgb2YgdGhlIDMyLWJpdCBwcm9kdWN0cyBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTVVMSFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSB1cHBlciAxNiBiaXRzCi8vLyAgICBvZiB0aGUgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGhpX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsaHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTXVsdGlwbGllcyBlYWNoIDE2LWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBieSB0aGUgY29ycmVzcG9uZGluZyAxNi1iaXQgc2lnbmVkIGludGVnZXIKLy8vICAgIGVsZW1lbnQgb2YgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLiBQYWNrcyB0aGUgbG93ZXIKLy8vICAgIDE2IGJpdHMgb2YgdGhlIDMyLWJpdCBwcm9kdWN0cyBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQTVVMTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSBjb250YWluaW5nIHRoZSBsb3dlciAxNiBiaXRzCi8vLyAgICBvZiB0aGUgcHJvZHVjdHMgb2YgYm90aCBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX211bGxvX3BpMTYoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsbHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QKLy8vICAgIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLCBieSB0aGUgbnVtYmVyCi8vLyAgICBvZiBiaXRzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlci4gVGhlCi8vLyAgICBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZgovLy8gICAgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGxlZnQtc2hpZnRlZAovLy8gICAgdmFsdWVzLiBJZiBcYSBfX2NvdW50IGlzIGdyZWF0ZXIgb3IgZXF1YWwgdG8gMTYsIHRoZSByZXN1bHQgaXMgc2V0IHRvIGFsbAovLy8gICAgMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNsbHcoKF9fdjRoaSlfX20sIF9fY291bnQpOwp9CgovLy8gTGVmdC1zaGlmdHMgZWFjaCAxNi1iaXQgc2lnbmVkIGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vICAgIFRoZSBsb3dlciAxNiBiaXRzIG9mIHRoZSByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuIElmIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byAxNiwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gYWxsCi8vLyAgICAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbGlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzbGx3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyBlYWNoIDMyLWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdAovLy8gICAgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIKLy8vICAgIG9mIGJpdHMgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLiBUaGUKLy8vICAgIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mCi8vLyAgICBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuIElmIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byAzMiwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gYWxsCi8vLyAgICAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xsZCgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyBlYWNoIDMyLWJpdCBzaWduZWQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8gICAgVGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlIHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4gSWYgXGEgX19jb3VudCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIDMyLCB0aGUgcmVzdWx0IGlzIHNldCB0byBhbGwKLy8vICAgIDAuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2xsaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNsbGRpKChfX3Yyc2kpX19tLCBfX2NvdW50KTsKfQoKLy8vIExlZnQtc2hpZnRzIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIuIFRoZSBsb3dlciA2NCBiaXRzIG9mCi8vLyAgICByZXN1bHQgYXJlIHJldHVybmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTTExRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBsZWZ0LXNoaWZ0ZWQgdmFsdWUuIElmCi8vLyAgICAgXGEgX19jb3VudCBpcyBncmVhdGVyIG9yIGVxdWFsIHRvIDY0LCB0aGUgcmVzdWx0IGlzIHNldCB0byAwLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NsbF9zaTY0KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xscSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBMZWZ0LXNoaWZ0cyB0aGUgZmlyc3QgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLCBieSB0aGUKLy8vICAgIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSAzMi1iaXQKLy8vICAgIGludGVnZXIuIFRoZSBsb3dlciA2NCBiaXRzIG9mIHJlc3VsdCBhcmUgcmV0dXJuZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNMTFEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRlcnByZXRlZCBhcyBhIHNpbmdsZSA2NC1iaXQgaW50ZWdlci4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbGVmdC1zaGlmdGVkIHZhbHVlLiBJZgovLy8gICAgIFxhIF9fY291bnQgaXMgZ3JlYXRlciBvciBlcXVhbCB0byA2NCwgdGhlIHJlc3VsdCBpcyBzZXQgdG8gMC4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zbGxpX3NpNjQoX19tNjQgX19tLCBpbnQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc2xscWkoKF9fdjFkaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLAovLy8gICAgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLCBieSB0aGUgbnVtYmVyIG9mIGJpdHMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgc2Vjb25kIHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBlYWNoCi8vLyAgICAxNi1iaXQgZWxlbWVudC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmFfcGkxNihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNyYXcoKF9fdjRoaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMTYtYml0IGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzQgeCBpMTZdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGZpbGxlZCB3aXRoIHRoZSBzaWduIGJpdCBvZiB0aGUgaW5pdGlhbCB2YWx1ZSBvZiBlYWNoCi8vLyAgICAxNi1iaXQgZWxlbWVudC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdCBpbnRlZ2VyCi8vLyAgICB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NyYWlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzcmF3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIsCi8vLyAgICB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24gYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlIG9mIGVhY2gKLy8vICAgIDMyLWJpdCBlbGVtZW50LiBUaGUgMzItYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSQUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NyYV9waTMyKF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JhZCgoX192MnNpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbMiB4IGkzMl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgZmlsbGVkIHdpdGggdGhlIHNpZ24gYml0IG9mIHRoZSBpbml0aWFsIHZhbHVlIG9mIGVhY2gKLy8vICAgIDMyLWJpdCBlbGVtZW50LiBUaGUgMzItYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0IGludGVnZXIKLy8vICAgIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSQUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXSBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkCi8vLyAgICB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc3JhaV9waTMyKF9fbTY0IF9fbSwgaW50IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNyYWRpKChfX3Yyc2kpX19tLCBfX2NvdW50KTsKfQoKLy8vIFJpZ2h0LXNoaWZ0cyBlYWNoIDE2LWJpdCBpbnRlZ2VyIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHBhcmFtZXRlciwKLy8vICAgIHdoaWNoIGlzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XSwgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgNjQtYml0IGludGVnZXIuCi8vLwovLy8gICAgSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLiBUaGUgMTYtYml0IHJlc3VsdHMgYXJlIHBhY2tlZCBpbnRvIGEgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFNSTFcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9waTE2KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JsdygoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAxNi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIGEgNjQtYml0IGludGVnZXIgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGkxNl0gYnkgdGhlIG51bWJlciBvZiBiaXRzIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4gVGhlIDE2LWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgcmlnaHQtc2hpZnRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfcGkxNihfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3Bzcmx3aSgoX192NGhpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgZWFjaCAzMi1iaXQgaW50ZWdlciBlbGVtZW50IG9mIHRoZSBmaXJzdCBwYXJhbWV0ZXIsCi8vLyAgICB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0sIGJ5IHRoZSBudW1iZXIgb2YgYml0cwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgcGFyYW1ldGVyLCB3aGljaCBpcyBhIDY0LWJpdCBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4gVGhlIDMyLWJpdCByZXN1bHRzIGFyZSBwYWNrZWQgaW50byBhIDY0LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxfcGkzMihfX202NCBfX20sIF9fbTY0IF9fY291bnQpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcHNybGQoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIGVhY2ggMzItYml0IGludGVnZXIgZWxlbWVudCBvZiBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcgovLy8gICAgb2YgWzIgeCBpMzJdIGJ5IHRoZSBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgYSAzMi1iaXQgaW50ZWdlci4KLy8vCi8vLyAgICBIaWdoLW9yZGVyIGJpdHMgYXJlIGNsZWFyZWQuIFRoZSAzMi1iaXQgcmVzdWx0cyBhcmUgcGFja2VkIGludG8gYSA2NC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1JMRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxwYXJhbSBfX2NvdW50Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0LXNoaWZ0ZWQKLy8vICAgIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zcmxpX3BpMzIoX19tNjQgX19tLCBpbnQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JsZGkoKF9fdjJzaSlfX20sIF9fY291bnQpOwp9CgovLy8gUmlnaHQtc2hpZnRzIHRoZSBmaXJzdCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIgYnkgdGhlIG51bWJlciBvZiBiaXRzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCA2NC1iaXQgaW50ZWdlciBwYXJhbWV0ZXIuCi8vLwovLy8gICAgSGlnaC1vcmRlciBiaXRzIGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBTUkxRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccGFyYW0gX19jb3VudAovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW50ZXJwcmV0ZWQgYXMgYSBzaW5nbGUgNjQtYml0IGludGVnZXIuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybF9zaTY0KF9fbTY0IF9fbSwgX19tNjQgX19jb3VudCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3JscSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBSaWdodC1zaGlmdHMgdGhlIGZpcnN0IHBhcmFtZXRlciwgd2hpY2ggaXMgYSA2NC1iaXQgaW50ZWdlciwgYnkgdGhlCi8vLyAgICBudW1iZXIgb2YgYml0cyBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBwYXJhbWV0ZXIsIHdoaWNoIGlzIGEgMzItYml0Ci8vLyAgICBpbnRlZ2VyLgovLy8KLy8vICAgIEhpZ2gtb3JkZXIgYml0cyBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQU1JMUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20KLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIGludGVycHJldGVkIGFzIGEgc2luZ2xlIDY0LWJpdCBpbnRlZ2VyLgovLy8gXHBhcmFtIF9fY291bnQKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByaWdodC1zaGlmdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NybGlfc2k2NChfX202NCBfX20sIGludCBfX2NvdW50KQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BzcmxxaSgoX192MWRpKV9fbSwgX19jb3VudCk7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBBTkQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9wYW5kKChfX3YxZGkpX19tMSwgKF9fdjFkaSlfX20yKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBOT1Qgb2YgdGhlIGZpcnN0IDY0LWJpdCBpbnRlZ2VyIHZlY3RvciwgYW5kIHRoZW4KLy8vICAgIHBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdGhlIGludGVybWVkaWF0ZSByZXN1bHQgYW5kIHRoZSBzZWNvbmQgNjQtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQU5ETiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIG9uZSdzIGNvbXBsZW1lbnQgb2YgdGhpcyBwYXJhbWV0ZXIgaXMgdXNlZAovLy8gICAgaW4gdGhlIGJpdHdpc2UgQU5ELgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBBTkQgb2YgdGhlIHNlY29uZAovLy8gICAgcGFyYW1ldGVyIGFuZCB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2FuZG5vdF9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9wYW5kbigoX192MWRpKV9fbTEsIChfX3YxZGkpX19tMik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgT1Igb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE9SIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIF9fbTIKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgYml0d2lzZSBPUiBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX29yX3NpNjQoX19tNjQgX19tMSwgX19tNjQgX19tMikKewogICAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BvcigoX192MWRpKV9fbTEsIChfX3YxZGkpX19tMik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgZXhjbHVzaXZlIE9SIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBYT1IgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19tMQovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBiaXR3aXNlIGV4Y2x1c2l2ZSBPUiBvZiBib3RoCi8vLyAgICBwYXJhbWV0ZXJzLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3hvcl9zaTY0KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiBfX2J1aWx0aW5faWEzMl9weG9yKChfX3YxZGkpX19tMSwgKF9fdjFkaSlfX20yKTsKfQoKLy8vIENvbXBhcmVzIHRoZSA4LWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbOCB4IGk4XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEVRQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGVxYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQ01QRVFXIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBlcV9waTE2KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGVxdygoX192NGhpKV9fbTEsIChfX3Y0aGkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMzItYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFsyIHggaTMyXSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBlcXVhbCB0byB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkZGRkZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEVRRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZXFfcGkzMihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BjbXBlcWQoKF9fdjJzaSlfX20xLCAoX192MnNpKV9fbTIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIDgtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs4IHggaThdIHRvIGRldGVybWluZSBpZiB0aGUgZWxlbWVudCBvZiB0aGUgZmlyc3QgdmVjdG9yIGlzIGdyZWF0ZXIgdGhhbgovLy8gICAgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBvZiB0aGUgc2Vjb25kIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgY29tcGFyaXNvbiB5aWVsZHMgMCBmb3IgZmFsc2UsIDB4RkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEdUQiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGk4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGd0YigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCi8vLyBDb21wYXJlcyB0aGUgMTYtYml0IGludGVnZXIgZWxlbWVudHMgb2YgdHdvIDY0LWJpdCBpbnRlZ2VyIHZlY3RvcnMgb2YKLy8vICAgIFs0IHggaTE2XSB0byBkZXRlcm1pbmUgaWYgdGhlIGVsZW1lbnQgb2YgdGhlIGZpcnN0IHZlY3RvciBpcyBncmVhdGVyIHRoYW4KLy8vICAgIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgb2YgdGhlIHNlY29uZCB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIGNvbXBhcmlzb24geWllbGRzIDAgZm9yIGZhbHNlLCAweEZGRkYgZm9yIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUENNUEdUVyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX20xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0uCi8vLyBccGFyYW0gX19tMgovLy8gICAgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdLgovLy8gXHJldHVybnMgQSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMTZdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24KLy8vICAgIHJlc3VsdHMuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY21wZ3RfcGkxNihfX202NCBfX20xLCBfX202NCBfX20yKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BjbXBndHcoKF9fdjRoaSlfX20xLCAoX192NGhpKV9fbTIpOwp9CgovLy8gQ29tcGFyZXMgdGhlIDMyLWJpdCBpbnRlZ2VyIGVsZW1lbnRzIG9mIHR3byA2NC1iaXQgaW50ZWdlciB2ZWN0b3JzIG9mCi8vLyAgICBbMiB4IGkzMl0gdG8gZGV0ZXJtaW5lIGlmIHRoZSBlbGVtZW50IG9mIHRoZSBmaXJzdCB2ZWN0b3IgaXMgZ3JlYXRlciB0aGFuCi8vLyAgICB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IG9mIHRoZSBzZWNvbmQgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBjb21wYXJpc29uIHlpZWxkcyAwIGZvciBmYWxzZSwgMHhGRkZGRkZGRiBmb3IgdHJ1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQQ01QR1REIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fbTEKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFsyIHggaTMyXS4KLy8vIFxwYXJhbSBfX20yCi8vLyAgICBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbgovLy8gICAgcmVzdWx0cy4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jbXBndF9waTMyKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGNtcGd0ZCgoX192MnNpKV9fbTEsIChfX3Yyc2kpX19tMik7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUFhPUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciB3aXRoIGFsbCBlbGVtZW50cyBzZXQgdG8gemVyby4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXR6ZXJvX3NpNjQodm9pZCkKewogICAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTY0KXsgMExMIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZAovLy8gICAgMzItYml0IGludGVnZXIgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faTEKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSB1cHBlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHBhcmFtIF9faTAKLy8vICAgIEEgMzItYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIHRoZSBsb3dlciAzMiBiaXRzIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9waTMyKGludCBfX2kxLCBpbnQgX19pMCkKewogICAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl92ZWNfaW5pdF92MnNpKF9faTAsIF9faTEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQKLy8vICAgIDE2LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3MzCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3MwCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NldF9waTE2KHNob3J0IF9fczMsIHNob3J0IF9fczIsIHNob3J0IF9fczEsIHNob3J0IF9fczApCnsKICAgIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfdmVjX2luaXRfdjRoaShfX3MwLCBfX3MxLCBfX3MyLCBfX3MzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi8vLyAgICA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTo4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAKLy8vICAgIEFuIDgtYml0IGludGVnZXIgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRfcGk4KGNoYXIgX19iNywgY2hhciBfX2I2LCBjaGFyIF9fYjUsIGNoYXIgX19iNCwgY2hhciBfX2IzLCBjaGFyIF9fYjIsCiAgICAgICAgICAgIGNoYXIgX19iMSwgY2hhciBfX2IwKQp7CiAgICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3ZlY19pbml0X3Y4cWkoX19iMCwgX19iMSwgX19iMiwgX19iMywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2I0LCBfX2I1LCBfX2I2LCBfX2I3KTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzIgeCBpMzJdLCB3aXRoIGVhY2ggb2YgdGhlCi8vLyAgICAzMi1iaXQgaW50ZWdlciB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZSBzcGVjaWZpZWQgMzItYml0IGludGVnZXIKLy8vICAgIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faQovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMiB4IGkzMl0uCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0MV9waTMyKGludCBfX2kpCnsKICAgIHJldHVybiBfbW1fc2V0X3BpMzIoX19pLCBfX2kpOwp9CgovLy8gQ29uc3RydWN0cyBhIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbNCB4IGkxNl0sIHdpdGggZWFjaCBvZiB0aGUKLy8vICAgIDE2LWJpdCBpbnRlZ2VyIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdlcgovLy8gICAgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvciBlbGVtZW50IG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTE2XS4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXQxX3BpMTYoc2hvcnQgX193KQp7CiAgICByZXR1cm4gX21tX3NldF9waTE2KF9fdywgX193LCBfX3csIF9fdyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgNjQtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaThdLCB3aXRoIGVhY2ggb2YgdGhlCi8vLyAgICA4LWJpdCBpbnRlZ2VyIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ2VyIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYgovLy8gICAgQW4gOC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGk4XS4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXQxX3BpOChjaGFyIF9fYikKewogICAgcmV0dXJuIF9tbV9zZXRfcGk4KF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCAzMi1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19pMAovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIGxvd2VyIDMyIGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccGFyYW0gX19pMQovLy8gICAgQSAzMi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHVwcGVyIDMyIGJpdHMgb2YgdGhlCi8vLyAgICByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCA2NC1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2V0cl9waTMyKGludCBfX2kwLCBpbnQgX19pMSkKewogICAgcmV0dXJuIF9tbV9zZXRfcGkzMihfX2kxLCBfX2kwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdlciB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193MAovLy8gICAgQSAxNi1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0NzozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3czCi8vLyAgICBBIDE2LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX3BpMTYoc2hvcnQgX193MCwgc2hvcnQgX193MSwgc2hvcnQgX193Miwgc2hvcnQgX193MykKewogICAgcmV0dXJuIF9tbV9zZXRfcGkxNihfX3czLCBfX3cyLCBfX3cxLCBfX3cwKTsKfQoKLy8vIENvbnN0cnVjdHMgYSA2NC1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIgd2l0aAovLy8gICAgdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ2VyIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2IwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMQovLy8gICAgQW4gOC1iaXQgaW50ZWdlciB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU6OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszOTozMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I1Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs1NTo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2I3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ2VyIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo1Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDY0LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zZXRyX3BpOChjaGFyIF9fYjAsIGNoYXIgX19iMSwgY2hhciBfX2IyLCBjaGFyIF9fYjMsIGNoYXIgX19iNCwgY2hhciBfX2I1LAogICAgICAgICAgICAgY2hhciBfX2I2LCBjaGFyIF9fYjcpCnsKICAgIHJldHVybiBfbW1fc2V0X3BpOChfX2I3LCBfX2I2LCBfX2I1LCBfX2I0LCBfX2IzLCBfX2IyLCBfX2IxLCBfX2IwKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKLyogQWxpYXNlcyBmb3IgY29tcGF0aWJpbGl0eS4gKi8KI2RlZmluZSBfbV9lbXB0eSBfbW1fZW1wdHkKI2RlZmluZSBfbV9mcm9tX2ludCBfbW1fY3Z0c2kzMl9zaTY0CiNkZWZpbmUgX21fZnJvbV9pbnQ2NCBfbW1fY3Z0c2k2NF9tNjQKI2RlZmluZSBfbV90b19pbnQgX21tX2N2dHNpNjRfc2kzMgojZGVmaW5lIF9tX3RvX2ludDY0IF9tbV9jdnRtNjRfc2k2NAojZGVmaW5lIF9tX3BhY2tzc3diIF9tbV9wYWNrc19waTE2CiNkZWZpbmUgX21fcGFja3NzZHcgX21tX3BhY2tzX3BpMzIKI2RlZmluZSBfbV9wYWNrdXN3YiBfbW1fcGFja3NfcHUxNgojZGVmaW5lIF9tX3B1bnBja2hidyBfbW1fdW5wYWNraGlfcGk4CiNkZWZpbmUgX21fcHVucGNraHdkIF9tbV91bnBhY2toaV9waTE2CiNkZWZpbmUgX21fcHVucGNraGRxIF9tbV91bnBhY2toaV9waTMyCiNkZWZpbmUgX21fcHVucGNrbGJ3IF9tbV91bnBhY2tsb19waTgKI2RlZmluZSBfbV9wdW5wY2tsd2QgX21tX3VucGFja2xvX3BpMTYKI2RlZmluZSBfbV9wdW5wY2tsZHEgX21tX3VucGFja2xvX3BpMzIKI2RlZmluZSBfbV9wYWRkYiBfbW1fYWRkX3BpOAojZGVmaW5lIF9tX3BhZGR3IF9tbV9hZGRfcGkxNgojZGVmaW5lIF9tX3BhZGRkIF9tbV9hZGRfcGkzMgojZGVmaW5lIF9tX3BhZGRzYiBfbW1fYWRkc19waTgKI2RlZmluZSBfbV9wYWRkc3cgX21tX2FkZHNfcGkxNgojZGVmaW5lIF9tX3BhZGR1c2IgX21tX2FkZHNfcHU4CiNkZWZpbmUgX21fcGFkZHVzdyBfbW1fYWRkc19wdTE2CiNkZWZpbmUgX21fcHN1YmIgX21tX3N1Yl9waTgKI2RlZmluZSBfbV9wc3VidyBfbW1fc3ViX3BpMTYKI2RlZmluZSBfbV9wc3ViZCBfbW1fc3ViX3BpMzIKI2RlZmluZSBfbV9wc3Vic2IgX21tX3N1YnNfcGk4CiNkZWZpbmUgX21fcHN1YnN3IF9tbV9zdWJzX3BpMTYKI2RlZmluZSBfbV9wc3VidXNiIF9tbV9zdWJzX3B1OAojZGVmaW5lIF9tX3BzdWJ1c3cgX21tX3N1YnNfcHUxNgojZGVmaW5lIF9tX3BtYWRkd2QgX21tX21hZGRfcGkxNgojZGVmaW5lIF9tX3BtdWxodyBfbW1fbXVsaGlfcGkxNgojZGVmaW5lIF9tX3BtdWxsdyBfbW1fbXVsbG9fcGkxNgojZGVmaW5lIF9tX3BzbGx3IF9tbV9zbGxfcGkxNgojZGVmaW5lIF9tX3BzbGx3aSBfbW1fc2xsaV9waTE2CiNkZWZpbmUgX21fcHNsbGQgX21tX3NsbF9waTMyCiNkZWZpbmUgX21fcHNsbGRpIF9tbV9zbGxpX3BpMzIKI2RlZmluZSBfbV9wc2xscSBfbW1fc2xsX3NpNjQKI2RlZmluZSBfbV9wc2xscWkgX21tX3NsbGlfc2k2NAojZGVmaW5lIF9tX3BzcmF3IF9tbV9zcmFfcGkxNgojZGVmaW5lIF9tX3BzcmF3aSBfbW1fc3JhaV9waTE2CiNkZWZpbmUgX21fcHNyYWQgX21tX3NyYV9waTMyCiNkZWZpbmUgX21fcHNyYWRpIF9tbV9zcmFpX3BpMzIKI2RlZmluZSBfbV9wc3JsdyBfbW1fc3JsX3BpMTYKI2RlZmluZSBfbV9wc3Jsd2kgX21tX3NybGlfcGkxNgojZGVmaW5lIF9tX3BzcmxkIF9tbV9zcmxfcGkzMgojZGVmaW5lIF9tX3BzcmxkaSBfbW1fc3JsaV9waTMyCiNkZWZpbmUgX21fcHNybHEgX21tX3NybF9zaTY0CiNkZWZpbmUgX21fcHNybHFpIF9tbV9zcmxpX3NpNjQKI2RlZmluZSBfbV9wYW5kIF9tbV9hbmRfc2k2NAojZGVmaW5lIF9tX3BhbmRuIF9tbV9hbmRub3Rfc2k2NAojZGVmaW5lIF9tX3BvciBfbW1fb3Jfc2k2NAojZGVmaW5lIF9tX3B4b3IgX21tX3hvcl9zaTY0CiNkZWZpbmUgX21fcGNtcGVxYiBfbW1fY21wZXFfcGk4CiNkZWZpbmUgX21fcGNtcGVxdyBfbW1fY21wZXFfcGkxNgojZGVmaW5lIF9tX3BjbXBlcWQgX21tX2NtcGVxX3BpMzIKI2RlZmluZSBfbV9wY21wZ3RiIF9tbV9jbXBndF9waTgKI2RlZmluZSBfbV9wY21wZ3R3IF9tbV9jbXBndF9waTE2CiNkZWZpbmUgX21fcGNtcGd0ZCBfbW1fY21wZ3RfcGkzMgoKI2VuZGlmIC8qIF9fTU1JTlRSSU5fSCAqLwoKAC8qCiAqIGluY2x1ZGUvb21wLXRvb2xzLmgudmFyCiAqLwoKLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX19PTVBUX18KI2RlZmluZSBfX09NUFRfXwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIHN5c3RlbSBpbmNsdWRlIGZpbGVzCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNpbmNsdWRlIDxzdGRpbnQuaD4KI2luY2x1ZGUgPHN0ZGRlZi5oPgoKI2lmZGVmIERFUFJFQ0FUSU9OX1dBUk5JTkdTIAojIGlmZGVmIF9fY3BsdXNwbHVzCiMgZGVmaW5lIERFUFJFQ0FURURfNTEgW1tkZXByZWNhdGVkKCJhcyBvZiA1LjEiKV1dCiMgZWxzZQojIGRlZmluZSBERVBSRUNBVEVEXzUxIF9fYXR0cmlidXRlX18oKGRlcHJlY2F0ZWQoImFzIG9mIDUuMSIpKSkKI2VuZGlmCiNlbHNlCiNkZWZpbmUgREVQUkVDQVRFRF81MQojZW5kaWYKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBpdGVyYXRpb24gbWFjcm9zCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCiNkZWZpbmUgRk9SRUFDSF9PTVBUX0lOUVVJUllfRk4obWFjcm8pICAgICAgXAogICAgbWFjcm8gKG9tcHRfZW51bWVyYXRlX3N0YXRlcykgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2VudW1lcmF0ZV9tdXRleF9pbXBscykgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc2V0X2NhbGxiYWNrKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2dldF9jYWxsYmFjaykgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3N0YXRlKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9nZXRfcGFyYWxsZWxfaW5mbykgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3Rhc2tfaW5mbykgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2dldF90YXNrX21lbW9yeSkgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9nZXRfdGhyZWFkX2RhdGEpICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfZ2V0X3VuaXF1ZV9pZCkgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2ZpbmFsaXplX3Rvb2wpICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8ob21wdF9nZXRfbnVtX3Byb2NzKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X251bV9wbGFjZXMpICAgICAgICAgICAgICBcCiAgICBtYWNybyhvbXB0X2dldF9wbGFjZV9wcm9jX2lkcykgICAgICAgICAgXAogICAgbWFjcm8ob21wdF9nZXRfcGxhY2VfbnVtKSAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X3BhcnRpdGlvbl9wbGFjZV9udW1zKSAgICBcCiAgICBtYWNybyhvbXB0X2dldF9wcm9jX2lkKSAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvKG9tcHRfZ2V0X3RhcmdldF9pbmZvKSAgICAgICAgICAgICBcCiAgICBtYWNybyhvbXB0X2dldF9udW1fZGV2aWNlcykKCiNkZWZpbmUgRk9SRUFDSF9PTVBUX1NUQVRFKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIC8qIGZpcnN0IGF2YWlsYWJsZSBzdGF0ZSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfdW5kZWZpbmVkLCAweDEwMikgICAgICAvKiB1bmRlZmluZWQgdGhyZWFkIHN0YXRlICovICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiB3b3JrIHN0YXRlcyAoMC4uMTUpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfc2VyaWFsLCAweDAwMCkgICAgLyogd29ya2luZyBvdXRzaWRlIHBhcmFsbGVsICovICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfcGFyYWxsZWwsIDB4MDAxKSAgLyogd29ya2luZyB3aXRoaW4gcGFyYWxsZWwgKi8gICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dvcmtfcmVkdWN0aW9uLCAweDAwMikgLyogcGVyZm9ybWluZyBhIHJlZHVjdGlvbiAqLyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogYmFycmllciB3YWl0IHN0YXRlcyAoMTYuLjMxKSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2JhcnJpZXIsIDB4MDEwKSAgIC8qIHdhaXRpbmcgYXQgYSBiYXJyaWVyICovICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfaW1wbGljaXRfcGFyYWxsZWwsIDB4MDExKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaW1wbGljaXQgYmFycmllciBhdCB0aGUgZW5kIG9mIHBhcmFsbGVsIHJlZ2lvbiAqL1wKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsaWNpdF93b3Jrc2hhcmUsIDB4MDEyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBpbXBsaWNpdCBiYXJyaWVyIGF0IHRoZSBlbmQgb2Ygd29ya3NoYXJpbmcgKi8gICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2ltcGxpY2l0LCAweDAxMykgIC8qIGltcGxpY2l0IGJhcnJpZXIgKi8gICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2V4cGxpY2l0LCAweDAxNCkgIC8qIGV4cGxpY2l0IGJhcnJpZXIgKi8gICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiB0YXNrIHdhaXQgc3RhdGVzICgzMi4uNjMpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfdGFza3dhaXQsIDB4MDIwKSAgLyogd2FpdGluZyBhdCBhIHRhc2t3YWl0ICovICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX3dhaXRfdGFza2dyb3VwLCAweDAyMSkgLyogd2FpdGluZyBhdCBhIHRhc2tncm91cCAqLyAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogbXV0ZXggd2FpdCBzdGF0ZXMgKDY0Li4xMjcpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X211dGV4LCAweDA0MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2xvY2ssIDB4MDQxKSAgICAgIC8qIHdhaXRpbmcgZm9yIGxvY2sgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2NyaXRpY2FsLCAweDA0MikgIC8qIHdhaXRpbmcgZm9yIGNyaXRpY2FsICovICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X2F0b21pYywgMHgwNDMpICAgIC8qIHdhaXRpbmcgZm9yIGF0b21pYyAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9zdGF0ZV93YWl0X29yZGVyZWQsIDB4MDQ0KSAgIC8qIHdhaXRpbmcgZm9yIG9yZGVyZWQgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIC8qIHRhcmdldCB3YWl0IHN0YXRlcyAoMTI4Li4yNTUpICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXQsIDB4MDgwKSAgICAgICAgLyogd2FpdGluZyBmb3IgdGFyZ2V0IHJlZ2lvbiAqLyAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfbWFwLCAweDA4MSkgICAgLyogd2FpdGluZyBmb3IgdGFyZ2V0IGRhdGEgbWFwcGluZyBvcGVyYXRpb24gKi8gXAogICAgbWFjcm8gKG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfdXBkYXRlLCAweDA4MikgLyogd2FpdGluZyBmb3IgdGFyZ2V0IHVwZGF0ZSBvcGVyYXRpb24gKi8gICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAvKiBtaXNjICgyNTYuLjUxMSkgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX2lkbGUsIDB4MTAwKSAgICAgICAgICAgLyogd2FpdGluZyBmb3Igd29yayAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X3N0YXRlX292ZXJoZWFkLCAweDEwMSkgICAgICAgLyogb3ZlcmhlYWQgZXhjbHVkaW5nIHdhaXQgc3RhdGVzICovICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogaW1wbGVtZW50YXRpb24tc3BlY2lmaWMgc3RhdGVzICg1MTIuLikgKi8KCgojZGVmaW5lIEZPUkVBQ0hfS01QX01VVEVYX0lNUEwobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX25vbmUsIDApICAgICAgICAgLyogdW5rbm93biBpbXBsZW1lbnRhdGlvbiAqLyAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3NwaW4sIDEpICAgICAgICAgLyogYmFzZWQgb24gc3BpbiAqLyAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3F1ZXVpbmcsIDIpICAgICAgLyogYmFzZWQgb24gc29tZSBmYWlyIHBvbGljeSAqLyAgICAgICAgICAgXAogICAgbWFjcm8gKGttcF9tdXRleF9pbXBsX3NwZWN1bGF0aXZlLCAzKSAgLyogYmFzZWQgb24gSFctc3VwcG9ydGVkIHNwZWN1bGF0aW9uICovCgojZGVmaW5lIEZPUkVBQ0hfT01QVF9IT1NUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyotLS0gTWFuZGF0b3J5IEV2ZW50cyAtLS0qLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luLCAgICAgIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luX3QsICAgICAgIDEpIC8qIHRocmVhZCBiZWdpbiAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZCwgICAgICAgIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZF90LCAgICAgICAgIDIpIC8qIHRocmVhZCBlbmQgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfYmVnaW4sICAgIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfYmVnaW5fdCwgICAgIDMpIC8qIHBhcmFsbGVsIGJlZ2luICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kLCAgICAgIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kX3QsICAgICAgIDQpIC8qIHBhcmFsbGVsIGVuZCAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGUsICAgICAgIG9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGVfdCwgICAgICAgIDUpIC8qIHRhc2sgYmVnaW4gICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19zY2hlZHVsZSwgICAgIG9tcHRfY2FsbGJhY2tfdGFza19zY2hlZHVsZV90LCAgICAgIDYpIC8qIHRhc2sgc2NoZWR1bGUgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFzaywgICAgIG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFza190LCAgICAgIDcpIC8qIGltcGxpY2l0IHRhc2sgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfY29udHJvbF90b29sLCAgICAgIG9tcHRfY2FsbGJhY2tfY29udHJvbF90b29sX3QsICAgICAgMTEpIC8qIGNvbnRyb2wgdG9vbCAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgLyogT3B0aW9uYWwgRXZlbnRzICovICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fd2FpdCwgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMTYpIC8qIHN5bmMgcmVnaW9uIHdhaXQgYmVnaW4gb3IgZW5kICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfcmVsZWFzZWQsICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMTcpIC8qIG11dGV4IHJlbGVhc2VkICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGVwZW5kZW5jZXMsICAgICAgIG9tcHRfY2FsbGJhY2tfZGVwZW5kZW5jZXNfdCwgICAgICAgMTgpIC8qIHJlcG9ydCB0YXNrIGRlcGVuZGVuY2VzICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlLCAgIG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlX3QsICAgMTkpIC8qIHJlcG9ydCB0YXNrIGRlcGVuZGVuY2UgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfd29yaywgICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfd29ya190LCAgICAgICAgICAgICAgMjApIC8qIHRhc2sgYXQgd29yayBiZWdpbiBvciBlbmQgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbWFza2VkLCAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfbWFza2VkX3QsICAgICAgICAgICAgMjEpIC8qIHRhc2sgYXQgbWFza2VkIGJlZ2luIG9yIGVuZCAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb24sICAgICAgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMjMpIC8qIHN5bmMgcmVnaW9uIGJlZ2luIG9yIGVuZCAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbG9ja19pbml0LCAgICAgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZV90LCAgICAgMjQpIC8qIGxvY2sgaW5pdCAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbG9ja19kZXN0cm95LCAgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMjUpIC8qIGxvY2sgZGVzdHJveSAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZSwgICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZV90LCAgICAgMjYpIC8qIG11dGV4IGFjcXVpcmUgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZWQsICAgIG9tcHRfY2FsbGJhY2tfbXV0ZXhfdCwgICAgICAgICAgICAgMjcpIC8qIG11dGV4IGFjcXVpcmVkICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrLCAgICAgICAgIG9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrX3QsICAgICAgICAgMjgpIC8qIG5lc3QgbG9jayAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZmx1c2gsICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZmx1c2hfdCwgICAgICAgICAgICAgMjkpIC8qIGFmdGVyIGV4ZWN1dGluZyBmbHVzaCAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfY2FuY2VsLCAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfY2FuY2VsX3QsICAgICAgICAgICAgMzApIC8qIGNhbmNlbCBpbm5lcm1vc3QgYmluZGluZyByZWdpb24gKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfcmVkdWN0aW9uLCAgICAgICAgIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fdCwgICAgICAgMzEpIC8qIHJlZHVjdGlvbiAgICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGlzcGF0Y2gsICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZGlzcGF0Y2hfdCwgICAgICAgICAgMzIpIC8qIGRpc3BhdGNoIG9mIHdvcmsgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZXJyb3IsICAgICAgICAgICAgIG9tcHRfY2FsbGJhY2tfZXJyb3JfdCwgICAgICAgICAgICAgMzcpIC8qIGVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KCgojZGVmaW5lIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2luaXRpYWxpemUsIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2luaXRpYWxpemVfdCwgMTIpIC8qIGRldmljZSBpbml0aWFsaXplICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplLCAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplX3QsICAgMTMpIC8qIGRldmljZSBmaW5hbGl6ZSAgICAgICAgICAgICAgICAgKi8gXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX2xvYWQsICAgICAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2xvYWRfdCwgICAgICAgMTQpIC8qIGRldmljZSBsb2FkICAgICAgICAgICAgICAgICAgICAgKi8gXAogICAgbWFjcm8gKG9tcHRfY2FsbGJhY2tfZGV2aWNlX3VubG9hZCwgICAgIG9tcHRfY2FsbGJhY2tfZGV2aWNlX3VubG9hZF90LCAgICAgMTUpIC8qIGRldmljZSB1bmxvYWQgICAgICAgICAgICAgICAgICAgKi8gXAoKCiNkZWZpbmUgRk9SRUFDSF9PTVBUX05PRU1JX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXQsICAgICAgICAgICAgb21wdF9jYWxsYmFja190YXJnZXRfdCwgICAgICAgICAgICAgOCkgLyogdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcCwgICAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF90LCAgICAgOSkgLyogdGFyZ2V0IGRhdGEgb3AgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0LCAgICAgb21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0X3QsICAgICAxMCkgLyogdGFyZ2V0ICBzdWJtaXQgICAgICAgICAgICAgICAgICAqLyBcCiAgICBtYWNybyAob21wdF9jYWxsYmFja190YXJnZXRfbWFwLCAgICAgICAgb21wdF9jYWxsYmFja190YXJnZXRfbWFwX3QsICAgICAgICAyMikgLyogdGFyZ2V0IG1hcCAgICAgICAgICAgICAgICAgICAgICAqLyBcCgoKI2RlZmluZSBGT1JFQUNIX09NUFRfRU1JX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9lbWksICAgICAgICBvbXB0X2NhbGxiYWNrX3RhcmdldF9lbWlfdCwgICAgICAgIDMzKSAvKiB0YXJnZXQgICAgICAgICAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX2VtaSxvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX2VtaV90LDM0KSAvKiB0YXJnZXQgZGF0YSBvcCAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pLCBvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pX3QsIDM1KSAvKiB0YXJnZXQgc3VibWl0ICAgICAgICAgICAgICAgICAgICovIFwKICAgIG1hY3JvIChvbXB0X2NhbGxiYWNrX3RhcmdldF9tYXBfZW1pLCAgICBvbXB0X2NhbGxiYWNrX3RhcmdldF9tYXBfZW1pX3QsICAgIDM2KSAvKiB0YXJnZXQgbWFwICAgICAgICAgICAgICAgICAgICAgICovIFwKCiNkZWZpbmUgRk9SRUFDSF9PTVBUXzUwX1RBUkdFVF9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBGT1JFQUNIX09NUFRfREVWSUNFX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBGT1JFQUNIX09NUFRfTk9FTUlfRVZFTlQobWFjcm8pIAoKI2RlZmluZSBGT1JFQUNIX09NUFRfNTFfVEFSR0VUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9FTUlfRVZFTlQobWFjcm8pIAoKI2RlZmluZSBGT1JFQUNIX09NUFRfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9IT1NUX0VWRU5UKG1hY3JvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9ERVZJQ0VfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9OT0VNSV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIEZPUkVBQ0hfT01QVF9FTUlfRVZFTlQobWFjcm8pCgojZGVmaW5lIEZPUkVBQ0hfT01QVF81MV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0hPU1RfRVZFTlQobWFjcm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0RFVklDRV9FVkVOVChtYWNybykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgRk9SRUFDSF9PTVBUX0VNSV9FVkVOVChtYWNybykKCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyB0eXBlcwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgp0eXBlZGVmIGVudW0ga21wX211dGV4X2ltcGxfdCB7CiNkZWZpbmUga21wX211dGV4X2ltcGxfbWFjcm8oaW1wbCwgY29kZSkgaW1wbCA9IGNvZGUsCiAgICBGT1JFQUNIX0tNUF9NVVRFWF9JTVBMKGttcF9tdXRleF9pbXBsX21hY3JvKQojdW5kZWYga21wX211dGV4X2ltcGxfbWFjcm8KfSBrbXBfbXV0ZXhfaW1wbF90OwoKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAqIGRlZmluaXRpb25zIGdlbmVyYXRlZCBmcm9tIHNwZWMKICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwoKdHlwZWRlZiBlbnVtIG9tcHRfY2FsbGJhY2tzX3QgewogIG9tcHRfY2FsbGJhY2tfdGhyZWFkX2JlZ2luICAgICAgICAgICAgID0gMSwKICBvbXB0X2NhbGxiYWNrX3RocmVhZF9lbmQgICAgICAgICAgICAgICA9IDIsCiAgb21wdF9jYWxsYmFja19wYXJhbGxlbF9iZWdpbiAgICAgICAgICAgPSAzLAogIG9tcHRfY2FsbGJhY2tfcGFyYWxsZWxfZW5kICAgICAgICAgICAgID0gNCwKICBvbXB0X2NhbGxiYWNrX3Rhc2tfY3JlYXRlICAgICAgICAgICAgICA9IDUsCiAgb21wdF9jYWxsYmFja190YXNrX3NjaGVkdWxlICAgICAgICAgICAgPSA2LAogIG9tcHRfY2FsbGJhY2tfaW1wbGljaXRfdGFzayAgICAgICAgICAgID0gNywKICBvbXB0X2NhbGxiYWNrX3RhcmdldCAgICAgICAgICAgICAgICAgICA9IDgsCiAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcCAgICAgICAgICAgPSA5LAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X3N1Ym1pdCAgICAgICAgICAgID0gMTAsCiAgb21wdF9jYWxsYmFja19jb250cm9sX3Rvb2wgICAgICAgICAgICAgPSAxMSwKICBvbXB0X2NhbGxiYWNrX2RldmljZV9pbml0aWFsaXplICAgICAgICA9IDEyLAogIG9tcHRfY2FsbGJhY2tfZGV2aWNlX2ZpbmFsaXplICAgICAgICAgID0gMTMsCiAgb21wdF9jYWxsYmFja19kZXZpY2VfbG9hZCAgICAgICAgICAgICAgPSAxNCwKICBvbXB0X2NhbGxiYWNrX2RldmljZV91bmxvYWQgICAgICAgICAgICA9IDE1LAogIG9tcHRfY2FsbGJhY2tfc3luY19yZWdpb25fd2FpdCAgICAgICAgID0gMTYsCiAgb21wdF9jYWxsYmFja19tdXRleF9yZWxlYXNlZCAgICAgICAgICAgPSAxNywKICBvbXB0X2NhbGxiYWNrX2RlcGVuZGVuY2VzICAgICAgICAgICAgICA9IDE4LAogIG9tcHRfY2FsbGJhY2tfdGFza19kZXBlbmRlbmNlICAgICAgICAgID0gMTksCiAgb21wdF9jYWxsYmFja193b3JrICAgICAgICAgICAgICAgICAgICAgPSAyMCwKICBvbXB0X2NhbGxiYWNrX21hc3RlciAgICAgREVQUkVDQVRFRF81MSA9IDIxLAogIG9tcHRfY2FsbGJhY2tfbWFza2VkICAgICAgICAgICAgICAgICAgID0gMjEsCiAgb21wdF9jYWxsYmFja190YXJnZXRfbWFwICAgICAgICAgICAgICAgPSAyMiwKICBvbXB0X2NhbGxiYWNrX3N5bmNfcmVnaW9uICAgICAgICAgICAgICA9IDIzLAogIG9tcHRfY2FsbGJhY2tfbG9ja19pbml0ICAgICAgICAgICAgICAgID0gMjQsCiAgb21wdF9jYWxsYmFja19sb2NrX2Rlc3Ryb3kgICAgICAgICAgICAgPSAyNSwKICBvbXB0X2NhbGxiYWNrX211dGV4X2FjcXVpcmUgICAgICAgICAgICA9IDI2LAogIG9tcHRfY2FsbGJhY2tfbXV0ZXhfYWNxdWlyZWQgICAgICAgICAgID0gMjcsCiAgb21wdF9jYWxsYmFja19uZXN0X2xvY2sgICAgICAgICAgICAgICAgPSAyOCwKICBvbXB0X2NhbGxiYWNrX2ZsdXNoICAgICAgICAgICAgICAgICAgICA9IDI5LAogIG9tcHRfY2FsbGJhY2tfY2FuY2VsICAgICAgICAgICAgICAgICAgID0gMzAsCiAgb21wdF9jYWxsYmFja19yZWR1Y3Rpb24gICAgICAgICAgICAgICAgPSAzMSwKICBvbXB0X2NhbGxiYWNrX2Rpc3BhdGNoICAgICAgICAgICAgICAgICA9IDMyLAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X2VtaSAgICAgICAgICAgICAgID0gMzMsCiAgb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF9lbWkgICAgICAgPSAzNCwKICBvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pICAgICAgICA9IDM1LAogIG9tcHRfY2FsbGJhY2tfdGFyZ2V0X21hcF9lbWkgICAgICAgICAgID0gMzYsCiAgb21wdF9jYWxsYmFja19lcnJvciAgICAgICAgICAgICAgICAgICAgPSAzNwp9IG9tcHRfY2FsbGJhY2tzX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9yZWNvcmRfdCB7CiAgb21wdF9yZWNvcmRfb21wdCAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3JlY29yZF9uYXRpdmUgICAgICAgICAgICAgPSAyLAogIG9tcHRfcmVjb3JkX2ludmFsaWQgICAgICAgICAgICA9IDMKfSBvbXB0X3JlY29yZF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfcmVjb3JkX25hdGl2ZV90IHsKICBvbXB0X3JlY29yZF9uYXRpdmVfaW5mbyAgPSAxLAogIG9tcHRfcmVjb3JkX25hdGl2ZV9ldmVudCA9IDIKfSBvbXB0X3JlY29yZF9uYXRpdmVfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3NldF9yZXN1bHRfdCB7CiAgb21wdF9zZXRfZXJyb3IgICAgICAgICAgICA9IDAsCiAgb21wdF9zZXRfbmV2ZXIgICAgICAgICAgICA9IDEsCiAgb21wdF9zZXRfaW1wb3NzaWJsZSAgICAgICA9IDIsCiAgb21wdF9zZXRfc29tZXRpbWVzICAgICAgICA9IDMsCiAgb21wdF9zZXRfc29tZXRpbWVzX3BhaXJlZCA9IDQsCiAgb21wdF9zZXRfYWx3YXlzICAgICAgICAgICA9IDUKfSBvbXB0X3NldF9yZXN1bHRfdDsKCnR5cGVkZWYgdWludDY0X3Qgb21wdF9pZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXB0X2RldmljZV90aW1lX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcHRfYnVmZmVyX2N1cnNvcl90OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGhyZWFkX3QgewogIG9tcHRfdGhyZWFkX2luaXRpYWwgICAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3RocmVhZF93b3JrZXIgICAgICAgICAgICAgICAgICA9IDIsCiAgb21wdF90aHJlYWRfb3RoZXIgICAgICAgICAgICAgICAgICAgPSAzLAogIG9tcHRfdGhyZWFkX3Vua25vd24gICAgICAgICAgICAgICAgID0gNAp9IG9tcHRfdGhyZWFkX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zY29wZV9lbmRwb2ludF90IHsKICBvbXB0X3Njb3BlX2JlZ2luICAgICAgICAgICAgICAgICAgICA9IDEsCiAgb21wdF9zY29wZV9lbmQgICAgICAgICAgICAgICAgICAgICAgPSAyLAogIG9tcHRfc2NvcGVfYmVnaW5lbmQgICAgICAgICAgICAgICAgID0gMwp9IG9tcHRfc2NvcGVfZW5kcG9pbnRfdDsKCnR5cGVkZWYgZW51bSBvbXB0X2Rpc3BhdGNoX3QgewogIG9tcHRfZGlzcGF0Y2hfaXRlcmF0aW9uICAgICAgICAgICAgID0gMSwKICBvbXB0X2Rpc3BhdGNoX3NlY3Rpb24gICAgICAgICAgICAgICA9IDIKfSBvbXB0X2Rpc3BhdGNoX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zeW5jX3JlZ2lvbl90IHsKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXIgICAgICAgICAgICAgICAgREVQUkVDQVRFRF81MSA9IDEsCiAgb21wdF9zeW5jX3JlZ2lvbl9iYXJyaWVyX2ltcGxpY2l0ICAgICAgIERFUFJFQ0FURURfNTEgPSAyLAogIG9tcHRfc3luY19yZWdpb25fYmFycmllcl9leHBsaWNpdCAgICAgICA9IDMsCiAgb21wdF9zeW5jX3JlZ2lvbl9iYXJyaWVyX2ltcGxlbWVudGF0aW9uID0gNCwKICBvbXB0X3N5bmNfcmVnaW9uX3Rhc2t3YWl0ICAgICAgICAgICAgICAgPSA1LAogIG9tcHRfc3luY19yZWdpb25fdGFza2dyb3VwICAgICAgICAgICAgICA9IDYsCiAgb21wdF9zeW5jX3JlZ2lvbl9yZWR1Y3Rpb24gICAgICAgICAgICAgID0gNywKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXJfaW1wbGljaXRfd29ya3NoYXJlID0gOCwKICBvbXB0X3N5bmNfcmVnaW9uX2JhcnJpZXJfaW1wbGljaXRfcGFyYWxsZWwgPSA5LAogIG9tcHRfc3luY19yZWdpb25fYmFycmllcl90ZWFtcyA9IDEwCn0gb21wdF9zeW5jX3JlZ2lvbl90OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCB7CiAgb21wdF90YXJnZXRfZGF0YV9hbGxvYyAgICAgICAgICAgICAgICAgICAgICA9IDEsCiAgb21wdF90YXJnZXRfZGF0YV90cmFuc2Zlcl90b19kZXZpY2UgICAgICAgICA9IDIsCiAgb21wdF90YXJnZXRfZGF0YV90cmFuc2Zlcl9mcm9tX2RldmljZSAgICAgICA9IDMsCiAgb21wdF90YXJnZXRfZGF0YV9kZWxldGUgICAgICAgICAgICAgICAgICAgICA9IDQsCiAgb21wdF90YXJnZXRfZGF0YV9hc3NvY2lhdGUgICAgICAgICAgICAgICAgICA9IDUsCiAgb21wdF90YXJnZXRfZGF0YV9kaXNhc3NvY2lhdGUgICAgICAgICAgICAgICA9IDYsCiAgb21wdF90YXJnZXRfZGF0YV9hbGxvY19hc3luYyAgICAgICAgICAgICAgICA9IDE3LAogIG9tcHRfdGFyZ2V0X2RhdGFfdHJhbnNmZXJfdG9fZGV2aWNlX2FzeW5jICAgPSAxOCwKICBvbXB0X3RhcmdldF9kYXRhX3RyYW5zZmVyX2Zyb21fZGV2aWNlX2FzeW5jID0gMTksCiAgb21wdF90YXJnZXRfZGF0YV9kZWxldGVfYXN5bmMgICAgICAgICAgICAgICA9IDIwCn0gb21wdF90YXJnZXRfZGF0YV9vcF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfd29ya190IHsKICBvbXB0X3dvcmtfbG9vcCAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3dvcmtfc2VjdGlvbnMgICAgICAgICAgID0gMiwKICBvbXB0X3dvcmtfc2luZ2xlX2V4ZWN1dG9yICAgID0gMywKICBvbXB0X3dvcmtfc2luZ2xlX290aGVyICAgICAgID0gNCwKICBvbXB0X3dvcmtfd29ya3NoYXJlICAgICAgICAgID0gNSwKICBvbXB0X3dvcmtfZGlzdHJpYnV0ZSAgICAgICAgID0gNiwKICBvbXB0X3dvcmtfdGFza2xvb3AgICAgICAgICAgID0gNywKICBvbXB0X3dvcmtfc2NvcGUgICAgICAgICAgICAgID0gOAp9IG9tcHRfd29ya190OwoKdHlwZWRlZiBlbnVtIG9tcHRfbXV0ZXhfdCB7CiAgb21wdF9tdXRleF9sb2NrICAgICAgICAgICAgICAgICAgICAgPSAxLAogIG9tcHRfbXV0ZXhfdGVzdF9sb2NrICAgICAgICAgICAgICAgID0gMiwKICBvbXB0X211dGV4X25lc3RfbG9jayAgICAgICAgICAgICAgICA9IDMsCiAgb21wdF9tdXRleF90ZXN0X25lc3RfbG9jayAgICAgICAgICAgPSA0LAogIG9tcHRfbXV0ZXhfY3JpdGljYWwgICAgICAgICAgICAgICAgID0gNSwKICBvbXB0X211dGV4X2F0b21pYyAgICAgICAgICAgICAgICAgICA9IDYsCiAgb21wdF9tdXRleF9vcmRlcmVkICAgICAgICAgICAgICAgICAgPSA3Cn0gb21wdF9tdXRleF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfbmF0aXZlX21vbl9mbGFnX3QgewogIG9tcHRfbmF0aXZlX2RhdGFfbW90aW9uX2V4cGxpY2l0ICAgID0gMHgwMSwKICBvbXB0X25hdGl2ZV9kYXRhX21vdGlvbl9pbXBsaWNpdCAgICA9IDB4MDIsCiAgb21wdF9uYXRpdmVfa2VybmVsX2ludm9jYXRpb24gICAgICAgPSAweDA0LAogIG9tcHRfbmF0aXZlX2tlcm5lbF9leGVjdXRpb24gICAgICAgID0gMHgwOCwKICBvbXB0X25hdGl2ZV9kcml2ZXIgICAgICAgICAgICAgICAgICA9IDB4MTAsCiAgb21wdF9uYXRpdmVfcnVudGltZSAgICAgICAgICAgICAgICAgPSAweDIwLAogIG9tcHRfbmF0aXZlX292ZXJoZWFkICAgICAgICAgICAgICAgID0gMHg0MCwKICBvbXB0X25hdGl2ZV9pZGxlbmVzcyAgICAgICAgICAgICAgICA9IDB4ODAKfSBvbXB0X25hdGl2ZV9tb25fZmxhZ190OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFza19mbGFnX3QgewogIG9tcHRfdGFza19pbml0aWFsICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwMSwKICBvbXB0X3Rhc2tfaW1wbGljaXQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMDIsCiAgb21wdF90YXNrX2V4cGxpY2l0ICAgICAgICAgICAgICAgICAgPSAweDAwMDAwMDA0LAogIG9tcHRfdGFza190YXJnZXQgICAgICAgICAgICAgICAgICAgID0gMHgwMDAwMDAwOCwKICBvbXB0X3Rhc2tfdGFza3dhaXQgICAgICAgICAgICAgICAgICA9IDB4MDAwMDAwMTAsCiAgb21wdF90YXNrX3VuZGVmZXJyZWQgICAgICAgICAgICAgICAgPSAweDA4MDAwMDAwLAogIG9tcHRfdGFza191bnRpZWQgICAgICAgICAgICAgICAgICAgID0gMHgxMDAwMDAwMCwKICBvbXB0X3Rhc2tfZmluYWwgICAgICAgICAgICAgICAgICAgICA9IDB4MjAwMDAwMDAsCiAgb21wdF90YXNrX21lcmdlYWJsZSAgICAgICAgICAgICAgICAgPSAweDQwMDAwMDAwLAogIG9tcHRfdGFza19tZXJnZWQgICAgICAgICAgICAgICAgICAgID0gMHg4MDAwMDAwMAp9IG9tcHRfdGFza19mbGFnX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF90YXNrX3N0YXR1c190IHsKICBvbXB0X3Rhc2tfY29tcGxldGUgICAgICA9IDEsCiAgb21wdF90YXNrX3lpZWxkICAgICAgICAgPSAyLAogIG9tcHRfdGFza19jYW5jZWwgICAgICAgID0gMywKICBvbXB0X3Rhc2tfZGV0YWNoICAgICAgICA9IDQsCiAgb21wdF90YXNrX2Vhcmx5X2Z1bGZpbGwgPSA1LAogIG9tcHRfdGFza19sYXRlX2Z1bGZpbGwgID0gNiwKICBvbXB0X3Rhc2tfc3dpdGNoICAgICAgICA9IDcsCiAgb21wdF90YXNrd2FpdF9jb21wbGV0ZSAgPSA4Cn0gb21wdF90YXNrX3N0YXR1c190OwoKdHlwZWRlZiBlbnVtIG9tcHRfdGFyZ2V0X3QgewogIG9tcHRfdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgICAgID0gMSwKICBvbXB0X3RhcmdldF9lbnRlcl9kYXRhICAgICAgICAgICAgICA9IDIsCiAgb21wdF90YXJnZXRfZXhpdF9kYXRhICAgICAgICAgICAgICAgPSAzLAogIG9tcHRfdGFyZ2V0X3VwZGF0ZSAgICAgICAgICAgICAgICAgID0gNCwKICBvbXB0X3RhcmdldF9ub3dhaXQgICAgICAgICAgICAgICAgICA9IDksCiAgb21wdF90YXJnZXRfZW50ZXJfZGF0YV9ub3dhaXQgICAgICAgPSAxMCwKICBvbXB0X3RhcmdldF9leGl0X2RhdGFfbm93YWl0ICAgICAgICA9IDExLAogIG9tcHRfdGFyZ2V0X3VwZGF0ZV9ub3dhaXQgICAgICAgICAgID0gMTIKfSBvbXB0X3RhcmdldF90OwoKdHlwZWRlZiBlbnVtIG9tcHRfcGFyYWxsZWxfZmxhZ190IHsKICBvbXB0X3BhcmFsbGVsX2ludm9rZXJfcHJvZ3JhbSA9IDB4MDAwMDAwMDEsCiAgb21wdF9wYXJhbGxlbF9pbnZva2VyX3J1bnRpbWUgPSAweDAwMDAwMDAyLAogIG9tcHRfcGFyYWxsZWxfbGVhZ3VlICAgICAgICAgID0gMHg0MDAwMDAwMCwKICBvbXB0X3BhcmFsbGVsX3RlYW0gICAgICAgICAgICA9IDB4ODAwMDAwMDAKfSBvbXB0X3BhcmFsbGVsX2ZsYWdfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3RhcmdldF9tYXBfZmxhZ190IHsKICBvbXB0X3RhcmdldF9tYXBfZmxhZ190byAgICAgICAgICAgICA9IDB4MDEsCiAgb21wdF90YXJnZXRfbWFwX2ZsYWdfZnJvbSAgICAgICAgICAgPSAweDAyLAogIG9tcHRfdGFyZ2V0X21hcF9mbGFnX2FsbG9jICAgICAgICAgID0gMHgwNCwKICBvbXB0X3RhcmdldF9tYXBfZmxhZ19yZWxlYXNlICAgICAgICA9IDB4MDgsCiAgb21wdF90YXJnZXRfbWFwX2ZsYWdfZGVsZXRlICAgICAgICAgPSAweDEwLAogIG9tcHRfdGFyZ2V0X21hcF9mbGFnX2ltcGxpY2l0ICAgICAgID0gMHgyMAp9IG9tcHRfdGFyZ2V0X21hcF9mbGFnX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9kZXBlbmRlbmNlX3R5cGVfdCB7CiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfaW4gICAgICAgICAgICAgID0gMSwKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV9vdXQgICAgICAgICAgICAgPSAyLAogIG9tcHRfZGVwZW5kZW5jZV90eXBlX2lub3V0ICAgICAgICAgICA9IDMsCiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfbXV0ZXhpbm91dHNldCAgID0gNCwKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV9zb3VyY2UgICAgICAgICAgPSA1LAogIG9tcHRfZGVwZW5kZW5jZV90eXBlX3NpbmsgICAgICAgICAgICA9IDYsCiAgb21wdF9kZXBlbmRlbmNlX3R5cGVfaW5vdXRzZXQgICAgICAgID0gNwp9IG9tcHRfZGVwZW5kZW5jZV90eXBlX3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9zZXZlcml0eV90IHsKICBvbXB0X3dhcm5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgPSAxLAogIG9tcHRfZmF0YWwgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDIKfSBvbXB0X3NldmVyaXR5X3Q7Cgp0eXBlZGVmIGVudW0gb21wdF9jYW5jZWxfZmxhZ190IHsKICBvbXB0X2NhbmNlbF9wYXJhbGxlbCAgICAgICA9IDB4MDEsCiAgb21wdF9jYW5jZWxfc2VjdGlvbnMgICAgICAgPSAweDAyLAogIG9tcHRfY2FuY2VsX2xvb3AgICAgICAgICAgID0gMHgwNCwKICBvbXB0X2NhbmNlbF90YXNrZ3JvdXAgICAgICA9IDB4MDgsCiAgb21wdF9jYW5jZWxfYWN0aXZhdGVkICAgICAgPSAweDEwLAogIG9tcHRfY2FuY2VsX2RldGVjdGVkICAgICAgID0gMHgyMCwKICBvbXB0X2NhbmNlbF9kaXNjYXJkZWRfdGFzayA9IDB4NDAKfSBvbXB0X2NhbmNlbF9mbGFnX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcHRfaHdpZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXB0X3dhaXRfaWRfdDsKCnR5cGVkZWYgZW51bSBvbXB0X2ZyYW1lX2ZsYWdfdCB7CiAgb21wdF9mcmFtZV9ydW50aW1lICAgICAgICA9IDB4MDAsCiAgb21wdF9mcmFtZV9hcHBsaWNhdGlvbiAgICA9IDB4MDEsCiAgb21wdF9mcmFtZV9jZmEgICAgICAgICAgICA9IDB4MTAsCiAgb21wdF9mcmFtZV9mcmFtZXBvaW50ZXIgICA9IDB4MjAsCiAgb21wdF9mcmFtZV9zdGFja2FkZHJlc3MgICA9IDB4MzAKfSBvbXB0X2ZyYW1lX2ZsYWdfdDsKCnR5cGVkZWYgZW51bSBvbXB0X3N0YXRlX3QgewogIG9tcHRfc3RhdGVfd29ya19zZXJpYWwgICAgICAgICAgICAgICAgICAgICAgPSAweDAwMCwKICBvbXB0X3N0YXRlX3dvcmtfcGFyYWxsZWwgICAgICAgICAgICAgICAgICAgID0gMHgwMDEsCiAgb21wdF9zdGF0ZV93b3JrX3JlZHVjdGlvbiAgICAgICAgICAgICAgICAgICA9IDB4MDAyLAoKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllciAgICAgICAgICAgICAgICAgICAgIERFUFJFQ0FURURfNTEgPSAweDAxMCwKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsaWNpdF9wYXJhbGxlbCAgID0gMHgwMTEsCiAgb21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfaW1wbGljaXRfd29ya3NoYXJlICA9IDB4MDEyLAogIG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2ltcGxpY2l0ICAgICAgICAgICAgREVQUkVDQVRFRF81MSA9IDB4MDEzLAogIG9tcHRfc3RhdGVfd2FpdF9iYXJyaWVyX2V4cGxpY2l0ICAgICAgICAgICAgPSAweDAxNCwKICBvbXB0X3N0YXRlX3dhaXRfYmFycmllcl9pbXBsZW1lbnRhdGlvbiAgICAgID0gMHgwMTUsCiAgb21wdF9zdGF0ZV93YWl0X2JhcnJpZXJfdGVhbXMgICAgICAgICAgICAgICA9IDB4MDE2LAoKICBvbXB0X3N0YXRlX3dhaXRfdGFza3dhaXQgICAgICAgICAgICAgICAgICAgID0gMHgwMjAsCiAgb21wdF9zdGF0ZV93YWl0X3Rhc2tncm91cCAgICAgICAgICAgICAgICAgICA9IDB4MDIxLAoKICBvbXB0X3N0YXRlX3dhaXRfbXV0ZXggICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDAsCiAgb21wdF9zdGF0ZV93YWl0X2xvY2sgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MDQxLAogIG9tcHRfc3RhdGVfd2FpdF9jcml0aWNhbCAgICAgICAgICAgICAgICAgICAgPSAweDA0MiwKICBvbXB0X3N0YXRlX3dhaXRfYXRvbWljICAgICAgICAgICAgICAgICAgICAgID0gMHgwNDMsCiAgb21wdF9zdGF0ZV93YWl0X29yZGVyZWQgICAgICAgICAgICAgICAgICAgICA9IDB4MDQ0LAoKICBvbXB0X3N0YXRlX3dhaXRfdGFyZ2V0ICAgICAgICAgICAgICAgICAgICAgID0gMHgwODAsCiAgb21wdF9zdGF0ZV93YWl0X3RhcmdldF9tYXAgICAgICAgICAgICAgICAgICA9IDB4MDgxLAogIG9tcHRfc3RhdGVfd2FpdF90YXJnZXRfdXBkYXRlICAgICAgICAgICAgICAgPSAweDA4MiwKCiAgb21wdF9zdGF0ZV9pZGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IDB4MTAwLAogIG9tcHRfc3RhdGVfb3ZlcmhlYWQgICAgICAgICAgICAgICAgICAgICAgICAgPSAweDEwMSwKICBvbXB0X3N0YXRlX3VuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAgID0gMHgxMDIKfSBvbXB0X3N0YXRlX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90ICgqb21wdF9nZXRfdW5pcXVlX2lkX3QpICh2b2lkKTsKCnR5cGVkZWYgdWludDY0X3Qgb21wZF9zaXplX3Q7Cgp0eXBlZGVmIHVpbnQ2NF90IG9tcGRfd2FpdF9pZF90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX2FkZHJfdDsKdHlwZWRlZiBpbnQ2NF90ICBvbXBkX3dvcmRfdDsKdHlwZWRlZiB1aW50NjRfdCBvbXBkX3NlZ190OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX2RldmljZV90OwoKdHlwZWRlZiB1aW50NjRfdCBvbXBkX3RocmVhZF9pZF90OwoKdHlwZWRlZiBlbnVtIG9tcGRfc2NvcGVfdCB7CiAgb21wZF9zY29wZV9nbG9iYWwgPSAxLAogIG9tcGRfc2NvcGVfYWRkcmVzc19zcGFjZSA9IDIsCiAgb21wZF9zY29wZV90aHJlYWQgPSAzLAogIG9tcGRfc2NvcGVfcGFyYWxsZWwgPSA0LAogIG9tcGRfc2NvcGVfaW1wbGljaXRfdGFzayA9IDUsCiAgb21wZF9zY29wZV90YXNrID0gNgp9IG9tcGRfc2NvcGVfdDsKCnR5cGVkZWYgdWludDY0X3Qgb21wZF9pY3ZfaWRfdDsKCnR5cGVkZWYgZW51bSBvbXBkX3JjX3QgewogIG9tcGRfcmNfb2sgPSAwLAogIG9tcGRfcmNfdW5hdmFpbGFibGUgPSAxLAogIG9tcGRfcmNfc3RhbGVfaGFuZGxlID0gMiwKICBvbXBkX3JjX2JhZF9pbnB1dCA9IDMsCiAgb21wZF9yY19lcnJvciA9IDQsCiAgb21wZF9yY191bnN1cHBvcnRlZCA9IDUsCiAgb21wZF9yY19uZWVkc19zdGF0ZV90cmFja2luZyA9IDYsCiAgb21wZF9yY19pbmNvbXBhdGlibGUgPSA3LAogIG9tcGRfcmNfZGV2aWNlX3JlYWRfZXJyb3IgPSA4LAogIG9tcGRfcmNfZGV2aWNlX3dyaXRlX2Vycm9yID0gOSwKICBvbXBkX3JjX25vbWVtID0gMTAsCiAgb21wZF9yY19pbmNvbXBsZXRlID0gMTEsCiAgb21wZF9yY19jYWxsYmFja19lcnJvciA9IDEyCn0gb21wZF9yY190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9pbnRlcmZhY2VfZm5fdCkgKHZvaWQpOwoKdHlwZWRlZiBvbXB0X2ludGVyZmFjZV9mbl90ICgqb21wdF9mdW5jdGlvbl9sb29rdXBfdCkgKAogIGNvbnN0IGNoYXIgKmludGVyZmFjZV9mdW5jdGlvbl9uYW1lCik7Cgp0eXBlZGVmIHVuaW9uIG9tcHRfZGF0YV90IHsKICB1aW50NjRfdCB2YWx1ZTsKICB2b2lkICpwdHI7Cn0gb21wdF9kYXRhX3Q7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X2ZyYW1lX3QgewogIG9tcHRfZGF0YV90IGV4aXRfZnJhbWU7CiAgb21wdF9kYXRhX3QgZW50ZXJfZnJhbWU7CiAgaW50IGV4aXRfZnJhbWVfZmxhZ3M7CiAgaW50IGVudGVyX2ZyYW1lX2ZsYWdzOwp9IG9tcHRfZnJhbWVfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdCkgKHZvaWQpOwoKdHlwZWRlZiB2b2lkIG9tcHRfZGV2aWNlX3Q7Cgp0eXBlZGVmIHZvaWQgb21wdF9idWZmZXJfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfYnVmZmVyX3JlcXVlc3RfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIG9tcHRfYnVmZmVyX3QgKipidWZmZXIsCiAgc2l6ZV90ICpieXRlcwopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19idWZmZXJfY29tcGxldGVfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBzaXplX3QgYnl0ZXMsCiAgb21wdF9idWZmZXJfY3Vyc29yX3QgYmVnaW4sCiAgaW50IGJ1ZmZlcl9vd25lZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9maW5hbGl6ZV90KSAoCiAgb21wdF9kYXRhX3QgKnRvb2xfZGF0YQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2luaXRpYWxpemVfdCkgKAogIG9tcHRfZnVuY3Rpb25fbG9va3VwX3QgbG9va3VwLAogIGludCBpbml0aWFsX2RldmljZV9udW0sCiAgb21wdF9kYXRhX3QgKnRvb2xfZGF0YQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9zdGFydF90b29sX3Jlc3VsdF90IHsKICBvbXB0X2luaXRpYWxpemVfdCBpbml0aWFsaXplOwogIG9tcHRfZmluYWxpemVfdCBmaW5hbGl6ZTsKICBvbXB0X2RhdGFfdCB0b29sX2RhdGE7Cn0gb21wdF9zdGFydF90b29sX3Jlc3VsdF90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfYWJzdHJhY3RfdCB7CiAgb21wdF9yZWNvcmRfbmF0aXZlX3QgcmNsYXNzOwogIGNvbnN0IGNoYXIgKnR5cGU7CiAgb21wdF9kZXZpY2VfdGltZV90IHN0YXJ0X3RpbWU7CiAgb21wdF9kZXZpY2VfdGltZV90IGVuZF90aW1lOwogIG9tcHRfaHdpZF90IGh3aWQ7Cn0gb21wdF9yZWNvcmRfYWJzdHJhY3RfdDsKCnR5cGVkZWYgc3RydWN0IG9tcHRfZGVwZW5kZW5jZV90IHsKICBvbXB0X2RhdGFfdCB2YXJpYWJsZTsKICBvbXB0X2RlcGVuZGVuY2VfdHlwZV90IGRlcGVuZGVuY2VfdHlwZTsKfSBvbXB0X2RlcGVuZGVuY2VfdDsKCnR5cGVkZWYgaW50ICgqb21wdF9lbnVtZXJhdGVfc3RhdGVzX3QpICgKICBpbnQgY3VycmVudF9zdGF0ZSwKICBpbnQgKm5leHRfc3RhdGUsCiAgY29uc3QgY2hhciAqKm5leHRfc3RhdGVfbmFtZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2VudW1lcmF0ZV9tdXRleF9pbXBsc190KSAoCiAgaW50IGN1cnJlbnRfaW1wbCwKICBpbnQgKm5leHRfaW1wbCwKICBjb25zdCBjaGFyICoqbmV4dF9pbXBsX25hbWUKKTsKCnR5cGVkZWYgb21wdF9zZXRfcmVzdWx0X3QgKCpvbXB0X3NldF9jYWxsYmFja190KSAoCiAgb21wdF9jYWxsYmFja3NfdCBldmVudCwKICBvbXB0X2NhbGxiYWNrX3QgY2FsbGJhY2sKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfY2FsbGJhY2tfdCkgKAogIG9tcHRfY2FsbGJhY2tzX3QgZXZlbnQsCiAgb21wdF9jYWxsYmFja190ICpjYWxsYmFjawopOwoKdHlwZWRlZiBvbXB0X2RhdGFfdCAqKCpvbXB0X2dldF90aHJlYWRfZGF0YV90KSAodm9pZCk7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X251bV9wcm9jc190KSAodm9pZCk7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X251bV9wbGFjZXNfdCkgKHZvaWQpOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF9wbGFjZV9wcm9jX2lkc190KSAoCiAgaW50IHBsYWNlX251bSwKICBpbnQgaWRzX3NpemUsCiAgaW50ICppZHMKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGxhY2VfbnVtX3QpICh2b2lkKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGFydGl0aW9uX3BsYWNlX251bXNfdCkgKAogIGludCBwbGFjZV9udW1zX3NpemUsCiAgaW50ICpwbGFjZV9udW1zCik7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X3Byb2NfaWRfdCkgKHZvaWQpOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF9zdGF0ZV90KSAoCiAgb21wdF93YWl0X2lkX3QgKndhaXRfaWQKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfcGFyYWxsZWxfaW5mb190KSAoCiAgaW50IGFuY2VzdG9yX2xldmVsLAogIG9tcHRfZGF0YV90ICoqcGFyYWxsZWxfZGF0YSwKICBpbnQgKnRlYW1fc2l6ZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF90YXNrX2luZm9fdCkgKAogIGludCBhbmNlc3Rvcl9sZXZlbCwKICBpbnQgKmZsYWdzLAogIG9tcHRfZGF0YV90ICoqdGFza19kYXRhLAogIG9tcHRfZnJhbWVfdCAqKnRhc2tfZnJhbWUsCiAgb21wdF9kYXRhX3QgKipwYXJhbGxlbF9kYXRhLAogIGludCAqdGhyZWFkX251bQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2dldF90YXNrX21lbW9yeV90KSgKICB2b2lkICoqYWRkciwKICBzaXplX3QgKnNpemUsCiAgaW50IGJsb2NrCik7Cgp0eXBlZGVmIGludCAoKm9tcHRfZ2V0X3RhcmdldF9pbmZvX3QpICgKICB1aW50NjRfdCAqZGV2aWNlX251bSwKICBvbXB0X2lkX3QgKnRhcmdldF9pZCwKICBvbXB0X2lkX3QgKmhvc3Rfb3BfaWQKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfbnVtX2RldmljZXNfdCkgKHZvaWQpOwoKdHlwZWRlZiB2b2lkICgqb21wdF9maW5hbGl6ZV90b29sX3QpICh2b2lkKTsKCnR5cGVkZWYgaW50ICgqb21wdF9nZXRfZGV2aWNlX251bV9wcm9jc190KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlCik7Cgp0eXBlZGVmIG9tcHRfZGV2aWNlX3RpbWVfdCAoKm9tcHRfZ2V0X2RldmljZV90aW1lX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgZG91YmxlICgqb21wdF90cmFuc2xhdGVfdGltZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIG9tcHRfZGV2aWNlX3RpbWVfdCB0aW1lCik7Cgp0eXBlZGVmIG9tcHRfc2V0X3Jlc3VsdF90ICgqb21wdF9zZXRfdHJhY2Vfb21wdF90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIHVuc2lnbmVkIGludCBlbmFibGUsCiAgdW5zaWduZWQgaW50IGV0eXBlCik7Cgp0eXBlZGVmIG9tcHRfc2V0X3Jlc3VsdF90ICgqb21wdF9zZXRfdHJhY2VfbmF0aXZlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UsCiAgaW50IGVuYWJsZSwKICBpbnQgZmxhZ3MKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9zdGFydF90cmFjZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIG9tcHRfY2FsbGJhY2tfYnVmZmVyX3JlcXVlc3RfdCByZXF1ZXN0LAogIG9tcHRfY2FsbGJhY2tfYnVmZmVyX2NvbXBsZXRlX3QgY29tcGxldGUKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9wYXVzZV90cmFjZV90KSAoCiAgb21wdF9kZXZpY2VfdCAqZGV2aWNlLAogIGludCBiZWdpbl9wYXVzZQopOwoKdHlwZWRlZiBpbnQgKCpvbXB0X2ZsdXNoX3RyYWNlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9zdG9wX3RyYWNlX3QpICgKICBvbXB0X2RldmljZV90ICpkZXZpY2UKKTsKCnR5cGVkZWYgaW50ICgqb21wdF9hZHZhbmNlX2J1ZmZlcl9jdXJzb3JfdCkgKAogIG9tcHRfZGV2aWNlX3QgKmRldmljZSwKICBvbXB0X2J1ZmZlcl90ICpidWZmZXIsCiAgc2l6ZV90IHNpemUsCiAgb21wdF9idWZmZXJfY3Vyc29yX3QgY3VycmVudCwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCAqbmV4dAopOwoKdHlwZWRlZiBvbXB0X3JlY29yZF90ICgqb21wdF9nZXRfcmVjb3JkX3R5cGVfdCkgKAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCBjdXJyZW50Cik7Cgp0eXBlZGVmIHZvaWQgKigqb21wdF9nZXRfcmVjb3JkX25hdGl2ZV90KSAoCiAgb21wdF9idWZmZXJfdCAqYnVmZmVyLAogIG9tcHRfYnVmZmVyX2N1cnNvcl90IGN1cnJlbnQsCiAgb21wdF9pZF90ICpob3N0X29wX2lkCik7Cgp0eXBlZGVmIG9tcHRfcmVjb3JkX2Fic3RyYWN0X3QgKgooKm9tcHRfZ2V0X3JlY29yZF9hYnN0cmFjdF90KSAoCiAgdm9pZCAqbmF0aXZlX3JlY29yZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190aHJlYWRfYmVnaW5fdCkgKAogIG9tcHRfdGhyZWFkX3QgdGhyZWFkX3R5cGUsCiAgb21wdF9kYXRhX3QgKnRocmVhZF9kYXRhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90aHJlYWRfYmVnaW5fdCB7CiAgb21wdF90aHJlYWRfdCB0aHJlYWRfdHlwZTsKfSBvbXB0X3JlY29yZF90aHJlYWRfYmVnaW5fdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGhyZWFkX2VuZF90KSAoCiAgb21wdF9kYXRhX3QgKnRocmVhZF9kYXRhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3BhcmFsbGVsX2JlZ2luX3QpICgKICBvbXB0X2RhdGFfdCAqZW5jb3VudGVyaW5nX3Rhc2tfZGF0YSwKICBjb25zdCBvbXB0X2ZyYW1lX3QgKmVuY291bnRlcmluZ190YXNrX2ZyYW1lLAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfcGFyYWxsZWxpc20sCiAgaW50IGZsYWdzLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3BhcmFsbGVsX2JlZ2luX3QgewogIG9tcHRfaWRfdCBlbmNvdW50ZXJpbmdfdGFza19pZDsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgdW5zaWduZWQgaW50IHJlcXVlc3RlZF9wYXJhbGxlbGlzbTsKICBpbnQgZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9wYXJhbGxlbF9iZWdpbl90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19wYXJhbGxlbF9lbmRfdCkgKAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIG9tcHRfZGF0YV90ICplbmNvdW50ZXJpbmdfdGFza19kYXRhLAogIGludCBmbGFncywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9wYXJhbGxlbF9lbmRfdCB7CiAgb21wdF9pZF90IHBhcmFsbGVsX2lkOwogIG9tcHRfaWRfdCBlbmNvdW50ZXJpbmdfdGFza19pZDsKICBpbnQgZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9wYXJhbGxlbF9lbmRfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfd29ya190KSAoCiAgb21wdF93b3JrX3Qgd3N0eXBlLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIHVpbnQ2NF90IGNvdW50LAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3dvcmtfdCB7CiAgb21wdF93b3JrX3Qgd3N0eXBlOwogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludDsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgdWludDY0X3QgY291bnQ7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF93b3JrX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2Rpc3BhdGNoX3QpICgKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfZGlzcGF0Y2hfdCBraW5kLAogIG9tcHRfZGF0YV90IGluc3RhbmNlCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9kaXNwYXRjaF90IHsKICBvbXB0X2lkX3QgcGFyYWxsZWxfaWQ7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9kaXNwYXRjaF90IGtpbmQ7CiAgb21wdF9kYXRhX3QgaW5zdGFuY2U7Cn0gb21wdF9yZWNvcmRfZGlzcGF0Y2hfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGFza19jcmVhdGVfdCkgKAogIG9tcHRfZGF0YV90ICplbmNvdW50ZXJpbmdfdGFza19kYXRhLAogIGNvbnN0IG9tcHRfZnJhbWVfdCAqZW5jb3VudGVyaW5nX3Rhc2tfZnJhbWUsCiAgb21wdF9kYXRhX3QgKm5ld190YXNrX2RhdGEsCiAgaW50IGZsYWdzLAogIGludCBoYXNfZGVwZW5kZW5jZXMsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFza19jcmVhdGVfdCB7CiAgb21wdF9pZF90IGVuY291bnRlcmluZ190YXNrX2lkOwogIG9tcHRfaWRfdCBuZXdfdGFza19pZDsKICBpbnQgZmxhZ3M7CiAgaW50IGhhc19kZXBlbmRlbmNlczsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3Rhc2tfY3JlYXRlX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RlcGVuZGVuY2VzX3QpICgKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIGNvbnN0IG9tcHRfZGVwZW5kZW5jZV90ICpkZXBzLAogIGludCBuZGVwcwopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfZGVwZW5kZW5jZXNfdCB7CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9kZXBlbmRlbmNlX3QgZGVwOwogIGludCBuZGVwczsKfSBvbXB0X3JlY29yZF9kZXBlbmRlbmNlc190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXNrX2RlcGVuZGVuY2VfdCkgKAogIG9tcHRfZGF0YV90ICpzcmNfdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICpzaW5rX3Rhc2tfZGF0YQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFza19kZXBlbmRlbmNlX3QgewogIG9tcHRfaWRfdCBzcmNfdGFza19pZDsKICBvbXB0X2lkX3Qgc2lua190YXNrX2lkOwp9IG9tcHRfcmVjb3JkX3Rhc2tfZGVwZW5kZW5jZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXNrX3NjaGVkdWxlX3QpICgKICBvbXB0X2RhdGFfdCAqcHJpb3JfdGFza19kYXRhLAogIG9tcHRfdGFza19zdGF0dXNfdCBwcmlvcl90YXNrX3N0YXR1cywKICBvbXB0X2RhdGFfdCAqbmV4dF90YXNrX2RhdGEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX3Rhc2tfc2NoZWR1bGVfdCB7CiAgb21wdF9pZF90IHByaW9yX3Rhc2tfaWQ7CiAgb21wdF90YXNrX3N0YXR1c190IHByaW9yX3Rhc2tfc3RhdHVzOwogIG9tcHRfaWRfdCBuZXh0X3Rhc2tfaWQ7Cn0gb21wdF9yZWNvcmRfdGFza19zY2hlZHVsZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19pbXBsaWNpdF90YXNrX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF9kYXRhX3QgKnBhcmFsbGVsX2RhdGEsCiAgb21wdF9kYXRhX3QgKnRhc2tfZGF0YSwKICB1bnNpZ25lZCBpbnQgYWN0dWFsX3BhcmFsbGVsaXNtLAogIHVuc2lnbmVkIGludCBpbmRleCwKICBpbnQgZmxhZ3MKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX2ltcGxpY2l0X3Rhc2tfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICB1bnNpZ25lZCBpbnQgYWN0dWFsX3BhcmFsbGVsaXNtOwogIHVuc2lnbmVkIGludCBpbmRleDsKICBpbnQgZmxhZ3M7Cn0gb21wdF9yZWNvcmRfaW1wbGljaXRfdGFza190OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19tYXNrZWRfdCkgKAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqcGFyYWxsZWxfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgb21wdF9jYWxsYmFja19tYXNrZWRfdCBvbXB0X2NhbGxiYWNrX21hc3Rlcl90IERFUFJFQ0FURURfNTE7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9tYXNrZWRfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX21hc2tlZF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19zeW5jX3JlZ2lvbl90KSAoCiAgb21wdF9zeW5jX3JlZ2lvbl90IGtpbmQsCiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50LAogIG9tcHRfZGF0YV90ICpwYXJhbGxlbF9kYXRhLAogIG9tcHRfZGF0YV90ICp0YXNrX2RhdGEsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfc3luY19yZWdpb25fdCB7CiAgb21wdF9zeW5jX3JlZ2lvbl90IGtpbmQ7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfaWRfdCBwYXJhbGxlbF9pZDsKICBvbXB0X2lkX3QgdGFza19pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3N5bmNfcmVnaW9uX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX211dGV4X2FjcXVpcmVfdCkgKAogIG9tcHRfbXV0ZXhfdCBraW5kLAogIHVuc2lnbmVkIGludCBoaW50LAogIHVuc2lnbmVkIGludCBpbXBsLAogIG9tcHRfd2FpdF9pZF90IHdhaXRfaWQsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfbXV0ZXhfYWNxdWlyZV90IHsKICBvbXB0X211dGV4X3Qga2luZDsKICB1bnNpZ25lZCBpbnQgaGludDsKICB1bnNpZ25lZCBpbnQgaW1wbDsKICBvbXB0X3dhaXRfaWRfdCB3YWl0X2lkOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfbXV0ZXhfYWNxdWlyZV90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19tdXRleF90KSAoCiAgb21wdF9tdXRleF90IGtpbmQsCiAgb21wdF93YWl0X2lkX3Qgd2FpdF9pZCwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9tdXRleF90IHsKICBvbXB0X211dGV4X3Qga2luZDsKICBvbXB0X3dhaXRfaWRfdCB3YWl0X2lkOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfbXV0ZXhfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfbmVzdF9sb2NrX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF93YWl0X2lkX3Qgd2FpdF9pZCwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdCB7CiAgb21wdF9zY29wZV9lbmRwb2ludF90IGVuZHBvaW50OwogIG9tcHRfd2FpdF9pZF90IHdhaXRfaWQ7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfZmx1c2hfdCkgKAogIG9tcHRfZGF0YV90ICp0aHJlYWRfZGF0YSwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9mbHVzaF90IHsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX2ZsdXNoX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2NhbmNlbF90KSAoCiAgb21wdF9kYXRhX3QgKnRhc2tfZGF0YSwKICBpbnQgZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfY2FuY2VsX3QgewogIG9tcHRfaWRfdCB0YXNrX2lkOwogIGludCBmbGFnczsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX2NhbmNlbF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19kZXZpY2VfaW5pdGlhbGl6ZV90KSAoCiAgaW50IGRldmljZV9udW0sCiAgY29uc3QgY2hhciAqdHlwZSwKICBvbXB0X2RldmljZV90ICpkZXZpY2UsCiAgb21wdF9mdW5jdGlvbl9sb29rdXBfdCBsb29rdXAsCiAgY29uc3QgY2hhciAqZG9jdW1lbnRhdGlvbgopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja19kZXZpY2VfZmluYWxpemVfdCkgKAogIGludCBkZXZpY2VfbnVtCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RldmljZV9sb2FkX3QpICgKICBpbnQgZGV2aWNlX251bSwKICBjb25zdCBjaGFyICpmaWxlbmFtZSwKICBpbnQ2NF90IG9mZnNldF9pbl9maWxlLAogIHZvaWQgKnZtYV9pbl9maWxlLAogIHNpemVfdCBieXRlcywKICB2b2lkICpob3N0X2FkZHIsCiAgdm9pZCAqZGV2aWNlX2FkZHIsCiAgdWludDY0X3QgbW9kdWxlX2lkCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX2RldmljZV91bmxvYWRfdCkgKAogIGludCBkZXZpY2VfbnVtLAogIHVpbnQ2NF90IG1vZHVsZV9pZAopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfZGF0YV9vcF9lbWlfdCkgKAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBvbXB0X2RhdGFfdCAqdGFyZ2V0X3Rhc2tfZGF0YSwKICBvbXB0X2RhdGFfdCAqdGFyZ2V0X2RhdGEsCiAgb21wdF9pZF90ICpob3N0X29wX2lkLAogIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCBvcHR5cGUsCiAgdm9pZCAqc3JjX2FkZHIsCiAgaW50IHNyY19kZXZpY2VfbnVtLAogIHZvaWQgKmRlc3RfYWRkciwKICBpbnQgZGVzdF9kZXZpY2VfbnVtLAogIHNpemVfdCBieXRlcywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF9kYXRhX29wX3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIG9tcHRfaWRfdCBob3N0X29wX2lkLAogIG9tcHRfdGFyZ2V0X2RhdGFfb3BfdCBvcHR5cGUsCiAgdm9pZCAqc3JjX2FkZHIsCiAgaW50IHNyY19kZXZpY2VfbnVtLAogIHZvaWQgKmRlc3RfYWRkciwKICBpbnQgZGVzdF9kZXZpY2VfbnVtLAogIHNpemVfdCBieXRlcywKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90YXJnZXRfZGF0YV9vcF90IHsKICBvbXB0X2lkX3QgaG9zdF9vcF9pZDsKICBvbXB0X3RhcmdldF9kYXRhX29wX3Qgb3B0eXBlOwogIHZvaWQgKnNyY19hZGRyOwogIGludCBzcmNfZGV2aWNlX251bTsKICB2b2lkICpkZXN0X2FkZHI7CiAgaW50IGRlc3RfZGV2aWNlX251bTsKICBzaXplX3QgYnl0ZXM7CiAgb21wdF9kZXZpY2VfdGltZV90IGVuZF90aW1lOwogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmE7Cn0gb21wdF9yZWNvcmRfdGFyZ2V0X2RhdGFfb3BfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfdGFyZ2V0X2VtaV90KSAoCiAgb21wdF90YXJnZXRfdCBraW5kLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBpbnQgZGV2aWNlX251bSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICp0YXJnZXRfdGFza19kYXRhLAogIG9tcHRfZGF0YV90ICp0YXJnZXRfZGF0YSwKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhCik7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF90KSAoCiAgb21wdF90YXJnZXRfdCBraW5kLAogIG9tcHRfc2NvcGVfZW5kcG9pbnRfdCBlbmRwb2ludCwKICBpbnQgZGV2aWNlX251bSwKICBvbXB0X2RhdGFfdCAqdGFza19kYXRhLAogIG9tcHRfaWRfdCB0YXJnZXRfaWQsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFyZ2V0X3QgewogIG9tcHRfdGFyZ2V0X3Qga2luZDsKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQ7CiAgaW50IGRldmljZV9udW07CiAgb21wdF9pZF90IHRhc2tfaWQ7CiAgb21wdF9pZF90IHRhcmdldF9pZDsKICBjb25zdCB2b2lkICpjb2RlcHRyX3JhOwp9IG9tcHRfcmVjb3JkX3RhcmdldF90OwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfbWFwX2VtaV90KSAoCiAgb21wdF9kYXRhX3QgKnRhcmdldF9kYXRhLAogIHVuc2lnbmVkIGludCBuaXRlbXMsCiAgdm9pZCAqKmhvc3RfYWRkciwKICB2b2lkICoqZGV2aWNlX2FkZHIsCiAgc2l6ZV90ICpieXRlcywKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfbWFwX3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIHVuc2lnbmVkIGludCBuaXRlbXMsCiAgdm9pZCAqKmhvc3RfYWRkciwKICB2b2lkICoqZGV2aWNlX2FkZHIsCiAgc2l6ZV90ICpieXRlcywKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3MsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfdGFyZ2V0X21hcF90IHsKICBvbXB0X2lkX3QgdGFyZ2V0X2lkOwogIHVuc2lnbmVkIGludCBuaXRlbXM7CiAgdm9pZCAqKmhvc3RfYWRkcjsKICB2b2lkICoqZGV2aWNlX2FkZHI7CiAgc2l6ZV90ICpieXRlczsKICB1bnNpZ25lZCBpbnQgKm1hcHBpbmdfZmxhZ3M7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF90YXJnZXRfbWFwX3Q7Cgp0eXBlZGVmIHZvaWQgKCpvbXB0X2NhbGxiYWNrX3RhcmdldF9zdWJtaXRfZW1pX3QpICgKICBvbXB0X3Njb3BlX2VuZHBvaW50X3QgZW5kcG9pbnQsCiAgb21wdF9kYXRhX3QgKnRhcmdldF9kYXRhLAogIG9tcHRfaWRfdCAqaG9zdF9vcF9pZCwKICB1bnNpZ25lZCBpbnQgcmVxdWVzdGVkX251bV90ZWFtcwopOwoKdHlwZWRlZiB2b2lkICgqb21wdF9jYWxsYmFja190YXJnZXRfc3VibWl0X3QpICgKICBvbXB0X2lkX3QgdGFyZ2V0X2lkLAogIG9tcHRfaWRfdCBob3N0X29wX2lkLAogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfbnVtX3RlYW1zCik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF90YXJnZXRfa2VybmVsX3QgewogIG9tcHRfaWRfdCBob3N0X29wX2lkOwogIHVuc2lnbmVkIGludCByZXF1ZXN0ZWRfbnVtX3RlYW1zOwogIHVuc2lnbmVkIGludCBncmFudGVkX251bV90ZWFtczsKICBvbXB0X2RldmljZV90aW1lX3QgZW5kX3RpbWU7Cn0gb21wdF9yZWNvcmRfdGFyZ2V0X2tlcm5lbF90OwoKdHlwZWRlZiBpbnQgKCpvbXB0X2NhbGxiYWNrX2NvbnRyb2xfdG9vbF90KSAoCiAgdWludDY0X3QgY29tbWFuZCwKICB1aW50NjRfdCBtb2RpZmllciwKICB2b2lkICphcmcsCiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYQopOwoKdHlwZWRlZiBzdHJ1Y3Qgb21wdF9yZWNvcmRfY29udHJvbF90b29sX3QgewogIHVpbnQ2NF90IGNvbW1hbmQ7CiAgdWludDY0X3QgbW9kaWZpZXI7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9jb250cm9sX3Rvb2xfdDsKCnR5cGVkZWYgdm9pZCAoKm9tcHRfY2FsbGJhY2tfZXJyb3JfdCkgKAogIG9tcHRfc2V2ZXJpdHlfdCBzZXZlcml0eSwKICBjb25zdCBjaGFyICptZXNzYWdlLCBzaXplX3QgbGVuZ3RoLAogIGNvbnN0IHZvaWQgKmNvZGVwdHJfcmEKKTsKCnR5cGVkZWYgc3RydWN0IG9tcHRfcmVjb3JkX2Vycm9yX3QgewogIG9tcHRfc2V2ZXJpdHlfdCBzZXZlcml0eTsKICBjb25zdCBjaGFyICptZXNzYWdlOwogIHNpemVfdCBsZW5ndGg7CiAgY29uc3Qgdm9pZCAqY29kZXB0cl9yYTsKfSBvbXB0X3JlY29yZF9lcnJvcl90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9hZGRyZXNzX3QgewogIG9tcGRfc2VnX3Qgc2VnbWVudDsKICBvbXBkX2FkZHJfdCBhZGRyZXNzOwp9IG9tcGRfYWRkcmVzc190OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9mcmFtZV9pbmZvX3QgewogIG9tcGRfYWRkcmVzc190IGZyYW1lX2FkZHJlc3M7CiAgb21wZF93b3JkX3QgZnJhbWVfZmxhZzsKfSBvbXBkX2ZyYW1lX2luZm9fdDsKCnR5cGVkZWYgc3RydWN0IF9vbXBkX2FzcGFjZV9oYW5kbGUgb21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90Owp0eXBlZGVmIHN0cnVjdCBfb21wZF90aHJlYWRfaGFuZGxlIG9tcGRfdGhyZWFkX2hhbmRsZV90Owp0eXBlZGVmIHN0cnVjdCBfb21wZF9wYXJhbGxlbF9oYW5kbGUgb21wZF9wYXJhbGxlbF9oYW5kbGVfdDsKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfdGFza19oYW5kbGUgb21wZF90YXNrX2hhbmRsZV90OwoKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfYXNwYWNlX2NvbnQgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdDsKdHlwZWRlZiBzdHJ1Y3QgX29tcGRfdGhyZWFkX2NvbnQgb21wZF90aHJlYWRfY29udGV4dF90OwoKdHlwZWRlZiBzdHJ1Y3Qgb21wZF9kZXZpY2VfdHlwZV9zaXplc190IHsKICB1aW50OF90IHNpemVvZl9jaGFyOwogIHVpbnQ4X3Qgc2l6ZW9mX3Nob3J0OwogIHVpbnQ4X3Qgc2l6ZW9mX2ludDsKICB1aW50OF90IHNpemVvZl9sb25nOwogIHVpbnQ4X3Qgc2l6ZW9mX2xvbmdfbG9uZzsKICB1aW50OF90IHNpemVvZl9wb2ludGVyOwp9IG9tcGRfZGV2aWNlX3R5cGVfc2l6ZXNfdDsKCnZvaWQgb21wZF9kbGxfbG9jYXRpb25zX3ZhbGlkKHZvaWQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX21lbW9yeV9hbGxvY19mbl90KShvbXBkX3NpemVfdCBuYnl0ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKnB0cik7Cgp0eXBlZGVmIG9tcGRfcmNfdCAoKm9tcGRfY2FsbGJhY2tfbWVtb3J5X2ZyZWVfZm5fdCkodm9pZCAqcHRyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19nZXRfdGhyZWFkX2NvbnRleHRfZm9yX3RocmVhZF9pZF9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwgb21wZF90aHJlYWRfaWRfdCBraW5kLAogICAgb21wZF9zaXplX3Qgc2l6ZW9mX3RocmVhZF9pZCwgY29uc3Qgdm9pZCAqdGhyZWFkX2lkLAogICAgb21wZF90aHJlYWRfY29udGV4dF90ICoqdGhyZWFkX2NvbnRleHQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3NpemVvZl9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwKICAgIG9tcGRfZGV2aWNlX3R5cGVfc2l6ZXNfdCAqc2l6ZXMpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3N5bWJvbF9hZGRyX2ZuX3QpKAogICAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqYWRkcmVzc19zcGFjZV9jb250ZXh0LAogICAgb21wZF90aHJlYWRfY29udGV4dF90ICp0aHJlYWRfY29udGV4dCwgY29uc3QgY2hhciAqc3ltYm9sX25hbWUsCiAgICBvbXBkX2FkZHJlc3NfdCAqc3ltYm9sX2FkZHIsIGNvbnN0IGNoYXIgKmZpbGVfbmFtZSk7Cgp0eXBlZGVmIG9tcGRfcmNfdCAoKm9tcGRfY2FsbGJhY2tfbWVtb3J5X3JlYWRfZm5fdCkoCiAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICphZGRyZXNzX3NwYWNlX2NvbnRleHQsCiAgICBvbXBkX3RocmVhZF9jb250ZXh0X3QgKnRocmVhZF9jb250ZXh0LCBjb25zdCBvbXBkX2FkZHJlc3NfdCAqYWRkciwKICAgIG9tcGRfc2l6ZV90IG5ieXRlcywgdm9pZCAqYnVmZmVyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19tZW1vcnlfd3JpdGVfZm5fdCkoCiAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfY29udGV4dF90ICphZGRyZXNzX3NwYWNlX2NvbnRleHQsCiAgICBvbXBkX3RocmVhZF9jb250ZXh0X3QgKnRocmVhZF9jb250ZXh0LCBjb25zdCBvbXBkX2FkZHJlc3NfdCAqYWRkciwKICAgIG9tcGRfc2l6ZV90IG5ieXRlcywgY29uc3Qgdm9pZCAqYnVmZmVyKTsKCnR5cGVkZWYgb21wZF9yY190ICgqb21wZF9jYWxsYmFja19kZXZpY2VfaG9zdF9mbl90KSgKICAgIG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmFkZHJlc3Nfc3BhY2VfY29udGV4dCwgY29uc3Qgdm9pZCAqaW5wdXQsCiAgICBvbXBkX3NpemVfdCB1bml0X3NpemUsIG9tcGRfc2l6ZV90IGNvdW50LCB2b2lkICpvdXRwdXQpOwoKdHlwZWRlZiBvbXBkX3JjX3QgKCpvbXBkX2NhbGxiYWNrX3ByaW50X3N0cmluZ19mbl90KShjb25zdCBjaGFyICpzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNhdGVnb3J5KTsKCnR5cGVkZWYgc3RydWN0IG9tcGRfY2FsbGJhY2tzX3QgewogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X2FsbG9jX2ZuX3QgYWxsb2NfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X2ZyZWVfZm5fdCBmcmVlX21lbW9yeTsKICBvbXBkX2NhbGxiYWNrX3ByaW50X3N0cmluZ19mbl90IHByaW50X3N0cmluZzsKICBvbXBkX2NhbGxiYWNrX3NpemVvZl9mbl90IHNpemVvZl90eXBlOwogIG9tcGRfY2FsbGJhY2tfc3ltYm9sX2FkZHJfZm5fdCBzeW1ib2xfYWRkcl9sb29rdXA7CiAgb21wZF9jYWxsYmFja19tZW1vcnlfcmVhZF9mbl90IHJlYWRfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X3dyaXRlX2ZuX3Qgd3JpdGVfbWVtb3J5OwogIG9tcGRfY2FsbGJhY2tfbWVtb3J5X3JlYWRfZm5fdCByZWFkX3N0cmluZzsKICBvbXBkX2NhbGxiYWNrX2RldmljZV9ob3N0X2ZuX3QgZGV2aWNlX3RvX2hvc3Q7CiAgb21wZF9jYWxsYmFja19kZXZpY2VfaG9zdF9mbl90IGhvc3RfdG9fZGV2aWNlOwogIG9tcGRfY2FsbGJhY2tfZ2V0X3RocmVhZF9jb250ZXh0X2Zvcl90aHJlYWRfaWRfZm5fdAogICAgICBnZXRfdGhyZWFkX2NvbnRleHRfZm9yX3RocmVhZF9pZDsKfSBvbXBkX2NhbGxiYWNrc190OwoKdm9pZCBvbXBkX2JwX3BhcmFsbGVsX2JlZ2luKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3BhcmFsbGVsX2VuZCh2b2lkKTsKCnZvaWQgb21wZF9icF90YXNrX2JlZ2luKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3Rhc2tfZW5kKHZvaWQpOwoKdm9pZCBvbXBkX2JwX3RocmVhZF9iZWdpbih2b2lkKTsKCnZvaWQgb21wZF9icF90aHJlYWRfZW5kKHZvaWQpOwoKdm9pZCBvbXBkX2JwX2RldmljZV9iZWdpbih2b2lkKTsKCnZvaWQgb21wZF9icF9kZXZpY2VfZW5kKHZvaWQpOwoKb21wZF9yY190IG9tcGRfaW5pdGlhbGl6ZShvbXBkX3dvcmRfdCBhcGlfdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvbXBkX2NhbGxiYWNrc190ICpjYWxsYmFja3MpOwoKb21wZF9yY190IG9tcGRfZ2V0X2FwaV92ZXJzaW9uKG9tcGRfd29yZF90ICp2ZXJzaW9uKTsKCm9tcGRfcmNfdCBvbXBkX2dldF92ZXJzaW9uX3N0cmluZyhjb25zdCBjaGFyICoqc3RyaW5nKTsKCm9tcGRfcmNfdCBvbXBkX2ZpbmFsaXplKHZvaWQpOwoKb21wZF9yY190IG9tcGRfcHJvY2Vzc19pbml0aWFsaXplKG9tcGRfYWRkcmVzc19zcGFjZV9jb250ZXh0X3QgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKipoYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZGV2aWNlX2luaXRpYWxpemUob21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICpwcm9jZXNzX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9hZGRyZXNzX3NwYWNlX2NvbnRleHRfdCAqZGV2aWNlX2NvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfZGV2aWNlX3Qga2luZCwgb21wZF9zaXplX3Qgc2l6ZW9mX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICppZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICoqZGV2aWNlX2hhbmRsZSk7CgpvbXBkX3JjX3Qgb21wZF9yZWxfYWRkcmVzc19zcGFjZV9oYW5kbGUob21wZF9hZGRyZXNzX3NwYWNlX2hhbmRsZV90ICpoYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZ2V0X29tcF92ZXJzaW9uKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpvbXBfdmVyc2lvbik7CgpvbXBkX3JjX3QKb21wZF9nZXRfb21wX3ZlcnNpb25fc3RyaW5nKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKipzdHJpbmcpOwoKb21wZF9yY190IG9tcGRfZ2V0X3RocmVhZF9pbl9wYXJhbGxlbChvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRocmVhZF9udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKip0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90aHJlYWRfaGFuZGxlKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3RocmVhZF9pZF90IGtpbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfc2l6ZV90IHNpemVvZl90aHJlYWRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnRocmVhZF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKip0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF90aHJlYWRfaGFuZGxlKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3RocmVhZF9oYW5kbGVfY29tcGFyZShvbXBkX3RocmVhZF9oYW5kbGVfdCAqdGhyZWFkX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGVfMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY21wX3ZhbHVlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90aHJlYWRfaWQob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF90aHJlYWRfaWRfdCBraW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfc2l6ZV90IHNpemVvZl90aHJlYWRfaWQsIHZvaWQgKnRocmVhZF9pZCk7CgpvbXBkX3JjX3QKb21wZF9nZXRfY3Vycl9wYXJhbGxlbF9oYW5kbGUob21wZF90aHJlYWRfaGFuZGxlX3QgKnRocmVhZF9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKipwYXJhbGxlbF9oYW5kbGUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2VuY2xvc2luZ19wYXJhbGxlbF9oYW5kbGUoCiAgICBvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICpwYXJhbGxlbF9oYW5kbGUsCiAgICBvbXBkX3BhcmFsbGVsX2hhbmRsZV90ICoqZW5jbG9zaW5nX3BhcmFsbGVsX2hhbmRsZSk7CgpvbXBkX3JjX3QKb21wZF9nZXRfdGFza19wYXJhbGxlbF9oYW5kbGUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9wYXJhbGxlbF9oYW5kbGVfdCAqKnRhc2tfcGFyYWxsZWxfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF9wYXJhbGxlbF9oYW5kbGUob21wZF9wYXJhbGxlbF9oYW5kbGVfdCAqcGFyYWxsZWxfaGFuZGxlKTsKCm9tcGRfcmNfdApvbXBkX3BhcmFsbGVsX2hhbmRsZV9jb21wYXJlKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZV8yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqY21wX3ZhbHVlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF9jdXJyX3Rhc2tfaGFuZGxlKG9tcGRfdGhyZWFkX2hhbmRsZV90ICp0aHJlYWRfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3Rhc2tfaGFuZGxlX3QgKip0YXNrX2hhbmRsZSk7CgpvbXBkX3JjX3QKb21wZF9nZXRfZ2VuZXJhdGluZ190YXNrX2hhbmRsZShvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqKmdlbmVyYXRpbmdfdGFza19oYW5kbGUpOwoKb21wZF9yY190Cm9tcGRfZ2V0X3NjaGVkdWxpbmdfdGFza19oYW5kbGUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX3Rhc2tfaGFuZGxlX3QgKipzY2hlZHVsaW5nX3Rhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX2dldF90YXNrX2luX3BhcmFsbGVsKG9tcGRfcGFyYWxsZWxfaGFuZGxlX3QgKnBhcmFsbGVsX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHRocmVhZF9udW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqKnRhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF90YXNrX2hhbmRsZShvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlKTsKCm9tcGRfcmNfdCBvbXBkX3Rhc2tfaGFuZGxlX2NvbXBhcmUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZV8xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfdGFza19oYW5kbGVfdCAqdGFza19oYW5kbGVfMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKmNtcF92YWx1ZSk7CgpvbXBkX3JjX3Qgb21wZF9nZXRfdGFza19mdW5jdGlvbihvbXBkX3Rhc2tfaGFuZGxlX3QgKnRhc2tfaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2FkZHJlc3NfdCAqZW50cnlfcG9pbnQpOwoKb21wZF9yY190IG9tcGRfZ2V0X3Rhc2tfZnJhbWUob21wZF90YXNrX2hhbmRsZV90ICp0YXNrX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9mcmFtZV9pbmZvX3QgKmV4aXRfZnJhbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfZnJhbWVfaW5mb190ICplbnRlcl9mcmFtZSk7CgpvbXBkX3JjX3QKb21wZF9lbnVtZXJhdGVfc3RhdGVzKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZV9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICBvbXBkX3dvcmRfdCBjdXJyZW50X3N0YXRlLCBvbXBkX3dvcmRfdCAqbmV4dF9zdGF0ZSwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKipuZXh0X3N0YXRlX25hbWUsIG9tcGRfd29yZF90ICptb3JlX2VudW1zKTsKCm9tcGRfcmNfdCBvbXBkX2dldF9zdGF0ZShvbXBkX3RocmVhZF9oYW5kbGVfdCAqdGhyZWFkX2hhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICpzdGF0ZSwgb21wZF93YWl0X2lkX3QgKndhaXRfaWQpOwoKb21wZF9yY190Cm9tcGRfZ2V0X2Rpc3BsYXlfY29udHJvbF92YXJzKG9tcGRfYWRkcmVzc19zcGFjZV9oYW5kbGVfdCAqYWRkcmVzc19zcGFjZV9oYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNvbnN0ICoqY29udHJvbF92YXJzKTsKCm9tcGRfcmNfdCBvbXBkX3JlbF9kaXNwbGF5X2NvbnRyb2xfdmFycyhjb25zdCBjaGFyICpjb25zdCAqKmNvbnRyb2xfdmFycyk7CgpvbXBkX3JjX3Qgb21wZF9lbnVtZXJhdGVfaWN2cyhvbXBkX2FkZHJlc3Nfc3BhY2VfaGFuZGxlX3QgKmhhbmRsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9pY3ZfaWRfdCBjdXJyZW50LCBvbXBkX2ljdl9pZF90ICpuZXh0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqbmV4dF9pY3ZfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9zY29wZV90ICpuZXh0X3Njb3BlLCBpbnQgKm1vcmUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2ljdl9mcm9tX3Njb3BlKHZvaWQgKmhhbmRsZSwgb21wZF9zY29wZV90IHNjb3BlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb21wZF9pY3ZfaWRfdCBpY3ZfaWQsIG9tcGRfd29yZF90ICppY3ZfdmFsdWUpOwoKb21wZF9yY190IG9tcGRfZ2V0X2ljdl9zdHJpbmdfZnJvbV9zY29wZSh2b2lkICpoYW5kbGUsIG9tcGRfc2NvcGVfdCBzY29wZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbXBkX2ljdl9pZF90IGljdl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqaWN2X3N0cmluZyk7CgpvbXBkX3JjX3Qgb21wZF9nZXRfdG9vbF9kYXRhKHZvaWQgKmhhbmRsZSwgb21wZF9zY29wZV90IHNjb3BlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9tcGRfd29yZF90ICp2YWx1ZSwgb21wZF9hZGRyZXNzX3QgKnB0cik7Cgp0eXBlZGVmIHN0cnVjdCBvbXB0X3JlY29yZF9vbXB0X3QgewogIG9tcHRfY2FsbGJhY2tzX3QgdHlwZTsKICBvbXB0X2RldmljZV90aW1lX3QgdGltZTsKICBvbXB0X2lkX3QgdGhyZWFkX2lkOwogIG9tcHRfaWRfdCB0YXJnZXRfaWQ7CiAgdW5pb24gewogICAgb21wdF9yZWNvcmRfdGhyZWFkX2JlZ2luX3QgdGhyZWFkX2JlZ2luOwogICAgb21wdF9yZWNvcmRfcGFyYWxsZWxfYmVnaW5fdCBwYXJhbGxlbF9iZWdpbjsKICAgIG9tcHRfcmVjb3JkX3BhcmFsbGVsX2VuZF90IHBhcmFsbGVsX2VuZDsKICAgIG9tcHRfcmVjb3JkX3dvcmtfdCB3b3JrOwogICAgb21wdF9yZWNvcmRfZGlzcGF0Y2hfdCBkaXNwYXRjaDsKICAgIG9tcHRfcmVjb3JkX3Rhc2tfY3JlYXRlX3QgdGFza19jcmVhdGU7CiAgICBvbXB0X3JlY29yZF9kZXBlbmRlbmNlc190IGRlcGVuZGVuY2VzOwogICAgb21wdF9yZWNvcmRfdGFza19kZXBlbmRlbmNlX3QgdGFza19kZXBlbmRlbmNlOwogICAgb21wdF9yZWNvcmRfdGFza19zY2hlZHVsZV90IHRhc2tfc2NoZWR1bGU7CiAgICBvbXB0X3JlY29yZF9pbXBsaWNpdF90YXNrX3QgaW1wbGljaXRfdGFzazsKICAgIG9tcHRfcmVjb3JkX21hc2tlZF90IG1hc2tlZDsKICAgIG9tcHRfcmVjb3JkX3N5bmNfcmVnaW9uX3Qgc3luY19yZWdpb247CiAgICBvbXB0X3JlY29yZF9tdXRleF9hY3F1aXJlX3QgbXV0ZXhfYWNxdWlyZTsKICAgIG9tcHRfcmVjb3JkX211dGV4X3QgbXV0ZXg7CiAgICBvbXB0X3JlY29yZF9uZXN0X2xvY2tfdCBuZXN0X2xvY2s7CiAgICBvbXB0X3JlY29yZF9mbHVzaF90IGZsdXNoOwogICAgb21wdF9yZWNvcmRfY2FuY2VsX3QgY2FuY2VsOwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X3QgdGFyZ2V0OwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X2RhdGFfb3BfdCB0YXJnZXRfZGF0YV9vcDsKICAgIG9tcHRfcmVjb3JkX3RhcmdldF9tYXBfdCB0YXJnZXRfbWFwOwogICAgb21wdF9yZWNvcmRfdGFyZ2V0X2tlcm5lbF90IHRhcmdldF9rZXJuZWw7CiAgICBvbXB0X3JlY29yZF9jb250cm9sX3Rvb2xfdCBjb250cm9sX3Rvb2w7CiAgfSByZWNvcmQ7Cn0gb21wdF9yZWNvcmRfb21wdF90OwoKdHlwZWRlZiBvbXB0X3JlY29yZF9vbXB0X3QgKigqb21wdF9nZXRfcmVjb3JkX29tcHRfdCkgKAogIG9tcHRfYnVmZmVyX3QgKmJ1ZmZlciwKICBvbXB0X2J1ZmZlcl9jdXJzb3JfdCBjdXJyZW50Cik7CgojZGVmaW5lIG9tcHRfaWRfbm9uZSAwCiNkZWZpbmUgb21wdF9kYXRhX25vbmUgezB9CiNkZWZpbmUgb21wdF90aW1lX25vbmUgMAojZGVmaW5lIG9tcHRfaHdpZF9ub25lIDAKI2RlZmluZSBvbXB0X2FkZHJfbm9uZSB+MAojZGVmaW5lIG9tcHRfbXV0ZXhfaW1wbF9ub25lIDAKI2RlZmluZSBvbXB0X3dhaXRfaWRfbm9uZSAwCgojZGVmaW5lIG9tcGRfc2VnbWVudF9ub25lIDAKCiNlbmRpZiAvKiBfX09NUFRfXyAqLwoALyo9PT0tLS0tIHN0ZGFyZy5oIC0gVmFyaWFibGUgYXJndW1lbnQgaGFuZGxpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1NUREFSR19ICiNkZWZpbmUgX19TVERBUkdfSAoKI2lmbmRlZiBfVkFfTElTVAp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0IHZhX2xpc3Q7CiNkZWZpbmUgX1ZBX0xJU1QKI2VuZGlmCiNkZWZpbmUgdmFfc3RhcnQoYXAsIHBhcmFtKSBfX2J1aWx0aW5fdmFfc3RhcnQoYXAsIHBhcmFtKQojZGVmaW5lIHZhX2VuZChhcCkgICAgICAgICAgX19idWlsdGluX3ZhX2VuZChhcCkKI2RlZmluZSB2YV9hcmcoYXAsIHR5cGUpICAgIF9fYnVpbHRpbl92YV9hcmcoYXAsIHR5cGUpCgovKiBHQ0MgYWx3YXlzIGRlZmluZXMgX192YV9jb3B5LCBidXQgZG9lcyBub3QgZGVmaW5lIHZhX2NvcHkgdW5sZXNzIGluIGM5OSBtb2RlCiAqIG9yIC1hbnNpIGlzIG5vdCBzcGVjaWZpZWQsIHNpbmNlIGl0IHdhcyBub3QgcGFydCBvZiBDOTAuCiAqLwojZGVmaW5lIF9fdmFfY29weShkLHMpIF9fYnVpbHRpbl92YV9jb3B5KGQscykKCiNpZiBfX1NURENfVkVSU0lPTl9fID49IDE5OTkwMUwgfHwgX19jcGx1c3BsdXMgPj0gMjAxMTAzTCB8fCAhZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCiNkZWZpbmUgdmFfY29weShkZXN0LCBzcmMpICBfX2J1aWx0aW5fdmFfY29weShkZXN0LCBzcmMpCiNlbmRpZgoKI2lmbmRlZiBfX0dOVUNfVkFfTElTVAojZGVmaW5lIF9fR05VQ19WQV9MSVNUIDEKdHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKI2VuZGlmCgojZW5kaWYgLyogX19TVERBUkdfSCAqLwoAQ291bGRuJ3QgY2xvc2UgAE1pc3NpbmcgYSBjb21tYSBvciAnXScgYWZ0ZXIgYW4gYXJyYXkgZWxlbWVudC4AOiAAcm9vdC91bml0cy8AU2VhcmNoTkZBIGluY29uc2lzdGVuY3kAWzpebG93ZXI6XQBleHRlcm5hbC9yZWdleC1yZTIvcmUyL29uZXBhc3MuY2MAZXh0ZXJuYWwvcmVnZXgtcmUyL3JlMi9yZWdleHAuY2MAKwBeAEFybWVuaWFuAEJhbGluZXNlAEN5cHJpb3QAR3JlZWsASGFuZ3VsAEtoYXJvc2h0aGkAT2xkX1R1cmtpYwBTaWRkaGFtAFNpbmhhbGEAb3V0IG9mIG1lbW9yeQBib29sAG0AbgBvAERlAERoAGFkAGRlAHw9AG50AHBtAEFMUkVBRFlfRVhJU1RTAENoZWNrIG5vZGUtPmxlbmd0aCA9PSAobm9kZS0+Y29uY2F0KCktPmxlZnQtPmxlbmd0aCArIG5vZGUtPmNvbmNhdCgpLT5yaWdodC0+bGVuZ3RoKSBmYWlsZWQ6IABsZW5ndGggACBhbmQgZW50cnkgbGVuZ3RoIABOQU4Acy0+d2FpdHAgIT0gbnVsbHB0ciB8fCBzLT5zdXBwcmVzc19mYXRhbF9lcnJvcnMAcHcgbm90IHcncyBwcmVkZWNlc3NvcgB1bmV4cGVjdGVkIGVtcHR5IHdha2UgbGlzdABSZWFkZXJUcnlMb2NrIHN1Y2NlZWRlZCAATG9jayBibG9ja2luZyAAYmFkIHNraXAgaW4gRGVxdWV1ZUFsbFdha2VhYmxlAFRaaWYAM0RFUyBEZWNyeXB0aW9uIEtBVABDVFItRFJCRyBmYWlsZWQuCgBUTFMgS0RGIEtBVABlcnJvcjolMDh4OiVzOk9QRU5TU0xfaW50ZXJuYWw6JXMAa3l0aGUucHJvdG8uS3ppcEluZm8uYWJzb2x1dGVfcGF0aHMAa3l0aGUucHJvdG8uY29tbW9uLkRpYWdub3N0aWMubWVzc2FnZQBreXRoZS5wcm90by5jb21tb24uTWFya2VkU291cmNlLnBvc3RfY2hpbGRfdGV4dABreXRoZS5wcm90by5WTmFtZS5yb290AFteLV0uKlwuKEN8Y1wrXCt8Y2N8Y3B8Y3BwfGN4eHxDUFB8aWkpAEVycm9yIG1ha2luZyByZWxhdGl2ZSBwYXRoOiAAS1lUSEVfQ09SUFVTACwgaW5wdXRzLnNpemUoKT0ARXhwZWN0ZWQgdG8gc2VlIG9ubHkgb25lIFRVOyBpbnN0ZWFkIHNhdyAAUmVsYXRpdmUgcGF0aCB3YXMgAC8qPT09LS0tLSBjdWRhX2J1aWx0aW5fdmFycy5oIC0gQ1VEQSBidWlsdC1pbiB2YXJpYWJsZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQ1VEQV9CVUlMVElOX1ZBUlNfSAojZGVmaW5lIF9fQ1VEQV9CVUlMVElOX1ZBUlNfSAoKLy8gRm9yd2FyZCBkZWNsYXJlcyBmcm9tIHZlY3Rvcl90eXBlcy5oLgpzdHJ1Y3QgdWludDM7CnN0cnVjdCBkaW0zOwoKLy8gVGhlIGZpbGUgaW1wbGVtZW50cyBidWlsdC1pbiBDVURBIHZhcmlhYmxlcyB1c2luZyBfX2RlY2xzcGVjKHByb3BlcnR5KS4KLy8gaHR0cHM6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvbGlicmFyeS95aGZrMHRoZC5hc3B4Ci8vIEFsbCByZWFkIGFjY2Vzc2VzIG9mIGJ1aWx0LWluIHZhcmlhYmxlIGZpZWxkcyBnZXQgY29udmVydGVkIGludG8gY2FsbHMgdG8gYQovLyBnZXR0ZXIgZnVuY3Rpb24gd2hpY2ggaW4gdHVybiBjYWxscyB0aGUgYXBwcm9wcmlhdGUgYnVpbHRpbiB0byBmZXRjaCB0aGUKLy8gdmFsdWUuCi8vCi8vIEV4YW1wbGU6Ci8vICAgIGludCB4ID0gdGhyZWFkSWR4Lng7Ci8vIElSIG91dHB1dDoKLy8gICUwID0gY2FsbCBpMzIgQGxsdm0ubnZ2bS5yZWFkLnB0eC5zcmVnLnRpZC54KCkgIzMKLy8gUFRYIG91dHB1dDoKLy8gIG1vdi51MzIgICAgICVyMiwgJXRpZC54OwoKI2RlZmluZSBfX0NVREFfREVWSUNFX0JVSUxUSU4oRklFTEQsIElOVFJJTlNJQykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2RlY2xzcGVjKHByb3BlcnR5KGdldCA9IF9fZmV0Y2hfYnVpbHRpbl8jI0ZJRUxEKSkgdW5zaWduZWQgaW50IEZJRUxEOyAgICAgIFwKICBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgdW5zaWduZWQgaW50IF9fZmV0Y2hfYnVpbHRpbl8jI0ZJRUxEKHZvaWQpIHsgICAgIFwKICAgIHJldHVybiBJTlRSSU5TSUM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgojaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAojZGVmaW5lIF9fREVMRVRFID1kZWxldGUKI2Vsc2UKI2RlZmluZSBfX0RFTEVURQojZW5kaWYKCi8vIE1ha2Ugc3VyZSBub2JvZHkgY2FuIGNyZWF0ZSBpbnN0YW5jZXMgb2YgdGhlIHNwZWNpYWwgdmFyaWFibGUgdHlwZXMuICBudmNjCi8vIGFsc28gZGlzYWxsb3dzIHRha2luZyBhZGRyZXNzIG9mIHNwZWNpYWwgdmFyaWFibGVzLCBzbyB3ZSBkaXNhYmxlIGFkZHJlc3Mtb2YKLy8gb3BlcmF0b3IgYXMgd2VsbC4KI2RlZmluZSBfX0NVREFfRElTQUxMT1dfQlVJTFRJTlZBUl9BQ0NFU1MoVHlwZU5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZSgpIF9fREVMRVRFOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZShjb25zdCBUeXBlTmFtZSAmKSBfX0RFTEVURTsgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSB2b2lkIG9wZXJhdG9yPShjb25zdCBUeXBlTmFtZSAmKSBjb25zdCBfX0RFTEVURTsgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBUeXBlTmFtZSAqb3BlcmF0b3ImKCkgY29uc3QgX19ERUxFVEUKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl90aHJlYWRJZHhfdCB7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHgsX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3goKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHksX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3koKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHosX19udnZtX3JlYWRfcHR4X3NyZWdfdGlkX3ooKSk7CiAgLy8gdGhyZWFkSWR4IHNob3VsZCBiZSBjb252ZXJ0aWJsZSB0byB1aW50MyAoaW4gZmFjdCBpbiBudmNjLCBpdCAqaXMqIGEKICAvLyB1aW50MykuICBUaGlzIGZ1bmN0aW9uIGlzIGRlZmluZWQgYWZ0ZXIgd2UgcHVsbCBpbiB2ZWN0b3JfdHlwZXMuaC4KICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBvcGVyYXRvciBkaW0zKCkgY29uc3Q7CiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgdWludDMoKSBjb25zdDsKCnByaXZhdGU6CiAgX19DVURBX0RJU0FMTE9XX0JVSUxUSU5WQVJfQUNDRVNTKF9fY3VkYV9idWlsdGluX3RocmVhZElkeF90KTsKfTsKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19jdGFpZF94KCkpOwogIF9fQ1VEQV9ERVZJQ0VfQlVJTFRJTih5LF9fbnZ2bV9yZWFkX3B0eF9zcmVnX2N0YWlkX3koKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHosX19udnZtX3JlYWRfcHR4X3NyZWdfY3RhaWRfeigpKTsKICAvLyBibG9ja0lkeCBzaG91bGQgYmUgY29udmVydGlibGUgdG8gdWludDMgKGluIGZhY3QgaW4gbnZjYywgaXQgKmlzKiBhCiAgLy8gdWludDMpLiAgVGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIGFmdGVyIHdlIHB1bGwgaW4gdmVjdG9yX3R5cGVzLmguCiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgZGltMygpIGNvbnN0OwogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIHVpbnQzKCkgY29uc3Q7Cgpwcml2YXRlOgogIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUyhfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90KTsKfTsKCnN0cnVjdCBfX2N1ZGFfYnVpbHRpbl9ibG9ja0RpbV90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19udGlkX3goKSk7CiAgX19DVURBX0RFVklDRV9CVUlMVElOKHksX19udnZtX3JlYWRfcHR4X3NyZWdfbnRpZF95KCkpOwogIF9fQ1VEQV9ERVZJQ0VfQlVJTFRJTih6LF9fbnZ2bV9yZWFkX3B0eF9zcmVnX250aWRfeigpKTsKICAvLyBibG9ja0RpbSBzaG91bGQgYmUgY29udmVydGlibGUgdG8gZGltMyAoaW4gZmFjdCBpbiBudmNjLCBpdCAqaXMqIGEKICAvLyBkaW0zKS4gIFRoaXMgZnVuY3Rpb24gaXMgZGVmaW5lZCBhZnRlciB3ZSBwdWxsIGluIHZlY3Rvcl90eXBlcy5oLgogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIGRpbTMoKSBjb25zdDsKICBfX2F0dHJpYnV0ZV9fKChkZXZpY2UpKSBvcGVyYXRvciB1aW50MygpIGNvbnN0OwoKcHJpdmF0ZToKICBfX0NVREFfRElTQUxMT1dfQlVJTFRJTlZBUl9BQ0NFU1MoX19jdWRhX2J1aWx0aW5fYmxvY2tEaW1fdCk7Cn07CgpzdHJ1Y3QgX19jdWRhX2J1aWx0aW5fZ3JpZERpbV90IHsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeCxfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeCgpKTsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeSxfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeSgpKTsKICBfX0NVREFfREVWSUNFX0JVSUxUSU4oeixfX252dm1fcmVhZF9wdHhfc3JlZ19uY3RhaWRfeigpKTsKICAvLyBncmlkRGltIHNob3VsZCBiZSBjb252ZXJ0aWJsZSB0byBkaW0zIChpbiBmYWN0IGluIG52Y2MsIGl0ICppcyogYQogIC8vIGRpbTMpLiAgVGhpcyBmdW5jdGlvbiBpcyBkZWZpbmVkIGFmdGVyIHdlIHB1bGwgaW4gdmVjdG9yX3R5cGVzLmguCiAgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgb3BlcmF0b3IgZGltMygpIGNvbnN0OwogIF9fYXR0cmlidXRlX18oKGRldmljZSkpIG9wZXJhdG9yIHVpbnQzKCkgY29uc3Q7Cgpwcml2YXRlOgogIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUyhfX2N1ZGFfYnVpbHRpbl9ncmlkRGltX3QpOwp9OwoKI2RlZmluZSBfX0NVREFfQlVJTFRJTl9WQVIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBleHRlcm4gY29uc3QgX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgX19hdHRyaWJ1dGVfXygod2VhaykpCl9fQ1VEQV9CVUlMVElOX1ZBUiBfX2N1ZGFfYnVpbHRpbl90aHJlYWRJZHhfdCB0aHJlYWRJZHg7Cl9fQ1VEQV9CVUlMVElOX1ZBUiBfX2N1ZGFfYnVpbHRpbl9ibG9ja0lkeF90IGJsb2NrSWR4OwpfX0NVREFfQlVJTFRJTl9WQVIgX19jdWRhX2J1aWx0aW5fYmxvY2tEaW1fdCBibG9ja0RpbTsKX19DVURBX0JVSUxUSU5fVkFSIF9fY3VkYV9idWlsdGluX2dyaWREaW1fdCBncmlkRGltOwoKLy8gd2FycFNpemUgc2hvdWxkIHRyYW5zbGF0ZSB0byByZWFkIG9mICVXQVJQX1NaIGJ1dCB0aGVyZSdzIGN1cnJlbnRseSBubwovLyBidWlsdGluIHRvIGRvIHNvLiBBY2NvcmRpbmcgdG8gUFRYIHY0LjIgZG9jcyAndG8gZGF0ZSwgYWxsIHRhcmdldAovLyBhcmNoaXRlY3R1cmVzIGhhdmUgYSBXQVJQX1NaIHZhbHVlIG9mIDMyJy4KX19hdHRyaWJ1dGVfXygoZGV2aWNlKSkgY29uc3QgaW50IHdhcnBTaXplID0gMzI7CgojdW5kZWYgX19DVURBX0RFVklDRV9CVUlMVElOCiN1bmRlZiBfX0NVREFfQlVJTFRJTl9WQVIKI3VuZGVmIF9fQ1VEQV9ESVNBTExPV19CVUlMVElOVkFSX0FDQ0VTUwojdW5kZWYgX19ERUxFVEUKCiNlbmRpZiAvKiBfX0NVREFfQlVJTFRJTl9WQVJTX0ggKi8KAC8qPT09LS0tLSBfX3N0ZGRlZl9tYXhfYWxpZ25fdC5oIC0gRGVmaW5pdGlvbiBvZiBtYXhfYWxpZ25fdCBmb3IgbW9kdWxlcyAtLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19NQVhfQUxJR05fVF9ERUZJTkVECiNkZWZpbmUgX19DTEFOR19NQVhfQUxJR05fVF9ERUZJTkVECgojaWYgZGVmaW5lZChfTVNDX1ZFUikKdHlwZWRlZiBkb3VibGUgbWF4X2FsaWduX3Q7CiNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQp0eXBlZGVmIGxvbmcgZG91YmxlIG1heF9hbGlnbl90OwojZWxzZQovLyBEZWZpbmUgJ21heF9hbGlnbl90JyB0byBtYXRjaCB0aGUgR0NDIGRlZmluaXRpb24uCnR5cGVkZWYgc3RydWN0IHsKICBsb25nIGxvbmcgX19jbGFuZ19tYXhfYWxpZ25fbm9uY2UxCiAgICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKF9fYWxpZ25vZl9fKGxvbmcgbG9uZykpKSk7CiAgbG9uZyBkb3VibGUgX19jbGFuZ19tYXhfYWxpZ25fbm9uY2UyCiAgICAgIF9fYXR0cmlidXRlX18oKF9fYWxpZ25lZF9fKF9fYWxpZ25vZl9fKGxvbmcgZG91YmxlKSkpKTsKfSBtYXhfYWxpZ25fdDsKI2VuZGlmCgojZW5kaWYKAGFybTY0aW50ci5oAC8qPT09LS0tLSBhcm02NGludHIuaCAtIEFSTTY0IFdpbmRvd3MgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBPbmx5IGluY2x1ZGUgdGhpcyBpZiB3ZSdyZSBjb21waWxpbmcgZm9yIHRoZSB3aW5kb3dzIHBsYXRmb3JtLiAqLwojaWZuZGVmIF9NU0NfVkVSCiNpbmNsdWRlX25leHQgPGFybTY0aW50ci5oPgojZWxzZQoKI2lmbmRlZiBfX0FSTTY0SU5UUl9ICiNkZWZpbmUgX19BUk02NElOVFJfSAoKdHlwZWRlZiBlbnVtCnsKICBfQVJNNjRfQkFSUklFUl9TWSAgICA9IDB4RiwKICBfQVJNNjRfQkFSUklFUl9TVCAgICA9IDB4RSwKICBfQVJNNjRfQkFSUklFUl9MRCAgICA9IDB4RCwKICBfQVJNNjRfQkFSUklFUl9JU0ggICA9IDB4QiwKICBfQVJNNjRfQkFSUklFUl9JU0hTVCA9IDB4QSwKICBfQVJNNjRfQkFSUklFUl9JU0hMRCA9IDB4OSwKICBfQVJNNjRfQkFSUklFUl9OU0ggICA9IDB4NywKICBfQVJNNjRfQkFSUklFUl9OU0hTVCA9IDB4NiwKICBfQVJNNjRfQkFSUklFUl9OU0hMRCA9IDB4NSwKICBfQVJNNjRfQkFSUklFUl9PU0ggICA9IDB4MywKICBfQVJNNjRfQkFSUklFUl9PU0hTVCA9IDB4MiwKICBfQVJNNjRfQkFSUklFUl9PU0hMRCA9IDB4MQp9IF9BUk02NElOVFJfQkFSUklFUl9UWVBFOwoKI2VuZGlmIC8qIF9fQVJNNjRJTlRSX0ggKi8KI2VuZGlmIC8qIF9NU0NfVkVSICovCgAvKj09PS0tLS0gZnhzcmludHJpbi5oIC0gRlhTUiBpbnRyaW5zaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGZ4c3JpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fRlhTUklOVFJJTl9ICiNkZWZpbmUgX19GWFNSSU5UUklOX0gKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oImZ4c3IiKSkpCgovLy8gU2F2ZXMgdGhlIFhNTSwgTU1YLCBNWENTUiBhbmQgeDg3IEZQVSByZWdpc3RlcnMgaW50byBhIDUxMi1ieXRlCi8vLyAgICBtZW1vcnkgcmVnaW9uIHBvaW50ZWQgdG8gYnkgdGhlIGlucHV0IHBhcmFtZXRlciBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRlhTQVZFIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNTEyLWJ5dGUgbWVtb3J5IHJlZ2lvbi4gVGhlIGJlZ2lubmluZyBvZiB0aGlzIG1lbW9yeQovLy8gICAgcmVnaW9uIHNob3VsZCBiZSBhbGlnbmVkIG9uIGEgMTYtYnl0ZSBib3VuZGFyeS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX2Z4c2F2ZSh2b2lkICpfX3ApCnsKICBfX2J1aWx0aW5faWEzMl9meHNhdmUoX19wKTsKfQoKLy8vIFJlc3RvcmVzIHRoZSBYTU0sIE1NWCwgTVhDU1IgYW5kIHg4NyBGUFUgcmVnaXN0ZXJzIGZyb20gdGhlIDUxMi1ieXRlCi8vLyAgICBtZW1vcnkgcmVnaW9uIHBvaW50ZWQgdG8gYnkgdGhlIGlucHV0IHBhcmFtZXRlciBcYSBfX3AuIFRoZSBjb250ZW50cyBvZgovLy8gICAgdGhpcyBtZW1vcnkgcmVnaW9uIHNob3VsZCBoYXZlIGJlZW4gd3JpdHRlbiB0byBieSBhIHByZXZpb3VzIFxjIF9meHNhdmUKLy8vICAgIG9yIFxjIF9meHNhdmU2NCBpbnRyaW5zaWMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRlhSU1RPUiA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDUxMi1ieXRlIG1lbW9yeSByZWdpb24uIFRoZSBiZWdpbm5pbmcgb2YgdGhpcyBtZW1vcnkKLy8vICAgIHJlZ2lvbiBzaG91bGQgYmUgYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9meHJzdG9yKHZvaWQgKl9fcCkKewogIF9fYnVpbHRpbl9pYTMyX2Z4cnN0b3IoX19wKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIFNhdmVzIHRoZSBYTU0sIE1NWCwgTVhDU1IgYW5kIHg4NyBGUFUgcmVnaXN0ZXJzIGludG8gYSA1MTItYnl0ZQovLy8gICAgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5IHRoZSBpbnB1dCBwYXJhbWV0ZXIgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZYU0FWRTY0IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgNTEyLWJ5dGUgbWVtb3J5IHJlZ2lvbi4gVGhlIGJlZ2lubmluZyBvZiB0aGlzIG1lbW9yeQovLy8gICAgcmVnaW9uIHNob3VsZCBiZSBhbGlnbmVkIG9uIGEgMTYtYnl0ZSBib3VuZGFyeS4Kc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX2Z4c2F2ZTY0KHZvaWQgKl9fcCkKewogIF9fYnVpbHRpbl9pYTMyX2Z4c2F2ZTY0KF9fcCk7Cn0KCi8vLyBSZXN0b3JlcyB0aGUgWE1NLCBNTVgsIE1YQ1NSIGFuZCB4ODcgRlBVIHJlZ2lzdGVycyBmcm9tIHRoZSA1MTItYnl0ZQovLy8gICAgbWVtb3J5IHJlZ2lvbiBwb2ludGVkIHRvIGJ5IHRoZSBpbnB1dCBwYXJhbWV0ZXIgXGEgX19wLiBUaGUgY29udGVudHMgb2YKLy8vICAgIHRoaXMgbWVtb3J5IHJlZ2lvbiBzaG91bGQgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gYnkgYSBwcmV2aW91cyBcYyBfZnhzYXZlCi8vLyAgICBvciBcYyBfZnhzYXZlNjQgaW50cmluc2ljLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZYUlNUT1I2NCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDUxMi1ieXRlIG1lbW9yeSByZWdpb24uIFRoZSBiZWdpbm5pbmcgb2YgdGhpcyBtZW1vcnkKLy8vICAgIHJlZ2lvbiBzaG91bGQgYmUgYWxpZ25lZCBvbiBhIDE2LWJ5dGUgYm91bmRhcnkuCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9meHJzdG9yNjQodm9pZCAqX19wKQp7CiAgX19idWlsdGluX2lhMzJfZnhyc3RvcjY0KF9fcCk7Cn0KI2VuZGlmCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAC8qPT09LS0tLSBpbnR0eXBlcy5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBpbnRlZ2VyIHByaW50ZiBtYWNyb3MgLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fQ0xBTkdfSU5UVFlQRVNfSAovLyBBSVggc3lzdGVtIGhlYWRlcnMgbmVlZCBpbnR0eXBlcy5oIHRvIGJlIHJlLWVudGVyYWJsZSB3aGlsZSBfU1REX1RZUEVTX1QKLy8gaXMgZGVmaW5lZCB1bnRpbCBhbiBpbmNsdXNpb24gb2YgaXQgd2l0aG91dCBfU1REX1RZUEVTX1Qgb2NjdXJzLCBpbiB3aGljaAovLyBjYXNlIHRoZSBoZWFkZXIgZ3VhcmQgbWFjcm8gaXMgZGVmaW5lZC4KI2lmICFkZWZpbmVkKF9BSVgpIHx8ICFkZWZpbmVkKF9TVERfVFlQRVNfVCkKI2RlZmluZSBfX0NMQU5HX0lOVFRZUEVTX0gKI2VuZGlmCgojaWYgZGVmaW5lZChfTVNDX1ZFUikgJiYgX01TQ19WRVIgPCAxODAwCiNlcnJvciBNU1ZDIGRvZXMgbm90IGhhdmUgaW50dHlwZXMuaCBwcmlvciB0byBWaXN1YWwgU3R1ZGlvIDIwMTMKI2VuZGlmCgojaW5jbHVkZV9uZXh0IDxpbnR0eXBlcy5oPgoKI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSIDwgMTkwMAovKiBNU1ZDIGhlYWRlcnMgZGVmaW5lIGludDMyX3QgYXMgaW50LCBidXQgUFJJeDMyIGFzICJseCIgaW5zdGVhZCBvZiAieCIuCiAqIFRoaXMgdHJpZ2dlcnMgZm9ybWF0IHdhcm5pbmdzLCBzbyBmaXggaXQgdXAgaGVyZS4gKi8KI3VuZGVmIFBSSWQzMgojdW5kZWYgUFJJZExFQVNUMzIKI3VuZGVmIFBSSWRGQVNUMzIKI3VuZGVmIFBSSWkzMgojdW5kZWYgUFJJaUxFQVNUMzIKI3VuZGVmIFBSSWlGQVNUMzIKI3VuZGVmIFBSSW8zMgojdW5kZWYgUFJJb0xFQVNUMzIKI3VuZGVmIFBSSW9GQVNUMzIKI3VuZGVmIFBSSXUzMgojdW5kZWYgUFJJdUxFQVNUMzIKI3VuZGVmIFBSSXVGQVNUMzIKI3VuZGVmIFBSSXgzMgojdW5kZWYgUFJJeExFQVNUMzIKI3VuZGVmIFBSSXhGQVNUMzIKI3VuZGVmIFBSSVgzMgojdW5kZWYgUFJJWExFQVNUMzIKI3VuZGVmIFBSSVhGQVNUMzIKCiN1bmRlZiBTQ05kMzIKI3VuZGVmIFNDTmRMRUFTVDMyCiN1bmRlZiBTQ05kRkFTVDMyCiN1bmRlZiBTQ05pMzIKI3VuZGVmIFNDTmlMRUFTVDMyCiN1bmRlZiBTQ05pRkFTVDMyCiN1bmRlZiBTQ05vMzIKI3VuZGVmIFNDTm9MRUFTVDMyCiN1bmRlZiBTQ05vRkFTVDMyCiN1bmRlZiBTQ051MzIKI3VuZGVmIFNDTnVMRUFTVDMyCiN1bmRlZiBTQ051RkFTVDMyCiN1bmRlZiBTQ054MzIKI3VuZGVmIFNDTnhMRUFTVDMyCiN1bmRlZiBTQ054RkFTVDMyCgojZGVmaW5lIFBSSWQzMiAiZCIKI2RlZmluZSBQUklkTEVBU1QzMiAiZCIKI2RlZmluZSBQUklkRkFTVDMyICJkIgojZGVmaW5lIFBSSWkzMiAiaSIKI2RlZmluZSBQUklpTEVBU1QzMiAiaSIKI2RlZmluZSBQUklpRkFTVDMyICJpIgojZGVmaW5lIFBSSW8zMiAibyIKI2RlZmluZSBQUklvTEVBU1QzMiAibyIKI2RlZmluZSBQUklvRkFTVDMyICJvIgojZGVmaW5lIFBSSXUzMiAidSIKI2RlZmluZSBQUkl1TEVBU1QzMiAidSIKI2RlZmluZSBQUkl1RkFTVDMyICJ1IgojZGVmaW5lIFBSSXgzMiAieCIKI2RlZmluZSBQUkl4TEVBU1QzMiAieCIKI2RlZmluZSBQUkl4RkFTVDMyICJ4IgojZGVmaW5lIFBSSVgzMiAiWCIKI2RlZmluZSBQUklYTEVBU1QzMiAiWCIKI2RlZmluZSBQUklYRkFTVDMyICJYIgoKI2RlZmluZSBTQ05kMzIgImQiCiNkZWZpbmUgU0NOZExFQVNUMzIgImQiCiNkZWZpbmUgU0NOZEZBU1QzMiAiZCIKI2RlZmluZSBTQ05pMzIgImkiCiNkZWZpbmUgU0NOaUxFQVNUMzIgImkiCiNkZWZpbmUgU0NOaUZBU1QzMiAiaSIKI2RlZmluZSBTQ05vMzIgIm8iCiNkZWZpbmUgU0NOb0xFQVNUMzIgIm8iCiNkZWZpbmUgU0NOb0ZBU1QzMiAibyIKI2RlZmluZSBTQ051MzIgInUiCiNkZWZpbmUgU0NOdUxFQVNUMzIgInUiCiNkZWZpbmUgU0NOdUZBU1QzMiAidSIKI2RlZmluZSBTQ054MzIgIngiCiNkZWZpbmUgU0NOeExFQVNUMzIgIngiCiNkZWZpbmUgU0NOeEZBU1QzMiAieCIKI2VuZGlmCgojZW5kaWYgLyogX19DTEFOR19JTlRUWVBFU19IICovCgBzdGRkZWYuaAB2YXJhcmdzLmgAcHBjX3dyYXBwZXJzL3RtbWludHJpbi5oAC8vPT09LS0gdHNhbl9pbnRlcmZhY2VfYXRvbWljLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgVGhyZWFkU2FuaXRpemVyIChUU2FuKSwgYSByYWNlIGRldGVjdG9yLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlciBmb3IgVFNhbiBhdG9taWNzLgovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwojaWZuZGVmIFRTQU5fSU5URVJGQUNFX0FUT01JQ19ICiNkZWZpbmUgVFNBTl9JTlRFUkZBQ0VfQVRPTUlDX0gKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgp0eXBlZGVmIGNoYXIgX190c2FuX2F0b21pYzg7CnR5cGVkZWYgc2hvcnQgX190c2FuX2F0b21pYzE2Owp0eXBlZGVmIGludCBfX3RzYW5fYXRvbWljMzI7CnR5cGVkZWYgbG9uZyBfX3RzYW5fYXRvbWljNjQ7CiNpZiBkZWZpbmVkKF9fU0laRU9GX0lOVDEyOF9fKSBcCiAgICB8fCAoX19jbGFuZ19tYWpvcl9fICogMTAwICsgX19jbGFuZ19taW5vcl9fID49IDMwMikKX19leHRlbnNpb25fXyB0eXBlZGVmIF9faW50MTI4IF9fdHNhbl9hdG9taWMxMjg7CiMgZGVmaW5lIF9fVFNBTl9IQVNfSU5UMTI4IDEKI2Vsc2UKIyBkZWZpbmUgX19UU0FOX0hBU19JTlQxMjggMAojZW5kaWYKCi8vIFBhcnQgb2YgQUJJLCBkbyBub3QgY2hhbmdlLgovLyBodHRwczovL2dpdGh1Yi5jb20vbGx2bS9sbHZtLXByb2plY3QvYmxvYi9tYWluL2xpYmN4eC9pbmNsdWRlL2F0b21pYwp0eXBlZGVmIGVudW0gewogIF9fdHNhbl9tZW1vcnlfb3JkZXJfcmVsYXhlZCwKICBfX3RzYW5fbWVtb3J5X29yZGVyX2NvbnN1bWUsCiAgX190c2FuX21lbW9yeV9vcmRlcl9hY3F1aXJlLAogIF9fdHNhbl9tZW1vcnlfb3JkZXJfcmVsZWFzZSwKICBfX3RzYW5fbWVtb3J5X29yZGVyX2FjcV9yZWwsCiAgX190c2FuX21lbW9yeV9vcmRlcl9zZXFfY3N0Cn0gX190c2FuX21lbW9yeV9vcmRlcjsKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2xvYWQoY29uc3Qgdm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9sb2FkKGNvbnN0IHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2xvYWQoY29uc3Qgdm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfbG9hZChjb25zdCB2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9sb2FkKGNvbnN0IHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgp2b2lkIF9fdHNhbl9hdG9taWM4X3N0b3JlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLCBfX3RzYW5fYXRvbWljOCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CnZvaWQgX190c2FuX2F0b21pYzE2X3N0b3JlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwgX190c2FuX2F0b21pYzE2IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKdm9pZCBfX3RzYW5fYXRvbWljMzJfc3RvcmUodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLCBfX3RzYW5fYXRvbWljMzIgdiwKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwp2b2lkIF9fdHNhbl9hdG9taWM2NF9zdG9yZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsIF9fdHNhbl9hdG9taWM2NCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOAp2b2lkIF9fdHNhbl9hdG9taWMxMjhfc3RvcmUodm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwgX190c2FuX2F0b21pYzEyOCB2LAogICAgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNlbmRpZgoKX190c2FuX2F0b21pYzggX190c2FuX2F0b21pYzhfZXhjaGFuZ2Uodm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9leGNoYW5nZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZXhjaGFuZ2Uodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyIHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2V4Y2hhbmdlKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9leGNoYW5nZSh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsCiAgICBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzE2IF9fdHNhbl9hdG9taWMxNl9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzE2ICphLAogICAgX190c2FuX2F0b21pYzE2IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2ZldGNoX2FkZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4Cl9fdHNhbl9hdG9taWMxMjggX190c2FuX2F0b21pYzEyOF9mZXRjaF9hZGQodm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwKICAgIF9fdHNhbl9hdG9taWMxMjggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNlbmRpZgoKX190c2FuX2F0b21pYzggX190c2FuX2F0b21pYzhfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMxNiBfX3RzYW5fYXRvbWljMTZfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzMyIF9fdHNhbl9hdG9taWMzMl9mZXRjaF9zdWIodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyIHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2ZldGNoX3N1Yih2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOApfX3RzYW5fYXRvbWljMTI4IF9fdHNhbl9hdG9taWMxMjhfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMzMiAqYSwKICAgIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzY0IF9fdHNhbl9hdG9taWM2NF9mZXRjaF9hbmQodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX2FuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9vcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX29yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxNiAqYSwKICAgIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzMyIF9fdHNhbl9hdG9taWMzMl9mZXRjaF9vcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfb3Iodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX29yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMzMiAqYSwKICAgIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKX190c2FuX2F0b21pYzY0IF9fdHNhbl9hdG9taWM2NF9mZXRjaF94b3Iodm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLAogICAgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2ZldGNoX3hvcih2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgpfX3RzYW5fYXRvbWljOCBfX3RzYW5fYXRvbWljOF9mZXRjaF9uYW5kKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMxNiBfX3RzYW5fYXRvbWljMTZfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWMzMiBfX3RzYW5fYXRvbWljMzJfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7Cl9fdHNhbl9hdG9taWM2NCBfX3RzYW5fYXRvbWljNjRfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbyk7CiNpZiBfX1RTQU5fSEFTX0lOVDEyOApfX3RzYW5fYXRvbWljMTI4IF9fdHNhbl9hdG9taWMxMjhfZmV0Y2hfbmFuZCh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTI4ICphLAogICAgX190c2FuX2F0b21pYzEyOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vKTsKI2VuZGlmCgppbnQgX190c2FuX2F0b21pYzhfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM4ICphLAogICAgX190c2FuX2F0b21pYzggKmMsIF9fdHNhbl9hdG9taWM4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwppbnQgX190c2FuX2F0b21pYzE2X2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgKmMsIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMzMl9jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLAogICAgX190c2FuX2F0b21pYzMyICpjLCBfX3RzYW5fYXRvbWljMzIgdiwgX190c2FuX21lbW9yeV9vcmRlciBtbywKICAgIF9fdHNhbl9tZW1vcnlfb3JkZXIgZmFpbF9tbyk7CmludCBfX3RzYW5fYXRvbWljNjRfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWM2NCAqYSwKICAgIF9fdHNhbl9hdG9taWM2NCAqYywgX190c2FuX2F0b21pYzY0IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKaW50IF9fdHNhbl9hdG9taWMxMjhfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4ICpjLCBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCmludCBfX3RzYW5fYXRvbWljOF9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljOCAqYSwKICAgIF9fdHNhbl9hdG9taWM4ICpjLCBfX3RzYW5fYXRvbWljOCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMxNl9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMTYgKmEsCiAgICBfX3RzYW5fYXRvbWljMTYgKmMsIF9fdHNhbl9hdG9taWMxNiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWMzMl9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljMzIgKmEsCiAgICBfX3RzYW5fYXRvbWljMzIgKmMsIF9fdHNhbl9hdG9taWMzMiB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKaW50IF9fdHNhbl9hdG9taWM2NF9jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX3RzYW5fYXRvbWljNjQgKmEsCiAgICBfX3RzYW5fYXRvbWljNjQgKmMsIF9fdHNhbl9hdG9taWM2NCB2LCBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLAogICAgX190c2FuX21lbW9yeV9vcmRlciBmYWlsX21vKTsKI2lmIF9fVFNBTl9IQVNfSU5UMTI4CmludCBfX3RzYW5fYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fdHNhbl9hdG9taWMxMjggKmEsCiAgICBfX3RzYW5fYXRvbWljMTI4ICpjLCBfX3RzYW5fYXRvbWljMTI4IHYsIF9fdHNhbl9tZW1vcnlfb3JkZXIgbW8sCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCl9fdHNhbl9hdG9taWM4IF9fdHNhbl9hdG9taWM4X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzggKmEsIF9fdHNhbl9hdG9taWM4IGMsIF9fdHNhbl9hdG9taWM4IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljMTYgX190c2FuX2F0b21pYzE2X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzE2ICphLCBfX3RzYW5fYXRvbWljMTYgYywgX190c2FuX2F0b21pYzE2IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljMzIgX190c2FuX2F0b21pYzMyX2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzMyICphLCBfX3RzYW5fYXRvbWljMzIgYywgX190c2FuX2F0b21pYzMyIHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwpfX3RzYW5fYXRvbWljNjQgX190c2FuX2F0b21pYzY0X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzY0ICphLCBfX3RzYW5fYXRvbWljNjQgYywgX190c2FuX2F0b21pYzY0IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojaWYgX19UU0FOX0hBU19JTlQxMjgKX190c2FuX2F0b21pYzEyOCBfX3RzYW5fYXRvbWljMTI4X2NvbXBhcmVfZXhjaGFuZ2VfdmFsKAogICAgdm9sYXRpbGUgX190c2FuX2F0b21pYzEyOCAqYSwgX190c2FuX2F0b21pYzEyOCBjLCBfX3RzYW5fYXRvbWljMTI4IHYsCiAgICBfX3RzYW5fbWVtb3J5X29yZGVyIG1vLCBfX3RzYW5fbWVtb3J5X29yZGVyIGZhaWxfbW8pOwojZW5kaWYKCnZvaWQgX190c2FuX2F0b21pY190aHJlYWRfZmVuY2UoX190c2FuX21lbW9yeV9vcmRlciBtbyk7CnZvaWQgX190c2FuX2F0b21pY19zaWduYWxfZmVuY2UoX190c2FuX21lbW9yeV9vcmRlciBtbyk7CgojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gVFNBTl9JTlRFUkZBQ0VfQVRPTUlDX0gKAFJvb3QgZWxlbWVudCBpbiBKU09OIHdhcyBub3QgYW4gYXJyYXkuAE1pc3NpbmcgYSBjbG9zaW5nIHF1b3RhdGlvbiBtYXJrIGluIHN0cmluZy4ASW52YWxpZCBlbmNvZGluZyBpbiBzdHJpbmcuAGNsZWFuLW9ubHkAV2FsayBOVUxMAFxkAFxEAFs6ZGlnaXQ6XQAoPyw/KQBCYWQgYXJnczogbnN1Ym1hdGNoPQBcdABCZW5nYWxpAE51c2h1AFRpcmh1dGEAU0lHSUxMAFNJR1RFUk0AJXM6IHRvbyBtYW55IGV4ZWN1dGFibGUgTE9BRCBzZWdtZW50cwBiYXNlICE9IGRlYnVnZ2luZ19pbnRlcm5hbDo6RWxmTWVtSW1hZ2U6OmtJbnZhbGlkQmFzZQBpIDwgcHJldi0+bGV2ZWxzAGEAZGVjaW1hbDY0AER1AG1sADw8PQBBbiBPSyBzdGF0dXMgaXMgbm90IGEgdmFsaWQgY29uc3RydWN0b3IgYXJndW1lbnQgdG8gU3RhdHVzT3I8VD4AaW52YWxpZCBzdXJyb2dhdGUgY2hhcmFjdGVyICgweEQ4MDAtREZGRik6IFwAdHJlZS0+YmVnaW4oKSA8IHRyZWUtPmNhcGFjaXR5KCkASXNEYXRhRWRnZShlZGdlKQBDb3JkUmVwQnRyZWU6OkNoZWNrVmFsaWQoKSBGQUlMRUQ6ICVzICE9ICVzICglcyB2cyAlcykAMHgAXS5jaGlsZCA9PSBudWxscHRyAHdhaXRwLT50aHJlYWQtPndhaXRwID09IG51bGxwdHIgfHwgd2FpdHAtPnRocmVhZC0+c3VwcHJlc3NfZmF0YWxfZXJyb3JzAE11dGV4OjpGZXIgd2hpbGUgd2FpdGluZyBvbiBDb25kaXRpb24AV2FpdABVbmxvY2sgAFdhaXQgdW5ibG9ja2VkIAByAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vbXVsLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9lY19tb250Z29tZXJ5LmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy9mZWxlbS5jAE5JU1QgUC0zODQAZ2V0cmFuZG9tAGt5dGhlLnByb3RvLkFuYWx5c2lzUmVxdWVzdC5idWlsZF9pZABreXRoZS5wcm90by5Db21waWxhdGlvblVuaXQub3V0cHV0X2tleQBreXRoZS5wcm90by5CdWlsZERldGFpbHMucnVsZV90eXBlAGt5dGhlLnByb3RvLm1ldGFkYXRhLk1hcHBpbmdSdWxlLmVkZ2UAa3l0aGUvcHJvdG8vc3RvcmFnZS5wcm90bwAgIT0gAEtZVEhFX09VVFBVVF9GSUxFACkgZHVlIHRvIGl0cyBpbmNsdXNpb24gaW4gY29tcGlsZXIgYXJndW1lbnQ6IABwcmFnbWEAYXZ4NTEydmJtaWludHJpbi5oAGNsd2JpbnRyaW4uaABjcHVpZC5oAC8qID09PS0tLS0tLS0tIGlhMzJpbnRyaW4uaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8aWEzMmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2aW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19JQTMySU5UUklOX0gKI2RlZmluZSBfX0lBMzJJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18pKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19TU0U0MiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oInNzZTQuMiIpKSkKCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiAoX19jcGx1c3BsdXMgPj0gMjAxMTAzTCkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfQ0FTVCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpIGNvbnN0ZXhwcgojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIgX19ERUZBVUxUX0ZOX0FUVFJTIGNvbnN0ZXhwcgojZWxzZQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19DQVNUIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSIF9fREVGQVVMVF9GTl9BVFRSUwojZW5kaWYKCi8qKiBGaW5kIHRoZSBmaXJzdCBzZXQgYml0IHN0YXJ0aW5nIGZyb20gdGhlIGxzYi4gUmVzdWx0IGlzIHVuZGVmaW5lZCBpZgogKiAgaW5wdXQgaXMgMC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQlNGIDwvYz4gaW5zdHJ1Y3Rpb24gb3IgdGhlCiAqICA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgMzItYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgYml0IG51bWJlci4KICovCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fYnNmZChpbnQgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jdHooX19BKTsKfQoKLyoqIEZpbmQgdGhlIGZpcnN0IHNldCBiaXQgc3RhcnRpbmcgZnJvbSB0aGUgbXNiLiBSZXN1bHQgaXMgdW5kZWZpbmVkIGlmCiAqICBpbnB1dCBpcyAwLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCU1IgPC9jPiBpbnN0cnVjdGlvbiBvciB0aGUKICogIDxjPiBMWkNOVCA8L2M+IGluc3RydWN0aW9uIGFuZCBhbiA8Yz4gWE9SIDwvYz4uCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDMyLWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGJpdCBudW1iZXIuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX2JzcmQoaW50IF9fQSkgewogIHJldHVybiAzMSAtIF9fYnVpbHRpbl9jbHooX19BKTsKfQoKLyoqIFN3YXBzIHRoZSBieXRlcyBpbiB0aGUgaW5wdXQuIENvbnZlcnRpbmcgbGl0dGxlIGVuZGlhbiB0byBiaWcgZW5kaWFuIG9yCiAqICB2aWNlIHZlcnNhLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBCU1dBUCA8L2M+IGluc3RydWN0aW9uLgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQSAzMi1iaXQgaW50ZWdlciBvcGVyYW5kLgogKiAgXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBzd2FwcGVkIGJ5dGVzLgogKi8Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19ic3dhcGQoaW50IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMihfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfYnN3YXAoaW50IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fYnN3YXAzMihfX0EpOwp9CgojZGVmaW5lIF9iaXRfc2Nhbl9mb3J3YXJkKEEpIF9fYnNmZCgoQSkpCiNkZWZpbmUgX2JpdF9zY2FuX3JldmVyc2UoQSkgX19ic3JkKChBKSkKCiNpZmRlZiBfX3g4Nl82NF9fCi8qKiBGaW5kIHRoZSBmaXJzdCBzZXQgYml0IHN0YXJ0aW5nIGZyb20gdGhlIGxzYi4gUmVzdWx0IGlzIHVuZGVmaW5lZCBpZgogKiAgaW5wdXQgaXMgMC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQlNGIDwvYz4gaW5zdHJ1Y3Rpb24gb3IgdGhlCiAqICA8Yz4gVFpDTlQgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgNjQtYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgYml0IG51bWJlci4KICovCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fYnNmcShsb25nIGxvbmcgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9jdHpsbChfX0EpOwp9CgovKiogRmluZCB0aGUgZmlyc3Qgc2V0IGJpdCBzdGFydGluZyBmcm9tIHRoZSBtc2IuIFJlc3VsdCBpcyB1bmRlZmluZWQgaWYKICogIGlucHV0IGlzIDAuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEJTUiA8L2M+IGluc3RydWN0aW9uIG9yIHRoZQogKiAgPGM+IExaQ05UIDwvYz4gaW5zdHJ1Y3Rpb24gYW5kIGFuIDxjPiBYT1IgPC9jPi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgNjQtYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgYml0IG51bWJlci4KICovCnN0YXRpYyBfX2lubGluZV9fIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fYnNycShsb25nIGxvbmcgX19BKSB7CiAgcmV0dXJuIDYzIC0gX19idWlsdGluX2NsemxsKF9fQSk7Cn0KCi8qKiBTd2FwcyB0aGUgYnl0ZXMgaW4gdGhlIGlucHV0LiBDb252ZXJ0aW5nIGxpdHRsZSBlbmRpYW4gdG8gYmlnIGVuZGlhbiBvcgogKiAgdmljZSB2ZXJzYS4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQlNXQVAgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgNjQtYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgc3dhcHBlZCBieXRlcy4KICovCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fYnN3YXBxKGxvbmcgbG9uZyBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2Jzd2FwNjQoX19BKTsKfQoKI2RlZmluZSBfYnN3YXA2NChBKSBfX2Jzd2FwcSgoQSkpCiNlbmRpZgoKLyoqIENvdW50cyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGhhdmluZyBhIHZhbHVlIG9mIDEuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFBPUENOVCA8L2M+IGluc3RydWN0aW9uIG9yIGEKICogIGEgc2VxdWVuY2Ugb2YgYXJpdGhtZXRpYyBhbmQgbG9naWMgb3BzIHRvIGNhbGN1bGF0ZSBpdC4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqICBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBiaXRzIHdpdGggdmFsdWUgMSBpbiB0aGUKICogICAgIHNvdXJjZSBvcGVyYW5kLgogKi8Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19wb3BjbnRkKHVuc2lnbmVkIGludCBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50KF9fQSk7Cn0KCiNkZWZpbmUgX3BvcGNudDMyKEEpIF9fcG9wY250ZCgoQSkpCgojaWZkZWYgX194ODZfNjRfXwovKiogQ291bnRzIHRoZSBudW1iZXIgb2YgYml0cyBpbiB0aGUgc291cmNlIG9wZXJhbmQgaGF2aW5nIGEgdmFsdWUgb2YgMS4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE9QQ05UIDwvYz4gaW5zdHJ1Y3Rpb24gb3IgYQogKiAgYSBzZXF1ZW5jZSBvZiBhcml0aG1ldGljIGFuZCBsb2dpYyBvcHMgdG8gY2FsY3VsYXRlIGl0LgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgb3BlcmFuZC4KICogIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGJpdHMgd2l0aCB2YWx1ZSAxIGluIHRoZQogKiAgICAgc291cmNlIG9wZXJhbmQuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3BvcGNudHEodW5zaWduZWQgbG9uZyBsb25nIF9fQSkKewogIHJldHVybiBfX2J1aWx0aW5fcG9wY291bnRsbChfX0EpOwp9CgojZGVmaW5lIF9wb3BjbnQ2NChBKSBfX3BvcGNudHEoKEEpKQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI2lmZGVmIF9feDg2XzY0X18Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfX3JlYWRlZmxhZ3Modm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWFkZWZsYWdzX3U2NCgpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX3dyaXRlZWZsYWdzKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2YpCnsKICBfX2J1aWx0aW5faWEzMl93cml0ZWVmbGFnc191NjQoX19mKTsKfQoKI2Vsc2UgLyogIV9feDg2XzY0X18gKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfX3JlYWRlZmxhZ3Modm9pZCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9yZWFkZWZsYWdzX3UzMigpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfX3dyaXRlZWZsYWdzKHVuc2lnbmVkIGludCBfX2YpCnsKICBfX2J1aWx0aW5faWEzMl93cml0ZWVmbGFnc191MzIoX19mKTsKfQojZW5kaWYgLyogIV9feDg2XzY0X18gKi8KCi8qKiBDYXN0IGEgMzItYml0IGZsb2F0IHZhbHVlIHRvIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWUKICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkQgLyBNT1ZEIDwvYz4gaW5zdHJ1Y3Rpb24gaW4geDg2XzY0LAogKiAgYW5kIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkwgLyBNT1ZMIDwvYz4gaW5zdHJ1Y3Rpb24gaW4gaWEzMi4KICoKICogIFxwYXJhbSBfX0EKICogICAgIEEgMzItYml0IGZsb2F0IHZhbHVlLgogKiAgXHJldHVybnMgYSAzMi1iaXQgdW5zaWduZWQgaW50ZWdlciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWUuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NBU1QKX2Nhc3RmMzJfdTMyKGZsb2F0IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fYml0X2Nhc3QodW5zaWduZWQgaW50LCBfX0EpOwp9CgovKiogQ2FzdCBhIDY0LWJpdCBmbG9hdCB2YWx1ZSB0byBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZRIC8gTU9WUSA8L2M+IGluc3RydWN0aW9uIGluIHg4Nl82NCwKICogIGFuZCBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZMIC8gTU9WTCA8L2M+IGluc3RydWN0aW9uIGluIGlhMzIuCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDY0LWJpdCBmbG9hdCB2YWx1ZS4KICogIFxyZXR1cm5zIGEgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgogKi8Kc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSU19DQVNUCl9jYXN0ZjY0X3U2NChkb3VibGUgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9iaXRfY2FzdCh1bnNpZ25lZCBsb25nIGxvbmcsIF9fQSk7Cn0KCi8qKiBDYXN0IGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgdmFsdWUgdG8gYSAzMi1iaXQgZmxvYXQgdmFsdWUKICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlEgLyBNT1ZRIDwvYz4gaW5zdHJ1Y3Rpb24gaW4geDg2XzY0LAogKiAgYW5kIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRkxEUyA8L2M+IGluc3RydWN0aW9uIGluIGlhMzIuCiAqCiAqICBccGFyYW0gX19BCiAqICAgICBBIDMyLWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlLgogKiAgXHJldHVybnMgYSAzMi1iaXQgZmxvYXQgdmFsdWUgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlLgogKi8Kc3RhdGljIF9faW5saW5lX18gZmxvYXQgX19ERUZBVUxUX0ZOX0FUVFJTX0NBU1QKX2Nhc3R1MzJfZjMyKHVuc2lnbmVkIGludCBfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2JpdF9jYXN0KGZsb2F0LCBfX0EpOwp9CgovKiogQ2FzdCBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIHZhbHVlIHRvIGEgNjQtYml0IGZsb2F0IHZhbHVlCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZRIC8gTU9WUSA8L2M+IGluc3RydWN0aW9uIGluIHg4Nl82NCwKICogIGFuZCBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEZMREwgPC9jPiBpbnN0cnVjdGlvbiBpbiBpYTMyLgogKgogKiAgXHBhcmFtIF9fQQogKiAgICAgQSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlciB2YWx1ZS4KICogIFxyZXR1cm5zIGEgNjQtYml0IGZsb2F0IHZhbHVlIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZS4KICovCnN0YXRpYyBfX2lubGluZV9fIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlNfQ0FTVApfY2FzdHU2NF9mNjQodW5zaWduZWQgbG9uZyBsb25nIF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5fYml0X2Nhc3QoZG91YmxlLCBfX0EpOwp9CgovKiogQWRkcyB0aGUgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIHRoZQogKiAgICAgdW5zaWduZWQgY2hhciBvcGVyYW5kLgogKgogKiAgXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgogKgogKiAgVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBDUkMzMkIgPC9jPiBpbnN0cnVjdGlvbi4KICoKICogIFxwYXJhbSBfX0MKICogICAgIEFuIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byBhZGQgdG8gdGhlIENSQy0zMkMgY2hlY2tzdW0gb2Ygb3BlcmFuZAogKiAgICAgXGEgIF9fRC4KICogIFxwYXJhbSBfX0QKICogICAgIEFuIHVuc2lnbmVkIDgtYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCiAqICBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgogKiAgICAgb3BlcmFuZCBcYSBfX0QuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX1NTRTQyCl9fY3JjMzJiKHVuc2lnbmVkIGludCBfX0MsIHVuc2lnbmVkIGNoYXIgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMycWkoX19DLCBfX0QpOwp9CgovKiogQWRkcyB0aGUgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIHRoZQogKiAgICAgdW5zaWduZWQgc2hvcnQgb3BlcmFuZC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJXIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19DCiAqICAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKICogICAgIFxhICBfX0QuCiAqICBccGFyYW0gX19ECiAqICAgICBBbiB1bnNpZ25lZCAxNi1iaXQgaW50ZWdlciBvcGVyYW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgQ1JDLTMyQyBjaGVja3N1bS4KICogIFxyZXR1cm5zIFRoZSByZXN1bHQgb2YgYWRkaW5nIG9wZXJhbmQgXGEgX19DIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCiAqICAgICBvcGVyYW5kIFxhIF9fRC4KICovCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfU1NFNDIKX19jcmMzMncodW5zaWduZWQgaW50IF9fQywgdW5zaWduZWQgc2hvcnQgX19EKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2NyYzMyaGkoX19DLCBfX0QpOwp9CgovKiogQWRkcyB0aGUgdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIHRoZQogKiAgICAgc2Vjb25kIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZC4KICoKICogIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KICoKICogIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gQ1JDMzJEIDwvYz4gaW5zdHJ1Y3Rpb24uCiAqCiAqICBccGFyYW0gX19DCiAqICAgICBBbiB1bnNpZ25lZCBpbnRlZ2VyIG9wZXJhbmQgdG8gYWRkIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mIG9wZXJhbmQKICogICAgIFxhICBfX0QuCiAqICBccGFyYW0gX19ECiAqICAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBvcGVyYW5kIHVzZWQgdG8gY29tcHV0ZSB0aGUgQ1JDLTMyQyBjaGVja3N1bS4KICogIFxyZXR1cm5zIFRoZSByZXN1bHQgb2YgYWRkaW5nIG9wZXJhbmQgXGEgX19DIHRvIHRoZSBDUkMtMzJDIGNoZWNrc3VtIG9mCiAqICAgICBvcGVyYW5kIFxhIF9fRC4KICovCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfU1NFNDIKX19jcmMzMmQodW5zaWduZWQgaW50IF9fQywgdW5zaWduZWQgaW50IF9fRCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jcmMzMnNpKF9fQywgX19EKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLyoqIEFkZHMgdGhlIHVuc2lnbmVkIGludGVnZXIgb3BlcmFuZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiB0aGUKICogICAgIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyIG9wZXJhbmQuCiAqCiAqICBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+CiAqCiAqICBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IENSQzMyUSA8L2M+IGluc3RydWN0aW9uLgogKgogKiAgXHBhcmFtIF9fQwogKiAgICAgQW4gdW5zaWduZWQgaW50ZWdlciBvcGVyYW5kIHRvIGFkZCB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZiBvcGVyYW5kCiAqICAgICBcYSAgX19ELgogKiAgXHBhcmFtIF9fRAogKiAgICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgb3BlcmFuZCB1c2VkIHRvIGNvbXB1dGUgdGhlIENSQy0zMkMgY2hlY2tzdW0uCiAqICBccmV0dXJucyBUaGUgcmVzdWx0IG9mIGFkZGluZyBvcGVyYW5kIFxhIF9fQyB0byB0aGUgQ1JDLTMyQyBjaGVja3N1bSBvZgogKiAgICAgb3BlcmFuZCBcYSBfX0QuCiAqLwpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX1NTRTQyCl9fY3JjMzJxKHVuc2lnbmVkIGxvbmcgbG9uZyBfX0MsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0QpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfY3JjMzJkaShfX0MsIF9fRCk7Cn0KI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19yZHBtYyhpbnQgX19BKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3JkcG1jKF9fQSk7Cn0KCi8qIF9fcmR0c2NwICovCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlMKX19yZHRzY3AodW5zaWduZWQgaW50ICpfX0EpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcmR0c2NwKF9fQSk7Cn0KCiNkZWZpbmUgX3JkdHNjKCkgX19yZHRzYygpCgojZGVmaW5lIF9yZHBtYyhBKSBfX3JkcG1jKEEpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfd2JpbnZkKHZvaWQpIHsKICBfX2J1aWx0aW5faWEzMl93YmludmQoKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9sYih1bnNpZ25lZCBjaGFyIF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlbGVmdDgoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19yb3JiKHVuc2lnbmVkIGNoYXIgX19YLCBpbnQgX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9yb3RhdGVyaWdodDgoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBzaG9ydCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9sdyh1bnNpZ25lZCBzaG9ydCBfX1gsIGludCBfX0MpIHsKICByZXR1cm4gX19idWlsdGluX3JvdGF0ZWxlZnQxNihfX1gsIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIHNob3J0IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX19yb3J3KHVuc2lnbmVkIHNob3J0IF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlcmlnaHQxNihfX1gsIF9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9sZCh1bnNpZ25lZCBpbnQgX19YLCBpbnQgX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9yb3RhdGVsZWZ0MzIoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvcmQodW5zaWduZWQgaW50IF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlcmlnaHQzMihfX1gsIF9fQyk7Cn0KCiNpZmRlZiBfX3g4Nl82NF9fCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9fcm9scSh1bnNpZ25lZCBsb25nIGxvbmcgX19YLCBpbnQgX19DKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9yb3RhdGVsZWZ0NjQoX19YLCBfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgpfX3JvcnEodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgaW50IF9fQykgewogIHJldHVybiBfX2J1aWx0aW5fcm90YXRlcmlnaHQ2NChfX1gsIF9fQyk7Cn0KI2VuZGlmIC8qIF9feDg2XzY0X18gKi8KCiNpZm5kZWYgX01TQ19WRVIKLyogVGhlc2UgYXJlIGFscmVhZHkgcHJvdmlkZWQgYXMgYnVpbHRpbnMgZm9yIE1TVkMuICovCi8qIFNlbGVjdCB0aGUgY29ycmVjdCBmdW5jdGlvbiBiYXNlZCBvbiB0aGUgc2l6ZSBvZiBsb25nLiAqLwojaWZkZWYgX19MUDY0X18KI2RlZmluZSBfbHJvdGwoYSxiKSBfX3JvbHEoKGEpLCAoYikpCiNkZWZpbmUgX2xyb3RyKGEsYikgX19yb3JxKChhKSwgKGIpKQojZWxzZQojZGVmaW5lIF9scm90bChhLGIpIF9fcm9sZCgoYSksIChiKSkKI2RlZmluZSBfbHJvdHIoYSxiKSBfX3JvcmQoKGEpLCAoYikpCiNlbmRpZgojZGVmaW5lIF9yb3RsKGEsYikgX19yb2xkKChhKSwgKGIpKQojZGVmaW5lIF9yb3RyKGEsYikgX19yb3JkKChhKSwgKGIpKQojZW5kaWYgLy8gX01TQ19WRVIKCi8qIFRoZXNlIGFyZSBub3QgYnVpbHRpbnMgc28gbmVlZCB0byBiZSBwcm92aWRlZCBpbiBhbGwgbW9kZXMuICovCiNkZWZpbmUgX3JvdHdsKGEsYikgX19yb2x3KChhKSwgKGIpKQojZGVmaW5lIF9yb3R3cihhLGIpIF9fcm9ydygoYSksIChiKSkKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19DQVNUCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfU1NFNDIKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKCiNlbmRpZiAvKiBfX0lBMzJJTlRSSU5fSCAqLwoAaW50dHlwZXMuaABpbnZwY2lkaW50cmluLmgAbW0zZG5vdy5oAC8qPT09LS0tLSBtc2EuaCAtIE1JUFMgTVNBIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX01TQV9ICiNkZWZpbmUgX01TQV9IIDEKCiNpZiBkZWZpbmVkKF9fbWlwc19tc2EpCnR5cGVkZWYgc2lnbmVkIGNoYXIgdjE2aTggX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIHNpZ25lZCBjaGFyIHYxNmk4X2IgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDEpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciB2MTZ1OCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciB2MTZ1OF9iIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxKSkpOwp0eXBlZGVmIHNob3J0IHY4aTE2IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiBzaG9ydCB2OGkxNl9oIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgyKSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHY4dTE2IF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB2OHUxNl9oIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgyKSkpOwp0eXBlZGVmIGludCB2NGkzMiBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgaW50IHY0aTMyX3cgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDQpKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IHY0dTMyIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCgxNikpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdjR1MzJfdyBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoNCkpKTsKdHlwZWRlZiBsb25nIGxvbmcgdjJpNjQgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZyB2Mmk2NF9kIF9fYXR0cmlidXRlX18oKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCg4KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB2MnU2NCBfX2F0dHJpYnV0ZV9fKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHYydTY0X2QgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDgpKSk7CnR5cGVkZWYgZmxvYXQgdjRmMzIgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDE2KSkpOwp0eXBlZGVmIGZsb2F0IHY0ZjMyX3cgX19hdHRyaWJ1dGVfXygodmVjdG9yX3NpemUoMTYpLCBhbGlnbmVkKDQpKSk7CnR5cGVkZWYgZG91YmxlIHYyZjY0IF9fYXR0cmlidXRlX18gKCh2ZWN0b3Jfc2l6ZSgxNiksIGFsaWduZWQoMTYpKSk7CnR5cGVkZWYgZG91YmxlIHYyZjY0X2QgX19hdHRyaWJ1dGVfXyAoKHZlY3Rvcl9zaXplKDE2KSwgYWxpZ25lZCg4KSkpOwoKI2RlZmluZSBfX21zYV9zbGxfYiBfX2J1aWx0aW5fbXNhX3NsbF9iCiNkZWZpbmUgX19tc2Ffc2xsX2ggX19idWlsdGluX21zYV9zbGxfaAojZGVmaW5lIF9fbXNhX3NsbF93IF9fYnVpbHRpbl9tc2Ffc2xsX3cKI2RlZmluZSBfX21zYV9zbGxfZCBfX2J1aWx0aW5fbXNhX3NsbF9kCiNkZWZpbmUgX19tc2Ffc2xsaV9iIF9fYnVpbHRpbl9tc2Ffc2xsaV9iCiNkZWZpbmUgX19tc2Ffc2xsaV9oIF9fYnVpbHRpbl9tc2Ffc2xsaV9oCiNkZWZpbmUgX19tc2Ffc2xsaV93IF9fYnVpbHRpbl9tc2Ffc2xsaV93CiNkZWZpbmUgX19tc2Ffc2xsaV9kIF9fYnVpbHRpbl9tc2Ffc2xsaV9kCiNkZWZpbmUgX19tc2Ffc3JhX2IgX19idWlsdGluX21zYV9zcmFfYgojZGVmaW5lIF9fbXNhX3NyYV9oIF9fYnVpbHRpbl9tc2Ffc3JhX2gKI2RlZmluZSBfX21zYV9zcmFfdyBfX2J1aWx0aW5fbXNhX3NyYV93CiNkZWZpbmUgX19tc2Ffc3JhX2QgX19idWlsdGluX21zYV9zcmFfZAojZGVmaW5lIF9fbXNhX3NyYWlfYiBfX2J1aWx0aW5fbXNhX3NyYWlfYgojZGVmaW5lIF9fbXNhX3NyYWlfaCBfX2J1aWx0aW5fbXNhX3NyYWlfaAojZGVmaW5lIF9fbXNhX3NyYWlfdyBfX2J1aWx0aW5fbXNhX3NyYWlfdwojZGVmaW5lIF9fbXNhX3NyYWlfZCBfX2J1aWx0aW5fbXNhX3NyYWlfZAojZGVmaW5lIF9fbXNhX3NyYXJfYiBfX2J1aWx0aW5fbXNhX3NyYXJfYgojZGVmaW5lIF9fbXNhX3NyYXJfaCBfX2J1aWx0aW5fbXNhX3NyYXJfaAojZGVmaW5lIF9fbXNhX3NyYXJfdyBfX2J1aWx0aW5fbXNhX3NyYXJfdwojZGVmaW5lIF9fbXNhX3NyYXJfZCBfX2J1aWx0aW5fbXNhX3NyYXJfZAojZGVmaW5lIF9fbXNhX3NyYXJpX2IgX19idWlsdGluX21zYV9zcmFyaV9iCiNkZWZpbmUgX19tc2Ffc3JhcmlfaCBfX2J1aWx0aW5fbXNhX3NyYXJpX2gKI2RlZmluZSBfX21zYV9zcmFyaV93IF9fYnVpbHRpbl9tc2Ffc3JhcmlfdwojZGVmaW5lIF9fbXNhX3NyYXJpX2QgX19idWlsdGluX21zYV9zcmFyaV9kCiNkZWZpbmUgX19tc2Ffc3JsX2IgX19idWlsdGluX21zYV9zcmxfYgojZGVmaW5lIF9fbXNhX3NybF9oIF9fYnVpbHRpbl9tc2Ffc3JsX2gKI2RlZmluZSBfX21zYV9zcmxfdyBfX2J1aWx0aW5fbXNhX3NybF93CiNkZWZpbmUgX19tc2Ffc3JsX2QgX19idWlsdGluX21zYV9zcmxfZAojZGVmaW5lIF9fbXNhX3NybGlfYiBfX2J1aWx0aW5fbXNhX3NybGlfYgojZGVmaW5lIF9fbXNhX3NybGlfaCBfX2J1aWx0aW5fbXNhX3NybGlfaAojZGVmaW5lIF9fbXNhX3NybGlfdyBfX2J1aWx0aW5fbXNhX3NybGlfdwojZGVmaW5lIF9fbXNhX3NybGlfZCBfX2J1aWx0aW5fbXNhX3NybGlfZAojZGVmaW5lIF9fbXNhX3NybHJfYiBfX2J1aWx0aW5fbXNhX3NybHJfYgojZGVmaW5lIF9fbXNhX3NybHJfaCBfX2J1aWx0aW5fbXNhX3NybHJfaAojZGVmaW5lIF9fbXNhX3NybHJfdyBfX2J1aWx0aW5fbXNhX3NybHJfdwojZGVmaW5lIF9fbXNhX3NybHJfZCBfX2J1aWx0aW5fbXNhX3NybHJfZAojZGVmaW5lIF9fbXNhX3NybHJpX2IgX19idWlsdGluX21zYV9zcmxyaV9iCiNkZWZpbmUgX19tc2Ffc3JscmlfaCBfX2J1aWx0aW5fbXNhX3NybHJpX2gKI2RlZmluZSBfX21zYV9zcmxyaV93IF9fYnVpbHRpbl9tc2Ffc3JscmlfdwojZGVmaW5lIF9fbXNhX3NybHJpX2QgX19idWlsdGluX21zYV9zcmxyaV9kCiNkZWZpbmUgX19tc2FfYmNscl9iIF9fYnVpbHRpbl9tc2FfYmNscl9iCiNkZWZpbmUgX19tc2FfYmNscl9oIF9fYnVpbHRpbl9tc2FfYmNscl9oCiNkZWZpbmUgX19tc2FfYmNscl93IF9fYnVpbHRpbl9tc2FfYmNscl93CiNkZWZpbmUgX19tc2FfYmNscl9kIF9fYnVpbHRpbl9tc2FfYmNscl9kCiNkZWZpbmUgX19tc2FfYmNscmlfYiBfX2J1aWx0aW5fbXNhX2JjbHJpX2IKI2RlZmluZSBfX21zYV9iY2xyaV9oIF9fYnVpbHRpbl9tc2FfYmNscmlfaAojZGVmaW5lIF9fbXNhX2JjbHJpX3cgX19idWlsdGluX21zYV9iY2xyaV93CiNkZWZpbmUgX19tc2FfYmNscmlfZCBfX2J1aWx0aW5fbXNhX2JjbHJpX2QKI2RlZmluZSBfX21zYV9ic2V0X2IgX19idWlsdGluX21zYV9ic2V0X2IKI2RlZmluZSBfX21zYV9ic2V0X2ggX19idWlsdGluX21zYV9ic2V0X2gKI2RlZmluZSBfX21zYV9ic2V0X3cgX19idWlsdGluX21zYV9ic2V0X3cKI2RlZmluZSBfX21zYV9ic2V0X2QgX19idWlsdGluX21zYV9ic2V0X2QKI2RlZmluZSBfX21zYV9ic2V0aV9iIF9fYnVpbHRpbl9tc2FfYnNldGlfYgojZGVmaW5lIF9fbXNhX2JzZXRpX2ggX19idWlsdGluX21zYV9ic2V0aV9oCiNkZWZpbmUgX19tc2FfYnNldGlfdyBfX2J1aWx0aW5fbXNhX2JzZXRpX3cKI2RlZmluZSBfX21zYV9ic2V0aV9kIF9fYnVpbHRpbl9tc2FfYnNldGlfZAojZGVmaW5lIF9fbXNhX2JuZWdfYiBfX2J1aWx0aW5fbXNhX2JuZWdfYgojZGVmaW5lIF9fbXNhX2JuZWdfaCBfX2J1aWx0aW5fbXNhX2JuZWdfaAojZGVmaW5lIF9fbXNhX2JuZWdfdyBfX2J1aWx0aW5fbXNhX2JuZWdfdwojZGVmaW5lIF9fbXNhX2JuZWdfZCBfX2J1aWx0aW5fbXNhX2JuZWdfZAojZGVmaW5lIF9fbXNhX2JuZWdpX2IgX19idWlsdGluX21zYV9ibmVnaV9iCiNkZWZpbmUgX19tc2FfYm5lZ2lfaCBfX2J1aWx0aW5fbXNhX2JuZWdpX2gKI2RlZmluZSBfX21zYV9ibmVnaV93IF9fYnVpbHRpbl9tc2FfYm5lZ2lfdwojZGVmaW5lIF9fbXNhX2JuZWdpX2QgX19idWlsdGluX21zYV9ibmVnaV9kCiNkZWZpbmUgX19tc2FfYmluc2xfYiBfX2J1aWx0aW5fbXNhX2JpbnNsX2IKI2RlZmluZSBfX21zYV9iaW5zbF9oIF9fYnVpbHRpbl9tc2FfYmluc2xfaAojZGVmaW5lIF9fbXNhX2JpbnNsX3cgX19idWlsdGluX21zYV9iaW5zbF93CiNkZWZpbmUgX19tc2FfYmluc2xfZCBfX2J1aWx0aW5fbXNhX2JpbnNsX2QKI2RlZmluZSBfX21zYV9iaW5zbGlfYiBfX2J1aWx0aW5fbXNhX2JpbnNsaV9iCiNkZWZpbmUgX19tc2FfYmluc2xpX2ggX19idWlsdGluX21zYV9iaW5zbGlfaAojZGVmaW5lIF9fbXNhX2JpbnNsaV93IF9fYnVpbHRpbl9tc2FfYmluc2xpX3cKI2RlZmluZSBfX21zYV9iaW5zbGlfZCBfX2J1aWx0aW5fbXNhX2JpbnNsaV9kCiNkZWZpbmUgX19tc2FfYmluc3JfYiBfX2J1aWx0aW5fbXNhX2JpbnNyX2IKI2RlZmluZSBfX21zYV9iaW5zcl9oIF9fYnVpbHRpbl9tc2FfYmluc3JfaAojZGVmaW5lIF9fbXNhX2JpbnNyX3cgX19idWlsdGluX21zYV9iaW5zcl93CiNkZWZpbmUgX19tc2FfYmluc3JfZCBfX2J1aWx0aW5fbXNhX2JpbnNyX2QKI2RlZmluZSBfX21zYV9iaW5zcmlfYiBfX2J1aWx0aW5fbXNhX2JpbnNyaV9iCiNkZWZpbmUgX19tc2FfYmluc3JpX2ggX19idWlsdGluX21zYV9iaW5zcmlfaAojZGVmaW5lIF9fbXNhX2JpbnNyaV93IF9fYnVpbHRpbl9tc2FfYmluc3JpX3cKI2RlZmluZSBfX21zYV9iaW5zcmlfZCBfX2J1aWx0aW5fbXNhX2JpbnNyaV9kCiNkZWZpbmUgX19tc2FfYWRkdl9iIF9fYnVpbHRpbl9tc2FfYWRkdl9iCiNkZWZpbmUgX19tc2FfYWRkdl9oIF9fYnVpbHRpbl9tc2FfYWRkdl9oCiNkZWZpbmUgX19tc2FfYWRkdl93IF9fYnVpbHRpbl9tc2FfYWRkdl93CiNkZWZpbmUgX19tc2FfYWRkdl9kIF9fYnVpbHRpbl9tc2FfYWRkdl9kCiNkZWZpbmUgX19tc2FfYWRkdmlfYiBfX2J1aWx0aW5fbXNhX2FkZHZpX2IKI2RlZmluZSBfX21zYV9hZGR2aV9oIF9fYnVpbHRpbl9tc2FfYWRkdmlfaAojZGVmaW5lIF9fbXNhX2FkZHZpX3cgX19idWlsdGluX21zYV9hZGR2aV93CiNkZWZpbmUgX19tc2FfYWRkdmlfZCBfX2J1aWx0aW5fbXNhX2FkZHZpX2QKI2RlZmluZSBfX21zYV9zdWJ2X2IgX19idWlsdGluX21zYV9zdWJ2X2IKI2RlZmluZSBfX21zYV9zdWJ2X2ggX19idWlsdGluX21zYV9zdWJ2X2gKI2RlZmluZSBfX21zYV9zdWJ2X3cgX19idWlsdGluX21zYV9zdWJ2X3cKI2RlZmluZSBfX21zYV9zdWJ2X2QgX19idWlsdGluX21zYV9zdWJ2X2QKI2RlZmluZSBfX21zYV9zdWJ2aV9iIF9fYnVpbHRpbl9tc2Ffc3VidmlfYgojZGVmaW5lIF9fbXNhX3N1YnZpX2ggX19idWlsdGluX21zYV9zdWJ2aV9oCiNkZWZpbmUgX19tc2Ffc3VidmlfdyBfX2J1aWx0aW5fbXNhX3N1YnZpX3cKI2RlZmluZSBfX21zYV9zdWJ2aV9kIF9fYnVpbHRpbl9tc2Ffc3VidmlfZAojZGVmaW5lIF9fbXNhX21heF9zX2IgX19idWlsdGluX21zYV9tYXhfc19iCiNkZWZpbmUgX19tc2FfbWF4X3NfaCBfX2J1aWx0aW5fbXNhX21heF9zX2gKI2RlZmluZSBfX21zYV9tYXhfc193IF9fYnVpbHRpbl9tc2FfbWF4X3NfdwojZGVmaW5lIF9fbXNhX21heF9zX2QgX19idWlsdGluX21zYV9tYXhfc19kCiNkZWZpbmUgX19tc2FfbWF4aV9zX2IgX19idWlsdGluX21zYV9tYXhpX3NfYgojZGVmaW5lIF9fbXNhX21heGlfc19oIF9fYnVpbHRpbl9tc2FfbWF4aV9zX2gKI2RlZmluZSBfX21zYV9tYXhpX3NfdyBfX2J1aWx0aW5fbXNhX21heGlfc193CiNkZWZpbmUgX19tc2FfbWF4aV9zX2QgX19idWlsdGluX21zYV9tYXhpX3NfZAojZGVmaW5lIF9fbXNhX21heF91X2IgX19idWlsdGluX21zYV9tYXhfdV9iCiNkZWZpbmUgX19tc2FfbWF4X3VfaCBfX2J1aWx0aW5fbXNhX21heF91X2gKI2RlZmluZSBfX21zYV9tYXhfdV93IF9fYnVpbHRpbl9tc2FfbWF4X3VfdwojZGVmaW5lIF9fbXNhX21heF91X2QgX19idWlsdGluX21zYV9tYXhfdV9kCiNkZWZpbmUgX19tc2FfbWF4aV91X2IgX19idWlsdGluX21zYV9tYXhpX3VfYgojZGVmaW5lIF9fbXNhX21heGlfdV9oIF9fYnVpbHRpbl9tc2FfbWF4aV91X2gKI2RlZmluZSBfX21zYV9tYXhpX3VfdyBfX2J1aWx0aW5fbXNhX21heGlfdV93CiNkZWZpbmUgX19tc2FfbWF4aV91X2QgX19idWlsdGluX21zYV9tYXhpX3VfZAojZGVmaW5lIF9fbXNhX21pbl9zX2IgX19idWlsdGluX21zYV9taW5fc19iCiNkZWZpbmUgX19tc2FfbWluX3NfaCBfX2J1aWx0aW5fbXNhX21pbl9zX2gKI2RlZmluZSBfX21zYV9taW5fc193IF9fYnVpbHRpbl9tc2FfbWluX3NfdwojZGVmaW5lIF9fbXNhX21pbl9zX2QgX19idWlsdGluX21zYV9taW5fc19kCiNkZWZpbmUgX19tc2FfbWluaV9zX2IgX19idWlsdGluX21zYV9taW5pX3NfYgojZGVmaW5lIF9fbXNhX21pbmlfc19oIF9fYnVpbHRpbl9tc2FfbWluaV9zX2gKI2RlZmluZSBfX21zYV9taW5pX3NfdyBfX2J1aWx0aW5fbXNhX21pbmlfc193CiNkZWZpbmUgX19tc2FfbWluaV9zX2QgX19idWlsdGluX21zYV9taW5pX3NfZAojZGVmaW5lIF9fbXNhX21pbl91X2IgX19idWlsdGluX21zYV9taW5fdV9iCiNkZWZpbmUgX19tc2FfbWluX3VfaCBfX2J1aWx0aW5fbXNhX21pbl91X2gKI2RlZmluZSBfX21zYV9taW5fdV93IF9fYnVpbHRpbl9tc2FfbWluX3VfdwojZGVmaW5lIF9fbXNhX21pbl91X2QgX19idWlsdGluX21zYV9taW5fdV9kCiNkZWZpbmUgX19tc2FfbWluaV91X2IgX19idWlsdGluX21zYV9taW5pX3VfYgojZGVmaW5lIF9fbXNhX21pbmlfdV9oIF9fYnVpbHRpbl9tc2FfbWluaV91X2gKI2RlZmluZSBfX21zYV9taW5pX3VfdyBfX2J1aWx0aW5fbXNhX21pbmlfdV93CiNkZWZpbmUgX19tc2FfbWluaV91X2QgX19idWlsdGluX21zYV9taW5pX3VfZAojZGVmaW5lIF9fbXNhX21heF9hX2IgX19idWlsdGluX21zYV9tYXhfYV9iCiNkZWZpbmUgX19tc2FfbWF4X2FfaCBfX2J1aWx0aW5fbXNhX21heF9hX2gKI2RlZmluZSBfX21zYV9tYXhfYV93IF9fYnVpbHRpbl9tc2FfbWF4X2FfdwojZGVmaW5lIF9fbXNhX21heF9hX2QgX19idWlsdGluX21zYV9tYXhfYV9kCiNkZWZpbmUgX19tc2FfbWluX2FfYiBfX2J1aWx0aW5fbXNhX21pbl9hX2IKI2RlZmluZSBfX21zYV9taW5fYV9oIF9fYnVpbHRpbl9tc2FfbWluX2FfaAojZGVmaW5lIF9fbXNhX21pbl9hX3cgX19idWlsdGluX21zYV9taW5fYV93CiNkZWZpbmUgX19tc2FfbWluX2FfZCBfX2J1aWx0aW5fbXNhX21pbl9hX2QKI2RlZmluZSBfX21zYV9jZXFfYiBfX2J1aWx0aW5fbXNhX2NlcV9iCiNkZWZpbmUgX19tc2FfY2VxX2ggX19idWlsdGluX21zYV9jZXFfaAojZGVmaW5lIF9fbXNhX2NlcV93IF9fYnVpbHRpbl9tc2FfY2VxX3cKI2RlZmluZSBfX21zYV9jZXFfZCBfX2J1aWx0aW5fbXNhX2NlcV9kCiNkZWZpbmUgX19tc2FfY2VxaV9iIF9fYnVpbHRpbl9tc2FfY2VxaV9iCiNkZWZpbmUgX19tc2FfY2VxaV9oIF9fYnVpbHRpbl9tc2FfY2VxaV9oCiNkZWZpbmUgX19tc2FfY2VxaV93IF9fYnVpbHRpbl9tc2FfY2VxaV93CiNkZWZpbmUgX19tc2FfY2VxaV9kIF9fYnVpbHRpbl9tc2FfY2VxaV9kCiNkZWZpbmUgX19tc2FfY2x0X3NfYiBfX2J1aWx0aW5fbXNhX2NsdF9zX2IKI2RlZmluZSBfX21zYV9jbHRfc19oIF9fYnVpbHRpbl9tc2FfY2x0X3NfaAojZGVmaW5lIF9fbXNhX2NsdF9zX3cgX19idWlsdGluX21zYV9jbHRfc193CiNkZWZpbmUgX19tc2FfY2x0X3NfZCBfX2J1aWx0aW5fbXNhX2NsdF9zX2QKI2RlZmluZSBfX21zYV9jbHRpX3NfYiBfX2J1aWx0aW5fbXNhX2NsdGlfc19iCiNkZWZpbmUgX19tc2FfY2x0aV9zX2ggX19idWlsdGluX21zYV9jbHRpX3NfaAojZGVmaW5lIF9fbXNhX2NsdGlfc193IF9fYnVpbHRpbl9tc2FfY2x0aV9zX3cKI2RlZmluZSBfX21zYV9jbHRpX3NfZCBfX2J1aWx0aW5fbXNhX2NsdGlfc19kCiNkZWZpbmUgX19tc2FfY2x0X3VfYiBfX2J1aWx0aW5fbXNhX2NsdF91X2IKI2RlZmluZSBfX21zYV9jbHRfdV9oIF9fYnVpbHRpbl9tc2FfY2x0X3VfaAojZGVmaW5lIF9fbXNhX2NsdF91X3cgX19idWlsdGluX21zYV9jbHRfdV93CiNkZWZpbmUgX19tc2FfY2x0X3VfZCBfX2J1aWx0aW5fbXNhX2NsdF91X2QKI2RlZmluZSBfX21zYV9jbHRpX3VfYiBfX2J1aWx0aW5fbXNhX2NsdGlfdV9iCiNkZWZpbmUgX19tc2FfY2x0aV91X2ggX19idWlsdGluX21zYV9jbHRpX3VfaAojZGVmaW5lIF9fbXNhX2NsdGlfdV93IF9fYnVpbHRpbl9tc2FfY2x0aV91X3cKI2RlZmluZSBfX21zYV9jbHRpX3VfZCBfX2J1aWx0aW5fbXNhX2NsdGlfdV9kCiNkZWZpbmUgX19tc2FfY2xlX3NfYiBfX2J1aWx0aW5fbXNhX2NsZV9zX2IKI2RlZmluZSBfX21zYV9jbGVfc19oIF9fYnVpbHRpbl9tc2FfY2xlX3NfaAojZGVmaW5lIF9fbXNhX2NsZV9zX3cgX19idWlsdGluX21zYV9jbGVfc193CiNkZWZpbmUgX19tc2FfY2xlX3NfZCBfX2J1aWx0aW5fbXNhX2NsZV9zX2QKI2RlZmluZSBfX21zYV9jbGVpX3NfYiBfX2J1aWx0aW5fbXNhX2NsZWlfc19iCiNkZWZpbmUgX19tc2FfY2xlaV9zX2ggX19idWlsdGluX21zYV9jbGVpX3NfaAojZGVmaW5lIF9fbXNhX2NsZWlfc193IF9fYnVpbHRpbl9tc2FfY2xlaV9zX3cKI2RlZmluZSBfX21zYV9jbGVpX3NfZCBfX2J1aWx0aW5fbXNhX2NsZWlfc19kCiNkZWZpbmUgX19tc2FfY2xlX3VfYiBfX2J1aWx0aW5fbXNhX2NsZV91X2IKI2RlZmluZSBfX21zYV9jbGVfdV9oIF9fYnVpbHRpbl9tc2FfY2xlX3VfaAojZGVmaW5lIF9fbXNhX2NsZV91X3cgX19idWlsdGluX21zYV9jbGVfdV93CiNkZWZpbmUgX19tc2FfY2xlX3VfZCBfX2J1aWx0aW5fbXNhX2NsZV91X2QKI2RlZmluZSBfX21zYV9jbGVpX3VfYiBfX2J1aWx0aW5fbXNhX2NsZWlfdV9iCiNkZWZpbmUgX19tc2FfY2xlaV91X2ggX19idWlsdGluX21zYV9jbGVpX3VfaAojZGVmaW5lIF9fbXNhX2NsZWlfdV93IF9fYnVpbHRpbl9tc2FfY2xlaV91X3cKI2RlZmluZSBfX21zYV9jbGVpX3VfZCBfX2J1aWx0aW5fbXNhX2NsZWlfdV9kCiNkZWZpbmUgX19tc2FfbGRfYiBfX2J1aWx0aW5fbXNhX2xkX2IKI2RlZmluZSBfX21zYV9sZF9oIF9fYnVpbHRpbl9tc2FfbGRfaAojZGVmaW5lIF9fbXNhX2xkX3cgX19idWlsdGluX21zYV9sZF93CiNkZWZpbmUgX19tc2FfbGRfZCBfX2J1aWx0aW5fbXNhX2xkX2QKI2RlZmluZSBfX21zYV9sZHJfZCBfX2J1aWx0aW5fbXNhX2xkcl9kCiNkZWZpbmUgX19tc2FfbGRyX3cgX19idWlsdGluX21zYV9sZHJxX3cKI2RlZmluZSBfX21zYV9zdF9iIF9fYnVpbHRpbl9tc2Ffc3RfYgojZGVmaW5lIF9fbXNhX3N0X2ggX19idWlsdGluX21zYV9zdF9oCiNkZWZpbmUgX19tc2Ffc3RfdyBfX2J1aWx0aW5fbXNhX3N0X3cKI2RlZmluZSBfX21zYV9zdF9kIF9fYnVpbHRpbl9tc2Ffc3RfZAojZGVmaW5lIF9fbXNhX3N0cl9kIF9fYnVpbHRpbl9tc2Ffc3RyX2QKI2RlZmluZSBfX21zYV9zdHJfdyBfX2J1aWx0aW5fbXNhX3N0cnFfdwojZGVmaW5lIF9fbXNhX3NhdF9zX2IgX19idWlsdGluX21zYV9zYXRfc19iCiNkZWZpbmUgX19tc2Ffc2F0X3NfaCBfX2J1aWx0aW5fbXNhX3NhdF9zX2gKI2RlZmluZSBfX21zYV9zYXRfc193IF9fYnVpbHRpbl9tc2Ffc2F0X3NfdwojZGVmaW5lIF9fbXNhX3NhdF9zX2QgX19idWlsdGluX21zYV9zYXRfc19kCiNkZWZpbmUgX19tc2Ffc2F0X3VfYiBfX2J1aWx0aW5fbXNhX3NhdF91X2IKI2RlZmluZSBfX21zYV9zYXRfdV9oIF9fYnVpbHRpbl9tc2Ffc2F0X3VfaAojZGVmaW5lIF9fbXNhX3NhdF91X3cgX19idWlsdGluX21zYV9zYXRfdV93CiNkZWZpbmUgX19tc2Ffc2F0X3VfZCBfX2J1aWx0aW5fbXNhX3NhdF91X2QKI2RlZmluZSBfX21zYV9hZGRfYV9iIF9fYnVpbHRpbl9tc2FfYWRkX2FfYgojZGVmaW5lIF9fbXNhX2FkZF9hX2ggX19idWlsdGluX21zYV9hZGRfYV9oCiNkZWZpbmUgX19tc2FfYWRkX2FfdyBfX2J1aWx0aW5fbXNhX2FkZF9hX3cKI2RlZmluZSBfX21zYV9hZGRfYV9kIF9fYnVpbHRpbl9tc2FfYWRkX2FfZAojZGVmaW5lIF9fbXNhX2FkZHNfYV9iIF9fYnVpbHRpbl9tc2FfYWRkc19hX2IKI2RlZmluZSBfX21zYV9hZGRzX2FfaCBfX2J1aWx0aW5fbXNhX2FkZHNfYV9oCiNkZWZpbmUgX19tc2FfYWRkc19hX3cgX19idWlsdGluX21zYV9hZGRzX2FfdwojZGVmaW5lIF9fbXNhX2FkZHNfYV9kIF9fYnVpbHRpbl9tc2FfYWRkc19hX2QKI2RlZmluZSBfX21zYV9hZGRzX3NfYiBfX2J1aWx0aW5fbXNhX2FkZHNfc19iCiNkZWZpbmUgX19tc2FfYWRkc19zX2ggX19idWlsdGluX21zYV9hZGRzX3NfaAojZGVmaW5lIF9fbXNhX2FkZHNfc193IF9fYnVpbHRpbl9tc2FfYWRkc19zX3cKI2RlZmluZSBfX21zYV9hZGRzX3NfZCBfX2J1aWx0aW5fbXNhX2FkZHNfc19kCiNkZWZpbmUgX19tc2FfYWRkc191X2IgX19idWlsdGluX21zYV9hZGRzX3VfYgojZGVmaW5lIF9fbXNhX2FkZHNfdV9oIF9fYnVpbHRpbl9tc2FfYWRkc191X2gKI2RlZmluZSBfX21zYV9hZGRzX3VfdyBfX2J1aWx0aW5fbXNhX2FkZHNfdV93CiNkZWZpbmUgX19tc2FfYWRkc191X2QgX19idWlsdGluX21zYV9hZGRzX3VfZAojZGVmaW5lIF9fbXNhX2F2ZV9zX2IgX19idWlsdGluX21zYV9hdmVfc19iCiNkZWZpbmUgX19tc2FfYXZlX3NfaCBfX2J1aWx0aW5fbXNhX2F2ZV9zX2gKI2RlZmluZSBfX21zYV9hdmVfc193IF9fYnVpbHRpbl9tc2FfYXZlX3NfdwojZGVmaW5lIF9fbXNhX2F2ZV9zX2QgX19idWlsdGluX21zYV9hdmVfc19kCiNkZWZpbmUgX19tc2FfYXZlX3VfYiBfX2J1aWx0aW5fbXNhX2F2ZV91X2IKI2RlZmluZSBfX21zYV9hdmVfdV9oIF9fYnVpbHRpbl9tc2FfYXZlX3VfaAojZGVmaW5lIF9fbXNhX2F2ZV91X3cgX19idWlsdGluX21zYV9hdmVfdV93CiNkZWZpbmUgX19tc2FfYXZlX3VfZCBfX2J1aWx0aW5fbXNhX2F2ZV91X2QKI2RlZmluZSBfX21zYV9hdmVyX3NfYiBfX2J1aWx0aW5fbXNhX2F2ZXJfc19iCiNkZWZpbmUgX19tc2FfYXZlcl9zX2ggX19idWlsdGluX21zYV9hdmVyX3NfaAojZGVmaW5lIF9fbXNhX2F2ZXJfc193IF9fYnVpbHRpbl9tc2FfYXZlcl9zX3cKI2RlZmluZSBfX21zYV9hdmVyX3NfZCBfX2J1aWx0aW5fbXNhX2F2ZXJfc19kCiNkZWZpbmUgX19tc2FfYXZlcl91X2IgX19idWlsdGluX21zYV9hdmVyX3VfYgojZGVmaW5lIF9fbXNhX2F2ZXJfdV9oIF9fYnVpbHRpbl9tc2FfYXZlcl91X2gKI2RlZmluZSBfX21zYV9hdmVyX3VfdyBfX2J1aWx0aW5fbXNhX2F2ZXJfdV93CiNkZWZpbmUgX19tc2FfYXZlcl91X2QgX19idWlsdGluX21zYV9hdmVyX3VfZAojZGVmaW5lIF9fbXNhX3N1YnNfc19iIF9fYnVpbHRpbl9tc2Ffc3Vic19zX2IKI2RlZmluZSBfX21zYV9zdWJzX3NfaCBfX2J1aWx0aW5fbXNhX3N1YnNfc19oCiNkZWZpbmUgX19tc2Ffc3Vic19zX3cgX19idWlsdGluX21zYV9zdWJzX3NfdwojZGVmaW5lIF9fbXNhX3N1YnNfc19kIF9fYnVpbHRpbl9tc2Ffc3Vic19zX2QKI2RlZmluZSBfX21zYV9zdWJzX3VfYiBfX2J1aWx0aW5fbXNhX3N1YnNfdV9iCiNkZWZpbmUgX19tc2Ffc3Vic191X2ggX19idWlsdGluX21zYV9zdWJzX3VfaAojZGVmaW5lIF9fbXNhX3N1YnNfdV93IF9fYnVpbHRpbl9tc2Ffc3Vic191X3cKI2RlZmluZSBfX21zYV9zdWJzX3VfZCBfX2J1aWx0aW5fbXNhX3N1YnNfdV9kCiNkZWZpbmUgX19tc2Ffc3Vic3V1X3NfYiBfX2J1aWx0aW5fbXNhX3N1YnN1dV9zX2IKI2RlZmluZSBfX21zYV9zdWJzdXVfc19oIF9fYnVpbHRpbl9tc2Ffc3Vic3V1X3NfaAojZGVmaW5lIF9fbXNhX3N1YnN1dV9zX3cgX19idWlsdGluX21zYV9zdWJzdXVfc193CiNkZWZpbmUgX19tc2Ffc3Vic3V1X3NfZCBfX2J1aWx0aW5fbXNhX3N1YnN1dV9zX2QKI2RlZmluZSBfX21zYV9zdWJzdXNfdV9iIF9fYnVpbHRpbl9tc2Ffc3Vic3VzX3VfYgojZGVmaW5lIF9fbXNhX3N1YnN1c191X2ggX19idWlsdGluX21zYV9zdWJzdXNfdV9oCiNkZWZpbmUgX19tc2Ffc3Vic3VzX3VfdyBfX2J1aWx0aW5fbXNhX3N1YnN1c191X3cKI2RlZmluZSBfX21zYV9zdWJzdXNfdV9kIF9fYnVpbHRpbl9tc2Ffc3Vic3VzX3VfZAojZGVmaW5lIF9fbXNhX2FzdWJfc19iIF9fYnVpbHRpbl9tc2FfYXN1Yl9zX2IKI2RlZmluZSBfX21zYV9hc3ViX3NfaCBfX2J1aWx0aW5fbXNhX2FzdWJfc19oCiNkZWZpbmUgX19tc2FfYXN1Yl9zX3cgX19idWlsdGluX21zYV9hc3ViX3NfdwojZGVmaW5lIF9fbXNhX2FzdWJfc19kIF9fYnVpbHRpbl9tc2FfYXN1Yl9zX2QKI2RlZmluZSBfX21zYV9hc3ViX3VfYiBfX2J1aWx0aW5fbXNhX2FzdWJfdV9iCiNkZWZpbmUgX19tc2FfYXN1Yl91X2ggX19idWlsdGluX21zYV9hc3ViX3VfaAojZGVmaW5lIF9fbXNhX2FzdWJfdV93IF9fYnVpbHRpbl9tc2FfYXN1Yl91X3cKI2RlZmluZSBfX21zYV9hc3ViX3VfZCBfX2J1aWx0aW5fbXNhX2FzdWJfdV9kCiNkZWZpbmUgX19tc2FfbXVsdl9iIF9fYnVpbHRpbl9tc2FfbXVsdl9iCiNkZWZpbmUgX19tc2FfbXVsdl9oIF9fYnVpbHRpbl9tc2FfbXVsdl9oCiNkZWZpbmUgX19tc2FfbXVsdl93IF9fYnVpbHRpbl9tc2FfbXVsdl93CiNkZWZpbmUgX19tc2FfbXVsdl9kIF9fYnVpbHRpbl9tc2FfbXVsdl9kCiNkZWZpbmUgX19tc2FfbWFkZHZfYiBfX2J1aWx0aW5fbXNhX21hZGR2X2IKI2RlZmluZSBfX21zYV9tYWRkdl9oIF9fYnVpbHRpbl9tc2FfbWFkZHZfaAojZGVmaW5lIF9fbXNhX21hZGR2X3cgX19idWlsdGluX21zYV9tYWRkdl93CiNkZWZpbmUgX19tc2FfbWFkZHZfZCBfX2J1aWx0aW5fbXNhX21hZGR2X2QKI2RlZmluZSBfX21zYV9tc3Vidl9iIF9fYnVpbHRpbl9tc2FfbXN1YnZfYgojZGVmaW5lIF9fbXNhX21zdWJ2X2ggX19idWlsdGluX21zYV9tc3Vidl9oCiNkZWZpbmUgX19tc2FfbXN1YnZfdyBfX2J1aWx0aW5fbXNhX21zdWJ2X3cKI2RlZmluZSBfX21zYV9tc3Vidl9kIF9fYnVpbHRpbl9tc2FfbXN1YnZfZAojZGVmaW5lIF9fbXNhX2Rpdl9zX2IgX19idWlsdGluX21zYV9kaXZfc19iCiNkZWZpbmUgX19tc2FfZGl2X3NfaCBfX2J1aWx0aW5fbXNhX2Rpdl9zX2gKI2RlZmluZSBfX21zYV9kaXZfc193IF9fYnVpbHRpbl9tc2FfZGl2X3NfdwojZGVmaW5lIF9fbXNhX2Rpdl9zX2QgX19idWlsdGluX21zYV9kaXZfc19kCiNkZWZpbmUgX19tc2FfZGl2X3VfYiBfX2J1aWx0aW5fbXNhX2Rpdl91X2IKI2RlZmluZSBfX21zYV9kaXZfdV9oIF9fYnVpbHRpbl9tc2FfZGl2X3VfaAojZGVmaW5lIF9fbXNhX2Rpdl91X3cgX19idWlsdGluX21zYV9kaXZfdV93CiNkZWZpbmUgX19tc2FfZGl2X3VfZCBfX2J1aWx0aW5fbXNhX2Rpdl91X2QKI2RlZmluZSBfX21zYV9oYWRkX3NfaCBfX2J1aWx0aW5fbXNhX2hhZGRfc19oCiNkZWZpbmUgX19tc2FfaGFkZF9zX3cgX19idWlsdGluX21zYV9oYWRkX3NfdwojZGVmaW5lIF9fbXNhX2hhZGRfc19kIF9fYnVpbHRpbl9tc2FfaGFkZF9zX2QKI2RlZmluZSBfX21zYV9oYWRkX3VfaCBfX2J1aWx0aW5fbXNhX2hhZGRfdV9oCiNkZWZpbmUgX19tc2FfaGFkZF91X3cgX19idWlsdGluX21zYV9oYWRkX3VfdwojZGVmaW5lIF9fbXNhX2hhZGRfdV9kIF9fYnVpbHRpbl9tc2FfaGFkZF91X2QKI2RlZmluZSBfX21zYV9oc3ViX3NfaCBfX2J1aWx0aW5fbXNhX2hzdWJfc19oCiNkZWZpbmUgX19tc2FfaHN1Yl9zX3cgX19idWlsdGluX21zYV9oc3ViX3NfdwojZGVmaW5lIF9fbXNhX2hzdWJfc19kIF9fYnVpbHRpbl9tc2FfaHN1Yl9zX2QKI2RlZmluZSBfX21zYV9oc3ViX3VfaCBfX2J1aWx0aW5fbXNhX2hzdWJfdV9oCiNkZWZpbmUgX19tc2FfaHN1Yl91X3cgX19idWlsdGluX21zYV9oc3ViX3VfdwojZGVmaW5lIF9fbXNhX2hzdWJfdV9kIF9fYnVpbHRpbl9tc2FfaHN1Yl91X2QKI2RlZmluZSBfX21zYV9tb2Rfc19iIF9fYnVpbHRpbl9tc2FfbW9kX3NfYgojZGVmaW5lIF9fbXNhX21vZF9zX2ggX19idWlsdGluX21zYV9tb2Rfc19oCiNkZWZpbmUgX19tc2FfbW9kX3NfdyBfX2J1aWx0aW5fbXNhX21vZF9zX3cKI2RlZmluZSBfX21zYV9tb2Rfc19kIF9fYnVpbHRpbl9tc2FfbW9kX3NfZAojZGVmaW5lIF9fbXNhX21vZF91X2IgX19idWlsdGluX21zYV9tb2RfdV9iCiNkZWZpbmUgX19tc2FfbW9kX3VfaCBfX2J1aWx0aW5fbXNhX21vZF91X2gKI2RlZmluZSBfX21zYV9tb2RfdV93IF9fYnVpbHRpbl9tc2FfbW9kX3VfdwojZGVmaW5lIF9fbXNhX21vZF91X2QgX19idWlsdGluX21zYV9tb2RfdV9kCiNkZWZpbmUgX19tc2FfZG90cF9zX2ggX19idWlsdGluX21zYV9kb3RwX3NfaAojZGVmaW5lIF9fbXNhX2RvdHBfc193IF9fYnVpbHRpbl9tc2FfZG90cF9zX3cKI2RlZmluZSBfX21zYV9kb3RwX3NfZCBfX2J1aWx0aW5fbXNhX2RvdHBfc19kCiNkZWZpbmUgX19tc2FfZG90cF91X2ggX19idWlsdGluX21zYV9kb3RwX3VfaAojZGVmaW5lIF9fbXNhX2RvdHBfdV93IF9fYnVpbHRpbl9tc2FfZG90cF91X3cKI2RlZmluZSBfX21zYV9kb3RwX3VfZCBfX2J1aWx0aW5fbXNhX2RvdHBfdV9kCiNkZWZpbmUgX19tc2FfZHBhZGRfc19oIF9fYnVpbHRpbl9tc2FfZHBhZGRfc19oCiNkZWZpbmUgX19tc2FfZHBhZGRfc193IF9fYnVpbHRpbl9tc2FfZHBhZGRfc193CiNkZWZpbmUgX19tc2FfZHBhZGRfc19kIF9fYnVpbHRpbl9tc2FfZHBhZGRfc19kCiNkZWZpbmUgX19tc2FfZHBhZGRfdV9oIF9fYnVpbHRpbl9tc2FfZHBhZGRfdV9oCiNkZWZpbmUgX19tc2FfZHBhZGRfdV93IF9fYnVpbHRpbl9tc2FfZHBhZGRfdV93CiNkZWZpbmUgX19tc2FfZHBhZGRfdV9kIF9fYnVpbHRpbl9tc2FfZHBhZGRfdV9kCiNkZWZpbmUgX19tc2FfZHBzdWJfc19oIF9fYnVpbHRpbl9tc2FfZHBzdWJfc19oCiNkZWZpbmUgX19tc2FfZHBzdWJfc193IF9fYnVpbHRpbl9tc2FfZHBzdWJfc193CiNkZWZpbmUgX19tc2FfZHBzdWJfc19kIF9fYnVpbHRpbl9tc2FfZHBzdWJfc19kCiNkZWZpbmUgX19tc2FfZHBzdWJfdV9oIF9fYnVpbHRpbl9tc2FfZHBzdWJfdV9oCiNkZWZpbmUgX19tc2FfZHBzdWJfdV93IF9fYnVpbHRpbl9tc2FfZHBzdWJfdV93CiNkZWZpbmUgX19tc2FfZHBzdWJfdV9kIF9fYnVpbHRpbl9tc2FfZHBzdWJfdV9kCiNkZWZpbmUgX19tc2Ffc2xkX2IgX19idWlsdGluX21zYV9zbGRfYgojZGVmaW5lIF9fbXNhX3NsZF9oIF9fYnVpbHRpbl9tc2Ffc2xkX2gKI2RlZmluZSBfX21zYV9zbGRfdyBfX2J1aWx0aW5fbXNhX3NsZF93CiNkZWZpbmUgX19tc2Ffc2xkX2QgX19idWlsdGluX21zYV9zbGRfZAojZGVmaW5lIF9fbXNhX3NsZGlfYiBfX2J1aWx0aW5fbXNhX3NsZGlfYgojZGVmaW5lIF9fbXNhX3NsZGlfaCBfX2J1aWx0aW5fbXNhX3NsZGlfaAojZGVmaW5lIF9fbXNhX3NsZGlfdyBfX2J1aWx0aW5fbXNhX3NsZGlfdwojZGVmaW5lIF9fbXNhX3NsZGlfZCBfX2J1aWx0aW5fbXNhX3NsZGlfZAojZGVmaW5lIF9fbXNhX3NwbGF0X2IgX19idWlsdGluX21zYV9zcGxhdF9iCiNkZWZpbmUgX19tc2Ffc3BsYXRfaCBfX2J1aWx0aW5fbXNhX3NwbGF0X2gKI2RlZmluZSBfX21zYV9zcGxhdF93IF9fYnVpbHRpbl9tc2Ffc3BsYXRfdwojZGVmaW5lIF9fbXNhX3NwbGF0X2QgX19idWlsdGluX21zYV9zcGxhdF9kCiNkZWZpbmUgX19tc2Ffc3BsYXRpX2IgX19idWlsdGluX21zYV9zcGxhdGlfYgojZGVmaW5lIF9fbXNhX3NwbGF0aV9oIF9fYnVpbHRpbl9tc2Ffc3BsYXRpX2gKI2RlZmluZSBfX21zYV9zcGxhdGlfdyBfX2J1aWx0aW5fbXNhX3NwbGF0aV93CiNkZWZpbmUgX19tc2Ffc3BsYXRpX2QgX19idWlsdGluX21zYV9zcGxhdGlfZAojZGVmaW5lIF9fbXNhX3Bja2V2X2IgX19idWlsdGluX21zYV9wY2tldl9iCiNkZWZpbmUgX19tc2FfcGNrZXZfaCBfX2J1aWx0aW5fbXNhX3Bja2V2X2gKI2RlZmluZSBfX21zYV9wY2tldl93IF9fYnVpbHRpbl9tc2FfcGNrZXZfdwojZGVmaW5lIF9fbXNhX3Bja2V2X2QgX19idWlsdGluX21zYV9wY2tldl9kCiNkZWZpbmUgX19tc2FfcGNrb2RfYiBfX2J1aWx0aW5fbXNhX3Bja29kX2IKI2RlZmluZSBfX21zYV9wY2tvZF9oIF9fYnVpbHRpbl9tc2FfcGNrb2RfaAojZGVmaW5lIF9fbXNhX3Bja29kX3cgX19idWlsdGluX21zYV9wY2tvZF93CiNkZWZpbmUgX19tc2FfcGNrb2RfZCBfX2J1aWx0aW5fbXNhX3Bja29kX2QKI2RlZmluZSBfX21zYV9pbHZsX2IgX19idWlsdGluX21zYV9pbHZsX2IKI2RlZmluZSBfX21zYV9pbHZsX2ggX19idWlsdGluX21zYV9pbHZsX2gKI2RlZmluZSBfX21zYV9pbHZsX3cgX19idWlsdGluX21zYV9pbHZsX3cKI2RlZmluZSBfX21zYV9pbHZsX2QgX19idWlsdGluX21zYV9pbHZsX2QKI2RlZmluZSBfX21zYV9pbHZyX2IgX19idWlsdGluX21zYV9pbHZyX2IKI2RlZmluZSBfX21zYV9pbHZyX2ggX19idWlsdGluX21zYV9pbHZyX2gKI2RlZmluZSBfX21zYV9pbHZyX3cgX19idWlsdGluX21zYV9pbHZyX3cKI2RlZmluZSBfX21zYV9pbHZyX2QgX19idWlsdGluX21zYV9pbHZyX2QKI2RlZmluZSBfX21zYV9pbHZldl9iIF9fYnVpbHRpbl9tc2FfaWx2ZXZfYgojZGVmaW5lIF9fbXNhX2lsdmV2X2ggX19idWlsdGluX21zYV9pbHZldl9oCiNkZWZpbmUgX19tc2FfaWx2ZXZfdyBfX2J1aWx0aW5fbXNhX2lsdmV2X3cKI2RlZmluZSBfX21zYV9pbHZldl9kIF9fYnVpbHRpbl9tc2FfaWx2ZXZfZAojZGVmaW5lIF9fbXNhX2lsdm9kX2IgX19idWlsdGluX21zYV9pbHZvZF9iCiNkZWZpbmUgX19tc2FfaWx2b2RfaCBfX2J1aWx0aW5fbXNhX2lsdm9kX2gKI2RlZmluZSBfX21zYV9pbHZvZF93IF9fYnVpbHRpbl9tc2FfaWx2b2RfdwojZGVmaW5lIF9fbXNhX2lsdm9kX2QgX19idWlsdGluX21zYV9pbHZvZF9kCiNkZWZpbmUgX19tc2FfdnNoZl9iIF9fYnVpbHRpbl9tc2FfdnNoZl9iCiNkZWZpbmUgX19tc2FfdnNoZl9oIF9fYnVpbHRpbl9tc2FfdnNoZl9oCiNkZWZpbmUgX19tc2FfdnNoZl93IF9fYnVpbHRpbl9tc2FfdnNoZl93CiNkZWZpbmUgX19tc2FfdnNoZl9kIF9fYnVpbHRpbl9tc2FfdnNoZl9kCiNkZWZpbmUgX19tc2FfYW5kX3YgX19idWlsdGluX21zYV9hbmRfdgojZGVmaW5lIF9fbXNhX2FuZGlfYiBfX2J1aWx0aW5fbXNhX2FuZGlfYgojZGVmaW5lIF9fbXNhX29yX3YgX19idWlsdGluX21zYV9vcl92CiNkZWZpbmUgX19tc2Ffb3JpX2IgX19idWlsdGluX21zYV9vcmlfYgojZGVmaW5lIF9fbXNhX25vcl92IF9fYnVpbHRpbl9tc2Ffbm9yX3YKI2RlZmluZSBfX21zYV9ub3JpX2IgX19idWlsdGluX21zYV9ub3JpX2IKI2RlZmluZSBfX21zYV94b3JfdiBfX2J1aWx0aW5fbXNhX3hvcl92CiNkZWZpbmUgX19tc2FfeG9yaV9iIF9fYnVpbHRpbl9tc2FfeG9yaV9iCiNkZWZpbmUgX19tc2FfYm1uel92IF9fYnVpbHRpbl9tc2FfYm1uel92CiNkZWZpbmUgX19tc2FfYm1uemlfYiBfX2J1aWx0aW5fbXNhX2JtbnppX2IKI2RlZmluZSBfX21zYV9ibXpfdiBfX2J1aWx0aW5fbXNhX2Jtel92CiNkZWZpbmUgX19tc2FfYm16aV9iIF9fYnVpbHRpbl9tc2FfYm16aV9iCiNkZWZpbmUgX19tc2FfYnNlbF92IF9fYnVpbHRpbl9tc2FfYnNlbF92CiNkZWZpbmUgX19tc2FfYnNlbGlfYiBfX2J1aWx0aW5fbXNhX2JzZWxpX2IKI2RlZmluZSBfX21zYV9zaGZfYiBfX2J1aWx0aW5fbXNhX3NoZl9iCiNkZWZpbmUgX19tc2Ffc2hmX2ggX19idWlsdGluX21zYV9zaGZfaAojZGVmaW5lIF9fbXNhX3NoZl93IF9fYnVpbHRpbl9tc2Ffc2hmX3cKI2RlZmluZSBfX21zYV90ZXN0X2Juel92IF9fYnVpbHRpbl9tc2FfYm56X3YKI2RlZmluZSBfX21zYV90ZXN0X2J6X3YgX19idWlsdGluX21zYV9iel92CiNkZWZpbmUgX19tc2FfZmlsbF9iIF9fYnVpbHRpbl9tc2FfZmlsbF9iCiNkZWZpbmUgX19tc2FfZmlsbF9oIF9fYnVpbHRpbl9tc2FfZmlsbF9oCiNkZWZpbmUgX19tc2FfZmlsbF93IF9fYnVpbHRpbl9tc2FfZmlsbF93CiNkZWZpbmUgX19tc2FfZmlsbF9kIF9fYnVpbHRpbl9tc2FfZmlsbF9kCiNkZWZpbmUgX19tc2FfcGNudF9iIF9fYnVpbHRpbl9tc2FfcGNudF9iCiNkZWZpbmUgX19tc2FfcGNudF9oIF9fYnVpbHRpbl9tc2FfcGNudF9oCiNkZWZpbmUgX19tc2FfcGNudF93IF9fYnVpbHRpbl9tc2FfcGNudF93CiNkZWZpbmUgX19tc2FfcGNudF9kIF9fYnVpbHRpbl9tc2FfcGNudF9kCiNkZWZpbmUgX19tc2FfbmxvY19iIF9fYnVpbHRpbl9tc2FfbmxvY19iCiNkZWZpbmUgX19tc2FfbmxvY19oIF9fYnVpbHRpbl9tc2FfbmxvY19oCiNkZWZpbmUgX19tc2FfbmxvY193IF9fYnVpbHRpbl9tc2FfbmxvY193CiNkZWZpbmUgX19tc2FfbmxvY19kIF9fYnVpbHRpbl9tc2FfbmxvY19kCiNkZWZpbmUgX19tc2Ffbmx6Y19iIF9fYnVpbHRpbl9tc2Ffbmx6Y19iCiNkZWZpbmUgX19tc2Ffbmx6Y19oIF9fYnVpbHRpbl9tc2Ffbmx6Y19oCiNkZWZpbmUgX19tc2Ffbmx6Y193IF9fYnVpbHRpbl9tc2Ffbmx6Y193CiNkZWZpbmUgX19tc2Ffbmx6Y19kIF9fYnVpbHRpbl9tc2Ffbmx6Y19kCiNkZWZpbmUgX19tc2FfY29weV9zX2IgX19idWlsdGluX21zYV9jb3B5X3NfYgojZGVmaW5lIF9fbXNhX2NvcHlfc19oIF9fYnVpbHRpbl9tc2FfY29weV9zX2gKI2RlZmluZSBfX21zYV9jb3B5X3NfdyBfX2J1aWx0aW5fbXNhX2NvcHlfc193CiNkZWZpbmUgX19tc2FfY29weV9zX2QgX19idWlsdGluX21zYV9jb3B5X3NfZAojZGVmaW5lIF9fbXNhX2NvcHlfdV9iIF9fYnVpbHRpbl9tc2FfY29weV91X2IKI2RlZmluZSBfX21zYV9jb3B5X3VfaCBfX2J1aWx0aW5fbXNhX2NvcHlfdV9oCiNkZWZpbmUgX19tc2FfY29weV91X3cgX19idWlsdGluX21zYV9jb3B5X3VfdwojZGVmaW5lIF9fbXNhX2NvcHlfdV9kIF9fYnVpbHRpbl9tc2FfY29weV91X2QKI2RlZmluZSBfX21zYV9pbnNlcnRfYiBfX2J1aWx0aW5fbXNhX2luc2VydF9iCiNkZWZpbmUgX19tc2FfaW5zZXJ0X2ggX19idWlsdGluX21zYV9pbnNlcnRfaAojZGVmaW5lIF9fbXNhX2luc2VydF93IF9fYnVpbHRpbl9tc2FfaW5zZXJ0X3cKI2RlZmluZSBfX21zYV9pbnNlcnRfZCBfX2J1aWx0aW5fbXNhX2luc2VydF9kCiNkZWZpbmUgX19tc2FfaW5zdmVfYiBfX2J1aWx0aW5fbXNhX2luc3ZlX2IKI2RlZmluZSBfX21zYV9pbnN2ZV9oIF9fYnVpbHRpbl9tc2FfaW5zdmVfaAojZGVmaW5lIF9fbXNhX2luc3ZlX3cgX19idWlsdGluX21zYV9pbnN2ZV93CiNkZWZpbmUgX19tc2FfaW5zdmVfZCBfX2J1aWx0aW5fbXNhX2luc3ZlX2QKI2RlZmluZSBfX21zYV90ZXN0X2Juel9iIF9fYnVpbHRpbl9tc2FfYm56X2IKI2RlZmluZSBfX21zYV90ZXN0X2Juel9oIF9fYnVpbHRpbl9tc2FfYm56X2gKI2RlZmluZSBfX21zYV90ZXN0X2Juel93IF9fYnVpbHRpbl9tc2FfYm56X3cKI2RlZmluZSBfX21zYV90ZXN0X2Juel9kIF9fYnVpbHRpbl9tc2FfYm56X2QKI2RlZmluZSBfX21zYV90ZXN0X2J6X2IgX19idWlsdGluX21zYV9iel9iCiNkZWZpbmUgX19tc2FfdGVzdF9iel9oIF9fYnVpbHRpbl9tc2FfYnpfaAojZGVmaW5lIF9fbXNhX3Rlc3RfYnpfdyBfX2J1aWx0aW5fbXNhX2J6X3cKI2RlZmluZSBfX21zYV90ZXN0X2J6X2QgX19idWlsdGluX21zYV9iel9kCiNkZWZpbmUgX19tc2FfbGRpX2IgX19idWlsdGluX21zYV9sZGlfYgojZGVmaW5lIF9fbXNhX2xkaV9oIF9fYnVpbHRpbl9tc2FfbGRpX2gKI2RlZmluZSBfX21zYV9sZGlfdyBfX2J1aWx0aW5fbXNhX2xkaV93CiNkZWZpbmUgX19tc2FfbGRpX2QgX19idWlsdGluX21zYV9sZGlfZAojZGVmaW5lIF9fbXNhX2ZjYWZfdyBfX2J1aWx0aW5fbXNhX2ZjYWZfdwojZGVmaW5lIF9fbXNhX2ZjYWZfZCBfX2J1aWx0aW5fbXNhX2ZjYWZfZAojZGVmaW5lIF9fbXNhX2Zjb3JfdyBfX2J1aWx0aW5fbXNhX2Zjb3JfdwojZGVmaW5lIF9fbXNhX2Zjb3JfZCBfX2J1aWx0aW5fbXNhX2Zjb3JfZAojZGVmaW5lIF9fbXNhX2ZjdW5fdyBfX2J1aWx0aW5fbXNhX2ZjdW5fdwojZGVmaW5lIF9fbXNhX2ZjdW5fZCBfX2J1aWx0aW5fbXNhX2ZjdW5fZAojZGVmaW5lIF9fbXNhX2ZjdW5lX3cgX19idWlsdGluX21zYV9mY3VuZV93CiNkZWZpbmUgX19tc2FfZmN1bmVfZCBfX2J1aWx0aW5fbXNhX2ZjdW5lX2QKI2RlZmluZSBfX21zYV9mY3VlcV93IF9fYnVpbHRpbl9tc2FfZmN1ZXFfdwojZGVmaW5lIF9fbXNhX2ZjdWVxX2QgX19idWlsdGluX21zYV9mY3VlcV9kCiNkZWZpbmUgX19tc2FfZmNlcV93IF9fYnVpbHRpbl9tc2FfZmNlcV93CiNkZWZpbmUgX19tc2FfZmNlcV9kIF9fYnVpbHRpbl9tc2FfZmNlcV9kCiNkZWZpbmUgX19tc2FfZmNuZV93IF9fYnVpbHRpbl9tc2FfZmNuZV93CiNkZWZpbmUgX19tc2FfZmNuZV9kIF9fYnVpbHRpbl9tc2FfZmNuZV9kCiNkZWZpbmUgX19tc2FfZmNsdF93IF9fYnVpbHRpbl9tc2FfZmNsdF93CiNkZWZpbmUgX19tc2FfZmNsdF9kIF9fYnVpbHRpbl9tc2FfZmNsdF9kCiNkZWZpbmUgX19tc2FfZmN1bHRfdyBfX2J1aWx0aW5fbXNhX2ZjdWx0X3cKI2RlZmluZSBfX21zYV9mY3VsdF9kIF9fYnVpbHRpbl9tc2FfZmN1bHRfZAojZGVmaW5lIF9fbXNhX2ZjbGVfdyBfX2J1aWx0aW5fbXNhX2ZjbGVfdwojZGVmaW5lIF9fbXNhX2ZjbGVfZCBfX2J1aWx0aW5fbXNhX2ZjbGVfZAojZGVmaW5lIF9fbXNhX2ZjdWxlX3cgX19idWlsdGluX21zYV9mY3VsZV93CiNkZWZpbmUgX19tc2FfZmN1bGVfZCBfX2J1aWx0aW5fbXNhX2ZjdWxlX2QKI2RlZmluZSBfX21zYV9mc2FmX3cgX19idWlsdGluX21zYV9mc2FmX3cKI2RlZmluZSBfX21zYV9mc2FmX2QgX19idWlsdGluX21zYV9mc2FmX2QKI2RlZmluZSBfX21zYV9mc29yX3cgX19idWlsdGluX21zYV9mc29yX3cKI2RlZmluZSBfX21zYV9mc29yX2QgX19idWlsdGluX21zYV9mc29yX2QKI2RlZmluZSBfX21zYV9mc3VuX3cgX19idWlsdGluX21zYV9mc3VuX3cKI2RlZmluZSBfX21zYV9mc3VuX2QgX19idWlsdGluX21zYV9mc3VuX2QKI2RlZmluZSBfX21zYV9mc3VuZV93IF9fYnVpbHRpbl9tc2FfZnN1bmVfdwojZGVmaW5lIF9fbXNhX2ZzdW5lX2QgX19idWlsdGluX21zYV9mc3VuZV9kCiNkZWZpbmUgX19tc2FfZnN1ZXFfdyBfX2J1aWx0aW5fbXNhX2ZzdWVxX3cKI2RlZmluZSBfX21zYV9mc3VlcV9kIF9fYnVpbHRpbl9tc2FfZnN1ZXFfZAojZGVmaW5lIF9fbXNhX2ZzZXFfdyBfX2J1aWx0aW5fbXNhX2ZzZXFfdwojZGVmaW5lIF9fbXNhX2ZzZXFfZCBfX2J1aWx0aW5fbXNhX2ZzZXFfZAojZGVmaW5lIF9fbXNhX2ZzbmVfdyBfX2J1aWx0aW5fbXNhX2ZzbmVfdwojZGVmaW5lIF9fbXNhX2ZzbmVfZCBfX2J1aWx0aW5fbXNhX2ZzbmVfZAojZGVmaW5lIF9fbXNhX2ZzbHRfdyBfX2J1aWx0aW5fbXNhX2ZzbHRfdwojZGVmaW5lIF9fbXNhX2ZzbHRfZCBfX2J1aWx0aW5fbXNhX2ZzbHRfZAojZGVmaW5lIF9fbXNhX2ZzdWx0X3cgX19idWlsdGluX21zYV9mc3VsdF93CiNkZWZpbmUgX19tc2FfZnN1bHRfZCBfX2J1aWx0aW5fbXNhX2ZzdWx0X2QKI2RlZmluZSBfX21zYV9mc2xlX3cgX19idWlsdGluX21zYV9mc2xlX3cKI2RlZmluZSBfX21zYV9mc2xlX2QgX19idWlsdGluX21zYV9mc2xlX2QKI2RlZmluZSBfX21zYV9mc3VsZV93IF9fYnVpbHRpbl9tc2FfZnN1bGVfdwojZGVmaW5lIF9fbXNhX2ZzdWxlX2QgX19idWlsdGluX21zYV9mc3VsZV9kCiNkZWZpbmUgX19tc2FfZmFkZF93IF9fYnVpbHRpbl9tc2FfZmFkZF93CiNkZWZpbmUgX19tc2FfZmFkZF9kIF9fYnVpbHRpbl9tc2FfZmFkZF9kCiNkZWZpbmUgX19tc2FfZnN1Yl93IF9fYnVpbHRpbl9tc2FfZnN1Yl93CiNkZWZpbmUgX19tc2FfZnN1Yl9kIF9fYnVpbHRpbl9tc2FfZnN1Yl9kCiNkZWZpbmUgX19tc2FfZm11bF93IF9fYnVpbHRpbl9tc2FfZm11bF93CiNkZWZpbmUgX19tc2FfZm11bF9kIF9fYnVpbHRpbl9tc2FfZm11bF9kCiNkZWZpbmUgX19tc2FfZmRpdl93IF9fYnVpbHRpbl9tc2FfZmRpdl93CiNkZWZpbmUgX19tc2FfZmRpdl9kIF9fYnVpbHRpbl9tc2FfZmRpdl9kCiNkZWZpbmUgX19tc2FfZm1hZGRfdyBfX2J1aWx0aW5fbXNhX2ZtYWRkX3cKI2RlZmluZSBfX21zYV9mbWFkZF9kIF9fYnVpbHRpbl9tc2FfZm1hZGRfZAojZGVmaW5lIF9fbXNhX2Ztc3ViX3cgX19idWlsdGluX21zYV9mbXN1Yl93CiNkZWZpbmUgX19tc2FfZm1zdWJfZCBfX2J1aWx0aW5fbXNhX2Ztc3ViX2QKI2RlZmluZSBfX21zYV9mZXhwMl93IF9fYnVpbHRpbl9tc2FfZmV4cDJfdwojZGVmaW5lIF9fbXNhX2ZleHAyX2QgX19idWlsdGluX21zYV9mZXhwMl9kCiNkZWZpbmUgX19tc2FfZmV4ZG9faCBfX2J1aWx0aW5fbXNhX2ZleGRvX2gKI2RlZmluZSBfX21zYV9mZXhkb193IF9fYnVpbHRpbl9tc2FfZmV4ZG9fdwojZGVmaW5lIF9fbXNhX2Z0cV9oIF9fYnVpbHRpbl9tc2FfZnRxX2gKI2RlZmluZSBfX21zYV9mdHFfdyBfX2J1aWx0aW5fbXNhX2Z0cV93CiNkZWZpbmUgX19tc2FfZm1pbl93IF9fYnVpbHRpbl9tc2FfZm1pbl93CiNkZWZpbmUgX19tc2FfZm1pbl9kIF9fYnVpbHRpbl9tc2FfZm1pbl9kCiNkZWZpbmUgX19tc2FfZm1pbl9hX3cgX19idWlsdGluX21zYV9mbWluX2FfdwojZGVmaW5lIF9fbXNhX2ZtaW5fYV9kIF9fYnVpbHRpbl9tc2FfZm1pbl9hX2QKI2RlZmluZSBfX21zYV9mbWF4X3cgX19idWlsdGluX21zYV9mbWF4X3cKI2RlZmluZSBfX21zYV9mbWF4X2QgX19idWlsdGluX21zYV9mbWF4X2QKI2RlZmluZSBfX21zYV9mbWF4X2FfdyBfX2J1aWx0aW5fbXNhX2ZtYXhfYV93CiNkZWZpbmUgX19tc2FfZm1heF9hX2QgX19idWlsdGluX21zYV9mbWF4X2FfZAojZGVmaW5lIF9fbXNhX211bF9xX2ggX19idWlsdGluX21zYV9tdWxfcV9oCiNkZWZpbmUgX19tc2FfbXVsX3FfdyBfX2J1aWx0aW5fbXNhX211bF9xX3cKI2RlZmluZSBfX21zYV9tdWxyX3FfaCBfX2J1aWx0aW5fbXNhX211bHJfcV9oCiNkZWZpbmUgX19tc2FfbXVscl9xX3cgX19idWlsdGluX21zYV9tdWxyX3FfdwojZGVmaW5lIF9fbXNhX21hZGRfcV9oIF9fYnVpbHRpbl9tc2FfbWFkZF9xX2gKI2RlZmluZSBfX21zYV9tYWRkX3FfdyBfX2J1aWx0aW5fbXNhX21hZGRfcV93CiNkZWZpbmUgX19tc2FfbWFkZHJfcV9oIF9fYnVpbHRpbl9tc2FfbWFkZHJfcV9oCiNkZWZpbmUgX19tc2FfbWFkZHJfcV93IF9fYnVpbHRpbl9tc2FfbWFkZHJfcV93CiNkZWZpbmUgX19tc2FfbXN1Yl9xX2ggX19idWlsdGluX21zYV9tc3ViX3FfaAojZGVmaW5lIF9fbXNhX21zdWJfcV93IF9fYnVpbHRpbl9tc2FfbXN1Yl9xX3cKI2RlZmluZSBfX21zYV9tc3Vicl9xX2ggX19idWlsdGluX21zYV9tc3Vicl9xX2gKI2RlZmluZSBfX21zYV9tc3Vicl9xX3cgX19idWlsdGluX21zYV9tc3Vicl9xX3cKI2RlZmluZSBfX21zYV9mY2xhc3NfdyBfX2J1aWx0aW5fbXNhX2ZjbGFzc193CiNkZWZpbmUgX19tc2FfZmNsYXNzX2QgX19idWlsdGluX21zYV9mY2xhc3NfZAojZGVmaW5lIF9fbXNhX2ZzcXJ0X3cgX19idWlsdGluX21zYV9mc3FydF93CiNkZWZpbmUgX19tc2FfZnNxcnRfZCBfX2J1aWx0aW5fbXNhX2ZzcXJ0X2QKI2RlZmluZSBfX21zYV9mcmNwX3cgX19idWlsdGluX21zYV9mcmNwX3cKI2RlZmluZSBfX21zYV9mcmNwX2QgX19idWlsdGluX21zYV9mcmNwX2QKI2RlZmluZSBfX21zYV9mcmludF93IF9fYnVpbHRpbl9tc2FfZnJpbnRfdwojZGVmaW5lIF9fbXNhX2ZyaW50X2QgX19idWlsdGluX21zYV9mcmludF9kCiNkZWZpbmUgX19tc2FfZnJzcXJ0X3cgX19idWlsdGluX21zYV9mcnNxcnRfdwojZGVmaW5lIF9fbXNhX2Zyc3FydF9kIF9fYnVpbHRpbl9tc2FfZnJzcXJ0X2QKI2RlZmluZSBfX21zYV9mbG9nMl93IF9fYnVpbHRpbl9tc2FfZmxvZzJfdwojZGVmaW5lIF9fbXNhX2Zsb2cyX2QgX19idWlsdGluX21zYV9mbG9nMl9kCiNkZWZpbmUgX19tc2FfZmV4dXBsX3cgX19idWlsdGluX21zYV9mZXh1cGxfdwojZGVmaW5lIF9fbXNhX2ZleHVwbF9kIF9fYnVpbHRpbl9tc2FfZmV4dXBsX2QKI2RlZmluZSBfX21zYV9mZXh1cHJfdyBfX2J1aWx0aW5fbXNhX2ZleHVwcl93CiNkZWZpbmUgX19tc2FfZmV4dXByX2QgX19idWlsdGluX21zYV9mZXh1cHJfZAojZGVmaW5lIF9fbXNhX2ZmcWxfdyBfX2J1aWx0aW5fbXNhX2ZmcWxfdwojZGVmaW5lIF9fbXNhX2ZmcWxfZCBfX2J1aWx0aW5fbXNhX2ZmcWxfZAojZGVmaW5lIF9fbXNhX2ZmcXJfdyBfX2J1aWx0aW5fbXNhX2ZmcXJfdwojZGVmaW5lIF9fbXNhX2ZmcXJfZCBfX2J1aWx0aW5fbXNhX2ZmcXJfZAojZGVmaW5lIF9fbXNhX2Z0aW50X3NfdyBfX2J1aWx0aW5fbXNhX2Z0aW50X3NfdwojZGVmaW5lIF9fbXNhX2Z0aW50X3NfZCBfX2J1aWx0aW5fbXNhX2Z0aW50X3NfZAojZGVmaW5lIF9fbXNhX2Z0aW50X3VfdyBfX2J1aWx0aW5fbXNhX2Z0aW50X3VfdwojZGVmaW5lIF9fbXNhX2Z0aW50X3VfZCBfX2J1aWx0aW5fbXNhX2Z0aW50X3VfZAojZGVmaW5lIF9fbXNhX2Z0cnVuY19zX3cgX19idWlsdGluX21zYV9mdHJ1bmNfc193CiNkZWZpbmUgX19tc2FfZnRydW5jX3NfZCBfX2J1aWx0aW5fbXNhX2Z0cnVuY19zX2QKI2RlZmluZSBfX21zYV9mdHJ1bmNfdV93IF9fYnVpbHRpbl9tc2FfZnRydW5jX3VfdwojZGVmaW5lIF9fbXNhX2Z0cnVuY191X2QgX19idWlsdGluX21zYV9mdHJ1bmNfdV9kCiNkZWZpbmUgX19tc2FfZmZpbnRfc193IF9fYnVpbHRpbl9tc2FfZmZpbnRfc193CiNkZWZpbmUgX19tc2FfZmZpbnRfc19kIF9fYnVpbHRpbl9tc2FfZmZpbnRfc19kCiNkZWZpbmUgX19tc2FfZmZpbnRfdV93IF9fYnVpbHRpbl9tc2FfZmZpbnRfdV93CiNkZWZpbmUgX19tc2FfZmZpbnRfdV9kIF9fYnVpbHRpbl9tc2FfZmZpbnRfdV9kCiNkZWZpbmUgX19tc2FfY2ZjbXNhIF9fYnVpbHRpbl9tc2FfY2ZjbXNhCiNkZWZpbmUgX19tc2FfbW92ZV92IF9fYnVpbHRpbl9tc2FfbW92ZV92CiNkZWZpbmUgX19tc2FfY2FzdF90b192ZWN0b3JfZmxvYXQgX19idWlsdGluX21zYV9jYXN0X3RvX3ZlY3Rvcl9mbG9hdAojZGVmaW5lIF9fbXNhX2Nhc3RfdG9fdmVjdG9yX2RvdWJsZSBfX2J1aWx0aW5fbXNhX2Nhc3RfdG9fdmVjdG9yX2RvdWJsZQojZGVmaW5lIF9fbXNhX2Nhc3RfdG9fc2NhbGFyX2Zsb2F0IF9fYnVpbHRpbl9tc2FfY2FzdF90b19zY2FsYXJfZmxvYXQKI2RlZmluZSBfX21zYV9jYXN0X3RvX3NjYWxhcl9kb3VibGUgX19idWlsdGluX21zYV9jYXN0X3RvX3NjYWxhcl9kb3VibGUKI2VuZGlmIC8qIGRlZmluZWQoX19taXBzX21zYSkgKi8KI2VuZGlmIC8qIF9NU0FfSCAqLwoAbm1taW50cmluLmgAcG9wY250aW50cmluLmgALyo9PT0tLS0tIHg4NmludHJpbi5oIC0gWDg2IGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX1g4NklOVFJJTl9ICiNkZWZpbmUgX19YODZJTlRSSU5fSAoKI2luY2x1ZGUgPGlhMzJpbnRyaW4uaD4KCiNpbmNsdWRlIDxpbW1pbnRyaW4uaD4KCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fM2ROT1dfXykKI2luY2x1ZGUgPG1tM2Rub3cuaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX1BSRkNIV19fKQojaW5jbHVkZSA8cHJmY2h3aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19TU0U0QV9fKQojaW5jbHVkZSA8YW1taW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19GTUE0X18pCiNpbmNsdWRlIDxmbWE0aW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19YT1BfXykKI2luY2x1ZGUgPHhvcGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fVEJNX18pCiNpbmNsdWRlIDx0Ym1pbnRyaW4uaD4KI2VuZGlmCgojaWYgIShkZWZpbmVkKF9NU0NfVkVSKSB8fCBkZWZpbmVkKF9fU0NFX18pKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpIHx8ICAgICAgXAogICAgZGVmaW5lZChfX0xXUF9fKQojaW5jbHVkZSA8bHdwaW50cmluLmg+CiNlbmRpZgoKI2lmICEoZGVmaW5lZChfTVNDX1ZFUikgfHwgZGVmaW5lZChfX1NDRV9fKSkgfHwgX19oYXNfZmVhdHVyZShtb2R1bGVzKSB8fCAgICAgIFwKICAgIGRlZmluZWQoX19NV0FJVFhfXykKI2luY2x1ZGUgPG13YWl0eGludHJpbi5oPgojZW5kaWYKCiNpZiAhKGRlZmluZWQoX01TQ19WRVIpIHx8IGRlZmluZWQoX19TQ0VfXykpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykgfHwgICAgICBcCiAgICBkZWZpbmVkKF9fQ0xaRVJPX18pCiNpbmNsdWRlIDxjbHplcm9pbnRyaW4uaD4KI2VuZGlmCgoKI2VuZGlmIC8qIF9fWDg2SU5UUklOX0ggKi8KAHhtbWludHJpbi5oAHhvcGludHJpbi5oAHh0ZXN0aW50cmluLmgALy89PT0tLSBsaW51eF9zeXNjYWxsX2hvb2tzLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBwdWJsaWMgc2FuaXRpemVyIGludGVyZmFjZS4KLy8KLy8gU3lzdGVtIGNhbGwgaGFuZGxlcnMuCi8vCi8vIEludGVyZmFjZSBtZXRob2RzIGRlY2xhcmVkIGluIHRoaXMgaGVhZGVyIGltcGxlbWVudCBwcmUtIGFuZCBwb3N0LSBzeXNjYWxsCi8vIGFjdGlvbnMgZm9yIHRoZSBhY3RpdmUgc2FuaXRpemVyLgovLyBVc2FnZToKLy8gICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRmb28oLi4uYXJncy4uLik7Ci8vICAgbG9uZyByZXMgPSBzeXNjYWxsKF9fTlJfZ2V0Zm9vLCAuLi5hcmdzLi4uKTsKLy8gICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0Zm9vKHJlcywgLi4uYXJncy4uLik7Ci8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX0xJTlVYX1NZU0NBTExfSE9PS1NfSAojZGVmaW5lIFNBTklUSVpFUl9MSU5VWF9TWVNDQUxMX0hPT0tTX0gKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZSh0bG9jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lKChsb25nKSh0bG9jKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZShyZXMsIHRsb2MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lKHJlcywgKGxvbmcpKHRsb2MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N0aW1lKHRwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RpbWUoKGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zdGltZShyZXMsIHRwdHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0aW1lKHJlcywgKGxvbmcpKHRwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHRpbWVvZmRheSh0diwgdHopICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0dGltZW9mZGF5KChsb25nKSh0diksIChsb25nKSh0eikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHRpbWVvZmRheShyZXMsIHR2LCB0eikgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dGltZW9mZGF5KHJlcywgKGxvbmcpKHR2KSwgKGxvbmcpKHR6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXR0aW1lb2ZkYXkodHYsIHR6KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHRpbWVvZmRheSgobG9uZykodHYpLCAobG9uZykodHopKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR0aW1lb2ZkYXkocmVzLCB0diwgdHopICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHRpbWVvZmRheShyZXMsIChsb25nKSh0diksIChsb25nKSh0eikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWRqdGltZXgodHhjX3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hZGp0aW1leCgobG9uZykodHhjX3ApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hZGp0aW1leChyZXMsIHR4Y19wKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FkanRpbWV4KHJlcywgKGxvbmcpKHR4Y19wKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcyh0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVzKChsb25nKSh0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXMocmVzLCB0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcyhyZXMsIChsb25nKSh0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR0aWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHRpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHRpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uYW5vc2xlZXAocnF0cCwgcm10cCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25hbm9zbGVlcCgobG9uZykocnF0cCksIChsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmFub3NsZWVwKHJlcywgcnF0cCwgcm10cCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uYW5vc2xlZXAocmVzLCAobG9uZykocnF0cCksIChsb25nKShybXRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hbGFybShzZWNvbmRzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FsYXJtKChsb25nKShzZWNvbmRzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWxhcm0ocmVzLCBzZWNvbmRzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hbGFybShyZXMsIChsb25nKShzZWNvbmRzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwcGlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcGlkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cHBpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcGlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR1aWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHVpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRldWlkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRldWlkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZXVpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRldWlkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRnaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z2lkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRlZ2lkKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRlZ2lkKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZWdpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyZXN1aWQocnVpZCwgZXVpZCwgc3VpZCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc3VpZCgobG9uZykocnVpZCksIChsb25nKShldWlkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3VpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJlc3VpZChyZXMsIHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmVzdWlkKHJlcywgKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyZXNnaWQocmdpZCwgZWdpZCwgc2dpZCkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc2dpZCgobG9uZykocmdpZCksIChsb25nKShlZ2lkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2dpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJlc2dpZChyZXMsIHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmVzZ2lkKHJlcywgKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRwZ2lkKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBnaWQoKGxvbmcpKHBpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHBnaWQocmVzLCBwaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGdpZChyZXMsIChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBncnAoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBncnAoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwZ3JwKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBncnAocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHNpZChwaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c2lkKChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRzaWQocmVzLCBwaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNpZChyZXMsIChsb25nKShwaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdyb3VwcyhnaWRzZXRzaXplLCBncm91cGxpc3QpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z3JvdXBzKChsb25nKShnaWRzZXRzaXplKSwgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdyb3VwcyhyZXMsIGdpZHNldHNpemUsIGdyb3VwbGlzdCkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzKHJlcywgKGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cGxpc3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlZ2lkKHJnaWQsIGVnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVnaWQoKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlZ2lkKHJlcywgcmdpZCwgZWdpZCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQocmVzLCAobG9uZykocmdpZCksIChsb25nKShlZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRnaWQoZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdpZCgobG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z2lkKHJlcywgZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRnaWQocmVzLCAobG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZXVpZChydWlkLCBldWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJldWlkKChsb25nKShydWlkKSwgKGxvbmcpKGV1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXVpZChyZXMsIHJ1aWQsIGV1aWQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJldWlkKHJlcywgKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0dWlkKHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR1aWQoKGxvbmcpKHVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHVpZChyZXMsIHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dWlkKHJlcywgKGxvbmcpKHVpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVzdWlkKHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXN1aWQoKGxvbmcpKHJ1aWQpLCAobG9uZykoZXVpZCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXN1aWQocmVzLCBydWlkLCBldWlkLCBzdWlkKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlc3VpZChyZXMsIChsb25nKShydWlkKSwgKGxvbmcpKGV1aWQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3VpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVzZ2lkKHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXNnaWQoKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXNnaWQocmVzLCByZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlc2dpZChyZXMsIChsb25nKShyZ2lkKSwgKGxvbmcpKGVnaWQpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2dpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZnN1aWQodWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc3VpZCgobG9uZykodWlkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZnN1aWQocmVzLCB1aWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc3VpZChyZXMsIChsb25nKSh1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGZzZ2lkKGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZnNnaWQoKGxvbmcpKGdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGZzZ2lkKHJlcywgZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZnNnaWQocmVzLCAobG9uZykoZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRwZ2lkKHBpZCwgcGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHBnaWQoKGxvbmcpKHBpZCksIChsb25nKShwZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cGdpZChyZXMsIHBpZCwgcGdpZCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRwZ2lkKHJlcywgKGxvbmcpKHBpZCksIChsb25nKShwZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRzaWQoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHNpZCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHNpZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0c2lkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRncm91cHMoZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdyb3VwcygobG9uZykoZ2lkc2V0c2l6ZSksIChsb25nKShncm91cGxpc3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRncm91cHMocmVzLCBnaWRzZXRzaXplLCBncm91cGxpc3QpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdyb3VwcyhyZXMsIChsb25nKShnaWRzZXRzaXplKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXBsaXN0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hY2N0KG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY3QoKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hY2N0KHJlcywgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY3QocmVzLCAobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2FwZ2V0KGhlYWRlciwgZGF0YXB0cikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jYXBnZXQoKGxvbmcpKGhlYWRlciksIChsb25nKShkYXRhcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2FwZ2V0KHJlcywgaGVhZGVyLCBkYXRhcHRyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jYXBnZXQocmVzLCAobG9uZykoaGVhZGVyKSwgKGxvbmcpKGRhdGFwdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NhcHNldChoZWFkZXIsIGRhdGEpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2Fwc2V0KChsb25nKShoZWFkZXIpLCAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NhcHNldChyZXMsIGhlYWRlciwgZGF0YSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2Fwc2V0KHJlcywgKGxvbmcpKGhlYWRlciksIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wZXJzb25hbGl0eShwZXJzb25hbGl0eSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BlcnNvbmFsaXR5KChsb25nKShwZXJzb25hbGl0eSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BlcnNvbmFsaXR5KHJlcywgcGVyc29uYWxpdHkpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGVyc29uYWxpdHkocmVzLCAobG9uZykocGVyc29uYWxpdHkpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NpZ3BlbmRpbmcoc2V0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lncGVuZGluZygobG9uZykoc2V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lncGVuZGluZyhyZXMsIHNldCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdwZW5kaW5nKHJlcywgKGxvbmcpKHNldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lncHJvY21hc2soaG93LCBzZXQsIG9zZXQpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdwcm9jbWFzaygobG9uZykoaG93KSwgKGxvbmcpKHNldCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3NldCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NpZ3Byb2NtYXNrKHJlcywgaG93LCBzZXQsIG9zZXQpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lncHJvY21hc2socmVzLCAobG9uZykoaG93KSwgKGxvbmcpKHNldCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9zZXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGl0aW1lcih3aGljaCwgdmFsdWUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0aXRpbWVyKChsb25nKSh3aGljaCksIChsb25nKSh2YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGl0aW1lcihyZXMsIHdoaWNoLCB2YWx1ZSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0aXRpbWVyKHJlcywgKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRpdGltZXIod2hpY2gsIHZhbHVlLCBvdmFsdWUpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGl0aW1lcigobG9uZykod2hpY2gpLCAobG9uZykodmFsdWUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3ZhbHVlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0aXRpbWVyKHJlcywgd2hpY2gsIHZhbHVlLCBvdmFsdWUpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRpdGltZXIocmVzLCAobG9uZykod2hpY2gpLCAobG9uZykodmFsdWUpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG92YWx1ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfY3JlYXRlKHdoaWNoX2Nsb2NrLCB0aW1lcl9ldmVudF9zcGVjLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRfdGltZXJfaWQpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9jcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKSh3aGljaF9jbG9jayksIChsb25nKSh0aW1lcl9ldmVudF9zcGVjKSwgKGxvbmcpKGNyZWF0ZWRfdGltZXJfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcl9jcmVhdGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmVzLCB3aGljaF9jbG9jaywgdGltZXJfZXZlbnRfc3BlYywgY3JlYXRlZF90aW1lcl9pZCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2NyZWF0ZShyZXMsIChsb25nKSh3aGljaF9jbG9jayksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodGltZXJfZXZlbnRfc3BlYyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY3JlYXRlZF90aW1lcl9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJfZ2V0dGltZSh0aW1lcl9pZCwgc2V0dGluZykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9nZXR0aW1lKChsb25nKSh0aW1lcl9pZCksIChsb25nKShzZXR0aW5nKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJfZ2V0dGltZShyZXMsIHRpbWVyX2lkLCBzZXR0aW5nKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9nZXR0aW1lKHJlcywgKGxvbmcpKHRpbWVyX2lkKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZXR0aW5nKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcl9nZXRvdmVycnVuKHRpbWVyX2lkKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4oKGxvbmcpKHRpbWVyX2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJfZ2V0b3ZlcnJ1bihyZXMsIHRpbWVyX2lkKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9nZXRvdmVycnVuKHJlcywgKGxvbmcpKHRpbWVyX2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcl9zZXR0aW1lKHRpbWVyX2lkLCBmbGFncywgbmV3X3NldHRpbmcsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9zZXR0aW5nKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX3NldHRpbWUoKGxvbmcpKHRpbWVyX2lkKSwgKGxvbmcpKGZsYWdzKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld19zZXR0aW5nKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9sZF9zZXR0aW5nKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGltZXJfc2V0dGltZShyZXMsIHRpbWVyX2lkLCBmbGFncywgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfc2V0dGluZywgb2xkX3NldHRpbmcpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9zZXR0aW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykodGltZXJfaWQpLCAobG9uZykoZmxhZ3MpLCAobG9uZykobmV3X3NldHRpbmcpLCAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKG9sZF9zZXR0aW5nKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90aW1lcl9kZWxldGUodGltZXJfaWQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2RlbGV0ZSgobG9uZykodGltZXJfaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcl9kZWxldGUocmVzLCB0aW1lcl9pZCkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX2RlbGV0ZShyZXMsIChsb25nKSh0aW1lcl9pZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfc2V0dGltZSh3aGljaF9jbG9jaywgdHApICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19zZXR0aW1lKChsb25nKSh3aGljaF9jbG9jayksIChsb25nKSh0cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nsb2NrX3NldHRpbWUocmVzLCB3aGljaF9jbG9jaywgdHApICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfc2V0dGltZShyZXMsIChsb25nKSh3aGljaF9jbG9jayksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb2NrX2dldHRpbWUod2hpY2hfY2xvY2ssIHRwKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfZ2V0dGltZSgobG9uZykod2hpY2hfY2xvY2spLCAobG9uZykodHApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9ja19nZXR0aW1lKHJlcywgd2hpY2hfY2xvY2ssIHRwKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2dldHRpbWUocmVzLCAobG9uZykod2hpY2hfY2xvY2spLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jbG9ja19hZGp0aW1lKHdoaWNoX2Nsb2NrLCB0eCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2FkanRpbWUoKGxvbmcpKHdoaWNoX2Nsb2NrKSwgKGxvbmcpKHR4KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2xvY2tfYWRqdGltZShyZXMsIHdoaWNoX2Nsb2NrLCB0eCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19hZGp0aW1lKHJlcywgKGxvbmcpKHdoaWNoX2Nsb2NrKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0eCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvY2tfZ2V0cmVzKHdoaWNoX2Nsb2NrLCB0cCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19nZXRyZXMoKGxvbmcpKHdoaWNoX2Nsb2NrKSwgKGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2xvY2tfZ2V0cmVzKHJlcywgd2hpY2hfY2xvY2ssIHRwKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19nZXRyZXMocmVzLCAobG9uZykod2hpY2hfY2xvY2spLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHRwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jbG9ja19uYW5vc2xlZXAod2hpY2hfY2xvY2ssIGZsYWdzLCBycXRwLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm10cCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX25hbm9zbGVlcCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHdoaWNoX2Nsb2NrKSwgKGxvbmcpKGZsYWdzKSwgKGxvbmcpKHJxdHApLCAobG9uZykocm10cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nsb2NrX25hbm9zbGVlcChyZXMsIHdoaWNoX2Nsb2NrLCBmbGFncywgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBycXRwLCBybXRwKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfbmFub3NsZWVwKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHdoaWNoX2Nsb2NrKSwgKGxvbmcpKGZsYWdzKSwgKGxvbmcpKHJxdHApLCAobG9uZykocm10cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmljZShpbmNyZW1lbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uaWNlKChsb25nKShpbmNyZW1lbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uaWNlKHJlcywgaW5jcmVtZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25pY2UocmVzLCAobG9uZykoaW5jcmVtZW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9zZXRzY2hlZHVsZXIocGlkLCBwb2xpY3ksIHBhcmFtKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3NldHNjaGVkdWxlcigobG9uZykocGlkKSwgKGxvbmcpKHBvbGljeSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocGFyYW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9zZXRzY2hlZHVsZXIocmVzLCBwaWQsIHBvbGljeSwgcGFyYW0pICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3NldHNjaGVkdWxlciggICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShwaWQpLCAobG9uZykocG9saWN5KSwgKGxvbmcpKHBhcmFtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9zZXRwYXJhbShwaWQsIHBhcmFtKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3NldHBhcmFtKChsb25nKShwaWQpLCAobG9uZykocGFyYW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9zZXRwYXJhbShyZXMsIHBpZCwgcGFyYW0pICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3NldHBhcmFtKHJlcywgKGxvbmcpKHBpZCksIChsb25nKShwYXJhbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfZ2V0c2NoZWR1bGVyKHBpZCkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9nZXRzY2hlZHVsZXIoKGxvbmcpKHBpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NjaGVkX2dldHNjaGVkdWxlcihyZXMsIHBpZCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0c2NoZWR1bGVyKHJlcywgKGxvbmcpKHBpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfZ2V0cGFyYW0ocGlkLCBwYXJhbSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9nZXRwYXJhbSgobG9uZykocGlkKSwgKGxvbmcpKHBhcmFtKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfZ2V0cGFyYW0ocmVzLCBwaWQsIHBhcmFtKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRwYXJhbShyZXMsIChsb25nKShwaWQpLCAobG9uZykocGFyYW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX3NldGFmZmluaXR5KHBpZCwgbGVuLCB1c2VyX21hc2tfcHRyKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfc2V0YWZmaW5pdHkoKGxvbmcpKHBpZCksIChsb25nKShsZW4pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzZXJfbWFza19wdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9zZXRhZmZpbml0eShyZXMsIHBpZCwgbGVuLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX21hc2tfcHRyKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3NldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShwaWQpLCAobG9uZykobGVuKSwgKGxvbmcpKHVzZXJfbWFza19wdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX2dldGFmZmluaXR5KHBpZCwgbGVuLCB1c2VyX21hc2tfcHRyKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0YWZmaW5pdHkoKGxvbmcpKHBpZCksIChsb25nKShsZW4pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzZXJfbWFza19wdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF9nZXRhZmZpbml0eShyZXMsIHBpZCwgbGVuLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyX21hc2tfcHRyKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX2dldGFmZmluaXR5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShwaWQpLCAobG9uZykobGVuKSwgKGxvbmcpKHVzZXJfbWFza19wdHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX3lpZWxkKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfeWllbGQoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zY2hlZF95aWVsZChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3lpZWxkKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KHBvbGljeSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9tYXgoKGxvbmcpKHBvbGljeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NjaGVkX2dldF9wcmlvcml0eV9tYXgocmVzLCBwb2xpY3kpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0X3ByaW9yaXR5X21heChyZXMsIChsb25nKShwb2xpY3kpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NjaGVkX2dldF9wcmlvcml0eV9taW4ocG9saWN5KSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbigobG9uZykocG9saWN5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihyZXMsIHBvbGljeSkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKHJlcywgKGxvbmcpKHBvbGljeSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2NoZWRfcnJfZ2V0X2ludGVydmFsKHBpZCwgaW50ZXJ2YWwpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKGxvbmcpKHBpZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGludGVydmFsKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2NoZWRfcnJfZ2V0X2ludGVydmFsKHJlcywgcGlkLCBpbnRlcnZhbCkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwocmVzLCAobG9uZykocGlkKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGludGVydmFsKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRwcmlvcml0eSh3aGljaCwgd2hvLCBuaWNldmFsKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHByaW9yaXR5KChsb25nKSh3aGljaCksIChsb25nKSh3aG8pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuaWNldmFsKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cHJpb3JpdHkocmVzLCB3aGljaCwgd2hvLCBuaWNldmFsKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRwcmlvcml0eShyZXMsIChsb25nKSh3aGljaCksIChsb25nKSh3aG8pLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmljZXZhbCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cHJpb3JpdHkod2hpY2gsIHdobykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcmlvcml0eSgobG9uZykod2hpY2gpLCAobG9uZykod2hvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cHJpb3JpdHkocmVzLCB3aGljaCwgd2hvKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwcmlvcml0eShyZXMsIChsb25nKSh3aGljaCksIChsb25nKSh3aG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NodXRkb3duKGFyZzAsIGFyZzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2h1dGRvd24oKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NodXRkb3duKHJlcywgYXJnMCwgYXJnMSkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2h1dGRvd24ocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWJvb3QobWFnaWMxLCBtYWdpYzIsIGNtZCwgYXJnKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYm9vdCgobG9uZykobWFnaWMxKSwgKGxvbmcpKG1hZ2ljMiksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlYm9vdChyZXMsIG1hZ2ljMSwgbWFnaWMyLCBjbWQsIGFyZykgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVib290KHJlcywgKGxvbmcpKG1hZ2ljMSksIChsb25nKShtYWdpYzIpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjbWQpLCAobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZXN0YXJ0X3N5c2NhbGwoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Jlc3RhcnRfc3lzY2FsbCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Jlc3RhcnRfc3lzY2FsbChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVzdGFydF9zeXNjYWxsKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9rZXhlY19sb2FkKGVudHJ5LCBucl9zZWdtZW50cywgc2VnbWVudHMsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2tleGVjX2xvYWQoKGxvbmcpKGVudHJ5KSwgKGxvbmcpKG5yX3NlZ21lbnRzKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNlZ21lbnRzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa2V4ZWNfbG9hZChyZXMsIGVudHJ5LCBucl9zZWdtZW50cywgc2VnbWVudHMsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rZXhlY19sb2FkKHJlcywgKGxvbmcpKGVudHJ5KSwgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShucl9zZWdtZW50cyksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZWdtZW50cyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXhpdChlcnJvcl9jb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9leGl0KChsb25nKShlcnJvcl9jb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXhpdChyZXMsIGVycm9yX2NvZGUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leGl0KHJlcywgKGxvbmcpKGVycm9yX2NvZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2V4aXRfZ3JvdXAoZXJyb3JfY29kZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXhpdF9ncm91cCgobG9uZykoZXJyb3JfY29kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4aXRfZ3JvdXAocmVzLCBlcnJvcl9jb2RlKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXhpdF9ncm91cChyZXMsIChsb25nKShlcnJvcl9jb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV93YWl0NChwaWQsIHN0YXRfYWRkciwgb3B0aW9ucywgcnUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXQ0KChsb25nKShwaWQpLCAobG9uZykoc3RhdF9hZGRyKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRpb25zKSwgKGxvbmcpKHJ1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd2FpdDQocmVzLCBwaWQsIHN0YXRfYWRkciwgb3B0aW9ucywgcnUpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93YWl0NChyZXMsIChsb25nKShwaWQpLCAobG9uZykoc3RhdF9hZGRyKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0aW9ucyksIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd2FpdGlkKHdoaWNoLCBwaWQsIGluZm9wLCBvcHRpb25zLCBydSkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0aWQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKSh3aGljaCksIChsb25nKShwaWQpLCAobG9uZykoaW5mb3ApLCAobG9uZykob3B0aW9ucyksIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3dhaXRpZChyZXMsIHdoaWNoLCBwaWQsIGluZm9wLCBvcHRpb25zLCBydSkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd2FpdGlkKHJlcywgKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHBpZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShpbmZvcCksIChsb25nKShvcHRpb25zKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd2FpdHBpZChwaWQsIHN0YXRfYWRkciwgb3B0aW9ucykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0cGlkKChsb25nKShwaWQpLCAobG9uZykoc3RhdF9hZGRyKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRpb25zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd2FpdHBpZChyZXMsIHBpZCwgc3RhdF9hZGRyLCBvcHRpb25zKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93YWl0cGlkKHJlcywgKGxvbmcpKHBpZCksIChsb25nKShzdGF0X2FkZHIpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcHRpb25zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRfdGlkX2FkZHJlc3ModGlkcHRyKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF90aWRfYWRkcmVzcygobG9uZykodGlkcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0X3RpZF9hZGRyZXNzKHJlcywgdGlkcHRyKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRfdGlkX2FkZHJlc3MocmVzLCAobG9uZykodGlkcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbml0X21vZHVsZSh1bW9kLCBsZW4sIHVhcmdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2luaXRfbW9kdWxlKChsb25nKSh1bW9kKSwgKGxvbmcpKGxlbiksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1YXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2luaXRfbW9kdWxlKHJlcywgdW1vZCwgbGVuLCB1YXJncykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5pdF9tb2R1bGUocmVzLCAobG9uZykodW1vZCksIChsb25nKShsZW4pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVhcmdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9kZWxldGVfbW9kdWxlKG5hbWVfdXNlciwgZmxhZ3MpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2RlbGV0ZV9tb2R1bGUoKGxvbmcpKG5hbWVfdXNlciksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2RlbGV0ZV9tb2R1bGUocmVzLCBuYW1lX3VzZXIsIGZsYWdzKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZGVsZXRlX21vZHVsZShyZXMsIChsb25nKShuYW1lX3VzZXIpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3NpZ3Byb2NtYXNrKGhvdywgc2V0LCBvc2V0LCBzaWdzZXRzaXplKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lncHJvY21hc2soICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoaG93KSwgKGxvbmcpKHNldCksIChsb25nKShvc2V0KSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWdwcm9jbWFzayhyZXMsIGhvdywgc2V0LCBvc2V0LCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdzZXRzaXplKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3Byb2NtYXNrKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShob3cpLCAobG9uZykoc2V0KSwgKGxvbmcpKG9zZXQpLCAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lncGVuZGluZyhzZXQsIHNpZ3NldHNpemUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdwZW5kaW5nKChsb25nKShzZXQpLCAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3J0X3NpZ3BlbmRpbmcocmVzLCBzZXQsIHNpZ3NldHNpemUpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfc2lncGVuZGluZyhyZXMsIChsb25nKShzZXQpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lndGltZWR3YWl0KHV0aGVzZSwgdWluZm8sIHV0cywgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ3NldHNpemUpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWd0aW1lZHdhaXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKSh1dGhlc2UpLCAobG9uZykodWluZm8pLCAobG9uZykodXRzKSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWd0aW1lZHdhaXQocmVzLCB1dGhlc2UsIHVpbmZvLCB1dHMsICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnc2V0c2l6ZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3RpbWVkd2FpdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKSh1dGhlc2UpLCAobG9uZykodWluZm8pLCAobG9uZykodXRzKSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3J0X3Rnc2lncXVldWVpbmZvKHRnaWQsIHBpZCwgc2lnLCB1aW5mbykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfdGdzaWdxdWV1ZWluZm8oKGxvbmcpKHRnaWQpLCAobG9uZykocGlkKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpZyksIChsb25nKSh1aW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3J0X3Rnc2lncXVldWVpbmZvKHJlcywgdGdpZCwgcGlkLCBzaWcsIHVpbmZvKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfdGdzaWdxdWV1ZWluZm8oICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHRnaWQpLCAobG9uZykocGlkKSwgKGxvbmcpKHNpZyksIChsb25nKSh1aW5mbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa2lsbChwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9raWxsKChsb25nKShwaWQpLCAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfa2lsbChyZXMsIHBpZCwgc2lnKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKHJlcywgKGxvbmcpKHBpZCksIChsb25nKShzaWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Rna2lsbCh0Z2lkLCBwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGdraWxsKChsb25nKSh0Z2lkKSwgKGxvbmcpKHBpZCksIChsb25nKShzaWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90Z2tpbGwocmVzLCB0Z2lkLCBwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Rna2lsbChyZXMsIChsb25nKSh0Z2lkKSwgKGxvbmcpKHBpZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90a2lsbChwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RraWxsKChsb25nKShwaWQpLCAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdGtpbGwocmVzLCBwaWQsIHNpZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90a2lsbChyZXMsIChsb25nKShwaWQpLCAobG9uZykoc2lnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ydF9zaWdxdWV1ZWluZm8ocGlkLCBzaWcsIHVpbmZvKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ3F1ZXVlaW5mbygobG9uZykocGlkKSwgKGxvbmcpKHNpZyksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodWluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWdxdWV1ZWluZm8ocmVzLCBwaWQsIHNpZywgdWluZm8pICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3F1ZXVlaW5mbyhyZXMsIChsb25nKShwaWQpLCAobG9uZykoc2lnKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodWluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NnZXRtYXNrKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2dldG1hc2soKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZ2V0bWFzayhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NnZXRtYXNrKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zc2V0bWFzayhuZXdtYXNrKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NzZXRtYXNrKChsb25nKShuZXdtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3NldG1hc2socmVzLCBuZXdtYXNrKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zc2V0bWFzayhyZXMsIChsb25nKShuZXdtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWduYWwoc2lnLCBoYW5kbGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ25hbCgobG9uZykoc2lnKSwgKGxvbmcpKGhhbmRsZXIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWduYWwocmVzLCBzaWcsIGhhbmRsZXIpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ25hbChyZXMsIChsb25nKShzaWcpLCAobG9uZykoaGFuZGxlcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGF1c2UoKSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BhdXNlKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcGF1c2UocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wYXVzZShyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3luYygpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luYygpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bmMocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3luYyhyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN5bmMoZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3luYygobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3luYyhyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzeW5jKHJlcywgKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZGF0YXN5bmMoZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZkYXRhc3luYygobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mZGF0YXN5bmMocmVzLCBmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZkYXRhc3luYyhyZXMsIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYmRmbHVzaChmdW5jLCBkYXRhKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9iZGZsdXNoKChsb25nKShmdW5jKSwgKGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9iZGZsdXNoKHJlcywgZnVuYywgZGF0YSkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JkZmx1c2gocmVzLCAobG9uZykoZnVuYyksIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tb3VudChkZXZfbmFtZSwgZGlyX25hbWUsIHR5cGUsIGZsYWdzLCBkYXRhKSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21vdW50KChsb25nKShkZXZfbmFtZSksIChsb25nKShkaXJfbmFtZSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0eXBlKSwgKGxvbmcpKGZsYWdzKSwgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbW91bnQocmVzLCBkZXZfbmFtZSwgZGlyX25hbWUsIHR5cGUsIGZsYWdzLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tb3VudChyZXMsIChsb25nKShkZXZfbmFtZSksIChsb25nKShkaXJfbmFtZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodHlwZSksIChsb25nKShmbGFncyksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZGF0YSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdW1vdW50KG5hbWUsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bW91bnQoKGxvbmcpKG5hbWUpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bW91bnQocmVzLCBuYW1lLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Vtb3VudChyZXMsIChsb25nKShuYW1lKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGR1bW91bnQobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZHVtb3VudCgobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZHVtb3VudChyZXMsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkdW1vdW50KHJlcywgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RydW5jYXRlKHBhdGgsIGxlbmd0aCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdHJ1bmNhdGUoKGxvbmcpKHBhdGgpLCAobG9uZykobGVuZ3RoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdHJ1bmNhdGUocmVzLCBwYXRoLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90cnVuY2F0ZShyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnRydW5jYXRlKGZkLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mdHJ1bmNhdGUoKGxvbmcpKGZkKSwgKGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Z0cnVuY2F0ZShyZXMsIGZkLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnRydW5jYXRlKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGxlbmd0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3RhdChmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0KChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3RhdChyZXMsIGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N0YXRmcyhwYXRoLCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdGZzKChsb25nKShwYXRoKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N0YXRmcyhyZXMsIHBhdGgsIGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdGZzKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zdGF0ZnM2NChwYXRoLCBzeiwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0YXRmczY0KChsb25nKShwYXRoKSwgKGxvbmcpKHN6KSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N0YXRmczY0KHJlcywgcGF0aCwgc3osIGJ1ZikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RhdGZzNjQocmVzLCAobG9uZykocGF0aCksIChsb25nKShzeiksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXRmcyhmZCwgYnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdGZzKChsb25nKShmZCksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdGZzKHJlcywgZmQsIGJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0ZnMocmVzLCAobG9uZykoZmQpLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mc3RhdGZzNjQoZmQsIHN6LCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0ZnM2NCgobG9uZykoZmQpLCAobG9uZykoc3opLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnN0YXRmczY0KHJlcywgZmQsIHN6LCBidWYpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGZzNjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoc3opLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHN0YXQoZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc3RhdCgobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xzdGF0KHJlcywgZmlsZW5hbWUsIHN0YXRidWYpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHN0YXQocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnN0YXQoZmQsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdCgobG9uZykoZmQpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZzdGF0KHJlcywgZmQsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXQocmVzLCAobG9uZykoZmQpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmV3c3RhdChmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uZXdzdGF0KChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmV3c3RhdChyZXMsIGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdzdGF0KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25ld2xzdGF0KGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3bHN0YXQoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZXdsc3RhdChyZXMsIGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld2xzdGF0KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25ld2ZzdGF0KGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3ZnN0YXQoKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZXdmc3RhdChyZXMsIGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld2ZzdGF0KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VzdGF0KGRldiwgdWJ1ZikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXN0YXQoKGxvbmcpKGRldiksIChsb25nKSh1YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXN0YXQocmVzLCBkZXYsIHVidWYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91c3RhdChyZXMsIChsb25nKShkZXYpLCAobG9uZykodWJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3RhdDY0KGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0NjQoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zdGF0NjQocmVzLCBmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0YXQ2NChyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mc3RhdDY0KGZkLCBzdGF0YnVmKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0NjQoKGxvbmcpKGZkKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdDY0KHJlcywgZmQsIHN0YXRidWYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0NjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoc3RhdGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHN0YXQ2NChmaWxlbmFtZSwgc3RhdGJ1ZikgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc3RhdDY0KChsb25nKShmaWxlbmFtZSksIChsb25nKShzdGF0YnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbHN0YXQ2NChyZXMsIGZpbGVuYW1lLCBzdGF0YnVmKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sc3RhdDY0KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHN0YXRidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocGF0aCksIChsb25nKShuYW1lKSwgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHNldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCBmbGFncykgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc2V0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpLCAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xzZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHNldHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnNldHhhdHRyKGZkLCBuYW1lLCB2YWx1ZSwgc2l6ZSwgZmxhZ3MpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc2V0eGF0dHIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShmZCksIChsb25nKShuYW1lKSwgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc2V0eGF0dHIocmVzLCBmZCwgbmFtZSwgdmFsdWUsIHNpemUsIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzZXR4YXR0cihyZXMsIChsb25nKShmZCksIChsb25nKShuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHhhdHRyKHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0eGF0dHIoKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZhbHVlKSwgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9sZ2V0eGF0dHIocGF0aCwgbmFtZSwgdmFsdWUsIHNpemUpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xnZXR4YXR0cigobG9uZykocGF0aCksIChsb25nKShuYW1lKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xnZXR4YXR0cihyZXMsIHBhdGgsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGdldHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobmFtZSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mZ2V0eGF0dHIoZmQsIG5hbWUsIHZhbHVlLCBzaXplKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZnZXR4YXR0cigobG9uZykoZmQpLCAobG9uZykobmFtZSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodmFsdWUpLCAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZnZXR4YXR0cihyZXMsIGZkLCBuYW1lLCB2YWx1ZSwgc2l6ZSkgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmdldHhhdHRyKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG5hbWUpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2YWx1ZSksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0eGF0dHIocGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3R4YXR0cigobG9uZykocGF0aCksIChsb25nKShsaXN0KSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xpc3R4YXR0cihyZXMsIHBhdGgsIGxpc3QsIHNpemUpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlzdHhhdHRyKHJlcywgKGxvbmcpKHBhdGgpLCAobG9uZykobGlzdCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9sbGlzdHhhdHRyKHBhdGgsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xsaXN0eGF0dHIoKGxvbmcpKHBhdGgpLCAobG9uZykobGlzdCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sbGlzdHhhdHRyKHJlcywgcGF0aCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsaXN0eGF0dHIocmVzLCAobG9uZykocGF0aCksIChsb25nKShsaXN0KSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZsaXN0eGF0dHIoZmQsIGxpc3QsIHNpemUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmxpc3R4YXR0cigobG9uZykoZmQpLCAobG9uZykobGlzdCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZsaXN0eGF0dHIocmVzLCBmZCwgbGlzdCwgc2l6ZSkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmxpc3R4YXR0cihyZXMsIChsb25nKShmZCksIChsb25nKShsaXN0KSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVtb3ZleGF0dHIocGF0aCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW1vdmV4YXR0cigobG9uZykocGF0aCksIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVtb3ZleGF0dHIocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW1vdmV4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xyZW1vdmV4YXR0cihwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHJlbW92ZXhhdHRyKChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9scmVtb3ZleGF0dHIocmVzLCBwYXRoLCBuYW1lKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xyZW1vdmV4YXR0cihyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZyZW1vdmV4YXR0cihmZCwgbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnJlbW92ZXhhdHRyKChsb25nKShmZCksIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnJlbW92ZXhhdHRyKHJlcywgZmQsIG5hbWUpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mcmVtb3ZleGF0dHIocmVzLCAobG9uZykoZmQpLCAobG9uZykobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYnJrKGJyaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9icmsoKGxvbmcpKGJyaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2JyayhyZXMsIGJyaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYnJrKHJlcywgKGxvbmcpKGJyaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXByb3RlY3Qoc3RhcnQsIGxlbiwgcHJvdCkgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcHJvdGVjdCgobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocHJvdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21wcm90ZWN0KHJlcywgc3RhcnQsIGxlbiwgcHJvdCkgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXByb3RlY3QocmVzLCAobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHByb3QpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21yZW1hcChhZGRyLCBvbGRfbGVuLCBuZXdfbGVuLCBmbGFncywgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXJlbWFwKChsb25nKShhZGRyKSwgKGxvbmcpKG9sZF9sZW4pLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfbGVuKSwgKGxvbmcpKGZsYWdzKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21yZW1hcChyZXMsIGFkZHIsIG9sZF9sZW4sIG5ld19sZW4sIGZsYWdzLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYWRkcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXJlbWFwKHJlcywgKGxvbmcpKGFkZHIpLCAobG9uZykob2xkX2xlbiksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfbGVuKSwgKGxvbmcpKGZsYWdzKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVtYXBfZmlsZV9wYWdlcyhzdGFydCwgc2l6ZSwgcHJvdCwgcGdvZmYsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW1hcF9maWxlX3BhZ2VzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShzdGFydCksIChsb25nKShzaXplKSwgKGxvbmcpKHByb3QpLCAobG9uZykocGdvZmYpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZW1hcF9maWxlX3BhZ2VzKHJlcywgc3RhcnQsIHNpemUsIHByb3QsICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnb2ZmLCBmbGFncykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlbWFwX2ZpbGVfcGFnZXMocmVzLCAobG9uZykoc3RhcnQpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemUpLCAobG9uZykocHJvdCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBnb2ZmKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc3luYyhzdGFydCwgbGVuLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zeW5jKChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc3luYyhyZXMsIHN0YXJ0LCBsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zeW5jKHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubWFwKGFkZHIsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5tYXAoKGxvbmcpKGFkZHIpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXVubWFwKHJlcywgYWRkciwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5tYXAocmVzLCAobG9uZykoYWRkciksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21sb2NrKHN0YXJ0LCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWxvY2soKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21sb2NrKHJlcywgc3RhcnQsIGxlbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWxvY2socmVzLCAobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tdW5sb2NrKHN0YXJ0LCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bmxvY2soKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X211bmxvY2socmVzLCBzdGFydCwgbGVuKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXVubG9jayhyZXMsIChsb25nKShzdGFydCksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21sb2NrYWxsKGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWxvY2thbGwoKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWxvY2thbGwocmVzLCBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbG9ja2FsbChyZXMsIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXVubG9ja2FsbCgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tdW5sb2NrYWxsKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXVubG9ja2FsbChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tYWR2aXNlKHN0YXJ0LCBsZW4sIGJlaGF2aW9yKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21hZHZpc2UoKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJlaGF2aW9yKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWFkdmlzZShyZXMsIHN0YXJ0LCBsZW4sIGJlaGF2aW9yKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tYWR2aXNlKHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShiZWhhdmlvcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWluY29yZShzdGFydCwgbGVuLCB2ZWMpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKChsb25nKShzdGFydCksIChsb25nKShsZW4pLCAobG9uZykodmVjKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWluY29yZShyZXMsIHN0YXJ0LCBsZW4sIHZlYykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taW5jb3JlKHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2ZWMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Bpdm90X3Jvb3QobmV3X3Jvb3QsIHB1dF9vbGQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGl2b3Rfcm9vdCgobG9uZykobmV3X3Jvb3QpLCAobG9uZykocHV0X29sZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Bpdm90X3Jvb3QocmVzLCBuZXdfcm9vdCwgcHV0X29sZCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGl2b3Rfcm9vdChyZXMsIChsb25nKShuZXdfcm9vdCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocHV0X29sZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hyb290KGZpbGVuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaHJvb3QoKGxvbmcpKGZpbGVuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hyb290KHJlcywgZmlsZW5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaHJvb3QocmVzLCAobG9uZykoZmlsZW5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rbm9kKGZpbGVuYW1lLCBtb2RlLCBkZXYpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtub2QoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKG1vZGUpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGRldikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rbm9kKHJlcywgZmlsZW5hbWUsIG1vZGUsIGRldikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtub2QocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykobW9kZSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGRldikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGluayhvbGRuYW1lLCBuZXduYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saW5rKChsb25nKShvbGRuYW1lKSwgKGxvbmcpKG5ld25hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9saW5rKHJlcywgb2xkbmFtZSwgbmV3bmFtZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmsocmVzLCAobG9uZykob2xkbmFtZSksIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeW1saW5rKG9sZCwgbmV3XykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmsoKGxvbmcpKG9sZCksIChsb25nKShuZXdfKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3ltbGluayhyZXMsIG9sZCwgbmV3XykgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW1saW5rKHJlcywgKGxvbmcpKG9sZCksIChsb25nKShuZXdfKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bmxpbmsocGF0aG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGluaygobG9uZykocGF0aG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bmxpbmsocmVzLCBwYXRobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VubGluayhyZXMsIChsb25nKShwYXRobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVuYW1lKG9sZG5hbWUsIG5ld25hbWUpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW5hbWUoKGxvbmcpKG9sZG5hbWUpLCAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlbmFtZShyZXMsIG9sZG5hbWUsIG5ld25hbWUpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVuYW1lKHJlcywgKGxvbmcpKG9sZG5hbWUpLCAobG9uZykobmV3bmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2htb2QoZmlsZW5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaG1vZCgobG9uZykoZmlsZW5hbWUpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2NobW9kKHJlcywgZmlsZW5hbWUsIG1vZGUpICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2htb2QocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNobW9kKGZkLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2QoKGxvbmcpKGZkKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY2htb2QocmVzLCBmZCwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG1vZChyZXMsIChsb25nKShmZCksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY250bChmZCwgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsKChsb25nKShmZCksIChsb25nKShjbWQpLCAobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNudGwocmVzLCBmZCwgY21kLCBhcmcpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY250bChyZXMsIChsb25nKShmZCksIChsb25nKShjbWQpLCAobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY250bDY0KGZkLCBjbWQsIGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjbnRsNjQoKGxvbmcpKGZkKSwgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mY250bDY0KHJlcywgZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjbnRsNjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoY21kKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcGlwZShmaWxkZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXBlKChsb25nKShmaWxkZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9waXBlKHJlcywgZmlsZGVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUocmVzLCAobG9uZykoZmlsZGVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9waXBlMihmaWxkZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BpcGUyKChsb25nKShmaWxkZXMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9waXBlMihyZXMsIGZpbGRlcywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUyKHJlcywgKGxvbmcpKGZpbGRlcyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZHVwKGZpbGRlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAoKGxvbmcpKGZpbGRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cChyZXMsIGZpbGRlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwKHJlcywgKGxvbmcpKGZpbGRlcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZHVwMihvbGRmZCwgbmV3ZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAyKChsb25nKShvbGRmZCksIChsb25nKShuZXdmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cDIocmVzLCBvbGRmZCwgbmV3ZmQpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMihyZXMsIChsb25nKShvbGRmZCksIChsb25nKShuZXdmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZHVwMyhvbGRmZCwgbmV3ZmQsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAzKChsb25nKShvbGRmZCksIChsb25nKShuZXdmZCksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2R1cDMocmVzLCBvbGRmZCwgbmV3ZmQsIGZsYWdzKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMyhyZXMsIChsb25nKShvbGRmZCksIChsb25nKShuZXdmZCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvcGVybShmcm9tLCBudW0sIG9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9wZXJtKChsb25nKShmcm9tKSwgKGxvbmcpKG51bSksIChsb25nKShvbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvcGVybShyZXMsIGZyb20sIG51bSwgb24pICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9wZXJtKHJlcywgKGxvbmcpKGZyb20pLCAobG9uZykobnVtKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9jdGwoZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb2N0bCgobG9uZykoZmQpLCAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvY3RsKHJlcywgZmQsIGNtZCwgYXJnKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9jdGwocmVzLCAobG9uZykoZmQpLCAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmxvY2soZmQsIGNtZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mbG9jaygobG9uZykoZmQpLCAobG9uZykoY21kKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmxvY2socmVzLCBmZCwgY21kKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mbG9jayhyZXMsIChsb25nKShmZCksIChsb25nKShjbWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2lvX3NldHVwKG5yX3JlcXMsIGN0eCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fc2V0dXAoKGxvbmcpKG5yX3JlcXMpLCAobG9uZykoY3R4KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW9fc2V0dXAocmVzLCBucl9yZXFzLCBjdHgpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19zZXR1cChyZXMsIChsb25nKShucl9yZXFzKSwgKGxvbmcpKGN0eCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9fZGVzdHJveShjdHgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19kZXN0cm95KChsb25nKShjdHgpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb19kZXN0cm95KHJlcywgY3R4KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX2Rlc3Ryb3kocmVzLCAobG9uZykoY3R4KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb19nZXRldmVudHMoY3R4X2lkLCBtaW5fbnIsIG5yLCBldmVudHMsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvX2dldGV2ZW50cygobG9uZykoY3R4X2lkKSwgKGxvbmcpKG1pbl9uciksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobnIpLCAobG9uZykoZXZlbnRzKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvX2dldGV2ZW50cyhyZXMsIGN0eF9pZCwgbWluX25yLCBuciwgZXZlbnRzLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fZ2V0ZXZlbnRzKHJlcywgKGxvbmcpKGN0eF9pZCksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtaW5fbnIpLCAobG9uZykobnIpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShldmVudHMpLCAobG9uZykodGltZW91dCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9fc3VibWl0KGN0eF9pZCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19zdWJtaXQoKGxvbmcpKGN0eF9pZCksIChsb25nKShhcmcxKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb19zdWJtaXQocmVzLCBjdHhfaWQsIGFyZzEsIGFyZzIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX3N1Ym1pdChyZXMsIChsb25nKShjdHhfaWQpLCAobG9uZykoYXJnMSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9fY2FuY2VsKGN0eF9pZCwgaW9jYiwgcmVzdWx0KSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19jYW5jZWwoKGxvbmcpKGN0eF9pZCksIChsb25nKShpb2NiKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHJlc3VsdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvX2NhbmNlbChyZXMsIGN0eF9pZCwgaW9jYiwgcmVzdWx0KSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fY2FuY2VsKHJlcywgKGxvbmcpKGN0eF9pZCksIChsb25nKShpb2NiKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShyZXN1bHQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRmaWxlKG91dF9mZCwgaW5fZmQsIG9mZnNldCwgY291bnQpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZGZpbGUoKGxvbmcpKG91dF9mZCksIChsb25nKShpbl9mZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9mZnNldCksIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbmRmaWxlKHJlcywgb3V0X2ZkLCBpbl9mZCwgb2Zmc2V0LCBjb3VudCkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZGZpbGUocmVzLCAobG9uZykob3V0X2ZkKSwgKGxvbmcpKGluX2ZkKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9mZnNldCksIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZGZpbGU2NChvdXRfZmQsIGluX2ZkLCBvZmZzZXQsIGNvdW50KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kZmlsZTY0KChsb25nKShvdXRfZmQpLCAobG9uZykoaW5fZmQpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXQpLCAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kZmlsZTY0KHJlcywgb3V0X2ZkLCBpbl9mZCwgb2Zmc2V0LCBjb3VudCkgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRmaWxlNjQocmVzLCAobG9uZykob3V0X2ZkKSwgKGxvbmcpKGluX2ZkKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9mZnNldCksIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZGxpbmsocGF0aCwgYnVmLCBidWZzaXopICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGluaygobG9uZykocGF0aCksIChsb25nKShidWYpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYnVmc2l6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZGxpbmsocmVzLCBwYXRoLCBidWYsIGJ1ZnNpeikgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkbGluayhyZXMsIChsb25nKShwYXRoKSwgKGxvbmcpKGJ1ZiksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYnVmc2l6KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jcmVhdChwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NyZWF0KChsb25nKShwYXRobmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY3JlYXQocmVzLCBwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jcmVhdChyZXMsIChsb25nKShwYXRobmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vcGVuKGZpbGVuYW1lLCBmbGFncywgbW9kZSkgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29wZW4oKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKGZsYWdzKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vcGVuKHJlcywgZmlsZW5hbWUsIGZsYWdzLCBtb2RlKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29wZW4ocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykoZmxhZ3MpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Nsb3NlKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UoKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2xvc2UocmVzLCBmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9zZShyZXMsIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWNjZXNzKGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2Nlc3MoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hY2Nlc3MocmVzLCBmaWxlbmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY2VzcyhyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92aGFuZ3VwKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92aGFuZ3VwKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfdmhhbmd1cChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF92aGFuZ3VwKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaG93bihmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nob3duKChsb25nKShmaWxlbmFtZSksIChsb25nKSh1c2VyKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShncm91cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nob3duKHJlcywgZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hvd24ocmVzLCAobG9uZykoZmlsZW5hbWUpLCAobG9uZykodXNlciksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9sY2hvd24oZmlsZW5hbWUsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bigobG9uZykoZmlsZW5hbWUpLCAobG9uZykodXNlciksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sY2hvd24ocmVzLCBmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaG93bihyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKSh1c2VyKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bihmZCwgdXNlciwgZ3JvdXApICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKChsb25nKShmZCksIChsb25nKSh1c2VyKSwgKGxvbmcpKGdyb3VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNob3duKHJlcywgZmQsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hvd24ocmVzLCAobG9uZykoZmQpLCAobG9uZykodXNlciksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jaG93bjE2KGZpbGVuYW1lLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nob3duMTYoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpdXNlciwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpZ3JvdXApCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Nob3duMTYocmVzLCBmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hvd24xNihyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKXVzZXIsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylncm91cCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9sY2hvd24xNihmaWxlbmFtZSwgdXNlciwgZ3JvdXApICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xjaG93bjE2KChsb25nKShmaWxlbmFtZSksIChsb25nKXVzZXIsICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKWdyb3VwKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sY2hvd24xNihyZXMsIGZpbGVuYW1lLCB1c2VyLCBncm91cCkgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xjaG93bjE2KHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpdXNlciwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKWdyb3VwKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bjE2KGZkLCB1c2VyLCBncm91cCkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duMTYoKGxvbmcpKGZkKSwgKGxvbmcpdXNlciwgKGxvbmcpZ3JvdXApCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bjE2KHJlcywgZmQsIHVzZXIsIGdyb3VwKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duMTYocmVzLCAobG9uZykoZmQpLCAobG9uZyl1c2VyLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpZ3JvdXApCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVnaWQxNihyZ2lkLCBlZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZWdpZDE2KChsb25nKXJnaWQsIChsb25nKWVnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlZ2lkMTYocmVzLCByZ2lkLCBlZ2lkKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQxNihyZXMsIChsb25nKXJnaWQsIChsb25nKWVnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z2lkMTYoZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRnaWQxNigobG9uZylnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGdpZDE2KHJlcywgZ2lkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkMTYocmVzLCAobG9uZylnaWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmV1aWQxNihydWlkLCBldWlkKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZDE2KChsb25nKXJ1aWQsIChsb25nKWV1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJldWlkMTYocmVzLCBydWlkLCBldWlkKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmV1aWQxNihyZXMsIChsb25nKXJ1aWQsIChsb25nKWV1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0dWlkMTYodWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXR1aWQxNigobG9uZyl1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHVpZDE2KHJlcywgdWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dWlkMTYocmVzLCAobG9uZyl1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVzdWlkMTYocnVpZCwgZXVpZCwgc3VpZCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXN1aWQxNigobG9uZylydWlkLCAobG9uZylldWlkLCAobG9uZylzdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXN1aWQxNihyZXMsIHJ1aWQsIGV1aWQsIHN1aWQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlc3VpZDE2KHJlcywgKGxvbmcpcnVpZCwgKGxvbmcpZXVpZCwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKXN1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cmVzdWlkMTYocnVpZCwgZXVpZCwgc3VpZCkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXN1aWQxNigobG9uZykocnVpZCksIChsb25nKShldWlkKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3VpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJlc3VpZDE2KHJlcywgcnVpZCwgZXVpZCwgc3VpZCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmVzdWlkMTYocmVzLCAobG9uZykocnVpZCksIChsb25nKShldWlkKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN1aWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJlc2dpZDE2KHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzZ2lkMTYoKGxvbmcpcmdpZCwgKGxvbmcpZWdpZCwgKGxvbmcpc2dpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmVzZ2lkMTYocmVzLCByZ2lkLCBlZ2lkLCBzZ2lkKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXNnaWQxNihyZXMsIChsb25nKXJnaWQsIChsb25nKWVnaWQsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylzZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJlc2dpZDE2KHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmVzZ2lkMTYoKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNnaWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRyZXNnaWQxNihyZXMsIHJnaWQsIGVnaWQsIHNnaWQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc2dpZDE2KHJlcywgKGxvbmcpKHJnaWQpLCAobG9uZykoZWdpZCksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRmc3VpZDE2KHVpZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGZzdWlkMTYoKGxvbmcpdWlkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRmc3VpZDE2KHJlcywgdWlkKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzdWlkMTYocmVzLCAobG9uZyl1aWQpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZnNnaWQxNihnaWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc2dpZDE2KChsb25nKWdpZCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0ZnNnaWQxNihyZXMsIGdpZCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRmc2dpZDE2KHJlcywgKGxvbmcpZ2lkKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdyb3VwczE2KGdpZHNldHNpemUsIGdyb3VwbGlzdCkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z3JvdXBzMTYoKGxvbmcpKGdpZHNldHNpemUpLCAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdyb3VwczE2KHJlcywgZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z3JvdXBzMTYocmVzLCAobG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGdyb3VwbGlzdCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z3JvdXBzMTYoZ2lkc2V0c2l6ZSwgZ3JvdXBsaXN0KSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRncm91cHMxNigobG9uZykoZ2lkc2V0c2l6ZSksICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXBsaXN0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z3JvdXBzMTYocmVzLCBnaWRzZXRzaXplLCBncm91cGxpc3QpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRncm91cHMxNihyZXMsIChsb25nKShnaWRzZXRzaXplKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZ3JvdXBsaXN0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR1aWQxNigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHVpZDE2KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0dWlkMTYocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR1aWQxNihyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0ZXVpZDE2KCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRldWlkMTYoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRldWlkMTYocmVzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGV1aWQxNihyZXMpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Z2lkMTYoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRnaWQxNigpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGdpZDE2KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z2lkMTYocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGVnaWQxNigpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZWdpZDE2KCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZWdpZDE2KHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkMTYocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3V0aW1lKGZpbGVuYW1lLCB0aW1lcykgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWUoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHRpbWVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdXRpbWUocmVzLCBmaWxlbmFtZSwgdGltZXMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZShyZXMsIChsb25nKShmaWxlbmFtZSksIChsb25nKSh0aW1lcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXRpbWVzKGZpbGVuYW1lLCB1dGltZXMpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZXMoKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHV0aW1lcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3V0aW1lcyhyZXMsIGZpbGVuYW1lLCB1dGltZXMpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdXRpbWVzKHJlcywgKGxvbmcpKGZpbGVuYW1lKSwgKGxvbmcpKHV0aW1lcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbHNlZWsoZmQsIG9mZnNldCwgb3JpZ2luKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc2VlaygobG9uZykoZmQpLCAobG9uZykob2Zmc2V0KSwgKGxvbmcpKG9yaWdpbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xzZWVrKHJlcywgZmQsIG9mZnNldCwgb3JpZ2luKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHNlZWsocmVzLCAobG9uZykoZmQpLCAobG9uZykob2Zmc2V0KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9yaWdpbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGxzZWVrKGZkLCBvZmZzZXRfaGlnaCwgb2Zmc2V0X2xvdywgcmVzdWx0LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdpbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sbHNlZWsoKGxvbmcpKGZkKSwgKGxvbmcpKG9mZnNldF9oaWdoKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9mZnNldF9sb3cpLCAobG9uZykocmVzdWx0KSwgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9yaWdpbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2xsc2VlayhyZXMsIGZkLCBvZmZzZXRfaGlnaCwgb2Zmc2V0X2xvdywgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQsIG9yaWdpbikgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGxzZWVrKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG9mZnNldF9oaWdoKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvZmZzZXRfbG93KSwgKGxvbmcpKHJlc3VsdCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvcmlnaW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWQoZmQsIGJ1ZiwgY291bnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZCgobG9uZykoZmQpLCAobG9uZykoYnVmKSwgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZChyZXMsIGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZHYoZmQsIHZlYywgdmxlbikgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkdigobG9uZykoZmQpLCAobG9uZykodmVjKSwgKGxvbmcpKHZsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkdihyZXMsIGZkLCB2ZWMsIHZsZW4pICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWR2KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV93cml0ZShmZCwgYnVmLCBjb3VudCkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dyaXRlKChsb25nKShmZCksIChsb25nKShidWYpLCAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF93cml0ZShyZXMsIGZkLCBidWYsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRlKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShjb3VudCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfd3JpdGV2KGZkLCB2ZWMsIHZsZW4pICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZXYoKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksIChsb25nKSh2bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfd3JpdGV2KHJlcywgZmQsIHZlYywgdmxlbikgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93cml0ZXYocmVzLCAobG9uZykoZmQpLCAobG9uZykodmVjKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZsZW4pKQoKI2lmZGVmIF9MUDY0CiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJlYWQ2NChmZCwgYnVmLCBjb3VudCwgcG9zKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZDY0KChsb25nKShmZCksIChsb25nKShidWYpLCAobG9uZykoY291bnQpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcmVhZDY0KHJlcywgZmQsIGJ1ZiwgY291bnQsIHBvcykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ByZWFkNjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoYnVmKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSwgKGxvbmcpKHBvcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHdyaXRlNjQoZmQsIGJ1ZiwgY291bnQsIHBvcykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGU2NCgobG9uZykoZmQpLCAobG9uZykoYnVmKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpLCAobG9uZykocG9zKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHdyaXRlNjQocmVzLCBmZCwgYnVmLCBjb3VudCwgcG9zKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGU2NChyZXMsIChsb25nKShmZCksIChsb25nKShidWYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpLCAobG9uZykocG9zKSkKI2Vsc2UKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wcmVhZDY0KGZkLCBidWYsIGNvdW50LCBwb3MwLCBwb3MxKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3ByZWFkNjQoKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksIChsb25nKShjb3VudCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBvczApLCAobG9uZykocG9zMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ByZWFkNjQocmVzLCBmZCwgYnVmLCBjb3VudCwgcG9zMCwgcG9zMSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWQ2NCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksIChsb25nKShjb3VudCksIChsb25nKShwb3MwKSwgKGxvbmcpKHBvczEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3B3cml0ZTY0KGZkLCBidWYsIGNvdW50LCBwb3MwLCBwb3MxKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRlNjQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoZmQpLCAobG9uZykoYnVmKSwgKGxvbmcpKGNvdW50KSwgKGxvbmcpKHBvczApLCAobG9uZykocG9zMSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B3cml0ZTY0KHJlcywgZmQsIGJ1ZiwgY291bnQsIHBvczAsIHBvczEpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHdyaXRlNjQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGJ1ZiksIChsb25nKShjb3VudCksIChsb25nKShwb3MwKSwgKGxvbmcpKHBvczEpKQojZW5kaWYKCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJlYWR2KGZkLCB2ZWMsIHZsZW4sIHBvc19sLCBwb3NfaCkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZHYoKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksIChsb25nKSh2bGVuKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBvc19sKSwgKGxvbmcpKHBvc19oKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJlYWR2KHJlcywgZmQsIHZlYywgdmxlbiwgcG9zX2wsIHBvc19oKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZHYocmVzLCAobG9uZykoZmQpLCAobG9uZykodmVjKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHZsZW4pLCAobG9uZykocG9zX2wpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBvc19oKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wd3JpdGV2KGZkLCB2ZWMsIHZsZW4sIHBvc19sLCBwb3NfaCkgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZXYoKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksIChsb25nKSh2bGVuKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBvc19sKSwgKGxvbmcpKHBvc19oKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHdyaXRldihyZXMsIGZkLCB2ZWMsIHZsZW4sIHBvc19sLCBwb3NfaCkgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGV2KHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHZlYyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSwgKGxvbmcpKHBvc19sKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwb3NfaCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Y3dkKGJ1Ziwgc2l6ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRjd2QoKGxvbmcpKGJ1ZiksIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0Y3dkKHJlcywgYnVmLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRjd2QocmVzLCAobG9uZykoYnVmKSwgKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rZGlyKHBhdGhuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXIoKGxvbmcpKHBhdGhuYW1lKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ta2RpcihyZXMsIHBhdGhuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rZGlyKHJlcywgKGxvbmcpKHBhdGhuYW1lKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NoZGlyKGZpbGVuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hkaXIoKGxvbmcpKGZpbGVuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY2hkaXIocmVzLCBmaWxlbmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGRpcihyZXMsIChsb25nKShmaWxlbmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNoZGlyKGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hkaXIoKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNoZGlyKHJlcywgZmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2hkaXIocmVzLCAobG9uZykoZmQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JtZGlyKHBhdGhuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcm1kaXIoKGxvbmcpKHBhdGhuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfcm1kaXIocmVzLCBwYXRobmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ybWRpcihyZXMsIChsb25nKShwYXRobmFtZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbG9va3VwX2Rjb29raWUoY29va2llNjQsIGJ1ZiwgbGVuKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sb29rdXBfZGNvb2tpZSgobG9uZykoY29va2llNjQpLCAobG9uZykoYnVmKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbG9va3VwX2Rjb29raWUocmVzLCBjb29raWU2NCwgYnVmLCBsZW4pICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sb29rdXBfZGNvb2tpZShyZXMsIChsb25nKShjb29raWU2NCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYnVmKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcXVvdGFjdGwoY21kLCBzcGVjaWFsLCBpZCwgYWRkcikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9xdW90YWN0bCgobG9uZykoY21kKSwgKGxvbmcpKHNwZWNpYWwpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoaWQpLCAobG9uZykoYWRkcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3F1b3RhY3RsKHJlcywgY21kLCBzcGVjaWFsLCBpZCwgYWRkcikgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcXVvdGFjdGwocmVzLCAobG9uZykoY21kKSwgKGxvbmcpKHNwZWNpYWwpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGlkKSwgKGxvbmcpKGFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGRlbnRzKGZkLCBkaXJlbnQsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZGVudHMoKGxvbmcpKGZkKSwgKGxvbmcpKGRpcmVudCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZGVudHMocmVzLCBmZCwgZGlyZW50LCBjb3VudCkgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRkZW50cyhyZXMsIChsb25nKShmZCksIChsb25nKShkaXJlbnQpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGRlbnRzNjQoZmQsIGRpcmVudCwgY291bnQpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZGVudHM2NCgobG9uZykoZmQpLCAobG9uZykoZGlyZW50KSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY291bnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRkZW50czY0KHJlcywgZmQsIGRpcmVudCwgY291bnQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGRlbnRzNjQocmVzLCAobG9uZykoZmQpLCAobG9uZykoZGlyZW50KSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRzb2Nrb3B0KGZkLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHNvY2tvcHQoKGxvbmcpKGZkKSwgKGxvbmcpKGxldmVsKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdG5hbWUpLCAobG9uZykob3B0dmFsKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHNvY2tvcHQocmVzLCBmZCwgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0bGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0c29ja29wdChyZXMsIChsb25nKShmZCksIChsb25nKShsZXZlbCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0bmFtZSksIChsb25nKShvcHR2YWwpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRzb2Nrb3B0KGZkLCBsZXZlbCwgb3B0bmFtZSwgb3B0dmFsLCBvcHRsZW4pIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tvcHQoKGxvbmcpKGZkKSwgKGxvbmcpKGxldmVsKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdG5hbWUpLCAobG9uZykob3B0dmFsKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9wdGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHNvY2tvcHQocmVzLCBmZCwgbGV2ZWwsIG9wdG5hbWUsIG9wdHZhbCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0bGVuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja29wdChyZXMsIChsb25nKShmZCksIChsb25nKShsZXZlbCksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0bmFtZSksIChsb25nKShvcHR2YWwpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykob3B0bGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9iaW5kKGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2JpbmQoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYmluZChyZXMsIGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9iaW5kKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9jb25uZWN0KGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nvbm5lY3QoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY29ubmVjdChyZXMsIGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jb25uZWN0KHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hY2NlcHQoYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2VwdCgobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hY2NlcHQocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY2VwdChyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfYWNjZXB0NChhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2NlcHQ0KChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hY2NlcHQ0KHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY2VwdDQocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0c29ja25hbWUoYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzb2NrbmFtZSgobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHNvY2tuYW1lKHJlcywgYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja25hbWUocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBlZXJuYW1lKGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cGVlcm5hbWUoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRwZWVybmFtZShyZXMsIGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBlZXJuYW1lKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZW5kKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmQoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kKHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmQocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZHRvKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kdG8oKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzQpLCAobG9uZykoYXJnNSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbmR0byhyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZHRvKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSwgKGxvbmcpKGFyZzUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbmRtc2coZmQsIG1zZywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1zZygobG9uZykoZmQpLCAobG9uZykobXNnKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VuZG1zZyhyZXMsIGZkLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbXNnKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VuZG1tc2coZmQsIG1zZywgdmxlbiwgZmxhZ3MpICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbW1zZygobG9uZykoZmQpLCAobG9uZykobXNnKSwgKGxvbmcpKHZsZW4pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW5kbW1zZyhyZXMsIGZkLCBtc2csIHZsZW4sIGZsYWdzKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRtbXNnKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2KGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3YoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWN2KHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3YocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVjdmZyb20oYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWN2ZnJvbSgobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNCksIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVjdmZyb20ocmVzLCBhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2ZnJvbShyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMiksIChsb25nKShhcmczKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnNCksIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWN2bXNnKGZkLCBtc2csIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlY3Ztc2coKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3JlY3Ztc2cocmVzLCBmZCwgbXNnLCBmbGFncykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1zZyhyZXMsIChsb25nKShmZCksIChsb25nKShtc2cpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlY3ZtbXNnKGZkLCBtc2csIHZsZW4sIGZsYWdzLCB0aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdm1tc2coKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksIChsb25nKSh2bGVuKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSwgKGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWN2bW1zZyhyZXMsIGZkLCBtc2csIHZsZW4sIGZsYWdzLCB0aW1lb3V0KSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3ZtbXNnKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG1zZyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh2bGVuKSwgKGxvbmcpKGZsYWdzKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zb2NrZXQoYXJnMCwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NvY2tldCgobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zb2NrZXQocmVzLCBhcmcwLCBhcmcxLCBhcmcyKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NvY2tldChyZXMsIChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYXJnMikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc29ja2V0cGFpcihhcmcwLCBhcmcxLCBhcmcyLCBhcmczKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRwYWlyKChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zb2NrZXRwYWlyKHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NvY2tldHBhaXIocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc29ja2V0Y2FsbChjYWxsLCBhcmdzKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRjYWxsKChsb25nKShjYWxsKSwgKGxvbmcpKGFyZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zb2NrZXRjYWxsKHJlcywgY2FsbCwgYXJncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NvY2tldGNhbGwocmVzLCAobG9uZykoY2FsbCksIChsb25nKShhcmdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saXN0ZW4oYXJnMCwgYXJnMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpc3RlbigobG9uZykoYXJnMCksIChsb25nKShhcmcxKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbGlzdGVuKHJlcywgYXJnMCwgYXJnMSkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9saXN0ZW4ocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wb2xsKHVmZHMsIG5mZHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BvbGwoKGxvbmcpKHVmZHMpLCAobG9uZykobmZkcyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcG9sbChyZXMsIHVmZHMsIG5mZHMsIHRpbWVvdXQpICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wb2xsKHJlcywgKGxvbmcpKHVmZHMpLCAobG9uZykobmZkcyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZWxlY3QobiwgaW5wLCBvdXRwLCBleHAsIHR2cCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbGVjdCgobG9uZykobiksIChsb25nKShpbnApLCAobG9uZykob3V0cCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZXhwKSwgKGxvbmcpKHR2cCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbGVjdChyZXMsIG4sIGlucCwgb3V0cCwgZXhwLCB0dnApICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VsZWN0KHJlcywgKGxvbmcpKG4pLCAobG9uZykoaW5wKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShvdXRwKSwgKGxvbmcpKGV4cCksIChsb25nKSh0dnApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZF9zZWxlY3QoYXJnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX3NlbGVjdCgobG9uZykoYXJnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkX3NlbGVjdChyZXMsIGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfc2VsZWN0KHJlcywgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZXBvbGxfY3JlYXRlKHNpemUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9jcmVhdGUoKGxvbmcpKHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9lcG9sbF9jcmVhdGUocmVzLCBzaXplKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX2NyZWF0ZShyZXMsIChsb25nKShzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF9jcmVhdGUxKGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX2NyZWF0ZTEoKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfY3JlYXRlMShyZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jcmVhdGUxKHJlcywgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF9jdGwoZXBmZCwgb3AsIGZkLCBldmVudCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX2N0bCgobG9uZykoZXBmZCksIChsb25nKShvcCksIChsb25nKShmZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZXZlbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9lcG9sbF9jdGwocmVzLCBlcGZkLCBvcCwgZmQsIGV2ZW50KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX2N0bChyZXMsIChsb25nKShlcGZkKSwgKGxvbmcpKG9wKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmQpLCAobG9uZykoZXZlbnQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Vwb2xsX3dhaXQoZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsIHRpbWVvdXQpICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfd2FpdCgobG9uZykoZXBmZCksIChsb25nKShldmVudHMpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobWF4ZXZlbnRzKSwgKGxvbmcpKHRpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9lcG9sbF93YWl0KHJlcywgZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX3dhaXQocmVzLCAobG9uZykoZXBmZCksIChsb25nKShldmVudHMpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9lcG9sbF9wd2FpdChlcGZkLCBldmVudHMsIG1heGV2ZW50cywgdGltZW91dCwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdtYXNrLCBzaWdzZXRzaXplKSAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX3B3YWl0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSwgICAgICAgIFwKICAgICAgKGxvbmcpKHNpZ21hc2spLCAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Vwb2xsX3B3YWl0KHJlcywgZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsIHNpZ21hc2ssIHNpZ3NldHNpemUpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfcHdhaXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGVwZmQpLCAobG9uZykoZXZlbnRzKSwgKGxvbmcpKG1heGV2ZW50cyksIChsb25nKSh0aW1lb3V0KSwgICBcCiAgICAgIChsb25nKShzaWdtYXNrKSwgKGxvbmcpKHNpZ3NldHNpemUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Vwb2xsX3B3YWl0MihlcGZkLCBldmVudHMsIG1heGV2ZW50cywgdGltZW91dCwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWdtYXNrLCBzaWdzZXRzaXplKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfcHdhaXQyKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoZXBmZCksIChsb25nKShldmVudHMpLCAobG9uZykobWF4ZXZlbnRzKSwgKGxvbmcpKHRpbWVvdXQpLCAgICAgICAgXAogICAgICAobG9uZykoc2lnbWFzayksIChsb25nKShzaWdzZXRzaXplKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfcHdhaXQyKHJlcywgZXBmZCwgZXZlbnRzLCBtYXhldmVudHMsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsIHNpZ21hc2ssIHNpZ3NldHNpemUpICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9wd2FpdDIoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykoZXBmZCksIChsb25nKShldmVudHMpLCAobG9uZykobWF4ZXZlbnRzKSwgKGxvbmcpKHRpbWVvdXQpLCAgIFwKICAgICAgKGxvbmcpKHNpZ21hc2spLCAobG9uZykoc2lnc2V0c2l6ZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0aG9zdG5hbWUobmFtZSwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRob3N0bmFtZSgobG9uZykobmFtZSksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRob3N0bmFtZShyZXMsIG5hbWUsIGxlbikgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGhvc3RuYW1lKHJlcywgKGxvbmcpKG5hbWUpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRob3N0bmFtZShuYW1lLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGhvc3RuYW1lKChsb25nKShuYW1lKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldGhvc3RuYW1lKHJlcywgbmFtZSwgbGVuKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0aG9zdG5hbWUocmVzLCAobG9uZykobmFtZSksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGRvbWFpbm5hbWUobmFtZSwgbGVuKSAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZG9tYWlubmFtZSgobG9uZykobmFtZSksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRkb21haW5uYW1lKHJlcywgbmFtZSwgbGVuKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGRvbWFpbm5hbWUocmVzLCAobG9uZykobmFtZSksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25ld3VuYW1lKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3dW5hbWUoKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uZXd1bmFtZShyZXMsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld3VuYW1lKHJlcywgKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3VuYW1lKGFyZzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW5hbWUoKGxvbmcpKGFyZzApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bmFtZShyZXMsIGFyZzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VuYW1lKHJlcywgKGxvbmcpKGFyZzApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZHVuYW1lKGFyZzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkdW5hbWUoKGxvbmcpKGFyZzApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGR1bmFtZShyZXMsIGFyZzApICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZHVuYW1lKHJlcywgKGxvbmcpKGFyZzApKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJsaW1pdChyZXNvdXJjZSwgcmxpbSkgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmxpbWl0KChsb25nKShyZXNvdXJjZSksIChsb25nKShybGltKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cmxpbWl0KHJlcywgcmVzb3VyY2UsIHJsaW0pICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRybGltaXQocmVzLCAobG9uZykocmVzb3VyY2UpLCAobG9uZykocmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkX2dldHJsaW1pdChyZXNvdXJjZSwgcmxpbSkgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGRfZ2V0cmxpbWl0KChsb25nKShyZXNvdXJjZSksIChsb25nKShybGltKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkX2dldHJsaW1pdChyZXMsIHJlc291cmNlLCBybGltKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfZ2V0cmxpbWl0KHJlcywgKGxvbmcpKHJlc291cmNlKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShybGltKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRybGltaXQocmVzb3VyY2UsIHJsaW0pICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJsaW1pdCgobG9uZykocmVzb3VyY2UpLCAobG9uZykocmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJsaW1pdChyZXMsIHJlc291cmNlLCBybGltKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmxpbWl0KHJlcywgKGxvbmcpKHJlc291cmNlKSwgKGxvbmcpKHJsaW0pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BybGltaXQ2NChwaWQsIHJlc291cmNlLCBuZXdfcmxpbSwgb2xkX3JsaW0pICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJsaW1pdDY0KChsb25nKShwaWQpLCAobG9uZykocmVzb3VyY2UpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfcmxpbSksIChsb25nKShvbGRfcmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BybGltaXQ2NChyZXMsIHBpZCwgcmVzb3VyY2UsIG5ld19ybGltLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfcmxpbSkgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJsaW1pdDY0KHJlcywgKGxvbmcpKHBpZCksIChsb25nKShyZXNvdXJjZSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXdfcmxpbSksIChsb25nKShvbGRfcmxpbSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0cnVzYWdlKHdobywgcnUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRydXNhZ2UoKGxvbmcpKHdobyksIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJ1c2FnZShyZXMsIHdobywgcnUpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cnVzYWdlKHJlcywgKGxvbmcpKHdobyksIChsb25nKShydSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdW1hc2sobWFzaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bWFzaygobG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VtYXNrKHJlcywgbWFzaykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW1hc2socmVzLCAobG9uZykobWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXNnZ2V0KGtleSwgbXNnZmxnKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dnZXQoKGxvbmcpKGtleSksIChsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tc2dnZXQocmVzLCBrZXksIG1zZ2ZsZykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ2dldChyZXMsIChsb25nKShrZXkpLCAobG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tc2dzbmQobXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2dmbGcpICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21zZ3NuZCgobG9uZykobXNxaWQpLCAobG9uZykobXNncCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobXNnc3opLCAobG9uZykobXNnZmxnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXNnc25kKHJlcywgbXNxaWQsIG1zZ3AsIG1zZ3N6LCBtc2dmbGcpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQocmVzLCAobG9uZykobXNxaWQpLCAobG9uZykobXNncCksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1zZ3N6KSwgKGxvbmcpKG1zZ2ZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXNncmN2KG1zcWlkLCBtc2dwLCBtc2dzeiwgbXNndHlwLCBtc2dmbGcpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dyY3YoKGxvbmcpKG1zcWlkKSwgKGxvbmcpKG1zZ3ApLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1zZ3N6KSwgKGxvbmcpKG1zZ3R5cCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1zZ2ZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21zZ3JjdihyZXMsIG1zcWlkLCBtc2dwLCBtc2dzeiwgbXNndHlwLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dmbGcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNncmN2KHJlcywgKGxvbmcpKG1zcWlkKSwgKGxvbmcpKG1zZ3ApLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtc2dzeiksIChsb25nKShtc2d0eXApLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtc2dmbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21zZ2N0bChtc3FpZCwgY21kLCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnY3RsKChsb25nKShtc3FpZCksIChsb25nKShjbWQpLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbXNnY3RsKHJlcywgbXNxaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2djdGwocmVzLCAobG9uZykobXNxaWQpLCAobG9uZykoY21kKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VtZ2V0KGtleSwgbnNlbXMsIHNlbWZsZykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1nZXQoKGxvbmcpKGtleSksIChsb25nKShuc2VtcyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNlbWZsZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlbWdldChyZXMsIGtleSwgbnNlbXMsIHNlbWZsZykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtZ2V0KHJlcywgKGxvbmcpKGtleSksIChsb25nKShuc2VtcyksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzZW1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NlbW9wKHNlbWlkLCBzb3BzLCBuc29wcykgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2Vtb3AoKGxvbmcpKHNlbWlkKSwgKGxvbmcpKHNvcHMpLCAobG9uZykobnNvcHMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW1vcChyZXMsIHNlbWlkLCBzb3BzLCBuc29wcykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbW9wKHJlcywgKGxvbmcpKHNlbWlkKSwgKGxvbmcpKHNvcHMpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuc29wcykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VtY3RsKHNlbWlkLCBzZW1udW0sIGNtZCwgYXJnKSAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW1jdGwoKGxvbmcpKHNlbWlkKSwgKGxvbmcpKHNlbW51bSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNtZCksIChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZW1jdGwocmVzLCBzZW1pZCwgc2VtbnVtLCBjbWQsIGFyZykgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbWN0bChyZXMsIChsb25nKShzZW1pZCksIChsb25nKShzZW1udW0pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY21kKSwgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2VtdGltZWRvcChzZW1pZCwgc29wcywgbnNvcHMsIHRpbWVvdXQpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW10aW1lZG9wKChsb25nKShzZW1pZCksIChsb25nKShzb3BzKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuc29wcyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2VtdGltZWRvcChyZXMsIHNlbWlkLCBzb3BzLCBuc29wcywgdGltZW91dCkgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW10aW1lZG9wKHJlcywgKGxvbmcpKHNlbWlkKSwgKGxvbmcpKHNvcHMpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuc29wcyksIChsb25nKSh0aW1lb3V0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaG1hdChzaG1pZCwgc2htYWRkciwgc2htZmxnKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWF0KChsb25nKShzaG1pZCksIChsb25nKShzaG1hZGRyKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaG1hdChyZXMsIHNobWlkLCBzaG1hZGRyLCBzaG1mbGcpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWF0KHJlcywgKGxvbmcpKHNobWlkKSwgKGxvbmcpKHNobWFkZHIpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaG1mbGcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWdldChrZXksIHNpemUsIGZsYWcpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htZ2V0KChsb25nKShrZXkpLCAobG9uZykoc2l6ZSksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htZ2V0KHJlcywga2V5LCBzaXplLCBmbGFnKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1nZXQocmVzLCAobG9uZykoa2V5KSwgKGxvbmcpKHNpemUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWR0KHNobWFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htZHQoKGxvbmcpKHNobWFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaG1kdChyZXMsIHNobWFkZHIpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWR0KHJlcywgKGxvbmcpKHNobWFkZHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NobWN0bChzaG1pZCwgY21kLCBidWYpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2htY3RsKChsb25nKShzaG1pZCksIChsb25nKShjbWQpLCAobG9uZykoYnVmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2htY3RsKHJlcywgc2htaWQsIGNtZCwgYnVmKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1jdGwocmVzLCAobG9uZykoc2htaWQpLCAobG9uZykoY21kKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaXBjKGNhbGwsIGZpcnN0LCBzZWNvbmQsIHRoaXJkLCBwdHIsIGZpZnRoKSAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pcGMoKGxvbmcpKGNhbGwpLCAobG9uZykoZmlyc3QpLCAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNlY29uZCksIChsb25nKSh0aGlyZCksIChsb25nKShwdHIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZpZnRoKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaXBjKHJlcywgY2FsbCwgZmlyc3QsIHNlY29uZCwgdGhpcmQsIHB0ciwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZnRoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pcGMocmVzLCAobG9uZykoY2FsbCksIChsb25nKShmaXJzdCksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNlY29uZCksIChsb25nKSh0aGlyZCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHB0ciksIChsb25nKShmaWZ0aCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfb3BlbihuYW1lLCBvZmxhZywgbW9kZSwgYXR0cikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9vcGVuKChsb25nKShuYW1lKSwgKGxvbmcpKG9mbGFnKSwgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSwgKGxvbmcpKGF0dHIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9vcGVuKHJlcywgbmFtZSwgb2ZsYWcsIG1vZGUsIGF0dHIpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4ocmVzLCAobG9uZykobmFtZSksIChsb25nKShvZmxhZyksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1vZGUpLCAobG9uZykoYXR0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXFfdW5saW5rKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV91bmxpbmsoKGxvbmcpKG5hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV91bmxpbmsocmVzLCBuYW1lKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3VubGluayhyZXMsIChsb25nKShuYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV90aW1lZHNlbmQobXFkZXMsIG1zZ19wdHIsIG1zZ19sZW4sICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3RpbWVkc2VuZCgobG9uZykobXFkZXMpLCAobG9uZykobXNnX3B0ciksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobXNnX2xlbiksIChsb25nKShtc2dfcHJpbyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV90aW1lZHNlbmQocmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3RpbWVkc2VuZCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShtcWRlcyksIChsb25nKShtc2dfcHRyKSwgKGxvbmcpKG1zZ19sZW4pLCAobG9uZykobXNnX3ByaW8pLCAgXAogICAgICAobG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX3RpbWVkcmVjZWl2ZShtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dfcHJpbywgYWJzX3RpbWVvdXQpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfdGltZWRyZWNlaXZlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykobXFkZXMpLCAobG9uZykobXNnX3B0ciksIChsb25nKShtc2dfbGVuKSwgKGxvbmcpKG1zZ19wcmlvKSwgICAgICAgXAogICAgICAobG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV90aW1lZHJlY2VpdmUocmVzLCBtcWRlcywgbXNnX3B0ciwgbXNnX2xlbiwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnX3ByaW8sIGFic190aW1lb3V0KSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3RpbWVkcmVjZWl2ZSggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShtcWRlcyksIChsb25nKShtc2dfcHRyKSwgKGxvbmcpKG1zZ19sZW4pLCAobG9uZykobXNnX3ByaW8pLCAgXAogICAgICAobG9uZykoYWJzX3RpbWVvdXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21xX25vdGlmeShtcWRlcywgbm90aWZpY2F0aW9uKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfbm90aWZ5KChsb25nKShtcWRlcyksIChsb25nKShub3RpZmljYXRpb24pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9ub3RpZnkocmVzLCBtcWRlcywgbm90aWZpY2F0aW9uKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX25vdGlmeShyZXMsIChsb25nKShtcWRlcyksICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobm90aWZpY2F0aW9uKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tcV9nZXRzZXRhdHRyKG1xZGVzLCBtcXN0YXQsIG9tcXN0YXQpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX2dldHNldGF0dHIoKGxvbmcpKG1xZGVzKSwgKGxvbmcpKG1xc3RhdCksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG9tcXN0YXQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcV9nZXRzZXRhdHRyKHJlcywgbXFkZXMsIG1xc3RhdCwgb21xc3RhdCkgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX2dldHNldGF0dHIocmVzLCAobG9uZykobXFkZXMpLCAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1xc3RhdCksIChsb25nKShvbXFzdGF0KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wY2ljb25maWdfaW9iYXNlKHdoaWNoLCBidXMsIGRldmZuKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BjaWNvbmZpZ19pb2Jhc2UoKGxvbmcpKHdoaWNoKSwgKGxvbmcpKGJ1cyksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGRldmZuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcGNpY29uZmlnX2lvYmFzZShyZXMsIHdoaWNoLCBidXMsIGRldmZuKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wY2ljb25maWdfaW9iYXNlKHJlcywgKGxvbmcpKHdoaWNoKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShidXMpLCAobG9uZykoZGV2Zm4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BjaWNvbmZpZ19yZWFkKGJ1cywgZGZuLCBvZmYsIGxlbiwgYnVmKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGNpY29uZmlnX3JlYWQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoYnVzKSwgKGxvbmcpKGRmbiksIChsb25nKShvZmYpLCAobG9uZykobGVuKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BjaWNvbmZpZ19yZWFkKHJlcywgYnVzLCBkZm4sIG9mZiwgbGVuLCBidWYpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX3JlYWQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGJ1cyksIChsb25nKShkZm4pLCAobG9uZykob2ZmKSwgKGxvbmcpKGxlbiksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3BjaWNvbmZpZ193cml0ZShidXMsIGRmbiwgb2ZmLCBsZW4sIGJ1ZikgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGNpY29uZmlnX3dyaXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykoYnVzKSwgKGxvbmcpKGRmbiksIChsb25nKShvZmYpLCAobG9uZykobGVuKSwgKGxvbmcpKGJ1ZikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3BjaWNvbmZpZ193cml0ZShyZXMsIGJ1cywgZGZuLCBvZmYsIGxlbiwgYnVmKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX3dyaXRlKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKGJ1cyksIChsb25nKShkZm4pLCAobG9uZykob2ZmKSwgKGxvbmcpKGxlbiksIChsb25nKShidWYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N3YXBvbihzcGVjaWFsZmlsZSwgc3dhcF9mbGFncykgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3dhcG9uKChsb25nKShzcGVjaWFsZmlsZSksIChsb25nKShzd2FwX2ZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3dhcG9uKHJlcywgc3BlY2lhbGZpbGUsIHN3YXBfZmxhZ3MpICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zd2Fwb24ocmVzLCAobG9uZykoc3BlY2lhbGZpbGUpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN3YXBfZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N3YXBvZmYoc3BlY2lhbGZpbGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3dhcG9mZigobG9uZykoc3BlY2lhbGZpbGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zd2Fwb2ZmKHJlcywgc3BlY2lhbGZpbGUpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N3YXBvZmYocmVzLCAobG9uZykoc3BlY2lhbGZpbGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5c2N0bChhcmdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3lzY3RsKChsb25nKShhcmdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3lzY3RsKHJlcywgYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNjdGwocmVzLCAobG9uZykoYXJncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3lzaW5mbyhpbmZvKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeXNpbmZvKChsb25nKShpbmZvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3lzaW5mbyhyZXMsIGluZm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNpbmZvKHJlcywgKGxvbmcpKGluZm8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5c2ZzKG9wdGlvbiwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3lzZnMoKGxvbmcpKG9wdGlvbiksIChsb25nKShhcmcxKSwgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zeXNmcyhyZXMsIG9wdGlvbiwgYXJnMSwgYXJnMikgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5c2ZzKHJlcywgKGxvbmcpKG9wdGlvbiksIChsb25nKShhcmcxKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zeXNsb2codHlwZSwgYnVmLCBsZW4pICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2xvZygobG9uZykodHlwZSksIChsb25nKShidWYpLCAobG9uZykobGVuKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3lzbG9nKHJlcywgdHlwZSwgYnVmLCBsZW4pICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNsb2cocmVzLCAobG9uZykodHlwZSksIChsb25nKShidWYpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdXNlbGliKGxpYnJhcnkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91c2VsaWIoKGxvbmcpKGxpYnJhcnkpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91c2VsaWIocmVzLCBsaWJyYXJ5KSAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VzZWxpYihyZXMsIChsb25nKShsaWJyYXJ5KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uaV9zeXNjYWxsKCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25pX3N5c2NhbGwoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uaV9zeXNjYWxsKHJlcykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25pX3N5c2NhbGwocmVzKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3B0cmFjZShyZXF1ZXN0LCBwaWQsIGFkZHIsIGRhdGEpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHRyYWNlKChsb25nKShyZXF1ZXN0KSwgKGxvbmcpKHBpZCksICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhZGRyKSwgKGxvbmcpKGRhdGEpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wdHJhY2UocmVzLCByZXF1ZXN0LCBwaWQsIGFkZHIsIGRhdGEpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3B0cmFjZShyZXMsIChsb25nKShyZXF1ZXN0KSwgKGxvbmcpKHBpZCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoYWRkciksIChsb25nKShkYXRhKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hZGRfa2V5KF90eXBlLCBfZGVzY3JpcHRpb24sIF9wYXlsb2FkLCBwbGVuLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3RyaW5naWQpICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FkZF9rZXkoKGxvbmcpKF90eXBlKSwgKGxvbmcpKF9kZXNjcmlwdGlvbiksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKF9wYXlsb2FkKSwgKGxvbmcpKHBsZW4pLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGRlc3RyaW5naWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9hZGRfa2V5KHJlcywgX3R5cGUsIF9kZXNjcmlwdGlvbiwgX3BheWxvYWQsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsZW4sIGRlc3RyaW5naWQpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FkZF9rZXkoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShfdHlwZSksIChsb25nKShfZGVzY3JpcHRpb24pLCAobG9uZykoX3BheWxvYWQpLCAgICAgICAgICAgICAgXAogICAgICAobG9uZykocGxlbiksIChsb25nKShkZXN0cmluZ2lkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZXF1ZXN0X2tleShfdHlwZSwgX2Rlc2NyaXB0aW9uLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2FsbG91dF9pbmZvLCBkZXN0cmluZ2lkKSAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlcXVlc3Rfa2V5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKF90eXBlKSwgKGxvbmcpKF9kZXNjcmlwdGlvbiksIChsb25nKShfY2FsbG91dF9pbmZvKSwgICAgICAgICAgICAgIFwKICAgICAgKGxvbmcpKGRlc3RyaW5naWQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZXF1ZXN0X2tleShyZXMsIF90eXBlLCBfZGVzY3JpcHRpb24sICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY2FsbG91dF9pbmZvLCBkZXN0cmluZ2lkKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlcXVlc3Rfa2V5KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShfdHlwZSksIChsb25nKShfZGVzY3JpcHRpb24pLCAobG9uZykoX2NhbGxvdXRfaW5mbyksICAgICAgICAgXAogICAgICAobG9uZykoZGVzdHJpbmdpZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfa2V5Y3RsKGNtZCwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rZXljdGwoKGxvbmcpKGNtZCksIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzQpLCAobG9uZykoYXJnNSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2tleWN0bChyZXMsIGNtZCwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2V5Y3RsKHJlcywgKGxvbmcpKGNtZCksIChsb25nKShhcmcyKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmczKSwgKGxvbmcpKGFyZzQpLCAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc1KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb3ByaW9fc2V0KHdoaWNoLCB3aG8sIGlvcHJpbykgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcHJpb19zZXQoKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHdobyksICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGlvcHJpbykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvcHJpb19zZXQocmVzLCB3aGljaCwgd2hvLCBpb3ByaW8pICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9wcmlvX3NldChyZXMsIChsb25nKSh3aGljaCksIChsb25nKSh3aG8pLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoaW9wcmlvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pb3ByaW9fZ2V0KHdoaWNoLCB3aG8pICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lvcHJpb19nZXQoKGxvbmcpKHdoaWNoKSwgKGxvbmcpKHdobykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lvcHJpb19nZXQocmVzLCB3aGljaCwgd2hvKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9wcmlvX2dldChyZXMsIChsb25nKSh3aGljaCksIChsb25nKSh3aG8pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldF9tZW1wb2xpY3kobW9kZSwgbm1hc2ssIG1heG5vZGUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0X21lbXBvbGljeSgobG9uZykobW9kZSksIChsb25nKShubWFzayksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobWF4bm9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldF9tZW1wb2xpY3kocmVzLCBtb2RlLCBubWFzaywgbWF4bm9kZSkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0X21lbXBvbGljeShyZXMsIChsb25nKShtb2RlKSwgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobm1hc2spLCAobG9uZykobWF4bm9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWlncmF0ZV9wYWdlcyhwaWQsIG1heG5vZGUsIGZyb20sIHRvKSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taWdyYXRlX3BhZ2VzKChsb25nKShwaWQpLCAobG9uZykobWF4bm9kZSksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmcm9tKSwgKGxvbmcpKHRvKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWlncmF0ZV9wYWdlcyhyZXMsIHBpZCwgbWF4bm9kZSwgZnJvbSwgdG8pICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taWdyYXRlX3BhZ2VzKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykocGlkKSwgKGxvbmcpKG1heG5vZGUpLCAobG9uZykoZnJvbSksIChsb25nKSh0bykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW92ZV9wYWdlcyhwaWQsIG5yX3BhZ2VzLCBwYWdlcywgbm9kZXMsICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb3ZlX3BhZ2VzKChsb25nKShwaWQpLCAobG9uZykobnJfcGFnZXMpLCAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShwYWdlcyksIChsb25nKShub2RlcyksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdGF0dXMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tb3ZlX3BhZ2VzKHJlcywgcGlkLCBucl9wYWdlcywgcGFnZXMsIG5vZGVzLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cywgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21vdmVfcGFnZXMocmVzLCAobG9uZykocGlkKSwgKGxvbmcpKG5yX3BhZ2VzKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHBhZ2VzKSwgKGxvbmcpKG5vZGVzKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHN0YXR1cyksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWJpbmQoc3RhcnQsIGxlbiwgbW9kZSwgbm1hc2ssIG1heG5vZGUsIGZsYWdzKSBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tYmluZCgobG9uZykoc3RhcnQpLCAobG9uZykobGVuKSwgKGxvbmcpKG1vZGUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobm1hc2spLCAobG9uZykobWF4bm9kZSksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tYmluZChyZXMsIHN0YXJ0LCBsZW4sIG1vZGUsIG5tYXNrLCBtYXhub2RlLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21iaW5kKHJlcywgKGxvbmcpKHN0YXJ0KSwgKGxvbmcpKGxlbiksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSwgKGxvbmcpKG5tYXNrKSwgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtYXhub2RlKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRfbWVtcG9saWN5KHBvbGljeSwgbm1hc2ssIG1heG5vZGUsIGFkZHIsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldF9tZW1wb2xpY3koKGxvbmcpKHBvbGljeSksIChsb25nKShubWFzayksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG1heG5vZGUpLCAobG9uZykoYWRkciksICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0X21lbXBvbGljeShyZXMsIHBvbGljeSwgbm1hc2ssIG1heG5vZGUsICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyLCBmbGFncykgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRfbWVtcG9saWN5KHJlcywgKGxvbmcpKHBvbGljeSksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShubWFzayksIChsb25nKShtYXhub2RlKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhZGRyKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbm90aWZ5X2luaXQoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfaW5pdCgpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2lub3RpZnlfaW5pdChyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW5vdGlmeV9pbml0KHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbm90aWZ5X2luaXQxKGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfaW5pdDEoKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW5vdGlmeV9pbml0MShyZXMsIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X2luaXQxKHJlcywgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbm90aWZ5X2FkZF93YXRjaChmZCwgcGF0aCwgbWFzaykgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfYWRkX3dhdGNoKChsb25nKShmZCksIChsb25nKShwYXRoKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW5vdGlmeV9hZGRfd2F0Y2gocmVzLCBmZCwgcGF0aCwgbWFzaykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X2FkZF93YXRjaChyZXMsIChsb25nKShmZCksICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocGF0aCksIChsb25nKShtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbm90aWZ5X3JtX3dhdGNoKGZkLCB3ZCkgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfcm1fd2F0Y2goKGxvbmcpKGZkKSwgKGxvbmcpKHdkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW5vdGlmeV9ybV93YXRjaChyZXMsIGZkLCB3ZCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X3JtX3dhdGNoKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKHdkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zcHVfcnVuKGZkLCB1bnBjLCB1c3RhdHVzKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NwdV9ydW4oKGxvbmcpKGZkKSwgKGxvbmcpKHVucGMpLCAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzdGF0dXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zcHVfcnVuKHJlcywgZmQsIHVucGMsIHVzdGF0dXMpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NwdV9ydW4ocmVzLCAobG9uZykoZmQpLCAobG9uZykodW5wYyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzdGF0dXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NwdV9jcmVhdGUobmFtZSwgZmxhZ3MsIG1vZGUsIGZkKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3B1X2NyZWF0ZSgobG9uZykobmFtZSksIChsb25nKShmbGFncyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NwdV9jcmVhdGUocmVzLCBuYW1lLCBmbGFncywgbW9kZSwgZmQpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3B1X2NyZWF0ZShyZXMsIChsb25nKShuYW1lKSwgKGxvbmcpKGZsYWdzKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbWtub2RhdChkZmQsIGZpbGVuYW1lLCBtb2RlLCBkZXYpICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta25vZGF0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSwgKGxvbmcpKGRldikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rbm9kYXQocmVzLCBkZmQsIGZpbGVuYW1lLCBtb2RlLCBkZXYpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtub2RhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSksIChsb25nKShkZXYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21rZGlyYXQoZGZkLCBwYXRobmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXJhdCgobG9uZykoZGZkKSwgKGxvbmcpKHBhdGhuYW1lKSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21rZGlyYXQocmVzLCBkZmQsIHBhdGhuYW1lLCBtb2RlKSAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXJhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykocGF0aG5hbWUpLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdW5saW5rYXQoZGZkLCBwYXRobmFtZSwgZmxhZykgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmthdCgobG9uZykoZGZkKSwgKGxvbmcpKHBhdGhuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VubGlua2F0KHJlcywgZGZkLCBwYXRobmFtZSwgZmxhZykgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5saW5rYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKHBhdGhuYW1lKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5bWxpbmthdChvbGRuYW1lLCBuZXdkZmQsIG5ld25hbWUpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3ltbGlua2F0KChsb25nKShvbGRuYW1lKSwgKGxvbmcpKG5ld2RmZCksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc3ltbGlua2F0KHJlcywgb2xkbmFtZSwgbmV3ZGZkLCBuZXduYW1lKSAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW1saW5rYXQocmVzLCAobG9uZykob2xkbmFtZSksICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld2RmZCksIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9saW5rYXQob2xkZGZkLCBvbGRuYW1lLCBuZXdkZmQsIG5ld25hbWUsICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xpbmthdCgobG9uZykob2xkZGZkKSwgKGxvbmcpKG9sZG5hbWUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3ZGZkKSwgKGxvbmcpKG5ld25hbWUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9saW5rYXQocmVzLCBvbGRkZmQsIG9sZG5hbWUsIG5ld2RmZCwgbmV3bmFtZSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpbmthdChyZXMsIChsb25nKShvbGRkZmQpLCAobG9uZykob2xkbmFtZSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3ZGZkKSwgKGxvbmcpKG5ld25hbWUpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlbmFtZWF0KG9sZGRmZCwgb2xkbmFtZSwgbmV3ZGZkLCBuZXduYW1lKSAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVuYW1lYXQoKGxvbmcpKG9sZGRmZCksIChsb25nKShvbGRuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5ld2RmZCksIChsb25nKShuZXduYW1lKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVuYW1lYXQocmVzLCBvbGRkZmQsIG9sZG5hbWUsIG5ld2RmZCwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3bmFtZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW5hbWVhdChyZXMsIChsb25nKShvbGRkZmQpLCAobG9uZykob2xkbmFtZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobmV3ZGZkKSwgKGxvbmcpKG5ld25hbWUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z1dGltZXNhdChkZmQsIGZpbGVuYW1lLCB1dGltZXMpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnV0aW1lc2F0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1dGltZXMpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mdXRpbWVzYXQocmVzLCBkZmQsIGZpbGVuYW1lLCB1dGltZXMpICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Z1dGltZXNhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodXRpbWVzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mYWNjZXNzYXQoZGZkLCBmaWxlbmFtZSwgbW9kZSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZhY2Nlc3NhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZhY2Nlc3NhdChyZXMsIGRmZCwgZmlsZW5hbWUsIG1vZGUpICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmFjY2Vzc2F0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mY2htb2RhdChkZmQsIGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG1vZGF0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNobW9kYXQocmVzLCBkZmQsIGZpbGVuYW1lLCBtb2RlKSAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2RhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobW9kZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmNob3duYXQoZGZkLCBmaWxlbmFtZSwgdXNlciwgZ3JvdXAsIGZsYWcpICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hvd25hdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodXNlciksIChsb25nKShncm91cCksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZjaG93bmF0KHJlcywgZGZkLCBmaWxlbmFtZSwgdXNlciwgZ3JvdXAsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHVzZXIpLCAobG9uZykoZ3JvdXApLCAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29wZW5hdChkZmQsIGZpbGVuYW1lLCBmbGFncywgbW9kZSkgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3BlbmF0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncyksIChsb25nKShtb2RlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb3BlbmF0KHJlcywgZGZkLCBmaWxlbmFtZSwgZmxhZ3MsIG1vZGUpICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZsYWdzKSwgKGxvbmcpKG1vZGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX25ld2ZzdGF0YXQoZGZkLCBmaWxlbmFtZSwgc3RhdGJ1ZiwgZmxhZykgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3ZnN0YXRhdCgobG9uZykoZGZkKSwgKGxvbmcpKGZpbGVuYW1lKSwgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3RhdGJ1ZiksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbmV3ZnN0YXRhdChyZXMsIGRmZCwgZmlsZW5hbWUsIHN0YXRidWYsIGZsYWcpIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdmc3RhdGF0KHJlcywgKGxvbmcpKGRmZCksIChsb25nKShmaWxlbmFtZSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdGF0YnVmKSwgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZzdGF0YXQ2NChkZmQsIGZpbGVuYW1lLCBzdGF0YnVmLCBmbGFnKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXRhdDY0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzdGF0YnVmKSwgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mc3RhdGF0NjQocmVzLCBkZmQsIGZpbGVuYW1lLCBzdGF0YnVmLCBmbGFnKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0YXQ2NChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc3RhdGJ1ZiksIChsb25nKShmbGFnKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9yZWFkbGlua2F0KGRmZCwgcGF0aCwgYnVmLCBidWZzaXopICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWRsaW5rYXQoKGxvbmcpKGRmZCksIChsb25nKShwYXRoKSwgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZiksIChsb25nKShidWZzaXopKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkbGlua2F0KHJlcywgZGZkLCBwYXRoLCBidWYsIGJ1ZnNpeikgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYWRsaW5rYXQocmVzLCAobG9uZykoZGZkKSwgKGxvbmcpKHBhdGgpLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGJ1ZiksIChsb25nKShidWZzaXopKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3V0aW1lbnNhdChkZmQsIGZpbGVuYW1lLCB1dGltZXMsIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdXRpbWVuc2F0KChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKSh1dGltZXMpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91dGltZW5zYXQocmVzLCBkZmQsIGZpbGVuYW1lLCB1dGltZXMsIGZsYWdzKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lbnNhdChyZXMsIChsb25nKShkZmQpLCAobG9uZykoZmlsZW5hbWUpLCAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykodXRpbWVzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bnNoYXJlKHVuc2hhcmVfZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Vuc2hhcmUoKGxvbmcpKHVuc2hhcmVfZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF91bnNoYXJlKHJlcywgdW5zaGFyZV9mbGFncykgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Vuc2hhcmUocmVzLCAobG9uZykodW5zaGFyZV9mbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3BsaWNlKGZkX2luLCBvZmZfaW4sIGZkX291dCwgb2ZmX291dCwgbGVuLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zcGxpY2UoKGxvbmcpKGZkX2luKSwgKGxvbmcpKG9mZl9pbiksICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZkX291dCksIChsb25nKShvZmZfb3V0KSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGxlbiksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NwbGljZShyZXMsIGZkX2luLCBvZmZfaW4sIGZkX291dCwgb2ZmX291dCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3BsaWNlKHJlcywgKGxvbmcpKGZkX2luKSwgKGxvbmcpKG9mZl9pbiksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmZF9vdXQpLCAobG9uZykob2ZmX291dCksICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShsZW4pLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Ztc3BsaWNlKGZkLCBpb3YsIG5yX3NlZ3MsIGZsYWdzKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdm1zcGxpY2UoKGxvbmcpKGZkKSwgKGxvbmcpKGlvdiksICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKG5yX3NlZ3MpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF92bXNwbGljZShyZXMsIGZkLCBpb3YsIG5yX3NlZ3MsIGZsYWdzKSAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Ztc3BsaWNlKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKGlvdiksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShucl9zZWdzKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90ZWUoZmRpbiwgZmRvdXQsIGxlbiwgZmxhZ3MpICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RlZSgobG9uZykoZmRpbiksIChsb25nKShmZG91dCksIChsb25nKShsZW4pLCAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90ZWUocmVzLCBmZGluLCBmZG91dCwgbGVuLCBmbGFncykgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RlZShyZXMsIChsb25nKShmZGluKSwgKGxvbmcpKGZkb3V0KSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobGVuKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRfcm9idXN0X2xpc3QocGlkLCBoZWFkX3B0ciwgbGVuX3B0cikgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldF9yb2J1c3RfbGlzdCgobG9uZykocGlkKSwgKGxvbmcpKGhlYWRfcHRyKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykobGVuX3B0cikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldF9yb2J1c3RfbGlzdChyZXMsIHBpZCwgaGVhZF9wdHIsIGxlbl9wdHIpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0X3JvYnVzdF9saXN0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHBpZCksIChsb25nKShoZWFkX3B0ciksIChsb25nKShsZW5fcHRyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRfcm9idXN0X2xpc3QoaGVhZCwgbGVuKSAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF9yb2J1c3RfbGlzdCgobG9uZykoaGVhZCksIChsb25nKShsZW4pKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRfcm9idXN0X2xpc3QocmVzLCBoZWFkLCBsZW4pICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldF9yb2J1c3RfbGlzdChyZXMsIChsb25nKShoZWFkKSwgKGxvbmcpKGxlbikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Y3B1KGNwdSwgbm9kZSwgY2FjaGUpICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRjcHUoKGxvbmcpKGNwdSksIChsb25nKShub2RlKSwgKGxvbmcpKGNhY2hlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0Y3B1KHJlcywgY3B1LCBub2RlLCBjYWNoZSkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRjcHUocmVzLCAobG9uZykoY3B1KSwgKGxvbmcpKG5vZGUpLCAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGNhY2hlKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWduYWxmZCh1ZmQsIHVzZXJfbWFzaywgc2l6ZW1hc2spICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ25hbGZkKChsb25nKSh1ZmQpLCAobG9uZykodXNlcl9tYXNrKSwgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShzaXplbWFzaykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NpZ25hbGZkKHJlcywgdWZkLCB1c2VyX21hc2ssIHNpemVtYXNrKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnbmFsZmQocmVzLCAobG9uZykodWZkKSwgKGxvbmcpKHVzZXJfbWFzayksICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHNpemVtYXNrKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWduYWxmZDQodWZkLCB1c2VyX21hc2ssIHNpemVtYXNrLCBmbGFncykgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ25hbGZkNCgobG9uZykodWZkKSwgKGxvbmcpKHVzZXJfbWFzayksICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZW1hc2spLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWduYWxmZDQocmVzLCB1ZmQsIHVzZXJfbWFzaywgc2l6ZW1hc2ssICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ25hbGZkNChyZXMsIChsb25nKSh1ZmQpLCAobG9uZykodXNlcl9tYXNrKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoc2l6ZW1hc2spLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyZmRfY3JlYXRlKGNsb2NraWQsIGZsYWdzKSAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJmZF9jcmVhdGUoKGxvbmcpKGNsb2NraWQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF90aW1lcmZkX2NyZWF0ZShyZXMsIGNsb2NraWQsIGZsYWdzKSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyZmRfY3JlYXRlKHJlcywgKGxvbmcpKGNsb2NraWQpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfdGltZXJmZF9zZXR0aW1lKHVmZCwgZmxhZ3MsIHV0bXIsIG90bXIpICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcmZkX3NldHRpbWUoKGxvbmcpKHVmZCksIChsb25nKShmbGFncyksICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHV0bXIpLCAobG9uZykob3RtcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyZmRfc2V0dGltZShyZXMsIHVmZCwgZmxhZ3MsIHV0bXIsIG90bXIpICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJmZF9zZXR0aW1lKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHVmZCksIChsb25nKShmbGFncyksIChsb25nKSh1dG1yKSwgKGxvbmcpKG90bXIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3RpbWVyZmRfZ2V0dGltZSh1ZmQsIG90bXIpICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXJmZF9nZXR0aW1lKChsb25nKSh1ZmQpLCAobG9uZykob3RtcikpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RpbWVyZmRfZ2V0dGltZShyZXMsIHVmZCwgb3RtcikgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJmZF9nZXR0aW1lKHJlcywgKGxvbmcpKHVmZCksIChsb25nKShvdG1yKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ldmVudGZkKGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V2ZW50ZmQoKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXZlbnRmZChyZXMsIGNvdW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ldmVudGZkKHJlcywgKGxvbmcpKGNvdW50KSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ldmVudGZkMihjb3VudCwgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V2ZW50ZmQyKChsb25nKShjb3VudCksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V2ZW50ZmQyKHJlcywgY291bnQsIGZsYWdzKSAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXZlbnRmZDIocmVzLCAobG9uZykoY291bnQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZF9yZWFkZGlyKGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX3JlYWRkaXIoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGRfcmVhZGRpcihyZXMsIGFyZzAsIGFyZzEsIGFyZzIpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZF9yZWFkZGlyKHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wc2VsZWN0NihhcmcwLCBhcmcxLCBhcmcyLCBhcmczLCBhcmc0LCBhcmc1KSAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BzZWxlY3Q2KChsb25nKShhcmcwKSwgKGxvbmcpKGFyZzEpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSwgKGxvbmcpKGFyZzUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wc2VsZWN0NihyZXMsIGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmc1KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZWxlY3Q2KHJlcywgKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmcyKSwgKGxvbmcpKGFyZzMpLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nKShhcmc0KSwgKGxvbmcpKGFyZzUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Bwb2xsKGFyZzAsIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHBvbGwoKGxvbmcpKGFyZzApLCAobG9uZykoYXJnMSksIChsb25nKShhcmcyKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzMpLCAobG9uZykoYXJnNCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Bwb2xsKHJlcywgYXJnMCwgYXJnMSwgYXJnMiwgYXJnMywgYXJnNCkgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHBvbGwocmVzLCAobG9uZykoYXJnMCksIChsb25nKShhcmcxKSwgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzIpLCAobG9uZykoYXJnMyksICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGFyZzQpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3N5bmNmcyhmZCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3luY2ZzKChsb25nKShmZCkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3N5bmNmcyhyZXMsIGZkKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3luY2ZzKHJlcywgKGxvbmcpKGZkKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wZXJmX2V2ZW50X29wZW4oYXR0cl91cHRyLCBwaWQsIGNwdSwgZ3JvdXBfZmQsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BlcmZfZXZlbnRfb3BlbigobG9uZykoYXR0cl91cHRyKSwgKGxvbmcpKHBpZCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoY3B1KSwgKGxvbmcpKGdyb3VwX2ZkKSwgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wZXJmX2V2ZW50X29wZW4ocmVzLCBhdHRyX3VwdHIsIHBpZCwgY3B1LCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXBfZmQsIGZsYWdzKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BlcmZfZXZlbnRfb3BlbiggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShhdHRyX3VwdHIpLCAobG9uZykocGlkKSwgKGxvbmcpKGNwdSksIChsb25nKShncm91cF9mZCksICAgICAgXAogICAgICAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21tYXBfcGdvZmYoYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsIHBnb2ZmKSAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbW1hcF9wZ29mZigobG9uZykoYWRkciksIChsb25nKShsZW4pLCAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykocHJvdCksIChsb25nKShmbGFncyksICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZykoZmQpLCAobG9uZykocGdvZmYpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbWFwX3Bnb2ZmKHJlcywgYWRkciwgbGVuLCBwcm90LCBmbGFncywgZmQsICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnb2ZmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21tYXBfcGdvZmYocmVzLCAobG9uZykoYWRkciksIChsb25nKShsZW4pLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKHByb3QpLCAobG9uZykoZmxhZ3MpLCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpKGZkKSwgKGxvbmcpKHBnb2ZmKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRfbW1hcChhcmcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZF9tbWFwKChsb25nKShhcmcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGRfbW1hcChyZXMsIGFyZykgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZF9tbWFwKHJlcywgKGxvbmcpKGFyZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbmFtZV90b19oYW5kbGVfYXQoZGZkLCBuYW1lLCBoYW5kbGUsIG1udF9pZCwgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZykgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uYW1lX3RvX2hhbmRsZV9hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShkZmQpLCAobG9uZykobmFtZSksIChsb25nKShoYW5kbGUpLCAobG9uZykobW50X2lkKSwgKGxvbmcpKGZsYWcpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9uYW1lX3RvX2hhbmRsZV9hdChyZXMsIGRmZCwgbmFtZSwgaGFuZGxlLCAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbnRfaWQsIGZsYWcpICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25hbWVfdG9faGFuZGxlX2F0KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICByZXMsIChsb25nKShkZmQpLCAobG9uZykobmFtZSksIChsb25nKShoYW5kbGUpLCAobG9uZykobW50X2lkKSwgICAgICAgICAgXAogICAgICAobG9uZykoZmxhZykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb3Blbl9ieV9oYW5kbGVfYXQobW91bnRkaXJmZCwgaGFuZGxlLCBmbGFncykgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vcGVuX2J5X2hhbmRsZV9hdCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShtb3VudGRpcmZkKSwgKGxvbmcpKGhhbmRsZSksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29wZW5fYnlfaGFuZGxlX2F0KHJlcywgbW91bnRkaXJmZCwgaGFuZGxlLCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzKSAgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb3Blbl9ieV9oYW5kbGVfYXQoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKG1vdW50ZGlyZmQpLCAobG9uZykoaGFuZGxlKSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRucyhmZCwgbnN0eXBlKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldG5zKChsb25nKShmZCksIChsb25nKShuc3R5cGUpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRucyhyZXMsIGZkLCBuc3R5cGUpICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldG5zKHJlcywgKGxvbmcpKGZkKSwgKGxvbmcpKG5zdHlwZSkpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJvY2Vzc192bV9yZWFkdihwaWQsIGx2ZWMsIGxpb3ZjbnQsIHJ2ZWMsICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaW92Y250LCBmbGFncykgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcm9jZXNzX3ZtX3JlYWR2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShwaWQpLCAobG9uZykobHZlYyksIChsb25nKShsaW92Y250KSwgKGxvbmcpKHJ2ZWMpLCAgICAgICAgICAgICAgICBcCiAgICAgIChsb25nKShyaW92Y250KSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcHJvY2Vzc192bV9yZWFkdihyZXMsIHBpZCwgbHZlYywgbGlvdmNudCwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydmVjLCByaW92Y250LCBmbGFncykgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcm9jZXNzX3ZtX3JlYWR2KCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgcmVzLCAobG9uZykocGlkKSwgKGxvbmcpKGx2ZWMpLCAobG9uZykobGlvdmNudCksIChsb25nKShydmVjKSwgICAgICAgICAgIFwKICAgICAgKGxvbmcpKHJpb3ZjbnQpLCAobG9uZykoZmxhZ3MpKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Byb2Nlc3Nfdm1fd3JpdGV2KHBpZCwgbHZlYywgbGlvdmNudCwgcnZlYywgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpb3ZjbnQsIGZsYWdzKSAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvY2Vzc192bV93cml0ZXYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocGlkKSwgKGxvbmcpKGx2ZWMpLCAobG9uZykobGlvdmNudCksIChsb25nKShydmVjKSwgICAgICAgICAgICAgICAgXAogICAgICAobG9uZykocmlvdmNudCksIChsb25nKShmbGFncykpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Byb2Nlc3Nfdm1fd3JpdGV2KHJlcywgcGlkLCBsdmVjLCBsaW92Y250LCAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ2ZWMsIHJpb3ZjbnQsIGZsYWdzKSAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJvY2Vzc192bV93cml0ZXYoICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHJlcywgKGxvbmcpKHBpZCksIChsb25nKShsdmVjKSwgKGxvbmcpKGxpb3ZjbnQpLCAobG9uZykocnZlYyksICAgICAgICAgICBcCiAgICAgIChsb25nKShyaW92Y250KSwgKGxvbmcpKGZsYWdzKSkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mb3JrKCkgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKCkKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZm9yayhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mb3JrKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV92Zm9yaygpIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmZvcmsoKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF92Zm9yayhyZXMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Zmb3JrKHJlcykKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdhY3Rpb24oc2lnbnVtLCBhY3QsIG9sZGFjdCkgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ2FjdGlvbigobG9uZylzaWdudW0sIChsb25nKWFjdCwgKGxvbmcpb2xkYWN0KQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWdhY3Rpb24ocmVzLCBzaWdudW0sIGFjdCwgb2xkYWN0KSAgICAgICAgICAgXAogIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NpZ2FjdGlvbihyZXMsIChsb25nKXNpZ251bSwgKGxvbmcpYWN0LCAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZylvbGRhY3QpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lnYWN0aW9uKHNpZ251bSwgYWN0LCBvbGRhY3QsIHN6KSAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdhY3Rpb24oKGxvbmcpc2lnbnVtLCAobG9uZylhY3QsICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpb2xkYWN0LCAobG9uZylzeikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcnRfc2lnYWN0aW9uKHJlcywgc2lnbnVtLCBhY3QsIG9sZGFjdCwgc3opICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWdhY3Rpb24ocmVzLCAobG9uZylzaWdudW0sIChsb25nKWFjdCwgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcpb2xkYWN0LCAobG9uZylzeikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zaWdhbHRzdGFjayhzcywgb3NzKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ2FsdHN0YWNrKChsb25nKXNzLCAobG9uZylvc3MpCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NpZ2FsdHN0YWNrKHJlcywgc3MsIG9zcykgICAgICAgICAgICAgICAgICAgICBcCiAgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lnYWx0c3RhY2socmVzLCAobG9uZylzcywgKGxvbmcpb3NzKQoKLy8gQW5kIG5vdyBhIGZldyBzeXNjYWxscyB3ZSBkb24ndCBoYW5kbGUgeWV0LgojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Fmc19zeXNjYWxsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9hcmNoX3ByY3RsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9icmVhayguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2hvd24zMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfY2xvbmUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2NyZWF0ZV9tb2R1bGUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Vwb2xsX2N0bF9vbGQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Vwb2xsX3dhaXRfb2xkKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9leGVjdmUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZhZHZpc2U2NCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZmFkdmlzZTY0XzY0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mYWxsb2NhdGUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Zhbm90aWZ5X2luaXQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Zhbm90aWZ5X21hcmsoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ZjaG93bjMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9mdGltZSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZnRydW5jYXRlNjQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2Z1dGV4KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRlZ2lkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGV1aWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0Z2lkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldGdyb3VwczMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRfa2VybmVsX3N5bXMoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHBtc2coLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2dldHJlc2dpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXRyZXN1aWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ2V0X3RocmVhZF9hcmVhKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9nZXR1aWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfZ3R0eSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaWRsZSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW9wbCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbGNob3duMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX19sbHNlZWsoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2xvY2soLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX21hZHZpc2UxKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbWFwKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9tbWFwMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbW9kaWZ5X2xkdCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfbXB4KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fbmV3c2VsZWN0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9uZnNzZXJ2Y3RsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRmc3RhdCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfb2xkbHN0YXQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX29sZG9sZHVuYW1lKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9vbGRzdGF0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wcmN0bCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJvZiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcHJvZmlsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9wdXRwbXNnKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9xdWVyeV9tb2R1bGUoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3JlYWRhaGVhZCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcmVhZGRpciguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfcnRfc2lncmV0dXJuKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9ydF9zaWdzdXNwZW5kKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZWN1cml0eSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZnNnaWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0ZnN1aWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0Z2lkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldGdyb3VwczMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZWdpZDMyKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9zZXRyZXNnaWQzMiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0cmVzdWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldHJldWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NldF90aHJlYWRfYXJlYSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2V0dWlkMzIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3NpZ3JldHVybiguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc2lnc3VzcGVuZCguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3R0eSguLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfc3luY19maWxlX3JhbmdlKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9fc3lzY3RsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90cnVuY2F0ZTY0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV90dXhjYWxsKC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91Z2V0cmxpbWl0KC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV91bGltaXQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3Vtb3VudDIoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ZtODYoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ZtODZvbGQoLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX3ZzZXJ2ZXIoLi4uKQoKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfYWZzX3N5c2NhbGwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2FyY2hfcHJjdGwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2JyZWFrKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jaG93bjMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9jbG9uZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfY3JlYXRlX21vZHVsZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfY3RsX29sZChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZXBvbGxfd2FpdF9vbGQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2V4ZWN2ZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmFkdmlzZTY0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mYWR2aXNlNjRfNjQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ZhbGxvY2F0ZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmFub3RpZnlfaW5pdChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmFub3RpZnlfbWFyayhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZmNob3duMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2Z0aW1lKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9mdHJ1bmNhdGU2NChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZnV0ZXgocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldGVnaWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0ZXVpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRnaWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0Z3JvdXBzMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldF9rZXJuZWxfc3ltcyhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cG1zZyhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfZ2V0cmVzZ2lkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHJlc3VpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9nZXRfdGhyZWFkX2FyZWEocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2dldHVpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ndHR5KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pZGxlKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pb3BsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9sY2hvd24zMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfX2xsc2VlayhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbG9jayhyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfbWFkdmlzZTEocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X21tYXAyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tbWFwKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tb2RpZnlfbGR0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9tcHgocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19uZXdzZWxlY3QocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X25mc3NlcnZjdGwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZGZzdGF0KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9vbGRsc3RhdChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfb2xkb2xkdW5hbWUocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X29sZHN0YXQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3ByY3RsKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9wcm9maWwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3Byb2YocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3B1dHBtc2cocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3F1ZXJ5X21vZHVsZShyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfcmVhZGFoZWFkKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9yZWFkZGlyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9ydF9zaWdyZXR1cm4ocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3J0X3NpZ3N1c3BlbmQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NlY3VyaXR5KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRmc2dpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRmc3VpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRnaWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0Z3JvdXBzMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlZ2lkMzIocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3NldHJlc2dpZDMyKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXRyZXN1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0cmV1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2V0X3RocmVhZF9hcmVhKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zZXR1aWQzMihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfc2lncmV0dXJuKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zaWdzdXNwZW5kKHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zdHR5KHJlcywgLi4uKQojZGVmaW5lIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9zeW5jX2ZpbGVfcmFuZ2UocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X19zeXNjdGwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3RydW5jYXRlNjQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3R1eGNhbGwocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VnZXRybGltaXQocmVzLCAuLi4pCiNkZWZpbmUgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X3VsaW1pdChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdW1vdW50MihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfdm04Nm9sZChyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3Rfdm04NihyZXMsIC4uLikKI2RlZmluZSBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfdnNlcnZlcihyZXMsIC4uLikKCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgovLyBQcml2YXRlIGRlY2xhcmF0aW9ucy4gRG8gbm90IGNhbGwgZGlyZWN0bHkgZnJvbSB1c2VyIGNvZGUuIFVzZSBtYWNyb3MgYWJvdmUuCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lKGxvbmcgdGxvYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZShsb25nIHJlcywgbG9uZyB0bG9jKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0aW1lKGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3RpbWUobG9uZyByZXMsIGxvbmcgdHB0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR0aW1lb2ZkYXkobG9uZyB0diwgbG9uZyB0eik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0dGltZW9mZGF5KGxvbmcgcmVzLCBsb25nIHR2LCBsb25nIHR6KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHRpbWVvZmRheShsb25nIHR2LCBsb25nIHR6KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR0aW1lb2ZkYXkobG9uZyByZXMsIGxvbmcgdHYsIGxvbmcgdHopOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWRqdGltZXgobG9uZyB0eGNfcCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWRqdGltZXgobG9uZyByZXMsIGxvbmcgdHhjX3ApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGltZXMobG9uZyB0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcyhsb25nIHJlcywgbG9uZyB0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHRpZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHRpZChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9uYW5vc2xlZXAobG9uZyBycXRwLCBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25hbm9zbGVlcChsb25nIHJlcywgbG9uZyBycXRwLCBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWxhcm0obG9uZyBzZWNvbmRzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hbGFybShsb25nIHJlcywgbG9uZyBzZWNvbmRzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHBpZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHBpZChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcGlkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHBpZChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXR1aWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZXVpZCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGV1aWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z2lkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Z2lkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGVnaWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRlZ2lkKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc3VpZChsb25nIHJ1aWQsIGxvbmcgZXVpZCwgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyZXN1aWQobG9uZyByZXMsIGxvbmcgcnVpZCwgbG9uZyBldWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmVzZ2lkKGxvbmcgcmdpZCwgbG9uZyBlZ2lkLCBsb25nIHNnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc2dpZChsb25nIHJlcywgbG9uZyByZ2lkLCBsb25nIGVnaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ2lkKGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZ2lkKGxvbmcgcmVzLCBsb25nIHBpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZ3JwKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cGdycChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRzaWQobG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNpZChsb25nIHJlcywgbG9uZyBwaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Z3JvdXBzKGxvbmcgZ2lkc2V0c2l6ZSwgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdyb3Vwcyhsb25nIHJlcywgbG9uZyBnaWRzZXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwbGlzdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZWdpZChsb25nIHJnaWQsIGxvbmcgZWdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVnaWQobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdpZChsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z2lkKGxvbmcgcmVzLCBsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXVpZChsb25nIHJ1aWQsIGxvbmcgZXVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmV1aWQobG9uZyByZXMsIGxvbmcgcnVpZCwgbG9uZyBldWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHVpZChsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0dWlkKGxvbmcgcmVzLCBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXN1aWQobG9uZyBydWlkLCBsb25nIGV1aWQsIGxvbmcgc3VpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVzdWlkKGxvbmcgcmVzLCBsb25nIHJ1aWQsIGxvbmcgZXVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlc2dpZChsb25nIHJnaWQsIGxvbmcgZWdpZCwgbG9uZyBzZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXNnaWQobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0ZnN1aWQobG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzdWlkKGxvbmcgcmVzLCBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRmc2dpZChsb25nIGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0ZnNnaWQobG9uZyByZXMsIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHBnaWQobG9uZyBwaWQsIGxvbmcgcGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cGdpZChsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgcGdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzaWQoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzaWQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Z3JvdXBzKGxvbmcgZ2lkc2V0c2l6ZSwgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGdyb3Vwcyhsb25nIHJlcywgbG9uZyBnaWRzZXRzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwbGlzdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9hY2N0KGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjdChsb25nIHJlcywgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NhcGdldChsb25nIGhlYWRlciwgbG9uZyBkYXRhcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jYXBnZXQobG9uZyByZXMsIGxvbmcgaGVhZGVyLCBsb25nIGRhdGFwdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2Fwc2V0KGxvbmcgaGVhZGVyLCBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NhcHNldChsb25nIHJlcywgbG9uZyBoZWFkZXIsIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wZXJzb25hbGl0eShsb25nIHBlcnNvbmFsaXR5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wZXJzb25hbGl0eShsb25nIHJlcywgbG9uZyBwZXJzb25hbGl0eSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdwZW5kaW5nKGxvbmcgc2V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdwZW5kaW5nKGxvbmcgcmVzLCBsb25nIHNldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWdwcm9jbWFzayhsb25nIGhvdywgbG9uZyBzZXQsIGxvbmcgb3NldCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2lncHJvY21hc2sobG9uZyByZXMsIGxvbmcgaG93LCBsb25nIHNldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9zZXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0aXRpbWVyKGxvbmcgd2hpY2gsIGxvbmcgdmFsdWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGl0aW1lcihsb25nIHJlcywgbG9uZyB3aGljaCwgbG9uZyB2YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRpdGltZXIobG9uZyB3aGljaCwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0aXRpbWVyKGxvbmcgcmVzLCBsb25nIHdoaWNoLCBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG92YWx1ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9jcmVhdGUobG9uZyB3aGljaF9jbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVyX2V2ZW50X3NwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjcmVhdGVkX3RpbWVyX2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9jcmVhdGUobG9uZyByZXMsIGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGltZXJfZXZlbnRfc3BlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjcmVhdGVkX3RpbWVyX2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldHRpbWUobG9uZyB0aW1lcl9pZCwgbG9uZyBzZXR0aW5nKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcl9nZXR0aW1lKGxvbmcgcmVzLCBsb25nIHRpbWVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzZXR0aW5nKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyX2dldG92ZXJydW4obG9uZyB0aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZ2V0b3ZlcnJ1bihsb25nIHJlcywgbG9uZyB0aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9zZXR0aW1lKGxvbmcgdGltZXJfaWQsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3X3NldHRpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2xkX3NldHRpbmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyX3NldHRpbWUobG9uZyByZXMsIGxvbmcgdGltZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIG5ld19zZXR0aW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvbGRfc2V0dGluZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcl9kZWxldGUobG9uZyB0aW1lcl9pZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGltZXJfZGVsZXRlKGxvbmcgcmVzLCBsb25nIHRpbWVyX2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX3NldHRpbWUobG9uZyB3aGljaF9jbG9jaywgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvY2tfc2V0dGltZShsb25nIHJlcywgbG9uZyB3aGljaF9jbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfZ2V0dGltZShsb25nIHdoaWNoX2Nsb2NrLCBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19nZXR0aW1lKGxvbmcgcmVzLCBsb25nIHdoaWNoX2Nsb2NrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jbG9ja19hZGp0aW1lKGxvbmcgd2hpY2hfY2xvY2ssIGxvbmcgdHgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX2FkanRpbWUobG9uZyByZXMsIGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHR4KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Nsb2NrX2dldHJlcyhsb25nIHdoaWNoX2Nsb2NrLCBsb25nIHRwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jbG9ja19nZXRyZXMobG9uZyByZXMsIGxvbmcgd2hpY2hfY2xvY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvY2tfbmFub3NsZWVwKGxvbmcgd2hpY2hfY2xvY2ssIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBycXRwLCBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nsb2NrX25hbm9zbGVlcChsb25nIHJlcywgbG9uZyB3aGljaF9jbG9jaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBycXRwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJtdHApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmljZShsb25nIGluY3JlbWVudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmljZShsb25nIHJlcywgbG9uZyBpbmNyZW1lbnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfc2V0c2NoZWR1bGVyKGxvbmcgcGlkLCBsb25nIHBvbGljeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhcmFtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9zZXRzY2hlZHVsZXIobG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvbGljeSwgbG9uZyBwYXJhbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9zZXRwYXJhbShsb25nIHBpZCwgbG9uZyBwYXJhbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfc2V0cGFyYW0obG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGFyYW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0c2NoZWR1bGVyKGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRzY2hlZHVsZXIobG9uZyByZXMsIGxvbmcgcGlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldHBhcmFtKGxvbmcgcGlkLCBsb25nIHBhcmFtKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRwYXJhbShsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYXJhbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9zZXRhZmZpbml0eShsb25nIHBpZCwgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVzZXJfbWFza19wdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX3NldGFmZmluaXR5KGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVzZXJfbWFza19wdHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0YWZmaW5pdHkobG9uZyBwaWQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c2VyX21hc2tfcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zY2hlZF9nZXRhZmZpbml0eShsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c2VyX21hc2tfcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX3lpZWxkKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfeWllbGQobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2NoZWRfZ2V0X3ByaW9yaXR5X21heChsb25nIHBvbGljeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfZ2V0X3ByaW9yaXR5X21heChsb25nIHJlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcG9saWN5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9taW4obG9uZyBwb2xpY3kpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NjaGVkX2dldF9wcmlvcml0eV9taW4obG9uZyByZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvbGljeSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWwobG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBpbnRlcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2NoZWRfcnJfZ2V0X2ludGVydmFsKGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBpbnRlcnZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRwcmlvcml0eShsb25nIHdoaWNoLCBsb25nIHdobywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmljZXZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cHJpb3JpdHkobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmljZXZhbCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwcmlvcml0eShsb25nIHdoaWNoLCBsb25nIHdobyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cHJpb3JpdHkobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgd2hvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NodXRkb3duKGxvbmcgYXJnMCwgbG9uZyBhcmcxKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaHV0ZG93bihsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVib290KGxvbmcgbWFnaWMxLCBsb25nIG1hZ2ljMiwgbG9uZyBjbWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlYm9vdChsb25nIHJlcywgbG9uZyBtYWdpYzEsIGxvbmcgbWFnaWMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVzdGFydF9zeXNjYWxsKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVzdGFydF9zeXNjYWxsKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2tleGVjX2xvYWQobG9uZyBlbnRyeSwgbG9uZyBucl9zZWdtZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzZWdtZW50cywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfa2V4ZWNfbG9hZChsb25nIHJlcywgbG9uZyBlbnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbnJfc2VnbWVudHMsIGxvbmcgc2VnbWVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V4aXQobG9uZyBlcnJvcl9jb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9leGl0KGxvbmcgcmVzLCBsb25nIGVycm9yX2NvZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXhpdF9ncm91cChsb25nIGVycm9yX2NvZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V4aXRfZ3JvdXAobG9uZyByZXMsIGxvbmcgZXJyb3JfY29kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0NChsb25nIHBpZCwgbG9uZyBzdGF0X2FkZHIsIGxvbmcgb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcnUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXQ0KGxvbmcgcmVzLCBsb25nIHBpZCwgbG9uZyBzdGF0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRpb25zLCBsb25nIHJ1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3dhaXRpZChsb25nIHdoaWNoLCBsb25nIHBpZCwgbG9uZyBpbmZvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9wdGlvbnMsIGxvbmcgcnUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dhaXRpZChsb25nIHJlcywgbG9uZyB3aGljaCwgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW5mb3AsIGxvbmcgb3B0aW9ucywgbG9uZyBydSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93YWl0cGlkKGxvbmcgcGlkLCBsb25nIHN0YXRfYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRpb25zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF93YWl0cGlkKGxvbmcgcmVzLCBsb25nIHBpZCwgbG9uZyBzdGF0X2FkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9wdGlvbnMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0X3RpZF9hZGRyZXNzKGxvbmcgdGlkcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRfdGlkX2FkZHJlc3MobG9uZyByZXMsIGxvbmcgdGlkcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2luaXRfbW9kdWxlKGxvbmcgdW1vZCwgbG9uZyBsZW4sIGxvbmcgdWFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2luaXRfbW9kdWxlKGxvbmcgcmVzLCBsb25nIHVtb2QsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdWFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZGVsZXRlX21vZHVsZShsb25nIG5hbWVfdXNlciwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZGVsZXRlX21vZHVsZShsb25nIHJlcywgbG9uZyBuYW1lX3VzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ3Byb2NtYXNrKGxvbmcgaG93LCBsb25nIHNldCwgbG9uZyBvc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF9zaWdwcm9jbWFzayhsb25nIHJlcywgbG9uZyBob3csIGxvbmcgc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3NldCwgbG9uZyBzaWdzZXRzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3J0X3NpZ3BlbmRpbmcobG9uZyBzZXQsIGxvbmcgc2lnc2V0c2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfc2lncGVuZGluZyhsb25nIHJlcywgbG9uZyBzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lndGltZWR3YWl0KGxvbmcgdXRoZXNlLCBsb25nIHVpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXRzLCBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3RpbWVkd2FpdChsb25nIHJlcywgbG9uZyB1dGhlc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdWluZm8sIGxvbmcgdXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfdGdzaWdxdWV1ZWluZm8obG9uZyB0Z2lkLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnLCBsb25nIHVpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ydF90Z3NpZ3F1ZXVlaW5mbyhsb25nIHJlcywgbG9uZyB0Z2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcGlkLCBsb25nIHNpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2tpbGwobG9uZyBwaWQsIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9raWxsKGxvbmcgcmVzLCBsb25nIHBpZCwgbG9uZyBzaWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdGdraWxsKGxvbmcgdGdpZCwgbG9uZyBwaWQsIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90Z2tpbGwobG9uZyByZXMsIGxvbmcgdGdpZCwgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RraWxsKGxvbmcgcGlkLCBsb25nIHNpZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdGtpbGwobG9uZyByZXMsIGxvbmcgcGlkLCBsb25nIHNpZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ydF9zaWdxdWV1ZWluZm8obG9uZyBwaWQsIGxvbmcgc2lnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdWluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3J0X3NpZ3F1ZXVlaW5mbyhsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgc2lnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NnZXRtYXNrKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2dldG1hc2sobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3NldG1hc2sobG9uZyBuZXdtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zc2V0bWFzayhsb25nIHJlcywgbG9uZyBuZXdtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ25hbChsb25nIHNpZywgbG9uZyBoYW5kbGVyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWduYWwobG9uZyByZXMsIGxvbmcgc2lnLCBsb25nIGhhbmRsZXIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGF1c2UoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wYXVzZShsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW5jKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3luYyhsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3luYyhsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3luYyhsb25nIHJlcywgbG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mZGF0YXN5bmMobG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmRhdGFzeW5jKGxvbmcgcmVzLCBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2JkZmx1c2gobG9uZyBmdW5jLCBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2JkZmx1c2gobG9uZyByZXMsIGxvbmcgZnVuYywgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21vdW50KGxvbmcgZGV2X25hbWUsIGxvbmcgZGlyX25hbWUsIGxvbmcgdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MsIGxvbmcgZGF0YSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW91bnQobG9uZyByZXMsIGxvbmcgZGV2X25hbWUsIGxvbmcgZGlyX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0eXBlLCBsb25nIGZsYWdzLCBsb25nIGRhdGEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdW1vdW50KGxvbmcgbmFtZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW1vdW50KGxvbmcgcmVzLCBsb25nIG5hbWUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkdW1vdW50KGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkdW1vdW50KGxvbmcgcmVzLCBsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdHJ1bmNhdGUobG9uZyBwYXRoLCBsb25nIGxlbmd0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdHJ1bmNhdGUobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBsZW5ndGgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnRydW5jYXRlKGxvbmcgZmQsIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mdHJ1bmNhdGUobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbGVuZ3RoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N0YXQobG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3RhdGZzKGxvbmcgcGF0aCwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N0YXRmcyhsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0ZnM2NChsb25nIHBhdGgsIGxvbmcgc3osIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0ZnM2NChsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIHN6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0ZnMobG9uZyBmZCwgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZzdGF0ZnMobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZzdGF0ZnM2NChsb25nIGZkLCBsb25nIHN6LCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXRmczY0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHN6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sc3RhdChsb25nIGZpbGVuYW1lLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzdGF0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIHN0YXRidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXQobG9uZyBmZCwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld3N0YXQobG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXdzdGF0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2xzdGF0KGxvbmcgZmlsZW5hbWUsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3bHN0YXQobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25ld2ZzdGF0KGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbmV3ZnN0YXQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91c3RhdChsb25nIGRldiwgbG9uZyB1YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91c3RhdChsb25nIHJlcywgbG9uZyBkZXYsIGxvbmcgdWJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zdGF0NjQobG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zdGF0NjQobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc3RhdDY0KGxvbmcgZmQsIGxvbmcgc3RhdGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnN0YXQ2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xzdGF0NjQobG9uZyBmaWxlbmFtZSwgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sc3RhdDY0KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHhhdHRyKGxvbmcgcGF0aCwgbG9uZyBuYW1lLCBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXR4YXR0cihsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB2YWx1ZSwgbG9uZyBzaXplLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xzZXR4YXR0cihsb25nIHBhdGgsIGxvbmcgbmFtZSwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xzZXR4YXR0cihsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUsIGxvbmcgc2l6ZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mc2V0eGF0dHIobG9uZyBmZCwgbG9uZyBuYW1lLCBsb25nIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnNldHhhdHRyKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUsIGxvbmcgc2l6ZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR4YXR0cihsb25nIHBhdGgsIGxvbmcgbmFtZSwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmFsdWUsIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sZ2V0eGF0dHIobG9uZyBwYXRoLCBsb25nIG5hbWUsIGxvbmcgdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sZ2V0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbHVlLCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmdldHhhdHRyKGxvbmcgZmQsIGxvbmcgbmFtZSwgbG9uZyB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZnZXR4YXR0cihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZhbHVlLCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlzdHhhdHRyKGxvbmcgcGF0aCwgbG9uZyBsaXN0LCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpc3R4YXR0cihsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIGxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9sbGlzdHhhdHRyKGxvbmcgcGF0aCwgbG9uZyBsaXN0LCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xsaXN0eGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZsaXN0eGF0dHIobG9uZyBmZCwgbG9uZyBsaXN0LCBsb25nIHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZsaXN0eGF0dHIobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZW1vdmV4YXR0cihsb25nIHBhdGgsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVtb3ZleGF0dHIobG9uZyByZXMsIGxvbmcgcGF0aCwgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xyZW1vdmV4YXR0cihsb25nIHBhdGgsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbHJlbW92ZXhhdHRyKGxvbmcgcmVzLCBsb25nIHBhdGgsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mcmVtb3ZleGF0dHIobG9uZyBmZCwgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mcmVtb3ZleGF0dHIobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9icmsobG9uZyBicmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Jyayhsb25nIHJlcywgbG9uZyBicmspOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXByb3RlY3QobG9uZyBzdGFydCwgbG9uZyBsZW4sIGxvbmcgcHJvdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXByb3RlY3QobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcHJvdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcmVtYXAobG9uZyBhZGRyLCBsb25nIG9sZF9sZW4sIGxvbmcgbmV3X2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIG5ld19hZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcmVtYXAobG9uZyByZXMsIGxvbmcgYWRkciwgbG9uZyBvbGRfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld19sZW4sIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3X2FkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVtYXBfZmlsZV9wYWdlcyhsb25nIHN0YXJ0LCBsb25nIHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcHJvdCwgbG9uZyBwZ29mZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVtYXBfZmlsZV9wYWdlcyhsb25nIHJlcywgbG9uZyBzdGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZSwgbG9uZyBwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwZ29mZiwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc3luYyhsb25nIHN0YXJ0LCBsb25nIGxlbiwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXN5bmMobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXVubWFwKGxvbmcgYWRkciwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bm1hcChsb25nIHJlcywgbG9uZyBhZGRyLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tbG9jayhsb25nIHN0YXJ0LCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWxvY2sobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bmxvY2sobG9uZyBzdGFydCwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX211bmxvY2sobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21sb2NrYWxsKGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21sb2NrYWxsKGxvbmcgcmVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX211bmxvY2thbGwoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tdW5sb2NrYWxsKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21hZHZpc2UobG9uZyBzdGFydCwgbG9uZyBsZW4sIGxvbmcgYmVoYXZpb3IpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21hZHZpc2UobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBiZWhhdmlvcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9taW5jb3JlKGxvbmcgc3RhcnQsIGxvbmcgbGVuLCBsb25nIHZlYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWluY29yZShsb25nIHJlcywgbG9uZyBzdGFydCwgbG9uZyBsZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZlYyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9waXZvdF9yb290KGxvbmcgbmV3X3Jvb3QsIGxvbmcgcHV0X29sZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGl2b3Rfcm9vdChsb25nIHJlcywgbG9uZyBuZXdfcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcHV0X29sZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaHJvb3QobG9uZyBmaWxlbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2hyb290KGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rbm9kKGxvbmcgZmlsZW5hbWUsIGxvbmcgbW9kZSwgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21rbm9kKGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGluayhsb25nIG9sZG5hbWUsIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGluayhsb25nIHJlcywgbG9uZyBvbGRuYW1lLCBsb25nIG5ld25hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3ltbGluayhsb25nIG9sZCwgbG9uZyBuZXdfKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeW1saW5rKGxvbmcgcmVzLCBsb25nIG9sZCwgbG9uZyBuZXdfKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VubGluayhsb25nIHBhdGhuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmxpbmsobG9uZyByZXMsIGxvbmcgcGF0aG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVuYW1lKGxvbmcgb2xkbmFtZSwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW5hbWUobG9uZyByZXMsIGxvbmcgb2xkbmFtZSwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2NobW9kKGxvbmcgZmlsZW5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2htb2QobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2QobG9uZyBmZCwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2QobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY250bChsb25nIGZkLCBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjbnRsKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNudGw2NChsb25nIGZkLCBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjbnRsNjQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGlwZShsb25nIGZpbGRlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGlwZShsb25nIHJlcywgbG9uZyBmaWxkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGlwZTIobG9uZyBmaWxkZXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BpcGUyKGxvbmcgcmVzLCBsb25nIGZpbGRlcywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9kdXAobG9uZyBmaWxkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2R1cChsb25nIHJlcywgbG9uZyBmaWxkZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZHVwMihsb25nIG9sZGZkLCBsb25nIG5ld2ZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9kdXAyKGxvbmcgcmVzLCBsb25nIG9sZGZkLCBsb25nIG5ld2ZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2R1cDMobG9uZyBvbGRmZCwgbG9uZyBuZXdmZCwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZHVwMyhsb25nIHJlcywgbG9uZyBvbGRmZCwgbG9uZyBuZXdmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9wZXJtKGxvbmcgZnJvbSwgbG9uZyBudW0sIGxvbmcgb24pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcGVybShsb25nIHJlcywgbG9uZyBmcm9tLCBsb25nIG51bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb2N0bChsb25nIGZkLCBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvY3RsKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGNtZCwgbG9uZyBhcmcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmxvY2sobG9uZyBmZCwgbG9uZyBjbWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Zsb2NrKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGNtZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19zZXR1cChsb25nIG5yX3JlcXMsIGxvbmcgY3R4KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19zZXR1cChsb25nIHJlcywgbG9uZyBucl9yZXFzLCBsb25nIGN0eCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19kZXN0cm95KGxvbmcgY3R4KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pb19kZXN0cm95KGxvbmcgcmVzLCBsb25nIGN0eCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pb19nZXRldmVudHMobG9uZyBjdHhfaWQsIGxvbmcgbWluX25yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbnIsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fZ2V0ZXZlbnRzKGxvbmcgcmVzLCBsb25nIGN0eF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtaW5fbnIsIGxvbmcgbnIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXZlbnRzLCBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fc3VibWl0KGxvbmcgY3R4X2lkLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9fc3VibWl0KGxvbmcgcmVzLCBsb25nIGN0eF9pZCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9fY2FuY2VsKGxvbmcgY3R4X2lkLCBsb25nIGlvY2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyByZXN1bHQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvX2NhbmNlbChsb25nIHJlcywgbG9uZyBjdHhfaWQsIGxvbmcgaW9jYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyByZXN1bHQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZGZpbGUobG9uZyBvdXRfZmQsIGxvbmcgaW5fZmQsIGxvbmcgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VuZGZpbGUobG9uZyByZXMsIGxvbmcgb3V0X2ZkLCBsb25nIGluX2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2Zmc2V0LCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmRmaWxlNjQobG9uZyBvdXRfZmQsIGxvbmcgaW5fZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2Zmc2V0LCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kZmlsZTY0KGxvbmcgcmVzLCBsb25nIG91dF9mZCwgbG9uZyBpbl9mZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2Zmc2V0LCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlYWRsaW5rKGxvbmcgcGF0aCwgbG9uZyBidWYsIGxvbmcgYnVmc2l6KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkbGluayhsb25nIHJlcywgbG9uZyBwYXRoLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1ZnNpeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jcmVhdChsb25nIHBhdGhuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2NyZWF0KGxvbmcgcmVzLCBsb25nIHBhdGhuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3Blbihsb25nIGZpbGVuYW1lLCBsb25nIGZsYWdzLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29wZW4obG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2xvc2UobG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfY2xvc2UobG9uZyByZXMsIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXNzKGxvbmcgZmlsZW5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfYWNjZXNzKGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfdmhhbmd1cCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3ZoYW5ndXAobG9uZyByZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hvd24obG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLCBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaG93bihsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNob3duKGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGNob3duKGxvbmcgcmVzLCBsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmNob3duKGxvbmcgZmQsIGxvbmcgdXNlciwgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfY2hvd24xNihsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nob3duMTYobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZ3JvdXApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGNob3duMTYobG9uZyBmaWxlbmFtZSwgbG9uZyB1c2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGNob3duMTYobG9uZyByZXMsIGxvbmcgZmlsZW5hbWUsIGxvbmcgdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG93bjE2KGxvbmcgZmQsIGxvbmcgdXNlciwgbG9uZyBncm91cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNob3duMTYobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgdXNlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldHJlZ2lkMTYobG9uZyByZ2lkLCBsb25nIGVnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHJlZ2lkMTYobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGdpZDE2KGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRnaWQxNihsb25nIHJlcywgbG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmV1aWQxNihsb25nIHJ1aWQsIGxvbmcgZXVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmV1aWQxNihsb25nIHJlcywgbG9uZyBydWlkLCBsb25nIGV1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0dWlkMTYobG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldHVpZDE2KGxvbmcgcmVzLCBsb25nIHVpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRyZXN1aWQxNihsb25nIHJ1aWQsIGxvbmcgZXVpZCwgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRyZXN1aWQxNihsb25nIHJlcywgbG9uZyBydWlkLCBsb25nIGV1aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHJlc3VpZDE2KGxvbmcgcnVpZCwgbG9uZyBldWlkLCBsb25nIHN1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHJlc3VpZDE2KGxvbmcgcmVzLCBsb25nIHJ1aWQsIGxvbmcgZXVpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmVzZ2lkMTYobG9uZyByZ2lkLCBsb25nIGVnaWQsIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmVzZ2lkMTYobG9uZyByZXMsIGxvbmcgcmdpZCwgbG9uZyBlZ2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2dpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRyZXNnaWQxNihsb25nIHJnaWQsIGxvbmcgZWdpZCwgbG9uZyBzZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRyZXNnaWQxNihsb25nIHJlcywgbG9uZyByZ2lkLCBsb25nIGVnaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGZzdWlkMTYobG9uZyB1aWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzdWlkMTYobG9uZyByZXMsIGxvbmcgdWlkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldGZzZ2lkMTYobG9uZyBnaWQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGZzZ2lkMTYobG9uZyByZXMsIGxvbmcgZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGdyb3VwczE2KGxvbmcgZ2lkc2V0c2l6ZSwgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdyb3VwczE2KGxvbmcgcmVzLCBsb25nIGdpZHNldHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBncm91cGxpc3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0Z3JvdXBzMTYobG9uZyBnaWRzZXRzaXplLCBsb25nIGdyb3VwbGlzdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0Z3JvdXBzMTYobG9uZyByZXMsIGxvbmcgZ2lkc2V0c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwbGlzdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXR1aWQxNigpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHVpZDE2KGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGV1aWQxNigpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGV1aWQxNihsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRnaWQxNigpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGdpZDE2KGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGVnaWQxNigpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGVnaWQxNihsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZShsb25nIGZpbGVuYW1lLCBsb25nIHRpbWVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91dGltZShsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyB0aW1lcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZXMobG9uZyBmaWxlbmFtZSwgbG9uZyB1dGltZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lcyhsb25nIHJlcywgbG9uZyBmaWxlbmFtZSwgbG9uZyB1dGltZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbHNlZWsobG9uZyBmZCwgbG9uZyBvZmZzZXQsIGxvbmcgb3JpZ2luKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9sc2Vlayhsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBvZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcmlnaW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGxzZWVrKGxvbmcgZmQsIGxvbmcgb2Zmc2V0X2hpZ2gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvZmZzZXRfbG93LCBsb25nIHJlc3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9yaWdpbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGxzZWVrKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG9mZnNldF9oaWdoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZnNldF9sb3csIGxvbmcgcmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9yaWdpbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkKGxvbmcgZmQsIGxvbmcgYnVmLCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWFkKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVhZHYobG9uZyBmZCwgbG9uZyB2ZWMsIGxvbmcgdmxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZHYobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF93cml0ZShsb25nIGZkLCBsb25nIGJ1ZiwgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfd3JpdGUobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfd3JpdGV2KGxvbmcgZmQsIGxvbmcgdmVjLCBsb25nIHZsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3dyaXRldihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyB2ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmxlbik7CgojaWZkZWYgX0xQNjQKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3ByZWFkNjQobG9uZyBmZCwgbG9uZyBidWYsIGxvbmcgY291bnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcG9zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZDY0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgY291bnQsIGxvbmcgcG9zKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B3cml0ZTY0KGxvbmcgZmQsIGxvbmcgYnVmLCBsb25nIGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwb3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3B3cml0ZTY0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGJ1ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50LCBsb25nIHBvcyk7CiNlbHNlCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZDY0KGxvbmcgZmQsIGxvbmcgYnVmLCBsb25nIGNvdW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvczAsIGxvbmcgcG9zMSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcHJlYWQ2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50LCBsb25nIHBvczAsIGxvbmcgcG9zMSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wd3JpdGU2NChsb25nIGZkLCBsb25nIGJ1ZiwgbG9uZyBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgcG9zMCwgbG9uZyBwb3MxKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGU2NChsb25nIHJlcywgbG9uZyBmZCwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCwgbG9uZyBwb3MwLCBsb25nIHBvczEpOwojZW5kaWYKCnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcmVhZHYobG9uZyBmZCwgbG9uZyB2ZWMsIGxvbmcgdmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvc19sLCBsb25nIHBvc19oKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcmVhZHYobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgdmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4sIGxvbmcgcG9zX2wsIGxvbmcgcG9zX2gpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHdyaXRldihsb25nIGZkLCBsb25nIHZlYywgbG9uZyB2bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBvc19sLCBsb25nIHBvc19oKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wd3JpdGV2KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIHZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmxlbiwgbG9uZyBwb3NfbCwgbG9uZyBwb3NfaCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRjd2QobG9uZyBidWYsIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0Y3dkKGxvbmcgcmVzLCBsb25nIGJ1ZiwgbG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21rZGlyKGxvbmcgcGF0aG5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWtkaXIobG9uZyByZXMsIGxvbmcgcGF0aG5hbWUsIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jaGRpcihsb25nIGZpbGVuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9jaGRpcihsb25nIHJlcywgbG9uZyBmaWxlbmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2hkaXIobG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZmNoZGlyKGxvbmcgcmVzLCBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JtZGlyKGxvbmcgcGF0aG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JtZGlyKGxvbmcgcmVzLCBsb25nIHBhdGhuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2xvb2t1cF9kY29va2llKGxvbmcgY29va2llNjQsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xvb2t1cF9kY29va2llKGxvbmcgcmVzLCBsb25nIGNvb2tpZTY0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVmLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9xdW90YWN0bChsb25nIGNtZCwgbG9uZyBzcGVjaWFsLCBsb25nIGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhZGRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9xdW90YWN0bChsb25nIHJlcywgbG9uZyBjbWQsIGxvbmcgc3BlY2lhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGlkLCBsb25nIGFkZHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0ZGVudHMobG9uZyBmZCwgbG9uZyBkaXJlbnQsIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGRlbnRzKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGRpcmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldGRlbnRzNjQobG9uZyBmZCwgbG9uZyBkaXJlbnQsIGxvbmcgY291bnQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGRlbnRzNjQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgZGlyZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjb3VudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRzb2Nrb3B0KGxvbmcgZmQsIGxvbmcgbGV2ZWwsIGxvbmcgb3B0bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHR2YWwsIGxvbmcgb3B0bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRzb2Nrb3B0KGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIGxldmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRuYW1lLCBsb25nIG9wdHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb3B0bGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2dldHNvY2tvcHQobG9uZyBmZCwgbG9uZyBsZXZlbCwgbG9uZyBvcHRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9wdHZhbCwgbG9uZyBvcHRsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldHNvY2tvcHQobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9wdG5hbWUsIGxvbmcgb3B0dmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvcHRsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYmluZChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9iaW5kKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9jb25uZWN0KGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Nvbm5lY3QobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FjY2VwdChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hY2NlcHQobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfYWNjZXB0NChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2FjY2VwdDQobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0c29ja25hbWUobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0c29ja25hbWUobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRwZWVybmFtZShsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRwZWVybmFtZShsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmQobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMiwgbG9uZyBhcmczKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbmR0byhsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMywgbG9uZyBhcmc0LCBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmR0byhsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMiwgbG9uZyBhcmczLCBsb25nIGFyZzQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnNSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZW5kbXNnKGxvbmcgZmQsIGxvbmcgbXNnLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW5kbXNnKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VuZG1tc2cobG9uZyBmZCwgbG9uZyBtc2csIGxvbmcgdmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbmRtbXNnKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHZsZW4sIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdihsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3YobG9uZyByZXMsIGxvbmcgYXJnMCwgbG9uZyBhcmcxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmcyLCBsb25nIGFyZzMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdmZyb20obG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMywgbG9uZyBhcmc0LCBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3JlY3Zmcm9tKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMywgbG9uZyBhcmc0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnNSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWN2bXNnKGxvbmcgZmQsIGxvbmcgbXNnLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZWN2bXNnKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG1zZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcmVjdm1tc2cobG9uZyBmZCwgbG9uZyBtc2csIGxvbmcgdmxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MsIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVjdm1tc2cobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdmxlbiwgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc29ja2V0KGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NvY2tldChsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRwYWlyKGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc29ja2V0cGFpcihsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zb2NrZXRjYWxsKGxvbmcgY2FsbCwgbG9uZyBhcmdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zb2NrZXRjYWxsKGxvbmcgcmVzLCBsb25nIGNhbGwsIGxvbmcgYXJncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9saXN0ZW4obG9uZyBhcmcwLCBsb25nIGFyZzEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2xpc3Rlbihsb25nIHJlcywgbG9uZyBhcmcwLCBsb25nIGFyZzEpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcG9sbChsb25nIHVmZHMsIGxvbmcgbmZkcywgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wb2xsKGxvbmcgcmVzLCBsb25nIHVmZHMsIGxvbmcgbmZkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZWxlY3QobG9uZyBuLCBsb25nIGlucCwgbG9uZyBvdXRwLCBsb25nIGV4cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHR2cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VsZWN0KGxvbmcgcmVzLCBsb25nIG4sIGxvbmcgaW5wLCBsb25nIG91dHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXhwLCBsb25nIHR2cCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGRfc2VsZWN0KGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vbGRfc2VsZWN0KGxvbmcgcmVzLCBsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9jcmVhdGUobG9uZyBzaXplKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jcmVhdGUobG9uZyByZXMsIGxvbmcgc2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF9jcmVhdGUxKGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX2NyZWF0ZTEobG9uZyByZXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfY3RsKGxvbmcgZXBmZCwgbG9uZyBvcCwgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGV2ZW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9lcG9sbF9jdGwobG9uZyByZXMsIGxvbmcgZXBmZCwgbG9uZyBvcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmZCwgbG9uZyBldmVudCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9lcG9sbF93YWl0KGxvbmcgZXBmZCwgbG9uZyBldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4ZXZlbnRzLCBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX3dhaXQobG9uZyByZXMsIGxvbmcgZXBmZCwgbG9uZyBldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heGV2ZW50cywgbG9uZyB0aW1lb3V0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Vwb2xsX3B3YWl0KGxvbmcgZXBmZCwgbG9uZyBldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1heGV2ZW50cywgbG9uZyB0aW1lb3V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdtYXNrLCBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2Vwb2xsX3B3YWl0KGxvbmcgcmVzLCBsb25nIGVwZmQsIGxvbmcgZXZlbnRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4ZXZlbnRzLCBsb25nIHRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaWdtYXNrLCBsb25nIHNpZ3NldHNpemUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXBvbGxfcHdhaXQyKGxvbmcgZXBmZCwgbG9uZyBldmVudHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXhldmVudHMsIGxvbmcgdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpZ21hc2ssIGxvbmcgc2lnc2V0c2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZXBvbGxfcHdhaXQyKGxvbmcgcmVzLCBsb25nIGVwZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZXZlbnRzLCBsb25nIG1heGV2ZW50cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0aW1lb3V0LCBsb25nIHNpZ21hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2lnc2V0c2l6ZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9nZXRob3N0bmFtZShsb25nIG5hbWUsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRob3N0bmFtZShsb25nIHJlcywgbG9uZyBuYW1lLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRob3N0bmFtZShsb25nIG5hbWUsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRob3N0bmFtZShsb25nIHJlcywgbG9uZyBuYW1lLCBsb25nIGxlbik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zZXRkb21haW5uYW1lKGxvbmcgbmFtZSwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldGRvbWFpbm5hbWUobG9uZyByZXMsIGxvbmcgbmFtZSwgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3dW5hbWUobG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uZXd1bmFtZShsb25nIHJlcywgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VuYW1lKGxvbmcgYXJnMCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW5hbWUobG9uZyByZXMsIGxvbmcgYXJnMCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGR1bmFtZShsb25nIGFyZzApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZHVuYW1lKGxvbmcgcmVzLCBsb25nIGFyZzApOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cmxpbWl0KGxvbmcgcmVzb3VyY2UsIGxvbmcgcmxpbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0cmxpbWl0KGxvbmcgcmVzLCBsb25nIHJlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb2xkX2dldHJsaW1pdChsb25nIHJlc291cmNlLCBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZF9nZXRybGltaXQobG9uZyByZXMsIGxvbmcgcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0cmxpbWl0KGxvbmcgcmVzb3VyY2UsIGxvbmcgcmxpbSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0cmxpbWl0KGxvbmcgcmVzLCBsb25nIHJlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJsaW1pdDY0KGxvbmcgcGlkLCBsb25nIHJlc291cmNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3X3JsaW0sIGxvbmcgb2xkX3JsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BybGltaXQ2NChsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgcmVzb3VyY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3X3JsaW0sIGxvbmcgb2xkX3JsaW0pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0cnVzYWdlKGxvbmcgd2hvLCBsb25nIHJ1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9nZXRydXNhZ2UobG9uZyByZXMsIGxvbmcgd2hvLCBsb25nIHJ1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VtYXNrKGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdW1hc2sobG9uZyByZXMsIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dnZXQobG9uZyBrZXksIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dnZXQobG9uZyByZXMsIGxvbmcga2V5LCBsb25nIG1zZ2ZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tc2dzbmQobG9uZyBtc3FpZCwgbG9uZyBtc2dwLCBsb25nIG1zZ3N6LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tc2dzbmQobG9uZyByZXMsIGxvbmcgbXNxaWQsIGxvbmcgbXNncCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dzeiwgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNncmN2KGxvbmcgbXNxaWQsIGxvbmcgbXNncCwgbG9uZyBtc2dzeiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ3R5cCwgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21zZ3Jjdihsb25nIHJlcywgbG9uZyBtc3FpZCwgbG9uZyBtc2dwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ3N6LCBsb25nIG1zZ3R5cCwgbG9uZyBtc2dmbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXNnY3RsKGxvbmcgbXNxaWQsIGxvbmcgY21kLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXNnY3RsKGxvbmcgcmVzLCBsb25nIG1zcWlkLCBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtZ2V0KGxvbmcga2V5LCBsb25nIG5zZW1zLCBsb25nIHNlbWZsZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtZ2V0KGxvbmcgcmVzLCBsb25nIGtleSwgbG9uZyBuc2VtcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzZW1mbGcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2Vtb3AobG9uZyBzZW1pZCwgbG9uZyBzb3BzLCBsb25nIG5zb3BzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZW1vcChsb25nIHJlcywgbG9uZyBzZW1pZCwgbG9uZyBzb3BzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbnNvcHMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2VtY3RsKGxvbmcgc2VtaWQsIGxvbmcgc2VtbnVtLCBsb25nIGNtZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2VtY3RsKGxvbmcgcmVzLCBsb25nIHNlbWlkLCBsb25nIHNlbW51bSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjbWQsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NlbXRpbWVkb3AobG9uZyBzZW1pZCwgbG9uZyBzb3BzLCBsb25nIG5zb3BzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NlbXRpbWVkb3AobG9uZyByZXMsIGxvbmcgc2VtaWQsIGxvbmcgc29wcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbnNvcHMsIGxvbmcgdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1hdChsb25nIHNobWlkLCBsb25nIHNobWFkZHIsIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1hdChsb25nIHJlcywgbG9uZyBzaG1pZCwgbG9uZyBzaG1hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2htZmxnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWdldChsb25nIGtleSwgbG9uZyBzaXplLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NobWdldChsb25nIHJlcywgbG9uZyBrZXksIGxvbmcgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NobWR0KGxvbmcgc2htYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2htZHQobG9uZyByZXMsIGxvbmcgc2htYWRkcik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaG1jdGwobG9uZyBzaG1pZCwgbG9uZyBjbWQsIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaG1jdGwobG9uZyByZXMsIGxvbmcgc2htaWQsIGxvbmcgY21kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pcGMobG9uZyBjYWxsLCBsb25nIGZpcnN0LCBsb25nIHNlY29uZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHRoaXJkLCBsb25nIHB0ciwgbG9uZyBmaWZ0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaXBjKGxvbmcgcmVzLCBsb25nIGNhbGwsIGxvbmcgZmlyc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2Vjb25kLCBsb25nIHRoaXJkLCBsb25nIHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmaWZ0aCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9vcGVuKGxvbmcgbmFtZSwgbG9uZyBvZmxhZywgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGF0dHIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX29wZW4obG9uZyByZXMsIGxvbmcgbmFtZSwgbG9uZyBvZmxhZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSwgbG9uZyBhdHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3VubGluayhsb25nIG5hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3VubGluayhsb25nIHJlcywgbG9uZyBuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21xX3RpbWVkc2VuZChsb25nIG1xZGVzLCBsb25nIG1zZ19wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dfbGVuLCBsb25nIG1zZ19wcmlvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX3RpbWVkc2VuZChsb25nIHJlcywgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dfcHRyLCBsb25nIG1zZ19sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbXNnX3ByaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWJzX3RpbWVvdXQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfdGltZWRyZWNlaXZlKGxvbmcgbXFkZXMsIGxvbmcgbXNnX3B0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ19sZW4sIGxvbmcgbXNnX3ByaW8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbXFfdGltZWRyZWNlaXZlKGxvbmcgcmVzLCBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG1zZ19wdHIsIGxvbmcgbXNnX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtc2dfcHJpbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhYnNfdGltZW91dCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tcV9ub3RpZnkobG9uZyBtcWRlcywgbG9uZyBub3RpZmljYXRpb24pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX21xX25vdGlmeShsb25nIHJlcywgbG9uZyBtcWRlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBub3RpZmljYXRpb24pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbXFfZ2V0c2V0YXR0cihsb25nIG1xZGVzLCBsb25nIG1xc3RhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvbXFzdGF0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tcV9nZXRzZXRhdHRyKGxvbmcgcmVzLCBsb25nIG1xZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtcXN0YXQsIGxvbmcgb21xc3RhdCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wY2ljb25maWdfaW9iYXNlKGxvbmcgd2hpY2gsIGxvbmcgYnVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRldmZuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wY2ljb25maWdfaW9iYXNlKGxvbmcgcmVzLCBsb25nIHdoaWNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidXMsIGxvbmcgZGV2Zm4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcGNpY29uZmlnX3JlYWQobG9uZyBidXMsIGxvbmcgZGZuLCBsb25nIG9mZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX3JlYWQobG9uZyByZXMsIGxvbmcgYnVzLCBsb25nIGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZiwgbG9uZyBsZW4sIGxvbmcgYnVmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BjaWNvbmZpZ193cml0ZShsb25nIGJ1cywgbG9uZyBkZm4sIGxvbmcgb2ZmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuLCBsb25nIGJ1Zik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGNpY29uZmlnX3dyaXRlKGxvbmcgcmVzLCBsb25nIGJ1cywgbG9uZyBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2ZmLCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBidWYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3dhcG9uKGxvbmcgc3BlY2lhbGZpbGUsIGxvbmcgc3dhcF9mbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3dhcG9uKGxvbmcgcmVzLCBsb25nIHNwZWNpYWxmaWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN3YXBfZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3dhcG9mZihsb25nIHNwZWNpYWxmaWxlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zd2Fwb2ZmKGxvbmcgcmVzLCBsb25nIHNwZWNpYWxmaWxlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2N0bChsb25nIGFyZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3N5c2N0bChsb25nIHJlcywgbG9uZyBhcmdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5c2luZm8obG9uZyBpbmZvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNpbmZvKGxvbmcgcmVzLCBsb25nIGluZm8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3lzZnMobG9uZyBvcHRpb24sIGxvbmcgYXJnMSwgbG9uZyBhcmcyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNmcyhsb25nIHJlcywgbG9uZyBvcHRpb24sIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3lzbG9nKGxvbmcgdHlwZSwgbG9uZyBidWYsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zeXNsb2cobG9uZyByZXMsIGxvbmcgdHlwZSwgbG9uZyBidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3VzZWxpYihsb25nIGxpYnJhcnkpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3VzZWxpYihsb25nIHJlcywgbG9uZyBsaWJyYXJ5KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25pX3N5c2NhbGwoKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9uaV9zeXNjYWxsKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3B0cmFjZShsb25nIHJlcXVlc3QsIGxvbmcgcGlkLCBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wdHJhY2UobG9uZyByZXMsIGxvbmcgcmVxdWVzdCwgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYWRkciwgbG9uZyBkYXRhKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2FkZF9rZXkobG9uZyBfdHlwZSwgbG9uZyBfZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX3BheWxvYWQsIGxvbmcgcGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXN0cmluZ2lkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9hZGRfa2V5KGxvbmcgcmVzLCBsb25nIF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfZGVzY3JpcHRpb24sIGxvbmcgX3BheWxvYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBsZW4sIGxvbmcgZGVzdHJpbmdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZXF1ZXN0X2tleShsb25nIF90eXBlLCBsb25nIF9kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgX2NhbGxvdXRfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzdHJpbmdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVxdWVzdF9rZXkobG9uZyByZXMsIGxvbmcgX3R5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfZGVzY3JpcHRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBfY2FsbG91dF9pbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzdHJpbmdpZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9rZXljdGwobG9uZyBjbWQsIGxvbmcgYXJnMiwgbG9uZyBhcmczLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnNCwgbG9uZyBhcmc1KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9rZXljdGwobG9uZyByZXMsIGxvbmcgY21kLCBsb25nIGFyZzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMywgbG9uZyBhcmc0LCBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9wcmlvX3NldChsb25nIHdoaWNoLCBsb25nIHdobywgbG9uZyBpb3ByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lvcHJpb19zZXQobG9uZyByZXMsIGxvbmcgd2hpY2gsIGxvbmcgd2hvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBpb3ByaW8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW9wcmlvX2dldChsb25nIHdoaWNoLCBsb25nIHdobyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfaW9wcmlvX2dldChsb25nIHJlcywgbG9uZyB3aGljaCwgbG9uZyB3aG8pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0X21lbXBvbGljeShsb25nIG1vZGUsIGxvbmcgbm1hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4bm9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc2V0X21lbXBvbGljeShsb25nIHJlcywgbG9uZyBtb2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBubWFzaywgbG9uZyBtYXhub2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21pZ3JhdGVfcGFnZXMobG9uZyBwaWQsIGxvbmcgbWF4bm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmcm9tLCBsb25nIHRvKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9taWdyYXRlX3BhZ2VzKGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbWF4bm9kZSwgbG9uZyBmcm9tLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB0byk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9tb3ZlX3BhZ2VzKGxvbmcgcGlkLCBsb25nIG5yX3BhZ2VzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhZ2VzLCBsb25nIG5vZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN0YXR1cywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbW92ZV9wYWdlcyhsb25nIHJlcywgbG9uZyBwaWQsIGxvbmcgbnJfcGFnZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhZ2VzLCBsb25nIG5vZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0dXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWJpbmQobG9uZyBzdGFydCwgbG9uZyBsZW4sIGxvbmcgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbm1hc2ssIGxvbmcgbWF4bm9kZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbWJpbmQobG9uZyByZXMsIGxvbmcgc3RhcnQsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSwgbG9uZyBubWFzaywgbG9uZyBtYXhub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0X21lbXBvbGljeShsb25nIHBvbGljeSwgbG9uZyBubWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXhub2RlLCBsb25nIGFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldF9tZW1wb2xpY3kobG9uZyByZXMsIGxvbmcgcG9saWN5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBubWFzaywgbG9uZyBtYXhub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhZGRyLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2lub3RpZnlfaW5pdCgpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lub3RpZnlfaW5pdChsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X2luaXQxKGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lub3RpZnlfaW5pdDEobG9uZyByZXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfaW5vdGlmeV9hZGRfd2F0Y2gobG9uZyBmZCwgbG9uZyBwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9pbm90aWZ5X2FkZF93YXRjaChsb25nIHJlcywgbG9uZyBmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhdGgsIGxvbmcgbWFzayk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9pbm90aWZ5X3JtX3dhdGNoKGxvbmcgZmQsIGxvbmcgd2QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2lub3RpZnlfcm1fd2F0Y2gobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgd2QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3B1X3J1bihsb25nIGZkLCBsb25nIHVucGMsIGxvbmcgdXN0YXR1cyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3B1X3J1bihsb25nIHJlcywgbG9uZyBmZCwgbG9uZyB1bnBjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1c3RhdHVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NwdV9jcmVhdGUobG9uZyBuYW1lLCBsb25nIGZsYWdzLCBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NwdV9jcmVhdGUobG9uZyByZXMsIGxvbmcgbmFtZSwgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSwgbG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9ta25vZGF0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGV2KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta25vZGF0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSwgbG9uZyBkZXYpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbWtkaXJhdChsb25nIGRmZCwgbG9uZyBwYXRobmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ta2RpcmF0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBwYXRobmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91bmxpbmthdChsb25nIGRmZCwgbG9uZyBwYXRobmFtZSwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bmxpbmthdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgcGF0aG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3N5bWxpbmthdChsb25nIG9sZG5hbWUsIGxvbmcgbmV3ZGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3bmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3ltbGlua2F0KGxvbmcgcmVzLCBsb25nIG9sZG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3ZGZkLCBsb25nIG5ld25hbWUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbGlua2F0KGxvbmcgb2xkZGZkLCBsb25nIG9sZG5hbWUsIGxvbmcgbmV3ZGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbmV3bmFtZSwgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfbGlua2F0KGxvbmcgcmVzLCBsb25nIG9sZGRmZCwgbG9uZyBvbGRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld2RmZCwgbG9uZyBuZXduYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3JlbmFtZWF0KGxvbmcgb2xkZGZkLCBsb25nIG9sZG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld2RmZCwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9yZW5hbWVhdChsb25nIHJlcywgbG9uZyBvbGRkZmQsIGxvbmcgb2xkbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5ld2RmZCwgbG9uZyBuZXduYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Z1dGltZXNhdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHV0aW1lcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZnV0aW1lc2F0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1dGltZXMpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZmFjY2Vzc2F0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZhY2Nlc3NhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW9kZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mY2htb2RhdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mY2htb2RhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2ZjaG93bmF0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLCBsb25nIHVzZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2ZjaG93bmF0KGxvbmcgcmVzLCBsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHVzZXIsIGxvbmcgZ3JvdXAsIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vcGVuYXQobG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtb2RlKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9vcGVuYXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIG1vZGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfbmV3ZnN0YXRhdChsb25nIGRmZCwgbG9uZyBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25ld2ZzdGF0YXQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzdGF0YnVmLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZnN0YXRhdDY0KGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc3RhdGJ1ZiwgbG9uZyBmbGFnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mc3RhdGF0NjQobG9uZyByZXMsIGxvbmcgZGZkLCBsb25nIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHN0YXRidWYsIGxvbmcgZmxhZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9yZWFkbGlua2F0KGxvbmcgZGZkLCBsb25nIHBhdGgsIGxvbmcgYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGJ1ZnNpeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcmVhZGxpbmthdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYnVmLCBsb25nIGJ1ZnNpeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF91dGltZW5zYXQobG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1dGltZXMsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3V0aW1lbnNhdChsb25nIHJlcywgbG9uZyBkZmQsIGxvbmcgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgdXRpbWVzLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3Vuc2hhcmUobG9uZyB1bnNoYXJlX2ZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF91bnNoYXJlKGxvbmcgcmVzLCBsb25nIHVuc2hhcmVfZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc3BsaWNlKGxvbmcgZmRfaW4sIGxvbmcgb2ZmX2luLCBsb25nIGZkX291dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9mZl9vdXQsIGxvbmcgbGVuLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zcGxpY2UobG9uZyByZXMsIGxvbmcgZmRfaW4sIGxvbmcgb2ZmX2luLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZkX291dCwgbG9uZyBvZmZfb3V0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92bXNwbGljZShsb25nIGZkLCBsb25nIGlvdiwgbG9uZyBucl9zZWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfdm1zcGxpY2UobG9uZyByZXMsIGxvbmcgZmQsIGxvbmcgaW92LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbnJfc2VncywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90ZWUobG9uZyBmZGluLCBsb25nIGZkb3V0LCBsb25nIGxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90ZWUobG9uZyByZXMsIGxvbmcgZmRpbiwgbG9uZyBmZG91dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4sIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0X3JvYnVzdF9saXN0KGxvbmcgcGlkLCBsb25nIGhlYWRfcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGVuX3B0cik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZ2V0X3JvYnVzdF9saXN0KGxvbmcgcmVzLCBsb25nIHBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBoZWFkX3B0ciwgbG9uZyBsZW5fcHRyKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NldF9yb2J1c3RfbGlzdChsb25nIGhlYWQsIGxvbmcgbGVuKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zZXRfcm9idXN0X2xpc3QobG9uZyByZXMsIGxvbmcgaGVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsZW4pOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZ2V0Y3B1KGxvbmcgY3B1LCBsb25nIG5vZGUsIGxvbmcgY2FjaGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2dldGNwdShsb25nIHJlcywgbG9uZyBjcHUsIGxvbmcgbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjYWNoZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zaWduYWxmZChsb25nIHVmZCwgbG9uZyB1c2VyX21hc2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemVtYXNrKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWduYWxmZChsb25nIHJlcywgbG9uZyB1ZmQsIGxvbmcgdXNlcl9tYXNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgc2l6ZW1hc2spOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2lnbmFsZmQ0KGxvbmcgdWZkLCBsb25nIHVzZXJfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHNpemVtYXNrLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWduYWxmZDQobG9uZyByZXMsIGxvbmcgdWZkLCBsb25nIHVzZXJfbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBzaXplbWFzaywgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcmZkX2NyZWF0ZShsb25nIGNsb2NraWQsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyZmRfY3JlYXRlKGxvbmcgcmVzLCBsb25nIGNsb2NraWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF90aW1lcmZkX3NldHRpbWUobG9uZyB1ZmQsIGxvbmcgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyB1dG1yLCBsb25nIG90bXIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3RpbWVyZmRfc2V0dGltZShsb25nIHJlcywgbG9uZyB1ZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MsIGxvbmcgdXRtciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvdG1yKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3RpbWVyZmRfZ2V0dGltZShsb25nIHVmZCwgbG9uZyBvdG1yKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF90aW1lcmZkX2dldHRpbWUobG9uZyByZXMsIGxvbmcgdWZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG90bXIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfZXZlbnRmZChsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9ldmVudGZkKGxvbmcgcmVzLCBsb25nIGNvdW50KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2V2ZW50ZmQyKGxvbmcgY291bnQsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX2V2ZW50ZmQyKGxvbmcgcmVzLCBsb25nIGNvdW50LCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX29sZF9yZWFkZGlyKGxvbmcgYXJnMCwgbG9uZyBhcmcxLCBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29sZF9yZWFkZGlyKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHNlbGVjdDYobG9uZyBhcmcwLCBsb25nIGFyZzEsIGxvbmcgYXJnMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnMywgbG9uZyBhcmc0LCBsb25nIGFyZzUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3BzZWxlY3Q2KGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMywgbG9uZyBhcmc0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgYXJnNSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcG9sbChsb25nIGFyZzAsIGxvbmcgYXJnMSwgbG9uZyBhcmcyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBhcmczLCBsb25nIGFyZzQpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Bwb2xsKGxvbmcgcmVzLCBsb25nIGFyZzAsIGxvbmcgYXJnMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGFyZzIsIGxvbmcgYXJnMywgbG9uZyBhcmc0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zhbm90aWZ5X2luaXQobG9uZyBmbGFncywgbG9uZyBldmVudF9mX2ZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mYW5vdGlmeV9pbml0KGxvbmcgcmVzLCBsb25nIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBldmVudF9mX2ZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX2Zhbm90aWZ5X21hcmsobG9uZyBmYW5vdGlmeV9mZCwgbG9uZyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBtYXNrLCBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHBhdGhuYW1lKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9mYW5vdGlmeV9tYXJrKGxvbmcgcmVzLCBsb25nIGZhbm90aWZ5X2ZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncywgbG9uZyBtYXNrLCBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwYXRobmFtZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9zeW5jZnMobG9uZyBmZCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfc3luY2ZzKGxvbmcgcmVzLCBsb25nIGZkKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3BlcmZfZXZlbnRfb3Blbihsb25nIGF0dHJfdXB0ciwgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBjcHUsIGxvbmcgZ3JvdXBfZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcGVyZl9ldmVudF9vcGVuKGxvbmcgcmVzLCBsb25nIGF0dHJfdXB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwaWQsIGxvbmcgY3B1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGdyb3VwX2ZkLCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX21tYXBfcGdvZmYobG9uZyBhZGRyLCBsb25nIGxlbiwgbG9uZyBwcm90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWdzLCBsb25nIGZkLCBsb25nIHBnb2ZmKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9tbWFwX3Bnb2ZmKGxvbmcgcmVzLCBsb25nIGFkZHIsIGxvbmcgbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwcm90LCBsb25nIGZsYWdzLCBsb25nIGZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBwZ29mZik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9vbGRfbW1hcChsb25nIGFyZyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfb2xkX21tYXAobG9uZyByZXMsIGxvbmcgYXJnKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX25hbWVfdG9faGFuZGxlX2F0KGxvbmcgZGZkLCBsb25nIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGhhbmRsZSwgbG9uZyBtbnRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX25hbWVfdG9faGFuZGxlX2F0KGxvbmcgcmVzLCBsb25nIGRmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG5hbWUsIGxvbmcgaGFuZGxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbW50X2lkLCBsb25nIGZsYWcpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfb3Blbl9ieV9oYW5kbGVfYXQobG9uZyBtb3VudGRpcmZkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBoYW5kbGUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX29wZW5fYnlfaGFuZGxlX2F0KGxvbmcgcmVzLCBsb25nIG1vdW50ZGlyZmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBoYW5kbGUsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfc2V0bnMobG9uZyBmZCwgbG9uZyBuc3R5cGUpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3NldG5zKGxvbmcgcmVzLCBsb25nIGZkLCBsb25nIG5zdHlwZSk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9wcm9jZXNzX3ZtX3JlYWR2KGxvbmcgcGlkLCBsb25nIGx2ZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGlvdmNudCwgbG9uZyBydmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJpb3ZjbnQsIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Byb2Nlc3Nfdm1fcmVhZHYobG9uZyByZXMsIGxvbmcgcGlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsdmVjLCBsb25nIGxpb3ZjbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIHJ2ZWMsIGxvbmcgcmlvdmNudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZmxhZ3MpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcHJvY2Vzc192bV93cml0ZXYobG9uZyBwaWQsIGxvbmcgbHZlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgbGlvdmNudCwgbG9uZyBydmVjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyByaW92Y250LCBsb25nIGZsYWdzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9wcm9jZXNzX3ZtX3dyaXRldihsb25nIHJlcywgbG9uZyBwaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBsdmVjLCBsb25nIGxpb3ZjbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBydmVjLCBsb25nIHJpb3ZjbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBmbGFncyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF9mb3JrKCk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfZm9yayhsb25nIHJlcyk7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wcmVfaW1wbF92Zm9yaygpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcG9zdF9pbXBsX3Zmb3JrKGxvbmcgcmVzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ2FjdGlvbihsb25nIHNpZ251bSwgbG9uZyBhY3QsIGxvbmcgb2xkYWN0KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdhY3Rpb24obG9uZyByZXMsIGxvbmcgc2lnbnVtLCBsb25nIGFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvbGRhY3QpOwp2b2lkIF9fc2FuaXRpemVyX3N5c2NhbGxfcHJlX2ltcGxfcnRfc2lnYWN0aW9uKGxvbmcgc2lnbnVtLCBsb25nIGFjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIG9sZGFjdCwgbG9uZyBzeik7CnZvaWQgX19zYW5pdGl6ZXJfc3lzY2FsbF9wb3N0X2ltcGxfcnRfc2lnYWN0aW9uKGxvbmcgcmVzLCBsb25nIHNpZ251bSwgbG9uZyBhY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgb2xkYWN0LCBsb25nIHN6KTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3ByZV9pbXBsX3NpZ2FsdHN0YWNrKGxvbmcgc3MsIGxvbmcgb3NzKTsKdm9pZCBfX3Nhbml0aXplcl9zeXNjYWxsX3Bvc3RfaW1wbF9zaWdhbHRzdGFjayhsb25nIHJlcywgbG9uZyBzcywgbG9uZyBvc3MpOwojaWZkZWYgX19jcGx1c3BsdXMKfSAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmIC8vIFNBTklUSVpFUl9MSU5VWF9TWVNDQUxMX0hPT0tTX0gKAC8vPT09LS0gbXNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgTWVtb3J5U2FuaXRpemVyLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlci4KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KI2lmbmRlZiBNU0FOX0lOVEVSRkFDRV9ICiNkZWZpbmUgTVNBTl9JTlRFUkZBQ0VfSAoKI2luY2x1ZGUgPHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCiAgLyogU2V0IHJhdyBvcmlnaW4gZm9yIHRoZSBtZW1vcnkgcmFuZ2UuICovCiAgdm9pZCBfX21zYW5fc2V0X29yaWdpbihjb25zdCB2b2xhdGlsZSB2b2lkICphLCBzaXplX3Qgc2l6ZSwgdWludDMyX3Qgb3JpZ2luKTsKCiAgLyogR2V0IHJhdyBvcmlnaW4gZm9yIGFuIGFkZHJlc3MuICovCiAgdWludDMyX3QgX19tc2FuX2dldF9vcmlnaW4oY29uc3Qgdm9sYXRpbGUgdm9pZCAqYSk7CgogIC8qIFRlc3QgdGhhdCB0aGlzX2lkIGlzIGEgZGVzY2VuZGFudCBvZiBwcmV2X2lkIChvciB0aGV5IGFyZSBzaW1wbHkgZXF1YWwpLgogICAqICJkZXNjZW5kYW50IiBoZXJlIG1lYW5zIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHNhbWUgY2hhaW4sIGNyZWF0ZWQgd2l0aAogICAqIF9fbXNhbl9jaGFpbl9vcmlnaW4uICovCiAgaW50IF9fbXNhbl9vcmlnaW5faXNfZGVzY2VuZGFudF9vcl9zYW1lKHVpbnQzMl90IHRoaXNfaWQsIHVpbnQzMl90IHByZXZfaWQpOwoKICAvKiBSZXR1cm5zIG5vbi16ZXJvIGlmIHRyYWNraW5nIG9yaWdpbnMuICovCiAgaW50IF9fbXNhbl9nZXRfdHJhY2tfb3JpZ2lucyh2b2lkKTsKCiAgLyogUmV0dXJucyB0aGUgb3JpZ2luIGlkIG9mIHRoZSBsYXRlc3QgVU1SIGluIHRoZSBjYWxsaW5nIHRocmVhZC4gKi8KICB1aW50MzJfdCBfX21zYW5fZ2V0X3Vtcl9vcmlnaW4odm9pZCk7CgogIC8qIE1ha2UgbWVtb3J5IHJlZ2lvbiBmdWxseSBpbml0aWFsaXplZCAod2l0aG91dCBjaGFuZ2luZyBpdHMgY29udGVudHMpLiAqLwogIHZvaWQgX19tc2FuX3VucG9pc29uKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmEsIHNpemVfdCBzaXplKTsKCiAgLyogTWFrZSBhIG51bGwtdGVybWluYXRlZCBzdHJpbmcgZnVsbHkgaW5pdGlhbGl6ZWQgKHdpdGhvdXQgY2hhbmdpbmcgaXRzCiAgICAgY29udGVudHMpLiAqLwogIHZvaWQgX19tc2FuX3VucG9pc29uX3N0cmluZyhjb25zdCB2b2xhdGlsZSBjaGFyICphKTsKCiAgLyogTWFrZSBmaXJzdCBuIHBhcmFtZXRlcnMgb2YgdGhlIG5leHQgZnVuY3Rpb24gY2FsbCBmdWxseSBpbml0aWFsaXplZC4gKi8KICB2b2lkIF9fbXNhbl91bnBvaXNvbl9wYXJhbShzaXplX3Qgbik7CgogIC8qIE1ha2UgbWVtb3J5IHJlZ2lvbiBmdWxseSB1bmluaXRpYWxpemVkICh3aXRob3V0IGNoYW5naW5nIGl0cyBjb250ZW50cykuCiAgICAgVGhpcyBpcyBhIGxlZ2FjeSBpbnRlcmZhY2UgdGhhdCBkb2VzIG5vdCB1cGRhdGUgb3JpZ2luIGluZm9ybWF0aW9uLiBVc2UKICAgICBfX21zYW5fYWxsb2NhdGVkX21lbW9yeSgpIGluc3RlYWQuICovCiAgdm9pZCBfX21zYW5fcG9pc29uKGNvbnN0IHZvbGF0aWxlIHZvaWQgKmEsIHNpemVfdCBzaXplKTsKCiAgLyogTWFrZSBtZW1vcnkgcmVnaW9uIHBhcnRpYWxseSB1bmluaXRpYWxpemVkICh3aXRob3V0IGNoYW5naW5nIGl0cyBjb250ZW50cykuCiAgICovCiAgdm9pZCBfX21zYW5fcGFydGlhbF9wb2lzb24oY29uc3Qgdm9sYXRpbGUgdm9pZCAqZGF0YSwgdm9pZCAqc2hhZG93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKCiAgLyogUmV0dXJucyB0aGUgb2Zmc2V0IG9mIHRoZSBmaXJzdCAoYXQgbGVhc3QgcGFydGlhbGx5KSBwb2lzb25lZCBieXRlIGluIHRoZQogICAgIG1lbW9yeSByYW5nZSwgb3IgLTEgaWYgdGhlIHdob2xlIHJhbmdlIGlzIGdvb2QuICovCiAgaW50cHRyX3QgX19tc2FuX3Rlc3Rfc2hhZG93KGNvbnN0IHZvbGF0aWxlIHZvaWQgKngsIHNpemVfdCBzaXplKTsKCiAgLyogQ2hlY2tzIHRoYXQgbWVtb3J5IHJhbmdlIGlzIGZ1bGx5IGluaXRpYWxpemVkLCBhbmQgcmVwb3J0cyBhbiBlcnJvciBpZiBpdAogICAqIGlzIG5vdC4gKi8KICB2b2lkIF9fbXNhbl9jaGVja19tZW1faXNfaW5pdGlhbGl6ZWQoY29uc3Qgdm9sYXRpbGUgdm9pZCAqeCwgc2l6ZV90IHNpemUpOwoKICAvKiBGb3IgdGVzdGluZzoKICAgICBfX21zYW5fc2V0X2V4cGVjdF91bXIoMSk7CiAgICAgLi4uIHNvbWUgYnVnZ3kgY29kZSAuLi4KICAgICBfX21zYW5fc2V0X2V4cGVjdF91bXIoMCk7CiAgICAgVGhlIGxhc3QgbGluZSB3aWxsIHZlcmlmeSB0aGF0IGEgVU1SIGhhcHBlbmVkLiAqLwogIHZvaWQgX19tc2FuX3NldF9leHBlY3RfdW1yKGludCBleHBlY3RfdW1yKTsKCiAgLyogQ2hhbmdlIHRoZSB2YWx1ZSBvZiBrZWVwX2dvaW5nIGZsYWcuIE5vbi16ZXJvIHZhbHVlIG1lYW5zIGRvbid0IHRlcm1pbmF0ZQogICAgIHByb2dyYW0gZXhlY3V0aW9uIHdoZW4gYW4gZXJyb3IgaXMgZGV0ZWN0ZWQuIFRoaXMgd2lsbCBub3QgYWZmZWN0IGVycm9yIGluCiAgICAgbW9kdWxlcyB0aGF0IHdlcmUgY29tcGlsZWQgd2l0aG91dCB0aGUgY29ycmVzcG9uZGluZyBjb21waWxlciBmbGFnLiAqLwogIHZvaWQgX19tc2FuX3NldF9rZWVwX2dvaW5nKGludCBrZWVwX2dvaW5nKTsKCiAgLyogUHJpbnQgc2hhZG93IGFuZCBvcmlnaW4gZm9yIHRoZSBtZW1vcnkgcmFuZ2UgdG8gc3RkZXJyIGluIGEgaHVtYW4tcmVhZGFibGUKICAgICBmb3JtYXQuICovCiAgdm9pZCBfX21zYW5fcHJpbnRfc2hhZG93KGNvbnN0IHZvbGF0aWxlIHZvaWQgKngsIHNpemVfdCBzaXplKTsKCiAgLyogUHJpbnQgc2hhZG93IGZvciB0aGUgbWVtb3J5IHJhbmdlIHRvIHN0ZGVyciBpbiBhIG1pbmltYWxpc3RpYwogICAgIGh1bWFuLXJlYWRhYmxlIGZvcm1hdC4gKi8KICB2b2lkIF9fbXNhbl9kdW1wX3NoYWRvdyhjb25zdCB2b2xhdGlsZSB2b2lkICp4LCBzaXplX3Qgc2l6ZSk7CgogIC8qIFJldHVybnMgdHJ1ZSBpZiBydW5uaW5nIHVuZGVyIGEgZHluYW1pYyB0b29sIChEeW5hbW9SaW8tYmFzZWQpLiAqLwogIGludCAgX19tc2FuX2hhc19keW5hbWljX2NvbXBvbmVudCh2b2lkKTsKCiAgLyogVGVsbCBNU2FuIGFib3V0IG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkgKGV4LjogY3VzdG9tIGFsbG9jYXRvcikuCiAgICAgTWVtb3J5IHdpbGwgYmUgbWFya2VkIHVuaW5pdGlhbGl6ZWQsIHdpdGggb3JpZ2luIGF0IHRoZSBjYWxsIHNpdGUuICovCiAgdm9pZCBfX21zYW5fYWxsb2NhdGVkX21lbW9yeShjb25zdCB2b2xhdGlsZSB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSk7CgogIC8qIFRlbGwgTVNhbiBhYm91dCBuZXdseSBkZXN0cm95ZWQgbWVtb3J5LiBNYXJrIG1lbW9yeSBhcyB1bmluaXRpYWxpemVkLiAqLwogIHZvaWQgX19zYW5pdGl6ZXJfZHRvcl9jYWxsYmFjayhjb25zdCB2b2xhdGlsZSB2b2lkKiBkYXRhLCBzaXplX3Qgc2l6ZSk7CgogIC8qIFRoaXMgZnVuY3Rpb24gbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgdXNlciBhbmQgc2hvdWxkIHJldHVybgogICAgIGEgc3RyaW5nIGNvbnRhaW5pbmcgTXNhbiBydW50aW1lIG9wdGlvbnMuIFNlZSBtc2FuX2ZsYWdzLmggZm9yIGRldGFpbHMuICovCiAgY29uc3QgY2hhciogX19tc2FuX2RlZmF1bHRfb3B0aW9ucyh2b2lkKTsKCiAgLyogRGVwcmVjYXRlZC4gQ2FsbCBfX3Nhbml0aXplcl9zZXRfZGVhdGhfY2FsbGJhY2sgaW5zdGVhZC4gKi8KICB2b2lkIF9fbXNhbl9zZXRfZGVhdGhfY2FsbGJhY2sodm9pZCAoKmNhbGxiYWNrKSh2b2lkKSk7CgogIC8qIFVwZGF0ZSBzaGFkb3cgZm9yIHRoZSBhcHBsaWNhdGlvbiBjb3B5IG9mIHNpemUgYnl0ZXMgZnJvbSBzcmMgdG8gZHN0LgogICAgIFNyYyBhbmQgZHN0IGFyZSBhcHBsaWNhdGlvbiBhZGRyZXNzZXMuIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgY29weSB0aGUKICAgICBhY3R1YWwgYXBwbGljYXRpb24gbWVtb3J5LCBpdCBvbmx5IHVwZGF0ZXMgc2hhZG93IGFuZCBvcmlnaW4gZm9yIHN1Y2gKICAgICBjb3B5LiBTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIHJlZ2lvbnMgY2FuIG92ZXJsYXAuICovCiAgdm9pZCBfX21zYW5fY29weV9zaGFkb3coY29uc3Qgdm9sYXRpbGUgdm9pZCAqZHN0LCBjb25zdCB2b2xhdGlsZSB2b2lkICpzcmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUpOwoKICAvKiBEaXNhYmxlcyB1bmluaXRpYWxpemVkIG1lbW9yeSBjaGVja3MgaW4gaW50ZXJjZXB0b3JzLiAqLwogIHZvaWQgX19tc2FuX3Njb3BlZF9kaXNhYmxlX2ludGVyY2VwdG9yX2NoZWNrcyh2b2lkKTsKCiAgLyogUmUtZW5hYmxlcyB1bmluaXRpYWxpemVkIG1lbW9yeSBjaGVja3MgaW4gaW50ZXJjZXB0b3JzIGFmdGVyIGEgcHJldmlvdXMKICAgICBjYWxsIHRvIF9fbXNhbl9zY29wZWRfZGlzYWJsZV9pbnRlcmNlcHRvcl9jaGVja3MuICovCiAgdm9pZCBfX21zYW5fc2NvcGVkX2VuYWJsZV9pbnRlcmNlcHRvcl9jaGVja3Modm9pZCk7CgogIHZvaWQgX19tc2FuX3N0YXJ0X3N3aXRjaF9maWJlcihjb25zdCB2b2lkICpib3R0b20sIHNpemVfdCBzaXplKTsKICB2b2lkIF9fbXNhbl9maW5pc2hfc3dpdGNoX2ZpYmVyKGNvbnN0IHZvaWQgKipib3R0b21fb2xkLCBzaXplX3QgKnNpemVfb2xkKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmCgAvLz09PS0tIHRzYW5faW50ZXJmYWNlLmggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotIEMrKyAtKi09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIFRocmVhZFNhbml0aXplciAoVFNhbiksIGEgcmFjZSBkZXRlY3Rvci4KLy8KLy8gUHVibGljIGludGVyZmFjZSBoZWFkZXIgZm9yIFRTYW4uCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX1RTQU5fSU5URVJGQUNFX0gKI2RlZmluZSBTQU5JVElaRVJfVFNBTl9JTlRFUkZBQ0VfSAoKI2luY2x1ZGUgPHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgovLyBfX3RzYW5fcmVsZWFzZSBlc3RhYmxpc2hlcyBhIGhhcHBlbnMtYmVmb3JlIHJlbGF0aW9uIHdpdGggYSBwcmVjZWRpbmcKLy8gX190c2FuX2FjcXVpcmUgb24gdGhlIHNhbWUgYWRkcmVzcy4Kdm9pZCBfX3RzYW5fYWNxdWlyZSh2b2lkICphZGRyKTsKdm9pZCBfX3RzYW5fcmVsZWFzZSh2b2lkICphZGRyKTsKCi8vIEFubm90YXRpb25zIGZvciBjdXN0b20gbXV0ZXhlcy4KLy8gVGhlIGFubm90YXRpb25zIGFsbG93IHRvIGdldCBiZXR0ZXIgcmVwb3J0cyAod2l0aCBzZXRzIG9mIGxvY2tlZCBtdXRleGVzKSwKLy8gZGV0ZWN0IG1vcmUgdHlwZXMgb2YgYnVncyAoZS5nLiBtdXRleCBtaXN1c2VzLCByYWNlcyBiZXR3ZWVuIGxvY2svdW5sb2NrIGFuZAovLyBkZXN0cnVjdGlvbiBhbmQgcG90ZW50aWFsIGRlYWRsb2NrcykgYW5kIGltcHJvdmUgcHJlY2lzaW9uIGFuZCBwZXJmb3JtYW5jZQovLyAoYnkgaWdub3JpbmcgaW5kaXZpZHVhbCBhdG9taWMgb3BlcmF0aW9ucyBpbiBtdXRleCBjb2RlKS4gSG93ZXZlciwgdGhlCi8vIGRvd25zaWRlIGlzIHRoYXQgYW5ub3RhdGVkIG11dGV4IGNvZGUgaXRzZWxmIGlzIG5vdCBjaGVja2VkIGZvciBjb3JyZWN0bmVzcy4KCi8vIE11dGV4IGNyZWF0aW9uIGZsYWdzIGFyZSBwYXNzZWQgdG8gX190c2FuX211dGV4X2NyZWF0ZSBhbm5vdGF0aW9uLgovLyBJZiBtdXRleCBoYXMgbm8gY29uc3RydWN0b3IgYW5kIF9fdHNhbl9tdXRleF9jcmVhdGUgaXMgbm90IGNhbGxlZCwKLy8gdGhlIGZsYWdzIG1heSBiZSBwYXNzZWQgdG8gX190c2FuX211dGV4X3ByZV9sb2NrL19fdHNhbl9tdXRleF9wb3N0X2xvY2sKLy8gYW5ub3RhdGlvbnMuCgovLyBNdXRleCBoYXMgc3RhdGljIHN0b3JhZ2UgZHVyYXRpb24gYW5kIG5vLW9wIGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yLgovLyBUaGlzIGVmZmVjdGl2ZWx5IG1ha2VzIHRzYW4gaWdub3JlIGRlc3Ryb3kgYW5ub3RhdGlvbi4Kc3RhdGljIGNvbnN0IHVuc2lnbmVkIF9fdHNhbl9tdXRleF9saW5rZXJfaW5pdCAgICAgID0gMSA8PCAwOwovLyBNdXRleCBpcyB3cml0ZSByZWVudHJhbnQuCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfd3JpdGVfcmVlbnRyYW50ICA9IDEgPDwgMTsKLy8gTXV0ZXggaXMgcmVhZCByZWVudHJhbnQuCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfcmVhZF9yZWVudHJhbnQgICA9IDEgPDwgMjsKLy8gTXV0ZXggZG9lcyBub3QgaGF2ZSBzdGF0aWMgc3RvcmFnZSBkdXJhdGlvbiwgYW5kIG11c3Qgbm90IGJlIHVzZWQgYWZ0ZXIKLy8gaXRzIGRlc3RydWN0b3IgcnVucy4gIFRoZSBvcHBvc2l0ZSBvZiBfX3RzYW5fbXV0ZXhfbGlua2VyX2luaXQuCi8vIElmIHRoaXMgZmxhZyBpcyBwYXNzZWQgdG8gX190c2FuX211dGV4X2Rlc3Ryb3ksIHRoZW4gdGhlIGRlc3RydWN0aW9uCi8vIGlzIGlnbm9yZWQgdW5sZXNzIHRoaXMgZmxhZyB3YXMgcHJldmlvdXNseSBzZXQgb24gdGhlIG11dGV4LgpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X25vdF9zdGF0aWMgICAgICAgPSAxIDw8IDg7CgovLyBNdXRleCBvcGVyYXRpb24gZmxhZ3M6CgovLyBEZW5vdGVzIHJlYWQgbG9jayBvcGVyYXRpb24uCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfcmVhZF9sb2NrICAgICAgICA9IDEgPDwgMzsKLy8gRGVub3RlcyB0cnkgbG9jayBvcGVyYXRpb24uCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfdHJ5X2xvY2sgICAgICAgICA9IDEgPDwgNDsKLy8gRGVub3RlcyB0aGF0IGEgdHJ5IGxvY2sgb3BlcmF0aW9uIGhhcyBmYWlsZWQgdG8gYWNxdWlyZSB0aGUgbXV0ZXguCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfdHJ5X2xvY2tfZmFpbGVkICA9IDEgPDwgNTsKLy8gRGVub3RlcyB0aGF0IHRoZSBsb2NrIG9wZXJhdGlvbiBhY3F1aXJlcyBtdWx0aXBsZSByZWN1cnNpb24gbGV2ZWxzLgovLyBOdW1iZXIgb2YgbGV2ZWxzIGlzIHBhc3NlZCBpbiByZWN1cnNpb24gcGFyYW1ldGVyLgovLyBUaGlzIGlzIHVzZWZ1bCBmb3IgYW5ub3RhdGlvbiBvZiBlLmcuIEphdmEgYnVpbHRpbiBtb25pdG9ycywKLy8gZm9yIHdoaWNoIHdhaXQgb3BlcmF0aW9uIHJlbGVhc2VzIGFsbCByZWN1cnNpdmUgYWNxdWlzaXRpb25zIG9mIHRoZSBtdXRleC4Kc3RhdGljIGNvbnN0IHVuc2lnbmVkIF9fdHNhbl9tdXRleF9yZWN1cnNpdmVfbG9jayAgID0gMSA8PCA2OwovLyBEZW5vdGVzIHRoYXQgdGhlIHVubG9jayBvcGVyYXRpb24gcmVsZWFzZXMgYWxsIHJlY3Vyc2lvbiBsZXZlbHMuCi8vIE51bWJlciBvZiByZWxlYXNlZCBsZXZlbHMgaXMgcmV0dXJuZWQgYW5kIGxhdGVyIG11c3QgYmUgcGFzc2VkIHRvCi8vIHRoZSBjb3JyZXNwb25kaW5nIF9fdHNhbl9tdXRleF9wb3N0X2xvY2sgYW5ub3RhdGlvbi4Kc3RhdGljIGNvbnN0IHVuc2lnbmVkIF9fdHNhbl9tdXRleF9yZWN1cnNpdmVfdW5sb2NrID0gMSA8PCA3OwoKLy8gQ29udmVuaWVudCBjb21wb3NlZCBjb25zdGFudHMuCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fbXV0ZXhfdHJ5X3JlYWRfbG9jayA9CiAgICBfX3RzYW5fbXV0ZXhfcmVhZF9sb2NrIHwgX190c2FuX211dGV4X3RyeV9sb2NrOwpzdGF0aWMgY29uc3QgdW5zaWduZWQgX190c2FuX211dGV4X3RyeV9yZWFkX2xvY2tfZmFpbGVkID0KICAgIF9fdHNhbl9tdXRleF90cnlfcmVhZF9sb2NrIHwgX190c2FuX211dGV4X3RyeV9sb2NrX2ZhaWxlZDsKCi8vIEFubm90YXRlIGNyZWF0aW9uIG9mIGEgbXV0ZXguCi8vIFN1cHBvcnRlZCBmbGFnczogbXV0ZXggY3JlYXRpb24gZmxhZ3MuCnZvaWQgX190c2FuX211dGV4X2NyZWF0ZSh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CgovLyBBbm5vdGF0ZSBkZXN0cnVjdGlvbiBvZiBhIG11dGV4LgovLyBTdXBwb3J0ZWQgZmxhZ3M6Ci8vICAgLSBfX3RzYW5fbXV0ZXhfbGlua2VyX2luaXQKLy8gICAtIF9fdHNhbl9tdXRleF9ub3Rfc3RhdGljCnZvaWQgX190c2FuX211dGV4X2Rlc3Ryb3kodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwoKLy8gQW5ub3RhdGUgc3RhcnQgb2YgbG9jayBvcGVyYXRpb24uCi8vIFN1cHBvcnRlZCBmbGFnczoKLy8gICAtIF9fdHNhbl9tdXRleF9yZWFkX2xvY2sKLy8gICAtIF9fdHNhbl9tdXRleF90cnlfbG9jawovLyAgIC0gYWxsIG11dGV4IGNyZWF0aW9uIGZsYWdzCnZvaWQgX190c2FuX211dGV4X3ByZV9sb2NrKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKCi8vIEFubm90YXRlIGVuZCBvZiBsb2NrIG9wZXJhdGlvbi4KLy8gU3VwcG9ydGVkIGZsYWdzOgovLyAgIC0gX190c2FuX211dGV4X3JlYWRfbG9jayAobXVzdCBtYXRjaCBfX3RzYW5fbXV0ZXhfcHJlX2xvY2spCi8vICAgLSBfX3RzYW5fbXV0ZXhfdHJ5X2xvY2sgKG11c3QgbWF0Y2ggX190c2FuX211dGV4X3ByZV9sb2NrKQovLyAgIC0gX190c2FuX211dGV4X3RyeV9sb2NrX2ZhaWxlZAovLyAgIC0gX190c2FuX211dGV4X3JlY3Vyc2l2ZV9sb2NrCi8vICAgLSBhbGwgbXV0ZXggY3JlYXRpb24gZmxhZ3MKdm9pZCBfX3RzYW5fbXV0ZXhfcG9zdF9sb2NrKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzLCBpbnQgcmVjdXJzaW9uKTsKCi8vIEFubm90YXRlIHN0YXJ0IG9mIHVubG9jayBvcGVyYXRpb24uCi8vIFN1cHBvcnRlZCBmbGFnczoKLy8gICAtIF9fdHNhbl9tdXRleF9yZWFkX2xvY2sKLy8gICAtIF9fdHNhbl9tdXRleF9yZWN1cnNpdmVfdW5sb2NrCmludCBfX3RzYW5fbXV0ZXhfcHJlX3VubG9jayh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CgovLyBBbm5vdGF0ZSBlbmQgb2YgdW5sb2NrIG9wZXJhdGlvbi4KLy8gU3VwcG9ydGVkIGZsYWdzOgovLyAgIC0gX190c2FuX211dGV4X3JlYWRfbG9jayAobXVzdCBtYXRjaCBfX3RzYW5fbXV0ZXhfcHJlX3VubG9jaykKdm9pZCBfX3RzYW5fbXV0ZXhfcG9zdF91bmxvY2sodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwoKLy8gQW5ub3RhdGUgc3RhcnQvZW5kIG9mIG5vdGlmeS9zaWduYWwvYnJvYWRjYXN0IG9wZXJhdGlvbi4KLy8gU3VwcG9ydGVkIGZsYWdzOiBub25lLgp2b2lkIF9fdHNhbl9tdXRleF9wcmVfc2lnbmFsKHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKdm9pZCBfX3RzYW5fbXV0ZXhfcG9zdF9zaWduYWwodm9pZCAqYWRkciwgdW5zaWduZWQgZmxhZ3MpOwoKLy8gQW5ub3RhdGUgc3RhcnQvZW5kIG9mIGEgcmVnaW9uIG9mIGNvZGUgd2hlcmUgbG9jay91bmxvY2svc2lnbmFsIG9wZXJhdGlvbgovLyBkaXZlcnRzIHRvIGRvIHNvbWV0aGluZyBlbHNlIHVucmVsYXRlZCB0byB0aGUgbXV0ZXguIFRoaXMgY2FuIGJlIHVzZWQgdG8KLy8gYW5ub3RhdGUsIGZvciBleGFtcGxlLCBjYWxscyBpbnRvIGNvb3BlcmF0aXZlIHNjaGVkdWxlciBvciBjb250ZW50aW9uCi8vIHByb2ZpbGluZyBjb2RlLgovLyBUaGVzZSBhbm5vdGF0aW9ucyBtdXN0IGJlIGNhbGxlZCBvbmx5IGZyb20gd2l0aGluCi8vIF9fdHNhbl9tdXRleF9wcmUvcG9zdF9sb2NrLCBfX3RzYW5fbXV0ZXhfcHJlL3Bvc3RfdW5sb2NrLAovLyBfX3RzYW5fbXV0ZXhfcHJlL3Bvc3Rfc2lnbmFsIHJlZ2lvbnMuCi8vIFN1cHBvcnRlZCBmbGFnczogbm9uZS4Kdm9pZCBfX3RzYW5fbXV0ZXhfcHJlX2RpdmVydCh2b2lkICphZGRyLCB1bnNpZ25lZCBmbGFncyk7CnZvaWQgX190c2FuX211dGV4X3Bvc3RfZGl2ZXJ0KHZvaWQgKmFkZHIsIHVuc2lnbmVkIGZsYWdzKTsKCi8vIEV4dGVybmFsIHJhY2UgZGV0ZWN0aW9uIEFQSS4KLy8gQ2FuIGJlIHVzZWQgYnkgbm9uLWluc3RydW1lbnRlZCBsaWJyYXJpZXMgdG8gZGV0ZWN0IHdoZW4gdGhlaXIgb2JqZWN0cyBhcmUKLy8gYmVpbmcgdXNlZCBpbiBhbiB1bnNhZmUgbWFubmVyLgovLyAgIC0gX190c2FuX2V4dGVybmFsX3JlYWQvX190c2FuX2V4dGVybmFsX3dyaXRlIGFubm90YXRlcyB0aGUgbG9naWNhbCByZWFkcwovLyAgICAgICBhbmQgd3JpdGVzIG9mIHRoZSBvYmplY3QgYXQgdGhlIHNwZWNpZmllZCBhZGRyZXNzLiAnY2FsbGVyX3BjJyBzaG91bGQKLy8gICAgICAgYmUgdGhlIFBDIG9mIHRoZSBsaWJyYXJ5IHVzZXIsIHdoaWNoIHRoZSBsaWJyYXJ5IGNhbiBvYnRhaW4gd2l0aCBlLmcuCi8vICAgICAgIGBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMClgLgovLyAgIC0gX190c2FuX2V4dGVybmFsX3JlZ2lzdGVyX3RhZyByZWdpc3RlcnMgYSAndGFnJyB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwKLy8gICAgICAgd2hpY2ggaXMgbGF0ZXIgdXNlZCBpbiByZWFkL3dyaXRlIGFubm90YXRpb25zIHRvIGRlbm90ZSB0aGUgb2JqZWN0IHR5cGUKLy8gICAtIF9fdHNhbl9leHRlcm5hbF9hc3NpZ25fdGFnIGNhbiBvcHRpb25hbGx5IG1hcmsgYSBoZWFwIG9iamVjdCB3aXRoIGEgdGFnCnZvaWQgKl9fdHNhbl9leHRlcm5hbF9yZWdpc3Rlcl90YWcoY29uc3QgY2hhciAqb2JqZWN0X3R5cGUpOwp2b2lkIF9fdHNhbl9leHRlcm5hbF9yZWdpc3Rlcl9oZWFkZXIodm9pZCAqdGFnLCBjb25zdCBjaGFyICpoZWFkZXIpOwp2b2lkIF9fdHNhbl9leHRlcm5hbF9hc3NpZ25fdGFnKHZvaWQgKmFkZHIsIHZvaWQgKnRhZyk7CnZvaWQgX190c2FuX2V4dGVybmFsX3JlYWQodm9pZCAqYWRkciwgdm9pZCAqY2FsbGVyX3BjLCB2b2lkICp0YWcpOwp2b2lkIF9fdHNhbl9leHRlcm5hbF93cml0ZSh2b2lkICphZGRyLCB2b2lkICpjYWxsZXJfcGMsIHZvaWQgKnRhZyk7CgovLyBGaWJlciBzd2l0Y2hpbmcgQVBJLgovLyAgIC0gVFNBTiBjb250ZXh0IGZvciBmaWJlciBjYW4gYmUgY3JlYXRlZCBieSBfX3RzYW5fY3JlYXRlX2ZpYmVyCi8vICAgICBhbmQgZnJlZWQgYnkgX190c2FuX2Rlc3Ryb3lfZmliZXIuCi8vICAgLSBUU0FOIGNvbnRleHQgb2YgY3VycmVudCBmaWJlciBvciB0aHJlYWQgY2FuIGJlIG9idGFpbmVkCi8vICAgICBieSBjYWxsaW5nIF9fdHNhbl9nZXRfY3VycmVudF9maWJlci4KLy8gICAtIF9fdHNhbl9zd2l0Y2hfdG9fZmliZXIgc2hvdWxkIGJlIGNhbGxlZCBpbW1lZGlhdGVseSBiZWZvcmUgc3dpdGNoCi8vICAgICB0byBmaWJlciwgc3VjaCBhcyBjYWxsIG9mIHN3YXBjb250ZXh0LgovLyAgIC0gRmliZXIgbmFtZSBjYW4gYmUgc2V0IGJ5IF9fdHNhbl9zZXRfZmliZXJfbmFtZS4Kdm9pZCAqX190c2FuX2dldF9jdXJyZW50X2ZpYmVyKHZvaWQpOwp2b2lkICpfX3RzYW5fY3JlYXRlX2ZpYmVyKHVuc2lnbmVkIGZsYWdzKTsKdm9pZCBfX3RzYW5fZGVzdHJveV9maWJlcih2b2lkICpmaWJlcik7CnZvaWQgX190c2FuX3N3aXRjaF90b19maWJlcih2b2lkICpmaWJlciwgdW5zaWduZWQgZmxhZ3MpOwp2b2lkIF9fdHNhbl9zZXRfZmliZXJfbmFtZSh2b2lkICpmaWJlciwgY29uc3QgY2hhciAqbmFtZSk7CgovLyBGbGFncyBmb3IgX190c2FuX3N3aXRjaF90b19maWJlcjoKLy8gRG8gbm90IGVzdGFibGlzaCBhIGhhcHBlbnMtYmVmb3JlIHJlbGF0aW9uIGJldHdlZW4gZmliZXJzCnN0YXRpYyBjb25zdCB1bnNpZ25lZCBfX3RzYW5fc3dpdGNoX3RvX2ZpYmVyX25vX3N5bmMgPSAxIDw8IDA7CgovLyBVc2VyLXByb3ZpZGVkIGNhbGxiYWNrIGludm9rZWQgb24gVFNhbiBpbml0aWFsaXphdGlvbi4Kdm9pZCBfX3RzYW5fb25faW5pdGlhbGl6ZSgpOwoKLy8gVXNlci1wcm92aWRlZCBjYWxsYmFjayBpbnZva2VkIG9uIFRTYW4gc2h1dGRvd24uCi8vIGBmYWlsZWRgIC0gTm9uemVybyBpZiBUU2FuIGRpZCBkZXRlY3QgaXNzdWVzLCB6ZXJvIG90aGVyd2lzZS4KLy8gUmV0dXJuIGAwYCBpZiBUU2FuIHNob3VsZCBleGl0IGFzIGlmIG5vIGlzc3VlcyB3ZXJlIGRldGVjdGVkLiAgUmV0dXJuIG5vbnplcm8KLy8gaWYgVFNhbiBzaG91bGQgZXhpdCBhcyBpZiBpc3N1ZXMgd2VyZSBkZXRlY3RlZC4KaW50IF9fdHNhbl9vbl9maW5hbGl6ZShpbnQgZmFpbGVkKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfVFNBTl9JTlRFUkZBQ0VfSAoAIGlzIG5vdCBhIHN0cmluZy4AcHJvdG8AUmV3cml0ZSBzY2hlbWEgZXJyb3I6ICdcJyBtdXN0IGJlIGZvbGxvd2VkIGJ5IGEgZGlnaXQgb3IgJ1wnLgAuLi4AWzpncmFwaDpdAEJvcG9tb2ZvAEd1bmphbGFfR29uZGkAVGFrcmkAJXNAICUqcCAgJTlkCgB3cm9uZyBudW1iZXIgb2YgZW50cmllcwBwcmV2IDwgbmV4dAByZWludGVycHJldF9jYXN0PGNoYXIgKj4ocHJldikgKyBwcmV2LT5oZWFkZXIuc2l6ZSA8IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciAqPihuZXh0KQBEZgAtPgBpb3N0cmVhbQBoZWFkIAB3YWl0aW5nIHdoZW4gc2hvdWxkbid0IGJlAC9zeXN0ZW0vdXNyL3NoYXJlL3pvbmVpbmZvL3R6ZGF0YQBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL2VjX2tleS5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvc2NhbGFyLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcGFkZGluZy5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvcnNhL3JzYS5jAEZJUFMgc2VsZiB0ZXN0AEZGQyBESABPUEVOU1NMX2lhMzJjYXAAa3l0aGUucHJvdG8uRW50cnkuZWRnZV9raW5kAGMAc3RhdF9wYXRoADEASW5kZXhIZWFkZXJNYXAAI2lmACNlbGlmAGFybV9jbXNlLmgAYXJtX3N2ZS5oAGF2eDUxMmJ3aW50cmluLmgAYXZ4NTEydmxpbnRyaW4uaABhdng1MTJ2bHZwMmludGVyc2VjdGludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0tIGVucWNtZGludHJpbi5oIC0gZW5xY21kIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8ZW5xY21kaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0VOUUNNRElOVFJJTl9ICiNkZWZpbmUgX19FTlFDTURJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlICovCiNkZWZpbmUgX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiZW5xY21kIikpKQoKLy8vIFJlYWRzIDY0LWJ5dGUgY29tbWFuZCBwb2ludGVkIGJ5IFxhIF9fc3JjLCBmb3JtYXRzIDY0LWJ5dGUgZW5xdWV1ZSBzdG9yZQovLy8gICAgZGF0YSwgYW5kIHBlcmZvcm1zIDY0LWJ5dGUgZW5xdWV1ZSBzdG9yZSB0byBtZW1vcnkgcG9pbnRlZCBieSBcYSBfX2RzdC4KLy8vICAgIFRoaXMgaW50cmluc2ljcyBtYXkgb25seSBiZSB1c2VkIGluIFVzZXIgbW9kZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWNzIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gRU5RQ01EIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHN0Ci8vLyAgICBQb2ludGVyIHRvIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgZW5xdWV1ZSBzdG9yZS4KLy8vIFxwYXJhbSBfX3NyYwovLy8gICAgUG9pbnRlciB0byA2NC1ieXRlIGNvbW1hbmQgZGF0YS4KLy8vIFxyZXR1cm5zIElmIHRoZSBjb21tYW5kIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IHdyaXR0ZW4gdG8gXGEgX19kc3QgdGhlbiAwIGlzCi8vLyAgICByZXR1cm5lZC4gT3RoZXJ3aXNlIDEgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfREVGQVVMVF9GTl9BVFRSUwpfZW5xY21kICh2b2lkICpfX2RzdCwgY29uc3Qgdm9pZCAqX19zcmMpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfZW5xY21kKF9fZHN0LCBfX3NyYyk7Cn0KCi8vLyBSZWFkcyA2NC1ieXRlIGNvbW1hbmQgcG9pbnRlZCBieSBcYSBfX3NyYywgZm9ybWF0cyA2NC1ieXRlIGVucXVldWUgc3RvcmUKLy8vICAgIGRhdGEsIGFuZCBwZXJmb3JtcyA2NC1ieXRlIGVucXVldWUgc3RvcmUgdG8gbWVtb3J5IHBvaW50ZWQgYnkgXGEgX19kc3QKLy8vICAgIFRoaXMgaW50cmluc2ljIG1heSBvbmx5IGJlIHVzZWQgaW4gUHJpdmlsZWdlZCBtb2RlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpY3MgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBFTlFDTURTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fZHN0Ci8vLyAgICBQb2ludGVyIHRvIHRoZSBkZXN0aW5hdGlvbiBvZiB0aGUgZW5xdWV1ZSBzdG9yZS4KLy8vIFxwYXJhbSBfX3NyYwovLy8gICAgUG9pbnRlciB0byA2NC1ieXRlIGNvbW1hbmQgZGF0YS4KLy8vIFxyZXR1cm5zIElmIHRoZSBjb21tYW5kIGRhdGEgaXMgc3VjY2Vzc2Z1bGx5IHdyaXR0ZW4gdG8gXGEgX19kc3QgdGhlbiAwIGlzCi8vLyAgICByZXR1cm5lZC4gT3RoZXJ3aXNlIDEgaXMgcmV0dXJuZWQuCnN0YXRpYyBfX2lubGluZV9fIGludCBfREVGQVVMVF9GTl9BVFRSUwpfZW5xY21kcyAodm9pZCAqX19kc3QsIGNvbnN0IHZvaWQgKl9fc3JjKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2VucWNtZHMoX19kc3QsIF9fc3JjKTsKfQoKI3VuZGVmIF9ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19FTlFDTURJTlRSSU5fSCAqLwoAaW50cmluLmgAc3RkYWxpZ24uaABzYW5pdGl6ZXIvaHdhc2FuX2ludGVyZmFjZS5oAHJvb3QAdGV4dCBzaXplOiAAWzpeYWxwaGE6XQBbOl5hc2NpaTpdAFs6XmdyYXBoOl0AWzpwcmludDpdAFs6c3BhY2U6XQBub3AgLT4gJWQAdW5leHBlY3RlZCBlcnJvcgAoP0hhdmVNYXRjaDolZCkAW11eLVwAQmFtdW0AQ2FyaWFuAE1lZGVmYWlkcmluAE1lcm9pdGljX0N1cnNpdmUAT3NtYW55YQBQc2FsdGVyX1BhaGxhdmkAU2sAU0lHU0VHVgBMSU5VWF8yLjYAbmV4dC0+aGVhZGVyLm1hZ2ljID09IE1hZ2ljKGtNYWdpY1VuYWxsb2NhdGVkLCAmbmV4dC0+aGVhZGVyKQBmbG9hdDE2AG1JADw8AFNzAEJhZCBTdGF0dXNPciBhY2Nlc3M6IABJbnZhbGlkIGxlbmd0aCAAMDEyMzQ1Njc4OUFCQ0RFRgBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvc3luY2hyb25pemF0aW9uL211dGV4LmNjAGVucXVldWVfYWZ0ZXItPnNraXAgPT0gbnVsbHB0ciB8fCBNdUVxdWl2YWxlbnRXYWl0ZXIoZW5xdWV1ZV9hZnRlciwgcykATE9DQUxUSU1FAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvYm4vYWRkLmMAcmVhc29uKCV1KQAlbHU6JXM6JXM6JWQ6JXMKAGt5dGhlLnByb3RvLkNvbXBpbGF0aW9uVW5pdC5hcmd1bWVudAAKAGt5dGhlLnByb3RvLmNvbW1vbi5GYWN0Lm5hbWUALS1uby13YXJuaW5ncwBLWVRIRV9ST09UX0RJUkVDVE9SWQBGYWlsZWQgdG8gb3BlbiBLemlwV3JpdGVyOiAAcmVxdWlyZWRfaW5wdXQAICgxPQBJbnZhcmlhbnQgYnJva2VuOiBvbmx5IG5vZGVzIHRoYXQgc3VwcG9ydCBtZW1vaXphdGlvbiBtYXkgYmUgdXNlZCBpbiB0aGUgcGFyZW50IG1hcC4AZ2ZuaWludHJpbi5oAC8qID09PS0tLS0tLS0tIHZhZGVmcy5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogT25seSBpbmNsdWRlIHRoaXMgaWYgd2UgYXJlIGFpbWluZyBmb3IgTVNWQyBjb21wYXRpYmlsaXR5LiAqLwojaWZuZGVmIF9NU0NfVkVSCiNpbmNsdWRlX25leHQgPHZhZGVmcy5oPgojZWxzZQoKI2lmbmRlZiBfX2NsYW5nX3ZhZGVmc19oCiNkZWZpbmUgX19jbGFuZ192YWRlZnNfaAoKI2luY2x1ZGVfbmV4dCA8dmFkZWZzLmg+CgovKiBPdmVycmlkZSBtYWNyb3MgZnJvbSB2YWRlZnMuaCB3aXRoIGRlZmluaXRpb25zIHRoYXQgd29yayB3aXRoIENsYW5nLiAqLwojaWZkZWYgX2NydF92YV9zdGFydAojdW5kZWYgX2NydF92YV9zdGFydAojZGVmaW5lIF9jcnRfdmFfc3RhcnQoYXAsIHBhcmFtKSBfX2J1aWx0aW5fdmFfc3RhcnQoYXAsIHBhcmFtKQojZW5kaWYKI2lmZGVmIF9jcnRfdmFfZW5kCiN1bmRlZiBfY3J0X3ZhX2VuZAojZGVmaW5lIF9jcnRfdmFfZW5kKGFwKSAgICAgICAgICBfX2J1aWx0aW5fdmFfZW5kKGFwKQojZW5kaWYKI2lmZGVmIF9jcnRfdmFfYXJnCiN1bmRlZiBfY3J0X3ZhX2FyZwojZGVmaW5lIF9jcnRfdmFfYXJnKGFwLCB0eXBlKSAgICBfX2J1aWx0aW5fdmFfYXJnKGFwLCB0eXBlKQojZW5kaWYKCi8qIFZTIDIwMTUgc3dpdGNoZWQgdG8gZG91YmxlIHVuZGVyc2NvcmUgbmFtZXMsIHdoaWNoIGlzIGFuIGltcHJvdmVtZW50LCBidXQgbm93CiAqIHdlIGhhdmUgdG8gaW50ZXJjZXB0IHRob3NlIG5hbWVzIHRvby4KICovCiNpZmRlZiBfX2NydF92YV9zdGFydAojdW5kZWYgX19jcnRfdmFfc3RhcnQKI2RlZmluZSBfX2NydF92YV9zdGFydChhcCwgcGFyYW0pIF9fYnVpbHRpbl92YV9zdGFydChhcCwgcGFyYW0pCiNlbmRpZgojaWZkZWYgX19jcnRfdmFfZW5kCiN1bmRlZiBfX2NydF92YV9lbmQKI2RlZmluZSBfX2NydF92YV9lbmQoYXApICAgICAgICAgIF9fYnVpbHRpbl92YV9lbmQoYXApCiNlbmRpZgojaWZkZWYgX19jcnRfdmFfYXJnCiN1bmRlZiBfX2NydF92YV9hcmcKI2RlZmluZSBfX2NydF92YV9hcmcoYXAsIHR5cGUpICAgIF9fYnVpbHRpbl92YV9hcmcoYXAsIHR5cGUpCiNlbmRpZgoKI2VuZGlmCiNlbmRpZgoALyo9PT0tLS0tIHdtbWludHJpbi5oIC0gQUVTIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fV01NSU5UUklOX0gKI2RlZmluZSBfX1dNTUlOVFJJTl9ICgojaW5jbHVkZSA8ZW1taW50cmluLmg+CgojaW5jbHVkZSA8X193bW1pbnRyaW5fYWVzLmg+CgojaW5jbHVkZSA8X193bW1pbnRyaW5fcGNsbXVsLmg+CgojZW5kaWYgLyogX19XTU1JTlRSSU5fSCAqLwoAeHNhdmVzaW50cmluLmgAYml0cy9zdGRhdG9taWMuaABwcGNfd3JhcHBlcnMvcG1taW50cmluLmgALy89PT0tLSBzYW5pdGl6ZXIvbHNhbl9pbnRlcmZhY2UuaCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLSBDKysgLSotPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gVGhpcyBmaWxlIGlzIGEgcGFydCBvZiBMZWFrU2FuaXRpemVyLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlci4KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KI2lmbmRlZiBTQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9MU0FOX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKICAvLyBBbGxvY2F0aW9ucyBtYWRlIGJldHdlZW4gY2FsbHMgdG8gX19sc2FuX2Rpc2FibGUoKSBhbmQgX19sc2FuX2VuYWJsZSgpIHdpbGwKICAvLyBiZSB0cmVhdGVkIGFzIG5vbi1sZWFrcy4gRGlzYWJsZS9lbmFibGUgcGFpcnMgbWF5IGJlIG5lc3RlZC4KICB2b2lkIF9fbHNhbl9kaXNhYmxlKHZvaWQpOwogIHZvaWQgX19sc2FuX2VuYWJsZSh2b2lkKTsKCiAgLy8gVGhlIGhlYXAgb2JqZWN0IGludG8gd2hpY2ggcCBwb2ludHMgd2lsbCBiZSB0cmVhdGVkIGFzIGEgbm9uLWxlYWsuCiAgdm9pZCBfX2xzYW5faWdub3JlX29iamVjdChjb25zdCB2b2lkICpwKTsKCiAgLy8gTWVtb3J5IHJlZ2lvbnMgcmVnaXN0ZXJlZCB0aHJvdWdoIHRoaXMgaW50ZXJmYWNlIHdpbGwgYmUgdHJlYXRlZCBhcyBzb3VyY2VzCiAgLy8gb2YgbGl2ZSBwb2ludGVycyBkdXJpbmcgbGVhayBjaGVja2luZy4gVXNlZnVsIGlmIHlvdSBzdG9yZSBwb2ludGVycyBpbgogIC8vIG1hcHBlZCBtZW1vcnkuCiAgLy8gUG9pbnRzIG9mIG5vdGU6CiAgLy8gLSBfX2xzYW5fdW5yZWdpc3Rlcl9yb290X3JlZ2lvbigpIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIHNhbWUgcG9pbnRlciBhbmQKICAvLyBzaXplIHRoYXQgaGF2ZSBlYXJsaWVyIGJlZW4gcGFzc2VkIHRvIF9fbHNhbl9yZWdpc3Rlcl9yb290X3JlZ2lvbigpCiAgLy8gLSBMU2FuIHdpbGwgc2tpcCBhbnkgaW5hY2Nlc3NpYmxlIG1lbW9yeSB3aGVuIHNjYW5uaW5nIGEgcm9vdCByZWdpb24uIEUuZy4sCiAgLy8gaWYgeW91IG1hcCBtZW1vcnkgd2l0aGluIGEgbGFyZ2VyIHJlZ2lvbiB0aGF0IHlvdSBoYXZlIG1wcm90ZWN0J2VkLCB5b3UgY2FuCiAgLy8gcmVnaXN0ZXIgdGhlIGVudGlyZSBsYXJnZSByZWdpb24uCiAgLy8gLSB0aGUgaW1wbGVtZW50YXRpb24gaXMgbm90IG9wdGltaXplZCBmb3IgcGVyZm9ybWFuY2UuIFRoaXMgaW50ZXJmYWNlIGlzCiAgLy8gaW50ZW5kZWQgdG8gYmUgdXNlZCBmb3IgYSBzbWFsbCBudW1iZXIgb2YgcmVsYXRpdmVseSBzdGF0aWMgcmVnaW9ucy4KICB2b2lkIF9fbHNhbl9yZWdpc3Rlcl9yb290X3JlZ2lvbihjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCBfX2xzYW5fdW5yZWdpc3Rlcl9yb290X3JlZ2lvbihjb25zdCB2b2lkICpwLCBzaXplX3Qgc2l6ZSk7CgogIC8vIENoZWNrIGZvciBsZWFrcyBub3cuIFRoaXMgZnVuY3Rpb24gYmVoYXZlcyBpZGVudGljYWxseSB0byB0aGUgZGVmYXVsdAogIC8vIGVuZC1vZi1wcm9jZXNzIGxlYWsgY2hlY2suIEluIHBhcnRpY3VsYXIsIGl0IHdpbGwgdGVybWluYXRlIHRoZSBwcm9jZXNzIGlmCiAgLy8gbGVha3MgYXJlIGZvdW5kIGFuZCB0aGUgZXhpdGNvZGUgcnVudGltZSBmbGFnIGlzIG5vbi16ZXJvLgogIC8vIFN1YnNlcXVlbnQgY2FsbHMgdG8gdGhpcyBmdW5jdGlvbiB3aWxsIGhhdmUgbm8gZWZmZWN0IGFuZCBlbmQtb2YtcHJvY2VzcwogIC8vIGxlYWsgY2hlY2sgd2lsbCBub3QgcnVuLiBFZmZlY3RpdmVseSwgZW5kLW9mLXByb2Nlc3MgbGVhayBjaGVjayBpcyBtb3ZlZCB0bwogIC8vIHRoZSB0aW1lIG9mIGZpcnN0IGludm9jYXRpb24gb2YgdGhpcyBmdW5jdGlvbi4KICAvLyBCeSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24gZWFybHkgZHVyaW5nIHByb2Nlc3Mgc2h1dGRvd24sIHlvdSBjYW4gaW5zdHJ1Y3QKICAvLyBMU2FuIHRvIGlnbm9yZSBzaHV0ZG93bi1vbmx5IGxlYWtzIHdoaWNoIGhhcHBlbiBsYXRlciBvbi4KICB2b2lkIF9fbHNhbl9kb19sZWFrX2NoZWNrKHZvaWQpOwoKICAvLyBDaGVjayBmb3IgbGVha3Mgbm93LiBSZXR1cm5zIHplcm8gaWYgbm8gbGVha3MgaGF2ZSBiZWVuIGZvdW5kIG9yIGlmIGxlYWsKICAvLyBkZXRlY3Rpb24gaXMgZGlzYWJsZWQsIG5vbi16ZXJvIG90aGVyd2lzZS4KICAvLyBUaGlzIGZ1bmN0aW9uIG1heSBiZSBjYWxsZWQgcmVwZWF0ZWRseSwgZS5nLiB0byBwZXJpb2RpY2FsbHkgY2hlY2sgYQogIC8vIGxvbmctcnVubmluZyBwcm9jZXNzLiBJdCBwcmludHMgYSBsZWFrIHJlcG9ydCBpZiBhcHByb3ByaWF0ZSwgYnV0IGRvZXMgbm90CiAgLy8gdGVybWluYXRlIHRoZSBwcm9jZXNzLiBJdCBkb2VzIG5vdCBhZmZlY3QgdGhlIGJlaGF2aW9yIG9mCiAgLy8gX19sc2FuX2RvX2xlYWtfY2hlY2soKSBvciB0aGUgZW5kLW9mLXByb2Nlc3MgbGVhayBjaGVjaywgYW5kIGlzIG5vdAogIC8vIGFmZmVjdGVkIGJ5IHRoZW0uCiAgaW50IF9fbHNhbl9kb19yZWNvdmVyYWJsZV9sZWFrX2NoZWNrKHZvaWQpOwoKICAvLyBUaGUgdXNlciBtYXkgb3B0aW9uYWxseSBwcm92aWRlIHRoaXMgZnVuY3Rpb24gdG8gZGlzYWxsb3cgbGVhayBjaGVja2luZwogIC8vIGZvciB0aGUgcHJvZ3JhbSBpdCBpcyBsaW5rZWQgaW50byAoaWYgdGhlIHJldHVybiB2YWx1ZSBpcyBub24temVybykuIFRoaXMKICAvLyBmdW5jdGlvbiBtdXN0IGJlIGRlZmluZWQgYXMgcmV0dXJuaW5nIGEgY29uc3RhbnQgdmFsdWU7IGFueSBiZWhhdmlvciBiZXlvbmQKICAvLyB0aGF0IGlzIHVuc3VwcG9ydGVkLgogIC8vIFRvIGF2b2lkIGRlYWQgc3RyaXBwaW5nLCB5b3UgbWF5IG5lZWQgdG8gZGVmaW5lIHRoaXMgZnVuY3Rpb24gd2l0aAogIC8vIF9fYXR0cmlidXRlX18oKHVzZWQpKQogIGludCBfX2xzYW5faXNfdHVybmVkX29mZih2b2lkKTsKCiAgLy8gVGhpcyBmdW5jdGlvbiBtYXkgYmUgb3B0aW9uYWxseSBwcm92aWRlZCBieSB1c2VyIGFuZCBzaG91bGQgcmV0dXJuCiAgLy8gYSBzdHJpbmcgY29udGFpbmluZyBMU2FuIHJ1bnRpbWUgb3B0aW9ucy4gU2VlIGxzYW5fZmxhZ3MuaW5jIGZvciBkZXRhaWxzLgogIGNvbnN0IGNoYXIgKl9fbHNhbl9kZWZhdWx0X29wdGlvbnModm9pZCk7CgogIC8vIFRoaXMgZnVuY3Rpb24gbWF5IGJlIG9wdGlvbmFsbHkgcHJvdmlkZWQgYnkgdGhlIHVzZXIgYW5kIHNob3VsZCByZXR1cm4KICAvLyBhIHN0cmluZyBjb250YWluaW5nIExTYW4gc3VwcHJlc3Npb25zLgogIGNvbnN0IGNoYXIgKl9fbHNhbl9kZWZhdWx0X3N1cHByZXNzaW9ucyh2b2lkKTsKI2lmZGVmIF9fY3BsdXNwbHVzCn0gIC8vIGV4dGVybiAiQyIKCm5hbWVzcGFjZSBfX2xzYW4gewpjbGFzcyBTY29wZWREaXNhYmxlciB7CiBwdWJsaWM6CiAgU2NvcGVkRGlzYWJsZXIoKSB7IF9fbHNhbl9kaXNhYmxlKCk7IH0KICB+U2NvcGVkRGlzYWJsZXIoKSB7IF9fbHNhbl9lbmFibGUoKTsgfQp9Owp9ICAvLyBuYW1lc3BhY2UgX19sc2FuCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfTFNBTl9JTlRFUkZBQ0VfSAoAZnNlZWsoaGFuZGxlLCAwLCAyKQAsIDA9ACAoZnNlZWsoaGFuZGxlLCAwLCAwKT0AIT0ATWlzc2luZyBhIGNvbG9uIGFmdGVyIGEgbmFtZSBvZiBvYmplY3QgbWVtYmVyLgBVbmtub3duIG5hbWVkIGNhcHR1cmU6IAAnLCB1c2luZyBKU09OAFx4MDAAWzpeeGRpZ2l0Ol0AIGluIHN0ZXAAR290aGljAEthbm5hZGEATWFuZGFpYwBTaWduV3JpdGluZwBUZWx1Z3UAWmFuYWJhemFyX1NxdWFyZQAlc0AgJSpwICAlOWQgICVzCgAocmVhZF9mZCA+PiAyNCkgPT0gMCAmJiAod3JpdGVfZmQgPj4gMjQpID09IDAAc2l6ZSAlIGFyZW5hLT5wYWdlc2l6ZSA9PSAwAHB0aHJlYWRfc2lnbWFzayBmYWlsZWQ6ICVkAGYtPmhlYWRlci5hcmVuYSA9PSBhcmVuYQBiAGRlbGV0ZVtdAHBzAHJTAENoZWNrIG5vZGUtPmNvbmNhdCgpLT5sZWZ0ICE9IG51bGxwdHIgZmFpbGVkOiAARmFpbGVkIHRvIGxvY2F0ZSBzdW0gbm9kZQAgZXhjZWVkcyAweGZmACwgY2hpbGQgACwgY2xlbiA9IABlbnRyeVsAVW5sb2NrU2xvdyBpcyBjb25mdXNlZAB3LT53YWl0cC0+Y3Zfd29yZCA9PSBudWxscHRyAE11dGV4IEVucXVldWUgZmFpbHVyZQBsaWJjOgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2RoL2RoLmMAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9yc2EvcnNhX2ltcGwuYwBBRVMtQ0JDIERlY3J5cHRpb24gS0FUAGt5dGhlLnByb3RvLkt6aXBJbmZvLkNvcnB1c0luZm8uTGFuZ3VhZ2VTb3VyY2VzRW50cnkua2V5AE1hcEtleTo6dHlwZSBNYXBLZXkgaXMgbm90IGluaXRpYWxpemVkLiAAa3l0aGUucHJvdG8uQnVpbGREZXRhaWxzLmJ1aWxkX2NvbmZpZwBreXRoZS5wcm90by5jb21tb24uQ29ycHVzUGF0aC5wYXRoAGt5dGhlLnByb3RvLmNvbW1vbi5MaW5rLmRlZmluaXRpb24Ab3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9jeHgucGIuY2MALS1hbmFseXplfC1DQz98LUV8LUwuKnwtTU0/RHwtTVtNR1BdP3wtU3wtV1thbF0sLip8LWN8LWYobm8tKT9kYXRhLXNlY3Rpb25zfC1mKG5vLSk/ZnVuY3Rpb24tc2VjdGlvbnN8LWYobm8tKT9vbWl0LWZyYW1lLXBvaW50ZXJ8LWYobm8tKT9wcm9maWxlLWFyY3N8LWYobm8tKT9zdGFjay1wcm90ZWN0b3IoLWFsbCk/fC1mKG5vLSk/c3RyaWN0LWFsaWFzaW5nfC1mKG5vLSk/dGVzdC1jb3ZlcmFnZXwtZihuby0pP3Vucm9sbC1sb29wc3wtZnN5bnRheC1vbmx5fC1nLit8LW5vc3RhcnRmaWxlc3wtc3wtc2hhcmVkAFdyb3RlIEZpbGVEYXRhIHdpdGggbWlzbWF0Y2hlZCBkaWdlc3RzOiAAT2JqQwBhdng1MTJlcmludHJpbi5oAC8qPT09LS0tLS0tLS0tLS0tLSBhdng1MTJ2bHZibWkyaW50cmluLmggLSBWQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmx2Ym1pMmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTFZCTUkySU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMVkJNSTJJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZibWkyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMnZibWkyIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29tcHJlc3NfZXBpMTYoX19tMTI4aSBfX1MsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGkxMjhfbWFzayAoKF9fdjhoaSkgX19ELAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY29tcHJlc3NfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTEyOF9tYXNrICgoX192OGhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjhoaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc19lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTEyOF9tYXNrICgoX192MTZxaSkgX19ELAogICAgICAgICAgICAgIChfX3YxNnFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbXByZXNzX2VwaTgoX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9lcGkxNih2b2lkICpfX1AsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGkxMjhfbWFzayAoKF9fdjhoaSAqKSBfX1AsIChfX3Y4aGkpIF9fRCwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jb21wcmVzc3N0b3JldV9lcGk4KHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tMTI4aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlcWkxMjhfbWFzayAoKF9fdjE2cWkgKikgX19QLCAoX192MTZxaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGkxNihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGkxMjhfbWFzayAoKF9fdjhoaSkgX19ELAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kX2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0QpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpMTI4X21hc2sgKChfX3Y4aGkpIF9fRCwKICAgICAgICAgICAgICAoX192OGhpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2V4cGFuZF9lcGk4KF9fbTEyOGkgX19TLCBfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9leHBhbmRfZXBpOChfX21tYXNrMTYgX19VLCBfX20xMjhpIF9fRCkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfZXhwYW5kcWkxMjhfbWFzayAoKF9fdjE2cWkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19leHBhbmRsb2FkdV9lcGkxNihfX20xMjhpIF9fUywgX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopX19QLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpMTYoX19tbWFzazggX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTEyOF9tYXNrICgoY29uc3QgX192OGhpICopX19QLAogICAgICAgICAgICAgIChfX3Y4aGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfZXhwYW5kbG9hZHVfZXBpOChfX20xMjhpIF9fUywgX19tbWFzazE2IF9fVSwgdm9pZCBjb25zdCAqX19QKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRsb2FkcWkxMjhfbWFzayAoKGNvbnN0IF9fdjE2cWkgKilfX1AsCiAgICAgICAgICAgICAgKF9fdjE2cWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfZXhwYW5kbG9hZHVfZXBpOChfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTEyOF9tYXNrICgoY29uc3QgX192MTZxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZxaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb21wcmVzc19lcGkxNihfX20yNTZpIF9fUywgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzaGkyNTZfbWFzayAoKF9fdjE2aGkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb21wcmVzc19lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NoaTI1Nl9tYXNrICgoX192MTZoaSkgX19ELAogICAgICAgICAgICAgIChfX3YxNmhpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzX2VwaTgoX19tMjU2aSBfX1MsIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3FpMjU2X21hc2sgKChfX3YzMnFpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjMycWkpIF9fUywKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29tcHJlc3NfZXBpOChfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY29tcHJlc3NxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTE2KHZvaWQgKl9fUCwgX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICBfX2J1aWx0aW5faWEzMl9jb21wcmVzc3N0b3JlaGkyNTZfbWFzayAoKF9fdjE2aGkgKikgX19QLCAoX192MTZoaSkgX19ELAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbXByZXNzc3RvcmV1X2VwaTgodm9pZCAqX19QLCBfX21tYXNrMzIgX19VLCBfX20yNTZpIF9fRCkKewogIF9fYnVpbHRpbl9pYTMyX2NvbXByZXNzc3RvcmVxaTI1Nl9tYXNrICgoX192MzJxaSAqKSBfX1AsIChfX3YzMnFpKSBfX0QsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTE2KF9fbTI1NmkgX19TLCBfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fRCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kaGkyNTZfbWFzayAoKF9fdjE2aGkpIF9fRCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0QpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGhpMjU2X21hc2sgKChfX3YxNmhpKSBfX0QsCiAgICAgICAgICAgICAgKF9fdjE2aGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfZXhwYW5kX2VwaTgoX19tMjU2aSBfX1MsIF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfX1MsCiAgICAgICAgICAgICAgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2V4cGFuZF9lcGk4KF9fbW1hc2szMiBfX1UsIF9fbTI1NmkgX19EKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9leHBhbmRxaTI1Nl9tYXNrICgoX192MzJxaSkgX19ELAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2V4cGFuZGxvYWR1X2VwaTE2KF9fbTI1NmkgX19TLCBfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTI1Nl9tYXNrICgoY29uc3QgX192MTZoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZoaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGkxNihfX21tYXNrMTYgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRoaTI1Nl9tYXNrICgoY29uc3QgX192MTZoaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MTZoaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19leHBhbmRsb2FkdV9lcGk4KF9fbTI1NmkgX19TLCBfX21tYXNrMzIgX19VLCB2b2lkIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2V4cGFuZGxvYWRxaTI1Nl9tYXNrICgoY29uc3QgX192MzJxaSAqKV9fUCwKICAgICAgICAgICAgICAoX192MzJxaSkgX19TLAogICAgICAgICAgICAgIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9leHBhbmRsb2FkdV9lcGk4KF9fbW1hc2szMiBfX1UsIHZvaWQgY29uc3QgKl9fUCkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfZXhwYW5kbG9hZHFpMjU2X21hc2sgKChjb25zdCBfX3YzMnFpICopX19QLAogICAgICAgICAgICAgIChfX3YzMnFpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgIF9fVSk7Cn0KCiNkZWZpbmUgX21tMjU2X3NobGRpX2VwaTY0KEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaGxkcTI1NigoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX3NobGRpX2VwaTY0KFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NobGRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9zaGxkaV9lcGk2NChBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHExMjgoKF9fdjJkaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW1fbWFza19zaGxkaV9lcGk2NChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2hsZGlfZXBpNjQoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoUykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2hsZGlfZXBpNjQoVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NobGRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9zaGxkaV9lcGkzMihBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZGQyNTYoKF9fdjhzaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaGxkaV9lcGkzMihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaGxkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hsZGlfZXBpMzIoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobGRkMTI4KChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hsZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NobGRpX2VwaTMyKChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NobGRpX2VwaTMyKFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaGxkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfc2hsZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNobGR3MjU2KChfX3YxNmhpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaGxkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zaGxkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2hsZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9zaGxkaV9lcGkxNihBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHcxMjgoKF9fdjhoaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKShfX20xMjhpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW1fbWFza19zaGxkaV9lcGkxNihTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hsZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoUykpKQoKI2RlZmluZSBfbW1fbWFza3pfc2hsZGlfZXBpMTYoVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NobGRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NldHplcm9fc2kxMjgoKSkpCgojZGVmaW5lIF9tbTI1Nl9zaHJkaV9lcGk2NChBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZHEyNTYoKF9fdjRkaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShCKSwgKGludCkoSSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza19zaHJkaV9lcGk2NChTLCBVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShTKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9zaHJkaV9lcGk2NChVLCBBLCBCLCBJKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hyZGlfZXBpNjQoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmRxMTI4KChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hyZGlfZXBpNjQoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NocmRpX2VwaTY0KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NocmRpX2VwaTY0KFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaHJkaV9lcGk2NCgoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKI2RlZmluZSBfbW0yNTZfc2hyZGlfZXBpMzIoQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNocmRkMjU2KChfX3Y4c2kpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2hyZGlfZXBpMzIoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkoUykpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfc2hyZGlfZXBpMzIoVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKSkKCiNkZWZpbmUgX21tX3NocmRpX2VwaTMyKEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkZDEyOCgoX192NHNpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoaW50KShJKSkpCgojZGVmaW5lIF9tbV9tYXNrX3NocmRpX2VwaTMyKFMsIFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHJkaV9lcGkzMigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShTKSkpCgojZGVmaW5lIF9tbV9tYXNrel9zaHJkaV9lcGkzMihVLCBBLCBCLCBJKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hyZGlfZXBpMzIoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2V0emVyb19zaTEyOCgpKSkKCiNkZWZpbmUgX21tMjU2X3NocmRpX2VwaTE2KEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaHJkdzI1NigoX192MTZoaSkoX19tMjU2aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfc2hyZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZGlfZXBpMTYoKEEpLCAoQiksIChJKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpKF9fbTI1NmkpKFMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3NocmRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0d18yNTYoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NocmRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpKQoKI2RlZmluZSBfbW1fc2hyZGlfZXBpMTYoQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmR3MTI4KChfX3Y4aGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoQiksIChpbnQpKEkpKSkKCiNkZWZpbmUgX21tX21hc2tfc2hyZGlfZXBpMTYoUywgVSwgQSwgQiwgSSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOCgoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NocmRpX2VwaTE2KChBKSwgKEIpLCAoSSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpKF9fbTEyOGkpKFMpKSkKCiNkZWZpbmUgX21tX21hc2t6X3NocmRpX2VwaTE2KFUsIEEsIEIsIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHJkaV9lcGkxNigoQSksIChCKSwgKEkpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NobGR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaGxkdnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NobGR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hsZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hsZHZfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2hsZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobGR2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2hsZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaGxkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zaGxkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NobGR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaGxkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zaGxkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NobGR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NobGR2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2hsZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NobGR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGxkdmQxMjgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NobGR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hsZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hsZHZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaGxkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2hsZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNobGR2dzI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2hsZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NobGR2X2VwaTE2KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9zaGxkdl9lcGkxNihfX21tYXNrMTYgX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zaGxkdl9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hsZHZ3MTI4KChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19zaGxkdl9lcGkxNihfX20xMjhpIF9fQSwgX19tbWFzazggX19VLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0d18xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX21tX3NobGR2X2VwaTE2KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3NobGR2X2VwaTE2KF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hsZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2V0emVyb19zaTEyOCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NocmR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBzaHJkdnEyNTYoKF9fdjRkaSlfX0EsIChfX3Y0ZGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3NocmR2X2VwaTY0KF9fbTI1NmkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2hyZHZfZXBpNjQoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hyZHZfZXBpNjQoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2hyZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNocmR2cTEyOCgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfc2hyZHZfZXBpNjQoX19tMTI4aSBfX0EsIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zaHJkdl9lcGk2NChfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9zaHJkdl9lcGk2NChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NocmR2X2VwaTY0KF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaHJkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IsIF9fbTI1NmkgX19DKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Zwc2hyZHZkMjU2KChfX3Y4c2kpX19BLCAoX192OHNpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19zaHJkdl9lcGkzMihfX20yNTZpIF9fQSwgX19tbWFzazggX19VLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NocmR2X2VwaTMyKF9fQSwgX19CLCBfX0MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X3NocmR2X2VwaTMyKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2hyZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NocmR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkdmQxMjgoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NocmR2X2VwaTMyKF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfbW1fc2hyZHZfZXBpMzIoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hyZHZfZXBpMzIoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zaHJkdl9lcGkzMihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2hyZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92cHNocmR2dzI1NigoX192MTZoaSlfX0EsIChfX3YxNmhpKV9fQiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2aGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfc2hyZHZfZXBpMTYoX19tMjU2aSBfX0EsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazE2IF9fVSwgX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CLCBfX20yNTZpIF9fQykKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzI1NihfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NocmR2X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaHJkdncxMjgoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3NocmR2X2VwaTE2KF9fbTEyOGkgX19BLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzEyOChfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfbW1fc2hyZHZfZXBpMTYoX19BLCBfX0IsIF9fQyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfc2hyZHZfZXBpMTYoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfMTI4KF9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zaHJkdl9lcGkxNihfX0EsIF9fQiwgX19DKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGhpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYKAGF2eHZubmlpbnRyaW4uaABjZXRpbnRyaW4uaAAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwovKiAgIChjKSAyMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgICAgICAgICAqLwovKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaWZuZGVmIEhFWEFHT05fVFlQRVNfSAojZGVmaW5lIEhFWEFHT05fVFlQRVNfSAoKI2luY2x1ZGUgPGhleGFnb25fcHJvdG9zLmg+CgovKiBIZXhhZ29uIG5hbWVzICovCiNkZWZpbmUgSEVYQUdPTl9WZWN0IEhFWEFHT05fVmVjdDY0CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9EIEhFWEFHT05fVjY0X0dFVF9ECiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VRCBIRVhBR09OX1Y2NF9HRVRfVUQKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1cwIEhFWEFHT05fVjY0X0dFVF9XMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVzEgSEVYQUdPTl9WNjRfR0VUX1cxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VVzAgSEVYQUdPTl9WNjRfR0VUX1VXMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVVcxIEhFWEFHT05fVjY0X0dFVF9VVzEKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0gwIEhFWEFHT05fVjY0X0dFVF9IMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfSDEgSEVYQUdPTl9WNjRfR0VUX0gxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9IMiBIRVhBR09OX1Y2NF9HRVRfSDIKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0gzIEhFWEFHT05fVjY0X0dFVF9IMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUgwIEhFWEFHT05fVjY0X0dFVF9VSDAKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VIMSBIRVhBR09OX1Y2NF9HRVRfVUgxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VSDIgSEVYQUdPTl9WNjRfR0VUX1VIMgojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUgzIEhFWEFHT05fVjY0X0dFVF9VSDMKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0IwIEhFWEFHT05fVjY0X0dFVF9CMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjEgSEVYQUdPTl9WNjRfR0VUX0IxCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9CMiBIRVhBR09OX1Y2NF9HRVRfQjIKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0IzIEhFWEFHT05fVjY0X0dFVF9CMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjQgSEVYQUdPTl9WNjRfR0VUX0I0CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9CNSBIRVhBR09OX1Y2NF9HRVRfQjUKI2RlZmluZSBIRVhBR09OX1ZfR0VUX0I2IEhFWEFHT05fVjY0X0dFVF9CNgojZGVmaW5lIEhFWEFHT05fVl9HRVRfQjcgSEVYQUdPTl9WNjRfR0VUX0I3CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjAgSEVYQUdPTl9WNjRfR0VUX1VCMAojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUIxIEhFWEFHT05fVjY0X0dFVF9VQjEKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VCMiBIRVhBR09OX1Y2NF9HRVRfVUIyCiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjMgSEVYQUdPTl9WNjRfR0VUX1VCMwojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUI0IEhFWEFHT05fVjY0X0dFVF9VQjQKI2RlZmluZSBIRVhBR09OX1ZfR0VUX1VCNSBIRVhBR09OX1Y2NF9HRVRfVUI1CiNkZWZpbmUgSEVYQUdPTl9WX0dFVF9VQjYgSEVYQUdPTl9WNjRfR0VUX1VCNgojZGVmaW5lIEhFWEFHT05fVl9HRVRfVUI3IEhFWEFHT05fVjY0X0dFVF9VQjcKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0QgSEVYQUdPTl9WNjRfUFVUX0QKI2RlZmluZSBIRVhBR09OX1ZfUFVUX1cwIEhFWEFHT05fVjY0X1BVVF9XMAojZGVmaW5lIEhFWEFHT05fVl9QVVRfVzEgSEVYQUdPTl9WNjRfUFVUX1cxCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9IMCBIRVhBR09OX1Y2NF9QVVRfSDAKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0gxIEhFWEFHT05fVjY0X1BVVF9IMQojZGVmaW5lIEhFWEFHT05fVl9QVVRfSDIgSEVYQUdPTl9WNjRfUFVUX0gyCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9IMyBIRVhBR09OX1Y2NF9QVVRfSDMKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0IwIEhFWEFHT05fVjY0X1BVVF9CMAojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjEgSEVYQUdPTl9WNjRfUFVUX0IxCiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9CMiBIRVhBR09OX1Y2NF9QVVRfQjIKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0IzIEhFWEFHT05fVjY0X1BVVF9CMwojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjQgSEVYQUdPTl9WNjRfUFVUX0I0CiNkZWZpbmUgSEVYQUdPTl9WX1BVVF9CNSBIRVhBR09OX1Y2NF9QVVRfQjUKI2RlZmluZSBIRVhBR09OX1ZfUFVUX0I2IEhFWEFHT05fVjY0X1BVVF9CNgojZGVmaW5lIEhFWEFHT05fVl9QVVRfQjcgSEVYQUdPTl9WNjRfUFVUX0I3CiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9EIEhFWEFHT05fVjY0X0NSRUFURV9ECiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9XIEhFWEFHT05fVjY0X0NSRUFURV9XCiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9IIEhFWEFHT05fVjY0X0NSRUFURV9ICiNkZWZpbmUgSEVYQUdPTl9WX0NSRUFURV9CIEhFWEFHT05fVjY0X0NSRUFURV9CCgojaWZkZWYgX19jcGx1c3BsdXMKI2RlZmluZSBIRVhBR09OX1ZlY3RDIEhFWEFHT05fVmVjdDY0QwojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8qIDY0IEJpdCBWZWN0b3JzICovCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX21heV9hbGlhc19fKSkgSEVYQUdPTl9WZWN0NjQ7CgovKiBFeHRyYWN0IGRvdWJsZXdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9EKHYpICh2KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VRCh2KSAoKHVuc2lnbmVkIGxvbmcgbG9uZykodikpCgovKiBFeHRyYWN0IHdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9XMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1cxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24ud1sxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVVcwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IHV3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51d1swXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VVzEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgdXdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnV3WzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0gwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9IMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0gzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VIMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIHNob3J0IHVoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUgzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51aFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogRXh0cmFjdCBieXRlIG1hY3JvcyAqLwoKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0IyKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjModikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CNCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX0I1KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYls1XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfQjYodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9CNyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbN107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUI0KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X0dFVF9VQjUodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLnViWzVdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfR0VUX1VCNih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24udWJbNl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9HRVRfVUI3KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi51Yls3XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogTk9URTogQWxsIHNldCBtYWNyb3MgcmV0dXJuIGEgSEVYQUdPTl9WZWN0NjQgdHlwZSAqLwoKLyogU2V0IGRvdWJsZXdvcmQgbWFjcm8gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0QodiwgbmV3KSAobmV3KQoKLyogU2V0IHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX1cwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24ud1swXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfVzEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi53WzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9XMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZjAwMDAwMDAwTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIGludCkobmV3KSkpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9XMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHgwMDAwMDAwMGZmZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKG5ldykpIDw8IDMyTEwpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogU2V0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfSDAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9IMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmhbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uaFsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfSDModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmZmYwMDAwTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDAwMGZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkgPDwgMTZMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMDAwZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIHNob3J0KShuZXcpKSkgPDwgMzJMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0gzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwMDBmZmZmZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkobmV3KSkgPDwgNDhMTCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBTZXQgYnl0ZSBtYWNyb3MgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbNF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I1KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uYls1XSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjYodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmJbN10gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZmZmMDBMTCkgfCAoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmZmYwMGZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgOExMKSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmZmZjAwZmZmZkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDE2TEwpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CMyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZjAwZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgMjRMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I0KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZjAwZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAzMkxMKSkKI2RlZmluZSBIRVhBR09OX1Y2NF9QVVRfQjUodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwZmZmZmZmZmZmZkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDQwTEwpKQojZGVmaW5lIEhFWEFHT05fVjY0X1BVVF9CNih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZjAwZmZmZmZmZmZmZmZmTEwpIHwgKCgoSEVYQUdPTl9WZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgNDhMTCkpCiNkZWZpbmUgSEVYQUdPTl9WNjRfUFVUX0I3KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwZmZmZmZmZmZmZmZmZmZMTCkgfCAoKChIRVhBR09OX1ZlY3Q2NCkobmV3KSkgPDwgNTZMTCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBIRVhBR09OX1ZlY3Q2NCB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIGRvdWJsZXdvcmQgKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfQ1JFQVRFX0QoZCkgKGQpCgovKiBDcmVhdGUgZnJvbSB3b3JkcyAqLwoKI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9XKHcxLCB3MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMF0gPSAodzApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLndbMV0gPSAodzEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WNjRfQ1JFQVRFX1codzEsIHcwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKEhFWEFHT05fVmVjdDY0KSh3MSkpIDw8IDMyTEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKHcwKSAmIDB4ZmZmZmZmZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCi8qIENyZWF0ZSBmcm9tIGhhbGYgd29yZHMgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzBdID0gKGgwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzFdID0gKGgxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzJdID0gKGgyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5oWzNdID0gKGgzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9IKGgzLCBoMiwgaDEsIGgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChIRVhBR09OX1ZlY3Q2NCkoaDMpKSA8PCA0OExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoaDIpICYgMHhmZmZmKSkgPDwgMzJMTCkgfCAgICAgICAgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGgxKSAmIDB4ZmZmZikpIDw8IDE2TEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKGgwKSAmIDB4ZmZmZikpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KCiNpZmRlZiBfX2hleGFnb25fXwoKI2RlZmluZSBIRVhBR09OX1Y2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzBdID0gKGIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzFdID0gKGIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzJdID0gKGIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzNdID0gKGIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzRdID0gKGI0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzVdID0gKGI1KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzZdID0gKGI2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5iWzddID0gKGI3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1Y2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjY0X0NSRUFURV9CKGI3LCBiNiwgYjUsIGI0LCBiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChIRVhBR09OX1ZlY3Q2NCkoYjcpKSA8PCA1NkxMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjYpICYgMHhmZikpIDw8IDQ4TEwpIHwgICAgICAgICAgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGI1KSAmIDB4ZmYpKSA8PCA0MExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjQpICYgMHhmZikpIDw8IDMyTEwpIHwgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGIzKSAmIDB4ZmYpKSA8PCAyNExMKSB8ICgoKEhFWEFHT05fVmVjdDY0KSgoYjIpICYgMHhmZikpIDw8IDE2TEwpIHwgXAogICAoKChIRVhBR09OX1ZlY3Q2NCkoKGIxKSAmIDB4ZmYpKSA8PCA4TEwpIHwgKChIRVhBR09OX1ZlY3Q2NCkoKGIwKSAmIDB4ZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgSEVYQUdPTl9WZWN0NjRDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIEhFWEFHT05fVmVjdDY0Qyhsb25nIGxvbmcgZCA9IDApIDogZGF0YShkKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoaW50IHcxLCBpbnQgdzApIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfVyh3MSwgdzApKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoc2hvcnQgaDMsIHNob3J0IGgyLCBzaG9ydCBoMSwgc2hvcnQgaDApCiAgICAgIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkpIHt9OwogIEhFWEFHT05fVmVjdDY0QyhzaWduZWQgY2hhciBiNywgc2lnbmVkIGNoYXIgYjYsIHNpZ25lZCBjaGFyIGI1LCBzaWduZWQgY2hhciBiNCwKICAgICAgICAgICAgc2lnbmVkIGNoYXIgYjMsIHNpZ25lZCBjaGFyIGIyLCBzaWduZWQgY2hhciBiMSwgc2lnbmVkIGNoYXIgYjApCiAgICAgIDogZGF0YShIRVhBR09OX1Y2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApKSB7fTsKICBIRVhBR09OX1ZlY3Q2NEMoY29uc3QgSEVYQUdPTl9WZWN0NjRDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgSEVYQUdPTl9WZWN0NjRDICZvcGVyYXRvcj0oY29uc3QgSEVYQUdPTl9WZWN0NjRDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGxvbmcgbG9uZygpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3QgZG91Ymxld29yZCBtZXRob2RzCiAgbG9uZyBsb25nIEQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9EKGRhdGEpOwogIH07CiAgdW5zaWduZWQgbG9uZyBsb25nIFVEKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUQoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCB3b3JkIG1ldGhvZHMKICBpbnQgVzAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9XMChkYXRhKTsKICB9OwogIGludCBXMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1cxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXMCh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VXMChkYXRhKTsKICB9OwogIHVuc2lnbmVkIGludCBVVzEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VVzEoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0gxKGRhdGEpOwogIH07CiAgc2hvcnQgSDIodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9IMihkYXRhKTsKICB9OwogIHNob3J0IEgzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfSDMoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDAoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDIodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDIoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDModm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VSDMoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBieXRlIG1ldGhvZHMKICBzaWduZWQgY2hhciBCMCh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0IwKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CMShkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIyKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfQjIoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMyh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0IzKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CNChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEI1KHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfQjUoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCNih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX0I2KGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9CNyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUIzKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjQodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjQoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCNSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WNjRfR0VUX1VCNShkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUI2KHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1Y2NF9HRVRfVUI2KGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjY0X0dFVF9VQjcoZGF0YSk7CiAgfTsKCiAgLy8gTk9URTogQWxsIHNldCBtZXRob2RzIHJldHVybiBhIEhFWEFHT05fVmVjdDY0QyB0eXBlCgogIC8vIFNldCBkb3VibGV3b3JkIG1ldGhvZAogIEhFWEFHT05fVmVjdDY0QyBEKGxvbmcgbG9uZyBkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9EKGRhdGEsIGQpKTsKICB9OwoKICAvLyBTZXQgd29yZCBtZXRob2RzCiAgSEVYQUdPTl9WZWN0NjRDIFcwKGludCB3KSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9XMChkYXRhLCB3KSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgVzEoaW50IHcpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX1cxKGRhdGEsIHcpKTsKICB9OwoKICAvLyBTZXQgaGFsZiB3b3JkIG1ldGhvZHMKICBIRVhBR09OX1ZlY3Q2NEMgSDAoc2hvcnQgaCkgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfSDAoZGF0YSwgaCkpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEgxKHNob3J0IGgpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0gxKGRhdGEsIGgpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBIMihzaG9ydCBoKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9IMihkYXRhLCBoKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgSDMoc2hvcnQgaCkgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfSDMoZGF0YSwgaCkpOwogIH07CgogIC8vIFNldCBieXRlIG1ldGhvZHMKICBIRVhBR09OX1ZlY3Q2NEMgQjAoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjAoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEIxKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0IxKGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBCMihzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9CMihkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgQjMoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjMoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEI0KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0I0KGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDY0QyBCNShzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0NjRDKEhFWEFHT05fVjY0X1BVVF9CNShkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3Q2NEMgQjYoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDY0QyhIRVhBR09OX1Y2NF9QVVRfQjYoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0NjRDIEI3KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3Q2NEMoSEVYQUdPTl9WNjRfUFVUX0I3KGRhdGEsIGIpKTsKICB9OwoKcHJpdmF0ZToKICBsb25nIGxvbmcgZGF0YTsKfTsKCiNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwoKLyogMzIgQml0IFZlY3RvcnMgKi8KCnR5cGVkZWYgaW50IEhFWEFHT05fVmVjdDMyOwoKLyogRXh0cmFjdCB3b3JkIG1hY3JvcyAqLwoKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVyh2KSAodikKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVVcodikgKCh1bnNpZ25lZCBpbnQpKHYpKQoKLyogRXh0cmFjdCBoYWxmIHdvcmQgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9IMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmhbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX0gxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGJ5dGUgbWFjcm9zICovCgojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9CMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX0IxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uYlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5iWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9CMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8qIE5PVEU6IEFsbCBzZXQgbWFjcm9zIHJldHVybiBhIEhFWEFHT05fVmVjdDMyIHR5cGUgKi8KCi8qIFNldCB3b3JkIG1hY3JvICovCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9XKHYsIG5ldykgKG5ldykKCi8qIFNldCBoYWxmIHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5oWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9faGV4YWdvbl9fICovCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmMDAwMCkgfCAoKEhFWEFHT05fVmVjdDMyKSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfSDEodiwgbmV3KSAoKCh2KSAmIDB4MDAwMGZmZmYpIHwgKCgoSEVYQUdPTl9WZWN0MzIpKG5ldykpIDw8IDE2KSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCi8qIFNldCBieXRlIG1hY3JvcyAqLwoKI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uYlsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBIRVhBR09OX1YzMl9QVVRfQjIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi5iWzJdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMyh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM10gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZjAwKSB8ICgoSEVYQUdPTl9WZWN0MzIpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkpCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMGZmKSB8ICgoKEhFWEFHT05fVmVjdDMyKSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDgpKQojZGVmaW5lIEhFWEFHT05fVjMyX1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZjAwZmZmZikgfCAoKChIRVhBR09OX1ZlY3QzMikoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAxNikpCiNkZWZpbmUgSEVYQUdPTl9WMzJfUFVUX0IzKHYsIG5ldykgKCgodikgJiAweDAwZmZmZmZmKSB8ICgoKEhFWEFHT05fVmVjdDMyKShuZXcpKSA8PCAyNCkpCgojZW5kaWYgLyogIV9faGV4YWdvbl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBIRVhBR09OX1ZlY3QzMiB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIHdvcmQgKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX1codykgKHcpCgovKiBDcmVhdGUgZnJvbSBoYWxmIHdvcmRzICovCgojaWZkZWYgX19oZXhhZ29uX18KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX0goaDEsIGgwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX1YzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFswXSA9IChoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChoMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX2hleGFnb25fXyAqLwoKI2RlZmluZSBIRVhBR09OX1YzMl9DUkVBVEVfSChoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoSEVYQUdPTl9WZWN0MzIpKGgxKSkgPDwgMTYpIHwgKChIRVhBR09OX1ZlY3QzMikoKGgwKSAmIDB4ZmZmZikpKQoKI2VuZGlmIC8qICFfX2hleGFnb25fXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KI2lmZGVmIF9faGV4YWdvbl9fCgojZGVmaW5lIEhFWEFHT05fVjMyX0NSRUFURV9CKGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9WMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMF0gPSAoYjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMV0gPSAoYjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbMl0gPSAoYjIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmJbM10gPSAoYjMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fVjMyX2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19oZXhhZ29uX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9WMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKEhFWEFHT05fVmVjdDMyKShiMykpIDw8IDI0KSB8ICgoKEhFWEFHT05fVmVjdDMyKSgoYjIpICYgMHhmZikpIDw8IDE2KSB8ICAgICAgICAgICAgICBcCiAgICgoKEhFWEFHT05fVmVjdDMyKSgoYjEpICYgMHhmZikpIDw8IDgpIHwgKChIRVhBR09OX1ZlY3QzMikoKGIwKSAmIDB4ZmYpKSkKCiNlbmRpZiAvKiAhX19oZXhhZ29uX18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgSEVYQUdPTl9WZWN0MzJDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIEhFWEFHT05fVmVjdDMyQyhpbnQgdyA9IDApIDogZGF0YSh3KSB7fTsKICBIRVhBR09OX1ZlY3QzMkMoc2hvcnQgaDEsIHNob3J0IGgwKSA6IGRhdGEoSEVYQUdPTl9WMzJfQ1JFQVRFX0goaDEsIGgwKSkge307CiAgSEVYQUdPTl9WZWN0MzJDKHNpZ25lZCBjaGFyIGIzLCBzaWduZWQgY2hhciBiMiwgc2lnbmVkIGNoYXIgYjEsIHNpZ25lZCBjaGFyIGIwKQogICAgICA6IGRhdGEoSEVYQUdPTl9WMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApKSB7fTsKICBIRVhBR09OX1ZlY3QzMkMoY29uc3QgSEVYQUdPTl9WZWN0MzJDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgSEVYQUdPTl9WZWN0MzJDICZvcGVyYXRvcj0oY29uc3QgSEVYQUdPTl9WZWN0MzJDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGludCgpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3Qgd29yZCBtZXRob2RzCiAgaW50IFcodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9XKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVVcoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX0gxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUgwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgxKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUgxKGRhdGEpOwogIH07CgogIC8vIEV4dHJhY3QgYnl0ZSBtZXRob2RzCiAgc2lnbmVkIGNoYXIgQjAodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9CMChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIxKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfQjEoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX0IyKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjModm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9CMyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIEhFWEFHT05fVjMyX0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WMzJfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBIRVhBR09OX1YzMl9HRVRfVUIzKGRhdGEpOwogIH07CgogIC8vIE5PVEU6IEFsbCBzZXQgbWV0aG9kcyByZXR1cm4gYSBIRVhBR09OX1ZlY3QzMkMgdHlwZQoKICAvLyBTZXQgd29yZCBtZXRob2QKICBIRVhBR09OX1ZlY3QzMkMgVyhpbnQgdykgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDMyQyhIRVhBR09OX1YzMl9QVVRfVyhkYXRhLCB3KSk7CiAgfTsKCiAgLy8gU2V0IGhhbGYgd29yZCBtZXRob2RzCiAgSEVYQUdPTl9WZWN0MzJDIEgwKHNob3J0IGgpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3QzMkMoSEVYQUdPTl9WMzJfUFVUX0gwKGRhdGEsIGgpKTsKICB9OwogIEhFWEFHT05fVmVjdDMyQyBIMShzaG9ydCBoKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9IMShkYXRhLCBoKSk7CiAgfTsKCiAgLy8gU2V0IGJ5dGUgbWV0aG9kcwogIEhFWEFHT05fVmVjdDMyQyBCMChzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9CMChkYXRhLCBiKSk7CiAgfTsKICBIRVhBR09OX1ZlY3QzMkMgQjEoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIEhFWEFHT05fVmVjdDMyQyhIRVhBR09OX1YzMl9QVVRfQjEoZGF0YSwgYikpOwogIH07CiAgSEVYQUdPTl9WZWN0MzJDIEIyKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBIRVhBR09OX1ZlY3QzMkMoSEVYQUdPTl9WMzJfUFVUX0IyKGRhdGEsIGIpKTsKICB9OwogIEhFWEFHT05fVmVjdDMyQyBCMyhzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gSEVYQUdPTl9WZWN0MzJDKEhFWEFHT05fVjMyX1BVVF9CMyhkYXRhLCBiKSk7CiAgfTsKCnByaXZhdGU6CiAgaW50IGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8vIFY2NSBTaWx2ZXIgdHlwZXMKI2lmIF9fUTZTX0FSQ0hfXyA+PSA2NQogIC8vIFNpbHZlciB2ZWN0b3IgdHlwZXMgYXJlIDEyOCBieXRlcywgYW5kIHBhaXJzIGFyZSAyNTYuIFRoZSB2ZWN0b3IgcHJlZGljYXRlCiAgLy8gdHlwZXMgYXJlIDE2IGJ5dGVzIGFuZCAzMiBieXRlcyBmb3IgcGFpcnMuCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjUHJlZDEyOCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTI4KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWNQcmVkMjU2IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMikpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1ZlY3QxMDI0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxMjgpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMTI4KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWN0MjA0OCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMjU2KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDI1NikpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVVZlY3QxMDI0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygxMjgpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVVZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoNCkpKTsKCiAgI2RlZmluZSBRNlNfVmVjdG9yUHJlZFBhaXIgSEVYQUdPTl9WZWNQcmVkMjU2CiAgI2RlZmluZSBRNlNfVmVjdG9yUHJlZCAgICAgSEVYQUdPTl9WZWNQcmVkMTI4CiAgI2RlZmluZSBRNlNfVmVjdG9yICAgICAgICAgSEVYQUdPTl9WZWN0MTAyNAogICNkZWZpbmUgUTZTX1ZlY3RvclBhaXIgICAgIEhFWEFHT05fVmVjdDIwNDgKICAjZGVmaW5lIFE2U19VVmVjdG9yICAgICAgICBIRVhBR09OX1VWZWN0MTAyNAogICNkZWZpbmUgUTZTX1VWZWN0b3JQYWlyICAgIEhFWEFHT05fVVZlY3QyMDQ4CgojZWxzZSAvKiBfX1E2U19BUkNIX18gPj0gNjUgKi8KCi8vIFY2NSBWZWN0b3IgdHlwZXMKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQojaWYgZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjUHJlZDEyOCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTI4KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEyOCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1ZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMjU2KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDIwNDggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDI1NikpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICAjZGVmaW5lIEhWWF9WZWN0b3JQcmVkICAgICBIRVhBR09OX1ZlY1ByZWQxMjgKICAjZGVmaW5lIEhWWF9WZWN0b3IgICAgICAgICBIRVhBR09OX1ZlY3QxMDI0CiAgI2RlZmluZSBIVlhfVmVjdG9yUGFpciAgICAgSEVYQUdPTl9WZWN0MjA0OAogICNkZWZpbmUgSFZYX1VWZWN0b3IgICAgICAgIEhFWEFHT05fVVZlY3QxMDI0CiAgI2RlZmluZSBIVlhfVVZlY3RvclBhaXIgICAgSEVYQUdPTl9VVmVjdDIwNDgKI2Vsc2UgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNpZiBkZWZpbmVkIF9fSFZYX18gJiYgIChfX0hWWF9MRU5HVEhfXyA9PSA2NCkKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWNQcmVkNjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9WZWN0NTEyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKCiAgdHlwZWRlZiBsb25nIEhFWEFHT05fVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgogIHR5cGVkZWYgbG9uZyBIRVhBR09OX1VWZWN0NTEyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICB0eXBlZGVmIGxvbmcgSEVYQUdPTl9VVmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg0KSkpOwoKICAjZGVmaW5lIEhWWF9WZWN0b3JQcmVkICAgICBIRVhBR09OX1ZlY1ByZWQ2NAogICNkZWZpbmUgSFZYX1ZlY3RvciAgICAgICAgIEhFWEFHT05fVmVjdDUxMgogICNkZWZpbmUgSFZYX1ZlY3RvclBhaXIgICAgIEhFWEFHT05fVmVjdDEwMjQKICAjZGVmaW5lIEhWWF9VVmVjdG9yICAgICAgICBIRVhBR09OX1VWZWN0NTEyCiAgI2RlZmluZSBIVlhfVVZlY3RvclBhaXIgICAgSEVYQUdPTl9VVmVjdDEwMjQKI2VuZGlmIC8qIGRlZmluZWQgX19IVlhfXyAmJiAgKF9fSFZYX0xFTkdUSF9fID09IDY0KSAqLwojZW5kaWYgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNlbmRpZiAvKiBfX0hWWF9BUkNIX18gPj0gNjUgKi8KI2VuZGlmIC8qIF9fUTZTX0FSQ0hfXyA+PSA2NSAqLwoKLyogUHJlZGljYXRlcyAqLwoKdHlwZWRlZiBpbnQgSEVYQUdPTl9QcmVkOwoKLyoqKgogKioqIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgYWxpYXNlcwogKioqLwoKLyogT2xkIG5hbWVzICovCiNkZWZpbmUgUTZWZWN0IFE2VmVjdDY0CiNkZWZpbmUgUTZWX0dFVF9EIFE2VjY0X0dFVF9ECiNkZWZpbmUgUTZWX0dFVF9VRCBRNlY2NF9HRVRfVUQKI2RlZmluZSBRNlZfR0VUX1cwIFE2VjY0X0dFVF9XMAojZGVmaW5lIFE2Vl9HRVRfVzEgUTZWNjRfR0VUX1cxCiNkZWZpbmUgUTZWX0dFVF9VVzAgUTZWNjRfR0VUX1VXMAojZGVmaW5lIFE2Vl9HRVRfVVcxIFE2VjY0X0dFVF9VVzEKI2RlZmluZSBRNlZfR0VUX0gwIFE2VjY0X0dFVF9IMAojZGVmaW5lIFE2Vl9HRVRfSDEgUTZWNjRfR0VUX0gxCiNkZWZpbmUgUTZWX0dFVF9IMiBRNlY2NF9HRVRfSDIKI2RlZmluZSBRNlZfR0VUX0gzIFE2VjY0X0dFVF9IMwojZGVmaW5lIFE2Vl9HRVRfVUgwIFE2VjY0X0dFVF9VSDAKI2RlZmluZSBRNlZfR0VUX1VIMSBRNlY2NF9HRVRfVUgxCiNkZWZpbmUgUTZWX0dFVF9VSDIgUTZWNjRfR0VUX1VIMgojZGVmaW5lIFE2Vl9HRVRfVUgzIFE2VjY0X0dFVF9VSDMKI2RlZmluZSBRNlZfR0VUX0IwIFE2VjY0X0dFVF9CMAojZGVmaW5lIFE2Vl9HRVRfQjEgUTZWNjRfR0VUX0IxCiNkZWZpbmUgUTZWX0dFVF9CMiBRNlY2NF9HRVRfQjIKI2RlZmluZSBRNlZfR0VUX0IzIFE2VjY0X0dFVF9CMwojZGVmaW5lIFE2Vl9HRVRfQjQgUTZWNjRfR0VUX0I0CiNkZWZpbmUgUTZWX0dFVF9CNSBRNlY2NF9HRVRfQjUKI2RlZmluZSBRNlZfR0VUX0I2IFE2VjY0X0dFVF9CNgojZGVmaW5lIFE2Vl9HRVRfQjcgUTZWNjRfR0VUX0I3CiNkZWZpbmUgUTZWX0dFVF9VQjAgUTZWNjRfR0VUX1VCMAojZGVmaW5lIFE2Vl9HRVRfVUIxIFE2VjY0X0dFVF9VQjEKI2RlZmluZSBRNlZfR0VUX1VCMiBRNlY2NF9HRVRfVUIyCiNkZWZpbmUgUTZWX0dFVF9VQjMgUTZWNjRfR0VUX1VCMwojZGVmaW5lIFE2Vl9HRVRfVUI0IFE2VjY0X0dFVF9VQjQKI2RlZmluZSBRNlZfR0VUX1VCNSBRNlY2NF9HRVRfVUI1CiNkZWZpbmUgUTZWX0dFVF9VQjYgUTZWNjRfR0VUX1VCNgojZGVmaW5lIFE2Vl9HRVRfVUI3IFE2VjY0X0dFVF9VQjcKI2RlZmluZSBRNlZfUFVUX0QgUTZWNjRfUFVUX0QKI2RlZmluZSBRNlZfUFVUX1cwIFE2VjY0X1BVVF9XMAojZGVmaW5lIFE2Vl9QVVRfVzEgUTZWNjRfUFVUX1cxCiNkZWZpbmUgUTZWX1BVVF9IMCBRNlY2NF9QVVRfSDAKI2RlZmluZSBRNlZfUFVUX0gxIFE2VjY0X1BVVF9IMQojZGVmaW5lIFE2Vl9QVVRfSDIgUTZWNjRfUFVUX0gyCiNkZWZpbmUgUTZWX1BVVF9IMyBRNlY2NF9QVVRfSDMKI2RlZmluZSBRNlZfUFVUX0IwIFE2VjY0X1BVVF9CMAojZGVmaW5lIFE2Vl9QVVRfQjEgUTZWNjRfUFVUX0IxCiNkZWZpbmUgUTZWX1BVVF9CMiBRNlY2NF9QVVRfQjIKI2RlZmluZSBRNlZfUFVUX0IzIFE2VjY0X1BVVF9CMwojZGVmaW5lIFE2Vl9QVVRfQjQgUTZWNjRfUFVUX0I0CiNkZWZpbmUgUTZWX1BVVF9CNSBRNlY2NF9QVVRfQjUKI2RlZmluZSBRNlZfUFVUX0I2IFE2VjY0X1BVVF9CNgojZGVmaW5lIFE2Vl9QVVRfQjcgUTZWNjRfUFVUX0I3CiNkZWZpbmUgUTZWX0NSRUFURV9EIFE2VjY0X0NSRUFURV9ECiNkZWZpbmUgUTZWX0NSRUFURV9XIFE2VjY0X0NSRUFURV9XCiNkZWZpbmUgUTZWX0NSRUFURV9IIFE2VjY0X0NSRUFURV9ICiNkZWZpbmUgUTZWX0NSRUFURV9CIFE2VjY0X0NSRUFURV9CCgojaWZkZWYgX19jcGx1c3BsdXMKI2RlZmluZSBRNlZlY3RDIFE2VmVjdDY0QwojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8qIDY0IEJpdCBWZWN0b3JzICovCgp0eXBlZGVmIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX21heV9hbGlhc19fKSkgUTZWZWN0NjQ7CgovKiBFeHRyYWN0IGRvdWJsZXdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjY0X0dFVF9EKHYpICh2KQojZGVmaW5lIFE2VjY0X0dFVF9VRCh2KSAoKHVuc2lnbmVkIGxvbmcgbG9uZykodikpCgovKiBFeHRyYWN0IHdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjY0X0dFVF9XMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLndbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1cxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24ud1sxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVVcwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgaW50IHV3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51d1swXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VVzEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBpbnQgdXdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnV3WzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNkZWZpbmUgUTZWNjRfR0VUX0gwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5oWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9IMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0gzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VIMih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIHNob3J0IHVoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUgzKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51aFszXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogRXh0cmFjdCBieXRlIG1hY3JvcyAqLwoKI2RlZmluZSBRNlY2NF9HRVRfQjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0IyKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfQjModikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzNdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CNCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX0I1KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls1XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfQjYodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzZdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9CNyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbN107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUI0KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X0dFVF9VQjUodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLnViWzVdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfR0VUX1VCNih2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24udWJbNl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9HRVRfVUI3KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi51Yls3XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKLyogTk9URTogQWxsIHNldCBtYWNyb3MgcmV0dXJuIGEgUTZWZWN0NjQgdHlwZSAqLwoKLyogU2V0IGRvdWJsZXdvcmQgbWFjcm8gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX0QodiwgbmV3KSAobmV3KQoKLyogU2V0IHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjY0X1BVVF9XMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgd1syXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLndbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX1cxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3WzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24ud1sxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX1cwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDAwMDAwMDBMTCkgfCAoKFE2VmVjdDY0KSgodW5zaWduZWQgaW50KShuZXcpKSkpCiNkZWZpbmUgUTZWNjRfUFVUX1cxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweDAwMDAwMDAwZmZmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkobmV3KSkgPDwgMzJMTCkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogU2V0IGhhbGYgd29yZCBtYWNyb3MgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2hvcnQgaFs0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5oWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9IMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmhbMl0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0gzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZjAwMDBMTCkgfCAoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSkKI2RlZmluZSBRNlY2NF9QVVRfSDEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmYwMDAwZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSA8PCAxNkxMKSkKI2RlZmluZSBRNlY2NF9QVVRfSDIodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwMDBmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgc2hvcnQpKG5ldykpKSA8PCAzMkxMKSkKI2RlZmluZSBRNlY2NF9QVVRfSDModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4MDAwMGZmZmZmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KShuZXcpKSA8PCA0OExMKSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBTZXQgYnl0ZSBtYWNyb3MgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfUFVUX0IwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzFdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbMl0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0IzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlszXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjQodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzRdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjY0X1BVVF9CNSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbOF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWNjRfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmJbNV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjY0X2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWNjRfUFVUX0I2KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZCA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls2XSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlY2NF9QVVRfQjcodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzhdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5iWzddID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlY2NF9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmZmZmZmZmZmYwMExMKSB8ICgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkpCiNkZWZpbmUgUTZWNjRfUFVUX0IxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmZmZmZjAwZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCA4TEwpKQojZGVmaW5lIFE2VjY0X1BVVF9CMih2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmZmZmZmZmMDBmZmZmTEwpIHwgKCgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgMTZMTCkpCiNkZWZpbmUgUTZWNjRfUFVUX0IzKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmZmZmZmMDBmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCAyNExMKSkKI2RlZmluZSBRNlY2NF9QVVRfQjQodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmMDBmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDMyTEwpKQojZGVmaW5lIFE2VjY0X1BVVF9CNSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKHYpICYgMHhmZmZmMDBmZmZmZmZmZmZmTEwpIHwgKCgoUTZWZWN0NjQpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgNDBMTCkpCiNkZWZpbmUgUTZWNjRfUFVUX0I2KHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmMDBmZmZmZmZmZmZmZmZMTCkgfCAoKChRNlZlY3Q2NCkoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSA8PCA0OExMKSkKI2RlZmluZSBRNlY2NF9QVVRfQjcodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4MDBmZmZmZmZmZmZmZmZmZkxMKSB8ICgoKFE2VmVjdDY0KShuZXcpKSA8PCA1NkxMKSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBRNlZlY3Q2NCB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIGRvdWJsZXdvcmQgKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0QoZCkgKGQpCgovKiBDcmVhdGUgZnJvbSB3b3JkcyAqLwoKI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlY2NF9DUkVBVEVfVyh3MSwgdzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHdbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjY0X2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi53WzBdID0gKHcwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi53WzFdID0gKHcxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlY2NF9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlY2NF9DUkVBVEVfVyh3MSwgdzApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoUTZWZWN0NjQpKHcxKSkgPDwgMzJMTCkgfCAoKFE2VmVjdDY0KSgodzApICYgMHhmZmZmZmZmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCi8qIENyZWF0ZSBmcm9tIGhhbGYgd29yZHMgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0goaDMsIGgyLCBoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFswXSA9IChoMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChoMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFsyXSA9IChoMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uaFszXSA9IChoMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0goaDMsIGgyLCBoMSwgaDApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKFE2VmVjdDY0KShoMykpIDw8IDQ4TEwpIHwgKCgoUTZWZWN0NjQpKChoMikgJiAweGZmZmYpKSA8PCAzMkxMKSB8ICAgICAgICBcCiAgICgoKFE2VmVjdDY0KSgoaDEpICYgMHhmZmZmKSkgPDwgMTZMTCkgfCAoKFE2VmVjdDY0KSgoaDApICYgMHhmZmZmKSkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KCiNpZmRlZiBfX3Fkc3A2X18KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0IoYjcsIGI2LCBiNSwgYjQsIGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGxvbmcgbG9uZyBkOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls4XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlY2NF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlswXSA9IChiMCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsxXSA9IChiMSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChiMik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYlszXSA9IChiMyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls0XSA9IChiNCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls1XSA9IChiNSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls2XSA9IChiNik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uYls3XSA9IChiNyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWNjRfaW50ZXJuYWxfdW5pb24uZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWNjRfQ1JFQVRFX0IoYjcsIGI2LCBiNSwgYjQsIGIzLCBiMiwgYjEsIGIwKSAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgoKFE2VmVjdDY0KShiNykpIDw8IDU2TEwpIHwgKCgoUTZWZWN0NjQpKChiNikgJiAweGZmKSkgPDwgNDhMTCkgfCAgICAgICAgICBcCiAgICgoKFE2VmVjdDY0KSgoYjUpICYgMHhmZikpIDw8IDQwTEwpIHwgKCgoUTZWZWN0NjQpKChiNCkgJiAweGZmKSkgPDwgMzJMTCkgfCBcCiAgICgoKFE2VmVjdDY0KSgoYjMpICYgMHhmZikpIDw8IDI0TEwpIHwgKCgoUTZWZWN0NjQpKChiMikgJiAweGZmKSkgPDwgMTZMTCkgfCBcCiAgICgoKFE2VmVjdDY0KSgoYjEpICYgMHhmZikpIDw8IDhMTCkgfCAoKFE2VmVjdDY0KSgoYjApICYgMHhmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgUTZWZWN0NjRDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIFE2VmVjdDY0Qyhsb25nIGxvbmcgZCA9IDApIDogZGF0YShkKSB7fTsKICBRNlZlY3Q2NEMoaW50IHcxLCBpbnQgdzApIDogZGF0YShRNlY2NF9DUkVBVEVfVyh3MSwgdzApKSB7fTsKICBRNlZlY3Q2NEMoc2hvcnQgaDMsIHNob3J0IGgyLCBzaG9ydCBoMSwgc2hvcnQgaDApCiAgICAgIDogZGF0YShRNlY2NF9DUkVBVEVfSChoMywgaDIsIGgxLCBoMCkpIHt9OwogIFE2VmVjdDY0QyhzaWduZWQgY2hhciBiNywgc2lnbmVkIGNoYXIgYjYsIHNpZ25lZCBjaGFyIGI1LCBzaWduZWQgY2hhciBiNCwKICAgICAgICAgICAgc2lnbmVkIGNoYXIgYjMsIHNpZ25lZCBjaGFyIGIyLCBzaWduZWQgY2hhciBiMSwgc2lnbmVkIGNoYXIgYjApCiAgICAgIDogZGF0YShRNlY2NF9DUkVBVEVfQihiNywgYjYsIGI1LCBiNCwgYjMsIGIyLCBiMSwgYjApKSB7fTsKICBRNlZlY3Q2NEMoY29uc3QgUTZWZWN0NjRDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgUTZWZWN0NjRDICZvcGVyYXRvcj0oY29uc3QgUTZWZWN0NjRDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGxvbmcgbG9uZygpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3QgZG91Ymxld29yZCBtZXRob2RzCiAgbG9uZyBsb25nIEQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9EKGRhdGEpOwogIH07CiAgdW5zaWduZWQgbG9uZyBsb25nIFVEKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUQoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCB3b3JkIG1ldGhvZHMKICBpbnQgVzAodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9XMChkYXRhKTsKICB9OwogIGludCBXMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1cxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXMCh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VXMChkYXRhKTsKICB9OwogIHVuc2lnbmVkIGludCBVVzEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VVzEoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0gxKGRhdGEpOwogIH07CiAgc2hvcnQgSDIodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9IMihkYXRhKTsKICB9OwogIHNob3J0IEgzKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfSDMoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDAodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDAoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDIodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDIoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBzaG9ydCBVSDModm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VSDMoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBieXRlIG1ldGhvZHMKICBzaWduZWQgY2hhciBCMCh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0IwKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CMShkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIyKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfQjIoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMyh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0IzKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CNChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEI1KHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfQjUoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCNih2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX0I2KGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjcodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9CNyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUIzKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjQodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjQoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCNSh2b2lkKSB7CiAgICByZXR1cm4gUTZWNjRfR0VUX1VCNShkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUI2KHZvaWQpIHsKICAgIHJldHVybiBRNlY2NF9HRVRfVUI2KGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjcodm9pZCkgewogICAgcmV0dXJuIFE2VjY0X0dFVF9VQjcoZGF0YSk7CiAgfTsKCiAgLy8gTk9URTogQWxsIHNldCBtZXRob2RzIHJldHVybiBhIFE2VmVjdDY0QyB0eXBlCgogIC8vIFNldCBkb3VibGV3b3JkIG1ldGhvZAogIFE2VmVjdDY0QyBEKGxvbmcgbG9uZyBkKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9EKGRhdGEsIGQpKTsKICB9OwoKICAvLyBTZXQgd29yZCBtZXRob2RzCiAgUTZWZWN0NjRDIFcwKGludCB3KSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9XMChkYXRhLCB3KSk7CiAgfTsKICBRNlZlY3Q2NEMgVzEoaW50IHcpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX1cxKGRhdGEsIHcpKTsKICB9OwoKICAvLyBTZXQgaGFsZiB3b3JkIG1ldGhvZHMKICBRNlZlY3Q2NEMgSDAoc2hvcnQgaCkgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfSDAoZGF0YSwgaCkpOwogIH07CiAgUTZWZWN0NjRDIEgxKHNob3J0IGgpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0gxKGRhdGEsIGgpKTsKICB9OwogIFE2VmVjdDY0QyBIMihzaG9ydCBoKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9IMihkYXRhLCBoKSk7CiAgfTsKICBRNlZlY3Q2NEMgSDMoc2hvcnQgaCkgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfSDMoZGF0YSwgaCkpOwogIH07CgogIC8vIFNldCBieXRlIG1ldGhvZHMKICBRNlZlY3Q2NEMgQjAoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjAoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEIxKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0IxKGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDY0QyBCMihzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9CMihkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3Q2NEMgQjMoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjMoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEI0KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0I0KGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDY0QyBCNShzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0NjRDKFE2VjY0X1BVVF9CNShkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3Q2NEMgQjYoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDY0QyhRNlY2NF9QVVRfQjYoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0NjRDIEI3KHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3Q2NEMoUTZWNjRfUFVUX0I3KGRhdGEsIGIpKTsKICB9OwoKcHJpdmF0ZToKICBsb25nIGxvbmcgZGF0YTsKfTsKCiNlbmRpZiAvKiBfX2NwbHVzcGx1cyAqLwoKLyogMzIgQml0IFZlY3RvcnMgKi8KCnR5cGVkZWYgaW50IFE2VmVjdDMyOwoKLyogRXh0cmFjdCB3b3JkIG1hY3JvcyAqLwoKI2RlZmluZSBRNlYzMl9HRVRfVyh2KSAodikKI2RlZmluZSBRNlYzMl9HRVRfVVcodikgKCh1bnNpZ25lZCBpbnQpKHYpKQoKLyogRXh0cmFjdCBoYWxmIHdvcmQgbWFjcm9zICovCgojZGVmaW5lIFE2VjMyX0dFVF9IMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX0gxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uaFsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfVUgwKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgc2hvcnQgdWhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi51aFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9VSDEodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBzaG9ydCB1aFsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnVoWzFdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgovKiBFeHRyYWN0IGJ5dGUgbWFjcm9zICovCgojZGVmaW5lIFE2VjMyX0dFVF9CMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX0IxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNpZ25lZCBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uYlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgc2lnbmVkIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9CMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaWduZWQgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX1VCMCh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udWJbMF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9HRVRfVUIxKHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdW5zaWduZWQgY2hhciB1Yls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi51YlsxXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX0dFVF9VQjIodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB1bnNpZ25lZCBjaGFyIHViWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnViWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfR0VUX1VCMyh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHVuc2lnbmVkIGNoYXIgdWJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udWJbM107ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8qIE5PVEU6IEFsbCBzZXQgbWFjcm9zIHJldHVybiBhIFE2VmVjdDMyIHR5cGUgKi8KCi8qIFNldCB3b3JkIG1hY3JvICovCgojZGVmaW5lIFE2VjMyX1BVVF9XKHYsIG5ldykgKG5ldykKCi8qIFNldCBoYWxmIHdvcmQgbWFjcm9zICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjMyX1BVVF9IMCh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfUFVUX0gxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIHNob3J0IGhbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uaFsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNlbHNlIC8qICFfX3Fkc3A2X18gKi8KCiNkZWZpbmUgUTZWMzJfUFVUX0gwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmZmYwMDAwKSB8ICgoUTZWZWN0MzIpKCh1bnNpZ25lZCBzaG9ydCkobmV3KSkpKQojZGVmaW5lIFE2VjMyX1BVVF9IMSh2LCBuZXcpICgoKHYpICYgMHgwMDAwZmZmZikgfCAoKChRNlZlY3QzMikobmV3KSkgPDwgMTYpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCi8qIFNldCBieXRlIG1hY3JvcyAqLwoKI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlYzMl9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzBdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIFE2VjMyX1BVVF9CMSh2LCBuZXcpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBpbnQgdzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBjaGFyIGJbNF07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLncgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmJbMV0gPSAobmV3KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgUTZWMzJfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGludCB3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIGNoYXIgYls0XTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9RNlYzMl9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24uYlsyXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfUTZWMzJfaW50ZXJuYWxfdW5pb24udzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKI2RlZmluZSBRNlYzMl9QVVRfQjModiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgaW50IHc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53ID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzNdID0gKG5ldyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi53OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlYzMl9QVVRfQjAodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZmZmMDApIHwgKChRNlZlY3QzMikoKHVuc2lnbmVkIGNoYXIpKG5ldykpKSkKI2RlZmluZSBRNlYzMl9QVVRfQjEodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCh2KSAmIDB4ZmZmZjAwZmYpIHwgKCgoUTZWZWN0MzIpKCh1bnNpZ25lZCBjaGFyKShuZXcpKSkgPDwgOCkpCiNkZWZpbmUgUTZWMzJfUFVUX0IyKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgKCgodikgJiAweGZmMDBmZmZmKSB8ICgoKFE2VmVjdDMyKSgodW5zaWduZWQgY2hhcikobmV3KSkpIDw8IDE2KSkKI2RlZmluZSBRNlYzMl9QVVRfQjModiwgbmV3KSAoKCh2KSAmIDB4MDBmZmZmZmYpIHwgKCgoUTZWZWN0MzIpKG5ldykpIDw8IDI0KSkKCiNlbmRpZiAvKiAhX19xZHNwNl9fICovCgovKiBOT1RFOiBBbGwgY3JlYXRlIG1hY3JvcyByZXR1cm4gYSBRNlZlY3QzMiB0eXBlICovCgovKiBDcmVhdGUgZnJvbSBhIHdvcmQgKi8KCiNkZWZpbmUgUTZWMzJfQ1JFQVRFX1codykgKHcpCgovKiBDcmVhdGUgZnJvbSBoYWxmIHdvcmRzICovCgojaWZkZWYgX19xZHNwNl9fCgojZGVmaW5lIFE2VjMyX0NSRUFURV9IKGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBsb25nIGxvbmcgZDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBzaG9ydCBoWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfUTZWMzJfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMF0gPSAoaDApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmhbMV0gPSAoaDEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX1E2VjMyX2ludGVybmFsX3VuaW9uLmQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojZWxzZSAvKiAhX19xZHNwNl9fICovCgojZGVmaW5lIFE2VjMyX0NSRUFURV9IKGgxLCBoMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICgoKChRNlZlY3QzMikoaDEpKSA8PCAxNikgfCAoKFE2VmVjdDMyKSgoaDApICYgMHhmZmZmKSkpCgojZW5kaWYgLyogIV9fcWRzcDZfXyAqLwoKLyogQ3JlYXRlIGZyb20gYnl0ZXMgKi8KI2lmZGVmIF9fcWRzcDZfXwoKI2RlZmluZSBRNlYzMl9DUkVBVEVfQihiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgbG9uZyBsb25nIGQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgY2hhciBiWzRdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX1E2VjMyX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzBdID0gKGIwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzFdID0gKGIxKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzJdID0gKGIyKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5iWzNdID0gKGIzKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9RNlYzMl9pbnRlcm5hbF91bmlvbi5kOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQoKI2Vsc2UgLyogIV9fcWRzcDZfXyAqLwoKI2RlZmluZSBRNlYzMl9DUkVBVEVfQihiMywgYjIsIGIxLCBiMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAoKCgoUTZWZWN0MzIpKGIzKSkgPDwgMjQpIHwgKCgoUTZWZWN0MzIpKChiMikgJiAweGZmKSkgPDwgMTYpIHwgICAgICAgICAgICAgIFwKICAgKCgoUTZWZWN0MzIpKChiMSkgJiAweGZmKSkgPDwgOCkgfCAoKFE2VmVjdDMyKSgoYjApICYgMHhmZikpKQoKI2VuZGlmIC8qICFfX3Fkc3A2X18gKi8KCiNpZmRlZiBfX2NwbHVzcGx1cwoKY2xhc3MgUTZWZWN0MzJDIHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycwogIFE2VmVjdDMyQyhpbnQgdyA9IDApIDogZGF0YSh3KSB7fTsKICBRNlZlY3QzMkMoc2hvcnQgaDEsIHNob3J0IGgwKSA6IGRhdGEoUTZWMzJfQ1JFQVRFX0goaDEsIGgwKSkge307CiAgUTZWZWN0MzJDKHNpZ25lZCBjaGFyIGIzLCBzaWduZWQgY2hhciBiMiwgc2lnbmVkIGNoYXIgYjEsIHNpZ25lZCBjaGFyIGIwKQogICAgICA6IGRhdGEoUTZWMzJfQ1JFQVRFX0IoYjMsIGIyLCBiMSwgYjApKSB7fTsKICBRNlZlY3QzMkMoY29uc3QgUTZWZWN0MzJDICZ2KSA6IGRhdGEodi5kYXRhKSB7fTsKCiAgUTZWZWN0MzJDICZvcGVyYXRvcj0oY29uc3QgUTZWZWN0MzJDICZ2KSB7CiAgICBkYXRhID0gdi5kYXRhOwogICAgcmV0dXJuICp0aGlzOwogIH07CgogIG9wZXJhdG9yIGludCgpIHsKICAgIHJldHVybiBkYXRhOwogIH07CgogIC8vIEV4dHJhY3Qgd29yZCBtZXRob2RzCiAgaW50IFcodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9XKGRhdGEpOwogIH07CiAgdW5zaWduZWQgaW50IFVXKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVVcoZGF0YSk7CiAgfTsKCiAgLy8gRXh0cmFjdCBoYWxmIHdvcmQgbWV0aG9kcwogIHNob3J0IEgwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfSDAoZGF0YSk7CiAgfTsKICBzaG9ydCBIMSh2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX0gxKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUgwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgc2hvcnQgVUgxKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUgxKGRhdGEpOwogIH07CgogIC8vIEV4dHJhY3QgYnl0ZSBtZXRob2RzCiAgc2lnbmVkIGNoYXIgQjAodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9CMChkYXRhKTsKICB9OwogIHNpZ25lZCBjaGFyIEIxKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfQjEoZGF0YSk7CiAgfTsKICBzaWduZWQgY2hhciBCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX0IyKGRhdGEpOwogIH07CiAgc2lnbmVkIGNoYXIgQjModm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9CMyhkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIwKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUIwKGRhdGEpOwogIH07CiAgdW5zaWduZWQgY2hhciBVQjEodm9pZCkgewogICAgcmV0dXJuIFE2VjMyX0dFVF9VQjEoZGF0YSk7CiAgfTsKICB1bnNpZ25lZCBjaGFyIFVCMih2b2lkKSB7CiAgICByZXR1cm4gUTZWMzJfR0VUX1VCMihkYXRhKTsKICB9OwogIHVuc2lnbmVkIGNoYXIgVUIzKHZvaWQpIHsKICAgIHJldHVybiBRNlYzMl9HRVRfVUIzKGRhdGEpOwogIH07CgogIC8vIE5PVEU6IEFsbCBzZXQgbWV0aG9kcyByZXR1cm4gYSBRNlZlY3QzMkMgdHlwZQoKICAvLyBTZXQgd29yZCBtZXRob2QKICBRNlZlY3QzMkMgVyhpbnQgdykgewogICAgcmV0dXJuIFE2VmVjdDMyQyhRNlYzMl9QVVRfVyhkYXRhLCB3KSk7CiAgfTsKCiAgLy8gU2V0IGhhbGYgd29yZCBtZXRob2RzCiAgUTZWZWN0MzJDIEgwKHNob3J0IGgpIHsKICAgIHJldHVybiBRNlZlY3QzMkMoUTZWMzJfUFVUX0gwKGRhdGEsIGgpKTsKICB9OwogIFE2VmVjdDMyQyBIMShzaG9ydCBoKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9IMShkYXRhLCBoKSk7CiAgfTsKCiAgLy8gU2V0IGJ5dGUgbWV0aG9kcwogIFE2VmVjdDMyQyBCMChzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9CMChkYXRhLCBiKSk7CiAgfTsKICBRNlZlY3QzMkMgQjEoc2lnbmVkIGNoYXIgYikgewogICAgcmV0dXJuIFE2VmVjdDMyQyhRNlYzMl9QVVRfQjEoZGF0YSwgYikpOwogIH07CiAgUTZWZWN0MzJDIEIyKHNpZ25lZCBjaGFyIGIpIHsKICAgIHJldHVybiBRNlZlY3QzMkMoUTZWMzJfUFVUX0IyKGRhdGEsIGIpKTsKICB9OwogIFE2VmVjdDMyQyBCMyhzaWduZWQgY2hhciBiKSB7CiAgICByZXR1cm4gUTZWZWN0MzJDKFE2VjMyX1BVVF9CMyhkYXRhLCBiKSk7CiAgfTsKCnByaXZhdGU6CiAgaW50IGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KCi8vIFY2NSBWZWN0b3IgdHlwZXMKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQojaWYgZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpCnR5cGVkZWYgbG9uZyBRNlZlY1ByZWQxMjggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7Cgp0eXBlZGVmIGxvbmcgUTZWZWN0MTAyNCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMTI4KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDEyOCkpKTsKCnR5cGVkZWYgbG9uZyBRNlZlY3QyMDQ4IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygyNTYpKSkKICAgIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMjU2KSkpOwoKI2Vsc2UgLyogZGVmaW5lZCBfX0hWWF9fICYmIChfX0hWWF9MRU5HVEhfXyA9PSAxMjgpICovCiNpZiBkZWZpbmVkIF9fSFZYX18gJiYgIChfX0hWWF9MRU5HVEhfXyA9PSA2NCkKdHlwZWRlZiBsb25nIFE2VmVjUHJlZDY0IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg2NCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg2NCkpKTsKCnR5cGVkZWYgbG9uZyBRNlZlY3Q1MTIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSkpCiAgICBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDY0KSkpOwoKdHlwZWRlZiBsb25nIFE2VmVjdDEwMjQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEyOCkpKQogICAgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgxMjgpKSk7CgojZW5kaWYgLyogZGVmaW5lZCBfX0hWWF9fICYmICAoX19IVlhfTEVOR1RIX18gPT0gNjQpICovCiNlbmRpZiAvKiBkZWZpbmVkIF9fSFZYX18gJiYgKF9fSFZYX0xFTkdUSF9fID09IDEyOCkgKi8KI2VuZGlmIC8qIF9fSFZYX0FSQ0hfXyA+PSA2NSAqLwoKLyogUHJlZGljYXRlcyAqLwoKdHlwZWRlZiBpbnQgUTZQcmVkOwoKCiNpZmRlZiBfX0hWWF9fCgovLyBFeHRyYWN0IEhWWCBWZWN0b3JQYWlyIG1hY3JvLgojZGVmaW5lIEhFWEFHT05fSFZYX0dFVF9XKHYpICh2KQoKLy8gRXh0cmFjdCBIVlggVmVjdG9yIG1hY3Jvcy4KI2RlZmluZSBIRVhBR09OX0hWWF9HRVRfVjAodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2V4dGVuc2lvbl9fKHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHVuaW9uIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgSFZYX1ZlY3RvclBhaXIgVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgSFZYX1ZlY3RvciBWWzJdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIH0gX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbi5XID0gKHYpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbi5WWzBdOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9KQojZGVmaW5lIEhFWEFHT05fSFZYX0dFVF9WMSh2KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yUGFpciBXOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yIFZbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlcgPSAodik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMV07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCiNkZWZpbmUgSEVYQUdPTl9IVlhfR0VUX1AodikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQcmVkIFBbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uUFswXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCi8vIFNldCBIVlggVmVjdG9yUGFpciBtYWNyby4KI2RlZmluZSBIRVhBR09OX0hWWF9QVVRfVyh2LCBuZXcpIChuZXcpCgovLyBTZXQgSFZYIFZlY3RvciBtYWNyb3MuCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1YwKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3IgVlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVlswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1YxKHYsIG5ldykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3IgVlsyXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVlsxXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCiNkZWZpbmUgSEVYQUdPTl9IVlhfUFVUX1AodiwgbmV3KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19leHRlbnNpb25fXyh7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB1bmlvbiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQYWlyIFc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIEhWWF9WZWN0b3JQcmVkIFBbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB9IF9IRVhBR09OX0hWWF9pbnRlcm5hbF91bmlvbjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVyA9ICh2KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uUFswXSA9IChuZXcpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb24uVzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgfSkKCgojZGVmaW5lIEhFWEFHT05fSFZYX0NSRUFURV9XKHYxLCB2MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fZXh0ZW5zaW9uX18oeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgdW5pb24geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yUGFpciBXOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBIVlhfVmVjdG9yIFZbMl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgfSBfSEVYQUdPTl9IVlhfaW50ZXJuYWxfdW5pb247ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMF0gPSAodjApOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlZbMV0gPSAodjEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgX0hFWEFHT05fSFZYX2ludGVybmFsX3VuaW9uLlc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0pCgojaWZkZWYgX19jcGx1c3BsdXMKCmNsYXNzIEhWWF9WZWN0IHsKcHVibGljOgogIC8vIENvbnN0cnVjdG9ycy4KICAvLyBEZWZhdWx0LgogIEhWWF9WZWN0KCkgOiBkYXRhKFE2X1dfdmNvbWJpbmVfVlYoUTZfVl92emVybygpLCBRNl9WX3Z6ZXJvKCkpKXt9OwoKICAvLyBDdXN0b20gY29uc3RydWN0b3JzLgogIEhWWF9WZWN0KEhWWF9WZWN0b3JQYWlyIFcpIDogZGF0YShXKXt9OwogIEhWWF9WZWN0KEhWWF9WZWN0b3IgdjEsIEhWWF9WZWN0b3IgdjApIDogZGF0YShIRVhBR09OX0hWWF9DUkVBVEVfVyh2MSwgdjApKXt9OwoKICAvLyBDb3B5IGNvbnN0cnVjdG9yLgogIEhWWF9WZWN0KGNvbnN0IEhWWF9WZWN0ICZXKSA9IGRlZmF1bHQ7CgogIC8vIE1vdmUgY29uc3RydWN0b3IuCiAgSFZYX1ZlY3QoSFZYX1ZlY3QgJiZXKSA9IGRlZmF1bHQ7CgogIC8vIEFzc2lnbm1lbnQgb3BlcmF0b3IuCiAgSFZYX1ZlY3QgJm9wZXJhdG9yPShjb25zdCBIVlhfVmVjdCAmVykgPSBkZWZhdWx0OwoKICBvcGVyYXRvciBIVlhfVmVjdG9yUGFpcigpIHsgcmV0dXJuIGRhdGE7IH07CgogIC8vIEV4dHJhY3QgVmVjdG9yUGFpciBtZXRob2QuCiAgSFZYX1ZlY3RvclBhaXIgVyh2b2lkKSB7IHJldHVybiBIRVhBR09OX0hWWF9HRVRfVyhkYXRhKTsgfTsKCiAgLy8gRXh0cmFjdCBWZWN0b3IgbWV0aG9kcy4KICBIVlhfVmVjdG9yIFYwKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9WMChkYXRhKTsgfTsKICBIVlhfVmVjdG9yIFYxKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9WMShkYXRhKTsgfTsKICBIVlhfVmVjdG9yUHJlZCBQKHZvaWQpIHsgcmV0dXJuIEhFWEFHT05fSFZYX0dFVF9QKGRhdGEpOyB9OwoKICAvLyBOT1RFOiBBbGwgc2V0IG1ldGhvZHMgcmV0dXJuIGEgSFZYX1ZlY3QgdHlwZS4KICAvLyBTZXQgSFZYIFZlY3RvclBhaXIgbWV0aG9kLgogIEhWWF9WZWN0IFcoSFZYX1ZlY3RvclBhaXIgdykgeyByZXR1cm4gSFZYX1ZlY3QoSEVYQUdPTl9IVlhfUFVUX1coZGF0YSwgdykpOyB9OwoKICAvLyBTZXQgSFZYIFZlY3RvciBtZXRob2RzLgogIEhWWF9WZWN0IFYwKEhWWF9WZWN0b3IgdikgeyByZXR1cm4gSFZYX1ZlY3QoSEVYQUdPTl9IVlhfUFVUX1YwKGRhdGEsIHYpKTsgfTsKICBIVlhfVmVjdCBWMShIVlhfVmVjdG9yIHYpIHsgcmV0dXJuIEhWWF9WZWN0KEhFWEFHT05fSFZYX1BVVF9WMShkYXRhLCB2KSk7IH07CiAgSFZYX1ZlY3QgUChIVlhfVmVjdG9yUHJlZCBwKSB7IHJldHVybiBIVlhfVmVjdChIRVhBR09OX0hWWF9QVVRfUChkYXRhLCBwKSk7IH07Cgpwcml2YXRlOgogIEhWWF9WZWN0b3JQYWlyIGRhdGE7Cn07CgojZW5kaWYgLyogX19jcGx1c3BsdXMgKi8KI2VuZGlmIC8qIF9fSFZYX18gKi8KCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfSURMRSAgICAgICAgICAgICAweDAwMDAwMDAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfUlVOICAgICAgICAgICAgICAweDAwMDAwMDAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RNMF9TVEFUVVNfRVJST1IgICAgICAgICAgICAweDAwMDAwMDAyCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfRFNUQVRFX0lOQ09NUExFVEUgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfRFNUQVRFX0NPTVBMRVRFICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfT1JERVJfTk9PUkRFUiAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfT1JERVJfT1JERVIgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQllQQVNTX09GRiAgICAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQllQQVNTX09OICAgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQ09NUF9OT05FICAgICAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfQ09NUF9ETEJDICAgICAgICAgICAgICAxCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfREVTQ1RZUEVfVFlQRTAgICAgICAgICAwCiNkZWZpbmUgSEVYQUdPTl9VRE1BX0RFU0NfREVTQ1RZUEVfVFlQRTEgICAgICAgICAxCgp0eXBlZGVmIHN0cnVjdCBoZXhhZ29uX3VkbWFfZGVzY3JpcHRvcl90eXBlMF9zCnsKICAgIHZvaWQgKm5leHQ7CiAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoOjI0OwogICAgdW5zaWduZWQgaW50IGRlc2N0eXBlOjI7CiAgICB1bnNpZ25lZCBpbnQgZHN0Y29tcDoxOwogICAgdW5zaWduZWQgaW50IHNyY2NvbXA6MTsKICAgIHVuc2lnbmVkIGludCBkc3RieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBzcmNieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBvcmRlcjoxOwogICAgdW5zaWduZWQgaW50IGRzdGF0ZToxOwogICAgdm9pZCAqc3JjOwogICAgdm9pZCAqZHN0Owp9IGhleGFnb25fdWRtYV9kZXNjcmlwdG9yX3R5cGUwX3Q7Cgp0eXBlZGVmIHN0cnVjdCBoZXhhZ29uX3VkbWFfZGVzY3JpcHRvcl90eXBlMV9zCnsKICAgIHZvaWQgKm5leHQ7CiAgICB1bnNpZ25lZCBpbnQgbGVuZ3RoOjI0OwogICAgdW5zaWduZWQgaW50IGRlc2N0eXBlOjI7CiAgICB1bnNpZ25lZCBpbnQgZHN0Y29tcDoxOwogICAgdW5zaWduZWQgaW50IHNyY2NvbXA6MTsKICAgIHVuc2lnbmVkIGludCBkc3RieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBzcmNieXBhc3M6MTsKICAgIHVuc2lnbmVkIGludCBvcmRlcjoxOwogICAgdW5zaWduZWQgaW50IGRzdGF0ZToxOwogICAgdm9pZCAqc3JjOwogICAgdm9pZCAqZHN0OwogICAgdW5zaWduZWQgaW50IGFsbG9jYXRpb246Mjg7CiAgICB1bnNpZ25lZCBpbnQgcGFkZGluZzo0OwogICAgdW5zaWduZWQgaW50IHJvaXdpZHRoOjE2OwogICAgdW5zaWduZWQgaW50IHJvaWhlaWdodDoxNjsKICAgIHVuc2lnbmVkIGludCBzcmNzdHJpZGU6MTY7CiAgICB1bnNpZ25lZCBpbnQgZHN0c3RyaWRlOjE2OwogICAgdW5zaWduZWQgaW50IHNyY3dpZHRob2Zmc2V0OjE2OwogICAgdW5zaWduZWQgaW50IGRzdHdpZHRob2Zmc2V0OjE2Owp9IGhleGFnb25fdWRtYV9kZXNjcmlwdG9yX3R5cGUxX3Q7CgojZW5kaWYgLyogIUhFWEFHT05fVFlQRVNfSCAqLwoAaHRteGxpbnRyaW4uaAByaXNjdl92ZWN0b3IuaAAvKj09PS0tLS0gc2hhaW50cmluLmggLSBTSEEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHNoYWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19TSEFJTlRSSU5fSAojZGVmaW5lIF9fU0hBSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJzaGEiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCgojZGVmaW5lIF9tbV9zaGExcm5kczRfZXB1MzIoVjEsIFYyLCBNKSBcCiAgX19idWlsdGluX2lhMzJfc2hhMXJuZHM0KChfX3Y0c2kpKF9fbTEyOGkpKFYxKSwgKF9fdjRzaSkoX19tMTI4aSkoVjIpLCAoTSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhMW5leHRlX2VwdTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zaGExbmV4dGUoKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NoYTFtc2cxX2VwdTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zaGExbXNnMSgoX192NHNpKV9fWCwgKF9fdjRzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhMW1zZzJfZXB1MzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NoYTFtc2cyKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGEyNTZybmRzMl9lcHUzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1ksIF9fbTEyOGkgX19aKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NoYTI1NnJuZHMyKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSwgKF9fdjRzaSlfX1opOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhMjU2bXNnMV9lcHUzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2hhMjU2bXNnMSgoX192NHNpKV9fWCwgKF9fdjRzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhMjU2bXNnMl9lcHUzMihfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2hhMjU2bXNnMigoX192NHNpKV9fWCwgKF9fdjRzaSlfX1kpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYgLyogX19TSEFJTlRSSU5fSCAqLwoAeDg2aW50cmluLmgAc2FuaXRpemVyL2FsbG9jYXRvcl9pbnRlcmZhY2UuaABzYW5pdGl6ZXIvc2N1ZG9faW50ZXJmYWNlLmgASW52YWxpZCBlc2NhcGUgY2hhcmFjdGVyIGluIHN0cmluZy4Acm9vdC9wYnVuaXRzLwBlbmRwb3M6IABTZWFyY2hCaXRTdGF0ZSBpbmNvbnNpc3RlbmN5AFJFMjogdW5leHBlY3RlZCBvcDogAGVtcHR5d2lkdGggJSN4IC0+ICVkAGludmFsaWQgY2hhcmFjdGVyIGNsYXNzAENvcHRpYwBMaW5lYXJfQQBMdQBNdWx0YW5pAFBoYWdzX1BhAFNoYXJhZGEAU295b21ibwBTSUdGUEUAJXM6IHdyb25nIGVsZiB0eXBlOiAlZAAwIDw9IGluZGV4ICYmIHN0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpIDw9IHZlcmRlZm51bV8AaGF2ZW4ndCBsZWZ0IEFyZW5hIHJlZ2lvbgBqAHgAZG91YmxlACU9AGFOAGVxADw9AFNhAFByZXBhcmVUb01vZGlmeSBzaG91bGRuJ3QgYmUgY2FsbGVkIG9uIE9LIHN0YXR1cy4AQXR0ZW1wdGluZyB0byBmZXRjaCB2YWx1ZSBpbnN0ZWFkIG9mIGhhbmRsaW5nIGVycm9yIABWYWx1ZSBvZiBcACwgY2FwID0gAHB3LT5uZXh0ID09IHcARml4ZWQvVVRDAGVudHJvcHkgZmlsbCBmYWlsZWQAVExTIEtERiBmYWlsZWQuCgBFTkdJTkUgcm91dGluZXMAZnVuY3Rpb24gc2hvdWxkIG5vdCBoYXZlIGJlZW4gY2FsbGVkAGt5dGhlLnByb3RvLkt6aXBJbmZvLmNyaXRpY2FsX2t6aXBfZXJyb3JzAGt5dGhlLnByb3RvLmNvbW1vbi5MYW5ndWFnZS5hbmFseXplcl92ZXJzaW9uAENvdWxkIG5vdCBwYXJzZSB2bmFtZSBnZW5lcmF0b3IgY29uZmlndXJhdGlvbjogAF9fY2xhbmdfY3VkYV9idWlsdGluX3ZhcnMuaABfX2NsYW5nX2N1ZGFfaW50cmluc2ljcy5oAF9fY2xhbmdfY3VkYV9tYXRoLmgALyo9PT0tLS0tIF9fd21taW50cmluX3BjbG11bC5oIC0gUENNVUwgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19XTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8X193bW1pbnRyaW5fcGNsbXVsLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx3bW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1dNTUlOVFJJTl9QQ0xNVUxfSAojZGVmaW5lIF9fV01NSU5UUklOX1BDTE1VTF9ICgovLy8gTXVsdGlwbGllcyB0d28gNjQtYml0IGludGVnZXIgdmFsdWVzLCB3aGljaCBhcmUgc2VsZWN0ZWQgZnJvbSBzb3VyY2UKLy8vICAgIG9wZXJhbmRzIHVzaW5nIHRoZSBpbW1lZGlhdGUtdmFsdWUgb3BlcmFuZC4gVGhlIG11bHRpcGxpY2F0aW9uIGlzIGEKLy8vICAgIGNhcnJ5LWxlc3MgbXVsdGlwbGljYXRpb24sIGFuZCB0aGUgMTI4LWJpdCBpbnRlZ2VyIHByb2R1Y3QgaXMgc3RvcmVkIGluCi8vLyAgICB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhpIF9tbV9jbG11bGVwaTY0X3NpMTI4KF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSwgY29uc3QgaW50IF9fSSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBDTE1VTFFEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1gKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBpNjRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19ZCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggaTY0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fSQovLy8gICAgQW4gaW1tZWRpYXRlIHZhbHVlIHNwZWNpZnlpbmcgd2hpY2ggNjQtYml0IHZhbHVlcyB0byBzZWxlY3QgZnJvbSB0aGUKLy8vICAgIG9wZXJhbmRzLiBCaXQgMCBpcyB1c2VkIHRvIHNlbGVjdCBhIHZhbHVlIGZyb20gb3BlcmFuZCBcYSBfX1gsIGFuZCBiaXQKLy8vICAgIDQgaXMgdXNlZCB0byBzZWxlY3QgYSB2YWx1ZSBmcm9tIG9wZXJhbmQgXGEgX19ZOiBcbgovLy8gICAgQml0WzBdPTAgaW5kaWNhdGVzIHRoYXQgYml0c1s2MzowXSBvZiBvcGVyYW5kIFxhIF9fWCBhcmUgdXNlZC4gXG4KLy8vICAgIEJpdFswXT0xIGluZGljYXRlcyB0aGF0IGJpdHNbMTI3OjY0XSBvZiBvcGVyYW5kIFxhIF9fWCBhcmUgdXNlZC4gXG4KLy8vICAgIEJpdFs0XT0wIGluZGljYXRlcyB0aGF0IGJpdHNbNjM6MF0gb2Ygb3BlcmFuZCBcYSBfX1kgYXJlIHVzZWQuIFxuCi8vLyAgICBCaXRbNF09MSBpbmRpY2F0ZXMgdGhhdCBiaXRzWzEyNzo2NF0gb2Ygb3BlcmFuZCBcYSBfX1kgYXJlIHVzZWQuCi8vLyBccmV0dXJucyBUaGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByZXN1bHQgb2YgdGhlIGNhcnJ5LWxlc3MKLy8vICAgIG11bHRpcGxpY2F0aW9uIG9mIHRoZSBzZWxlY3RlZCA2NC1iaXQgdmFsdWVzLgojZGVmaW5lIF9tbV9jbG11bGVwaTY0X3NpMTI4KFgsIFksIEkpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGNsbXVscWRxMTI4KChfX3YyZGkpKF9fbTEyOGkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShZKSwgKGNoYXIpKEkpKSkKCiNlbmRpZiAvKiBfX1dNTUlOVFJJTl9QQ0xNVUxfSCAqLwoAYXJtX2NkZS5oAC8qPT09LS0tLSBhdngyaW50cmluLmggLSBBVlgyIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4MmludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlgySU5UUklOX0gKI2RlZmluZSBfX0FWWDJJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDIiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMjU2KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMTI4IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4MiIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCi8qIFNTRTQgTXVsdGlwbGUgUGFja2VkIFN1bXMgb2YgQWJzb2x1dGUgRGlmZmVyZW5jZS4gICovCiNkZWZpbmUgX21tMjU2X21wc2FkYndfZXB1OChYLCBZLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX21wc2FkYncyNTYoKF9fdjMycWkpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMycWkpKF9fbTI1NmkpKFkpLCAoaW50KShNKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWJzX2VwaTgoX19tMjU2aSBfX2EpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWJzYjI1NigoX192MzJxaSlfX2EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWJzX2VwaTE2KF9fbTI1NmkgX19hKQp7CiAgICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFic3cyNTYoKF9fdjE2aGkpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Fic19lcGkzMihfX20yNTZpIF9fYSkKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhYnNkMjU2KChfX3Y4c2kpX19hKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BhY2tzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYWNrc3N3YjI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9wYWNrc19lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFja3NzZHcyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3BhY2t1c19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFja3Vzd2IyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfcGFja3VzX2VwaTMyKF9fbTI1NmkgX19WMSwgX19tMjU2aSBfX1YyKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9wYWNrdXNkdzI1NigoX192OHNpKV9fVjEsIChfX3Y4c2kpX19WMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YzMnF1KV9fYSArIChfX3YzMnF1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192MTZodSlfX2EgKyAoX192MTZodSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWRkX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjhzdSlfX2EgKyAoX192OHN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSArIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZHNfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFkZHNiMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2FkZHNfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhZGRzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hZGRzX2VwdTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BhZGR1c2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYWRkc19lcHUxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFkZHVzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCiNkZWZpbmUgX21tMjU2X2FsaWducl9lcGk4KGEsIGIsIG4pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGFsaWducjI1NigoX192MzJxaSkoX19tMjU2aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJxaSkoX19tMjU2aSkoYiksIChuKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYW5kX3NpMjU2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkdSlfX2EgJiAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hbmRub3Rfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSh+KF9fdjRkdSlfX2EgJiAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9hdmdfZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGF2Z2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYXZnX2VwdTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYXZndzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9ibGVuZHZfZXBpOChfX20yNTZpIF9fVjEsIF9fbTI1NmkgX19WMiwgX19tMjU2aSBfX00pCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGJsZW5kdmIyNTYoKF9fdjMycWkpX19WMSwgKF9fdjMycWkpX19WMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YzMnFpKV9fTSk7Cn0KCiNkZWZpbmUgX21tMjU2X2JsZW5kX2VwaTE2KFYxLCBWMiwgTSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYmxlbmR3MjU2KChfX3YxNmhpKShfX20yNTZpKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSkoX19tMjU2aSkoVjIpLCAoaW50KShNKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZXFfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YzMnFpKV9fYSA9PSAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZXFfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192MTZoaSlfX2EgPT0gKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NtcGVxX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjhzaSlfX2EgPT0gKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY21wZXFfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGRpKV9fYSA9PSAoX192NGRpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbXBndF9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIC8qIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHBlcmZvcm1zIGEgc2lnbmVkIGNvbXBhcmlzb24sIGJ1dCBfX3YzMnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YzMnFzLiAqLwogIHJldHVybiAoX19tMjU2aSkoKF9fdjMycXMpX19hID4gKF9fdjMycXMpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NtcGd0X2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjE2aGkpX19hID4gKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2NtcGd0X2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjhzaSlfX2EgPiAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbXBndF9lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3Y0ZGkpX19hID4gKF9fdjRkaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaGFkZF9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9waGFkZHcyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaGFkZF9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9waGFkZGQyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2hhZGRzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BoYWRkc3cyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaHN1Yl9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9waHN1YncyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfaHN1Yl9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9waHN1YmQyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2hzdWJzX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Boc3Vic3cyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFkZHVic19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICAgIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbWFkZHVic3cyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFkZF9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1hZGR3ZDI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXhfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHNiMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHNkMjU2KChfX3Y4c2kpX19hLCAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXhfZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHViMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcHUxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHV3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21heF9lcHUzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1heHVkMjU2KChfX3Y4c2kpX19hLCAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9taW5fZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnNiMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnN3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcGkzMihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnNkMjU2KChfX3Y4c2kpX19hLCAoX192OHNpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9taW5fZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnViMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21pbl9lcHUxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG1pbnV3MjU2ICgoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9taW5fZXB1MzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtaW51ZDI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZlbWFza19lcGk4KF9fbTI1NmkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Btb3Ztc2tiMjU2KChfX3YzMnFpKV9fYSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGk4X2VwaTE2KF9fbTEyOGkgX19WKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjE2cXMpX19WLCBfX3YxNmhpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaThfZXBpMzIoX19tMTI4aSBfX1YpCnsKICAvKiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBwZXJmb3JtcyBhIHNpZ25lZCBleHRlbnNpb24sIGJ1dCBfX3YxNnFpIGlzIGEgY2hhcgogICAgIHdoaWNoIG1heSBiZSBzaWduZWQgb3IgdW5zaWduZWQsIHNvIHVzZSBfX3YxNnFzLiAqLwogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxcylfX1YsIChfX3YxNnFzKV9fViwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyksIF9fdjhzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGk4X2VwaTY0KF9fbTEyOGkgX19WKQp7CiAgLyogVGhpcyBmdW5jdGlvbiBhbHdheXMgcGVyZm9ybXMgYSBzaWduZWQgZXh0ZW5zaW9uLCBidXQgX192MTZxaSBpcyBhIGNoYXIKICAgICB3aGljaCBtYXkgYmUgc2lnbmVkIG9yIHVuc2lnbmVkLCBzbyB1c2UgX192MTZxcy4gKi8KICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXMpX19WLCAoX192MTZxcylfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMTZfZXBpMzIoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhoaSlfX1YsIF9fdjhzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcGkxNl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fViwgKF9fdjhoaSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpMzJfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzaSlfX1YsIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHU4X2VwaTE2KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3YxNnF1KV9fViwgX192MTZoaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHU4X2VwaTMyKF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNnF1KV9fViwgKF9fdjE2cXUpX19WLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KSwgX192OHNpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdThfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cXUpX19WLCAoX192MTZxdSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1MTZfZXBpMzIoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhodSlfX1YsIF9fdjhzaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRlcHUxNl9lcGk2NChfX20xMjhpIF9fVikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGh1KV9fViwgKF9fdjhodSlfX1YsIDAsIDEsIDIsIDMpLCBfX3Y0ZGkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1MzJfZXBpNjQoX19tMTI4aSBfX1YpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjRzdSlfX1YsIF9fdjRkaSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fICBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wbXVsZHEyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X211bGhyc19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcG11bGhyc3cyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsaGlfZXB1MTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtdWxodXcyNTYoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsaGlfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BtdWxodzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxsb19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YxNmh1KV9fYSAqIChfX3YxNmh1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fICBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbXVsbG9fZXBpMzIgKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjhzdSlfX2EgKiAoX192OHN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tdWxfZXB1MzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BtdWx1ZHEyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X29yX3NpMjU2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjRkdSlfX2EgfCAoX192NGR1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zYWRfZXB1OChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcHNhZGJ3MjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NodWZmbGVfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNodWZiMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZV9lcGkzMihhLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNodWZkMjU2KChfX3Y4c2kpKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X3NodWZmbGVoaV9lcGkxNihhLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNodWZodzI1NigoX192MTZoaSkoX19tMjU2aSkoYSksIChpbnQpKGltbSkpKQoKI2RlZmluZSBfbW0yNTZfc2h1ZmZsZWxvX2VwaTE2KGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2h1Zmx3MjU2KChfX3YxNmhpKShfX20yNTZpKShhKSwgKGludCkoaW1tKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2lnbl9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzaWduYjI1NigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaWduX2VwaTE2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzaWdudzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zaWduX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogICAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzaWduZDI1NigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IpOwp9CgojZGVmaW5lIF9tbTI1Nl9zbGxpX3NpMjU2KGEsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsZHFpMjU2X2J5dGVzaGlmdCgoX192NGRpKShfX20yNTZpKShhKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9ic2xsaV9lcGkxMjgoYSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGxkcWkyNTZfYnl0ZXNoaWZ0KChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGxpX2VwaTE2KF9fbTI1NmkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsd2kyNTYoKF9fdjE2aGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbF9lcGkxNihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGx3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjhoaSlfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbGlfZXBpMzIoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzbGxkaTI1NigoX192OHNpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGxfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsZDI1NigoX192OHNpKV9fYSwgKF9fdjRzaSlfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NsbGlfZXBpNjQoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzbGxxaTI1NigoX192NGRpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGxfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc2xscTI1NigoX192NGRpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmFpX2VwaTE2KF9fbTI1NmkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3Jhd2kyNTYoKF9fdjE2aGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYV9lcGkxNihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmF3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjhoaSlfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYWlfZXBpMzIoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmFkaTI1NigoX192OHNpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmFfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JhZDI1NigoX192OHNpKV9fYSwgKF9fdjRzaSlfX2NvdW50KTsKfQoKI2RlZmluZSBfbW0yNTZfc3JsaV9zaTI1NihhLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybGRxaTI1Nl9ieXRlc2hpZnQoKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X2JzcmxpX2VwaTEyOChhLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybGRxaTI1Nl9ieXRlc2hpZnQoKF9fbTI1NmkpKGEpLCAoaW50KShpbW0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmxpX2VwaTE2KF9fbTI1NmkgX19hLCBpbnQgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3Jsd2kyNTYoKF9fdjE2aGkpX19hLCBfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybF9lcGkxNihfX20yNTZpIF9fYSwgX19tMTI4aSBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Bzcmx3MjU2KChfX3YxNmhpKV9fYSwgKF9fdjhoaSlfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybGlfZXBpMzIoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmxkaTI1NigoX192OHNpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmxfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsZDI1NigoX192OHNpKV9fYSwgKF9fdjRzaSlfX2NvdW50KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NybGlfZXBpNjQoX19tMjU2aSBfX2EsIGludCBfX2NvdW50KQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3BzcmxxaTI1NigoX192NGRpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmxfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTEyOGkgX19jb3VudCkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wc3JscTI1NigoX192NGRpKV9fYSwgX19jb3VudCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpKChfX3YzMnF1KV9fYSAtIChfX3YzMnF1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192MTZodSlfX2EgLSAoX192MTZodSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3ViX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSkoKF9fdjhzdSlfX2EgLSAoX192OHN1KV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJfZXBpNjQoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSAtIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1YnNfZXBpOChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHN1YnNiMjU2KChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N1YnNfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzdWJzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zdWJzX2VwdTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzdWJ1c2IyNTYoKF9fdjMycWkpX19hLCAoX192MzJxaSlfX2IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Vic19lcHUxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHN1YnVzdzI1NigoX192MTZoaSlfX2EsIChfX3YxNmhpKV9fYik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl91bnBhY2toaV9lcGk4KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MzJxaSlfX2EsIChfX3YzMnFpKV9fYiwgOCwgMzIrOCwgOSwgMzIrOSwgMTAsIDMyKzEwLCAxMSwgMzIrMTEsIDEyLCAzMisxMiwgMTMsIDMyKzEzLCAxNCwgMzIrMTQsIDE1LCAzMisxNSwgMjQsIDMyKzI0LCAyNSwgMzIrMjUsIDI2LCAzMisyNiwgMjcsIDMyKzI3LCAyOCwgMzIrMjgsIDI5LCAzMisyOSwgMzAsIDMyKzMwLCAzMSwgMzIrMzEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdW5wYWNraGlfZXBpMTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YxNmhpKV9fYSwgKF9fdjE2aGkpX19iLCA0LCAxNis0LCA1LCAxNis1LCA2LCAxNis2LCA3LCAxNis3LCAxMiwgMTYrMTIsIDEzLCAxNisxMywgMTQsIDE2KzE0LCAxNSwgMTYrMTUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfdW5wYWNraGlfZXBpMzIoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2kpX19hLCAoX192OHNpKV9fYiwgMiwgOCsyLCAzLCA4KzMsIDYsIDgrNiwgNywgOCs3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2hpX2VwaTY0KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IsIDEsIDQrMSwgMywgNCszKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2xvX2VwaTgoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YzMnFpKV9fYSwgKF9fdjMycWkpX19iLCAwLCAzMiswLCAxLCAzMisxLCAyLCAzMisyLCAzLCAzMiszLCA0LCAzMis0LCA1LCAzMis1LCA2LCAzMis2LCA3LCAzMis3LCAxNiwgMzIrMTYsIDE3LCAzMisxNywgMTgsIDMyKzE4LCAxOSwgMzIrMTksIDIwLCAzMisyMCwgMjEsIDMyKzIxLCAyMiwgMzIrMjIsIDIzLCAzMisyMyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl91bnBhY2tsb19lcGkxNihfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2aGkpX19hLCAoX192MTZoaSlfX2IsIDAsIDE2KzAsIDEsIDE2KzEsIDIsIDE2KzIsIDMsIDE2KzMsIDgsIDE2KzgsIDksIDE2KzksIDEwLCAxNisxMCwgMTEsIDE2KzExKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3VucGFja2xvX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNpKV9fYSwgKF9fdjhzaSlfX2IsIDAsIDgrMCwgMSwgOCsxLCA0LCA4KzQsIDUsIDgrNSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl91bnBhY2tsb19lcGk2NChfX20yNTZpIF9fYSwgX19tMjU2aSBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkaSlfX2EsIChfX3Y0ZGkpX19iLCAwLCA0KzAsIDIsIDQrMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl94b3Jfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTZpKSgoX192NGR1KV9fYSBeIChfX3Y0ZHUpX19iKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3N0cmVhbV9sb2FkX3NpMjU2KF9fbTI1NmkgY29uc3QgKl9fVikKewogIHR5cGVkZWYgX192NGRpIF9fdjRkaV9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMzIpKSk7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9ub250ZW1wb3JhbF9sb2FkKChjb25zdCBfX3Y0ZGlfYWxpZ25lZCAqKV9fVik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdHNzX3BzKF9fbTEyOCBfX1gpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fWCwgKF9fdjRzZilfX1gsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0c2RfcGQoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19hLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0c3NfcHMoX19tMTI4IF9fWCkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2YpX19YLCAoX192NHNmKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RzZF9wZChfX20xMjhkIF9fWCkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MmRmKV9fWCwgKF9fdjJkZilfX1gsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0c2kxMjhfc2kyNTYoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19YLCAwLCAxLCAwLCAxKTsKfQoKI2RlZmluZSBfbW1fYnJvYWRjYXN0c2kxMjhfc2kyNTYoWCkgX21tMjU2X2Jyb2FkY2FzdHNpMTI4X3NpMjU2KFgpCgojZGVmaW5lIF9tbV9ibGVuZF9lcGkzMihWMSwgVjIsIE0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcGJsZW5kZDEyOCgoX192NHNpKShfX20xMjhpKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShWMiksIChpbnQpKE0pKSkKCiNkZWZpbmUgX21tMjU2X2JsZW5kX2VwaTMyKFYxLCBWMiwgTSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wYmxlbmRkMjU2KChfX3Y4c2kpKF9fbTI1NmkpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKFYyKSwgKGludCkoTSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdGJfZXBpOChfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192MTZxaSlfX1gsIChfX3YxNnFpKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3R3X2VwaTE2KF9fbTEyOGkgX19YKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4aGkpX19YLCAoX192OGhpKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RkX2VwaTMyKF9fbTEyOGkgX19YKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RxX2VwaTY0KF9fbTEyOGkgX19YKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19YLCAoX192MmRpKV9fWCwgMCwgMCwgMCwgMCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3RiX2VwaTgoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjE2cWkpX19YLCAoX192MTZxaSlfX1gsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fYnJvYWRjYXN0d19lcGkxNihfX20xMjhpIF9fWCkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OGhpKV9fWCwgKF9fdjhoaSlfX1gsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDApOwp9CgoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdGRfZXBpMzIoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX1gsIChfX3Y0c2kpX19YLCAwLCAwLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdHFfZXBpNjQoX19tMTI4aSBfX1gpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19YLCAwLCAwKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV2YXI4eDMyX2VwaTMyKF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wZXJtdmFyc2kyNTYoKF9fdjhzaSlfX2EsIChfX3Y4c2kpX19iKTsKfQoKI2RlZmluZSBfbW0yNTZfcGVybXV0ZTR4NjRfcGQoViwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9wZXJtZGYyNTYoKF9fdjRkZikoX19tMjU2ZCkoViksIChpbnQpKE0pKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3Blcm11dGV2YXI4eDMyX3BzKF9fbTI1NiBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfcGVybXZhcnNmMjU2KChfX3Y4c2YpX19hLCAoX192OHNpKV9fYik7Cn0KCiNkZWZpbmUgX21tMjU2X3Blcm11dGU0eDY0X2VwaTY0KFYsIE0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcGVybWRpMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKFYpLCAoaW50KShNKSkpCgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMngxMjhfc2kyNTYoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3Blcm10aTI1NigoX19tMjU2aSkoVjEpLCAoX19tMjU2aSkoVjIpLCAoaW50KShNKSkpCgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0aTEyOF9zaTI1NihWLCBNKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3QxMjhpMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKFYpLCAoaW50KShNKSkpCgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRpMTI4X3NpMjU2KFYxLCBWMiwgTSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9pbnNlcnQxMjhpMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFYyKSwgKGludCkoTSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tsb2FkX2VwaTMyKGludCBjb25zdCAqX19YLCBfX20yNTZpIF9fTSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9tYXNrbG9hZGQyNTYoKGNvbnN0IF9fdjhzaSAqKV9fWCwgKF9fdjhzaSlfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza2xvYWRfZXBpNjQobG9uZyBsb25nIGNvbnN0ICpfX1gsIF9fbTI1NmkgX19NKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX21hc2tsb2FkcTI1NigoY29uc3QgX192NGRpICopX19YLCAoX192NGRpKV9fTSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrbG9hZF9lcGkzMihpbnQgY29uc3QgKl9fWCwgX19tMTI4aSBfX00pCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfbWFza2xvYWRkKChjb25zdCBfX3Y0c2kgKilfX1gsIChfX3Y0c2kpX19NKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tsb2FkX2VwaTY0KGxvbmcgbG9uZyBjb25zdCAqX19YLCBfX20xMjhpIF9fTSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9tYXNrbG9hZHEoKGNvbnN0IF9fdjJkaSAqKV9fWCwgKF9fdjJkaSlfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3N0b3JlX2VwaTMyKGludCAqX19YLCBfX20yNTZpIF9fTSwgX19tMjU2aSBfX1kpCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrc3RvcmVkMjU2KChfX3Y4c2kgKilfX1gsIChfX3Y4c2kpX19NLCAoX192OHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrc3RvcmVfZXBpNjQobG9uZyBsb25nICpfX1gsIF9fbTI1NmkgX19NLCBfX20yNTZpIF9fWSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZXEyNTYoKF9fdjRkaSAqKV9fWCwgKF9fdjRkaSlfX00sIChfX3Y0ZGkpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tzdG9yZV9lcGkzMihpbnQgKl9fWCwgX19tMTI4aSBfX00sIF9fbTEyOGkgX19ZKQp7CiAgX19idWlsdGluX2lhMzJfbWFza3N0b3JlZCgoX192NHNpICopX19YLCAoX192NHNpKV9fTSwgKF9fdjRzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3N0b3JlX2VwaTY0KGxvbmcgbG9uZyAqX19YLCBfX20xMjhpIF9fTSwgX19tMTI4aSBfX1kpCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrc3RvcmVxKCggX192MmRpICopX19YLCAoX192MmRpKV9fTSwgKF9fdjJkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc2xsdl9lcGkzMihfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNsbHY4c2koKF9fdjhzaSlfX1gsIChfX3Y4c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NsbHZfZXBpMzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3BzbGx2NHNpKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zbGx2X2VwaTY0KF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc2xsdjRkaSgoX192NGRpKV9fWCwgKF9fdjRkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc2xsdl9lcGk2NChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNsbHYyZGkoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X3NyYXZfZXBpMzIoX19tMjU2aSBfX1gsIF9fbTI1NmkgX19ZKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3BzcmF2OHNpKChfX3Y4c2kpX19YLCAoX192OHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9zcmF2X2VwaTMyKF9fbTEyOGkgX19YLCBfX20xMjhpIF9fWSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9wc3JhdjRzaSgoX192NHNpKV9fWCwgKF9fdjRzaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfc3Jsdl9lcGkzMihfX20yNTZpIF9fWCwgX19tMjU2aSBfX1kpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfcHNybHY4c2koKF9fdjhzaSlfX1gsIChfX3Y4c2kpX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3NybHZfZXBpMzIoX19tMTI4aSBfX1gsIF9fbTEyOGkgX19ZKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Bzcmx2NHNpKChfX3Y0c2kpX19YLCAoX192NHNpKV9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9zcmx2X2VwaTY0KF9fbTI1NmkgX19YLCBfX20yNTZpIF9fWSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9wc3JsdjRkaSgoX192NGRpKV9fWCwgKF9fdjRkaSlfX1kpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fc3Jsdl9lcGk2NChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfcHNybHYyZGkoKF9fdjJkaSlfX1gsIChfX3YyZGkpX19ZKTsKfQoKI2RlZmluZSBfbW1fbWFza19pMzJnYXRoZXJfcGQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3BkKChfX3YyZGYpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMmdhdGhlcl9wZChhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0Z2F0aGVyX3BkKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfZ2F0aGVycV9wZCgoX192MmRmKShfX20xMjhkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRnYXRoZXJfcGQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbV9tYXNrX2kzMmdhdGhlcl9wcyhhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9wcygoX192NHNmKShfX20xMjgpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pMzJnYXRoZXJfcHMoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcHMyNTYoKF9fdjhzZikoX19tMjU2KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX21hc2tfaTY0Z2F0aGVyX3BzKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BzKChfX3Y0c2YpKF9fbTEyOCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2k2NGdhdGhlcl9wcyhhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfZ2F0aGVycV9wczI1NigoX192NHNmKShfX20xMjgpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW1fbWFza19pMzJnYXRoZXJfZXBpMzIoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJkX2QoKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTMyZ2F0aGVyX2VwaTMyKGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9kMjU2KChfX3Y4c2kpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSkoX19tMjU2aSkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbV9tYXNrX2k2NGdhdGhlcl9lcGkzMihhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfZCgoX192NHNpKShfX20xMjhpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW0yNTZfbWFza19pNjRnYXRoZXJfZXBpMzIoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX2QyNTYoKF9fdjRzaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tX21hc2tfaTMyZ2F0aGVyX2VwaTY0KGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9xKChfX3YyZGkpKF9fbTEyOGkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2kzMmdhdGhlcl9lcGk2NChhLCBtLCBpLCBtYXNrLCBzKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcTI1NigoX192NGRpKShfX20yNTZpKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvbmcgbG9uZyBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKG1hc2spLCAocykpKQoKI2RlZmluZSBfbW1fbWFza19pNjRnYXRoZXJfZXBpNjQoYSwgbSwgaSwgbWFzaywgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3EoKF9fdjJkaSkoX19tMTI4aSkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsb25nIGxvbmcgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShtYXNrKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaTY0Z2F0aGVyX2VwaTY0KGEsIG0sIGksIG1hc2ssIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVycV9xMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkobWFzayksIChzKSkpCgojZGVmaW5lIF9tbV9pMzJnYXRoZXJfcGQobSwgaSwgcykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3BkKChfX3YyZGYpX21tX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvdWJsZSBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fY21wZXFfcGQoX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BkKCkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMpKSkKCiNkZWZpbmUgX21tMjU2X2kzMmdhdGhlcl9wZChtLCBpLCBzKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfcGQyNTYoKF9fdjRkZilfbW0yNTZfdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jbXBfcGQoX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9DTVBfRVFfT1EpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMpKSkKCiNkZWZpbmUgX21tX2k2NGdhdGhlcl9wZChtLCBpLCBzKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcGQoKF9fdjJkZilfbW1fdW5kZWZpbmVkX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9jbXBlcV9wZChfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX21tX3NldHplcm9fcGQoKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW0yNTZfaTY0Z2F0aGVyX3BkKG0sIGksIHMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfZ2F0aGVycV9wZDI1NigoX192NGRmKV9tbTI1Nl91bmRlZmluZWRfcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2NtcF9wZChfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0NNUF9FUV9PUSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW1faTMyZ2F0aGVyX3BzKG0sIGksIHMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXJkX3BzKChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9jbXBlcV9wcyhfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcygpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMpKSkKCiNkZWZpbmUgX21tMjU2X2kzMmdhdGhlcl9wcyhtLCBpLCBzKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9wczI1NigoX192OHNmKV9tbTI1Nl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZsb2F0IGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfY21wX3BzKF9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0NNUF9FUV9PUSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzKSkpCgojZGVmaW5lIF9tbV9pNjRnYXRoZXJfcHMobSwgaSwgcykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfcHMoKF9fdjRzZilfbW1fdW5kZWZpbmVkX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbG9hdCBjb25zdCAqKShtKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2NtcGVxX3BzKF9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tbV9zZXR6ZXJvX3BzKCkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocykpKQoKI2RlZmluZSBfbW0yNTZfaTY0Z2F0aGVyX3BzKG0sIGksIHMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9nYXRoZXJxX3BzMjU2KChfX3Y0c2YpX21tX3VuZGVmaW5lZF9wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQgY29uc3QgKikobSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9jbXBlcV9wcyhfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbW1fc2V0emVyb19wcygpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMpKSkKCiNkZWZpbmUgX21tX2kzMmdhdGhlcl9lcGkzMihtLCBpLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcmRfZCgoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgKF9fdjRzaSkoX19tMTI4aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldDFfZXBpMzIoLTEpLCAocykpKQoKI2RlZmluZSBfbW0yNTZfaTMyZ2F0aGVyX2VwaTMyKG0sIGksIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9kMjU2KChfX3Y4c2kpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50IGNvbnN0ICopKG0pLCAoX192OHNpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfc2V0MV9lcGkzMigtMSksIChzKSkpCgojZGVmaW5lIF9tbV9pNjRnYXRoZXJfZXBpMzIobSwgaSwgcykgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9nYXRoZXJxX2QoKF9fdjRzaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQgY29uc3QgKikobSksIChfX3YyZGkpKF9fbTEyOGkpKGkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXQxX2VwaTMyKC0xKSwgKHMpKSkKCiNkZWZpbmUgX21tMjU2X2k2NGdhdGhlcl9lcGkzMihtLCBpLCBzKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2dhdGhlcnFfZDI1NigoX192NHNpKV9tbV91bmRlZmluZWRfc2kxMjgoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCBjb25zdCAqKShtKSwgKF9fdjRkaSkoX19tMjU2aSkoaSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldDFfZXBpMzIoLTEpLCAocykpKQoKI2RlZmluZSBfbW1faTMyZ2F0aGVyX2VwaTY0KG0sIGksIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9xKChfX3YyZGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0MV9lcGk2NHgoLTEpLCAocykpKQoKI2RlZmluZSBfbW0yNTZfaTMyZ2F0aGVyX2VwaTY0KG0sIGksIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVyZF9xMjU2KChfX3Y0ZGkpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0MV9lcGk2NHgoLTEpLCAocykpKQoKI2RlZmluZSBfbW1faTY0Z2F0aGVyX2VwaTY0KG0sIGksIHMpIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZ2F0aGVycV9xKChfX3YyZGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0MV9lcGk2NHgoLTEpLCAocykpKQoKI2RlZmluZSBfbW0yNTZfaTY0Z2F0aGVyX2VwaTY0KG0sIGksIHMpIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZ2F0aGVycV9xMjU2KChfX3Y0ZGkpX21tMjU2X3VuZGVmaW5lZF9zaTI1NigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nIGNvbnN0ICopKG0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKShfX20yNTZpKShpKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0MV9lcGk2NHgoLTEpLCAocykpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzI1NgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CgojZW5kaWYgLyogX19BVlgySU5UUklOX0ggKi8KAGJ1aWx0aW5zLmgAZm1hNGludHJpbi5oAGh2eF9oZXhhZ29uX3Byb3Rvcy5oAG1taW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIG1vdmRpcmludHJpbi5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxtb3ZkaXJpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9NT1ZESVJJTlRSSU5fSAojZGVmaW5lIF9NT1ZESVJJTlRSSU5fSAoKLyogTW92ZSBkb3VibGV3b3JkIGFzIGRpcmVjdCBzdG9yZSAqLwpzdGF0aWMgX19pbmxpbmVfXyB2b2lkCl9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIm1vdmRpcmkiKSkpCl9kaXJlY3RzdG9yZXVfdTMyICh2b2lkICpfX2RzdCwgdW5zaWduZWQgaW50ICBfX3ZhbHVlKQp7CiAgX19idWlsdGluX2lhMzJfZGlyZWN0c3RvcmVfdTMyKCh1bnNpZ25lZCBpbnQgKilfX2RzdCwgKHVuc2lnbmVkIGludClfX3ZhbHVlKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KCi8qIE1vdmUgcXVhZHdvcmQgYXMgZGlyZWN0IHN0b3JlICovCnN0YXRpYyBfX2lubGluZV9fIHZvaWQKX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCAgX190YXJnZXRfXygibW92ZGlyaSIpKSkKX2RpcmVjdHN0b3JldV91NjQgKHZvaWQgKl9fZHN0LCB1bnNpZ25lZCBsb25nIF9fdmFsdWUpCnsKICBfX2J1aWx0aW5faWEzMl9kaXJlY3RzdG9yZV91NjQoKHVuc2lnbmVkIGxvbmcgKilfX2RzdCwgX192YWx1ZSk7Cn0KCiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCgovKgogKiBtb3ZkaXI2NGIgLSBNb3ZlIDY0IGJ5dGVzIGFzIGRpcmVjdCBzdG9yZS4KICogVGhlIGRlc3RpbmF0aW9uIG11c3QgYmUgNjQgYnl0ZSBhbGlnbmVkLCBhbmQgdGhlIHN0b3JlIGlzIGF0b21pYy4KICogVGhlIHNvdXJjZSBhZGRyZXNzIGhhcyBubyBhbGlnbm1lbnQgcmVxdWlyZW1lbnQsIGFuZCB0aGUgbG9hZCBmcm9tCiAqIHRoZSBzb3VyY2UgYWRkcmVzcyBpcyBub3QgYXRvbWljLgogKi8Kc3RhdGljIF9faW5saW5lX18gdm9pZApfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sICBfX3RhcmdldF9fKCJtb3ZkaXI2NGIiKSkpCl9tb3ZkaXI2NGIgKHZvaWQgKl9fZHN0IF9fYXR0cmlidXRlX18oKGFsaWduX3ZhbHVlKDY0KSkpLCBjb25zdCB2b2lkICpfX3NyYykKewogIF9fYnVpbHRpbl9pYTMyX21vdmRpcjY0YihfX2RzdCwgX19zcmMpOwp9CgojZW5kaWYgLyogX01PVkRJUklOVFJJTl9IICovCgBzZ3hpbnRyaW4uaABzdGRhcmcuaAAvLz09PS0tIHNhbml0aXplci9hc2FuX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotIEMrKyAtKi09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBUaGlzIGZpbGUgaXMgYSBwYXJ0IG9mIEFkZHJlc3NTYW5pdGl6ZXIgKEFTYW4pLgovLwovLyBQdWJsaWMgaW50ZXJmYWNlIGhlYWRlci4KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KI2lmbmRlZiBTQU5JVElaRVJfQVNBTl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9BU0FOX0lOVEVSRkFDRV9ICgojaW5jbHVkZSA8c2FuaXRpemVyL2NvbW1vbl9pbnRlcmZhY2VfZGVmcy5oPgoKI2lmZGVmIF9fY3BsdXNwbHVzCmV4dGVybiAiQyIgewojZW5kaWYKLy8vIE1hcmtzIGEgbWVtb3J5IHJlZ2lvbiAoPGM+W2FkZHIsIGFkZHIrc2l6ZSk8L2M+KSBhcyB1bmFkZHJlc3NhYmxlLgovLy8KLy8vIFRoaXMgbWVtb3J5IG11c3QgYmUgcHJldmlvdXNseSBhbGxvY2F0ZWQgYnkgeW91ciBwcm9ncmFtLiBJbnN0cnVtZW50ZWQKLy8vIGNvZGUgaXMgZm9yYmlkZGVuIGZyb20gYWNjZXNzaW5nIGFkZHJlc3NlcyBpbiB0aGlzIHJlZ2lvbiB1bnRpbCBpdCBpcwovLy8gdW5wb2lzb25lZC4gVGhpcyBmdW5jdGlvbiBpcyBub3QgZ3VhcmFudGVlZCB0byBwb2lzb24gdGhlIGVudGlyZSByZWdpb24gLQovLy8gaXQgY291bGQgcG9pc29uIG9ubHkgYSBzdWJyZWdpb24gb2YgPGM+W2FkZHIsIGFkZHIrc2l6ZSk8L2M+IGR1ZSB0byBBU2FuCi8vLyBhbGlnbm1lbnQgcmVzdHJpY3Rpb25zLgovLy8KLy8vIFxub3RlIFRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZC1zYWZlIGJlY2F1c2Ugbm8gdHdvIHRocmVhZHMgY2FuIHBvaXNvbiBvcgovLy8gdW5wb2lzb24gbWVtb3J5IGluIHRoZSBzYW1lIG1lbW9yeSByZWdpb24gc2ltdWx0YW5lb3VzbHkuCi8vLwovLy8gXHBhcmFtIGFkZHIgU3RhcnQgb2YgbWVtb3J5IHJlZ2lvbi4KLy8vIFxwYXJhbSBzaXplIFNpemUgb2YgbWVtb3J5IHJlZ2lvbi4Kdm9pZCBfX2FzYW5fcG9pc29uX21lbW9yeV9yZWdpb24odm9pZCBjb25zdCB2b2xhdGlsZSAqYWRkciwgc2l6ZV90IHNpemUpOwoKLy8vIE1hcmtzIGEgbWVtb3J5IHJlZ2lvbiAoPGM+W2FkZHIsIGFkZHIrc2l6ZSk8L2M+KSBhcyBhZGRyZXNzYWJsZS4KLy8vCi8vLyBUaGlzIG1lbW9yeSBtdXN0IGJlIHByZXZpb3VzbHkgYWxsb2NhdGVkIGJ5IHlvdXIgcHJvZ3JhbS4gQWNjZXNzaW5nCi8vLyBhZGRyZXNzZXMgaW4gdGhpcyByZWdpb24gaXMgYWxsb3dlZCB1bnRpbCB0aGlzIHJlZ2lvbiBpcyBwb2lzb25lZCBhZ2Fpbi4KLy8vIFRoaXMgZnVuY3Rpb24gY291bGQgdW5wb2lzb24gYSBzdXBlci1yZWdpb24gb2YgPGM+W2FkZHIsIGFkZHIrc2l6ZSk8L2M+IGR1ZQovLy8gdG8gQVNhbiBhbGlnbm1lbnQgcmVzdHJpY3Rpb25zLgovLy8KLy8vIFxub3RlIFRoaXMgZnVuY3Rpb24gaXMgbm90IHRocmVhZC1zYWZlIGJlY2F1c2Ugbm8gdHdvIHRocmVhZHMgY2FuCi8vLyBwb2lzb24gb3IgdW5wb2lzb24gbWVtb3J5IGluIHRoZSBzYW1lIG1lbW9yeSByZWdpb24gc2ltdWx0YW5lb3VzbHkuCi8vLwovLy8gXHBhcmFtIGFkZHIgU3RhcnQgb2YgbWVtb3J5IHJlZ2lvbi4KLy8vIFxwYXJhbSBzaXplIFNpemUgb2YgbWVtb3J5IHJlZ2lvbi4Kdm9pZCBfX2FzYW5fdW5wb2lzb25fbWVtb3J5X3JlZ2lvbih2b2lkIGNvbnN0IHZvbGF0aWxlICphZGRyLCBzaXplX3Qgc2l6ZSk7CgovLyBNYWNyb3MgcHJvdmlkZWQgZm9yIGNvbnZlbmllbmNlLgojaWYgX19oYXNfZmVhdHVyZShhZGRyZXNzX3Nhbml0aXplcikgfHwgZGVmaW5lZChfX1NBTklUSVpFX0FERFJFU1NfXykKLy8vIE1hcmtzIGEgbWVtb3J5IHJlZ2lvbiBhcyB1bmFkZHJlc3NhYmxlLgovLy8KLy8vIFxub3RlIE1hY3JvIHByb3ZpZGVkIGZvciBjb252ZW5pZW5jZTsgZGVmaW5lZCBhcyBhIG5vLW9wIGlmIEFTYW4gaXMgbm90Ci8vLyBlbmFibGVkLgovLy8KLy8vIFxwYXJhbSBhZGRyIFN0YXJ0IG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gc2l6ZSBTaXplIG9mIG1lbW9yeSByZWdpb24uCiNkZWZpbmUgQVNBTl9QT0lTT05fTUVNT1JZX1JFR0lPTihhZGRyLCBzaXplKSBcCiAgX19hc2FuX3BvaXNvbl9tZW1vcnlfcmVnaW9uKChhZGRyKSwgKHNpemUpKQoKLy8vIE1hcmtzIGEgbWVtb3J5IHJlZ2lvbiBhcyBhZGRyZXNzYWJsZS4KLy8vCi8vLyBcbm90ZSBNYWNybyBwcm92aWRlZCBmb3IgY29udmVuaWVuY2U7IGRlZmluZWQgYXMgYSBuby1vcCBpZiBBU2FuIGlzIG5vdAovLy8gZW5hYmxlZC4KLy8vCi8vLyBccGFyYW0gYWRkciBTdGFydCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBvZiBtZW1vcnkgcmVnaW9uLgojZGVmaW5lIEFTQU5fVU5QT0lTT05fTUVNT1JZX1JFR0lPTihhZGRyLCBzaXplKSBcCiAgX19hc2FuX3VucG9pc29uX21lbW9yeV9yZWdpb24oKGFkZHIpLCAoc2l6ZSkpCiNlbHNlCiNkZWZpbmUgQVNBTl9QT0lTT05fTUVNT1JZX1JFR0lPTihhZGRyLCBzaXplKSBcCiAgKCh2b2lkKShhZGRyKSwgKHZvaWQpKHNpemUpKQojZGVmaW5lIEFTQU5fVU5QT0lTT05fTUVNT1JZX1JFR0lPTihhZGRyLCBzaXplKSBcCiAgKCh2b2lkKShhZGRyKSwgKHZvaWQpKHNpemUpKQojZW5kaWYKCi8vLyBDaGVja3MgaWYgYW4gYWRkcmVzcyBpcyBwb2lzb25lZC4KLy8vCi8vLyBSZXR1cm5zIDEgaWYgPGM+PGk+YWRkcjwvaT48L2M+IGlzIHBvaXNvbmVkICh0aGF0IGlzLCAxLWJ5dGUgcmVhZC93cml0ZQovLy8gYWNjZXNzIHRvIHRoaXMgYWRkcmVzcyB3b3VsZCByZXN1bHQgaW4gYW4gZXJyb3IgcmVwb3J0IGZyb20gQVNhbikuCi8vLyBPdGhlcndpc2UgcmV0dXJucyAwLgovLy8KLy8vIFxwYXJhbSBhZGRyIEFkZHJlc3MgdG8gY2hlY2suCi8vLwovLy8gXHJldHZhbCAxIEFkZHJlc3MgaXMgcG9pc29uZWQuCi8vLyBccmV0dmFsIDAgQWRkcmVzcyBpcyBub3QgcG9pc29uZWQuCmludCBfX2FzYW5fYWRkcmVzc19pc19wb2lzb25lZCh2b2lkIGNvbnN0IHZvbGF0aWxlICphZGRyKTsKCi8vLyBDaGVja3MgaWYgYSByZWdpb24gaXMgcG9pc29uZWQuCi8vLwovLy8gSWYgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gPGM+W2JlZywgYmVnK3NpemUpPC9jPiBpcyBwb2lzb25lZCwgcmV0dXJucyB0aGUKLy8vIGFkZHJlc3Mgb2YgdGhlIGZpcnN0IHN1Y2ggYnl0ZS4gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccGFyYW0gYmVnIFN0YXJ0IG9mIG1lbW9yeSByZWdpb24uCi8vLyBccGFyYW0gc2l6ZSBTdGFydCBvZiBtZW1vcnkgcmVnaW9uLgovLy8gXHJldHVybnMgQWRkcmVzcyBvZiBmaXJzdCBwb2lzb25lZCBieXRlLgp2b2lkICpfX2FzYW5fcmVnaW9uX2lzX3BvaXNvbmVkKHZvaWQgKmJlZywgc2l6ZV90IHNpemUpOwoKLy8vIERlc2NyaWJlcyBhbiBhZGRyZXNzICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFByaW50cyB0aGUgZGVzY3JpcHRpb24gb2YgPGM+PGk+YWRkcjwvaT48L2M+LgovLy8KLy8vIFxwYXJhbSBhZGRyIEFkZHJlc3MgdG8gZGVzY3JpYmUuCnZvaWQgX19hc2FuX2Rlc2NyaWJlX2FkZHJlc3Modm9pZCAqYWRkcik7CgovLy8gQ2hlY2tzIGlmIGFuIGVycm9yIGhhcyBiZWVuIG9yIGlzIGJlaW5nIHJlcG9ydGVkICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbQovLy8gdGhlIGRlYnVnZ2VyIHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBhbiBBU2FuIGVycm9yKS4KLy8vCi8vLyBSZXR1cm5zIDEgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKSByZXBvcnRlZC4gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyAxIGlmIGFuIGVycm9yIGhhcyBiZWVuIChvciBpcyBiZWluZykgcmVwb3J0ZWQuIE90aGVyd2lzZSByZXR1cm5zCi8vLyAwLgppbnQgX19hc2FuX3JlcG9ydF9wcmVzZW50KHZvaWQpOwoKLy8vIEdldHMgdGhlIFBDIChwcm9ncmFtIGNvdW50ZXIpIHJlZ2lzdGVyIHZhbHVlIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IKLy8vIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFJldHVybnMgUEMgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKSByZXBvcnRlZC4KLy8vIE90aGVyd2lzZSByZXR1cm5zIDAuCi8vLwovLy8gXHJldHVybnMgUEMgdmFsdWUuCnZvaWQgKl9fYXNhbl9nZXRfcmVwb3J0X3BjKHZvaWQpOwoKLy8vIEdldHMgdGhlIEJQIChiYXNlIHBvaW50ZXIpIHJlZ2lzdGVyIHZhbHVlIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IKLy8vIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFJldHVybnMgQlAgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKSByZXBvcnRlZC4KLy8vIE90aGVyd2lzZSByZXR1cm5zIDAuCi8vLwovLy8gXHJldHVybnMgQlAgdmFsdWUuCnZvaWQgKl9fYXNhbl9nZXRfcmVwb3J0X2JwKHZvaWQpOwoKLy8vIEdldHMgdGhlIFNQIChzdGFjayBwb2ludGVyKSByZWdpc3RlciB2YWx1ZSBvZiBhbiBBU2FuIGVycm9yICh1c2VmdWwgZm9yCi8vLyBjYWxsaW5nIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBJZiBhbiBlcnJvciBoYXMgYmVlbiAob3IgaXMgYmVpbmcpIHJlcG9ydGVkLCByZXR1cm5zIFNQLgovLy8gT3RoZXJ3aXNlIHJldHVybnMgMC4KLy8vCi8vLyBccmV0dXJucyBTUCB2YWx1ZS4Kdm9pZCAqX19hc2FuX2dldF9yZXBvcnRfc3Aodm9pZCk7CgovLy8gR2V0cyB0aGUgYWRkcmVzcyBvZiB0aGUgcmVwb3J0IGJ1ZmZlciBvZiBhbiBBU2FuIGVycm9yICh1c2VmdWwgZm9yIGNhbGxpbmcKLy8vIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBSZXR1cm5zIHRoZSBhZGRyZXNzIG9mIHRoZSByZXBvcnQgYnVmZmVyIGlmIGFuIGVycm9yIGhhcyBiZWVuIChvciBpcyBiZWluZykKLy8vIHJlcG9ydGVkLiBPdGhlcndpc2UgcmV0dXJucyAwLgovLy8KLy8vIFxyZXR1cm5zIEFkZHJlc3Mgb2YgcmVwb3J0IGJ1ZmZlci4Kdm9pZCAqX19hc2FuX2dldF9yZXBvcnRfYWRkcmVzcyh2b2lkKTsKCi8vLyBHZXRzIGFjY2VzcyB0eXBlIG9mIGFuIEFTYW4gZXJyb3IgKHVzZWZ1bCBmb3IgY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gUmV0dXJucyBhY2Nlc3MgdHlwZSAocmVhZCBvciB3cml0ZSkgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKQovLy8gcmVwb3J0ZWQuIE90aGVyd2lzZSByZXR1cm5zIDAuCi8vLwovLy8gXHJldHVybnMgQWNjZXNzIHR5cGUgKDAgPSByZWFkLCAxID0gd3JpdGUpLgppbnQgX19hc2FuX2dldF9yZXBvcnRfYWNjZXNzX3R5cGUodm9pZCk7CgovLy8gR2V0cyBhY2Nlc3Mgc2l6ZSBvZiBhbiBBU2FuIGVycm9yICh1c2VmdWwgZm9yIGNhbGxpbmcgZnJvbSB0aGUgZGVidWdnZXIpLgovLy8KLy8vIFJldHVybnMgYWNjZXNzIHNpemUgaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKSByZXBvcnRlZC4gT3RoZXJ3aXNlCi8vLyByZXR1cm5zIDAuCi8vLwovLy8gXHJldHVybnMgQWNjZXNzIHNpemUgaW4gYnl0ZXMuCnNpemVfdCBfX2FzYW5fZ2V0X3JlcG9ydF9hY2Nlc3Nfc2l6ZSh2b2lkKTsKCi8vLyBHZXRzIHRoZSBidWcgZGVzY3JpcHRpb24gb2YgYW4gQVNhbiBlcnJvciAodXNlZnVsIGZvciBjYWxsaW5nIGZyb20gYQovLy8gZGVidWdnZXIpLgovLy8KLy8vIFxyZXR1cm5zIFJldHVybnMgYSBidWcgZGVzY3JpcHRpb24gaWYgYW4gZXJyb3IgaGFzIGJlZW4gKG9yIGlzIGJlaW5nKQovLy8gcmVwb3J0ZWQgLSBmb3IgZXhhbXBsZSwgImhlYXAtdXNlLWFmdGVyLWZyZWUiLiBPdGhlcndpc2UgcmV0dXJucyBhbiBlbXB0eQovLy8gc3RyaW5nLgpjb25zdCBjaGFyICpfX2FzYW5fZ2V0X3JlcG9ydF9kZXNjcmlwdGlvbih2b2lkKTsKCi8vLyBHZXRzIGluZm9ybWF0aW9uIGFib3V0IGEgcG9pbnRlciAodXNlZnVsIGZvciBjYWxsaW5nIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBSZXR1cm5zIHRoZSBjYXRlZ29yeSBvZiB0aGUgZ2l2ZW4gcG9pbnRlciBhcyBhIGNvbnN0YW50IHN0cmluZy4KLy8vIFBvc3NpYmxlIHJldHVybiB2YWx1ZXMgYXJlIDxjPmdsb2JhbDwvYz4sIDxjPnN0YWNrPC9jPiwgPGM+c3RhY2stZmFrZTwvYz4sCi8vLyA8Yz5oZWFwPC9jPiwgPGM+aGVhcC1pbnZhbGlkPC9jPiwgPGM+c2hhZG93LWxvdzwvYz4sIDxjPnNoYWRvdy1nYXA8L2M+LAovLy8gPGM+c2hhZG93LWhpZ2g8L2M+LCBhbmQgPGM+dW5rbm93bjwvYz4uCi8vLwovLy8gSWYgdGhlIHJldHVybiB2YWx1ZSBpcyA8Yz5nbG9iYWw8L2M+IG9yIDxjPnN0YWNrPC9jPiwgdHJpZXMgdG8gYWxzbyByZXR1cm4KLy8vIHRoZSB2YXJpYWJsZSBuYW1lLCBhZGRyZXNzLCBhbmQgc2l6ZS4gSWYgdGhlIHJldHVybiB2YWx1ZSBpcyA8Yz5oZWFwPC9jPiwKLy8vIHRyaWVzIHRvIHJldHVybiB0aGUgY2h1bmsgYWRkcmVzcyBhbmQgc2l6ZS4gPGM+PGk+bmFtZTwvaT48L2M+IHNob3VsZCBwb2ludAovLy8gdG8gYW4gYWxsb2NhdGVkIGJ1ZmZlciBvZiBzaXplIDxjPjxpPm5hbWVfc2l6ZTwvaT48L2M+LgovLy8KLy8vIFxwYXJhbSBhZGRyIEFkZHJlc3MgdG8gbG9jYXRlLgovLy8gXHBhcmFtIG5hbWUgQnVmZmVyIHRvIHN0b3JlIHRoZSB2YXJpYWJsZSdzIG5hbWUuCi8vLyBccGFyYW0gbmFtZV9zaXplIFNpemUgaW4gYnl0ZXMgb2YgdGhlIHZhcmlhYmxlJ3MgbmFtZSBidWZmZXIuCi8vLyBccGFyYW1bb3V0XSByZWdpb25fYWRkcmVzcyBBZGRyZXNzIG9mIHRoZSByZWdpb24uCi8vLyBccGFyYW1bb3V0XSByZWdpb25fc2l6ZSBTaXplIG9mIHRoZSByZWdpb24gaW4gYnl0ZXMuCi8vLwovLy8gXHJldHVybnMgUmV0dXJucyB0aGUgY2F0ZWdvcnkgb2YgdGhlIGdpdmVuIHBvaW50ZXIgYXMgYSBjb25zdGFudCBzdHJpbmcuCmNvbnN0IGNoYXIgKl9fYXNhbl9sb2NhdGVfYWRkcmVzcyh2b2lkICphZGRyLCBjaGFyICpuYW1lLCBzaXplX3QgbmFtZV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKnJlZ2lvbl9hZGRyZXNzLCBzaXplX3QgKnJlZ2lvbl9zaXplKTsKCi8vLyBHZXRzIHRoZSBhbGxvY2F0aW9uIHN0YWNrIHRyYWNlIGFuZCB0aHJlYWQgSUQgZm9yIGEgaGVhcCBhZGRyZXNzICh1c2VmdWwKLy8vIGZvciBjYWxsaW5nIGZyb20gdGhlIGRlYnVnZ2VyKS4KLy8vCi8vLyBTdG9yZXMgdXAgdG8gPGM+PGk+c2l6ZTwvaT48L2M+IGZyYW1lcyBpbiA8Yz48aT50cmFjZTwvaT48L2M+LiBSZXR1cm5zCi8vLyB0aGUgbnVtYmVyIG9mIHN0b3JlZCBmcmFtZXMgb3IgMCBvbiBlcnJvci4KLy8vCi8vLyBccGFyYW0gYWRkciBBIGhlYXAgYWRkcmVzcy4KLy8vIFxwYXJhbSB0cmFjZSBBIGJ1ZmZlciB0byBzdG9yZSB0aGUgc3RhY2sgdHJhY2UuCi8vLyBccGFyYW0gc2l6ZSBTaXplIGluIGJ5dGVzIG9mIHRoZSB0cmFjZSBidWZmZXIuCi8vLyBccGFyYW1bb3V0XSB0aHJlYWRfaWQgVGhlIHRocmVhZCBJRCBvZiB0aGUgYWRkcmVzcy4KLy8vCi8vLyBccmV0dXJucyBSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc3RvcmVkIGZyYW1lcyBvciAwIG9uIGVycm9yLgpzaXplX3QgX19hc2FuX2dldF9hbGxvY19zdGFjayh2b2lkICphZGRyLCB2b2lkICoqdHJhY2UsIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKnRocmVhZF9pZCk7CgovLy8gR2V0cyB0aGUgZnJlZSBzdGFjayB0cmFjZSBhbmQgdGhyZWFkIElEIGZvciBhIGhlYXAgYWRkcmVzcyAodXNlZnVsIGZvcgovLy8gY2FsbGluZyBmcm9tIHRoZSBkZWJ1Z2dlcikuCi8vLwovLy8gU3RvcmVzIHVwIHRvIDxjPjxpPnNpemU8L2k+PC9jPiBmcmFtZXMgaW4gPGM+PGk+dHJhY2U8L2k+PC9jPi4gUmV0dXJucwovLy8gdGhlIG51bWJlciBvZiBzdG9yZWQgZnJhbWVzIG9yIDAgb24gZXJyb3IuCi8vLwovLy8gXHBhcmFtIGFkZHIgQSBoZWFwIGFkZHJlc3MuCi8vLyBccGFyYW0gdHJhY2UgQSBidWZmZXIgdG8gc3RvcmUgdGhlIHN0YWNrIHRyYWNlLgovLy8gXHBhcmFtIHNpemUgU2l6ZSBpbiBieXRlcyBvZiB0aGUgdHJhY2UgYnVmZmVyLgovLy8gXHBhcmFtW291dF0gdGhyZWFkX2lkIFRoZSB0aHJlYWQgSUQgb2YgdGhlIGFkZHJlc3MuCi8vLwovLy8gXHJldHVybnMgUmV0dXJucyB0aGUgbnVtYmVyIG9mIHN0b3JlZCBmcmFtZXMgb3IgMCBvbiBlcnJvci4Kc2l6ZV90IF9fYXNhbl9nZXRfZnJlZV9zdGFjayh2b2lkICphZGRyLCB2b2lkICoqdHJhY2UsIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqdGhyZWFkX2lkKTsKCi8vLyBHZXRzIHRoZSBjdXJyZW50IHNoYWRvdyBtZW1vcnkgbWFwcGluZyAodXNlZnVsIGZvciBjYWxsaW5nIGZyb20gdGhlCi8vLyBkZWJ1Z2dlcikuCi8vLwovLy8gXHBhcmFtW291dF0gc2hhZG93X3NjYWxlIFNoYWRvdyBzY2FsZSB2YWx1ZS4KLy8vIFxwYXJhbVtvdXRdIHNoYWRvd19vZmZzZXQgT2Zmc2V0IHZhbHVlLgp2b2lkIF9fYXNhbl9nZXRfc2hhZG93X21hcHBpbmcoc2l6ZV90ICpzaGFkb3dfc2NhbGUsIHNpemVfdCAqc2hhZG93X29mZnNldCk7CgovLy8gVGhpcyBpcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCB0byByZXBvcnQgYW4gZXJyb3IuIEhvd2V2ZXIsCi8vLyBpdCBpcyBzdGlsbCBhIHBhcnQgb2YgdGhlIGludGVyZmFjZSBiZWNhdXNlIHlvdSBtaWdodCB3YW50IHRvIHNldCBhCi8vLyBicmVha3BvaW50IG9uIHRoaXMgZnVuY3Rpb24gaW4gdGhlIGRlYnVnZ2VyLgovLy8KLy8vIFxwYXJhbSBwYyA8Yz48aT5wYzwvaT48L2M+IHZhbHVlIG9mIHRoZSBBU2FuIGVycm9yLgovLy8gXHBhcmFtIGJwIDxjPjxpPmJwPC9pPjwvYz4gdmFsdWUgb2YgdGhlIEFTYW4gZXJyb3IuCi8vLyBccGFyYW0gc3AgPGM+PGk+c3A8L2k+PC9jPiB2YWx1ZSBvZiB0aGUgQVNhbiBlcnJvci4KLy8vIFxwYXJhbSBhZGRyIEFkZHJlc3Mgb2YgdGhlIEFTYW4gZXJyb3IuCi8vLyBccGFyYW0gaXNfd3JpdGUgVHJ1ZSBpZiB0aGUgZXJyb3IgaXMgYSB3cml0ZSBlcnJvcjsgZmFsc2Ugb3RoZXJ3aXNlLgovLy8gXHBhcmFtIGFjY2Vzc19zaXplIFNpemUgb2YgdGhlIG1lbW9yeSBhY2Nlc3Mgb2YgdGhlIEFTYW4gZXJyb3IuCnZvaWQgX19hc2FuX3JlcG9ydF9lcnJvcih2b2lkICpwYywgdm9pZCAqYnAsIHZvaWQgKnNwLAogICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYWRkciwgaW50IGlzX3dyaXRlLCBzaXplX3QgYWNjZXNzX3NpemUpOwoKLy8gRGVwcmVjYXRlZC4gQ2FsbCBfX3Nhbml0aXplcl9zZXRfZGVhdGhfY2FsbGJhY2sgaW5zdGVhZC4Kdm9pZCBfX2FzYW5fc2V0X2RlYXRoX2NhbGxiYWNrKHZvaWQgKCpjYWxsYmFjaykodm9pZCkpOwoKLy8vIFNldHMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBkdXJpbmcgQVNhbiBlcnJvciByZXBvcnRpbmcuCi8vLwovLy8gVGhlIGNhbGxiYWNrIHByb3ZpZGVzIGEgc3RyaW5nIHBvaW50ZXIgdG8gdGhlIHJlcG9ydC4KLy8vCi8vLyBccGFyYW0gY2FsbGJhY2sgVXNlci1wcm92aWRlZCBmdW5jdGlvbi4Kdm9pZCBfX2FzYW5fc2V0X2Vycm9yX3JlcG9ydF9jYWxsYmFjayh2b2lkICgqY2FsbGJhY2spKGNvbnN0IGNoYXIgKikpOwoKLy8vIFVzZXItcHJvdmlkZWQgY2FsbGJhY2sgb24gQVNhbiBlcnJvcnMuCi8vLwovLy8gWW91IGNhbiBwcm92aWRlIGEgZnVuY3Rpb24gdGhhdCB3b3VsZCBiZSBjYWxsZWQgaW1tZWRpYXRlbHkgd2hlbiBBU2FuCi8vLyBkZXRlY3RzIGFuIGVycm9yLiBUaGlzIGlzIHVzZWZ1bCBpbiBjYXNlcyB3aGVuIEFTYW4gZGV0ZWN0cyBhbiBlcnJvciBidXQKLy8vIHlvdXIgcHJvZ3JhbSBjcmFzaGVzIGJlZm9yZSB0aGUgQVNhbiByZXBvcnQgaXMgcHJpbnRlZC4Kdm9pZCBfX2FzYW5fb25fZXJyb3Iodm9pZCk7CgovLy8gUHJpbnRzIGFjY3VtdWxhdGVkIHN0YXRpc3RpY3MgdG8gPGM+c3RkZXJyPC9jPiAodXNlZnVsIGZvciBjYWxsaW5nIGZyb20gdGhlCi8vLyBkZWJ1Z2dlcikuCnZvaWQgX19hc2FuX3ByaW50X2FjY3VtdWxhdGVkX3N0YXRzKHZvaWQpOwoKLy8vIFVzZXItcHJvdmlkZWQgZGVmYXVsdCBvcHRpb24gc2V0dGluZ3MuCi8vLwovLy8gWW91IGNhbiBwcm92aWRlIHlvdXIgb3duIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gdG8gcmV0dXJuIGEgc3RyaW5nCi8vLyBjb250YWluaW5nIEFTYW4gcnVudGltZSBvcHRpb25zIChmb3IgZXhhbXBsZSwKLy8vIDxjPnZlcmJvc2l0eT0xOmhhbHRfb25fZXJyb3I9MDwvYz4pLgovLy8KLy8vIFxyZXR1cm5zIERlZmF1bHQgb3B0aW9ucyBzdHJpbmcuCmNvbnN0IGNoYXIqIF9fYXNhbl9kZWZhdWx0X29wdGlvbnModm9pZCk7CgovLyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgZmFjaWxpdGF0ZSBnYXJiYWdlIGNvbGxlY3Rpb24gaW4gcHJlc2VuY2Ugb2YKLy8gQVNhbidzIGZha2Ugc3RhY2suCgovLy8gR2V0cyBhbiBvcGFxdWUgaGFuZGxlciB0byB0aGUgY3VycmVudCB0aHJlYWQncyBmYWtlIHN0YWNrLgovLy8KLy8vIFJldHVybnMgYW4gb3BhcXVlIGhhbmRsZXIgdG8gYmUgdXNlZCBieQovLy8gPGM+X19hc2FuX2FkZHJfaXNfaW5fZmFrZV9zdGFjaygpPC9jPi4gUmV0dXJucyBOVUxMIGlmIHRoZSBjdXJyZW50IHRocmVhZAovLy8gZG9lcyBub3QgaGF2ZSBhIGZha2Ugc3RhY2suCi8vLwovLy8gXHJldHVybnMgQW4gb3BhcXVlIGhhbmRsZXIgdG8gdGhlIGZha2Ugc3RhY2sgb3IgTlVMTC4Kdm9pZCAqX19hc2FuX2dldF9jdXJyZW50X2Zha2Vfc3RhY2sodm9pZCk7CgovLy8gQ2hlY2tzIGlmIGFuIGFkZHJlc3MgYmVsb25ncyB0byBhIGdpdmVuIGZha2Ugc3RhY2suCi8vLwovLy8gSWYgPGM+PGk+ZmFrZV9zdGFjazwvaT48L2M+IGlzIG5vbi1OVUxMIGFuZCA8Yz48aT5hZGRyPC9pPjwvYz4gYmVsb25ncyB0byBhCi8vLyBmYWtlIGZyYW1lIGluIDxjPjxpPmZha2Vfc3RhY2s8L2k+PC9jPiwgcmV0dXJucyB0aGUgYWRkcmVzcyBvZiB0aGUgcmVhbAovLy8gc3RhY2sgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUgZmFrZSBmcmFtZSBhbmQgc2V0cyA8Yz48aT5iZWc8L2k+PC9jPiBhbmQKLy8vIDxjPjxpPmVuZDwvaT48L2M+IHRvIHRoZSBib3VuZGFyaWVzIG9mIHRoaXMgZmFrZSBmcmFtZS4gT3RoZXJ3aXNlIHJldHVybnMKLy8vIE5VTEwgYW5kIGRvZXMgbm90IHRvdWNoIDxjPjxpPmJlZzwvaT48L2M+IGFuZCA8Yz48aT5lbmQ8L2k+PC9jPi4KLy8vCi8vLyBJZiA8Yz48aT5iZWc8L2k+PC9jPiBvciA8Yz48aT5lbmQ8L2k+PC9jPiBhcmUgTlVMTCwgdGhleSBhcmUgbm90IHRvdWNoZWQuCi8vLwovLy8gXG5vdGUgVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYSB0aHJlYWQgb3RoZXIgdGhhbiB0aGUgb3duZXIgb2YKLy8vIDxjPjxpPmZha2Vfc3RhY2s8L2k+PC9jPiwgYnV0IHRoZSBvd25lciB0aHJlYWQgbmVlZHMgdG8gYmUgYWxpdmUuCi8vLwovLy8gXHBhcmFtIGZha2Vfc3RhY2sgQW4gb3BhcXVlIGhhbmRsZXIgdG8gYSBmYWtlIHN0YWNrLgovLy8gXHBhcmFtIGFkZHIgQWRkcmVzcyB0byB0ZXN0LgovLy8gXHBhcmFtW291dF0gYmVnIEJlZ2lubmluZyBvZiBmYWtlIGZyYW1lLgovLy8gXHBhcmFtW291dF0gZW5kIEVuZCBvZiBmYWtlIGZyYW1lLgovLy8gXHJldHVybnMgU3RhY2sgYWRkcmVzcyBvciBOVUxMLgp2b2lkICpfX2FzYW5fYWRkcl9pc19pbl9mYWtlX3N0YWNrKHZvaWQgKmZha2Vfc3RhY2ssIHZvaWQgKmFkZHIsIHZvaWQgKipiZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqKmVuZCk7CgovLy8gUGVyZm9ybXMgc2hhZG93IG1lbW9yeSBjbGVhbnVwIG9mIHRoZSBjdXJyZW50IHRocmVhZCdzIHN0YWNrIGJlZm9yZSBhCi8vLyBmdW5jdGlvbiBtYXJrZWQgd2l0aCB0aGUgPGM+W1tub3JldHVybl1dPC9jPiBhdHRyaWJ1dGUgaXMgY2FsbGVkLgovLy8KLy8vIFRvIGF2b2lkIGZhbHNlIHBvc2l0aXZlcyBvbiB0aGUgc3RhY2ssIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBuby1yZXR1cm4KLy8vIGZ1bmN0aW9ucyBsaWtlIDxjPl9leGl0KCk8L2M+IGFuZCA8Yz5leGVjbCgpPC9jPi4Kdm9pZCBfX2FzYW5faGFuZGxlX25vX3JldHVybih2b2lkKTsKCi8vLyBVcGRhdGUgYWxsb2NhdGlvbiBzdGFjayB0cmFjZSBmb3IgdGhlIGdpdmVuIGFsbG9jYXRpb24gdG8gdGhlIGN1cnJlbnQgc3RhY2sKLy8vIHRyYWNlLiBSZXR1cm5zIDEgaWYgc3VjY2Vzc2Z1bGwsIDAgaWYgbm90LgppbnQgX19hc2FuX3VwZGF0ZV9hbGxvY2F0aW9uX2NvbnRleHQodm9pZCogYWRkcik7CgojaWZkZWYgX19jcGx1c3BsdXMKfSAgLy8gZXh0ZXJuICJDIgojZW5kaWYKCiNlbmRpZiAgLy8gU0FOSVRJWkVSX0FTQU5fSU5URVJGQUNFX0gKAEtZVEhFX0taSVBfRU5DT0RJTkcAanNvbgB1bmhhbmRsZWQgACglZCwlZCkAKABCYWQgZmluYWwgY2hhcjogAEJhdGFrAENvAENzAEN1bmVpZm9ybQBHZW9yZ2lhbgBLaHVkYXdhZGkATWVyb2l0aWNfSGllcm9nbHlwaHMATW4AVGFnYWxvZwBacABbJXMgOiAlZF0gUkFXOiAAaABEYwBkbABuZwBlbwBzaXplb2YAPD4AVU5BVkFJTEFCTEUAXFUgbXVzdCBiZSBmb2xsb3dlZCBieSA4IGhleCBkaWdpdHM6IFwAXCcARmxhdCwgbGVuID0gAE1heCBoZWlnaHQgZXhjZWVkZWQAdGhpcy0+TG9ja1Nsb3dXaXRoRGVhZGxpbmUoaG93LCBjb25kLCBLZXJuZWxUaW1lb3V0OjpOZXZlcigpLCBmbGFncykAIXctPndhaXRwLT50aW1lb3V0Lmhhc190aW1lb3V0KCkATG9jayByZXR1cm5pbmcgAFNpZ25hbEFsbCBvbiAAbXMAUlNBIHNpZ25pbmcgdGVzdCBmYWlsZWQuCgBaIENvbXB1dGF0aW9uIFJlc3VsdABaIENvbXB1dGF0aW9uIEtBVCBmYWlsZWQuCgBPUEVOU1NMRElSOiBuL2EAcHVibGljIGtleSByb3V0aW5lcwBvdXQvc29vbmcvLmludGVybWVkaWF0ZXMvZXh0ZXJuYWwva3l0aGUvY3h4X2V4dHJhY3Rvci9saW51eF9nbGliY194ODZfNjQvZ2VuL3Byb3RvL2t5dGhlL3Byb3RvL2J1aWxkaW5mby5wYi5jYwBreXRoZS5wcm90by5jb21tb24uT3JpZ2luLmxhbmd1YWdlAGY5NS1jcHAtaW5wdXQAQ2hlY2sgZmFpbGVkOiAhd3JpdGVyXy5oYXNfdmFsdWUoKQBreXRoZV9jbGFpbQBleHRlcm5hbC9reXRoZS9reXRoZS9jeHgvZXh0cmFjdG9yL2N4eF9leHRyYWN0b3JfbWFpbi5jYwAgCQoLDA0ALyo9PT0tLS0tIF9fY2xhbmdfY3VkYV9kZXZpY2VfZnVuY3Rpb25zLmggLSBDVURBIHJ1bnRpbWUgc3VwcG9ydCAtLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0NMQU5HX0NVREFfREVWSUNFX0ZVTkNUSU9OU19IX18KI2RlZmluZSBfX0NMQU5HX0NVREFfREVWSUNFX0ZVTkNUSU9OU19IX18KCiNpZm5kZWYgX19PUEVOTVBfTlZQVFhfXwojaWYgQ1VEQV9WRVJTSU9OIDwgOTAwMAojZXJyb3IgVGhpcyBmaWxlIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2l0aCBDVURBLTkrIG9ubHkuCiNlbmRpZgojZW5kaWYKCi8vIF9fREVWSUNFX18gaXMgYSBoZWxwZXIgbWFjcm8gd2l0aCBjb21tb24gc2V0IG9mIGF0dHJpYnV0ZXMgZm9yIHRoZSB3cmFwcGVycwovLyB3ZSBpbXBsZW1lbnQgaW4gdGhpcyBmaWxlLiBXZSBuZWVkIHN0YXRpYyBpbiBvcmRlciB0byBhdm9pZCBlbWl0dGluZyB1bnVzZWQKLy8gZnVuY3Rpb25zIGFuZCBfX2ZvcmNlaW5saW5lX18gaGVscHMgaW5saW5pbmcgdGhlc2Ugd3JhcHBlcnMgYXQgLU8xLgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQojaWZkZWYgX19PUEVOTVBfTlZQVFhfXwojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gX19mb3JjZWlubGluZV9fCiNlbmRpZgoKX19ERVZJQ0VfXyBpbnQgX19hbGwoaW50IF9fYSkgeyByZXR1cm4gX19udnZtX3ZvdGVfYWxsKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19hbnkoaW50IF9fYSkgeyByZXR1cm4gX19udnZtX3ZvdGVfYW55KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19iYWxsb3QoaW50IF9fYSkgeyByZXR1cm4gX19udnZtX3ZvdGVfYmFsbG90KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19icmV2KHVuc2lnbmVkIGludCBfX2EpIHsgcmV0dXJuIF9fbnZfYnJldihfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fYnJldmxsKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl9icmV2bGwoX19hKTsKfQojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKX19ERVZJQ0VfXyB2b2lkIF9fYnJrcHQoKSB7IF9fYXNtX18gX192b2xhdGlsZV9fKCJicmtwdDsiKTsgfQpfX0RFVklDRV9fIHZvaWQgX19icmtwdChpbnQgX19hKSB7IF9fYnJrcHQoKTsgfQojZWxzZQpfX0RFVklDRV9fIHZvaWQgX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgX19icmtwdCh2b2lkKSB7CiAgX19hc21fXyBfX3ZvbGF0aWxlX18oImJya3B0OyIpOwp9Cl9fREVWSUNFX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKSBfX2Jya3B0KGludCBfX2EpIHsgX19icmtwdCgpOyB9CiNlbmRpZgpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2J5dGVfcGVybSh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fbnZfYnl0ZV9wZXJtKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gaW50IF9fY2x6KGludCBfX2EpIHsgcmV0dXJuIF9fbnZfY2x6KF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19jbHpsbChsb25nIGxvbmcgX19hKSB7IHJldHVybiBfX252X2NsemxsKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2Nvc2YoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfY29zZihfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZEF0b21pY0FkZChkb3VibGUgKl9fcCwgZG91YmxlIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hZGRfZ2VuX2QoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZEF0b21pY0FkZF9ibG9jayhkb3VibGUgKl9fcCwgZG91YmxlIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYWRkX2dlbl9kKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RBdG9taWNBZGRfc3lzdGVtKGRvdWJsZSAqX19wLCBkb3VibGUgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hZGRfZ2VuX2QoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZGFkZF9yZChkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZGFkZF9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kYWRkX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kYWRkX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RhZGRfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RhZGRfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZGFkZF9yeihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZGFkZF9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kZGl2X3JkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kZGl2X3JkKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RkaXZfcm4oZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RkaXZfcm4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZGRpdl9ydShkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZGRpdl9ydShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kZGl2X3J6KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kZGl2X3J6KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RtdWxfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RtdWxfcmQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZG11bF9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZG11bF9ybihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kbXVsX3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kbXVsX3J1KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RtdWxfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RtdWxfcnooX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19kb3VibGUyZmxvYXRfcmQoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJmbG9hdF9yZChfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19kb3VibGUyZmxvYXRfcm4oZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJmbG9hdF9ybihfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19kb3VibGUyZmxvYXRfcnUoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJmbG9hdF9ydShfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19kb3VibGUyZmxvYXRfcnooZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJmbG9hdF9yeihfX2EpOwp9Cl9fREVWSUNFX18gaW50IF9fZG91YmxlMmhpaW50KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZG91YmxlMmhpaW50KF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19kb3VibGUyaW50X3JkKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZG91YmxlMmludF9yZChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZG91YmxlMmludF9ybihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RvdWJsZTJpbnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2RvdWJsZTJpbnRfcnUoZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kb3VibGUyaW50X3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19kb3VibGUyaW50X3J6KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZG91YmxlMmludF9yeihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZG91YmxlMmxsX3JkKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUybGxfcmQoX19hKTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2RvdWJsZTJsbF9ybihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMmxsX3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19kb3VibGUybGxfcnUoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJsbF9ydShfX2EpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZG91YmxlMmxsX3J6KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUybGxfcnooX19hKTsKfQpfX0RFVklDRV9fIGludCBfX2RvdWJsZTJsb2ludChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RvdWJsZTJsb2ludChfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fZG91YmxlMnVpbnRfcmQoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1aW50X3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19kb3VibGUydWludF9ybihkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fbnZfZG91YmxlMnVpbnRfcm4oX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2RvdWJsZTJ1aW50X3J1KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWludF9ydShfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fZG91YmxlMnVpbnRfcnooZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZTJ1aW50X3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19kb3VibGUydWxsX3JkKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWxsX3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19kb3VibGUydWxsX3JuKGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWxsX3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19kb3VibGUydWxsX3J1KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWxsX3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX19kb3VibGUydWxsX3J6KGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19udl9kb3VibGUydWxsX3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19kb3VibGVfYXNfbG9uZ2xvbmcoZG91YmxlIF9fYSkgewogIHJldHVybiBfX252X2RvdWJsZV9hc19sb25nbG9uZyhfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZHJjcF9yZChkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RyY3BfcmQoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RyY3Bfcm4oZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9kcmNwX3JuKF9fYSk7IH0KX19ERVZJQ0VfXyBkb3VibGUgX19kcmNwX3J1KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHJjcF9ydShfX2EpOyB9Cl9fREVWSUNFX18gZG91YmxlIF9fZHJjcF9yeihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2RyY3BfcnooX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzcXJ0X3JkKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHNxcnRfcmQoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzcXJ0X3JuKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHNxcnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzcXJ0X3J1KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHNxcnRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzcXJ0X3J6KGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfZHNxcnRfcnooX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzdWJfcmQoZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RzdWJfcmQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZHN1Yl9ybihkb3VibGUgX19hLCBkb3VibGUgX19iKSB7CiAgcmV0dXJuIF9fbnZfZHN1Yl9ybihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19kc3ViX3J1KGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gX19udl9kc3ViX3J1KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2RzdWJfcnooZG91YmxlIF9fYSwgZG91YmxlIF9fYikgewogIHJldHVybiBfX252X2RzdWJfcnooX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19leHAxMGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfZXhwMTBmKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2V4cGYoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zhc3RfZXhwZihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljQWRkKGZsb2F0ICpfX3AsIGZsb2F0IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hZGRfZ2VuX2YoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljQWRkX2Jsb2NrKGZsb2F0ICpfX3AsIGZsb2F0IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYWRkX2dlbl9mKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZkF0b21pY0FkZF9zeXN0ZW0oZmxvYXQgKl9fcCwgZmxvYXQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hZGRfZ2VuX2YoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljRXhjaChmbG9hdCAqX19wLCBmbG9hdCBfX3YpIHsKICByZXR1cm4gX19udl9pbnRfYXNfZmxvYXQoCiAgICAgIF9fbnZ2bV9hdG9tX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX19udl9mbG9hdF9hc19pbnQoX192KSkpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mQXRvbWljRXhjaF9ibG9jayhmbG9hdCAqX19wLCBmbG9hdCBfX3YpIHsKICByZXR1cm4gX19udl9pbnRfYXNfZmxvYXQoCiAgICAgIF9fbnZ2bV9hdG9tX2N0YV94Y2hnX2dlbl9pKChpbnQgKilfX3AsIF9fbnZfZmxvYXRfYXNfaW50KF9fdikpKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZkF0b21pY0V4Y2hfc3lzdGVtKGZsb2F0ICpfX3AsIGZsb2F0IF9fdikgewogIHJldHVybiBfX252X2ludF9hc19mbG9hdCgKICAgICAgX19udnZtX2F0b21fc3lzX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX19udl9mbG9hdF9hc19pbnQoX192KSkpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mYWRkX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZmFkZF9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZhZGRfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mYWRkX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmFkZF9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZhZGRfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mYWRkX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZmFkZF9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZkaXZfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mZGl2X3JkKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmRpdl9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZkaXZfcm4oX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mZGl2X3J1KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZmRpdl9ydShfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZkaXZfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mZGl2X3J6KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZmRpdmlkZWYoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mYXN0X2ZkaXZpZGVmKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGludCBfX2ZmcyhpbnQgX19hKSB7IHJldHVybiBfX252X2ZmcyhfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZmZzbGwobG9uZyBsb25nIF9fYSkgeyByZXR1cm4gX19udl9mZnNsbChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZmluaXRlKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfaXNmaW5pdGVkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19maW5pdGVmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9maW5pdGVmKF9fYSk7IH0KI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gaW50IF9fZmluaXRlbChsb25nIGRvdWJsZSBfX2EpOwojZW5kaWYKX19ERVZJQ0VfXyBpbnQgX19mbG9hdDJpbnRfcmQoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmludF9yZChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fZmxvYXQyaW50X3JuKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mbG9hdDJpbnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2Zsb2F0MmludF9ydShmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQyaW50X3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19mbG9hdDJpbnRfcnooZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmludF9yeihfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZmxvYXQybGxfcmQoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmxsX3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19mbG9hdDJsbF9ybihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXQybGxfcm4oX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2Zsb2F0MmxsX3J1KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mbG9hdDJsbF9ydShfX2EpOyB9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fZmxvYXQybGxfcnooZmxvYXQgX19hKSB7IHJldHVybiBfX252X2Zsb2F0MmxsX3J6KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19mbG9hdDJ1aW50X3JkKGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVpbnRfcmQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX2Zsb2F0MnVpbnRfcm4oZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fbnZfZmxvYXQydWludF9ybihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fZmxvYXQydWludF9ydShmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1aW50X3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19mbG9hdDJ1aW50X3J6KGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0MnVpbnRfcnooX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2Zsb2F0MnVsbF9yZChmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1bGxfcmQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2Zsb2F0MnVsbF9ybihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1bGxfcm4oX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2Zsb2F0MnVsbF9ydShmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1bGxfcnUoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2Zsb2F0MnVsbF9yeihmbG9hdCBfX2EpIHsKICByZXR1cm4gX19udl9mbG9hdDJ1bGxfcnooX19hKTsKfQpfX0RFVklDRV9fIGludCBfX2Zsb2F0X2FzX2ludChmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmxvYXRfYXNfaW50KF9fYSk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19mbG9hdF9hc191aW50KGZsb2F0IF9fYSkgewogIHJldHVybiBfX252X2Zsb2F0X2FzX3VpbnQoX19hKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2ZtYV9yZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hX3JkKF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fZm1hX3JuKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19udl9mbWFfcm4oX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19mbWFfcnUoZG91YmxlIF9fYSwgZG91YmxlIF9fYiwgZG91YmxlIF9fYykgewogIHJldHVybiBfX252X2ZtYV9ydShfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2ZtYV9yeihkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hX3J6KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX2llZWVfcmQoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYykgewogIHJldHVybiBfX252X2ZtYWZfaWVlZV9yZChfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9pZWVlX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iLCBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19udl9mbWFmX2llZWVfcm4oX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZtYWZfaWVlZV9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9pZWVlX3J1KF9fYSwgX19iLCBfX2MpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbWFmX2llZWVfcnooZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYykgewogIHJldHVybiBfX252X2ZtYWZfaWVlZV9yeihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9yZChfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9ybihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9ybihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9ydShfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm1hZl9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fbnZfZm1hZl9yeihfX2EsIF9fYiwgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm11bF9yZChmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZtdWxfcmQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mbXVsX3JuKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZm11bF9ybihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZtdWxfcnUoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mbXVsX3J1KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZm11bF9yeihmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZtdWxfcnooX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mcmNwX3JkKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mcmNwX3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZyY3Bfcm4oZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZyY3Bfcm4oX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnJjcF9ydShmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZnJjcF9ydShfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mcmNwX3J6KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mcmNwX3J6KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2Zyc3FydF9ybihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZnJzcXJ0X3JuKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzcXJ0X3JkKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mc3FydF9yZChfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mc3FydF9ybihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZnNxcnRfcm4oX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fZnNxcnRfcnUoZmxvYXQgX19hKSB7IHJldHVybiBfX252X2ZzcXJ0X3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzcXJ0X3J6KGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mc3FydF9yeihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19mc3ViX3JkKGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZnN1Yl9yZChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2ZzdWJfcm4oZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mc3ViX3JuKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fZnN1Yl9ydShmbG9hdCBfX2EsIGZsb2F0IF9fYikgewogIHJldHVybiBfX252X2ZzdWJfcnUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZmxvYXQgX19mc3ViX3J6KGZsb2F0IF9fYSwgZmxvYXQgX19iKSB7CiAgcmV0dXJuIF9fbnZfZnN1Yl9yeihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyBpbnQgX19oYWRkKGludCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfaGFkZChfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyBkb3VibGUgX19oaWxvaW50MmRvdWJsZShpbnQgX19hLCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfaGlsb2ludDJkb3VibGUoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FkZChpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hZGRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FkZF9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYWRkX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNBZGRfc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hZGRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FuZChpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hbmRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0FuZF9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYW5kX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNBbmRfc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hbmRfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0NBUyhpbnQgKl9fcCwgaW50IF9fY21wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2Nhc19nZW5faShfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0NBU19ibG9jayhpbnQgKl9fcCwgaW50IF9fY21wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9jYXNfZ2VuX2koX19wLCBfX2NtcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNDQVNfc3lzdGVtKGludCAqX19wLCBpbnQgX19jbXAsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2Nhc19nZW5faShfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY0V4Y2goaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21feGNoZ19nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljRXhjaF9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfeGNoZ19nZW5faShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBpbnQgX19pQXRvbWljRXhjaF9zeXN0ZW0oaW50ICpfX3AsIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX3hjaGdfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01heChpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9tYXhfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01heF9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfbWF4X2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNNYXhfc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19tYXhfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01pbihpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9taW5fZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY01pbl9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfbWluX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNNaW5fc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19taW5fZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY09yKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX29yX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNPcl9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfb3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY09yX3N5c3RlbShpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfb3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY1hvcihpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV94b3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gaW50IF9faUF0b21pY1hvcl9ibG9jayhpbnQgKl9fcCwgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfeG9yX2dlbl9pKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGludCBfX2lBdG9taWNYb3Jfc3lzdGVtKGludCAqX19wLCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c194b3JfZ2VuX2koX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWF4KGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX21heF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWF4X2Jsb2NrKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9tYXhfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2lsbEF0b21pY01heF9zeXN0ZW0obG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21heF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWluKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX21pbl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9faWxsQXRvbWljTWluX2Jsb2NrKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9taW5fZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2lsbEF0b21pY01pbl9zeXN0ZW0obG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21pbl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9faW50MmRvdWJsZV9ybihpbnQgX19hKSB7IHJldHVybiBfX252X2ludDJkb3VibGVfcm4oX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9faW50MmZsb2F0X3JkKGludCBfX2EpIHsgcmV0dXJuIF9fbnZfaW50MmZsb2F0X3JkKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ludDJmbG9hdF9ybihpbnQgX19hKSB7IHJldHVybiBfX252X2ludDJmbG9hdF9ybihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19pbnQyZmxvYXRfcnUoaW50IF9fYSkgeyByZXR1cm4gX19udl9pbnQyZmxvYXRfcnUoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9faW50MmZsb2F0X3J6KGludCBfX2EpIHsgcmV0dXJuIF9fbnZfaW50MmZsb2F0X3J6KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2ludF9hc19mbG9hdChpbnQgX19hKSB7IHJldHVybiBfX252X2ludF9hc19mbG9hdChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9faXNmaW5pdGVkKGRvdWJsZSBfX2EpIHsgcmV0dXJuIF9fbnZfaXNmaW5pdGVkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19pc2luZihkb3VibGUgX19hKSB7IHJldHVybiBfX252X2lzaW5mZChfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9faXNpbmZmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9pc2luZmYoX19hKTsgfQojaWZkZWYgX01TQ19WRVIKX19ERVZJQ0VfXyBpbnQgX19pc2luZmwobG9uZyBkb3VibGUgX19hKTsKI2VuZGlmCl9fREVWSUNFX18gaW50IF9faXNuYW4oZG91YmxlIF9fYSkgeyByZXR1cm4gX19udl9pc25hbmQoX19hKTsgfQpfX0RFVklDRV9fIGludCBfX2lzbmFuZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfaXNuYW5mKF9fYSk7IH0KI2lmZGVmIF9NU0NfVkVSCl9fREVWSUNFX18gaW50IF9faXNuYW5sKGxvbmcgZG91YmxlIF9fYSk7CiNlbmRpZgpfX0RFVklDRV9fIGRvdWJsZSBfX2xsMmRvdWJsZV9yZChsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfbGwyZG91YmxlX3JkKF9fYSk7Cn0KX19ERVZJQ0VfXyBkb3VibGUgX19sbDJkb3VibGVfcm4obG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X2xsMmRvdWJsZV9ybihfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fbGwyZG91YmxlX3J1KGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19udl9sbDJkb3VibGVfcnUoX19hKTsKfQpfX0RFVklDRV9fIGRvdWJsZSBfX2xsMmRvdWJsZV9yeihsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfbGwyZG91YmxlX3J6KF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX2xsMmZsb2F0X3JkKGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfbGwyZmxvYXRfcmQoX19hKTsgfQpfX0RFVklDRV9fIGZsb2F0IF9fbGwyZmxvYXRfcm4obG9uZyBsb25nIF9fYSkgeyByZXR1cm4gX19udl9sbDJmbG9hdF9ybihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19sbDJmbG9hdF9ydShsb25nIGxvbmcgX19hKSB7IHJldHVybiBfX252X2xsMmZsb2F0X3J1KF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX2xsMmZsb2F0X3J6KGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfbGwyZmxvYXRfcnooX19hKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2xsQXRvbWljQW5kKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FuZF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNBbmRfYmxvY2sobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2FuZF9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNBbmRfc3lzdGVtKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hbmRfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2xsQXRvbWljT3IobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fb3JfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2xsQXRvbWljT3JfYmxvY2sobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX29yX2dlbl9sbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyBsb25nIGxvbmcgX19sbEF0b21pY09yX3N5c3RlbShsb25nIGxvbmcgKl9fcCwgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfb3JfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX2xsQXRvbWljWG9yKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3hvcl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNYb3JfYmxvY2sobG9uZyBsb25nICpfX3AsIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX3hvcl9nZW5fbGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gbG9uZyBsb25nIF9fbGxBdG9taWNYb3Jfc3lzdGVtKGxvbmcgbG9uZyAqX19wLCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c194b3JfZ2VuX2xsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fbG9nMTBmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYXN0X2xvZzEwZihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19sb2cyZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmFzdF9sb2cyZihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX19sb2dmKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYXN0X2xvZ2YoX19hKTsgfQpfX0RFVklDRV9fIGRvdWJsZSBfX2xvbmdsb25nX2FzX2RvdWJsZShsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfbG9uZ2xvbmdfYXNfZG91YmxlKF9fYSk7Cn0KX19ERVZJQ0VfXyBpbnQgX19tdWwyNChpbnQgX19hLCBpbnQgX19iKSB7IHJldHVybiBfX252X211bDI0KF9fYSwgX19iKTsgfQpfX0RFVklDRV9fIGxvbmcgbG9uZyBfX211bDY0aGkobG9uZyBsb25nIF9fYSwgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX252X211bDY0aGkoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gaW50IF9fbXVsaGkoaW50IF9fYSwgaW50IF9fYikgeyByZXR1cm4gX19udl9tdWxoaShfX2EsIF9fYik7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19wbTAodm9pZCkgeyByZXR1cm4gX19udnZtX3JlYWRfcHR4X3NyZWdfcG0wKCk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19wbTEodm9pZCkgeyByZXR1cm4gX19udnZtX3JlYWRfcHR4X3NyZWdfcG0xKCk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19wbTIodm9pZCkgeyByZXR1cm4gX19udnZtX3JlYWRfcHR4X3NyZWdfcG0yKCk7IH0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX19wbTModm9pZCkgeyByZXR1cm4gX19udnZtX3JlYWRfcHR4X3NyZWdfcG0zKCk7IH0KX19ERVZJQ0VfXyBpbnQgX19wb3BjKGludCBfX2EpIHsgcmV0dXJuIF9fbnZfcG9wYyhfX2EpOyB9Cl9fREVWSUNFX18gaW50IF9fcG9wY2xsKGxvbmcgbG9uZyBfX2EpIHsgcmV0dXJuIF9fbnZfcG9wY2xsKF9fYSk7IH0KX19ERVZJQ0VfXyBmbG9hdCBfX3Bvd2YoZmxvYXQgX19hLCBmbG9hdCBfX2IpIHsKICByZXR1cm4gX19udl9mYXN0X3Bvd2YoX19hLCBfX2IpOwp9CgovLyBQYXJhbWV0ZXIgbXVzdCBoYXZlIGEga25vd24gaW50ZWdlciB2YWx1ZS4KI2RlZmluZSBfX3Byb2ZfdHJpZ2dlcihfX2EpIF9fYXNtX18gX192b2xhdGlsZV9fKCJwbWV2ZW50IFx0JTA7IiA6OiJpIihfX2EpKQpfX0RFVklDRV9fIGludCBfX3JoYWRkKGludCBfX2EsIGludCBfX2IpIHsgcmV0dXJuIF9fbnZfcmhhZGQoX19hLCBfX2IpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fc2FkKGludCBfX2EsIGludCBfX2IsIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19udl9zYWQoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3NhdHVyYXRlZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfc2F0dXJhdGVmKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19zaWduYml0ZChkb3VibGUgX19hKSB7IHJldHVybiBfX252X3NpZ25iaXRkKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19zaWduYml0ZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfc2lnbmJpdGYoX19hKTsgfQpfX0RFVklDRV9fIHZvaWQgX19zaW5jb3NmKGZsb2F0IF9fYSwgZmxvYXQgKl9fcywgZmxvYXQgKl9fYykgewogIHJldHVybiBfX252X2Zhc3Rfc2luY29zZihfX2EsIF9fcywgX19jKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fc2luZihmbG9hdCBfX2EpIHsgcmV0dXJuIF9fbnZfZmFzdF9zaW5mKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19zeW5jdGhyZWFkc19hbmQoaW50IF9fYSkgeyByZXR1cm4gX19udnZtX2JhcjBfYW5kKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19zeW5jdGhyZWFkc19jb3VudChpbnQgX19hKSB7IHJldHVybiBfX252dm1fYmFyMF9wb3BjKF9fYSk7IH0KX19ERVZJQ0VfXyBpbnQgX19zeW5jdGhyZWFkc19vcihpbnQgX19hKSB7IHJldHVybiBfX252dm1fYmFyMF9vcihfX2EpOyB9Cl9fREVWSUNFX18gZmxvYXQgX190YW5mKGZsb2F0IF9fYSkgeyByZXR1cm4gX19udl9mYXN0X3RhbmYoX19hKTsgfQpfX0RFVklDRV9fIHZvaWQgX190aHJlYWRmZW5jZSh2b2lkKSB7IF9fbnZ2bV9tZW1iYXJfZ2woKTsgfQpfX0RFVklDRV9fIHZvaWQgX190aHJlYWRmZW5jZV9ibG9jayh2b2lkKSB7IF9fbnZ2bV9tZW1iYXJfY3RhKCk7IH07Cl9fREVWSUNFX18gdm9pZCBfX3RocmVhZGZlbmNlX3N5c3RlbSh2b2lkKSB7IF9fbnZ2bV9tZW1iYXJfc3lzKCk7IH07Cl9fREVWSUNFX18gdm9pZCBfX3RyYXAodm9pZCkgeyBfX2FzbV9fIF9fdm9sYXRpbGVfXygidHJhcDsiKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBZGQodW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fYWRkX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljQWRkX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYWRkX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljQWRkX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hZGRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNBbmQodW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fYW5kX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljQW5kX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYW5kX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljQW5kX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hbmRfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNDQVModW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX2NtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY2FzX2dlbl9pKChpbnQgKilfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50Cl9fdUF0b21pY0NBU19ibG9jayh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fY21wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9jYXNfZ2VuX2koKGludCAqKV9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQKX191QXRvbWljQ0FTX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fY21wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19jYXNfZ2VuX2koKGludCAqKV9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRGVjKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2RlY19nZW5fdWkoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0RlY19ibG9jayh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2RlY19nZW5fdWkoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY0RlY19zeXN0ZW0odW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfZGVjX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRXhjaCh1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV94Y2hnX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRXhjaF9ibG9jayh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV94Y2hnX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljRXhjaF9zeXN0ZW0odW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX3hjaGdfZ2VuX2koKGludCAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNJbmModW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21faW5jX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljSW5jX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfaW5jX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljSW5jX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19pbmNfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNYXgodW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWF4X2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljTWF4X2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfbWF4X2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljTWF4X3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19tYXhfZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNNaW4odW5zaWduZWQgaW50ICpfX3AsIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWluX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljTWluX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfbWluX2dlbl91aShfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljTWluX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19taW5fZ2VuX3VpKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3VBdG9taWNPcih1bnNpZ25lZCBpbnQgKl9fcCwgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9vcl9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY09yX2Jsb2NrKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9vcl9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY09yX3N5c3RlbSh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX29yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191QXRvbWljWG9yKHVuc2lnbmVkIGludCAqX19wLCB1bnNpZ25lZCBpbnQgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3hvcl9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY1hvcl9ibG9jayh1bnNpZ25lZCBpbnQgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX3hvcl9nZW5faSgoaW50ICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdUF0b21pY1hvcl9zeXN0ZW0odW5zaWduZWQgaW50ICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfeG9yX2dlbl9pKChpbnQgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX191aGFkZCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdWhhZGQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fdWludDJkb3VibGVfcm4odW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3VpbnQyZG91YmxlX3JuKF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VpbnQyZmxvYXRfcmQodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3VpbnQyZmxvYXRfcmQoX19hKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fdWludDJmbG9hdF9ybih1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWludDJmbG9hdF9ybihfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191aW50MmZsb2F0X3J1KHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19udl91aW50MmZsb2F0X3J1KF9fYSk7Cn0KX19ERVZJQ0VfXyBmbG9hdCBfX3VpbnQyZmxvYXRfcnoodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3VpbnQyZmxvYXRfcnooX19hKTsKfQpfX0RFVklDRV9fIGZsb2F0IF9fdWludF9hc19mbG9hdCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWludF9hc19mbG9hdChfX2EpOwp9IC8vCl9fREVWSUNFX18gZG91YmxlIF9fdWxsMmRvdWJsZV9yZCh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmRvdWJsZV9yZChfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fdWxsMmRvdWJsZV9ybih1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmRvdWJsZV9ybihfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fdWxsMmRvdWJsZV9ydSh1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmRvdWJsZV9ydShfX2EpOwp9Cl9fREVWSUNFX18gZG91YmxlIF9fdWxsMmRvdWJsZV9yeih1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fbnZfdWxsMmRvdWJsZV9yeihfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191bGwyZmxvYXRfcmQodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X3VsbDJmbG9hdF9yZChfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191bGwyZmxvYXRfcm4odW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X3VsbDJmbG9hdF9ybihfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191bGwyZmxvYXRfcnUodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X3VsbDJmbG9hdF9ydShfX2EpOwp9Cl9fREVWSUNFX18gZmxvYXQgX191bGwyZmxvYXRfcnoodW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX252X3VsbDJmbG9hdF9yeihfX2EpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQWRkKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2FkZF9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0FkZF9ibG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfYWRkX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQWRkX3N5c3RlbSh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX2FkZF9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0FuZCh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9hbmRfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNBbmRfYmxvY2sodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2FuZF9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0FuZF9zeXN0ZW0odW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3N5c19hbmRfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNDQVModW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2NtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jYXNfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fY21wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljQ0FTX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19jbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fY3RhX2Nhc19nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX19jbXAsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNDQVNfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fY21wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfY2FzX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX2NtcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0V4Y2godW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX3hjaGdfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNFeGNoX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfeGNoZ19nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY0V4Y2hfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX3hjaGdfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNNYXgodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fbWF4X2dlbl91bGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljTWF4X2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9tYXhfZ2VuX3VsbChfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNNYXhfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfbWF4X2dlbl91bGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljTWluKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX21pbl9nZW5fdWxsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY01pbl9ibG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9jdGFfbWluX2dlbl91bGwoX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljTWluX3N5c3RlbSh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fc3lzX21pbl9nZW5fdWxsKF9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY09yKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21fb3JfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNPcl9ibG9jayh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV9vcl9nZW5fbGwoKGxvbmcgbG9uZyAqKV9fcCwgX192KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3VsbEF0b21pY09yX3N5c3RlbSh1bnNpZ25lZCBsb25nIGxvbmcgKl9fcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfb3JfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNYb3IodW5zaWduZWQgbG9uZyBsb25nICpfX3AsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3YpIHsKICByZXR1cm4gX19udnZtX2F0b21feG9yX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdWxsQXRvbWljWG9yX2Jsb2NrKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX192KSB7CiAgcmV0dXJuIF9fbnZ2bV9hdG9tX2N0YV94b3JfZ2VuX2xsKChsb25nIGxvbmcgKilfX3AsIF9fdik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBsb25nIGxvbmcgX191bGxBdG9taWNYb3Jfc3lzdGVtKHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIF9fdikgewogIHJldHVybiBfX252dm1fYXRvbV9zeXNfeG9yX2dlbl9sbCgobG9uZyBsb25nICopX19wLCBfX3YpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdW11bDI0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91bXVsMjQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgbG9uZyBsb25nIF9fdW11bDY0aGkodW5zaWduZWQgbG9uZyBsb25nIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fbnZfdW11bDY0aGkoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdW11bGhpKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91bXVsaGkoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdXJoYWRkKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl91cmhhZGQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdXNhZCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX252X3VzYWQoX19hLCBfX2IsIF9fYyk7Cn0KCiNpZiBDVURBX1ZFUlNJT04gPj0gOTAwMCAmJiBDVURBX1ZFUlNJT04gPCA5MDIwCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFiczIodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX19udl92YWJzMihfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFiczQodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX19udl92YWJzNChfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFic2RpZmZzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWJzZGlmZnM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNkaWZmdTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhYnNkaWZmdTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZ1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFic2RpZmZ1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzc3MyKHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19udl92YWJzc3MyKF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzc3M0KHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19udl92YWJzc3M0KF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFkZDIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZDQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhZGQ0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGRzczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhZGRzczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHNzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmFkZHNzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkdXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YWRkdXMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGR1czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZhZGR1czQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3MyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YXZnczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YXZnczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3UyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YXZndTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3U0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92YXZndTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGVxMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGVxMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZXE0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZXE0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBnZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ2VzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ2VzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGdlczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBnZXUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBnZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ2V1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3RzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGd0czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGd0czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBndHM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wZ3R1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3R1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGd0dTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxlczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsZXMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsZXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbGVzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbGV1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGxldTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsZXU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsdHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbHRzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbHRzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmNtcGx0czQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0dTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBsdHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsdHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbHR1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbmUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92Y21wbmUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBuZTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZjbXBuZTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmhhZGR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdmhhZGR1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192aGFkZHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92aGFkZHU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXhzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1heHMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXhzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1heHM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXh1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1heHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXh1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1heHU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW5zMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1pbnMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW5zNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1pbnM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW51Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1pbnUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW51NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdm1pbnU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWcyKHVuc2lnbmVkIGludCBfX2EpIHsgcmV0dXJuIF9fbnZfdm5lZzIoX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWc0KHVuc2lnbmVkIGludCBfX2EpIHsgcmV0dXJuIF9fbnZfdm5lZzQoX19hKTsgfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWdzczIodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3ZuZWdzczIoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWdzczQodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX252X3ZuZWdzczQoX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWRzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNhZHMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWRzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNhZHM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNhZHUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWR1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNhZHU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRlcTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRlcTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGVxNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGVxNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2VzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGdlczIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGdlczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRnZXM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0Z2V1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2V1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGdldTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRndHMyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRndHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0Z3RzNChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z3R1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGd0dTIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0dTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRndHU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bGVzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bGVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGxlczQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRsZXUyKF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bGV1NChfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHRzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGx0czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGx0czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzZXRsdHM0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bHR1MihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHR1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldGx0dTQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldG5lMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnNldG5lMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bmU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c2V0bmU0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWIyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c3ViMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3ViNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnN1YjQoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnNzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnN1YnNzMihfX2EsIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3Vic3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19udl92c3Vic3M0KF9fYSwgX19iKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWJ1czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX252X3ZzdWJ1czIoX19hLCBfX2IpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fbnZfdnN1YnVzNChfX2EsIF9fYik7Cn0KI2Vsc2UgLy8gQ1VEQV9WRVJTSU9OID49IDkwMjAKLy8gQ1VEQSBubyBsb25nZXIgcHJvdmlkZXMgaW5saW5lIGFzc2VtYmx5IChvciBiaXRjb2RlKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZQovLyBmdW5jdGlvbnMsIHNvIHdlIGhhdmUgdG8gcmVpbXBsbWVudCB0aGVtLiBUaGUgaW1wbGVtZW50YXRpb24gaXMgbmFpdmUgYW5kIGlzCi8vIG5vdCBvcHRpbWl6ZWQgZm9yIHBlcmZvcm1hbmNlLgoKLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgTi1iaXQgYm9vbGVhbiBzdWJmaWVsZHMgaW50byBhbGwtMCBvciBhbGwtMS4KLy8gRS5nLiBfX2Jvb2wybWFzaygweDAxMDAwMTAwLDgpIC0+IDB4ZmYwMGZmMDAKLy8gICAgICBfX2Jvb2wybWFzaygweDAwMDEwMDAwLDE2KSAtPiAweGZmZmYwMDAwCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fYm9vbDJtYXNrKHVuc2lnbmVkIGludCBfX2EsIGludCBzaGlmdCkgewogIHJldHVybiAoX19hIDw8IHNoaWZ0KSAtIF9fYTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnMyKHVuc2lnbmVkIGludCBfX2EpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjIuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoMCksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzNCh1bnNpZ25lZCBpbnQgX19hKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmY0LnMzMi5zMzIuczMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKDApLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmYyLnMzMi5zMzIuczMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic2RpZmZzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmY0LnMzMi5zMzIuczMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWJzZGlmZnUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjIudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNkaWZmdTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmNC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFic3NzMih1bnNpZ25lZCBpbnQgX19hKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmYyLnMzMi5zMzIuczMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIigwKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhYnNzczQodW5zaWduZWQgaW50IF9fYSkgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmNC5zMzIuczMyLnMzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoMCksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFkZDIudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGQ0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWRkNC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHNzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFkZDIuczMyLnMzMi5zMzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YWRkc3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWRkNC5zMzIuczMyLnMzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZhZGR1czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhZGQyLnUzMi51MzIudTMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmFkZHVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFkZDQudTMyLnUzMi51MzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZnczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhdnJnMi5zMzIuczMyLnMzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmF2Z3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YXZyZzQuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3Zhdmd1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmF2cmcyLnUzMi51MzIudTMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192YXZndTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhdnJnNC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGVxMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIudTMyLnUzMi5lcSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGVxMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGVxMihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRlcTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnUzMi51MzIuZXEgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBlcTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRlcTQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRnZXMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi5zMzIuczMyLmdlICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ2VzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGdlczIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2VzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQuczMyLnMzMi5nZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdlczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRnZXM0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z2V1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIudTMyLnUzMi5nZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGdldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRnZXUyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGdldTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnUzMi51MzIuZ2UgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBnZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0Z2V1NChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGd0czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQyLnMzMi5zMzIuZ3QgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBndHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0Z3RzMihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRndHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0NC5zMzIuczMyLmd0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3RzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGd0czQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRndHUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi51MzIudTMyLmd0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wZ3R1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGd0dTIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0Z3R1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQudTMyLnUzMi5ndCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGd0dTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRndHU0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bGVzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIuczMyLnMzMi5sZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGxlczIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsZXMyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxlczQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnMzMi5zMzIubGUgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsZXM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bGVzNChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGxldTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQyLnUzMi51MzIubGUgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsZXUyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bGV1MihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsZXU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0NC51MzIudTMyLmxlICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbGV1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGxldTQoX19hLCBfX2IpLCA4KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRsdHMyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c2V0Mi5zMzIuczMyLmx0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192Y21wbHRzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldGx0czIoX19hLCBfX2IpLCAxNik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHRzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDQuczMyLnMzMi5sdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0czQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsdHM0KF9fYSwgX19iKSwgOCk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2V0bHR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIudTMyLnUzMi5sdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcGx0dTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRsdHUyKF9fYSwgX19iKSwgMTYpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldGx0dTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnUzMi51MzIubHQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBsdHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19ib29sMm1hc2soX192c2V0bHR1NChfX2EsIF9fYiksIDgpOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNldG5lMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnNldDIudTMyLnUzMi5uZSAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmNtcG5lMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYm9vbDJtYXNrKF9fdnNldG5lMihfX2EsIF9fYiksIDE2KTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzZXRuZTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzZXQ0LnUzMi51MzIubmUgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZjbXBuZTQodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2Jvb2wybWFzayhfX3ZzZXRuZTQoX19hLCBfX2IpLCA4KTsKfQoKLy8gQmFzZWQgb24gSVRFTSAyMyBpbiBBSU0tMjM5OiBodHRwOi8vZHNwYWNlLm1pdC5lZHUvaGFuZGxlLzE3MjEuMS82MDg2Ci8vIChhICYgYikgKyAoYSB8IGIpID0gYSArIGIgPSAoYSBeIGIpICsgMiAqIChhICYgYikgPT4KLy8gKGEgKyBiKSAvIDIgPSAoKGEgXiBiKSA+PiAxKSArIChhICYgYikKLy8gVG8gb3BlcmF0ZSBvbiBtdWx0aXBsZSBzdWItZWxlbWVudHMgd2UgbmVlZCB0byBtYWtlIHN1cmUgdG8gbWFzayBvdXQgYml0cwovLyB0aGF0IGNyb3NzZWQgb3ZlciBpbnRvIGFkamFjZW50IGVsZW1lbnRzIGR1cmluZyB0aGUgc2hpZnQuCl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdmhhZGR1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuICgoKF9fYSBeIF9fYikgPj4gMSkgJiB+MHg4MDAwODAwMHUpICsgKF9fYSAmIF9fYik7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192aGFkZHU0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKCgoX19hIF4gX19iKSA+PiAxKSAmIH4weDgwODA4MDgwdSkgKyAoX19hICYgX19iKTsKfQoKX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192bWF4czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIGlmICgoX19hICYgMHg4MDAwKSAmJiAoX19iICYgMHg4MDAwKSkgewogICAgLy8gV29yayBhcm91bmQgYSBidWcgaW4gcHR4YXMgd2hpY2ggcHJvZHVjZXMgaW52YWxpZCByZXN1bHQgaWYgbG93IGVsZW1lbnQKICAgIC8vIGlzIG5lZ2F0aXZlLgogICAgdW5zaWduZWQgbWFzayA9IF9fdmNtcGd0czIoX19hLCBfX2IpOwogICAgciA9IChfX2EgJiBtYXNrKSB8IChfX2IgJiB+bWFzayk7CiAgfSBlbHNlIHsKICAgIF9fYXNtX18oInZtYXgyLnMzMi5zMzIuczMyICUwLCUxLCUyLCUzOyIKICAgICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIH0KICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXhzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1heDQuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXh1Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1heDIudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtYXh1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1heDQudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW5zMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1pbjIuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW5zNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1pbjQuczMyLnMzMi5zMzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW51Mih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1pbjIudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZtaW51NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidm1pbjQudTMyLnUzMi51MzIgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWRzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmYyLnMzMi5zMzIuczMyLmFkZCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnNhZHM0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2YWJzZGlmZjQuczMyLnMzMi5zMzIuYWRkICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c2FkdTIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZhYnNkaWZmMi51MzIudTMyLnUzMi5hZGQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzYWR1NCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidmFic2RpZmY0LnUzMi51MzIudTMyLmFkZCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9CgpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWIyKHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c3ViMi51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZzIodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX192c3ViMigwLCBfX2EpOyB9CgpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWI0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c3ViNC51MzIudTMyLnUzMiAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdm5lZzQodW5zaWduZWQgaW50IF9fYSkgeyByZXR1cm4gX192c3ViNCgwLCBfX2EpOyB9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnNzMih1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnN1YjIuczMyLnMzMi5zMzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192bmVnc3MyKHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX192c3Vic3MyKDAsIF9fYSk7Cn0KX19ERVZJQ0VfXyB1bnNpZ25lZCBpbnQgX192c3Vic3M0KHVuc2lnbmVkIGludCBfX2EsIHVuc2lnbmVkIGludCBfX2IpIHsKICB1bnNpZ25lZCBpbnQgcjsKICBfX2FzbV9fKCJ2c3ViNC5zMzIuczMyLnMzMi5zYXQgJTAsJTEsJTIsJTM7IgogICAgICAgICAgOiAiPXIiKHIpCiAgICAgICAgICA6ICJyIihfX2EpLCAiciIoX19iKSwgInIiKDApKTsKICByZXR1cm4gcjsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZuZWdzczQodW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX3ZzdWJzczQoMCwgX19hKTsKfQpfX0RFVklDRV9fIHVuc2lnbmVkIGludCBfX3ZzdWJ1czIodW5zaWduZWQgaW50IF9fYSwgdW5zaWduZWQgaW50IF9fYikgewogIHVuc2lnbmVkIGludCByOwogIF9fYXNtX18oInZzdWIyLnUzMi51MzIudTMyLnNhdCAlMCwlMSwlMiwlMzsiCiAgICAgICAgICA6ICI9ciIocikKICAgICAgICAgIDogInIiKF9fYSksICJyIihfX2IpLCAiciIoMCkpOwogIHJldHVybiByOwp9Cl9fREVWSUNFX18gdW5zaWduZWQgaW50IF9fdnN1YnVzNCh1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBpbnQgX19iKSB7CiAgdW5zaWduZWQgaW50IHI7CiAgX19hc21fXygidnN1YjQudTMyLnUzMi51MzIuc2F0ICUwLCUxLCUyLCUzOyIKICAgICAgICAgIDogIj1yIihyKQogICAgICAgICAgOiAiciIoX19hKSwgInIiKF9fYiksICJyIigwKSk7CiAgcmV0dXJuIHI7Cn0KI2VuZGlmIC8vIENVREFfVkVSU0lPTiA+PSA5MDIwCgovLyBGb3IgT3Blbk1QIHdlIHJlcXVpcmUgdGhlIHVzZXIgdG8gaW5jbHVkZSA8dGltZS5oPiBhcyB3ZSBuZWVkIHRvIGtub3cgd2hhdAovLyBjbG9ja190IGlzIG9uIHRoZSBzeXN0ZW0uCiNpZm5kZWYgX19PUEVOTVBfTlZQVFhfXwpfX0RFVklDRV9fIC8qIGNsb2NrX3Q9ICovIGludCBjbG9jaygpIHsgcmV0dXJuIF9fbnZ2bV9yZWFkX3B0eF9zcmVnX2Nsb2NrKCk7IH0KI2VuZGlmCl9fREVWSUNFX18gbG9uZyBsb25nIGNsb2NrNjQoKSB7IHJldHVybiBfX252dm1fcmVhZF9wdHhfc3JlZ19jbG9jazY0KCk7IH0KCi8vIFRoZXNlIGZ1bmN0aW9ucyBzaG91bGRuJ3QgYmUgZGVjbGFyZWQgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIKLy8gZm9yIG1hdGggZnVuY3Rpb24gcmVzb2x1dGlvbiBwdXJwb3Nlcy4KI2lmbmRlZiBfX09QRU5NUF9OVlBUWF9fCl9fREVWSUNFX18gdm9pZCAqbWVtY3B5KHZvaWQgKl9fYSwgY29uc3Qgdm9pZCAqX19iLCBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9tZW1jcHkoX19hLCBfX2IsIF9fYyk7Cn0KX19ERVZJQ0VfXyB2b2lkICptZW1zZXQodm9pZCAqX19hLCBpbnQgX19iLCBzaXplX3QgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9tZW1zZXQoX19hLCBfX2IsIF9fYyk7Cn0KI2VuZGlmCgojcHJhZ21hIHBvcF9tYWNybygiX19ERVZJQ0VfXyIpCiNlbmRpZiAvLyBfX0NMQU5HX0NVREFfREVWSUNFX0ZVTkNUSU9OU19IX18KAGFybV9mcDE2LmgALy89PT0tLS0tLSBvcGVuY2wtYy1iYXNlLmggLSBPcGVuQ0wgQyBsYW5ndWFnZSBiYXNlIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tPT09Ly8KLy8KLy8gUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KLy8gU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KLy8KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgX09QRU5DTF9CQVNFX0hfCiNkZWZpbmUgX09QRU5DTF9CQVNFX0hfCgovLyBEZWZpbmUgZXh0ZW5zaW9uIG1hY3JvcwoKI2lmIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IDIwMCkKLy8gRm9yIFNQSVIgYWxsIGV4dGVuc2lvbnMgYXJlIHN1cHBvcnRlZC4KI2lmIGRlZmluZWQoX19TUElSX18pCiNkZWZpbmUgY2xfa2hyX3N1Ymdyb3VwX2V4dGVuZGVkX3R5cGVzIDEKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfbm9uX3VuaWZvcm1fdm90ZSAxCiNkZWZpbmUgY2xfa2hyX3N1Ymdyb3VwX2JhbGxvdCAxCiNkZWZpbmUgY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX2FyaXRobWV0aWMgMQojZGVmaW5lIGNsX2tocl9zdWJncm91cF9zaHVmZmxlIDEKI2RlZmluZSBjbF9raHJfc3ViZ3JvdXBfc2h1ZmZsZV9yZWxhdGl2ZSAxCiNkZWZpbmUgY2xfa2hyX3N1Ymdyb3VwX2NsdXN0ZXJlZF9yZWR1Y2UgMQojZGVmaW5lIGNsX2tocl9leHRlbmRlZF9iaXRfb3BzIDEKI2RlZmluZSBjbF9raHJfaW50ZWdlcl9kb3RfcHJvZHVjdCAxCiNkZWZpbmUgX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdCAxCiNkZWZpbmUgX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdF9wYWNrZWQgMQoKI2VuZGlmIC8vIGRlZmluZWQoX19TUElSX18pCiNlbmRpZiAvLyAoZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSAyMDApCgovLyBEZWZpbmUgZmVhdHVyZSBtYWNyb3MgZm9yIE9wZW5DTCBDIDIuMAojaWYgKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18gPT0gMTAwIHx8IF9fT1BFTkNMX0NfVkVSU0lPTl9fID09IDIwMCkKI2RlZmluZSBfX29wZW5jbF9jX3BpcGVzIDEKI2RlZmluZSBfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSAxCiNkZWZpbmUgX19vcGVuY2xfY193b3JrX2dyb3VwX2NvbGxlY3RpdmVfZnVuY3Rpb25zIDEKI2RlZmluZSBfX29wZW5jbF9jX2F0b21pY19vcmRlcl9hY3FfcmVsIDEKI2RlZmluZSBfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0IDEKI2RlZmluZSBfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UgMQojZGVmaW5lIF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2FsbF9kZXZpY2VzIDEKI2RlZmluZSBfX29wZW5jbF9jX2RldmljZV9lbnF1ZXVlIDEKI2RlZmluZSBfX29wZW5jbF9jX3JlYWRfd3JpdGVfaW1hZ2VzIDEKI2RlZmluZSBfX29wZW5jbF9jX3Byb2dyYW1fc2NvcGVfZ2xvYmFsX3ZhcmlhYmxlcyAxCiNkZWZpbmUgX19vcGVuY2xfY19pbWFnZXMgMQojZW5kaWYKCi8vIERlZmluZSBoZWFkZXItb25seSBmZWF0dXJlIG1hY3JvcyBmb3IgT3BlbkNMIEMgMy4wLgojaWYgKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18gPT0gMjAyMTAwIHx8IF9fT1BFTkNMX0NfVkVSU0lPTl9fID09IDMwMCkKLy8gRm9yIHRoZSBTUElSIHRhcmdldCBhbGwgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZC4KI2lmIGRlZmluZWQoX19TUElSX18pCiNkZWZpbmUgX19vcGVuY2xfY19hdG9taWNfc2NvcGVfYWxsX2RldmljZXMgMQojZW5kaWYgLy8gZGVmaW5lZChfX1NQSVJfXykKI2VuZGlmIC8vIChfX09QRU5DTF9DUFBfVkVSU0lPTl9fID09IDIwMjEwMCB8fCBfX09QRU5DTF9DX1ZFUlNJT05fXyA9PSAzMDApCgovLyBidWlsdC1pbiBzY2FsYXIgZGF0YSB0eXBlczoKCi8qKgogKiBBbiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VyLgogKi8KdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyOwoKLyoqCiAqIEFuIHVuc2lnbmVkIDE2LWJpdCBpbnRlZ2VyLgogKi8KdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1c2hvcnQ7CgovKioKICogQW4gdW5zaWduZWQgMzItYml0IGludGVnZXIuCiAqLwp0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50OwoKLyoqCiAqIEFuIHVuc2lnbmVkIDY0LWJpdCBpbnRlZ2VyLgogKi8KdHlwZWRlZiB1bnNpZ25lZCBsb25nIHVsb25nOwoKLyoqCiAqIFRoZSB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgb2YgdGhlIHJlc3VsdCBvZiB0aGUgc2l6ZW9mIG9wZXJhdG9yLiBUaGlzCiAqIGlzIGEgMzItYml0IHVuc2lnbmVkIGludGVnZXIgaWYgQ0xfREVWSUNFX0FERFJFU1NfQklUUwogKiBkZWZpbmVkIGluIHRhYmxlIDQuMyBpcyAzMi1iaXRzIGFuZCBpcyBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyIGlmCiAqIENMX0RFVklDRV9BRERSRVNTX0JJVFMgaXMgNjQtYml0cy4KICovCnR5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7CgovKioKICogQSBzaWduZWQgaW50ZWdlciB0eXBlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiBzdWJ0cmFjdGluZyB0d28gcG9pbnRlcnMuCiAqIFRoaXMgaXMgYSAzMi1iaXQgc2lnbmVkIGludGVnZXIgaWYgQ0xfREVWSUNFX0FERFJFU1NfQklUUwogKiBkZWZpbmVkIGluIHRhYmxlIDQuMyBpcyAzMi1iaXRzIGFuZCBpcyBhIDY0LWJpdCBzaWduZWQgaW50ZWdlciBpZgogKiBDTF9ERVZJQ0VfQUREUkVTU19CSVRTIGlzIDY0LWJpdHMuCiAqLwp0eXBlZGVmIF9fUFRSRElGRl9UWVBFX18gcHRyZGlmZl90OwoKLyoqCiAqIEEgc2lnbmVkIGludGVnZXIgdHlwZSB3aXRoIHRoZSBwcm9wZXJ0eSB0aGF0IGFueSB2YWxpZCBwb2ludGVyIHRvCiAqIHZvaWQgY2FuIGJlIGNvbnZlcnRlZCB0byB0aGlzIHR5cGUsIHRoZW4gY29udmVydGVkIGJhY2sgdG8gcG9pbnRlcgogKiB0byB2b2lkLCBhbmQgdGhlIHJlc3VsdCB3aWxsIGNvbXBhcmUgZXF1YWwgdG8gdGhlIG9yaWdpbmFsIHBvaW50ZXIuCiAqLwp0eXBlZGVmIF9fSU5UUFRSX1RZUEVfXyBpbnRwdHJfdDsKCi8qKgogKiBBbiB1bnNpZ25lZCBpbnRlZ2VyIHR5cGUgd2l0aCB0aGUgcHJvcGVydHkgdGhhdCBhbnkgdmFsaWQgcG9pbnRlciB0bwogKiB2b2lkIGNhbiBiZSBjb252ZXJ0ZWQgdG8gdGhpcyB0eXBlLCB0aGVuIGNvbnZlcnRlZCBiYWNrIHRvIHBvaW50ZXIKICogdG8gdm9pZCwgYW5kIHRoZSByZXN1bHQgd2lsbCBjb21wYXJlIGVxdWFsIHRvIHRoZSBvcmlnaW5hbCBwb2ludGVyLgogKi8KdHlwZWRlZiBfX1VJTlRQVFJfVFlQRV9fIHVpbnRwdHJfdDsKCi8vIGJ1aWx0LWluIHZlY3RvciBkYXRhIHR5cGVzOgp0eXBlZGVmIGNoYXIgY2hhcjIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgY2hhciBjaGFyMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiBjaGFyIGNoYXI0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIGNoYXIgY2hhcjggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgY2hhciBjaGFyMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIHVjaGFyIHVjaGFyMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiB1Y2hhciB1Y2hhcjMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgdWNoYXIgdWNoYXI0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIHVjaGFyIHVjaGFyOCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiB1Y2hhciB1Y2hhcjE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKdHlwZWRlZiBzaG9ydCBzaG9ydDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgc2hvcnQgc2hvcnQzIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIHNob3J0IHNob3J0NCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiBzaG9ydCBzaG9ydDggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgc2hvcnQgc2hvcnQxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CnR5cGVkZWYgdXNob3J0IHVzaG9ydDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgdXNob3J0IHVzaG9ydDMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgdXNob3J0IHVzaG9ydDQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgdXNob3J0IHVzaG9ydDggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgdXNob3J0IHVzaG9ydDE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKdHlwZWRlZiBpbnQgaW50MiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiBpbnQgaW50MyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiBpbnQgaW50NCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiBpbnQgaW50OCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiBpbnQgaW50MTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIHVpbnQgdWludDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgdWludCB1aW50MyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiB1aW50IHVpbnQ0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIHVpbnQgdWludDggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgdWludCB1aW50MTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIGxvbmcgbG9uZzIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgbG9uZyBsb25nMyBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMykpKTsKdHlwZWRlZiBsb25nIGxvbmc0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIGxvbmcgbG9uZzggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgbG9uZyBsb25nMTYgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDE2KSkpOwp0eXBlZGVmIHVsb25nIHVsb25nMiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMikpKTsKdHlwZWRlZiB1bG9uZyB1bG9uZzMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgdWxvbmcgdWxvbmc0IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg0KSkpOwp0eXBlZGVmIHVsb25nIHVsb25nOCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoOCkpKTsKdHlwZWRlZiB1bG9uZyB1bG9uZzE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKdHlwZWRlZiBmbG9hdCBmbG9hdDIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgZmxvYXQgZmxvYXQzIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgzKSkpOwp0eXBlZGVmIGZsb2F0IGZsb2F0NCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiBmbG9hdCBmbG9hdDggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgZmxvYXQgZmxvYXQxNiBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoMTYpKSk7CiNpZmRlZiBjbF9raHJfZnAxNgojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ZwMTYgOiBlbmFibGUKdHlwZWRlZiBoYWxmIGhhbGYyIF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgyKSkpOwp0eXBlZGVmIGhhbGYgaGFsZjMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgaGFsZiBoYWxmNCBfX2F0dHJpYnV0ZV9fKChleHRfdmVjdG9yX3R5cGUoNCkpKTsKdHlwZWRlZiBoYWxmIGhhbGY4IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSg4KSkpOwp0eXBlZGVmIGhhbGYgaGFsZjE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKI2VuZGlmCiNpZmRlZiBjbF9raHJfZnA2NAojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPCBDTF9WRVJTSU9OXzFfMgojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ZwNjQgOiBlbmFibGUKI2VuZGlmCnR5cGVkZWYgZG91YmxlIGRvdWJsZTIgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDIpKSk7CnR5cGVkZWYgZG91YmxlIGRvdWJsZTMgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDMpKSk7CnR5cGVkZWYgZG91YmxlIGRvdWJsZTQgX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDQpKSk7CnR5cGVkZWYgZG91YmxlIGRvdWJsZTggX19hdHRyaWJ1dGVfXygoZXh0X3ZlY3Rvcl90eXBlKDgpKSk7CnR5cGVkZWYgZG91YmxlIGRvdWJsZTE2IF9fYXR0cmlidXRlX18oKGV4dF92ZWN0b3JfdHlwZSgxNikpKTsKI2VuZGlmCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKQojZGVmaW5lIE5VTEwgbnVsbHB0cgojZWxpZiBkZWZpbmVkKF9fT1BFTkNMX0NfVkVSU0lPTl9fKQojZGVmaW5lIE5VTEwgKCh2b2lkKikwKQojZW5kaWYKCi8qKgogKiBWYWx1ZSBvZiBtYXhpbXVtIG5vbi1pbmZpbml0ZSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50CiAqIG51bWJlci4KICovCiNkZWZpbmUgTUFYRkxPQVQgMHgxLmZmZmZmZXAxMjdmCgovKioKICogQSBwb3NpdGl2ZSBmbG9hdCBjb25zdGFudCBleHByZXNzaW9uLiBIVUdFX1ZBTEYgZXZhbHVhdGVzCiAqIHRvICtpbmZpbml0eS4gVXNlZCBhcyBhbiBlcnJvciB2YWx1ZSByZXR1cm5lZCBieSB0aGUgYnVpbHQtaW4KICogbWF0aCBmdW5jdGlvbnMuCiAqLwojZGVmaW5lIEhVR0VfVkFMRiAoX19idWlsdGluX2h1Z2VfdmFsZigpKQoKLyoqCiAqIEEgcG9zaXRpdmUgZG91YmxlIGNvbnN0YW50IGV4cHJlc3Npb24uIEhVR0VfVkFMIGV2YWx1YXRlcwogKiB0byAraW5maW5pdHkuIFVzZWQgYXMgYW4gZXJyb3IgdmFsdWUgcmV0dXJuZWQgYnkgdGhlIGJ1aWx0LWluCiAqIG1hdGggZnVuY3Rpb25zLgogKi8KI2RlZmluZSBIVUdFX1ZBTCAoX19idWlsdGluX2h1Z2VfdmFsKCkpCgovKioKICogQSBjb25zdGFudCBleHByZXNzaW9uIG9mIHR5cGUgZmxvYXQgcmVwcmVzZW50aW5nIHBvc2l0aXZlIG9yCiAqIHVuc2lnbmVkIGluZmluaXR5LgogKi8KI2RlZmluZSBJTkZJTklUWSAoX19idWlsdGluX2luZmYoKSkKCi8qKgogKiBBIGNvbnN0YW50IGV4cHJlc3Npb24gb2YgdHlwZSBmbG9hdCByZXByZXNlbnRpbmcgYSBxdWlldCBOYU4uCiAqLwojZGVmaW5lIE5BTiBhc19mbG9hdChJTlRfTUFYKQoKI2RlZmluZSBGUF9JTE9HQjAgICAgSU5UX01JTgojZGVmaW5lIEZQX0lMT0dCTkFOICBJTlRfTUFYCgojZGVmaW5lIEZMVF9ESUcgNgojZGVmaW5lIEZMVF9NQU5UX0RJRyAyNAojZGVmaW5lIEZMVF9NQVhfMTBfRVhQICszOAojZGVmaW5lIEZMVF9NQVhfRVhQICsxMjgKI2RlZmluZSBGTFRfTUlOXzEwX0VYUCAtMzcKI2RlZmluZSBGTFRfTUlOX0VYUCAtMTI1CiNkZWZpbmUgRkxUX1JBRElYIDIKI2RlZmluZSBGTFRfTUFYIDB4MS5mZmZmZmVwMTI3ZgojZGVmaW5lIEZMVF9NSU4gMHgxLjBwLTEyNmYKI2RlZmluZSBGTFRfRVBTSUxPTiAweDEuMHAtMjNmCgojZGVmaW5lIE1fRV9GICAgICAgICAgMi43MTgyODE4Mjg0NTkwNDUyMzUzNjAyODc0NzEzNTI2NjI1MGYKI2RlZmluZSBNX0xPRzJFX0YgICAgIDEuNDQyNjk1MDQwODg4OTYzNDA3MzU5OTI0NjgxMDAxODkyMTRmCiNkZWZpbmUgTV9MT0cxMEVfRiAgICAwLjQzNDI5NDQ4MTkwMzI1MTgyNzY1MTEyODkxODkxNjYwNTA4MmYKI2RlZmluZSBNX0xOMl9GICAgICAgIDAuNjkzMTQ3MTgwNTU5OTQ1MzA5NDE3MjMyMTIxNDU4MTc2NTY4ZgojZGVmaW5lIE1fTE4xMF9GICAgICAgMi4zMDI1ODUwOTI5OTQwNDU2ODQwMTc5OTE0NTQ2ODQzNjQyMWYKI2RlZmluZSBNX1BJX0YgICAgICAgIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAyODhmCiNkZWZpbmUgTV9QSV8yX0YgICAgICAxLjU3MDc5NjMyNjc5NDg5NjYxOTIzMTMyMTY5MTYzOTc1MTQ0ZgojZGVmaW5lIE1fUElfNF9GICAgICAgMC43ODUzOTgxNjMzOTc0NDgzMDk2MTU2NjA4NDU4MTk4NzU3MjFmCiNkZWZpbmUgTV8xX1BJX0YgICAgICAwLjMxODMwOTg4NjE4Mzc5MDY3MTUzNzc2NzUyNjc0NTAyODcyNGYKI2RlZmluZSBNXzJfUElfRiAgICAgIDAuNjM2NjE5NzcyMzY3NTgxMzQzMDc1NTM1MDUzNDkwMDU3NDQ4ZgojZGVmaW5lIE1fMl9TUVJUUElfRiAgMS4xMjgzNzkxNjcwOTU1MTI1NzM4OTYxNTg5MDMxMjE1NDUxN2YKI2RlZmluZSBNX1NRUlQyX0YgICAgIDEuNDE0MjEzNTYyMzczMDk1MDQ4ODAxNjg4NzI0MjA5Njk4MDhmCiNkZWZpbmUgTV9TUVJUMV8yX0YgICAwLjcwNzEwNjc4MTE4NjU0NzUyNDQwMDg0NDM2MjEwNDg0OTAzOWYKCiNkZWZpbmUgREJMX0RJRyAxNQojZGVmaW5lIERCTF9NQU5UX0RJRyA1MwojZGVmaW5lIERCTF9NQVhfMTBfRVhQICszMDgKI2RlZmluZSBEQkxfTUFYX0VYUCArMTAyNAojZGVmaW5lIERCTF9NSU5fMTBfRVhQIC0zMDcKI2RlZmluZSBEQkxfTUlOX0VYUCAtMTAyMQojZGVmaW5lIERCTF9SQURJWCAyCiNkZWZpbmUgREJMX01BWCAweDEuZmZmZmZmZmZmZmZmZnAxMDIzCiNkZWZpbmUgREJMX01JTiAweDEuMHAtMTAyMgojZGVmaW5lIERCTF9FUFNJTE9OIDB4MS4wcC01MgoKI2RlZmluZSBNX0UgICAgICAgICAgIDB4MS41YmYwYThiMTQ1NzY5cCsxCiNkZWZpbmUgTV9MT0cyRSAgICAgICAweDEuNzE1NDc2NTJiODJmZXArMAojZGVmaW5lIE1fTE9HMTBFICAgICAgMHgxLmJjYjdiMTUyNmU1MGVwLTIKI2RlZmluZSBNX0xOMiAgICAgICAgIDB4MS42MmU0MmZlZmEzOWVmcC0xCiNkZWZpbmUgTV9MTjEwICAgICAgICAweDEuMjZiYjFiYmI1NTUxNnArMQojZGVmaW5lIE1fUEkgICAgICAgICAgMHgxLjkyMWZiNTQ0NDJkMThwKzEKI2RlZmluZSBNX1BJXzIgICAgICAgIDB4MS45MjFmYjU0NDQyZDE4cCswCiNkZWZpbmUgTV9QSV80ICAgICAgICAweDEuOTIxZmI1NDQ0MmQxOHAtMQojZGVmaW5lIE1fMV9QSSAgICAgICAgMHgxLjQ1ZjMwNmRjOWM4ODNwLTIKI2RlZmluZSBNXzJfUEkgICAgICAgIDB4MS40NWYzMDZkYzljODgzcC0xCiNkZWZpbmUgTV8yX1NRUlRQSSAgICAweDEuMjBkZDc1MDQyOWI2ZHArMAojZGVmaW5lIE1fU1FSVDIgICAgICAgMHgxLjZhMDllNjY3ZjNiY2RwKzAKI2RlZmluZSBNX1NRUlQxXzIgICAgIDB4MS42YTA5ZTY2N2YzYmNkcC0xCgojaWZkZWYgY2xfa2hyX2ZwMTYKCiNkZWZpbmUgSEFMRl9ESUcgMwojZGVmaW5lIEhBTEZfTUFOVF9ESUcgMTEKI2RlZmluZSBIQUxGX01BWF8xMF9FWFAgKzQKI2RlZmluZSBIQUxGX01BWF9FWFAgKzE2CiNkZWZpbmUgSEFMRl9NSU5fMTBfRVhQIC00CiNkZWZpbmUgSEFMRl9NSU5fRVhQIC0xMwojZGVmaW5lIEhBTEZfUkFESVggMgojZGVmaW5lIEhBTEZfTUFYICgoMHgxLmZmY3AxNWgpKQojZGVmaW5lIEhBTEZfTUlOICgoMHgxLjBwLTE0aCkpCiNkZWZpbmUgSEFMRl9FUFNJTE9OICgoMHgxLjBwLTEwaCkpCgojZGVmaW5lIE1fRV9IICAgICAgICAgMi43MTgyODE4Mjg0NTkwNDUyMzUzNjAyODc0NzEzNTI2NjI1MGgKI2RlZmluZSBNX0xPRzJFX0ggICAgIDEuNDQyNjk1MDQwODg4OTYzNDA3MzU5OTI0NjgxMDAxODkyMTRoCiNkZWZpbmUgTV9MT0cxMEVfSCAgICAwLjQzNDI5NDQ4MTkwMzI1MTgyNzY1MTEyODkxODkxNjYwNTA4MmgKI2RlZmluZSBNX0xOMl9IICAgICAgIDAuNjkzMTQ3MTgwNTU5OTQ1MzA5NDE3MjMyMTIxNDU4MTc2NTY4aAojZGVmaW5lIE1fTE4xMF9IICAgICAgMi4zMDI1ODUwOTI5OTQwNDU2ODQwMTc5OTE0NTQ2ODQzNjQyMWgKI2RlZmluZSBNX1BJX0ggICAgICAgIDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzMzgzMjc5NTAyODhoCiNkZWZpbmUgTV9QSV8yX0ggICAgICAxLjU3MDc5NjMyNjc5NDg5NjYxOTIzMTMyMTY5MTYzOTc1MTQ0aAojZGVmaW5lIE1fUElfNF9IICAgICAgMC43ODUzOTgxNjMzOTc0NDgzMDk2MTU2NjA4NDU4MTk4NzU3MjFoCiNkZWZpbmUgTV8xX1BJX0ggICAgICAwLjMxODMwOTg4NjE4Mzc5MDY3MTUzNzc2NzUyNjc0NTAyODcyNGgKI2RlZmluZSBNXzJfUElfSCAgICAgIDAuNjM2NjE5NzcyMzY3NTgxMzQzMDc1NTM1MDUzNDkwMDU3NDQ4aAojZGVmaW5lIE1fMl9TUVJUUElfSCAgMS4xMjgzNzkxNjcwOTU1MTI1NzM4OTYxNTg5MDMxMjE1NDUxN2gKI2RlZmluZSBNX1NRUlQyX0ggICAgIDEuNDE0MjEzNTYyMzczMDk1MDQ4ODAxNjg4NzI0MjA5Njk4MDhoCiNkZWZpbmUgTV9TUVJUMV8yX0ggICAwLjcwNzEwNjc4MTE4NjU0NzUyNDQwMDg0NDM2MjEwNDg0OTAzOWgKCiNlbmRpZiAvL2NsX2tocl9mcDE2CgojZGVmaW5lIENIQVJfQklUICA4CiNkZWZpbmUgU0NIQVJfTUFYIDEyNwojZGVmaW5lIFNDSEFSX01JTiAoLTEyOCkKI2RlZmluZSBVQ0hBUl9NQVggMjU1CiNkZWZpbmUgQ0hBUl9NQVggIFNDSEFSX01BWAojZGVmaW5lIENIQVJfTUlOICBTQ0hBUl9NSU4KI2RlZmluZSBVU0hSVF9NQVggNjU1MzUKI2RlZmluZSBTSFJUX01BWCAgMzI3NjcKI2RlZmluZSBTSFJUX01JTiAgKC0zMjc2OCkKI2RlZmluZSBVSU5UX01BWCAgMHhmZmZmZmZmZgojZGVmaW5lIElOVF9NQVggICAyMTQ3NDgzNjQ3CiNkZWZpbmUgSU5UX01JTiAgICgtMjE0NzQ4MzY0Ny0xKQojZGVmaW5lIFVMT05HX01BWCAweGZmZmZmZmZmZmZmZmZmZmZVTAojZGVmaW5lIExPTkdfTUFYICAweDdmZmZmZmZmZmZmZmZmZmZMCiNkZWZpbmUgTE9OR19NSU4gICgtMHg3ZmZmZmZmZmZmZmZmZmZmTC0xKQoKLy8gT3BlbkNMIHYxLjEgczYuMTEuOCwgdjEuMiBzNi4xMi44LCB2Mi4wIHM2LjEzLjggLSBTeW5jaHJvbml6YXRpb24gRnVuY3Rpb25zCgovLyBGbGFnIHR5cGUgYW5kIHZhbHVlcyBmb3IgYmFycmllciwgbWVtX2ZlbmNlLCByZWFkX21lbV9mZW5jZSwgd3JpdGVfbWVtX2ZlbmNlCnR5cGVkZWYgdWludCBjbF9tZW1fZmVuY2VfZmxhZ3M7CgovKioKICogUXVldWUgYSBtZW1vcnkgZmVuY2UgdG8gZW5zdXJlIGNvcnJlY3QKICogb3JkZXJpbmcgb2YgbWVtb3J5IG9wZXJhdGlvbnMgdG8gbG9jYWwgbWVtb3J5CiAqLwojZGVmaW5lIENMS19MT0NBTF9NRU1fRkVOQ0UgICAgMHgwMQoKLyoqCiAqIFF1ZXVlIGEgbWVtb3J5IGZlbmNlIHRvIGVuc3VyZSBjb3JyZWN0CiAqIG9yZGVyaW5nIG9mIG1lbW9yeSBvcGVyYXRpb25zIHRvIGdsb2JhbCBtZW1vcnkKICovCiNkZWZpbmUgQ0xLX0dMT0JBTF9NRU1fRkVOQ0UgICAweDAyCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgp0eXBlZGVmIGVudW0gbWVtb3J5X3Njb3BlIHsKICBtZW1vcnlfc2NvcGVfd29ya19pdGVtID0gX19PUEVOQ0xfTUVNT1JZX1NDT1BFX1dPUktfSVRFTSwKICBtZW1vcnlfc2NvcGVfd29ya19ncm91cCA9IF9fT1BFTkNMX01FTU9SWV9TQ09QRV9XT1JLX0dST1VQLAogIG1lbW9yeV9zY29wZV9kZXZpY2UgPSBfX09QRU5DTF9NRU1PUllfU0NPUEVfREVWSUNFLAojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9hbGxfZGV2aWNlcykKICBtZW1vcnlfc2NvcGVfYWxsX3N2bV9kZXZpY2VzID0gX19PUEVOQ0xfTUVNT1JZX1NDT1BFX0FMTF9TVk1fREVWSUNFUywKI2lmIChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMCkKICBtZW1vcnlfc2NvcGVfYWxsX2RldmljZXMgPSBtZW1vcnlfc2NvcGVfYWxsX3N2bV9kZXZpY2VzLAojZW5kaWYgLy8gX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmIC8vIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfc2NvcGVfYWxsX2RldmljZXMpCi8qKgogKiBTdWJncm91cHMgaGF2ZSBkaWZmZXJlbnQgcmVxdWlyZW1lbnRzIG9uIGZvcndhcmQgcHJvZ3Jlc3MsIHNvIGp1c3QgdGVzdAogKiBhbGwgdGhlIHJlbGV2YW50IG1hY3Jvcy4KICogQ0wgMy4wIHN1Yi1ncm91cHMgInRoZXkgYXJlIG5vdCBndWFyYW50ZWVkIHRvIG1ha2UgaW5kZXBlbmRlbnQgZm9yd2FyZCBwcm9ncmVzcyIKICogS0hSIHN1Ymdyb3VwcyAiU3ViZ3JvdXBzIHdpdGhpbiBhIHdvcmtncm91cCBhcmUgaW5kZXBlbmRlbnQsIG1ha2UgZm9yd2FyZCBwcm9ncmVzcyB3aXRoIHJlc3BlY3QgdG8gZWFjaCBvdGhlciIKICovCiNpZiBkZWZpbmVkKGNsX2ludGVsX3N1Ymdyb3VwcykgfHwgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBzKSB8fCBkZWZpbmVkKF9fb3BlbmNsX2Nfc3ViZ3JvdXBzKQogIG1lbW9yeV9zY29wZV9zdWJfZ3JvdXAgPSBfX09QRU5DTF9NRU1PUllfU0NPUEVfU1VCX0dST1VQCiNlbmRpZgp9IG1lbW9yeV9zY29wZTsKCi8qKgogKiBRdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdCBvcmRlcmluZyBvZiBtZW1vcnkKICogb3BlcmF0aW9ucyBiZXR3ZWVuIHdvcmstaXRlbXMgb2YgYSB3b3JrLWdyb3VwIHRvCiAqIGltYWdlIG1lbW9yeS4KICovCiNkZWZpbmUgQ0xLX0lNQUdFX01FTV9GRU5DRSAgMHgwNAoKI2lmbmRlZiBBVE9NSUNfVkFSX0lOSVQKI2RlZmluZSBBVE9NSUNfVkFSX0lOSVQoeCkgKHgpCiNlbmRpZiAvL0FUT01JQ19WQVJfSU5JVAojZGVmaW5lIEFUT01JQ19GTEFHX0lOSVQgMAoKLy8gZW51bSB2YWx1ZXMgYWxpZ25lZCB3aXRoIHdoYXQgY2xhbmcgdXNlcyBpbiBFbWl0QXRvbWljRXhwcigpCnR5cGVkZWYgZW51bSBtZW1vcnlfb3JkZXIKewogIG1lbW9yeV9vcmRlcl9yZWxheGVkID0gX19BVE9NSUNfUkVMQVhFRCwKICBtZW1vcnlfb3JkZXJfYWNxdWlyZSA9IF9fQVRPTUlDX0FDUVVJUkUsCiAgbWVtb3J5X29yZGVyX3JlbGVhc2UgPSBfX0FUT01JQ19SRUxFQVNFLAogIG1lbW9yeV9vcmRlcl9hY3FfcmVsID0gX19BVE9NSUNfQUNRX1JFTCwKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfb3JkZXJfc2VxX2NzdCkKICBtZW1vcnlfb3JkZXJfc2VxX2NzdCA9IF9fQVRPTUlDX1NFUV9DU1QKI2VuZGlmCn0gbWVtb3J5X29yZGVyOwoKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gT3BlbkNMIHYxLjEgczYuMTEuMywgdjEuMiBzNi4xMi4xNCwgdjIuMCBzNi4xMy4xNCAtIEltYWdlIFJlYWQgYW5kIFdyaXRlIEZ1bmN0aW9ucwoKLy8gVGhlc2UgdmFsdWVzIG5lZWQgdG8gbWF0Y2ggdGhlIHJ1bnRpbWUgZXF1aXZhbGVudAovLwovLyBBZGRyZXNzaW5nIE1vZGUuCi8vCiNkZWZpbmUgQ0xLX0FERFJFU1NfTk9ORSAgICAgICAgICAgICAgICAwCiNkZWZpbmUgQ0xLX0FERFJFU1NfQ0xBTVBfVE9fRURHRSAgICAgICAyCiNkZWZpbmUgQ0xLX0FERFJFU1NfQ0xBTVAgICAgICAgICAgICAgICA0CiNkZWZpbmUgQ0xLX0FERFJFU1NfUkVQRUFUICAgICAgICAgICAgICA2CiNkZWZpbmUgQ0xLX0FERFJFU1NfTUlSUk9SRURfUkVQRUFUICAgICA4CgovLwovLyBDb29yZGluYXRpb24gTm9ybWFsaXphdGlvbgovLwojZGVmaW5lIENMS19OT1JNQUxJWkVEX0NPT1JEU19GQUxTRSAgICAgMAojZGVmaW5lIENMS19OT1JNQUxJWkVEX0NPT1JEU19UUlVFICAgICAgMQoKLy8KLy8gRmlsdGVyaW5nIE1vZGUuCi8vCiNkZWZpbmUgQ0xLX0ZJTFRFUl9ORUFSRVNUICAgICAgICAgICAgICAweDEwCiNkZWZpbmUgQ0xLX0ZJTFRFUl9MSU5FQVIgICAgICAgICAgICAgICAweDIwCgojaWZkZWYgY2xfa2hyX2dsX21zYWFfc2hhcmluZwojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2dsX21zYWFfc2hhcmluZyA6IGVuYWJsZQojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgovLwovLyBDaGFubmVsIERhdGF0eXBlLgovLwojZGVmaW5lIENMS19TTk9STV9JTlQ4ICAgICAgICAweDEwRDAKI2RlZmluZSBDTEtfU05PUk1fSU5UMTYgICAgICAgMHgxMEQxCiNkZWZpbmUgQ0xLX1VOT1JNX0lOVDggICAgICAgIDB4MTBEMgojZGVmaW5lIENMS19VTk9STV9JTlQxNiAgICAgICAweDEwRDMKI2RlZmluZSBDTEtfVU5PUk1fU0hPUlRfNTY1ICAgMHgxMEQ0CiNkZWZpbmUgQ0xLX1VOT1JNX1NIT1JUXzU1NSAgIDB4MTBENQojZGVmaW5lIENMS19VTk9STV9JTlRfMTAxMDEwICAweDEwRDYKI2RlZmluZSBDTEtfU0lHTkVEX0lOVDggICAgICAgMHgxMEQ3CiNkZWZpbmUgQ0xLX1NJR05FRF9JTlQxNiAgICAgIDB4MTBEOAojZGVmaW5lIENMS19TSUdORURfSU5UMzIgICAgICAweDEwRDkKI2RlZmluZSBDTEtfVU5TSUdORURfSU5UOCAgICAgMHgxMERBCiNkZWZpbmUgQ0xLX1VOU0lHTkVEX0lOVDE2ICAgIDB4MTBEQgojZGVmaW5lIENMS19VTlNJR05FRF9JTlQzMiAgICAweDEwREMKI2RlZmluZSBDTEtfSEFMRl9GTE9BVCAgICAgICAgMHgxMERECiNkZWZpbmUgQ0xLX0ZMT0FUICAgICAgICAgICAgIDB4MTBERQojZGVmaW5lIENMS19VTk9STV9JTlQyNCAgICAgICAweDEwREYKCi8vIENoYW5uZWwgb3JkZXIsIG51bWJlcmluZyBtdXN0IGJlIGFsaWduZWQgd2l0aCBjbF9jaGFubmVsX29yZGVyIGluIGNsLmgKLy8KI2RlZmluZSBDTEtfUiAgICAgICAgIDB4MTBCMAojZGVmaW5lIENMS19BICAgICAgICAgMHgxMEIxCiNkZWZpbmUgQ0xLX1JHICAgICAgICAweDEwQjIKI2RlZmluZSBDTEtfUkEgICAgICAgIDB4MTBCMwojZGVmaW5lIENMS19SR0IgICAgICAgMHgxMEI0CiNkZWZpbmUgQ0xLX1JHQkEgICAgICAweDEwQjUKI2RlZmluZSBDTEtfQkdSQSAgICAgIDB4MTBCNgojZGVmaW5lIENMS19BUkdCICAgICAgMHgxMEI3CiNkZWZpbmUgQ0xLX0lOVEVOU0lUWSAweDEwQjgKI2RlZmluZSBDTEtfTFVNSU5BTkNFIDB4MTBCOQojZGVmaW5lIENMS19SeCAgICAgICAgICAgICAgICAweDEwQkEKI2RlZmluZSBDTEtfUkd4ICAgICAgICAgICAgICAgMHgxMEJCCiNkZWZpbmUgQ0xLX1JHQnggICAgICAgICAgICAgIDB4MTBCQwojZGVmaW5lIENMS19ERVBUSCAgICAgICAgICAgICAweDEwQkQKI2RlZmluZSBDTEtfREVQVEhfU1RFTkNJTCAgICAgMHgxMEJFCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMAojZGVmaW5lIENMS19zUkdCICAgICAgICAgICAgICAweDEwQkYKI2RlZmluZSBDTEtfc1JHQnggICAgICAgICAgICAgMHgxMEMwCiNkZWZpbmUgQ0xLX3NSR0JBICAgICAgICAgICAgIDB4MTBDMQojZGVmaW5lIENMS19zQkdSQSAgICAgICAgICAgICAweDEwQzIKI2RlZmluZSBDTEtfQUJHUiAgICAgICAgICAgICAgMHgxMEMzCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wCgovLyBPcGVuQ0wgdjIuMCBzNi4xMy4xNiAtIFBpcGUgRnVuY3Rpb25zCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2RlZmluZSBDTEtfTlVMTF9SRVNFUlZFX0lEIChfX2J1aWx0aW5fYXN0eXBlKCgodm9pZCopKF9fU0laRV9NQVhfXykpLCByZXNlcnZlX2lkX3QpKQoKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTcgLSBFbnF1ZXVlIEtlcm5lbHMKI2RlZmluZSBDTF9DT01QTEVURSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MAojZGVmaW5lIENMX1JVTk5JTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgxCiNkZWZpbmUgQ0xfU1VCTUlUVEVEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDIKI2RlZmluZSBDTF9RVUVVRUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MwoKI2RlZmluZSBDTEtfU1VDQ0VTUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKI2RlZmluZSBDTEtfRU5RVUVVRV9GQUlMVVJFICAgICAgICAgICAgICAgICAgICAgICAgIC0xMDEKI2RlZmluZSBDTEtfSU5WQUxJRF9RVUVVRSAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xMDIKI2RlZmluZSBDTEtfSU5WQUxJRF9ORFJBTkdFICAgICAgICAgICAgICAgICAgICAgICAgIC0xNjAKI2RlZmluZSBDTEtfSU5WQUxJRF9FVkVOVF9XQUlUX0xJU1QgICAgICAgICAgICAgICAgIC01NwojZGVmaW5lIENMS19ERVZJQ0VfUVVFVUVfRlVMTCAgICAgICAgICAgICAgICAgICAgICAgLTE2MQojZGVmaW5lIENMS19JTlZBTElEX0FSR19TSVpFICAgICAgICAgICAgICAgICAgICAgICAgLTUxCiNkZWZpbmUgQ0xLX0VWRU5UX0FMTE9DQVRJT05fRkFJTFVSRSAgICAgICAgICAgICAgICAtMTAwCiNkZWZpbmUgQ0xLX09VVF9PRl9SRVNPVVJDRVMgICAgICAgICAgICAgICAgICAgICAgICAtNQoKI2RlZmluZSBDTEtfTlVMTF9RVUVVRSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAKI2RlZmluZSBDTEtfTlVMTF9FVkVOVCAoX19idWlsdGluX2FzdHlwZSgoKF9fU0laRV9NQVhfXykpLCBjbGtfZXZlbnRfdCkpCgovLyBleGVjdXRpb24gbW9kZWwgcmVsYXRlZCBkZWZpbml0aW9ucwojZGVmaW5lIENMS19FTlFVRVVFX0ZMQUdTX05PX1dBSVQgICAgICAgICAgICAgICAgICAgMHgwCiNkZWZpbmUgQ0xLX0VOUVVFVUVfRkxBR1NfV0FJVF9LRVJORUwgICAgICAgICAgICAgICAweDEKI2RlZmluZSBDTEtfRU5RVUVVRV9GTEFHU19XQUlUX1dPUktfR1JPVVAgICAgICAgICAgIDB4MgoKdHlwZWRlZiBpbnQga2VybmVsX2VucXVldWVfZmxhZ3NfdDsKdHlwZWRlZiBpbnQgY2xrX3Byb2ZpbGluZ19pbmZvOwoKLy8gUHJvZmlsaW5nIGluZm8gbmFtZSAoc2VlIGNhcHR1cmVfZXZlbnRfcHJvZmlsaW5nX2luZm8pCiNkZWZpbmUgQ0xLX1BST0ZJTElOR19DT01NQU5EX0VYRUNfVElNRSAweDEKCiNkZWZpbmUgTUFYX1dPUktfRElNIDMKCnR5cGVkZWYgc3RydWN0IHsKICB1bnNpZ25lZCBpbnQgd29ya0RpbWVuc2lvbjsKICBzaXplX3QgZ2xvYmFsV29ya09mZnNldFtNQVhfV09SS19ESU1dOwogIHNpemVfdCBnbG9iYWxXb3JrU2l6ZVtNQVhfV09SS19ESU1dOwogIHNpemVfdCBsb2NhbFdvcmtTaXplW01BWF9XT1JLX0RJTV07Cn0gbmRyYW5nZV90OwoKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIE9wZW5DTCB2MS4xLzEuMi8yLjAgczYuMi40LjIgLSBhc190eXBlIG9wZXJhdG9ycwogKiBSZWludGVycHJldHMgYSBkYXRhIHR5cGUgYXMgYW5vdGhlciBkYXRhIHR5cGUgb2YgdGhlIHNhbWUgc2l6ZQogKi8KI2RlZmluZSBhc19jaGFyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBjaGFyKQojZGVmaW5lIGFzX2NoYXIyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBjaGFyMikKI2RlZmluZSBhc19jaGFyMyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgY2hhcjMpCiNkZWZpbmUgYXNfY2hhcjQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGNoYXI0KQojZGVmaW5lIGFzX2NoYXI4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBjaGFyOCkKI2RlZmluZSBhc19jaGFyMTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGNoYXIxNikKCiNkZWZpbmUgYXNfdWNoYXIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVjaGFyKQojZGVmaW5lIGFzX3VjaGFyMih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXIyKQojZGVmaW5lIGFzX3VjaGFyMyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXIzKQojZGVmaW5lIGFzX3VjaGFyNCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXI0KQojZGVmaW5lIGFzX3VjaGFyOCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWNoYXI4KQojZGVmaW5lIGFzX3VjaGFyMTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVjaGFyMTYpCgojZGVmaW5lIGFzX3Nob3J0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBzaG9ydCkKI2RlZmluZSBhc19zaG9ydDIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0MikKI2RlZmluZSBhc19zaG9ydDMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0MykKI2RlZmluZSBhc19zaG9ydDQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0NCkKI2RlZmluZSBhc19zaG9ydDgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNob3J0OCkKI2RlZmluZSBhc19zaG9ydDE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBzaG9ydDE2KQoKI2RlZmluZSBhc191c2hvcnQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVzaG9ydCkKI2RlZmluZSBhc191c2hvcnQyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1c2hvcnQyKQojZGVmaW5lIGFzX3VzaG9ydDMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVzaG9ydDMpCiNkZWZpbmUgYXNfdXNob3J0NCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdXNob3J0NCkKI2RlZmluZSBhc191c2hvcnQ4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1c2hvcnQ4KQojZGVmaW5lIGFzX3VzaG9ydDE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1c2hvcnQxNikKCiNkZWZpbmUgYXNfaW50KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnQpCiNkZWZpbmUgYXNfaW50Mih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaW50MikKI2RlZmluZSBhc19pbnQzKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBpbnQzKQojZGVmaW5lIGFzX2ludDQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGludDQpCiNkZWZpbmUgYXNfaW50OCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaW50OCkKI2RlZmluZSBhc19pbnQxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaW50MTYpCgojZGVmaW5lIGFzX3VpbnQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVpbnQpCiNkZWZpbmUgYXNfdWludDIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVpbnQyKQojZGVmaW5lIGFzX3VpbnQzKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1aW50MykKI2RlZmluZSBhc191aW50NCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWludDQpCiNkZWZpbmUgYXNfdWludDgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVpbnQ4KQojZGVmaW5lIGFzX3VpbnQxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWludDE2KQoKI2RlZmluZSBhc19sb25nKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBsb25nKQojZGVmaW5lIGFzX2xvbmcyKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBsb25nMikKI2RlZmluZSBhc19sb25nMyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgbG9uZzMpCiNkZWZpbmUgYXNfbG9uZzQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGxvbmc0KQojZGVmaW5lIGFzX2xvbmc4KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBsb25nOCkKI2RlZmluZSBhc19sb25nMTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGxvbmcxNikKCiNkZWZpbmUgYXNfdWxvbmcoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVsb25nKQojZGVmaW5lIGFzX3Vsb25nMih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmcyKQojZGVmaW5lIGFzX3Vsb25nMyh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmczKQojZGVmaW5lIGFzX3Vsb25nNCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmc0KQojZGVmaW5lIGFzX3Vsb25nOCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgdWxvbmc4KQojZGVmaW5lIGFzX3Vsb25nMTYoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHVsb25nMTYpCgojZGVmaW5lIGFzX2Zsb2F0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBmbG9hdCkKI2RlZmluZSBhc19mbG9hdDIoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0MikKI2RlZmluZSBhc19mbG9hdDMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0MykKI2RlZmluZSBhc19mbG9hdDQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0NCkKI2RlZmluZSBhc19mbG9hdDgoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGZsb2F0OCkKI2RlZmluZSBhc19mbG9hdDE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBmbG9hdDE2KQoKI2lmZGVmIGNsX2tocl9mcDY0CiNkZWZpbmUgYXNfZG91YmxlKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBkb3VibGUpCiNkZWZpbmUgYXNfZG91YmxlMih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZG91YmxlMikKI2RlZmluZSBhc19kb3VibGUzKHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBkb3VibGUzKQojZGVmaW5lIGFzX2RvdWJsZTQoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGRvdWJsZTQpCiNkZWZpbmUgYXNfZG91YmxlOCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZG91YmxlOCkKI2RlZmluZSBhc19kb3VibGUxNih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgZG91YmxlMTYpCiNlbmRpZiAvLyBjbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CiNkZWZpbmUgYXNfaGFsZih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaGFsZikKI2RlZmluZSBhc19oYWxmMih4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaGFsZjIpCiNkZWZpbmUgYXNfaGFsZjMoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIGhhbGYzKQojZGVmaW5lIGFzX2hhbGY0KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBoYWxmNCkKI2RlZmluZSBhc19oYWxmOCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaGFsZjgpCiNkZWZpbmUgYXNfaGFsZjE2KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCBoYWxmMTYpCiNlbmRpZiAvLyBjbF9raHJfZnAxNgoKI2RlZmluZSBhc19zaXplX3QoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHNpemVfdCkKI2RlZmluZSBhc19wdHJkaWZmX3QoeCkgX19idWlsdGluX2FzdHlwZSgoeCksIHB0cmRpZmZfdCkKI2RlZmluZSBhc19pbnRwdHJfdCh4KSBfX2J1aWx0aW5fYXN0eXBlKCh4KSwgaW50cHRyX3QpCiNkZWZpbmUgYXNfdWludHB0cl90KHgpIF9fYnVpbHRpbl9hc3R5cGUoKHgpLCB1aW50cHRyX3QpCgovLyBDKysgZm9yIE9wZW5DTCAtIF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2UKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykKdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4gc3RydWN0IF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2UgeyB1c2luZyB0eXBlID0gX1RwOyB9Owp0ZW1wbGF0ZSA8dHlwZW5hbWUgX1RwPiBzdHJ1Y3QgX19yZW1vdmVfYWRkcmVzc19zcGFjZTxfX2dlbmVyaWMgX1RwPiB7CiAgdXNpbmcgdHlwZSA9IF9UcDsKfTsKdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4gc3RydWN0IF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2U8X19nbG9iYWwgX1RwPiB7CiAgdXNpbmcgdHlwZSA9IF9UcDsKfTsKdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4gc3RydWN0IF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2U8X19wcml2YXRlIF9UcD4gewogIHVzaW5nIHR5cGUgPSBfVHA7Cn07CnRlbXBsYXRlIDx0eXBlbmFtZSBfVHA+IHN0cnVjdCBfX3JlbW92ZV9hZGRyZXNzX3NwYWNlPF9fbG9jYWwgX1RwPiB7CiAgdXNpbmcgdHlwZSA9IF9UcDsKfTsKdGVtcGxhdGUgPHR5cGVuYW1lIF9UcD4gc3RydWN0IF9fcmVtb3ZlX2FkZHJlc3Nfc3BhY2U8X19jb25zdGFudCBfVHA+IHsKICB1c2luZyB0eXBlID0gX1RwOwp9OwojZW5kaWYKCi8vIE9wZW5DTCB2MS4xIHM2LjksIHYxLjIvMi4wIHM2LjEwIC0gRnVuY3Rpb24gcXVhbGlmaWVycwoKI2RlZmluZSBfX2tlcm5lbF9leGVjKFgsIHR5cGVuKSBfX2tlcm5lbCBcCglfX2F0dHJpYnV0ZV9fKCh3b3JrX2dyb3VwX3NpemVfaGludChYLCAxLCAxKSkpIFwKCV9fYXR0cmlidXRlX18oKHZlY190eXBlX2hpbnQodHlwZW4pKSkKCiNkZWZpbmUga2VybmVsX2V4ZWMoWCwgdHlwZW4pIF9fa2VybmVsIFwKCV9fYXR0cmlidXRlX18oKHdvcmtfZ3JvdXBfc2l6ZV9oaW50KFgsIDEsIDEpKSkgXAoJX19hdHRyaWJ1dGVfXygodmVjX3R5cGVfaGludCh0eXBlbikpKQoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQovLyBPcGVuQ0wgdjEuMiBzNi4xMi4xMywgdjIuMCBzNi4xMy4xMyAtIHByaW50ZgoKaW50IHByaW50ZihfX2NvbnN0YW50IGNvbnN0IGNoYXIqIHN0LCAuLi4pIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSk7CiNlbmRpZgoKI2lmZGVmIGNsX2ludGVsX2RldmljZV9zaWRlX2F2Y19tb3Rpb25fZXN0aW1hdGlvbgoKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SXzE2eDE2X0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfTUFKT1JfMTZ4OF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SXzh4MTZfSU5URUwgMHgyCiNkZWZpbmUgQ0xLX0FWQ19NRV9NQUpPUl84eDhfSU5URUwgMHgzCgojZGVmaW5lIENMS19BVkNfTUVfTUlOT1JfOHg4X0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfTUlOT1JfOHg0X0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfTUlOT1JfNHg4X0lOVEVMIDB4MgojZGVmaW5lIENMS19BVkNfTUVfTUlOT1JfNHg0X0lOVEVMIDB4MwoKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SX0ZPUldBUkRfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9NQUpPUl9CQUNLV0FSRF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX01BSk9SX0JJRElSRUNUSU9OQUxfSU5URUwgMHgyCgojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfQUxMX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfMTZ4MTZfSU5URUwgMHg3RQojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfMTZ4OF9JTlRFTCAweDdECiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS184eDE2X0lOVEVMIDB4N0IKI2RlZmluZSBDTEtfQVZDX01FX1BBUlRJVElPTl9NQVNLXzh4OF9JTlRFTCAweDc3CiNkZWZpbmUgQ0xLX0FWQ19NRV9QQVJUSVRJT05fTUFTS184eDRfSU5URUwgMHg2RgojZGVmaW5lIENMS19BVkNfTUVfUEFSVElUSU9OX01BU0tfNHg4X0lOVEVMIDB4NUYKI2RlZmluZSBDTEtfQVZDX01FX1BBUlRJVElPTl9NQVNLXzR4NF9JTlRFTCAweDNGCgojZGVmaW5lIENMS19BVkNfTUVfU0xJQ0VfVFlQRV9QUkVEX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfU0xJQ0VfVFlQRV9CUFJFRF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX1NMSUNFX1RZUEVfSU5UUkFfSU5URUwgMHgyCgojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19FWEhBVVNUSVZFX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19TTUFMTF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfVElOWV9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfRVhUUkFfVElOWV9JTlRFTCAweDMKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfRElBTU9ORF9JTlRFTCAweDQKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfTEFSR0VfRElBTU9ORF9JTlRFTCAweDUKI2RlZmluZSBDTEtfQVZDX01FX1NFQVJDSF9XSU5ET1dfUkVTRVJWRUQwX0lOVEVMIDB4NgojZGVmaW5lIENMS19BVkNfTUVfU0VBUkNIX1dJTkRPV19SRVNFUlZFRDFfSU5URUwgMHg3CiNkZWZpbmUgQ0xLX0FWQ19NRV9TRUFSQ0hfV0lORE9XX0NVU1RPTV9JTlRFTCAweDgKCiNkZWZpbmUgQ0xLX0FWQ19NRV9TQURfQURKVVNUX01PREVfTk9ORV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX1NBRF9BREpVU1RfTU9ERV9IQUFSX0lOVEVMIDB4MgoKI2RlZmluZSBDTEtfQVZDX01FX1NVQlBJWEVMX01PREVfSU5URUdFUl9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX1NVQlBJWEVMX01PREVfSFBFTF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX1NVQlBJWEVMX01PREVfUVBFTF9JTlRFTCAweDMKCiNkZWZpbmUgQ0xLX0FWQ19NRV9DT1NUX1BSRUNJU0lPTl9RUEVMX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfQ09TVF9QUkVDSVNJT05fSFBFTF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX0NPU1RfUFJFQ0lTSU9OX1BFTF9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX0NPU1RfUFJFQ0lTSU9OX0RQRUxfSU5URUwgMHgzCgojZGVmaW5lIENMS19BVkNfTUVfQklESVJfV0VJR0hUX1FVQVJURVJfSU5URUwgMHgxMAojZGVmaW5lIENMS19BVkNfTUVfQklESVJfV0VJR0hUX1RISVJEX0lOVEVMIDB4MTUKI2RlZmluZSBDTEtfQVZDX01FX0JJRElSX1dFSUdIVF9IQUxGX0lOVEVMIDB4MjAKI2RlZmluZSBDTEtfQVZDX01FX0JJRElSX1dFSUdIVF9UV09fVEhJUkRfSU5URUwgMHgyQgojZGVmaW5lIENMS19BVkNfTUVfQklESVJfV0VJR0hUX1RIUkVFX1FVQVJURVJfSU5URUwgMHgzMAoKI2RlZmluZSBDTEtfQVZDX01FX0JPUkRFUl9SRUFDSEVEX0xFRlRfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9CT1JERVJfUkVBQ0hFRF9SSUdIVF9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX0JPUkRFUl9SRUFDSEVEX1RPUF9JTlRFTCAweDQKI2RlZmluZSBDTEtfQVZDX01FX0JPUkRFUl9SRUFDSEVEX0JPVFRPTV9JTlRFTCAweDgKCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV8xNngxNl9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBXzh4OF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBXzR4NF9JTlRFTCAweDIKCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLX1BBUlRJVElPTl8xNngxNl9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfUEFSVElUSU9OXzh4OF9JTlRFTCAweDQwMDAKCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzE2eDE2X0ZPUldBUkRfRU5BQkxFX0lOVEVMICgweDEgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzE2eDE2X0JBQ0tXQVJEX0VOQUJMRV9JTlRFTCAoMHgyIDw8IDI0KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS18xNngxNl9EVUFMX0VOQUJMRV9JTlRFTCAoMHgzIDw8IDI0KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfRk9SV0FSRF9FTkFCTEVfSU5URUwgKDB4NTUgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF9CQUNLV0FSRF9FTkFCTEVfSU5URUwgKDB4QUEgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF9EVUFMX0VOQUJMRV9JTlRFTCAoMHhGRiA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzBfRk9SV0FSRF9FTkFCTEVfSU5URUwgKDB4MSA8PCAyNCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzBfQkFDS1dBUkRfRU5BQkxFX0lOVEVMICgweDIgPDwgMjQpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF8xX0ZPUldBUkRfRU5BQkxFX0lOVEVMICgweDEgPDwgMjYpCiNkZWZpbmUgQ0xLX0FWQ19NRV9TS0lQX0JMT0NLXzh4OF8xX0JBQ0tXQVJEX0VOQUJMRV9JTlRFTCAoMHgyIDw8IDI2KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfMl9GT1JXQVJEX0VOQUJMRV9JTlRFTCAoMHgxIDw8IDI4KQojZGVmaW5lIENMS19BVkNfTUVfU0tJUF9CTE9DS184eDhfMl9CQUNLV0FSRF9FTkFCTEVfSU5URUwgKDB4MiA8PCAyOCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzNfRk9SV0FSRF9FTkFCTEVfSU5URUwgKDB4MSA8PCAzMCkKI2RlZmluZSBDTEtfQVZDX01FX1NLSVBfQkxPQ0tfOHg4XzNfQkFDS1dBUkRfRU5BQkxFX0lOVEVMICgweDIgPDwgMzApCgojZGVmaW5lIENMS19BVkNfTUVfQkxPQ0tfQkFTRURfU0tJUF80eDRfSU5URUwgMHgwMAojZGVmaW5lIENMS19BVkNfTUVfQkxPQ0tfQkFTRURfU0tJUF84eDhfSU5URUwgMHg4MAoKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBX0xVTUFfUEFSVElUSU9OX01BU0tfQUxMX0lOVEVMIDB4MAojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTFVNQV9QQVJUSVRJT05fTUFTS18xNngxNl9JTlRFTCAweDYKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBX0xVTUFfUEFSVElUSU9OX01BU0tfOHg4X0lOVEVMIDB4NQojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTFVNQV9QQVJUSVRJT05fTUFTS180eDRfSU5URUwgMHgzCgojZGVmaW5lIENMS19BVkNfTUVfSU5UUkFfTkVJR0hCT1JfTEVGVF9NQVNLX0VOQUJMRV9JTlRFTCAweDYwCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV9ORUlHSEJPUl9VUFBFUl9NQVNLX0VOQUJMRV9JTlRFTCAweDEwCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRSQV9ORUlHSEJPUl9VUFBFUl9SSUdIVF9NQVNLX0VOQUJMRV9JTlRFTCAweDgKI2RlZmluZSBDTEtfQVZDX01FX0lOVFJBX05FSUdIQk9SX1VQUEVSX0xFRlRfTUFTS19FTkFCTEVfSU5URUwgMHg0CgojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9WRVJUSUNBTF9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfSE9SSVpPTlRBTF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfRENfSU5URUwgMHgyCiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX0RJQUdPTkFMX0RPV05fTEVGVF9JTlRFTCAweDMKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfRElBR09OQUxfRE9XTl9SSUdIVF9JTlRFTCAweDQKI2RlZmluZSBDTEtfQVZDX01FX0xVTUFfUFJFRElDVE9SX01PREVfUExBTkVfSU5URUwgMHg0CiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX1ZFUlRJQ0FMX1JJR0hUX0lOVEVMIDB4NQojZGVmaW5lIENMS19BVkNfTUVfTFVNQV9QUkVESUNUT1JfTU9ERV9IT1JJWk9OVEFMX0RPV05fSU5URUwgMHg2CiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX1ZFUlRJQ0FMX0xFRlRfSU5URUwgMHg3CiNkZWZpbmUgQ0xLX0FWQ19NRV9MVU1BX1BSRURJQ1RPUl9NT0RFX0hPUklaT05UQUxfVVBfSU5URUwgMHg4CiNkZWZpbmUgQ0xLX0FWQ19NRV9DSFJPTUFfUFJFRElDVE9SX01PREVfRENfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9DSFJPTUFfUFJFRElDVE9SX01PREVfSE9SSVpPTlRBTF9JTlRFTCAweDEKI2RlZmluZSBDTEtfQVZDX01FX0NIUk9NQV9QUkVESUNUT1JfTU9ERV9WRVJUSUNBTF9JTlRFTCAweDIKI2RlZmluZSBDTEtfQVZDX01FX0NIUk9NQV9QUkVESUNUT1JfTU9ERV9QTEFORV9JTlRFTCAweDMKCiNkZWZpbmUgQ0xLX0FWQ19NRV9GUkFNRV9GT1JXQVJEX0lOVEVMIDB4MQojZGVmaW5lIENMS19BVkNfTUVfRlJBTUVfQkFDS1dBUkRfSU5URUwgMHgyCiNkZWZpbmUgQ0xLX0FWQ19NRV9GUkFNRV9EVUFMX0lOVEVMIDB4MwoKI2RlZmluZSBDTEtfQVZDX01FX0lOVEVSTEFDRURfU0NBTl9UT1BfRklFTERfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19NRV9JTlRFUkxBQ0VEX1NDQU5fQk9UVE9NX0ZJRUxEX0lOVEVMIDB4MQoKI2RlZmluZSBDTEtfQVZDX01FX0lOSVRJQUxJWkVfSU5URUwgMHgwCgojZGVmaW5lIENMS19BVkNfSU1FX1BBWUxPQURfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX1JFRl9QQVlMT0FEX0lOSVRJQUxJWkVfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19TSUNfUEFZTE9BRF9JTklUSUFMSVpFX0lOVEVMIDB4MAoKI2RlZmluZSBDTEtfQVZDX0lNRV9SRVNVTFRfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX1JFRl9SRVNVTFRfSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX1NJQ19SRVNVTFRfSU5JVElBTElaRV9JTlRFTCAweDAKCiNkZWZpbmUgQ0xLX0FWQ19JTUVfUkVTVUxUX1NJTkdMRV9SRUZFUkVOQ0VfU1RSRUFNT1VUX0lOSVRJQUxJWkVfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19JTUVfUkVTVUxUX1NJTkdMRV9SRUZFUkVOQ0VfU1RSRUFNSU5fSU5JVElBTElaRV9JTlRFTCAweDAKI2RlZmluZSBDTEtfQVZDX0lNRV9SRVNVTFRfRFVBTF9SRUZFUkVOQ0VfU1RSRUFNT1VUX0lOSVRJQUxJWkVfSU5URUwgMHgwCiNkZWZpbmUgQ0xLX0FWQ19JTUVfUkVTVUxUX0RVQUxfUkVGRVJFTkNFX1NUUkVBTUlOX0lOSVRJQUxJWkVfSU5URUwgMHgwCgojZW5kaWYgLy8gY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uCgovLyBEaXNhYmxlIGFueSBleHRlbnNpb25zIHdlIG1heSBoYXZlIGVuYWJsZWQgcHJldmlvdXNseS4KI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGFsbCA6IGRpc2FibGUKCiNlbmRpZiAvL19PUEVOQ0xfQkFTRV9IXwoAcG1taW50cmluLmgAczM5MGludHJpbi5oAHN0ZGF0b21pYy5oAHN0ZGJvb2wuaAB1aW50cmludHJpbi5oAC8qPT09LS0tLSB2ZWNpbnRyaW4uaCAtIFZlY3RvciBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZiBkZWZpbmVkKF9fczM5MHhfXykgJiYgZGVmaW5lZChfX1ZFQ19fKQoKI2RlZmluZSBfX0FUVFJTX2FpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKI2RlZmluZSBfX0FUVFJTX28gX19hdHRyaWJ1dGVfXygoX19vdmVybG9hZGFibGVfXykpCiNkZWZpbmUgX19BVFRSU19vX2FpIF9fYXR0cmlidXRlX18oKF9fb3ZlcmxvYWRhYmxlX18sIF9fYWx3YXlzX2lubGluZV9fKSkKCiNkZWZpbmUgX19jb25zdGFudChQQVJNKSBcCiAgX19hdHRyaWJ1dGVfXygoX19lbmFibGVfaWZfXyAoKFBBUk0pID09IChQQVJNKSwgXAogICAgICJhcmd1bWVudCBtdXN0IGJlIGEgY29uc3RhbnQgaW50ZWdlciIpKSkKI2RlZmluZSBfX2NvbnN0YW50X3JhbmdlKFBBUk0sIExPVywgSElHSCkgXAogIF9fYXR0cmlidXRlX18oKF9fZW5hYmxlX2lmX18gKChQQVJNKSA+PSAoTE9XKSAmJiAoUEFSTSkgPD0gKEhJR0gpLCBcCiAgICAgImFyZ3VtZW50IG11c3QgYmUgYSBjb25zdGFudCBpbnRlZ2VyIGZyb20gIiAjTE9XICIgdG8gIiAjSElHSCkpKQojZGVmaW5lIF9fY29uc3RhbnRfcG93Ml9yYW5nZShQQVJNLCBMT1csIEhJR0gpIFwKICBfX2F0dHJpYnV0ZV9fKChfX2VuYWJsZV9pZl9fICgoUEFSTSkgPj0gKExPVykgJiYgKFBBUk0pIDw9IChISUdIKSAmJiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChQQVJNKSAmICgoUEFSTSkgLSAxKSkgPT0gMCwgXAogICAgICJhcmd1bWVudCBtdXN0IGJlIGEgY29uc3RhbnQgcG93ZXIgb2YgMiBmcm9tICIgI0xPVyAiIHRvICIgI0hJR0gpKSkKCi8qLS0gX19sY2JiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmV4dGVybiBfX0FUVFJTX28gdW5zaWduZWQgaW50Cl9fbGNiYihjb25zdCB2b2lkICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CgojZGVmaW5lIF9fbGNiYihYLCBZKSAoKF9fdHlwZW9mX18oKF9fbGNiYikoKFgpLCAoWSkpKSkgXAogIF9fYnVpbHRpbl9zMzkwX2xjYmIoKFgpLCBfX2J1aWx0aW5fY29uc3RhbnRfcCgoWSkpPyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICgoWSkgPT0gNjQgPyAwIDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDEyOCA/IDEgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMjU2ID8gMiA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSA1MTIgPyAzIDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDEwMjQgPyA0IDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDIwNDggPyA1IDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDQwOTYgPyA2IDogMCkgOiAwKSkKCi8qLS0gdmVjX2V4dHJhY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHNpZ25lZCBjaGFyCnZlY19leHRyYWN0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMTVdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBjaGFyCnZlY19leHRyYWN0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMTVdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBjaGFyCnZlY19leHRyYWN0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiAxNV07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHNpZ25lZCBzaG9ydAp2ZWNfZXh0cmFjdChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIGludCBfX2luZGV4KSB7CiAgcmV0dXJuIF9fdmVjW19faW5kZXggJiA3XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdW5zaWduZWQgc2hvcnQKdmVjX2V4dHJhY3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgN107Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHVuc2lnbmVkIHNob3J0CnZlY19leHRyYWN0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgN107Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHNpZ25lZCBpbnQKdmVjX2V4dHJhY3QoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDNdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBpbnQKdmVjX2V4dHJhY3QoX192ZWN0b3IgX19ib29sIGludCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDNdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBpbnQKdmVjX2V4dHJhY3QoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgM107Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHNpZ25lZCBsb25nIGxvbmcKdmVjX2V4dHJhY3QoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDFdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2V4dHJhY3QoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDFdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2V4dHJhY3QoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjLCBpbnQgX19pbmRleCkgewogIHJldHVybiBfX3ZlY1tfX2luZGV4ICYgMV07Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBmbG9hdAp2ZWNfZXh0cmFjdChfX3ZlY3RvciBmbG9hdCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDNdOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgZG91YmxlCnZlY19leHRyYWN0KF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywgaW50IF9faW5kZXgpIHsKICByZXR1cm4gX192ZWNbX19pbmRleCAmIDFdOwp9CgovKi0tIHZlY19pbnNlcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfaW5zZXJ0KHNpZ25lZCBjaGFyIF9fc2NhbGFyLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYywgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgMTVdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19pbnNlcnQodW5zaWduZWQgY2hhciBfX3NjYWxhciwgX192ZWN0b3IgX19ib29sIGNoYXIgX192ZWMsIGludCBfX2luZGV4KSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX25ld3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fdmVjOwogIF9fbmV3dmVjW19faW5kZXggJiAxNV0gPSAodW5zaWduZWQgY2hhcilfX3NjYWxhcjsKICByZXR1cm4gX19uZXd2ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2luc2VydCh1bnNpZ25lZCBjaGFyIF9fc2NhbGFyLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAxNV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfaW5zZXJ0KHNpZ25lZCBzaG9ydCBfX3NjYWxhciwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiA3XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2luc2VydCh1bnNpZ25lZCBzaG9ydCBfX3NjYWxhciwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fdmVjLAogICAgICAgICAgIGludCBfX2luZGV4KSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19uZXd2ZWMgPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX192ZWM7CiAgX19uZXd2ZWNbX19pbmRleCAmIDddID0gKHVuc2lnbmVkIHNob3J0KV9fc2NhbGFyOwogIHJldHVybiBfX25ld3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2luc2VydCh1bnNpZ25lZCBzaG9ydCBfX3NjYWxhciwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMsCiAgICAgICAgICAgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgN10gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2luc2VydChzaWduZWQgaW50IF9fc2NhbGFyLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjW19faW5kZXggJiAzXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19pbnNlcnQodW5zaWduZWQgaW50IF9fc2NhbGFyLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjLCBpbnQgX19pbmRleCkgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX25ld3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX192ZWM7CiAgX19uZXd2ZWNbX19pbmRleCAmIDNdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fbmV3dmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2luc2VydCh1bnNpZ25lZCBpbnQgX19zY2FsYXIsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgM10gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2luc2VydChzaWduZWQgbG9uZyBsb25nIF9fc2NhbGFyLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLAogICAgICAgICAgIGludCBfX2luZGV4KSB7CiAgX192ZWNbX19pbmRleCAmIDFdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2luc2VydCh1bnNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgaW50IF9faW5kZXgpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19uZXd2ZWMgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmVjOwogIF9fbmV3dmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX25ld3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19pbnNlcnQodW5zaWduZWQgbG9uZyBsb25nIF9fc2NhbGFyLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfaW5zZXJ0KGZsb2F0IF9fc2NhbGFyLCBfX3ZlY3RvciBmbG9hdCBfX3ZlYywgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2luc2VydChkb3VibGUgX19zY2FsYXIsIF9fdmVjdG9yIGRvdWJsZSBfX3ZlYywgaW50IF9faW5kZXgpIHsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCi8qLS0gdmVjX3Byb21vdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19wcm9tb3RlKHNpZ25lZCBjaGFyIF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9femVybyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcikwOwogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDE1XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcHJvbW90ZSh1bnNpZ25lZCBjaGFyIF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX196ZXJvID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpMDsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDE1XSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19wcm9tb3RlKHNpZ25lZCBzaG9ydCBfX3NjYWxhciwgaW50IF9faW5kZXgpIHsKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkwOwogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9femVybywgX196ZXJvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDddID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcHJvbW90ZSh1bnNpZ25lZCBzaG9ydCBfX3NjYWxhciwgaW50IF9faW5kZXgpIHsKICBjb25zdCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3plcm8gPSAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpMDsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9femVybywgX196ZXJvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEsIC0xLCAtMSwgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgN10gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3Byb21vdGUoc2lnbmVkIGludCBfX3NjYWxhciwgaW50IF9faW5kZXgpIHsKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgaW50IF9femVybyA9IChfX3ZlY3RvciBzaWduZWQgaW50KTA7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9femVybywgX196ZXJvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwgLTEsIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDNdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3Byb21vdGUodW5zaWduZWQgaW50IF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3plcm8gPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KTA7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEpOwogIF9fdmVjW19faW5kZXggJiAzXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcHJvbW90ZShzaWduZWQgbG9uZyBsb25nIF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpMDsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xLCAtMSk7CiAgX192ZWNbX19pbmRleCAmIDFdID0gX19zY2FsYXI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3Byb21vdGUodW5zaWduZWQgbG9uZyBsb25nIF9fc2NhbGFyLCBpbnQgX19pbmRleCkgewogIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3plcm8gPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKTA7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX196ZXJvLCBfX3plcm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xKTsKICBfX3ZlY1tfX2luZGV4ICYgMV0gPSBfX3NjYWxhcjsKICByZXR1cm4gX192ZWM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcHJvbW90ZShmbG9hdCBfX3NjYWxhciwgaW50IF9faW5kZXgpIHsKICBjb25zdCBfX3ZlY3RvciBmbG9hdCBfX3plcm8gPSAoX192ZWN0b3IgZmxvYXQpMC4wZjsKICBfX3ZlY3RvciBmbG9hdCBfX3ZlYyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9femVybywgX196ZXJvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSwgLTEpOwogIF9fdmVjW19faW5kZXggJiAzXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcHJvbW90ZShkb3VibGUgX19zY2FsYXIsIGludCBfX2luZGV4KSB7CiAgY29uc3QgX192ZWN0b3IgZG91YmxlIF9femVybyA9IChfX3ZlY3RvciBkb3VibGUpMC4wOwogIF9fdmVjdG9yIGRvdWJsZSBfX3ZlYyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9femVybywgX196ZXJvLCAtMSwgLTEpOwogIF9fdmVjW19faW5kZXggJiAxXSA9IF9fc2NhbGFyOwogIHJldHVybiBfX3ZlYzsKfQoKLyotLSB2ZWNfaW5zZXJ0X2FuZF96ZXJvIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcikwOwogIF9fdmVjWzddID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKTA7CiAgX192ZWNbN10gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkwOwogIF9fdmVjWzNdID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkwOwogIF9fdmVjWzNdID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KTA7CiAgX192ZWNbMV0gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkwOwogIF9fdmVjWzFdID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfaW5zZXJ0X2FuZF96ZXJvKGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKTA7CiAgX192ZWNbMF0gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fdmVjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykwOwogIF9fdmVjWzBdID0gKl9fcHRyOwogIHJldHVybiBfX3ZlYzsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19pbnNlcnRfYW5kX3plcm8oY29uc3QgZmxvYXQgKl9fcHRyKSB7CiAgX192ZWN0b3IgZmxvYXQgX192ZWMgPSAoX192ZWN0b3IgZmxvYXQpMC4wZjsKICBfX3ZlY1sxXSA9ICpfX3B0cjsKICByZXR1cm4gX192ZWM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2luc2VydF9hbmRfemVybyhjb25zdCBkb3VibGUgKl9fcHRyKSB7CiAgX192ZWN0b3IgZG91YmxlIF9fdmVjID0gKF9fdmVjdG9yIGRvdWJsZSkwLjA7CiAgX192ZWNbMF0gPSAqX19wdHI7CiAgcmV0dXJuIF9fdmVjOwp9CgovKi0tIHZlY19wZXJtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfcGVybShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wZXJtKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19wZXJtKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcGVybShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcGVybShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3Blcm0oX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcGVybShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3Blcm0oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92cGVybSgKICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfcGVybShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19wZXJtKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcGVybShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19wZXJtKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcGVybShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwKICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZwZXJtKAogICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19wZXJtKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsCiAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnBlcm0oCiAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX3Blcm1pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcGVybWkoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcGVybWkoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4KZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19wZXJtaShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgZG91YmxlCnZlY19wZXJtaShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCiNkZWZpbmUgdmVjX3Blcm1pKFgsIFksIFopICgoX190eXBlb2ZfXygodmVjX3Blcm1pKSgoWCksIChZKSwgKFopKSkpIFwKICBfX2J1aWx0aW5fczM5MF92cGRpKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShZKSwgXAogICAgICAgICAgICAgICAgICAgICAgKCgoWikgJiAyKSA8PCAxKSB8ICgoWikgJiAxKSkpCgovKi0tIHZlY19icGVybV91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfYnBlcm1fdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmJwZXJtKF9fYSwgX19iKTsKfQojZW5kaWYKCi8qLS0gdmVjX3JldmIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcmV2YihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgICAgICAgX19idWlsdGluX3MzOTBfdmxicmgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fdmVjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3JldmIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmxicmgoX192ZWMpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19yZXZiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3ZsYnJmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX192ZWMpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3JldmIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZsYnJmKF9fdmVjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmV2YihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKQogICAgICAgICBfX2J1aWx0aW5fczM5MF92bGJyZygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmVjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19yZXZiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bGJyZyhfX3ZlYyk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcmV2YihfX3ZlY3RvciBmbG9hdCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpCiAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3ZsYnJmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX192ZWMpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19yZXZiKF9fdmVjdG9yIGRvdWJsZSBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKQogICAgICAgICBfX2J1aWx0aW5fczM5MF92bGJyZygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmVjKTsKfQoKLyotLSB2ZWNfcmV2ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3JldmUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSB7IF9fdmVjWzE1XSwgX192ZWNbMTRdLCBfX3ZlY1sxM10sIF9fdmVjWzEyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzExXSwgX192ZWNbMTBdLCBfX3ZlY1s5XSwgX192ZWNbOF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY1s3XSwgX192ZWNbNl0sIF9fdmVjWzVdLCBfX3ZlY1s0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JldmUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgeyBfX3ZlY1sxNV0sIF9fdmVjWzE0XSwgX192ZWNbMTNdLCBfX3ZlY1sxMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzExXSwgX192ZWNbMTBdLCBfX3ZlY1s5XSwgX192ZWNbOF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY1szXSwgX192ZWNbMl0sIF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfcmV2ZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpIHsgX192ZWNbMTVdLCBfX3ZlY1sxNF0sIF9fdmVjWzEzXSwgX192ZWNbMTJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbMTFdLCBfX3ZlY1sxMF0sIF9fdmVjWzldLCBfX3ZlY1s4XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19yZXZlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KSB7IF9fdmVjWzddLCBfX3ZlY1s2XSwgX192ZWNbNV0sIF9fdmVjWzRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19yZXZlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkgeyBfX3ZlY1s3XSwgX192ZWNbNl0sIF9fdmVjWzVdLCBfX3ZlY1s0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfcmV2ZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkgeyBfX3ZlY1s3XSwgX192ZWNbNl0sIF9fdmVjWzVdLCBfX3ZlY1s0XSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY1szXSwgX192ZWNbMl0sIF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19yZXZlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpIHsgX192ZWNbM10sIF9fdmVjWzJdLCBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19yZXZlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KSB7IF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3JldmUoX192ZWN0b3IgX19ib29sIGludCBfX3ZlYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkgeyBfX3ZlY1szXSwgX192ZWNbMl0sIF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19yZXZlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpIHsgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmV2ZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykgeyBfX3ZlY1sxXSwgX192ZWNbMF0gfTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfcmV2ZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKSB7IF9fdmVjWzFdLCBfX3ZlY1swXSB9Owp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JldmUoX192ZWN0b3IgZmxvYXQgX192ZWMpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KSB7IF9fdmVjWzNdLCBfX3ZlY1syXSwgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JldmUoX192ZWN0b3IgZG91YmxlIF9fdmVjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpIHsgX192ZWNbMV0sIF9fdmVjWzBdIH07Cn0KCi8qLS0gdmVjX3NlbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgY2hhcilfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NlbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgY2hhcilfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc2VsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2VsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zZWwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3IgX19ib29sIHNob3J0KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fYyAmIF9fYikgfCAofl9fYyAmIF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX2MgJiBfX2IpIHwgKH5fX2MgJiBfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2VsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgaW50KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zZWwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBzaWduZWQgaW50KV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zZWwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgX19ib29sIGludClfX2MgJiBfX2IpIHwKICAgICAgICAgICh+KF9fdmVjdG9yIF9fYm9vbCBpbnQpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NlbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2MpIHsKICByZXR1cm4gKF9fYyAmIF9fYikgfCAofl9fYyAmIF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoX19jICYgX19iKSB8ICh+X19jICYgX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zZWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19jICYgX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NlbChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2VsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYykgewogIHJldHVybiAoKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2MgJiBfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc2VsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuICgoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19jICYgX19iKSB8CiAgICAgICAgICAofihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYyAmIF9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zZWwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIChfX2MgJiBfX2IpIHwgKH5fX2MgJiBfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NlbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKF9fYyAmIF9fYikgfCAofl9fYyAmIF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2VsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gKCgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYikgfAogICAgICAgICAgKH4oX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYyAmIF9fYSkpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NlbChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpKChfX2MgJiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYikgfAogICAgICAgICAgICAgICAgICAgICAgICAgICh+X19jICYgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NlbChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgX192ZWN0b3IgX19ib29sIGludCBfX2MpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hOwogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fY2MgPSAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYzsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KSgoX19jYyAmIF9fYmMpIHwgKH5fX2NjICYgX19hYykpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zZWwoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwKICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpKChfX2MgJiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYikgfAogICAgICAgICAgICAgICAgICAgICAgICAgKH5fX2MgJiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NlbChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLAogICAgICAgIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19jKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYTsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iOwogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2NjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2M7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpKChfX2NjICYgX19iYykgfCAofl9fY2MgJiBfX2FjKSk7Cn0KCi8qLS0gdmVjX2dhdGhlcl9lbGVtZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2dhdGhlcl9lbGVtZW50KF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBzaWduZWQgaW50ICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgX192ZWNbX19pbmRleF0gPSAqKGNvbnN0IHNpZ25lZCBpbnQgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZ2F0aGVyX2VsZW1lbnQoX192ZWN0b3IgX19ib29sIGludCBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCB1bnNpZ25lZCBpbnQgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICBfX3ZlY1tfX2luZGV4XSA9ICooY29uc3QgdW5zaWduZWQgaW50ICopKAogICAgKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKTsKICByZXR1cm4gX192ZWM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2dhdGhlcl9lbGVtZW50KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgX192ZWNbX19pbmRleF0gPSAqKGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfZ2F0aGVyX2VsZW1lbnQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKikoCiAgICAoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pOwogIHJldHVybiBfX3ZlYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICBfX3ZlY1tfX2luZGV4XSA9ICooY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICopKAogICAgKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKTsKICByZXR1cm4gX192ZWM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfZ2F0aGVyX2VsZW1lbnQoX192ZWN0b3IgZmxvYXQgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBmbG9hdCAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIF9fdmVjW19faW5kZXhdID0gKihjb25zdCBmbG9hdCAqKSgKICAgIChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSk7CiAgcmV0dXJuIF9fdmVjOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19nYXRoZXJfZWxlbWVudChfX3ZlY3RvciBkb3VibGUgX192ZWMsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBjb25zdCBkb3VibGUgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICBfX3ZlY1tfX2luZGV4XSA9ICooY29uc3QgZG91YmxlICopKAogICAgKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKTsKICByZXR1cm4gX192ZWM7Cn0KCi8qLS0gdmVjX3NjYXR0ZXJfZWxlbWVudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBzaWduZWQgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICBzaWduZWQgaW50ICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgKihzaWduZWQgaW50ICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICAqKHVuc2lnbmVkIGludCAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zY2F0dGVyX2VsZW1lbnQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICAqKHVuc2lnbmVkIGludCAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zY2F0dGVyX2VsZW1lbnQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogICooc2lnbmVkIGxvbmcgbG9uZyAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zY2F0dGVyX2VsZW1lbnQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgKih1bnNpZ25lZCBsb25nIGxvbmcgKikoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKSA9CiAgICBfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc2NhdHRlcl9lbGVtZW50KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0ciwgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAxKSB7CiAgKih1bnNpZ25lZCBsb25nIGxvbmcgKikoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0W19faW5kZXhdKSA9CiAgICBfX3ZlY1tfX2luZGV4XTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3NjYXR0ZXJfZWxlbWVudChfX3ZlY3RvciBmbG9hdCBfX3ZlYywKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgZmxvYXQgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICAqKGZsb2F0ICopKChjaGFyICopX19wdHIgKyBfX29mZnNldFtfX2luZGV4XSkgPQogICAgX192ZWNbX19pbmRleF07Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zY2F0dGVyX2VsZW1lbnQoX192ZWN0b3IgZG91YmxlIF9fdmVjLAogICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX29mZnNldCwKICAgICAgICAgICAgICAgICAgICBkb3VibGUgKl9fcHRyLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICAqKGRvdWJsZSAqKSgoY2hhciAqKV9fcHRyICsgX19vZmZzZXRbX19pbmRleF0pID0KICAgIF9fdmVjW19faW5kZXhdOwp9CgovKi0tIHZlY194bCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgY2hhcikpOwogIHJldHVybiBWOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkpOwogIHJldHVybiBWOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkpOwogIHJldHVybiBWOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgaW50KSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGludCkpOwogIHJldHVybiBWOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY194bChsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKSk7CiAgcmV0dXJuIFY7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykpOwogIHJldHVybiBWOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3hsKGxvbmcgX19vZmZzZXQsIGNvbnN0IGZsb2F0ICpfX3B0cikgewogIF9fdmVjdG9yIGZsb2F0IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgZmxvYXQpKTsKICByZXR1cm4gVjsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfeGwobG9uZyBfX29mZnNldCwgY29uc3QgZG91YmxlICpfX3B0cikgewogIF9fdmVjdG9yIGRvdWJsZSBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIGRvdWJsZSkpOwogIHJldHVybiBWOwp9CgovKi0tIHZlY194bGQyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgY2hhcikpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfeGxkMihsb25nIF9fb2Zmc2V0LCBjb25zdCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSk7CiAgcmV0dXJuIFY7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IFY7CiAgX19idWlsdGluX21lbWNweSgmViwgKChjb25zdCBjaGFyICopX19wdHIgKyBfX29mZnNldCksCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGludCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3hsZDIobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGludCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY194bGQyKGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY194bGQyKGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY194bGQyKGxvbmcgX19vZmZzZXQsIGNvbnN0IGRvdWJsZSAqX19wdHIpIHsKICBfX3ZlY3RvciBkb3VibGUgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBkb3VibGUpKTsKICByZXR1cm4gVjsKfQoKLyotLSB2ZWNfeGx3NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgY2hhcikpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY194bHc0KGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY194bHc0KGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgc2hvcnQpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3hsdzQobG9uZyBfX29mZnNldCwgY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkpOwogIHJldHVybiBWOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY194bHc0KGxvbmcgX19vZmZzZXQsIGNvbnN0IHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBWOwogIF9fYnVpbHRpbl9tZW1jcHkoJlYsICgoY29uc3QgY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBpbnQpKTsKICByZXR1cm4gVjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY194bHc0KGxvbmcgX19vZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgVjsKICBfX2J1aWx0aW5fbWVtY3B5KCZWLCAoKGNvbnN0IGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKTsKICByZXR1cm4gVjsKfQoKLyotLSB2ZWNfeHN0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGNoYXIpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgY2hhcikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciBzaWduZWQgc2hvcnQpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsIHNpemVvZihfX3ZlY3RvciBzaWduZWQgaW50KSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIGludCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3QoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgbG9uZyBfX29mZnNldCwKICAgICAgICBzaWduZWQgbG9uZyBsb25nICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgbG9uZyBfX29mZnNldCwKICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdChfX3ZlY3RvciBmbG9hdCBfX3ZlYywgbG9uZyBfX29mZnNldCwgZmxvYXQgKl9fcHRyKSB7CiAgX192ZWN0b3IgZmxvYXQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLCBzaXplb2YoX192ZWN0b3IgZmxvYXQpKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdChfX3ZlY3RvciBkb3VibGUgX192ZWMsIGxvbmcgX19vZmZzZXQsIGRvdWJsZSAqX19wdHIpIHsKICBfX3ZlY3RvciBkb3VibGUgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLCBzaXplb2YoX192ZWN0b3IgZG91YmxlKSk7Cn0KCi8qLS0gdmVjX3hzdGQyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdGQyKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBzaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGNoYXIpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgY2hhciAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdGQyKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIHNob3J0ICpfX3B0cikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIHNob3J0KSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdGQyKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIGludCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgaW50IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBpbnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCBsb25nIF9fb2Zmc2V0LCB1bnNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgaW50IFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgbG9uZyBfX29mZnNldCwKICAgICAgICAgIHNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3RkMihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsIGxvbmcgX19vZmZzZXQsCiAgICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwKICAgICAgICAgICAgICAgICAgIHNpemVvZihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfeHN0ZDIoX192ZWN0b3IgZG91YmxlIF9fdmVjLCBsb25nIF9fb2Zmc2V0LCBkb3VibGUgKl9fcHRyKSB7CiAgX192ZWN0b3IgZG91YmxlIFYgPSBfX3ZlYzsKICBfX2J1aWx0aW5fbWVtY3B5KCgoY2hhciAqKV9fcHRyICsgX19vZmZzZXQpLCAmViwgc2l6ZW9mKF9fdmVjdG9yIGRvdWJsZSkpOwp9CgovKi0tIHZlY194c3R3NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3R3NChfX3ZlY3RvciBzaWduZWQgY2hhciBfX3ZlYywgbG9uZyBfX29mZnNldCwgc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBjaGFyKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIGxvbmcgX19vZmZzZXQsIHVuc2lnbmVkIGNoYXIgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgY2hhcikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3R3NChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBzaG9ydCAqX19wdHIpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY194c3R3NChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgc2hvcnQgKl9fcHRyKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgViA9IF9fdmVjOwogIF9fYnVpbHRpbl9tZW1jcHkoKChjaGFyICopX19wdHIgKyBfX29mZnNldCksICZWLAogICAgICAgICAgICAgICAgICAgc2l6ZW9mKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsIGxvbmcgX19vZmZzZXQsIHNpZ25lZCBpbnQgKl9fcHRyKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsIHNpemVvZihfX3ZlY3RvciBzaWduZWQgaW50KSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3hzdHc0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX3ZlYywgbG9uZyBfX29mZnNldCwgdW5zaWduZWQgaW50ICpfX3B0cikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBWID0gX192ZWM7CiAgX19idWlsdGluX21lbWNweSgoKGNoYXIgKilfX3B0ciArIF9fb2Zmc2V0KSwgJlYsCiAgICAgICAgICAgICAgICAgICBzaXplb2YoX192ZWN0b3IgdW5zaWduZWQgaW50KSk7Cn0KCi8qLS0gdmVjX2xvYWRfYm5kcnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2xvYWRfYm5kcnkoY29uc3Qgc2lnbmVkIGNoYXIgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbG9hZF9ibmRyeShjb25zdCB1bnNpZ25lZCBjaGFyICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbG9hZF9ibmRyeShjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2xvYWRfYm5kcnkoY29uc3QgdW5zaWduZWQgc2hvcnQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbG9hZF9ibmRyeShjb25zdCBzaWduZWQgaW50ICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbG9hZF9ibmRyeShjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbG9hZF9ibmRyeShjb25zdCBzaWduZWQgbG9uZyBsb25nICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbG9hZF9ibmRyeShjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCB1bnNpZ25lZCBzaG9ydCBfX2xlbikKICBfX2NvbnN0YW50X3BvdzJfcmFuZ2UoX19sZW4sIDY0LCA0MDk2KTsKCiNpZiBfX0FSQ0hfXyA+PSAxMgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGZsb2F0CnZlY19sb2FkX2JuZHJ5KGNvbnN0IGZsb2F0ICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CiNlbmRpZgoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX2xvYWRfYm5kcnkoY29uc3QgZG91YmxlICpfX3B0ciwgdW5zaWduZWQgc2hvcnQgX19sZW4pCiAgX19jb25zdGFudF9wb3cyX3JhbmdlKF9fbGVuLCA2NCwgNDA5Nik7CgojZGVmaW5lIHZlY19sb2FkX2JuZHJ5KFgsIFkpICgoX190eXBlb2ZfXygodmVjX2xvYWRfYm5kcnkpKChYKSwgKFkpKSkpIFwKICBfX2J1aWx0aW5fczM5MF92bGJiKChYKSwgKChZKSA9PSA2NCA/IDAgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMTI4ID8gMSA6IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChZKSA9PSAyNTYgPyAyIDogXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKFkpID09IDUxMiA/IDMgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMTAyNCA/IDQgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gMjA0OCA/IDUgOiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoWSkgPT0gNDA5NiA/IDYgOiAtMSkpKQoKLyotLSB2ZWNfbG9hZF9sZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2xvYWRfbGVuKGNvbnN0IHNpZ25lZCBjaGFyICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbG9hZF9sZW4oY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19sb2FkX2xlbihjb25zdCBzaWduZWQgc2hvcnQgKl9fcHRyLCB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2xvYWRfbGVuKGNvbnN0IHVuc2lnbmVkIHNob3J0ICpfX3B0ciwgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbG9hZF9sZW4oY29uc3Qgc2lnbmVkIGludCAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19sb2FkX2xlbihjb25zdCB1bnNpZ25lZCBpbnQgKl9fcHRyLCB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbG9hZF9sZW4oY29uc3Qgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX2xlbihjb25zdCB1bnNpZ25lZCBsb25nIGxvbmcgKl9fcHRyLCB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92bGwoX19sZW4sIF9fcHRyKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19sb2FkX2xlbihjb25zdCBmbG9hdCAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdmxsKF9fbGVuLCBfX3B0cik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2xvYWRfbGVuKGNvbnN0IGRvdWJsZSAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9zMzkwX3ZsbChfX2xlbiwgX19wdHIpOwp9CgovKi0tIHZlY19sb2FkX2xlbl9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2xvYWRfbGVuX3IoY29uc3QgdW5zaWduZWQgY2hhciAqX19wdHIsIHVuc2lnbmVkIGludCBfX2xlbikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92bHJsKF9fbGVuLCBfX3B0cik7Cn0KI2VuZGlmCgovKi0tIHZlY19zdG9yZV9sZW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMsIHNpZ25lZCBjaGFyICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc3RvcmVfbGVuKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX192ZWMsIHVuc2lnbmVkIGNoYXIgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fdmVjLCBzaWduZWQgc2hvcnQgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192ZWMsIHVuc2lnbmVkIHNob3J0ICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgdm9pZAp2ZWNfc3RvcmVfbGVuKF9fdmVjdG9yIHNpZ25lZCBpbnQgX192ZWMsIHNpZ25lZCBpbnQgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdmVjLCB1bnNpZ25lZCBpbnQgKl9fcHRyLAogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBfX2xlbikgewogIF9fYnVpbHRpbl9zMzkwX3ZzdGwoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjLCBfX2xlbiwgX19wdHIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX3ZlYywgc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsIHVuc2lnbmVkIGxvbmcgbG9uZyAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSB2b2lkCnZlY19zdG9yZV9sZW4oX192ZWN0b3IgZmxvYXQgX192ZWMsIGZsb2F0ICpfX3B0ciwKICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RsKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX3ZlYywgX19sZW4sIF9fcHRyKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIHZvaWQKdmVjX3N0b3JlX2xlbihfX3ZlY3RvciBkb3VibGUgX192ZWMsIGRvdWJsZSAqX19wdHIsCiAgICAgICAgICAgICAgdW5zaWduZWQgaW50IF9fbGVuKSB7CiAgX19idWlsdGluX3MzOTBfdnN0bCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KCi8qLS0gdmVjX3N0b3JlX2xlbl9yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgdm9pZAp2ZWNfc3RvcmVfbGVuX3IoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3ZlYywgdW5zaWduZWQgY2hhciAqX19wdHIsCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgX19sZW4pIHsKICBfX2J1aWx0aW5fczM5MF92c3RybCgoX192ZWN0b3Igc2lnbmVkIGNoYXIpX192ZWMsIF9fbGVuLCBfX3B0cik7Cn0KI2VuZGlmCgovKi0tIHZlY19sb2FkX3BhaXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19sb2FkX3BhaXIoc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbG9hZF9wYWlyKHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoX19hLCBfX2IpOwp9CgovKi0tIHZlY19nZW5tYXNrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19nZW5tYXNrKHVuc2lnbmVkIHNob3J0IF9fbWFzaykKICBfX2NvbnN0YW50KF9fbWFzaykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoCiAgICBfX21hc2sgJiAweDgwMDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4NDAwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgyMDAwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDEwMDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDgwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwNDAwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAyMDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDEwMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMDgwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwNDAgPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDAyMCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMDEwID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwMDggPyAweGZmIDogMCwKICAgIF9fbWFzayAmIDB4MDAwNCA/IDB4ZmYgOiAwLAogICAgX19tYXNrICYgMHgwMDAyID8gMHhmZiA6IDAsCiAgICBfX21hc2sgJiAweDAwMDEgPyAweGZmIDogMCk7Cn0KCi8qLS0gdmVjX2dlbm1hc2tzXyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2dlbm1hc2tzXzgodW5zaWduZWQgY2hhciBfX2ZpcnN0LCB1bnNpZ25lZCBjaGFyIF9fbGFzdCkKICBfX2NvbnN0YW50KF9fZmlyc3QpIF9fY29uc3RhbnQoX19sYXN0KSB7CiAgdW5zaWduZWQgY2hhciBfX2JpdDEgPSBfX2ZpcnN0ICYgNzsKICB1bnNpZ25lZCBjaGFyIF9fYml0MiA9IF9fbGFzdCAmIDc7CiAgdW5zaWduZWQgY2hhciBfX21hc2sxID0gKHVuc2lnbmVkIGNoYXIpKDFVIDw8ICg3IC0gX19iaXQxKSA8PCAxKSAtIDE7CiAgdW5zaWduZWQgY2hhciBfX21hc2syID0gKHVuc2lnbmVkIGNoYXIpKDFVIDw8ICg3IC0gX19iaXQyKSkgLSAxOwogIHVuc2lnbmVkIGNoYXIgX192YWx1ZSA9IChfX2JpdDEgPD0gX19iaXQyID8KICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSAmIH5fX21hc2syIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSB8IH5fX21hc2syKTsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX192YWx1ZTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2dlbm1hc2tzXzE2KHVuc2lnbmVkIGNoYXIgX19maXJzdCwgdW5zaWduZWQgY2hhciBfX2xhc3QpCiAgX19jb25zdGFudChfX2ZpcnN0KSBfX2NvbnN0YW50KF9fbGFzdCkgewogIHVuc2lnbmVkIGNoYXIgX19iaXQxID0gX19maXJzdCAmIDE1OwogIHVuc2lnbmVkIGNoYXIgX19iaXQyID0gX19sYXN0ICYgMTU7CiAgdW5zaWduZWQgc2hvcnQgX19tYXNrMSA9ICh1bnNpZ25lZCBzaG9ydCkoMVUgPDwgKDE1IC0gX19iaXQxKSA8PCAxKSAtIDE7CiAgdW5zaWduZWQgc2hvcnQgX19tYXNrMiA9ICh1bnNpZ25lZCBzaG9ydCkoMVUgPDwgKDE1IC0gX19iaXQyKSkgLSAxOwogIHVuc2lnbmVkIHNob3J0IF9fdmFsdWUgPSAoX19iaXQxIDw9IF9fYml0MiA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxICYgfl9fbWFzazIgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSB8IH5fX21hc2syKTsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fdmFsdWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZ2VubWFza3NfMzIodW5zaWduZWQgY2hhciBfX2ZpcnN0LCB1bnNpZ25lZCBjaGFyIF9fbGFzdCkKICBfX2NvbnN0YW50KF9fZmlyc3QpIF9fY29uc3RhbnQoX19sYXN0KSB7CiAgdW5zaWduZWQgY2hhciBfX2JpdDEgPSBfX2ZpcnN0ICYgMzE7CiAgdW5zaWduZWQgY2hhciBfX2JpdDIgPSBfX2xhc3QgJiAzMTsKICB1bnNpZ25lZCBpbnQgX19tYXNrMSA9ICgxVSA8PCAoMzEgLSBfX2JpdDEpIDw8IDEpIC0gMTsKICB1bnNpZ25lZCBpbnQgX19tYXNrMiA9ICgxVSA8PCAoMzEgLSBfX2JpdDIpKSAtIDE7CiAgdW5zaWduZWQgaW50IF9fdmFsdWUgPSAoX19iaXQxIDw9IF9fYml0MiA/CiAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSAmIH5fX21hc2syIDoKICAgICAgICAgICAgICAgICAgICAgICAgICBfX21hc2sxIHwgfl9fbWFzazIpOwogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fdmFsdWU7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZ2VubWFza3NfNjQodW5zaWduZWQgY2hhciBfX2ZpcnN0LCB1bnNpZ25lZCBjaGFyIF9fbGFzdCkKICBfX2NvbnN0YW50KF9fZmlyc3QpIF9fY29uc3RhbnQoX19sYXN0KSB7CiAgdW5zaWduZWQgY2hhciBfX2JpdDEgPSBfX2ZpcnN0ICYgNjM7CiAgdW5zaWduZWQgY2hhciBfX2JpdDIgPSBfX2xhc3QgJiA2MzsKICB1bnNpZ25lZCBsb25nIGxvbmcgX19tYXNrMSA9ICgxVUxMIDw8ICg2MyAtIF9fYml0MSkgPDwgMSkgLSAxOwogIHVuc2lnbmVkIGxvbmcgbG9uZyBfX21hc2syID0gKDFVTEwgPDwgKDYzIC0gX19iaXQyKSkgLSAxOwogIHVuc2lnbmVkIGxvbmcgbG9uZyBfX3ZhbHVlID0gKF9fYml0MSA8PSBfX2JpdDIgPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fbWFzazEgJiB+X19tYXNrMiA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19tYXNrMSB8IH5fX21hc2syKTsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3ZhbHVlOwp9CgovKi0tIHZlY19zcGxhdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3BsYXQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMTUpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3BsYXQoX192ZWN0b3IgX19ib29sIGNoYXIgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMTUpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcGxhdChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDE1KSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NwbGF0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCA3KSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc3BsYXQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDcpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcGxhdChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCA3KSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3BsYXQoX192ZWN0b3Igc2lnbmVkIGludCBfX3ZlYywgaW50IF9faW5kZXgpCiAgX19jb25zdGFudF9yYW5nZShfX2luZGV4LCAwLCAzKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcGxhdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3ZlY1tfX2luZGV4XTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcGxhdChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMykgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fdmVjW19faW5kZXhdOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcGxhdChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDEpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX192ZWNbX19pbmRleF07Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NwbGF0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpCiAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmVjW19faW5kZXhdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcGxhdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fdmVjW19faW5kZXhdOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3NwbGF0KF9fdmVjdG9yIGZsb2F0IF9fdmVjLCBpbnQgX19pbmRleCkKICBfX2NvbnN0YW50X3JhbmdlKF9faW5kZXgsIDAsIDMpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fdmVjW19faW5kZXhdOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zcGxhdChfX3ZlY3RvciBkb3VibGUgX192ZWMsIGludCBfX2luZGV4KQogIF9fY29uc3RhbnRfcmFuZ2UoX19pbmRleCwgMCwgMSkgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKV9fdmVjW19faW5kZXhdOwp9CgovKi0tIHZlY19zcGxhdF9zKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NwbGF0X3M4KHNpZ25lZCBjaGFyIF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcGxhdF9zMTYoc2lnbmVkIHNob3J0IF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NwbGF0X3MzMihzaWduZWQgc2hvcnQgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkoc2lnbmVkIGludClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NwbGF0X3M2NChzaWduZWQgc2hvcnQgX19zY2FsYXIpCiAgX19jb25zdGFudChfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoc2lnbmVkIGxvbmcpX19zY2FsYXI7Cn0KCi8qLS0gdmVjX3NwbGF0X3UqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcGxhdF91OCh1bnNpZ25lZCBjaGFyIF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3BsYXRfdTE2KHVuc2lnbmVkIHNob3J0IF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcGxhdF91MzIoc2lnbmVkIHNob3J0IF9fc2NhbGFyKQogIF9fY29uc3RhbnQoX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludCkoc2lnbmVkIGludClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3BsYXRfdTY0KHNpZ25lZCBzaG9ydCBfX3NjYWxhcikKICBfX2NvbnN0YW50KF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKHNpZ25lZCBsb25nIGxvbmcpX19zY2FsYXI7Cn0KCi8qLS0gdmVjX3NwbGF0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcGxhdHMoc2lnbmVkIGNoYXIgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcGxhdHModW5zaWduZWQgY2hhciBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcGxhdHMoc2lnbmVkIHNob3J0IF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcGxhdHModW5zaWduZWQgc2hvcnQgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcGxhdHMoc2lnbmVkIGludCBfX3NjYWxhcikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX3NjYWxhcjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcGxhdHModW5zaWduZWQgaW50IF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19zY2FsYXI7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NwbGF0cyhzaWduZWQgbG9uZyBsb25nIF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fc2NhbGFyOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NwbGF0cyh1bnNpZ25lZCBsb25nIGxvbmcgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3NjYWxhcjsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcGxhdHMoZmxvYXQgX19zY2FsYXIpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fc2NhbGFyOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zcGxhdHMoZG91YmxlIF9fc2NhbGFyKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19zY2FsYXI7Cn0KCi8qLS0gdmVjX2V4dGVuZF9zNjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2V4dGVuZF9zNjQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2FbN10sIF9fYVsxNV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19leHRlbmRfczY0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpKF9fYVszXSwgX19hWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZXh0ZW5kX3M2NChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZykoX19hWzFdLCBfX2FbM10pOwp9CgovKi0tIHZlY19tZXJnZWggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbWVyZ2VoKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikoCiAgICBfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0sIF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSwKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX21lcmdlaChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKAogICAgX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdLCBfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10sCiAgICBfX2FbNF0sIF9fYls0XSwgX19hWzVdLCBfX2JbNV0sIF9fYVs2XSwgX19iWzZdLCBfX2FbN10sIF9fYls3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21lcmdlaChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKAogICAgX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdLCBfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10sCiAgICBfX2FbNF0sIF9fYls0XSwgX19hWzVdLCBfX2JbNV0sIF9fYVs2XSwgX19iWzZdLCBfX2FbN10sIF9fYls3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWVyZ2VoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkoCiAgICBfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0sIF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfbWVyZ2VoKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoCiAgICBfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0sIF9fYVsyXSwgX19iWzJdLCBfX2FbM10sIF9fYlszXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tZXJnZWgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSgKICAgIF9fYVswXSwgX19iWzBdLCBfX2FbMV0sIF9fYlsxXSwgX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWVyZ2VoKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkoX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfbWVyZ2VoKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tZXJnZWgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KShfX2FbMF0sIF9fYlswXSwgX19hWzFdLCBfX2JbMV0pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19tZXJnZWgoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2FbMF0sIF9fYlswXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX21lcmdlaChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYVswXSwgX19iWzBdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tZXJnZWgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2FbMF0sIF9fYlswXSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbWVyZ2VoKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCkoX19hWzBdLCBfX2JbMF0sIF9fYVsxXSwgX19iWzFdKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbWVyZ2VoKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoX19hWzBdLCBfX2JbMF0pOwp9CgovKi0tIHZlY19tZXJnZWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbWVyZ2VsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikoCiAgICBfX2FbOF0sIF9fYls4XSwgX19hWzldLCBfX2JbOV0sIF9fYVsxMF0sIF9fYlsxMF0sIF9fYVsxMV0sIF9fYlsxMV0sCiAgICBfX2FbMTJdLCBfX2JbMTJdLCBfX2FbMTNdLCBfX2JbMTNdLCBfX2FbMTRdLCBfX2JbMTRdLCBfX2FbMTVdLCBfX2JbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX21lcmdlbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKAogICAgX19hWzhdLCBfX2JbOF0sIF9fYVs5XSwgX19iWzldLCBfX2FbMTBdLCBfX2JbMTBdLCBfX2FbMTFdLCBfX2JbMTFdLAogICAgX19hWzEyXSwgX19iWzEyXSwgX19hWzEzXSwgX19iWzEzXSwgX19hWzE0XSwgX19iWzE0XSwgX19hWzE1XSwgX19iWzE1XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21lcmdlbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKAogICAgX19hWzhdLCBfX2JbOF0sIF9fYVs5XSwgX19iWzldLCBfX2FbMTBdLCBfX2JbMTBdLCBfX2FbMTFdLCBfX2JbMTFdLAogICAgX19hWzEyXSwgX19iWzEyXSwgX19hWzEzXSwgX19iWzEzXSwgX19hWzE0XSwgX19iWzE0XSwgX19hWzE1XSwgX19iWzE1XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWVyZ2VsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkoCiAgICBfX2FbNF0sIF9fYls0XSwgX19hWzVdLCBfX2JbNV0sIF9fYVs2XSwgX19iWzZdLCBfX2FbN10sIF9fYls3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfbWVyZ2VsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoCiAgICBfX2FbNF0sIF9fYls0XSwgX19hWzVdLCBfX2JbNV0sIF9fYVs2XSwgX19iWzZdLCBfX2FbN10sIF9fYls3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tZXJnZWwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KSgKICAgIF9fYVs0XSwgX19iWzRdLCBfX2FbNV0sIF9fYls1XSwgX19hWzZdLCBfX2JbNl0sIF9fYVs3XSwgX19iWzddKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWVyZ2VsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkoX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfbWVyZ2VsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tZXJnZWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KShfX2FbMl0sIF9fYlsyXSwgX19hWzNdLCBfX2JbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19tZXJnZWwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKShfX2FbMV0sIF9fYlsxXSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX21lcmdlbChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYVsxXSwgX19iWzFdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tZXJnZWwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKShfX2FbMV0sIF9fYlsxXSk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbWVyZ2VsKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCkoX19hWzJdLCBfX2JbMl0sIF9fYVszXSwgX19iWzNdKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbWVyZ2VsKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoX19hWzFdLCBfX2JbMV0pOwp9CgovKi0tIHZlY19wYWNrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfcGFjayhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2E7CiAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikoCiAgICBfX2FjWzFdLCBfX2FjWzNdLCBfX2FjWzVdLCBfX2FjWzddLCBfX2FjWzldLCBfX2FjWzExXSwgX19hY1sxM10sIF9fYWNbMTVdLAogICAgX19iY1sxXSwgX19iY1szXSwgX19iY1s1XSwgX19iY1s3XSwgX19iY1s5XSwgX19iY1sxMV0sIF9fYmNbMTNdLCBfX2JjWzE1XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19wYWNrKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2FjID0gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYTsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2JjID0gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKSgKICAgIF9fYWNbMV0sIF9fYWNbM10sIF9fYWNbNV0sIF9fYWNbN10sIF9fYWNbOV0sIF9fYWNbMTFdLCBfX2FjWzEzXSwgX19hY1sxNV0sCiAgICBfX2JjWzFdLCBfX2JjWzNdLCBfX2JjWzVdLCBfX2JjWzddLCBfX2JjWzldLCBfX2JjWzExXSwgX19iY1sxM10sIF9fYmNbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFjayhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYTsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSgKICAgIF9fYWNbMV0sIF9fYWNbM10sIF9fYWNbNV0sIF9fYWNbN10sIF9fYWNbOV0sIF9fYWNbMTFdLCBfX2FjWzEzXSwgX19hY1sxNV0sCiAgICBfX2JjWzFdLCBfX2JjWzNdLCBfX2JjWzVdLCBfX2JjWzddLCBfX2JjWzldLCBfX2JjWzExXSwgX19iY1sxM10sIF9fYmNbMTVdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19wYWNrKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2FjID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2E7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYmMgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkoCiAgICBfX2FjWzFdLCBfX2FjWzNdLCBfX2FjWzVdLCBfX2FjWzddLAogICAgX19iY1sxXSwgX19iY1szXSwgX19iY1s1XSwgX19iY1s3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfcGFjayhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hYyA9IChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19hOwogIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKAogICAgX19hY1sxXSwgX19hY1szXSwgX19hY1s1XSwgX19hY1s3XSwKICAgIF9fYmNbMV0sIF9fYmNbM10sIF9fYmNbNV0sIF9fYmNbN10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcGFjayhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2E7CiAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkoCiAgICBfX2FjWzFdLCBfX2FjWzNdLCBfX2FjWzVdLCBfX2FjWzddLAogICAgX19iY1sxXSwgX19iY1szXSwgX19iY1s1XSwgX19iY1s3XSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3BhY2soX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hOwogIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KV9fYjsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpKF9fYWNbMV0sIF9fYWNbM10sIF9fYmNbMV0sIF9fYmNbM10pOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19wYWNrKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hYyA9IChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYTsKICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYmMgPSAoX192ZWN0b3IgX19ib29sIGludClfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2FjWzFdLCBfX2FjWzNdLCBfX2JjWzFdLCBfX2JjWzNdKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19wYWNrKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hOwogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2I7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpKF9fYWNbMV0sIF9fYWNbM10sIF9fYmNbMV0sIF9fYmNbM10pOwp9CgovKi0tIHZlY19wYWNrcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfcGFja3MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3BhY2tzKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcGFja3MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa3NmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BhY2tzKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcGFja3MoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa3NnKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19wYWNrcyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3BhY2tzX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19wYWNrc19jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrc2hzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFja3NfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNocyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfcGFja3NfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrc2ZzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BhY2tzX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2ZzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcGFja3NfY2MoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa3NncyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcGFja3NfY2MoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2dzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfcGFja3N1IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFja3N1KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX196ZXJvID0gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkwOwogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2goCiAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpKF9fYSA+PSBfX3plcm8pICYgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCkoX19iID49IF9femVybykgJiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfcGFja3N1KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wYWNrc3UoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgY29uc3QgX192ZWN0b3Igc2lnbmVkIGludCBfX3plcm8gPSAoX192ZWN0b3Igc2lnbmVkIGludCkwOwogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2YoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KShfX2EgPj0gX196ZXJvKSAmIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludCkoX19iID49IF9femVybykgJiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wYWNrc3UoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BhY2tzdShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBjb25zdCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9femVybyA9IChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKTA7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZygKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpKF9fYSA+PSBfX3plcm8pICYKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykoX19iID49IF9femVybykgJgogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BhY2tzdShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3BhY2tzdV9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3BhY2tzdV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBrbHNocyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19wYWNrc3VfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwa2xzZnMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BhY2tzdV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cGtsc2dzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfdW5wYWNraCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY191bnBhY2toKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBoYihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3VucGFja2goX192ZWN0b3IgX19ib29sIGNoYXIgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgICAgICAgX19idWlsdGluX3MzOTBfdnVwaGIoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfdW5wYWNraChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsaGIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfdW5wYWNraChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGhoKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3VucGFja2goX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSkgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92dXBoaCgoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfdW5wYWNraChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGhoKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3VucGFja2goX192ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwaGYoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfdW5wYWNraChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92dXBoZigoX192ZWN0b3Igc2lnbmVkIGludClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY191bnBhY2toKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGhmKF9fYSk7Cn0KCi8qLS0gdmVjX3VucGFja2wgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfdW5wYWNrbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY191bnBhY2tsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Z1cGxiKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3VucGFja2woX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnVwbGxiKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3VucGFja2woX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dXBsaHcoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfdW5wYWNrbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hKSB7CiAgcmV0dXJuICgoX192ZWN0b3IgX19ib29sIGludCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Z1cGxodygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3VucGFja2woX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGxsaChfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY191bnBhY2tsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGxmKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3VucGFja2woX192ZWN0b3IgX19ib29sIGludCBfX2EpIHsKICByZXR1cm4gKChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKQogICAgICAgICAgX19idWlsdGluX3MzOTBfdnVwbGYoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfdW5wYWNrbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z1cGxsZihfX2EpOwp9CgovKi0tIHZlY19jbXBlcSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZXEoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGVxKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBlcShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPT0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBlcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGVxKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGVxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGVxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID09IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGVxKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBlcShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBlcShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA9PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBlcShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPT0gX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGVxKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPT0gX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGVxKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA9PSBfX2IpOwp9CgovKi0tIHZlY19jbXBnZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZ2UoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPj0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NtcGdlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA+PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGdlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wZ2UoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGdlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID49IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGdlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA+PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBnZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBnZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKShfX2EgPj0gX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGdlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPj0gX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGdlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+PSBfX2IpOwp9CgovKi0tIHZlY19jbXBndCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZ3QoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wZ3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hID4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBndChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpKF9fYSA+IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wZ3QoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hID4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wZ3QoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBndChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19jbXBndChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGd0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+IF9fYik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBndChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hID4gX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGd0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA+IF9fYik7Cn0KCi8qLS0gdmVjX2NtcGxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBsZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA8PSBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY21wbGUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikoX19hIDw9IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wbGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBsZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbGUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPD0gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbGUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkoX19hIDw9IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGxlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDw9IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGxlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpKF9fYSA8PSBfX2IpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbGUoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA8PSBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbGUoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDw9IF9fYik7Cn0KCi8qLS0gdmVjX2NtcGx0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBsdChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpKF9fYSA8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBsdChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKShfX2EgPCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcGx0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkoX19hIDwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19jbXBsdChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KShfX2EgPCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBsdChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGx0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpKF9fYSA8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2NtcGx0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbHQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDwgX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2NtcGx0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KShfX2EgPCBfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfY21wbHQoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZykoX19hIDwgX19iKTsKfQoKLyotLSB2ZWNfYWxsX2VxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9lcShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZXEoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2VxKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX25lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmUoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25lKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLyotLSB2ZWNfYWxsX2dlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2IsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19iLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ2UoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9nZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2dlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8qLS0gdmVjX2FsbF9ndCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ndChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfZ3QoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2d0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX2xlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2EsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbGUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2xlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8qLS0gdmVjX2FsbF9sdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2IsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9sdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbHQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX2x0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX25nZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25nZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25nZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovKi0tIHZlY19hbGxfbmd0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmd0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaHNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uZ3QoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CgovKi0tIHZlY19hbGxfbmxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmxlKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVzYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA9PSAzOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbGxfbmxlKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZWRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8qLS0gdmVjX2FsbF9ubHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9ubHQoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25sdChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8qLS0gdmVjX2FsbF9uYW4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FsbF9uYW4oX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lzYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX25hbihfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lkYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMDsKfQoKLyotLSB2ZWNfYWxsX251bWVyaWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX251bWVyaWMoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZ0Y2lzYihfX2EsIDE1LCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPT0gMzsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYWxsX251bWVyaWMoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmdGNpZGIoX19hLCAxNSwgJl9fY2MpOwogIHJldHVybiBfX2NjID09IDM7Cn0KCi8qLS0gdmVjX2FueV9lcSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoX19hLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncyhfX2EsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZXEoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2VxKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjZXNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9lcShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjZWRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8qLS0gdmVjX2FueV9uZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoX19hLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncyhfX2EsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2VxZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjZXFncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNlcWdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25lKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjZXNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjZWRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8qLS0gdmVjX2FueV9nZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19iLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2IsIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2IsIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2dlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ2UoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZXNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9nZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVkYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovKi0tIHZlY19hbnlfZ3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicyhfX2EsIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19hLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocygoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19hLCAoX192ZWN0b3Igc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcygoX192ZWN0b3Igc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfZ3QoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2d0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaHNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ndChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGRicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8qLS0gdmVjX2FueV9sZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoYnMoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2EsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGhzKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2EsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKF9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19hLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncygoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncyhfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2xlKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxncygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbGUoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZXNicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVkYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovKi0tIHZlY19hbnlfbHQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hicygoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGJzKF9fYiwgKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGJzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoaHMoKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hocyhfX2IsIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGhzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsaHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGZzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZnMoKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hmcyhfX2IsIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZnMoX19iLCAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGxmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hncyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZjaGdzKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNoZ3MoX19iLCAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbHQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmNobGdzKF9fYiwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyA8PSAxOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92Y2hsZ3MoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgPD0gMTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X2x0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaHNicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9sdChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGRicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjIDw9IDE7Cn0KCi8qLS0gdmVjX2FueV9uZ2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZ2UoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZXNicyhfX2EsIF9fYiwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uZ2UoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLyotLSB2ZWNfYW55X25ndCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25ndChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hzYnMoX19hLCBfX2IsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmd0KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZmNoZGJzKF9fYSwgX19iLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQoKLyotLSB2ZWNfYW55X25sZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25sZShfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hlc2JzKF9fYiwgX19hLCAmX19jYyk7CiAgcmV0dXJuIF9fY2MgIT0gMDsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfYW55X25sZShfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaGVkYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovKi0tIHZlY19hbnlfbmx0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmx0KF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgaW50IF9fY2M7CiAgX19idWlsdGluX3MzOTBfdmZjaHNicyhfX2IsIF9fYSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9ubHQoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmY2hkYnMoX19iLCBfX2EsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovKi0tIHZlY19hbnlfbmFuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY19hbnlfbmFuKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmdGNpc2IoX19hLCAxNSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDM7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9uYW4oX192ZWN0b3IgZG91YmxlIF9fYSkgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmdGNpZGIoX19hLCAxNSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDM7Cn0KCi8qLS0gdmVjX2FueV9udW1lcmljIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9udW1lcmljKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIGludCBfX2NjOwogIF9fYnVpbHRpbl9zMzkwX3ZmdGNpc2IoX19hLCAxNSwgJl9fY2MpOwogIHJldHVybiBfX2NjICE9IDA7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX2FueV9udW1lcmljKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICBpbnQgX19jYzsKICBfX2J1aWx0aW5fczM5MF92ZnRjaWRiKF9fYSwgMTUsICZfX2NjKTsKICByZXR1cm4gX19jYyAhPSAwOwp9CgovKi0tIHZlY19hbmRjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfYW5kYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfYW5kYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfYW5kYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfYW5kYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfYW5kYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19hbmRjKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19hbmRjKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgJiB+X19iOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hICYgfl9fYjsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19hbmRjKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSAmIH5fX2I7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfYW5kYyhfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgIH4oX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2FuZGMoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKSgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICB+KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2FuZGMoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgJgogICAgICAgICAgICAgICAgICAgICAgICAgfihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19hbmRjKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hICYKICAgICAgICAgICAgICAgICAgICAgICAgIH4oX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCi8qLS0gdmVjX25vciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19ub3IoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbm9yKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19ub3IoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19ub3IoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19ub3IoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19ub3IoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbm9yKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19ub3IoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19ub3IoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19ub3IoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIHwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19ub3IoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgfCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX25vcihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSB8IF9fYik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbm9yKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdCl+KChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbm9yKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSl+KChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbm9yKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpfigoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSB8CiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX25vcihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKX4oKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQoKLyotLSB2ZWNfb3JjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19vcmMoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX29yYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19vcmMoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfb3JjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19vcmMoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfb3JjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX29yYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfb3JjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX29yYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX29yYyhfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19hIHwgfl9fYjsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfb3JjKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2EgfCB+X19iOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX29yYyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYSB8IH5fX2I7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19vcmMoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KSgoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSB8CiAgICAgICAgICAgICAgICAgICAgICAgIH4oX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfb3JjKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSkoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EgfAogICAgICAgICAgICAgICAgICAgICAgICAgfihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19iKTsKfQojZW5kaWYKCi8qLS0gdmVjX25hbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfbmFuZChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19uYW5kKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbmFuZChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX25hbmQoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbmFuZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX25hbmQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19uYW5kKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX25hbmQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19uYW5kKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19uYW5kKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSAmIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX25hbmQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hICYgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19uYW5kKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgJiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbmFuZChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpfigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbmFuZChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpfigoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKLyotLSB2ZWNfZXF2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19lcXYoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfZXF2KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZXF2KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZXF2KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2VxdihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2VxdihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2VxdihfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19lcXYoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19lcXYoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX2VxdihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gfihfX2EgXiBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19lcXYoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIH4oX19hIF4gX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19lcXYoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiB+KF9fYSBeIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19lcXYoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KX4oKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EgXgogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2VxdihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpfigoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSBeCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2IpOwp9CiNlbmRpZgoKLyotLSB2ZWNfY250bHogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY250bHooX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NudGx6KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpiKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbnRseihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY250bHooX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjbHpoKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY250bHooX192ZWN0b3Igc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NudGx6KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmNsemYoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19jbnRseihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y2x6ZygoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfY250bHooX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y2x6ZyhfX2EpOwp9CgovKi0tIHZlY19jbnR0eiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbnR0eihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY250dHooX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NudHR6KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbnR0eihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmN0emgoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbnR0eihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY250dHooX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Y3R6ZihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX2NudHR6KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjdHpnKChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19jbnR0eihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZjdHpnKF9fYSk7Cn0KCi8qLS0gdmVjX3BvcGNudCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3BvcGNudChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19wb3BjbnQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0YihfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcG9wY250KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3BvcGNudChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnBvcGN0aChfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3BvcGNudChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19wb3BjbnQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92cG9wY3RmKF9fYSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcG9wY250KF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwb3BjdGcoKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3BvcGNudChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zwb3BjdGcoX19hKTsKfQoKLyotLSB2ZWNfcmwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3JsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZlcmxsdmIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbHZiKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19ybChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92ZXJsbHZoKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3JsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZlcmxsdmgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19ybChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92ZXJsbHZmKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfcmwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbHZmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdmVybGx2ZygKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3JsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmVybGx2ZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3JsaSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19ybGkoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdmVybGxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JsaShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgdW5zaWduZWQgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmVybGxiKF9fYSwgKGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3JsaShfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZlcmxsaCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIChpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3JsaShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIHVuc2lnbmVkIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZlcmxsaChfX2EsIChpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcmxpKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92ZXJsbGYoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwgKGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3JsaShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCB1bnNpZ25lZCBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZXJsbGYoX19hLCAoaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3JsaShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdmVybGxnKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2EsIChpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19ybGkoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgdW5zaWduZWQgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmVybGxnKF9fYSwgKGludClfX2IpOwp9CgovKi0tIHZlY19ybF9tYXNrIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19ybF9tYXNrKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3JsX21hc2soX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgX19jb25zdGFudChfX2MpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3JsX21hc2soX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgX19jb25zdGFudChfX2MpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfcmxfbWFzayhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIF9fY29uc3RhbnQoX19jKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfcmxfbWFzayhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgdW5zaWduZWQgY2hhciBfX2MpIF9fY29uc3RhbnQoX19jKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19ybF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3JsX21hc2soX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgX19jKSBfX2NvbnN0YW50KF9fYyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfcmxfbWFzayhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICB1bnNpZ25lZCBjaGFyIF9fYykgX19jb25zdGFudChfX2MpOwoKI2RlZmluZSB2ZWNfcmxfbWFzayhYLCBZLCBaKSAoKF9fdHlwZW9mX18oKHZlY19ybF9tYXNrKSgoWCksIChZKSwgKFopKSkpIFwKICBfX2V4dGVuc2lvbl9fICh7IFwKICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19yZXM7IFwKICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX194ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFgpOyBcCiAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9feSA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShZKTsgXAogICAgc3dpdGNoIChzaXplb2YgKChYKVswXSkpIHsgXAogICAgY2FzZSAxOiBfX3JlcyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKSBfX2J1aWx0aW5fczM5MF92ZXJpbWIoIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9feCwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX194LCBcCiAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX3ksIChaKSk7IGJyZWFrOyBcCiAgICBjYXNlIDI6IF9fcmVzID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIF9fYnVpbHRpbl9zMzkwX3ZlcmltaCggXAogICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9feCwgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9feCwgXAogICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9feSwgKFopKTsgYnJlYWs7IFwKICAgIGNhc2UgNDogX19yZXMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19idWlsdGluX3MzOTBfdmVyaW1mKCBcCiAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9feCwgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX3gsIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX195LCAoWikpOyBicmVhazsgXAogICAgZGVmYXVsdDogX19yZXMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19idWlsdGluX3MzOTBfdmVyaW1nKCBcCiAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9feCwgKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX3gsIFwKICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX195LCAoWikpOyBicmVhazsgXAogICAgfSBfX3JlczsgfSkpCgovKi0tIHZlY19zbGwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zbGwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzbChfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzbChfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c2woX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zbGwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc2xsKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zbGwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zbGwoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zbGwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc2xsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzbCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zbGwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsbChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovKi0tIHZlY19zbGIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzbGIoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzbGIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zbGIoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NsYihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2xiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NsYihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zbGIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc2xiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZzbGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zbGIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBmbG9hdClfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zbGIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGRvdWJsZSlfX2J1aWx0aW5fczM5MF92c2xiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NsYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnNsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLyotLSB2ZWNfc2xkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc2xkKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zbGQoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2xkKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc2xkKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsZChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NsZChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zbGQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMTUpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zbGQoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NsZChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDE1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zbGQoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgojaWYgX19BUkNIX18gPj0gMTIKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBmbG9hdAp2ZWNfc2xkKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CiNlbmRpZgoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX3NsZChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAxNSk7CgojZGVmaW5lIHZlY19zbGQoWCwgWSwgWikgKChfX3R5cGVvZl9fKCh2ZWNfc2xkKSgoWCksIChZKSwgKFopKSkpIFwKICBfX2J1aWx0aW5fczM5MF92c2xkYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWSksIChaKSkpCgovKi0tIHZlY19zbGR3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zbGR3KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2xkdyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NsZHcoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zbGR3KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc2xkdyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NsZHcoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NsZHcoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCAzKTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zbGR3KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IsCiAgICAgICAgIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDMpOwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4KZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX3NsZHcoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgMyk7CgojZGVmaW5lIHZlY19zbGR3KFgsIFksIFopICgoX190eXBlb2ZfXygodmVjX3NsZHcpKChYKSwgKFkpLCAoWikpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZzbGRiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShZKSwgKFopICogNCkpCgovKi0tIHZlY19zbGRiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTMKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NsZGIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zbGRiKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc2xkYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NsZGIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zbGRiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc2xkYihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2xkYihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NsZGIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYiwKICAgICAgICAgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIGZsb2F0CnZlY19zbGRiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgZG91YmxlCnZlY19zbGRiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKI2RlZmluZSB2ZWNfc2xkYihYLCBZLCBaKSAoKF9fdHlwZW9mX18oKHZlY19zbGRiKSgoWCksIChZKSwgKFopKSkpIFwKICBfX2J1aWx0aW5fczM5MF92c2xkKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFkpLCAoWikpKQoKI2VuZGlmCgovKi0tIHZlY19zcmFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JhKF9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmEoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmEoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JhbChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JhbChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc3JhbChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNyYSgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmFsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovKi0tIHZlY19zcmFiIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JhYihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmFiKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNyYWIoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmFiKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JhYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JhYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JhYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JhYihfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmFiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JhYihfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWIoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmFiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYWIoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmFiKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JhYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19zcmFiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc3JhYihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZzcmFiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19zcmFiKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfc3JhYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnNyYWIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX3NybCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19zcmwoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNybChfX2EsIF9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcmwoX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNybChfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmwoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zcmwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19zcmwoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX3NybChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX3NybChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcKdmVjX3NybChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JsKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybCgKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19zcmwoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmwoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX3NyYiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JiKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zcmIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3JsYihfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyYihfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnNybGIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX3NyYihfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfc3JiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zcmIoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19zcmIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3JiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2J1aWx0aW5fczM5MF92c3JsYigKICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3NyYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc3JiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc3JiKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NyYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgZG91YmxlKV9fYnVpbHRpbl9zMzkwX3ZzcmxiKAogICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NyYihfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBkb3VibGUpX19idWlsdGluX3MzOTBfdnNybGIoCiAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX3NyZGIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfc3JkYihfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NyZGIoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19zcmRiKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfc3JkYihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NyZGIoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zcmRiKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19zcmRiKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3JkYihfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICBpbnQgX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19jLCAwLCA3KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgZmxvYXQKdmVjX3NyZGIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IsIGludCBfX2MpCiAgX19jb25zdGFudF9yYW5nZShfX2MsIDAsIDcpOwoKZXh0ZXJuIF9fQVRUUlNfbyBfX3ZlY3RvciBkb3VibGUKdmVjX3NyZGIoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgaW50IF9fYykKICBfX2NvbnN0YW50X3JhbmdlKF9fYywgMCwgNyk7CgojZGVmaW5lIHZlY19zcmRiKFgsIFksIFopICgoX190eXBlb2ZfXygodmVjX3NyZGIpKChYKSwgKFkpLCAoWikpKSkgXAogIF9fYnVpbHRpbl9zMzkwX3ZzcmQoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikoWSksIChaKSkpCgojZW5kaWYKCi8qLS0gdmVjX2FicyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19hYnMoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCAtX19hLCB2ZWNfY21wbHQoX19hLCAoX192ZWN0b3Igc2lnbmVkIGNoYXIpMCkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2FicyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCAtX19hLCB2ZWNfY21wbHQoX19hLCAoX192ZWN0b3Igc2lnbmVkIHNob3J0KTApKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfYWJzKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCAtX19hLCB2ZWNfY21wbHQoX19hLCAoX192ZWN0b3Igc2lnbmVkIGludCkwKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2FicyhfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgLV9fYSwgdmVjX2NtcGx0KF9fYSwgKF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcpMCkpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2FicyhfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZscHNiKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2FicyhfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbHBkYihfX2EpOwp9CgovKi0tIHZlY19uYWJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX25hYnMoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbG5zYihfX2EpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19uYWJzKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZsbmRiKF9fYSk7Cn0KCi8qLS0gdmVjX21heCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tYXgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hYywgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2FjLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21heChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWF4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWF4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYWMsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tYXgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYmMsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2FjLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21heChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21heChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYmMgPSAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19iYywgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21heChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19iLCBfX2FjLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWF4KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2IsIF9fYSwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWF4KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2JjLCBfX2EsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19tYXgoX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hYywgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX21heChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm1heHNiKF9fYSwgX19iLCAwKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbWF4KF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKI2lmIF9fQVJDSF9fID49IDEyCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWF4ZGIoX19hLCBfX2IsIDApOwojZWxzZQogIHJldHVybiB2ZWNfc2VsKF9fYiwgX19hLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKI2VuZGlmCn0KCi8qLS0gdmVjX21pbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19taW4oX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYiwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19taW4oX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2JjID0gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIGNoYXIpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYWMsIF9fYiwgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2IsIHZlY19jbXBndChfX2EsIF9fYikpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYWMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19hYywgX19iLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYiwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgc2hvcnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21pbihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2JjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWluKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWluKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hYyA9IChfX3ZlY3RvciBzaWduZWQgaW50KV9fYTsKICByZXR1cm4gdmVjX3NlbChfX2FjLCBfX2IsIHZlY19jbXBndChfX2FjLCBfX2IpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19taW4oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iOwogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iYywgdmVjX2NtcGd0KF9fYSwgX19iYykpOwp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2FjID0gKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19hYywgX19iLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21pbihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYiwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21pbihfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYmMgPSAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2I7CiAgcmV0dXJuIHZlY19zZWwoX19hLCBfX2JjLCB2ZWNfY21wZ3QoX19hLCBfX2JjKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21pbihfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nIF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYWMgPSAoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZylfX2E7CiAgcmV0dXJuIHZlY19zZWwoX19hYywgX19iLCB2ZWNfY21wZ3QoX19hYywgX19iKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWluKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYiwgdmVjX2NtcGd0KF9fYSwgX19iKSk7Cn0KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbWluKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgX19iKSB7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYmMgPSAoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKV9fYjsKICByZXR1cm4gdmVjX3NlbChfX2EsIF9fYmMsIHZlY19jbXBndChfX2EsIF9fYmMpKTsKfQoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19taW4oX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hYyA9IChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpX19hOwogIHJldHVybiB2ZWNfc2VsKF9fYWMsIF9fYiwgdmVjX2NtcGd0KF9fYWMsIF9fYikpOwp9CgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX21pbihfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm1pbnNiKF9fYSwgX19iLCAwKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbWluKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IpIHsKI2lmIF9fQVJDSF9fID49IDEyCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWluZGIoX19hLCBfX2IsIDApOwojZWxzZQogIHJldHVybiB2ZWNfc2VsKF9fYSwgX19iLCB2ZWNfY21wZ3QoX19hLCBfX2IpKTsKI2VuZGlmCn0KCi8qLS0gdmVjX2FkZF91MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hZGRfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFxKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfYWRkYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfYWRkYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFjY2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfYWRkYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YWNjaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfYWRkYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhY2NmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19hZGRjKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFjY2coX19hLCBfX2IpOwp9CgovKi0tIHZlY19hZGRjX3UxMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfYWRkY191MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YWNjcShfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2FkZGVfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hZGRlX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhY3EoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX2FkZGVjX3UxMjggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19hZGRlY191MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmFjY2NxKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19hdmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfYXZnKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdiKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19hdmcoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXZnaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2F2ZyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmF2Z2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nCnZlY19hdmcoX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdnKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfYXZnKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXZnbGIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfYXZnKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZhdmdsaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfYXZnKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmF2Z2xmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19hdmcoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92YXZnbGcoX19hLCBfX2IpOwp9CgovKi0tIHZlY19jaGVja3N1bSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jaGVja3N1bShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zja3NtKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfZ2Ztc3VtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2dmbXN1bShfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2dmbXN1bShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfZ2Ztc3VtKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWYoX19hLCBfX2IpOwp9CgovKi0tIHZlY19nZm1zdW1fMTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19nZm1zdW1fMTI4KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWcoX19hLCBfX2IpOwp9CgovKi0tIHZlY19nZm1zdW1fYWNjdW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZ2Ztc3VtX2FjY3VtKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmdmbWFiKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2dmbXN1bV9hY2N1bShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZnZm1haChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nCnZlY19nZm1zdW1fYWNjdW0oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZnZm1hZihfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfZ2Ztc3VtX2FjY3VtXzEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZ2Ztc3VtX2FjY3VtXzEyOChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLAogICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iLAogICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Z2ZtYWcoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX21sYWRkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tbGFkZChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19hICogKF9fdmVjdG9yIHNpZ25lZCBjaGFyKV9fYiArIChfX3ZlY3RvciBzaWduZWQgY2hhcilfX2M7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX21sYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWxhZGQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tbGFkZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19hICogKF9fdmVjdG9yIHNpZ25lZCBzaG9ydClfX2IgKyAoX192ZWN0b3Igc2lnbmVkIHNob3J0KV9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX21sYWRkKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWxhZGQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19hICogX19iICsgX19jOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tbGFkZChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYSAqIF9fYiArIF9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWxhZGQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYSAqIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYiArIChfX3ZlY3RvciBzaWduZWQgaW50KV9fYzsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tbGFkZChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2EgKiBfX2IgKyBfX2M7Cn0KCi8qLS0gdmVjX21oYWRkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19taGFkZChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFoYihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbWhhZGQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbGhiKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX21oYWRkKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWhoKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWhhZGQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbGhoKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19taGFkZChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFoZihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19taGFkZChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsaGYoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX21lYWRkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfbWVhZGQoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWViKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbWVhZGQoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWxlYihfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfbWVhZGQoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWVoKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX21lYWRkKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWFsZWgoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX21lYWRkKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWVmKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX21lYWRkKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWxlZihfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfbW9hZGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tb2FkZChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hb2IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tb2FkZChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbG9iKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tb2FkZChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hb2goX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbW9hZGQoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtYWxvaChfX2EsIF9fYiwgX19jKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbW9hZGQoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hb2YoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbW9hZGQoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1hbG9mKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19tdWxoIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgY2hhcgp2ZWNfbXVsaChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWhiKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfbXVsaChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1saGIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX211bGgoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWhoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX211bGgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1saGgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tdWxoKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWhmKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tdWxoKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1saGYoX19hLCBfX2IpOwp9CgovKi0tIHZlY19tdWxlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX211bGUoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1lYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19tdWxlKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxlYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX211bGUoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWVoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19tdWxlKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtbGVoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbXVsZShfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1lZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfbXVsZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZtbGVmKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfbXVsbyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19tdWxvKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Ztb2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfbXVsbyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1sb2IoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19tdWxvKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdm1vaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfbXVsbyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxvaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX211bG8oX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Ztb2YoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX211bG8oX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92bWxvZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX21zdW1fdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgojZGVmaW5lIHZlY19tc3VtX3UxMjgoWCwgWSwgWiwgVykgXAogICgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2J1aWx0aW5fczM5MF92bXNsZygoWCksIChZKSwgKFopLCAoVykpKTsKI2VuZGlmCgovKi0tIHZlY19zdWJfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3ViX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzcShfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3N1YmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3N1YmMoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzY2JpYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19zdWJjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzY2JpaChfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3ViYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzY2JpZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3ViYyhfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzY2JpZyhfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3N1YmNfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zdWJjX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzY2JpcShfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3N1YmVfdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zdWJlX3UxMjgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzYmlxKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19zdWJlY191MTI4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc3ViZWNfdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzYmNiaXEoX19hLCBfX2IsIF9fYyk7Cn0KCi8qLS0gdmVjX3N1bTIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc3VtMihfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3VtZ2goX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcKdmVjX3N1bTIoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3VtZ2YoX19hLCBfX2IpOwp9CgovKi0tIHZlY19zdW1fdTEyOCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zdW1fdTEyOChfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdW1xZihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3N1bV91MTI4KF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN1bXFnKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfc3VtNCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19zdW00KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3VtYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfc3VtNChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3VtaChfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX3Rlc3RfbWFzayAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnRtKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX3Rlc3RfbWFzayhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnRtKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Z0bSgoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBpbnQKdmVjX3Rlc3RfbWFzayhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgaW50CnZlY190ZXN0X21hc2soX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnRtKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92dG0oKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIGludAp2ZWNfdGVzdF9tYXNrKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnRtKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCi8qLS0gdmVjX21hZGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbWFkZChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgX192ZWN0b3IgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWFzYihfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbWFkZChfX3ZlY3RvciBkb3VibGUgX19hLCBfX3ZlY3RvciBkb3VibGUgX19iLCBfX3ZlY3RvciBkb3VibGUgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmbWFkYihfX2EsIF9fYiwgX19jKTsKfQoKLyotLSB2ZWNfbXN1YiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19tc3ViKF9fdmVjdG9yIGZsb2F0IF9fYSwgX192ZWN0b3IgZmxvYXQgX19iLCBfX3ZlY3RvciBmbG9hdCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtc3NiKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19tc3ViKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIF9fdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZtc2RiKF9fYSwgX19iLCBfX2MpOwp9CgovKi0tIHZlY19ubWFkZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19ubWFkZChfX3ZlY3RvciBmbG9hdCBfX2EsIF9fdmVjdG9yIGZsb2F0IF9fYiwgX192ZWN0b3IgZmxvYXQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3Zmbm1hc2IoX19hLCBfX2IsIF9fYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbm1hZGQoX192ZWN0b3IgZG91YmxlIF9fYSwgX192ZWN0b3IgZG91YmxlIF9fYiwgX192ZWN0b3IgZG91YmxlIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm5tYWRiKF9fYSwgX19iLCBfX2MpOwp9CiNlbmRpZgoKLyotLSB2ZWNfbm1zdWIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfbm1zdWIoX192ZWN0b3IgZmxvYXQgX19hLCBfX3ZlY3RvciBmbG9hdCBfX2IsIF9fdmVjdG9yIGZsb2F0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92Zm5tc3NiKF9fYSwgX19iLCBfX2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX25tc3ViKF9fdmVjdG9yIGRvdWJsZSBfX2EsIF9fdmVjdG9yIGRvdWJsZSBfX2IsIF9fdmVjdG9yIGRvdWJsZSBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZubXNkYihfX2EsIF9fYiwgX19jKTsKfQojZW5kaWYKCi8qLS0gdmVjX3NxcnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfc3FydChfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZzcXNiKF9fYSk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3NxcnQoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZnNxZGIoX19hKTsKfQoKLyotLSB2ZWNfbGQyZiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKLy8gVGhpcyBwcm90b3R5cGUgaXMgZGVwcmVjYXRlZC4Kc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfbGQyZihjb25zdCBmbG9hdCAqX19wdHIpIHsKICB0eXBlZGVmIGZsb2F0IF9fdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKCooY29uc3QgX192MmYzMiAqKV9fcHRyLCBfX3ZlY3RvciBkb3VibGUpOwp9CgovKi0tIHZlY19zdDJmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgdm9pZAp2ZWNfc3QyZihfX3ZlY3RvciBkb3VibGUgX19hLCBmbG9hdCAqX19wdHIpIHsKICB0eXBlZGVmIGZsb2F0IF9fdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgKihfX3YyZjMyICopX19wdHIgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdjJmMzIpOwp9CgovKi0tIHZlY19jdGQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2N0ZChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSwgaW50IF9fYikKICBfX2NvbnN0YW50X3JhbmdlKF9fYiwgMCwgMzEpIHsKICBfX3ZlY3RvciBkb3VibGUgX19jb252ID0gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBkb3VibGUpOwogIF9fY29udiAqPSAoKF9fdmVjdG9yIGRvdWJsZSkoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQogICAgICAgICAgICAgKCgweDNmZlVMTCAtIF9fYikgPDwgNTIpKTsKICByZXR1cm4gX19jb252Owp9CgovLyBUaGlzIHByb3RvdHlwZSBpcyBkZXByZWNhdGVkLgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2N0ZChfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX19hLCBpbnQgX19iKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCAzMSkgewogIF9fdmVjdG9yIGRvdWJsZSBfX2NvbnYgPSBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGRvdWJsZSk7CiAgX19jb252ICo9ICgoX192ZWN0b3IgZG91YmxlKShfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpCiAgICAgICAgICAgICAoKDB4M2ZmVUxMIC0gX19iKSA8PCA1MikpOwogIHJldHVybiBfX2NvbnY7Cn0KCi8qLS0gdmVjX2N0c2wgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBsb25nIGxvbmcKdmVjX2N0c2woX192ZWN0b3IgZG91YmxlIF9fYSwgaW50IF9fYikKICBfX2NvbnN0YW50X3JhbmdlKF9fYiwgMCwgMzEpIHsKICBfX2EgKj0gKChfX3ZlY3RvciBkb3VibGUpKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZykKICAgICAgICAgICgoMHgzZmZVTEwgKyBfX2IpIDw8IDUyKSk7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fYSwgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZyk7Cn0KCi8qLS0gdmVjX2N0dWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCi8vIFRoaXMgcHJvdG90eXBlIGlzIGRlcHJlY2F0ZWQuCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfY3R1bChfX3ZlY3RvciBkb3VibGUgX19hLCBpbnQgX19iKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCAzMSkgewogIF9fYSAqPSAoKF9fdmVjdG9yIGRvdWJsZSkoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQogICAgICAgICAgKCgweDNmZlVMTCArIF9fYikgPDwgNTIpKTsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcpOwp9CgovKi0tIHZlY19kb3VibGVlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfZG91YmxlZShfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICB0eXBlZGVmIGZsb2F0IF9fdjJmMzIgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDgpKSk7CiAgX192MmYzMiBfX3BhY2sgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX2EsIF9fYSwgMCwgMik7CiAgcmV0dXJuIF9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKF9fcGFjaywgX192ZWN0b3IgZG91YmxlKTsKfQojZW5kaWYKCi8qLS0gdmVjX2Zsb2F0ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfYWkgX192ZWN0b3IgZmxvYXQKdmVjX2Zsb2F0ZShfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgdHlwZWRlZiBmbG9hdCBfX3YyZjMyIF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyg4KSkpOwogIF9fdjJmMzIgX19wYWNrID0gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3YyZjMyKTsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wYWNrLCBfX3BhY2ssIDAsIC0xLCAxLCAtMSk7Cn0KI2VuZGlmCgovKi0tIHZlY19kb3VibGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX2RvdWJsZShfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGRvdWJsZSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfZG91YmxlKF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBkb3VibGUpOwp9CgovKi0tIHZlY19mbG9hdCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTMKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19mbG9hdChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIGZsb2F0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX2Zsb2F0KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBmbG9hdCk7Cn0KCiNlbmRpZgoKLyotLSB2ZWNfc2lnbmVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGxvbmcgbG9uZwp2ZWNfc2lnbmVkKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKTsKfQoKI2lmIF9fQVJDSF9fID49IDEzCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX3NpZ25lZChfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoX19hLCBfX3ZlY3RvciBzaWduZWQgaW50KTsKfQojZW5kaWYKCi8qLS0gdmVjX3Vuc2lnbmVkIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZwp2ZWNfdW5zaWduZWQoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyk7Cn0KCiNpZiBfX0FSQ0hfXyA+PSAxMwpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX3Vuc2lnbmVkKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fY29udmVydHZlY3RvcihfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCk7Cn0KI2VuZGlmCgovKi0tIHZlY19yb3VuZHAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JvdW5kcChfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpc2IoX19hLCA0LCA2KTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcm91bmRwKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA2KTsKfQoKLyotLSB2ZWNfY2VpbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19jZWlsKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIC8vIE9uIHRoaXMgcGxhdGZvcm0sIHZlY19jZWlsIG5ldmVyIHRyaWdnZXJzIHRoZSBJRUVFLWluZXhhY3QgZXhjZXB0aW9uLgogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDYpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19jZWlsKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICAvLyBPbiB0aGlzIHBsYXRmb3JtLCB2ZWNfY2VpbCBuZXZlciB0cmlnZ2VycyB0aGUgSUVFRS1pbmV4YWN0IGV4Y2VwdGlvbi4KICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA2KTsKfQoKLyotLSB2ZWNfcm91bmRtIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY19yb3VuZG0oX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgNyk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JvdW5kbShfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgNCwgNyk7Cn0KCi8qLS0gdmVjX2Zsb29yIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfZmxvb3IoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgLy8gT24gdGhpcyBwbGF0Zm9ybSwgdmVjX2Zsb29yIG5ldmVyIHRyaWdnZXJzIHRoZSBJRUVFLWluZXhhY3QgZXhjZXB0aW9uLgogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDcpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19mbG9vcihfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgLy8gT24gdGhpcyBwbGF0Zm9ybSwgdmVjX2Zsb29yIG5ldmVyIHRyaWdnZXJzIHRoZSBJRUVFLWluZXhhY3QgZXhjZXB0aW9uLgogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDQsIDcpOwp9CgovKi0tIHZlY19yb3VuZHogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JvdW5keihfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpc2IoX19hLCA0LCA1KTsKfQojZW5kaWYKCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGRvdWJsZQp2ZWNfcm91bmR6KF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZpZGIoX19hLCA0LCA1KTsKfQoKLyotLSB2ZWNfdHJ1bmMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEyCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIGZsb2F0CnZlY190cnVuYyhfX3ZlY3RvciBmbG9hdCBfX2EpIHsKICAvLyBPbiB0aGlzIHBsYXRmb3JtLCB2ZWNfdHJ1bmMgbmV2ZXIgdHJpZ2dlcnMgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgNCwgNSk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3RydW5jKF9fdmVjdG9yIGRvdWJsZSBfX2EpIHsKICAvLyBPbiB0aGlzIHBsYXRmb3JtLCB2ZWNfdHJ1bmMgbmV2ZXIgdHJpZ2dlcnMgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgNCwgNSk7Cn0KCi8qLS0gdmVjX3JvdW5kYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBmbG9hdAp2ZWNfcm91bmRjKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDApOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19yb3VuZGMoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDQsIDApOwp9CgovKi0tIHZlY19yaW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JpbnQoX192ZWN0b3IgZmxvYXQgX19hKSB7CiAgLy8gdmVjX3JpbnQgbWF5IHRyaWdnZXIgdGhlIElFRUUtaW5leGFjdCBleGNlcHRpb24uCiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaXNiKF9fYSwgMCwgMCk7Cn0KI2VuZGlmCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBkb3VibGUKdmVjX3JpbnQoX192ZWN0b3IgZG91YmxlIF9fYSkgewogIC8vIHZlY19yaW50IG1heSB0cmlnZ2VyIHRoZSBJRUVFLWluZXhhY3QgZXhjZXB0aW9uLgogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlkYihfX2EsIDAsIDApOwp9CgovKi0tIHZlY19yb3VuZCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTIKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZmxvYXQKdmVjX3JvdW5kKF9fdmVjdG9yIGZsb2F0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmlzYihfX2EsIDQsIDQpOwp9CiNlbmRpZgoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgZG91YmxlCnZlY19yb3VuZChfX3ZlY3RvciBkb3VibGUgX19hKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmaWRiKF9fYSwgNCwgNCk7Cn0KCi8qLS0gdmVjX2ZwX3Rlc3RfZGF0YV9jbGFzcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMgpleHRlcm4gX19BVFRSU19vIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZwX3Rlc3RfZGF0YV9jbGFzcyhfX3ZlY3RvciBmbG9hdCBfX2EsIGludCBfX2IsIGludCAqX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCA0MDk1KTsKCmV4dGVybiBfX0FUVFJTX28gX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZwp2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzKF9fdmVjdG9yIGRvdWJsZSBfX2EsIGludCBfX2IsIGludCAqX19jKQogIF9fY29uc3RhbnRfcmFuZ2UoX19iLCAwLCA0MDk1KTsKCiNkZWZpbmUgdmVjX2ZwX3Rlc3RfZGF0YV9jbGFzcyhYLCBZLCBaKSBcCiAgKChfX3R5cGVvZl9fKCh2ZWNfZnBfdGVzdF9kYXRhX2NsYXNzKSgoWCksIChZKSwgKFopKSkpIFwKICAgX19leHRlbnNpb25fXyAoeyBcCiAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3JlczsgXAogICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX194ID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpKFgpOyBcCiAgICAgaW50ICpfX3ogPSAoWik7IFwKICAgICBzd2l0Y2ggKHNpemVvZiAoKFgpWzBdKSkgeyBcCiAgICAgY2FzZSA0OiAgX19yZXMgPSAoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgXAogICAgICAgICAgICAgICAgICAgICAgX19idWlsdGluX3MzOTBfdmZ0Y2lzYigoX192ZWN0b3IgZmxvYXQpX194LCAoWSksIF9feik7IFwKICAgICAgICAgICAgICBicmVhazsgXAogICAgIGRlZmF1bHQ6IF9fcmVzID0gKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIFwKICAgICAgICAgICAgICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3ZmdGNpZGIoKF9fdmVjdG9yIGRvdWJsZSlfX3gsIChZKSwgX196KTsgXAogICAgICAgICAgICAgIGJyZWFrOyBcCiAgICAgfSBfX3JlczsgfSkpCiNlbHNlCiNkZWZpbmUgdmVjX2ZwX3Rlc3RfZGF0YV9jbGFzcyhYLCBZLCBaKSBcCiAgKChfX3ZlY3RvciBfX2Jvb2wgbG9uZyBsb25nKV9fYnVpbHRpbl9zMzkwX3ZmdGNpZGIoKFgpLCAoWSksIChaKSkpCiNlbmRpZgoKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9aRVJPX1AgKDEgPDwgMTEpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfWkVST19OICgxIDw8IDEwKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1pFUk8gKF9fVkVDX0NMQVNTX0ZQX1pFUk9fUCB8IF9fVkVDX0NMQVNTX0ZQX1pFUk9fTikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9OT1JNQUxfUCAoMSA8PCA5KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX05PUk1BTF9OICgxIDw8IDgpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTk9STUFMIChfX1ZFQ19DTEFTU19GUF9OT1JNQUxfUCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX05PUk1BTF9OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9QICgxIDw8IDcpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMX04gKDEgPDwgNikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9TVUJOT1JNQUwgKF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTF9QIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfU1VCTk9STUFMX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfUCAoMSA8PCA1KQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZX04gKDEgPDwgNCkKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9JTkZJTklUWSAoX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfUCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19WRUNfQ0xBU1NfRlBfSU5GSU5JVFlfTikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9RTkFOX1AgKDEgPDwgMykKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9RTkFOX04gKDEgPDwgMikKI2RlZmluZSBfX1ZFQ19DTEFTU19GUF9RTkFOIChfX1ZFQ19DTEFTU19GUF9RTkFOX1AgfCBfX1ZFQ19DTEFTU19GUF9RTkFOX04pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU05BTl9QICgxIDw8IDEpCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU05BTl9OICgxIDw8IDApCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfU05BTiAoX19WRUNfQ0xBU1NfRlBfU05BTl9QIHwgX19WRUNfQ0xBU1NfRlBfU05BTl9OKQojZGVmaW5lIF9fVkVDX0NMQVNTX0ZQX05BTiAoX19WRUNfQ0xBU1NfRlBfUU5BTiB8IF9fVkVDX0NMQVNTX0ZQX1NOQU4pCiNkZWZpbmUgX19WRUNfQ0xBU1NfRlBfTk9UX05PUk1BTCAoX19WRUNfQ0xBU1NfRlBfTkFOIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX1NVQk5PUk1BTCB8IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1ZFQ19DTEFTU19GUF9aRVJPIHwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fVkVDX0NMQVNTX0ZQX0lORklOSVRZKQoKLyotLSB2ZWNfZXh0ZW5kX3RvX2ZwMzJfaGkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDE0CiNkZWZpbmUgdmVjX2V4dGVuZF90b19mcDMyX2hpKFgsIFcpIFwKICAoKF9fdmVjdG9yIGZsb2F0KV9fYnVpbHRpbl9zMzkwX3ZjbGZuaHMoKFgpLCAoVykpKTsKI2VuZGlmCgovKi0tIHZlY19leHRlbmRfdG9fZnAzMl9oaSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTQKI2RlZmluZSB2ZWNfZXh0ZW5kX3RvX2ZwMzJfbG8oWCwgVykgXAogICgoX192ZWN0b3IgZmxvYXQpX19idWlsdGluX3MzOTBfdmNsZm5scygoWCksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX3JvdW5kX2Zyb21fZnAzMiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxNAojZGVmaW5lIHZlY19yb3VuZF9mcm9tX2ZwMzIoWCwgWSwgVykgXAogICgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdmNybmZzKChYKSwgKFkpLCAoVykpKTsKI2VuZGlmCgovKi0tIHZlY19jb252ZXJ0X3RvX2ZwMTYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTQKI2RlZmluZSB2ZWNfY29udmVydF90b19mcDE2KFgsIFcpIFwKICAoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZjZm4oKFgpLCAoVykpKTsKI2VuZGlmCgovKi0tIHZlY19jb252ZXJ0X2Zyb21fZnAxNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCgojaWYgX19BUkNIX18gPj0gMTQKI2RlZmluZSB2ZWNfY29udmVydF9mcm9tX2ZwMTYoWCwgVykgXAogICgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19idWlsdGluX3MzOTBfdmNuZigoWCksIChXKSkpOwojZW5kaWYKCi8qLS0gdmVjX2NwX3VudGlsX3plcm8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgICAgICAgX19idWlsdGluX3MzOTBfdmlzdHJiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfY3BfdW50aWxfemVybyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EpIHsKICByZXR1cm4gKChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY3BfdW50aWxfemVybyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmIoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EpIHsKICByZXR1cm4gKChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92aXN0cmgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSkpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NwX3VudGlsX3plcm8oX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgICAgICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyaCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hKSk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSkgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmgoX19hKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY3BfdW50aWxfemVybyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92aXN0cmYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY3BfdW50aWxfemVybyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSkgewogIHJldHVybiAoKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICAgICAgICBfX2J1aWx0aW5fczM5MF92aXN0cmYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EpKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jcF91bnRpbF96ZXJvKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmlzdHJmKF9fYSk7Cn0KCi8qLS0gdmVjX2NwX3VudGlsX3plcm9fY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jcF91bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmlzdHJicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jcF91bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmlzdHJicyhfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92aXN0cmhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92aXN0cmhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY3BfdW50aWxfemVyb19jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmhzKF9fYSwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2NwX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3Zpc3RyZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jcF91bnRpbF96ZXJvX2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92aXN0cmZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jcF91bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92aXN0cmZzKF9fYSwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcGVxX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jbXBlcV9pZHgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZlZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlYihfX2EsIF9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcGVxX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wZXFfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2NtcGVxX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlYnMoX19hLCBfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVocyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2NtcGVxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wZXFfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZWZzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wZXFfb3JfMF9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcGVxX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWV6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcGVxX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NtcGVxX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wZXFfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlZXpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcGVxX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpmKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfY21wZXFfb3JfMF9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWV6YnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpicyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpocyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2NtcGVxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZWV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBlcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVlemZzKF9fYSwgX19iLCBfX2NjKTsKfQoKLyotLSB2ZWNfY21wbmVfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcG5lX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5lX2lkeChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NtcG5lX2lkeChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5laCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBuZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmVoKF9fYSwgX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmVmKF9fYSwgX19iKTsKfQoKLyotLSB2ZWNfY21wbmVfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWJzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5laHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWhzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wbmVfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlbmVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5lX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBuZV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmVmcyhfX2EsIF9fYiwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcG5lX29yXzBfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemIoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemgoX19hLCBfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19jbXBuZV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZXpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5lX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZlbmV6ZihfX2EsIF9fYik7Cn0KCi8qLS0gdmVjX2NtcG5lX29yXzBfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmVuZXpicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19jbXBuZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpicyhfX2EsIF9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZlbmV6aHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemhzKF9fYSwgX19iLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZlbmV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmZW5lemZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmVuZXpmcyhfX2EsIF9fYiwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcHJnIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXByZyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdnN0cmNiKF9fYSwgX19iLCBfX2MsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcHJnKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpX19idWlsdGluX3MzOTBfdnN0cmNoKF9fYSwgX19iLCBfX2MsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXByZyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92c3RyY2YoX19hLCBfX2IsIF9fYywgNCk7Cn0KCi8qLS0gdmVjX2NtcHJnX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXByZ19jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3RyY2JzKF9fYSwgX19iLCBfX2MsIDQsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcHJnX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3RyY2hzKF9fYSwgX19iLCBfX2MsIDQsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXByZ19jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzdHJjZnMoX19hLCBfX2IsIF9fYywgNCwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcHJnX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcHJnX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNiKF9fYSwgX19iLCBfX2MsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wcmdfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2goX19hLCBfX2IsIF9fYywgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wcmdfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2YoX19hLCBfX2IsIF9fYywgMCk7Cn0KCi8qLS0gdmVjX2NtcHJnX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcHJnX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2JzKF9fYSwgX19iLCBfX2MsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wcmdfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjaHMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wcmdfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjZnMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcHJnX29yXzBfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcHJnX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemIoX19hLCBfX2IsIF9fYywgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXByZ19vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY3poKF9fYSwgX19iLCBfX2MsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcHJnX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemYoX19hLCBfX2IsIF9fYywgMCk7Cn0KCi8qLS0gdmVjX2NtcHJnX29yXzBfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcHJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6YnMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXByZ19vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemhzKF9fYSwgX19iLCBfX2MsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcHJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6ZnMoX19hLCBfX2IsIF9fYywgMCwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcG5yZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBucmcoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92c3RyY2IoX19hLCBfX2IsIF9fYywgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2NtcG5yZyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92c3RyY2goX19hLCBfX2IsIF9fYywgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19jbXBucmcoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZzdHJjZihfX2EsIF9fYiwgX19jLCAxMik7Cn0KCi8qLS0gdmVjX2NtcG5yZ19jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19jbXBucmdfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdnN0cmNicyhfX2EsIF9fYiwgX19jLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfY21wbnJnX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92c3RyY2hzKF9fYSwgX19iLCBfX2MsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfY21wbnJnX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgX19idWlsdGluX3MzOTBfdnN0cmNmcyhfX2EsIF9fYiwgX19jLCAxMiwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcG5yZ19pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5yZ19pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2IoX19hLCBfX2IsIF9fYywgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBucmdfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmNoKF9fYSwgX19iLCBfX2MsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5yZ19pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2YoX19hLCBfX2IsIF9fYywgOCk7Cn0KCi8qLS0gdmVjX2NtcG5yZ19pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5yZ19pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjYnMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19jbXBucmdfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3RyY2hzKF9fYSwgX19iLCBfX2MsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2NtcG5yZ19pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjZnMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCi8qLS0gdmVjX2NtcG5yZ19vcl8wX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5yZ19vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6YihfX2EsIF9fYiwgX19jLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2NtcG5yZ19vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6aChfX2EsIF9fYiwgX19jLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19jbXBucmdfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemYoX19hLCBfX2IsIF9fYywgOCk7Cn0KCi8qLS0gdmVjX2NtcG5yZ19vcl8wX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2NtcG5yZ19vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJjemJzKF9fYSwgX19iLCBfX2MsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfY21wbnJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6aHMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfY21wbnJnX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cmN6ZnMoX19hLCBfX2IsIF9fYywgOCwgX19jYyk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9lcShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdmZhZWIoX19hLCBfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlaCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92ZmFlaChfX2EsIF9fYiwgNCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X2VxKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDQpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9lcShfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA0KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfZXEoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludClfX2J1aWx0aW5fczM5MF92ZmFlZihfX2EsIF9fYiwgNCk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKV9fYnVpbHRpbl9zMzkwX3ZmYWVicyhfX2EsIF9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwKICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgNCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydClfX2J1aWx0aW5fczM5MF92ZmFlaHMoX19hLCBfX2IsIDQsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDQsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDQsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9lcV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZmYWVmcyhfX2EsIF9fYiwgNCwgX19jYyk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYihfX2EsIF9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKF9fYSwgX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZihfX2EsIF9fYiwgMCk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWJzKF9fYSwgX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVocyhfX2EsIF9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9pZHhfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcyhfX2EsIF9fYiwgMCwgX19jYyk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpiKF9fYSwgX19iLCAwKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeChfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZXpoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aChfX2EsIF9fYiwgMCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDApOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZihfX2EsIF9fYiwgMCk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YnMoX19hLCBfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aHMoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAwLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aHMoX19hLCBfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgaW50CnZlY19maW5kX2FueV9lcV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfZXFfb3JfMF9pZHhfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDAsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X2VxX29yXzBfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmcyhfX2EsIF9fYiwgMCwgX19jYyk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X25lIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9uZShfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDEyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgY2hhcilfX2J1aWx0aW5fczM5MF92ZmFlYihfX2EsIF9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwgX192ZWN0b3IgX19ib29sIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDEyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZmYWVoKF9fYSwgX19iLCAxMik7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X25lKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDEyKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfbmUoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgMTIpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9uZShfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KV9fYnVpbHRpbl9zMzkwX3ZmYWVmKF9fYSwgX19iLCAxMik7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X25lX2NjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBjaGFyCnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciBzaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgY2hhcgp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGNoYXIKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIGNoYXIpX19idWlsdGluX3MzOTBfdmZhZWJzKF9fYSwgX19iLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIHNob3J0CnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3IgX19ib29sIHNob3J0KV9fYnVpbHRpbl9zMzkwX3ZmYWVocyhfX2EsIF9fYiwgMTIsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBfX2Jvb2wgaW50CnZlY19maW5kX2FueV9uZV9jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDEyLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgX19ib29sIGludAp2ZWNfZmluZF9hbnlfbmVfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBfX2Jvb2wgaW50KQogICAgX19idWlsdGluX3MzOTBfdmZhZWZzKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCAxMiwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIF9fYm9vbCBpbnQKdmVjX2ZpbmRfYW55X25lX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIF9fYm9vbCBpbnQpX19idWlsdGluX3MzOTBfdmZhZWZzKF9fYSwgX19iLCAxMiwgX19jYyk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X25lX2lkeCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBjaGFyKQogICAgX19idWlsdGluX3MzOTBfdmZhZWIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwgX192ZWN0b3IgX19ib29sIGNoYXIgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWViKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLCBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYihfX2EsIF9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2lkeChfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLCBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVoKF9fYSwgX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfaWR4KF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLCBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX2lkeChfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwgX192ZWN0b3IgX19ib29sIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlZihfX2EsIF9fYiwgOCk7Cn0KCi8qLS0gdmVjX2ZpbmRfYW55X25lX2lkeF9jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWVicygoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlYnMoX19hLCBfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3IgX19ib29sIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWhzKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWhzKF9fYSwgX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gKF9fdmVjdG9yIHNpZ25lZCBpbnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWVmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZWZzKF9fYSwgX19iLCA4LCBfX2NjKTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGNoYXIpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemIoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemIoX19hLCBfX2IsIDgpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciBzaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4KF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgc2hvcnQpCiAgICBfX2J1aWx0aW5fczM5MF92ZmFlemgoKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4KF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZmYWV6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpoKF9fYSwgX19iLCA4KTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgaW50IF9fYikgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYikgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemYoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgOCk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHgoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmKF9fYSwgX19iLCA4KTsKfQoKLyotLSB2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3Igc2lnbmVkIGNoYXIKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYiwgaW50ICpfX2NjKSB7CiAgcmV0dXJuIChfX3ZlY3RvciBzaWduZWQgY2hhcikKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6YnMoKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemJzKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpicyhfX2EsIF9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIHNob3J0KQogICAgX19idWlsdGluX3MzOTBfdmZhZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpocygoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIDgsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpocyhfX2EsIF9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHNpZ25lZCBpbnQKdmVjX2ZpbmRfYW55X25lX29yXzBfaWR4X2NjKF9fdmVjdG9yIHNpZ25lZCBpbnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiAoX192ZWN0b3Igc2lnbmVkIGludCkKICAgIF9fYnVpbHRpbl9zMzkwX3ZmYWV6ZnMoKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCA4LCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgaW50CnZlY19maW5kX2FueV9uZV9vcl8wX2lkeF9jYyhfX3ZlY3RvciBfX2Jvb2wgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdmZhZXpmcygoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYiwgOCwgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGludAp2ZWNfZmluZF9hbnlfbmVfb3JfMF9pZHhfY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92ZmFlemZzKF9fYSwgX19iLCA4LCBfX2NjKTsKfQoKLyotLSB2ZWNfc2VhcmNoX3N0cmluZ19jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKI2lmIF9fQVJDSF9fID49IDEzCgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3Igc2lnbmVkIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzYigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3IgX19ib29sIGNoYXIgX19hLCBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNiKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ19jYyhfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYSwgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNiKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2EsIF9fdmVjdG9yIHNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNoKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzaChfX2EsIF9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ19jYyhfX3ZlY3RvciBzaWduZWQgaW50IF9fYSwgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGludClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsIF9fdmVjdG9yIF9fYm9vbCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyIF9fYywgaW50ICpfX2NjKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9zMzkwX3ZzdHJzZigoX192ZWN0b3IgdW5zaWduZWQgaW50KV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX2NjKF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2EsIF9fdmVjdG9yIHVuc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnNmKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgojZW5kaWYKCi8qLS0gdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KCiNpZiBfX0FSQ0hfXyA+PSAxMwoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ191bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3piKChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKV9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGNoYXIgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnN6YigoX192ZWN0b3IgdW5zaWduZWQgY2hhcilfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3piKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciBzaWduZWQgc2hvcnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnN6aCgoX192ZWN0b3IgdW5zaWduZWQgc2hvcnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2IsIF9fYywgX19jYyk7Cn0KCnN0YXRpYyBpbmxpbmUgX19BVFRSU19vX2FpIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIKdmVjX3NlYXJjaF9zdHJpbmdfdW50aWxfemVyb19jYyhfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIF9fYm9vbCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3poKChfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydClfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0KV9fYiwgX19jLCBfX2NjKTsKfQoKc3RhdGljIGlubGluZSBfX0FUVFJTX29fYWkgX192ZWN0b3IgdW5zaWduZWQgY2hhcgp2ZWNfc2VhcmNoX3N0cmluZ191bnRpbF96ZXJvX2NjKF9fdmVjdG9yIHVuc2lnbmVkIHNob3J0IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBzaG9ydCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3poKF9fYSwgX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3Igc2lnbmVkIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3Igc2lnbmVkIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3pmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3IgX19ib29sIGludCBfX2EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgX19ib29sIGludCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX2MsIGludCAqX19jYykgewogIHJldHVybiBfX2J1aWx0aW5fczM5MF92c3Ryc3pmKChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19hLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3ZlY3RvciB1bnNpZ25lZCBpbnQpX19iLCBfX2MsIF9fY2MpOwp9CgpzdGF0aWMgaW5saW5lIF9fQVRUUlNfb19haSBfX3ZlY3RvciB1bnNpZ25lZCBjaGFyCnZlY19zZWFyY2hfc3RyaW5nX3VudGlsX3plcm9fY2MoX192ZWN0b3IgdW5zaWduZWQgaW50IF9fYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3ZlY3RvciB1bnNpZ25lZCBpbnQgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIgX19jLCBpbnQgKl9fY2MpIHsKICByZXR1cm4gX19idWlsdGluX3MzOTBfdnN0cnN6ZihfX2EsIF9fYiwgX19jLCBfX2NjKTsKfQoKI2VuZGlmCgojdW5kZWYgX19jb25zdGFudF9wb3cyX3JhbmdlCiN1bmRlZiBfX2NvbnN0YW50X3JhbmdlCiN1bmRlZiBfX2NvbnN0YW50CiN1bmRlZiBfX0FUVFJTX28KI3VuZGVmIF9fQVRUUlNfb19haQojdW5kZWYgX19BVFRSU19haQoKI2Vsc2UKCiNlcnJvciAiVXNlIC1menZlY3RvciB0byBlbmFibGUgdmVjdG9yIGV4dGVuc2lvbnMiCgojZW5kaWYKAC8vPT09LS0gc2FuaXRpemVyL2NvdmVyYWdlX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgZm9yIHNhbml0aXplciBjb3ZlcmFnZS4KLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCiNpZm5kZWYgU0FOSVRJWkVSX0NPVkVSQUdfSU5URVJGQUNFX0gKI2RlZmluZSBTQU5JVElaRVJfQ09WRVJBR19JTlRFUkZBQ0VfSAoKI2luY2x1ZGUgPHNhbml0aXplci9jb21tb25faW50ZXJmYWNlX2RlZnMuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCgogIC8vIFJlY29yZCBhbmQgZHVtcCBjb3ZlcmFnZSBpbmZvLgogIHZvaWQgX19zYW5pdGl6ZXJfY292X2R1bXAodm9pZCk7CgogIC8vIENsZWFyIGNvbGxlY3RlZCBjb3ZlcmFnZSBpbmZvLgogIHZvaWQgX19zYW5pdGl6ZXJfY292X3Jlc2V0KHZvaWQpOwoKICAvLyBEdW1wIGNvbGxlY3RlZCBjb3ZlcmFnZSBpbmZvLiBTb3J0cyBwY3MgYnkgbW9kdWxlIGludG8gaW5kaXZpZHVhbCAuc2FuY292CiAgLy8gZmlsZXMuCiAgdm9pZCBfX3Nhbml0aXplcl9kdW1wX2NvdmVyYWdlKGNvbnN0IHVpbnRwdHJfdCAqcGNzLCB1aW50cHRyX3QgbGVuKTsKCiNpZmRlZiBfX2NwbHVzcGx1cwp9ICAvLyBleHRlcm4gIkMiCiNlbmRpZgoKI2VuZGlmICAvLyBTQU5JVElaRVJfQ09WRVJBR19JTlRFUkZBQ0VfSAoAc2FuaXRpemVyL25ldGJzZF9zeXNjYWxsX2hvb2tzLmgAIChmcmVhZCgmY29udGVudFswXSwgc2l6ZSwgMSwgaGFuZGxlKT0AcGF0dGVybgBDaGVjayBmYWlsZWQ6IGRvY3VtZW50WyJjb250ZW50Il0uQWNjZXB0KHdyaXRlcikAZXh0ZXJuYWwva3l0aGUva3l0aGUvY3h4L2NvbW1vbi9remlwX3dyaXRlcl9hb3NwLmNjAHBvbGljeSBub3Qgb25lIG9mOiBjbGVhbi1vbmx5LCBwcmVmZXItcmVsYXRpdmUsIHByZWZlci1yZWFsAGJ5dGVtYXAgcmFuZ2UgAHVua25vd24gcm91bmQ6IABbOl5kaWdpdDpdAFs6bG93ZXI6XQBbOnVwcGVyOl0AbWF0Y2ghICVkAHwAY29udGV4dCBkb2VzIG5vdCBjb250YWluIHRleHQAQW5hdG9saWFuX0hpZXJvZ2x5cGhzAEJhc3NhX1ZhaABIYW51bm9vAEtheWFoX0xpAEx5ZGlhbgBOYWJhdGFlYW4ATmV3X1RhaV9MdWUAUGYAVGliZXRhbgBacwBtbWFwKCkgZm9yIGFsdGVybmF0ZSBzaWduYWwgc3RhY2sgZmFpbGVkAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvYWRkcmVzc19pc19yZWFkYWJsZS5jYwBfX3Zkc29fZ2V0Y3B1AGltYWdlLT5Jc1ByZXNlbnQoKSB8fCBpbmNyZW1lbnQgPT0gMABzdW0gPj0gYQBEdgBkACYmAFNiAENoZWNrIHN1bSAhPSBudWxscHRyIGZhaWxlZDogAGNoaWxkX2xlbmd0aABdIGxlbmd0aCA9IAAsIHRhZyA9IABSZWFkZXJUcnlMb2NrIGZhaWxlZCAAQ2hlY2sgKHYgJiAoa011V2FpdCB8IGtNdVdyV2FpdCkpICE9IGtNdVdyV2FpdCBmYWlsZWQ6ICVzOiBNdXRleCBjb3JydXB0OiB3YWl0aW5nIHdyaXRlciB3aXRoIG5vIHdhaXRlcnM6ICVwACAjdHlwZXM9AFNIQS0yNTYgS0FUAE5JU1QgUC01MjEAb2JqZWN0IGlkZW50aWZpZXIgcm91dGluZXMAa3l0aGUucHJvdG8uY29tbW9uLk1hcmtlZFNvdXJjZS5wcmVfdGV4dABPcGVuSW5kZXgoKSBjYWxsZWQgdHdpY2UAIGRpZmZlcnMgZnJvbSB0aGUgY3VycmVudCBvbmUuCgBfX2NsYW5nX2N1ZGFfbGliZGV2aWNlX2RlY2xhcmVzLmgALyo9PT0tLS0tLS0tLS0tLS0tLS0gYW14aW50cmluLmggLSBBTVggaW50cmluc2ljcyAtKi0gQy9DKysgLSotLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGFteGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYgLyogX19JTU1JTlRSSU5fSCAqLwoKI2lmbmRlZiBfX0FNWElOVFJJTl9ICiNkZWZpbmUgX19BTVhJTlRSSU5fSAojaWZkZWYgX194ODZfNjRfXwoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSU19USUxFICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYW14LXRpbGUiKSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhbXgtaW50OCIpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlNfQkYxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImFteC1iZjE2IikpKQoKLy8vIExvYWQgdGlsZSBjb25maWd1cmF0aW9uIGZyb20gYSA2NC1ieXRlIG1lbW9yeSBsb2NhdGlvbiBzcGVjaWZpZWQgYnkKLy8vICJtZW1fYWRkciIuIFRoZSB0aWxlIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgdGhlIHRpbGUgdHlwZSBwYWxldHRlLCB0aGUKLy8vIG51bWJlciBvZiBieXRlcyBwZXIgcm93LCBhbmQgdGhlIG51bWJlciBvZiByb3dzLiBJZiB0aGUgc3BlY2lmaWVkCi8vLyBwYWxldHRlX2lkIGlzIHplcm8sIHRoYXQgc2lnbmlmaWVzIHRoZSBpbml0IHN0YXRlIGZvciBib3RoIHRoZSB0aWxlCi8vLyBjb25maWcgYW5kIHRoZSB0aWxlIGRhdGEsIGFuZCB0aGUgdGlsZXMgYXJlIHplcm9lZC4gQW55IGludmFsaWQKLy8vIGNvbmZpZ3VyYXRpb25zIHdpbGwgcmVzdWx0IGluICNHUCBmYXVsdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBMRFRJTEVDRkcgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19jb25maWcKLy8vICAgIEEgcG9pbnRlciB0byA1MTItYml0cyBjb25maWd1cmF0aW9uCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTX1RJTEUKX3RpbGVfbG9hZGNvbmZpZyhjb25zdCB2b2lkICpfX2NvbmZpZykgewogIF9fYnVpbHRpbl9pYTMyX3RpbGVfbG9hZGNvbmZpZyhfX2NvbmZpZyk7Cn0KCi8vLyBTdG9yZXMgdGhlIGN1cnJlbnQgdGlsZSBjb25maWd1cmF0aW9uIHRvIGEgNjQtYnl0ZSBtZW1vcnkgbG9jYXRpb24KLy8vIHNwZWNpZmllZCBieSAibWVtX2FkZHIiLiBUaGUgdGlsZSBjb25maWd1cmF0aW9uIGluY2x1ZGVzIHRoZSB0aWxlIHR5cGUKLy8vIHBhbGV0dGUsIHRoZSBudW1iZXIgb2YgYnl0ZXMgcGVyIHJvdywgYW5kIHRoZSBudW1iZXIgb2Ygcm93cy4gSWYgdGlsZXMKLy8vIGFyZSBub3QgY29uZmlndXJlZCwgYWxsIHplcm9lcyB3aWxsIGJlIHN0b3JlZCB0byBtZW1vcnkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gU1RUSUxFQ0ZHIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fY29uZmlnCi8vLyAgICBBIHBvaW50ZXIgdG8gNTEyLWJpdHMgY29uZmlndXJhdGlvbgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSU19USUxFCl90aWxlX3N0b3JlY29uZmlnKHZvaWQgKl9fY29uZmlnKSB7CiAgX19idWlsdGluX2lhMzJfdGlsZV9zdG9yZWNvbmZpZyhfX2NvbmZpZyk7Cn0KCi8vLyBSZWxlYXNlIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24gdG8gcmV0dXJuIHRvIHRoZSBpbml0IHN0YXRlLCB3aGljaAovLy8gcmVsZWFzZXMgYWxsIHN0b3JhZ2UgaXQgY3VycmVudGx5IGhvbGRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVSRUxFQVNFIDwvYz4gaW5zdHJ1Y3Rpb24uCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTX1RJTEUgX3RpbGVfcmVsZWFzZSh2b2lkKSB7CiAgX19idWlsdGluX2lhMzJfdGlsZXJlbGVhc2UoKTsKfQoKLy8vIExvYWQgdGlsZSByb3dzIGZyb20gbWVtb3J5IHNwZWNpZmllaWQgYnkgImJhc2UiIGFkZHJlc3MgYW5kICJzdHJpZGUiIGludG8KLy8vIGRlc3RpbmF0aW9uIHRpbGUgImRzdCIgdXNpbmcgdGhlIHRpbGUgY29uZmlndXJhdGlvbiBwcmV2aW91c2x5IGNvbmZpZ3VyZWQKLy8vIHZpYSAiX3RpbGVfbG9hZGNvbmZpZyIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVElMRUxPQUREIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgQSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIGJhc2UKLy8vICAgIEEgcG9pbnRlciB0byBiYXNlIGFkZHJlc3MuCi8vLyBccGFyYW0gc3RyaWRlCi8vLyAgICBUaGUgc3RyaWRlIGJldHdlZW4gdGhlIHJvd3MnIGRhdGEgdG8gYmUgbG9hZGVkIGluIG1lbW9yeS4KI2RlZmluZSBfdGlsZV9sb2FkZChkc3QsIGJhc2UsIHN0cmlkZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90aWxlbG9hZGQ2NCgoZHN0KSwgKChjb25zdCB2b2lkICopKGJhc2UpKSwgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19TSVpFX1RZUEVfXykoc3RyaWRlKSkKCi8vLyBMb2FkIHRpbGUgcm93cyBmcm9tIG1lbW9yeSBzcGVjaWZpZWlkIGJ5ICJiYXNlIiBhZGRyZXNzIGFuZCAic3RyaWRlIiBpbnRvCi8vLyBkZXN0aW5hdGlvbiB0aWxlICJkc3QiIHVzaW5nIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24gcHJldmlvdXNseSBjb25maWd1cmVkCi8vLyB2aWEgIl90aWxlX2xvYWRjb25maWciLiBUaGlzIGludHJpbnNpYyBwcm92aWRlcyBhIGhpbnQgdG8gdGhlIGltcGxlbWVudGF0aW9uCi8vLyB0aGF0IHRoZSBkYXRhIHdpbGwgbGlrZWx5IG5vdCBiZSByZXVzZWQgaW4gdGhlIG5lYXIgZnV0dXJlIGFuZCB0aGUgZGF0YQovLy8gY2FjaGluZyBjYW4gYmUgb3B0aW1pemVkIGFjY29yZGluZ2x5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVMT0FERFQxIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgQSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIGJhc2UKLy8vICAgIEEgcG9pbnRlciB0byBiYXNlIGFkZHJlc3MuCi8vLyBccGFyYW0gc3RyaWRlCi8vLyAgICBUaGUgc3RyaWRlIGJldHdlZW4gdGhlIHJvd3MnIGRhdGEgdG8gYmUgbG9hZGVkIGluIG1lbW9yeS4KI2RlZmluZSBfdGlsZV9zdHJlYW1fbG9hZGQoZHN0LCBiYXNlLCBzdHJpZGUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90aWxlbG9hZGR0MTY0KChkc3QpLCAoKGNvbnN0IHZvaWQgKikoYmFzZSkpLCAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX1NJWkVfVFlQRV9fKShzdHJpZGUpKQoKLy8vIFN0b3JlIHRoZSB0aWxlIHNwZWNpZmllZCBieSAic3JjIiB0byBtZW1vcnkgc3BlY2lmaWVpZCBieSAiYmFzZSIgYWRkcmVzcyBhbmQKLy8vICJzdHJpZGUiIHVzaW5nIHRoZSB0aWxlIGNvbmZpZ3VyYXRpb24gcHJldmlvdXNseSBjb25maWd1cmVkIHZpYQovLy8gIl90aWxlX2xvYWRjb25maWciLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVTVE9SRUQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBBIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gYmFzZQovLy8gICAgQSBwb2ludGVyIHRvIGJhc2UgYWRkcmVzcy4KLy8vIFxwYXJhbSBzdHJpZGUKLy8vICAgIFRoZSBzdHJpZGUgYmV0d2VlbiB0aGUgcm93cycgZGF0YSB0byBiZSBzdG9yZWQgaW4gbWVtb3J5LgojZGVmaW5lIF90aWxlX3N0b3JlZChkc3QsIGJhc2UsIHN0cmlkZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYnVpbHRpbl9pYTMyX3RpbGVzdG9yZWQ2NCgoZHN0KSwgKCh2b2lkICopKGJhc2UpKSwgKF9fU0laRV9UWVBFX18pKHN0cmlkZSkpCgovLy8gWmVybyB0aGUgdGlsZSBzcGVjaWZpZWQgYnkgInRkZXN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFWkVSTyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSB0aWxlCi8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZSB0byBiZSB6ZXJvLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgojZGVmaW5lIF90aWxlX3plcm8odGlsZSkgX19idWlsdGluX2lhMzJfdGlsZXplcm8oKHRpbGUpKQoKLy8vIENvbXB1dGUgZG90LXByb2R1Y3Qgb2YgYnl0ZXMgaW4gdGlsZXMgd2l0aCBhIHNvdXJjZS9kZXN0aW5hdGlvbiBhY2N1bXVsYXRvci4KLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMwIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiAiZHN0IiwKLy8vIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlNTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV9kcGJzc2QoZHN0LCBzcmMwLCBzcmMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90ZHBic3NkKChkc3QpLCAoc3JjMCksIChzcmMxKSkKCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZQovLy8gMzItYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlcgovLy8gaW4gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlNVRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV9kcGJzdWQoZHN0LCBzcmMwLCBzcmMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90ZHBic3VkKChkc3QpLCAoc3JjMCksIChzcmMxKSkKCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMwIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiAiZHN0IiwKLy8vIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KI2RlZmluZSBfdGlsZV9kcGJ1c2QoZHN0LCBzcmMwLCBzcmMxKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX2J1aWx0aW5faWEzMl90ZHBidXNkKChkc3QpLCAoc3JjMCksIChzcmMxKSkKCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMwIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMSwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlCi8vLyAzMi1iaXQgcmVzdWx0cy4gU3VtIHRoZXNlIDQgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyIGluCi8vLyAiZHN0IiwgYW5kIHN0b3JlIHRoZSAzMi1iaXQgcmVzdWx0IGJhY2sgdG8gdGlsZSAiZHN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBURFBCVVVEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMAovLy8gICAgVGhlIDFzdCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMxCi8vLyAgICBUaGUgMm5kIHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgojZGVmaW5lIF90aWxlX2RwYnV1ZChkc3QsIHNyYzAsIHNyYzEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYnVpbHRpbl9pYTMyX3RkcGJ1dWQoKGRzdCksIChzcmMwKSwgKHNyYzEpKQoKLy8vIENvbXB1dGUgZG90LXByb2R1Y3Qgb2YgQkYxNiAoMTYtYml0KSBmbG9hdGluZy1wb2ludCBwYWlycyBpbiB0aWxlcyBzcmMwIGFuZAovLy8gc3JjMSwgYWNjdW11bGF0aW5nIHRoZSBpbnRlcm1lZGlhdGUgc2luZ2xlLXByZWNpc2lvbiAoMzItYml0KSBmbG9hdGluZy1wb2ludAovLy8gZWxlbWVudHMgd2l0aCBlbGVtZW50cyBpbiAiZHN0IiwgYW5kIHN0b3JlIHRoZSAzMi1iaXQgcmVzdWx0IGJhY2sgdG8gdGlsZQovLy8gImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMAovLy8gICAgVGhlIDFzdCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMxCi8vLyAgICBUaGUgMm5kIHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgojZGVmaW5lIF90aWxlX2RwYmYxNnBzKGRzdCwgc3JjMCwgc3JjMSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYnVpbHRpbl9pYTMyX3RkcGJmMTZwcygoZHN0KSwgKHNyYzApLCAoc3JjMSkpCgovLy8gQU1YIHRpbGUgcmVnaXN0ZXIgc2l6ZSBjYW4gYmUgY29uZmlndXJlZCwgdGhlIG1heGltdW0gc2l6ZSBpcyAxNng2ND0xMDI0Ci8vLyBieXRlcy4gU2luY2UgdGhlcmUgaXMgbm8gMkQgdHlwZSBpbiBsbHZtIElSLCB3ZSB1c2UgdmVjdG9yIHR5cGUgdG8KLy8vIHJlcHJlc2VudCAyRCB0aWxlIGFuZCB0aGUgZml4ZWQgc2l6ZSBpcyBtYXhpbXVtIGFteCB0aWxlIHJlZ2lzdGVyIHNpemUuCnR5cGVkZWYgaW50IF90aWxlMTAyNGkgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDEwMjQpLCBfX2FsaWduZWRfXyg2NCkpKTsKCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9sb2FkZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCBjb25zdCB2b2lkICpiYXNlLAogICAgICAgICAgICAgICAgICAgICBfX1NJWkVfVFlQRV9fIHN0cmlkZSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90aWxlbG9hZGQ2NF9pbnRlcm5hbChtLCBuLCBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19TSVpFX1RZUEVfXykoc3RyaWRlKSk7Cn0KCi8vLyBUaGlzIGlzIGludGVybmFsIGludHJpbnNpYy4gQy9DKysgdXNlciBzaG91bGQgYXZvaWQgY2FsbGluZyBpdCBkaXJlY3RseS4Kc3RhdGljIF9faW5saW5lX18gX3RpbGUxMDI0aSBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApfdGlsZV9sb2FkZHQxX2ludGVybmFsKHVuc2lnbmVkIHNob3J0IG0sIHVuc2lnbmVkIHNob3J0IG4sIGNvbnN0IHZvaWQgKmJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgX19TSVpFX1RZUEVfXyBzdHJpZGUpIHsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdGlsZWxvYWRkdDE2NF9pbnRlcm5hbChtLCBuLCBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX1NJWkVfVFlQRV9fKShzdHJpZGUpKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyBfdGlsZTEwMjRpIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4Cl90aWxlX2RwYnNzZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB1bnNpZ25lZCBzaG9ydCBrLAogICAgICAgICAgICAgICAgICAgICAgX3RpbGUxMDI0aSBkc3QsIF90aWxlMTAyNGkgc3JjMSwgX3RpbGUxMDI0aSBzcmMyKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3RkcGJzc2RfaW50ZXJuYWwobSwgbiwgaywgZHN0LCBzcmMxLCBzcmMyKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyBfdGlsZTEwMjRpIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4Cl90aWxlX2RwYnN1ZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB1bnNpZ25lZCBzaG9ydCBrLAogICAgICAgICAgICAgICAgICAgICAgX3RpbGUxMDI0aSBkc3QsIF90aWxlMTAyNGkgc3JjMSwgX3RpbGUxMDI0aSBzcmMyKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3RkcGJzdWRfaW50ZXJuYWwobSwgbiwgaywgZHN0LCBzcmMxLCBzcmMyKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyBfdGlsZTEwMjRpIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4Cl90aWxlX2RwYnVzZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB1bnNpZ25lZCBzaG9ydCBrLAogICAgICAgICAgICAgICAgICAgICAgX3RpbGUxMDI0aSBkc3QsIF90aWxlMTAyNGkgc3JjMSwgX3RpbGUxMDI0aSBzcmMyKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3RkcGJ1c2RfaW50ZXJuYWwobSwgbiwgaywgZHN0LCBzcmMxLCBzcmMyKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyBfdGlsZTEwMjRpIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4Cl90aWxlX2RwYnV1ZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB1bnNpZ25lZCBzaG9ydCBrLAogICAgICAgICAgICAgICAgICAgICAgX3RpbGUxMDI0aSBkc3QsIF90aWxlMTAyNGkgc3JjMSwgX3RpbGUxMDI0aSBzcmMyKSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3RkcGJ1dWRfaW50ZXJuYWwobSwgbiwgaywgZHN0LCBzcmMxLCBzcmMyKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSU19JTlQ4Cl90aWxlX3N0b3JlZF9pbnRlcm5hbCh1bnNpZ25lZCBzaG9ydCBtLCB1bnNpZ25lZCBzaG9ydCBuLCB2b2lkICpiYXNlLAogICAgICAgICAgICAgICAgICAgICAgX19TSVpFX1RZUEVfXyBzdHJpZGUsIF90aWxlMTAyNGkgdGlsZSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90aWxlc3RvcmVkNjRfaW50ZXJuYWwobSwgbiwgYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX1NJWkVfVFlQRV9fKShzdHJpZGUpLCB0aWxlKTsKfQoKLy8vIFRoaXMgaXMgaW50ZXJuYWwgaW50cmluc2ljLiBDL0MrKyB1c2VyIHNob3VsZCBhdm9pZCBjYWxsaW5nIGl0IGRpcmVjdGx5LgpzdGF0aWMgX19pbmxpbmVfXyBfdGlsZTEwMjRpIF9fREVGQVVMVF9GTl9BVFRSU19CRjE2Cl90aWxlX2RwYmYxNnBzX2ludGVybmFsKHVuc2lnbmVkIHNob3J0IG0sIHVuc2lnbmVkIHNob3J0IG4sIHVuc2lnbmVkIHNob3J0IGssCiAgICAgICAgICAgICAgICAgICAgICAgIF90aWxlMTAyNGkgZHN0LCBfdGlsZTEwMjRpIHNyYzEsIF90aWxlMTAyNGkgc3JjMikgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90ZHBiZjE2cHNfaW50ZXJuYWwobSwgbiwgaywgZHN0LCBzcmMxLCBzcmMyKTsKfQoKLy8vIFRoaXMgc3RydWN0IHBhY2sgdGhlIHNoYXBlIGFuZCB0aWxlIGRhdGEgdG9nZXRoZXIgZm9yIHVzZXIuIFdlIHN1Z2dlc3QKLy8vIGluaXRpYWxpemluZyB0aGUgc3RydWN0IGFzIGVhcmx5IGFzIHBvc3NpYmxlLCBiZWNhdXNlIGNvbXBpbGVyIGRlcGVuZHMKLy8vIG9uIHRoZSBzaGFwZSBpbmZvcm1hdGlvbiB0byBkbyBjb25maWd1cmUuIFRoZSBjb25zdGFudCB2YWx1ZSBpcyBwcmVmZXJyZWQKLy8vIGZvciBvcHRpbWl6YXRpb24gYnkgY29tcGlsZXIuCnR5cGVkZWYgc3RydWN0IF9fdGlsZTEwMjRpX3N0ciB7CiAgY29uc3QgdW5zaWduZWQgc2hvcnQgcm93OwogIGNvbnN0IHVuc2lnbmVkIHNob3J0IGNvbDsKICBfdGlsZTEwMjRpIHRpbGU7Cn0gX190aWxlMTAyNGk7CgovLy8gTG9hZCB0aWxlIHJvd3MgZnJvbSBtZW1vcnkgc3BlY2lmaWVpZCBieSAiYmFzZSIgYWRkcmVzcyBhbmQgInN0cmlkZSIgaW50bwovLy8gZGVzdGluYXRpb24gdGlsZSAiZHN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBUSUxFTE9BREQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBBIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gYmFzZQovLy8gICAgQSBwb2ludGVyIHRvIGJhc2UgYWRkcmVzcy4KLy8vIFxwYXJhbSBzdHJpZGUKLy8vICAgIFRoZSBzdHJpZGUgYmV0d2VlbiB0aGUgcm93cycgZGF0YSB0byBiZSBsb2FkZWQgaW4gbWVtb3J5LgpfX0RFRkFVTFRfRk5fQVRUUlNfVElMRQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9sb2FkZChfX3RpbGUxMDI0aSAqZHN0LCBjb25zdCB2b2lkICpiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX1NJWkVfVFlQRV9fIHN0cmlkZSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2xvYWRkX2ludGVybmFsKGRzdC0+cm93LCBkc3QtPmNvbCwgYmFzZSwgc3RyaWRlKTsKfQoKLy8vIExvYWQgdGlsZSByb3dzIGZyb20gbWVtb3J5IHNwZWNpZmllaWQgYnkgImJhc2UiIGFkZHJlc3MgYW5kICJzdHJpZGUiIGludG8KLy8vIGRlc3RpbmF0aW9uIHRpbGUgImRzdCIuIFRoaXMgaW50cmluc2ljIHByb3ZpZGVzIGEgaGludCB0byB0aGUgaW1wbGVtZW50YXRpb24KLy8vIHRoYXQgdGhlIGRhdGEgd2lsbCBsaWtlbHkgbm90IGJlIHJldXNlZCBpbiB0aGUgbmVhciBmdXR1cmUgYW5kIHRoZSBkYXRhCi8vLyBjYWNoaW5nIGNhbiBiZSBvcHRpbWl6ZWQgYWNjb3JkaW5nbHkuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVElMRUxPQUREVDEgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBBIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gYmFzZQovLy8gICAgQSBwb2ludGVyIHRvIGJhc2UgYWRkcmVzcy4KLy8vIFxwYXJhbSBzdHJpZGUKLy8vICAgIFRoZSBzdHJpZGUgYmV0d2VlbiB0aGUgcm93cycgZGF0YSB0byBiZSBsb2FkZWQgaW4gbWVtb3J5LgpfX0RFRkFVTFRfRk5fQVRUUlNfVElMRQpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9zdHJlYW1fbG9hZGQoX190aWxlMTAyNGkgKmRzdCwgY29uc3Qgdm9pZCAqYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fU0laRV9UWVBFX18gc3RyaWRlKSB7CiAgZHN0LT50aWxlID0gX3RpbGVfbG9hZGR0MV9pbnRlcm5hbChkc3QtPnJvdywgZHN0LT5jb2wsIGJhc2UsIHN0cmlkZSk7Cn0KCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiBzaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMxLCBwcm9kdWNpbmcgNCBpbnRlcm1lZGlhdGUgMzItYml0Ci8vLyByZXN1bHRzLiBTdW0gdGhlc2UgNCByZXN1bHRzIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgMzItYml0IGludGVnZXIgaW4gImRzdCIsCi8vLyBhbmQgc3RvcmUgdGhlIDMyLWJpdCByZXN1bHQgYmFjayB0byB0aWxlICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFREUEJTU0QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gZHN0Ci8vLyAgICBUaGUgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMwCi8vLyAgICBUaGUgMXN0IHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzEKLy8vICAgIFRoZSAybmQgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCl9fREVGQVVMVF9GTl9BVFRSU19JTlQ4CnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX190aWxlX2RwYnNzZChfX3RpbGUxMDI0aSAqZHN0LCBfX3RpbGUxMDI0aSBzcmMwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX190aWxlMTAyNGkgc3JjMSkgewogIGRzdC0+dGlsZSA9IF90aWxlX2RwYnNzZF9pbnRlcm5hbChzcmMwLnJvdywgc3JjMS5jb2wsIHNyYzAuY29sLCBkc3QtPnRpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzAudGlsZSwgc3JjMS50aWxlKTsKfQoKLy8vIENvbXB1dGUgZG90LXByb2R1Y3Qgb2YgYnl0ZXMgaW4gdGlsZXMgd2l0aCBhIHNvdXJjZS9kZXN0aW5hdGlvbiBhY2N1bXVsYXRvci4KLy8vIE11bHRpcGx5IGdyb3VwcyBvZiA0IGFkamFjZW50IHBhaXJzIG9mIHNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMwIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMSwgcHJvZHVjaW5nIDQgaW50ZXJtZWRpYXRlCi8vLyAzMi1iaXQgcmVzdWx0cy4gU3VtIHRoZXNlIDQgcmVzdWx0cyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBpbnRlZ2VyCi8vLyBpbiAiZHN0IiwgYW5kIHN0b3JlIHRoZSAzMi1iaXQgcmVzdWx0IGJhY2sgdG8gdGlsZSAiZHN0Ii4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8aW1taW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBURFBCU1VEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMAovLy8gICAgVGhlIDFzdCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMxCi8vLyAgICBUaGUgMm5kIHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgpfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOApzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9kcGJzdWQoX190aWxlMTAyNGkgKmRzdCwgX190aWxlMTAyNGkgc3JjMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGlsZTEwMjRpIHNyYzEpIHsKICBkc3QtPnRpbGUgPSBfdGlsZV9kcGJzdWRfaW50ZXJuYWwoc3JjMC5yb3csIHNyYzEuY29sLCBzcmMwLmNvbCwgZHN0LT50aWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmMwLnRpbGUsIHNyYzEudGlsZSk7Cn0KCi8vLyBDb21wdXRlIGRvdC1wcm9kdWN0IG9mIGJ5dGVzIGluIHRpbGVzIHdpdGggYSBzb3VyY2UvZGVzdGluYXRpb24gYWNjdW11bGF0b3IuCi8vLyBNdWx0aXBseSBncm91cHMgb2YgNCBhZGphY2VudCBwYWlycyBvZiB1bnNpZ25lZCA4LWJpdCBpbnRlZ2VycyBpbiBzcmMwIHdpdGgKLy8vIGNvcnJlc3BvbmRpbmcgc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZSAzMi1iaXQKLy8vIHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbiAiZHN0IiwKLy8vIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlVTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfZHBidXNkKF9fdGlsZTEwMjRpICpkc3QsIF9fdGlsZTEwMjRpIHNyYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RpbGUxMDI0aSBzcmMxKSB7CiAgZHN0LT50aWxlID0gX3RpbGVfZHBidXNkX2ludGVybmFsKHNyYzAucm93LCBzcmMxLmNvbCwgc3JjMC5jb2wsIGRzdC0+dGlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjMC50aWxlLCBzcmMxLnRpbGUpOwp9CgovLy8gQ29tcHV0ZSBkb3QtcHJvZHVjdCBvZiBieXRlcyBpbiB0aWxlcyB3aXRoIGEgc291cmNlL2Rlc3RpbmF0aW9uIGFjY3VtdWxhdG9yLgovLy8gTXVsdGlwbHkgZ3JvdXBzIG9mIDQgYWRqYWNlbnQgcGFpcnMgb2YgdW5zaWduZWQgOC1iaXQgaW50ZWdlcnMgaW4gc3JjMCB3aXRoCi8vLyBjb3JyZXNwb25kaW5nIHVuc2lnbmVkIDgtYml0IGludGVnZXJzIGluIHNyYzEsIHByb2R1Y2luZyA0IGludGVybWVkaWF0ZQovLy8gMzItYml0IHJlc3VsdHMuIFN1bSB0aGVzZSA0IHJlc3VsdHMgd2l0aCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQgaW50ZWdlciBpbgovLy8gImRzdCIsIGFuZCBzdG9yZSB0aGUgMzItYml0IHJlc3VsdCBiYWNrIHRvIHRpbGUgImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQlVVRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIFRoZSBkZXN0aW5hdGlvbiB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgovLy8gXHBhcmFtIHNyYzAKLy8vICAgIFRoZSAxc3Qgc291cmNlIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMQovLy8gICAgVGhlIDJuZCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KX19ERUZBVUxUX0ZOX0FUVFJTX0lOVDgKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfZHBidXVkKF9fdGlsZTEwMjRpICpkc3QsIF9fdGlsZTEwMjRpIHNyYzAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RpbGUxMDI0aSBzcmMxKSB7CiAgZHN0LT50aWxlID0gX3RpbGVfZHBidXVkX2ludGVybmFsKHNyYzAucm93LCBzcmMxLmNvbCwgc3JjMC5jb2wsIGRzdC0+dGlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjMC50aWxlLCBzcmMxLnRpbGUpOwp9CgovLy8gU3RvcmUgdGhlIHRpbGUgc3BlY2lmaWVkIGJ5ICJzcmMiIHRvIG1lbW9yeSBzcGVjaWZpZWlkIGJ5ICJiYXNlIiBhZGRyZXNzIGFuZAovLy8gInN0cmlkZSIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVElMRVNUT1JFRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBkc3QKLy8vICAgIEEgZGVzdGluYXRpb24gdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBiYXNlCi8vLyAgICBBIHBvaW50ZXIgdG8gYmFzZSBhZGRyZXNzLgovLy8gXHBhcmFtIHN0cmlkZQovLy8gICAgVGhlIHN0cmlkZSBiZXR3ZWVuIHRoZSByb3dzJyBkYXRhIHRvIGJlIHN0b3JlZCBpbiBtZW1vcnkuCl9fREVGQVVMVF9GTl9BVFRSU19USUxFCnN0YXRpYyBfX2lubGluZV9fIHZvaWQgX190aWxlX3N0b3JlZCh2b2lkICpiYXNlLCBfX1NJWkVfVFlQRV9fIHN0cmlkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fdGlsZTEwMjRpIHNyYykgewogIF90aWxlX3N0b3JlZF9pbnRlcm5hbChzcmMucm93LCBzcmMuY29sLCBiYXNlLCBzdHJpZGUsIHNyYy50aWxlKTsKfQoKLy8vIFplcm8gdGhlIHRpbGUgc3BlY2lmaWVkIGJ5ICJkc3QiLgovLy8KLy8vIFxoZWFkZXJmaWxlIDxpbW1pbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFRJTEVaRVJPIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUgdG8gYmUgemVyby4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KX19ERUZBVUxUX0ZOX0FUVFJTX1RJTEUKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX3RpbGVfemVybyhfX3RpbGUxMDI0aSAqZHN0KSB7CiAgZHN0LT50aWxlID0gX19idWlsdGluX2lhMzJfdGlsZXplcm9faW50ZXJuYWwoZHN0LT5yb3csIGRzdC0+Y29sKTsKfQoKLy8vIENvbXB1dGUgZG90LXByb2R1Y3Qgb2YgQkYxNiAoMTYtYml0KSBmbG9hdGluZy1wb2ludCBwYWlycyBpbiB0aWxlcyBzcmMwIGFuZAovLy8gc3JjMSwgYWNjdW11bGF0aW5nIHRoZSBpbnRlcm1lZGlhdGUgc2luZ2xlLXByZWNpc2lvbiAoMzItYml0KSBmbG9hdGluZy1wb2ludAovLy8gZWxlbWVudHMgd2l0aCBlbGVtZW50cyBpbiAiZHN0IiwgYW5kIHN0b3JlIHRoZSAzMi1iaXQgcmVzdWx0IGJhY2sgdG8gdGlsZQovLy8gImRzdCIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPGltbWludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVERQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGRzdAovLy8gICAgVGhlIGRlc3RpbmF0aW9uIHRpbGUuIE1heCBzaXplIGlzIDEwMjQgQnl0ZXMuCi8vLyBccGFyYW0gc3JjMAovLy8gICAgVGhlIDFzdCBzb3VyY2UgdGlsZS4gTWF4IHNpemUgaXMgMTAyNCBCeXRlcy4KLy8vIFxwYXJhbSBzcmMxCi8vLyAgICBUaGUgMm5kIHNvdXJjZSB0aWxlLiBNYXggc2l6ZSBpcyAxMDI0IEJ5dGVzLgpfX0RFRkFVTFRfRk5fQVRUUlNfQkYxNgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fdGlsZV9kcGJmMTZwcyhfX3RpbGUxMDI0aSAqZHN0LCBfX3RpbGUxMDI0aSBzcmMwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX3RpbGUxMDI0aSBzcmMxKSB7CiAgZHN0LT50aWxlID0gX3RpbGVfZHBiZjE2cHNfaW50ZXJuYWwoc3JjMC5yb3csIHNyYzEuY29sLCBzcmMwLmNvbCwgZHN0LT50aWxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYzAudGlsZSwgc3JjMS50aWxlKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19USUxFCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlNfSU5UOAojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX0JGMTYKCiNlbmRpZiAvKiBfX3g4Nl82NF9fICovCiNlbmRpZiAvKiBfX0FNWElOVFJJTl9IICovCgAvKj09PS0tLS0gYXZ4NTEyZHFpbnRyaW4uaCAtIEFWWDUxMkRRIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmRxaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkRRSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkRRSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJkcSIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJkcSIpKSkKCnN0YXRpYyBfX2lubGluZSBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2tub3RfbWFzazgoX19tbWFzazggX19NKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX2tub3RxaShfX00pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2thbmRfbWFzazgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2thbmRxaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9rYW5kbl9tYXNrOChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQikKewogIHJldHVybiAoX19tbWFzazgpX19idWlsdGluX2lhMzJfa2FuZG5xaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3JfbWFzazgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2tvcnFpKChfX21tYXNrOClfX0EsIChfX21tYXNrOClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2t4bm9yX21hc2s4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9reG5vcnFpKChfX21tYXNrOClfX0EsIChfX21tYXNrOClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2t4b3JfbWFzazgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2t4b3JxaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2tvcnRlc3RjX21hc2s4X3U4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3RjcWkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa29ydGVzdHpfbWFzazhfdTgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdHpxaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rb3J0ZXN0X21hc2s4X3U4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CLCB1bnNpZ25lZCBjaGFyICpfX0MpIHsKICAqX19DID0gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa29ydGVzdGNxaShfX0EsIF9fQik7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2tvcnRlc3R6cWkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RjX21hc2s4X3U4KF9fbW1hc2s4IF9fQSwgX19tbWFzazggX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0Y3FpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0el9tYXNrOF91OChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdHpxaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdF9tYXNrOF91OChfX21tYXNrOCBfX0EsIF9fbW1hc2s4IF9fQiwgdW5zaWduZWQgY2hhciAqX19DKSB7CiAgKl9fQyA9ICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0Y3FpKF9fQSwgX19CKTsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6cWkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB1bnNpZ25lZCBjaGFyIF9fREVGQVVMVF9GTl9BVFRSUwpfa3Rlc3RjX21hc2sxNl91OChfX21tYXNrMTYgX19BLCBfX21tYXNrMTYgX19CKQp7CiAgcmV0dXJuICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0Y2hpKF9fQSwgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX2t0ZXN0el9tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAodW5zaWduZWQgY2hhcilfX2J1aWx0aW5faWEzMl9rdGVzdHpoaShfX0EsIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGNoYXIgX19ERUZBVUxUX0ZOX0FUVFJTCl9rdGVzdF9tYXNrMTZfdTgoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQiwgdW5zaWduZWQgY2hhciAqX19DKSB7CiAgKl9fQyA9ICh1bnNpZ25lZCBjaGFyKV9fYnVpbHRpbl9pYTMyX2t0ZXN0Y2hpKF9fQSwgX19CKTsKICByZXR1cm4gKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfa3Rlc3R6aGkoX19BLCBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2thZGRfbWFzazgoX19tbWFzazggX19BLCBfX21tYXNrOCBfX0IpCnsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2thZGRxaSgoX19tbWFzazgpX19BLCAoX19tbWFzazgpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUwpfa2FkZF9tYXNrMTYoX19tbWFzazE2IF9fQSwgX19tbWFzazE2IF9fQikKewogIHJldHVybiAoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2thZGRoaSgoX19tbWFzazE2KV9fQSwgKF9fbW1hc2sxNilfX0IpOwp9CgojZGVmaW5lIF9rc2hpZnRsaV9tYXNrOChBLCBJKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rc2hpZnRsaXFpKChfX21tYXNrOCkoQSksICh1bnNpZ25lZCBpbnQpKEkpKSkKCiNkZWZpbmUgX2tzaGlmdHJpX21hc2s4KEEsIEkpIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2tzaGlmdHJpcWkoKF9fbW1hc2s4KShBKSwgKHVuc2lnbmVkIGludCkoSSkpKQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfY3Z0bWFzazhfdTMyKF9fbW1hc2s4IF9fQSkgewogIHJldHVybiAodW5zaWduZWQgaW50KV9fYnVpbHRpbl9pYTMyX2ttb3ZiKChfX21tYXNrOClfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlMKX2N2dHUzMl9tYXNrOCh1bnNpZ25lZCBpbnQgX19BKSB7CiAgcmV0dXJuIChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9rbW92YigoX19tbWFzazgpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTCl9sb2FkX21hc2s4KF9fbW1hc2s4ICpfX0EpIHsKICByZXR1cm4gKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ttb3ZiKCooX19tbWFzazggKilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfc3RvcmVfbWFzazgoX19tbWFzazggKl9fQSwgX19tbWFzazggX19CKSB7CiAgKihfX21tYXNrOCAqKV9fQSA9IF9fYnVpbHRpbl9pYTMyX2ttb3ZiKChfX21tYXNrOClfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbXVsbG9fZXBpNjQgKF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSkgKChfX3Y4ZHUpIF9fQSAqIChfX3Y4ZHUpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX211bGxvX2VwaTY0KF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikgewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9tdWxsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X211bGxvX2VwaTY0KF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKSB7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX211bGxvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX3hvcl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpKChfX3Y4ZHUpX19BIF4gKF9fdjhkdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza194b3JfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfeG9yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3hvcl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3hvcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl94b3JfcHMgKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c3UpX19BIF4gKF9fdjE2c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza194b3JfcHMoX19tNTEyIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3hvcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X3hvcl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfeG9yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9vcl9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpKChfX3Y4ZHUpX19BIHwgKF9fdjhkdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19vcl9wZChfX201MTJkIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9vcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9vcl9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX29yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX29yX3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMikoKF9fdjE2c3UpX19BIHwgKF9fdjE2c3UpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19vcl9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfb3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9vcl9wcyhfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfb3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpKChfX3Y4ZHUpX19BICYgKF9fdjhkdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19hbmRfcGQoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EsIF9fbTUxMmQgX19CKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfYW5kX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2FuZF9wZChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2FuZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9hbmRfcHMoX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKSgoX192MTZzdSlfX0EgJiAoX192MTZzdSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2FuZF9wcyhfX201MTIgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTIgX19BLCBfX201MTIgX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYW5kX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYW5kX3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9hbmRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2FuZG5vdF9wZChfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpKH4oX192OGR1KV9fQSAmIChfX3Y4ZHUpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYW5kbm90X3BkKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BLCBfX201MTJkIF9fQikgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2FuZG5vdF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRub3RfcGQoX19tbWFzazggX19VLCBfX201MTJkIF9fQSwgX19tNTEyZCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9hbmRub3RfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYW5kbm90X3BzKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMikofihfX3YxNnN1KV9fQSAmIChfX3YxNnN1KV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYW5kbm90X3BzKF9fbTUxMiBfX1csIF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9hbmRub3RfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTIgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9hbmRub3RfcHMoX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSwgX19tNTEyIF9fQikgewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2FuZG5vdF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cGRfZXBpNjQgKF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cGRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBkX2VwaTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cGQycXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwZF9lcGk2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dF9yb3VuZHBkX2VwaTY0KFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cGQycXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnRwZF9lcHU2NCAoX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBkX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBkX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kcGRfZXB1NjQoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBkX2VwdTY0KFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcGRfZXB1NjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHBzX2VwaTY0IChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBzX2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnRwc19lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnRfcm91bmRwc19lcGk2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRwc19lcGk2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kcHNfZXBpNjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnRwczJxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0cHNfZXB1NjQgKF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dHBzX2VwdTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0cHNfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZHBzX2VwdTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMydXFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZHBzX2VwdTY0KFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0cHMydXFxNTEyX21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRwc19lcHU2NChVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpNjRfcGQgKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y4ZGkpX19BLCBfX3Y4ZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9wZCAoX19tNTEyZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJkIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXBpNjRfcGQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0X3JvdW5kZXBpNjRfcGQoQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnRxcTJwZDUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dF9yb3VuZGVwaTY0X3BkKFcsIFUsIEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0cXEycGQ1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpNjRfcGQoVSwgQSwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9jdnRxcTJwZDUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXBpNjRfcHMgKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnRlcGk2NF9wcyAoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwaTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgKF9fdjhzZikgX21tMjU2X3NldHplcm9fcHMoKSwKICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwaTY0X3BzKEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnRxcTJwczUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcGk2NF9wcyhXLCBVLCBBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0cXEycHM1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXBpNjRfcHMoVSwgQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cGRfZXBpNjQgKF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGRfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9fVywKICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBkX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQycXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UsCiAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBkX2VwaTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcGRfZXBpNjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cGQycXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnR0X3JvdW5kcGRfZXBpNjQoVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cGQycXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dHRwZF9lcHU2NCAoX19tNTEyZCBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXE1MTJfbWFzayAoKF9fdjhkZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cGRfZXB1NjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmQgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxNTEyX21hc2sgKChfX3Y4ZGYpIF9fQSwKICAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHRwZF9lcHU2NCAoX19tbWFzazggX19VLCBfX201MTJkIF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTUxMl9tYXNrICgoX192OGRmKSBfX0EsCiAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgojZGVmaW5lIF9tbTUxMl9jdnR0X3JvdW5kcGRfZXB1NjQoQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwZF9lcHU2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSkoX19tNTEyaSkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwZF9lcHU2NChVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXE1MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0dHBzX2VwaTY0IChfX20yNTYgX19BKSB7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgIChfX3Y4ZGkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cHNfZXBpNjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTUxMl9tYXNrICgoX192OHNmKSBfX0EsCiAgICAgICAgICAgICAgICAgKF9fdjhkaSkgX19XLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9jdnR0cHNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSkgewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxNTEyX21hc2sgKChfX3Y4c2YpIF9fQSwKICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dHRfcm91bmRwc19lcGk2NChBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnR0X3JvdW5kcHNfZXBpNjQoVywgVSwgQSwgUikgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9jdnR0cHMycXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpKF9fbTUxMmkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2N2dHRfcm91bmRwc19lcGk2NChVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9jdnR0cHNfZXB1NjQgKF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19jdnR0cHNfZXB1NjQgKF9fbTUxMmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKSBfX1csCiAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0dHBzX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EpIHsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzayAoKF9fdjhzZikgX19BLAogICAgICAgICAgICAgICAgICAoX192OGRpKSBfbW01MTJfc2V0emVyb19zaTUxMigpLAogICAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKI2RlZmluZSBfbW01MTJfY3Z0dF9yb3VuZHBzX2VwdTY0KEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2N2dHRfcm91bmRwc19lcHU2NChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJ1cXE1MTJfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0dF9yb3VuZHBzX2VwdTY0KFUsIEEsIFIpIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTUxMl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGkpX21tNTEyX3NldHplcm9fc2k1MTIoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX2N2dGVwdTY0X3BkIChfX201MTJpIF9fQSkgewogIHJldHVybiAoX19tNTEyZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192OGR1KV9fQSwgX192OGRmKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1NjRfcGQgKF9fbTUxMmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXB1NjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dGVwdTY0X3BkIChfX21tYXNrOCBfX1UsIF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfY3Z0ZXB1NjRfcGQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwdTY0X3BkKEEsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfY3Z0dXFxMnBkNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcHU2NF9wZChXLCBVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwZDUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCgojZGVmaW5lIF9tbTUxMl9tYXNrel9jdnRfcm91bmRlcHU2NF9wZChVLCBBLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwZDUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0ZXB1NjRfcHMgKF9fbTUxMmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTYpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczUxMl9tYXNrICgoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192OHNmKSBfbW0yNTZfc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0ZXB1NjRfcHMgKF9fbTI1NiBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VLAogICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0ZXB1NjRfcHMgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NikgX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzNTEyX21hc2sgKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y4c2YpIF9tbTI1Nl9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSwKICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTik7Cn0KCiNkZWZpbmUgX21tNTEyX2N2dF9yb3VuZGVwdTY0X3BzKEEsIFIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9jdnR1cXEycHM1MTJfbWFzaygoX192OGRpKShfX201MTJpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza19jdnRfcm91bmRlcHU2NF9wcyhXLCBVLCBBLCBSKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfY3Z0X3JvdW5kZXB1NjRfcHMoVSwgQSwgUikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcmFuZ2VfcGQoQSwgQiwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JhbmdlX3BkKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmFuZ2VfcGQoVSwgQSwgQiwgQykgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfcmFuZ2Vfcm91bmRfcGQoQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmFuZ2Vfcm91bmRfcGQoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpKF9fbTUxMmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JhbmdlX3JvdW5kX3BkKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfcmFuZ2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW01MTJfcmFuZ2VfcHMoQSwgQiwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JhbmdlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JhbmdlX3BzKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yYW5nZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza3pfcmFuZ2VfcHMoVSwgQSwgQiwgQykgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JhbmdlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfcmFuZ2Vfcm91bmRfcHMoQSwgQiwgQywgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JhbmdlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JhbmdlX3JvdW5kX3BzKFcsIFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yYW5nZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpLCAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yYW5nZV9yb3VuZF9wcyhVLCBBLCBCLCBDLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmFuZ2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yYW5nZV9yb3VuZF9zcyhBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmFuZ2VzczEyOF9yb3VuZF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSwgKGludCkoQyksXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9yYW5nZV9zcyhBICxCICwgQykgX21tX3JhbmdlX3JvdW5kX3NzKEEsIEIsIEMgLF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2Vfcm91bmRfc3MoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3Jhbmdlc3MxMjhfcm91bmRfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19yYW5nZV9zcyhXICwgVSwgQSwgQiwgQykgX21tX21hc2tfcmFuZ2Vfcm91bmRfc3MoVywgVSwgQSwgQiwgQyAsIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikKCiNkZWZpbmUgX21tX21hc2t6X3JhbmdlX3JvdW5kX3NzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yYW5nZXNzMTI4X3JvdW5kX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSxcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JhbmdlX3NzKFUsIEEgLEIgLCBDKSBfbW1fbWFza3pfcmFuZ2Vfcm91bmRfc3MoVSwgQSwgQiwgQyAsX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fcmFuZ2Vfcm91bmRfc2QoQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXNkMTI4X3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEsIChpbnQpKEMpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JhbmdlX3NkKEEgLEIgLCBDKSBfbW1fcmFuZ2Vfcm91bmRfc2QoQSwgQiwgQyAsX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza19yYW5nZV9yb3VuZF9zZChXLCBVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3Jhbmdlc2QxMjhfcm91bmRfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2tfcmFuZ2Vfc2QoVywgVSwgQSwgQiwgQykgX21tX21hc2tfcmFuZ2Vfcm91bmRfc2QoVywgVSwgQSwgQiwgQyAsX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKQoKI2RlZmluZSBfbW1fbWFza3pfcmFuZ2Vfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXNkMTI4X3JvdW5kX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKEMpLFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX21hc2t6X3JhbmdlX3NkKFUsIEEsIEIsIEMpIF9tbV9tYXNrel9yYW5nZV9yb3VuZF9zZChVLCBBLCBCLCBDICxfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pCgojZGVmaW5lIF9tbTUxMl9yZWR1Y2VfcGQoQSwgQikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JlZHVjZV9wZChXLCBVLCBBLCBCKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X3JlZHVjZV9wZChVLCBBLCBCKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9yZWR1Y2VfcHMoQSwgQikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW01MTJfbWFza19yZWR1Y2VfcHMoVywgVSwgQSwgQikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikoX19tNTEyKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yZWR1Y2VfcHMoVSwgQSwgQikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tNTEyX3JlZHVjZV9yb3VuZF9wZChBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZilfbW01MTJfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX3JlZHVjZV9yb3VuZF9wZChXLCBVLCBBLCBCLCBSKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBkNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkZikoX19tNTEyZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yZWR1Y2Vfcm91bmRfcGQoVSwgQSwgQiwgUikgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX3JlZHVjZV9yb3VuZF9wcyhBLCBCLCBSKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfcmVkdWNlcHM1MTJfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEsIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfcmVkdWNlX3JvdW5kX3BzKFcsIFUsIEEsIEIsIFIpIFwKICAoKF9fbTUxMilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpKF9fbTUxMikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpKFUpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9yZWR1Y2Vfcm91bmRfcHMoVSwgQSwgQiwgUikgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzNTEyX21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazE2KShVKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fcmVkdWNlX3NzKEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2Vzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgKF9fbW1hc2s4KS0xLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgX01NX0ZST1VORF9DVVJfRElSRUNUSU9OKSkKCiNkZWZpbmUgX21tX21hc2tfcmVkdWNlX3NzKFcsIFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2Vzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoVyksIChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEMpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3NzKFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2Vzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9NTV9GUk9VTkRfQ1VSX0RJUkVDVElPTikpCgojZGVmaW5lIF9tbV9yZWR1Y2Vfcm91bmRfc3MoQSwgQiwgQywgUikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNzX21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCAoX19tbWFzazgpLTEsIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEMpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrX3JlZHVjZV9yb3VuZF9zcyhXLCBVLCBBLCBCLCBDLCBSKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlc3NfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKShfX20xMjgpKFcpLCAoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3JvdW5kX3NzKFUsIEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2Vzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIChpbnQpKFIpKSkKCiNkZWZpbmUgX21tX3JlZHVjZV9zZChBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JlZHVjZXNkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2Vfc2QoVywgVSwgQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEMpLCBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fbWFza3pfcmVkdWNlX3NkKFUsIEEsIEIsIEMpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTU1fRlJPVU5EX0NVUl9ESVJFQ1RJT04pKQoKI2RlZmluZSBfbW1fcmVkdWNlX3JvdW5kX3NkKEEsIEIsIEMsIFIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlc2RfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xLCAoaW50KShDKSwgKGludCkoUikpKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2Vfcm91bmRfc2QoVywgVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEMpLCAoaW50KShSKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2Vfcm91bmRfc2QoVSwgQSwgQiwgQywgUikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpLCAoaW50KShDKSwgKGludCkoUikpKQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazE2IF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbW92ZXBpMzJfbWFzayAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2sxNikgX19idWlsdGluX2lhMzJfY3Z0ZDJtYXNrNTEyICgoX192MTZzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdm1fZXBpMzIgKF9fbW1hc2sxNiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syZDUxMiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdm1fZXBpNjQgKF9fbW1hc2s4IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJxNTEyIChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrOCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21vdmVwaTY0X21hc2sgKF9fbTUxMmkgX19BKQp7CiAgcmV0dXJuIChfX21tYXNrOCkgX19idWlsdGluX2lhMzJfY3Z0cTJtYXNrNTEyICgoX192OGRpKSBfX0EpOwp9CgoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2YzMngyIChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2YzMngyIChfX201MTIgX19PLCBfX21tYXNrMTYgX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfYnJvYWRjYXN0X2YzMngyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9mMzJ4MiAoX19tbWFzazE2IF9fTSwgX19tMTI4IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Jyb2FkY2FzdF9mMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2YzMng4KF9fbTI1NiBfX0EpCnsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fQSwgKF9fdjhzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19icm9hZGNhc3RfZjMyeDgoX19tNTEyIF9fTywgX19tbWFzazE2IF9fTSwgX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9icm9hZGNhc3RfZjMyeDgoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9mMzJ4OChfX21tYXNrMTYgX19NLCBfX20yNTYgX19BKQp7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX2Jyb2FkY2FzdF9mMzJ4OChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2YpX21tNTEyX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmQgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RfZjY0eDIoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmQpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX0EsIChfX3YyZGYpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2Y2NHgyKF9fbTUxMmQgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2Jyb2FkY2FzdF9mNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX19PKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyZCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2Jyb2FkY2FzdF9mNjR4MihfX21tYXNrOCBfX00sIF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2Jyb2FkY2FzdF9mNjR4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RfaTMyeDIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSwgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9pMzJ4MiAoX19tNTEyaSBfX08sIF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYnJvYWRjYXN0X2kzMngyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrel9icm9hZGNhc3RfaTMyeDIgKF9fbW1hc2sxNiBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYnJvYWRjYXN0X2kzMngyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfYnJvYWRjYXN0X2kzMng4KF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2kpX19BLCAoX192OHNpKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2Jyb2FkY2FzdF9pMzJ4OChfX201MTJpIF9fTywgX19tbWFzazE2IF9fTSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfYnJvYWRjYXN0X2kzMng4KF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2kzMng4KF9fbW1hc2sxNiBfX00sIF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2Jyb2FkY2FzdF9pMzJ4OChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9icm9hZGNhc3RfaTY0eDIoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxLCAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfYnJvYWRjYXN0X2k2NHgyKF9fbTUxMmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfNTEyKChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfYnJvYWRjYXN0X2k2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfYnJvYWRjYXN0X2k2NHgyKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9icm9hZGNhc3RfaTY0eDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyKCkpOwp9CgojZGVmaW5lIF9tbTUxMl9leHRyYWN0ZjMyeDhfcHMoQSwgaW1tKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfZXh0cmFjdGYzMng4X21hc2soKF9fdjE2c2YpKF9fbTUxMikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl91bmRlZmluZWRfcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2V4dHJhY3RmMzJ4OF9wcyhXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDhfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RmMzJ4OF9wcyhVLCBBLCBpbW0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjMyeDhfbWFzaygoX192MTZzZikoX19tNTEyKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfZXh0cmFjdGY2NHgyX3BkKEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0ZjY0eDJfcGQoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmNjR4Ml81MTJfbWFzaygoX192OGRmKShfX201MTJkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfbWFza3pfZXh0cmFjdGY2NHgyX3BkKFUsIEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfNTEyX21hc2soKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTUxMl9leHRyYWN0aTMyeDhfZXBpMzIoQSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4OF9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW01MTJfbWFza19leHRyYWN0aTMyeDhfZXBpMzIoVywgVSwgQSwgaW1tKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpMzJ4OF9tYXNrKChfX3YxNnNpKShfX201MTJpKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RpMzJ4OF9lcGkzMihVLCBBLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfZXh0cmFjdGkzMng4X21hc2soKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2V4dHJhY3RpNjR4Ml9lcGk2NChBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHgyXzUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fdW5kZWZpbmVkX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZXh0cmFjdGk2NHgyX2VwaTY0KFcsIFUsIEEsIGltbSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9leHRyYWN0aTY0eDJfNTEyX21hc2soKF9fdjhkaSkoX19tNTEyaSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpKF9fbTEyOGkpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2V4dHJhY3RpNjR4Ml9lcGk2NChVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHgyXzUxMl9tYXNrKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW01MTJfaW5zZXJ0ZjMyeDgoQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfaW5zZXJ0ZjMyeDgoKF9fdjE2c2YpKF9fbTUxMikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0ZjMyeDgoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9pbnNlcnRmMzJ4OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKShfX201MTIpKFcpKSkKCiNkZWZpbmUgX21tNTEyX21hc2t6X2luc2VydGYzMng4KFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzUxMigoX19tbWFzazE2KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfaW5zZXJ0ZjMyeDgoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19wcygpKSkKCiNkZWZpbmUgX21tNTEyX2luc2VydGY2NHgyKEEsIEIsIGltbSkgXAogICgoX19tNTEyZClfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4Ml81MTIoKF9fdjhkZikoX19tNTEyZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0ZjY0eDIoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKV9tbTUxMl9pbnNlcnRmNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRmKShfX201MTJkKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRmNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfNTEyKChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX2luc2VydGY2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4ZGYpX21tNTEyX3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRpMzJ4OChBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTMyeDgoKF9fdjE2c2kpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfaW5zZXJ0aTMyeDgoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX201MTJpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfNTEyKChfX21tYXNrMTYpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9pbnNlcnRpMzJ4OCgoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRpMzJ4OChVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNikoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2luc2VydGkzMng4KChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX3NldHplcm9fc2k1MTIoKSkpCgojZGVmaW5lIF9tbTUxMl9pbnNlcnRpNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTY0eDJfNTEyKChfX3Y4ZGkpKF9fbTUxMmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2luc2VydGk2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9pbnNlcnRpNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKShfX201MTJpKShXKSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrel9pbnNlcnRpNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KShVKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfaW5zZXJ0aTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKSkKCiNkZWZpbmUgX21tNTEyX21hc2tfZnBjbGFzc19wc19tYXNrKFUsIEEsIGltbSkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2sxNikoVSkpKQoKI2RlZmluZSBfbW01MTJfZnBjbGFzc19wc19tYXNrKEEsIGltbSkgXAogICgoX19tbWFzazE2KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwczUxMl9tYXNrKChfX3YxNnNmKShfX201MTIpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgKF9fbW1hc2sxNiktMSkpCgojZGVmaW5lIF9tbTUxMl9tYXNrX2ZwY2xhc3NfcGRfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tNTEyX2ZwY2xhc3NfcGRfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwZDUxMl9tYXNrKChfX3Y4ZGYpKF9fbTUxMmQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fZnBjbGFzc19zZF9tYXNrKEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3NkX21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZwY2xhc3Nfc2RfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NzZF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX2ZwY2xhc3Nfc3NfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3Nzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZwY2xhc3Nfc3NfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3Nzc19tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzUxMgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCgojZW5kaWYKAGh0bWludHJpbi5oAG1zYS5oAC8qPT09LS0tLSBwb3BjbnRpbnRyaW4uaCAtIFBPUENOVCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19QT1BDTlRJTlRSSU5fSAojZGVmaW5lIF9fUE9QQ05USU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJwb3BjbnQiKSkpCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgKF9fY3BsdXNwbHVzID49IDIwMTEwM0wpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUiBfX0RFRkFVTFRfRk5fQVRUUlMgY29uc3RleHByCiNlbHNlCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUiBfX0RFRkFVTFRfRk5fQVRUUlMKI2VuZGlmCgovLy8gQ291bnRzIHRoZSBudW1iZXIgb2YgYml0cyBpbiB0aGUgc291cmNlIG9wZXJhbmQgaGF2aW5nIGEgdmFsdWUgb2YgMS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBQT1BDTlQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBbiB1bnNpZ25lZCAzMi1iaXQgaW50ZWdlciBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAzMi1iaXQgaW50ZWdlciBjb250YWluaW5nIHRoZSBudW1iZXIgb2YgYml0cyB3aXRoIHZhbHVlIDEgaW4gdGhlCi8vLyAgICBzb3VyY2Ugb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lX18gaW50IF9fREVGQVVMVF9GTl9BVFRSU19DT05TVEVYUFIKX21tX3BvcGNudF91MzIodW5zaWduZWQgaW50IF9fQSkKewogIHJldHVybiBfX2J1aWx0aW5fcG9wY291bnQoX19BKTsKfQoKI2lmZGVmIF9feDg2XzY0X18KLy8vIENvdW50cyB0aGUgbnVtYmVyIG9mIGJpdHMgaW4gdGhlIHNvdXJjZSBvcGVyYW5kIGhhdmluZyBhIHZhbHVlIG9mIDEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gUE9QQ05UIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQW4gdW5zaWduZWQgNjQtYml0IGludGVnZXIgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgNjQtYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGJpdHMgd2l0aCB2YWx1ZSAxIGluIHRoZQovLy8gICAgc291cmNlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZV9fIGxvbmcgbG9uZyBfX0RFRkFVTFRfRk5fQVRUUlNfQ09OU1RFWFBSCl9tbV9wb3BjbnRfdTY0KHVuc2lnbmVkIGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gX19idWlsdGluX3BvcGNvdW50bGwoX19BKTsKfQojZW5kaWYgLyogX194ODZfNjRfXyAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTX0NPTlNURVhQUgoKI2VuZGlmIC8qIF9fUE9QQ05USU5UUklOX0ggKi8KAHNlcmlhbGl6ZWludHJpbi5oAHRnbWF0aC5oAC8vPT09LS0gc2FuaXRpemVyL3Vic2FuX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi0gQysrIC0qLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFRoaXMgZmlsZSBpcyBhIHBhcnQgb2YgVUJTYW5pdGl6ZXIgKFVCU2FuKS4KLy8KLy8gUHVibGljIGludGVyZmFjZSBoZWFkZXIuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX1VCU0FOX0lOVEVSRkFDRV9ICiNkZWZpbmUgU0FOSVRJWkVSX1VCU0FOX0lOVEVSRkFDRV9ICgojaWZkZWYgX19jcGx1c3BsdXMKZXh0ZXJuICJDIiB7CiNlbmRpZgovLy8gVXNlci1wcm92aWRlZCBkZWZhdWx0IG9wdGlvbiBzZXR0aW5ncy4KLy8vCi8vLyBZb3UgY2FuIHByb3ZpZGUgeW91ciBvd24gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBmdW5jdGlvbiB0byByZXR1cm4gYSBzdHJpbmcKLy8vIGNvbnRhaW5pbmcgVUJTYW4gcnVudGltZSBvcHRpb25zIChmb3IgZXhhbXBsZSwKLy8vIDxjPnZlcmJvc2l0eT0xOmhhbHRfb25fZXJyb3I9MDwvYz4pLgovLy8KLy8vIFxyZXR1cm5zIERlZmF1bHQgb3B0aW9ucyBzdHJpbmcuCmNvbnN0IGNoYXIqIF9fdWJzYW5fZGVmYXVsdF9vcHRpb25zKHZvaWQpOwoKI2lmZGVmIF9fY3BsdXNwbHVzCn0gIC8vIGV4dGVybiAiQyIKI2VuZGlmCgojZW5kaWYgIC8vIFNBTklUSVpFUl9VQlNBTl9JTlRFUkZBQ0VfSAoATWlzcyBmcmFjdGlvbiBwYXJ0IGluIG51bWJlci4AVW5zcGVjaWZpYyBzeW50YXggZXJyb3IuAHdiACwgAFs6XndvcmQ6XQBzaG91bGQgbmV2ZXIgaGFwcGVuAE5vIHJhbmdlcyBpbiBjaGFyIGNsYXNzAGJ5dGUlcyBbJTAyeC0lMDJ4XSAtPiAlZAAlcyVkAERvQ29hbGVzY2UgZmFpbGVkOiByMi0+b3AoKSBpcyAAQ2YAQ3lyaWxsaWMAR3VybXVraGkAT2xfQ2hpa2kAZHN0ICE9IG51bGxwdHIARHVwbGljYXRlIGFkZHIgMHglbHg6ICVzIDwtPiAweCVseDogJXMAJXM6IG5vIGV4ZWN1dGFibGUgTE9BRCBzZWdtZW50cwBsZXZlbCA+PSAxAGJsb2NrIG5vdCBiaWcgZW5vdWdoIGZvciBldmVuIG9uZSBsZXZlbABsAGcARHMAJgB+AEFCT1JURUQAVGhpcyBjYW4ndCBoYXBwZW47IGJhc2U2NCBkZWNvZGVyIHN0YXRlID0gJWQATlVMTAoALCBiZWdpbl9wb3NfID0gACwgb2Zmc2V0ID0gAF0gaGFzIG9mZnNldCAAd2FpdHAtPnRocmVhZC0+d2FpdHAgPT0gbnVsbHB0cgA6bG9jYWx0aW1lACBzcGVjPScAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9ibi9nY2RfZXh0cmEuYwBSU0EgVmVyaWZ5IEtBVCBmYWlsZWQuCgBFQ0RTQSBSAGt5dGhlLnByb3RvLkFuYWx5c2lzUmVxdWVzdC5maWxlX2RhdGFfc2VydmljZQAgIEFjdHVhbCAgIDogAENIRUNLIGZhaWxlZDogdGhpcy0+TWFwRmllbGRCYXNlOjpyZXBlYXRlZF9maWVsZF8gIT0gTlVMTDogAGMrKy1oZWFkZXIALXNoYXJlZABFcnJvciBhZGRpbmcgY29tcGlsYXRpb246IAAAKSBhcyB3ZSB3ZXJlIHVuYWJsZSB0byBmaW5kIGEgc3RhYmxlIHVuaXF1ZSByb290LgBDU3lzdGVtACNpZmRlZgAjaWZuZGVmAC8qPT09LS0tLSBfX2NsYW5nX2hpcF9tYXRoLmggLSBEZXZpY2Utc2lkZSBISVAgbWF0aCBzdXBwb3J0IC0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0NMQU5HX0hJUF9NQVRIX0hfXwojZGVmaW5lIF9fQ0xBTkdfSElQX01BVEhfSF9fCgojaWYgIWRlZmluZWQoX19ISVBfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBISVAgYW5kIE9wZW5NUCBBTURHQ04gZGV2aWNlIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZiAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKI2luY2x1ZGUgPGFsZ29yaXRobT4KI2VuZGlmCiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI2luY2x1ZGUgPG9tcC5oPgojZW5kaWYKI2VuZGlmIC8vICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fREVWSUNFX18iKQoKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZWxzZQojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fZGV2aWNlX18gaW5saW5lIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUpKQojZW5kaWYKCi8vIEEgZmV3IGZ1bmN0aW9ucyByZXR1cm4gYm9vbCB0eXBlIHN0YXJ0aW5nIG9ubHkgaW4gQysrMTEuCiNwcmFnbWEgcHVzaF9tYWNybygiX19SRVRVUk5fVFlQRSIpCiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojZGVmaW5lIF9fUkVUVVJOX1RZUEUgaW50CiNlbHNlCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQojZGVmaW5lIF9fUkVUVVJOX1RZUEUgYm9vbAojZWxzZQojZGVmaW5lIF9fUkVUVVJOX1RZUEUgaW50CiNlbmRpZgojZW5kaWYgLy8gX19PUEVOTVBfQU1ER0NOX18KCiNpZiBkZWZpbmVkIChfX2NwbHVzcGx1cykgJiYgX19jcGx1c3BsdXMgPCAyMDExMDNMCi8vIGVtdWxhdGUgc3RhdGljX2Fzc2VydCBvbiB0eXBlIHNpemVzCnRlbXBsYXRlPGJvb2w+CnN0cnVjdCBfX2NvbXBhcmVfcmVzdWx0e307CnRlbXBsYXRlPD4Kc3RydWN0IF9fY29tcGFyZV9yZXN1bHQ8dHJ1ZT4gewogIHN0YXRpYyBjb25zdCBfX2RldmljZV9fIGJvb2wgdmFsaWQ7Cn07CgpfX0RFVklDRV9fCnZvaWQgX19zdXBwcmVzc191bnVzZWRfd2FybmluZyhib29sIGIpe307CnRlbXBsYXRlIDx1bnNpZ25lZCBpbnQgUywgdW5zaWduZWQgaW50IFQ+Cl9fREVWSUNFX18gdm9pZCBfX3N0YXRpY19hc3NlcnRfZXF1YWxfc2l6ZSgpIHsKICBfX3N1cHByZXNzX3VudXNlZF93YXJuaW5nKF9fY29tcGFyZV9yZXN1bHQ8UyA9PSBUPjo6dmFsaWQpOwp9CgojZGVmaW5lIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoQSwgQikgXAogIF9fc3RhdGljX2Fzc2VydF9lcXVhbF9zaXplPEEsQj4oKQoKI2Vsc2UKI2RlZmluZSBfX3N0YXRpY19hc3NlcnRfdHlwZV9zaXplX2VxdWFsKEEsQikgXAogIHN0YXRpY19hc3NlcnQoKEEpID09IChCKSwgIiIpCgojZW5kaWYKCl9fREVWSUNFX18KdWludDY0X3QgX19tYWtlX21hbnRpc3NhX2Jhc2U4KGNvbnN0IGNoYXIgKl9fdGFncCkgewogIHVpbnQ2NF90IF9fciA9IDA7CiAgd2hpbGUgKF9fdGFncCkgewogICAgY2hhciBfX3RtcCA9ICpfX3RhZ3A7CgogICAgaWYgKF9fdG1wID49ICcwJyAmJiBfX3RtcCA8PSAnNycpCiAgICAgIF9fciA9IChfX3IgKiA4dSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYV9iYXNlMTAoY29uc3QgY2hhciAqX190YWdwKSB7CiAgdWludDY0X3QgX19yID0gMDsKICB3aGlsZSAoX190YWdwKSB7CiAgICBjaGFyIF9fdG1wID0gKl9fdGFncDsKCiAgICBpZiAoX190bXAgPj0gJzAnICYmIF9fdG1wIDw9ICc5JykKICAgICAgX19yID0gKF9fciAqIDEwdSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYV9iYXNlMTYoY29uc3QgY2hhciAqX190YWdwKSB7CiAgdWludDY0X3QgX19yID0gMDsKICB3aGlsZSAoX190YWdwKSB7CiAgICBjaGFyIF9fdG1wID0gKl9fdGFncDsKCiAgICBpZiAoX190bXAgPj0gJzAnICYmIF9fdG1wIDw9ICc5JykKICAgICAgX19yID0gKF9fciAqIDE2dSkgKyBfX3RtcCAtICcwJzsKICAgIGVsc2UgaWYgKF9fdG1wID49ICdhJyAmJiBfX3RtcCA8PSAnZicpCiAgICAgIF9fciA9IChfX3IgKiAxNnUpICsgX190bXAgLSAnYScgKyAxMDsKICAgIGVsc2UgaWYgKF9fdG1wID49ICdBJyAmJiBfX3RtcCA8PSAnRicpCiAgICAgIF9fciA9IChfX3IgKiAxNnUpICsgX190bXAgLSAnQScgKyAxMDsKICAgIGVsc2UKICAgICAgcmV0dXJuIDA7CgogICAgKytfX3RhZ3A7CiAgfQoKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCnVpbnQ2NF90IF9fbWFrZV9tYW50aXNzYShjb25zdCBjaGFyICpfX3RhZ3ApIHsKICBpZiAoIV9fdGFncCkKICAgIHJldHVybiAwdTsKCiAgaWYgKCpfX3RhZ3AgPT0gJzAnKSB7CiAgICArK19fdGFncDsKCiAgICBpZiAoKl9fdGFncCA9PSAneCcgfHwgKl9fdGFncCA9PSAnWCcpCiAgICAgIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTE2KF9fdGFncCk7CiAgICBlbHNlCiAgICAgIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTgoX190YWdwKTsKICB9CgogIHJldHVybiBfX21ha2VfbWFudGlzc2FfYmFzZTEwKF9fdGFncCk7Cn0KCi8vIEJFR0lOIEZMT0FUCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKQpfX0RFVklDRV9fCmludCBhYnMoaW50IF9feCkgewogIGludCBfX3NnbiA9IF9feCA+PiAoc2l6ZW9mKGludCkgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KX19ERVZJQ0VfXwpsb25nIGxhYnMobG9uZyBfX3gpIHsKICBsb25nIF9fc2duID0gX194ID4+IChzaXplb2YobG9uZykgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KX19ERVZJQ0VfXwpsb25nIGxvbmcgbGxhYnMobG9uZyBsb25nIF9feCkgewogIGxvbmcgbG9uZyBfX3NnbiA9IF9feCA+PiAoc2l6ZW9mKGxvbmcgbG9uZykgKiBDSEFSX0JJVCAtIDEpOwogIHJldHVybiAoX194IF4gX19zZ24pIC0gX19zZ247Cn0KI2VuZGlmCgpfX0RFVklDRV9fCmZsb2F0IGFjb3NmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgYWNvc2hmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NoX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGFzaW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2FzaW5fZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgYXNpbmhmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2FzaW5oX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGF0YW4yZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2F0YW4yX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgYXRhbmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfYXRhbl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBhdGFuaGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfYXRhbmhfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY2JydGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY2JydF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBjZWlsZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jZWlsX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGNvcHlzaWduZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2NvcHlzaWduX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgY29zZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jb3NfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY29zaGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY29zaF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBjb3NwaWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfY29zcGlfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY3lsX2Jlc3NlbF9pMGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgY3lsX2Jlc3NlbF9pMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZXJmY2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXJmY19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZjaW52ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjaW52X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGVyZmN4ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjeF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2VyZl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBlcmZpbnZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2VyZmludl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHAxMGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZXhwMmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHBmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2V4cF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBleHBtMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZXhwbTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgZmFic2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZmFic19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmZGltZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2ZkaW1fZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmZGl2aWRlZihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC8gX195OyB9CgpfX0RFVklDRV9fCmZsb2F0IGZsb29yZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9mbG9vcl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBmbWFmKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9mMzIoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZmxvYXQgZm1heGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWF4X2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZm1pbmYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWluX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZm1vZGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbW9kX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgZnJleHBmKGZsb2F0IF9feCwgaW50ICpfX25wdHIpIHsKICBpbnQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPQogICAgICBfX29jbWxfZnJleHBfZjMyKF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKikmX190bXApOwogICpfX25wdHIgPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCBoeXBvdGYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9oeXBvdF9mMzIoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmludCBpbG9nYmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaWxvZ2JfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2Zpbml0ZWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfaXNmaW5pdGVfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2lzaW5mZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pc2luZl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpfX1JFVFVSTl9UWVBFIF9faXNuYW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2lzbmFuX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGowZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9qMF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBqMWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfajFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgam5mKGludCBfX24sIGZsb2F0IF9feCkgeyAvLyBUT0RPOiB3ZSBjb3VsZCB1c2UgQWhtZXMgbXVsdGlwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4gajBmKF9feCk7CiAgaWYgKF9fbiA9PSAxKQogICAgcmV0dXJuIGoxZihfX3gpOwoKICBmbG9hdCBfX3gwID0gajBmKF9feCk7CiAgZmxvYXQgX194MSA9IGoxZihfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGZsb2F0IF9feDIgPSAoMiAqIF9faSkgLyBfX3ggKiBfX3gxIC0gX194MDsKICAgIF9feDAgPSBfX3gxOwogICAgX194MSA9IF9feDI7CiAgfQoKICByZXR1cm4gX194MTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBsZGV4cGYoZmxvYXQgX194LCBpbnQgX19lKSB7IHJldHVybiBfX29jbWxfbGRleHBfZjMyKF9feCwgX19lKTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsZ2FtbWFmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2xnYW1tYV9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGxvbmcgaW50IGxscmludGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGxvbmcgaW50IGxscm91bmRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3JvdW5kX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGxvZzEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2cxMF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsb2cxcGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nMXBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbG9nMmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBsb2diZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2diX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IGxvZ2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbG9nX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgaW50IGxyaW50ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yaW50X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgaW50IGxyb3VuZGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbW9kZmYoZmxvYXQgX194LCBmbG9hdCAqX19pcHRyKSB7CiAgZmxvYXQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPQogICAgICBfX29jbWxfbW9kZl9mMzIoX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopJl9fdG1wKTsKICAqX19pcHRyID0gX190bXA7CiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCBuYW5mKGNvbnN0IGNoYXIgKl9fdGFncCkgewogIHVuaW9uIHsKICAgIGZsb2F0IHZhbDsKICAgIHN0cnVjdCBpZWVlX2Zsb2F0IHsKICAgICAgdW5zaWduZWQgaW50IG1hbnRpc3NhIDogMjI7CiAgICAgIHVuc2lnbmVkIGludCBxdWlldCA6IDE7CiAgICAgIHVuc2lnbmVkIGludCBleHBvbmVudCA6IDg7CiAgICAgIHVuc2lnbmVkIGludCBzaWduIDogMTsKICAgIH0gYml0czsKICB9IF9fdG1wOwogIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoc2l6ZW9mKF9fdG1wLnZhbCksIHNpemVvZihfX3RtcC5iaXRzKSk7CgogIF9fdG1wLmJpdHMuc2lnbiA9IDB1OwogIF9fdG1wLmJpdHMuZXhwb25lbnQgPSB+MHU7CiAgX190bXAuYml0cy5xdWlldCA9IDF1OwogIF9fdG1wLmJpdHMubWFudGlzc2EgPSBfX21ha2VfbWFudGlzc2EoX190YWdwKTsKCiAgcmV0dXJuIF9fdG1wLnZhbDsKfQoKX19ERVZJQ0VfXwpmbG9hdCBuZWFyYnlpbnRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25lYXJieWludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBuZXh0YWZ0ZXJmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9uZXh0YWZ0ZXJfZjMyKF9feCwgX195KTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBub3JtM2RmKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2xlbjNfZjMyKF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmZsb2F0IG5vcm00ZGYoZmxvYXQgX194LCBmbG9hdCBfX3ksIGZsb2F0IF9feiwgZmxvYXQgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9sZW40X2YzMihfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmZsb2F0IG5vcm1jZGZmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25jZGZfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgbm9ybWNkZmludmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmNkZmludl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBub3JtZihpbnQgX19kaW0sCiAgICAgICAgICAgIGNvbnN0IGZsb2F0ICpfX2EpIHsgLy8gVE9ETzogcGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzIHN1cHBvcnQuCiAgZmxvYXQgX19yID0gMDsKICB3aGlsZSAoX19kaW0tLSkgewogICAgX19yICs9IF9fYVswXSAqIF9fYVswXTsKICAgICsrX19hOwogIH0KCiAgcmV0dXJuIF9fb2NtbF9zcXJ0X2YzMihfX3IpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHBvd2YoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3dfZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBwb3dpZihmbG9hdCBfX3gsIGludCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3duX2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgcmNicnRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3JjYnJ0X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHJlbWFpbmRlcmYoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19vY21sX3JlbWFpbmRlcl9mMzIoX194LCBfX3kpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHJlbXF1b2YoZmxvYXQgX194LCBmbG9hdCBfX3ksIGludCAqX19xdW8pIHsKICBpbnQgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICBmbG9hdCBfX3IgPSBfX29jbWxfcmVtcXVvX2YzMigKICAgICAgX194LCBfX3ksIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopJl9fdG1wKTsKICAqX19xdW8gPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpmbG9hdCByaHlwb3RmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfcmh5cG90X2YzMihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgcmludGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBybm9ybTNkZihmbG9hdCBfX3gsIGZsb2F0IF9feSwgZmxvYXQgX196KSB7CiAgcmV0dXJuIF9fb2NtbF9ybGVuM19mMzIoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZmxvYXQgcm5vcm00ZGYoZmxvYXQgX194LCBmbG9hdCBfX3ksIGZsb2F0IF9feiwgZmxvYXQgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9ybGVuNF9mMzIoX194LCBfX3ksIF9feiwgX193KTsKfQoKX19ERVZJQ0VfXwpmbG9hdCBybm9ybWYoaW50IF9fZGltLAogICAgICAgICAgICAgY29uc3QgZmxvYXQgKl9fYSkgeyAvLyBUT0RPOiBwbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMgc3VwcG9ydC4KICBmbG9hdCBfX3IgPSAwOwogIHdoaWxlIChfX2RpbS0tKSB7CiAgICBfX3IgKz0gX19hWzBdICogX19hWzBdOwogICAgKytfX2E7CiAgfQoKICByZXR1cm4gX19vY21sX3JzcXJ0X2YzMihfX3IpOwp9CgpfX0RFVklDRV9fCmZsb2F0IHJvdW5kZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yb3VuZF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCByc3FydGYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfcnNxcnRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgc2NhbGJsbmYoZmxvYXQgX194LCBsb25nIGludCBfX24pIHsKICByZXR1cm4gKF9fbiA8IElOVF9NQVgpID8gX19vY21sX3NjYWxibl9mMzIoX194LCBfX24pCiAgICAgICAgICAgICAgICAgICAgICAgICA6IF9fb2NtbF9zY2FsYl9mMzIoX194LCBfX24pOwp9CgpfX0RFVklDRV9fCmZsb2F0IHNjYWxibmYoZmxvYXQgX194LCBpbnQgX19uKSB7IHJldHVybiBfX29jbWxfc2NhbGJuX2YzMihfX3gsIF9fbik7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX3NpZ25iaXRmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3NpZ25iaXRfZjMyKF9feCk7IH0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NmKGZsb2F0IF9feCwgZmxvYXQgKl9fc2lucHRyLCBmbG9hdCAqX19jb3NwdHIpIHsKICBmbG9hdCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogICpfX3NpbnB0ciA9CiAgICAgIF9fb2NtbF9zaW5jb3NfZjMyKF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBmbG9hdCAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NwaWYoZmxvYXQgX194LCBmbG9hdCAqX19zaW5wdHIsIGZsb2F0ICpfX2Nvc3B0cikgewogIGZsb2F0IF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgKl9fc2lucHRyID0gX19vY21sX3NpbmNvc3BpX2YzMigKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGZsb2F0ICopJl9fdG1wKTsKICAqX19jb3NwdHIgPSBfX3RtcDsKfQoKX19ERVZJQ0VfXwpmbG9hdCBzaW5mKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3Npbl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBzaW5oZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5oX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHNpbnBpZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5waV9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBzcXJ0ZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHRhbmYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfdGFuX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHRhbmhmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3RhbmhfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgdGdhbW1hZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF90Z2FtbWFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgdHJ1bmNmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3RydW5jX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IHkwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF95MF9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCB5MWYoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfeTFfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgeW5mKGludCBfX24sIGZsb2F0IF9feCkgeyAvLyBUT0RPOiB3ZSBjb3VsZCB1c2UgQWhtZXMgbXVsdGlwbGljYXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4gUGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzCiAgLy8gICAgICAgc3VwcG9ydC4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4geTBmKF9feCk7CiAgaWYgKF9fbiA9PSAxKQogICAgcmV0dXJuIHkxZihfX3gpOwoKICBmbG9hdCBfX3gwID0geTBmKF9feCk7CiAgZmxvYXQgX194MSA9IHkxZihfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGZsb2F0IF9feDIgPSAoMiAqIF9faSkgLyBfX3ggKiBfX3gxIC0gX194MDsKICAgIF9feDAgPSBfX3gxOwogICAgX194MSA9IF9feDI7CiAgfQoKICByZXR1cm4gX194MTsKfQoKLy8gQkVHSU4gSU5UUklOU0lDUwoKX19ERVZJQ0VfXwpmbG9hdCBfX2Nvc2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX2Nvc19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX2V4cDEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfZXhwMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgX19leHBmKGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX25hdGl2ZV9leHBfZjMyKF9feCk7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JkKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0bl9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JuKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0ZV9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3J1KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0cF9mMzIoX194LCBfX3kpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3J6KGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX29jbWxfYWRkX3J0el9mMzIoX194LCBfX3kpOyB9CiNlbHNlCl9fREVWSUNFX18KZmxvYXQgX19mYWRkX3JuKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX3ggKyBfX3k7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZmRpdl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC8gX195OyB9CiNlbmRpZgoKX19ERVZJQ0VfXwpmbG9hdCBfX2ZkaXZpZGVmKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBfX3ggLyBfX3k7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JkKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydG5fZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JuKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydGVfZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3J1KGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydHBfZjMyKF9feCwgX195LCBfX3opOwp9Cl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3J6KGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9ydHpfZjMyKF9feCwgX195LCBfX3opOwp9CiNlbHNlCl9fREVWSUNFX18KZmxvYXQgX19mbWFmX3JuKGZsb2F0IF9feCwgZmxvYXQgX195LCBmbG9hdCBfX3opIHsKICByZXR1cm4gX19vY21sX2ZtYV9mMzIoX194LCBfX3ksIF9feik7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX211bF9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZm11bF9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194ICogX195OyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpmbG9hdCBfX2ZyY3BfcmQoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0bl9mMzIoMS4wZiwgX194KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnJjcF9ybihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9kaXZfcnRlX2YzMigxLjBmLCBfX3gpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mcmNwX3J1KGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX2Rpdl9ydHBfZjMyKDEuMGYsIF9feCk7IH0KX19ERVZJQ0VfXwpmbG9hdCBfX2ZyY3BfcnooZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0el9mMzIoMS4wZiwgX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnJjcF9ybihmbG9hdCBfX3gpIHsgcmV0dXJuIDEuMGYgLyBfX3g7IH0KI2VuZGlmCgpfX0RFVklDRV9fCmZsb2F0IF9fZnJzcXJ0X3JuKGZsb2F0IF9feCkgeyByZXR1cm4gX19sbHZtX2FtZGdjbl9yc3FfZjMyKF9feCk7IH0KCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZmxvYXQgX19mc3FydF9yZChmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0bl9mMzIoX194KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnNxcnRfcm4oZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfc3FydF9ydGVfZjMyKF9feCk7IH0KX19ERVZJQ0VfXwpmbG9hdCBfX2ZzcXJ0X3J1KGZsb2F0IF9feCkgeyByZXR1cm4gX19vY21sX3NxcnRfcnRwX2YzMihfX3gpOyB9Cl9fREVWSUNFX18KZmxvYXQgX19mc3FydF9yeihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0el9mMzIoX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnNxcnRfcm4oZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX3NxcnRfZjMyKF9feCk7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9yZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydG5fZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydGVfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ydShmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydHBfZjMyKF9feCwgX195KTsgfQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9yeihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX19vY21sX3N1Yl9ydHpfZjMyKF9feCwgX195KTsgfQojZWxzZQpfX0RFVklDRV9fCmZsb2F0IF9fZnN1Yl9ybihmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gX194IC0gX195OyB9CiNlbmRpZgoKX19ERVZJQ0VfXwpmbG9hdCBfX2xvZzEwZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfbG9nMTBfZjMyKF9feCk7IH0KCl9fREVWSUNFX18KZmxvYXQgX19sb2cyZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfbG9nMl9mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX2xvZ2YoZmxvYXQgX194KSB7IHJldHVybiBfX29jbWxfbmF0aXZlX2xvZ19mMzIoX194KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX3Bvd2YoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3dfZjMyKF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpmbG9hdCBfX3NhdHVyYXRlZihmbG9hdCBfX3gpIHsgcmV0dXJuIChfX3ggPCAwKSA/IDAgOiAoKF9feCA+IDEpID8gMSA6IF9feCk7IH0KCl9fREVWSUNFX18Kdm9pZCBfX3NpbmNvc2YoZmxvYXQgX194LCBmbG9hdCAqX19zaW5wdHIsIGZsb2F0ICpfX2Nvc3B0cikgewogICpfX3NpbnB0ciA9IF9fb2NtbF9uYXRpdmVfc2luX2YzMihfX3gpOwogICpfX2Nvc3B0ciA9IF9fb2NtbF9uYXRpdmVfY29zX2YzMihfX3gpOwp9CgpfX0RFVklDRV9fCmZsb2F0IF9fc2luZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uYXRpdmVfc2luX2YzMihfX3gpOyB9CgpfX0RFVklDRV9fCmZsb2F0IF9fdGFuZihmbG9hdCBfX3gpIHsgcmV0dXJuIF9fb2NtbF90YW5fZjMyKF9feCk7IH0KLy8gRU5EIElOVFJJTlNJQ1MKLy8gRU5EIEZMT0FUCgovLyBCRUdJTiBET1VCTEUKX19ERVZJQ0VfXwpkb3VibGUgYWNvcyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYWNvc19mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgYWNvc2goZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2Fjb3NoX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhc2luKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9hc2luX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhc2luaChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYXNpbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGF0YW4oZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2F0YW5fZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGF0YW4yKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9hdGFuMl9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBhdGFuaChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfYXRhbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNicnQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2NicnRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNlaWwoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2NlaWxfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGNvcHlzaWduKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2NvcHlzaWduX2Y2NChfX3gsIF9feSk7Cn0KCl9fREVWSUNFX18KZG91YmxlIGNvcyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfY29zX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjb3NoKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9jb3NoX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjb3NwaShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfY29zcGlfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGN5bF9iZXNzZWxfaTAoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2kwX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBjeWxfYmVzc2VsX2kxKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pMV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZXJmKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmMoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2VyZmNfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmNpbnYoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2VyZmNpbnZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGVyZmN4KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZjeF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZXJmaW52KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9lcmZpbnZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZXhwX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBleHAxMChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZXhwMTBfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cDIoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2V4cDJfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGV4cG0xKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9leHBtMV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZmFicyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZmFic19mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZmRpbShkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfZmRpbV9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBmbG9vcihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZmxvb3JfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGZtYShkb3VibGUgX194LCBkb3VibGUgX195LCBkb3VibGUgX196KSB7CiAgcmV0dXJuIF9fb2NtbF9mbWFfZjY0KF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBmbWF4KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9mbWF4X2Y2NChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIGZtaW4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX19vY21sX2ZtaW5fZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgZm1vZChkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfZm1vZF9mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBmcmV4cChkb3VibGUgX194LCBpbnQgKl9fbnB0cikgewogIGludCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogIGRvdWJsZSBfX3IgPQogICAgICBfX29jbWxfZnJleHBfZjY0KF9feCwgKF9fYXR0cmlidXRlX18oKGFkZHJlc3Nfc3BhY2UoNSkpKSBpbnQgKikmX190bXApOwogICpfX25wdHIgPSBfX3RtcDsKICByZXR1cm4gX19yOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBoeXBvdChkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBfX29jbWxfaHlwb3RfZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwppbnQgaWxvZ2IoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2lsb2diX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCl9fUkVUVVJOX1RZUEUgX19maW5pdGUoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2lzZmluaXRlX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCl9fUkVUVVJOX1RZUEUgX19pc2luZihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfaXNpbmZfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX2lzbmFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9pc25hbl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgajAoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX2owX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBqMShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfajFfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGpuKGludCBfX24sIGRvdWJsZSBfX3gpIHsgLy8gVE9ETzogd2UgY291bGQgdXNlIEFobWVzIG11bHRpcGxpY2F0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFuZCB0aGUgTWlsbGVyICYgQnJvd24gYWxnb3JpdGhtCiAgLy8gICAgICAgZm9yIGxpbmVhciByZWN1cnJlbmNlcyB0byBnZXQgTyhsb2cgbikgc3RlcHMsIGJ1dCBpdCdzIHVuY2xlYXIgaWYKICAvLyAgICAgICBpdCdkIGJlIGJlbmVmaWNpYWwgaW4gdGhpcyBjYXNlLiBQbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMKICAvLyAgICAgICBzdXBwb3J0LgogIGlmIChfX24gPT0gMCkKICAgIHJldHVybiBqMChfX3gpOwogIGlmIChfX24gPT0gMSkKICAgIHJldHVybiBqMShfX3gpOwoKICBkb3VibGUgX194MCA9IGowKF9feCk7CiAgZG91YmxlIF9feDEgPSBqMShfX3gpOwogIGZvciAoaW50IF9faSA9IDE7IF9faSA8IF9fbjsgKytfX2kpIHsKICAgIGRvdWJsZSBfX3gyID0gKDIgKiBfX2kpIC8gX194ICogX194MSAtIF9feDA7CiAgICBfX3gwID0gX194MTsKICAgIF9feDEgPSBfX3gyOwogIH0KICByZXR1cm4gX194MTsKfQoKX19ERVZJQ0VfXwpkb3VibGUgbGRleHAoZG91YmxlIF9feCwgaW50IF9fZSkgeyByZXR1cm4gX19vY21sX2xkZXhwX2Y2NChfX3gsIF9fZSk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxnYW1tYShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbGdhbW1hX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgbG9uZyBpbnQgbGxyaW50KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yaW50X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmxvbmcgbG9uZyBpbnQgbGxyb3VuZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxvZyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBsb2cxMChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nMTBfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIGxvZzFwKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9sb2cxcF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgbG9nMihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nMl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgbG9nYihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbG9nYl9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGludCBscmludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpsb25nIGludCBscm91bmQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3JvdW5kX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBtb2RmKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19pcHRyKSB7CiAgZG91YmxlIF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgZG91YmxlIF9fciA9CiAgICAgIF9fb2NtbF9tb2RmX2Y2NChfX3gsIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgZG91YmxlICopJl9fdG1wKTsKICAqX19pcHRyID0gX190bXA7CgogIHJldHVybiBfX3I7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5hbihjb25zdCBjaGFyICpfX3RhZ3ApIHsKI2lmICFfV0lOMzIKICB1bmlvbiB7CiAgICBkb3VibGUgdmFsOwogICAgc3RydWN0IGllZWVfZG91YmxlIHsKICAgICAgdWludDY0X3QgbWFudGlzc2EgOiA1MTsKICAgICAgdWludDMyX3QgcXVpZXQgOiAxOwogICAgICB1aW50MzJfdCBleHBvbmVudCA6IDExOwogICAgICB1aW50MzJfdCBzaWduIDogMTsKICAgIH0gYml0czsKICB9IF9fdG1wOwogIF9fc3RhdGljX2Fzc2VydF90eXBlX3NpemVfZXF1YWwoc2l6ZW9mKF9fdG1wLnZhbCksIHNpemVvZihfX3RtcC5iaXRzKSk7CgogIF9fdG1wLmJpdHMuc2lnbiA9IDB1OwogIF9fdG1wLmJpdHMuZXhwb25lbnQgPSB+MHU7CiAgX190bXAuYml0cy5xdWlldCA9IDF1OwogIF9fdG1wLmJpdHMubWFudGlzc2EgPSBfX21ha2VfbWFudGlzc2EoX190YWdwKTsKCiAgcmV0dXJuIF9fdG1wLnZhbDsKI2Vsc2UKICBfX3N0YXRpY19hc3NlcnRfdHlwZV9zaXplX2VxdWFsKHNpemVvZih1aW50NjRfdCksIHNpemVvZihkb3VibGUpKTsKICB1aW50NjRfdCBfX3ZhbCA9IF9fbWFrZV9tYW50aXNzYShfX3RhZ3ApOwogIF9fdmFsIHw9IDB4RkZGIDw8IDUxOwogIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxkb3VibGUgKj4oJl9fdmFsKTsKI2VuZGlmCn0KCl9fREVWSUNFX18KZG91YmxlIG5lYXJieWludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfbmVhcmJ5aW50X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBuZXh0YWZ0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfbmV4dGFmdGVyX2Y2NChfX3gsIF9feSk7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5vcm0oaW50IF9fZGltLAogICAgICAgICAgICBjb25zdCBkb3VibGUgKl9fYSkgeyAvLyBUT0RPOiBwbGFjZWhvbGRlciB1bnRpbCBPQ01MIGFkZHMgc3VwcG9ydC4KICBkb3VibGUgX19yID0gMDsKICB3aGlsZSAoX19kaW0tLSkgewogICAgX19yICs9IF9fYVswXSAqIF9fYVswXTsKICAgICsrX19hOwogIH0KCiAgcmV0dXJuIF9fb2NtbF9zcXJ0X2Y2NChfX3IpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtM2QoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfbGVuM19mNjQoX194LCBfX3ksIF9feik7Cn0KCl9fREVWSUNFX18KZG91YmxlIG5vcm00ZChkb3VibGUgX194LCBkb3VibGUgX195LCBkb3VibGUgX196LCBkb3VibGUgX193KSB7CiAgcmV0dXJuIF9fb2NtbF9sZW40X2Y2NChfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtY2RmKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uY2RmX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBub3JtY2RmaW52KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9uY2RmaW52X2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBwb3coZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX19vY21sX3Bvd19mNjQoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBwb3dpKGRvdWJsZSBfX3gsIGludCBfX3kpIHsgcmV0dXJuIF9fb2NtbF9wb3duX2Y2NChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIHJjYnJ0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yY2JydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcmVtYWluZGVyKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3JlbWFpbmRlcl9mNjQoX194LCBfX3kpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSByZW1xdW8oZG91YmxlIF9feCwgZG91YmxlIF9feSwgaW50ICpfX3F1bykgewogIGludCBfX3RtcDsKI2lmZGVmIF9fT1BFTk1QX0FNREdDTl9fCiNwcmFnbWEgb21wIGFsbG9jYXRlKF9fdG1wKSBhbGxvY2F0b3Iob21wX3RocmVhZF9tZW1fYWxsb2MpCiNlbmRpZgogIGRvdWJsZSBfX3IgPSBfX29jbWxfcmVtcXVvX2Y2NCgKICAgICAgX194LCBfX3ksIChfX2F0dHJpYnV0ZV9fKChhZGRyZXNzX3NwYWNlKDUpKSkgaW50ICopJl9fdG1wKTsKICAqX19xdW8gPSBfX3RtcDsKCiAgcmV0dXJuIF9fcjsKfQoKX19ERVZJQ0VfXwpkb3VibGUgcmh5cG90KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9fb2NtbF9yaHlwb3RfZjY0KF9feCwgX195KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcmludChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcmludF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgcm5vcm0oaW50IF9fZGltLAogICAgICAgICAgICAgY29uc3QgZG91YmxlICpfX2EpIHsgLy8gVE9ETzogcGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzIHN1cHBvcnQuCiAgZG91YmxlIF9fciA9IDA7CiAgd2hpbGUgKF9fZGltLS0pIHsKICAgIF9fciArPSBfX2FbMF0gKiBfX2FbMF07CiAgICArK19fYTsKICB9CgogIHJldHVybiBfX29jbWxfcnNxcnRfZjY0KF9fcik7Cn0KCl9fREVWSUNFX18KZG91YmxlIHJub3JtM2QoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfcmxlbjNfZjY0KF9feCwgX195LCBfX3opOwp9CgpfX0RFVklDRV9fCmRvdWJsZSBybm9ybTRkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3ksIGRvdWJsZSBfX3osIGRvdWJsZSBfX3cpIHsKICByZXR1cm4gX19vY21sX3JsZW40X2Y2NChfX3gsIF9feSwgX196LCBfX3cpOwp9CgpfX0RFVklDRV9fCmRvdWJsZSByb3VuZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfcm91bmRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHJzcXJ0KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9yc3FydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgc2NhbGJsbihkb3VibGUgX194LCBsb25nIGludCBfX24pIHsKICByZXR1cm4gKF9fbiA8IElOVF9NQVgpID8gX19vY21sX3NjYWxibl9mNjQoX194LCBfX24pCiAgICAgICAgICAgICAgICAgICAgICAgICA6IF9fb2NtbF9zY2FsYl9mNjQoX194LCBfX24pOwp9Cl9fREVWSUNFX18KZG91YmxlIHNjYWxibihkb3VibGUgX194LCBpbnQgX19uKSB7IHJldHVybiBfX29jbWxfc2NhbGJuX2Y2NChfX3gsIF9fbik7IH0KCl9fREVWSUNFX18KX19SRVRVUk5fVFlQRSBfX3NpZ25iaXQoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3NpZ25iaXRfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHNpbihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfc2luX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCnZvaWQgc2luY29zKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19zaW5wdHIsIGRvdWJsZSAqX19jb3NwdHIpIHsKICBkb3VibGUgX190bXA7CiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojcHJhZ21hIG9tcCBhbGxvY2F0ZShfX3RtcCkgYWxsb2NhdG9yKG9tcF90aHJlYWRfbWVtX2FsbG9jKQojZW5kaWYKICAqX19zaW5wdHIgPSBfX29jbWxfc2luY29zX2Y2NCgKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18Kdm9pZCBzaW5jb3NwaShkb3VibGUgX194LCBkb3VibGUgKl9fc2lucHRyLCBkb3VibGUgKl9fY29zcHRyKSB7CiAgZG91YmxlIF9fdG1wOwojaWZkZWYgX19PUEVOTVBfQU1ER0NOX18KI3ByYWdtYSBvbXAgYWxsb2NhdGUoX190bXApIGFsbG9jYXRvcihvbXBfdGhyZWFkX21lbV9hbGxvYykKI2VuZGlmCiAgKl9fc2lucHRyID0gX19vY21sX3NpbmNvc3BpX2Y2NCgKICAgICAgX194LCAoX19hdHRyaWJ1dGVfXygoYWRkcmVzc19zcGFjZSg1KSkpIGRvdWJsZSAqKSZfX3RtcCk7CiAgKl9fY29zcHRyID0gX190bXA7Cn0KCl9fREVWSUNFX18KZG91YmxlIHNpbmgoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3NpbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHNpbnBpKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zaW5waV9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgc3FydChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfc3FydF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgdGFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF90YW5fZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHRhbmgoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3RhbmhfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHRnYW1tYShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfdGdhbW1hX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSB0cnVuYyhkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfdHJ1bmNfZjY0KF9feCk7IH0KCl9fREVWSUNFX18KZG91YmxlIHkwKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF95MF9mNjQoX194KTsgfQoKX19ERVZJQ0VfXwpkb3VibGUgeTEoZG91YmxlIF9feCkgeyByZXR1cm4gX19vY21sX3kxX2Y2NChfX3gpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSB5bihpbnQgX19uLCBkb3VibGUgX194KSB7IC8vIFRPRE86IHdlIGNvdWxkIHVzZSBBaG1lcyBtdWx0aXBsaWNhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgdGhlIE1pbGxlciAmIEJyb3duIGFsZ29yaXRobQogIC8vICAgICAgIGZvciBsaW5lYXIgcmVjdXJyZW5jZXMgdG8gZ2V0IE8obG9nIG4pIHN0ZXBzLCBidXQgaXQncyB1bmNsZWFyIGlmCiAgLy8gICAgICAgaXQnZCBiZSBiZW5lZmljaWFsIGluIHRoaXMgY2FzZS4gUGxhY2Vob2xkZXIgdW50aWwgT0NNTCBhZGRzCiAgLy8gICAgICAgc3VwcG9ydC4KICBpZiAoX19uID09IDApCiAgICByZXR1cm4geTAoX194KTsKICBpZiAoX19uID09IDEpCiAgICByZXR1cm4geTEoX194KTsKCiAgZG91YmxlIF9feDAgPSB5MChfX3gpOwogIGRvdWJsZSBfX3gxID0geTEoX194KTsKICBmb3IgKGludCBfX2kgPSAxOyBfX2kgPCBfX247ICsrX19pKSB7CiAgICBkb3VibGUgX194MiA9ICgyICogX19pKSAvIF9feCAqIF9feDEgLSBfX3gwOwogICAgX194MCA9IF9feDE7CiAgICBfX3gxID0gX194MjsKICB9CgogIHJldHVybiBfX3gxOwp9CgovLyBCRUdJTiBJTlRSSU5TSUNTCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZGFkZF9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9hZGRfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kYWRkX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2FkZF9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RhZGRfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfYWRkX3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZGFkZF9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9hZGRfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kYWRkX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCArIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZGRpdl9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9kaXZfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kZGl2X3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX2Rpdl9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RkaXZfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfZGl2X3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZGRpdl9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9kaXZfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kZGl2X3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCAvIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZG11bF9yZChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9tdWxfcnRuX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kbXVsX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX211bF9ydGVfZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RtdWxfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfbXVsX3J0cF9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZG11bF9yeihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9tdWxfcnR6X2Y2NChfX3gsIF9feSk7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19kbXVsX3JuKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsgcmV0dXJuIF9feCAqIF9feTsgfQojZW5kaWYKCiNpZiBkZWZpbmVkIE9DTUxfQkFTSUNfUk9VTkRFRF9PUEVSQVRJT05TCl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9yZChkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0bl9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ybihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0ZV9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ydShkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0cF9mNjQoMS4wLCBfX3gpOyB9Cl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9yeihkb3VibGUgX194KSB7IHJldHVybiBfX29jbWxfZGl2X3J0el9mNjQoMS4wLCBfX3gpOyB9CiNlbHNlCl9fREVWSUNFX18KZG91YmxlIF9fZHJjcF9ybihkb3VibGUgX194KSB7IHJldHVybiAxLjAgLyBfX3g7IH0KI2VuZGlmCgojaWYgZGVmaW5lZCBPQ01MX0JBU0lDX1JPVU5ERURfT1BFUkFUSU9OUwpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JkKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0bl9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0ZV9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3J1KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0cF9mNjQoX194KTsgfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3J6KGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X3J0el9mNjQoX194KTsgfQojZWxzZQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzcXJ0X3JuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIF9fb2NtbF9zcXJ0X2Y2NChfX3gpOyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpkb3VibGUgX19kc3ViX3JkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3N1Yl9ydG5fZjY0KF9feCwgX195KTsKfQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzdWJfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX29jbWxfc3ViX3J0ZV9mNjQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18KZG91YmxlIF9fZHN1Yl9ydShkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fb2NtbF9zdWJfcnRwX2Y2NChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19kc3ViX3J6KGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19vY21sX3N1Yl9ydHpfZjY0KF9feCwgX195KTsKfQojZWxzZQpfX0RFVklDRV9fCmRvdWJsZSBfX2RzdWJfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gX194IC0gX195OyB9CiNlbmRpZgoKI2lmIGRlZmluZWQgT0NNTF9CQVNJQ19ST1VOREVEX09QRVJBVElPTlMKX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcmQoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0bl9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0ZV9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcnUoZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0cF9mNjQoX194LCBfX3ksIF9feik7Cn0KX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcnooZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX3J0el9mNjQoX194LCBfX3ksIF9feik7Cn0KI2Vsc2UKX19ERVZJQ0VfXwpkb3VibGUgX19mbWFfcm4oZG91YmxlIF9feCwgZG91YmxlIF9feSwgZG91YmxlIF9feikgewogIHJldHVybiBfX29jbWxfZm1hX2Y2NChfX3gsIF9feSwgX196KTsKfQojZW5kaWYKLy8gRU5EIElOVFJJTlNJQ1MKLy8gRU5EIERPVUJMRQoKLy8gQyBvbmx5IG1hY3JvcwojaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpICYmIF9fU1REQ19WRVJTSU9OX18gPj0gMjAxMTEyTAojZGVmaW5lIGlzZmluaXRlKF9feCkgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19maW5pdGVmLCBkb3VibGUgOiBfX2Zpbml0ZSkoX194KQojZGVmaW5lIGlzaW5mKF9feCkgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19pc2luZmYsIGRvdWJsZSA6IF9faXNpbmYpKF9feCkKI2RlZmluZSBpc25hbihfX3gpIF9HZW5lcmljKChfX3gpLCBmbG9hdCA6IF9faXNuYW5mLCBkb3VibGUgOiBfX2lzbmFuKShfX3gpCiNkZWZpbmUgc2lnbmJpdChfX3gpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX0dlbmVyaWMoKF9feCksIGZsb2F0IDogX19zaWduYml0ZiwgZG91YmxlIDogX19zaWduYml0KShfX3gpCiNlbmRpZiAvLyAhZGVmaW5lZChfX2NwbHVzcGx1cykgJiYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMCgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKdGVtcGxhdGUgPGNsYXNzIFQ+IF9fREVWSUNFX18gVCBtaW4oVCBfX2FyZzEsIFQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPCBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgVD4gX19ERVZJQ0VfXyBUIG1heChUIF9fYXJnMSwgVCBfX2FyZzIpIHsKICByZXR1cm4gKF9fYXJnMSA+IF9fYXJnMikgPyBfX2FyZzEgOiBfX2FyZzI7Cn0KCl9fREVWSUNFX18gaW50IG1pbihpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPCBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9Cl9fREVWSUNFX18gaW50IG1heChpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIChfX2FyZzEgPiBfX2FyZzIpID8gX19hcmcxIDogX19hcmcyOwp9CgpfX0RFVklDRV9fCmZsb2F0IG1heChmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyByZXR1cm4gZm1heGYoX194LCBfX3kpOyB9CgpfX0RFVklDRV9fCmRvdWJsZSBtYXgoZG91YmxlIF9feCwgZG91YmxlIF9feSkgeyByZXR1cm4gZm1heChfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZmxvYXQgbWluKGZsb2F0IF9feCwgZmxvYXQgX195KSB7IHJldHVybiBmbWluZihfX3gsIF9feSk7IH0KCl9fREVWSUNFX18KZG91YmxlIG1pbihkb3VibGUgX194LCBkb3VibGUgX195KSB7IHJldHVybiBmbWluKF9feCwgX195KTsgfQoKI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pICYmICFkZWZpbmVkKF9fT1BFTk1QX0FNREdDTl9fKQpfX2hvc3RfXyBpbmxpbmUgc3RhdGljIGludCBtaW4oaW50IF9fYXJnMSwgaW50IF9fYXJnMikgewogIHJldHVybiBzdGQ6Om1pbihfX2FyZzEsIF9fYXJnMik7Cn0KCl9faG9zdF9fIGlubGluZSBzdGF0aWMgaW50IG1heChpbnQgX19hcmcxLCBpbnQgX19hcmcyKSB7CiAgcmV0dXJuIHN0ZDo6bWF4KF9fYXJnMSwgX19hcmcyKTsKfQojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNlbmRpZgoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVWSUNFX18iKQojcHJhZ21hIHBvcF9tYWNybygiX19SRVRVUk5fVFlQRSIpCgojZW5kaWYgLy8gX19DTEFOR19ISVBfTUFUSF9IX18KAC8qPT09LS0tLSBfX3dtbWludHJpbl9hZXMuaCAtIEFFUyBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19XTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8X193bW1pbnRyaW5fYWVzLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx3bW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1dNTUlOVFJJTl9BRVNfSAojZGVmaW5lIF9fV01NSU5UUklOX0FFU19ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYWVzIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQoKLy8vIFBlcmZvcm1zIGEgc2luZ2xlIHJvdW5kIG9mIEFFUyBlbmNyeXB0aW9uIHVzaW5nIHRoZSBFcXVpdmFsZW50Ci8vLyAgICBJbnZlcnNlIENpcGhlciwgdHJhbnNmb3JtaW5nIHRoZSBzdGF0ZSB2YWx1ZSBmcm9tIHRoZSBmaXJzdCBzb3VyY2UKLy8vICAgIG9wZXJhbmQgdXNpbmcgYSAxMjgtYml0IHJvdW5kIGtleSB2YWx1ZSBjb250YWluZWQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUgZGVzdGluYXRpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFFU0VOQyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdGF0ZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX1IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZCBrZXkgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZW5jcnlwdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZW5jX3NpMTI4KF9fbTEyOGkgX19WLCBfX20xMjhpIF9fUikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hZXNlbmMxMjgoKF9fdjJkaSlfX1YsIChfX3YyZGkpX19SKTsKfQoKLy8vIFBlcmZvcm1zIHRoZSBmaW5hbCByb3VuZCBvZiBBRVMgZW5jcnlwdGlvbiB1c2luZyB0aGUgRXF1aXZhbGVudAovLy8gICAgSW52ZXJzZSBDaXBoZXIsIHRyYW5zZm9ybWluZyB0aGUgc3RhdGUgdmFsdWUgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICBvcGVyYW5kIHVzaW5nIGEgMTI4LWJpdCByb3VuZCBrZXkgdmFsdWUgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICBvcGVyYW5kLCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNFTkNMQVNUIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fVgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHN0YXRlIHZhbHVlLgovLy8gXHBhcmFtIF9fUgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHJvdW5kIGtleSB2YWx1ZS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBlbmNyeXB0ZWQgdmFsdWUuCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9hZXNlbmNsYXN0X3NpMTI4KF9fbTEyOGkgX19WLCBfX20xMjhpIF9fUikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9hZXNlbmNsYXN0MTI4KChfX3YyZGkpX19WLCAoX192MmRpKV9fUik7Cn0KCi8vLyBQZXJmb3JtcyBhIHNpbmdsZSByb3VuZCBvZiBBRVMgZGVjcnlwdGlvbiB1c2luZyB0aGUgRXF1aXZhbGVudAovLy8gICAgSW52ZXJzZSBDaXBoZXIsIHRyYW5zZm9ybWluZyB0aGUgc3RhdGUgdmFsdWUgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICBvcGVyYW5kIHVzaW5nIGEgMTI4LWJpdCByb3VuZCBrZXkgdmFsdWUgY29udGFpbmVkIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICBvcGVyYW5kLCBhbmQgd3JpdGVzIHRoZSByZXN1bHQgdG8gdGhlIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNERUMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgc3RhdGUgdmFsdWUuCi8vLyBccGFyYW0gX19SCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgcm91bmQga2V5IHZhbHVlLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGRlY3J5cHRlZCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Flc2RlY19zaTEyOChfX20xMjhpIF9fViwgX19tMTI4aSBfX1IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWVzZGVjMTI4KChfX3YyZGkpX19WLCAoX192MmRpKV9fUik7Cn0KCi8vLyBQZXJmb3JtcyB0aGUgZmluYWwgcm91bmQgb2YgQUVTIGRlY3J5cHRpb24gdXNpbmcgdGhlIEVxdWl2YWxlbnQKLy8vICAgIEludmVyc2UgQ2lwaGVyLCB0cmFuc2Zvcm1pbmcgdGhlIHN0YXRlIHZhbHVlIGZyb20gdGhlIGZpcnN0IHNvdXJjZQovLy8gICAgb3BlcmFuZCB1c2luZyBhIDEyOC1iaXQgcm91bmQga2V5IHZhbHVlIGNvbnRhaW5lZCBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgb3BlcmFuZCwgYW5kIHdyaXRlcyB0aGUgcmVzdWx0IHRvIHRoZSBkZXN0aW5hdGlvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUVTREVDTEFTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX1YKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzdGF0ZSB2YWx1ZS4KLy8vIFxwYXJhbSBfX1IKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSByb3VuZCBrZXkgdmFsdWUuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZGVjcnlwdGVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzZGVjbGFzdF9zaTEyOChfX20xMjhpIF9fViwgX19tMTI4aSBfX1IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDEyOCgoX192MmRpKV9fViwgKF9fdjJkaSlfX1IpOwp9CgovLy8gQXBwbGllcyB0aGUgQUVTIEludk1peENvbHVtbnMoKSB0cmFuc2Zvcm1hdGlvbiB0byBhbiBleHBhbmRlZCBrZXkKLy8vICAgIGNvbnRhaW5lZCBpbiB0aGUgc291cmNlIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRVNJTUMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19WCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgZXhwYW5kZWQga2V5LgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHRyYW5zZm9ybWVkIHZhbHVlLgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fYWVzaW1jX3NpMTI4KF9fbTEyOGkgX19WKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2Flc2ltYzEyOCgoX192MmRpKV9fVik7Cn0KCi8vLyBHZW5lcmF0ZXMgYSByb3VuZCBrZXkgZm9yIEFFUyBlbmNyeXB0aW9uLCBvcGVyYXRpbmcgb24gMTI4LWJpdCBkYXRhCi8vLyAgICBzcGVjaWZpZWQgaW4gdGhlIGZpcnN0IHNvdXJjZSBvcGVyYW5kIGFuZCB1c2luZyBhbiA4LWJpdCByb3VuZCBjb25zdGFudAovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgc291cmNlIG9wZXJhbmQsIGFuZCB3cml0ZXMgdGhlIHJlc3VsdCB0byB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4aSBfbW1fYWVza2V5Z2VuYXNzaXN0X3NpMTI4KF9fbTEyOGkgQywgY29uc3QgaW50IFIpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEFFU0tFWUdFTkFTU0lTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBDCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdGhhdCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBRVMgZW5jcnlwdGlvbiBrZXkuCi8vLyBccGFyYW0gUgovLy8gICAgQW4gOC1iaXQgcm91bmQgY29uc3RhbnQgdXNlZCB0byBnZW5lcmF0ZSB0aGUgQUVTIGVuY3J5cHRpb24ga2V5LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHJvdW5kIGtleSBmb3IgQUVTIGVuY3J5cHRpb24uCiNkZWZpbmUgX21tX2Flc2tleWdlbmFzc2lzdF9zaTEyOChDLCBSKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2Flc2tleWdlbmFzc2lzdDEyOCgoX192MmRpKShfX20xMjhpKShDKSwgKGludCkoUikpKQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmICAvKiBfX1dNTUlOVFJJTl9BRVNfSCAqLwoALyo9PT0tLS0tLS0tLS0tLS0gYXZ4NTEyYmYxNmludHJpbi5oIC0gQVZYNTEyX0JGMTYgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmJmMTZpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyQkYxNklOVFJJTl9ICiNkZWZpbmUgX19BVlg1MTJCRjE2SU5UUklOX0gKCnR5cGVkZWYgc2hvcnQgX19tNTEyYmggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDY0KSwgX19hbGlnbmVkX18oNjQpKSk7CnR5cGVkZWYgc2hvcnQgX19tMjU2YmggX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMzIpKSk7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgX19iZmxvYXQxNjsKCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTNTEyIFwKICBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMmJmMTYiKSwgXAogICAgICAgICAgICAgICAgIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYmYxNiIpKSkKCi8vLyBDb252ZXJ0IE9uZSBCRjE2IERhdGEgdG8gT25lIFNpbmdsZSBGbG9hdCBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSBiZmxvYXQgZGF0YS4KLy8vIFxyZXR1cm5zIEEgZmxvYXQgZGF0YSB3aG9zZSBzaWduIGZpZWxkIGFuZCBleHBvbmVudCBmaWVsZCBrZWVwIHVuY2hhbmdlZCwKLy8vICAgIGFuZCBmcmFjdGlvbiBmaWVsZCBpcyBleHRlbmRlZCB0byAyMyBiaXRzLgpzdGF0aWMgX19pbmxpbmVfXyBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlMgX21tX2N2dHNiaF9zcyhfX2JmbG9hdDE2IF9fQSkgewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9jdnRzYmYxNjJzc18zMihfX0EpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMjU2IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAyNTYgYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0bmUycHNfcGJoKF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lMnBzMmJmMTZfNTEyKChfX3YxNnNmKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZikgX19CKTsKfQoKLy8vIENvbnZlcnQgVHdvIFBhY2tlZCBTaW5nbGUgRGF0YSB0byBPbmUgUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkUyUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAzMi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0Egb3IgX19CLiBBIDAgbWVhbnMgZWxlbWVudCBmcm9tIF9fVy4KLy8vIFxyZXR1cm5zIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XSB3aG9zZSBsb3dlciAyNTYgYml0cyBjb21lIGZyb20KLy8vICAgIGNvbnZlcnNpb24gb2YgX19CLCBhbmQgaGlnaGVyIDI1NiBiaXRzIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tNTEyYmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dG5lMnBzX3BiaChfX201MTJiaCBfX1csIF9fbW1hc2szMiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfX1cpOwp9CgovLy8gQ29udmVydCBUd28gUGFja2VkIFNpbmdsZSBEYXRhIHRvIE9uZSBQYWNrZWQgQkYxNiBEYXRhLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRORTJQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDMyLWJpdCBtYXNrIHZhbHVlIHNwZWNpZnlpbmcgd2hhdCBpcyBjaG9zZW4gZm9yIGVhY2ggZWxlbWVudC4KLy8vICAgIEEgMSBtZWFucyBjb252ZXJzaW9uIG9mIF9fQSBvciBfX0IuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0gd2hvc2UgbG93ZXIgMjU2IGJpdHMgY29tZSBmcm9tCi8vLyAgICBjb252ZXJzaW9uIG9mIF9fQiwgYW5kIGhpZ2hlciAyNTYgYml0cyBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfY3Z0bmUycHNfcGJoKF9fbW1hc2szMiBfX1UsIF9fbTUxMiBfX0EsIF9fbTUxMiBfX0IpIHsKICByZXR1cm4gKF9fbTUxMmJoKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHdfNTEyKChfX21tYXNrMzIpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjMyaGkpX21tNTEyX2N2dG5lMnBzX3BiaChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MzJoaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIFNpbmdsZSBEYXRhIHRvIFBhY2tlZCBCRjE2IERhdGEuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVE5FUFMyQkYxNiA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzE2IHggYmZsb2F0XSBjb21lIGZyb20gY29udmVyc2lvbiBvZiBfX0EuCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmJoIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfY3Z0bmVwc19wYmgoX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzUxMl9tYXNrKChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl91bmRlZmluZWRfc2kyNTYoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpLTEpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0EuIEEgMCBtZWFucyBlbGVtZW50IGZyb20gX19XLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdIGNvbWUgZnJvbSBjb252ZXJzaW9uIG9mIF9fQS4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2YmggX19ERUZBVUxUX0ZOX0FUVFJTNTEyCl9tbTUxMl9tYXNrX2N2dG5lcHNfcGJoKF9fbTI1NmJoIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyIF9fQSkgewogIHJldHVybiAoX19tMjU2YmgpX19idWlsdGluX2lhMzJfY3Z0bmVwczJiZjE2XzUxMl9tYXNrKChfX3YxNnNmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZoaSlfX1csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2sxNilfX1UpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgU2luZ2xlIERhdGEgdG8gUGFja2VkIEJGMTYgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUTkVQUzJCRjE2IDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgY29udmVyc2lvbiBvZiBfX0EuIEEgMCBtZWFucyBlbGVtZW50IGlzIHplcm8uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFsxNiB4IGJmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnNpb24gb2YgX19BLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZiaCBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dG5lcHNfcGJoKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmJoKV9fYnVpbHRpbl9pYTMyX2N2dG5lcHMyYmYxNl81MTJfbWFzaygoX192MTZzZilfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNmhpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrMTYpX19VKTsKfQoKLy8vIERvdCBQcm9kdWN0IG9mIEJGMTYgUGFpcnMgQWNjdW11bGF0ZWQgaW50byBQYWNrZWQgU2luZ2xlIFByZWNpc2lvbi4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRFBCRjE2UFMgPC9jPiBpbnN0cnVjdGlvbnMuCi8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fQgovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMzIgeCBiZmxvYXRdLgovLy8gXHBhcmFtIF9fRAovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfZHBiZjE2X3BzKF9fbTUxMiBfX0QsIF9fbTUxMmJoIF9fQSwgX19tNTEyYmggX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfZHBiZjE2cHNfNTEyKChfX3YxNnNmKSBfX0QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKSBfX0IpOwp9CgovLy8gRG90IFByb2R1Y3Qgb2YgQkYxNiBQYWlycyBBY2N1bXVsYXRlZCBpbnRvIFBhY2tlZCBTaW5nbGUgUHJlY2lzaW9uLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZEUEJGMTZQUyA8L2M+IGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19BCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19CCi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFszMiB4IGJmbG9hdF0uCi8vLyBccGFyYW0gX19ECi8vLyAgICBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX1UKLy8vICAgIEEgMTYtYml0IG1hc2sgdmFsdWUgc3BlY2lmeWluZyB3aGF0IGlzIGNob3NlbiBmb3IgZWFjaCBlbGVtZW50LgovLy8gICAgQSAxIG1lYW5zIF9fQSBhbmQgX19CJ3MgZG90IHByb2R1Y3QgYWNjdW11bGF0ZWQgd2l0aCBfX0QuIEEgMCBtZWFucyBfX0QuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza19kcGJmMTZfcHMoX19tNTEyIF9fRCwgX19tbWFzazE2IF9fVSwgX19tNTEyYmggX19BLCBfX201MTJiaCBfX0IpIHsKICByZXR1cm4gKF9fbTUxMilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc181MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9tbTUxMl9kcGJmMTZfcHMoX19ELCBfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNmKV9fRCk7Cn0KCi8vLyBEb3QgUHJvZHVjdCBvZiBCRjE2IFBhaXJzIEFjY3VtdWxhdGVkIGludG8gUGFja2VkIFNpbmdsZSBQcmVjaXNpb24uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQQkYxNlBTIDwvYz4gaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX0EKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0IKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzMyIHggYmZsb2F0XS4KLy8vIFxwYXJhbSBfX0QKLy8vICAgIEEgNTEyLWJpdCB2ZWN0b3Igb2YgWzE2IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fVQovLy8gICAgQSAxNi1iaXQgbWFzayB2YWx1ZSBzcGVjaWZ5aW5nIHdoYXQgaXMgY2hvc2VuIGZvciBlYWNoIGVsZW1lbnQuCi8vLyAgICBBIDEgbWVhbnMgX19BIGFuZCBfX0IncyBkb3QgcHJvZHVjdCBhY2N1bXVsYXRlZCB3aXRoIF9fRC4gQSAwIG1lYW5zIDAuCi8vLyBccmV0dXJucyBBIDUxMi1iaXQgdmVjdG9yIG9mIFsxNiB4IGZsb2F0XSBjb21lcyBmcm9tICBEb3QgUHJvZHVjdCBvZgovLy8gIF9fQSwgX19CIGFuZCBfX0QKc3RhdGljIF9faW5saW5lX18gX19tNTEyIF9fREVGQVVMVF9GTl9BVFRSUzUxMgpfbW01MTJfbWFza3pfZHBiZjE2X3BzKF9fbW1hc2sxNiBfX1UsIF9fbTUxMiBfX0QsIF9fbTUxMmJoIF9fQSwgX19tNTEyYmggX19CKSB7CiAgcmV0dXJuIChfX201MTIpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfNTEyKChfX21tYXNrMTYpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfZHBiZjE2X3BzKF9fRCwgX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzZilfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKLy8vIENvbnZlcnQgUGFja2VkIEJGMTYgRGF0YSB0byBQYWNrZWQgZmxvYXQgRGF0YS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIgX21tNTEyX2N2dHBiaF9wcyhfX20yNTZiaCBfX0EpIHsKICByZXR1cm4gX21tNTEyX2Nhc3RzaTUxMl9wcygoX19tNTEyaSlfbW01MTJfc2xsaV9lcGkzMigKICAgICAgKF9fbTUxMmkpX21tNTEyX2N2dGVwaTE2X2VwaTMyKChfX20yNTZpKV9fQSksIDE2KSk7Cn0KCi8vLyBDb252ZXJ0IFBhY2tlZCBCRjE2IERhdGEgdG8gUGFja2VkIGZsb2F0IERhdGEgdXNpbmcgemVyb2luZyBtYXNrLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrLiBFbGVtZW50cyBhcmUgemVyb2VkIG91dCB3aGVuIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sKLy8vICAgIGJpdCBpcyBub3Qgc2V0LgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2t6X2N2dHBiaF9wcyhfX21tYXNrMTYgX19VLCBfX20yNTZiaCBfX0EpIHsKICByZXR1cm4gX21tNTEyX2Nhc3RzaTUxMl9wcygoX19tNTEyaSlfbW01MTJfc2xsaV9lcGkzMigKICAgICAgKF9fbTUxMmkpX21tNTEyX21hc2t6X2N2dGVwaTE2X2VwaTMyKChfX21tYXNrMTYpX19VLCAoX19tMjU2aSlfX0EpLCAxNikpOwp9CgovLy8gQ29udmVydCBQYWNrZWQgQkYxNiBEYXRhIHRvIFBhY2tlZCBmbG9hdCBEYXRhIHVzaW5nIG1lcmdpbmcgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXHBhcmFtIF9fUwovLy8gICAgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0uIEVsZW1lbnRzIGFyZSBjb3BpZWQgZnJvbSBfX1Mgd2hlbgovLy8gICAgIHRoZSBjb3JyZXNwb25kaW5nIG1hc2sgYml0IGlzIG5vdCBzZXQuCi8vLyBccGFyYW0gX19VCi8vLyAgICBBIDE2LWJpdCBtYXNrLgovLy8gXHBhcmFtIF9fQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbMTYgeCBiZmxvYXRdLgovLy8gXHJldHVybnMgQSA1MTItYml0IHZlY3RvciBvZiBbMTYgeCBmbG9hdF0gY29tZSBmcm9tIGNvbnZlcnRpb24gb2YgX19BCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKX21tNTEyX21hc2tfY3Z0cGJoX3BzKF9fbTUxMiBfX1MsIF9fbW1hc2sxNiBfX1UsIF9fbTI1NmJoIF9fQSkgewogIHJldHVybiBfbW01MTJfY2FzdHNpNTEyX3BzKChfX201MTJpKV9tbTUxMl9tYXNrX3NsbGlfZXBpMzIoCiAgICAgIChfX201MTJpKV9fUywgKF9fbW1hc2sxNilfX1UsCiAgICAgIChfX201MTJpKV9tbTUxMl9jdnRlcGkxNl9lcGkzMigoX19tMjU2aSlfX0EpLCAxNikpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlM1MTIKCiNlbmRpZgoALyo9PT0tLS0tLS0tLS0tLS0tIGF2eDUxMmNkaW50cmluLmggLSBBVlg1MTJDRCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGF2eDUxMmNkaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0FWWDUxMkNESU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkNESU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJjZCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg1MTIpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9jb25mbGljdF9lcGk2NCAoX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3ZwY29uZmxpY3RkaV81MTIgKChfX3Y4ZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbmZsaWN0X2VwaTY0IChfX201MTJpIF9fVywgX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9jb25mbGljdF9lcGk2NCAoX19tbWFzazggX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzUxMigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OGRpKV9tbTUxMl9zZXR6ZXJvX3NpNTEyICgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2NvbmZsaWN0X2VwaTMyIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBjb25mbGljdHNpXzUxMiAoKF9fdjE2c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrX2NvbmZsaWN0X2VwaTMyIChfX201MTJpIF9fVywgX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2NvbmZsaWN0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X2NvbmZsaWN0X2VwaTMyIChfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfY29uZmxpY3RfZXBpMzIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2x6Y250X2VwaTMyIChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBsemNudGRfNTEyICgoX192MTZzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2tfbHpjbnRfZXBpMzIgKF9fbTUxMmkgX19XLCBfX21tYXNrMTYgX19VLCBfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzUxMigoX19tbWFzazE2KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjE2c2kpX21tNTEyX2x6Y250X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9semNudF9lcGkzMiAoX19tbWFzazE2IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF81MTIoKF9fbW1hc2sxNilfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnNpKV9tbTUxMl9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZzaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2x6Y250X2VwaTY0IChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBsemNudHFfNTEyICgoX192OGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19semNudF9lcGk2NCAoX19tNTEyaSBfX1csIF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza3pfbHpjbnRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tNTEyaSBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV81MTIoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfbHpjbnRfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhkaSlfbW01MTJfc2V0emVyb19zaTUxMigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX2Jyb2FkY2FzdG1iX2VwaTY0IChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9tbTUxMl9zZXQxX2VwaTY0KChsb25nIGxvbmcpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9icm9hZGNhc3Rtd19lcGkzMiAoX19tbWFzazE2IF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX21tNTEyX3NldDFfZXBpMzIoKGludCkgX19BKTsKCn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAYXZ4NTEydmxiZjE2aW50cmluLmgALyo9PT0tLS0tLS0tLS0tLS0tLS0tIGhyZXNldGludHJpbi5oIC0gSFJFU0VUIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwojaWZuZGVmIF9fWDg2R1BSSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPGhyZXNldGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8eDg2Z3ByaW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19IUkVTRVRJTlRSSU5fSAojZGVmaW5lIF9fSFJFU0VUSU5UUklOX0gKCiNpZiBfX2hhc19leHRlbnNpb24oZ251X2FzbSkKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiaHJlc2V0IikpKQoKLy8vIFByb3ZpZGVzIGEgaGludCB0byB0aGUgcHJvY2Vzc29yIHRvIHNlbGVjdGl2ZWx5IHJlc2V0IHRoZSBwcmVkaWN0aW9uCi8vLyAgICBoaXN0b3J5IG9mIHRoZSBjdXJyZW50IGxvZ2ljYWwgcHJvY2Vzc29yIHNwZWNpZmllZCBieSBhIDMyLWJpdCBpbnRlZ2VyCi8vLyAgICB2YWx1ZSBcYSBfX2VheC4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IEhSRVNFVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxvcGVyYXRpb24KLy8vICAgIElGIF9fZWF4ID09IDAKLy8vICAgICAgLy8gbm9wCi8vLyAgICBFTFNFCi8vLyAgICAgIEZPUiBpIDo9IDAgdG8gMzEKLy8vICAgICAgICBJRiBfX2VheFtpXQovLy8gICAgICAgICAgUmVzZXRQcmVkaWN0aW9uRmVhdHVyZShpKQovLy8gICAgICAgIEZJCi8vLyAgICAgIEVOREZPUgovLy8gICAgRkkKLy8vIFxlbmRvcGVyYXRpb24Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9ocmVzZXQoaW50IF9fZWF4KQp7CiAgX19hc21fXyAoImhyZXNldCAkMCIgOjogImEiKF9fZWF4KSk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZiAvKiBfX2hhc19leHRlbnNpb24oZ251X2FzbSkgKi8KCiNlbmRpZiAvKiBfX0hSRVNFVElOVFJJTl9IICovCgBpc282NDYuaABsaW1pdHMuaABvbXAuaAAvLz09PS0tLSBvcGVuY2wtYy5oIC0gT3BlbkNMIEMgbGFuZ3VhZ2UgYnVpbHRpbiBmdW5jdGlvbiBoZWFkZXIgLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwoKI2lmbmRlZiBfT1BFTkNMX0hfCiNkZWZpbmUgX09QRU5DTF9IXwoKI2luY2x1ZGUgIm9wZW5jbC1jLWJhc2UuaCIKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmbmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCiNkZWZpbmUgY2xfa2hyX2RlcHRoX2ltYWdlcwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fIDwgQ0xfVkVSU0lPTl8yXzAKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2tocl8zZF9pbWFnZV93cml0ZXMgOiBlbmFibGUKI2VuZGlmIC8vY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA8IENMX1ZFUlNJT05fMl8wCgoKI2lmIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzFfMikpICYmIGRlZmluZWQoX19TUElSX18pCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9pbnRlbF9wbGFuYXJfeXV2IDogYmVnaW4KI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2ludGVsX3BsYW5hcl95dXYgOiBlbmQKI2VuZGlmIC8vIChkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzFfMikpICYmIGRlZmluZWQoX19TUElSX18pCgojZGVmaW5lIF9fb3ZsZCBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKQojZGVmaW5lIF9fY29udiBfX2F0dHJpYnV0ZV9fKChjb252ZXJnZW50KSkKCi8vIE9wdGltaXphdGlvbnMKI2RlZmluZSBfX3B1cmVmbiBfX2F0dHJpYnV0ZV9fKChwdXJlKSkKI2RlZmluZSBfX2NuZm4gX19hdHRyaWJ1dGVfXygoY29uc3QpKQoKCi8vIE9wZW5DTCB2MS4xLzEuMi8yLjAgczYuMi4zIC0gRXhwbGljaXQgY29udmVyc2lvbnMKCmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4oY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIoY2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0ZSh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVjaGFyKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnR6KHVjaGFyKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bih1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodWNoYXIpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdCh1Y2hhcik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooc2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooc2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KHNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eih1c2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cCh1c2hvcnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4odXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKHVzaG9ydCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQodXNob3J0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eihpbnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChpbnQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4oaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQoaW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHoodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cCh1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydG4odWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcih1aW50KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXQodWludCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHoobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4obG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIobG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0ZSh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZSh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KHVsb25nKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnR6KHVsb25nKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHAodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHAodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bih1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0bih1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIodWxvbmcpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdCh1bG9uZyk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRlKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooZmxvYXQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooZmxvYXQpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0cChmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGZsb2F0KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihmbG9hdCk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGZsb2F0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZShjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUoY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4oY2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eih1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKHVjaGFyKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1Y2hhcik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHAoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoc2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRlKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoodXNob3J0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydHoodXNob3J0KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cCh1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRuKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcih1c2hvcnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0KHVzaG9ydCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eihpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4oaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoaW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUodWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoodWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKHVpbnQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cCh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4odWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcih1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1aW50KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZShsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydGUobG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHoobG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KGxvbmcpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGxvbmcpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydG4obG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0ZSh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRlKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0eih1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnR6KHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0cCh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRwKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bih1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKHVsb25nKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdCh1bG9uZyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHAoZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydG4oZmxvYXQpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcihmbG9hdCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXQoZmxvYXQpOwoKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZShjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KGNoYXIpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGNoYXIpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bihjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oY2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdChjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eih1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1Y2hhcik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHAoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0bihzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoc2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoodXNob3J0KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHoodXNob3J0KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRuKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydCh1c2hvcnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0KHVzaG9ydCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eihpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KGludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoaW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUodWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoodWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKHVpbnQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4odWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZShsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUobG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHoobG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KGxvbmcpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGxvbmcpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bihsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4obG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdChsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0ZSh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRlKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0eih1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnR6KHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cCh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRwKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0bih1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KHVsb25nKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdCh1bG9uZyk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydGUoZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHooZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydHAoZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0cChmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oZmxvYXQpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0bihmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChmbG9hdCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KGNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQoY2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUodWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHVjaGFyKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4odWNoYXIpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1Y2hhcik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHNob3J0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHNob3J0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bihzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oc2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdChzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eih1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cCh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KHVzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1c2hvcnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0ZShpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHAoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0bihpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQoaW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRlKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydHoodWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRuKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0eihsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4obG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4obG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0KGxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXQobG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZSh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUodWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHoodWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KHVsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKHVsb25nKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bih1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4odWxvbmcpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdCh1bG9uZyk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KGZsb2F0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGZsb2F0KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0cChmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0bihmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydG4oZmxvYXQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChmbG9hdCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdChmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoY2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZSh1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodWNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAodWNoYXIpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bih1Y2hhcik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVjaGFyKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHooc2hvcnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoc2hvcnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydGUodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4odXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQodXNob3J0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0cChpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRuKGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KGludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydGUodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydGUodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0eih1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydG4odWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4odWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXQodWludCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHAobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQobG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZSh1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eih1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHoodWxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAodWxvbmcpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bih1bG9uZyk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KHVsb25nKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0ZShmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydHooZmxvYXQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoZmxvYXQpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRuKGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0bihmbG9hdCk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50KGZsb2F0KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0ZShjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoY2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRlKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodWNoYXIpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHoodWNoYXIpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRuKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1Y2hhcik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KHVjaGFyKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eihzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KHNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoc2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZSh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUodXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KHVzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKHVzaG9ydCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bih1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4odXNob3J0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdCh1c2hvcnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZShpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bihpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oaW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdChpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0ZSh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eih1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bih1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KHVpbnQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdCh1aW50KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0ZShsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4obG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQobG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRlKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHoodWxvbmcpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHoodWxvbmcpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0cCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRuKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludCh1bG9uZyk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KHVsb25nKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0eihmbG9hdCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0eihmbG9hdCk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRwKGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydG4oZmxvYXQpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50KGZsb2F0KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRlKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0cChjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1Y2hhcik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eih1Y2hhcik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydG4odWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVjaGFyKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXQodWNoYXIpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KHNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KHNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcoc2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZSh1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHoodXNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAodXNob3J0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bih1c2hvcnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KHVzaG9ydCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHooaW50KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoaW50KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHoodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcodWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRlKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eihsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0cChsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0eih1bG9uZyk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eih1bG9uZyk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydG4odWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4odWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKHVsb25nKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXQodWxvbmcpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0ZShmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KGZsb2F0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnR6KGZsb2F0KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHAoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHAoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0bihmbG9hdCk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcoZmxvYXQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdChmbG9hdCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihjaGFyKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChjaGFyKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4oY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQoY2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHoodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cCh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyh1Y2hhcik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWNoYXIpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydGUoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydG4oc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoc2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KHNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0ZSh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHVzaG9ydCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnR6KHVzaG9ydCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0bih1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcodXNob3J0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdCh1c2hvcnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHooaW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooaW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cChpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyhpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1aW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cCh1aW50KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRlKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihsb25nKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0cChsb25nKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4obG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQobG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZSh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHoodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eih1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHAodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cCh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydG4odWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bih1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZyh1bG9uZyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXQodWxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydGUoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHooZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGZsb2F0KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydG4oZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcoZmxvYXQpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGZsb2F0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGNoYXIpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1Y2hhcik7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWNoYXIpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVjaGFyKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHooc2hvcnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKHNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUodXNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1c2hvcnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKHVzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4odXNob3J0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVzaG9ydCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUoaW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihpbnQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4oaW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydGUodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHoodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4odWludCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdCh1aW50KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eihsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGxvbmcpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0eih1bG9uZyk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHAodWxvbmcpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KHVsb25nKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0ZShmbG9hdCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydHooZmxvYXQpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGZsb2F0KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0bihmbG9hdCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChmbG9hdCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0ZShjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoY2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRlKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodWNoYXIyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHoodWNoYXIyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRuKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1Y2hhcjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KHVjaGFyMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eihzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKHNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoc2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZSh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUodXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KHVzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKHVzaG9ydDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bih1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4odXNob3J0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdCh1c2hvcnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZShpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KGludDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGludDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bihpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oaW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdChpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0ZSh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eih1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bih1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKHVpbnQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdCh1aW50Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0ZShsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4obG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQobG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRlKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHoodWxvbmcyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHoodWxvbmcyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0cCh1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cCh1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRuKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMih1bG9uZzIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KHVsb25nMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0eihmbG9hdDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0eihmbG9hdDIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRwKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydG4oZmxvYXQyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyKGZsb2F0Mik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoZmxvYXQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHooY2hhcjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoY2hhcjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KGNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIodWNoYXIyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRuKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydGUodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eih1c2hvcnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0eih1c2hvcnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4odXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHVzaG9ydDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQodXNob3J0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KGludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIoaW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZSh1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eih1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAodWludDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bih1aW50Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVpbnQyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0ZShsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoobG9uZzIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAobG9uZzIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0bihsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KGxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHoodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRwKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRuKHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4odWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIodWxvbmcyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0KHVsb25nMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0ZShmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0eihmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRwKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0bihmbG9hdDIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRuKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyKGZsb2F0Mik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdChmbG9hdDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eihjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4oY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQoY2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHoodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cCh1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Mih1Y2hhcjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWNoYXIyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydGUoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRwKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoc2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KHNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0ZSh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHVzaG9ydDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KHVzaG9ydDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0bih1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIodXNob3J0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdCh1c2hvcnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHooaW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooaW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cChpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MihpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1aW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cCh1aW50Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKHVpbnQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWludDIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eihsb25nMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0cChsb25nMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4obG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQobG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0ZSh1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHoodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0eih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cCh1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4odWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0bih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Mih1bG9uZzIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQodWxvbmcyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRlKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydGUoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnR6KGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHooZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRwKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydHAoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGZsb2F0Mik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoZmxvYXQyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooY2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooY2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MihjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1Y2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cCh1Y2hhcjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHVjaGFyMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodWNoYXIyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihzaG9ydDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChzaG9ydDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4oc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQoc2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZSh1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHoodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHAodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cCh1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mih1c2hvcnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodXNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydGUoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRwKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydG4oaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoaW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0ZSh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZSh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVpbnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnR6KHVpbnQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHAodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0bih1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bih1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWludDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdCh1aW50Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRlKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHoobG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHoobG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mihsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eih1bG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cCh1bG9uZzIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4odWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKHVsb25nMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQodWxvbmcyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRlKGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnR6KGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihmbG9hdDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChmbG9hdDIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHAoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydG4oZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRuKGZsb2F0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDIoZmxvYXQyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXQoZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eihjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4oY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQoY2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUodWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHVjaGFyMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4odWNoYXIyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1Y2hhcjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZShzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHNob3J0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHNob3J0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oc2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eih1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cCh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRuKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKHVzaG9ydDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0ZShpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHAoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4oaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0bihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQoaW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRlKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWludDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydHoodWludDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cCh1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRuKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRuKHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1aW50Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0KHVpbnQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0eihsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRwKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydG4obG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4obG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXQobG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZSh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUodWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHoodWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KHVsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKHVsb25nMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cCh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bih1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4odWxvbmcyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Mih1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdCh1bG9uZzIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0ZShmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydGUoZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KGZsb2F0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRwKGZsb2F0Mik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oZmxvYXQyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MihmbG9hdDIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydG4oY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIoY2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZSh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVjaGFyMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnR6KHVjaGFyMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bih1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodWNoYXIyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdCh1Y2hhcjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooc2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooc2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KHNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eih1c2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cCh1c2hvcnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4odXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKHVzaG9ydDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQodXNob3J0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eihpbnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChpbnQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4oaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQoaW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHoodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0eih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cCh1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydG4odWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Mih1aW50Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXQodWludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHoobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydG4obG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIobG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZSh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0ZSh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnR6KHVsb25nMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnR6KHVsb25nMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHAodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHAodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bih1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0bih1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDIodWxvbmcyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdCh1bG9uZzIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRlKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRlKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooZmxvYXQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooZmxvYXQyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRuKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGZsb2F0Mik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihmbG9hdDIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0ZShjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoY2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRlKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodWNoYXIyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHoodWNoYXIyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRuKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1Y2hhcjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KHVjaGFyMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eihzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKHNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoc2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZSh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUodXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KHVzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKHVzaG9ydDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bih1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4odXNob3J0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdCh1c2hvcnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZShpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KGludDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGludDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bihpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oaW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdChpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0ZSh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eih1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bih1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdCh1aW50Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0ZShsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4obG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQobG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRlKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHoodWxvbmcyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHoodWxvbmcyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0cCh1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cCh1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRuKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMih1bG9uZzIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KHVsb25nMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0eihmbG9hdDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0eihmbG9hdDIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRwKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydG4oZmxvYXQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyKGZsb2F0Mik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoZmxvYXQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHooY2hhcjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoY2hhcjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KGNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIodWNoYXIyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVjaGFyMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRuKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydGUodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eih1c2hvcnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0eih1c2hvcnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4odXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHVzaG9ydDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQodXNob3J0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KGludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIoaW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZSh1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eih1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAodWludDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bih1aW50Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVpbnQyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0ZShsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoobG9uZzIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAobG9uZzIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0bihsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KGxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHoodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRwKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRuKHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4odWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIodWxvbmcyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0KHVsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0ZShmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0eihmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRwKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0bihmbG9hdDIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRuKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyKGZsb2F0Mik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdChmbG9hdDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHAoY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oY2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihjaGFyMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZSh1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodWNoYXIyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVjaGFyMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bih1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1Y2hhcjIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KHNob3J0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIoc2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKHVzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodXNob3J0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cCh1c2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKHVzaG9ydDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1c2hvcnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKGludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooaW50Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKGludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRlKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRuKHVpbnQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIodWludDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHAobG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4obG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mihsb25nMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZSh1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHoodWxvbmcyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKHVsb25nMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bih1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Mih1bG9uZzIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoZmxvYXQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnR6KGZsb2F0Mik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChmbG9hdDIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydG4oZmxvYXQyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDIoZmxvYXQyKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRuKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1Y2hhcjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0eih1Y2hhcjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4odWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVjaGFyMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQodWNoYXIzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KHNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KHNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoc2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZSh1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHoodXNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAodXNob3J0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bih1c2hvcnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KHVzaG9ydDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHooaW50Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoaW50Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KGludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHoodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAodWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRuKHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjModWludDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0KHVpbnQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eihsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRuKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKGxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydGUodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0eih1bG9uZzMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0eih1bG9uZzMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRwKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRwKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4odWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydG4odWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzKHVsb25nMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQodWxvbmczKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0ZShmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0ZShmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KGZsb2F0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGZsb2F0Myk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0bihmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihmbG9hdDMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoZmxvYXQzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChmbG9hdDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihjaGFyMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChjaGFyMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4oY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHoodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cCh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyh1Y2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWNoYXIzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydGUoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoc2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KHNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0ZSh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHVzaG9ydDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnR6KHVzaG9ydDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAodXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0bih1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjModXNob3J0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdCh1c2hvcnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooaW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooaW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyhpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KGludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1aW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cCh1aW50Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKHVpbnQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjModWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWludDMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihsb25nMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0cChsb25nMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4obG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRuKGxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQobG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZSh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHoodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eih1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cCh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4odWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bih1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMyh1bG9uZzMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQodWxvbmczKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRlKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydGUoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnR6KGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHooZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydHAoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRuKGZsb2F0Myk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoZmxvYXQzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0KGZsb2F0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZShjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGNoYXIzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGNoYXIzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bihjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oY2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdChjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eih1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKHVjaGFyMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0ZShzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0bihzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoc2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRlKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoodXNob3J0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHoodXNob3J0Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cCh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRuKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myh1c2hvcnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0KHVzaG9ydDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eihpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKGludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoaW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUodWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoodWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKHVpbnQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cCh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4odWludDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1aW50Myk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZShsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUobG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHoobG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGxvbmczKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRwKGxvbmczKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bihsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4obG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myhsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdChsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0ZSh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0eih1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cCh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRwKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0bih1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRuKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzKHVsb25nMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdCh1bG9uZzMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0ZShmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0eihmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oZmxvYXQzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0bihmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MyhmbG9hdDMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKGNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQoY2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUodWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHVjaGFyMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4odWNoYXIzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1Y2hhcjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHNob3J0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHNob3J0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oc2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eih1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0cCh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKHVzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1c2hvcnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0ZShpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHAoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0bihpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQoaW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRlKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWludDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydHoodWludDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0cCh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRuKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1aW50Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0KHVpbnQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydGUobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0eihsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4obG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4obG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzKGxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXQobG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZSh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUodWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHoodWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KHVsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKHVsb25nMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cCh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bih1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4odWxvbmczKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Myh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdCh1bG9uZzMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydGUoZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHooZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGZsb2F0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGZsb2F0Myk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oZmxvYXQzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MyhmbG9hdDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KGNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMoY2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZSh1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodWNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAodWNoYXIzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bih1Y2hhcjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVjaGFyMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHooc2hvcnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoc2hvcnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydGUodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydG4odXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDModXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVzaG9ydDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRlKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0cChpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydGUodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydGUodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1aW50Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0eih1aW50Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4odWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydG4odWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVpbnQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXQodWludDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnR6KGxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0bihsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMobG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdChsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZSh1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eih1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHoodWxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAodWxvbmczKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bih1bG9uZzMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KHVsb25nMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRlKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHooZmxvYXQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydHAoZmxvYXQzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRuKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0bihmbG9hdDMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGZsb2F0Myk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0ZShjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHooY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHAoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MyhjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoY2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodWNoYXIzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHoodWNoYXIzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRuKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1Y2hhcjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0KHVjaGFyMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKHNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoc2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZSh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUodXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KHVzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKHVzaG9ydDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bih1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4odXNob3J0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdCh1c2hvcnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZShpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHooaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KGludDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKGludDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bihpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oaW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MyhpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZSh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eih1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bih1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKHVpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdCh1aW50Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0ZShsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHAobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4obG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myhsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQobG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydHoodWxvbmczKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHoodWxvbmczKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cCh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cCh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRuKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myh1bG9uZzMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0KHVsb25nMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydGUoZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihmbG9hdDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0eihmbG9hdDMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRwKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRwKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydG4oZmxvYXQzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzKGZsb2F0Myk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXQoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRuKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1Y2hhcjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0eih1Y2hhcjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4odWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVjaGFyMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQodWNoYXIzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KHNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KHNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoc2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZSh1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHoodXNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAodXNob3J0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bih1c2hvcnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KHVzaG9ydDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHooaW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoaW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KGludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHoodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAodWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRuKHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzModWludDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0KHVpbnQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eihsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRuKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKGxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydGUodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0eih1bG9uZzMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0eih1bG9uZzMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRwKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRwKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4odWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydG4odWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczKHVsb25nMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQodWxvbmczKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0ZShmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0ZShmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KGZsb2F0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGZsb2F0Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0bihmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihmbG9hdDMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoZmxvYXQzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChmbG9hdDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihjaGFyMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChjaGFyMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4oY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQoY2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHoodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cCh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyh1Y2hhcjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWNoYXIzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydGUoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoc2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KHNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0ZSh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHVzaG9ydDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnR6KHVzaG9ydDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAodXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0bih1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzModXNob3J0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdCh1c2hvcnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooaW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooaW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyhpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KGludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1aW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cCh1aW50Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKHVpbnQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzModWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWludDMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihsb25nMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0cChsb25nMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4obG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRuKGxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZSh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHoodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eih1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cCh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4odWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bih1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMyh1bG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQodWxvbmczKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRlKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydGUoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnR6KGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHooZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydHAoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRuKGZsb2F0Myk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoZmxvYXQzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0KGZsb2F0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0cChjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGNoYXIzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1Y2hhcjMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWNoYXIzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVjaGFyMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooc2hvcnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKHNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MyhzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUodXNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1c2hvcnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKHVzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4odXNob3J0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVzaG9ydDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUoaW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihpbnQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4oaW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHoodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydG4odWludDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Myh1aW50Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eihsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0cChsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGxvbmczKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0eih1bG9uZzMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHAodWxvbmczKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKHVsb25nMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0ZShmbG9hdDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooZmxvYXQzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGZsb2F0Myk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihmbG9hdDMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MyhmbG9hdDMpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydGUoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRwKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4oY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoY2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZSh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVjaGFyNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KHVjaGFyNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0bih1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodWNoYXI0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdCh1Y2hhcjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooc2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooc2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNChzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KHNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eih1c2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cCh1c2hvcnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4odXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKHVzaG9ydDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQodXNob3J0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eihpbnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChpbnQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4oaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKGludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoaW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHoodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eih1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cCh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4odWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNCh1aW50NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQodWludDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydGUobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHoobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRwKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4obG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQobG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZSh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZSh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnR6KHVsb25nNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KHVsb25nNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0bih1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bih1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQodWxvbmc0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdCh1bG9uZzQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRlKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooZmxvYXQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHooZmxvYXQ0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0cChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0cChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRuKGZsb2F0NCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNChmbG9hdDQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0KGZsb2F0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUoY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bihjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oY2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdChjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eih1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KHVjaGFyNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1Y2hhcjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0ZShzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0bihzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoc2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRlKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoodXNob3J0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydHoodXNob3J0NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRuKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNCh1c2hvcnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0KHVzaG9ydDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eihpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KGludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoaW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUodWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoodWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKHVpbnQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4odWludDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1aW50NCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydGUobG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHoobG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGxvbmc0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRwKGxvbmc0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bihsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4obG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdChsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZSh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eih1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0cCh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0bih1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0KHVsb25nNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdCh1bG9uZzQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0ZShmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0eihmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oZmxvYXQ0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0bihmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNChmbG9hdDQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoZmxvYXQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHooY2hhcjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoY2hhcjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KGNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVjaGFyNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0cChzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRuKHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eih1c2hvcnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0eih1c2hvcnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydG4odXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHVzaG9ydDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXQodXNob3J0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KGludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQoaW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZSh1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eih1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAodWludDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bih1aW50NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVpbnQ0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoobG9uZzQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAobG9uZzQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KGxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRlKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydGUodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnR6KHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHoodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydHAodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRuKHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4odWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQodWxvbmc0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0KHVsb25nNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0ZShmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0eihmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0cChmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRwKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihmbG9hdDQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRuKGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGZsb2F0NCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQoY2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZSh1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodWNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAodWNoYXI0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bih1Y2hhcjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVjaGFyNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4odXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQodXNob3J0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVzaG9ydDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRlKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0cChpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRuKGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydGUodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1aW50NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0eih1aW50NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydG4odWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4odWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVpbnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQodWludDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnR6KGxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDQobG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdChsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZSh1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eih1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHoodWxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAodWxvbmc0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bih1bG9uZzQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KHVsb25nNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooZmxvYXQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoZmxvYXQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRwKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRuKGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0bihmbG9hdDQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGZsb2F0NCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0KGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHooY2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooY2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1Y2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cCh1Y2hhcjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHVjaGFyNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodWNoYXI0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eihzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4oc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoc2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0ZSh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHoodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cCh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bih1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NCh1c2hvcnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodXNob3J0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRwKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydG4oaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoaW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0ZSh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0ZSh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVpbnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnR6KHVpbnQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0bih1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bih1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWludDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdCh1aW50NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHoobG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHoobG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0cChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eih1bG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cCh1bG9uZzQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4odWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKHVsb25nNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQodWxvbmc0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRlKGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0eihmbG9hdDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChmbG9hdDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydG4oZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRuKGZsb2F0NCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDQoZmxvYXQ0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRlKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydGUodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1Y2hhcjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eih1Y2hhcjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydG4odWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVjaGFyNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQodWNoYXI0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KHNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KHNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQoc2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZSh1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHoodXNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAodXNob3J0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bih1c2hvcnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KHVzaG9ydDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHooaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KGludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRlKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHoodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQodWludDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0KHVpbnQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRlKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydGUodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eih1bG9uZzQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eih1bG9uZzQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRwKHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydG4odWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4odWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KHVsb25nNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQodWxvbmc0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnR6KGZsb2F0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnR6KGZsb2F0NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHAoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0bihmbG9hdDQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDQoZmxvYXQ0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydGUoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRwKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4oY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoY2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZSh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVjaGFyNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KHVjaGFyNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0bih1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodWNoYXI0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdCh1Y2hhcjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooc2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooc2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNChzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KHNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eih1c2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cCh1c2hvcnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4odXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKHVzaG9ydDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQodXNob3J0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eihpbnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChpbnQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4oaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKGludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoaW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHoodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eih1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cCh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4odWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNCh1aW50NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydGUobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHoobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRwKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4obG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQobG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZSh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZSh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnR6KHVsb25nNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KHVsb25nNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0bih1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bih1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQodWxvbmc0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdCh1bG9uZzQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRlKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooZmxvYXQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHooZmxvYXQ0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0cChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0cChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRuKGZsb2F0NCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNChmbG9hdDQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0KGZsb2F0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUoY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGNoYXI0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGNoYXI0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bihjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oY2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdChjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eih1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KHVjaGFyNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1Y2hhcjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0ZShzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0bihzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoc2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRlKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoodXNob3J0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydHoodXNob3J0NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRuKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNCh1c2hvcnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0KHVzaG9ydDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eihpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KGludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoaW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUodWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoodWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKHVpbnQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4odWludDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1aW50NCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydGUobG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHoobG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRwKGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bihsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4obG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdChsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZSh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eih1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0cCh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0bih1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0KHVsb25nNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdCh1bG9uZzQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0ZShmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0eihmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oZmxvYXQ0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0bihmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNChmbG9hdDQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoZmxvYXQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoY2hhcjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUodWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVjaGFyNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1Y2hhcjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4odWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodWNoYXI0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eihzaG9ydDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoc2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KHNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZSh1c2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVzaG9ydDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAodXNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bih1c2hvcnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodXNob3J0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZShpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGludDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoaW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bihpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoaW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0ZSh1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eih1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bih1aW50NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KHVpbnQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQobG9uZzQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUodWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnR6KHVsb25nNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0cCh1bG9uZzQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4odWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQodWxvbmc0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRlKGZsb2F0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0eihmbG9hdDQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoZmxvYXQ0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRuKGZsb2F0NCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KGZsb2F0NCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0ZShjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoY2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRlKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodWNoYXI4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHoodWNoYXI4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRuKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1Y2hhcjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KHVjaGFyOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eihzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KHNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoc2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZSh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUodXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KHVzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKHVzaG9ydDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bih1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4odXNob3J0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdCh1c2hvcnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZShpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KGludDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGludDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bihpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oaW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdChpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0ZSh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eih1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bih1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KHVpbnQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdCh1aW50OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0ZShsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4obG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQobG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRlKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHoodWxvbmc4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHoodWxvbmc4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0cCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRuKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOCh1bG9uZzgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KHVsb25nOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0eihmbG9hdDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0eihmbG9hdDgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRwKGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydG4oZmxvYXQ4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4KGZsb2F0OCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoZmxvYXQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHooY2hhcjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoY2hhcjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KGNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgodWNoYXI4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRuKHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydGUodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eih1c2hvcnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0eih1c2hvcnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4odXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHVzaG9ydDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQodXNob3J0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KGludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgoaW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZSh1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eih1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAodWludDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bih1aW50OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVpbnQ4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0ZShsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoobG9uZzgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAobG9uZzgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0bihsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KGxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHoodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRwKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRuKHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4odWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgodWxvbmc4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0KHVsb25nOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0ZShmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0eihmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRwKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0bihmbG9hdDgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRuKGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4KGZsb2F0OCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdChmbG9hdDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eihjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4oY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQoY2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHoodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cCh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OCh1Y2hhcjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWNoYXI4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydGUoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRwKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoc2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KHNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0ZSh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHVzaG9ydDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KHVzaG9ydDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0bih1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgodXNob3J0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdCh1c2hvcnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHooaW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooaW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OChpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1aW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cCh1aW50OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKHVpbnQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWludDgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eihsb25nOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0cChsb25nOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4obG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQobG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0ZSh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHoodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0eih1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cCh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4odWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0bih1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OCh1bG9uZzgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQodWxvbmc4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRlKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydGUoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnR6KGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHooZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRwKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydHAoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGZsb2F0OCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoZmxvYXQ4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooY2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooY2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1Y2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cCh1Y2hhcjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHVjaGFyOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodWNoYXI4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihzaG9ydDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChzaG9ydDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4oc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQoc2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZSh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHoodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHAodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cCh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bih1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OCh1c2hvcnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodXNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydGUoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRwKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydG4oaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoaW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0ZSh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZSh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVpbnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnR6KHVpbnQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHAodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0bih1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bih1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWludDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdCh1aW50OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRlKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHoobG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHoobG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eih1bG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cCh1bG9uZzgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4odWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKHVsb25nOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQodWxvbmc4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRlKGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnR6KGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihmbG9hdDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChmbG9hdDgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHAoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydG4oZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRuKGZsb2F0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDgoZmxvYXQ4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXQoZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eihjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4oY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQoY2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUodWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHVjaGFyOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4odWNoYXI4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1Y2hhcjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZShzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHNob3J0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHNob3J0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oc2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eih1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cCh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRuKHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KHVzaG9ydDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0ZShpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHAoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4oaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0bihpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQoaW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRlKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWludDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydHoodWludDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRuKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRuKHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1aW50OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0KHVpbnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0eihsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRwKGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydG4obG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4obG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXQobG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZSh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUodWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHoodWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KHVsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKHVsb25nOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bih1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4odWxvbmc4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdCh1bG9uZzgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0ZShmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydGUoZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KGZsb2F0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRwKGZsb2F0OCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oZmxvYXQ4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OChmbG9hdDgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydG4oY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgoY2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZSh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVjaGFyOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnR6KHVjaGFyOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bih1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodWNoYXI4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdCh1Y2hhcjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooc2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooc2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KHNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eih1c2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cCh1c2hvcnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4odXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKHVzaG9ydDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQodXNob3J0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eihpbnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChpbnQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4oaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQoaW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHoodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0eih1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cCh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydG4odWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OCh1aW50OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXQodWludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHoobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydG4obG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgobG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZSh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0ZSh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnR6KHVsb25nOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnR6KHVsb25nOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHAodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHAodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bih1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0bih1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDgodWxvbmc4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdCh1bG9uZzgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRlKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRlKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooZmxvYXQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooZmxvYXQ4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRuKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGZsb2F0OCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChmbG9hdDgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0ZShjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoY2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRlKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodWNoYXI4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHoodWNoYXI4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRuKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1Y2hhcjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KHVjaGFyOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eihzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KHNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoc2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZSh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUodXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KHVzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKHVzaG9ydDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bih1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4odXNob3J0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdCh1c2hvcnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZShpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KGludDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGludDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bihpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oaW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdChpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0ZSh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eih1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bih1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdCh1aW50OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0ZShsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4obG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQobG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRlKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHoodWxvbmc4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHoodWxvbmc4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0cCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRuKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOCh1bG9uZzgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KHVsb25nOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0eihmbG9hdDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0eihmbG9hdDgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRwKGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydG4oZmxvYXQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4KGZsb2F0OCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoZmxvYXQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHooY2hhcjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoY2hhcjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KGNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgodWNoYXI4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVjaGFyOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRuKHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydGUodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eih1c2hvcnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0eih1c2hvcnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4odXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHVzaG9ydDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQodXNob3J0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KGludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgoaW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZSh1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eih1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAodWludDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bih1aW50OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVpbnQ4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0ZShsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoobG9uZzgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAobG9uZzgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0bihsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KGxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHoodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRwKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRuKHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4odWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgodWxvbmc4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0KHVsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0ZShmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0eihmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRwKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0bihmbG9hdDgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRuKGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4KGZsb2F0OCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdChmbG9hdDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHAoY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oY2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChjaGFyOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZSh1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodWNoYXI4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVjaGFyOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bih1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1Y2hhcjgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KHNob3J0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgoc2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKHVzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodXNob3J0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cCh1c2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKHVzaG9ydDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1c2hvcnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKGludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooaW50OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKGludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRlKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRuKHVpbnQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgodWludDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHAobG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4obG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChsb25nOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZSh1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHoodWxvbmc4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKHVsb25nOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bih1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OCh1bG9uZzgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoZmxvYXQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnR6KGZsb2F0OCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChmbG9hdDgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydG4oZmxvYXQ4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDgoZmxvYXQ4KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydG4oY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYoY2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZSh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVjaGFyMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnR6KHVjaGFyMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bih1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodWNoYXIxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdCh1Y2hhcjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooc2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooc2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KHNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eih1c2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cCh1c2hvcnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4odXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKHVzaG9ydDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQodXNob3J0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eihpbnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChpbnQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4oaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQoaW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHoodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0eih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cCh1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydG4odWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNih1aW50MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXQodWludDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHoobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydG4obG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYobG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZSh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0ZSh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnR6KHVsb25nMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnR6KHVsb25nMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHAodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHAodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bih1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0bih1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTYodWxvbmcxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdCh1bG9uZzE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRlKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRlKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooZmxvYXQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooZmxvYXQxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRuKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGZsb2F0MTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihmbG9hdDE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGZsb2F0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4oY2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eih1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KHVjaGFyMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1Y2hhcjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0ZShzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoc2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRlKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoodXNob3J0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydHoodXNob3J0MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cCh1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRuKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNih1c2hvcnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0KHVzaG9ydDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4oaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KGludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoaW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUodWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoodWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKHVpbnQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cCh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4odWludDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNih1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1aW50MTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUobG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHoobG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGxvbmcxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRwKGxvbmcxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydG4obG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZSh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eih1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cCh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bih1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2KHVsb25nMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdCh1bG9uZzE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydGUoZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0ZShmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHooZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0eihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0cChmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydG4oZmxvYXQxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihmbG9hdDE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXQoZmxvYXQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHooY2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAoY2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KGNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYodWNoYXIxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVjaGFyMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRlKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRuKHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydGUodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eih1c2hvcnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0eih1c2hvcnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydG4odXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHVzaG9ydDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXQodXNob3J0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KGludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KGludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYoaW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZSh1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eih1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAodWludDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bih1aW50MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVpbnQxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoobG9uZzE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHAobG9uZzE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KGxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRlKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnR6KHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHoodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHAodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRuKHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydG4odWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTYodWxvbmcxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0KHVsb25nMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRlKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnR6KGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihmbG9hdDE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRuKGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGZsb2F0MTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYoY2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZSh1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodWNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAodWNoYXIxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bih1Y2hhcjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVjaGFyMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooc2hvcnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoc2hvcnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRwKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4odXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYodXNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVzaG9ydDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRlKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0cChpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRuKGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KGludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydGUodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1aW50MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0eih1aW50MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRwKHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydG4odWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4odWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVpbnQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXQodWludDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0ZShsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnR6KGxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTYobG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdChsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZSh1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eih1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHoodWxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAodWxvbmcxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bih1bG9uZzE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KHVsb25nMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0ZShmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0eihmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooZmxvYXQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoZmxvYXQxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihmbG9hdDE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2KGZsb2F0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHooY2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooY2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1Y2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cCh1Y2hhcjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHVjaGFyMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodWNoYXIxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eihzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4oc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoc2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0ZSh1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHoodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cCh1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0bih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNih1c2hvcnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodXNob3J0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydGUoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRwKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoaW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0ZSh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0ZSh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVpbnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnR6KHVpbnQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bih1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0bih1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWludDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdCh1aW50MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHoobG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHoobG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRuKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0KGxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eih1bG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cCh1bG9uZzE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4odWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKHVsb25nMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQodWxvbmcxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydGUoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0eihmbG9hdDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0cChmbG9hdDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydG4oZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRuKGZsb2F0MTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoZmxvYXQxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRlKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0cChjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1Y2hhcjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eih1Y2hhcjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydG4odWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVjaGFyMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXQodWNoYXIxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KHNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KHNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYoc2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZSh1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHoodXNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAodXNob3J0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bih1c2hvcnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KHVzaG9ydDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHooaW50MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoaW50MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHoodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYodWludDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KHVpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRlKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eihsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0cChsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0eih1bG9uZzE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eih1bG9uZzE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydG4odWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4odWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KHVsb25nMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXQodWxvbmcxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0ZShmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KGZsb2F0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnR6KGZsb2F0MTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHAoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHAoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0bihmbG9hdDE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTYoZmxvYXQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydG4oY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYoY2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZSh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVjaGFyMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnR6KHVjaGFyMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bih1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodWNoYXIxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdCh1Y2hhcjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooc2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooc2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KHNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eih1c2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cCh1c2hvcnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4odXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKHVzaG9ydDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQodXNob3J0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eihpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4oaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQoaW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHoodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0eih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cCh1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydG4odWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNih1aW50MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXQodWludDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHoobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydG4obG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYobG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZSh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0ZSh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnR6KHVsb25nMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnR6KHVsb25nMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHAodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHAodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bih1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0bih1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTYodWxvbmcxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdCh1bG9uZzE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRlKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRlKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooZmxvYXQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooZmxvYXQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRuKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGZsb2F0MTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihmbG9hdDE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGZsb2F0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGNoYXIxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGNoYXIxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4oY2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eih1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KHVjaGFyMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1Y2hhcjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0ZShzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoc2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRlKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoodXNob3J0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydHoodXNob3J0MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cCh1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRuKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNih1c2hvcnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0KHVzaG9ydDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4oaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KGludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoaW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUodWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoodWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKHVpbnQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cCh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4odWludDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNih1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1aW50MTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUobG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHoobG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRwKGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydG4obG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZSh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eih1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cCh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bih1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2KHVsb25nMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdCh1bG9uZzE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydGUoZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0ZShmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHooZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0eihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0cChmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydG4oZmxvYXQxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihmbG9hdDE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXQoZmxvYXQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRwKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoY2hhcjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUodWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVjaGFyMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1Y2hhcjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4odWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodWNoYXIxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihzaG9ydDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoc2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KHNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZSh1c2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVzaG9ydDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAodXNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bih1c2hvcnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodXNob3J0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZShpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGludDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoaW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bihpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoaW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZSh1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eih1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0bih1aW50MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KHVpbnQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRwKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYobG9uZzE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUodWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnR6KHVsb25nMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0cCh1bG9uZzE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4odWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYodWxvbmcxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRlKGZsb2F0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihmbG9hdDE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoZmxvYXQxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGZsb2F0MTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2KGZsb2F0MTYpOwoKLy8gQ29udmVyc2lvbnMgd2l0aCBkb3VibGUgZGF0YSB0eXBlIHBhcmFtZXRlcnMgb3IgcmV0dXJuIHZhbHVlLgoKI2lmZGVmIGNsX2tocl9mcDY0CiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnA2NCA6IGVuYWJsZQpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRlKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRuKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnR6KGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0ZShkb3VibGUpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydG4oZG91YmxlKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRwKGRvdWJsZSk7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0eihkb3VibGUpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjIoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydG4oZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHAoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXQoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRlKGRvdWJsZTIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0bihkb3VibGUyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHAoZG91YmxlMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnR6KGRvdWJsZTIpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydGUoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4oZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHAoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydHooZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXQoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGRvdWJsZTMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihkb3VibGUzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoZG91YmxlMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGRvdWJsZTMpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjQoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydGUoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydG4oZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHooZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRlKGRvdWJsZTQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0bihkb3VibGU0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydHAoZG91YmxlNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnR6KGRvdWJsZTQpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjgoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydG4oZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHAoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXQoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRlKGRvdWJsZTgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0bihkb3VibGU4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHAoZG91YmxlOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnR6KGRvdWJsZTgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0ZShkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0cChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0eihkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoZG91YmxlMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGRvdWJsZTE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChkb3VibGUxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooZG91YmxlMTYpOwoKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGRvdWJsZSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydGUoZG91YmxlKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3J0bihkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGRvdWJsZSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9ydHooZG91YmxlKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdChkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0bihkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0cChkb3VibGUpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihkb3VibGUpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMihkb3VibGUyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnRlKGRvdWJsZTIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4oZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3J0cChkb3VibGUyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfcnR6KGRvdWJsZTIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydGUoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4oZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHAoZG91YmxlMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydHooZG91YmxlMik7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzKGRvdWJsZTMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoZG91YmxlMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3J0bihkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfcnRwKGRvdWJsZTMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooZG91YmxlMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdChkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0ZShkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0bihkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChkb3VibGUzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0eihkb3VibGUzKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjQoZG91YmxlNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0ZShkb3VibGU0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfcnRuKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoZG91YmxlNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3J0eihkb3VibGU0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0KGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRuKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRwKGRvdWJsZTQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGRvdWJsZTQpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOChkb3VibGU4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnRlKGRvdWJsZTgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4oZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3J0cChkb3VibGU4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfcnR6KGRvdWJsZTgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydGUoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4oZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHAoZG91YmxlOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydHooZG91YmxlOCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTYoZG91YmxlMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShkb3VibGUxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfcnRuKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9ydHAoZG91YmxlMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihkb3VibGUxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0KGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRlKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRuKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydChkb3VibGUpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKGRvdWJsZSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9ydG4oZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3J0cChkb3VibGUpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnR6KGRvdWJsZSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXQoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydGUoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydG4oZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHAoZG91YmxlKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHooZG91YmxlKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoZG91YmxlMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0ZShkb3VibGUyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfcnRuKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAoZG91YmxlMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3J0eihkb3VibGUyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0KGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRuKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRwKGRvdWJsZTIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KGRvdWJsZTIpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Myhkb3VibGUzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnRlKGRvdWJsZTMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3J0cChkb3VibGUzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfcnR6KGRvdWJsZTMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydGUoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHAoZG91YmxlMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydHooZG91YmxlMyk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0KGRvdWJsZTQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUoZG91YmxlNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3J0bihkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfcnRwKGRvdWJsZTQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHooZG91YmxlNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdChkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0ZShkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0bihkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0cChkb3VibGU0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0eihkb3VibGU0KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoZG91YmxlOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0ZShkb3VibGU4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfcnRuKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAoZG91YmxlOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3J0eihkb3VibGU4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0KGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRuKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRwKGRvdWJsZTgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KGRvdWJsZTgpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2KGRvdWJsZTE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydGUoZG91YmxlMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfcnRwKGRvdWJsZTE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9ydHooZG91YmxlMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0ZShkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0cChkb3VibGUxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0eihkb3VibGUxNik7Cgp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydChkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydGUoZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRuKGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0cChkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydHooZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydGUoZG91YmxlKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0X3J0bihkb3VibGUpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGRvdWJsZSk7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3NhdF9ydHooZG91YmxlKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Mihkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0KGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydGUoZG91YmxlMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bihkb3VibGUyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9zYXRfcnRwKGRvdWJsZTIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdF9ydHooZG91YmxlMik7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDMoZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRlKGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0bihkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydHAoZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnR6KGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdChkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKGRvdWJsZTMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3NhdF9ydG4oZG91YmxlMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0X3J0cChkb3VibGUzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGRvdWJsZTMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0KGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0ZShkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydG4oZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRwKGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0eihkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQoZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0ZShkb3VibGU0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXRfcnRuKGRvdWJsZTQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoZG91YmxlNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfc2F0X3J0eihkb3VibGU0KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OChkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0KGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydGUoZG91YmxlOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bihkb3VibGU4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9zYXRfcnRwKGRvdWJsZTgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdF9ydHooZG91YmxlOCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNihkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydGUoZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRuKGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0cChkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHooZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0KGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUoZG91YmxlMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfc2F0X3J0bihkb3VibGUxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooZG91YmxlMTYpOwoKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRlKGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0bihkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydHAoZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnR6KGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdChkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGRvdWJsZSk7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3NhdF9ydG4oZG91YmxlKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0X3J0cChkb3VibGUpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGRvdWJsZSk7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDIoZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRlKGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0bihkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHAoZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnR6KGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnRlKGRvdWJsZTIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdF9ydG4oZG91YmxlMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChkb3VibGUyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9zYXRfcnR6KGRvdWJsZTIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4oZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXQoZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0ZShkb3VibGUzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGRvdWJsZTMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3NhdF9ydHAoZG91YmxlMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0X3J0eihkb3VibGUzKTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydGUoZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRuKGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0cChkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHooZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0KGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoZG91YmxlNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfc2F0X3J0bihkb3VibGU0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXRfcnRwKGRvdWJsZTQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooZG91YmxlNCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDgoZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRlKGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0bihkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHAoZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnR6KGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnRlKGRvdWJsZTgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdF9ydG4oZG91YmxlOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChkb3VibGU4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9zYXRfcnR6KGRvdWJsZTgpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTYoZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bihkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAoZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdChkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnRlKGRvdWJsZTE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oZG91YmxlMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfc2F0X3J0cChkb3VibGUxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydG4oZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHAoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXQoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRlKGRvdWJsZSk7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0bihkb3VibGUpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHAoZG91YmxlKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnR6KGRvdWJsZSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Mihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0ZShkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0cChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0eihkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoZG91YmxlMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGRvdWJsZTIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChkb3VibGUyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooZG91YmxlMik7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Myhkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0ZShkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0bihkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0eihkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydGUoZG91YmxlMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRuKGRvdWJsZTMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0cChkb3VibGUzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHooZG91YmxlMyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0bihkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0cChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydGUoZG91YmxlNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRuKGRvdWJsZTQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0cChkb3VibGU0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydHooZG91YmxlNCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0ZShkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bihkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0cChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0eihkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoZG91YmxlOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGRvdWJsZTgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChkb3VibGU4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooZG91YmxlOCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRlKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRuKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnR6KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0ZShkb3VibGUxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydG4oZG91YmxlMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0eihkb3VibGUxNik7Cgpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRlKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRuKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnR6KGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0ZShkb3VibGUpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydG4oZG91YmxlKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRwKGRvdWJsZSk7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0eihkb3VibGUpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzIoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydG4oZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHAoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXQoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRlKGRvdWJsZTIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0bihkb3VibGUyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHAoZG91YmxlMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnR6KGRvdWJsZTIpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydGUoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4oZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHAoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydHooZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXQoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGRvdWJsZTMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihkb3VibGUzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoZG91YmxlMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGRvdWJsZTMpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzQoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydGUoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydG4oZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHooZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRlKGRvdWJsZTQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0bihkb3VibGU0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydHAoZG91YmxlNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnR6KGRvdWJsZTQpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzgoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydG4oZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHAoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXQoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRlKGRvdWJsZTgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0bihkb3VibGU4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHAoZG91YmxlOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnR6KGRvdWJsZTgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0ZShkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0cChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0eihkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoZG91YmxlMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGRvdWJsZTE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChkb3VibGUxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooZG91YmxlMTYpOwoKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nKGRvdWJsZSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydGUoZG91YmxlKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3J0bihkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGRvdWJsZSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19ydHooZG91YmxlKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdChkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZShkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0bihkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0cChkb3VibGUpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihkb3VibGUpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMihkb3VibGUyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnRlKGRvdWJsZTIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4oZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3J0cChkb3VibGUyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfcnR6KGRvdWJsZTIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydGUoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4oZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHAoZG91YmxlMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydHooZG91YmxlMik7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczKGRvdWJsZTMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoZG91YmxlMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3J0bihkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfcnRwKGRvdWJsZTMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooZG91YmxlMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdChkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0ZShkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0bihkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChkb3VibGUzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0eihkb3VibGUzKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzQoZG91YmxlNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0ZShkb3VibGU0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfcnRuKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoZG91YmxlNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3J0eihkb3VibGU0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0KGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRuKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRwKGRvdWJsZTQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGRvdWJsZTQpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOChkb3VibGU4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnRlKGRvdWJsZTgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4oZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3J0cChkb3VibGU4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfcnR6KGRvdWJsZTgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydGUoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4oZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHAoZG91YmxlOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydHooZG91YmxlOCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTYoZG91YmxlMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShkb3VibGUxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfcnRuKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9ydHAoZG91YmxlMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihkb3VibGUxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0KGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRlKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRuKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGRvdWJsZTE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnR6KGRvdWJsZTE2KTsKCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdChkb3VibGUpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKGRvdWJsZSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdF9ydG4oZG91YmxlKTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0X3J0cChkb3VibGUpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnR6KGRvdWJsZSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyKGRvdWJsZTIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydGUoZG91YmxlMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bihkb3VibGUyKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDJfcnRwKGRvdWJsZTIpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0Ml9ydHooZG91YmxlMik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGRvdWJsZTMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydGUoZG91YmxlMyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzX3J0bihkb3VibGUzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGRvdWJsZTMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0M19ydHooZG91YmxlMyk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0KGRvdWJsZTQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUoZG91YmxlNCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ0X3J0bihkb3VibGU0KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDRfcnRwKGRvdWJsZTQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHooZG91YmxlNCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4KGRvdWJsZTgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydGUoZG91YmxlOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bihkb3VibGU4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDhfcnRwKGRvdWJsZTgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OF9ydHooZG91YmxlOCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoZG91YmxlMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0ZShkb3VibGUxNik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTZfcnRuKGRvdWJsZTE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoZG91YmxlMTYpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDE2X3J0eihkb3VibGUxNik7Cgpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoZG91YmxlKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoZmxvYXQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZShsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUoc2hvcnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZSh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKHVpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZSh1bG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydGUobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZShzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZSh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0ZSh1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRlKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydG4obG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bihzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bih1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0bih1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHAobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cCh1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cCh1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRwKHVzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihjaGFyKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KGRvdWJsZSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihmbG9hdCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihpbnQpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHoobG9uZyk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eihzaG9ydCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eih1Y2hhcik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0eih1aW50KTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KHVsb25nKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnR6KHVzaG9ydCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKGRvdWJsZTIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKGZsb2F0Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIobG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyKHNob3J0Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMih1aW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIodWxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMih1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZShkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRlKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUoc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydGUodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZSh1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZSh1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bihkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRuKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4odWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4odWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bih1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0bih1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cChkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRwKGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAoc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHAodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cCh1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0cCh1c2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooY2hhcjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eihkb3VibGUyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooZmxvYXQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooaW50Mik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnR6KGxvbmcyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHooc2hvcnQyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHoodWNoYXIyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydHoodWludDIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eih1bG9uZzIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eih1c2hvcnQyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoZG91YmxlMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoZmxvYXQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyhsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoc2hvcnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzKHVpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMyh1bG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydGUobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZSh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZSh1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRlKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydG4obG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bihzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bih1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0bih1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRuKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydHAobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cChzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cCh1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0cCh1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKHVzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihjaGFyMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KGRvdWJsZTMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihmbG9hdDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihpbnQzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydHoobG9uZzMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihzaG9ydDMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eih1Y2hhcjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eih1aW50Myk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KHVsb25nMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnR6KHVzaG9ydDMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChkb3VibGU0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChmbG9hdDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KGxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNChzaG9ydDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQodWludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0KHVsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUoZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0ZShsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRlKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydGUodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4oZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0bihsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRuKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4odWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4odXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAoZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0cChsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHAodXNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGNoYXI0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHooZG91YmxlNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGZsb2F0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KGludDQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0eihsb25nNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHNob3J0NCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHVjaGFyNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnR6KHVpbnQ0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHoodWxvbmc0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydHoodXNob3J0NCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KGRvdWJsZTgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KGZsb2F0OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgobG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4KHNob3J0OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOCh1aW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgodWxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOCh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZShkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRlKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUoc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydGUodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZSh1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZSh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bihkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRuKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4odWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4odWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bih1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0bih1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cChkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRwKGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAoc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHAodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cCh1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0cCh1c2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooY2hhcjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eihkb3VibGU4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooZmxvYXQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooaW50OCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnR6KGxvbmc4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHooc2hvcnQ4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHoodWNoYXI4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydHoodWludDgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eih1bG9uZzgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eih1c2hvcnQ4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihkb3VibGUxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihmbG9hdDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KGxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihzaG9ydDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTYodWludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2KHVsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTYodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUoZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0ZShsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydGUodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4oZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0bihsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRuKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4odWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydG4odXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAoZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0cChsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRwKHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAodXNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGNoYXIxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHooZG91YmxlMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGZsb2F0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGludDE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0eihsb25nMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHNob3J0MTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHVjaGFyMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KHVpbnQxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHoodWxvbmcxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHoodXNob3J0MTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfZnAxNiA6IGVuYWJsZQovLyBDb252ZXJ0IGhhbGYgdHlwZXMgdG8gbm9uLWRvdWJsZSB0eXBlcy4KdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRlKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRwKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnRuKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfcnR6KGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0KGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0ZShoYWxmKTsKdWNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyX3NhdF9ydHAoaGFsZik7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcl9zYXRfcnRuKGhhbGYpOwp1Y2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXJfc2F0X3J0eihoYWxmKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjIoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydGUoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHAoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydG4oaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9ydHooaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXQoaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnRlKGhhbGYyKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjJfc2F0X3J0cChoYWxmMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIyX3NhdF9ydG4oaGFsZjIpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMl9zYXRfcnR6KGhhbGYyKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjMoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydGUoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHAoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydG4oaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19ydHooaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXQoaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnRlKGhhbGYzKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjNfc2F0X3J0cChoYWxmMyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIzX3NhdF9ydG4oaGFsZjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyM19zYXRfcnR6KGhhbGYzKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjQoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydGUoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHAoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydG4oaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9ydHooaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXQoaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnRlKGhhbGY0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjRfc2F0X3J0cChoYWxmNCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI0X3NhdF9ydG4oaGFsZjQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyNF9zYXRfcnR6KGhhbGY0KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjgoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydGUoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHAoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydG4oaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9ydHooaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXQoaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnRlKGhhbGY4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjhfc2F0X3J0cChoYWxmOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXI4X3NhdF9ydG4oaGFsZjgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyOF9zYXRfcnR6KGhhbGY4KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0ZShoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0cChoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0bihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3J0eihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdChoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydGUoaGFsZjE2KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWNoYXIxNl9zYXRfcnRwKGhhbGYxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VjaGFyMTZfc2F0X3J0bihoYWxmMTYpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91Y2hhcjE2X3NhdF9ydHooaGFsZjE2KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQoaGFsZik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0ZShoYWxmKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfcnRwKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9ydG4oaGFsZik7CnVzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0X3J0eihoYWxmKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnRfc2F0KGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRlKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRwKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnRuKGhhbGYpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydF9zYXRfcnR6KGhhbGYpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyKGhhbGYyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydGUoaGFsZjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3J0cChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfcnRuKGhhbGYyKTsKdXNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0Ml9ydHooaGFsZjIpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQyX3NhdChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0ZShoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0cChoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0bihoYWxmMik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDJfc2F0X3J0eihoYWxmMik7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDMoaGFsZjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0ZShoYWxmMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfcnRwKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19ydG4oaGFsZjMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQzX3J0eihoYWxmMyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDNfc2F0KGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRlKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRwKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnRuKGhhbGYzKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0M19zYXRfcnR6KGhhbGYzKTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NChoYWxmNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnRlKGhhbGY0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9ydHAoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3J0bihoYWxmNCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDRfcnR6KGhhbGY0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0NF9zYXQoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydGUoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHAoaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydG4oaGFsZjQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ0X3NhdF9ydHooaGFsZjQpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4KGhhbGY4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydGUoaGFsZjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3J0cChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfcnRuKGhhbGY4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0OF9ydHooaGFsZjgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQ4X3NhdChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0ZShoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0cChoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0bihoYWxmOCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDhfc2F0X3J0eihoYWxmOCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNihoYWxmMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnRlKGhhbGYxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9ydHAoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3J0bihoYWxmMTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdXNob3J0MTZfcnR6KGhhbGYxNik7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91c2hvcnQxNl9zYXQoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydGUoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHAoaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydG4oaGFsZjE2KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VzaG9ydDE2X3NhdF9ydHooaGFsZjE2KTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludChoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydGUoaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfcnRwKGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3J0bihoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9ydHooaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0KGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydGUoaGFsZik7CnVpbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnRfc2F0X3J0cChoYWxmKTsKdWludCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludF9zYXRfcnRuKGhhbGYpOwp1aW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50X3NhdF9ydHooaGFsZik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MihoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydGUoaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfcnRwKGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3J0bihoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9ydHooaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0KGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydGUoaGFsZjIpOwp1aW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDJfc2F0X3J0cChoYWxmMik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50Ml9zYXRfcnRuKGhhbGYyKTsKdWludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQyX3NhdF9ydHooaGFsZjIpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDMoaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnRlKGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3J0cChoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19ydG4oaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfcnR6KGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdChoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnRlKGhhbGYzKTsKdWludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQzX3NhdF9ydHAoaGFsZjMpOwp1aW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDNfc2F0X3J0bihoYWxmMyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50M19zYXRfcnR6KGhhbGYzKTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0KGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0ZShoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9ydHAoaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfcnRuKGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3J0eihoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXQoaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0ZShoYWxmNCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50NF9zYXRfcnRwKGhhbGY0KTsKdWludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ0X3NhdF9ydG4oaGFsZjQpOwp1aW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDRfc2F0X3J0eihoYWxmNCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OChoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydGUoaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfcnRwKGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3J0bihoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9ydHooaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0KGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydGUoaGFsZjgpOwp1aW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDhfc2F0X3J0cChoYWxmOCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50OF9zYXRfcnRuKGhhbGY4KTsKdWludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQ4X3NhdF9ydHooaGFsZjgpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNihoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydGUoaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfcnRwKGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3J0bihoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9ydHooaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0KGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydGUoaGFsZjE2KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91aW50MTZfc2F0X3J0cChoYWxmMTYpOwp1aW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3VpbnQxNl9zYXRfcnRuKGhhbGYxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWludDE2X3NhdF9ydHooaGFsZjE2KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRlKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRwKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnRuKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfcnR6KGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0KGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0ZShoYWxmKTsKdWxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nX3NhdF9ydHAoaGFsZik7CnVsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZ19zYXRfcnRuKGhhbGYpOwp1bG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmdfc2F0X3J0eihoYWxmKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzIoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydGUoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHAoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydG4oaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9ydHooaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXQoaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnRlKGhhbGYyKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzJfc2F0X3J0cChoYWxmMik7CnVsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcyX3NhdF9ydG4oaGFsZjIpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMl9zYXRfcnR6KGhhbGYyKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzMoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydGUoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHAoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydG4oaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19ydHooaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXQoaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnRlKGhhbGYzKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzNfc2F0X3J0cChoYWxmMyk7CnVsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmczX3NhdF9ydG4oaGFsZjMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nM19zYXRfcnR6KGhhbGYzKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzQoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydGUoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHAoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydG4oaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9ydHooaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXQoaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnRlKGhhbGY0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzRfc2F0X3J0cChoYWxmNCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc0X3NhdF9ydG4oaGFsZjQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nNF9zYXRfcnR6KGhhbGY0KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzgoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydGUoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHAoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydG4oaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9ydHooaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXQoaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnRlKGhhbGY4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzhfc2F0X3J0cChoYWxmOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmc4X3NhdF9ydG4oaGFsZjgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nOF9zYXRfcnR6KGhhbGY4KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0ZShoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0cChoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0bihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3J0eihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdChoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydGUoaGFsZjE2KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfdWxvbmcxNl9zYXRfcnRwKGhhbGYxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Vsb25nMTZfc2F0X3J0bihoYWxmMTYpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF91bG9uZzE2X3NhdF9ydHooaGFsZjE2KTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcihoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydGUoaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfcnRwKGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3J0bihoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9ydHooaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0KGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydGUoaGFsZik7CmNoYXIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXJfc2F0X3J0cChoYWxmKTsKY2hhciBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcl9zYXRfcnRuKGhhbGYpOwpjaGFyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyX3NhdF9ydHooaGFsZik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMihoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydGUoaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfcnRwKGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3J0bihoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9ydHooaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0KGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydGUoaGFsZjIpOwpjaGFyMiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjJfc2F0X3J0cChoYWxmMik7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMl9zYXRfcnRuKGhhbGYyKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIyX3NhdF9ydHooaGFsZjIpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjMoaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnRlKGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3J0cChoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19ydG4oaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfcnR6KGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdChoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnRlKGhhbGYzKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIzX3NhdF9ydHAoaGFsZjMpOwpjaGFyMyBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjNfc2F0X3J0bihoYWxmMyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyM19zYXRfcnR6KGhhbGYzKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0KGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0ZShoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9ydHAoaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfcnRuKGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3J0eihoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXQoaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0ZShoYWxmNCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyNF9zYXRfcnRwKGhhbGY0KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI0X3NhdF9ydG4oaGFsZjQpOwpjaGFyNCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjRfc2F0X3J0eihoYWxmNCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOChoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydGUoaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfcnRwKGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3J0bihoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9ydHooaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0KGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydGUoaGFsZjgpOwpjaGFyOCBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjhfc2F0X3J0cChoYWxmOCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyOF9zYXRfcnRuKGhhbGY4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXI4X3NhdF9ydHooaGFsZjgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNihoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydGUoaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfcnRwKGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3J0bihoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9ydHooaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0KGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydGUoaGFsZjE2KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9jaGFyMTZfc2F0X3J0cChoYWxmMTYpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2NoYXIxNl9zYXRfcnRuKGhhbGYxNik7CmNoYXIxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfY2hhcjE2X3NhdF9ydHooaGFsZjE2KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRlKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRwKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnRuKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfcnR6KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0KGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0ZShoYWxmKTsKc2hvcnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0X3NhdF9ydHAoaGFsZik7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydF9zYXRfcnRuKGhhbGYpOwpzaG9ydCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnRfc2F0X3J0eihoYWxmKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDIoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydGUoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHAoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydG4oaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9ydHooaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXQoaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnRlKGhhbGYyKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDJfc2F0X3J0cChoYWxmMik7CnNob3J0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQyX3NhdF9ydG4oaGFsZjIpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0Ml9zYXRfcnR6KGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDMoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydGUoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHAoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydG4oaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19ydHooaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXQoaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnRlKGhhbGYzKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDNfc2F0X3J0cChoYWxmMyk7CnNob3J0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQzX3NhdF9ydG4oaGFsZjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0M19zYXRfcnR6KGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDQoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydGUoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHAoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydG4oaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9ydHooaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXQoaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnRlKGhhbGY0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDRfc2F0X3J0cChoYWxmNCk7CnNob3J0NCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ0X3NhdF9ydG4oaGFsZjQpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0NF9zYXRfcnR6KGhhbGY0KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDgoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydGUoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHAoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydG4oaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9ydHooaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXQoaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnRlKGhhbGY4KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDhfc2F0X3J0cChoYWxmOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQ4X3NhdF9ydG4oaGFsZjgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0OF9zYXRfcnR6KGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0ZShoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0cChoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0bihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3J0eihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdChoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydGUoaGFsZjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfc2hvcnQxNl9zYXRfcnRwKGhhbGYxNik7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X3Nob3J0MTZfc2F0X3J0bihoYWxmMTYpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9zaG9ydDE2X3NhdF9ydHooaGFsZjE2KTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQoaGFsZik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0ZShoYWxmKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfcnRwKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9ydG4oaGFsZik7CmludCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50X3J0eihoYWxmKTsKaW50IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnRfc2F0KGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRlKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRwKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnRuKGhhbGYpOwppbnQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludF9zYXRfcnR6KGhhbGYpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyKGhhbGYyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydGUoaGFsZjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3J0cChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfcnRuKGhhbGYyKTsKaW50MiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50Ml9ydHooaGFsZjIpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQyX3NhdChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0ZShoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0cChoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0bihoYWxmMik7CmludDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDJfc2F0X3J0eihoYWxmMik7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDMoaGFsZjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0ZShoYWxmMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfcnRwKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19ydG4oaGFsZjMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQzX3J0eihoYWxmMyk7CmludDMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDNfc2F0KGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRlKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRwKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnRuKGhhbGYzKTsKaW50MyBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50M19zYXRfcnR6KGhhbGYzKTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NChoYWxmNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnRlKGhhbGY0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9ydHAoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3J0bihoYWxmNCk7CmludDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDRfcnR6KGhhbGY0KTsKaW50NCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50NF9zYXQoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydGUoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHAoaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydG4oaGFsZjQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ0X3NhdF9ydHooaGFsZjQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4KGhhbGY4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydGUoaGFsZjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3J0cChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfcnRuKGhhbGY4KTsKaW50OCBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50OF9ydHooaGFsZjgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQ4X3NhdChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0ZShoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0cChoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0bihoYWxmOCk7CmludDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDhfc2F0X3J0eihoYWxmOCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNihoYWxmMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnRlKGhhbGYxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9ydHAoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3J0bihoYWxmMTYpOwppbnQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaW50MTZfcnR6KGhhbGYxNik7CmludDE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9pbnQxNl9zYXQoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydGUoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHAoaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydG4oaGFsZjE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2ludDE2X3NhdF9ydHooaGFsZjE2KTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZyhoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydGUoaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfcnRwKGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3J0bihoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19ydHooaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0KGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydGUoaGFsZik7CmxvbmcgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmdfc2F0X3J0cChoYWxmKTsKbG9uZyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZ19zYXRfcnRuKGhhbGYpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nX3NhdF9ydHooaGFsZik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMihoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydGUoaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfcnRwKGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3J0bihoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9ydHooaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0KGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydGUoaGFsZjIpOwpsb25nMiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzJfc2F0X3J0cChoYWxmMik7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMl9zYXRfcnRuKGhhbGYyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcyX3NhdF9ydHooaGFsZjIpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzMoaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnRlKGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3J0cChoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19ydG4oaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfcnR6KGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdChoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnRlKGhhbGYzKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmczX3NhdF9ydHAoaGFsZjMpOwpsb25nMyBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzNfc2F0X3J0bihoYWxmMyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nM19zYXRfcnR6KGhhbGYzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0KGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0ZShoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9ydHAoaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfcnRuKGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3J0eihoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXQoaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0ZShoYWxmNCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nNF9zYXRfcnRwKGhhbGY0KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc0X3NhdF9ydG4oaGFsZjQpOwpsb25nNCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzRfc2F0X3J0eihoYWxmNCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOChoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydGUoaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfcnRwKGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3J0bihoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9ydHooaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0KGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydGUoaGFsZjgpOwpsb25nOCBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzhfc2F0X3J0cChoYWxmOCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nOF9zYXRfcnRuKGhhbGY4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmc4X3NhdF9ydHooaGFsZjgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNihoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydGUoaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfcnRwKGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3J0bihoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9ydHooaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0KGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydGUoaGFsZjE2KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9sb25nMTZfc2F0X3J0cChoYWxmMTYpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2xvbmcxNl9zYXRfcnRuKGhhbGYxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfbG9uZzE2X3NhdF9ydHooaGFsZjE2KTsKZmxvYXQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0KGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRlKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRwKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnRuKGhhbGYpOwpmbG9hdCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXRfcnR6KGhhbGYpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MihoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0ZShoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0cChoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0bihoYWxmMik7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQyX3J0eihoYWxmMik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQzKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRlKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRwKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnRuKGhhbGYzKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDNfcnR6KGhhbGYzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9mbG9hdDQoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydGUoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHAoaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydG4oaGFsZjQpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0NF9ydHooaGFsZjQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0OChoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0ZShoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0cChoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0bihoYWxmOCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQ4X3J0eihoYWxmOCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2Zsb2F0MTYoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydGUoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHAoaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydG4oaGFsZjE2KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZmxvYXQxNl9ydHooaGFsZjE2KTsKCi8vIENvbnZlcnQgbm9uLWRvdWJsZSB0eXBlcyB0byBoYWxmIHR5cGVzLgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZih1c2hvcnQpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVpbnQpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihzaG9ydCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZihmbG9hdCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydGUoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHAoaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4odXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4odWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4obG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydG4oaGFsZik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHVjaGFyKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoodXNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoodWludCk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHVsb25nKTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooY2hhcik7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KHNob3J0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooaW50KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHoobG9uZyk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KGZsb2F0KTsKaGFsZiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZl9ydHooaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1Y2hhcjIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoc2hvcnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoaW50Mik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1aW50Mik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMih1bG9uZzIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjIoZmxvYXQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydGUodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydGUodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRlKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHAodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHAodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRwKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydG4odWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydG4odWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnRuKGhhbGYyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihjaGFyMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHoodWNoYXIyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KHVzaG9ydDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KGludDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KHVpbnQyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihsb25nMik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMl9ydHoodWxvbmcyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihmbG9hdDIpOwpoYWxmMiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjJfcnR6KGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVjaGFyMyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhzaG9ydDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjModXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhpbnQzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVpbnQzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKHVsb25nMyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMyhmbG9hdDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjMoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0ZSh1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUoaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0ZSh1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydGUoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0cCh1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAoaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0cCh1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHAoaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0bih1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4odXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4oaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4odWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0bih1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydG4oaGFsZjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGNoYXIzKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0eih1Y2hhcjMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KHNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHoodXNob3J0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHooaW50Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHoodWludDMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGxvbmczKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzX3J0eih1bG9uZzMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGZsb2F0Myk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmM19ydHooaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWNoYXI0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KHNob3J0NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNCh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KGludDQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWludDQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQodWxvbmc0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0KGZsb2F0NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNChoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRlKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZSh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZShpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZSh1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRlKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0ZShoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRwKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cCh1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cChpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cCh1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRwKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0cChoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRuKHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bih1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bihpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bih1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4obG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnRuKHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0bihoYWxmNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooY2hhcjQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnR6KHVjaGFyNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooc2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eih1c2hvcnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eihpbnQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eih1aW50NCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHoobG9uZzQpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjRfcnR6KHVsb25nNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooZmxvYXQ0KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY0X3J0eihoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1Y2hhcjgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoc2hvcnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4KHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoaW50OCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1aW50OCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOCh1bG9uZzgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjgoZmxvYXQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4KGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydGUodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydGUodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRlKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHAodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHAodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRwKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydG4odWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydG4odWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnRuKGhhbGY4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihjaGFyOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHoodWNoYXI4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KHVzaG9ydDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KGludDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KHVpbnQ4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihsb25nOCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOF9ydHoodWxvbmc4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihmbG9hdDgpOwpoYWxmOCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjhfcnR6KGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWNoYXIxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KHNob3J0MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KGludDE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWludDE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYodWxvbmcxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2KGZsb2F0MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNihoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRlKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZSh1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZShpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZSh1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRlKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0ZShoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRwKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cCh1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cChpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cCh1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRwKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0cChoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRuKHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bihpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bih1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4obG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnRuKHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0bihoYWxmMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooY2hhcjE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnR6KHVjaGFyMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooc2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eih1c2hvcnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eihpbnQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eih1aW50MTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHoobG9uZzE2KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTZfcnR6KHVsb25nMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooZmxvYXQxNik7CmhhbGYxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjE2X3J0eihoYWxmMTYpOwoKLy8gQ29udmVydCBoYWxmIHR5cGVzIHRvIGRvdWJsZSB0eXBlcy4KI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlKGhhbGYpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydGUoaGFsZik7CmRvdWJsZSBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlX3J0cChoYWxmKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGVfcnRuKGhhbGYpOwpkb3VibGUgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZV9ydHooaGFsZik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTIoaGFsZjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0ZShoYWxmMik7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTJfcnRwKGhhbGYyKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMl9ydG4oaGFsZjIpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUyX3J0eihoYWxmMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTMoaGFsZjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0ZShoYWxmMyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTNfcnRwKGhhbGYzKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlM19ydG4oaGFsZjMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUzX3J0eihoYWxmMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTQoaGFsZjQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0ZShoYWxmNCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTRfcnRwKGhhbGY0KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlNF9ydG4oaGFsZjQpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU0X3J0eihoYWxmNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTgoaGFsZjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0ZShoYWxmOCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZThfcnRwKGhhbGY4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlOF9ydG4oaGFsZjgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGU4X3J0eihoYWxmOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNihoYWxmMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnRlKGhhbGYxNik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9kb3VibGUxNl9ydHAoaGFsZjE2KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2RvdWJsZTE2X3J0bihoYWxmMTYpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvbnZlcnRfZG91YmxlMTZfcnR6KGhhbGYxNik7CgovLyBDb252ZXJ0IGRvdWJsZSB0eXBlcyB0byBoYWxmIHR5cGVzLgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRlKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRwKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnRuKGRvdWJsZSk7CmhhbGYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGZfcnR6KGRvdWJsZSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMihkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0ZShkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0cChkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0bihkb3VibGUyKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYyX3J0eihkb3VibGUyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYzKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRlKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRwKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnRuKGRvdWJsZTMpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjNfcnR6KGRvdWJsZTMpOwpoYWxmNCBfX292bGQgX19jbmZuIGNvbnZlcnRfaGFsZjQoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydGUoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHAoZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydG4oZG91YmxlNCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmNF9ydHooZG91YmxlNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmOChkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0ZShkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0cChkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0bihkb3VibGU4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGY4X3J0eihkb3VibGU4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29udmVydF9oYWxmMTYoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydGUoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHAoZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydG4oZG91YmxlMTYpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb252ZXJ0X2hhbGYxNl9ydHooZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xLCB2MS4yIHM2LjEyLjEsIHYyLjAgczYuMTMuMSAtIFdvcmstaXRlbSBGdW5jdGlvbnMKCi8qKgogKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGltZW5zaW9ucyBpbiB1c2UuIFRoaXMgaXMgdGhlCiAqIHZhbHVlIGdpdmVuIHRvIHRoZSB3b3JrX2RpbSBhcmd1bWVudCBzcGVjaWZpZWQgaW4KICogY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAxLgogKi8KdWludCBfX292bGQgX19jbmZuIGdldF93b3JrX2RpbSh2b2lkKTsKCi8qKgogKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZ2xvYmFsIHdvcmstaXRlbXMgc3BlY2lmaWVkIGZvcgogKiBkaW1lbnNpb24gaWRlbnRpZmllZCBieSBkaW1pbmR4LiBUaGlzIHZhbHVlIGlzIGdpdmVuIGJ5CiAqIHRoZSBnbG9iYWxfd29ya19zaXplIGFyZ3VtZW50IHRvCiAqIGNsRW5xdWV1ZU5EUmFuZ2VLZXJuZWwuIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4CiAqIGFyZSAwIHRvIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZgogKiBkaW1pbmR4LCBnZXRfZ2xvYmFsX3NpemUoKSByZXR1cm5zIDEuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIGFsd2F5cyByZXR1cm5zIDEuCiAqLwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfZ2xvYmFsX3NpemUodWludCBkaW1pbmR4KTsKCi8qKgogKiBSZXR1cm5zIHRoZSB1bmlxdWUgZ2xvYmFsIHdvcmstaXRlbSBJRCB2YWx1ZSBmb3IKICogZGltZW5zaW9uIGlkZW50aWZpZWQgYnkgZGltaW5keC4gVGhlIGdsb2JhbCB3b3JrLWl0ZW0KICogSUQgc3BlY2lmaWVzIHRoZSB3b3JrLWl0ZW0gSUQgYmFzZWQgb24gdGhlIG51bWJlciBvZgogKiBnbG9iYWwgd29yay1pdGVtcyBzcGVjaWZpZWQgdG8gZXhlY3V0ZSB0aGUga2VybmVsLiBWYWxpZAogKiB2YWx1ZXMgb2YgZGltaW5keCBhcmUgMCB0byBnZXRfd29ya19kaW0oKSAtIDEuIEZvcgogKiBvdGhlciB2YWx1ZXMgb2YgZGltaW5keCwgZ2V0X2dsb2JhbF9pZCgpIHJldHVybnMgMC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAwLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2dsb2JhbF9pZCh1aW50IGRpbWluZHgpOwoKLyoqCiAqIFJldHVybnMgdGhlIG51bWJlciBvZiBsb2NhbCB3b3JrLWl0ZW1zIHNwZWNpZmllZCBpbgogKiBkaW1lbnNpb24gaWRlbnRpZmllZCBieSBkaW1pbmR4LiBUaGlzIHZhbHVlIGlzIGdpdmVuIGJ5CiAqIHRoZSBsb2NhbF93b3JrX3NpemUgYXJndW1lbnQgdG8KICogY2xFbnF1ZXVlTkRSYW5nZUtlcm5lbCBpZiBsb2NhbF93b3JrX3NpemUgaXMgbm90CiAqIE5VTEw7IG90aGVyd2lzZSB0aGUgT3BlbkNMIGltcGxlbWVudGF0aW9uIGNob29zZXMKICogYW4gYXBwcm9wcmlhdGUgbG9jYWxfd29ya19zaXplIHZhbHVlIHdoaWNoIGlzIHJldHVybmVkCiAqIGJ5IHRoaXMgZnVuY3Rpb24uIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvCiAqIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZiBkaW1pbmR4LAogKiBnZXRfbG9jYWxfc2l6ZSgpIHJldHVybnMgMS4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgYWx3YXlzIHJldHVybnMgMS4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9sb2NhbF9zaXplKHVpbnQgZGltaW5keCk7CgovKioKICogUmV0dXJucyB0aGUgdW5pcXVlIGxvY2FsIHdvcmstaXRlbSBJRCBpLmUuIGEgd29yay1pdGVtCiAqIHdpdGhpbiBhIHNwZWNpZmljIHdvcmstZ3JvdXAgZm9yIGRpbWVuc2lvbiBpZGVudGlmaWVkIGJ5CiAqIGRpbWluZHguIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvCiAqIGdldF93b3JrX2RpbSgpIC0gMS4gRm9yIG90aGVyIHZhbHVlcyBvZiBkaW1pbmR4LAogKiBnZXRfbG9jYWxfaWQoKSByZXR1cm5zIDAuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIHJldHVybnMgMC4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9sb2NhbF9pZCh1aW50IGRpbWluZHgpOwoKLyoqCiAqIFJldHVybnMgdGhlIG51bWJlciBvZiB3b3JrLWdyb3VwcyB0aGF0IHdpbGwgZXhlY3V0ZSBhCiAqIGtlcm5lbCBmb3IgZGltZW5zaW9uIGlkZW50aWZpZWQgYnkgZGltaW5keC4KICogVmFsaWQgdmFsdWVzIG9mIGRpbWluZHggYXJlIDAgdG8gZ2V0X3dvcmtfZGltKCkgLSAxLgogKiBGb3Igb3RoZXIgdmFsdWVzIG9mIGRpbWluZHgsIGdldF9udW1fZ3JvdXBzKCkgcmV0dXJucyAxLgogKiBGb3IgY2xFbnF1ZXVlVGFzaywgdGhpcyBhbHdheXMgcmV0dXJucyAxLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X251bV9ncm91cHModWludCBkaW1pbmR4KTsKCi8qKgogKiBnZXRfZ3JvdXBfaWQgcmV0dXJucyB0aGUgd29yay1ncm91cCBJRCB3aGljaCBpcyBhCiAqIG51bWJlciBmcm9tIDAgLi4gZ2V0X251bV9ncm91cHMoZGltaW5keCkgLSAxLgogKiBWYWxpZCB2YWx1ZXMgb2YgZGltaW5keCBhcmUgMCB0byBnZXRfd29ya19kaW0oKSAtIDEuCiAqIEZvciBvdGhlciB2YWx1ZXMsIGdldF9ncm91cF9pZCgpIHJldHVybnMgMC4KICogRm9yIGNsRW5xdWV1ZVRhc2ssIHRoaXMgcmV0dXJucyAwLgogKi8Kc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2dyb3VwX2lkKHVpbnQgZGltaW5keCk7CgovKioKICogZ2V0X2dsb2JhbF9vZmZzZXQgcmV0dXJucyB0aGUgb2Zmc2V0IHZhbHVlcyBzcGVjaWZpZWQgaW4KICogZ2xvYmFsX3dvcmtfb2Zmc2V0IGFyZ3VtZW50IHRvCiAqIGNsRW5xdWV1ZU5EUmFuZ2VLZXJuZWwuCiAqIFZhbGlkIHZhbHVlcyBvZiBkaW1pbmR4IGFyZSAwIHRvIGdldF93b3JrX2RpbSgpIC0gMS4KICogRm9yIG90aGVyIHZhbHVlcywgZ2V0X2dsb2JhbF9vZmZzZXQoKSByZXR1cm5zIDAuCiAqIEZvciBjbEVucXVldWVUYXNrLCB0aGlzIHJldHVybnMgMC4KICovCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9nbG9iYWxfb2Zmc2V0KHVpbnQgZGltaW5keCk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnNpemVfdCBfX292bGQgZ2V0X2VucXVldWVkX2xvY2FsX3NpemUodWludCBkaW1pbmR4KTsKc2l6ZV90IF9fb3ZsZCBnZXRfZ2xvYmFsX2xpbmVhcl9pZCh2b2lkKTsKc2l6ZV90IF9fb3ZsZCBnZXRfbG9jYWxfbGluZWFyX2lkKHZvaWQpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjIsIHYxLjIgczYuMTIuMiwgdjIuMCBzNi4xMy4yIC0gTWF0aCBmdW5jdGlvbnMKCi8qKgogKiBBcmMgY29zaW5lIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhY29zKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhY29zKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFjb3MoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhY29zKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYWNvcyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFjb3MoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYWNvcyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhY29zKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBhY29zKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhY29zKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhY29zKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYWNvcyhoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEludmVyc2UgaHlwZXJib2xpYyBjb3NpbmUuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGFjb3NoKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYWNvc2goZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGFjb3NoKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gYWNvc2goZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYWNvc2goZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBhY29zaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGFjb3NoKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBhY29zaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhY29zaChoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gYWNvc2goaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGFjb3NoKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhY29zaChoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGFjb3NoKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhY29zICh4KSAvIFBJLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhY29zcGkoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGFjb3NwaShmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhY29zcGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFjb3NwaShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGFjb3NwaShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhY29zcGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIGFjb3NwaShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBhY29zcGkoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYWNvc3BpKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhY29zcGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEFyYyBzaW5lIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhc2luKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhc2luKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFzaW4oZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXNpbihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhc2luKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXNpbihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGFzaW4oZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXNpbihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXNpbihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBhc2luKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBhc2luKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhc2luKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBhc2luKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXNpbihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEludmVyc2UgaHlwZXJib2xpYyBzaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhc2luaChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGFzaW5oKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhc2luaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGFzaW5oKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhc2luaChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGFzaW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXNpbmgoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhc2luaChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhc2luaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGFzaW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhc2luaChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXNpbmgoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhc2luaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYXNpbiAoeCkgLyBQSS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhc2lucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhc2lucGkoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhc2lucGkoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGFzaW5waShkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGFzaW5waShoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGFzaW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhc2lucGkoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGFzaW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXNpbnBpKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBBcmMgdGFuZ2VudCBmdW5jdGlvbi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbihmbG9hdCB5X292ZXJfeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQyIHlfb3Zlcl94KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gYXRhbihmbG9hdDMgeV9vdmVyX3gpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhdGFuKGZsb2F0NCB5X292ZXJfeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQ4IHlfb3Zlcl94KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGF0YW4oZmxvYXQxNiB5X292ZXJfeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZSB5X292ZXJfeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZTIgeV9vdmVyX3gpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbihkb3VibGUzIHlfb3Zlcl94KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGF0YW4oZG91YmxlNCB5X292ZXJfeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhdGFuKGRvdWJsZTggeV9vdmVyX3gpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4oZG91YmxlMTYgeV9vdmVyX3gpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW4oaGFsZiB5X292ZXJfeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmMiB5X292ZXJfeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmMyB5X292ZXJfeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmNCB5X292ZXJfeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbihoYWxmOCB5X292ZXJfeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGF0YW4oaGFsZjE2IHlfb3Zlcl94KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBBcmMgdGFuZ2VudCBvZiB5IC8geC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZmxvYXQgeSwgZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0MiB5LCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0MyB5LCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0NCB5LCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW4yKGZsb2F0OCB5LCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuMihmbG9hdDE2IHksIGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFuMihkb3VibGUgeSwgZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlMiB5LCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlMyB5LCBkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlNCB5LCBkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXRhbjIoZG91YmxlOCB5LCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4yKGRvdWJsZTE2IHksIGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW4yKGhhbGYgeSwgaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmMiB5LCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmMyB5LCBoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBhdGFuMihoYWxmNCB5LCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBhdGFuMihoYWxmOCB5LCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbjIoaGFsZjE2IHksIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBIeXBlcmJvbGljIGFyYyB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhdGFuaChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGF0YW5oKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGF0YW5oKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGF0YW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYXRhbmgoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBhdGFuaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGF0YW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBhdGFuaChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbmgoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBhdGFuaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYXRhbiAoeCkgLyBQSS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhdGFucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBhdGFucGkoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBhdGFucGkoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGF0YW5waShkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGF0YW5waShoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGF0YW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFucGkoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGF0YW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbnBpKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGF0YW4yICh5LCB4KSAvIFBJLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0IHksIGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0MiB5LCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGF0YW4ycGkoZmxvYXQzIHksIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShmbG9hdDQgeSwgZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0OCB5LCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBhdGFuMnBpKGZsb2F0MTYgeSwgZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlIHksIGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlMiB5LCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShkb3VibGUzIHksIGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBhdGFuMnBpKGRvdWJsZTQgeSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlOCB5LCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGF0YW4ycGkoZG91YmxlMTYgeSwgZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmIHksIGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmMiB5LCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBhdGFuMnBpKGhhbGYzIHksIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIGF0YW4ycGkoaGFsZjQgeSwgaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmOCB5LCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gYXRhbjJwaShoYWxmMTYgeSwgaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgY3ViZS1yb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjYnJ0KGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjYnJ0KGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNicnQoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY2JydChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNicnQoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNicnQoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjYnJ0KGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2JydChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNicnQoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2JydChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2JydChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjYnJ0KGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjYnJ0KGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2JydChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byBwb3NpdGl2ZQogKiBpbmZpbml0eSByb3VuZGluZyBtb2RlLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjZWlsKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjZWlsKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNlaWwoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY2VpbChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjZWlsKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2VpbChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNlaWwoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2VpbChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2VpbChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjZWlsKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjZWlsKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjZWlsKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjZWlsKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2VpbChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgeCB3aXRoIGl0cyBzaWduIGNoYW5nZWQgdG8gbWF0Y2ggdGhlIHNpZ24gb2YgeS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNvcHlzaWduKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb3B5c2lnbihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBjb3B5c2lnbihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNvcHlzaWduKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGNvcHlzaWduKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3B5c2lnbihoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29weXNpZ24oaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGNvc2luZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGNvcyhmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjb3MoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBjb3MoZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBjb3MoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvcyhkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGNvcyhkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGNvcyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvcyhkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBjb3MoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGNvcyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3MoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGNvcyhoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY29zKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3MoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBjb3MoaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGh5cGVyYm9saWMgY29zaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjb3NoKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb3NoKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvc2goZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29zaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvc2goZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvc2goZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb3NoKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29zaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvc2goZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29zaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29zaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3NoKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3NoKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3NoKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3NoKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29zaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgY29zIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjb3NwaShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjb3NwaShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGNvc3BpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjb3NwaShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY29zcGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNvc3BpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY29zcGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBjb3NwaShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBjb3NwaShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY29zcGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXBsZW1lbnRhcnkgZXJyb3IgZnVuY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGVyZmMoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGVyZmMoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXJmYyhmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBlcmZjKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGVyZmMoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBlcmZjKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZXJmYyhkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBlcmZjKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBlcmZjKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGVyZmMoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGVyZmMoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGVyZmMoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGVyZmMoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBlcmZjKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRXJyb3IgZnVuY3Rpb24gZW5jb3VudGVyZWQgaW4gaW50ZWdyYXRpbmcgdGhlCiAqIG5vcm1hbCBkaXN0cmlidXRpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGVyZihmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGVyZihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBlcmYoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXJmKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGVyZihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZXJmKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXJmKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBlcmYoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBlcmYoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZXJmKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBlcmYoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBlcmYoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGVyZihoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZXJmKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZSBlIGV4cG9uZW50aWFsIGZ1bmN0aW9uIG9mIHguCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGV4cChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cChmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXhwKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cChkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwKGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBleHAoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cChkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cChkb3VibGUxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBleHAoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwKGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIGV4cChoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cChoYWxmMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRXhwb25lbnRpYWwgYmFzZSAyIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBleHAyKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBleHAyKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGV4cDIoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZXhwMihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBleHAyKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZXhwMihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cDIoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZXhwMihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZXhwMihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAyKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBleHAyKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBleHAyKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAyKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZXhwMihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIEV4cG9uZW50aWFsIGJhc2UgMTAgZnVuY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGV4cDEwKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZXhwMTAoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cDEwKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBleHAxMChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cDEwKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBleHAxMChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBleHAxMChoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwMTAoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGV4cDEwKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBleHAxMChoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cDEwKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBlXngtIDEuMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZXhwbTEoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBleHBtMShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGV4cG0xKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBleHBtMShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBleHBtMShkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGV4cG0xKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBleHBtMShkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGV4cG0xKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGV4cG0xKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZXhwbTEoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGV4cG0xKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIGFic29sdXRlIHZhbHVlIG9mIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmYWJzKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmYWJzKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZhYnMoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZmFicyhmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmYWJzKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZmFicyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZhYnMoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZmFicyhkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFicyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBmYWJzKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBmYWJzKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBmYWJzKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBmYWJzKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmFicyhoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIHggLSB5IGlmIHggPiB5LCArMCBpZiB4IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB5LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZkaW0oZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZmRpbShmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmZGltKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmZGltKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZmRpbShkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmZGltKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZkaW0oZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBmZGltKGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGZkaW0oaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmRpbShoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byAtdmUKICogaW5maW5pdHkgcm91bmRpbmcgbW9kZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbG9vcihmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbG9vcihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmbG9vcihkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGZsb29yKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZsb29yKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGZsb29yKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBmbG9vcihoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZmxvb3IoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGZsb29yKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gZmxvb3IoaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb3JyZWN0bHkgcm91bmRlZCBmbG9hdGluZy1wb2ludAogKiByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3VtIG9mIGMgd2l0aCB0aGUgaW5maW5pdGVseQogKiBwcmVjaXNlIHByb2R1Y3Qgb2YgYSBhbmQgYi4gUm91bmRpbmcgb2YKICogaW50ZXJtZWRpYXRlIHByb2R1Y3RzIHNoYWxsIG5vdCBvY2N1ci4gRWRnZSBjYXNlCiAqIGJlaGF2aW9yIGlzIHBlciB0aGUgSUVFRSA3NTQtMjAwOCBzdGFuZGFyZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZm1hKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IGMpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWEoZmxvYXQyIGEsIGZsb2F0MiBiLCBmbG9hdDIgYyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtYShmbG9hdDMgYSwgZmxvYXQzIGIsIGZsb2F0MyBjKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZm1hKGZsb2F0NCBhLCBmbG9hdDQgYiwgZmxvYXQ0IGMpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWEoZmxvYXQ4IGEsIGZsb2F0OCBiLCBmbG9hdDggYyk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWEoZmxvYXQxNiBhLCBmbG9hdDE2IGIsIGZsb2F0MTYgYyk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlIGEsIGRvdWJsZSBiLCBkb3VibGUgYyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlMiBhLCBkb3VibGUyIGIsIGRvdWJsZTIgYyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlMyBhLCBkb3VibGUzIGIsIGRvdWJsZTMgYyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWEoZG91YmxlNCBhLCBkb3VibGU0IGIsIGRvdWJsZTQgYyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWEoZG91YmxlOCBhLCBkb3VibGU4IGIsIGRvdWJsZTggYyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gZm1hKGRvdWJsZTE2IGEsIGRvdWJsZTE2IGIsIGRvdWJsZTE2IGMpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtYShoYWxmIGEsIGhhbGYgYiwgaGFsZiBjKTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWEoaGFsZjIgYSwgaGFsZjIgYiwgaGFsZjIgYyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1hKGhhbGYzIGEsIGhhbGYzIGIsIGhhbGYzIGMpOwpoYWxmNCBfX292bGQgX19jbmZuIGZtYShoYWxmNCBhLCBoYWxmNCBiLCBoYWxmNCBjKTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWEoaGFsZjggYSwgaGFsZjggYiwgaGFsZjggYyk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYShoYWxmMTYgYSwgaGFsZjE2IGIsIGhhbGYxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeCA8IHksIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIG9uZQogKiBhcmd1bWVudCBpcyBhIE5hTiwgZm1heCgpIHJldHVybnMgdGhlIG90aGVyCiAqIGFyZ3VtZW50LiBJZiBib3RoIGFyZ3VtZW50cyBhcmUgTmFOcywgZm1heCgpCiAqIHJldHVybnMgYSBOYU4uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZm1heChmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0MiB4LCBmbG9hdCB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gZm1heChmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQ0IHgsIGZsb2F0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWF4KGZsb2F0OCB4LCBmbG9hdCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGZtYXgoZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZm1heChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTIgeCwgZG91YmxlIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gZm1heChkb3VibGUzIHgsIGRvdWJsZSB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWF4KGRvdWJsZTggeCwgZG91YmxlIHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGZtYXgoZG91YmxlMTYgeCwgZG91YmxlIHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtYXgoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1heChoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbWF4KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGZtYXgoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjE2IHgsIGhhbGYxNiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWF4KGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1heChoYWxmMyB4LCBoYWxmIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGZtYXgoaGFsZjQgeCwgaGFsZiB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWF4KGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtYXgoaGFsZjE2IHgsIGhhbGYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB5IGlmIHkgPCB4LCBvdGhlcndpc2UgaXQgcmV0dXJucyB4LiBJZiBvbmUKICogYXJndW1lbnQgaXMgYSBOYU4sIGZtaW4oKSByZXR1cm5zIHRoZSBvdGhlcgogKiBhcmd1bWVudC4gSWYgYm90aCBhcmd1bWVudHMgYXJlIE5hTnMsIGZtaW4oKQogKiByZXR1cm5zIGEgTmFOLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtaW4oZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBmbWluKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZtaW4oZmxvYXQzIHgsIGZsb2F0IHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0NCB4LCBmbG9hdCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZm1pbihmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBmbWluKGZsb2F0MTYgeCwgZmxvYXQgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtaW4oZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGUyIHgsIGRvdWJsZSB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtaW4oZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTQgeCwgZG91YmxlIHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gZm1pbihkb3VibGU4IHgsIGRvdWJsZSB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbWluKGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBmbWluKGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGZtaW4oaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBmbWluKGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmMiB4LCBoYWxmIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGZtaW4oaGFsZjMgeCwgaGFsZiB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbWluKGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gZm1pbihoYWxmOCB4LCBoYWxmIHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBmbWluKGhhbGYxNiB4LCBoYWxmIHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIE1vZHVsdXMuIFJldHVybnMgeCAtIHkgKiB0cnVuYyAoeC95KS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBmbW9kKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIGZtb2QoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gZm1vZChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGZtb2QoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gZm1vZChkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBmbW9kKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZtb2QoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGZtb2QoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZm1vZChoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBmbW9kKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGZtb2QoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIGZtb2QoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGZtaW4oeCAtIGZsb29yICh4KSwgMHgxLmZmZmZmZXAtMWYgKS4KICogZmxvb3IoeCkgaXMgcmV0dXJuZWQgaW4gaXB0ci4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgZnJhY3QoZmxvYXQgeCwgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIGZyYWN0KGZsb2F0MiB4LCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIGZyYWN0KGZsb2F0MyB4LCBmbG9hdDMgKmlwdHIpOwpmbG9hdDQgX19vdmxkIGZyYWN0KGZsb2F0NCB4LCBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIGZyYWN0KGZsb2F0OCB4LCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBmcmFjdChmbG9hdDE2IHgsIGZsb2F0MTYgKmlwdHIpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBmcmFjdChkb3VibGUgeCwgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgZnJhY3QoZG91YmxlMiB4LCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgZnJhY3QoZG91YmxlMyB4LCBkb3VibGUzICppcHRyKTsKZG91YmxlNCBfX292bGQgZnJhY3QoZG91YmxlNCB4LCBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgZnJhY3QoZG91YmxlOCB4LCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIGZyYWN0KGRvdWJsZTE2IHgsIGRvdWJsZTE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIGZyYWN0KGhhbGYgeCwgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBmcmFjdChoYWxmMiB4LCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBmcmFjdChoYWxmMyB4LCBoYWxmMyAqaXB0cik7CmhhbGY0IF9fb3ZsZCBmcmFjdChoYWxmNCB4LCBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBmcmFjdChoYWxmOCB4LCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgZnJhY3QoaGFsZjE2IHgsIGhhbGYxNiAqaXB0cik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX2dsb2JhbCBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgZnJhY3QoZmxvYXQyIHgsIF9fZ2xvYmFsIGZsb2F0MiAqaXB0cik7CmZsb2F0MyBfX292bGQgZnJhY3QoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fZ2xvYmFsIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgZnJhY3QoZmxvYXQ4IHgsIF9fZ2xvYmFsIGZsb2F0OCAqaXB0cik7CmZsb2F0MTYgX19vdmxkIGZyYWN0KGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX2xvY2FsIGZsb2F0ICppcHRyKTsKZmxvYXQyIF9fb3ZsZCBmcmFjdChmbG9hdDIgeCwgX19sb2NhbCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIGZyYWN0KGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fbG9jYWwgZmxvYXQ0ICppcHRyKTsKZmxvYXQ4IF9fb3ZsZCBmcmFjdChmbG9hdDggeCwgX19sb2NhbCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBmcmFjdChmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBmcmFjdChmbG9hdCB4LCBfX3ByaXZhdGUgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIGZyYWN0KGZsb2F0MiB4LCBfX3ByaXZhdGUgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBmcmFjdChmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgZnJhY3QoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIGZyYWN0KGZsb2F0OCB4LCBfX3ByaXZhdGUgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgZnJhY3QoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqaXB0cik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX2dsb2JhbCBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBmcmFjdChkb3VibGUyIHgsIF9fZ2xvYmFsIGRvdWJsZTIgKmlwdHIpOwpkb3VibGUzIF9fb3ZsZCBmcmFjdChkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fZ2xvYmFsIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBmcmFjdChkb3VibGU4IHgsIF9fZ2xvYmFsIGRvdWJsZTggKmlwdHIpOwpkb3VibGUxNiBfX292bGQgZnJhY3QoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX2xvY2FsIGRvdWJsZSAqaXB0cik7CmRvdWJsZTIgX19vdmxkIGZyYWN0KGRvdWJsZTIgeCwgX19sb2NhbCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgZnJhY3QoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fbG9jYWwgZG91YmxlNCAqaXB0cik7CmRvdWJsZTggX19vdmxkIGZyYWN0KGRvdWJsZTggeCwgX19sb2NhbCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIGZyYWN0KGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIGZyYWN0KGRvdWJsZSB4LCBfX3ByaXZhdGUgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgZnJhY3QoZG91YmxlMiB4LCBfX3ByaXZhdGUgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIGZyYWN0KGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBmcmFjdChkb3VibGU0IHgsIF9fcHJpdmF0ZSBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgZnJhY3QoZG91YmxlOCB4LCBfX3ByaXZhdGUgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBmcmFjdChkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmlwdHIpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX2dsb2JhbCBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIGZyYWN0KGhhbGYyIHgsIF9fZ2xvYmFsIGhhbGYyICppcHRyKTsKaGFsZjMgX19vdmxkIGZyYWN0KGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fZ2xvYmFsIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIGZyYWN0KGhhbGY4IHgsIF9fZ2xvYmFsIGhhbGY4ICppcHRyKTsKaGFsZjE2IF9fb3ZsZCBmcmFjdChoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX2xvY2FsIGhhbGYgKmlwdHIpOwpoYWxmMiBfX292bGQgZnJhY3QoaGFsZjIgeCwgX19sb2NhbCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBmcmFjdChoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fbG9jYWwgaGFsZjQgKmlwdHIpOwpoYWxmOCBfX292bGQgZnJhY3QoaGFsZjggeCwgX19sb2NhbCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgZnJhY3QoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgZnJhY3QoaGFsZiB4LCBfX3ByaXZhdGUgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBmcmFjdChoYWxmMiB4LCBfX3ByaXZhdGUgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgZnJhY3QoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIGZyYWN0KGhhbGY0IHgsIF9fcHJpdmF0ZSBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBmcmFjdChoYWxmOCB4LCBfX3ByaXZhdGUgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIGZyYWN0KGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBFeHRyYWN0IG1hbnRpc3NhIGFuZCBleHBvbmVudCBmcm9tIHguIEZvciBlYWNoCiAqIGNvbXBvbmVudCB0aGUgbWFudGlzc2EgcmV0dXJuZWQgaXMgYSBmbG9hdCB3aXRoCiAqIG1hZ25pdHVkZSBpbiB0aGUgaW50ZXJ2YWwgWzEvMiwgMSkgb3IgMC4gRWFjaAogKiBjb21wb25lbnQgb2YgeCBlcXVhbHMgbWFudGlzc2EgcmV0dXJuZWQgKiAyXmV4cC4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgZnJleHAoZmxvYXQgeCwgaW50ICpleHApOwpmbG9hdDIgX19vdmxkIGZyZXhwKGZsb2F0MiB4LCBpbnQyICpleHApOwpmbG9hdDMgX19vdmxkIGZyZXhwKGZsb2F0MyB4LCBpbnQzICpleHApOwpmbG9hdDQgX19vdmxkIGZyZXhwKGZsb2F0NCB4LCBpbnQ0ICpleHApOwpmbG9hdDggX19vdmxkIGZyZXhwKGZsb2F0OCB4LCBpbnQ4ICpleHApOwpmbG9hdDE2IF9fb3ZsZCBmcmV4cChmbG9hdDE2IHgsIGludDE2ICpleHApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBmcmV4cChkb3VibGUgeCwgaW50ICpleHApOwpkb3VibGUyIF9fb3ZsZCBmcmV4cChkb3VibGUyIHgsIGludDIgKmV4cCk7CmRvdWJsZTMgX19vdmxkIGZyZXhwKGRvdWJsZTMgeCwgaW50MyAqZXhwKTsKZG91YmxlNCBfX292bGQgZnJleHAoZG91YmxlNCB4LCBpbnQ0ICpleHApOwpkb3VibGU4IF9fb3ZsZCBmcmV4cChkb3VibGU4IHgsIGludDggKmV4cCk7CmRvdWJsZTE2IF9fb3ZsZCBmcmV4cChkb3VibGUxNiB4LCBpbnQxNiAqZXhwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIGZyZXhwKGhhbGYgeCwgaW50ICpleHApOwpoYWxmMiBfX292bGQgZnJleHAoaGFsZjIgeCwgaW50MiAqZXhwKTsKaGFsZjMgX19vdmxkIGZyZXhwKGhhbGYzIHgsIGludDMgKmV4cCk7CmhhbGY0IF9fb3ZsZCBmcmV4cChoYWxmNCB4LCBpbnQ0ICpleHApOwpoYWxmOCBfX292bGQgZnJleHAoaGFsZjggeCwgaW50OCAqZXhwKTsKaGFsZjE2IF9fb3ZsZCBmcmV4cChoYWxmMTYgeCwgaW50MTYgKmV4cCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmZsb2F0MiBfX292bGQgZnJleHAoZmxvYXQyIHgsIF9fZ2xvYmFsIGludDIgKmV4cCk7CmZsb2F0MyBfX292bGQgZnJleHAoZmxvYXQzIHgsIF9fZ2xvYmFsIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmZsb2F0OCBfX292bGQgZnJleHAoZmxvYXQ4IHgsIF9fZ2xvYmFsIGludDggKmV4cCk7CmZsb2F0MTYgX19vdmxkIGZyZXhwKGZsb2F0MTYgeCwgX19nbG9iYWwgaW50MTYgKmV4cCk7CmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX2xvY2FsIGludCAqZXhwKTsKZmxvYXQyIF9fb3ZsZCBmcmV4cChmbG9hdDIgeCwgX19sb2NhbCBpbnQyICpleHApOwpmbG9hdDMgX19vdmxkIGZyZXhwKGZsb2F0MyB4LCBfX2xvY2FsIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKZmxvYXQ4IF9fb3ZsZCBmcmV4cChmbG9hdDggeCwgX19sb2NhbCBpbnQ4ICpleHApOwpmbG9hdDE2IF9fb3ZsZCBmcmV4cChmbG9hdDE2IHgsIF9fbG9jYWwgaW50MTYgKmV4cCk7CmZsb2F0IF9fb3ZsZCBmcmV4cChmbG9hdCB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpmbG9hdDIgX19vdmxkIGZyZXhwKGZsb2F0MiB4LCBfX3ByaXZhdGUgaW50MiAqZXhwKTsKZmxvYXQzIF9fb3ZsZCBmcmV4cChmbG9hdDMgeCwgX19wcml2YXRlIGludDMgKmV4cCk7CmZsb2F0NCBfX292bGQgZnJleHAoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpmbG9hdDggX19vdmxkIGZyZXhwKGZsb2F0OCB4LCBfX3ByaXZhdGUgaW50OCAqZXhwKTsKZmxvYXQxNiBfX292bGQgZnJleHAoZmxvYXQxNiB4LCBfX3ByaXZhdGUgaW50MTYgKmV4cCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmRvdWJsZTIgX19vdmxkIGZyZXhwKGRvdWJsZTIgeCwgX19nbG9iYWwgaW50MiAqZXhwKTsKZG91YmxlMyBfX292bGQgZnJleHAoZG91YmxlMyB4LCBfX2dsb2JhbCBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmRvdWJsZTggX19vdmxkIGZyZXhwKGRvdWJsZTggeCwgX19nbG9iYWwgaW50OCAqZXhwKTsKZG91YmxlMTYgX19vdmxkIGZyZXhwKGRvdWJsZTE2IHgsIF9fZ2xvYmFsIGludDE2ICpleHApOwpkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX2xvY2FsIGludCAqZXhwKTsKZG91YmxlMiBfX292bGQgZnJleHAoZG91YmxlMiB4LCBfX2xvY2FsIGludDIgKmV4cCk7CmRvdWJsZTMgX19vdmxkIGZyZXhwKGRvdWJsZTMgeCwgX19sb2NhbCBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKZG91YmxlOCBfX292bGQgZnJleHAoZG91YmxlOCB4LCBfX2xvY2FsIGludDggKmV4cCk7CmRvdWJsZTE2IF9fb3ZsZCBmcmV4cChkb3VibGUxNiB4LCBfX2xvY2FsIGludDE2ICpleHApOwpkb3VibGUgX19vdmxkIGZyZXhwKGRvdWJsZSB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpkb3VibGUyIF9fb3ZsZCBmcmV4cChkb3VibGUyIHgsIF9fcHJpdmF0ZSBpbnQyICpleHApOwpkb3VibGUzIF9fb3ZsZCBmcmV4cChkb3VibGUzIHgsIF9fcHJpdmF0ZSBpbnQzICpleHApOwpkb3VibGU0IF9fb3ZsZCBmcmV4cChkb3VibGU0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpkb3VibGU4IF9fb3ZsZCBmcmV4cChkb3VibGU4IHgsIF9fcHJpdmF0ZSBpbnQ4ICpleHApOwpkb3VibGUxNiBfX292bGQgZnJleHAoZG91YmxlMTYgeCwgX19wcml2YXRlIGludDE2ICpleHApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX2dsb2JhbCBpbnQgKmV4cCk7CmhhbGYyIF9fb3ZsZCBmcmV4cChoYWxmMiB4LCBfX2dsb2JhbCBpbnQyICpleHApOwpoYWxmMyBfX292bGQgZnJleHAoaGFsZjMgeCwgX19nbG9iYWwgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fZ2xvYmFsIGludDQgKmV4cCk7CmhhbGY4IF9fb3ZsZCBmcmV4cChoYWxmOCB4LCBfX2dsb2JhbCBpbnQ4ICpleHApOwpoYWxmMTYgX19vdmxkIGZyZXhwKGhhbGYxNiB4LCBfX2dsb2JhbCBpbnQxNiAqZXhwKTsKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX2xvY2FsIGludCAqZXhwKTsKaGFsZjIgX19vdmxkIGZyZXhwKGhhbGYyIHgsIF9fbG9jYWwgaW50MiAqZXhwKTsKaGFsZjMgX19vdmxkIGZyZXhwKGhhbGYzIHgsIF9fbG9jYWwgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fbG9jYWwgaW50NCAqZXhwKTsKaGFsZjggX19vdmxkIGZyZXhwKGhhbGY4IHgsIF9fbG9jYWwgaW50OCAqZXhwKTsKaGFsZjE2IF9fb3ZsZCBmcmV4cChoYWxmMTYgeCwgX19sb2NhbCBpbnQxNiAqZXhwKTsKaGFsZiBfX292bGQgZnJleHAoaGFsZiB4LCBfX3ByaXZhdGUgaW50ICpleHApOwpoYWxmMiBfX292bGQgZnJleHAoaGFsZjIgeCwgX19wcml2YXRlIGludDIgKmV4cCk7CmhhbGYzIF9fb3ZsZCBmcmV4cChoYWxmMyB4LCBfX3ByaXZhdGUgaW50MyAqZXhwKTsKaGFsZjQgX19vdmxkIGZyZXhwKGhhbGY0IHgsIF9fcHJpdmF0ZSBpbnQ0ICpleHApOwpoYWxmOCBfX292bGQgZnJleHAoaGFsZjggeCwgX19wcml2YXRlIGludDggKmV4cCk7CmhhbGYxNiBfX292bGQgZnJleHAoaGFsZjE2IHgsIF9fcHJpdmF0ZSBpbnQxNiAqZXhwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBDb21wdXRlIHRoZSB2YWx1ZSBvZiB0aGUgc3F1YXJlIHJvb3Qgb2YgeF4yICsgeV4yCiAqIHdpdGhvdXQgdW5kdWUgb3ZlcmZsb3cgb3IgdW5kZXJmbG93LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoeXBvdChmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGh5cG90KGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGh5cG90KGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBoeXBvdChkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gaHlwb3QoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gaHlwb3QoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIGh5cG90KGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIGh5cG90KGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIGh5cG90KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIGh5cG90KGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBoeXBvdChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybiB0aGUgZXhwb25lbnQgYXMgYW4gaW50ZWdlciB2YWx1ZS4KICovCmludCBfX292bGQgX19jbmZuIGlsb2diKGZsb2F0IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQzIHgpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZmxvYXQ4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGUgeCk7CmludDIgX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGUyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoZG91YmxlMyB4KTsKaW50NCBfX292bGQgX19jbmZuIGlsb2diKGRvdWJsZTQgeCk7CmludDggX19vdmxkIF9fY25mbiBpbG9nYihkb3VibGU4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaWxvZ2IoaGFsZiB4KTsKaW50MiBfX292bGQgX19jbmZuIGlsb2diKGhhbGYyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaWxvZ2IoaGFsZjMgeCk7CmludDQgX19vdmxkIF9fY25mbiBpbG9nYihoYWxmNCB4KTsKaW50OCBfX292bGQgX19jbmZuIGlsb2diKGhhbGY4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGlsb2diKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBNdWx0aXBseSB4IGJ5IDIgdG8gdGhlIHBvd2VyIG4uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxkZXhwKGZsb2F0IHgsIGludCBuKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQyIHgsIGludDIgbik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxkZXhwKGZsb2F0MyB4LCBpbnQzIG4pOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDQgeCwgaW50NCBuKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQ4IHgsIGludDggbik7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDE2IHgsIGludDE2IG4pOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDIgeCwgaW50IG4pOwpmbG9hdDMgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDMgeCwgaW50IG4pOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDQgeCwgaW50IG4pOwpmbG9hdDggX19vdmxkIF9fY25mbiBsZGV4cChmbG9hdDggeCwgaW50IG4pOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbGRleHAoZmxvYXQxNiB4LCBpbnQgbik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsZGV4cChkb3VibGUgeCwgaW50IG4pOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMiB4LCBpbnQyIG4pOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMyB4LCBpbnQzIG4pOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlNCB4LCBpbnQ0IG4pOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlOCB4LCBpbnQ4IG4pOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxkZXhwKGRvdWJsZTE2IHgsIGludDE2IG4pOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMiB4LCBpbnQgbik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBsZGV4cChkb3VibGUzIHgsIGludCBuKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGxkZXhwKGRvdWJsZTQgeCwgaW50IG4pOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlOCB4LCBpbnQgbik7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbGRleHAoZG91YmxlMTYgeCwgaW50IG4pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYgeCwgaW50IG4pOwpoYWxmMiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYyIHgsIGludDIgbik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbGRleHAoaGFsZjMgeCwgaW50MyBuKTsKaGFsZjQgX19vdmxkIF9fY25mbiBsZGV4cChoYWxmNCB4LCBpbnQ0IG4pOwpoYWxmOCBfX292bGQgX19jbmZuIGxkZXhwKGhhbGY4IHgsIGludDggbik7CmhhbGYxNiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYxNiB4LCBpbnQxNiBuKTsKaGFsZjIgX19vdmxkIF9fY25mbiBsZGV4cChoYWxmMiB4LCBpbnQgbik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbGRleHAoaGFsZjMgeCwgaW50IG4pOwpoYWxmNCBfX292bGQgX19jbmZuIGxkZXhwKGhhbGY0IHgsIGludCBuKTsKaGFsZjggX19vdmxkIF9fY25mbiBsZGV4cChoYWxmOCB4LCBpbnQgbik7CmhhbGYxNiBfX292bGQgX19jbmZuIGxkZXhwKGhhbGYxNiB4LCBpbnQgbik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogTG9nIGdhbW1hIGZ1bmN0aW9uLiBSZXR1cm5zIHRoZSBuYXR1cmFsCiAqIGxvZ2FyaXRobSBvZiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIGdhbW1hCiAqIGZ1bmN0aW9uLiBUaGUgc2lnbiBvZiB0aGUgZ2FtbWEgZnVuY3Rpb24gaXMKICogcmV0dXJuZWQgaW4gdGhlIHNpZ25wIGFyZ3VtZW50IG9mIGxnYW1tYV9yLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsZ2FtbWEoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxnYW1tYShmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxnYW1tYShkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxnYW1tYShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIGxnYW1tYShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBsZ2FtbWEoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbGdhbW1hKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsZ2FtbWEoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdCB4LCBpbnQgKnNpZ25wKTsKZmxvYXQyIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDIgeCwgaW50MiAqc2lnbnApOwpmbG9hdDMgX19vdmxkIGxnYW1tYV9yKGZsb2F0MyB4LCBpbnQzICpzaWducCk7CmZsb2F0NCBfX292bGQgbGdhbW1hX3IoZmxvYXQ0IHgsIGludDQgKnNpZ25wKTsKZmxvYXQ4IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDggeCwgaW50OCAqc2lnbnApOwpmbG9hdDE2IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDE2IHgsIGludDE2ICpzaWducCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGxnYW1tYV9yKGRvdWJsZSB4LCBpbnQgKnNpZ25wKTsKZG91YmxlMiBfX292bGQgbGdhbW1hX3IoZG91YmxlMiB4LCBpbnQyICpzaWducCk7CmRvdWJsZTMgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTMgeCwgaW50MyAqc2lnbnApOwpkb3VibGU0IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGU0IHgsIGludDQgKnNpZ25wKTsKZG91YmxlOCBfX292bGQgbGdhbW1hX3IoZG91YmxlOCB4LCBpbnQ4ICpzaWducCk7CmRvdWJsZTE2IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUxNiB4LCBpbnQxNiAqc2lnbnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgbGdhbW1hX3IoaGFsZiB4LCBpbnQgKnNpZ25wKTsKaGFsZjIgX19vdmxkIGxnYW1tYV9yKGhhbGYyIHgsIGludDIgKnNpZ25wKTsKaGFsZjMgX19vdmxkIGxnYW1tYV9yKGhhbGYzIHgsIGludDMgKnNpZ25wKTsKaGFsZjQgX19vdmxkIGxnYW1tYV9yKGhhbGY0IHgsIGludDQgKnNpZ25wKTsKaGFsZjggX19vdmxkIGxnYW1tYV9yKGhhbGY4IHgsIGludDggKnNpZ25wKTsKaGFsZjE2IF9fb3ZsZCBsZ2FtbWFfcihoYWxmMTYgeCwgaW50MTYgKnNpZ25wKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpmbG9hdDIgX19vdmxkIGxnYW1tYV9yKGZsb2F0MiB4LCBfX2dsb2JhbCBpbnQyICpzaWducCk7CmZsb2F0MyBfX292bGQgbGdhbW1hX3IoZmxvYXQzIHgsIF9fZ2xvYmFsIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpmbG9hdDggX19vdmxkIGxnYW1tYV9yKGZsb2F0OCB4LCBfX2dsb2JhbCBpbnQ4ICpzaWducCk7CmZsb2F0MTYgX19vdmxkIGxnYW1tYV9yKGZsb2F0MTYgeCwgX19nbG9iYWwgaW50MTYgKnNpZ25wKTsKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmZsb2F0MiBfX292bGQgbGdhbW1hX3IoZmxvYXQyIHgsIF9fbG9jYWwgaW50MiAqc2lnbnApOwpmbG9hdDMgX19vdmxkIGxnYW1tYV9yKGZsb2F0MyB4LCBfX2xvY2FsIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmZsb2F0OCBfX292bGQgbGdhbW1hX3IoZmxvYXQ4IHgsIF9fbG9jYWwgaW50OCAqc2lnbnApOwpmbG9hdDE2IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDE2IHgsIF9fbG9jYWwgaW50MTYgKnNpZ25wKTsKZmxvYXQgX19vdmxkIGxnYW1tYV9yKGZsb2F0IHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKZmxvYXQyIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDIgeCwgX19wcml2YXRlIGludDIgKnNpZ25wKTsKZmxvYXQzIF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDMgeCwgX19wcml2YXRlIGludDMgKnNpZ25wKTsKZmxvYXQ0IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKZmxvYXQ4IF9fb3ZsZCBsZ2FtbWFfcihmbG9hdDggeCwgX19wcml2YXRlIGludDggKnNpZ25wKTsKZmxvYXQxNiBfX292bGQgbGdhbW1hX3IoZmxvYXQxNiB4LCBfX3ByaXZhdGUgaW50MTYgKnNpZ25wKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpkb3VibGUyIF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUyIHgsIF9fZ2xvYmFsIGludDIgKnNpZ25wKTsKZG91YmxlMyBfX292bGQgbGdhbW1hX3IoZG91YmxlMyB4LCBfX2dsb2JhbCBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpkb3VibGU4IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGU4IHgsIF9fZ2xvYmFsIGludDggKnNpZ25wKTsKZG91YmxlMTYgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTE2IHgsIF9fZ2xvYmFsIGludDE2ICpzaWducCk7CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmRvdWJsZTIgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTIgeCwgX19sb2NhbCBpbnQyICpzaWducCk7CmRvdWJsZTMgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTMgeCwgX19sb2NhbCBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmRvdWJsZTggX19vdmxkIGxnYW1tYV9yKGRvdWJsZTggeCwgX19sb2NhbCBpbnQ4ICpzaWducCk7CmRvdWJsZTE2IF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUxNiB4LCBfX2xvY2FsIGludDE2ICpzaWducCk7CmRvdWJsZSBfX292bGQgbGdhbW1hX3IoZG91YmxlIHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKZG91YmxlMiBfX292bGQgbGdhbW1hX3IoZG91YmxlMiB4LCBfX3ByaXZhdGUgaW50MiAqc2lnbnApOwpkb3VibGUzIF9fb3ZsZCBsZ2FtbWFfcihkb3VibGUzIHgsIF9fcHJpdmF0ZSBpbnQzICpzaWducCk7CmRvdWJsZTQgX19vdmxkIGxnYW1tYV9yKGRvdWJsZTQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKZG91YmxlOCBfX292bGQgbGdhbW1hX3IoZG91YmxlOCB4LCBfX3ByaXZhdGUgaW50OCAqc2lnbnApOwpkb3VibGUxNiBfX292bGQgbGdhbW1hX3IoZG91YmxlMTYgeCwgX19wcml2YXRlIGludDE2ICpzaWducCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fZ2xvYmFsIGludCAqc2lnbnApOwpoYWxmMiBfX292bGQgbGdhbW1hX3IoaGFsZjIgeCwgX19nbG9iYWwgaW50MiAqc2lnbnApOwpoYWxmMyBfX292bGQgbGdhbW1hX3IoaGFsZjMgeCwgX19nbG9iYWwgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19nbG9iYWwgaW50NCAqc2lnbnApOwpoYWxmOCBfX292bGQgbGdhbW1hX3IoaGFsZjggeCwgX19nbG9iYWwgaW50OCAqc2lnbnApOwpoYWxmMTYgX19vdmxkIGxnYW1tYV9yKGhhbGYxNiB4LCBfX2dsb2JhbCBpbnQxNiAqc2lnbnApOwpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fbG9jYWwgaW50ICpzaWducCk7CmhhbGYyIF9fb3ZsZCBsZ2FtbWFfcihoYWxmMiB4LCBfX2xvY2FsIGludDIgKnNpZ25wKTsKaGFsZjMgX19vdmxkIGxnYW1tYV9yKGhhbGYzIHgsIF9fbG9jYWwgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19sb2NhbCBpbnQ0ICpzaWducCk7CmhhbGY4IF9fb3ZsZCBsZ2FtbWFfcihoYWxmOCB4LCBfX2xvY2FsIGludDggKnNpZ25wKTsKaGFsZjE2IF9fb3ZsZCBsZ2FtbWFfcihoYWxmMTYgeCwgX19sb2NhbCBpbnQxNiAqc2lnbnApOwpoYWxmIF9fb3ZsZCBsZ2FtbWFfcihoYWxmIHgsIF9fcHJpdmF0ZSBpbnQgKnNpZ25wKTsKaGFsZjIgX19vdmxkIGxnYW1tYV9yKGhhbGYyIHgsIF9fcHJpdmF0ZSBpbnQyICpzaWducCk7CmhhbGYzIF9fb3ZsZCBsZ2FtbWFfcihoYWxmMyB4LCBfX3ByaXZhdGUgaW50MyAqc2lnbnApOwpoYWxmNCBfX292bGQgbGdhbW1hX3IoaGFsZjQgeCwgX19wcml2YXRlIGludDQgKnNpZ25wKTsKaGFsZjggX19vdmxkIGxnYW1tYV9yKGhhbGY4IHgsIF9fcHJpdmF0ZSBpbnQ4ICpzaWducCk7CmhhbGYxNiBfX292bGQgbGdhbW1hX3IoaGFsZjE2IHgsIF9fcHJpdmF0ZSBpbnQxNiAqc2lnbnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIENvbXB1dGUgbmF0dXJhbCBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxvZyhmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZyhmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBsb2coZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbG9nKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZyhmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbG9nKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbG9nKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2coZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBsb2coZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBsb2coZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2coZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbG9nKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBsb2coaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBsb2coaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGxvZyhoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbG9nKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMiBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGxvZzIoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxvZzIoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbG9nMihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsb2cyKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxvZzIoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBsb2cyKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbG9nMihkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsb2cyKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBsb2cyKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIGxvZzIoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGxvZzIoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIGxvZzIoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIGxvZzIoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsb2cyKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMTAgbG9nYXJpdGhtLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsb2cxMChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZzEwKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBsb2cxMChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxvZzEwKGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGxvZzEwKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbG9nMTAoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBsb2cxMChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIGxvZzEwKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBsb2cxMChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nMTAoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBsb2cxMChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIGUgbG9nYXJpdGhtIG9mICgxLjAgKyB4KS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbG9nMXAoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBsb2cxcChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGxvZzFwKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGUgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIGxvZzFwKGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBsb2cxcChkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxvZzFwKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxvZzFwKGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbG9nMXAoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGxvZzFwKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHRoZSBleHBvbmVudCBvZiB4LCB3aGljaCBpcyB0aGUgaW50ZWdyYWwKICogcGFydCBvZiBsb2dyIHwgeCB8LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsb2diKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBsb2diKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbG9nYihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGxvZ2IoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBsb2diKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGxvZ2IoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIGxvZ2IoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbG9nYihkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGxvZ2IoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbG9nYihoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbG9nYihoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBsb2diKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGxvZ2IoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIG1hZCBhcHByb3hpbWF0ZXMgYSAqIGIgKyBjLiBXaGV0aGVyIG9yIGhvdyB0aGUKICogcHJvZHVjdCBvZiBhICogYiBpcyByb3VuZGVkIGFuZCBob3cgc3VwZXJub3JtYWwgb3IKICogc3Vibm9ybWFsIGludGVybWVkaWF0ZSBwcm9kdWN0cyBhcmUgaGFuZGxlZCBpcyBub3QKICogZGVmaW5lZC4gbWFkIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlcmUgc3BlZWQgaXMKICogcHJlZmVycmVkIG92ZXIgYWNjdXJhY3kuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1hZChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0MiBhLCBmbG9hdDIgYiwgZmxvYXQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBtYWQoZmxvYXQzIGEsIGZsb2F0MyBiLCBmbG9hdDMgYyk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1hZChmbG9hdDQgYSwgZmxvYXQ0IGIsIGZsb2F0NCBjKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0OCBhLCBmbG9hdDggYiwgZmxvYXQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbWFkKGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBmbG9hdDE2IGMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTIgYSwgZG91YmxlMiBiLCBkb3VibGUyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTMgYSwgZG91YmxlMyBiLCBkb3VibGUzIGMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTQgYSwgZG91YmxlNCBiLCBkb3VibGU0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWFkKGRvdWJsZTggYSwgZG91YmxlOCBiLCBkb3VibGU4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1hZChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBkb3VibGUxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYWQoaGFsZiBhLCBoYWxmIGIsIGhhbGYgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWFkKGhhbGYyIGEsIGhhbGYyIGIsIGhhbGYyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIG1hZChoYWxmMyBhLCBoYWxmMyBiLCBoYWxmMyBjKTsKaGFsZjQgX19vdmxkIF9fY25mbiBtYWQoaGFsZjQgYSwgaGFsZjQgYiwgaGFsZjQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWFkKGhhbGY4IGEsIGhhbGY4IGIsIGhhbGY4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBtYWQoaGFsZjE2IGEsIGhhbGYxNiBiLCBoYWxmMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB4IGlmIHwgeCB8ID4gfCB5IHwsIHkgaWYgfCB5IHwgPiB8IHggfCwgb3RoZXJ3aXNlCiAqIGZtYXgoeCwgeSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1heG1hZyhmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1heG1hZyhmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBtYXhtYWcoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtYXhtYWcoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtYXhtYWcoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1heG1hZyhkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtYXhtYWcoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1heG1hZyhkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYXhtYWcoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1heG1hZyhoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtYXhtYWcoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1heG1hZyhoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWF4bWFnKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB4IGlmIHwgeCB8IDwgfCB5IHwsIHkgaWYgfCB5IHwgPCB8IHggfCwgb3RoZXJ3aXNlCiAqIGZtaW4oeCwgeSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG1pbm1hZyhmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1pbm1hZyhmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBtaW5tYWcoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaW5tYWcoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaW5tYWcoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbWlubWFnKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1pbm1hZyhkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaW5tYWcoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG1pbm1hZyhkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtaW5tYWcoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1pbm1hZyhoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaW5tYWcoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1pbm1hZyhoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWlubWFnKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRGVjb21wb3NlIGEgZmxvYXRpbmctcG9pbnQgbnVtYmVyLiBUaGUgbW9kZgogKiBmdW5jdGlvbiBicmVha3MgdGhlIGFyZ3VtZW50IHggaW50byBpbnRlZ3JhbCBhbmQKICogZnJhY3Rpb25hbCBwYXJ0cywgZWFjaCBvZiB3aGljaCBoYXMgdGhlIHNhbWUgc2lnbiBhcwogKiB0aGUgYXJndW1lbnQuIEl0IHN0b3JlcyB0aGUgaW50ZWdyYWwgcGFydCBpbiB0aGUgb2JqZWN0CiAqIHBvaW50ZWQgdG8gYnkgaXB0ci4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdCBfX292bGQgbW9kZihmbG9hdCB4LCBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgbW9kZihmbG9hdDIgeCwgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBtb2RmKGZsb2F0MyB4LCBmbG9hdDMgKmlwdHIpOwpmbG9hdDQgX19vdmxkIG1vZGYoZmxvYXQ0IHgsIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgbW9kZihmbG9hdDggeCwgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgbW9kZihmbG9hdDE2IHgsIGZsb2F0MTYgKmlwdHIpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBtb2RmKGRvdWJsZSB4LCBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBtb2RmKGRvdWJsZTIgeCwgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIG1vZGYoZG91YmxlMyB4LCBkb3VibGUzICppcHRyKTsKZG91YmxlNCBfX292bGQgbW9kZihkb3VibGU0IHgsIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBtb2RmKGRvdWJsZTggeCwgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBtb2RmKGRvdWJsZTE2IHgsIGRvdWJsZTE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIG1vZGYoaGFsZiB4LCBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIG1vZGYoaGFsZjIgeCwgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgbW9kZihoYWxmMyB4LCBoYWxmMyAqaXB0cik7CmhhbGY0IF9fb3ZsZCBtb2RmKGhhbGY0IHgsIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIG1vZGYoaGFsZjggeCwgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIG1vZGYoaGFsZjE2IHgsIGhhbGYxNiAqaXB0cik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fZ2xvYmFsIGZsb2F0ICppcHRyKTsKZmxvYXQyIF9fb3ZsZCBtb2RmKGZsb2F0MiB4LCBfX2dsb2JhbCBmbG9hdDIgKmlwdHIpOwpmbG9hdDMgX19vdmxkIG1vZGYoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19nbG9iYWwgZmxvYXQ0ICppcHRyKTsKZmxvYXQ4IF9fb3ZsZCBtb2RmKGZsb2F0OCB4LCBfX2dsb2JhbCBmbG9hdDggKmlwdHIpOwpmbG9hdDE2IF9fb3ZsZCBtb2RmKGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fbG9jYWwgZmxvYXQgKmlwdHIpOwpmbG9hdDIgX19vdmxkIG1vZGYoZmxvYXQyIHgsIF9fbG9jYWwgZmxvYXQyICppcHRyKTsKZmxvYXQzIF9fb3ZsZCBtb2RmKGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19sb2NhbCBmbG9hdDQgKmlwdHIpOwpmbG9hdDggX19vdmxkIG1vZGYoZmxvYXQ4IHgsIF9fbG9jYWwgZmxvYXQ4ICppcHRyKTsKZmxvYXQxNiBfX292bGQgbW9kZihmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqaXB0cik7CmZsb2F0IF9fb3ZsZCBtb2RmKGZsb2F0IHgsIF9fcHJpdmF0ZSBmbG9hdCAqaXB0cik7CmZsb2F0MiBfX292bGQgbW9kZihmbG9hdDIgeCwgX19wcml2YXRlIGZsb2F0MiAqaXB0cik7CmZsb2F0MyBfX292bGQgbW9kZihmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqaXB0cik7CmZsb2F0NCBfX292bGQgbW9kZihmbG9hdDQgeCwgX19wcml2YXRlIGZsb2F0NCAqaXB0cik7CmZsb2F0OCBfX292bGQgbW9kZihmbG9hdDggeCwgX19wcml2YXRlIGZsb2F0OCAqaXB0cik7CmZsb2F0MTYgX19vdmxkIG1vZGYoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqaXB0cik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fZ2xvYmFsIGRvdWJsZSAqaXB0cik7CmRvdWJsZTIgX19vdmxkIG1vZGYoZG91YmxlMiB4LCBfX2dsb2JhbCBkb3VibGUyICppcHRyKTsKZG91YmxlMyBfX292bGQgbW9kZihkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19nbG9iYWwgZG91YmxlNCAqaXB0cik7CmRvdWJsZTggX19vdmxkIG1vZGYoZG91YmxlOCB4LCBfX2dsb2JhbCBkb3VibGU4ICppcHRyKTsKZG91YmxlMTYgX19vdmxkIG1vZGYoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fbG9jYWwgZG91YmxlICppcHRyKTsKZG91YmxlMiBfX292bGQgbW9kZihkb3VibGUyIHgsIF9fbG9jYWwgZG91YmxlMiAqaXB0cik7CmRvdWJsZTMgX19vdmxkIG1vZGYoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19sb2NhbCBkb3VibGU0ICppcHRyKTsKZG91YmxlOCBfX292bGQgbW9kZihkb3VibGU4IHgsIF9fbG9jYWwgZG91YmxlOCAqaXB0cik7CmRvdWJsZTE2IF9fb3ZsZCBtb2RmKGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmlwdHIpOwpkb3VibGUgX19vdmxkIG1vZGYoZG91YmxlIHgsIF9fcHJpdmF0ZSBkb3VibGUgKmlwdHIpOwpkb3VibGUyIF9fb3ZsZCBtb2RmKGRvdWJsZTIgeCwgX19wcml2YXRlIGRvdWJsZTIgKmlwdHIpOwpkb3VibGUzIF9fb3ZsZCBtb2RmKGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmlwdHIpOwpkb3VibGU0IF9fb3ZsZCBtb2RmKGRvdWJsZTQgeCwgX19wcml2YXRlIGRvdWJsZTQgKmlwdHIpOwpkb3VibGU4IF9fb3ZsZCBtb2RmKGRvdWJsZTggeCwgX19wcml2YXRlIGRvdWJsZTggKmlwdHIpOwpkb3VibGUxNiBfX292bGQgbW9kZihkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmlwdHIpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fZ2xvYmFsIGhhbGYgKmlwdHIpOwpoYWxmMiBfX292bGQgbW9kZihoYWxmMiB4LCBfX2dsb2JhbCBoYWxmMiAqaXB0cik7CmhhbGYzIF9fb3ZsZCBtb2RmKGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19nbG9iYWwgaGFsZjQgKmlwdHIpOwpoYWxmOCBfX292bGQgbW9kZihoYWxmOCB4LCBfX2dsb2JhbCBoYWxmOCAqaXB0cik7CmhhbGYxNiBfX292bGQgbW9kZihoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fbG9jYWwgaGFsZiAqaXB0cik7CmhhbGYyIF9fb3ZsZCBtb2RmKGhhbGYyIHgsIF9fbG9jYWwgaGFsZjIgKmlwdHIpOwpoYWxmMyBfX292bGQgbW9kZihoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19sb2NhbCBoYWxmNCAqaXB0cik7CmhhbGY4IF9fb3ZsZCBtb2RmKGhhbGY4IHgsIF9fbG9jYWwgaGFsZjggKmlwdHIpOwpoYWxmMTYgX19vdmxkIG1vZGYoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICppcHRyKTsKaGFsZiBfX292bGQgbW9kZihoYWxmIHgsIF9fcHJpdmF0ZSBoYWxmICppcHRyKTsKaGFsZjIgX19vdmxkIG1vZGYoaGFsZjIgeCwgX19wcml2YXRlIGhhbGYyICppcHRyKTsKaGFsZjMgX19vdmxkIG1vZGYoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICppcHRyKTsKaGFsZjQgX19vdmxkIG1vZGYoaGFsZjQgeCwgX19wcml2YXRlIGhhbGY0ICppcHRyKTsKaGFsZjggX19vdmxkIG1vZGYoaGFsZjggeCwgX19wcml2YXRlIGhhbGY4ICppcHRyKTsKaGFsZjE2IF9fb3ZsZCBtb2RmKGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICppcHRyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBSZXR1cm5zIGEgcXVpZXQgTmFOLiBUaGUgbmFuY29kZSBtYXkgYmUgcGxhY2VkCiAqIGluIHRoZSBzaWduaWZpY2FuZCBvZiB0aGUgcmVzdWx0aW5nIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmFuKHVpbnQgbmFuY29kZSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hbih1aW50MiBuYW5jb2RlKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmFuKHVpbnQzIG5hbmNvZGUpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYW4odWludDQgbmFuY29kZSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hbih1aW50OCBuYW5jb2RlKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hbih1aW50MTYgbmFuY29kZSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBuYW4odWxvbmcgbmFuY29kZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBuYW4odWxvbmcyIG5hbmNvZGUpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbmFuKHVsb25nMyBuYW5jb2RlKTsKZG91YmxlNCBfX292bGQgX19jbmZuIG5hbih1bG9uZzQgbmFuY29kZSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBuYW4odWxvbmc4IG5hbmNvZGUpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIG5hbih1bG9uZzE2IG5hbmNvZGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIG5hbih1c2hvcnQgbmFuY29kZSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDIgbmFuY29kZSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDMgbmFuY29kZSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDQgbmFuY29kZSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbmFuKHVzaG9ydDggbmFuY29kZSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG5hbih1c2hvcnQxNiBuYW5jb2RlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlcyB0aGUgbmV4dCByZXByZXNlbnRhYmxlIHNpbmdsZS1wcmVjaXNpb24KICogZmxvYXRpbmctcG9pbnQgdmFsdWUgZm9sbG93aW5nIHggaW4gdGhlIGRpcmVjdGlvbiBvZgogKiB5LiBUaHVzLCBpZiB5IGlzIGxlc3MgdGhhbiB4LCBuZXh0YWZ0ZXIoKSByZXR1cm5zIHRoZQogKiBsYXJnZXN0IHJlcHJlc2VudGFibGUgZmxvYXRpbmctcG9pbnQgbnVtYmVyIGxlc3MKICogdGhhbiB4LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZmxvYXQgeCwgZmxvYXQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5leHRhZnRlcihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5leHRhZnRlcihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG5leHRhZnRlcihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG5leHRhZnRlcihkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGhhbGYgeCwgaGFsZiB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbmV4dGFmdGVyKGhhbGYzIHgsIGhhbGYzIHkpOwpoYWxmNCBfX292bGQgX19jbmZuIG5leHRhZnRlcihoYWxmNCB4LCBoYWxmNCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiBuZXh0YWZ0ZXIoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG5leHRhZnRlcihoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgeCB0byB0aGUgcG93ZXIgeS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93KGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBwb3coZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gcG93KGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvdyhmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBwb3coZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHBvdyhmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3coZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHBvdyhkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBwb3coZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93KGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHBvdyhkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcG93KGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvdyhoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcG93KGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHBvdyhoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3coaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcG93KGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBwb3coaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHkgaXMgYW4gaW50ZWdlci4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93bihmbG9hdCB4LCBpbnQgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIHBvd24oZmxvYXQyIHgsIGludDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIHBvd24oZmxvYXQzIHgsIGludDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvd24oZmxvYXQ0IHgsIGludDQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIHBvd24oZmxvYXQ4IHgsIGludDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBwb3duKGZsb2F0MTYgeCwgaW50MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZSB4LCBpbnQgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTIgeCwgaW50MiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHBvd24oZG91YmxlMyB4LCBpbnQzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93bihkb3VibGU0IHgsIGludDQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTggeCwgaW50OCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBwb3duKGRvdWJsZTE2IHgsIGludDE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvd24oaGFsZiB4LCBpbnQgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcG93bihoYWxmMiB4LCBpbnQyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHBvd24oaGFsZjMgeCwgaW50MyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3duKGhhbGY0IHgsIGludDQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcG93bihoYWxmOCB4LCBpbnQ4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBwb3duKGhhbGYxNiB4LCBpbnQxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHggaXMgPj0gMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBwb3dyKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHBvd3IoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gcG93cihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZSB4LCBkb3VibGUgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHBvd3IoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcG93cihkb3VibGU0IHgsIGRvdWJsZTQgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBwb3dyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHBvd3IoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIHBvd3IoaGFsZjIgeCwgaGFsZjIgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gcG93cihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiBwb3dyKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIHBvd3IoaGFsZjggeCwgaGFsZjggeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIHBvd3IoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHRoZSB2YWx1ZSByIHN1Y2ggdGhhdCByID0geCAtIG4qeSwgd2hlcmUgbgogKiBpcyB0aGUgaW50ZWdlciBuZWFyZXN0IHRoZSBleGFjdCB2YWx1ZSBvZiB4L3kuIElmIHRoZXJlCiAqIGFyZSB0d28gaW50ZWdlcnMgY2xvc2VzdCB0byB4L3ksIG4gc2hhbGwgYmUgdGhlIGV2ZW4KICogb25lLiBJZiByIGlzIHplcm8sIGl0IGlzIGdpdmVuIHRoZSBzYW1lIHNpZ24gYXMgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIHJlbWFpbmRlcihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiByZW1haW5kZXIoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZG91YmxlIHgsIGRvdWJsZSB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiByZW1haW5kZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHJlbWFpbmRlcihkb3VibGU4IHgsIGRvdWJsZTggeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHJlbWFpbmRlcihoYWxmIHgsIGhhbGYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGhhbGYyIHgsIGhhbGYyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHJlbWFpbmRlcihoYWxmMyB4LCBoYWxmMyB5KTsKaGFsZjQgX19vdmxkIF9fY25mbiByZW1haW5kZXIoaGFsZjQgeCwgaGFsZjQgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcmVtYWluZGVyKGhhbGY4IHgsIGhhbGY4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByZW1haW5kZXIoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBUaGUgcmVtcXVvIGZ1bmN0aW9uIGNvbXB1dGVzIHRoZSB2YWx1ZSByIHN1Y2gKICogdGhhdCByID0geCAtIG4qeSwgd2hlcmUgbiBpcyB0aGUgaW50ZWdlciBuZWFyZXN0IHRoZQogKiBleGFjdCB2YWx1ZSBvZiB4L3kuIElmIHRoZXJlIGFyZSB0d28gaW50ZWdlcnMgY2xvc2VzdAogKiB0byB4L3ksIG4gc2hhbGwgYmUgdGhlIGV2ZW4gb25lLiBJZiByIGlzIHplcm8sIGl0IGlzCiAqIGdpdmVuIHRoZSBzYW1lIHNpZ24gYXMgeC4gVGhpcyBpcyB0aGUgc2FtZSB2YWx1ZQogKiB0aGF0IGlzIHJldHVybmVkIGJ5IHRoZSByZW1haW5kZXIgZnVuY3Rpb24uCiAqIHJlbXF1byBhbHNvIGNhbGN1bGF0ZXMgdGhlIGxvd2VyIHNldmVuIGJpdHMgb2YgdGhlCiAqIGludGVncmFsIHF1b3RpZW50IHgveSwgYW5kIGdpdmVzIHRoYXQgdmFsdWUgdGhlIHNhbWUKICogc2lnbiBhcyB4L3kuIEl0IHN0b3JlcyB0aGlzIHNpZ25lZCB2YWx1ZSBpbiB0aGUgb2JqZWN0CiAqIHBvaW50ZWQgdG8gYnkgcXVvLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgaW50ICpxdW8pOwpmbG9hdDIgX19vdmxkIHJlbXF1byhmbG9hdDIgeCwgZmxvYXQyIHksIGludDIgKnF1byk7CmZsb2F0MyBfX292bGQgcmVtcXVvKGZsb2F0MyB4LCBmbG9hdDMgeSwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBpbnQ0ICpxdW8pOwpmbG9hdDggX19vdmxkIHJlbXF1byhmbG9hdDggeCwgZmxvYXQ4IHksIGludDggKnF1byk7CmZsb2F0MTYgX19vdmxkIHJlbXF1byhmbG9hdDE2IHgsIGZsb2F0MTYgeSwgaW50MTYgKnF1byk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIGludCAqcXVvKTsKZG91YmxlMiBfX292bGQgcmVtcXVvKGRvdWJsZTIgeCwgZG91YmxlMiB5LCBpbnQyICpxdW8pOwpkb3VibGUzIF9fb3ZsZCByZW1xdW8oZG91YmxlMyB4LCBkb3VibGUzIHksIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgaW50NCAqcXVvKTsKZG91YmxlOCBfX292bGQgcmVtcXVvKGRvdWJsZTggeCwgZG91YmxlOCB5LCBpbnQ4ICpxdW8pOwpkb3VibGUxNiBfX292bGQgcmVtcXVvKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIGludDE2ICpxdW8pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBpbnQgKnF1byk7CmhhbGYyIF9fb3ZsZCByZW1xdW8oaGFsZjIgeCwgaGFsZjIgeSwgaW50MiAqcXVvKTsKaGFsZjMgX19vdmxkIHJlbXF1byhoYWxmMyB4LCBoYWxmMyB5LCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIGludDQgKnF1byk7CmhhbGY4IF9fb3ZsZCByZW1xdW8oaGFsZjggeCwgaGFsZjggeSwgaW50OCAqcXVvKTsKaGFsZjE2IF9fb3ZsZCByZW1xdW8oaGFsZjE2IHgsIGhhbGYxNiB5LCBpbnQxNiAqcXVvKTsKCiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19nbG9iYWwgaW50ICpxdW8pOwpmbG9hdDIgX19vdmxkIHJlbXF1byhmbG9hdDIgeCwgZmxvYXQyIHksIF9fZ2xvYmFsIGludDIgKnF1byk7CmZsb2F0MyBfX292bGQgcmVtcXVvKGZsb2F0MyB4LCBmbG9hdDMgeSwgX19nbG9iYWwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX2dsb2JhbCBpbnQ0ICpxdW8pOwpmbG9hdDggX19vdmxkIHJlbXF1byhmbG9hdDggeCwgZmxvYXQ4IHksIF9fZ2xvYmFsIGludDggKnF1byk7CmZsb2F0MTYgX19vdmxkIHJlbXF1byhmbG9hdDE2IHgsIGZsb2F0MTYgeSwgX19nbG9iYWwgaW50MTYgKnF1byk7CmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19sb2NhbCBpbnQgKnF1byk7CmZsb2F0MiBfX292bGQgcmVtcXVvKGZsb2F0MiB4LCBmbG9hdDIgeSwgX19sb2NhbCBpbnQyICpxdW8pOwpmbG9hdDMgX19vdmxkIHJlbXF1byhmbG9hdDMgeCwgZmxvYXQzIHksIF9fbG9jYWwgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX2xvY2FsIGludDQgKnF1byk7CmZsb2F0OCBfX292bGQgcmVtcXVvKGZsb2F0OCB4LCBmbG9hdDggeSwgX19sb2NhbCBpbnQ4ICpxdW8pOwpmbG9hdDE2IF9fb3ZsZCByZW1xdW8oZmxvYXQxNiB4LCBmbG9hdDE2IHksIF9fbG9jYWwgaW50MTYgKnF1byk7CmZsb2F0IF9fb3ZsZCByZW1xdW8oZmxvYXQgeCwgZmxvYXQgeSwgX19wcml2YXRlIGludCAqcXVvKTsKZmxvYXQyIF9fb3ZsZCByZW1xdW8oZmxvYXQyIHgsIGZsb2F0MiB5LCBfX3ByaXZhdGUgaW50MiAqcXVvKTsKZmxvYXQzIF9fb3ZsZCByZW1xdW8oZmxvYXQzIHgsIGZsb2F0MyB5LCBfX3ByaXZhdGUgaW50MyAqcXVvKTsKZmxvYXQ0IF9fb3ZsZCByZW1xdW8oZmxvYXQ0IHgsIGZsb2F0NCB5LCBfX3ByaXZhdGUgaW50NCAqcXVvKTsKZmxvYXQ4IF9fb3ZsZCByZW1xdW8oZmxvYXQ4IHgsIGZsb2F0OCB5LCBfX3ByaXZhdGUgaW50OCAqcXVvKTsKZmxvYXQxNiBfX292bGQgcmVtcXVvKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCBfX3ByaXZhdGUgaW50MTYgKnF1byk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fZ2xvYmFsIGludCAqcXVvKTsKZG91YmxlMiBfX292bGQgcmVtcXVvKGRvdWJsZTIgeCwgZG91YmxlMiB5LCBfX2dsb2JhbCBpbnQyICpxdW8pOwpkb3VibGUzIF9fb3ZsZCByZW1xdW8oZG91YmxlMyB4LCBkb3VibGUzIHksIF9fZ2xvYmFsIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19nbG9iYWwgaW50NCAqcXVvKTsKZG91YmxlOCBfX292bGQgcmVtcXVvKGRvdWJsZTggeCwgZG91YmxlOCB5LCBfX2dsb2JhbCBpbnQ4ICpxdW8pOwpkb3VibGUxNiBfX292bGQgcmVtcXVvKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIF9fZ2xvYmFsIGludDE2ICpxdW8pOwpkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fbG9jYWwgaW50ICpxdW8pOwpkb3VibGUyIF9fb3ZsZCByZW1xdW8oZG91YmxlMiB4LCBkb3VibGUyIHksIF9fbG9jYWwgaW50MiAqcXVvKTsKZG91YmxlMyBfX292bGQgcmVtcXVvKGRvdWJsZTMgeCwgZG91YmxlMyB5LCBfX2xvY2FsIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19sb2NhbCBpbnQ0ICpxdW8pOwpkb3VibGU4IF9fb3ZsZCByZW1xdW8oZG91YmxlOCB4LCBkb3VibGU4IHksIF9fbG9jYWwgaW50OCAqcXVvKTsKZG91YmxlMTYgX19vdmxkIHJlbXF1byhkb3VibGUxNiB4LCBkb3VibGUxNiB5LCBfX2xvY2FsIGludDE2ICpxdW8pOwpkb3VibGUgX19vdmxkIHJlbXF1byhkb3VibGUgeCwgZG91YmxlIHksIF9fcHJpdmF0ZSBpbnQgKnF1byk7CmRvdWJsZTIgX19vdmxkIHJlbXF1byhkb3VibGUyIHgsIGRvdWJsZTIgeSwgX19wcml2YXRlIGludDIgKnF1byk7CmRvdWJsZTMgX19vdmxkIHJlbXF1byhkb3VibGUzIHgsIGRvdWJsZTMgeSwgX19wcml2YXRlIGludDMgKnF1byk7CmRvdWJsZTQgX19vdmxkIHJlbXF1byhkb3VibGU0IHgsIGRvdWJsZTQgeSwgX19wcml2YXRlIGludDQgKnF1byk7CmRvdWJsZTggX19vdmxkIHJlbXF1byhkb3VibGU4IHgsIGRvdWJsZTggeSwgX19wcml2YXRlIGludDggKnF1byk7CmRvdWJsZTE2IF9fb3ZsZCByZW1xdW8oZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgX19wcml2YXRlIGludDE2ICpxdW8pOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX2dsb2JhbCBpbnQgKnF1byk7CmhhbGYyIF9fb3ZsZCByZW1xdW8oaGFsZjIgeCwgaGFsZjIgeSwgX19nbG9iYWwgaW50MiAqcXVvKTsKaGFsZjMgX19vdmxkIHJlbXF1byhoYWxmMyB4LCBoYWxmMyB5LCBfX2dsb2JhbCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fZ2xvYmFsIGludDQgKnF1byk7CmhhbGY4IF9fb3ZsZCByZW1xdW8oaGFsZjggeCwgaGFsZjggeSwgX19nbG9iYWwgaW50OCAqcXVvKTsKaGFsZjE2IF9fb3ZsZCByZW1xdW8oaGFsZjE2IHgsIGhhbGYxNiB5LCBfX2dsb2JhbCBpbnQxNiAqcXVvKTsKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX2xvY2FsIGludCAqcXVvKTsKaGFsZjIgX19vdmxkIHJlbXF1byhoYWxmMiB4LCBoYWxmMiB5LCBfX2xvY2FsIGludDIgKnF1byk7CmhhbGYzIF9fb3ZsZCByZW1xdW8oaGFsZjMgeCwgaGFsZjMgeSwgX19sb2NhbCBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fbG9jYWwgaW50NCAqcXVvKTsKaGFsZjggX19vdmxkIHJlbXF1byhoYWxmOCB4LCBoYWxmOCB5LCBfX2xvY2FsIGludDggKnF1byk7CmhhbGYxNiBfX292bGQgcmVtcXVvKGhhbGYxNiB4LCBoYWxmMTYgeSwgX19sb2NhbCBpbnQxNiAqcXVvKTsKaGFsZiBfX292bGQgcmVtcXVvKGhhbGYgeCwgaGFsZiB5LCBfX3ByaXZhdGUgaW50ICpxdW8pOwpoYWxmMiBfX292bGQgcmVtcXVvKGhhbGYyIHgsIGhhbGYyIHksIF9fcHJpdmF0ZSBpbnQyICpxdW8pOwpoYWxmMyBfX292bGQgcmVtcXVvKGhhbGYzIHgsIGhhbGYzIHksIF9fcHJpdmF0ZSBpbnQzICpxdW8pOwpoYWxmNCBfX292bGQgcmVtcXVvKGhhbGY0IHgsIGhhbGY0IHksIF9fcHJpdmF0ZSBpbnQ0ICpxdW8pOwpoYWxmOCBfX292bGQgcmVtcXVvKGhhbGY4IHgsIGhhbGY4IHksIF9fcHJpdmF0ZSBpbnQ4ICpxdW8pOwpoYWxmMTYgX19vdmxkIHJlbXF1byhoYWxmMTYgeCwgaGFsZjE2IHksIF9fcHJpdmF0ZSBpbnQxNiAqcXVvKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlICh1c2luZyByb3VuZCB0byBuZWFyZXN0CiAqIGV2ZW4gcm91bmRpbmcgbW9kZSkgaW4gZmxvYXRpbmctcG9pbnQgZm9ybWF0LgogKiBSZWZlciB0byBzZWN0aW9uIDcuMSBmb3IgZGVzY3JpcHRpb24gb2Ygcm91bmRpbmcKICogbW9kZXMuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJpbnQoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByaW50KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHJpbnQoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcmludChmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiByaW50KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByaW50KGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJpbnQoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByaW50KGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gcmludChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByaW50KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByaW50KGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHJpbnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHJpbnQoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHJpbnQoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHJpbnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByaW50KGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB4IHRvIHRoZSBwb3dlciAxL3kuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJvb3RuKGZsb2F0IHgsIGludCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gcm9vdG4oZmxvYXQyIHgsIGludDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIHJvb3RuKGZsb2F0MyB4LCBpbnQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiByb290bihmbG9hdDQgeCwgaW50NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gcm9vdG4oZmxvYXQ4IHgsIGludDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByb290bihmbG9hdDE2IHgsIGludDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcm9vdG4oZG91YmxlIHgsIGludCB5KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTIgeCwgaW50MiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTMgeCwgaW50MyB5KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTQgeCwgaW50NCB5KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHJvb3RuKGRvdWJsZTggeCwgaW50OCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByb290bihkb3VibGUxNiB4LCBpbnQxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByb290bihoYWxmIHgsIGludCB5KTsKaGFsZjIgX19vdmxkIF9fY25mbiByb290bihoYWxmMiB4LCBpbnQyIHkpOwpoYWxmMyBfX292bGQgX19jbmZuIHJvb3RuKGhhbGYzIHgsIGludDMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gcm9vdG4oaGFsZjQgeCwgaW50NCB5KTsKaGFsZjggX19vdmxkIF9fY25mbiByb290bihoYWxmOCB4LCBpbnQ4IHkpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByb290bihoYWxmMTYgeCwgaW50MTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJuIHRoZSBpbnRlZ3JhbCB2YWx1ZSBuZWFyZXN0IHRvIHggcm91bmRpbmcKICogaGFsZndheSBjYXNlcyBhd2F5IGZyb20gemVybywgcmVnYXJkbGVzcyBvZiB0aGUKICogY3VycmVudCByb3VuZGluZyBkaXJlY3Rpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJvdW5kKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHJvdW5kKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcm91bmQoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByb3VuZChmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJvdW5kKGRvdWJsZTMgeCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByb3VuZChkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gcm91bmQoZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByb3VuZChkb3VibGUxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByb3VuZChoYWxmIHgpOwpoYWxmMiBfX292bGQgX19jbmZuIHJvdW5kKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHJvdW5kKGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHJvdW5kKGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIHJvdW5kKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByb3VuZChoYWxmMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBpbnZlcnNlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiByc3FydChmbG9hdCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0NCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHJzcXJ0KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiByc3FydChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHJzcXJ0KGRvdWJsZSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiByc3FydChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHJzcXJ0KGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gcnNxcnQoZG91YmxlNCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiByc3FydChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiByc3FydChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZik7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHJzcXJ0KGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiByc3FydChoYWxmNCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcnNxcnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiByc3FydChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc2luZS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHNpbihmbG9hdDMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaW4oZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2luKGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaW4oZmxvYXQxNik7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBzaW4oZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbihkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNpbihkb3VibGUzKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNpbihkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbihkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaW4oZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNpbihoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW4oaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHNpbihoYWxmMyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2luKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW4oaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaW4oaGFsZjE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb21wdXRlIHNpbmUgYW5kIGNvc2luZSBvZiB4LiBUaGUgY29tcHV0ZWQgc2luZQogKiBpcyB0aGUgcmV0dXJuIHZhbHVlIGFuZCBjb21wdXRlZCBjb3NpbmUgaXMgcmV0dXJuZWQKICogaW4gY29zdmFsLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCBzaW5jb3MoZmxvYXQgeCwgZmxvYXQgKmNvc3ZhbCk7CmZsb2F0MiBfX292bGQgc2luY29zKGZsb2F0MiB4LCBmbG9hdDIgKmNvc3ZhbCk7CmZsb2F0MyBfX292bGQgc2luY29zKGZsb2F0MyB4LCBmbG9hdDMgKmNvc3ZhbCk7CmZsb2F0NCBfX292bGQgc2luY29zKGZsb2F0NCB4LCBmbG9hdDQgKmNvc3ZhbCk7CmZsb2F0OCBfX292bGQgc2luY29zKGZsb2F0OCB4LCBmbG9hdDggKmNvc3ZhbCk7CmZsb2F0MTYgX19vdmxkIHNpbmNvcyhmbG9hdDE2IHgsIGZsb2F0MTYgKmNvc3ZhbCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIHNpbmNvcyhkb3VibGUgeCwgZG91YmxlICpjb3N2YWwpOwpkb3VibGUyIF9fb3ZsZCBzaW5jb3MoZG91YmxlMiB4LCBkb3VibGUyICpjb3N2YWwpOwpkb3VibGUzIF9fb3ZsZCBzaW5jb3MoZG91YmxlMyB4LCBkb3VibGUzICpjb3N2YWwpOwpkb3VibGU0IF9fb3ZsZCBzaW5jb3MoZG91YmxlNCB4LCBkb3VibGU0ICpjb3N2YWwpOwpkb3VibGU4IF9fb3ZsZCBzaW5jb3MoZG91YmxlOCB4LCBkb3VibGU4ICpjb3N2YWwpOwpkb3VibGUxNiBfX292bGQgc2luY29zKGRvdWJsZTE2IHgsIGRvdWJsZTE2ICpjb3N2YWwpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgc2luY29zKGhhbGYgeCwgaGFsZiAqY29zdmFsKTsKaGFsZjIgX19vdmxkIHNpbmNvcyhoYWxmMiB4LCBoYWxmMiAqY29zdmFsKTsKaGFsZjMgX19vdmxkIHNpbmNvcyhoYWxmMyB4LCBoYWxmMyAqY29zdmFsKTsKaGFsZjQgX19vdmxkIHNpbmNvcyhoYWxmNCB4LCBoYWxmNCAqY29zdmFsKTsKaGFsZjggX19vdmxkIHNpbmNvcyhoYWxmOCB4LCBoYWxmOCAqY29zdmFsKTsKaGFsZjE2IF9fb3ZsZCBzaW5jb3MoaGFsZjE2IHgsIGhhbGYxNiAqY29zdmFsKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX2dsb2JhbCBmbG9hdCAqY29zdmFsKTsKZmxvYXQyIF9fb3ZsZCBzaW5jb3MoZmxvYXQyIHgsIF9fZ2xvYmFsIGZsb2F0MiAqY29zdmFsKTsKZmxvYXQzIF9fb3ZsZCBzaW5jb3MoZmxvYXQzIHgsIF9fZ2xvYmFsIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fZ2xvYmFsIGZsb2F0NCAqY29zdmFsKTsKZmxvYXQ4IF9fb3ZsZCBzaW5jb3MoZmxvYXQ4IHgsIF9fZ2xvYmFsIGZsb2F0OCAqY29zdmFsKTsKZmxvYXQxNiBfX292bGQgc2luY29zKGZsb2F0MTYgeCwgX19nbG9iYWwgZmxvYXQxNiAqY29zdmFsKTsKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX2xvY2FsIGZsb2F0ICpjb3N2YWwpOwpmbG9hdDIgX19vdmxkIHNpbmNvcyhmbG9hdDIgeCwgX19sb2NhbCBmbG9hdDIgKmNvc3ZhbCk7CmZsb2F0MyBfX292bGQgc2luY29zKGZsb2F0MyB4LCBfX2xvY2FsIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fbG9jYWwgZmxvYXQ0ICpjb3N2YWwpOwpmbG9hdDggX19vdmxkIHNpbmNvcyhmbG9hdDggeCwgX19sb2NhbCBmbG9hdDggKmNvc3ZhbCk7CmZsb2F0MTYgX19vdmxkIHNpbmNvcyhmbG9hdDE2IHgsIF9fbG9jYWwgZmxvYXQxNiAqY29zdmFsKTsKZmxvYXQgX19vdmxkIHNpbmNvcyhmbG9hdCB4LCBfX3ByaXZhdGUgZmxvYXQgKmNvc3ZhbCk7CmZsb2F0MiBfX292bGQgc2luY29zKGZsb2F0MiB4LCBfX3ByaXZhdGUgZmxvYXQyICpjb3N2YWwpOwpmbG9hdDMgX19vdmxkIHNpbmNvcyhmbG9hdDMgeCwgX19wcml2YXRlIGZsb2F0MyAqY29zdmFsKTsKZmxvYXQ0IF9fb3ZsZCBzaW5jb3MoZmxvYXQ0IHgsIF9fcHJpdmF0ZSBmbG9hdDQgKmNvc3ZhbCk7CmZsb2F0OCBfX292bGQgc2luY29zKGZsb2F0OCB4LCBfX3ByaXZhdGUgZmxvYXQ4ICpjb3N2YWwpOwpmbG9hdDE2IF9fb3ZsZCBzaW5jb3MoZmxvYXQxNiB4LCBfX3ByaXZhdGUgZmxvYXQxNiAqY29zdmFsKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX2dsb2JhbCBkb3VibGUgKmNvc3ZhbCk7CmRvdWJsZTIgX19vdmxkIHNpbmNvcyhkb3VibGUyIHgsIF9fZ2xvYmFsIGRvdWJsZTIgKmNvc3ZhbCk7CmRvdWJsZTMgX19vdmxkIHNpbmNvcyhkb3VibGUzIHgsIF9fZ2xvYmFsIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fZ2xvYmFsIGRvdWJsZTQgKmNvc3ZhbCk7CmRvdWJsZTggX19vdmxkIHNpbmNvcyhkb3VibGU4IHgsIF9fZ2xvYmFsIGRvdWJsZTggKmNvc3ZhbCk7CmRvdWJsZTE2IF9fb3ZsZCBzaW5jb3MoZG91YmxlMTYgeCwgX19nbG9iYWwgZG91YmxlMTYgKmNvc3ZhbCk7CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX2xvY2FsIGRvdWJsZSAqY29zdmFsKTsKZG91YmxlMiBfX292bGQgc2luY29zKGRvdWJsZTIgeCwgX19sb2NhbCBkb3VibGUyICpjb3N2YWwpOwpkb3VibGUzIF9fb3ZsZCBzaW5jb3MoZG91YmxlMyB4LCBfX2xvY2FsIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fbG9jYWwgZG91YmxlNCAqY29zdmFsKTsKZG91YmxlOCBfX292bGQgc2luY29zKGRvdWJsZTggeCwgX19sb2NhbCBkb3VibGU4ICpjb3N2YWwpOwpkb3VibGUxNiBfX292bGQgc2luY29zKGRvdWJsZTE2IHgsIF9fbG9jYWwgZG91YmxlMTYgKmNvc3ZhbCk7CmRvdWJsZSBfX292bGQgc2luY29zKGRvdWJsZSB4LCBfX3ByaXZhdGUgZG91YmxlICpjb3N2YWwpOwpkb3VibGUyIF9fb3ZsZCBzaW5jb3MoZG91YmxlMiB4LCBfX3ByaXZhdGUgZG91YmxlMiAqY29zdmFsKTsKZG91YmxlMyBfX292bGQgc2luY29zKGRvdWJsZTMgeCwgX19wcml2YXRlIGRvdWJsZTMgKmNvc3ZhbCk7CmRvdWJsZTQgX19vdmxkIHNpbmNvcyhkb3VibGU0IHgsIF9fcHJpdmF0ZSBkb3VibGU0ICpjb3N2YWwpOwpkb3VibGU4IF9fb3ZsZCBzaW5jb3MoZG91YmxlOCB4LCBfX3ByaXZhdGUgZG91YmxlOCAqY29zdmFsKTsKZG91YmxlMTYgX19vdmxkIHNpbmNvcyhkb3VibGUxNiB4LCBfX3ByaXZhdGUgZG91YmxlMTYgKmNvc3ZhbCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX2dsb2JhbCBoYWxmICpjb3N2YWwpOwpoYWxmMiBfX292bGQgc2luY29zKGhhbGYyIHgsIF9fZ2xvYmFsIGhhbGYyICpjb3N2YWwpOwpoYWxmMyBfX292bGQgc2luY29zKGhhbGYzIHgsIF9fZ2xvYmFsIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fZ2xvYmFsIGhhbGY0ICpjb3N2YWwpOwpoYWxmOCBfX292bGQgc2luY29zKGhhbGY4IHgsIF9fZ2xvYmFsIGhhbGY4ICpjb3N2YWwpOwpoYWxmMTYgX19vdmxkIHNpbmNvcyhoYWxmMTYgeCwgX19nbG9iYWwgaGFsZjE2ICpjb3N2YWwpOwpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX2xvY2FsIGhhbGYgKmNvc3ZhbCk7CmhhbGYyIF9fb3ZsZCBzaW5jb3MoaGFsZjIgeCwgX19sb2NhbCBoYWxmMiAqY29zdmFsKTsKaGFsZjMgX19vdmxkIHNpbmNvcyhoYWxmMyB4LCBfX2xvY2FsIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fbG9jYWwgaGFsZjQgKmNvc3ZhbCk7CmhhbGY4IF9fb3ZsZCBzaW5jb3MoaGFsZjggeCwgX19sb2NhbCBoYWxmOCAqY29zdmFsKTsKaGFsZjE2IF9fb3ZsZCBzaW5jb3MoaGFsZjE2IHgsIF9fbG9jYWwgaGFsZjE2ICpjb3N2YWwpOwpoYWxmIF9fb3ZsZCBzaW5jb3MoaGFsZiB4LCBfX3ByaXZhdGUgaGFsZiAqY29zdmFsKTsKaGFsZjIgX19vdmxkIHNpbmNvcyhoYWxmMiB4LCBfX3ByaXZhdGUgaGFsZjIgKmNvc3ZhbCk7CmhhbGYzIF9fb3ZsZCBzaW5jb3MoaGFsZjMgeCwgX19wcml2YXRlIGhhbGYzICpjb3N2YWwpOwpoYWxmNCBfX292bGQgc2luY29zKGhhbGY0IHgsIF9fcHJpdmF0ZSBoYWxmNCAqY29zdmFsKTsKaGFsZjggX19vdmxkIHNpbmNvcyhoYWxmOCB4LCBfX3ByaXZhdGUgaGFsZjggKmNvc3ZhbCk7CmhhbGYxNiBfX292bGQgc2luY29zKGhhbGYxNiB4LCBfX3ByaXZhdGUgaGFsZjE2ICpjb3N2YWwpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIENvbXB1dGUgaHlwZXJib2xpYyBzaW5lLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBzaW5oKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzaW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNpbmgoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2luaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzaW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2luaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbmgoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2luaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2luaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW5oKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiBzaW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaW5oKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW5oKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2luaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc2luIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBzaW5waShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzaW5waShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNpbnBpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzaW5waShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2lucGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2lucGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzaW5waShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaW5waShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2lucGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgc3F1YXJlIHJvb3QuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHNxcnQoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0Mik7CmZsb2F0MyBfX292bGQgX19jbmZuIHNxcnQoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc3FydChmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0OCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzcXJ0KGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGUyKTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNxcnQoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzcXJ0KGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc3FydChkb3VibGU4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzcXJ0KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBzcXJ0KGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHNxcnQoaGFsZjIpOwpoYWxmMyBfX292bGQgX19jbmZuIHNxcnQoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHNxcnQoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHNxcnQoaGFsZjgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzcXJ0KGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW4oZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiB0YW4oZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdGFuKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbihmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiB0YW4oZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRhbihmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbihkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gdGFuKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRhbihkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFuKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHRhbihoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdGFuKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW4oaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHRhbihoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRhbihoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgaHlwZXJib2xpYyB0YW5nZW50LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW5oKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDIpOwpmbG9hdDMgX19vdmxkIF9fY25mbiB0YW5oKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbmgoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gdGFuaChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlMik7CmRvdWJsZTMgX19vdmxkIF9fY25mbiB0YW5oKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFuaChkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRhbmgoZG91YmxlOCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gdGFuaChkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFuaChoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiB0YW5oKGhhbGYyKTsKaGFsZjMgX19vdmxkIF9fY25mbiB0YW5oKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW5oKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiB0YW5oKGhhbGY4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gdGFuaChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgdGFuIChQSSAqIHgpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0YW5waShmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiB0YW5waShmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRhbnBpKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiB0YW5waShkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGFucGkoZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRhbnBpKGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGFucGkoaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiB0YW5waShoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiB0YW5waShoYWxmMyB4KTsKaGFsZjQgX19vdmxkIF9fY25mbiB0YW5waShoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiB0YW5waShoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gdGFucGkoaGFsZjE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgdGhlIGdhbW1hIGZ1bmN0aW9uLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQpOwpmbG9hdDIgX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGZsb2F0Myk7CmZsb2F0NCBfX292bGQgX19jbmZuIHRnYW1tYShmbG9hdDQpOwpmbG9hdDggX19vdmxkIF9fY25mbiB0Z2FtbWEoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRnYW1tYShmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHRnYW1tYShkb3VibGUpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTQpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRnYW1tYShkb3VibGUxNik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGhhbGYpOwpoYWxmMiBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdGdhbW1hKGhhbGYzKTsKaGFsZjQgX19vdmxkIF9fY25mbiB0Z2FtbWEoaGFsZjQpOwpoYWxmOCBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRnYW1tYShoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJvdW5kIHRvIGludGVncmFsIHZhbHVlIHVzaW5nIHRoZSByb3VuZCB0byB6ZXJvCiAqIHJvdW5kaW5nIG1vZGUuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHRydW5jKGZsb2F0KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQyKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQ0KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZmxvYXQ4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHRydW5jKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZG91YmxlKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTIpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoZG91YmxlMyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiB0cnVuYyhkb3VibGU0KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHRydW5jKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmKTsKaGFsZjIgX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmMik7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gdHJ1bmMoaGFsZjMpOwpoYWxmNCBfX292bGQgX19jbmZuIHRydW5jKGhhbGY0KTsKaGFsZjggX19vdmxkIF9fY25mbiB0cnVuYyhoYWxmOCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHRydW5jKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogQ29tcHV0ZSBjb3NpbmUuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTJeMTYgLi4uICsyXjE2LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX2NvcyhmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX2NvcyhmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfY29zKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9jb3MoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggLyB5LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX2RpdmlkZShmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQzIHgsIGZsb2F0MyB5KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9kaXZpZGUoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfZGl2aWRlKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKCi8qKgogKiBDb21wdXRlIHRoZSBiYXNlLSBlIGV4cG9uZW50aWFsIG9mIHguCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfZXhwKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfZXhwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2V4cChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgdGhlIGJhc2UtIDIgZXhwb25lbnRpYWwgb2YgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAyKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX2V4cDIoZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAyKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMTAgZXhwb25lbnRpYWwgb2YgeC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfZXhwMTAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2V4cDEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9leHAxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2V4cDEwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBuYXR1cmFsIGxvZ2FyaXRobS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2coZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2coZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2xvZyhmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfbG9nKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBhIGJhc2UgMiBsb2dhcml0aG0uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfbG9nMihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cyKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfbG9nMihmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDEwIGxvZ2FyaXRobS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfbG9nMTAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX2xvZzEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9sb2cxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX2xvZzEwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB4IHRvIHRoZSBwb3dlciB5LCB3aGVyZSB4IGlzID49IDAuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGhhbGZfcG93cihmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9wb3dyKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfcG93cihmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3Bvd3IoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9wb3dyKGZsb2F0OCB4LCBmbG9hdDggeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3Bvd3IoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwoKLyoqCiAqIENvbXB1dGUgcmVjaXByb2NhbC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfcmVjaXAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3JlY2lwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9yZWNpcChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3JlY2lwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBpbnZlcnNlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl9yc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfcnNxcnQoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBoYWxmX3JzcXJ0KGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfcnNxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNpbmUuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTJeMTYgLi4uICsyXjE2LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3NpbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBoYWxmX3NpbihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfc2luKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gaGFsZl9zaW4oZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNxdWFyZSByb290LgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBoYWxmX3NxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfc3FydChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBoYWxmX3NxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHRhbmdlbnQuIHggbXVzdCBiZSBpbiB0aGUgcmFuZ2UgLTIxNiAuLi4gKzIxNi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gaGFsZl90YW4oZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gaGFsZl90YW4oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBoYWxmX3RhbihmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGhhbGZfdGFuKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSBjb3NpbmUgb3ZlciBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHJhbmdlLgogKiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2NvcyhmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9jb3MoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfY29zKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9jb3MoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggLyB5IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4KICogVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdCB4LCBmbG9hdCB5KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfZGl2aWRlKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9kaXZpZGUoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2RpdmlkZShmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gZSBleHBvbmVudGlhbCBvZiB4IG92ZXIgYW4KICogaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMKICogaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMiBleHBvbmVudGlhbCBvZiB4IG92ZXIgYW4KICogaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMKICogaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDIoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDIoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfZXhwMihmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAyKGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0aGUgYmFzZS0gMTAgZXhwb25lbnRpYWwgb2YgeCBvdmVyIGFuCiAqIGltcGxlbWVudGF0aW9uLWRlZmluZWQgcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzCiAqIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAxMChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2V4cDEwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9leHAxMChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgbmF0dXJhbCBsb2dhcml0aG0gb3ZlciBhbiBpbXBsZW1lbnRhdGlvbmRlZmluZWQKICogcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzIGltcGxlbWVudGF0aW9uCiAqIGRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZyhmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2coZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZyhmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDIgbG9nYXJpdGhtIG92ZXIgYW4gaW1wbGVtZW50YXRpb25kZWZpbmVkCiAqIHJhbmdlLiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbmRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cyKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cyKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX2xvZzIoZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMihmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgYSBiYXNlIDEwIGxvZ2FyaXRobSBvdmVyIGFuIGltcGxlbWVudGF0aW9uZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb25kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMTAoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9sb2cxMChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfbG9nMTAoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHggdG8gdGhlIHBvd2VyIHksIHdoZXJlIHggaXMgPj0gMC4gVGhlIHJhbmdlIG9mCiAqIHggYW5kIHkgYXJlIGltcGxlbWVudGF0aW9uLWRlZmluZWQuIFRoZSBtYXhpbXVtIGVycm9yCiAqIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9wb3dyKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDIgeCwgZmxvYXQyIHkpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDMgeCwgZmxvYXQzIHkpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfcG93cihmbG9hdDggeCwgZmxvYXQ4IHkpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3Bvd3IoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwoKLyoqCiAqIENvbXB1dGUgcmVjaXByb2NhbCBvdmVyIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQKICogcmFuZ2UuIFRoZSBtYXhpbXVtIGVycm9yIGlzIGltcGxlbWVudGF0aW9uLWRlZmluZWQuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIG5hdGl2ZV9yZWNpcChmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3JlY2lwKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9yZWNpcChmbG9hdDE2IHgpOwoKLyoqCiAqIENvbXB1dGUgaW52ZXJzZSBzcXVhcmUgcm9vdCBvdmVyIGFuIGltcGxlbWVudGF0aW9uZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb25kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfcnNxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9yc3FydChmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfcnNxcnQoZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNpbmUgb3ZlciBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHJhbmdlLgogKiBUaGUgbWF4aW11bSBlcnJvciBpcyBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NpbihmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIG5hdGl2ZV9zaW4oZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBuYXRpdmVfc2luKGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9zaW4oZmxvYXQxNiB4KTsKCi8qKgogKiBDb21wdXRlIHNxdWFyZSByb290IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZAogKiByYW5nZS4gVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NxcnQoZmxvYXQgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0MiB4KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3NxcnQoZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfc3FydChmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0OCB4KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG5hdGl2ZV9zcXJ0KGZsb2F0MTYgeCk7CgovKioKICogQ29tcHV0ZSB0YW5nZW50IG92ZXIgYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCByYW5nZS4KICogVGhlIG1heGltdW0gZXJyb3IgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIG5hdGl2ZV90YW4oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBuYXRpdmVfdGFuKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gbmF0aXZlX3RhbihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBuYXRpdmVfdGFuKGZsb2F0MTYgeCk7CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4zLCB2MS4yIHM2LjEyLjMsIHYyLjAgczYuMTMuMyAtIEludGVnZXIgRnVuY3Rpb25zCgovKioKICogUmV0dXJucyB8IHggfC4KICovCnVjaGFyIF9fb3ZsZCBfX2NuZm4gYWJzKGNoYXIgeCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyIHgpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBhYnMoY2hhcjIgeCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGFicyh1Y2hhcjIgeCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFicyhjaGFyMyB4KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyMyB4KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYWJzKGNoYXI0IHgpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhYnModWNoYXI0IHgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBhYnMoY2hhcjggeCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGFicyh1Y2hhcjggeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhYnMoY2hhcjE2IHgpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYWJzKHVjaGFyMTYgeCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGFicyhzaG9ydCB4KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYWJzKHVzaG9ydCB4KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFicyhzaG9ydDIgeCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBhYnModXNob3J0MiB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGFicyhzaG9ydDMgeCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhYnModXNob3J0MyB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGFicyhzaG9ydDQgeCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBhYnModXNob3J0NCB4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFicyhzaG9ydDggeCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBhYnModXNob3J0OCB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBhYnMoc2hvcnQxNiB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBhYnModXNob3J0MTYgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBhYnMoaW50IHgpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzKGludDIgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQyIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGFicyhpbnQzIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGFicyh1aW50MyB4KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnMoaW50NCB4KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnModWludDQgeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzKGludDggeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzKHVpbnQ4IHgpOwp1aW50MTYgX19vdmxkIF9fY25mbiBhYnMoaW50MTYgeCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFicyh1aW50MTYgeCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYWJzKGxvbmcgeCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nIHgpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBhYnMobG9uZzIgeCk7CnVsb25nMiBfX292bGQgX19jbmZuIGFicyh1bG9uZzIgeCk7CnVsb25nMyBfX292bGQgX19jbmZuIGFicyhsb25nMyB4KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nMyB4KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYWJzKGxvbmc0IHgpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhYnModWxvbmc0IHgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBhYnMobG9uZzggeCk7CnVsb25nOCBfX292bGQgX19jbmZuIGFicyh1bG9uZzggeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhYnMobG9uZzE2IHgpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYWJzKHVsb25nMTYgeCk7CgovKioKICogUmV0dXJucyB8IHggLSB5IHwgd2l0aG91dCBtb2R1bG8gb3ZlcmZsb3cuCiAqLwp1Y2hhciBfX292bGQgX19jbmZuIGFic19kaWZmKGNoYXIgeCwgY2hhciB5KTsKdWNoYXIgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1Y2hhciB4LCB1Y2hhciB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIGFic19kaWZmKHVjaGFyMiB4LCB1Y2hhcjIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFic19kaWZmKGNoYXIzIHgsIGNoYXIzIHkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1Y2hhcjMgeCwgdWNoYXIzIHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihjaGFyNCB4LCBjaGFyNCB5KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWNoYXI0IHgsIHVjaGFyNCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIGFic19kaWZmKHVjaGFyOCB4LCB1Y2hhcjggeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZihjaGFyMTYgeCwgY2hhcjE2IHkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWNoYXIxNiB4LCB1Y2hhcjE2IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihzaG9ydCB4LCBzaG9ydCB5KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodXNob3J0IHgsIHVzaG9ydCB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFic19kaWZmKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1c2hvcnQyIHgsIHVzaG9ydDIgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhYnNfZGlmZihzaG9ydDMgeCwgc2hvcnQzIHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodXNob3J0MyB4LCB1c2hvcnQzIHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoc2hvcnQ0IHgsIHNob3J0NCB5KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGFic19kaWZmKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFic19kaWZmKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBhYnNfZGlmZih1c2hvcnQ4IHgsIHVzaG9ydDggeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoc2hvcnQxNiB4LCBzaG9ydDE2IHkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGFic19kaWZmKHVzaG9ydDE2IHgsIHVzaG9ydDE2IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoaW50IHgsIGludCB5KTsKdWludCBfX292bGQgX19jbmZuIGFic19kaWZmKHVpbnQgeCwgdWludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBhYnNfZGlmZihpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWludDIgeCwgdWludDIgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYoaW50MyB4LCBpbnQzIHkpOwp1aW50MyBfX292bGQgX19jbmZuIGFic19kaWZmKHVpbnQzIHgsIHVpbnQzIHkpOwp1aW50NCBfX292bGQgX19jbmZuIGFic19kaWZmKGludDQgeCwgaW50NCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1aW50NCB4LCB1aW50NCB5KTsKdWludDggX19vdmxkIF9fY25mbiBhYnNfZGlmZihpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWludDggeCwgdWludDggeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFic19kaWZmKGludDE2IHgsIGludDE2IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1aW50MTYgeCwgdWludDE2IHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGFic19kaWZmKGxvbmcgeCwgbG9uZyB5KTsKdWxvbmcgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1bG9uZyB4LCB1bG9uZyB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIGFic19kaWZmKHVsb25nMiB4LCB1bG9uZzIgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGFic19kaWZmKGxvbmczIHgsIGxvbmczIHkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBhYnNfZGlmZih1bG9uZzMgeCwgdWxvbmczIHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhYnNfZGlmZihsb25nNCB4LCBsb25nNCB5KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWxvbmc0IHgsIHVsb25nNCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIGFic19kaWZmKHVsb25nOCB4LCB1bG9uZzggeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhYnNfZGlmZihsb25nMTYgeCwgbG9uZzE2IHkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYWJzX2RpZmYodWxvbmcxNiB4LCB1bG9uZzE2IHkpOwoKLyoqCiAqIFJldHVybnMgeCArIHkgYW5kIHNhdHVyYXRlcyB0aGUgcmVzdWx0LgogKi8KY2hhciBfX292bGQgX19jbmZuIGFkZF9zYXQoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIGFkZF9zYXQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChjaGFyMiB4LCBjaGFyMiB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIGFkZF9zYXQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGFkZF9zYXQodWNoYXIzIHgsIHVjaGFyMyB5KTsKY2hhcjQgX19vdmxkIF9fY25mbiBhZGRfc2F0KGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChjaGFyOCB4LCBjaGFyOCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVjaGFyMTYgeCwgdWNoYXIxNiB5KTsKc2hvcnQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGFkZF9zYXQoc2hvcnQyIHgsIHNob3J0MiB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGFkZF9zYXQodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBhZGRfc2F0KHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVzaG9ydDMgeCwgdXNob3J0MyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGFkZF9zYXQoc2hvcnQ4IHgsIHNob3J0OCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGFkZF9zYXQodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1c2hvcnQxNiB4LCB1c2hvcnQxNiB5KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBhZGRfc2F0KGludDIgeCwgaW50MiB5KTsKdWludDIgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1aW50MyB4LCB1aW50MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGFkZF9zYXQoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIGFkZF9zYXQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBhZGRfc2F0KGludDggeCwgaW50OCB5KTsKdWludDggX19vdmxkIF9fY25mbiBhZGRfc2F0KHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGFkZF9zYXQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGFkZF9zYXQodWludDE2IHgsIHVpbnQxNiB5KTsKbG9uZyBfX292bGQgX19jbmZuIGFkZF9zYXQobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGFkZF9zYXQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChsb25nMiB4LCBsb25nMiB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGFkZF9zYXQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGFkZF9zYXQodWxvbmczIHgsIHVsb25nMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBhZGRfc2F0KGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdChsb25nOCB4LCBsb25nOCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYWRkX3NhdCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBhZGRfc2F0KHVsb25nMTYgeCwgdWxvbmcxNiB5KTsKCi8qKgogKiBSZXR1cm5zICh4ICsgeSkgPj4gMS4gVGhlIGludGVybWVkaWF0ZSBzdW0gZG9lcwogKiBub3QgbW9kdWxvIG92ZXJmbG93LgogKi8KY2hhciBfX292bGQgX19jbmZuIGhhZGQoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIGhhZGQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gaGFkZChjaGFyMiB4LCBjaGFyMiB5KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gaGFkZCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIGhhZGQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIGhhZGQodWNoYXIzIHgsIHVjaGFyMyB5KTsKY2hhcjQgX19vdmxkIF9fY25mbiBoYWRkKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBoYWRkKHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gaGFkZChjaGFyOCB4LCBjaGFyOCB5KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gaGFkZCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBoYWRkKGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBoYWRkKHVjaGFyMTYgeCwgdWNoYXIxNiB5KTsKc2hvcnQgX19vdmxkIF9fY25mbiBoYWRkKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBoYWRkKHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGhhZGQoc2hvcnQyIHgsIHNob3J0MiB5KTsKdXNob3J0MiBfX292bGQgX19jbmZuIGhhZGQodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBoYWRkKHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBoYWRkKHVzaG9ydDMgeCwgdXNob3J0MyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaGFkZChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaGFkZCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGhhZGQoc2hvcnQ4IHgsIHNob3J0OCB5KTsKdXNob3J0OCBfX292bGQgX19jbmZuIGhhZGQodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaGFkZChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaGFkZCh1c2hvcnQxNiB4LCB1c2hvcnQxNiB5KTsKaW50IF9fb3ZsZCBfX2NuZm4gaGFkZChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gaGFkZCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBoYWRkKGludDIgeCwgaW50MiB5KTsKdWludDIgX19vdmxkIF9fY25mbiBoYWRkKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaGFkZChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gaGFkZCh1aW50MyB4LCB1aW50MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGhhZGQoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIGhhZGQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBoYWRkKGludDggeCwgaW50OCB5KTsKdWludDggX19vdmxkIF9fY25mbiBoYWRkKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGhhZGQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIGhhZGQodWludDE2IHgsIHVpbnQxNiB5KTsKbG9uZyBfX292bGQgX19jbmZuIGhhZGQobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIGhhZGQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaGFkZChsb25nMiB4LCBsb25nMiB5KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gaGFkZCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGhhZGQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIGhhZGQodWxvbmczIHgsIHVsb25nMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBoYWRkKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBoYWRkKHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaGFkZChsb25nOCB4LCBsb25nOCB5KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gaGFkZCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBoYWRkKGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBoYWRkKHVsb25nMTYgeCwgdWxvbmcxNiB5KTsKCi8qKgogKiBSZXR1cm5zICh4ICsgeSArIDEpID4+IDEuIFRoZSBpbnRlcm1lZGlhdGUgc3VtCiAqIGRvZXMgbm90IG1vZHVsbyBvdmVyZmxvdy4KICovCmNoYXIgX19vdmxkIF9fY25mbiByaGFkZChjaGFyIHgsIGNoYXIgeSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWNoYXIgeCwgdWNoYXIgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyMiB4LCB1Y2hhcjIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjMgeCwgY2hhcjMgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjQgeCwgY2hhcjQgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyNCB4LCB1Y2hhcjQgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gcmhhZGQoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIHJoYWRkKHVjaGFyOCB4LCB1Y2hhcjggeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIHJoYWRkKGNoYXIxNiB4LCBjaGFyMTYgeSk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiByaGFkZCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gcmhhZGQoc2hvcnQgeCwgc2hvcnQgeSk7CnVzaG9ydCBfX292bGQgX19jbmZuIHJoYWRkKHVzaG9ydCB4LCB1c2hvcnQgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQyIHgsIHVzaG9ydDIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0MyB4LCBzaG9ydDMgeSk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0NCB4LCBzaG9ydDQgeSk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIHJoYWRkKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiByaGFkZCh1c2hvcnQ4IHgsIHVzaG9ydDggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiByaGFkZChzaG9ydDE2IHgsIHNob3J0MTYgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gcmhhZGQodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIHJoYWRkKGludCB4LCBpbnQgeSk7CnVpbnQgX19vdmxkIF9fY25mbiByaGFkZCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiByaGFkZChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDIgeCwgdWludDIgeSk7CmludDMgX19vdmxkIF9fY25mbiByaGFkZChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiByaGFkZChpbnQ0IHgsIGludDQgeSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiByaGFkZChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gcmhhZGQodWludDggeCwgdWludDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gcmhhZGQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIHJoYWRkKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiByaGFkZChsb25nIHgsIGxvbmcgeSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gcmhhZGQodWxvbmcgeCwgdWxvbmcgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nMiB4LCB1bG9uZzIgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzMgeCwgbG9uZzMgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzQgeCwgbG9uZzQgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nNCB4LCB1bG9uZzQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gcmhhZGQobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIHJoYWRkKHVsb25nOCB4LCB1bG9uZzggeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIHJoYWRkKGxvbmcxNiB4LCBsb25nMTYgeSk7CnVsb25nMTYgX19vdmxkIF9fY25mbiByaGFkZCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogUmV0dXJucyBtaW4obWF4KHgsIG1pbnZhbCksIG1heHZhbCkuCiAqIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBpZiBtaW52YWwgPiBtYXh2YWwuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhciB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhciBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyIHgsIHVjaGFyIG1pbnZhbCwgdWNoYXIgbWF4dmFsKTsKY2hhcjIgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyMiB4LCBjaGFyMiBtaW52YWwsIGNoYXIyIG1heHZhbCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMiB4LCB1Y2hhcjIgbWludmFsLCB1Y2hhcjIgbWF4dmFsKTsKY2hhcjMgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyMyB4LCBjaGFyMyBtaW52YWwsIGNoYXIzIG1heHZhbCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMyB4LCB1Y2hhcjMgbWludmFsLCB1Y2hhcjMgbWF4dmFsKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyNCB4LCBjaGFyNCBtaW52YWwsIGNoYXI0IG1heHZhbCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyNCB4LCB1Y2hhcjQgbWludmFsLCB1Y2hhcjQgbWF4dmFsKTsKY2hhcjggX19vdmxkIF9fY25mbiBjbGFtcChjaGFyOCB4LCBjaGFyOCBtaW52YWwsIGNoYXI4IG1heHZhbCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyOCB4LCB1Y2hhcjggbWludmFsLCB1Y2hhcjggbWF4dmFsKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhcjE2IHgsIGNoYXIxNiBtaW52YWwsIGNoYXIxNiBtYXh2YWwpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIxNiB4LCB1Y2hhcjE2IG1pbnZhbCwgdWNoYXIxNiBtYXh2YWwpOwpzaG9ydCBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0IHgsIHNob3J0IG1pbnZhbCwgc2hvcnQgbWF4dmFsKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0IHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDIgeCwgc2hvcnQyIG1pbnZhbCwgc2hvcnQyIG1heHZhbCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQyIHgsIHVzaG9ydDIgbWludmFsLCB1c2hvcnQyIG1heHZhbCk7CnNob3J0MyBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0MyB4LCBzaG9ydDMgbWludmFsLCBzaG9ydDMgbWF4dmFsKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGNsYW1wKHVzaG9ydDMgeCwgdXNob3J0MyBtaW52YWwsIHVzaG9ydDMgbWF4dmFsKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQ0IHgsIHNob3J0NCBtaW52YWwsIHNob3J0NCBtYXh2YWwpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0NCB4LCB1c2hvcnQ0IG1pbnZhbCwgdXNob3J0NCBtYXh2YWwpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDggeCwgc2hvcnQ4IG1pbnZhbCwgc2hvcnQ4IG1heHZhbCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQ4IHgsIHVzaG9ydDggbWludmFsLCB1c2hvcnQ4IG1heHZhbCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDE2IHgsIHNob3J0MTYgbWludmFsLCBzaG9ydDE2IG1heHZhbCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MTYgeCwgdXNob3J0MTYgbWludmFsLCB1c2hvcnQxNiBtYXh2YWwpOwppbnQgX19vdmxkIF9fY25mbiBjbGFtcChpbnQgeCwgaW50IG1pbnZhbCwgaW50IG1heHZhbCk7CnVpbnQgX19vdmxkIF9fY25mbiBjbGFtcCh1aW50IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDIgX19vdmxkIF9fY25mbiBjbGFtcChpbnQyIHgsIGludDIgbWludmFsLCBpbnQyIG1heHZhbCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDIgeCwgdWludDIgbWludmFsLCB1aW50MiBtYXh2YWwpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaW50MyB4LCBpbnQzIG1pbnZhbCwgaW50MyBtYXh2YWwpOwp1aW50MyBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQzIHgsIHVpbnQzIG1pbnZhbCwgdWludDMgbWF4dmFsKTsKaW50NCBfX292bGQgX19jbmZuIGNsYW1wKGludDQgeCwgaW50NCBtaW52YWwsIGludDQgbWF4dmFsKTsKdWludDQgX19vdmxkIF9fY25mbiBjbGFtcCh1aW50NCB4LCB1aW50NCBtaW52YWwsIHVpbnQ0IG1heHZhbCk7CmludDggX19vdmxkIF9fY25mbiBjbGFtcChpbnQ4IHgsIGludDggbWludmFsLCBpbnQ4IG1heHZhbCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDggeCwgdWludDggbWludmFsLCB1aW50OCBtYXh2YWwpOwppbnQxNiBfX292bGQgX19jbmZuIGNsYW1wKGludDE2IHgsIGludDE2IG1pbnZhbCwgaW50MTYgbWF4dmFsKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWludDE2IHgsIHVpbnQxNiBtaW52YWwsIHVpbnQxNiBtYXh2YWwpOwpsb25nIF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZyB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZyBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nIHgsIHVsb25nIG1pbnZhbCwgdWxvbmcgbWF4dmFsKTsKbG9uZzIgX19vdmxkIF9fY25mbiBjbGFtcChsb25nMiB4LCBsb25nMiBtaW52YWwsIGxvbmcyIG1heHZhbCk7CnVsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMiB4LCB1bG9uZzIgbWludmFsLCB1bG9uZzIgbWF4dmFsKTsKbG9uZzMgX19vdmxkIF9fY25mbiBjbGFtcChsb25nMyB4LCBsb25nMyBtaW52YWwsIGxvbmczIG1heHZhbCk7CnVsb25nMyBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMyB4LCB1bG9uZzMgbWludmFsLCB1bG9uZzMgbWF4dmFsKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcChsb25nNCB4LCBsb25nNCBtaW52YWwsIGxvbmc0IG1heHZhbCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nNCB4LCB1bG9uZzQgbWludmFsLCB1bG9uZzQgbWF4dmFsKTsKbG9uZzggX19vdmxkIF9fY25mbiBjbGFtcChsb25nOCB4LCBsb25nOCBtaW52YWwsIGxvbmc4IG1heHZhbCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nOCB4LCB1bG9uZzggbWludmFsLCB1bG9uZzggbWF4dmFsKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZzE2IHgsIGxvbmcxNiBtaW52YWwsIGxvbmcxNiBtYXh2YWwpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmcxNiB4LCB1bG9uZzE2IG1pbnZhbCwgdWxvbmcxNiBtYXh2YWwpOwpjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKGNoYXIyIHgsIGNoYXIgbWludmFsLCBjaGFyIG1heHZhbCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyMiB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoY2hhcjMgeCwgY2hhciBtaW52YWwsIGNoYXIgbWF4dmFsKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIzIHgsIHVjaGFyIG1pbnZhbCwgdWNoYXIgbWF4dmFsKTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcChjaGFyNCB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBjbGFtcCh1Y2hhcjQgeCwgdWNoYXIgbWludmFsLCB1Y2hhciBtYXh2YWwpOwpjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKGNoYXI4IHgsIGNoYXIgbWludmFsLCBjaGFyIG1heHZhbCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGNsYW1wKHVjaGFyOCB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGNsYW1wKGNoYXIxNiB4LCBjaGFyIG1pbnZhbCwgY2hhciBtYXh2YWwpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWNoYXIxNiB4LCB1Y2hhciBtaW52YWwsIHVjaGFyIG1heHZhbCk7CnNob3J0MiBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0MiB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQyIHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBjbGFtcChzaG9ydDMgeCwgc2hvcnQgbWludmFsLCBzaG9ydCBtYXh2YWwpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MyB4LCB1c2hvcnQgbWludmFsLCB1c2hvcnQgbWF4dmFsKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQ0IHgsIHNob3J0IG1pbnZhbCwgc2hvcnQgbWF4dmFsKTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNsYW1wKHVzaG9ydDQgeCwgdXNob3J0IG1pbnZhbCwgdXNob3J0IG1heHZhbCk7CnNob3J0OCBfX292bGQgX19jbmZuIGNsYW1wKHNob3J0OCB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjbGFtcCh1c2hvcnQ4IHgsIHVzaG9ydCBtaW52YWwsIHVzaG9ydCBtYXh2YWwpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoc2hvcnQxNiB4LCBzaG9ydCBtaW52YWwsIHNob3J0IG1heHZhbCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodXNob3J0MTYgeCwgdXNob3J0IG1pbnZhbCwgdXNob3J0IG1heHZhbCk7CmludDIgX19vdmxkIF9fY25mbiBjbGFtcChpbnQyIHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50MiBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQyIHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDMgX19vdmxkIF9fY25mbiBjbGFtcChpbnQzIHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50MyBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQzIHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDQgX19vdmxkIF9fY25mbiBjbGFtcChpbnQ0IHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50NCBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQ0IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDggX19vdmxkIF9fY25mbiBjbGFtcChpbnQ4IHgsIGludCBtaW52YWwsIGludCBtYXh2YWwpOwp1aW50OCBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQ4IHgsIHVpbnQgbWludmFsLCB1aW50IG1heHZhbCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaW50MTYgeCwgaW50IG1pbnZhbCwgaW50IG1heHZhbCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNsYW1wKHVpbnQxNiB4LCB1aW50IG1pbnZhbCwgdWludCBtYXh2YWwpOwpsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKGxvbmcyIHgsIGxvbmcgbWludmFsLCBsb25nIG1heHZhbCk7CnVsb25nMiBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nMiB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY2xhbXAobG9uZzMgeCwgbG9uZyBtaW52YWwsIGxvbmcgbWF4dmFsKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmczIHgsIHVsb25nIG1pbnZhbCwgdWxvbmcgbWF4dmFsKTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcChsb25nNCB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBjbGFtcCh1bG9uZzQgeCwgdWxvbmcgbWludmFsLCB1bG9uZyBtYXh2YWwpOwpsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKGxvbmc4IHgsIGxvbmcgbWludmFsLCBsb25nIG1heHZhbCk7CnVsb25nOCBfX292bGQgX19jbmZuIGNsYW1wKHVsb25nOCB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGNsYW1wKGxvbmcxNiB4LCBsb25nIG1pbnZhbCwgbG9uZyBtYXh2YWwpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAodWxvbmcxNiB4LCB1bG9uZyBtaW52YWwsIHVsb25nIG1heHZhbCk7CgovKioKICogUmV0dXJucyB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgMC1iaXRzIGluIHgsIHN0YXJ0aW5nCiAqIGF0IHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBwb3NpdGlvbi4KICovCmNoYXIgX19vdmxkIF9fY25mbiBjbHooY2hhciB4KTsKdWNoYXIgX19vdmxkIF9fY25mbiBjbHoodWNoYXIgeCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gY2x6KGNoYXIyIHgpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBjbHoodWNoYXIyIHgpOwpjaGFyMyBfX292bGQgX19jbmZuIGNseihjaGFyMyB4KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gY2x6KHVjaGFyMyB4KTsKY2hhcjQgX19vdmxkIF9fY25mbiBjbHooY2hhcjQgeCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGNseih1Y2hhcjQgeCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gY2x6KGNoYXI4IHgpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBjbHoodWNoYXI4IHgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBjbHooY2hhcjE2IHgpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gY2x6KHVjaGFyMTYgeCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gY2x6KHNob3J0IHgpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBjbHoodXNob3J0IHgpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBjbHooc2hvcnQyIHgpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gY2x6KHVzaG9ydDIgeCk7CnNob3J0MyBfX292bGQgX19jbmZuIGNseihzaG9ydDMgeCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBjbHoodXNob3J0MyB4KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY2x6KHNob3J0NCB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGNseih1c2hvcnQ0IHgpOwpzaG9ydDggX19vdmxkIF9fY25mbiBjbHooc2hvcnQ4IHgpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gY2x6KHVzaG9ydDggeCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBjbHooc2hvcnQxNiB4KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBjbHoodXNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGNseihpbnQgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBjbHoodWludCB4KTsKaW50MiBfX292bGQgX19jbmZuIGNseihpbnQyIHgpOwp1aW50MiBfX292bGQgX19jbmZuIGNseih1aW50MiB4KTsKaW50MyBfX292bGQgX19jbmZuIGNseihpbnQzIHgpOwp1aW50MyBfX292bGQgX19jbmZuIGNseih1aW50MyB4KTsKaW50NCBfX292bGQgX19jbmZuIGNseihpbnQ0IHgpOwp1aW50NCBfX292bGQgX19jbmZuIGNseih1aW50NCB4KTsKaW50OCBfX292bGQgX19jbmZuIGNseihpbnQ4IHgpOwp1aW50OCBfX292bGQgX19jbmZuIGNseih1aW50OCB4KTsKaW50MTYgX19vdmxkIF9fY25mbiBjbHooaW50MTYgeCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGNseih1aW50MTYgeCk7CmxvbmcgX19vdmxkIF9fY25mbiBjbHoobG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY25mbiBjbHoodWxvbmcgeCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gY2x6KGxvbmcyIHgpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBjbHoodWxvbmcyIHgpOwpsb25nMyBfX292bGQgX19jbmZuIGNseihsb25nMyB4KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gY2x6KHVsb25nMyB4KTsKbG9uZzQgX19vdmxkIF9fY25mbiBjbHoobG9uZzQgeCk7CnVsb25nNCBfX292bGQgX19jbmZuIGNseih1bG9uZzQgeCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gY2x6KGxvbmc4IHgpOwp1bG9uZzggX19vdmxkIF9fY25mbiBjbHoodWxvbmc4IHgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBjbHoobG9uZzE2IHgpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gY2x6KHVsb25nMTYgeCk7CgovKioKICogUmV0dXJucyB0aGUgY291bnQgb2YgdHJhaWxpbmcgMC1iaXRzIGluIHguIElmIHggaXMgMCwKICogcmV0dXJucyB0aGUgc2l6ZSBpbiBiaXRzIG9mIHRoZSB0eXBlIG9mIHggb3IKICogY29tcG9uZW50IHR5cGUgb2YgeCwgaWYgeCBpcyBhIHZlY3Rvci4KICovCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKY2hhciBfX292bGQgX19jbmZuIGN0eihjaGFyIHgpOwp1Y2hhciBfX292bGQgX19jbmZuIGN0eih1Y2hhciB4KTsKY2hhcjIgX19vdmxkIF9fY25mbiBjdHooY2hhcjIgeCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGN0eih1Y2hhcjIgeCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gY3R6KGNoYXIzIHgpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBjdHoodWNoYXIzIHgpOwpjaGFyNCBfX292bGQgX19jbmZuIGN0eihjaGFyNCB4KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gY3R6KHVjaGFyNCB4KTsKY2hhcjggX19vdmxkIF9fY25mbiBjdHooY2hhcjggeCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGN0eih1Y2hhcjggeCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGN0eihjaGFyMTYgeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBjdHoodWNoYXIxNiB4KTsKc2hvcnQgX19vdmxkIF9fY25mbiBjdHooc2hvcnQgeCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGN0eih1c2hvcnQgeCk7CnNob3J0MiBfX292bGQgX19jbmZuIGN0eihzaG9ydDIgeCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBjdHoodXNob3J0MiB4KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gY3R6KHNob3J0MyB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGN0eih1c2hvcnQzIHgpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBjdHooc2hvcnQ0IHgpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KHVzaG9ydDQgeCk7CnNob3J0OCBfX292bGQgX19jbmZuIGN0eihzaG9ydDggeCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBjdHoodXNob3J0OCB4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGN0eihzaG9ydDE2IHgpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGN0eih1c2hvcnQxNiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gY3R6KGludCB4KTsKdWludCBfX292bGQgX19jbmZuIGN0eih1aW50IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gY3R6KGludDIgeCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQyIHgpOwppbnQzIF9fb3ZsZCBfX2NuZm4gY3R6KGludDMgeCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQzIHgpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KGludDQgeCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gY3R6KGludDggeCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQ4IHgpOwppbnQxNiBfX292bGQgX19jbmZuIGN0eihpbnQxNiB4KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gY3R6KHVpbnQxNiB4KTsKbG9uZyBfX292bGQgX19jbmZuIGN0eihsb25nIHgpOwp1bG9uZyBfX292bGQgX19jbmZuIGN0eih1bG9uZyB4KTsKbG9uZzIgX19vdmxkIF9fY25mbiBjdHoobG9uZzIgeCk7CnVsb25nMiBfX292bGQgX19jbmZuIGN0eih1bG9uZzIgeCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gY3R6KGxvbmczIHgpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBjdHoodWxvbmczIHgpOwpsb25nNCBfX292bGQgX19jbmZuIGN0eihsb25nNCB4KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gY3R6KHVsb25nNCB4KTsKbG9uZzggX19vdmxkIF9fY25mbiBjdHoobG9uZzggeCk7CnVsb25nOCBfX292bGQgX19jbmZuIGN0eih1bG9uZzggeCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGN0eihsb25nMTYgeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBjdHoodWxvbmcxNiB4KTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJucyBtdWxfaGkoYSwgYikgKyBjLgogKi8KY2hhciBfX292bGQgX19jbmZuIG1hZF9oaShjaGFyIGEsIGNoYXIgYiwgY2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIgYSwgdWNoYXIgYiwgdWNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXIyIGEsIGNoYXIyIGIsIGNoYXIyIGMpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIyIGEsIHVjaGFyMiBiLCB1Y2hhcjIgYyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXIzIGEsIGNoYXIzIGIsIGNoYXIzIGMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXIzIGEsIHVjaGFyMyBiLCB1Y2hhcjMgYyk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXI0IGEsIGNoYXI0IGIsIGNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXI0IGEsIHVjaGFyNCBiLCB1Y2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGNoYXI4IGEsIGNoYXI4IGIsIGNoYXI4IGMpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBtYWRfaGkodWNoYXI4IGEsIHVjaGFyOCBiLCB1Y2hhcjggYyk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9oaShjaGFyMTYgYSwgY2hhcjE2IGIsIGNoYXIxNiBjKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1Y2hhcjE2IGEsIHVjaGFyMTYgYiwgdWNoYXIxNiBjKTsKc2hvcnQgX19vdmxkIF9fY25mbiBtYWRfaGkoc2hvcnQgYSwgc2hvcnQgYiwgc2hvcnQgYyk7CnVzaG9ydCBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQgYSwgdXNob3J0IGIsIHVzaG9ydCBjKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0MiBhLCBzaG9ydDIgYiwgc2hvcnQyIGMpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVzaG9ydDIgYSwgdXNob3J0MiBiLCB1c2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfaGkoc2hvcnQzIGEsIHNob3J0MyBiLCBzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfaGkodXNob3J0MyBhLCB1c2hvcnQzIGIsIHVzaG9ydDMgYyk7CnNob3J0NCBfX292bGQgX19jbmZuIG1hZF9oaShzaG9ydDQgYSwgc2hvcnQ0IGIsIHNob3J0NCBjKTsKdXNob3J0NCBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQ0IGEsIHVzaG9ydDQgYiwgdXNob3J0NCBjKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0OCBhLCBzaG9ydDggYiwgc2hvcnQ4IGMpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVzaG9ydDggYSwgdXNob3J0OCBiLCB1c2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHNob3J0MTYgYSwgc2hvcnQxNiBiLCBzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCB1c2hvcnQxNiBjKTsKaW50IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwppbnQyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludDIgYSwgaW50MiBiLCBpbnQyIGMpOwp1aW50MiBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIG1hZF9oaShpbnQzIGEsIGludDMgYiwgaW50MyBjKTsKdWludDMgX19vdmxkIF9fY25mbiBtYWRfaGkodWludDMgYSwgdWludDMgYiwgdWludDMgYyk7CmludDQgX19vdmxkIF9fY25mbiBtYWRfaGkoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGludDggYSwgaW50OCBiLCBpbnQ4IGMpOwp1aW50OCBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBtYWRfaGkoaW50MTYgYSwgaW50MTYgYiwgaW50MTYgYyk7CnVpbnQxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKbG9uZyBfX292bGQgX19jbmZuIG1hZF9oaShsb25nIGEsIGxvbmcgYiwgbG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmcgYSwgdWxvbmcgYiwgdWxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmcyIGEsIGxvbmcyIGIsIGxvbmcyIGMpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmcyIGEsIHVsb25nMiBiLCB1bG9uZzIgYyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmczIGEsIGxvbmczIGIsIGxvbmczIGMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmczIGEsIHVsb25nMyBiLCB1bG9uZzMgYyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmc0IGEsIGxvbmc0IGIsIGxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmc0IGEsIHVsb25nNCBiLCB1bG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWFkX2hpKGxvbmc4IGEsIGxvbmc4IGIsIGxvbmc4IGMpOwp1bG9uZzggX19vdmxkIF9fY25mbiBtYWRfaGkodWxvbmc4IGEsIHVsb25nOCBiLCB1bG9uZzggYyk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9oaShsb25nMTYgYSwgbG9uZzE2IGIsIGxvbmcxNiBjKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9oaSh1bG9uZzE2IGEsIHVsb25nMTYgYiwgdWxvbmcxNiBjKTsKCi8qKgogKiBSZXR1cm5zIGEgKiBiICsgYyBhbmQgc2F0dXJhdGVzIHRoZSByZXN1bHQuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChjaGFyIGEsIGNoYXIgYiwgY2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyIGEsIHVjaGFyIGIsIHVjaGFyIGMpOwpjaGFyMiBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjIgYSwgY2hhcjIgYiwgY2hhcjIgYyk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1hZF9zYXQodWNoYXIyIGEsIHVjaGFyMiBiLCB1Y2hhcjIgYyk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChjaGFyMyBhLCBjaGFyMyBiLCBjaGFyMyBjKTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGNoYXI0IGEsIGNoYXI0IGIsIGNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgdWNoYXI0IGMpOwpjaGFyOCBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjggYSwgY2hhcjggYiwgY2hhcjggYyk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1hZF9zYXQodWNoYXI4IGEsIHVjaGFyOCBiLCB1Y2hhcjggYyk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1hZF9zYXQoY2hhcjE2IGEsIGNoYXIxNiBiLCBjaGFyMTYgYyk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwpzaG9ydCBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQgYSwgc2hvcnQgYiwgc2hvcnQgYyk7CnVzaG9ydCBfX292bGQgX19jbmZuIG1hZF9zYXQodXNob3J0IGEsIHVzaG9ydCBiLCB1c2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQyIGEsIHNob3J0MiBiLCBzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDIgYSwgdXNob3J0MiBiLCB1c2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYWRfc2F0KHNob3J0MyBhLCBzaG9ydDMgYiwgc2hvcnQzIGMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1c2hvcnQzIGEsIHVzaG9ydDMgYiwgdXNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChzaG9ydDQgYSwgc2hvcnQ0IGIsIHNob3J0NCBjKTsKdXNob3J0NCBfX292bGQgX19jbmZuIG1hZF9zYXQodXNob3J0NCBhLCB1c2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIG1hZF9zYXQoc2hvcnQ4IGEsIHNob3J0OCBiLCBzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDggYSwgdXNob3J0OCBiLCB1c2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChzaG9ydDE2IGEsIHNob3J0MTYgYiwgc2hvcnQxNiBjKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVzaG9ydDE2IGEsIHVzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwppbnQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50IGEsIHVpbnQgYiwgdWludCBjKTsKaW50MiBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50MyBhLCBpbnQzIGIsIGludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKaW50NCBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50NCBhLCB1aW50NCBiLCB1aW50NCBjKTsKaW50OCBfX292bGQgX19jbmZuIG1hZF9zYXQoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KGludDE2IGEsIGludDE2IGIsIGludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwpsb25nIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChsb25nIGEsIGxvbmcgYiwgbG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nIGEsIHVsb25nIGIsIHVsb25nIGMpOwpsb25nMiBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzIgYSwgbG9uZzIgYiwgbG9uZzIgYyk7CnVsb25nMiBfX292bGQgX19jbmZuIG1hZF9zYXQodWxvbmcyIGEsIHVsb25nMiBiLCB1bG9uZzIgYyk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdChsb25nMyBhLCBsb25nMyBiLCBsb25nMyBjKTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWFkX3NhdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBtYWRfc2F0KGxvbmc0IGEsIGxvbmc0IGIsIGxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nNCBhLCB1bG9uZzQgYiwgdWxvbmc0IGMpOwpsb25nOCBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzggYSwgbG9uZzggYiwgbG9uZzggYyk7CnVsb25nOCBfX292bGQgX19jbmZuIG1hZF9zYXQodWxvbmc4IGEsIHVsb25nOCBiLCB1bG9uZzggYyk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1hZF9zYXQobG9uZzE2IGEsIGxvbmcxNiBiLCBsb25nMTYgYyk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBtYWRfc2F0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwoKLyoqCiAqIFJldHVybnMgeSBpZiB4IDwgeSwgb3RoZXJ3aXNlIGl0IHJldHVybnMgeC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtYXgoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG1heCh1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtYXgoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG1heChjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWF4KHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtYXgodWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtYXgoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtYXgoY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtYXgodXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtYXgodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG1heCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG1heChzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtYXgodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtYXgodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG1heChpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1heChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbWF4KGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtYXgodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtYXgoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG1heCh1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1heChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG1heChpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtYXgobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG1heCh1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtYXgobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1heCh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG1heChsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWF4KHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtYXgodWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtYXgobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1heCh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtYXgobG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1heCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXIyIHgsIGNoYXIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjIgeCwgdWNoYXIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXIzIHgsIGNoYXIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIG1heCh1Y2hhcjMgeCwgdWNoYXIgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI0IHgsIGNoYXIgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjQgeCwgdWNoYXIgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWF4KGNoYXI4IHgsIGNoYXIgeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1heCh1Y2hhcjggeCwgdWNoYXIgeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1heChjaGFyMTYgeCwgY2hhciB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1heCh1Y2hhcjE2IHgsIHVjaGFyIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQyIHgsIHNob3J0IHkpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDIgeCwgdXNob3J0IHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQzIHgsIHNob3J0IHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDMgeCwgdXNob3J0IHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBtYXgoc2hvcnQ0IHgsIHNob3J0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDQgeCwgdXNob3J0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBtYXgoc2hvcnQ4IHgsIHNob3J0IHkpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDggeCwgdXNob3J0IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHNob3J0MTYgeCwgc2hvcnQgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWF4KHVzaG9ydDE2IHgsIHVzaG9ydCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1heChpbnQyIHgsIGludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBtYXgodWludDIgeCwgdWludCB5KTsKaW50MyBfX292bGQgX19jbmZuIG1heChpbnQzIHgsIGludCB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtYXgodWludDMgeCwgdWludCB5KTsKaW50NCBfX292bGQgX19jbmZuIG1heChpbnQ0IHgsIGludCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBtYXgodWludDQgeCwgdWludCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1heChpbnQ4IHgsIGludCB5KTsKdWludDggX19vdmxkIF9fY25mbiBtYXgodWludDggeCwgdWludCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBtYXgoaW50MTYgeCwgaW50IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtYXgodWludDE2IHgsIHVpbnQgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmcyIHgsIGxvbmcgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1heCh1bG9uZzIgeCwgdWxvbmcgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmczIHgsIGxvbmcgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIG1heCh1bG9uZzMgeCwgdWxvbmcgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc0IHgsIGxvbmcgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIG1heCh1bG9uZzQgeCwgdWxvbmcgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWF4KGxvbmc4IHgsIGxvbmcgeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1heCh1bG9uZzggeCwgdWxvbmcgeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1heChsb25nMTYgeCwgbG9uZyB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1heCh1bG9uZzE2IHgsIHVsb25nIHkpOwoKLyoqCiAqIFJldHVybnMgeSBpZiB5IDwgeCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgeC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtaW4oY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG1pbih1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtaW4oY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG1pbihjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbWluKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtaW4odWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtaW4oY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtaW4oY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtaW4odXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtaW4odXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG1pbih1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG1pbihzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtaW4odXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtaW4odXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG1pbihpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1pbihpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbWluKGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtaW4odWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtaW4oaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG1pbih1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1pbihpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG1pbihpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbWluKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtaW4obG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG1pbih1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtaW4obG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1pbih1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG1pbihsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbWluKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtaW4odWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtaW4obG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1pbih1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtaW4obG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1pbih1bG9uZzE2IHgsIHVsb25nMTYgeSk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gbWluKGNoYXIyIHgsIGNoYXIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjIgeCwgdWNoYXIgeSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gbWluKGNoYXIzIHgsIGNoYXIgeSk7CnVjaGFyMyBfX292bGQgX19jbmZuIG1pbih1Y2hhcjMgeCwgdWNoYXIgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI0IHgsIGNoYXIgeSk7CnVjaGFyNCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjQgeCwgdWNoYXIgeSk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gbWluKGNoYXI4IHgsIGNoYXIgeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG1pbih1Y2hhcjggeCwgdWNoYXIgeSk7CmNoYXIxNiBfX292bGQgX19jbmZuIG1pbihjaGFyMTYgeCwgY2hhciB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG1pbih1Y2hhcjE2IHgsIHVjaGFyIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQyIHgsIHNob3J0IHkpOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDIgeCwgdXNob3J0IHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQzIHgsIHNob3J0IHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDMgeCwgdXNob3J0IHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBtaW4oc2hvcnQ0IHgsIHNob3J0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDQgeCwgdXNob3J0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBtaW4oc2hvcnQ4IHgsIHNob3J0IHkpOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDggeCwgdXNob3J0IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHNob3J0MTYgeCwgc2hvcnQgeSk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbWluKHVzaG9ydDE2IHgsIHVzaG9ydCB5KTsKaW50MiBfX292bGQgX19jbmZuIG1pbihpbnQyIHgsIGludCB5KTsKdWludDIgX19vdmxkIF9fY25mbiBtaW4odWludDIgeCwgdWludCB5KTsKaW50MyBfX292bGQgX19jbmZuIG1pbihpbnQzIHgsIGludCB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtaW4odWludDMgeCwgdWludCB5KTsKaW50NCBfX292bGQgX19jbmZuIG1pbihpbnQ0IHgsIGludCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBtaW4odWludDQgeCwgdWludCB5KTsKaW50OCBfX292bGQgX19jbmZuIG1pbihpbnQ4IHgsIGludCB5KTsKdWludDggX19vdmxkIF9fY25mbiBtaW4odWludDggeCwgdWludCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBtaW4oaW50MTYgeCwgaW50IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBtaW4odWludDE2IHgsIHVpbnQgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gbWluKGxvbmcyIHgsIGxvbmcgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG1pbih1bG9uZzIgeCwgdWxvbmcgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gbWluKGxvbmczIHgsIGxvbmcgeSk7CnVsb25nMyBfX292bGQgX19jbmZuIG1pbih1bG9uZzMgeCwgdWxvbmcgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc0IHgsIGxvbmcgeSk7CnVsb25nNCBfX292bGQgX19jbmZuIG1pbih1bG9uZzQgeCwgdWxvbmcgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gbWluKGxvbmc4IHgsIGxvbmcgeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG1pbih1bG9uZzggeCwgdWxvbmcgeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIG1pbihsb25nMTYgeCwgbG9uZyB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG1pbih1bG9uZzE2IHgsIHVsb25nIHkpOwoKLyoqCiAqIENvbXB1dGVzIHggKiB5IGFuZCByZXR1cm5zIHRoZSBoaWdoIGhhbGYgb2YgdGhlCiAqIHByb2R1Y3Qgb2YgeCBhbmQgeS4KICovCmNoYXIgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhciB4LCBjaGFyIHkpOwp1Y2hhciBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhciB4LCB1Y2hhciB5KTsKY2hhcjIgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjIgeCwgdWNoYXIyIHkpOwpjaGFyMyBfX292bGQgX19jbmZuIG11bF9oaShjaGFyMyB4LCBjaGFyMyB5KTsKdWNoYXIzIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGNoYXI0IHgsIGNoYXI0IHkpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBtdWxfaGkodWNoYXI0IHgsIHVjaGFyNCB5KTsKY2hhcjggX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjggeCwgdWNoYXI4IHkpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBtdWxfaGkoY2hhcjE2IHgsIGNoYXIxNiB5KTsKdWNoYXIxNiBfX292bGQgX19jbmZuIG11bF9oaSh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0IHgsIHNob3J0IHkpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0IHgsIHVzaG9ydCB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0MiB4LCB1c2hvcnQyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBtdWxfaGkoc2hvcnQzIHgsIHNob3J0MyB5KTsKdXNob3J0MyBfX292bGQgX19jbmZuIG11bF9oaSh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIG11bF9oaShzaG9ydDQgeCwgc2hvcnQ0IHkpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVzaG9ydDQgeCwgdXNob3J0NCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0OCB4LCB1c2hvcnQ4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHNob3J0MTYgeCwgc2hvcnQxNiB5KTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBtdWxfaGkodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIG11bF9oaShpbnQgeCwgaW50IHkpOwp1aW50IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQgeCwgdWludCB5KTsKaW50MiBfX292bGQgX19jbmZuIG11bF9oaShpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQyIHgsIHVpbnQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGludDMgeCwgaW50MyB5KTsKdWludDMgX19vdmxkIF9fY25mbiBtdWxfaGkodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtdWxfaGkoaW50NCB4LCBpbnQ0IHkpOwp1aW50NCBfX292bGQgX19jbmZuIG11bF9oaSh1aW50NCB4LCB1aW50NCB5KTsKaW50OCBfX292bGQgX19jbmZuIG11bF9oaShpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQ4IHgsIHVpbnQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIG11bF9oaShpbnQxNiB4LCBpbnQxNiB5KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZyB4LCBsb25nIHkpOwp1bG9uZyBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZyB4LCB1bG9uZyB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzIgeCwgdWxvbmcyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIG11bF9oaShsb25nMyB4LCBsb25nMyB5KTsKdWxvbmczIF9fb3ZsZCBfX2NuZm4gbXVsX2hpKHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gbXVsX2hpKGxvbmc0IHgsIGxvbmc0IHkpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBtdWxfaGkodWxvbmc0IHgsIHVsb25nNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzggeCwgdWxvbmc4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBtdWxfaGkobG9uZzE2IHgsIGxvbmcxNiB5KTsKdWxvbmcxNiBfX292bGQgX19jbmZuIG11bF9oaSh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogRm9yIGVhY2ggZWxlbWVudCBpbiB2LCB0aGUgYml0cyBhcmUgc2hpZnRlZCBsZWZ0IGJ5CiAqIHRoZSBudW1iZXIgb2YgYml0cyBnaXZlbiBieSB0aGUgY29ycmVzcG9uZGluZwogKiBlbGVtZW50IGluIGkgKHN1YmplY3QgdG8gdXN1YWwgc2hpZnQgbW9kdWxvIHJ1bGVzCiAqIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDYuMykuIEJpdHMgc2hpZnRlZCBvZmYgdGhlIGxlZnQKICogc2lkZSBvZiB0aGUgZWxlbWVudCBhcmUgc2hpZnRlZCBiYWNrIGluIGZyb20gdGhlCiAqIHJpZ2h0LgogKi8KY2hhciBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyIHYsIGNoYXIgaSk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyIHYsIHVjaGFyIGkpOwpjaGFyMiBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyMiB2LCBjaGFyMiBpKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyMiB2LCB1Y2hhcjIgaSk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGNoYXIzIHYsIGNoYXIzIGkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiByb3RhdGUodWNoYXIzIHYsIHVjaGFyMyBpKTsKY2hhcjQgX19vdmxkIF9fY25mbiByb3RhdGUoY2hhcjQgdiwgY2hhcjQgaSk7CnVjaGFyNCBfX292bGQgX19jbmZuIHJvdGF0ZSh1Y2hhcjQgdiwgdWNoYXI0IGkpOwpjaGFyOCBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyOCB2LCBjaGFyOCBpKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyOCB2LCB1Y2hhcjggaSk7CmNoYXIxNiBfX292bGQgX19jbmZuIHJvdGF0ZShjaGFyMTYgdiwgY2hhcjE2IGkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVjaGFyMTYgdiwgdWNoYXIxNiBpKTsKc2hvcnQgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQgdiwgc2hvcnQgaSk7CnVzaG9ydCBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQgdiwgdXNob3J0IGkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQyIHYsIHNob3J0MiBpKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQyIHYsIHVzaG9ydDIgaSk7CnNob3J0MyBfX292bGQgX19jbmZuIHJvdGF0ZShzaG9ydDMgdiwgc2hvcnQzIGkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVzaG9ydDMgdiwgdXNob3J0MyBpKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHNob3J0NCB2LCBzaG9ydDQgaSk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiByb3RhdGUodXNob3J0NCB2LCB1c2hvcnQ0IGkpOwpzaG9ydDggX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQ4IHYsIHNob3J0OCBpKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQ4IHYsIHVzaG9ydDggaSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiByb3RhdGUoc2hvcnQxNiB2LCBzaG9ydDE2IGkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHJvdGF0ZSh1c2hvcnQxNiB2LCB1c2hvcnQxNiBpKTsKaW50IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludCB2LCBpbnQgaSk7CnVpbnQgX19vdmxkIF9fY25mbiByb3RhdGUodWludCB2LCB1aW50IGkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDIgdiwgaW50MiBpKTsKdWludDIgX19vdmxkIF9fY25mbiByb3RhdGUodWludDIgdiwgdWludDIgaSk7CmludDMgX19vdmxkIF9fY25mbiByb3RhdGUoaW50MyB2LCBpbnQzIGkpOwp1aW50MyBfX292bGQgX19jbmZuIHJvdGF0ZSh1aW50MyB2LCB1aW50MyBpKTsKaW50NCBfX292bGQgX19jbmZuIHJvdGF0ZShpbnQ0IHYsIGludDQgaSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVpbnQ0IHYsIHVpbnQ0IGkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDggdiwgaW50OCBpKTsKdWludDggX19vdmxkIF9fY25mbiByb3RhdGUodWludDggdiwgdWludDggaSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKGludDE2IHYsIGludDE2IGkpOwp1aW50MTYgX19vdmxkIF9fY25mbiByb3RhdGUodWludDE2IHYsIHVpbnQxNiBpKTsKbG9uZyBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nIHYsIGxvbmcgaSk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nIHYsIHVsb25nIGkpOwpsb25nMiBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nMiB2LCBsb25nMiBpKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nMiB2LCB1bG9uZzIgaSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gcm90YXRlKGxvbmczIHYsIGxvbmczIGkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiByb3RhdGUodWxvbmczIHYsIHVsb25nMyBpKTsKbG9uZzQgX19vdmxkIF9fY25mbiByb3RhdGUobG9uZzQgdiwgbG9uZzQgaSk7CnVsb25nNCBfX292bGQgX19jbmZuIHJvdGF0ZSh1bG9uZzQgdiwgdWxvbmc0IGkpOwpsb25nOCBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nOCB2LCBsb25nOCBpKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nOCB2LCB1bG9uZzggaSk7CmxvbmcxNiBfX292bGQgX19jbmZuIHJvdGF0ZShsb25nMTYgdiwgbG9uZzE2IGkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gcm90YXRlKHVsb25nMTYgdiwgdWxvbmcxNiBpKTsKCi8qKgogKiBSZXR1cm5zIHggLSB5IGFuZCBzYXR1cmF0ZXMgdGhlIHJlc3VsdC4KICovCmNoYXIgX19vdmxkIF9fY25mbiBzdWJfc2F0KGNoYXIgeCwgY2hhciB5KTsKdWNoYXIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVjaGFyIHgsIHVjaGFyIHkpOwpjaGFyMiBfX292bGQgX19jbmZuIHN1Yl9zYXQoY2hhcjIgeCwgY2hhcjIgeSk7CnVjaGFyMiBfX292bGQgX19jbmZuIHN1Yl9zYXQodWNoYXIyIHgsIHVjaGFyMiB5KTsKY2hhcjMgX19vdmxkIF9fY25mbiBzdWJfc2F0KGNoYXIzIHgsIGNoYXIzIHkpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVjaGFyMyB4LCB1Y2hhcjMgeSk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChjaGFyNCB4LCBjaGFyNCB5KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1Y2hhcjQgeCwgdWNoYXI0IHkpOwpjaGFyOCBfX292bGQgX19jbmZuIHN1Yl9zYXQoY2hhcjggeCwgY2hhcjggeSk7CnVjaGFyOCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWNoYXI4IHgsIHVjaGFyOCB5KTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChjaGFyMTYgeCwgY2hhcjE2IHkpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1Y2hhcjE2IHgsIHVjaGFyMTYgeSk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChzaG9ydCB4LCBzaG9ydCB5KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1c2hvcnQgeCwgdXNob3J0IHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHNob3J0MiB4LCBzaG9ydDIgeSk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVzaG9ydDIgeCwgdXNob3J0MiB5KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChzaG9ydDMgeCwgc2hvcnQzIHkpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1c2hvcnQzIHgsIHVzaG9ydDMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIHN1Yl9zYXQoc2hvcnQ0IHgsIHNob3J0NCB5KTsKdXNob3J0NCBfX292bGQgX19jbmZuIHN1Yl9zYXQodXNob3J0NCB4LCB1c2hvcnQ0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBzdWJfc2F0KHNob3J0OCB4LCBzaG9ydDggeSk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzdWJfc2F0KHVzaG9ydDggeCwgdXNob3J0OCB5KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHN1Yl9zYXQoc2hvcnQxNiB4LCBzaG9ydDE2IHkpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHN1Yl9zYXQodXNob3J0MTYgeCwgdXNob3J0MTYgeSk7CmludCBfX292bGQgX19jbmZuIHN1Yl9zYXQoaW50IHgsIGludCB5KTsKdWludCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWludCB4LCB1aW50IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1aW50MiB4LCB1aW50MiB5KTsKaW50MyBfX292bGQgX19jbmZuIHN1Yl9zYXQoaW50MyB4LCBpbnQzIHkpOwp1aW50MyBfX292bGQgX19jbmZuIHN1Yl9zYXQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBzdWJfc2F0KGludDQgeCwgaW50NCB5KTsKdWludDQgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVpbnQ0IHgsIHVpbnQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1aW50OCB4LCB1aW50OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBzdWJfc2F0KGludDE2IHgsIGludDE2IHkpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVpbnQxNiB4LCB1aW50MTYgeSk7CmxvbmcgX19vdmxkIF9fY25mbiBzdWJfc2F0KGxvbmcgeCwgbG9uZyB5KTsKdWxvbmcgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVsb25nIHgsIHVsb25nIHkpOwpsb25nMiBfX292bGQgX19jbmZuIHN1Yl9zYXQobG9uZzIgeCwgbG9uZzIgeSk7CnVsb25nMiBfX292bGQgX19jbmZuIHN1Yl9zYXQodWxvbmcyIHgsIHVsb25nMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBzdWJfc2F0KGxvbmczIHgsIGxvbmczIHkpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBzdWJfc2F0KHVsb25nMyB4LCB1bG9uZzMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChsb25nNCB4LCBsb25nNCB5KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1bG9uZzQgeCwgdWxvbmc0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIHN1Yl9zYXQobG9uZzggeCwgbG9uZzggeSk7CnVsb25nOCBfX292bGQgX19jbmZuIHN1Yl9zYXQodWxvbmc4IHgsIHVsb25nOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdChsb25nMTYgeCwgbG9uZzE2IHkpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc3ViX3NhdCh1bG9uZzE2IHgsIHVsb25nMTYgeSk7CgovKioKICogcmVzdWx0W2ldID0gKChzaG9ydCloaVtpXSA8PCA4KSB8IGxvW2ldCiAqIHJlc3VsdFtpXSA9ICgodXNob3J0KWhpW2ldIDw8IDgpIHwgbG9baV0KICovCnNob3J0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoY2hhciBoaSwgdWNoYXIgbG8pOwp1c2hvcnQgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhciBoaSwgdWNoYXIgbG8pOwpzaG9ydDIgX19vdmxkIF9fY25mbiB1cHNhbXBsZShjaGFyMiBoaSwgdWNoYXIyIGxvKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoY2hhcjMgaGksIHVjaGFyMyBsbyk7CnNob3J0NCBfX292bGQgX19jbmZuIHVwc2FtcGxlKGNoYXI0IGhpLCB1Y2hhcjQgbG8pOwpzaG9ydDggX19vdmxkIF9fY25mbiB1cHNhbXBsZShjaGFyOCBoaSwgdWNoYXI4IGxvKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHVwc2FtcGxlKGNoYXIxNiBoaSwgdWNoYXIxNiBsbyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjIgaGksIHVjaGFyMiBsbyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjMgaGksIHVjaGFyMyBsbyk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjQgaGksIHVjaGFyNCBsbyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1Y2hhcjggaGksIHVjaGFyOCBsbyk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUodWNoYXIxNiBoaSwgdWNoYXIxNiBsbyk7CgovKioKICogcmVzdWx0W2ldID0gKChpbnQpaGlbaV0gPDwgMTYpIHwgbG9baV0KICogcmVzdWx0W2ldID0gKCh1aW50KWhpW2ldIDw8IDE2KSB8IGxvW2ldCiAqLwppbnQgX19vdmxkIF9fY25mbiB1cHNhbXBsZShzaG9ydCBoaSwgdXNob3J0IGxvKTsKdWludCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydCBoaSwgdXNob3J0IGxvKTsKaW50MiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHNob3J0MiBoaSwgdXNob3J0MiBsbyk7CmludDMgX19vdmxkIF9fY25mbiB1cHNhbXBsZShzaG9ydDMgaGksIHVzaG9ydDMgbG8pOwppbnQ0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoc2hvcnQ0IGhpLCB1c2hvcnQ0IGxvKTsKaW50OCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHNob3J0OCBoaSwgdXNob3J0OCBsbyk7CmludDE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoc2hvcnQxNiBoaSwgdXNob3J0MTYgbG8pOwp1aW50MiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDIgaGksIHVzaG9ydDIgbG8pOwp1aW50MyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDMgaGksIHVzaG9ydDMgbG8pOwp1aW50NCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDQgaGksIHVzaG9ydDQgbG8pOwp1aW50OCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVzaG9ydDggaGksIHVzaG9ydDggbG8pOwp1aW50MTYgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1c2hvcnQxNiBoaSwgdXNob3J0MTYgbG8pOwovKioKICogcmVzdWx0W2ldID0gKChsb25nKWhpW2ldIDw8IDMyKSB8IGxvW2ldCiAqIHJlc3VsdFtpXSA9ICgodWxvbmcpaGlbaV0gPDwgMzIpIHwgbG9baV0KICovCmxvbmcgX19vdmxkIF9fY25mbiB1cHNhbXBsZShpbnQgaGksIHVpbnQgbG8pOwp1bG9uZyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQgaGksIHVpbnQgbG8pOwpsb25nMiBfX292bGQgX19jbmZuIHVwc2FtcGxlKGludDIgaGksIHVpbnQyIGxvKTsKbG9uZzMgX19vdmxkIF9fY25mbiB1cHNhbXBsZShpbnQzIGhpLCB1aW50MyBsbyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoaW50NCBoaSwgdWludDQgbG8pOwpsb25nOCBfX292bGQgX19jbmZuIHVwc2FtcGxlKGludDggaGksIHVpbnQ4IGxvKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gdXBzYW1wbGUoaW50MTYgaGksIHVpbnQxNiBsbyk7CnVsb25nMiBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQyIGhpLCB1aW50MiBsbyk7CnVsb25nMyBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQzIGhpLCB1aW50MyBsbyk7CnVsb25nNCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQ0IGhpLCB1aW50NCBsbyk7CnVsb25nOCBfX292bGQgX19jbmZuIHVwc2FtcGxlKHVpbnQ4IGhpLCB1aW50OCBsbyk7CnVsb25nMTYgX19vdmxkIF9fY25mbiB1cHNhbXBsZSh1aW50MTYgaGksIHVpbnQxNiBsbyk7CgovKgogKiBwb3Bjb3VudCh4KTogcmV0dXJucyB0aGUgbnVtYmVyIG9mIHNldCBiaXQgaW4geAogKi8KI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpjaGFyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoY2hhciB4KTsKdWNoYXIgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhciB4KTsKY2hhcjIgX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyMiB4KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWNoYXIyIHgpOwpjaGFyMyBfX292bGQgX19jbmZuIHBvcGNvdW50KGNoYXIzIHgpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhcjMgeCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoY2hhcjQgeCk7CnVjaGFyNCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVjaGFyNCB4KTsKY2hhcjggX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyOCB4KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWNoYXI4IHgpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChjaGFyMTYgeCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1Y2hhcjE2IHgpOwpzaG9ydCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0IHgpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1c2hvcnQgeCk7CnNob3J0MiBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0MiB4KTsKdXNob3J0MiBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDIgeCk7CnNob3J0MyBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0MyB4KTsKdXNob3J0MyBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDMgeCk7CnNob3J0NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0NCB4KTsKdXNob3J0NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDQgeCk7CnNob3J0OCBfX292bGQgX19jbmZuIHBvcGNvdW50KHNob3J0OCB4KTsKdXNob3J0OCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDggeCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChzaG9ydDE2IHgpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHBvcGNvdW50KHVzaG9ydDE2IHgpOwppbnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQgeCk7CnVpbnQgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50IHgpOwppbnQyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoaW50MiB4KTsKdWludDIgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50MiB4KTsKaW50MyBfX292bGQgX19jbmZuIHBvcGNvdW50KGludDMgeCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWludDMgeCk7CmludDQgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQ0IHgpOwp1aW50NCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVpbnQ0IHgpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQoaW50OCB4KTsKdWludDggX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1aW50OCB4KTsKaW50MTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChpbnQxNiB4KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWludDE2IHgpOwpsb25nIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQobG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZyB4KTsKbG9uZzIgX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nMiB4KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWxvbmcyIHgpOwpsb25nMyBfX292bGQgX19jbmZuIHBvcGNvdW50KGxvbmczIHgpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZzMgeCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQobG9uZzQgeCk7CnVsb25nNCBfX292bGQgX19jbmZuIHBvcGNvdW50KHVsb25nNCB4KTsKbG9uZzggX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nOCB4KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gcG9wY291bnQodWxvbmc4IHgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudChsb25nMTYgeCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBwb3Bjb3VudCh1bG9uZzE2IHgpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgovKioKICogTXVsdGlwbHkgdHdvIDI0LWJpdCBpbnRlZ2VyIHZhbHVlcyB4IGFuZCB5IGFuZCBhZGQKICogdGhlIDMyLWJpdCBpbnRlZ2VyIHJlc3VsdCB0byB0aGUgMzItYml0IGludGVnZXIgei4KICogUmVmZXIgdG8gZGVmaW5pdGlvbiBvZiBtdWwyNCB0byBzZWUgaG93IHRoZSAyNC1iaXQKICogaW50ZWdlciBtdWx0aXBsaWNhdGlvbiBpcyBwZXJmb3JtZWQuCiAqLwppbnQgX19vdmxkIF9fY25mbiBtYWQyNChpbnQgeCwgaW50IHksIGludCB6KTsKdWludCBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQgeCwgdWludCB5LCB1aW50IHopOwppbnQyIF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50MiB4LCBpbnQyIHksIGludDIgeik7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbWFkMjQodWludDIgeCwgdWludDIgeSwgdWludDIgeik7CmludDMgX19vdmxkIF9fY25mbiBtYWQyNChpbnQzIHgsIGludDMgeSwgaW50MyB6KTsKdWludDMgX19vdmxkIF9fY25mbiBtYWQyNCh1aW50MyB4LCB1aW50MyB5LCB1aW50MyB6KTsKaW50NCBfX292bGQgX19jbmZuIG1hZDI0KGludDQgeCwgaW50NCB5LCBpbnQ0IHopOwp1aW50NCBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQ0IHgsIHVpbnQ0IHksIHVpbnQ0IHopOwppbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50OCB4LCBpbnQ4IHksIGludDggeik7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbWFkMjQodWludDggeCwgdWludDggeSwgdWludDggeik7CmludDE2IF9fb3ZsZCBfX2NuZm4gbWFkMjQoaW50MTYgeCwgaW50MTYgeSwgaW50MTYgeik7CnVpbnQxNiBfX292bGQgX19jbmZuIG1hZDI0KHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDE2IHopOwoKLyoqCiAqIE11bHRpcGx5IHR3byAyNC1iaXQgaW50ZWdlciB2YWx1ZXMgeCBhbmQgeS4geCBhbmQgeQogKiBhcmUgMzItYml0IGludGVnZXJzIGJ1dCBvbmx5IHRoZSBsb3cgMjQtYml0cyBhcmUgdXNlZAogKiB0byBwZXJmb3JtIHRoZSBtdWx0aXBsaWNhdGlvbi4gbXVsMjQgc2hvdWxkIG9ubHkKICogYmUgdXNlZCB3aGVuIHZhbHVlcyBpbiB4IGFuZCB5IGFyZSBpbiB0aGUgcmFuZ2UgWy0KICogMl4yMywgMl4yMy0xXSBpZiB4IGFuZCB5IGFyZSBzaWduZWQgaW50ZWdlcnMgYW5kIGluIHRoZQogKiByYW5nZSBbMCwgMl4yNC0xXSBpZiB4IGFuZCB5IGFyZSB1bnNpZ25lZCBpbnRlZ2Vycy4gSWYKICogeCBhbmQgeSBhcmUgbm90IGluIHRoaXMgcmFuZ2UsIHRoZSBtdWx0aXBsaWNhdGlvbgogKiByZXN1bHQgaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4KICovCmludCBfX292bGQgX19jbmZuIG11bDI0KGludCB4LCBpbnQgeSk7CnVpbnQgX19vdmxkIF9fY25mbiBtdWwyNCh1aW50IHgsIHVpbnQgeSk7CmludDIgX19vdmxkIF9fY25mbiBtdWwyNChpbnQyIHgsIGludDIgeSk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDIgeCwgdWludDIgeSk7CmludDMgX19vdmxkIF9fY25mbiBtdWwyNChpbnQzIHgsIGludDMgeSk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDMgeCwgdWludDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBtdWwyNChpbnQ0IHgsIGludDQgeSk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDQgeCwgdWludDQgeSk7CmludDggX19vdmxkIF9fY25mbiBtdWwyNChpbnQ4IHgsIGludDggeSk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gbXVsMjQodWludDggeCwgdWludDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gbXVsMjQoaW50MTYgeCwgaW50MTYgeSk7CnVpbnQxNiBfX292bGQgX19jbmZuIG11bDI0KHVpbnQxNiB4LCB1aW50MTYgeSk7CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS40LCB2MS4yIHM2LjEyLjQsIHYyLjAgczYuMTMuNCAtIENvbW1vbiBGdW5jdGlvbnMKCi8qKgogKiBSZXR1cm5zIGZtaW4oZm1heCh4LCBtaW52YWwpLCBtYXh2YWwpLgogKiBSZXN1bHRzIGFyZSB1bmRlZmluZWQgaWYgbWludmFsID4gbWF4dmFsLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBjbGFtcChmbG9hdCB4LCBmbG9hdCBtaW52YWwsIGZsb2F0IG1heHZhbCk7CmZsb2F0MiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MiB4LCBmbG9hdDIgbWludmFsLCBmbG9hdDIgbWF4dmFsKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQzIHgsIGZsb2F0MyBtaW52YWwsIGZsb2F0MyBtYXh2YWwpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBjbGFtcChmbG9hdDQgeCwgZmxvYXQ0IG1pbnZhbCwgZmxvYXQ0IG1heHZhbCk7CmZsb2F0OCBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0OCB4LCBmbG9hdDggbWludmFsLCBmbG9hdDggbWF4dmFsKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MTYgeCwgZmxvYXQxNiBtaW52YWwsIGZsb2F0MTYgbWF4dmFsKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQyIHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQzIHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQ0IHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZmxvYXQ4IHgsIGZsb2F0IG1pbnZhbCwgZmxvYXQgbWF4dmFsKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIGNsYW1wKGZsb2F0MTYgeCwgZmxvYXQgbWludmFsLCBmbG9hdCBtYXh2YWwpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlIHgsIGRvdWJsZSBtaW52YWwsIGRvdWJsZSBtYXh2YWwpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMiB4LCBkb3VibGUyIG1pbnZhbCwgZG91YmxlMiBtYXh2YWwpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMyB4LCBkb3VibGUzIG1pbnZhbCwgZG91YmxlMyBtYXh2YWwpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlNCB4LCBkb3VibGU0IG1pbnZhbCwgZG91YmxlNCBtYXh2YWwpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlOCB4LCBkb3VibGU4IG1pbnZhbCwgZG91YmxlOCBtYXh2YWwpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTE2IHgsIGRvdWJsZTE2IG1pbnZhbCwgZG91YmxlMTYgbWF4dmFsKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTIgeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjbGFtcChkb3VibGUzIHgsIGRvdWJsZSBtaW52YWwsIGRvdWJsZSBtYXh2YWwpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlNCB4LCBkb3VibGUgbWludmFsLCBkb3VibGUgbWF4dmFsKTsKZG91YmxlOCBfX292bGQgX19jbmZuIGNsYW1wKGRvdWJsZTggeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoZG91YmxlMTYgeCwgZG91YmxlIG1pbnZhbCwgZG91YmxlIG1heHZhbCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZiB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwpoYWxmMiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYyIHgsIGhhbGYyIG1pbnZhbCwgaGFsZjIgbWF4dmFsKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjbGFtcChoYWxmMyB4LCBoYWxmMyBtaW52YWwsIGhhbGYzIG1heHZhbCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjQgeCwgaGFsZjQgbWludmFsLCBoYWxmNCBtYXh2YWwpOwpoYWxmOCBfX292bGQgX19jbmZuIGNsYW1wKGhhbGY4IHgsIGhhbGY4IG1pbnZhbCwgaGFsZjggbWF4dmFsKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjE2IHgsIGhhbGYxNiBtaW52YWwsIGhhbGYxNiBtYXh2YWwpOwpoYWxmMiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYyIHgsIGhhbGYgbWludmFsLCBoYWxmIG1heHZhbCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gY2xhbXAoaGFsZjMgeCwgaGFsZiBtaW52YWwsIGhhbGYgbWF4dmFsKTsKaGFsZjQgX19vdmxkIF9fY25mbiBjbGFtcChoYWxmNCB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwpoYWxmOCBfX292bGQgX19jbmZuIGNsYW1wKGhhbGY4IHgsIGhhbGYgbWludmFsLCBoYWxmIG1heHZhbCk7CmhhbGYxNiBfX292bGQgX19jbmZuIGNsYW1wKGhhbGYxNiB4LCBoYWxmIG1pbnZhbCwgaGFsZiBtYXh2YWwpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbnZlcnRzIHJhZGlhbnMgdG8gZGVncmVlcywgaS5lLiAoMTgwIC8gUEkpICoKICogcmFkaWFucy4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdCByYWRpYW5zKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdDIgcmFkaWFucyk7CmZsb2F0MyBfX292bGQgX19jbmZuIGRlZ3JlZXMoZmxvYXQzIHJhZGlhbnMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBkZWdyZWVzKGZsb2F0NCByYWRpYW5zKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhmbG9hdDggcmFkaWFucyk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGZsb2F0MTYgcmFkaWFucyk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBkZWdyZWVzKGRvdWJsZSByYWRpYW5zKTsKZG91YmxlMiBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlMiByYWRpYW5zKTsKZG91YmxlMyBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlMyByYWRpYW5zKTsKZG91YmxlNCBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlNCByYWRpYW5zKTsKZG91YmxlOCBfX292bGQgX19jbmZuIGRlZ3JlZXMoZG91YmxlOCByYWRpYW5zKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGRvdWJsZTE2IHJhZGlhbnMpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGRlZ3JlZXMoaGFsZiByYWRpYW5zKTsKaGFsZjIgX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGYyIHJhZGlhbnMpOwpoYWxmMyBfX292bGQgX19jbmZuIGRlZ3JlZXMoaGFsZjMgcmFkaWFucyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZGVncmVlcyhoYWxmNCByYWRpYW5zKTsKaGFsZjggX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGY4IHJhZGlhbnMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBkZWdyZWVzKGhhbGYxNiByYWRpYW5zKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeCA8IHksIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIHggYW5kIHkKICogYXJlIGluZmluaXRlIG9yIE5hTiwgdGhlIHJldHVybiB2YWx1ZXMgYXJlIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWF4KGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtYXgoZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbWF4KGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1heChmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtYXgoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG1heChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1heChmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1heChmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1heChmbG9hdDQgeCwgZmxvYXQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1heChmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtYXgoZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1heChkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1heChkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMiB4LCBkb3VibGUgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtYXgoZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtYXgoZG91YmxlOCB4LCBkb3VibGUgeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbWF4KGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtYXgoaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1heChoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtYXgoaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1heChoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGYzIHgsIGhhbGYgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWF4KGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1heChoYWxmMTYgeCwgaGFsZiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHkgaWYgeSA8IHgsIG90aGVyd2lzZSBpdCByZXR1cm5zIHguIElmIHggYW5kIHkKICogYXJlIGluZmluaXRlIG9yIE5hTiwgdGhlIHJldHVybiB2YWx1ZXMgYXJlIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWluKGZsb2F0IHgsIGZsb2F0IHkpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtaW4oZmxvYXQyIHgsIGZsb2F0MiB5KTsKZmxvYXQzIF9fb3ZsZCBfX2NuZm4gbWluKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1pbihmbG9hdDQgeCwgZmxvYXQ0IHkpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtaW4oZmxvYXQ4IHgsIGZsb2F0OCB5KTsKZmxvYXQxNiBfX292bGQgX19jbmZuIG1pbihmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1pbihmbG9hdDIgeCwgZmxvYXQgeSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1pbihmbG9hdDMgeCwgZmxvYXQgeSk7CmZsb2F0NCBfX292bGQgX19jbmZuIG1pbihmbG9hdDQgeCwgZmxvYXQgeSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1pbihmbG9hdDggeCwgZmxvYXQgeSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaW4oZmxvYXQxNiB4LCBmbG9hdCB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1pbihkb3VibGUgeCwgZG91YmxlIHkpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1pbihkb3VibGUzIHgsIGRvdWJsZTMgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlNCB4LCBkb3VibGU0IHkpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMiB4LCBkb3VibGUgeSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlMyB4LCBkb3VibGUgeSk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBtaW4oZG91YmxlNCB4LCBkb3VibGUgeSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaW4oZG91YmxlOCB4LCBkb3VibGUgeSk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gbWluKGRvdWJsZTE2IHgsIGRvdWJsZSB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBtaW4oaGFsZiB4LCBoYWxmIHkpOwpoYWxmMiBfX292bGQgX19jbmZuIG1pbihoYWxmMiB4LCBoYWxmMiB5KTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaW4oaGFsZjMgeCwgaGFsZjMgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY0IHgsIGhhbGY0IHkpOwpoYWxmOCBfX292bGQgX19jbmZuIG1pbihoYWxmOCB4LCBoYWxmOCB5KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYxNiB4LCBoYWxmMTYgeSk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYyIHgsIGhhbGYgeSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWluKGhhbGYzIHgsIGhhbGYgeSk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY0IHgsIGhhbGYgeSk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gbWluKGhhbGY4IHgsIGhhbGYgeSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1pbihoYWxmMTYgeCwgaGFsZiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBsaW5lYXIgYmxlbmQgb2YgeCAmIHkgaW1wbGVtZW50ZWQgYXM6CiAqIHggKyAoeSAtIHgpICogYQogKiBhIG11c3QgYmUgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgMC4wIC4uLiAxLjAuIElmIGEgaXMgbm90CiAqIGluIHRoZSByYW5nZSAwLjAgLi4uIDEuMCwgdGhlIHJldHVybiB2YWx1ZXMgYXJlCiAqIHVuZGVmaW5lZC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IGEpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9hdDIgYSk7CmZsb2F0MyBfX292bGQgX19jbmZuIG1peChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0MyBhKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IGEpOwpmbG9hdDggX19vdmxkIF9fY25mbiBtaXgoZmxvYXQ4IHgsIGZsb2F0OCB5LCBmbG9hdDggYSk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQxNiB4LCBmbG9hdDE2IHksIGZsb2F0MTYgYSk7CmZsb2F0MiBfX292bGQgX19jbmZuIG1peChmbG9hdDIgeCwgZmxvYXQyIHksIGZsb2F0IGEpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBtaXgoZmxvYXQzIHgsIGZsb2F0MyB5LCBmbG9hdCBhKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQgYSk7CmZsb2F0OCBfX292bGQgX19jbmZuIG1peChmbG9hdDggeCwgZmxvYXQ4IHksIGZsb2F0IGEpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gbWl4KGZsb2F0MTYgeCwgZmxvYXQxNiB5LCBmbG9hdCBhKTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIG1peChkb3VibGUgeCwgZG91YmxlIHksIGRvdWJsZSBhKTsKZG91YmxlMiBfX292bGQgX19jbmZuIG1peChkb3VibGUyIHgsIGRvdWJsZTIgeSwgZG91YmxlMiBhKTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1peChkb3VibGUzIHgsIGRvdWJsZTMgeSwgZG91YmxlMyBhKTsKZG91YmxlNCBfX292bGQgX19jbmZuIG1peChkb3VibGU0IHgsIGRvdWJsZTQgeSwgZG91YmxlNCBhKTsKZG91YmxlOCBfX292bGQgX19jbmZuIG1peChkb3VibGU4IHgsIGRvdWJsZTggeSwgZG91YmxlOCBhKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgZG91YmxlMTYgYSk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMiB4LCBkb3VibGUyIHksIGRvdWJsZSBhKTsKZG91YmxlMyBfX292bGQgX19jbmZuIG1peChkb3VibGUzIHgsIGRvdWJsZTMgeSwgZG91YmxlIGEpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gbWl4KGRvdWJsZTQgeCwgZG91YmxlNCB5LCBkb3VibGUgYSk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBtaXgoZG91YmxlOCB4LCBkb3VibGU4IHksIGRvdWJsZSBhKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBtaXgoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgZG91YmxlIGEpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIG1peChoYWxmIHgsIGhhbGYgeSwgaGFsZiBhKTsKaGFsZjIgX19vdmxkIF9fY25mbiBtaXgoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZjIgYSk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbWl4KGhhbGYzIHgsIGhhbGYzIHksIGhhbGYzIGEpOwpoYWxmNCBfX292bGQgX19jbmZuIG1peChoYWxmNCB4LCBoYWxmNCB5LCBoYWxmNCBhKTsKaGFsZjggX19vdmxkIF9fY25mbiBtaXgoaGFsZjggeCwgaGFsZjggeSwgaGFsZjggYSk7CmhhbGYxNiBfX292bGQgX19jbmZuIG1peChoYWxmMTYgeCwgaGFsZjE2IHksIGhhbGYxNiBhKTsKaGFsZjIgX19vdmxkIF9fY25mbiBtaXgoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZiBhKTsKaGFsZjMgX19vdmxkIF9fY25mbiBtaXgoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZiBhKTsKaGFsZjQgX19vdmxkIF9fY25mbiBtaXgoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZiBhKTsKaGFsZjggX19vdmxkIF9fY25mbiBtaXgoaGFsZjggeCwgaGFsZjggeSwgaGFsZiBhKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gbWl4KGhhbGYxNiB4LCBoYWxmMTYgeSwgaGFsZiBhKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBDb252ZXJ0cyBkZWdyZWVzIHRvIHJhZGlhbnMsIGkuZS4gKFBJIC8gMTgwKSAqCiAqIGRlZ3JlZXMuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQgZGVncmVlcyk7CmZsb2F0MiBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQyIGRlZ3JlZXMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiByYWRpYW5zKGZsb2F0MyBkZWdyZWVzKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhmbG9hdDQgZGVncmVlcyk7CmZsb2F0OCBfX292bGQgX19jbmZuIHJhZGlhbnMoZmxvYXQ4IGRlZ3JlZXMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhmbG9hdDE2IGRlZ3JlZXMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhkb3VibGUgZGVncmVlcyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTIgZGVncmVlcyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTMgZGVncmVlcyk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTQgZGVncmVlcyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiByYWRpYW5zKGRvdWJsZTggZGVncmVlcyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhkb3VibGUxNiBkZWdyZWVzKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiByYWRpYW5zKGhhbGYgZGVncmVlcyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmMiBkZWdyZWVzKTsKaGFsZjMgX19vdmxkIF9fY25mbiByYWRpYW5zKGhhbGYzIGRlZ3JlZXMpOwpoYWxmNCBfX292bGQgX19jbmZuIHJhZGlhbnMoaGFsZjQgZGVncmVlcyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmOCBkZWdyZWVzKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gcmFkaWFucyhoYWxmMTYgZGVncmVlcyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyAwLjAgaWYgeCA8IGVkZ2UsIG90aGVyd2lzZSBpdCByZXR1cm5zIDEuMC4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDIgZWRnZSwgZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzdGVwKGZsb2F0MyBlZGdlLCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQ0IGVkZ2UsIGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDggZWRnZSwgZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdDE2IGVkZ2UsIGZsb2F0MTYgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQgZWRnZSwgZmxvYXQyIHgpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzdGVwKGZsb2F0IGVkZ2UsIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHN0ZXAoZmxvYXQgZWRnZSwgZmxvYXQ4IHgpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc3RlcChmbG9hdCBlZGdlLCBmbG9hdDE2IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlIHgpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUyIGVkZ2UsIGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzdGVwKGRvdWJsZTMgZWRnZSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlNCBlZGdlLCBkb3VibGU0IHgpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGU4IGVkZ2UsIGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUxNiBlZGdlLCBkb3VibGUxNiB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlIGVkZ2UsIGRvdWJsZTIgeCk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzdGVwKGRvdWJsZSBlZGdlLCBkb3VibGUzIHgpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHN0ZXAoZG91YmxlIGVkZ2UsIGRvdWJsZTggeCk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc3RlcChkb3VibGUgZWRnZSwgZG91YmxlMTYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGYgeCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmMiBlZGdlLCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzdGVwKGhhbGYzIGVkZ2UsIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHN0ZXAoaGFsZjQgZWRnZSwgaGFsZjQgeCk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmOCBlZGdlLCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmMTYgZWRnZSwgaGFsZjE2IHgpOwpoYWxmMiBfX292bGQgX19jbmZuIHN0ZXAoaGFsZiBlZGdlLCBoYWxmMiB4KTsKaGFsZjMgX19vdmxkIF9fY25mbiBzdGVwKGhhbGYgZWRnZSwgaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGY0IHgpOwpoYWxmOCBfX292bGQgX19jbmZuIHN0ZXAoaGFsZiBlZGdlLCBoYWxmOCB4KTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc3RlcChoYWxmIGVkZ2UsIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIDAuMCBpZiB4IDw9IGVkZ2UwIGFuZCAxLjAgaWYgeCA+PSBlZGdlMSBhbmQKICogcGVyZm9ybXMgc21vb3RoIEhlcm1pdGUgaW50ZXJwb2xhdGlvbiBiZXR3ZWVuIDAKICogYW5kIDF3aGVuIGVkZ2UwIDwgeCA8IGVkZ2UxLiBUaGlzIGlzIHVzZWZ1bCBpbgogKiBjYXNlcyB3aGVyZSB5b3Ugd291bGQgd2FudCBhIHRocmVzaG9sZCBmdW5jdGlvbgogKiB3aXRoIGEgc21vb3RoIHRyYW5zaXRpb24uCiAqIFRoaXMgaXMgZXF1aXZhbGVudCB0bzoKICogZ2VudHlwZSB0OwogKiB0ID0gY2xhbXAgKCh4IC0gZWRnZTApIC8gKGVkZ2UxIC0gZWRnZTApLCAwLCAxKTsKICogcmV0dXJuIHQgKiB0ICogKDMgLSAyICogdCk7CiAqIFJlc3VsdHMgYXJlIHVuZGVmaW5lZCBpZiBlZGdlMCA+PSBlZGdlMSBvciBpZiB4LAogKiBlZGdlMCBvciBlZGdlMSBpcyBhIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChmbG9hdCBlZGdlMCwgZmxvYXQgZWRnZTEsIGZsb2F0IHgpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0MiBlZGdlMCwgZmxvYXQyIGVkZ2UxLCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQzIGVkZ2UwLCBmbG9hdDMgZWRnZTEsIGZsb2F0MyB4KTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChmbG9hdDQgZWRnZTAsIGZsb2F0NCBlZGdlMSwgZmxvYXQ0IHgpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0OCBlZGdlMCwgZmxvYXQ4IGVkZ2UxLCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0MTYgZWRnZTAsIGZsb2F0MTYgZWRnZTEsIGZsb2F0MTYgeCk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDMgeCk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDQgeCk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGZsb2F0IGVkZ2UwLCBmbG9hdCBlZGdlMSwgZmxvYXQxNiB4KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlMiBlZGdlMCwgZG91YmxlMiBlZGdlMSwgZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlMyBlZGdlMCwgZG91YmxlMyBlZGdlMSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlNCBlZGdlMCwgZG91YmxlNCBlZGdlMSwgZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlOCBlZGdlMCwgZG91YmxlOCBlZGdlMSwgZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZTE2IGVkZ2UwLCBkb3VibGUxNiBlZGdlMSwgZG91YmxlMTYgeCk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZSBlZGdlMCwgZG91YmxlIGVkZ2UxLCBkb3VibGUyIHgpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChkb3VibGUgZWRnZTAsIGRvdWJsZSBlZGdlMSwgZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZTQgeCk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGRvdWJsZSBlZGdlMCwgZG91YmxlIGVkZ2UxLCBkb3VibGU4IHgpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoZG91YmxlIGVkZ2UwLCBkb3VibGUgZWRnZTEsIGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYyIGVkZ2UwLCBoYWxmMiBlZGdlMSwgaGFsZjIgeCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChoYWxmMyBlZGdlMCwgaGFsZjMgZWRnZTEsIGhhbGYzIHgpOwpoYWxmNCBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZjQgZWRnZTAsIGhhbGY0IGVkZ2UxLCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGY4IGVkZ2UwLCBoYWxmOCBlZGdlMSwgaGFsZjggeCk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZjE2IGVkZ2UwLCBoYWxmMTYgZWRnZTEsIGhhbGYxNiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc21vb3Roc3RlcChoYWxmIGVkZ2UwLCBoYWxmIGVkZ2UxLCBoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzbW9vdGhzdGVwKGhhbGYgZWRnZTAsIGhhbGYgZWRnZTEsIGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIDEuMCBpZiB4ID4gMCwgLTAuMCBpZiB4ID0gLTAuMCwgKzAuMCBpZiB4ID0KICogKzAuMCwgb3IgLTEuMCBpZiB4IDwgMC4gUmV0dXJucyAwLjAgaWYgeCBpcyBhIE5hTi4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdCB4KTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdDIgeCk7CmZsb2F0MyBfX292bGQgX19jbmZuIHNpZ24oZmxvYXQzIHgpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaWduKGZsb2F0NCB4KTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2lnbihmbG9hdDggeCk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaWduKGZsb2F0MTYgeCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBzaWduKGRvdWJsZSB4KTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlMiB4KTsKZG91YmxlMyBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlMyB4KTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlNCB4KTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNpZ24oZG91YmxlOCB4KTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaWduKGRvdWJsZTE2IHgpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIHNpZ24oaGFsZiB4KTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaWduKGhhbGYyIHgpOwpoYWxmMyBfX292bGQgX19jbmZuIHNpZ24oaGFsZjMgeCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2lnbihoYWxmNCB4KTsKaGFsZjggX19vdmxkIF9fY25mbiBzaWduKGhhbGY4IHgpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaWduKGhhbGYxNiB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjUsIHYxLjIgczYuMTIuNSwgdjIuMCBzNi4xMy41IC0gR2VvbWV0cmljIEZ1bmN0aW9ucwoKLyoqCiAqIFJldHVybnMgdGhlIGNyb3NzIHByb2R1Y3Qgb2YgcDAueHl6IGFuZCBwMS54eXouIFRoZQogKiB3IGNvbXBvbmVudCBvZiBmbG9hdDQgcmVzdWx0IHJldHVybmVkIHdpbGwgYmUgMC4wLgogKi8KZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoZmxvYXQ0IHAwLCBmbG9hdDQgcDEpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBjcm9zcyhmbG9hdDMgcDAsIGZsb2F0MyBwMSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGU0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoZG91YmxlNCBwMCwgZG91YmxlNCBwMSk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBjcm9zcyhkb3VibGUzIHAwLCBkb3VibGUzIHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGY0IF9fb3ZsZCBfX2NuZm4gY3Jvc3MoaGFsZjQgcDAsIGhhbGY0IHAxKTsKaGFsZjMgX19vdmxkIF9fY25mbiBjcm9zcyhoYWxmMyBwMCwgaGFsZjMgcDEpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIENvbXB1dGUgZG90IHByb2R1Y3QuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGRvdChmbG9hdCBwMCwgZmxvYXQgcDEpOwpmbG9hdCBfX292bGQgX19jbmZuIGRvdChmbG9hdDIgcDAsIGZsb2F0MiBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZG90KGZsb2F0MyBwMCwgZmxvYXQzIHAxKTsKZmxvYXQgX19vdmxkIF9fY25mbiBkb3QoZmxvYXQ0IHAwLCBmbG9hdDQgcDEpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZG90KGRvdWJsZSBwMCwgZG91YmxlIHAxKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZG90KGRvdWJsZTIgcDAsIGRvdWJsZTIgcDEpOwpkb3VibGUgX19vdmxkIF9fY25mbiBkb3QoZG91YmxlMyBwMCwgZG91YmxlMyBwMSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGRvdChkb3VibGU0IHAwLCBkb3VibGU0IHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBkb3QoaGFsZiBwMCwgaGFsZiBwMSk7CmhhbGYgX19vdmxkIF9fY25mbiBkb3QoaGFsZjIgcDAsIGhhbGYyIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGRvdChoYWxmMyBwMCwgaGFsZjMgcDEpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZG90KGhhbGY0IHAwLCBoYWxmNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgZGlzdGFuY2UgYmV0d2VlbiBwMCBhbmQgcDEuIFRoaXMgaXMKICogY2FsY3VsYXRlZCBhcyBsZW5ndGgocDAgLSBwMSkuCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGRpc3RhbmNlKGZsb2F0IHAwLCBmbG9hdCBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoZmxvYXQyIHAwLCBmbG9hdDIgcDEpOwpmbG9hdCBfX292bGQgX19jbmZuIGRpc3RhbmNlKGZsb2F0MyBwMCwgZmxvYXQzIHAxKTsKZmxvYXQgX19vdmxkIF9fY25mbiBkaXN0YW5jZShmbG9hdDQgcDAsIGZsb2F0NCBwMSk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBkaXN0YW5jZShkb3VibGUgcDAsIGRvdWJsZSBwMSk7CmRvdWJsZSBfX292bGQgX19jbmZuIGRpc3RhbmNlKGRvdWJsZTIgcDAsIGRvdWJsZTIgcDEpOwpkb3VibGUgX19vdmxkIF9fY25mbiBkaXN0YW5jZShkb3VibGUzIHAwLCBkb3VibGUzIHAxKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoZG91YmxlNCBwMCwgZG91YmxlNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoaGFsZiBwMCwgaGFsZiBwMSk7CmhhbGYgX19vdmxkIF9fY25mbiBkaXN0YW5jZShoYWxmMiBwMCwgaGFsZjIgcDEpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZGlzdGFuY2UoaGFsZjMgcDAsIGhhbGYzIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGRpc3RhbmNlKGhhbGY0IHAwLCBoYWxmNCBwMSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJuIHRoZSBsZW5ndGggb2YgdmVjdG9yIHAsIGkuZS4sCiAqIHNxcnQocC54MiArIHAueSAyICsgLi4uKQogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBsZW5ndGgoZmxvYXQgcCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGZsb2F0MiBwKTsKZmxvYXQgX19vdmxkIF9fY25mbiBsZW5ndGgoZmxvYXQzIHApOwpmbG9hdCBfX292bGQgX19jbmZuIGxlbmd0aChmbG9hdDQgcCk7CiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIF9fY25mbiBsZW5ndGgoZG91YmxlIHApOwpkb3VibGUgX19vdmxkIF9fY25mbiBsZW5ndGgoZG91YmxlMiBwKTsKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGRvdWJsZTMgcCk7CmRvdWJsZSBfX292bGQgX19jbmZuIGxlbmd0aChkb3VibGU0IHApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGxlbmd0aChoYWxmIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGYyIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGYzIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gbGVuZ3RoKGhhbGY0IHApOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgYSB2ZWN0b3IgaW4gdGhlIHNhbWUgZGlyZWN0aW9uIGFzIHAgYnV0IHdpdGggYQogKiBsZW5ndGggb2YgMS4KICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGZsb2F0IHApOwpmbG9hdDIgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQyIHApOwpmbG9hdDMgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQzIHApOwpmbG9hdDQgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZmxvYXQ0IHApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGRvdWJsZSBwKTsKZG91YmxlMiBfX292bGQgX19jbmZuIG5vcm1hbGl6ZShkb3VibGUyIHApOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGRvdWJsZTMgcCk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBub3JtYWxpemUoZG91YmxlNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBub3JtYWxpemUoaGFsZiBwKTsKaGFsZjIgX19vdmxkIF9fY25mbiBub3JtYWxpemUoaGFsZjIgcCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gbm9ybWFsaXplKGhhbGYzIHApOwpoYWxmNCBfX292bGQgX19jbmZuIG5vcm1hbGl6ZShoYWxmNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGZhc3RfbGVuZ3RoKHAwIC0gcDEpLgogKi8KZmxvYXQgX19vdmxkIF9fY25mbiBmYXN0X2Rpc3RhbmNlKGZsb2F0IHAwLCBmbG9hdCBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDIgcDAsIGZsb2F0MiBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDMgcDAsIGZsb2F0MyBwMSk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShmbG9hdDQgcDAsIGZsb2F0NCBwMSk7CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9kaXN0YW5jZShoYWxmIHAwLCBoYWxmIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjIgcDAsIGhhbGYyIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjMgcDAsIGhhbGYzIHAxKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfZGlzdGFuY2UoaGFsZjQgcDAsIGhhbGY0IHAxKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBsZW5ndGggb2YgdmVjdG9yIHAgY29tcHV0ZWQgYXM6CiAqIGhhbGZfc3FydChwLngyICsgcC55MiArIC4uLikKICovCmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoZmxvYXQgcCk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoZmxvYXQyIHApOwpmbG9hdCBfX292bGQgX19jbmZuIGZhc3RfbGVuZ3RoKGZsb2F0MyBwKTsKZmxvYXQgX19vdmxkIF9fY25mbiBmYXN0X2xlbmd0aChmbG9hdDQgcCk7CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoaGFsZiBwKTsKaGFsZiBfX292bGQgX19jbmZuIGZhc3RfbGVuZ3RoKGhhbGYyIHApOwpoYWxmIF9fb3ZsZCBfX2NuZm4gZmFzdF9sZW5ndGgoaGFsZjMgcCk7CmhhbGYgX19vdmxkIF9fY25mbiBmYXN0X2xlbmd0aChoYWxmNCBwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIGEgdmVjdG9yIGluIHRoZSBzYW1lIGRpcmVjdGlvbiBhcyBwIGJ1dCB3aXRoIGEKICogbGVuZ3RoIG9mIDEuIGZhc3Rfbm9ybWFsaXplIGlzIGNvbXB1dGVkIGFzOgogKiBwICogaGFsZl9yc3FydCAocC54XjIgKyBwLnleMiArIC4uLiApCiAqIFRoZSByZXN1bHQgc2hhbGwgYmUgd2l0aGluIDgxOTIgdWxwcyBlcnJvciBmcm9tIHRoZQogKiBpbmZpbml0ZWx5IHByZWNpc2UgcmVzdWx0IG9mCiAqIGlmIChhbGwocCA9PSAwLjBmKSkKICogcmVzdWx0ID0gcDsKICogZWxzZQogKiByZXN1bHQgPSBwIC8gc3FydCAocC54XjIgKyBwLnleMiArIC4uLik7CiAqIHdpdGggdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgogKiAxKSBJZiB0aGUgc3VtIG9mIHNxdWFyZXMgaXMgZ3JlYXRlciB0aGFuIEZMVF9NQVgKICogdGhlbiB0aGUgdmFsdWUgb2YgdGhlIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiB0aGUKICogcmVzdWx0IHZlY3RvciBhcmUgdW5kZWZpbmVkLgogKiAyKSBJZiB0aGUgc3VtIG9mIHNxdWFyZXMgaXMgbGVzcyB0aGFuIEZMVF9NSU4gdGhlbgogKiB0aGUgaW1wbGVtZW50YXRpb24gbWF5IHJldHVybiBiYWNrIHAuCiAqIDMpIElmIHRoZSBkZXZpY2UgaXMgaW4gImRlbm9ybXMgYXJlIGZsdXNoZWQgdG8gemVybyIKICogbW9kZSwgaW5kaXZpZHVhbCBvcGVyYW5kIGVsZW1lbnRzIHdpdGggbWFnbml0dWRlCiAqIGxlc3MgdGhhbiBzcXJ0KEZMVF9NSU4pIG1heSBiZSBmbHVzaGVkIHRvIHplcm8KICogYmVmb3JlIHByb2NlZWRpbmcgd2l0aCB0aGUgY2FsY3VsYXRpb24uCiAqLwpmbG9hdCBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGZsb2F0IHApOwpmbG9hdDIgX19vdmxkIF9fY25mbiBmYXN0X25vcm1hbGl6ZShmbG9hdDIgcCk7CmZsb2F0MyBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGZsb2F0MyBwKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoZmxvYXQ0IHApOwojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiBfX292bGQgX19jbmZuIGZhc3Rfbm9ybWFsaXplKGhhbGYgcCk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjIgcCk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjMgcCk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gZmFzdF9ub3JtYWxpemUoaGFsZjQgcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS42LCB2MS4yIHM2LjEyLjYsIHYyLjAgczYuMTMuNiAtIFJlbGF0aW9uYWwgRnVuY3Rpb25zCgovKioKICogaW50biBpc2VxdWFsIChmbG9hdG4geCwgZmxvYXRuIHkpCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCA9PSB5LgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2VxdWFsKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2VxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2VxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNlcXVhbChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCAhPSB5LgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzbm90ZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc25vdGVxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNub3RlcXVhbChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgdGhlIGNvbXBvbmVudC13aXNlIGNvbXBhcmUgb2YgeCA+IHkuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQgeCwgZmxvYXQgeSk7CmludDIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmludDggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZSB4LCBkb3VibGUgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihkb3VibGU0IHgsIGRvdWJsZTQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYgeCwgaGFsZiB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXIoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcihoYWxmNCB4LCBoYWxmNCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgY29tcG9uZW50LXdpc2UgY29tcGFyZSBvZiB4ID49IHkuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGZsb2F0MiB4LCBmbG9hdDIgeSk7CmludDMgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGZsb2F0OCB4LCBmbG9hdDggeSk7CmludDE2IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChkb3VibGUyIHgsIGRvdWJsZTIgeSk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChkb3VibGU4IHgsIGRvdWJsZTggeSk7CmxvbmcxNiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChoYWxmMiB4LCBoYWxmMiB5KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNncmVhdGVyZXF1YWwoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2dyZWF0ZXJlcXVhbChoYWxmOCB4LCBoYWxmOCB5KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzZ3JlYXRlcmVxdWFsKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUmV0dXJucyB0aGUgY29tcG9uZW50LXdpc2UgY29tcGFyZSBvZiB4IDwgeS4KICovCmludCBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc2xlc3MoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbGVzcyhmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzbGVzcyhkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc2xlc3MoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzbGVzcyhoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2xlc3MoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb21wb25lbnQtd2lzZSBjb21wYXJlIG9mIHggPD0geS4KICovCmludCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGZsb2F0IHgsIGZsb2F0IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZmxvYXQyIHgsIGZsb2F0MiB5KTsKaW50MyBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChmbG9hdDQgeCwgZmxvYXQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChkb3VibGUgeCwgZG91YmxlIHkpOwpsb25nMiBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGRvdWJsZTIgeCwgZG91YmxlMiB5KTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGRvdWJsZTggeCwgZG91YmxlOCB5KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChoYWxmIHgsIGhhbGYgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGhhbGYyIHgsIGhhbGYyIHkpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBpc2xlc3NlcXVhbChoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoaGFsZjQgeCwgaGFsZjQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbGVzc2VxdWFsKGhhbGY4IHgsIGhhbGY4IHkpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZXF1YWwoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBSZXR1cm5zIHRoZSBjb21wb25lbnQtd2lzZSBjb21wYXJlIG9mCiAqICh4IDwgeSkgfHwgKHggPiB5KSAuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGZsb2F0IHgsIGZsb2F0IHkpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDMgeCwgZmxvYXQzIHkpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDQgeCwgZmxvYXQ0IHkpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZmxvYXQxNiB4LCBmbG9hdDE2IHkpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihkb3VibGUgeCwgZG91YmxlIHkpOwpsb25nMiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlMyB4LCBkb3VibGUzIHkpOwpsb25nNCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlNCB4LCBkb3VibGU0IHkpOwpsb25nOCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNsZXNzZ3JlYXRlcihoYWxmIHgsIGhhbGYgeSk7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjMgeCwgaGFsZjMgeSk7CnNob3J0NCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjQgeCwgaGFsZjQgeSk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbGVzc2dyZWF0ZXIoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2xlc3NncmVhdGVyKGhhbGYxNiB4LCBoYWxmMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgZmluaXRlIHZhbHVlLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQpOwppbnQyIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQyKTsKaW50MyBfX292bGQgX19jbmZuIGlzZmluaXRlKGZsb2F0Myk7CmludDQgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShmbG9hdDQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZmxvYXQ4KTsKaW50MTYgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzZmluaXRlKGRvdWJsZSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlMik7CmxvbmczIF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlMyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlNCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoZG91YmxlOCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGlzZmluaXRlKGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzZmluaXRlKGhhbGYpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmMik7CnNob3J0MyBfX292bGQgX19jbmZuIGlzZmluaXRlKGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNmaW5pdGUoaGFsZjQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmOCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc2Zpbml0ZShoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFRlc3QgZm9yIGluZmluaXR5IHZhbHVlICgrdmUgb3IgLXZlKSAuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc2luZihmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc2luZihmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNpbmYoZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzaW5mKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc2luZihmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzaW5mKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNpbmYoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc2luZihkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc2luZihkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNpbmYoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNpbmYoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzaW5mKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNpbmYoaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc2luZihoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzaW5mKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzaW5mKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgYSBOYU4uCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc25hbihmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc25hbihmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNuYW4oZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzbmFuKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc25hbihmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbmFuKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNuYW4oZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25hbihkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25hbihkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNuYW4oZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNuYW4oaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbmFuKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNuYW4oaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25hbihoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbmFuKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzbmFuKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBmb3IgYSBub3JtYWwgdmFsdWUuCiAqLwppbnQgX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdDIpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZmxvYXQzKTsKaW50NCBfX292bGQgX19jbmZuIGlzbm9ybWFsKGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBpc25vcm1hbChmbG9hdDgpOwppbnQxNiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGZsb2F0MTYpOwojaWZkZWYgY2xfa2hyX2ZwNjQKaW50IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGUyKTsKbG9uZzMgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGUzKTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc25vcm1hbChkb3VibGU4KTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoZG91YmxlMTYpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKaW50IF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGYyKTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gaXNub3JtYWwoaGFsZjMpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc25vcm1hbChoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGY4KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGlzbm9ybWFsKGhhbGYxNik7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogVGVzdCBpZiBhcmd1bWVudHMgYXJlIG9yZGVyZWQuIGlzb3JkZXJlZCgpIHRha2VzCiAqIGFyZ3VtZW50cyB4IGFuZCB5LCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0CiAqIGlzZXF1YWwoeCwgeCkgJiYgaXNlcXVhbCh5LCB5KS4KICovCmludCBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdCB4LCBmbG9hdCB5KTsKaW50MiBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGZsb2F0MyB4LCBmbG9hdDMgeSk7CmludDQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZmxvYXQ0IHgsIGZsb2F0NCB5KTsKaW50OCBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzb3JkZXJlZChmbG9hdDE2IHgsIGZsb2F0MTYgeSk7CiNpZmRlZiBjbF9raHJfZnA2NAppbnQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlIHgsIGRvdWJsZSB5KTsKbG9uZzIgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzb3JkZXJlZChkb3VibGUzIHgsIGRvdWJsZTMgeSk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGRvdWJsZTQgeCwgZG91YmxlNCB5KTsKbG9uZzggX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoZG91YmxlMTYgeCwgZG91YmxlMTYgeSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgppbnQgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZiB4LCBoYWxmIHkpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzb3JkZXJlZChoYWxmMyB4LCBoYWxmMyB5KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gaXNvcmRlcmVkKGhhbGY0IHgsIGhhbGY0IHkpOwpzaG9ydDggX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc29yZGVyZWQoaGFsZjE2IHgsIGhhbGYxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKCi8qKgogKiBUZXN0IGlmIGFyZ3VtZW50cyBhcmUgdW5vcmRlcmVkLiBpc3Vub3JkZXJlZCgpCiAqIHRha2VzIGFyZ3VtZW50cyB4IGFuZCB5LCByZXR1cm5pbmcgbm9uLXplcm8gaWYgeCBvciB5CiAqIGlzIE5hTiwgYW5kIHplcm8gb3RoZXJ3aXNlLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZmxvYXQgeCwgZmxvYXQgeSk7CmludDIgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChmbG9hdDIgeCwgZmxvYXQyIHkpOwppbnQzIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZmxvYXQzIHgsIGZsb2F0MyB5KTsKaW50NCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGZsb2F0NCB4LCBmbG9hdDQgeSk7CmludDggX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChmbG9hdDggeCwgZmxvYXQ4IHkpOwppbnQxNiBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGZsb2F0MTYgeCwgZmxvYXQxNiB5KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGRvdWJsZSB4LCBkb3VibGUgeSk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZG91YmxlMiB4LCBkb3VibGUyIHkpOwpsb25nMyBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGRvdWJsZTMgeCwgZG91YmxlMyB5KTsKbG9uZzQgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChkb3VibGU0IHgsIGRvdWJsZTQgeSk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoZG91YmxlOCB4LCBkb3VibGU4IHkpOwpsb25nMTYgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChkb3VibGUxNiB4LCBkb3VibGUxNiB5KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGhhbGYgeCwgaGFsZiB5KTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoaGFsZjIgeCwgaGFsZjIgeSk7CnNob3J0MyBfX292bGQgX19jbmZuIGlzdW5vcmRlcmVkKGhhbGYzIHgsIGhhbGYzIHkpOwpzaG9ydDQgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChoYWxmNCB4LCBoYWxmNCB5KTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gaXN1bm9yZGVyZWQoaGFsZjggeCwgaGFsZjggeSk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBpc3Vub3JkZXJlZChoYWxmMTYgeCwgaGFsZjE2IHkpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFRlc3QgZm9yIHNpZ24gYml0LiBUaGUgc2NhbGFyIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uCiAqIHJldHVybnMgYSAxIGlmIHRoZSBzaWduIGJpdCBpbiB0aGUgZmxvYXQgaXMgc2V0IGVsc2UgcmV0dXJucwogKiAwLiBUaGUgdmVjdG9yIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIHJldHVybnMgdGhlCiAqIGZvbGxvd2luZyBmb3IgZWFjaCBjb21wb25lbnQgaW4gZmxvYXRuOiBhIC0xIGlmIHRoZQogKiBzaWduIGJpdCBpbiB0aGUgZmxvYXQgaXMgc2V0IGVsc2UgcmV0dXJucyAwLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChmbG9hdCk7CmludDIgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0Mik7CmludDMgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0Myk7CmludDQgX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0NCk7CmludDggX19vdmxkIF9fY25mbiBzaWduYml0KGZsb2F0OCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChmbG9hdDE2KTsKI2lmZGVmIGNsX2tocl9mcDY0CmludCBfX292bGQgX19jbmZuIHNpZ25iaXQoZG91YmxlKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTIpOwpsb25nMyBfX292bGQgX19jbmZuIHNpZ25iaXQoZG91YmxlMyk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChkb3VibGU0KTsKbG9uZzggX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTgpOwpsb25nMTYgX19vdmxkIF9fY25mbiBzaWduYml0KGRvdWJsZTE2KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmludCBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZik7CnNob3J0MiBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZjIpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBzaWduYml0KGhhbGYzKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChoYWxmNCk7CnNob3J0OCBfX292bGQgX19jbmZuIHNpZ25iaXQoaGFsZjgpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2lnbmJpdChoYWxmMTYpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLyoqCiAqIFJldHVybnMgMSBpZiB0aGUgbW9zdCBzaWduaWZpY2FudCBiaXQgaW4gYW55IGNvbXBvbmVudAogKiBvZiB4IGlzIHNldDsgb3RoZXJ3aXNlIHJldHVybnMgMC4KICovCmludCBfX292bGQgX19jbmZuIGFueShjaGFyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoY2hhcjIgeCk7CmludCBfX292bGQgX19jbmZuIGFueShjaGFyMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGNoYXI0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoY2hhcjggeCk7CmludCBfX292bGQgX19jbmZuIGFueShjaGFyMTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShzaG9ydCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0NCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0OCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KHNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoaW50MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGludDQgeCk7CmludCBfX292bGQgX19jbmZuIGFueShpbnQ4IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkoaW50MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkobG9uZzIgeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYW55KGxvbmc0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbnkobG9uZzggeCk7CmludCBfX292bGQgX19jbmZuIGFueShsb25nMTYgeCk7CgovKioKICogUmV0dXJucyAxIGlmIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBpbiBhbGwgY29tcG9uZW50cwogKiBvZiB4IGlzIHNldDsgb3RoZXJ3aXNlIHJldHVybnMgMC4KICovCmludCBfX292bGQgX19jbmZuIGFsbChjaGFyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoY2hhcjIgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChjaGFyMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGNoYXI0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoY2hhcjggeCk7CmludCBfX292bGQgX19jbmZuIGFsbChjaGFyMTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChzaG9ydCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MiB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0NCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0OCB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKHNob3J0MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQyIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoaW50MyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGludDQgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChpbnQ4IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwoaW50MTYgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nIHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwobG9uZzIgeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nMyB4KTsKaW50IF9fb3ZsZCBfX2NuZm4gYWxsKGxvbmc0IHgpOwppbnQgX19vdmxkIF9fY25mbiBhbGwobG9uZzggeCk7CmludCBfX292bGQgX19jbmZuIGFsbChsb25nMTYgeCk7CgovKioKICogRWFjaCBiaXQgb2YgdGhlIHJlc3VsdCBpcyB0aGUgY29ycmVzcG9uZGluZyBiaXQgb2YgYSBpZgogKiB0aGUgY29ycmVzcG9uZGluZyBiaXQgb2YgYyBpcyAwLiBPdGhlcndpc2UgaXQgaXMgdGhlCiAqIGNvcnJlc3BvbmRpbmcgYml0IG9mIGIuCiAqLwpjaGFyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGNoYXIgYSwgY2hhciBiLCBjaGFyIGMpOwp1Y2hhciBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhciBhLCB1Y2hhciBiLCB1Y2hhciBjKTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjIgYSwgY2hhcjIgYiwgY2hhcjIgYyk7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjIgYSwgdWNoYXIyIGIsIHVjaGFyMiBjKTsKY2hhcjMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjMgYSwgY2hhcjMgYiwgY2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjQgYSwgY2hhcjQgYiwgY2hhcjQgYyk7CnVjaGFyNCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjQgYSwgdWNoYXI0IGIsIHVjaGFyNCBjKTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoY2hhcjggYSwgY2hhcjggYiwgY2hhcjggYyk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1Y2hhcjggYSwgdWNoYXI4IGIsIHVjaGFyOCBjKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGNoYXIxNiBhLCBjaGFyMTYgYiwgY2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwpzaG9ydCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChzaG9ydCBhLCBzaG9ydCBiLCBzaG9ydCBjKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydCBhLCB1c2hvcnQgYiwgdXNob3J0IGMpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQyIGEsIHNob3J0MiBiLCBzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodXNob3J0MiBhLCB1c2hvcnQyIGIsIHVzaG9ydDIgYyk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdChzaG9ydDMgYSwgc2hvcnQzIGIsIHNob3J0MyBjKTsKdXNob3J0MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1c2hvcnQzIGEsIHVzaG9ydDMgYiwgdXNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHNob3J0NCBhLCBzaG9ydDQgYiwgc2hvcnQ0IGMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydDQgYSwgdXNob3J0NCBiLCB1c2hvcnQ0IGMpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQ4IGEsIHNob3J0OCBiLCBzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodXNob3J0OCBhLCB1c2hvcnQ4IGIsIHVzaG9ydDggYyk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3Qoc2hvcnQxNiBhLCBzaG9ydDE2IGIsIHNob3J0MTYgYyk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVzaG9ydDE2IGEsIHVzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwppbnQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50IGEsIGludCBiLCBpbnQgYyk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGludDMgYSwgaW50MyBiLCBpbnQzIGMpOwp1aW50MyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKaW50NCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChpbnQ0IGEsIGludDQgYiwgaW50NCBjKTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwppbnQxNiBfX292bGQgX19jbmZuIGJpdHNlbGVjdChpbnQxNiBhLCBpbnQxNiBiLCBpbnQxNiBjKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwpsb25nIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGxvbmcgYSwgbG9uZyBiLCBsb25nIGMpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZyBhLCB1bG9uZyBiLCB1bG9uZyBjKTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzIgYSwgbG9uZzIgYiwgbG9uZzIgYyk7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzIgYSwgdWxvbmcyIGIsIHVsb25nMiBjKTsKbG9uZzMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzMgYSwgbG9uZzMgYiwgbG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzQgYSwgbG9uZzQgYiwgbG9uZzQgYyk7CnVsb25nNCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzQgYSwgdWxvbmc0IGIsIHVsb25nNCBjKTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRzZWxlY3QobG9uZzggYSwgbG9uZzggYiwgbG9uZzggYyk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdHNlbGVjdCh1bG9uZzggYSwgdWxvbmc4IGIsIHVsb25nOCBjKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGxvbmcxNiBhLCBsb25nMTYgYiwgbG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwpmbG9hdCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBjKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0MiBhLCBmbG9hdDIgYiwgZmxvYXQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCBmbG9hdDMgYyk7CmZsb2F0NCBfX292bGQgX19jbmZuIGJpdHNlbGVjdChmbG9hdDQgYSwgZmxvYXQ0IGIsIGZsb2F0NCBjKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0OCBhLCBmbG9hdDggYiwgZmxvYXQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBmbG9hdDE2IGMpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZSBhLCBkb3VibGUgYiwgZG91YmxlIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTIgYSwgZG91YmxlMiBiLCBkb3VibGUyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTMgYSwgZG91YmxlMyBiLCBkb3VibGUzIGMpOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTQgYSwgZG91YmxlNCBiLCBkb3VibGU0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGRvdWJsZTggYSwgZG91YmxlOCBiLCBkb3VibGU4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIGJpdHNlbGVjdChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBkb3VibGUxNiBjKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZiBhLCBoYWxmIGIsIGhhbGYgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGhhbGYyIGEsIGhhbGYyIGIsIGhhbGYyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIGJpdHNlbGVjdChoYWxmMyBhLCBoYWxmMyBiLCBoYWxmMyBjKTsKaGFsZjQgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZjQgYSwgaGFsZjQgYiwgaGFsZjQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gYml0c2VsZWN0KGhhbGY4IGEsIGhhbGY4IGIsIGhhbGY4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBiaXRzZWxlY3QoaGFsZjE2IGEsIGhhbGYxNiBiLCBoYWxmMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogRm9yIGVhY2ggY29tcG9uZW50IG9mIGEgdmVjdG9yIHR5cGUsCiAqIHJlc3VsdFtpXSA9IGlmIE1TQiBvZiBjW2ldIGlzIHNldCA/IGJbaV0gOiBhW2ldLgogKiBGb3IgYSBzY2FsYXIgdHlwZSwgcmVzdWx0ID0gYyA/IGIgOiBhLgogKiBiIGFuZCBhIG11c3QgaGF2ZSB0aGUgc2FtZSB0eXBlLgogKiBjIG11c3QgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMgYW5kIGJpdHMgYXMgYS4KICovCmNoYXIgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhciBhLCBjaGFyIGIsIGNoYXIgYyk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyIGEsIHVjaGFyIGIsIGNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIyIGEsIGNoYXIyIGIsIGNoYXIyIGMpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXIyIGEsIHVjaGFyMiBiLCBjaGFyMiBjKTsKY2hhcjMgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjMgYSwgY2hhcjMgYiwgY2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIGNoYXIzIGMpOwpjaGFyNCBfX292bGQgX19jbmZuIHNlbGVjdChjaGFyNCBhLCBjaGFyNCBiLCBjaGFyNCBjKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgY2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXI4IGEsIGNoYXI4IGIsIGNoYXI4IGMpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXI4IGEsIHVjaGFyOCBiLCBjaGFyOCBjKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIxNiBhLCBjaGFyMTYgYiwgY2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCBjaGFyMTYgYyk7CgpzaG9ydCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydCBhLCBzaG9ydCBiLCBzaG9ydCBjKTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVzaG9ydCBhLCB1c2hvcnQgYiwgc2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDIgYSwgc2hvcnQyIGIsIHNob3J0MiBjKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQyIGEsIHVzaG9ydDIgYiwgc2hvcnQyIGMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQzIGEsIHNob3J0MyBiLCBzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MyBhLCB1c2hvcnQzIGIsIHNob3J0MyBjKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHNob3J0NCBhLCBzaG9ydDQgYiwgc2hvcnQ0IGMpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVzaG9ydDQgYSwgdXNob3J0NCBiLCBzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDggYSwgc2hvcnQ4IGIsIHNob3J0OCBjKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQ4IGEsIHVzaG9ydDggYiwgc2hvcnQ4IGMpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHNob3J0MTYgYSwgc2hvcnQxNiBiLCBzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCBzaG9ydDE2IGMpOwoKaW50IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludCBhLCBpbnQgYiwgaW50IGMpOwp1aW50IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQgYSwgdWludCBiLCBpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MiBhLCBpbnQyIGIsIGludDIgYyk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQyIGEsIHVpbnQyIGIsIGludDIgYyk7CmludDMgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MyBhLCBpbnQzIGIsIGludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQzIGEsIHVpbnQzIGIsIGludDMgYyk7CmludDQgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50NCBhLCBpbnQ0IGIsIGludDQgYyk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQ0IGEsIHVpbnQ0IGIsIGludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIGludDggYyk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQ4IGEsIHVpbnQ4IGIsIGludDggYyk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludDE2IGEsIGludDE2IGIsIGludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDE2IGEsIHVpbnQxNiBiLCBpbnQxNiBjKTsKZmxvYXQgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQgYSwgZmxvYXQgYiwgaW50IGMpOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQyIGEsIGZsb2F0MiBiLCBpbnQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCBpbnQzIGMpOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQ0IGEsIGZsb2F0NCBiLCBpbnQ0IGMpOwpmbG9hdDggX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQ4IGEsIGZsb2F0OCBiLCBpbnQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCBpbnQxNiBjKTsKCmxvbmcgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZyBhLCBsb25nIGIsIGxvbmcgYyk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nIGEsIHVsb25nIGIsIGxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcyIGEsIGxvbmcyIGIsIGxvbmcyIGMpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmcyIGEsIHVsb25nMiBiLCBsb25nMiBjKTsKbG9uZzMgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzMgYSwgbG9uZzMgYiwgbG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIGxvbmczIGMpOwpsb25nNCBfX292bGQgX19jbmZuIHNlbGVjdChsb25nNCBhLCBsb25nNCBiLCBsb25nNCBjKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nNCBhLCB1bG9uZzQgYiwgbG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmc4IGEsIGxvbmc4IGIsIGxvbmc4IGMpOwp1bG9uZzggX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmc4IGEsIHVsb25nOCBiLCBsb25nOCBjKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcxNiBhLCBsb25nMTYgYiwgbG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCBsb25nMTYgYyk7CgpjaGFyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIgYSwgY2hhciBiLCB1Y2hhciBjKTsKdWNoYXIgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXIgYSwgdWNoYXIgYiwgdWNoYXIgYyk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXIyIGEsIGNoYXIyIGIsIHVjaGFyMiBjKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMiBhLCB1Y2hhcjIgYiwgdWNoYXIyIGMpOwpjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdChjaGFyMyBhLCBjaGFyMyBiLCB1Y2hhcjMgYyk7CnVjaGFyMyBfX292bGQgX19jbmZuIHNlbGVjdCh1Y2hhcjMgYSwgdWNoYXIzIGIsIHVjaGFyMyBjKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjQgYSwgY2hhcjQgYiwgdWNoYXI0IGMpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzZWxlY3QodWNoYXI0IGEsIHVjaGFyNCBiLCB1Y2hhcjQgYyk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGNoYXI4IGEsIGNoYXI4IGIsIHVjaGFyOCBjKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyOCBhLCB1Y2hhcjggYiwgdWNoYXI4IGMpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBzZWxlY3QoY2hhcjE2IGEsIGNoYXIxNiBiLCB1Y2hhcjE2IGMpOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVjaGFyMTYgYSwgdWNoYXIxNiBiLCB1Y2hhcjE2IGMpOwoKc2hvcnQgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQgYSwgc2hvcnQgYiwgdXNob3J0IGMpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0IGEsIHVzaG9ydCBiLCB1c2hvcnQgYyk7CnNob3J0MiBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDIgYSwgc2hvcnQyIGIsIHVzaG9ydDIgYyk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MiBhLCB1c2hvcnQyIGIsIHVzaG9ydDIgYyk7CnNob3J0MyBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDMgYSwgc2hvcnQzIGIsIHVzaG9ydDMgYyk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0MyBhLCB1c2hvcnQzIGIsIHVzaG9ydDMgYyk7CnNob3J0NCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDQgYSwgc2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0NCBhLCB1c2hvcnQ0IGIsIHVzaG9ydDQgYyk7CnNob3J0OCBfX292bGQgX19jbmZuIHNlbGVjdChzaG9ydDggYSwgc2hvcnQ4IGIsIHVzaG9ydDggYyk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzZWxlY3QodXNob3J0OCBhLCB1c2hvcnQ4IGIsIHVzaG9ydDggYyk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzZWxlY3Qoc2hvcnQxNiBhLCBzaG9ydDE2IGIsIHVzaG9ydDE2IGMpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNlbGVjdCh1c2hvcnQxNiBhLCB1c2hvcnQxNiBiLCB1c2hvcnQxNiBjKTsKCmludCBfX292bGQgX19jbmZuIHNlbGVjdChpbnQgYSwgaW50IGIsIHVpbnQgYyk7CnVpbnQgX19vdmxkIF9fY25mbiBzZWxlY3QodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CmludDIgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MiBhLCBpbnQyIGIsIHVpbnQyIGMpOwp1aW50MiBfX292bGQgX19jbmZuIHNlbGVjdCh1aW50MiBhLCB1aW50MiBiLCB1aW50MiBjKTsKaW50MyBfX292bGQgX19jbmZuIHNlbGVjdChpbnQzIGEsIGludDMgYiwgdWludDMgYyk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGludDQgYSwgaW50NCBiLCB1aW50NCBjKTsKdWludDQgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CmludDggX19vdmxkIF9fY25mbiBzZWxlY3QoaW50OCBhLCBpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50OCBfX292bGQgX19jbmZuIHNlbGVjdCh1aW50OCBhLCB1aW50OCBiLCB1aW50OCBjKTsKaW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QoaW50MTYgYSwgaW50MTYgYiwgdWludDE2IGMpOwp1aW50MTYgX19vdmxkIF9fY25mbiBzZWxlY3QodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7CmZsb2F0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0IGEsIGZsb2F0IGIsIHVpbnQgYyk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNlbGVjdChmbG9hdDIgYSwgZmxvYXQyIGIsIHVpbnQyIGMpOwpmbG9hdDMgX19vdmxkIF9fY25mbiBzZWxlY3QoZmxvYXQzIGEsIGZsb2F0MyBiLCB1aW50MyBjKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0NCBhLCBmbG9hdDQgYiwgdWludDQgYyk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNlbGVjdChmbG9hdDggYSwgZmxvYXQ4IGIsIHVpbnQ4IGMpOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGZsb2F0MTYgYSwgZmxvYXQxNiBiLCB1aW50MTYgYyk7Cgpsb25nIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcgYSwgbG9uZyBiLCB1bG9uZyBjKTsKdWxvbmcgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmcgYSwgdWxvbmcgYiwgdWxvbmcgYyk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmcyIGEsIGxvbmcyIGIsIHVsb25nMiBjKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMiBhLCB1bG9uZzIgYiwgdWxvbmcyIGMpOwpsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdChsb25nMyBhLCBsb25nMyBiLCB1bG9uZzMgYyk7CnVsb25nMyBfX292bGQgX19jbmZuIHNlbGVjdCh1bG9uZzMgYSwgdWxvbmczIGIsIHVsb25nMyBjKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzQgYSwgbG9uZzQgYiwgdWxvbmc0IGMpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzZWxlY3QodWxvbmc0IGEsIHVsb25nNCBiLCB1bG9uZzQgYyk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGxvbmc4IGEsIGxvbmc4IGIsIHVsb25nOCBjKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nOCBhLCB1bG9uZzggYiwgdWxvbmc4IGMpOwpsb25nMTYgX19vdmxkIF9fY25mbiBzZWxlY3QobG9uZzE2IGEsIGxvbmcxNiBiLCB1bG9uZzE2IGMpOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KHVsb25nMTYgYSwgdWxvbmcxNiBiLCB1bG9uZzE2IGMpOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUgYSwgZG91YmxlIGIsIGxvbmcgYyk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlMiBhLCBkb3VibGUyIGIsIGxvbmcyIGMpOwpkb3VibGUzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTMgYSwgZG91YmxlMyBiLCBsb25nMyBjKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGU0IGEsIGRvdWJsZTQgYiwgbG9uZzQgYyk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlOCBhLCBkb3VibGU4IGIsIGxvbmc4IGMpOwpkb3VibGUxNiBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUxNiBhLCBkb3VibGUxNiBiLCBsb25nMTYgYyk7CmRvdWJsZSBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGUgYSwgZG91YmxlIGIsIHVsb25nIGMpOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTIgYSwgZG91YmxlMiBiLCB1bG9uZzIgYyk7CmRvdWJsZTMgX19vdmxkIF9fY25mbiBzZWxlY3QoZG91YmxlMyBhLCBkb3VibGUzIGIsIHVsb25nMyBjKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNlbGVjdChkb3VibGU0IGEsIGRvdWJsZTQgYiwgdWxvbmc0IGMpOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTggYSwgZG91YmxlOCBiLCB1bG9uZzggYyk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGRvdWJsZTE2IGEsIGRvdWJsZTE2IGIsIHVsb25nMTYgYyk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYgYSwgaGFsZiBiLCBzaG9ydCBjKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjIgYSwgaGFsZjIgYiwgc2hvcnQyIGMpOwpoYWxmMyBfX292bGQgX19jbmZuIHNlbGVjdChoYWxmMyBhLCBoYWxmMyBiLCBzaG9ydDMgYyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY0IGEsIGhhbGY0IGIsIHNob3J0NCBjKTsKaGFsZjggX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjggYSwgaGFsZjggYiwgc2hvcnQ4IGMpOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzZWxlY3QoaGFsZjE2IGEsIGhhbGYxNiBiLCBzaG9ydDE2IGMpOwpoYWxmIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYgYSwgaGFsZiBiLCB1c2hvcnQgYyk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYyIGEsIGhhbGYyIGIsIHVzaG9ydDIgYyk7CmhhbGYzIF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGYzIGEsIGhhbGYzIGIsIHVzaG9ydDMgYyk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY0IGEsIGhhbGY0IGIsIHVzaG9ydDQgYyk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2VsZWN0KGhhbGY4IGEsIGhhbGY4IGIsIHVzaG9ydDggYyk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNlbGVjdChoYWxmMTYgYSwgaGFsZjE2IGIsIHVzaG9ydDE2IGMpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLy8gT3BlbkNMIHYxLjEgczYuMTEuNywgdjEuMiBzNi4xMi43LCB2Mi4wIHM2LjEzLjcgLSBWZWN0b3IgRGF0YSBMb2FkIGFuZCBTdG9yZSBGdW5jdGlvbnMKLy8gT3BlbkNMIGV4dGVuc2lvbnMgdjEuMSBzOS42LjYsIHYxLjIgczkuNS42LCB2Mi4wIHM5LjQuNiAtIFZlY3RvciBEYXRhIExvYWQgYW5kIFN0b3JlIEZ1bmN0aW9ucyBmb3IgSGFsZiBUeXBlCi8qKgogKiBVc2UgZ2VuZXJpYyB0eXBlIGdlbnR5cGUgdG8gaW5kaWNhdGUgdGhlIGJ1aWx0LWluIGRhdGEgdHlwZXMKICogY2hhciwgdWNoYXIsIHNob3J0LCB1c2hvcnQsIGludCwgdWludCwgbG9uZywgdWxvbmcsIGZsb2F0LAogKiBkb3VibGUgb3IgaGFsZi4KICoKICogdmxvYWRuIHJldHVybiBzaXplb2YgKGdlbnR5cGVuKSBieXRlcyBvZiBkYXRhIHJlYWQgZnJvbSBhZGRyZXNzIChwICsgKG9mZnNldCAqIG4pKS4KICoKICogdnN0b3JlbiB3cml0ZSBzaXplb2YgKGdlbnR5cGVuKSBieXRlcyBnaXZlbiBieSBkYXRhIHRvIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogbikpLgogKgogKiBUaGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiBuKSkgbXVzdCBiZQogKiA4LWJpdCBhbGlnbmVkIGlmIGdlbnR5cGUgaXMgY2hhciwgdWNoYXI7CiAqIDE2LWJpdCBhbGlnbmVkIGlmIGdlbnR5cGUgaXMgc2hvcnQsIHVzaG9ydCwgaGFsZjsKICogMzItYml0IGFsaWduZWQgaWYgZ2VudHlwZSBpcyBpbnQsIHVpbnQsIGZsb2F0OwogKiA2NC1iaXQgYWxpZ25lZCBpZiBnZW50eXBlIGlzIGxvbmcsIHVsb25nLCBkb3VibGUuCiAqLwoKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBjaGFyICpwKTsKdWNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1c2hvcnQgKnApOwppbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBsb25nICpwKTsKdWxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgY2hhciAqcCk7CnVjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdXNob3J0ICpwKTsKaW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgbG9uZyAqcCk7CnVsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGNoYXIgKnApOwp1Y2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IHVzaG9ydCAqcCk7CmludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGxvbmcgKnApOwp1bG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZmxvYXQgKnApOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgZG91YmxlICpwKTsKZG91YmxlMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIHZsb2FkKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmhhbGYyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKaGFsZjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwpoYWxmNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmhhbGY4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKaGFsZjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgdWNoYXIgKnApOwpzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgaW50ICpwKTsKdWludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgdWxvbmcgKnApOwpmbG9hdDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgY2hhciAqcCk7CnVjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IHVjaGFyICpwKTsKc2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3Qgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgdXNob3J0ICpwKTsKaW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGludCAqcCk7CnVpbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgbG9uZyAqcCk7CnVsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IHVsb25nICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGNoYXIgKnApOwp1Y2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1Y2hhciAqcCk7CnNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHVzaG9ydCAqcCk7CmludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBpbnQgKnApOwp1aW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGxvbmcgKnApOwp1bG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1bG9uZyAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgdWNoYXIgKnApOwpzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgaW50ICpwKTsKdWludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgdWxvbmcgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBjaGFyICpwKTsKdWNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1Y2hhciAqcCk7CnNob3J0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3Qgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1c2hvcnQgKnApOwppbnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBpbnQgKnApOwp1aW50MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBsb25nICpwKTsKdWxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCB1bG9uZyAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgZmxvYXQgKnApOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZTIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwpkb3VibGUzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgZG91YmxlICpwKTsKZG91YmxlNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGRvdWJsZSAqcCk7CmRvdWJsZTggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwpkb3VibGUxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIHZsb2FkKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpoYWxmMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CiNlbHNlCmNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgc2hvcnQgKnApOwp1c2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50MiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWludCAqcCk7CmxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZmxvYXQgKnApOwpjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGNoYXIgKnApOwp1Y2hhcjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpwKTsKdXNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCAqcCk7CmludDMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnApOwpsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGxvbmcgKnApOwp1bG9uZzMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpwKTsKY2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBjaGFyICpwKTsKdWNoYXI0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBzaG9ydCAqcCk7CnVzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQgKnApOwppbnQ0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCB1aW50ICpwKTsKbG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBsb25nICpwKTsKdWxvbmc0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBmbG9hdCAqcCk7CmNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgc2hvcnQgKnApOwp1c2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50OCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWludCAqcCk7Cmxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZmxvYXQgKnApOwpjaGFyMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgY2hhciAqcCk7CnVjaGFyMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpwKTsKdXNob3J0MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpwKTsKaW50MTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnApOwpsb25nMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgbG9uZyAqcCk7CnVsb25nMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpwKTsKY2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBzaG9ydCAqcCk7CnVzaG9ydDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1aW50ICpwKTsKbG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBmbG9hdCAqcCk7CmNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBjaGFyICpwKTsKdWNoYXIzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgc2hvcnQgKnApOwp1c2hvcnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1c2hvcnQgKnApOwppbnQzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWludCAqcCk7CmxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBsb25nICpwKTsKdWxvbmczIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZmxvYXQgKnApOwpjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgY2hhciAqcCk7CnVjaGFyNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHNob3J0ICpwKTsKdXNob3J0NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdXNob3J0ICpwKTsKaW50NCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVpbnQgKnApOwpsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgbG9uZyAqcCk7CnVsb25nNCBfX292bGQgdmxvYWQ0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGZsb2F0ICpwKTsKY2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBzaG9ydCAqcCk7CnVzaG9ydDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCB1aW50ICpwKTsKbG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBmbG9hdCAqcCk7CmNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnApOwp1Y2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgc2hvcnQgKnApOwp1c2hvcnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqcCk7CmludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWludCAqcCk7CmxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnApOwp1bG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZmxvYXQgKnApOwpjaGFyMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXIyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVjaGFyICpwKTsKc2hvcnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHNob3J0ICpwKTsKdXNob3J0MiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGludCAqcCk7CnVpbnQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVpbnQgKnApOwpsb25nMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmcyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVsb25nICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGZsb2F0ICpwKTsKY2hhcjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgY2hhciAqcCk7CnVjaGFyMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnNob3J0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnVzaG9ydDMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdXNob3J0ICpwKTsKaW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBpbnQgKnApOwp1aW50MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1aW50ICpwKTsKbG9uZzMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgbG9uZyAqcCk7CnVsb25nMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1bG9uZyAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBmbG9hdCAqcCk7CmNoYXI0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGNoYXIgKnApOwp1Y2hhcjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWNoYXIgKnApOwpzaG9ydDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgc2hvcnQgKnApOwp1c2hvcnQ0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVzaG9ydCAqcCk7CmludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaW50ICpwKTsKdWludDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWludCAqcCk7Cmxvbmc0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGxvbmcgKnApOwp1bG9uZzQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWxvbmcgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZmxvYXQgKnApOwpjaGFyOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXI4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVjaGFyICpwKTsKc2hvcnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHNob3J0ICpwKTsKdXNob3J0OCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGludCAqcCk7CnVpbnQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVpbnQgKnApOwpsb25nOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmc4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIHVsb25nICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGZsb2F0ICpwKTsKY2hhcjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBjaGFyICpwKTsKdWNoYXIxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWNoYXIgKnApOwpzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnVzaG9ydDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1c2hvcnQgKnApOwppbnQxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaW50ICpwKTsKdWludDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSB1aW50ICpwKTsKbG9uZzE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBsb25nICpwKTsKdWxvbmcxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgdWxvbmcgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBmbG9hdCAqcCk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUgKnApOwpkb3VibGU0IF9fb3ZsZCB2bG9hZDQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCk7CmRvdWJsZTIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqcCk7CmRvdWJsZTE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgZG91YmxlICpwKTsKZG91YmxlMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBkb3VibGUgKnApOwpkb3VibGUzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGRvdWJsZSAqcCk7CmRvdWJsZTQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZG91YmxlICpwKTsKZG91YmxlOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBkb3VibGUgKnApOwpkb3VibGUxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgZG91YmxlICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjIgX19vdmxkIHZsb2FkMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjMgX19vdmxkIHZsb2FkMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjggX19vdmxkIHZsb2FkOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKaGFsZjE2IF9fb3ZsZCB2bG9hZDE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmMiBfX292bGQgdmxvYWQyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmhhbGYzIF9fb3ZsZCB2bG9hZDMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmOCBfX292bGQgdmxvYWQ4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmhhbGYxNiBfX292bGQgdmxvYWQxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpoYWxmIF9fb3ZsZCB2bG9hZChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmhhbGYyIF9fb3ZsZCB2bG9hZDIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpoYWxmMyBfX292bGQgdmxvYWQzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKaGFsZjQgX19vdmxkIHZsb2FkNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmhhbGY4IF9fb3ZsZCB2bG9hZDgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpoYWxmMTYgX19vdmxkIHZsb2FkMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIHZzdG9yZTIoY2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihpbnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWludDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIobG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoc2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1c2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaW50MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVpbnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1Y2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodXNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGludDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1aW50NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1bG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoY2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChpbnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWludDggZGF0YSwgc2l6ZV90IG9mZnNldCwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgobG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihzaG9ydDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodXNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWludDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGZsb2F0ICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBkb3VibGUgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojaWZkZWYgY2xfa2hyX2ZwMTYKdm9pZCBfX292bGQgdnN0b3JlKGhhbGYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaGFsZjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaGFsZjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoaGFsZjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaGFsZjggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGhhbGYxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwMTYKI2Vsc2UKdm9pZCBfX292bGQgdnN0b3JlMihjaGFyMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1Y2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodXNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGludDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihsb25nMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1bG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoY2hhcjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhpbnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMobG9uZzMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGNoYXI0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1c2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoaW50NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGxvbmc0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChjaGFyOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1Y2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodXNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGludDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChsb25nOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1bG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGNoYXIxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWNoYXIxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1c2hvcnQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihpbnQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGxvbmcxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodWxvbmcxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWNoYXIyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1c2hvcnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihpbnQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIodWxvbmcyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVjaGFyMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModXNob3J0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaW50MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKHVsb25nMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoY2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1Y2hhcjQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVzaG9ydDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGludDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQobG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNCh1bG9uZzQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWNoYXI4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1c2hvcnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChpbnQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgodWxvbmc4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoY2hhcjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVzaG9ydDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYobG9uZzE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHVsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoY2hhcjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVjaGFyMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHNob3J0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVzaG9ydDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMih1aW50MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIobG9uZzIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKHVsb25nMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGNoYXIzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1Y2hhcjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVjaGFyICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhzaG9ydDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1c2hvcnQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1c2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTModWludDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGxvbmczIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyh1bG9uZzMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVsb25nICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGZsb2F0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChjaGFyNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgY2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodWNoYXI0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoc2hvcnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodXNob3J0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdXNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KHVpbnQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1aW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChsb25nNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgbG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQodWxvbmc0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBmbG9hdCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoY2hhcjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVjaGFyOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHNob3J0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgc2hvcnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVzaG9ydDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaW50ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOCh1aW50OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWludCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgobG9uZzggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KHVsb25nOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgdWxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZmxvYXQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihjaGFyMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGNoYXIgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1Y2hhcjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1Y2hhciAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KHNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHNob3J0ICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYodXNob3J0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVzaG9ydCAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGludDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1aW50MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIHVpbnQgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihsb25nMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGxvbmcgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNih1bG9uZzE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSB1bG9uZyAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGZsb2F0ICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBkb3VibGUgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGRvdWJsZSAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgZG91YmxlICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGRvdWJsZSAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMihoYWxmMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMyhoYWxmMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlOChoYWxmOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlMTYoaGFsZjE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUyKGhhbGYyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTMoaGFsZjMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmU4KGhhbGY4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTE2KGhhbGYxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUoaGFsZiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTIoaGFsZjIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUzKGhhbGYzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlNChoYWxmNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZTgoaGFsZjggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmUxNihoYWxmMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFJlYWQgc2l6ZW9mIChoYWxmKSBieXRlcyBvZiBkYXRhIGZyb20gYWRkcmVzcwogKiAocCArIG9mZnNldCkuIFRoZSBkYXRhIHJlYWQgaXMgaW50ZXJwcmV0ZWQgYXMgYQogKiBoYWxmIHZhbHVlLiBUaGUgaGFsZiB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYQogKiBmbG9hdCB2YWx1ZSBhbmQgdGhlIGZsb2F0IHZhbHVlIGlzIHJldHVybmVkLgogKiBUaGUgcmVhZCBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgb2Zmc2V0KQogKiBtdXN0IGJlIDE2LWJpdCBhbGlnbmVkLgogKi8KZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmZsb2F0IF9fb3ZsZCB2bG9hZF9oYWxmKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwojZWxzZQpmbG9hdCBfX292bGQgdmxvYWRfaGFsZihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQgX19vdmxkIHZsb2FkX2hhbGYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFJlYWQgc2l6ZW9mIChoYWxmbikgYnl0ZXMgb2YgZGF0YSBmcm9tIGFkZHJlc3MKICogKHAgKyAob2Zmc2V0ICogbikpLiBUaGUgZGF0YSByZWFkIGlzIGludGVycHJldGVkCiAqIGFzIGEgaGFsZm4gdmFsdWUuIFRoZSBoYWxmbiB2YWx1ZSByZWFkIGlzCiAqIGNvbnZlcnRlZCB0byBhIGZsb2F0biB2YWx1ZSBhbmQgdGhlIGZsb2F0bgogKiB2YWx1ZSBpcyByZXR1cm5lZC4gVGhlIHJlYWQgYWRkcmVzcyBjb21wdXRlZAogKiBhcyAocCArIChvZmZzZXQgKiBuKSkgbXVzdCBiZSAxNi1iaXQgYWxpZ25lZC4KICovCmZsb2F0MiBfX292bGQgdmxvYWRfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZF9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fY29uc3RhbnQgaGFsZiAqcCk7CiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpmbG9hdDIgX19vdmxkIHZsb2FkX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZF9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbHNlCmZsb2F0MiBfX292bGQgdmxvYWRfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWRfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZF9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmZsb2F0NCBfX292bGQgdmxvYWRfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZF9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZF9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgX19sb2NhbCBoYWxmICpwKTsKZmxvYXQyIF9fb3ZsZCB2bG9hZF9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkX2hhbGY0KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZF9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovKioKICogVGhlIGZsb2F0IHZhbHVlIGdpdmVuIGJ5IGRhdGEgaXMgZmlyc3QKICogY29udmVydGVkIHRvIGEgaGFsZiB2YWx1ZSB1c2luZyB0aGUgYXBwcm9wcmlhdGUKICogcm91bmRpbmcgbW9kZS4gVGhlIGhhbGYgdmFsdWUgaXMgdGhlbiB3cml0dGVuCiAqIHRvIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyBvZmZzZXQpLiBUaGUKICogYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIG9mZnNldCkgbXVzdCBiZSAxNi0KICogYml0IGFsaWduZWQuCiAqIHZzdG9yZV9oYWxmIHVzZSB0aGUgY3VycmVudCByb3VuZGluZyBtb2RlLgogKiBUaGUgZGVmYXVsdCBjdXJyZW50IHJvdW5kaW5nIG1vZGUgaXMgcm91bmQgdG8KICogbmVhcmVzdCBldmVuLgogKi8KI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNlbHNlCnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydHooZmxvYXQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGZsb2F0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihmbG9hdCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0cChkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydGUoZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0eihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydG4oZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0ZShkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZl9ydHooZG91YmxlIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGZfcnRwKGRvdWJsZSBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmX3J0bihkb3VibGUgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLyoqCiAqIFRoZSBmbG9hdG4gdmFsdWUgZ2l2ZW4gYnkgZGF0YSBpcyBjb252ZXJ0ZWQgdG8KICogYSBoYWxmbiB2YWx1ZSB1c2luZyB0aGUgYXBwcm9wcmlhdGUgcm91bmRpbmcKICogbW9kZS4gVGhlIGhhbGZuIHZhbHVlIGlzIHRoZW4gd3JpdHRlbiB0bwogKiBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgKG9mZnNldCAqIG4pKS4gVGhlCiAqIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogbikpIG11c3QgYmUKICogMTYtYml0IGFsaWduZWQuCiAqIHZzdG9yZV9oYWxmbiB1c2VzIHRoZSBjdXJyZW50IHJvdW5kaW5nIG1vZGUuCiAqIFRoZSBkZWZhdWx0IGN1cnJlbnQgcm91bmRpbmcgbW9kZSBpcyByb3VuZCB0bwogKiBuZWFyZXN0IGV2ZW4uCiAqLwojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydGUoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0eihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnR6KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0eihmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHAoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHAoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydG4oZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZWxzZQp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0cChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0ZShkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydGUoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHAoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHAoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0bihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydG4oZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0ZShkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0ZShkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnR6KGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0eihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0bihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0bihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYyX3J0eihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY0X3J0eihkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGY4X3J0eihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjNfcnRwKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVfaGFsZjE2X3J0cChkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKCi8qKgogKiBGb3IgbiA9IDEsIDIsIDQsIDggYW5kIDE2IHJlYWQgc2l6ZW9mIChoYWxmbikKICogYnl0ZXMgb2YgZGF0YSBmcm9tIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogbikpLgogKiBUaGUgZGF0YSByZWFkIGlzIGludGVycHJldGVkIGFzIGEgaGFsZm4gdmFsdWUuCiAqIFRoZSBoYWxmbiB2YWx1ZSByZWFkIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0bgogKiB2YWx1ZSBhbmQgdGhlIGZsb2F0biB2YWx1ZSBpcyByZXR1cm5lZC4KICogVGhlIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogbikpCiAqIG11c3QgYmUgYWxpZ25lZCB0byBzaXplb2YgKGhhbGZuKSBieXRlcy4KICogRm9yIG4gPSAzLCB2bG9hZGFfaGFsZjMgcmVhZHMgYSBoYWxmMyBmcm9tCiAqIGFkZHJlc3MgKHAgKyAob2Zmc2V0ICogNCkpIGFuZCByZXR1cm5zIGEgZmxvYXQzLgogKiBUaGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiA0KSkKICogbXVzdCBiZSBhbGlnbmVkIHRvIHNpemVvZiAoaGFsZikgKiA0IGJ5dGVzLgogKi8KZmxvYXQyIF9fb3ZsZCB2bG9hZGFfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZGFfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQ0IF9fb3ZsZCB2bG9hZGFfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZGFfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgX19jb25zdGFudCBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRhX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2NvbnN0YW50IGhhbGYgKnApOwojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKZmxvYXQyIF9fb3ZsZCB2bG9hZGFfaGFsZjIoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CmZsb2F0MyBfX292bGQgdmxvYWRhX2hhbGYzKHNpemVfdCBvZmZzZXQsIGNvbnN0IGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBoYWxmICpwKTsKZmxvYXQ4IF9fb3ZsZCB2bG9hZGFfaGFsZjgoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CmZsb2F0MTYgX19vdmxkIHZsb2FkYV9oYWxmMTYoc2l6ZV90IG9mZnNldCwgY29uc3QgaGFsZiAqcCk7CiNlbHNlCmZsb2F0MiBfX292bGQgdmxvYWRhX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkYV9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpwKTsKZmxvYXQ0IF9fb3ZsZCB2bG9hZGFfaGFsZjQoc2l6ZV90IG9mZnNldCwgY29uc3QgX19nbG9iYWwgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRhX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZGFfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fZ2xvYmFsIGhhbGYgKnApOwpmbG9hdDIgX19vdmxkIHZsb2FkYV9oYWxmMihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDMgX19vdmxkIHZsb2FkYV9oYWxmMyhzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDggX19vdmxkIHZsb2FkYV9oYWxmOChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX2xvY2FsIGhhbGYgKnApOwpmbG9hdDE2IF9fb3ZsZCB2bG9hZGFfaGFsZjE2KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fbG9jYWwgaGFsZiAqcCk7CmZsb2F0MiBfX292bGQgdmxvYWRhX2hhbGYyKHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQzIF9fb3ZsZCB2bG9hZGFfaGFsZjMoc2l6ZV90IG9mZnNldCwgY29uc3QgX19wcml2YXRlIGhhbGYgKnApOwpmbG9hdDQgX19vdmxkIHZsb2FkYV9oYWxmNChzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CmZsb2F0OCBfX292bGQgdmxvYWRhX2hhbGY4KHNpemVfdCBvZmZzZXQsIGNvbnN0IF9fcHJpdmF0ZSBoYWxmICpwKTsKZmxvYXQxNiBfX292bGQgdmxvYWRhX2hhbGYxNihzaXplX3Qgb2Zmc2V0LCBjb25zdCBfX3ByaXZhdGUgaGFsZiAqcCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovKioKICogVGhlIGZsb2F0biB2YWx1ZSBnaXZlbiBieSBkYXRhIGlzIGNvbnZlcnRlZCB0bwogKiBhIGhhbGZuIHZhbHVlIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSByb3VuZGluZwogKiBtb2RlLgogKiBGb3IgbiA9IDEsIDIsIDQsIDggYW5kIDE2LCB0aGUgaGFsZm4gdmFsdWUgaXMKICogd3JpdHRlbiB0byB0aGUgYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQKICogKiBuKSkuIFRoZSBhZGRyZXNzIGNvbXB1dGVkIGFzIChwICsgKG9mZnNldCAqCiAqIG4pKSBtdXN0IGJlIGFsaWduZWQgdG8gc2l6ZW9mIChoYWxmbikgYnl0ZXMuCiAqIEZvciBuID0gMywgdGhlIGhhbGYzIHZhbHVlIGlzIHdyaXR0ZW4gdG8gdGhlCiAqIGFkZHJlc3MgY29tcHV0ZWQgYXMgKHAgKyAob2Zmc2V0ICogNCkpLiBUaGUKICogYWRkcmVzcyBjb21wdXRlZCBhcyAocCArIChvZmZzZXQgKiA0KSkgbXVzdCBiZQogKiBhbGlnbmVkIHRvIHNpemVvZiAoaGFsZikgKiA0IGJ5dGVzLgogKiB2c3RvcmVhX2hhbGZuIHVzZXMgdGhlIGN1cnJlbnQgcm91bmRpbmcKICogbW9kZS4gVGhlIGRlZmF1bHQgY3VycmVudCByb3VuZGluZyBtb2RlIGlzCiAqIHJvdW5kIHRvIG5lYXJlc3QgZXZlbi4KICovCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMyhmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTYoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydGUoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0ZShmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRlKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0eihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHooZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0eihmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHAoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0cChmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHAoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHAoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0bihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBoYWxmICpwKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbHNlCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjIoZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjgoZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0ZShmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydGUoZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZmxvYXQyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0eihmbG9hdDQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZmxvYXQ4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0cChmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZmxvYXQzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0cChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGZsb2F0MTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0bihmbG9hdDMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydG4oZmxvYXQxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihmbG9hdDIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjQoZmxvYXQ0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChmbG9hdDggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRlKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRlKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRlKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnR6KGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnR6KGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnR6KGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0eihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRwKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRwKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0cChmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRuKGZsb2F0MiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGZsb2F0MyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnRuKGZsb2F0NCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRuKGZsb2F0OCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihmbG9hdDE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4KGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19nbG9iYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydGUoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRlKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHooZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHAoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHAoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2dsb2JhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fZ2xvYmFsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjMoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0ZShkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydGUoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0ZShkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydHooZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0eihkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydHooZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHooZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHAoZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0cChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRwKGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0bihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRuKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19sb2NhbCBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0bihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fbG9jYWwgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0bihkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX2xvY2FsIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMyhkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNChkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOChkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTYoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydGUoZG91YmxlMiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjNfcnRlKGRvdWJsZTMgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY0X3J0ZShkb3VibGU0IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydGUoZG91YmxlOCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjE2X3J0ZShkb3VibGUxNiBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7Cgp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYyX3J0eihkb3VibGUyIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydHooZG91YmxlMyBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjRfcnR6KGRvdWJsZTQgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGY4X3J0eihkb3VibGU4IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnR6KGRvdWJsZTE2IGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKCnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjJfcnRwKGRvdWJsZTIgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYzX3J0cChkb3VibGUzIGRhdGEsIHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydHAoZG91YmxlNCBkYXRhLCBzaXplX3Qgb2Zmc2V0LCBfX3ByaXZhdGUgaGFsZiAqcCk7CnZvaWQgX19vdmxkIHZzdG9yZWFfaGFsZjhfcnRwKGRvdWJsZTggZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwp2b2lkIF9fb3ZsZCB2c3RvcmVhX2hhbGYxNl9ydHAoZG91YmxlMTYgZGF0YSwgc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwoKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMl9ydG4oZG91YmxlMiBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmM19ydG4oZG91YmxlMyBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmNF9ydG4oZG91YmxlNCBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmOF9ydG4oZG91YmxlOCBkYXRhLHNpemVfdCBvZmZzZXQsIF9fcHJpdmF0ZSBoYWxmICpwKTsKdm9pZCBfX292bGQgdnN0b3JlYV9oYWxmMTZfcnRuKGRvdWJsZTE2IGRhdGEsc2l6ZV90IG9mZnNldCwgX19wcml2YXRlIGhhbGYgKnApOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQoKLy8gT3BlbkNMIHYxLjEgczYuMTEuOCwgdjEuMiBzNi4xMi44LCB2Mi4wIHM2LjEzLjggLSBTeW5jaHJvbml6YXRpb24gRnVuY3Rpb25zCgovKioKICogQWxsIHdvcmstaXRlbXMgaW4gYSB3b3JrLWdyb3VwIGV4ZWN1dGluZyB0aGUga2VybmVsCiAqIG9uIGEgcHJvY2Vzc29yIG11c3QgZXhlY3V0ZSB0aGlzIGZ1bmN0aW9uIGJlZm9yZSBhbnkKICogYXJlIGFsbG93ZWQgdG8gY29udGludWUgZXhlY3V0aW9uIGJleW9uZCB0aGUgYmFycmllci4KICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluCiAqIGEgd29yay1ncm91cCBleGVjdXRpbmcgdGhlIGtlcm5lbC4KICogSWYgYmFycmllciBpcyBpbnNpZGUgYSBjb25kaXRpb25hbCBzdGF0ZW1lbnQsIHRoZW4gYWxsCiAqIHdvcmstaXRlbXMgbXVzdCBlbnRlciB0aGUgY29uZGl0aW9uYWwgaWYgYW55IHdvcmstaXRlbQogKiBlbnRlcnMgdGhlIGNvbmRpdGlvbmFsIHN0YXRlbWVudCBhbmQgZXhlY3V0ZXMgdGhlCiAqIGJhcnJpZXIuCiAqIElmIGJhcnJlciBpcyBpbnNpZGUgYSBsb29wLCBhbGwgd29yay1pdGVtcyBtdXN0IGV4ZWN1dGUKICogdGhlIGJhcnJpZXIgZm9yIGVhY2ggaXRlcmF0aW9uIG9mIHRoZSBsb29wIGJlZm9yZSBhbnkgYXJlCiAqIGFsbG93ZWQgdG8gY29udGludWUgZXhlY3V0aW9uIGJleW9uZCB0aGUgYmFycmllci4KICogVGhlIGJhcnJpZXIgZnVuY3Rpb24gYWxzbyBxdWV1ZXMgYSBtZW1vcnkgZmVuY2UKICogKHJlYWRzIGFuZCB3cml0ZXMpIHRvIGVuc3VyZSBjb3JyZWN0IG9yZGVyaW5nIG9mCiAqIG1lbW9yeSBvcGVyYXRpb25zIHRvIGxvY2FsIG9yIGdsb2JhbCBtZW1vcnkuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeSBhZGRyZXNzIHNwYWNlCiAqIGFuZCBjYW4gYmUgc2V0IHRvIGEgY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlcy4KICogQ0xLX0xPQ0FMX01FTV9GRU5DRSAtIFRoZSBiYXJyaWVyIGZ1bmN0aW9uCiAqIHdpbGwgZWl0aGVyIGZsdXNoIGFueSB2YXJpYWJsZXMgc3RvcmVkIGluIGxvY2FsIG1lbW9yeQogKiBvciBxdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdCBvcmRlcmluZyBvZgogKiBtZW1vcnkgb3BlcmF0aW9ucyB0byBsb2NhbCBtZW1vcnkuCiAqIENMS19HTE9CQUxfTUVNX0ZFTkNFIC0gVGhlIGJhcnJpZXIgZnVuY3Rpb24KICogd2lsbCBxdWV1ZSBhIG1lbW9yeSBmZW5jZSB0byBlbnN1cmUgY29ycmVjdCBvcmRlcmluZwogKiBvZiBtZW1vcnkgb3BlcmF0aW9ucyB0byBnbG9iYWwgbWVtb3J5LiBUaGlzIGNhbiBiZQogKiB1c2VmdWwgd2hlbiB3b3JrLWl0ZW1zLCBmb3IgZXhhbXBsZSwgd3JpdGUgdG8gYnVmZmVyIG9yCiAqIGltYWdlIG9iamVjdHMgYW5kIHRoZW4gd2FudCB0byByZWFkIHRoZSB1cGRhdGVkIGRhdGEuCiAqLwoKdm9pZCBfX292bGQgX19jb252IGJhcnJpZXIoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdm9pZCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2JhcnJpZXIoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS45LCB2MS4yIHM2LjEyLjkgLSBFeHBsaWNpdCBNZW1vcnkgRmVuY2UgRnVuY3Rpb25zCgovKioKICogT3JkZXJzIGxvYWRzIGFuZCBzdG9yZXMgb2YgYSB3b3JrLWl0ZW0KICogZXhlY3V0aW5nIGEga2VybmVsLiBUaGlzIG1lYW5zIHRoYXQgbG9hZHMKICogYW5kIHN0b3JlcyBwcmVjZWRpbmcgdGhlIG1lbV9mZW5jZSB3aWxsCiAqIGJlIGNvbW1pdHRlZCB0byBtZW1vcnkgYmVmb3JlIGFueSBsb2FkcwogKiBhbmQgc3RvcmVzIGZvbGxvd2luZyB0aGUgbWVtX2ZlbmNlLgogKiBUaGUgZmxhZ3MgYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBtZW1vcnkKICogYWRkcmVzcyBzcGFjZSBhbmQgY2FuIGJlIHNldCB0byBhCiAqIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgbGl0ZXJhbAogKiB2YWx1ZXM6CiAqIENMS19MT0NBTF9NRU1fRkVOQ0UKICogQ0xLX0dMT0JBTF9NRU1fRkVOQ0UuCiAqLwp2b2lkIF9fb3ZsZCBtZW1fZmVuY2UoY2xfbWVtX2ZlbmNlX2ZsYWdzIGZsYWdzKTsKCi8qKgogKiBSZWFkIG1lbW9yeSBiYXJyaWVyIHRoYXQgb3JkZXJzIG9ubHkKICogbG9hZHMuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeQogKiBhZGRyZXNzIHNwYWNlIGFuZCBjYW4gYmUgc2V0IHRvIGEKICogY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlczoKICogQ0xLX0xPQ0FMX01FTV9GRU5DRQogKiBDTEtfR0xPQkFMX01FTV9GRU5DRS4KICovCnZvaWQgX19vdmxkIHJlYWRfbWVtX2ZlbmNlKGNsX21lbV9mZW5jZV9mbGFncyBmbGFncyk7CgovKioKICogV3JpdGUgbWVtb3J5IGJhcnJpZXIgdGhhdCBvcmRlcnMgb25seQogKiBzdG9yZXMuCiAqIFRoZSBmbGFncyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG1lbW9yeQogKiBhZGRyZXNzIHNwYWNlIGFuZCBjYW4gYmUgc2V0IHRvIGEKICogY29tYmluYXRpb24gb2YgdGhlIGZvbGxvd2luZyBsaXRlcmFsCiAqIHZhbHVlczoKICogQ0xLX0xPQ0FMX01FTV9GRU5DRQogKiBDTEtfR0xPQkFMX01FTV9GRU5DRS4KICovCnZvaWQgX19vdmxkIHdyaXRlX21lbV9mZW5jZShjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MpOwoKLy8gT3BlbkNMIHYyLjAgczYuMTMuOSAtIEFkZHJlc3MgU3BhY2UgUXVhbGlmaWVyIEZ1bmN0aW9ucwoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmNsX21lbV9mZW5jZV9mbGFncyBfX292bGQgZ2V0X2ZlbmNlKGNvbnN0IHZvaWQgKnB0cik7CmNsX21lbV9mZW5jZV9mbGFncyBfX292bGQgZ2V0X2ZlbmNlKHZvaWQgKnB0cik7CgovKioKICogQnVpbHRpbiBmdW5jdGlvbnMgdG9fZ2xvYmFsLCB0b19sb2NhbCwgYW5kIHRvX3ByaXZhdGUgbmVlZCB0byBiZSBkZWNsYXJlZCBhcyBDbGFuZyBidWlsdGluIGZ1bmN0aW9ucwogKiBhbmQgY2hlY2tlZCBpbiBTZW1hIHNpbmNlIHRoZXkgc2hvdWxkIGJlIGRlY2xhcmVkIGFzCiAqICAgYWRkciBnZW50eXBlKiB0b19hZGRyIChnZW50eXBlKik7CiAqIHdoZXJlIGdlbnR5cGUgaXMgYnVpbHRpbiB0eXBlIG9yIHVzZXIgZGVmaW5lZCB0eXBlLgogKi8KCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xMCwgdjEuMiBzNi4xMi4xMCwgdjIuMCBzNi4xMy4xMCAtIEFzeW5jIENvcGllcyBmcm9tIEdsb2JhbCB0byBMb2NhbCBNZW1vcnksIExvY2FsIHRvIEdsb2JhbCBNZW1vcnksIGFuZCBQcmVmZXRjaAoKLyoqCiAqIGV2ZW50X3QgYXN5bmNfd29ya19ncm91cF9jb3B5ICgKICogX19nbG9iYWwgZ2VudHlwZSAqZHN0LAogKiBjb25zdCBfX2xvY2FsIGdlbnR5cGUgKnNyYywKICogc2l6ZV90IG51bV9lbGVtZW50cywKICogZXZlbnRfdCBldmVudCkKICogUGVyZm9ybSBhbiBhc3luYyBjb3B5IG9mIG51bV9lbGVtZW50cwogKiBnZW50eXBlIGVsZW1lbnRzIGZyb20gc3JjIHRvIGRzdC4gVGhlIGFzeW5jCiAqIGNvcHkgaXMgcGVyZm9ybWVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29ya2dyb3VwCiAqIGFuZCB0aGlzIGJ1aWx0LWluIGZ1bmN0aW9uIG11c3QgdGhlcmVmb3JlCiAqIGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29ya2dyb3VwCiAqIGV4ZWN1dGluZyB0aGUga2VybmVsIHdpdGggdGhlIHNhbWUKICogYXJndW1lbnQgdmFsdWVzOyBvdGhlcndpc2UgdGhlIHJlc3VsdHMgYXJlCiAqIHVuZGVmaW5lZC4KICogUmV0dXJucyBhbiBldmVudCBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCBieQogKiB3YWl0X2dyb3VwX2V2ZW50cyB0byB3YWl0IGZvciB0aGUgYXN5bmMgY29weQogKiB0byBmaW5pc2guIFRoZSBldmVudCBhcmd1bWVudCBjYW4gYWxzbyBiZSB1c2VkCiAqIHRvIGFzc29jaWF0ZSB0aGUgYXN5bmNfd29ya19ncm91cF9jb3B5IHdpdGgKICogYSBwcmV2aW91cyBhc3luYyBjb3B5IGFsbG93aW5nIGFuIGV2ZW50IHRvIGJlCiAqIHNoYXJlZCBieSBtdWx0aXBsZSBhc3luYyBjb3BpZXM7IG90aGVyd2lzZSBldmVudAogKiBzaG91bGQgYmUgemVyby4KICogSWYgZXZlbnQgYXJndW1lbnQgaXMgbm9uLXplcm8sIHRoZSBldmVudCBvYmplY3QKICogc3VwcGxpZWQgaW4gZXZlbnQgYXJndW1lbnQgd2lsbCBiZSByZXR1cm5lZC4KICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwZXJmb3JtIGFueSBpbXBsaWNpdAogKiBzeW5jaHJvbml6YXRpb24gb2Ygc291cmNlIGRhdGEgc3VjaCBhcyB1c2luZyBhCiAqIGJhcnJpZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNvcHkuCiAqLwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBjaGFyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBzaG9ydCAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdXNob3J0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWludCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBsb25nICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBmbG9hdCAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgY2hhcjIgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyMiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHNob3J0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVzaG9ydDIgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1aW50MiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgbG9uZzIgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nMiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGZsb2F0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGNoYXIzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1Y2hhcjMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBzaG9ydDMgKmRzdCwgY29uc3QgX19nbG9iYWwgc2hvcnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1c2hvcnQzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGludDMgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWludDMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWludDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGxvbmczICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1bG9uZzMgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBmbG9hdDMgKmRzdCwgY29uc3QgX19nbG9iYWwgZmxvYXQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBjaGFyNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWNoYXI0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgc2hvcnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdXNob3J0NCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBpbnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVpbnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBsb25nNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgdWxvbmc0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZmxvYXQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgY2hhcjggKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyOCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHNob3J0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVzaG9ydDggKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1aW50OCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgbG9uZzggKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nOCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGZsb2F0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGNoYXIxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVjaGFyMTYgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgc2hvcnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCB1c2hvcnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaW50MTYgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVpbnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGxvbmcxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIHVsb25nMTYgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZmxvYXQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgY2hhciAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhciAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgc2hvcnQgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVzaG9ydCAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludCAqZHN0LCBjb25zdCBfX2xvY2FsIGludCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVpbnQgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgbG9uZyAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZyAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZmxvYXQgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGNoYXIyICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjIgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBzaG9ydDIgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1c2hvcnQyICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDIgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWludDIgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGxvbmcyICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzIgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBmbG9hdDIgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBjaGFyMyAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWNoYXIzICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgc2hvcnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgc2hvcnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdXNob3J0MyAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBpbnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVpbnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgdWludDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBsb25nMyAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWxvbmczICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmczICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZmxvYXQzICpkc3QsIGNvbnN0IF9fbG9jYWwgZmxvYXQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgY2hhcjQgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVjaGFyNCAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHNob3J0NCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDQgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgaW50NCAqZHN0LCBjb25zdCBfX2xvY2FsIGludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1aW50NCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgbG9uZzQgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHVsb25nNCAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGZsb2F0NCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGNoYXI4ICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjggKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBzaG9ydDggKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1c2hvcnQ4ICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDggKmRzdCwgY29uc3QgX19sb2NhbCBpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdWludDggKmRzdCwgY29uc3QgX19sb2NhbCB1aW50OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGxvbmc4ICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzggKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBmbG9hdDggKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBjaGFyMTYgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1Y2hhcjE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIHNob3J0MTYgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgdXNob3J0MTYgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGludDE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1aW50MTYgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBsb25nMTYgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCB1bG9uZzE2ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGZsb2F0MTYgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBkb3VibGUzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGRvdWJsZTQgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgZG91YmxlOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGU4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBkb3VibGUxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGUxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZSAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZSAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTIgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGUyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZG91YmxlMyAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBkb3VibGU0ICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTggKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGU4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgZG91YmxlMTYgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGUxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaGFsZjIgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYzICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGYzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19sb2NhbCBoYWxmNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fbG9jYWwgaGFsZjggKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2xvY2FsIGhhbGYxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGhhbGYyICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmMyAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGYzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX2NvcHkoX19nbG9iYWwgaGFsZjQgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmNCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9jb3B5KF9fZ2xvYmFsIGhhbGY4ICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfY29weShfX2dsb2JhbCBoYWxmMTYgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmMTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgZXZlbnRfdCBldmVudCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogUGVyZm9ybSBhbiBhc3luYyBnYXRoZXIgb2YgbnVtX2VsZW1lbnRzCiAqIGdlbnR5cGUgZWxlbWVudHMgZnJvbSBzcmMgdG8gZHN0LiBUaGUKICogc3JjX3N0cmlkZSBpcyB0aGUgc3RyaWRlIGluIGVsZW1lbnRzIGZvciBlYWNoCiAqIGdlbnR5cGUgZWxlbWVudCByZWFkIGZyb20gc3JjLiBUaGUgZHN0X3N0cmlkZQogKiBpcyB0aGUgc3RyaWRlIGluIGVsZW1lbnRzIGZvciBlYWNoIGdlbnR5cGUKICogZWxlbWVudCB3cml0dGVuIHRvIGRzdC4gVGhlIGFzeW5jIGdhdGhlciBpcwogKiBwZXJmb3JtZWQgYnkgYWxsIHdvcmstaXRlbXMgaW4gYSB3b3JrLWdyb3VwLgogKiBUaGlzIGJ1aWx0LWluIGZ1bmN0aW9uIG11c3QgdGhlcmVmb3JlIGJlCiAqIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JrLWl0ZW1zIGluIGEgd29yay1ncm91cAogKiBleGVjdXRpbmcgdGhlIGtlcm5lbCB3aXRoIHRoZSBzYW1lIGFyZ3VtZW50CiAqIHZhbHVlczsgb3RoZXJ3aXNlIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQuCiAqIFJldHVybnMgYW4gZXZlbnQgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgYnkKICogd2FpdF9ncm91cF9ldmVudHMgdG8gd2FpdCBmb3IgdGhlIGFzeW5jIGNvcHkKICogdG8gZmluaXNoLiBUaGUgZXZlbnQgYXJndW1lbnQgY2FuIGFsc28gYmUgdXNlZAogKiB0byBhc3NvY2lhdGUgdGhlCiAqIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5IHdpdGggYQogKiBwcmV2aW91cyBhc3luYyBjb3B5IGFsbG93aW5nIGFuIGV2ZW50IHRvIGJlCiAqIHNoYXJlZCBieSBtdWx0aXBsZSBhc3luYyBjb3BpZXM7IG90aGVyd2lzZSBldmVudAogKiBzaG91bGQgYmUgemVyby4KICogSWYgZXZlbnQgYXJndW1lbnQgaXMgbm9uLXplcm8sIHRoZSBldmVudCBvYmplY3QKICogc3VwcGxpZWQgaW4gZXZlbnQgYXJndW1lbnQgd2lsbCBiZSByZXR1cm5lZC4KICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwZXJmb3JtIGFueSBpbXBsaWNpdAogKiBzeW5jaHJvbml6YXRpb24gb2Ygc291cmNlIGRhdGEgc3VjaCBhcyB1c2luZyBhCiAqIGJhcnJpZXIgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIGNvcHkuCiAqLwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGNoYXIgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhciAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHNob3J0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1c2hvcnQgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1aW50ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGxvbmcgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGZsb2F0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBjaGFyMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgc2hvcnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdXNob3J0MiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVpbnQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBsb25nMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZmxvYXQyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgY2hhcjMgKmRzdCwgY29uc3QgX19nbG9iYWwgY2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVjaGFyMyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHNob3J0MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVzaG9ydDMgKmRzdCwgY29uc3QgX19nbG9iYWwgdXNob3J0MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaW50MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1aW50MyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1aW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgbG9uZzMgKmRzdCwgY29uc3QgX19nbG9iYWwgbG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVsb25nMyAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGZsb2F0MyAqZHN0LCBjb25zdCBfX2dsb2JhbCBmbG9hdDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGNoYXI0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1Y2hhcjQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBzaG9ydDQgKmRzdCwgY29uc3QgX19nbG9iYWwgc2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1c2hvcnQ0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGludDQgKmRzdCwgY29uc3QgX19nbG9iYWwgaW50NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWludDQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGxvbmc0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCB1bG9uZzQgKmRzdCwgY29uc3QgX19nbG9iYWwgdWxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBmbG9hdDQgKmRzdCwgY29uc3QgX19nbG9iYWwgZmxvYXQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBjaGFyOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXI4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgc2hvcnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdXNob3J0OCAqZHN0LCBjb25zdCBfX2dsb2JhbCB1c2hvcnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGludDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVpbnQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBsb25nOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmc4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZmxvYXQ4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgY2hhcjE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWNoYXIxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1Y2hhcjE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBzaG9ydDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHNob3J0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIHVzaG9ydDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBpbnQxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCBpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWludDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIHVpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgbG9uZzE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgdWxvbmcxNiAqZHN0LCBjb25zdCBfX2dsb2JhbCB1bG9uZzE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBmbG9hdDE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGZsb2F0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBjaGFyICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhciAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBzaG9ydCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdXNob3J0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWludCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBsb25nICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmcgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBmbG9hdCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgY2hhcjIgKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyMiAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHNob3J0MiAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDIgKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50MiAqZHN0LCBjb25zdCBfX2xvY2FsIGludDIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1aW50MiAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQyICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgbG9uZzIgKmRzdCwgY29uc3QgX19sb2NhbCBsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nMiAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGZsb2F0MiAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0MiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGNoYXIzICpkc3QsIGNvbnN0IF9fbG9jYWwgY2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1Y2hhcjMgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBzaG9ydDMgKmRzdCwgY29uc3QgX19sb2NhbCBzaG9ydDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1c2hvcnQzICpkc3QsIGNvbnN0IF9fbG9jYWwgdXNob3J0MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGludDMgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQzICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWludDMgKmRzdCwgY29uc3QgX19sb2NhbCB1aW50MyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGxvbmczICpkc3QsIGNvbnN0IF9fbG9jYWwgbG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1bG9uZzMgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBmbG9hdDMgKmRzdCwgY29uc3QgX19sb2NhbCBmbG9hdDMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBjaGFyNCAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWNoYXI0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWNoYXI0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgc2hvcnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgc2hvcnQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdXNob3J0NCAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBpbnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgaW50NCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVpbnQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWludDQgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBsb25nNCAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgdWxvbmc0ICpkc3QsIGNvbnN0IF9fbG9jYWwgdWxvbmc0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZmxvYXQ0ICpkc3QsIGNvbnN0IF9fbG9jYWwgZmxvYXQ0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgY2hhcjggKmRzdCwgY29uc3QgX19sb2NhbCBjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyOCAqZHN0LCBjb25zdCBfX2xvY2FsIHVjaGFyOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHNob3J0OCAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVzaG9ydDggKmRzdCwgY29uc3QgX19sb2NhbCB1c2hvcnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50OCAqZHN0LCBjb25zdCBfX2xvY2FsIGludDggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1aW50OCAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQ4ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgbG9uZzggKmRzdCwgY29uc3QgX19sb2NhbCBsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nOCAqZHN0LCBjb25zdCBfX2xvY2FsIHVsb25nOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGZsb2F0OCAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0OCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGNoYXIxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGNoYXIxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVjaGFyMTYgKmRzdCwgY29uc3QgX19sb2NhbCB1Y2hhcjE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgc2hvcnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHNob3J0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCB1c2hvcnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHVzaG9ydDE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaW50MTYgKmRzdCwgY29uc3QgX19sb2NhbCBpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVpbnQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIHVpbnQxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGxvbmcxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGxvbmcxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIHVsb25nMTYgKmRzdCwgY29uc3QgX19sb2NhbCB1bG9uZzE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZmxvYXQxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGZsb2F0MTYgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGUgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGUyICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGRvdWJsZTMgKmRzdCwgY29uc3QgX19nbG9iYWwgZG91YmxlMyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgZG91YmxlNCAqZHN0LCBjb25zdCBfX2dsb2JhbCBkb3VibGU0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBkb3VibGU4ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGRvdWJsZTE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlMiAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTIgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBkb3VibGUzICpkc3QsIGNvbnN0IF9fbG9jYWwgZG91YmxlMyAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGRvdWJsZTQgKmRzdCwgY29uc3QgX19sb2NhbCBkb3VibGU0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgZG91YmxlOCAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTggKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBkb3VibGUxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGRvdWJsZTE2ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKI2lmZGVmIGNsX2tocl9mcDE2CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBoYWxmMiAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZjMgKmRzdCwgY29uc3QgX19nbG9iYWwgaGFsZjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IHNyY19zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2xvY2FsIGhhbGY0ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGY0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBzcmNfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19sb2NhbCBoYWxmOCAqZHN0LCBjb25zdCBfX2dsb2JhbCBoYWxmOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fbG9jYWwgaGFsZjE2ICpkc3QsIGNvbnN0IF9fZ2xvYmFsIGhhbGYxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3Qgc3JjX3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaGFsZjIgKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmMiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYzICpkc3QsIGNvbnN0IF9fbG9jYWwgaGFsZjMgKnNyYywgc2l6ZV90IG51bV9lbGVtZW50cywgc2l6ZV90IGRzdF9zdHJpZGUsIGV2ZW50X3QgZXZlbnQpOwpldmVudF90IF9fb3ZsZCBhc3luY193b3JrX2dyb3VwX3N0cmlkZWRfY29weShfX2dsb2JhbCBoYWxmNCAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGY0ICpzcmMsIHNpemVfdCBudW1fZWxlbWVudHMsIHNpemVfdCBkc3Rfc3RyaWRlLCBldmVudF90IGV2ZW50KTsKZXZlbnRfdCBfX292bGQgYXN5bmNfd29ya19ncm91cF9zdHJpZGVkX2NvcHkoX19nbG9iYWwgaGFsZjggKmRzdCwgY29uc3QgX19sb2NhbCBoYWxmOCAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CmV2ZW50X3QgX19vdmxkIGFzeW5jX3dvcmtfZ3JvdXBfc3RyaWRlZF9jb3B5KF9fZ2xvYmFsIGhhbGYxNiAqZHN0LCBjb25zdCBfX2xvY2FsIGhhbGYxNiAqc3JjLCBzaXplX3QgbnVtX2VsZW1lbnRzLCBzaXplX3QgZHN0X3N0cmlkZSwgZXZlbnRfdCBldmVudCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovKioKICogV2FpdCBmb3IgZXZlbnRzIHRoYXQgaWRlbnRpZnkgdGhlCiAqIGFzeW5jX3dvcmtfZ3JvdXBfY29weSBvcGVyYXRpb25zIHRvCiAqIGNvbXBsZXRlLiBUaGUgZXZlbnQgb2JqZWN0cyBzcGVjaWZpZWQgaW4KICogZXZlbnRfbGlzdCB3aWxsIGJlIHJlbGVhc2VkIGFmdGVyIHRoZSB3YWl0IGlzCiAqIHBlcmZvcm1lZC4KICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGVuY291bnRlcmVkIGJ5IGFsbCB3b3JraXRlbXMKICogaW4gYSB3b3JrLWdyb3VwIGV4ZWN1dGluZyB0aGUga2VybmVsIHdpdGgKICogdGhlIHNhbWUgbnVtX2V2ZW50cyBhbmQgZXZlbnQgb2JqZWN0cyBzcGVjaWZpZWQKICogaW4gZXZlbnRfbGlzdDsgb3RoZXJ3aXNlIHRoZSByZXN1bHRzIGFyZSB1bmRlZmluZWQuCiAqLwp2b2lkIF9fb3ZsZCB3YWl0X2dyb3VwX2V2ZW50cyhpbnQgbnVtX2V2ZW50cywgZXZlbnRfdCAqZXZlbnRfbGlzdCk7CgovKioKICogUHJlZmV0Y2ggbnVtX2VsZW1lbnRzICogc2l6ZW9mKGdlbnR5cGUpCiAqIGJ5dGVzIGludG8gdGhlIGdsb2JhbCBjYWNoZS4gVGhlIHByZWZldGNoCiAqIGluc3RydWN0aW9uIGlzIGFwcGxpZWQgdG8gYSB3b3JrLWl0ZW0gaW4gYSB3b3JrZ3JvdXAKICogYW5kIGRvZXMgbm90IGFmZmVjdCB0aGUgZnVuY3Rpb25hbAogKiBiZWhhdmlvciBvZiB0aGUga2VybmVsLgogKi8Kdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgY2hhciAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgc2hvcnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1c2hvcnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1aW50ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgbG9uZyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZmxvYXQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBjaGFyMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHNob3J0MiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQyICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWludDIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBsb25nMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nMiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGZsb2F0MiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGNoYXIzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWNoYXIzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgc2hvcnQzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdXNob3J0MyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGludDMgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1aW50MyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGxvbmczICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWxvbmczICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZmxvYXQzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgY2hhcjQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1Y2hhcjQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBzaG9ydDQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1c2hvcnQ0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaW50NCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVpbnQ0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgbG9uZzQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCB1bG9uZzQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBmbG9hdDQgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBjaGFyOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHNob3J0OCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVzaG9ydDggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQ4ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdWludDggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBsb25nOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nOCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGZsb2F0OCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGNoYXIxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVjaGFyMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBzaG9ydDE2ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgdXNob3J0MTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBpbnQxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVpbnQxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGxvbmcxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIHVsb25nMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBmbG9hdDE2ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKI2lmZGVmIGNsX2tocl9mcDY0CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZSAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBkb3VibGUzICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgZG91YmxlNCAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGRvdWJsZTggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBkb3VibGUxNiAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaGFsZjIgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmMyAqcCwgc2l6ZV90IG51bV9lbGVtZW50cyk7CnZvaWQgX19vdmxkIHByZWZldGNoKGNvbnN0IF9fZ2xvYmFsIGhhbGY0ICpwLCBzaXplX3QgbnVtX2VsZW1lbnRzKTsKdm9pZCBfX292bGQgcHJlZmV0Y2goY29uc3QgX19nbG9iYWwgaGFsZjggKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwp2b2lkIF9fb3ZsZCBwcmVmZXRjaChjb25zdCBfX2dsb2JhbCBoYWxmMTYgKnAsIHNpemVfdCBudW1fZWxlbWVudHMpOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCi8vIE9wZW5DTCB2MS4xIHM2LjExLjEsIHYxLjIgczYuMTIuMTEgLSBBdG9taWMgRnVuY3Rpb25zCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcyA6IGVuYWJsZQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MgOiBlbmFibGUKI2VuZGlmCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiAob2xkICsgdmFsKSBhbmQgc3RvcmUgcmVzdWx0IGF0IGxvY2F0aW9uCiAqIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwppbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19hZGQodm9sYXRpbGUgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfYWRkKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwpsb25nIF9fb3ZsZCBhdG9tX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9hZGQodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKSBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLgogKiBDb21wdXRlIChvbGQgLSB2YWwpIGFuZCBzdG9yZSByZXN1bHQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24KICogcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19zdWIodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNpZmRlZiBfX09QRU5DTF9DUFBfVkVSU0lPTl9fCmludCBfX292bGQgYXRvbWljX3N1Yih2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19zdWIodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfYmFzZV9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbV9zdWIodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21fc3ViKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX3N1Yih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogU3dhcHMgdGhlIG9sZCB2YWx1ZSBzdG9yZWQgYXQgbG9jYXRpb24gcAogKiB3aXRoIG5ldyB2YWx1ZSBnaXZlbiBieSB2YWwuIFJldHVybnMgb2xkCiAqIHZhbHVlLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX3hjaGcodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKZmxvYXQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIGZsb2F0ICpwLCBmbG9hdCB2YWwpOwpmbG9hdCBfX292bGQgYXRvbWljX3hjaGcodm9sYXRpbGUgX19sb2NhbCBmbG9hdCAqcCwgZmxvYXQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194Y2hnKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfeGNoZyh2b2xhdGlsZSBmbG9hdCAqcCwgZmxvYXQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX3hjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21feGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21feGNoZyh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV94Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiAob2xkICsgMSkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX2luYyh2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwKTsKaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfaW5jKHZvbGF0aWxlIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2luYyh2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfYmFzZV9hdG9taWNzKQppbnQgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19sb2NhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX2luYyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9pbmModm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCk7CmxvbmcgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21faW5jKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKQogKiBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBDb21wdXRlCiAqIChvbGQgLSAxKSBhbmQgc3RvcmUgcmVzdWx0IGF0IGxvY2F0aW9uCiAqIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfZGVjKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnApOwppbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgX19sb2NhbCBpbnQgKnApOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnApOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19kZWModm9sYXRpbGUgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfZGVjKHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19nbG9iYWwgaW50ICpwKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fZGVjKHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnApOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2RlYyh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwKTsKbG9uZyBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCBsb25nICpwKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9kZWModm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCA9PSBjbXApID8gdmFsIDogb2xkIGFuZCBzdG9yZSByZXN1bHQgYXQKICogbG9jYXRpb24gcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24KICogcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19jbXB4Y2hnKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfY21weGNoZyh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCBjbXAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19jbXB4Y2hnKHZvbGF0aWxlIGludCAqcCwgaW50IGNtcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2NtcHhjaGcodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2Jhc2VfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgY21wLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgY21wLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9iYXNlX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgY21wLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCBjbXAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fY21weGNoZyh2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIGNtcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2NtcHhjaGcodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyBjbXAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyBjbXAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9jbXB4Y2hnKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyBjbXAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogbWluKG9sZCwgdmFsKSBhbmQgc3RvcmUgbWluaW11bSB2YWx1ZSBhdAogKiBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbgogKiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX21pbih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19taW4odm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfbWluKHZvbGF0aWxlIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX21pbih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9taW4odm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX21pbih2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9taW4odm9sYXRpbGUgX19sb2NhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21fbWluKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCi8qKgogKiBSZWFkIHRoZSAzMi1iaXQgdmFsdWUgKHJlZmVycmVkIHRvIGFzIG9sZCkKICogc3RvcmVkIGF0IGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gQ29tcHV0ZQogKiBtYXgob2xkLCB2YWwpIGFuZCBzdG9yZSBtYXhpbXVtIHZhbHVlIGF0CiAqIGxvY2F0aW9uIHBvaW50ZWQgYnkgcC4gVGhlIGZ1bmN0aW9uCiAqIHJldHVybnMgb2xkLgogKi8KaW50IF9fb3ZsZCBhdG9taWNfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX21heCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwppbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19tYXgodm9sYXRpbGUgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfbWF4KHZvbGF0aWxlIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2dsb2JhbF9pbnQzMl9leHRlbmRlZF9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCiNpZiBkZWZpbmVkKGNsX2tocl9sb2NhbF9pbnQzMl9leHRlbmRlZF9hdG9taWNzKQppbnQgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX21heCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwpsb25nIF9fb3ZsZCBhdG9tX21heCh2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9tYXgodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CiNlbmRpZgoKLyoqCiAqIFJlYWQgdGhlIDMyLWJpdCB2YWx1ZSAocmVmZXJyZWQgdG8gYXMgb2xkKQogKiBzdG9yZWQgYXQgbG9jYXRpb24gcG9pbnRlZCBieSBwLiBDb21wdXRlCiAqIChvbGQgJiB2YWwpIGFuZCBzdG9yZSByZXN1bHQgYXQgbG9jYXRpb24KICogcG9pbnRlZCBieSBwLiBUaGUgZnVuY3Rpb24gcmV0dXJucyBvbGQuCiAqLwppbnQgX19vdmxkIGF0b21pY19hbmQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNpZmRlZiBfX09QRU5DTF9DUFBfVkVSU0lPTl9fCmludCBfX292bGQgYXRvbWljX2FuZCh2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19hbmQodm9sYXRpbGUgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfZ2xvYmFsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19nbG9iYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19sb2NhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21fYW5kKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2VuZGlmCgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbV9hbmQodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBsb25nICpwLCB1bnNpZ25lZCBsb25nIHZhbCk7CmxvbmcgX19vdmxkIGF0b21fYW5kKHZvbGF0aWxlIF9fbG9jYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX2FuZCh2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCB8IHZhbCkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CmludCBfX292bGQgYXRvbWljX29yKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfb3Iodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojaWZkZWYgX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXwppbnQgX19vdmxkIGF0b21pY19vcih2b2xhdGlsZSBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY19vcih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2dsb2JhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKI2lmIGRlZmluZWQoY2xfa2hyX2xvY2FsX2ludDMyX2V4dGVuZGVkX2F0b21pY3MpCmludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgoKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21fb3Iodm9sYXRpbGUgX19nbG9iYWwgbG9uZyAqcCwgbG9uZyB2YWwpOwp1bnNpZ25lZCBsb25nIF9fb3ZsZCBhdG9tX29yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIGxvbmcgKnAsIGxvbmcgdmFsKTsKdW5zaWduZWQgbG9uZyBfX292bGQgYXRvbV9vcih2b2xhdGlsZSBfX2xvY2FsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKI2VuZGlmCgovKioKICogUmVhZCB0aGUgMzItYml0IHZhbHVlIChyZWZlcnJlZCB0byBhcyBvbGQpCiAqIHN0b3JlZCBhdCBsb2NhdGlvbiBwb2ludGVkIGJ5IHAuIENvbXB1dGUKICogKG9sZCBeIHZhbCkgYW5kIHN0b3JlIHJlc3VsdCBhdCBsb2NhdGlvbgogKiBwb2ludGVkIGJ5IHAuIFRoZSBmdW5jdGlvbiByZXR1cm5zIG9sZC4KICovCmludCBfX292bGQgYXRvbWljX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21pY194b3Iodm9sYXRpbGUgX19nbG9iYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIF9fbG9jYWwgaW50ICpwLCBpbnQgdmFsKTsKdW5zaWduZWQgaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgaW50ICpwLCB1bnNpZ25lZCBpbnQgdmFsKTsKI2lmZGVmIF9fT1BFTkNMX0NQUF9WRVJTSU9OX18KaW50IF9fb3ZsZCBhdG9taWNfeG9yKHZvbGF0aWxlIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbWljX3hvcih2b2xhdGlsZSB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9nbG9iYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBpbnQgKnAsIGludCB2YWwpOwp1bnNpZ25lZCBpbnQgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGludCAqcCwgdW5zaWduZWQgaW50IHZhbCk7CiNlbmRpZgojaWYgZGVmaW5lZChjbF9raHJfbG9jYWxfaW50MzJfZXh0ZW5kZWRfYXRvbWljcykKaW50IF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2xvY2FsIGludCAqcCwgaW50IHZhbCk7CnVuc2lnbmVkIGludCBfX292bGQgYXRvbV94b3Iodm9sYXRpbGUgX19sb2NhbCB1bnNpZ25lZCBpbnQgKnAsIHVuc2lnbmVkIGludCB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9tX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fZ2xvYmFsIHVuc2lnbmVkIGxvbmcgKnAsIHVuc2lnbmVkIGxvbmcgdmFsKTsKbG9uZyBfX292bGQgYXRvbV94b3Iodm9sYXRpbGUgX19sb2NhbCBsb25nICpwLCBsb25nIHZhbCk7CnVuc2lnbmVkIGxvbmcgX19vdmxkIGF0b21feG9yKHZvbGF0aWxlIF9fbG9jYWwgdW5zaWduZWQgbG9uZyAqcCwgdW5zaWduZWQgbG9uZyB2YWwpOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzIDogZGlzYWJsZQojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MgOiBkaXNhYmxlCiNlbmRpZgoKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTEgLSBBdG9taWNzIEZ1bmN0aW9ucwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gZG91YmxlIGF0b21pY3Mgc3VwcG9ydCByZXF1aXJlcyBleHRlbnNpb25zIGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MgYW5kIGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzCiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzIDogZW5hYmxlCiNwcmFnbWEgT1BFTkNMIEVYVEVOU0lPTiBjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcyA6IGVuYWJsZQojZW5kaWYKCi8vIGF0b21pY19pbml0KCkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IHZhbHVlKTsKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCB2YWx1ZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgdmFsdWUpOwojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgdmFsdWUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IHZhbHVlKTsKdm9pZCBfX292bGQgYXRvbWljX2luaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCB2YWx1ZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgdmFsdWUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyB2YWx1ZSk7CiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfaW5pdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSB2YWx1ZSk7CnZvaWQgX19vdmxkIGF0b21pY19pbml0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgdmFsdWUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAojZW5kaWYKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY193b3JrX2l0ZW1fZmVuY2UoKQp2b2lkIF9fb3ZsZCBhdG9taWNfd29ya19pdGVtX2ZlbmNlKGNsX21lbV9mZW5jZV9mbGFncyBmbGFncywgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwoKLy8gYXRvbWljX2ZldGNoKCkKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTEuNy41OgovLyBhZGQvc3ViOiBhdG9taWMgdHlwZSBhcmd1bWVudCBjYW4gYmUgdWludHB0cl90L2ludHB0cl90LCB2YWx1ZSB0eXBlIGFyZ3VtZW50IGNhbiBiZSBwdHJkaWZmX3QuCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpO2kKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21heCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3Iodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hbmQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW4odm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX21pbih2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXgodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FkZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX3N1Yl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9hbmRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21pbl9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX21heF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWF4X2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgcHRyZGlmZl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYWRkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FkZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9vcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX29yX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX3hvcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF94b3JfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50cHRyX3QgKm9iamVjdCwgdWludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfYW5kX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnRwdHJfdCBfX292bGQgYXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnRwdHJfdCAqb2JqZWN0LCB1aW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50cHRyX3QgKm9iamVjdCwgaW50cHRyX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIGludHB0cl90IG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9taW5fZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmludHB0cl90IF9fb3ZsZCBhdG9taWNfZmV0Y2hfbWluX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludHB0cl90ICpvYmplY3QsIHVpbnRwdHJfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIG9wZXJhbmQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19mZXRjaF9tYXhfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnRwdHJfdCAqb2JqZWN0LCBwdHJkaWZmX3Qgb3BlcmFuZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50cHRyX3QgX19vdmxkIGF0b21pY19mZXRjaF9zdWJfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludHB0cl90ICpvYmplY3QsIHB0cmRpZmZfdCBvcGVyYW5kLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY19zdG9yZSgpCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCk7CgojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQpOwojZW5kaWYgLy9jbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCBkZXNpcmVkKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmUodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmCnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NAp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19zdG9yZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfc3RvcmVfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX3N0b3JlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAoKLy8gYXRvbWljX2xvYWQoKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0KTsKdWludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0KTsKaW50IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCk7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QpOwp1aW50IF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCk7CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0KTsKbG9uZyBfX292bGQgYXRvbWljX2xvYWQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0KTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0KTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCiNlbmRpZgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfc2NvcGVfZGV2aWNlKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CmZsb2F0IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKZmxvYXQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpkb3VibGUgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKaW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVpbnQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZmxvYXQgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmRvdWJsZSBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmCmxvbmcgX19vdmxkIGF0b21pY19sb2FkX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfbG9hZF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2xvYWRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCgovLyBhdG9taWNfZXhjaGFuZ2UoKQoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfb3JkZXJfc2VxX2NzdCkgJiYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIGludCBkZXNpcmVkKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CnVpbnQgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgZGVzaXJlZCk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwpsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2Uodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZSh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CnVpbnQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9jbF9raHJfZnA2NApsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpkb3VibGUgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlcik7CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3Mpd2kKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3VpbnQgKm9iamVjdCwgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmZsb2F0IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKbG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1bG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZgojZW5kaWYgLy9kZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQojaWYgX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKaW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwppbnQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWludCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp1aW50IF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZmxvYXQgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpmbG9hdCBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2lmIGRlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKZG91YmxlIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2NsX2tocl9mcDY0CmxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKbG9uZyBfX292bGQgYXRvbWljX2V4Y2hhbmdlX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnVsb25nIF9fb3ZsZCBhdG9taWNfZXhjaGFuZ2VfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdWxvbmcgX19vdmxkIGF0b21pY19leGNoYW5nZV9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX2ludDY0X2Jhc2VfYXRvbWljcykgJiYgZGVmaW5lZChjbF9raHJfaW50NjRfZXh0ZW5kZWRfYXRvbWljcykKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKCi8vIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZygpIGFuZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKCkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19hdG9taWNfb3JkZXJfc2VxX2NzdCkgJiYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwojZW5kaWYgLy9jbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsIGludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwgdWludCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLCBmbG9hdCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLCBmbG9hdCBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLCBpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX3ByaXZhdGUgaW50ICpleHBlY3RlZCwgaW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsIHVpbnQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19wcml2YXRlIHVpbnQgKmV4cGVjdGVkLCB1aW50IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwgZmxvYXQgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWsodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fcHJpdmF0ZSBmbG9hdCAqZXhwZWN0ZWQsIGZsb2F0IGRlc2lyZWQpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLCBkb3VibGUgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLCBkb3VibGUgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwgZG91YmxlIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19wcml2YXRlIGRvdWJsZSAqZXhwZWN0ZWQsIGRvdWJsZSBkZXNpcmVkKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsIGxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmcodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwgdWxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwgdWxvbmcgZGVzaXJlZCk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZyh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLCBsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fcHJpdmF0ZSBsb25nICpleHBlY3RlZCwgbG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsIHVsb25nIGRlc2lyZWQpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrKHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vhayh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgdWxvbmcgKmV4cGVjdGVkLCB1bG9uZyBkZXNpcmVkKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAojZW5kaWYKCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2Zsb2F0ICpvYmplY3QsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2xvbmcgKm9iamVjdCwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191bG9uZyAqb2JqZWN0LCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwojaWYgZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojaWZkZWYgY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlKTsKI2VuZGlmIC8vZGVmaW5lZChjbF9raHJfaW50NjRfYmFzZV9hdG9taWNzKSAmJiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9leHRlbmRlZF9hdG9taWNzKQojZW5kaWYgLy9fX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMAoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfaW50ICpvYmplY3QsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWludCAqb2JqZWN0LCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ludCAqb2JqZWN0LCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY191aW50ICpvYmplY3QsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbG9hdCAqb2JqZWN0LCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxvYXQgKm9iamVjdCwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19kb3VibGUgKm9iamVjdCwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19sb25nICpvYmplY3QsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfbG9uZyAqb2JqZWN0LCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfdWxvbmcgKm9iamVjdCwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX3Vsb25nICpvYmplY3QsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19nbG9iYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2xvY2FsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fZ2xvYmFsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19sb2NhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2dsb2JhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fbG9jYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ludCAqb2JqZWN0LCBfX2dsb2JhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19sb2NhbCBpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fZ2xvYmFsIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfaW50ICpvYmplY3QsIF9fbG9jYWwgaW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19pbnQgKm9iamVjdCwgX19wcml2YXRlIGludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3VpbnQgKm9iamVjdCwgX19nbG9iYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fbG9jYWwgdWludCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2dsb2JhbCB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWludCAqb2JqZWN0LCBfX2xvY2FsIHVpbnQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191aW50ICpvYmplY3QsIF9fcHJpdmF0ZSB1aW50ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2Zsb2F0ICpvYmplY3QsIF9fZ2xvYmFsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX2xvY2FsIGZsb2F0ICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19nbG9iYWwgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxvYXQgKm9iamVjdCwgX19sb2NhbCBmbG9hdCAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbG9hdCAqb2JqZWN0LCBfX3ByaXZhdGUgZmxvYXQgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNpZiBkZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNpZmRlZiBjbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fZ2xvYmFsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19sb2NhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19kb3VibGUgKm9iamVjdCwgX19nbG9iYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fbG9jYWwgZG91YmxlICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2dsb2JhbCBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2RvdWJsZSAqb2JqZWN0LCBfX2xvY2FsIGRvdWJsZSAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZG91YmxlICpvYmplY3QsIF9fcHJpdmF0ZSBkb3VibGUgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9jbF9raHJfZnA2NApib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2dsb2JhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19sb25nICpvYmplY3QsIF9fbG9jYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19nbG9iYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3N0cm9uZ19leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2xvY2FsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmdfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY19sb25nICpvYmplY3QsIF9fZ2xvYmFsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX2xvY2FsIGxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19nbG9iYWwgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX2xvbmcgKm9iamVjdCwgX19sb2NhbCBsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfbG9uZyAqb2JqZWN0LCBfX3ByaXZhdGUgbG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fZ2xvYmFsIGF0b21pY191bG9uZyAqb2JqZWN0LCBfX2dsb2JhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19sb2NhbCB1bG9uZyAqZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVsb25nIGRlc2lyZWQsIG1lbW9yeV9vcmRlciBzdWNjZXNzLCBtZW1vcnlfb3JkZXIgZmFpbHVyZSwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKYm9vbCBfX292bGQgYXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fZ2xvYmFsIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwpib29sIF9fb3ZsZCBhdG9taWNfY29tcGFyZV9leGNoYW5nZV93ZWFrX2V4cGxpY2l0KHZvbGF0aWxlIF9fbG9jYWwgYXRvbWljX3Vsb25nICpvYmplY3QsIF9fbG9jYWwgdWxvbmcgKmV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bG9uZyBkZXNpcmVkLCBtZW1vcnlfb3JkZXIgc3VjY2VzcywgbWVtb3J5X29yZGVyIGZhaWx1cmUsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWtfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfdWxvbmcgKm9iamVjdCwgX19wcml2YXRlIHVsb25nICpleHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWxvbmcgZGVzaXJlZCwgbWVtb3J5X29yZGVyIHN1Y2Nlc3MsIG1lbW9yeV9vcmRlciBmYWlsdXJlLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwojZW5kaWYgLy9kZWZpbmVkKGNsX2tocl9pbnQ2NF9iYXNlX2F0b21pY3MpICYmIGRlZmluZWQoY2xfa2hyX2ludDY0X2V4dGVuZGVkX2F0b21pY3MpCiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCgovLyBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXQoKSBhbmQgYXRvbWljX2ZsYWdfY2xlYXIoKQojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19vcmRlcl9zZXFfY3N0KSAmJiBkZWZpbmVkKF9fb3BlbmNsX2NfYXRvbWljX3Njb3BlX2RldmljZSkKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqb2JqZWN0KTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXIodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCk7CiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCiNpZiBfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzNfMApib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ZsYWcgKm9iamVjdCk7CmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcih2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0KTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXIodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxhZyAqb2JqZWN0KTsKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2F0b21pY19zY29wZV9kZXZpY2UpCiNpZiBkZWZpbmVkKF9fb3BlbmNsX2NfZ2VuZXJpY19hZGRyZXNzX3NwYWNlKQpib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXRfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXJfZXhwbGljaXQodm9sYXRpbGUgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwpib29sIF9fb3ZsZCBhdG9taWNfZmxhZ190ZXN0X2FuZF9zZXRfZXhwbGljaXQodm9sYXRpbGUgX19sb2NhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlcik7CiNlbmRpZiAvL19fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCiNlbmRpZgoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19nZW5lcmljX2FkZHJlc3Nfc3BhY2UpCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CnZvaWQgX19vdmxkIGF0b21pY19mbGFnX2NsZWFyX2V4cGxpY2l0KHZvbGF0aWxlIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX2dlbmVyaWNfYWRkcmVzc19zcGFjZSkKI2lmIF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fM18wCmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2dsb2JhbCBhdG9taWNfZmxhZyAqb2JqZWN0LCBtZW1vcnlfb3JkZXIgb3JkZXIsIG1lbW9yeV9zY29wZSBzY29wZSk7CmJvb2wgX19vdmxkIGF0b21pY19mbGFnX3Rlc3RfYW5kX3NldF9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKdm9pZCBfX292bGQgYXRvbWljX2ZsYWdfY2xlYXJfZXhwbGljaXQodm9sYXRpbGUgX19nbG9iYWwgYXRvbWljX2ZsYWcgKm9iamVjdCwgbWVtb3J5X29yZGVyIG9yZGVyLCBtZW1vcnlfc2NvcGUgc2NvcGUpOwp2b2lkIF9fb3ZsZCBhdG9taWNfZmxhZ19jbGVhcl9leHBsaWNpdCh2b2xhdGlsZSBfX2xvY2FsIGF0b21pY19mbGFnICpvYmplY3QsIG1lbW9yeV9vcmRlciBvcmRlciwgbWVtb3J5X3Njb3BlIHNjb3BlKTsKI2VuZGlmIC8vX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8zXzAKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4xMiwgdjEuMiBzNi4xMi4xMiwgdjIuMCBzNi4xMy4xMiAtIE1pc2NlbGxhbmVvdXMgVmVjdG9yIEZ1bmN0aW9ucwoKLyoqCiAqIFRoZSBzaHVmZmxlIGFuZCBzaHVmZmxlMiBidWlsdC1pbiBmdW5jdGlvbnMgY29uc3RydWN0CiAqIGEgcGVybXV0YXRpb24gb2YgZWxlbWVudHMgZnJvbSBvbmUgb3IgdHdvIGlucHV0CiAqIHZlY3RvcnMgcmVzcGVjdGl2ZWx5IHRoYXQgYXJlIG9mIHRoZSBzYW1lIHR5cGUsCiAqIHJldHVybmluZyBhIHZlY3RvciB3aXRoIHRoZSBzYW1lIGVsZW1lbnQgdHlwZSBhcyB0aGUKICogaW5wdXQgYW5kIGxlbmd0aCB0aGF0IGlzIHRoZSBzYW1lIGFzIHRoZSBzaHVmZmxlIG1hc2suCiAqIFRoZSBzaXplIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgbWFzayBtdXN0IG1hdGNoIHRoZQogKiBzaXplIG9mIGVhY2ggZWxlbWVudCBpbiB0aGUgcmVzdWx0LiBGb3Igc2h1ZmZsZSwgb25seQogKiB0aGUgaWxvZ2IoMm0tMSkgbGVhc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiBlYWNoIG1hc2sKICogZWxlbWVudCBhcmUgY29uc2lkZXJlZC4gRm9yIHNodWZmbGUyLCBvbmx5IHRoZQogKiBpbG9nYigybS0xKSsxIGxlYXN0IHNpZ25pZmljYW50IGJpdHMgb2YgZWFjaCBtYXNrCiAqIGVsZW1lbnQgYXJlIGNvbnNpZGVyZWQuIE90aGVyIGJpdHMgaW4gdGhlIG1hc2sgc2hhbGwKICogYmUgaWdub3JlZC4KICogVGhlIGVsZW1lbnRzIG9mIHRoZSBpbnB1dCB2ZWN0b3JzIGFyZSBudW1iZXJlZCBmcm9tCiAqIGxlZnQgdG8gcmlnaHQgYWNyb3NzIG9uZSBvciBib3RoIG9mIHRoZSB2ZWN0b3JzLiBGb3IgdGhpcwogKiBwdXJwb3NlLCB0aGUgbnVtYmVyIG9mIGVsZW1lbnRzIGluIGEgdmVjdG9yIGlzIGdpdmVuCiAqIGJ5IHZlY19zdGVwKGdlbnR5cGVtKS4gVGhlIHNodWZmbGUgbWFzayBvcGVyYW5kCiAqIHNwZWNpZmllcywgZm9yIGVhY2ggZWxlbWVudCBvZiB0aGUgcmVzdWx0IHZlY3Rvciwgd2hpY2gKICogZWxlbWVudCBvZiB0aGUgb25lIG9yIHR3byBpbnB1dCB2ZWN0b3JzIHRoZSByZXN1bHQKICogZWxlbWVudCBnZXRzLgogKiBFeGFtcGxlczoKICogdWludDQgbWFzayA9ICh1aW50NCkoMywgMiwKICogMSwgMCk7CiAqIGZsb2F0NCBhOwogKiBmbG9hdDQgciA9IHNodWZmbGUoYSwgbWFzayk7CiAqIC8vIHIuczAxMjMgPSBhLnd6eXgKICogdWludDggbWFzayA9ICh1aW50OCkoMCwgMSwgMiwgMywKICogNCwgNSwgNiwgNyk7CiAqIGZsb2F0NCBhLCBiOwogKiBmbG9hdDggciA9IHNodWZmbGUyKGEsIGIsIG1hc2spOwogKiAvLyByLnMwMTIzID0gYS54eXp3CiAqIC8vIHIuczQ1NjcgPSBiLnh5encKICogdWludDQgbWFzazsKICogZmxvYXQ4IGE7CiAqIGZsb2F0NCBiOwogKiBiID0gc2h1ZmZsZShhLCBtYXNrKTsKICogRXhhbXBsZXMgdGhhdCBhcmUgbm90IHZhbGlkIGFyZToKICogdWludDggbWFzazsKICogc2hvcnQxNiBhOwogKiBzaG9ydDggYjsKICogYiA9IHNodWZmbGUoYSwgbWFzayk7IDwtIG5vdCB2YWxpZAogKi8KY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjIgbWFzayk7Cgp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjIgbWFzayk7CnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyMiBtYXNrKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXIyIG1hc2spOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXIyIG1hc2spOwoKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDIgbWFzayk7Cgp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDIgbWFzayk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0MiBtYXNrKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQyIG1hc2spOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQyIG1hc2spOwoKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDIgbWFzayk7Cgp1aW50MiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDIgbWFzayk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQyIG1hc2spOwp1aW50MiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQyIG1hc2spOwoKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzIgbWFzayk7Cgp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzIgbWFzayk7CnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nMiBtYXNrKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmcyIG1hc2spOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmcyIG1hc2spOwoKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDIgbWFzayk7CmZsb2F0MiBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50MiBtYXNrKTsKZmxvYXQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQyIG1hc2spOwoKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjQgbWFzayk7Cgp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjQgbWFzayk7CnVjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyNCBtYXNrKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXI0IG1hc2spOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXI0IG1hc2spOwoKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDQgbWFzayk7Cgp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDQgbWFzayk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0NCBtYXNrKTsKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQ0IG1hc2spOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQ0IG1hc2spOwoKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50NCBtYXNrKTsKaW50NCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDQgbWFzayk7Cgp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDQgbWFzayk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50NCBtYXNrKTsKdWludDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQ0IG1hc2spOwoKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzQgbWFzayk7Cgp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzQgbWFzayk7CnVsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nNCBtYXNrKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmc0IG1hc2spOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmc0IG1hc2spOwoKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQ0IG1hc2spOwpmbG9hdDQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50NCBtYXNrKTsKZmxvYXQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQ0IG1hc2spOwoKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIyIHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI4IHgsIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXIxNiB4LCB1Y2hhcjggbWFzayk7Cgp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjggbWFzayk7CnVjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI0IHgsIHVjaGFyOCBtYXNrKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjggeCwgdWNoYXI4IG1hc2spOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXI4IG1hc2spOwoKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDIgeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDQgeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDE2IHgsIHVzaG9ydDggbWFzayk7Cgp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQyIHgsIHVzaG9ydDggbWFzayk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0OCBtYXNrKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0OCB4LCB1c2hvcnQ4IG1hc2spOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQxNiB4LCB1c2hvcnQ4IG1hc2spOwoKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50NCB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50OCB4LCB1aW50OCBtYXNrKTsKaW50OCBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDggbWFzayk7Cgp1aW50OCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDIgeCwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50NCB4LCB1aW50OCBtYXNrKTsKdWludDggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQ4IG1hc2spOwp1aW50OCBfX292bGQgX19jbmZuIHNodWZmbGUodWludDE2IHgsIHVpbnQ4IG1hc2spOwoKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcyIHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc4IHgsIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmcxNiB4LCB1bG9uZzggbWFzayk7Cgp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzggbWFzayk7CnVsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc0IHgsIHVsb25nOCBtYXNrKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzggeCwgdWxvbmc4IG1hc2spOwp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmc4IG1hc2spOwoKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDIgeCwgdWludDggbWFzayk7CmZsb2F0OCBfX292bGQgX19jbmZuIHNodWZmbGUoZmxvYXQ0IHgsIHVpbnQ4IG1hc2spOwpmbG9hdDggX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShmbG9hdDE2IHgsIHVpbnQ4IG1hc2spOwoKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShjaGFyMiB4LCB1Y2hhcjE2IG1hc2spOwpjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGNoYXI0IHgsIHVjaGFyMTYgbWFzayk7CmNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUoY2hhcjggeCwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShjaGFyMTYgeCwgdWNoYXIxNiBtYXNrKTsKCnVjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMiB4LCB1Y2hhcjE2IG1hc2spOwp1Y2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1Y2hhcjQgeCwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWNoYXI4IHgsIHVjaGFyMTYgbWFzayk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVjaGFyMTYgeCwgdWNoYXIxNiBtYXNrKTsKCnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHNob3J0MiB4LCB1c2hvcnQxNiBtYXNrKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoc2hvcnQ0IHgsIHVzaG9ydDE2IG1hc2spOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShzaG9ydDggeCwgdXNob3J0MTYgbWFzayk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHNob3J0MTYgeCwgdXNob3J0MTYgbWFzayk7Cgp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0MiB4LCB1c2hvcnQxNiBtYXNrKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVzaG9ydDQgeCwgdXNob3J0MTYgbWFzayk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1c2hvcnQ4IHgsIHVzaG9ydDE2IG1hc2spOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodXNob3J0MTYgeCwgdXNob3J0MTYgbWFzayk7CgppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MiB4LCB1aW50MTYgbWFzayk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShpbnQ0IHgsIHVpbnQxNiBtYXNrKTsKaW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGludDggeCwgdWludDE2IG1hc2spOwppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaW50MTYgeCwgdWludDE2IG1hc2spOwoKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50MiB4LCB1aW50MTYgbWFzayk7CnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWludDQgeCwgdWludDE2IG1hc2spOwp1aW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVpbnQ4IHgsIHVpbnQxNiBtYXNrKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1aW50MTYgeCwgdWludDE2IG1hc2spOwoKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShsb25nMiB4LCB1bG9uZzE2IG1hc2spOwpsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGxvbmc0IHgsIHVsb25nMTYgbWFzayk7CmxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUobG9uZzggeCwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShsb25nMTYgeCwgdWxvbmcxNiBtYXNrKTsKCnVsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMiB4LCB1bG9uZzE2IG1hc2spOwp1bG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZSh1bG9uZzQgeCwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUodWxvbmc4IHgsIHVsb25nMTYgbWFzayk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKHVsb25nMTYgeCwgdWxvbmcxNiBtYXNrKTsKCmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0MiB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0NCB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0OCB4LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlKGZsb2F0MTYgeCwgdWludDE2IG1hc2spOwoKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmcyIG1hc2spOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nMiBtYXNrKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzIgbWFzayk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nMiBtYXNrKTsKCmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmc0IG1hc2spOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nNCBtYXNrKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzQgbWFzayk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nNCBtYXNrKTsKCmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTIgeCwgdWxvbmc4IG1hc2spOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nOCBtYXNrKTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNodWZmbGUoZG91YmxlOCB4LCB1bG9uZzggbWFzayk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlKGRvdWJsZTE2IHgsIHVsb25nOCBtYXNrKTsKCmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGUyIHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU0IHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGU4IHgsIHVsb25nMTYgbWFzayk7CmRvdWJsZTE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShkb3VibGUxNiB4LCB1bG9uZzE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQyIG1hc2spOwpoYWxmMiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0MiBtYXNrKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDIgbWFzayk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0MiBtYXNrKTsKCmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQ0IG1hc2spOwpoYWxmNCBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0NCBtYXNrKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDQgbWFzayk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0NCBtYXNrKTsKCmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMiB4LCB1c2hvcnQ4IG1hc2spOwpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0OCBtYXNrKTsKaGFsZjggX19vdmxkIF9fY25mbiBzaHVmZmxlKGhhbGY4IHgsIHVzaG9ydDggbWFzayk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZShoYWxmMTYgeCwgdXNob3J0OCBtYXNrKTsKCmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjIgeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjQgeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjggeCwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUoaGFsZjE2IHgsIHVzaG9ydDE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyMiB4LCBjaGFyMiB5LCB1Y2hhcjIgbWFzayk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjQgeCwgY2hhcjQgeSwgdWNoYXIyIG1hc2spOwpjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXI4IHgsIGNoYXI4IHksIHVjaGFyMiBtYXNrKTsKY2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyMTYgeCwgY2hhcjE2IHksIHVjaGFyMiBtYXNrKTsKCnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMiB4LCB1Y2hhcjIgeSwgdWNoYXIyIG1hc2spOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjQgeCwgdWNoYXI0IHksIHVjaGFyMiBtYXNrKTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXI4IHgsIHVjaGFyOCB5LCB1Y2hhcjIgbWFzayk7CnVjaGFyMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMTYgeCwgdWNoYXIxNiB5LCB1Y2hhcjIgbWFzayk7CgpzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDIgeCwgc2hvcnQyIHksIHVzaG9ydDIgbWFzayk7CnNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0NCB4LCBzaG9ydDQgeSwgdXNob3J0MiBtYXNrKTsKc2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ4IHgsIHNob3J0OCB5LCB1c2hvcnQyIG1hc2spOwpzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDE2IHgsIHNob3J0MTYgeSwgdXNob3J0MiBtYXNrKTsKCnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQyIHgsIHVzaG9ydDIgeSwgdXNob3J0MiBtYXNrKTsKdXNob3J0MiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDQgeCwgdXNob3J0NCB5LCB1c2hvcnQyIG1hc2spOwp1c2hvcnQyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0OCB4LCB1c2hvcnQ4IHksIHVzaG9ydDIgbWFzayk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQxNiB4LCB1c2hvcnQxNiB5LCB1c2hvcnQyIG1hc2spOwoKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDIgeCwgaW50MiB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDQgeCwgaW50NCB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDggeCwgaW50OCB5LCB1aW50MiBtYXNrKTsKaW50MiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDE2IHgsIGludDE2IHksIHVpbnQyIG1hc2spOwoKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50MiB4LCB1aW50MiB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50NCB4LCB1aW50NCB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50OCB4LCB1aW50OCB5LCB1aW50MiBtYXNrKTsKdWludDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50MTYgeCwgdWludDE2IHksIHVpbnQyIG1hc2spOwoKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nMiB4LCBsb25nMiB5LCB1bG9uZzIgbWFzayk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzQgeCwgbG9uZzQgeSwgdWxvbmcyIG1hc2spOwpsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmc4IHgsIGxvbmc4IHksIHVsb25nMiBtYXNrKTsKbG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nMTYgeCwgbG9uZzE2IHksIHVsb25nMiBtYXNrKTsKCnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMiB4LCB1bG9uZzIgeSwgdWxvbmcyIG1hc2spOwp1bG9uZzIgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzQgeCwgdWxvbmc0IHksIHVsb25nMiBtYXNrKTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmc4IHgsIHVsb25nOCB5LCB1bG9uZzIgbWFzayk7CnVsb25nMiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMTYgeCwgdWxvbmcxNiB5LCB1bG9uZzIgbWFzayk7CgpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDIgeCwgZmxvYXQyIHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDQgeCwgZmxvYXQ0IHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDggeCwgZmxvYXQ4IHksIHVpbnQyIG1hc2spOwpmbG9hdDIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDE2IHgsIGZsb2F0MTYgeSwgdWludDIgbWFzayk7CgpjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXIyIHgsIGNoYXIyIHksIHVjaGFyNCBtYXNrKTsKY2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyNCB4LCBjaGFyNCB5LCB1Y2hhcjQgbWFzayk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjggeCwgY2hhcjggeSwgdWNoYXI0IG1hc2spOwpjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXIxNiB4LCBjaGFyMTYgeSwgdWNoYXI0IG1hc2spOwoKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXIyIHgsIHVjaGFyMiB5LCB1Y2hhcjQgbWFzayk7CnVjaGFyNCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyNCB4LCB1Y2hhcjQgeSwgdWNoYXI0IG1hc2spOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjggeCwgdWNoYXI4IHksIHVjaGFyNCBtYXNrKTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXIxNiB4LCB1Y2hhcjE2IHksIHVjaGFyNCBtYXNrKTsKCnNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MiB4LCBzaG9ydDIgeSwgdXNob3J0NCBtYXNrKTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ0IHgsIHNob3J0NCB5LCB1c2hvcnQ0IG1hc2spOwpzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDggeCwgc2hvcnQ4IHksIHVzaG9ydDQgbWFzayk7CnNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MTYgeCwgc2hvcnQxNiB5LCB1c2hvcnQ0IG1hc2spOwoKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDIgeCwgdXNob3J0MiB5LCB1c2hvcnQ0IG1hc2spOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0NCB4LCB1c2hvcnQ0IHksIHVzaG9ydDQgbWFzayk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ4IHgsIHVzaG9ydDggeSwgdXNob3J0NCBtYXNrKTsKdXNob3J0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDE2IHgsIHVzaG9ydDE2IHksIHVzaG9ydDQgbWFzayk7CgppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50MiB4LCBpbnQyIHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50NCB4LCBpbnQ0IHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50OCB4LCBpbnQ4IHksIHVpbnQ0IG1hc2spOwppbnQ0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50MTYgeCwgaW50MTYgeSwgdWludDQgbWFzayk7Cgp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQyIHgsIHVpbnQyIHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQ0IHgsIHVpbnQ0IHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQ4IHgsIHVpbnQ4IHksIHVpbnQ0IG1hc2spOwp1aW50NCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDQgbWFzayk7Cgpsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmcyIHgsIGxvbmcyIHksIHVsb25nNCBtYXNrKTsKbG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nNCB4LCBsb25nNCB5LCB1bG9uZzQgbWFzayk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzggeCwgbG9uZzggeSwgdWxvbmc0IG1hc2spOwpsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmcxNiB4LCBsb25nMTYgeSwgdWxvbmc0IG1hc2spOwoKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmcyIHgsIHVsb25nMiB5LCB1bG9uZzQgbWFzayk7CnVsb25nNCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nNCB4LCB1bG9uZzQgeSwgdWxvbmc0IG1hc2spOwp1bG9uZzQgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzggeCwgdWxvbmc4IHksIHVsb25nNCBtYXNrKTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmcxNiB4LCB1bG9uZzE2IHksIHVsb25nNCBtYXNrKTsKCmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MiB4LCBmbG9hdDIgeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0NCB4LCBmbG9hdDQgeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0OCB4LCBmbG9hdDggeSwgdWludDQgbWFzayk7CmZsb2F0NCBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCB1aW50NCBtYXNrKTsKCmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjIgeCwgY2hhcjIgeSwgdWNoYXI4IG1hc2spOwpjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGNoYXI0IHgsIGNoYXI0IHksIHVjaGFyOCBtYXNrKTsKY2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMihjaGFyOCB4LCBjaGFyOCB5LCB1Y2hhcjggbWFzayk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjE2IHgsIGNoYXIxNiB5LCB1Y2hhcjggbWFzayk7Cgp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjIgeCwgdWNoYXIyIHksIHVjaGFyOCBtYXNrKTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWNoYXI0IHgsIHVjaGFyNCB5LCB1Y2hhcjggbWFzayk7CnVjaGFyOCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyOCB4LCB1Y2hhcjggeSwgdWNoYXI4IG1hc2spOwp1Y2hhcjggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1Y2hhcjE2IHgsIHVjaGFyMTYgeSwgdWNoYXI4IG1hc2spOwoKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQyIHgsIHNob3J0MiB5LCB1c2hvcnQ4IG1hc2spOwpzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDQgeCwgc2hvcnQ0IHksIHVzaG9ydDggbWFzayk7CnNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0OCB4LCBzaG9ydDggeSwgdXNob3J0OCBtYXNrKTsKc2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQxNiB4LCBzaG9ydDE2IHksIHVzaG9ydDggbWFzayk7Cgp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MiB4LCB1c2hvcnQyIHksIHVzaG9ydDggbWFzayk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ0IHgsIHVzaG9ydDQgeSwgdXNob3J0OCBtYXNrKTsKdXNob3J0OCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDggeCwgdXNob3J0OCB5LCB1c2hvcnQ4IG1hc2spOwp1c2hvcnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MTYgeCwgdXNob3J0MTYgeSwgdXNob3J0OCBtYXNrKTsKCmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQyIHgsIGludDIgeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ0IHgsIGludDQgeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ4IHgsIGludDggeSwgdWludDggbWFzayk7CmludDggX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQxNiB4LCBpbnQxNiB5LCB1aW50OCBtYXNrKTsKCnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDIgeCwgdWludDIgeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDQgeCwgdWludDQgeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDggeCwgdWludDggeSwgdWludDggbWFzayk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDE2IHgsIHVpbnQxNiB5LCB1aW50OCBtYXNrKTsKCmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzIgeCwgbG9uZzIgeSwgdWxvbmc4IG1hc2spOwpsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGxvbmc0IHgsIGxvbmc0IHksIHVsb25nOCBtYXNrKTsKbG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMihsb25nOCB4LCBsb25nOCB5LCB1bG9uZzggbWFzayk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzE2IHgsIGxvbmcxNiB5LCB1bG9uZzggbWFzayk7Cgp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzIgeCwgdWxvbmcyIHksIHVsb25nOCBtYXNrKTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWxvbmc0IHgsIHVsb25nNCB5LCB1bG9uZzggbWFzayk7CnVsb25nOCBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nOCB4LCB1bG9uZzggeSwgdWxvbmc4IG1hc2spOwp1bG9uZzggX19vdmxkIF9fY25mbiBzaHVmZmxlMih1bG9uZzE2IHgsIHVsb25nMTYgeSwgdWxvbmc4IG1hc2spOwoKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQyIHgsIGZsb2F0MiB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ0IHgsIGZsb2F0NCB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ4IHgsIGZsb2F0OCB5LCB1aW50OCBtYXNrKTsKZmxvYXQ4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQxNiB4LCBmbG9hdDE2IHksIHVpbnQ4IG1hc2spOwoKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjIgeCwgY2hhcjIgeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjQgeCwgY2hhcjQgeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjggeCwgY2hhcjggeSwgdWNoYXIxNiBtYXNrKTsKY2hhcjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoY2hhcjE2IHgsIGNoYXIxNiB5LCB1Y2hhcjE2IG1hc2spOwoKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMiB4LCB1Y2hhcjIgeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyNCB4LCB1Y2hhcjQgeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyOCB4LCB1Y2hhcjggeSwgdWNoYXIxNiBtYXNrKTsKdWNoYXIxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVjaGFyMTYgeCwgdWNoYXIxNiB5LCB1Y2hhcjE2IG1hc2spOwoKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MiB4LCBzaG9ydDIgeSwgdXNob3J0MTYgbWFzayk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihzaG9ydDQgeCwgc2hvcnQ0IHksIHVzaG9ydDE2IG1hc2spOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoc2hvcnQ4IHgsIHNob3J0OCB5LCB1c2hvcnQxNiBtYXNrKTsKc2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHNob3J0MTYgeCwgc2hvcnQxNiB5LCB1c2hvcnQxNiBtYXNrKTsKCnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MiB4LCB1c2hvcnQyIHksIHVzaG9ydDE2IG1hc2spOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVzaG9ydDQgeCwgdXNob3J0NCB5LCB1c2hvcnQxNiBtYXNrKTsKdXNob3J0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1c2hvcnQ4IHgsIHVzaG9ydDggeSwgdXNob3J0MTYgbWFzayk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodXNob3J0MTYgeCwgdXNob3J0MTYgeSwgdXNob3J0MTYgbWFzayk7CgppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDIgeCwgaW50MiB5LCB1aW50MTYgbWFzayk7CmludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaW50NCB4LCBpbnQ0IHksIHVpbnQxNiBtYXNrKTsKaW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihpbnQ4IHgsIGludDggeSwgdWludDE2IG1hc2spOwppbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGludDE2IHgsIGludDE2IHksIHVpbnQxNiBtYXNrKTsKCnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQyIHgsIHVpbnQyIHksIHVpbnQxNiBtYXNrKTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIodWludDQgeCwgdWludDQgeSwgdWludDE2IG1hc2spOwp1aW50MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMih1aW50OCB4LCB1aW50OCB5LCB1aW50MTYgbWFzayk7CnVpbnQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVpbnQxNiB4LCB1aW50MTYgeSwgdWludDE2IG1hc2spOwoKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzIgeCwgbG9uZzIgeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzQgeCwgbG9uZzQgeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzggeCwgbG9uZzggeSwgdWxvbmcxNiBtYXNrKTsKbG9uZzE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIobG9uZzE2IHgsIGxvbmcxNiB5LCB1bG9uZzE2IG1hc2spOwoKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMiB4LCB1bG9uZzIgeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nNCB4LCB1bG9uZzQgeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nOCB4LCB1bG9uZzggeSwgdWxvbmcxNiBtYXNrKTsKdWxvbmcxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKHVsb25nMTYgeCwgdWxvbmcxNiB5LCB1bG9uZzE2IG1hc2spOwoKZmxvYXQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MiB4LCBmbG9hdDIgeSwgdWludDE2IG1hc2spOwpmbG9hdDE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZmxvYXQ0IHgsIGZsb2F0NCB5LCB1aW50MTYgbWFzayk7CmZsb2F0MTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihmbG9hdDggeCwgZmxvYXQ4IHksIHVpbnQxNiBtYXNrKTsKZmxvYXQxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGZsb2F0MTYgeCwgZmxvYXQxNiB5LCB1aW50MTYgbWFzayk7CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTIgeCwgZG91YmxlMiB5LCB1bG9uZzIgbWFzayk7CmRvdWJsZTIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU0IHgsIGRvdWJsZTQgeSwgdWxvbmcyIG1hc2spOwpkb3VibGUyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlOCB4LCBkb3VibGU4IHksIHVsb25nMiBtYXNrKTsKZG91YmxlMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTE2IHgsIGRvdWJsZTE2IHksIHVsb25nMiBtYXNrKTsKCmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUyIHgsIGRvdWJsZTIgeSwgdWxvbmc0IG1hc2spOwpkb3VibGU0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlNCB4LCBkb3VibGU0IHksIHVsb25nNCBtYXNrKTsKZG91YmxlNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTggeCwgZG91YmxlOCB5LCB1bG9uZzQgbWFzayk7CmRvdWJsZTQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUxNiB4LCBkb3VibGUxNiB5LCB1bG9uZzQgbWFzayk7Cgpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlMiB4LCBkb3VibGUyIHksIHVsb25nOCBtYXNrKTsKZG91YmxlOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGRvdWJsZTQgeCwgZG91YmxlNCB5LCB1bG9uZzggbWFzayk7CmRvdWJsZTggX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU4IHgsIGRvdWJsZTggeSwgdWxvbmc4IG1hc2spOwpkb3VibGU4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoZG91YmxlMTYgeCwgZG91YmxlMTYgeSwgdWxvbmc4IG1hc2spOwoKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUyIHgsIGRvdWJsZTIgeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU0IHgsIGRvdWJsZTQgeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGU4IHgsIGRvdWJsZTggeSwgdWxvbmcxNiBtYXNrKTsKZG91YmxlMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihkb3VibGUxNiB4LCBkb3VibGUxNiB5LCB1bG9uZzE2IG1hc2spOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjIgeCwgaGFsZjIgeSwgdXNob3J0MiBtYXNrKTsKaGFsZjIgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmNCB4LCBoYWxmNCB5LCB1c2hvcnQyIG1hc2spOwpoYWxmMiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGY4IHgsIGhhbGY4IHksIHVzaG9ydDIgbWFzayk7CmhhbGYyIF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjE2IHgsIGhhbGYxNiB5LCB1c2hvcnQyIG1hc2spOwoKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmMiB4LCBoYWxmMiB5LCB1c2hvcnQ0IG1hc2spOwpoYWxmNCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGY0IHgsIGhhbGY0IHksIHVzaG9ydDQgbWFzayk7CmhhbGY0IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjggeCwgaGFsZjggeSwgdXNob3J0NCBtYXNrKTsKaGFsZjQgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmMTYgeCwgaGFsZjE2IHksIHVzaG9ydDQgbWFzayk7CgpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYyIHgsIGhhbGYyIHksIHVzaG9ydDggbWFzayk7CmhhbGY4IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjQgeCwgaGFsZjQgeSwgdXNob3J0OCBtYXNrKTsKaGFsZjggX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmOCB4LCBoYWxmOCB5LCB1c2hvcnQ4IG1hc2spOwpoYWxmOCBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYxNiB4LCBoYWxmMTYgeSwgdXNob3J0OCBtYXNrKTsKCmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYyIHgsIGhhbGYyIHksIHVzaG9ydDE2IG1hc2spOwpoYWxmMTYgX19vdmxkIF9fY25mbiBzaHVmZmxlMihoYWxmNCB4LCBoYWxmNCB5LCB1c2hvcnQxNiBtYXNrKTsKaGFsZjE2IF9fb3ZsZCBfX2NuZm4gc2h1ZmZsZTIoaGFsZjggeCwgaGFsZjggeSwgdXNob3J0MTYgbWFzayk7CmhhbGYxNiBfX292bGQgX19jbmZuIHNodWZmbGUyKGhhbGYxNiB4LCBoYWxmMTYgeSwgdXNob3J0MTYgbWFzayk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBPcGVuQ0wgdjEuMSBzNi4xMS4zLCB2MS4yIHM2LjEyLjE0LCB2Mi4wIHM2LjEzLjE0IC0gSW1hZ2UgUmVhZCBhbmQgV3JpdGUgRnVuY3Rpb25zCgojaWZkZWYgY2xfa2hyX2dsX21zYWFfc2hhcmluZwojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfa2hyX2dsX21zYWFfc2hhcmluZyA6IGVuYWJsZQojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgovKioKICogVXNlIHRoZSBjb29yZGluYXRlIChjb29yZC54eSkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoY29vcmQueCwgY29vcmQueSwgY29vcmQueikgdG8gZG8KICogYW4gZWxlbWVudCBsb29rdXAgaW4gdGhlIDNEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQKICogYnkgaW1hZ2UuIGNvb3JkLncgaXMgaWdub3JlZC4KICoKICogVXNlIHRoZSBjb29yZGluYXRlIChjb29yZC56KSB0byBpbmRleCBpbnRvIHRoZQogKiAyRCBpbWFnZSBhcnJheSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGltYWdlX2FycmF5CiAqIGFuZCAoY29vcmQueCwgY29vcmQueSkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoeCkgdG8gZG8gYW4gZWxlbWVudCBsb29rdXAgaW4KICogdGhlIDFEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqCiAqIFVzZSB0aGUgY29vcmRpbmF0ZSAoY29vcmQueSkgdG8gaW5kZXggaW50byB0aGUKICogMUQgaW1hZ2UgYXJyYXkgb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZV9hcnJheQogKiBhbmQgKGNvb3JkLngpIHRvIGRvIGFuIGVsZW1lbnQgbG9va3VwIGluCiAqIHRoZSAxRCBpbWFnZSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGltYWdlLgogKgogKiBVc2UgdGhlIGNvb3JkaW5hdGUgKGNvb2QueHkpIGFuZCBzYW1wbGUgdG8gZG8gYW4KICogZWxlbWVudCBsb29rdXAgaW4gdGhlIDJEIG11bHRpLXNhbXBsZSBpbWFnZSBzcGVjaWZpZWQKICogYnkgaW1hZ2UuCiAqCiAqIFVzZSBjb29yZC54eSBhbmQgc2FtcGxlIHRvIGRvIGFuIGVsZW1lbnQKICogbG9va3VwIGluIHRoZSAyRCBtdWx0aS1zYW1wbGUgaW1hZ2UgbGF5ZXIKICogaWRlbnRpZmllZCBieSBpbmRleCBjb29yZC56IGluIHRoZSAyRCBtdWx0aS1zYW1wbGUKICogaW1hZ2UgYXJyYXkgc3BlY2lmaWVkIGJ5IGltYWdlLgogKgogKiBGb3IgbWlwbWFwIGltYWdlcywgdXNlIHRoZSBtaXAtbGV2ZWwgc3BlY2lmaWVkIGJ5CiAqIHRoZSBMZXZlbC1vZi1EZXRhaWwgKGxvZCkgb3IgdXNlIGdyYWRpZW50cyBmb3IgTE9ECiAqIGNvbXB1dGF0aW9uLgogKgogKiByZWFkX2ltYWdlZiByZXR1cm5zIGZsb2F0aW5nLXBvaW50IHZhbHVlcyBpbiB0aGUKICogcmFuZ2UgWzAuMCAuLi4gMS4wXSBmb3IgaW1hZ2Ugb2JqZWN0cyBjcmVhdGVkIHdpdGgKICogaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZiB0aGUgcHJlZGVmaW5lZAogKiBwYWNrZWQgZm9ybWF0cyBvciBDTF9VTk9STV9JTlQ4LCBvcgogKiBDTF9VTk9STV9JTlQxNi4KICoKICogcmVhZF9pbWFnZWYgcmV0dXJucyBmbG9hdGluZy1wb2ludCB2YWx1ZXMgaW4gdGhlCiAqIHJhbmdlIFstMS4wIC4uLiAxLjBdIGZvciBpbWFnZSBvYmplY3RzIGNyZWF0ZWQgd2l0aAogKiBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8gQ0xfU05PUk1fSU5UOCwKICogb3IgQ0xfU05PUk1fSU5UMTYuCiAqCiAqIHJlYWRfaW1hZ2VmIHJldHVybnMgZmxvYXRpbmctcG9pbnQgdmFsdWVzIGZvciBpbWFnZQogKiBvYmplY3RzIGNyZWF0ZWQgd2l0aCBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8KICogQ0xfSEFMRl9GTE9BVCBvciBDTF9GTE9BVC4KICoKICogcmVhZF9pbWFnZWkgYW5kIHJlYWRfaW1hZ2V1aSByZXR1cm4KICogdW5ub3JtYWxpemVkIHNpZ25lZCBpbnRlZ2VyIGFuZCB1bnNpZ25lZCBpbnRlZ2VyCiAqIHZhbHVlcyByZXNwZWN0aXZlbHkuIEVhY2ggY2hhbm5lbCB3aWxsIGJlIHN0b3JlZCBpbiBhCiAqIDMyLWJpdCBpbnRlZ2VyLgogKgogKiByZWFkX2ltYWdlaSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfU0lHTkVEX0lOVDgsCiAqIENMX1NJR05FRF9JTlQxNiBhbmQKICogQ0xfU0lHTkVEX0lOVDMyLgogKiBJZiB0aGUgaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgaXMgbm90IG9uZSBvZiB0aGUKICogYWJvdmUgdmFsdWVzLCB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHJlYWRfaW1hZ2VpCiAqIGFyZSB1bmRlZmluZWQuCiAqCiAqIHJlYWRfaW1hZ2V1aSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfVU5TSUdORURfSU5UOCwKICogQ0xfVU5TSUdORURfSU5UMTYgYW5kCiAqIENMX1VOU0lHTkVEX0lOVDMyLgogKiBJZiB0aGUgaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgaXMgbm90IG9uZSBvZiB0aGUKICogYWJvdmUgdmFsdWVzLCB0aGUgdmFsdWVzIHJldHVybmVkIGJ5IHJlYWRfaW1hZ2V1aQogKiBhcmUgdW5kZWZpbmVkLgogKgogKiBUaGUgcmVhZF9pbWFnZXtpfHVpfSBjYWxscyBzdXBwb3J0IGEgbmVhcmVzdCBmaWx0ZXIKICogb25seS4gVGhlIGZpbHRlcl9tb2RlIHNwZWNpZmllZCBpbiBzYW1wbGVyCiAqIG11c3QgYmUgc2V0IHRvIENMS19GSUxURVJfTkVBUkVTVDsgb3RoZXJ3aXNlCiAqIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYXJlIHVuZGVmaW5lZC4KCiAqIFRoZSByZWFkX2ltYWdle2Z8aXx1aX0gY2FsbHMgdGhhdCB0YWtlCiAqIGludGVnZXIgY29vcmRpbmF0ZXMgbXVzdCB1c2UgYSBzYW1wbGVyIHdpdGgKICogbm9ybWFsaXplZCBjb29yZGluYXRlcyBzZXQgdG8KICogQ0xLX05PUk1BTElaRURfQ09PUkRTX0ZBTFNFIGFuZAogKiBhZGRyZXNzaW5nIG1vZGUgc2V0IHRvCiAqIENMS19BRERSRVNTX0NMQU1QX1RPX0VER0UsCiAqIENMS19BRERSRVNTX0NMQU1QIG9yIENMS19BRERSRVNTX05PTkU7CiAqIG90aGVyd2lzZSB0aGUgdmFsdWVzIHJldHVybmVkIGFyZSB1bmRlZmluZWQuCiAqCiAqIFZhbHVlcyByZXR1cm5lZCBieSByZWFkX2ltYWdlZiBmb3IgaW1hZ2Ugb2JqZWN0cwogKiB3aXRoIGltYWdlX2NoYW5uZWxfZGF0YV90eXBlIHZhbHVlcyBub3Qgc3BlY2lmaWVkCiAqIGluIHRoZSBkZXNjcmlwdGlvbiBhYm92ZSBhcmUgdW5kZWZpbmVkLgogKi8KCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQpOwoKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQgY29vcmQpOwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCk7CgppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQpOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQyIGNvb3JkKTsKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKCmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGludDIgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCk7CmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCk7CmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50NCBjb29yZCk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IHNhbXBsZSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgc2FtcGxlKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTggLSBNaXBtYXBzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmZGVmIGNsX2tocl9taXBtYXBfaW1hZ2UKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGdyYWRpZW50WCwgZmxvYXQgZ3JhZGllbnRZKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0NCBncmFkaWVudFgsIGZsb2F0NCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2UKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCgovKioKKiBTYW1wbGVyLWxlc3MgSW1hZ2UgQWNjZXNzCiovCgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwoKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwoKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMV8yKQoKLy8gSW1hZ2UgcmVhZCBmdW5jdGlvbnMgcmV0dXJuaW5nIGhhbGY0IHR5cGUKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQpOwovKioKICogU2FtcGxlci1sZXNzIEltYWdlIEFjY2VzcwogKi8KaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CmhhbGY0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaChyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkKTsKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8xXzIpCiNlbmRpZiAvL2NsX2tocl9mcDE2CgovLyBJbWFnZSByZWFkIGZ1bmN0aW9ucyBmb3IgcmVhZF93cml0ZSBpbWFnZXMKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSwgaW50MiBjb29yZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSwgaW50NCBjb29yZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCk7CgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UsIGludDQgY29vcmQpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCgojaWYgY2xfa2hyX2dsX21zYWFfc2hhcmluZwpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgc2FtcGxlKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBzYW1wbGUpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBzYW1wbGUpOwpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IHNhbXBsZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmZGVmIGNsX2tocl9taXBtYXBfaW1hZ2UKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0IGxvZCk7CmludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBsb2QpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0IGxvZCk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdCBsb2QpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKdWludDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQgbG9kKTsKCmZsb2F0NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0IGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CnVpbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdCBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwoKZmxvYXQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwppbnQ0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQgZ3JhZGllbnRYLCBmbG9hdCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdCBncmFkaWVudFgsIGZsb2F0IGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDIgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQyIGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0MiBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0MiBncmFkaWVudFgsIGZsb2F0MiBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDIgZ3JhZGllbnRYLCBmbG9hdDIgZ3JhZGllbnRZKTsKCmZsb2F0IF9fcHVyZWZuIF9fb3ZsZCByZWFkX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgc2FtcGxlcl90IHNhbXBsZXIsIGZsb2F0NCBjb29yZCwgZmxvYXQyIGdyYWRpZW50WCwgZmxvYXQyIGdyYWRpZW50WSk7CgpmbG9hdDQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKaW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIHNhbXBsZXJfdCBzYW1wbGVyLCBmbG9hdDQgY29vcmQsIGZsb2F0NCBncmFkaWVudFgsIGZsb2F0NCBncmFkaWVudFkpOwp1aW50NCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBzYW1wbGVyX3Qgc2FtcGxlciwgZmxvYXQ0IGNvb3JkLCBmbG9hdDQgZ3JhZGllbnRYLCBmbG9hdDQgZ3JhZGllbnRZKTsKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2UKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBJbWFnZSByZWFkIGZ1bmN0aW9ucyByZXR1cm5pbmcgaGFsZjQgdHlwZQojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZjQgX19wdXJlZm4gX19vdmxkIHJlYWRfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UsIGludDQgY29vcmQpOwpoYWxmNCBfX3B1cmVmbiBfX292bGQgcmVhZF9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBXcml0ZSBjb2xvciB2YWx1ZSB0byBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgY29vcmRpbmF0ZQogKiAoY29vcmQueCwgY29vcmQueSkgaW4gdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW1hZ2UuCiAqIChjb29yZC54LCBjb29yZC55KSBhcmUgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMKICogYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoIC0gMSwgYW5kIDAKICogLi4uIGltYWdlIGhlaWdodCAtIDEuCgogKiBXcml0ZSBjb2xvciB2YWx1ZSB0byBsb2NhdGlvbiBzcGVjaWZpZWQgYnkgY29vcmRpbmF0ZQogKiAoY29vcmQueCwgY29vcmQueSkgaW4gdGhlIDJEIGltYWdlIG9iamVjdCBzcGVjaWZpZWQgYnkgaW5kZXgKICogKGNvb3JkLnopIG9mIHRoZSAyRCBpbWFnZSBhcnJheSBvYmplY3QgaW1hZ2VfYXJyYXkuCiAqIChjb29yZC54LCBjb29yZC55KSBhcmUgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQKICogY29vcmRpbmF0ZXMgYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoCiAqIC0gMS4KICoKICogV3JpdGUgY29sb3IgdmFsdWUgdG8gbG9jYXRpb24gc3BlY2lmaWVkIGJ5IGNvb3JkaW5hdGUKICogKGNvb3JkKSBpbiB0aGUgMUQgaW1hZ2UgKGJ1ZmZlcikgb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZS4KICogY29vcmQgaXMgY29uc2lkZXJlZCB0byBiZSB1bm5vcm1hbGl6ZWQgY29vcmRpbmF0ZXMKICogYW5kIG11c3QgYmUgaW4gdGhlIHJhbmdlIDAgLi4uIGltYWdlIHdpZHRoIC0gMS4KICoKICogV3JpdGUgY29sb3IgdmFsdWUgdG8gbG9jYXRpb24gc3BlY2lmaWVkIGJ5IGNvb3JkaW5hdGUKICogKGNvb3JkLngpIGluIHRoZSAxRCBpbWFnZSBvYmplY3Qgc3BlY2lmaWVkIGJ5IGluZGV4CiAqIChjb29yZC55KSBvZiB0aGUgMUQgaW1hZ2UgYXJyYXkgb2JqZWN0IGltYWdlX2FycmF5LgogKiB4IGlzIGNvbnNpZGVyZWQgdG8gYmUgdW5ub3JtYWxpemVkIGNvb3JkaW5hdGVzCiAqIGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSAwIC4uLiBpbWFnZSB3aWR0aCAtIDEuCiAqCiAqIFdyaXRlIGNvbG9yIHZhbHVlIHRvIGxvY2F0aW9uIHNwZWNpZmllZCBieSBjb29yZGluYXRlCiAqIChjb29yZC54LCBjb29yZC55LCBjb29yZC56KSBpbiB0aGUgM0QgaW1hZ2Ugb2JqZWN0IHNwZWNpZmllZCBieSBpbWFnZS4KICogY29vcmQueCAmIGNvb3JkLnkgYXJlIGNvbnNpZGVyZWQgdG8gYmUgdW5ub3JtYWxpemVkIGNvb3JkaW5hdGVzCiAqIGFuZCBtdXN0IGJlIGluIHRoZSByYW5nZSAwIC4uLiBpbWFnZSB3aWR0aCAtIDEsIGFuZCAwCiAqIC4uLiBpbWFnZSBoZWlnaHQgLSAxLgogKgogKiBGb3IgbWlwbWFwIGltYWdlcywgdXNlIG1pcC1sZXZlbCBzcGVjaWZpZWQgYnkgbG9kLgogKgogKiBBcHByb3ByaWF0ZSBkYXRhIGZvcm1hdCBjb252ZXJzaW9uIHRvIHRoZSBzcGVjaWZpZWQKICogaW1hZ2UgZm9ybWF0IGlzIGRvbmUgYmVmb3JlIHdyaXRpbmcgdGhlIGNvbG9yIHZhbHVlLgogKgogKiB3cml0ZV9pbWFnZWYgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGltYWdlIG9iamVjdHMKICogY3JlYXRlZCB3aXRoIGltYWdlX2NoYW5uZWxfZGF0YV90eXBlIHNldCB0byBvbmUgb2YKICogdGhlIHByZS1kZWZpbmVkIHBhY2tlZCBmb3JtYXRzIG9yIHNldCB0bwogKiBDTF9TTk9STV9JTlQ4LCBDTF9VTk9STV9JTlQ4LAogKiBDTF9TTk9STV9JTlQxNiwgQ0xfVU5PUk1fSU5UMTYsCiAqIENMX0hBTEZfRkxPQVQgb3IgQ0xfRkxPQVQuIEFwcHJvcHJpYXRlIGRhdGEKICogZm9ybWF0IGNvbnZlcnNpb24gd2lsbCBiZSBkb25lIHRvIGNvbnZlcnQgY2hhbm5lbAogKiBkYXRhIGZyb20gYSBmbG9hdGluZy1wb2ludCB2YWx1ZSB0byBhY3R1YWwgZGF0YSBmb3JtYXQKICogaW4gd2hpY2ggdGhlIGNoYW5uZWxzIGFyZSBzdG9yZWQuCiAqCiAqIHdyaXRlX2ltYWdlaSBjYW4gb25seSBiZSB1c2VkIHdpdGggaW1hZ2Ugb2JqZWN0cwogKiBjcmVhdGVkIHdpdGggaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgc2V0IHRvIG9uZSBvZgogKiB0aGUgZm9sbG93aW5nIHZhbHVlczoKICogQ0xfU0lHTkVEX0lOVDgsCiAqIENMX1NJR05FRF9JTlQxNiBhbmQKICogQ0xfU0lHTkVEX0lOVDMyLgogKgogKiB3cml0ZV9pbWFnZXVpIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBpbWFnZSBvYmplY3RzCiAqIGNyZWF0ZWQgd2l0aCBpbWFnZV9jaGFubmVsX2RhdGFfdHlwZSBzZXQgdG8gb25lIG9mCiAqIHRoZSBmb2xsb3dpbmcgdmFsdWVzOgogKiBDTF9VTlNJR05FRF9JTlQ4LAogKiBDTF9VTlNJR05FRF9JTlQxNiBhbmQKICogQ0xfVU5TSUdORURfSU5UMzIuCiAqCiAqIFRoZSBiZWhhdmlvciBvZiB3cml0ZV9pbWFnZWYsIHdyaXRlX2ltYWdlaSBhbmQKICogd3JpdGVfaW1hZ2V1aSBmb3IgaW1hZ2Ugb2JqZWN0cyBjcmVhdGVkIHdpdGgKICogaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUgdmFsdWVzIG5vdCBzcGVjaWZpZWQgaW4KICogdGhlIGRlc2NyaXB0aW9uIGFib3ZlIG9yIHdpdGggKHgsIHkpIGNvb3JkaW5hdGUKICogdmFsdWVzIHRoYXQgYXJlIG5vdCBpbiB0aGUgcmFuZ2UgKDAgLi4uIGltYWdlIHdpZHRoIC0xLAogKiAwIC4uLiBpbWFnZSBoZWlnaHQgLSAxKSwgcmVzcGVjdGl2ZWx5LCBpcyB1bmRlZmluZWQuCiAqLwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlLCBpbnQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50MiBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50MiBjb29yZCwgdWludDQgY29sb3IpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCB1aW50NCBjb2xvcik7CiNlbmRpZgoKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBmbG9hdCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgZmxvYXQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTggLSBNaXBtYXBzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmIGRlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdCBkZXB0aCk7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQgZGVwdGgpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl8zZF9pbWFnZV93cml0ZXMKCiNlbmRpZiAvL2RlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciBoYWxmNCB0eXBlCiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CiNlbmRpZgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaCh3cml0ZV9vbmx5IGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZnAxNgoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciByZWFkX3dyaXRlIGltYWdlcwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlLCBpbnQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCB1aW50NCBjb2xvcik7CgojaWZkZWYgY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIHVpbnQ0IGNvbG9yKTsKI2VuZGlmCgojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UsIGludDIgY29vcmQsIGZsb2F0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlLCBpbnQ0IGNvb3JkLCBmbG9hdCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2lmIGRlZmluZWQoY2xfa2hyX21pcG1hcF9pbWFnZV93cml0ZXMpCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSwgaW50IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXksIGludDIgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQyIGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7Cgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWYocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIGZsb2F0NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaShyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgaW50IGxvZCwgaW50NCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdldWkocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGludCBsb2QsIHVpbnQ0IGNvbG9yKTsKCnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VpKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5LCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBpbnQ0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2V1aShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSwgaW50NCBjb29yZCwgaW50IGxvZCwgdWludDQgY29sb3IpOwoKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlLCBpbnQyIGNvb3JkLCBpbnQgbG9kLCBmbG9hdCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlZihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSwgaW50NCBjb29yZCwgaW50IGxvZCwgZmxvYXQgY29sb3IpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VmKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCBmbG9hdDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWkocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UsIGludDQgY29vcmQsIGludCBsb2QsIGludDQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZXVpKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBpbnQgbG9kLCB1aW50NCBjb2xvcik7CiNlbmRpZiAvL2NsX2tocl8zZF9pbWFnZV93cml0ZXMKCiNlbmRpZiAvL2NsX2tocl9taXBtYXBfaW1hZ2Vfd3JpdGVzCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gSW1hZ2Ugd3JpdGUgZnVuY3Rpb25zIGZvciBoYWxmNCB0eXBlCiNpZmRlZiBjbF9raHJfZnAxNgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CiNlbmRpZgp2b2lkIF9fb3ZsZCB3cml0ZV9pbWFnZWgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UsIGludDIgY29vcmQsIGhhbGY0IGNvbG9yKTsKdm9pZCBfX292bGQgd3JpdGVfaW1hZ2VoKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlLCBpbnQ0IGNvb3JkLCBoYWxmNCBjb2xvcik7CnZvaWQgX19vdmxkIHdyaXRlX2ltYWdlaChyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UsIGludCBjb29yZCwgaGFsZjQgY29sb3IpOwojZW5kaWYgLy9jbF9raHJfZnAxNgojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8vIE5vdGU6IEluIE9wZW5DTCB2MS4wLzEuMS8xLjIsIGltYWdlIGFyZ3VtZW50IG9mIGltYWdlIHF1ZXJ5IGJ1aWx0aW4gZnVuY3Rpb25zIGRvZXMgbm90IGhhdmUKLy8gYWNjZXNzIHF1YWxpZmllciwgd2hpY2ggYnkgZGVmYXVsdCBhc3N1bWUgcmVhZF9vbmx5IGFjY2VzcyBxdWFsaWZpZXIuIEltYWdlIHF1ZXJ5IGJ1aWx0aW4KLy8gZnVuY3Rpb25zIHdpdGggd3JpdGVfb25seSBpbWFnZSBhcmd1bWVudCBzaG91bGQgYWxzbyBiZSBkZWNsYXJlZC4KCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIHdpZHRoIGluIHBpeGVscy4KICoKICAqLwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF9vbmx5IGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgod3JpdGVfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMWRfYnVmZmVyX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX3dpZHRoKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2Vfd2lkdGgocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV93aWR0aChyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIGhlaWdodCBpbiBwaXhlbHMuCiAqLwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodChyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodCh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQod3JpdGVfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2hlaWdodChyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9oZWlnaHQocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfaGVpZ2h0KHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgaW1hZ2UgZGVwdGggaW4gcGl4ZWxzLgogKi8KaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RlcHRoKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwoKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RlcHRoKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kZXB0aChyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLy8gT3BlbkNMIEV4dGVuc2lvbiB2Mi4wIHM5LjE4IC0gTWlwbWFwcwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCiNpZmRlZiBjbF9raHJfbWlwbWFwX2ltYWdlCi8qKgogKiBSZXR1cm4gdGhlIGltYWdlIG1pcGxldmVscy4KICovCgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMod3JpdGVfb25seSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHdyaXRlX29ubHkgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmCgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF93cml0ZSBpbWFnZTNkX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMWRfYXJyYXlfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9taXBfbGV2ZWxzKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX21pcF9sZXZlbHMocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fbWlwX2xldmVscyhyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CgojZW5kaWYgLy9jbF9raHJfbWlwbWFwX2ltYWdlCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgY2hhbm5lbCBkYXRhIHR5cGUuIFZhbGlkIHZhbHVlcyBhcmU6CiAqIENMS19TTk9STV9JTlQ4CiAqIENMS19TTk9STV9JTlQxNgogKiBDTEtfVU5PUk1fSU5UOAogKiBDTEtfVU5PUk1fSU5UMTYKICogQ0xLX1VOT1JNX1NIT1JUXzU2NQogKiBDTEtfVU5PUk1fU0hPUlRfNTU1CiAqIENMS19VTk9STV9TSE9SVF8xMDEwMTAKICogQ0xLX1NJR05FRF9JTlQ4CiAqIENMS19TSUdORURfSU5UMTYKICogQ0xLX1NJR05FRF9JTlQzMgogKiBDTEtfVU5TSUdORURfSU5UOAogKiBDTEtfVU5TSUdORURfSU5UMTYKICogQ0xLX1VOU0lHTkVEX0lOVDMyCiAqIENMS19IQUxGX0ZMT0FUCiAqIENMS19GTE9BVAogKi8KCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfb25seSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfM2RfaW1hZ2Vfd3JpdGVzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTFkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX2RhdGFfdHlwZShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfZGF0YV90eXBlKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9kYXRhX3R5cGUocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJuIHRoZSBpbWFnZSBjaGFubmVsIG9yZGVyLiBWYWxpZCB2YWx1ZXMgYXJlOgogKiBDTEtfQQogKiBDTEtfUgogKiBDTEtfUngKICogQ0xLX1JHCiAqIENMS19SR3gKICogQ0xLX1JBCiAqIENMS19SR0IKICogQ0xLX1JHQngKICogQ0xLX1JHQkEKICogQ0xLX0FSR0IKICogQ0xLX0JHUkEKICogQ0xLX0lOVEVOU0lUWQogKiBDTEtfTFVNSU5BTkNFCiAqLwoKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfb25seSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMWRfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UxZF9idWZmZXJfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKI2lmZGVmIGNsX2tocl8zZF9pbWFnZV93cml0ZXMKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojZW5kaWYKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcih3cml0ZV9vbmx5IGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UxZF90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTFkX2J1ZmZlcl90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlM2RfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UxZF9hcnJheV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyX2RlcHRoX2ltYWdlcwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2NoYW5uZWxfb3JkZXIocmVhZF93cml0ZSBpbWFnZTJkX21zYWFfZGVwdGhfdCBpbWFnZSk7CmludCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9jaGFubmVsX29yZGVyKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfY2hhbm5lbF9vcmRlcihyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCi8qKgogKiBSZXR1cm4gdGhlIDJEIGltYWdlIHdpZHRoIGFuZCBoZWlnaHQgYXMgYW4gaW50MgogKiB0eXBlLiBUaGUgd2lkdGggaXMgcmV0dXJuZWQgaW4gdGhlIHggY29tcG9uZW50LCBhbmQKICogdGhlIGhlaWdodCBpbiB0aGUgeSBjb21wb25lbnQuCiAqLwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9kZXB0aF90IGltYWdlKTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCgppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlKTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX2FycmF5X2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0od3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZGVwdGhfaW1hZ2VzCiNpZiBkZWZpbmVkKGNsX2tocl9nbF9tc2FhX3NoYXJpbmcpCmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQyIF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbShyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50MiBfX292bGQgX19jbmZuIGdldF9pbWFnZV9kaW0ocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludDIgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9jbF9raHJfZ2xfbXNhYV9zaGFyaW5nCiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKLyoqCiAqIFJldHVybiB0aGUgM0QgaW1hZ2Ugd2lkdGgsIGhlaWdodCwgYW5kIGRlcHRoIGFzIGFuCiAqIGludDQgdHlwZS4gVGhlIHdpZHRoIGlzIHJldHVybmVkIGluIHRoZSB4CiAqIGNvbXBvbmVudCwgaGVpZ2h0IGluIHRoZSB5IGNvbXBvbmVudCwgZGVwdGggaW4gdGhlIHoKICogY29tcG9uZW50IGFuZCB0aGUgdyBjb21wb25lbnQgaXMgMC4KICovCmludDQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfb25seSBpbWFnZTNkX3QgaW1hZ2UpOwojaWZkZWYgY2xfa2hyXzNkX2ltYWdlX3dyaXRlcwppbnQ0IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2RpbSh3cml0ZV9vbmx5IGltYWdlM2RfdCBpbWFnZSk7CiNlbmRpZgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludDQgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfZGltKHJlYWRfd3JpdGUgaW1hZ2UzZF90IGltYWdlKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKICogUmV0dXJuIHRoZSBpbWFnZSBhcnJheSBzaXplLgogKi8KCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHJlYWRfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV90IGltYWdlX2FycmF5KTsKI2lmZGVmIGNsX2tocl9kZXB0aF9pbWFnZXMKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9kZXB0aF9pbWFnZXMKI2lmIGRlZmluZWQoY2xfa2hyX2dsX21zYWFfc2hhcmluZykKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2dsX21zYWFfc2hhcmluZwoKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUod3JpdGVfb25seSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHdyaXRlX29ubHkgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZSh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF93cml0ZSBpbWFnZTFkX2FycmF5X3QgaW1hZ2VfYXJyYXkpOwpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfdCBpbWFnZV9hcnJheSk7CiNpZmRlZiBjbF9raHJfZGVwdGhfaW1hZ2VzCnNpemVfdCBfX292bGQgX19jbmZuIGdldF9pbWFnZV9hcnJheV9zaXplKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9kZXB0aF90IGltYWdlX2FycmF5KTsKI2VuZGlmIC8vY2xfa2hyX2RlcHRoX2ltYWdlcwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQpzaXplX3QgX19vdmxkIF9fY25mbiBnZXRfaW1hZ2VfYXJyYXlfc2l6ZShyZWFkX3dyaXRlIGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlX2FycmF5KTsKc2l6ZV90IF9fb3ZsZCBfX2NuZm4gZ2V0X2ltYWdlX2FycmF5X3NpemUocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZV9hcnJheSk7CiNlbmRpZiAvL2NsX2tocl9nbF9tc2FhX3NoYXJpbmcKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovKioKKiBSZXR1cm4gdGhlIG51bWJlciBvZiBzYW1wbGVzIGFzc29jaWF0ZWQgd2l0aCBpbWFnZQoqLwojaWYgZGVmaW5lZChjbF9raHJfZ2xfbXNhYV9zaGFyaW5nKQppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX29ubHkgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwoKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMod3JpdGVfb25seSBpbWFnZTJkX21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHdyaXRlX29ubHkgaW1hZ2UyZF9tc2FhX2RlcHRoX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyh3cml0ZV9vbmx5IGltYWdlMmRfYXJyYXlfbXNhYV90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMod3JpdGVfb25seSBpbWFnZTJkX2FycmF5X21zYWFfZGVwdGhfdCBpbWFnZSk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHJlYWRfd3JpdGUgaW1hZ2UyZF9tc2FhX3QgaW1hZ2UpOwppbnQgX19vdmxkIGdldF9pbWFnZV9udW1fc2FtcGxlcyhyZWFkX3dyaXRlIGltYWdlMmRfbXNhYV9kZXB0aF90IGltYWdlKTsKaW50IF9fb3ZsZCBnZXRfaW1hZ2VfbnVtX3NhbXBsZXMocmVhZF93cml0ZSBpbWFnZTJkX2FycmF5X21zYWFfdCBpbWFnZSk7CmludCBfX292bGQgZ2V0X2ltYWdlX251bV9zYW1wbGVzKHJlYWRfd3JpdGUgaW1hZ2UyZF9hcnJheV9tc2FhX2RlcHRoX3QgaW1hZ2UpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKI2VuZGlmCgovLyBPcGVuQ0wgdjIuMCBzNi4xMy4xNSAtIFdvcmstZ3JvdXAgRnVuY3Rpb25zCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX3dvcmtfZ3JvdXBfY29sbGVjdGl2ZV9mdW5jdGlvbnMpCmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYWxsKGludCBwcmVkaWNhdGUpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2FueShpbnQgcHJlZGljYXRlKTsKCiNpZmRlZiBjbF9raHJfZnAxNgpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgbG9jYWxfaWQpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaGFsZiBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKI2VuZGlmCmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGludCBhLCBzaXplX3QgbG9jYWxfaWQpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChpbnQgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoaW50IGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgbG9jYWxfaWQpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWludCBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IGxvY2FsX2lkKTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgYSwgc2l6ZV90IHgsIHNpemVfdCB5LCBzaXplX3Qgeik7CnVsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QodWxvbmcgYSwgc2l6ZV90IGxvY2FsX2lkKTsKdWxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdCh1bG9uZyBhLCBzaXplX3QgeCwgc2l6ZV90IHkpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KHVsb25nIGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGZsb2F0IGEsIHNpemVfdCBsb2NhbF9pZCk7CmZsb2F0IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoZmxvYXQgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKZmxvYXQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChmbG9hdCBhLCBzaXplX3QgeCwgc2l6ZV90IHksIHNpemVfdCB6KTsKI2lmZGVmIGNsX2tocl9mcDY0CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfYnJvYWRjYXN0KGRvdWJsZSBhLCBzaXplX3QgbG9jYWxfaWQpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX2Jyb2FkY2FzdChkb3VibGUgYSwgc2l6ZV90IHgsIHNpemVfdCB5KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9icm9hZGNhc3QoZG91YmxlIGEsIHNpemVfdCB4LCBzaXplX3QgeSwgc2l6ZV90IHopOwojZW5kaWYgLy9jbF9raHJfZnA2NAoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9hZGQoaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21pbihoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGhhbGYgeCk7CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4oaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGhhbGYgeCk7CmhhbGYgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChoYWxmIHgpOwpoYWxmIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4oaGFsZiB4KTsKaGFsZiBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGhhbGYgeCk7CiNlbmRpZgppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9hZGQoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4oaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9tYXgoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChpbnQgeCk7CmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGludCB4KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9tYXgoaW50IHgpOwppbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChpbnQgeCk7CmludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGludCB4KTsKaW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgoaW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4odWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21heCh1aW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQodWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCh1aW50IHgpOwp1aW50IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQodWludCB4KTsKdWludCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVpbnQgeCk7CnVpbnQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCh1aW50IHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4obG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX21heChsb25nIHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQobG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heChsb25nIHgpOwpsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQobG9uZyB4KTsKbG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGxvbmcgeCk7CmxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heChsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX2FkZCh1bG9uZyB4KTsKdWxvbmcgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4odWxvbmcgeCk7CnVsb25nIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVsb25nIHgpOwp1bG9uZyBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KHVsb25nIHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfcmVkdWNlX2FkZChmbG9hdCB4KTsKZmxvYXQgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3JlZHVjZV9taW4oZmxvYXQgeCk7CmZsb2F0IF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGZsb2F0IHgpOwpmbG9hdCBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGZsb2F0IHgpOwojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfYWRkKGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWluKGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9yZWR1Y2VfbWF4KGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKZG91YmxlIF9fb3ZsZCBfX2NvbnYgd29ya19ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgX19vdmxkIF9fY29udiB3b3JrX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSBfX292bGQgX19jb252IHdvcmtfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbmRpZiAvL2RlZmluZWQoX19vcGVuY2xfY193b3JrX2dyb3VwX2NvbGxlY3RpdmVfZnVuY3Rpb25zKQoKLy8gT3BlbkNMIHYyLjAgczYuMTMuMTYgLSBQaXBlIEZ1bmN0aW9ucwojaWYgZGVmaW5lZChfX29wZW5jbF9jX3BpcGVzKQpib29sIF9fb3ZsZCBpc192YWxpZF9yZXNlcnZlX2lkKHJlc2VydmVfaWRfdCByZXNlcnZlX2lkKTsKI2VuZGlmIC8vZGVmaW5lZChfX29wZW5jbF9jX3BpcGVzKQoKCi8vIE9wZW5DTCB2Mi4wIHM2LjEzLjE3IC0gRW5xdWV1ZSBLZXJuZWxzCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8xRChzaXplX3QpOwpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMUQoc2l6ZV90LCBzaXplX3QpOwpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMUQoc2l6ZV90LCBzaXplX3QsIHNpemVfdCk7CgpuZHJhbmdlX3QgX19vdmxkIG5kcmFuZ2VfMkQoY29uc3Qgc2l6ZV90WzJdKTsKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzJEKGNvbnN0IHNpemVfdFsyXSwgY29uc3Qgc2l6ZV90WzJdKTsKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzJEKGNvbnN0IHNpemVfdFsyXSwgY29uc3Qgc2l6ZV90WzJdLCBjb25zdCBzaXplX3RbMl0pOwoKbmRyYW5nZV90IF9fb3ZsZCBuZHJhbmdlXzNEKGNvbnN0IHNpemVfdFszXSk7Cm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8zRChjb25zdCBzaXplX3RbM10sIGNvbnN0IHNpemVfdFszXSk7Cm5kcmFuZ2VfdCBfX292bGQgbmRyYW5nZV8zRChjb25zdCBzaXplX3RbM10sIGNvbnN0IHNpemVfdFszXSwgY29uc3Qgc2l6ZV90WzNdKTsKCmludCBfX292bGQgZW5xdWV1ZV9tYXJrZXIocXVldWVfdCwgdWludCwgY29uc3QgY2xrX2V2ZW50X3QqLCBjbGtfZXZlbnRfdCopOwoKdm9pZCBfX292bGQgcmV0YWluX2V2ZW50KGNsa19ldmVudF90KTsKCnZvaWQgX19vdmxkIHJlbGVhc2VfZXZlbnQoY2xrX2V2ZW50X3QpOwoKY2xrX2V2ZW50X3QgX19vdmxkIGNyZWF0ZV91c2VyX2V2ZW50KHZvaWQpOwoKdm9pZCBfX292bGQgc2V0X3VzZXJfZXZlbnRfc3RhdHVzKGNsa19ldmVudF90IGUsIGludCBzdGF0ZSk7Cgpib29sIF9fb3ZsZCBpc192YWxpZF9ldmVudCAoY2xrX2V2ZW50X3QgZXZlbnQpOwoKdm9pZCBfX292bGQgY2FwdHVyZV9ldmVudF9wcm9maWxpbmdfaW5mbyhjbGtfZXZlbnRfdCwgY2xrX3Byb2ZpbGluZ19pbmZvLCBfX2dsb2JhbCB2b2lkKiB2YWx1ZSk7CgpxdWV1ZV90IF9fb3ZsZCBnZXRfZGVmYXVsdF9xdWV1ZSh2b2lkKTsKI2VuZGlmIC8vZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgovLyBPcGVuQ0wgRXh0ZW5zaW9uIHYyLjAgczkuMTcgLSBTdWItZ3JvdXBzCgojaWYgZGVmaW5lZChjbF9pbnRlbF9zdWJncm91cHMpIHx8IGRlZmluZWQoY2xfa2hyX3N1Ymdyb3VwcykgfHwgZGVmaW5lZChfX29wZW5jbF9jX3N1Ymdyb3VwcykKLy8gU2hhcmVkIFN1YiBHcm91cCBGdW5jdGlvbnMKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9zaXplKHZvaWQpOwp1aW50ICAgIF9fb3ZsZCBnZXRfbWF4X3N1Yl9ncm91cF9zaXplKHZvaWQpOwp1aW50ICAgIF9fb3ZsZCBnZXRfbnVtX3N1Yl9ncm91cHModm9pZCk7CiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdWludCAgICBfX292bGQgZ2V0X2VucXVldWVkX251bV9zdWJfZ3JvdXBzKHZvaWQpOwojZW5kaWYgLy9kZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9pZCh2b2lkKTsKdWludCAgICBfX292bGQgZ2V0X3N1Yl9ncm91cF9sb2NhbF9pZCh2b2lkKTsKCnZvaWQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MpOwojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYmFycmllcihjbF9tZW1fZmVuY2VfZmxhZ3MgZmxhZ3MsIG1lbW9yeV9zY29wZSBzY29wZSk7CiNlbmRpZiAvL2RlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9hbGwoaW50IHByZWRpY2F0ZSk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYW55KGludCBwcmVkaWNhdGUpOwoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoaW50ICAgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCh1aW50ICB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KGxvbmcgIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkKTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QodWxvbmcgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdChmbG9hdCB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CgppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9hZGQoaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9hZGQodWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZChmbG9hdCB4KTsKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4odWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbihsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oZmxvYXQgeCk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21heChpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21heCh1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGZsb2F0IHgpOwoKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZChsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQodWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGZsb2F0IHgpOwppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4odWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbih1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9taW4oZmxvYXQgeCk7CmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9tYXgobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heChmbG9hdCB4KTsKCmludCAgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGludCAgIHgpOwp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCh1aW50ICB4KTsKbG9uZyAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQobG9uZyAgeCk7CnVsb25nICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKHVsb25nIHgpOwpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZChmbG9hdCB4KTsKaW50ICAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4oaW50ICAgeCk7CnVpbnQgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKHVpbnQgIHgpOwpsb25nICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihsb25nICB4KTsKdWxvbmcgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9taW4odWxvbmcgeCk7CmZsb2F0ICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGZsb2F0IHgpOwppbnQgICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heChpbnQgICB4KTsKdWludCAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgodWludCAgeCk7CmxvbmcgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGxvbmcgIHgpOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCh1bG9uZyB4KTsKZmxvYXQgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9tYXgoZmxvYXQgeCk7CgojaWZkZWYgY2xfa2hyX2ZwMTYKaGFsZiAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoaGFsZiB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZChoYWxmIHgpOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oaGFsZiB4KTsKaGFsZiAgICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKGhhbGYgeCk7CmhhbGYgICAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGhhbGYgeCk7CiNlbmRpZiAvL2NsX2tocl9mcDE2CgojaWZkZWYgY2xfa2hyX2ZwNjQKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoZG91YmxlIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkKTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWluKGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2V4Y2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKZG91YmxlICBfX292bGQgX19jb252IHN1Yl9ncm91cF9zY2FuX2luY2x1c2l2ZV9hZGQoZG91YmxlIHgpOwpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbihkb3VibGUgeCk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KGRvdWJsZSB4KTsKI2VuZGlmIC8vY2xfa2hyX2ZwNjQKCiNlbmRpZiAvL2NsX2tocl9zdWJncm91cHMgY2xfaW50ZWxfc3ViZ3JvdXBzIF9fb3BlbmNsX2Nfc3ViZ3JvdXBzCgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfZXh0ZW5kZWRfdHlwZXMpCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBjaGFyIHZhbHVlLCB1aW50IGluZGV4ICk7CmNoYXIyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBjaGFyMyB2YWx1ZSwgdWludCBpbmRleCApOwpjaGFyNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGNoYXI0IHZhbHVlLCB1aW50IGluZGV4ICk7CmNoYXI4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggY2hhcjE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgp1Y2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyMiB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1Y2hhcjMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXI0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWNoYXI0IHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVjaGFyOCB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWNoYXIxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggc2hvcnQzIHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDggX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDggdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHNob3J0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0MiB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0MyB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0OCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgovLyBzY2FsYXIgaW50IGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKaW50MiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50OCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBpbnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIHVpbnQgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3Vwcwp1aW50MiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVpbnQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1aW50NCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50OCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVpbnQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVpbnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIGxvbmcgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3Vwcwpsb25nMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmczIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggbG9uZzMgdmFsdWUsIHVpbnQgaW5kZXggKTsKbG9uZzQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBsb25nNCB2YWx1ZSwgdWludCBpbmRleCApOwpsb25nOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGxvbmcxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKLy8gc2NhbGFyIHVsb25nIGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKdWxvbmcyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIHVsb25nMyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZzQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1bG9uZzQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmc4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggdWxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCB1bG9uZzE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgovLyBzY2FsYXIgZmxvYXQgYnJvYWRjYXN0IGlzIHBhcnQgb2YgY2xfa2hyX3N1Ymdyb3VwcwpmbG9hdDIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBmbG9hdDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQzIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggZmxvYXQzIHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0NCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGZsb2F0NCB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDggX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBmbG9hdDggdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQxNiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGZsb2F0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlICk7CgpjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUgKTsKdWNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfcmVkdWNlX21pbiggc2hvcnQgdmFsdWUgKTsKdXNob3J0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9taW4oIHVzaG9ydCB2YWx1ZSApOwoKY2hhciBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHVjaGFyIHZhbHVlICk7CnNob3J0IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHNob3J0IHZhbHVlICk7CnVzaG9ydCBfX292bGQgX19jb252IHN1Yl9ncm91cF9yZWR1Y2VfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9pbmNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX2FkZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21pbiggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKCmNoYXIgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBjaGFyIHZhbHVlICk7CnVjaGFyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX3NjYW5fZXhjbHVzaXZlX21heCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDE2KQovLyBzY2FsYXIgaGFsZiBicm9hZGNhc3QgaXMgcGFydCBvZiBjbF9raHJfc3ViZ3JvdXBzCmhhbGYyIF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZjMgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBoYWxmMyB2YWx1ZSwgdWludCBpbmRleCApOwpoYWxmNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGhhbGY0IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY4IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjggdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZjE2IF9fb3ZsZCBfX2NvbnYgc3ViX2dyb3VwX2Jyb2FkY2FzdCggaGFsZjE2IHZhbHVlLCB1aW50IGluZGV4ICk7CiNlbmRpZiAgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQovLyBzY2FsYXIgZG91YmxlIGJyb2FkY2FzdCBpcyBwYXJ0IG9mIGNsX2tocl9zdWJncm91cHMKZG91YmxlMiBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTIgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlMyBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTMgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlNCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTQgdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlOCBfX292bGQgX19jb252IHN1Yl9ncm91cF9icm9hZGNhc3QoIGRvdWJsZTggdmFsdWUsIHVpbnQgaW5kZXggKTsKZG91YmxlMTYgX19vdmxkIF9fY29udiBzdWJfZ3JvdXBfYnJvYWRjYXN0KCBkb3VibGUxNiB2YWx1ZSwgdWludCBpbmRleCApOwojZW5kaWYgIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgIC8vIGNsX2tocl9zdWJncm91cF9leHRlbmRlZF90eXBlcwoKI2lmIGRlZmluZWQoY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX3ZvdGUpCmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9lbGVjdCh2b2lkKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbCggaW50IHByZWRpY2F0ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYW55KCBpbnQgcHJlZGljYXRlICk7CgppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBjaGFyIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVjaGFyIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBpbnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbF9lcXVhbCggdWludCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBsb25nIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIHVsb25nIHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9hbGxfZXF1YWwoIGZsb2F0IHZhbHVlICk7CgojaWYgZGVmaW5lZChjbF9raHJfZnAxNikKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2FsbF9lcXVhbCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYWxsX2VxdWFsKCBkb3VibGUgdmFsdWUgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX3ZvdGUKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9iYWxsb3QpCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGNoYXIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjMgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjMgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjQgdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjggICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKY2hhcjE2ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggY2hhcjE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhciB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjIgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhcjIgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXIzICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWNoYXIzIHZhbHVlLCB1aW50IGluZGV4ICk7CnVjaGFyNCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVjaGFyNCB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhcjggIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1Y2hhcjggdmFsdWUsIHVpbnQgaW5kZXggKTsKdWNoYXIxNiBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWNoYXIxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQyICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0MyAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHNob3J0MyB2YWx1ZSwgdWludCBpbmRleCApOwpzaG9ydDQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBzaG9ydDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQ4ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggc2hvcnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnNob3J0MTYgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHNob3J0MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVzaG9ydCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQyIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydDMgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVzaG9ydDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdXNob3J0NCBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdXNob3J0NCB2YWx1ZSwgdWludCBpbmRleCApOwp1c2hvcnQ4IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQ4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydDE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1c2hvcnQxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50IHZhbHVlLCB1aW50IGluZGV4ICk7CmludDIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50MyB2YWx1ZSwgdWludCBpbmRleCApOwppbnQ0ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBpbnQ0IHZhbHVlLCB1aW50IGluZGV4ICk7CmludDggICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50MTYgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggaW50MTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVpbnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDIgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDMgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDggICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDggdmFsdWUsIHVpbnQgaW5kZXggKTsKdWludDE2ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWludDE2IHZhbHVlLCB1aW50IGluZGV4ICk7Cgpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBsb25nIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmczICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmczIHZhbHVlLCB1aW50IGluZGV4ICk7Cmxvbmc0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmc0IHZhbHVlLCB1aW50IGluZGV4ICk7Cmxvbmc4ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CmxvbmcxNiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGxvbmcxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmcgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmcyICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmcyIHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMyAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVsb25nMyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZzQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCB1bG9uZzQgdmFsdWUsIHVpbnQgaW5kZXggKTsKdWxvbmc4ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggdWxvbmc4IHZhbHVlLCB1aW50IGluZGV4ICk7CnVsb25nMTYgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIHVsb25nMTYgdmFsdWUsIHVpbnQgaW5kZXggKTsKCmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0IHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0MiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0MiB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDMgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBmbG9hdDMgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQ0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggZmxvYXQ0IHZhbHVlLCB1aW50IGluZGV4ICk7CmZsb2F0OCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGZsb2F0OCB2YWx1ZSwgdWludCBpbmRleCApOwpmbG9hdDE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBmbG9hdDE2IHZhbHVlLCB1aW50IGluZGV4ICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX2Jyb2FkY2FzdF9maXJzdCggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYnJvYWRjYXN0X2ZpcnN0KCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIGZsb2F0IHZhbHVlICk7Cgp1aW50NCAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90KCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIF9fY25mbiBzdWJfZ3JvdXBfaW52ZXJzZV9iYWxsb3QoIHVpbnQ0IHZhbHVlICk7CmludCAgICAgX19vdmxkIF9fY25mbiBzdWJfZ3JvdXBfYmFsbG90X2JpdF9leHRyYWN0KCB1aW50NCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50ICAgIF9fb3ZsZCBfX2NuZm4gc3ViX2dyb3VwX2JhbGxvdF9iaXRfY291bnQoIHVpbnQ0IHZhbHVlICk7Cgp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2luY2x1c2l2ZV9zY2FuKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2V4Y2x1c2l2ZV9zY2FuKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2ZpbmRfbHNiKCB1aW50NCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfYmFsbG90X2ZpbmRfbXNiKCB1aW50NCB2YWx1ZSApOwoKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZXFfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZ2VfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfZ3RfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfbGVfbWFzayh2b2lkKTsKdWludDQgICBfX292bGQgX19jbmZuIGdldF9zdWJfZ3JvdXBfbHRfbWFzayh2b2lkKTsKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDE2KQpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBoYWxmIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYyIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYzICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYzIHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGY0IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGY4ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGY4IHZhbHVlLCB1aW50IGluZGV4ICk7CmhhbGYxNiAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9icm9hZGNhc3QoIGhhbGYxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX2Jyb2FkY2FzdF9maXJzdCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX2Jyb2FkY2FzdCggZG91YmxlIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTIgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUyIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTMgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUzIHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGU0IHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTggIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGU4IHZhbHVlLCB1aW50IGluZGV4ICk7CmRvdWJsZTE2IF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fYnJvYWRjYXN0KCBkb3VibGUxNiB2YWx1ZSwgdWludCBpbmRleCApOwoKZG91YmxlICAgX19vdmxkIHN1Yl9ncm91cF9icm9hZGNhc3RfZmlyc3QoIGRvdWJsZSB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwNjQKCiNlbmRpZiAvLyBjbF9raHJfc3ViZ3JvdXBfYmFsbG90CgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfbm9uX3VuaWZvcm1fYXJpdGhtZXRpYykKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hZGQoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX211bCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tdWwoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21pbiggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21heCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9tYXgoIHVsb25nIHZhbHVlICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FkZCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21heCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hZGQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9tdWwoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21pbiggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWluKCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9tYXgoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCB1bG9uZyB2YWx1ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBmbG9hdCB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYW5kKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FuZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYW5kKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9hbmQoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9vciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX29yKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2Vfb3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWNoYXIgdmFsdWUgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV94b3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfeG9yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV94b3IoIGludCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX3hvciggdWxvbmcgdmFsdWUgKTsKCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdWNoYXIgdmFsdWUgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggc2hvcnQgdmFsdWUgKTsKdXNob3J0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGludCB2YWx1ZSApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfYW5kKCB1aW50IHZhbHVlICk7CmxvbmcgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hbmQoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2FuZCggdWxvbmcgdmFsdWUgKTsKCmNoYXIgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfb3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggc2hvcnQgdmFsdWUgKTsKdXNob3J0ICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX29yKCB1aW50IHZhbHVlICk7CmxvbmcgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9vciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfb3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX3hvciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfeG9yKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV94b3IoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBjaGFyIHZhbHVlICk7CnVjaGFyICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVjaGFyIHZhbHVlICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVzaG9ydCB2YWx1ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBpbnQgdmFsdWUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FuZCggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYW5kKCBsb25nIHZhbHVlICk7CnVsb25nICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9hbmQoIHVsb25nIHZhbHVlICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIGNoYXIgdmFsdWUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX29yKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIHNob3J0IHZhbHVlICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggdXNob3J0IHZhbHVlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9vciggdWludCB2YWx1ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfb3IoIGxvbmcgdmFsdWUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX29yKCB1bG9uZyB2YWx1ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggY2hhciB2YWx1ZSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1Y2hhciB2YWx1ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCBzaG9ydCB2YWx1ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1c2hvcnQgdmFsdWUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggaW50IHZhbHVlICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV94b3IoIHVpbnQgdmFsdWUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX3hvciggbG9uZyB2YWx1ZSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfeG9yKCB1bG9uZyB2YWx1ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9sb2dpY2FsX2FuZCggaW50IHByZWRpY2F0ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2xvZ2ljYWxfb3IoIGludCBwcmVkaWNhdGUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX2xvZ2ljYWxfYW5kKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9sb2dpY2FsX29yKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2xvZ2ljYWxfYW5kKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9sb2dpY2FsX29yKCBpbnQgcHJlZGljYXRlICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfYWRkKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWluKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbWF4KCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX211bCggaGFsZiB2YWx1ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbWluKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX2FkZCggaGFsZiB2YWx1ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbXVsKCBoYWxmIHZhbHVlICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIGhhbGYgdmFsdWUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX21heCggaGFsZiB2YWx1ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX2FkZCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9yZWR1Y2VfbXVsKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3JlZHVjZV9taW4oIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fcmVkdWNlX21heCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9hZGQoIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9pbmNsdXNpdmVfbXVsKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5faW5jbHVzaXZlX21pbiggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2luY2x1c2l2ZV9tYXgoIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfYWRkKCBkb3VibGUgdmFsdWUgKTsKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX25vbl91bmlmb3JtX3NjYW5fZXhjbHVzaXZlX211bCggZG91YmxlIHZhbHVlICk7CmRvdWJsZSAgX19vdmxkIHN1Yl9ncm91cF9ub25fdW5pZm9ybV9zY2FuX2V4Y2x1c2l2ZV9taW4oIGRvdWJsZSB2YWx1ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfbm9uX3VuaWZvcm1fc2Nhbl9leGNsdXNpdmVfbWF4KCBkb3VibGUgdmFsdWUgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX25vbl91bmlmb3JtX2FyaXRobWV0aWMKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9zaHVmZmxlKQpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggY2hhciB2YWx1ZSwgdWludCBpbmRleCApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWNoYXIgdmFsdWUsIHVpbnQgaW5kZXggKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0IHZhbHVlLCB1aW50IGluZGV4ICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQgdmFsdWUsIHVpbnQgaW5kZXggKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGludCB2YWx1ZSwgdWludCBpbmRleCApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWludCB2YWx1ZSwgdWludCBpbmRleCApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggbG9uZyB2YWx1ZSwgdWludCBpbmRleCApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZSggdWxvbmcgdmFsdWUsIHVpbnQgaW5kZXggKTsKZmxvYXQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0IHZhbHVlLCB1aW50IGluZGV4ICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGNoYXIgdmFsdWUsIHVpbnQgbWFzayApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVjaGFyIHZhbHVlLCB1aW50IG1hc2sgKTsKc2hvcnQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydCB2YWx1ZSwgdWludCBtYXNrICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0IHZhbHVlLCB1aW50IG1hc2sgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBpbnQgdmFsdWUsIHVpbnQgbWFzayApOwp1aW50ICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQgdmFsdWUsIHVpbnQgbWFzayApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGxvbmcgdmFsdWUsIHVpbnQgbWFzayApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVsb25nIHZhbHVlLCB1aW50IG1hc2sgKTsKZmxvYXQgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdCB2YWx1ZSwgdWludCBtYXNrICk7CgojaWYgZGVmaW5lZChjbF9raHJfZnAxNikKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGhhbGYgdmFsdWUsIHVpbnQgaW5kZXggKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBoYWxmIHZhbHVlLCB1aW50IG1hc2sgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgojaWYgZGVmaW5lZChjbF9raHJfZnA2NCkKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGUoIGRvdWJsZSB2YWx1ZSwgdWludCBpbmRleCApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGRvdWJsZSB2YWx1ZSwgdWludCBtYXNrICk7CiNlbmRpZiAvLyBjbF9raHJfZnA2NAoKI2VuZGlmIC8vIGNsX2tocl9zdWJncm91cF9zaHVmZmxlCgojaWYgZGVmaW5lZChjbF9raHJfc3ViZ3JvdXBfc2h1ZmZsZV9yZWxhdGl2ZSkKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGNoYXIgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVjaGFyIHZhbHVlLCB1aW50IGRlbHRhICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydCB2YWx1ZSwgdWludCBkZWx0YSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV91cCggdXNob3J0IHZhbHVlLCB1aW50IGRlbHRhICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGxvbmcgdmFsdWUsIHVpbnQgZGVsdGEgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVsb25nIHZhbHVlLCB1aW50IGRlbHRhICk7CmZsb2F0ICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdCB2YWx1ZSwgdWludCBkZWx0YSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggY2hhciB2YWx1ZSwgdWludCBkZWx0YSApOwp1Y2hhciAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1Y2hhciB2YWx1ZSwgdWludCBkZWx0YSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBzaG9ydCB2YWx1ZSwgdWludCBkZWx0YSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50IHZhbHVlLCB1aW50IGRlbHRhICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQgdmFsdWUsIHVpbnQgZGVsdGEgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfZG93biggbG9uZyB2YWx1ZSwgdWludCBkZWx0YSApOwp1bG9uZyAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1bG9uZyB2YWx1ZSwgdWludCBkZWx0YSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdCB2YWx1ZSwgdWludCBkZWx0YSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX3VwKCBoYWxmIHZhbHVlLCB1aW50IGRlbHRhICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGhhbGYgdmFsdWUsIHVpbnQgZGVsdGEgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDE2CgojaWYgZGVmaW5lZChjbF9raHJfZnA2NCkKZG91YmxlICBfX292bGQgc3ViX2dyb3VwX3NodWZmbGVfdXAoIGRvdWJsZSB2YWx1ZSwgdWludCBkZWx0YSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBkb3VibGUgdmFsdWUsIHVpbnQgZGVsdGEgKTsKI2VuZGlmIC8vIGNsX2tocl9mcDY0CgojZW5kaWYgLy8gY2xfa2hyX3N1Ymdyb3VwX3NodWZmbGVfcmVsYXRpdmUKCiNpZiBkZWZpbmVkKGNsX2tocl9zdWJncm91cF9jbHVzdGVyZWRfcmVkdWNlKQpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYWRkKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYWRkKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbXVsKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX211bCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbXVsKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21pbiggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWF4KCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWF4KCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpmbG9hdCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGZsb2F0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYW5kKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FuZCggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hbmQoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfYW5kKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKY2hhciAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVjaGFyIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnNob3J0ICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX29yKCBzaG9ydCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwp1c2hvcnQgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9vciggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX29yKCBpbnQgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWludCAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVpbnQgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKbG9uZyAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2Vfb3IoIHVsb25nIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CgpjaGFyICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIGNoYXIgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWNoYXIgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfeG9yKCB1Y2hhciB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpzaG9ydCAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIHNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVzaG9ydCAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggdXNob3J0IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmludCAgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggaW50IHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CnVpbnQgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX3hvciggdWludCB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpsb25nICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV94b3IoIGxvbmcgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKdWxvbmcgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfeG9yKCB1bG9uZyB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbG9naWNhbF9hbmQoIGludCBwcmVkaWNhdGUsIHVpbnQgY2x1c3RlcnNpemUgKTsKaW50ICAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbG9naWNhbF9vciggaW50IHByZWRpY2F0ZSwgdWludCBjbHVzdGVyc2l6ZSApOwppbnQgICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9sb2dpY2FsX3hvciggaW50IHByZWRpY2F0ZSwgdWludCBjbHVzdGVyc2l6ZSApOwoKI2lmIGRlZmluZWQoY2xfa2hyX2ZwMTYpCmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX2FkZCggaGFsZiB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpoYWxmICAgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGhhbGYgdmFsdWUsIHVpbnQgY2x1c3RlcnNpemUgKTsKaGFsZiAgICBfX292bGQgc3ViX2dyb3VwX2NsdXN0ZXJlZF9yZWR1Y2VfbWluKCBoYWxmIHZhbHVlLCB1aW50IGNsdXN0ZXJzaXplICk7CmhhbGYgICAgX19vdmxkIHN1Yl9ncm91cF9jbHVzdGVyZWRfcmVkdWNlX21heCggaGFsZiB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwMTYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9hZGQoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tdWwoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9taW4oIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwpkb3VibGUgIF9fb3ZsZCBzdWJfZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZV9tYXgoIGRvdWJsZSB2YWx1ZSwgdWludCBjbHVzdGVyc2l6ZSApOwojZW5kaWYgLy8gY2xfa2hyX2ZwNjQKCiNlbmRpZiAvLyBjbF9raHJfc3ViZ3JvdXBfY2x1c3RlcmVkX3JlZHVjZQoKI2lmIGRlZmluZWQoY2xfa2hyX2V4dGVuZGVkX2JpdF9vcHMpCmNoYXIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoY2hhciwgY2hhciwgdWludCwgdWludCk7CnVjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVjaGFyLCB1Y2hhciwgdWludCwgdWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHNob3J0LCBzaG9ydCwgdWludCwgdWludCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1c2hvcnQsIHVzaG9ydCwgdWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChpbnQsIGludCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWludCwgdWludCwgdWludCwgdWludCk7CmxvbmcgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQobG9uZywgbG9uZywgdWludCwgdWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVsb25nLCB1bG9uZywgdWludCwgdWludCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXIyLCBjaGFyMiwgdWludCwgdWludCk7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjIsIHVjaGFyMiwgdWludCwgdWludCk7CnNob3J0MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDIsIHNob3J0MiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0MiwgdXNob3J0MiwgdWludCwgdWludCk7CmludDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50MiwgaW50MiwgdWludCwgdWludCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQyLCB1aW50MiwgdWludCwgdWludCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmcyLCBsb25nMiwgdWludCwgdWludCk7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzIsIHVsb25nMiwgdWludCwgdWludCk7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXIzLCBjaGFyMywgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjMsIHVjaGFyMywgdWludCwgdWludCk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDMsIHNob3J0MywgdWludCwgdWludCk7CnVzaG9ydDMgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0MywgdXNob3J0MywgdWludCwgdWludCk7CmludDMgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50MywgaW50MywgdWludCwgdWludCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQzLCB1aW50MywgdWludCwgdWludCk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmczLCBsb25nMywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzMsIHVsb25nMywgdWludCwgdWludCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXI0LCBjaGFyNCwgdWludCwgdWludCk7CnVjaGFyNCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjQsIHVjaGFyNCwgdWludCwgdWludCk7CnNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDQsIHNob3J0NCwgdWludCwgdWludCk7CnVzaG9ydDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0NCwgdXNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50NCwgaW50NCwgdWludCwgdWludCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQ0LCB1aW50NCwgdWludCwgdWludCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmc0LCBsb25nNCwgdWludCwgdWludCk7CnVsb25nNCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzQsIHVsb25nNCwgdWludCwgdWludCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGNoYXI4LCBjaGFyOCwgdWludCwgdWludCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1Y2hhcjgsIHVjaGFyOCwgdWludCwgdWludCk7CnNob3J0OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChzaG9ydDgsIHNob3J0OCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodXNob3J0OCwgdXNob3J0OCwgdWludCwgdWludCk7CmludDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoaW50OCwgaW50OCwgdWludCwgdWludCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVpbnQ4LCB1aW50OCwgdWludCwgdWludCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGxvbmc4LCBsb25nOCwgdWludCwgdWludCk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1bG9uZzgsIHVsb25nOCwgdWludCwgdWludCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChjaGFyMTYsIGNoYXIxNiwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWNoYXIxNiwgdWNoYXIxNiwgdWludCwgdWludCk7CnNob3J0MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQoc2hvcnQxNiwgc2hvcnQxNiwgdWludCwgdWludCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KHVzaG9ydDE2LCB1c2hvcnQxNiwgdWludCwgdWludCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfaW5zZXJ0KGludDE2LCBpbnQxNiwgdWludCwgdWludCk7CnVpbnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydCh1aW50MTYsIHVpbnQxNiwgdWludCwgdWludCk7CmxvbmcxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2luc2VydChsb25nMTYsIGxvbmcxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9pbnNlcnQodWxvbmcxNiwgdWxvbmcxNiwgdWludCwgdWludCk7CgpjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhciwgdWludCwgdWludCk7CnNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQsIHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChpbnQsIHVpbnQsIHVpbnQpOwpsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZywgdWludCwgdWludCk7CmNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhcjIsIHVpbnQsIHVpbnQpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChzaG9ydDIsIHVpbnQsIHVpbnQpOwppbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50MiwgdWludCwgdWludCk7CmxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZzIsIHVpbnQsIHVpbnQpOwpjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGNoYXIzLCB1aW50LCB1aW50KTsKc2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQzLCB1aW50LCB1aW50KTsKaW50MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGludDMsIHVpbnQsIHVpbnQpOwpsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKGxvbmczLCB1aW50LCB1aW50KTsKY2hhcjQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChjaGFyNCwgdWludCwgdWludCk7CnNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChpbnQ0LCB1aW50LCB1aW50KTsKbG9uZzQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChsb25nNCwgdWludCwgdWludCk7CmNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoY2hhcjgsIHVpbnQsIHVpbnQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChzaG9ydDgsIHVpbnQsIHVpbnQpOwppbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50OCwgdWludCwgdWludCk7Cmxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQobG9uZzgsIHVpbnQsIHVpbnQpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChjaGFyMTYsIHVpbnQsIHVpbnQpOwpzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoc2hvcnQxNiwgdWludCwgdWludCk7CmludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQoaW50MTYsIHVpbnQsIHVpbnQpOwpsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZChsb25nMTYsIHVpbnQsIHVpbnQpOwoKY2hhciBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVjaGFyLCB1aW50LCB1aW50KTsKc2hvcnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQsIHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50LCB1aW50LCB1aW50KTsKbG9uZyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVsb25nLCB1aW50LCB1aW50KTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjIsIHVpbnQsIHVpbnQpOwpzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQyLCB1aW50LCB1aW50KTsKaW50MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVpbnQyLCB1aW50LCB1aW50KTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzIsIHVpbnQsIHVpbnQpOwpjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVjaGFyMywgdWludCwgdWludCk7CnNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVzaG9ydDMsIHVpbnQsIHVpbnQpOwppbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWludDMsIHVpbnQsIHVpbnQpOwpsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVsb25nMywgdWludCwgdWludCk7CmNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWNoYXI0LCB1aW50LCB1aW50KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodXNob3J0NCwgdWludCwgdWludCk7CmludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50NCwgdWludCwgdWludCk7Cmxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF9zaWduZWQodWxvbmc0LCB1aW50LCB1aW50KTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjgsIHVpbnQsIHVpbnQpOwpzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1c2hvcnQ4LCB1aW50LCB1aW50KTsKaW50OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVpbnQ4LCB1aW50LCB1aW50KTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzgsIHVpbnQsIHVpbnQpOwpjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1Y2hhcjE2LCB1aW50LCB1aW50KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3Rfc2lnbmVkKHVzaG9ydDE2LCB1aW50LCB1aW50KTsKaW50MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1aW50MTYsIHVpbnQsIHVpbnQpOwpsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3NpZ25lZCh1bG9uZzE2LCB1aW50LCB1aW50KTsKCnVjaGFyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyLCB1aW50LCB1aW50KTsKdXNob3J0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGludCwgdWludCwgdWludCk7CnVsb25nIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nLCB1aW50LCB1aW50KTsKdWNoYXIyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyMiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHNob3J0MiwgdWludCwgdWludCk7CnVpbnQyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQyLCB1aW50LCB1aW50KTsKdWxvbmcyIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nMiwgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoY2hhcjMsIHVpbnQsIHVpbnQpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydDMsIHVpbnQsIHVpbnQpOwp1aW50MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoaW50MywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQobG9uZzMsIHVpbnQsIHVpbnQpOwp1Y2hhcjQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGNoYXI0LCB1aW50LCB1aW50KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQoc2hvcnQ0LCB1aW50LCB1aW50KTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGludDQsIHVpbnQsIHVpbnQpOwp1bG9uZzQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGxvbmc0LCB1aW50LCB1aW50KTsKdWNoYXI4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChjaGFyOCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHNob3J0OCwgdWludCwgdWludCk7CnVpbnQ4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQ4LCB1aW50LCB1aW50KTsKdWxvbmc4IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChsb25nOCwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGNoYXIxNiwgdWludCwgdWludCk7CnVzaG9ydDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChzaG9ydDE2LCB1aW50LCB1aW50KTsKdWludDE2IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZChpbnQxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKGxvbmcxNiwgdWludCwgdWludCk7Cgp1Y2hhciBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWNoYXIsIHVpbnQsIHVpbnQpOwp1c2hvcnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydCwgdWludCwgdWludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQsIHVpbnQsIHVpbnQpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWxvbmcsIHVpbnQsIHVpbnQpOwp1Y2hhcjIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyMiwgdWludCwgdWludCk7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydDIsIHVpbnQsIHVpbnQpOwp1aW50MiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWludDIsIHVpbnQsIHVpbnQpOwp1bG9uZzIgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nMiwgdWludCwgdWludCk7CnVjaGFyMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWNoYXIzLCB1aW50LCB1aW50KTsKdXNob3J0MyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodXNob3J0MywgdWludCwgdWludCk7CnVpbnQzIF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1aW50MywgdWludCwgdWludCk7CnVsb25nMyBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWxvbmczLCB1aW50LCB1aW50KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1Y2hhcjQsIHVpbnQsIHVpbnQpOwp1c2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1c2hvcnQ0LCB1aW50LCB1aW50KTsKdWludDQgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQ0LCB1aW50LCB1aW50KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0ZmllbGRfZXh0cmFjdF91bnNpZ25lZCh1bG9uZzQsIHVpbnQsIHVpbnQpOwp1Y2hhcjggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyOCwgdWludCwgdWludCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVzaG9ydDgsIHVpbnQsIHVpbnQpOwp1aW50OCBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodWludDgsIHVpbnQsIHVpbnQpOwp1bG9uZzggX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nOCwgdWludCwgdWludCk7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVjaGFyMTYsIHVpbnQsIHVpbnQpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGJpdGZpZWxkX2V4dHJhY3RfdW5zaWduZWQodXNob3J0MTYsIHVpbnQsIHVpbnQpOwp1aW50MTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVpbnQxNiwgdWludCwgdWludCk7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRmaWVsZF9leHRyYWN0X3Vuc2lnbmVkKHVsb25nMTYsIHVpbnQsIHVpbnQpOwoKY2hhciBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXIpOwp1Y2hhciBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyKTsKc2hvcnQgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShzaG9ydCk7CnVzaG9ydCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydCk7CmludCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludCk7CnVpbnQgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1aW50KTsKbG9uZyBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmcpOwp1bG9uZyBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nKTsKY2hhcjIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShjaGFyMik7CnVjaGFyMiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyMik7CnNob3J0MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0Mik7CnVzaG9ydDIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1c2hvcnQyKTsKaW50MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludDIpOwp1aW50MiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQyKTsKbG9uZzIgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShsb25nMik7CnVsb25nMiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nMik7CmNoYXIzIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UoY2hhcjMpOwp1Y2hhcjMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1Y2hhcjMpOwpzaG9ydDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShzaG9ydDMpOwp1c2hvcnQzIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodXNob3J0Myk7CmludDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShpbnQzKTsKdWludDMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1aW50Myk7CmxvbmczIF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UobG9uZzMpOwp1bG9uZzMgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1bG9uZzMpOwpjaGFyNCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXI0KTsKdWNoYXI0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWNoYXI0KTsKc2hvcnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2Uoc2hvcnQ0KTsKdXNob3J0NCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydDQpOwppbnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UoaW50NCk7CnVpbnQ0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWludDQpOwpsb25nNCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmc0KTsKdWxvbmc0IF9fb3ZsZCBfX2NuZm4gYml0X3JldmVyc2UodWxvbmc0KTsKY2hhcjggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShjaGFyOCk7CnVjaGFyOCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVjaGFyOCk7CnNob3J0OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0OCk7CnVzaG9ydDggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1c2hvcnQ4KTsKaW50OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGludDgpOwp1aW50OCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQ4KTsKbG9uZzggX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShsb25nOCk7CnVsb25nOCBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVsb25nOCk7CmNoYXIxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGNoYXIxNik7CnVjaGFyMTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1Y2hhcjE2KTsKc2hvcnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHNob3J0MTYpOwp1c2hvcnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVzaG9ydDE2KTsKaW50MTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZShpbnQxNik7CnVpbnQxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKHVpbnQxNik7CmxvbmcxNiBfX292bGQgX19jbmZuIGJpdF9yZXZlcnNlKGxvbmcxNik7CnVsb25nMTYgX19vdmxkIF9fY25mbiBiaXRfcmV2ZXJzZSh1bG9uZzE2KTsKI2VuZGlmIC8vIGNsX2tocl9leHRlbmRlZF9iaXRfb3BzCgojaWYgZGVmaW5lZChfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0KQp1aW50IF9fb3ZsZCBfX2NuZm4gZG90KHVjaGFyNCwgdWNoYXI0KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90KGNoYXI0LCBjaGFyNCk7CmludCBfX292bGQgX19jbmZuIGRvdCh1Y2hhcjQsIGNoYXI0KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90KGNoYXI0LCB1Y2hhcjQpOwoKdWludCBfX292bGQgX19jbmZuIGRvdF9hY2Nfc2F0KHVjaGFyNCwgdWNoYXI0LCB1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXQoY2hhcjQsIGNoYXI0LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdCh1Y2hhcjQsIGNoYXI0LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdChjaGFyNCwgdWNoYXI0LCBpbnQpOwojZW5kaWYgLy8gX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdAoKI2lmIGRlZmluZWQoX19vcGVuY2xfY19pbnRlZ2VyX2RvdF9wcm9kdWN0X2lucHV0XzR4OGJpdF9wYWNrZWQpCnVpbnQgX19vdmxkIF9fY25mbiBkb3RfNHg4cGFja2VkX3V1X3VpbnQodWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGRvdF80eDhwYWNrZWRfc3NfaW50KHVpbnQsIHVpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfNHg4cGFja2VkX3VzX2ludCh1aW50LCB1aW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90XzR4OHBhY2tlZF9zdV9pbnQodWludCwgdWludCk7Cgp1aW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXRfNHg4cGFja2VkX3V1X3VpbnQodWludCwgdWludCwgdWludCk7CmludCBfX292bGQgX19jbmZuIGRvdF9hY2Nfc2F0XzR4OHBhY2tlZF9zc19pbnQodWludCwgdWludCwgaW50KTsKaW50IF9fb3ZsZCBfX2NuZm4gZG90X2FjY19zYXRfNHg4cGFja2VkX3VzX2ludCh1aW50LCB1aW50LCBpbnQpOwppbnQgX19vdmxkIF9fY25mbiBkb3RfYWNjX3NhdF80eDhwYWNrZWRfc3VfaW50KHVpbnQsIHVpbnQsIGludCk7CiNlbmRpZiAvLyBfX29wZW5jbF9jX2ludGVnZXJfZG90X3Byb2R1Y3RfaW5wdXRfNHg4Yml0X3BhY2tlZAoKI2lmIGRlZmluZWQoY2xfaW50ZWxfc3ViZ3JvdXBzKQovLyBJbnRlbC1TcGVjaWZpYyBTdWIgR3JvdXAgRnVuY3Rpb25zCmZsb2F0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggZmxvYXQgIHgsIHVpbnQgYyApOwpmbG9hdDIgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0MiB4LCB1aW50IGMgKTsKZmxvYXQzICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBmbG9hdDMgeCwgdWludCBjICk7CmZsb2F0NCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggZmxvYXQ0IHgsIHVpbnQgYyApOwpmbG9hdDggIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGZsb2F0OCB4LCB1aW50IGMgKTsKZmxvYXQxNiBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBmbG9hdDE2IHgsIHVpbnQgYyApOwoKaW50ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBpbnQgIHgsIHVpbnQgYyApOwppbnQyICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGludDIgeCwgdWludCBjICk7CmludDMgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaW50MyB4LCB1aW50IGMgKTsKaW50NCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCBpbnQ0IHgsIHVpbnQgYyApOwppbnQ4ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGludDggeCwgdWludCBjICk7CmludDE2ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaW50MTYgeCwgdWludCBjICk7Cgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQgIHgsIHVpbnQgYyApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQyIHgsIHVpbnQgYyApOwp1aW50MyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQzIHgsIHVpbnQgYyApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQ0IHgsIHVpbnQgYyApOwp1aW50OCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQ4IHgsIHVpbnQgYyApOwp1aW50MTYgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVpbnQxNiB4LCB1aW50IGMgKTsKCmxvbmcgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggbG9uZyB4LCB1aW50IGMgKTsKdWxvbmcgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1bG9uZyB4LCB1aW50IGMgKTsKCmZsb2F0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdCAgY3VyLCBmbG9hdCAgbmV4dCwgdWludCBjICk7CmZsb2F0MiAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDIgY3VyLCBmbG9hdDIgbmV4dCwgdWludCBjICk7CmZsb2F0MyAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDMgY3VyLCBmbG9hdDMgbmV4dCwgdWludCBjICk7CmZsb2F0NCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDQgY3VyLCBmbG9hdDQgbmV4dCwgdWludCBjICk7CmZsb2F0OCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDggY3VyLCBmbG9hdDggbmV4dCwgdWludCBjICk7CmZsb2F0MTYgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBmbG9hdDE2IGN1ciwgZmxvYXQxNiBuZXh0LCB1aW50IGMgKTsKCmludCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBpbnQgIGN1ciwgaW50ICBuZXh0LCB1aW50IGMgKTsKaW50MiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGludDIgY3VyLCBpbnQyIG5leHQsIHVpbnQgYyApOwppbnQzICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50MyBjdXIsIGludDMgbmV4dCwgdWludCBjICk7CmludDQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBpbnQ0IGN1ciwgaW50NCBuZXh0LCB1aW50IGMgKTsKaW50OCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGludDggY3VyLCBpbnQ4IG5leHQsIHVpbnQgYyApOwppbnQxNiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggaW50MTYgY3VyLCBpbnQxNiBuZXh0LCB1aW50IGMgKTsKCnVpbnQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1aW50ICBjdXIsIHVpbnQgIG5leHQsIHVpbnQgYyApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdWludDIgY3VyLCB1aW50MiBuZXh0LCB1aW50IGMgKTsKdWludDMgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQzIGN1ciwgdWludDMgbmV4dCwgdWludCBjICk7CnVpbnQ0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1aW50NCBjdXIsIHVpbnQ0IG5leHQsIHVpbnQgYyApOwp1aW50OCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdWludDggY3VyLCB1aW50OCBuZXh0LCB1aW50IGMgKTsKdWludDE2ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVpbnQxNiBjdXIsIHVpbnQxNiBuZXh0LCB1aW50IGMgKTsKCmxvbmcgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCBsb25nIHByZXYsIGxvbmcgY3VyLCB1aW50IGMgKTsKdWxvbmcgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVsb25nIHByZXYsIHVsb25nIGN1ciwgdWludCBjICk7CgpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGZsb2F0ICBwcmV2LCBmbG9hdCAgY3VyLCB1aW50IGMgKTsKZmxvYXQyICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdDIgcHJldiwgZmxvYXQyIGN1ciwgdWludCBjICk7CmZsb2F0MyAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggZmxvYXQzIHByZXYsIGZsb2F0MyBjdXIsIHVpbnQgYyApOwpmbG9hdDQgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGZsb2F0NCBwcmV2LCBmbG9hdDQgY3VyLCB1aW50IGMgKTsKZmxvYXQ4ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBmbG9hdDggcHJldiwgZmxvYXQ4IGN1ciwgdWludCBjICk7CmZsb2F0MTYgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggZmxvYXQxNiBwcmV2LCBmbG9hdDE2IGN1ciwgdWludCBjICk7CgppbnQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludCAgcHJldiwgaW50ICBjdXIsIHVpbnQgYyApOwppbnQyICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDIgcHJldiwgaW50MiBjdXIsIHVpbnQgYyApOwppbnQzICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDMgcHJldiwgaW50MyBjdXIsIHVpbnQgYyApOwppbnQ0ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDQgcHJldiwgaW50NCBjdXIsIHVpbnQgYyApOwppbnQ4ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDggcHJldiwgaW50OCBjdXIsIHVpbnQgYyApOwppbnQxNiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGludDE2IHByZXYsIGludDE2IGN1ciwgdWludCBjICk7Cgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQgIHByZXYsIHVpbnQgIGN1ciwgdWludCBjICk7CnVpbnQyICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggdWludDIgcHJldiwgdWludDIgY3VyLCB1aW50IGMgKTsKdWludDMgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1aW50MyBwcmV2LCB1aW50MyBjdXIsIHVpbnQgYyApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVpbnQ0IHByZXYsIHVpbnQ0IGN1ciwgdWludCBjICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggdWludDggcHJldiwgdWludDggY3VyLCB1aW50IGMgKTsKdWludDE2ICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1aW50MTYgcHJldiwgdWludDE2IGN1ciwgdWludCBjICk7Cgpsb25nICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGxvbmcgcHJldiwgbG9uZyBjdXIsIHVpbnQgYyApOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHVsb25nIHByZXYsIHVsb25nIGN1ciwgdWludCBjICk7CgpmbG9hdCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdCAgeCwgdWludCBjICk7CmZsb2F0MiAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGZsb2F0MiB4LCB1aW50IGMgKTsKZmxvYXQzICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggZmxvYXQzIHgsIHVpbnQgYyApOwpmbG9hdDQgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBmbG9hdDQgeCwgdWludCBjICk7CmZsb2F0OCAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGZsb2F0OCB4LCB1aW50IGMgKTsKZmxvYXQxNiBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggZmxvYXQxNiB4LCB1aW50IGMgKTsKCmludCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludCAgeCwgdWludCBjICk7CmludDIgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDIgeCwgdWludCBjICk7CmludDMgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDMgeCwgdWludCBjICk7CmludDQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDQgeCwgdWludCBjICk7CmludDggICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDggeCwgdWludCBjICk7CmludDE2ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGludDE2IHgsIHVpbnQgYyApOwoKdWludCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdWludCAgeCwgdWludCBjICk7CnVpbnQyICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQyIHgsIHVpbnQgYyApOwp1aW50MyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1aW50MyB4LCB1aW50IGMgKTsKdWludDQgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdWludDQgeCwgdWludCBjICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVpbnQ4IHgsIHVpbnQgYyApOwp1aW50MTYgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1aW50MTYgeCwgdWludCBjICk7Cgpsb25nICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBsb25nIHgsIHVpbnQgYyApOwp1bG9uZyAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1bG9uZyB4LCB1aW50IGMgKTsKCnVpbnQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCApOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVpbnQ0ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDQoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQgKTsKdWludDggICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkOCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1aW50MiAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQyKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdWludDQgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkNChyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgp1aW50ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKdWludDIgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkMiggY29uc3QgX19nbG9iYWwgdWludCogcCApOwp1aW50NCAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWQ0KCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7CnVpbnQ4ICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZDgoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQgZGF0YSk7CnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1aW50MiBkYXRhKTsKdm9pZCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZTQod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGRhdGEpOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDggZGF0YSk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQgZGF0YSk7CnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUyKHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1aW50MiBkYXRhKTsKdm9pZCAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZTQocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVpbnQ0IGRhdGEpOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOChyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdWludDggZGF0YSk7CiNlbmRpZiAvLyBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCnZvaWQgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGUoIF9fZ2xvYmFsIHVpbnQqIHAsIHVpbnQgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlMiggX19nbG9iYWwgdWludCogcCwgdWludDIgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlNCggX19nbG9iYWwgdWludCogcCwgdWludDQgZGF0YSApOwp2b2lkICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlOCggX19nbG9iYWwgdWludCogcCwgdWludDggZGF0YSApOwoKI2lmZGVmIGNsX2tocl9mcDE2CmhhbGYgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggaGFsZiB4LCB1aW50IGMgKTsKaGFsZiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGhhbGYgcHJldiwgaGFsZiBjdXIsIHVpbnQgYyApOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIGhhbGYgcHJldiwgaGFsZiBjdXIsIHVpbnQgYyApOwpoYWxmICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBoYWxmIHgsIHVpbnQgYyApOwojZW5kaWYKCiNpZiBkZWZpbmVkKGNsX2tocl9mcDY0KQpkb3VibGUgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIGRvdWJsZSB4LCB1aW50IGMgKTsKZG91YmxlICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIGRvdWJsZSBwcmV2LCBkb3VibGUgY3VyLCB1aW50IGMgKTsKZG91YmxlICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBkb3VibGUgcHJldiwgZG91YmxlIGN1ciwgdWludCBjICk7CmRvdWJsZSAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIGRvdWJsZSB4LCB1aW50IGMgKTsKI2VuZGlmCgojZW5kaWYgLy9jbF9pbnRlbF9zdWJncm91cHMKCiNpZiBkZWZpbmVkKGNsX2ludGVsX3N1Ymdyb3Vwc19zaG9ydCkKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydCAgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQyICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDIgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQzICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDMgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQ0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDQgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKc2hvcnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCBzaG9ydDggeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0ICB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDIgeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKdXNob3J0MyAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYnJvYWRjYXN0KCB1c2hvcnQzIHgsIHVpbnQgc3ViX2dyb3VwX2xvY2FsX2lkICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jyb2FkY2FzdCggdXNob3J0NCB4LCB1aW50IHN1Yl9ncm91cF9sb2NhbF9pZCApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9icm9hZGNhc3QoIHVzaG9ydDggeCwgdWludCBzdWJfZ3JvdXBfbG9jYWxfaWQgKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0ICAgeCwgdWludCBjICk7CnNob3J0MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MiAgeCwgdWludCBjICk7CnNob3J0MyAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MyAgeCwgdWludCBjICk7CnNob3J0NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0NCAgeCwgdWludCBjICk7CnNob3J0OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0OCAgeCwgdWludCBjICk7CnNob3J0MTYgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHNob3J0MTYgeCwgdWludCBjKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVzaG9ydCAgIHgsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQyICB4LCB1aW50IGMgKTsKdXNob3J0MyAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggdXNob3J0MyAgeCwgdWludCBjICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGUoIHVzaG9ydDQgIHgsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlKCB1c2hvcnQ4ICB4LCB1aW50IGMgKTsKdXNob3J0MTYgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZSggdXNob3J0MTYgeCwgdWludCBjICk7CgpzaG9ydCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0ICAgY3VyLCBzaG9ydCAgIG5leHQsIHVpbnQgYyApOwpzaG9ydDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MiAgY3VyLCBzaG9ydDIgIG5leHQsIHVpbnQgYyApOwpzaG9ydDMgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MyAgY3VyLCBzaG9ydDMgIG5leHQsIHVpbnQgYyApOwpzaG9ydDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0NCAgY3VyLCBzaG9ydDQgIG5leHQsIHVpbnQgYyApOwpzaG9ydDggICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0OCAgY3VyLCBzaG9ydDggIG5leHQsIHVpbnQgYyApOwpzaG9ydDE2ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHNob3J0MTYgY3VyLCBzaG9ydDE2IG5leHQsIHVpbnQgYyApOwoKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQgICBjdXIsIHVzaG9ydCAgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVzaG9ydDIgIGN1ciwgdXNob3J0MiAgbmV4dCwgdWludCBjICk7CnVzaG9ydDMgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdXNob3J0MyAgY3VyLCB1c2hvcnQzICBuZXh0LCB1aW50IGMgKTsKdXNob3J0NCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV9kb3duKCB1c2hvcnQ0ICBjdXIsIHVzaG9ydDQgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX2Rvd24oIHVzaG9ydDggIGN1ciwgdXNob3J0OCAgbmV4dCwgdWludCBjICk7CnVzaG9ydDE2ICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfZG93biggdXNob3J0MTYgY3VyLCB1c2hvcnQxNiBuZXh0LCB1aW50IGMgKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHNob3J0ICAgY3VyLCBzaG9ydCAgIG5leHQsIHVpbnQgYyApOwpzaG9ydDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydDIgIGN1ciwgc2hvcnQyICBuZXh0LCB1aW50IGMgKTsKc2hvcnQzICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggc2hvcnQzICBjdXIsIHNob3J0MyAgbmV4dCwgdWludCBjICk7CnNob3J0NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfdXAoIHNob3J0NCAgY3VyLCBzaG9ydDQgIG5leHQsIHVpbnQgYyApOwpzaG9ydDggICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCBzaG9ydDggIGN1ciwgc2hvcnQ4ICBuZXh0LCB1aW50IGMgKTsKc2hvcnQxNiAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV91cCggc2hvcnQxNiBjdXIsIHNob3J0MTYgbmV4dCwgdWludCBjICk7Cgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQgICBjdXIsIHVzaG9ydCAgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQyICBjdXIsIHVzaG9ydDIgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQzICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQzICBjdXIsIHVzaG9ydDMgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ0ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQ0ICBjdXIsIHVzaG9ydDQgIG5leHQsIHVpbnQgYyApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQ4ICBjdXIsIHVzaG9ydDggIG5leHQsIHVpbnQgYyApOwp1c2hvcnQxNiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3VwKCB1c2hvcnQxNiBjdXIsIHVzaG9ydDE2IG5leHQsIHVpbnQgYyApOwoKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHNob3J0ICAgeCwgdWludCBjICk7CnNob3J0MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydDIgIHgsIHVpbnQgYyApOwpzaG9ydDMgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggc2hvcnQzICB4LCB1aW50IGMgKTsKc2hvcnQ0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHNob3J0NCAgeCwgdWludCBjICk7CnNob3J0OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCBzaG9ydDggIHgsIHVpbnQgYyApOwpzaG9ydDE2ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggc2hvcnQxNiB4LCB1aW50IGMgKTsKCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1c2hvcnQgICB4LCB1aW50IGMgKTsKdXNob3J0MiAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVzaG9ydDIgIHgsIHVpbnQgYyApOwp1c2hvcnQzICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0MyAgeCwgdWludCBjICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NodWZmbGVfeG9yKCB1c2hvcnQ0ICB4LCB1aW50IGMgKTsKdXNob3J0OCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2h1ZmZsZV94b3IoIHVzaG9ydDggIHgsIHVpbnQgYyApOwp1c2hvcnQxNiAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9zaHVmZmxlX3hvciggdXNob3J0MTYgeCwgdWludCBjICk7CgpzaG9ydCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9yZWR1Y2VfYWRkKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfcmVkdWNlX2FkZCggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3JlZHVjZV9taW4oIHNob3J0ICAgeCApOwp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9yZWR1Y2VfbWluKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfcmVkdWNlX21heCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3JlZHVjZV9tYXgoIHVzaG9ydCAgeCApOwoKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfYWRkKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWluKCB1c2hvcnQgIHggKTsKc2hvcnQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCBzaG9ydCAgIHggKTsKdXNob3J0ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfc2Nhbl9leGNsdXNpdmVfbWF4KCB1c2hvcnQgIHggKTsKCnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX2FkZCggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21pbiggdXNob3J0ICB4ICk7CnNob3J0ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggc2hvcnQgICB4ICk7CnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX3NjYW5faW5jbHVzaXZlX21heCggdXNob3J0ICB4ICk7Cgp1aW50ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwp1aW50MiAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKdWludDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpNCggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkICk7CnVpbnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTgoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp1aW50ICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWkoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKdWludDIgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpMiggcmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCApOwp1aW50NCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWk0KCByZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkICk7CnVpbnQ4ICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTgoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQgKTsKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKdWludCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpKCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7CnVpbnQyICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91aTIoIGNvbnN0IF9fZ2xvYmFsIHVpbnQqIHAgKTsKdWludDQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VpNCggY29uc3QgX19nbG9iYWwgdWludCogcCApOwp1aW50OCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdWk4KCBjb25zdCBfX2dsb2JhbCB1aW50KiBwICk7Cgp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQgZGF0YSApOwp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpMiggcmVhZF9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkLCB1aW50MiBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk0KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ0IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTgoIHJlYWRfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgYnl0ZV9jb29yZCwgdWludDggZGF0YSApOwoKI2lmIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQp2b2lkICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VpKCByZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBieXRlX2Nvb3JkLCB1aW50IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTIoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQyIGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTQoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ0IGRhdGEgKTsKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aTgoIHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGJ5dGVfY29vcmQsIHVpbnQ4IGRhdGEgKTsKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOQ0xfQ1BQX1ZFUlNJT05fXykgfHwgKF9fT1BFTkNMX0NfVkVSU0lPTl9fID49IENMX1ZFUlNJT05fMl8wKQoKdm9pZCAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91aSggX19nbG9iYWwgdWludCogcCwgdWludCBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWkyKCBfX2dsb2JhbCB1aW50KiBwLCB1aW50MiBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk0KCBfX2dsb2JhbCB1aW50KiBwLCB1aW50NCBkYXRhICk7CnZvaWQgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdWk4KCBfX2dsb2JhbCB1aW50KiBwLCB1aW50OCBkYXRhICk7Cgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDIgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMyKCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM0KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CnVzaG9ydDggICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM4KCByZWFkX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkICk7CgojaWYgZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCnVzaG9ydCAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwp1c2hvcnQyICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzMihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCk7CnVzaG9ydDQgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXM0KHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkKTsKdXNob3J0OCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91czgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQpOwojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5DTF9DUFBfVkVSU0lPTl9fKSB8fCAoX19PUEVOQ0xfQ19WRVJTSU9OX18gPj0gQ0xfVkVSU0lPTl8yXzApCgp1c2hvcnQgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzKCAgY29uc3QgX19nbG9iYWwgdXNob3J0KiBwICk7CnVzaG9ydDIgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3JlYWRfdXMyKCBjb25zdCBfX2dsb2JhbCB1c2hvcnQqIHAgKTsKdXNob3J0NCAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfcmVhZF91czQoIGNvbnN0IF9fZ2xvYmFsIHVzaG9ydCogcCApOwp1c2hvcnQ4ICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja19yZWFkX3VzOCggY29uc3QgX19nbG9iYWwgdXNob3J0KiBwICk7Cgp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91cyh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0ICBkYXRhKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMyKHdyaXRlX29ubHkgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1c2hvcnQyIGRhdGEpOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czQod3JpdGVfb25seSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydDQgZGF0YSk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzOCh3cml0ZV9vbmx5IGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0OCBkYXRhKTsKCiNpZiBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydCAgZGF0YSk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzMihyZWFkX3dyaXRlIGltYWdlMmRfdCBpbWFnZSwgaW50MiBjb29yZCwgdXNob3J0MiBkYXRhKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXM0KHJlYWRfd3JpdGUgaW1hZ2UyZF90IGltYWdlLCBpbnQyIGNvb3JkLCB1c2hvcnQ0IGRhdGEpOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czgocmVhZF93cml0ZSBpbWFnZTJkX3QgaW1hZ2UsIGludDIgY29vcmQsIHVzaG9ydDggZGF0YSk7CiNlbmRpZiAvLyBkZWZpbmVkKF9fT1BFTkNMX0NQUF9WRVJTSU9OX18pIHx8IChfX09QRU5DTF9DX1ZFUlNJT05fXyA+PSBDTF9WRVJTSU9OXzJfMCkKCnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzKCAgX19nbG9iYWwgdXNob3J0KiBwLCB1c2hvcnQgIGRhdGEgKTsKdm9pZCAgICAgICAgX19vdmxkIF9fY29udiBpbnRlbF9zdWJfZ3JvdXBfYmxvY2tfd3JpdGVfdXMyKCBfX2dsb2JhbCB1c2hvcnQqIHAsIHVzaG9ydDIgZGF0YSApOwp2b2lkICAgICAgICBfX292bGQgX19jb252IGludGVsX3N1Yl9ncm91cF9ibG9ja193cml0ZV91czQoIF9fZ2xvYmFsIHVzaG9ydCogcCwgdXNob3J0NCBkYXRhICk7CnZvaWQgICAgICAgIF9fb3ZsZCBfX2NvbnYgaW50ZWxfc3ViX2dyb3VwX2Jsb2NrX3dyaXRlX3VzOCggX19nbG9iYWwgdXNob3J0KiBwLCB1c2hvcnQ4IGRhdGEgKTsKI2VuZGlmIC8vIGNsX2ludGVsX3N1Ymdyb3Vwc19zaG9ydAoKI2lmZGVmIGNsX2ludGVsX2RldmljZV9zaWRlX2F2Y19tb3Rpb25fZXN0aW1hdGlvbgojcHJhZ21hIE9QRU5DTCBFWFRFTlNJT04gY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uIDogYmVnaW4KCi8vIE1DRSBidWlsdC1pbiBmdW5jdGlvbnMKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludGVyX2Jhc2VfbXVsdGlfcmVmZXJlbmNlX3BlbmFsdHkoCiAgICB1Y2hhciBzbGljZV90eXBlLCB1Y2hhciBxcCk7CnVsb25nIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9pbnRlcl9zaGFwZV9wZW5hbHR5KAogICAgdWNoYXIgc2xpY2VfdHlwZSwgdWNoYXIgcXApOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2RlZmF1bHRfaW50ZXJfZGlyZWN0aW9uX3BlbmFsdHkoCiAgICB1Y2hhciBzbGljZV90eXBlLCB1Y2hhciBxcCk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2x1bWFfc2hhcGVfcGVuYWx0eSgKICAgIHVjaGFyIHNsaWNlX3R5cGUsIHVjaGFyIHFwKTsKdWludDIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludGVyX21vdGlvbl92ZWN0b3JfY29zdF90YWJsZSgKICAgIHVjaGFyIHNsaWNlX3R5cGUsIHVjaGFyIHFwKTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2x1bWFfbW9kZV9wZW5hbHR5KAogICAgdWNoYXIgc2xpY2VfdHlwZSwgdWNoYXIgcXApOwoKdWludDIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2hpZ2hfcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9tZWRpdW1fcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfZGVmYXVsdF9sb3dfcGVuYWx0eV9jb3N0X3RhYmxlKCk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X25vbl9kY19sdW1hX2ludHJhX3BlbmFsdHkoKTsKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9kZWZhdWx0X2ludHJhX2Nocm9tYV9tb2RlX2Jhc2VfcGVuYWx0eSgpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfaW50ZXJfc2hhcGVfcGVuYWx0eSgKICAgIHVsb25nIHBhY2tlZF9zaGFwZV9wZW5hbHR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2ludGVyX2RpcmVjdGlvbl9wZW5hbHR5KAogICAgdWNoYXIgZGlyZWN0aW9uX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfbW90aW9uX3ZlY3Rvcl9jb3N0X2Z1bmN0aW9uKAogICAgdWxvbmcgcGFja2VkX2Nvc3RfY2VudGVyX2RlbHRhLCB1aW50MiBwYWNrZWRfY29zdF90YWJsZSwKICAgIHVjaGFyIGNvc3RfcHJlY2lzaW9uLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2FjX29ubHlfaGFhcigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfc291cmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdHkoCiAgICB1Y2hhciBzcmNfZmllbGRfcG9sYXJpdHksIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9zZXRfc2luZ2xlX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgcmVmX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2Vfc2V0X2R1YWxfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdGllcygKICAgIHVjaGFyIGZ3ZF9yZWZfZmllbGRfcG9sYXJpdHksIHVjaGFyIGJ3ZF9yZWZfZmllbGRfcG9sYXJpdHksCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7Cgp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX21ham9yX3NoYXBlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2dldF9pbnRlcl9taW5vcl9zaGFwZXMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX2RpcmVjdGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9nZXRfaW50ZXJfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdGllcygKICAgIHVpbnQgcGFja2VkX3JlZmVyZW5jZV9pZHMsIHVpbnQgcGFja2VkX3JlZmVyZW5jZV9wYXJhbWV0ZXJfZmllbGRfcG9sYXJpdGllcywKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CgovLyBJTUUgYnVpbHQtaW4gZnVuY3Rpb25zCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfaW5pdGlhbGl6ZSgKICAgIHVzaG9ydDIgc3JjX2Nvb3JkLCB1Y2hhciBwYXJ0aXRpb25fbWFzaywgdWNoYXIgc2FkX2FkanVzdG1lbnQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9zaW5nbGVfcmVmZXJlbmNlKAogICAgc2hvcnQyIHJlZl9vZmZzZXQsIHVjaGFyIHNlYXJjaF93aW5kb3dfY29uZmlnLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9kdWFsX3JlZmVyZW5jZSgKICAgIHNob3J0MiBmd2RfcmVmX29mZnNldCwgc2hvcnQyIGJ3ZF9yZWZfb2Zmc2V0LCB1Y2hhciBzZWFyY2hfd2luZG93X2NvbmZpZywKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfbWF4X21vdGlvbl92ZWN0b3JfY291bnQoCiAgICB1Y2hhciBtYXhfbW90aW9uX3ZlY3Rvcl9jb3VudCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF91bmlkaXJlY3Rpb25hbF9taXhfZGlzYWJsZSgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfZWFybHlfc2VhcmNoX3Rlcm1pbmF0aW9uX3RocmVzaG9sZCgKICAgIHVjaGFyIHRocmVzaG9sZCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF93ZWlnaHRlZF9zYWQoCiAgICB1aW50IHBhY2tlZF9zYWRfd2VpZ2h0cywgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwoKX19hdHRyaWJ1dGVfXygoZGVwcmVjYXRlZCgiSWYgeW91IHVzZSB0aGUgbGF0ZXN0IEludGVsIGRyaXZlciwgcGxlYXNlIHVzZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3JlZl93aW5kb3dfc2l6ZSBpbnN0ZWFkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVmX3dpbmRvd19zaXplIikpKQp1c2hvcnQyIF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfaW1lX3JlZl93aW5kb3dfc2l6ZSh1Y2hhciBzZWFyY2hfd2luZG93X2NvbmZpZywgY2hhciBkdWFsX3JlZik7CnVzaG9ydDIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3JlZl93aW5kb3dfc2l6ZSgKICAgIHVjaGFyIHNlYXJjaF93aW5kb3dfY29uZmlnLCBjaGFyIGR1YWxfcmVmKTsKc2hvcnQyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9hZGp1c3RfcmVmX29mZnNldCgKICAgIHNob3J0MiByZWZfb2Zmc2V0LCB1c2hvcnQyIHNyY19jb29yZCwgdXNob3J0MiByZWZfd2luZG93X3NpemUsCiAgICB1c2hvcnQyIGltYWdlX3NpemUpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IHJlZl9pbWFnZSwKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZXZhbHVhdGVfd2l0aF9kdWFsX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IGZ3ZF9yZWZfaW1hZ2UsCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IGJ3ZF9yZWZfaW1hZ2UsIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXQoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCByZWZfaW1hZ2UsCiAgICBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dCgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IGZ3ZF9yZWZfaW1hZ2UsCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IGJ3ZF9yZWZfaW1hZ2UsIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2V2YWx1YXRlX3dpdGhfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCByZWFkX29ubHkgaW1hZ2UyZF90IHJlZl9pbWFnZSwKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbWluX3Qgc3RyZWFtaW5fY29tcG9uZW50cyk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWluKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbl90IHN0cmVhbWluX2NvbXBvbmVudHMpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZXZhbHVhdGVfd2l0aF9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbWlub3V0KAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgcmVmX2ltYWdlLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtaW5fdCBzdHJlYW1pbl9jb21wb25lbnRzKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWlub3V0KAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbl90IHN0cmVhbWluX2NvbXBvbmVudHMpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbl90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9zaW5nbGVfcmVmZXJlbmNlX3N0cmVhbW91dF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2R1YWxfcmVmZXJlbmNlX3N0cmVhbWluX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1pbigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc3RyaXBfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc3RyaXBfZHVhbF9yZWZlcmVuY2Vfc3RyZWFtb3V0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X2R1YWxfcmVmZXJlbmNlX3N0cmVhbW91dF90IHJlc3VsdCk7Cgp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc3RyZWFtb3V0X21ham9yX3NoYXBlX21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3NpbmdsZV9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgcmVzdWx0LAogICAgdWNoYXIgbWFqb3Jfc2hhcGUpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfc3RyZWFtb3V0X21ham9yX3NoYXBlX3JlZmVyZW5jZV9pZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfc2luZ2xlX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSk7CnVpbnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfbW90aW9uX3ZlY3RvcnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfZHVhbF9yZWZlcmVuY2Vfc3RyZWFtb3V0X3QgcmVzdWx0LAogICAgdWNoYXIgbWFqb3Jfc2hhcGUsIHVjaGFyIGRpcmVjdGlvbik7CnVzaG9ydCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X3N0cmVhbW91dF9tYWpvcl9zaGFwZV9kaXN0b3J0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSwgdWNoYXIgZGlyZWN0aW9uKTsKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9zdHJlYW1vdXRfbWFqb3Jfc2hhcGVfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF9kdWFsX3JlZmVyZW5jZV9zdHJlYW1vdXRfdCByZXN1bHQsCiAgICB1Y2hhciBtYWpvcl9zaGFwZSwgdWNoYXIgZGlyZWN0aW9uKTsKCnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfYm9yZGVyX3JlYWNoZWQoCiAgICB1Y2hhciBpbWFnZV9zZWxlY3QsIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfdHJ1bmNhdGVkX3NlYXJjaF9pbmRpY2F0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdWNoYXIgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF91bmlkaXJlY3Rpb25hbF9lYXJseV9zZWFyY2hfdGVybWluYXRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfd2VpZ2h0aW5nX3BhdHRlcm5fbWluaW11bV9tb3Rpb25fdmVjdG9yKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfd2VpZ2h0aW5nX3BhdHRlcm5fbWluaW11bV9kaXN0b3J0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKCi8vIFJFRiBidWlsdC1pbiBmdW5jdGlvbnMKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ZtZV9pbml0aWFsaXplKAogICAgdXNob3J0MiBzcmNfY29vcmQsIHVsb25nIG1vdGlvbl92ZWN0b3JzLCB1Y2hhciBtYWpvcl9zaGFwZXMsCiAgICB1Y2hhciBtaW5vcl9zaGFwZXMsIHVjaGFyIGRpcmVjdGlvbnMsIHVjaGFyIHBpeGVsX3Jlc29sdXRpb24sCiAgICB1Y2hhciBzYWRfYWRqdXN0bWVudCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19ibWVfaW5pdGlhbGl6ZSgKICAgIHVzaG9ydDIgc3JjX2Nvb3JkLCB1bG9uZyBtb3Rpb25fdmVjdG9ycywgdWNoYXIgbWFqb3Jfc2hhcGVzLAogICAgdWNoYXIgbWlub3Jfc2hhcGVzLCB1Y2hhciBkaXJlY3Rpb25zLCB1Y2hhciBwaXhlbF9yZXNvbHV0aW9uLAogICAgdWNoYXIgYmlkaXJlY3Rpb25hbF93ZWlnaHQsIHVjaGFyIHNhZF9hZGp1c3RtZW50KTsKCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2JpZGlyZWN0aW9uYWxfbWl4X2Rpc2FibGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2JpbGluZWFyX2ZpbHRlcl9lbmFibGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9zaW5nbGVfcmVmZXJlbmNlKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgcmVmX2ltYWdlLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9ldmFsdWF0ZV93aXRoX2R1YWxfcmVmZXJlbmNlKAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBzcmNfaW1hZ2UsIHJlYWRfb25seSBpbWFnZTJkX3QgZndkX3JlZl9pbWFnZSwKICAgIHJlYWRfb25seSBpbWFnZTJkX3QgYndkX3JlZl9pbWFnZSwgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9tdWx0aV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgdWludCBwYWNrZWRfcmVmZXJlbmNlX2lkcywKICAgIHNhbXBsZXJfdCB2bWVfbWVkaWFfc2FtcGxlciwgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZXZhbHVhdGVfd2l0aF9tdWx0aV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgdWludCBwYWNrZWRfcmVmZXJlbmNlX2lkcywKICAgIHVjaGFyIHBhY2tlZF9yZWZlcmVuY2VfZmllbGRfcG9sYXJpdGllcywgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwoKLy8gU0lDIGJ1aWx0LWluIGZ1bmN0aW9ucwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2luaXRpYWxpemUoCiAgICB1c2hvcnQyIHNyY19jb29yZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29uZmlndXJlX3NrYygKICAgIHVpbnQgc2tpcF9ibG9ja19wYXJ0aXRpb25fdHlwZSwgdWludCBza2lwX21vdGlvbl92ZWN0b3JfbWFzaywKICAgIHVsb25nIG1vdGlvbl92ZWN0b3JzLCB1Y2hhciBiaWRpcmVjdGlvbmFsX3dlaWdodCwgdWNoYXIgc2tpcF9zYWRfYWRqdXN0bWVudCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19jb25maWd1cmVfaXBlKAogICAgdWNoYXIgbHVtYV9pbnRyYV9wYXJ0aXRpb25fbWFzaywgdWNoYXIgaW50cmFfbmVpZ2hib3VyX2F2YWlsYWJpbHR5LAogICAgdWNoYXIgbGVmdF9lZGdlX2x1bWFfcGl4ZWxzLCB1Y2hhciB1cHBlcl9sZWZ0X2Nvcm5lcl9sdW1hX3BpeGVsLAogICAgdWNoYXIgdXBwZXJfZWRnZV9sdW1hX3BpeGVscywgdWNoYXIgdXBwZXJfcmlnaHRfZWRnZV9sdW1hX3BpeGVscywKICAgIHVjaGFyIGludHJhX3NhZF9hZGp1c3RtZW50LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29uZmlndXJlX2lwZSgKICAgIHVjaGFyIGx1bWFfaW50cmFfcGFydGl0aW9uX21hc2ssIHVjaGFyIGludHJhX25laWdoYm91cl9hdmFpbGFiaWx0eSwKICAgIHVjaGFyIGxlZnRfZWRnZV9sdW1hX3BpeGVscywgdWNoYXIgdXBwZXJfbGVmdF9jb3JuZXJfbHVtYV9waXhlbCwKICAgIHVjaGFyIHVwcGVyX2VkZ2VfbHVtYV9waXhlbHMsIHVjaGFyIHVwcGVyX3JpZ2h0X2VkZ2VfbHVtYV9waXhlbHMsCiAgICB1c2hvcnQgbGVmdF9lZGdlX2Nocm9tYV9waXhlbHMsIHVzaG9ydCB1cHBlcl9sZWZ0X2Nvcm5lcl9jaHJvbWFfcGl4ZWwsCiAgICB1c2hvcnQgdXBwZXJfZWRnZV9jaHJvbWFfcGl4ZWxzLCB1Y2hhciBpbnRyYV9zYWRfYWRqdXN0bWVudCwKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKdWludCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X21vdGlvbl92ZWN0b3JfbWFzaygKICAgIHVpbnQgc2tpcF9ibG9ja19wYXJ0aXRpb25fdHlwZSwgdWNoYXIgZGlyZWN0aW9uKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X2ludHJhX2x1bWFfc2hhcGVfcGVuYWx0eSgKICAgIHVpbnQgcGFja2VkX3NoYXBlX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50cmFfbHVtYV9tb2RlX2Nvc3RfZnVuY3Rpb24oCiAgICB1Y2hhciBsdW1hX21vZGVfcGVuYWx0eSwgdWludCBsdW1hX3BhY2tlZF9uZWlnaGJvcl9tb2RlcywKICAgIHVpbnQgbHVtYV9wYWNrZWRfbm9uX2RjX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50cmFfY2hyb21hX21vZGVfY29zdF9mdW5jdGlvbigKICAgIHVjaGFyIGNocm9tYV9tb2RlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NrY19iaWxpbmVhcl9maWx0ZXJfZW5hYmxlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9za2NfZm9yd2FyZF90cmFuc2Zvcm1fZW5hYmxlKAogICAgdWxvbmcgcGFja2VkX3NhZF9jb2VmZmljaWVudHMsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfYmxvY2tfYmFzZWRfcmF3X3NraXBfc2FkKAogICAgdWNoYXIgYmxvY2tfYmFzZWRfc2tpcF90eXBlLAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2V2YWx1YXRlX2lwZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX3NpbmdsZV9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCByZWZfaW1hZ2UsCiAgICBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2V2YWx1YXRlX3dpdGhfZHVhbF9yZWZlcmVuY2UoCiAgICByZWFkX29ubHkgaW1hZ2UyZF90IHNyY19pbWFnZSwgcmVhZF9vbmx5IGltYWdlMmRfdCBmd2RfcmVmX2ltYWdlLAogICAgcmVhZF9vbmx5IGltYWdlMmRfdCBid2RfcmVmX2ltYWdlLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX211bHRpX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLAogICAgc2FtcGxlcl90IHZtZV9tZWRpYV9zYW1wbGVyLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19ldmFsdWF0ZV93aXRoX211bHRpX3JlZmVyZW5jZSgKICAgIHJlYWRfb25seSBpbWFnZTJkX3Qgc3JjX2ltYWdlLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLAogICAgdWNoYXIgcGFja2VkX3JlZmVyZW5jZV9maWVsZF9wb2xhcml0aWVzLCBzYW1wbGVyX3Qgdm1lX21lZGlhX3NhbXBsZXIsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7Cgp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X2lwZV9sdW1hX3NoYXBlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfYmVzdF9pcGVfbHVtYV9kaXN0b3J0aW9uKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfYmVzdF9pcGVfY2hyb21hX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9pcGVfbHVtYV9tb2RlcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfaXBlX2Nocm9tYV9tb2RlKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdWludCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9za2NfbHVtYV9jb3VudF90aHJlc2hvbGQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfZ2V0X3BhY2tlZF9za2NfbHVtYV9zdW1fdGhyZXNob2xkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19nZXRfaW50ZXJfcmF3X3NhZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwoKLy8gV3JhcHBlcnMKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfYmFzZV9tdWx0aV9yZWZlcmVuY2VfcGVuYWx0eSgKICAgIHVjaGFyIHJlZmVyZW5jZV9iYXNlX3BlbmFsdHksIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2V0X2ludGVyX3NoYXBlX3BlbmFsdHkoCiAgICB1bG9uZyBwYWNrZWRfc2hhcGVfY29zdCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9pbnRlcl9zaGFwZV9wZW5hbHR5KAogICAgdWxvbmcgcGFja2VkX3NoYXBlX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfc2hhcGVfcGVuYWx0eSgKICAgIHVsb25nIHBhY2tlZF9zaGFwZV9jb3N0LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9pbnRlcl9kaXJlY3Rpb25fcGVuYWx0eSgKICAgIHVjaGFyIGRpcmVjdGlvbl9jb3N0LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X2ludGVyX2RpcmVjdGlvbl9wZW5hbHR5KAogICAgdWNoYXIgZGlyZWN0aW9uX2Nvc3QsIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19zZXRfaW50ZXJfZGlyZWN0aW9uX3BlbmFsdHkoCiAgICB1Y2hhciBkaXJlY3Rpb25fY29zdCwgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfbW90aW9uX3ZlY3Rvcl9jb3N0X2Z1bmN0aW9uKAogICAgdWxvbmcgcGFja2VkX2Nvc3RfY2VudGVyX2RlbHRhLCB1aW50MiBwYWNrZWRfY29zdF90YWJsZSwKICAgIHVjaGFyIGNvc3RfcHJlY2lzaW9uLCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X21vdGlvbl92ZWN0b3JfY29zdF9mdW5jdGlvbigKICAgIHVsb25nIHBhY2tlZF9jb3N0X2NlbnRlcl9kZWx0YSwgdWludDIgcGFja2VkX2Nvc3RfdGFibGUsCiAgICB1Y2hhciBjb3N0X3ByZWNpc2lvbiwgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9tb3Rpb25fdmVjdG9yX2Nvc3RfZnVuY3Rpb24oCiAgICB1bG9uZyBwYWNrZWRfY29zdF9jZW50ZXJfZGVsdGEsIHVpbnQyIHBhY2tlZF9jb3N0X3RhYmxlLAogICAgdWNoYXIgY29zdF9wcmVjaXNpb24sIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NvdXJjZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgc3JjX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgcGF5bG9hZCk7CgppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9zaW5nbGVfcmVmZXJlbmNlX2ludGVybGFjZWRfZmllbGRfcG9sYXJpdHkoCiAgICB1Y2hhciByZWZfZmllbGRfcG9sYXJpdHksIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9zZXRfc2luZ2xlX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXR5KAogICAgdWNoYXIgcmVmX2ZpZWxkX3BvbGFyaXR5LCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X3NpbmdsZV9yZWZlcmVuY2VfaW50ZXJsYWNlZF9maWVsZF9wb2xhcml0eSgKICAgIHVjaGFyIHJlZl9maWVsZF9wb2xhcml0eSwgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3NldF9kdWFsX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1Y2hhciBmd2RfcmVmX2ZpZWxkX3BvbGFyaXR5LCB1Y2hhciBid2RfcmVmX2ZpZWxkX3BvbGFyaXR5LAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9zZXRfYWNfb25seV9oYWFyKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3NldF9hY19vbmx5X2hhYXIoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfc2V0X2FjX29ubHlfaGFhcigKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKCnVsb25nIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfbW90aW9uX3ZlY3RvcnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1bG9uZyBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X21vdGlvbl92ZWN0b3JzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKCnVzaG9ydCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX2Rpc3RvcnRpb25zKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfcmVzdWx0X3QgcmVzdWx0KTsKdXNob3J0IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfZGlzdG9ydGlvbnMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX2dldF9pbnRlcl9kaXN0b3J0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3Jlc3VsdF90IHJlc3VsdCk7Cgp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1c2hvcnQgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX2dldF9iZXN0X2ludGVyX2Rpc3RvcnRpb24oCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKdWNoYXIgX19vdmxkIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2dldF9pbnRlcl9tYWpvcl9zaGFwZSgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfbWFqb3Jfc2hhcGUoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX21pbm9yX3NoYXBlcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfbWlub3Jfc2hhcGVzKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKCnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9nZXRfaW50ZXJfZGlyZWN0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CnVjaGFyIF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfZGlyZWN0aW9ucygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IHJlc3VsdCk7Cgp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X2ludGVyX21vdGlvbl92ZWN0b3JfY291bnQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKdWludCBfX292bGQgaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX3JlZmVyZW5jZV9pZHMoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1aW50IF9fb3ZsZCBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9nZXRfaW50ZXJfcmVmZXJlbmNlX2lkcygKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfcmVmX3Jlc3VsdF90IHJlc3VsdCk7Cgp1Y2hhciBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19pbWVfZ2V0X2ludGVyX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfcGFyYW1ldGVyX2ZpZWxkX3BvbGFyaXRpZXMsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9yZXN1bHRfdCByZXN1bHQpOwp1Y2hhciBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfZ2V0X2ludGVyX3JlZmVyZW5jZV9pbnRlcmxhY2VkX2ZpZWxkX3BvbGFyaXRpZXMoCiAgICB1aW50IHBhY2tlZF9yZWZlcmVuY2VfaWRzLCB1aW50IHBhY2tlZF9yZWZlcmVuY2VfcGFyYW1ldGVyX2ZpZWxkX3BvbGFyaXRpZXMsCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9yZXN1bHRfdCByZXN1bHQpOwoKLy8gVHlwZSBjb252ZXJzaW9uIGZ1bmN0aW9ucwppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2NvbnZlcnRfdG9fbWNlX3BheWxvYWQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX2ltZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfY29udmVydF90b19pbWVfcGF5bG9hZCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9jb252ZXJ0X3RvX21jZV9wYXlsb2FkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcGF5bG9hZF90IHBheWxvYWQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3JlZl9wYXlsb2FkX3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2NvbnZlcnRfdG9fcmVmX3BheWxvYWQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9wYXlsb2FkX3QgcGF5bG9hZCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3BheWxvYWRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfY29udmVydF90b19tY2VfcGF5bG9hZCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfc2ljX3BheWxvYWRfdCBwYXlsb2FkKTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19zaWNfcGF5bG9hZF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9jb252ZXJ0X3RvX3NpY19wYXlsb2FkKAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcGF5bG9hZF90IHBheWxvYWQpOwoKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX2NvbnZlcnRfdG9fbWNlX3Jlc3VsdCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfaW1lX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9jb252ZXJ0X3RvX2ltZV9yZXN1bHQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX21jZV9yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfY29udmVydF90b19tY2VfcmVzdWx0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgcmVzdWx0KTsKaW50ZWxfc3ViX2dyb3VwX2F2Y19yZWZfcmVzdWx0X3QgX19vdmxkCmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX2NvbnZlcnRfdG9fcmVmX3Jlc3VsdCgKICAgIGludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IHJlc3VsdCk7CmludGVsX3N1Yl9ncm91cF9hdmNfbWNlX3Jlc3VsdF90IF9fb3ZsZAppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19jb252ZXJ0X3RvX21jZV9yZXN1bHQoCiAgICBpbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCByZXN1bHQpOwppbnRlbF9zdWJfZ3JvdXBfYXZjX3NpY19yZXN1bHRfdCBfX292bGQKaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfY29udmVydF90b19zaWNfcmVzdWx0KAogICAgaW50ZWxfc3ViX2dyb3VwX2F2Y19tY2VfcmVzdWx0X3QgcmVzdWx0KTsKI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGNsX2ludGVsX2RldmljZV9zaWRlX2F2Y19tb3Rpb25fZXN0aW1hdGlvbiA6IGVuZAojZW5kaWYgLy8gY2xfaW50ZWxfZGV2aWNlX3NpZGVfYXZjX21vdGlvbl9lc3RpbWF0aW9uCgojaWZkZWYgY2xfYW1kX21lZGlhX29wcwp1aW50IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludCBhLCB1aW50IGIsIHVpbnQgYyk7CnVpbnQyIF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDMgYSwgdWludDMgYiwgdWludDMgYyk7CnVpbnQ0IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CnVpbnQ4IF9fb3ZsZCBhbWRfYml0YWxpZ24odWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2JpdGFsaWduKHVpbnQxNiBhLCB1aW50MTYgYiwgdWludDE2IGMpOwoKdWludCBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50IGEsIHVpbnQgYiwgdWludCBjKTsKdWludDIgX19vdmxkIGFtZF9ieXRlYWxpZ24odWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfYnl0ZWFsaWduKHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwp1aW50NCBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50NCBhLCB1aW50NCBiLCB1aW50NCBjKTsKdWludDggX19vdmxkIGFtZF9ieXRlYWxpZ24odWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2J5dGVhbGlnbih1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKCnVpbnQgX19vdmxkIGFtZF9sZXJwKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwp1aW50MiBfX292bGQgYW1kX2xlcnAodWludDIgYSwgdWludDIgYiwgdWludDIgYyk7CnVpbnQzIF9fb3ZsZCBhbWRfbGVycCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKdWludDQgX19vdmxkIGFtZF9sZXJwKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwp1aW50OCBfX292bGQgYW1kX2xlcnAodWludDggYSwgdWludDggYiwgdWludDggYyk7CnVpbnQxNiBfX292bGQgYW1kX2xlcnAodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7Cgp1aW50IF9fb3ZsZCBhbWRfcGFjayhmbG9hdDQgdik7Cgp1aW50IF9fb3ZsZCBhbWRfc2FkNCh1aW50NCB4LCB1aW50NCB5LCB1aW50IHopOwoKdWludCBfX292bGQgYW1kX3NhZGhpKHVpbnQgYSwgdWludCBiLCB1aW50IGMpOwp1aW50MiBfX292bGQgYW1kX3NhZGhpKHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwp1aW50MyBfX292bGQgYW1kX3NhZGhpKHVpbnQzIGEsIHVpbnQzIGIsIHVpbnQzIGMpOwp1aW50NCBfX292bGQgYW1kX3NhZGhpKHVpbnQ0IGEsIHVpbnQ0IGIsIHVpbnQ0IGMpOwp1aW50OCBfX292bGQgYW1kX3NhZGhpKHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50MTYgX19vdmxkIGFtZF9zYWRoaSh1aW50MTYgYSwgdWludDE2IGIsIHVpbnQxNiBjKTsKCnVpbnQgX19vdmxkIGFtZF9zYWQodWludCBhLCB1aW50IGIsIHVpbnQgYyk7CnVpbnQyIF9fb3ZsZCBhbWRfc2FkKHVpbnQyIGEsIHVpbnQyIGIsIHVpbnQyIGMpOwp1aW50MyBfX292bGQgYW1kX3NhZCh1aW50MyBhLCB1aW50MyBiLCB1aW50MyBjKTsKdWludDQgX19vdmxkIGFtZF9zYWQodWludDQgYSwgdWludDQgYiwgdWludDQgYyk7CnVpbnQ4IF9fb3ZsZCBhbWRfc2FkKHVpbnQ4IGEsIHVpbnQ4IGIsIHVpbnQ4IGMpOwp1aW50MTYgX19vdmxkIGFtZF9zYWQodWludDE2IGEsIHVpbnQxNiBiLCB1aW50MTYgYyk7CgpmbG9hdCBfX292bGQgYW1kX3VucGFjazAodWludCBhKTsKZmxvYXQyIF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50MiBhKTsKZmxvYXQzIF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50MyBhKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50NCBhKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfdW5wYWNrMCh1aW50OCBhKTsKZmxvYXQxNiBfX292bGQgYW1kX3VucGFjazAodWludDE2IGEpOwoKZmxvYXQgX19vdmxkIGFtZF91bnBhY2sxKHVpbnQgYSk7CmZsb2F0MiBfX292bGQgYW1kX3VucGFjazEodWludDIgYSk7CmZsb2F0MyBfX292bGQgYW1kX3VucGFjazEodWludDMgYSk7CmZsb2F0NCBfX292bGQgYW1kX3VucGFjazEodWludDQgYSk7CmZsb2F0OCBfX292bGQgYW1kX3VucGFjazEodWludDggYSk7CmZsb2F0MTYgX19vdmxkIGFtZF91bnBhY2sxKHVpbnQxNiBhKTsKCmZsb2F0IF9fb3ZsZCBhbWRfdW5wYWNrMih1aW50IGEpOwpmbG9hdDIgX19vdmxkIGFtZF91bnBhY2syKHVpbnQyIGEpOwpmbG9hdDMgX19vdmxkIGFtZF91bnBhY2syKHVpbnQzIGEpOwpmbG9hdDQgX19vdmxkIGFtZF91bnBhY2syKHVpbnQ0IGEpOwpmbG9hdDggX19vdmxkIGFtZF91bnBhY2syKHVpbnQ4IGEpOwpmbG9hdDE2IF9fb3ZsZCBhbWRfdW5wYWNrMih1aW50MTYgYSk7CgpmbG9hdCBfX292bGQgYW1kX3VucGFjazModWludCBhKTsKZmxvYXQyIF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50MiBhKTsKZmxvYXQzIF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50MyBhKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50NCBhKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfdW5wYWNrMyh1aW50OCBhKTsKZmxvYXQxNiBfX292bGQgYW1kX3VucGFjazModWludDE2IGEpOwojZW5kaWYgLy8gY2xfYW1kX21lZGlhX29wcwoKI2lmZGVmIGNsX2FtZF9tZWRpYV9vcHMyCmludCBfX292bGQgYW1kX2JmZShpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfYmZlKGludDIgc3JjMCwgdWludDIgc3JjMSwgdWludDIgc3JjMik7CmludDMgX19vdmxkIGFtZF9iZmUoaW50MyBzcmMwLCB1aW50MyBzcmMxLCB1aW50MyBzcmMyKTsKaW50NCBfX292bGQgYW1kX2JmZShpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfYmZlKGludDggc3JjMCwgdWludDggc3JjMSwgdWludDggc3JjMik7CmludDE2IF9fb3ZsZCBhbWRfYmZlKGludDE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1aW50MTYgc3JjMik7Cgp1aW50IF9fb3ZsZCBhbWRfYmZlKHVpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwp1aW50MiBfX292bGQgYW1kX2JmZSh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9iZmUodWludDMgc3JjMCwgdWludDMgc3JjMSwgdWludDMgc3JjMik7CnVpbnQ0IF9fb3ZsZCBhbWRfYmZlKHVpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwp1aW50OCBfX292bGQgYW1kX2JmZSh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfYmZlKHVpbnQxNiBzcmMwLCB1aW50MTYgc3JjMSwgdWludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX2JmbSh1aW50IHNyYzAsIHVpbnQgc3JjMSk7CnVpbnQyIF9fb3ZsZCBhbWRfYmZtKHVpbnQyIHNyYzAsIHVpbnQyIHNyYzEpOwp1aW50MyBfX292bGQgYW1kX2JmbSh1aW50MyBzcmMwLCB1aW50MyBzcmMxKTsKdWludDQgX19vdmxkIGFtZF9iZm0odWludDQgc3JjMCwgdWludDQgc3JjMSk7CnVpbnQ4IF9fb3ZsZCBhbWRfYmZtKHVpbnQ4IHNyYzAsIHVpbnQ4IHNyYzEpOwp1aW50MTYgX19vdmxkIGFtZF9iZm0odWludDE2IHNyYzAsIHVpbnQxNiBzcmMxKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMyKTsKZmxvYXQyIF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDIgc3JjMCwgZmxvYXQyIHNyYzEsIGZsb2F0MiBzcmMyKTsKZmxvYXQzIF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDMgc3JjMCwgZmxvYXQzIHNyYzEsIGZsb2F0MyBzcmMyKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMyKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfbWF4MyhmbG9hdDggc3JjMCwgZmxvYXQ4IHNyYzEsIGZsb2F0OCBzcmMyKTsKZmxvYXQxNiBfX292bGQgYW1kX21heDMoZmxvYXQxNiBzcmMwLCBmbG9hdDE2IHNyYzEsIGZsb2F0MTYgc3JjMik7CgppbnQgX19vdmxkIGFtZF9tYXgzKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWF4MyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21heDMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9tYXgzKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWF4MyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9tYXgzKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21heDModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWF4Myh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tYXgzKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21heDModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWF4Myh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWF4Myh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMyKTsKZmxvYXQyIF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDIgc3JjMCwgZmxvYXQyIHNyYzEsIGZsb2F0MiBzcmMyKTsKZmxvYXQzIF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDMgc3JjMCwgZmxvYXQzIHNyYzEsIGZsb2F0MyBzcmMyKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMyKTsKZmxvYXQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyhmbG9hdDggc3JjMCwgZmxvYXQ4IHNyYzEsIGZsb2F0OCBzcmMyKTsKZmxvYXQxNiBfX292bGQgYW1kX21lZGlhbjMoZmxvYXQxNiBzcmMwLCBmbG9hdDE2IHNyYzEsIGZsb2F0MTYgc3JjMik7CgppbnQgX19vdmxkIGFtZF9tZWRpYW4zKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWVkaWFuMyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21lZGlhbjMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9tZWRpYW4zKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9tZWRpYW4zKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21lZGlhbjModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tZWRpYW4zKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21lZGlhbjModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWVkaWFuMyh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCmZsb2F0IF9fb3ZsZCBhbWRfbWluMyhmbG9hdCBzcmMwLCBmbG9hdCBzcmMxLCBmbG9hdCBzcmMpOwpmbG9hdDIgX19vdmxkIGFtZF9taW4zKGZsb2F0MiBzcmMwLCBmbG9hdDIgc3JjMSwgZmxvYXQyIHNyYyk7CmZsb2F0MyBfX292bGQgYW1kX21pbjMoZmxvYXQzIHNyYzAsIGZsb2F0MyBzcmMxLCBmbG9hdDMgc3JjKTsKZmxvYXQ0IF9fb3ZsZCBhbWRfbWluMyhmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEsIGZsb2F0NCBzcmMpOwpmbG9hdDggX19vdmxkIGFtZF9taW4zKGZsb2F0OCBzcmMwLCBmbG9hdDggc3JjMSwgZmxvYXQ4IHNyYyk7CmZsb2F0MTYgX19vdmxkIGFtZF9taW4zKGZsb2F0MTYgc3JjMCwgZmxvYXQxNiBzcmMxLCBmbG9hdDE2IHNyYyk7CgppbnQgX19vdmxkIGFtZF9taW4zKGludCBzcmMwLCBpbnQgc3JjMSwgaW50IHNyYzIpOwppbnQyIF9fb3ZsZCBhbWRfbWluMyhpbnQyIHNyYzAsIGludDIgc3JjMSwgaW50MiBzcmMyKTsKaW50MyBfX292bGQgYW1kX21pbjMoaW50MyBzcmMwLCBpbnQzIHNyYzEsIGludDMgc3JjMik7CmludDQgX19vdmxkIGFtZF9taW4zKGludDQgc3JjMCwgaW50NCBzcmMxLCBpbnQ0IHNyYzIpOwppbnQ4IF9fb3ZsZCBhbWRfbWluMyhpbnQ4IHNyYzAsIGludDggc3JjMSwgaW50OCBzcmMyKTsKaW50MTYgX19vdmxkIGFtZF9taW4zKGludDE2IHNyYzAsIGludDE2IHNyYzEsIGludDE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21pbjModWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbWluMyh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9taW4zKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21pbjModWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbWluMyh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbWluMyh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCnVsb25nIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmcgc3JjMCwgdWludCBzcmMxLCB1bG9uZyBzcmMyKTsKdWxvbmcyIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmcyIHNyYzAsIHVpbnQyIHNyYzEsIHVsb25nMiBzcmMyKTsKdWxvbmczIF9fb3ZsZCBhbWRfbXFzYWQodWxvbmczIHNyYzAsIHVpbnQzIHNyYzEsIHVsb25nMyBzcmMyKTsKdWxvbmc0IF9fb3ZsZCBhbWRfbXFzYWQodWxvbmc0IHNyYzAsIHVpbnQ0IHNyYzEsIHVsb25nNCBzcmMyKTsKdWxvbmc4IF9fb3ZsZCBhbWRfbXFzYWQodWxvbmc4IHNyYzAsIHVpbnQ4IHNyYzEsIHVsb25nOCBzcmMyKTsKdWxvbmcxNiBfX292bGQgYW1kX21xc2FkKHVsb25nMTYgc3JjMCwgdWludDE2IHNyYzEsIHVsb25nMTYgc3JjMik7Cgp1bG9uZyBfX292bGQgYW1kX3FzYWQodWxvbmcgc3JjMCwgdWludCBzcmMxLCB1bG9uZyBzcmMyKTsKdWxvbmcyIF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzIgc3JjMCwgdWludDIgc3JjMSwgdWxvbmcyIHNyYzIpOwp1bG9uZzMgX19vdmxkIGFtZF9xc2FkKHVsb25nMyBzcmMwLCB1aW50MyBzcmMxLCB1bG9uZzMgc3JjMik7CnVsb25nNCBfX292bGQgYW1kX3FzYWQodWxvbmc0IHNyYzAsIHVpbnQ0IHNyYzEsIHVsb25nNCBzcmMyKTsKdWxvbmc4IF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzggc3JjMCwgdWludDggc3JjMSwgdWxvbmc4IHNyYzIpOwp1bG9uZzE2IF9fb3ZsZCBhbWRfcXNhZCh1bG9uZzE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1bG9uZzE2IHNyYzIpOwoKdWludCBfX292bGQgYW1kX21zYWQodWludCBzcmMwLCB1aW50IHNyYzEsIHVpbnQgc3JjMik7CnVpbnQyIF9fb3ZsZCBhbWRfbXNhZCh1aW50MiBzcmMwLCB1aW50MiBzcmMxLCB1aW50MiBzcmMyKTsKdWludDMgX19vdmxkIGFtZF9tc2FkKHVpbnQzIHNyYzAsIHVpbnQzIHNyYzEsIHVpbnQzIHNyYzIpOwp1aW50NCBfX292bGQgYW1kX21zYWQodWludDQgc3JjMCwgdWludDQgc3JjMSwgdWludDQgc3JjMik7CnVpbnQ4IF9fb3ZsZCBhbWRfbXNhZCh1aW50OCBzcmMwLCB1aW50OCBzcmMxLCB1aW50OCBzcmMyKTsKdWludDE2IF9fb3ZsZCBhbWRfbXNhZCh1aW50MTYgc3JjMCwgdWludDE2IHNyYzEsIHVpbnQxNiBzcmMyKTsKCnVpbnQgX19vdmxkIGFtZF9zYWRkKHVpbnQgc3JjMCwgdWludCBzcmMxLCB1aW50IHNyYzIpOwp1aW50MiBfX292bGQgYW1kX3NhZGQodWludDIgc3JjMCwgdWludDIgc3JjMSwgdWludDIgc3JjMik7CnVpbnQzIF9fb3ZsZCBhbWRfc2FkZCh1aW50MyBzcmMwLCB1aW50MyBzcmMxLCB1aW50MyBzcmMyKTsKdWludDQgX19vdmxkIGFtZF9zYWRkKHVpbnQ0IHNyYzAsIHVpbnQ0IHNyYzEsIHVpbnQ0IHNyYzIpOwp1aW50OCBfX292bGQgYW1kX3NhZGQodWludDggc3JjMCwgdWludDggc3JjMSwgdWludDggc3JjMik7CnVpbnQxNiBfX292bGQgYW1kX3NhZGQodWludDE2IHNyYzAsIHVpbnQxNiBzcmMxLCB1aW50MTYgc3JjMik7Cgp1aW50IF9fb3ZsZCBhbWRfc2Fkdyh1aW50IHNyYzAsIHVpbnQgc3JjMSwgdWludCBzcmMyKTsKdWludDIgX19vdmxkIGFtZF9zYWR3KHVpbnQyIHNyYzAsIHVpbnQyIHNyYzEsIHVpbnQyIHNyYzIpOwp1aW50MyBfX292bGQgYW1kX3NhZHcodWludDMgc3JjMCwgdWludDMgc3JjMSwgdWludDMgc3JjMik7CnVpbnQ0IF9fb3ZsZCBhbWRfc2Fkdyh1aW50NCBzcmMwLCB1aW50NCBzcmMxLCB1aW50NCBzcmMyKTsKdWludDggX19vdmxkIGFtZF9zYWR3KHVpbnQ4IHNyYzAsIHVpbnQ4IHNyYzEsIHVpbnQ4IHNyYzIpOwp1aW50MTYgX19vdmxkIGFtZF9zYWR3KHVpbnQxNiBzcmMwLCB1aW50MTYgc3JjMSwgdWludDE2IHNyYzIpOwojZW5kaWYgLy8gY2xfYW1kX21lZGlhX29wczIKCiNpZiBkZWZpbmVkKGNsX2FybV9pbnRlZ2VyX2RvdF9wcm9kdWN0X2ludDgpCnVpbnQgX19vdmxkIGFybV9kb3QodWNoYXI0IGEsIHVjaGFyNCBiKTsKaW50IF9fb3ZsZCBhcm1fZG90KGNoYXI0IGEsIGNoYXI0IGIpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9pbnQ4KQoKI2lmIGRlZmluZWQoY2xfYXJtX2ludGVnZXJfZG90X3Byb2R1Y3RfYWNjdW11bGF0ZV9pbnQ4KQp1aW50IF9fb3ZsZCBhcm1fZG90X2FjYyh1Y2hhcjQgYSwgdWNoYXI0IGIsIHVpbnQgYyk7CmludCBfX292bGQgYXJtX2RvdF9hY2MoY2hhcjQgYSwgY2hhcjQgYiwgaW50IGMpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX2ludDgpCgojaWYgZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX2ludDE2KQp1aW50IF9fb3ZsZCBhcm1fZG90X2FjYyh1c2hvcnQyIGEsIHVzaG9ydDIgYiwgdWludCBjKTsKaW50IF9fb3ZsZCBhcm1fZG90X2FjYyhzaG9ydDIgYSwgc2hvcnQyIGIsIGludCBjKTsKI2VuZGlmIC8vIGRlZmluZWQoY2xfYXJtX2ludGVnZXJfZG90X3Byb2R1Y3RfYWNjdW11bGF0ZV9pbnQxNikKCiNpZiBkZWZpbmVkKGNsX2FybV9pbnRlZ2VyX2RvdF9wcm9kdWN0X2FjY3VtdWxhdGVfc2F0dXJhdGVfaW50OCkKdWludCBfX292bGQgYXJtX2RvdF9hY2Nfc2F0KHVjaGFyNCBhLCB1Y2hhcjQgYiwgdWludCBjKTsKaW50IF9fb3ZsZCBhcm1fZG90X2FjY19zYXQoY2hhcjQgYSwgY2hhcjQgYiwgaW50IGMpOwojZW5kaWYgLy8gZGVmaW5lZChjbF9hcm1faW50ZWdlcl9kb3RfcHJvZHVjdF9hY2N1bXVsYXRlX3NhdHVyYXRlX2ludDgpCgovLyBEaXNhYmxlIGFueSBleHRlbnNpb25zIHdlIG1heSBoYXZlIGVuYWJsZWQgcHJldmlvdXNseS4KI3ByYWdtYSBPUEVOQ0wgRVhURU5TSU9OIGFsbCA6IGRpc2FibGUKCiN1bmRlZiBfX2NuZm4KI3VuZGVmIF9fb3ZsZAojZW5kaWYgLy9fT1BFTkNMX0hfCgBDb3VsZG4ndCByZWFkIAAgKGZjbG9zZShoYW5kbGUpPQBGYWlsdXJlIHNlcmlhbGl6aW5nIGNvbXBpbGF0aW9uIHVuaXQAcm9vdC8ALi4Ac3RhcnRwb3M6IABOdW1DYXB0dXJlc1dhbGtlcjo6U2hvcnRWaXNpdCBjYWxsZWQAKD86ACg/OikASGVicmV3AEwATG8AU3lsb3RpX05hZ3JpAH9FTEYAYXJlbmEgIT0gbnVsbHB0ciAmJiBhcmVuYSAhPSBEZWZhdWx0QXJlbmEoKSAmJiBhcmVuYSAhPSBVbmhvb2tlZEFyZW5hKCkAcmVnaW9uLT5oZWFkZXIubWFnaWMgPT0gTWFnaWMoa01hZ2ljVW5hbGxvY2F0ZWQsICZyZWdpb24tPmhlYWRlcikAbm90aGluZyBpbiBhcmVuYSB0byBmcmVlAHZvaWQAZmxvYXQAZGVjaW1hbDEyOABvcGVyYXRvciAAYmFzaWNfc3RyaW5nAENoZWNrIG5vZGUtPmxlbmd0aCAhPSAwdSBmYWlsZWQ6IAB0cmVlLT5iZWdpbigpIDw9IHRyZWUtPmVuZCgpAGVkZ2UtPklzQnRyZWUoKQAgZnJvbSBiZWdpbl9wb3MgAG5mAC9ldGMvbG9jYWx0aW1lAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZGlnZXN0L2RpZ2VzdC5jAGV4dGVybmFsL2JvcmluZ3NzbC9zcmMvY3J5cHRvL2ZpcHNtb2R1bGUvZWMvZWMuYwBub3QgYXZhaWxhYmxlACVsdQBreXRoZS5wcm90by5BbmFseXNpc1Jlc3VsdC5zdW1tYXJ5AGt5dGhlLnByb3RvLmNvbW1vbi5Ob2RlSW5mby5GYWN0c0VudHJ5LmtleQBreXRoZS5wcm90by5jb21tb24uT3JpZ2luLmNvcnB1cwBvdXQvc29vbmcvLmludGVybWVkaWF0ZXMvZXh0ZXJuYWwva3l0aGUvY3h4X2V4dHJhY3Rvci9saW51eF9nbGliY194ODZfNjQvZ2VuL3Byb3RvL2t5dGhlL3Byb3RvL21ldGFkYXRhLnBiLmNjAGt5dGhlLnByb3RvLlZOYW1lLnNpZ25hdHVyZQBreXRoZS5wcm90by5WTmFtZS5wYXRoAGt5dGhlLnByb3RvLlJlYWRSZXF1ZXN0LmVkZ2Vfa2luZAAtc3RhdGljADxzdGRpbj4AQ2hlY2sgZmFpbGVkOiBhYnNsOjpFbmRzV2l0aChvdXRwdXRfZmlsZV8sICIua3ppcCIpAENYWFN5c3RlbQApAF9fY2xhbmdfaGlwX3J1bnRpbWVfd3JhcHBlci5oAGFybV9uZW9uLmgALyo9PT0tLS0tIGFybV9uZW9uLmggLSBBUk0gTmVvbiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0byBkZWFsCiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMKICogdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbAogKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKICoKICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAqCiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAogKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgogKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAogKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOCiAqIFRIRSBTT0ZUV0FSRS4KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19BUk1fTkVPTl9ICiNkZWZpbmUgX19BUk1fTkVPTl9ICgojaWZuZGVmIF9fQVJNX0ZQCiNlcnJvciAiTkVPTiBpbnRyaW5zaWNzIG5vdCBhdmFpbGFibGUgd2l0aCB0aGUgc29mdC1mbG9hdCBBQkkuIFBsZWFzZSB1c2UgLW1mbG9hdC1hYmk9c29mdGZwIG9yIC1tZmxvYXQtYWJpPWhhcmQiCiNlbHNlCgojaWYgIWRlZmluZWQoX19BUk1fTkVPTikKI2Vycm9yICJORU9OIHN1cHBvcnQgbm90IGVuYWJsZWQiCiNlbHNlCgojaW5jbHVkZSA8c3RkaW50Lmg+CgojaWZkZWYgX19BUk1fRkVBVFVSRV9CRjE2CiNpbmNsdWRlIDxhcm1fYmYxNi5oPgp0eXBlZGVmIF9fYmYxNiBiZmxvYXQxNl90OwojZW5kaWYKCnR5cGVkZWYgZmxvYXQgZmxvYXQzMl90Owp0eXBlZGVmIF9fZnAxNiBmbG9hdDE2X3Q7CiNpZmRlZiBfX2FhcmNoNjRfXwp0eXBlZGVmIGRvdWJsZSBmbG9hdDY0X3Q7CiNlbmRpZgoKI2lmZGVmIF9fYWFyY2g2NF9fCnR5cGVkZWYgdWludDhfdCBwb2x5OF90Owp0eXBlZGVmIHVpbnQxNl90IHBvbHkxNl90Owp0eXBlZGVmIHVpbnQ2NF90IHBvbHk2NF90Owp0eXBlZGVmIF9fdWludDEyOF90IHBvbHkxMjhfdDsKI2Vsc2UKdHlwZWRlZiBpbnQ4X3QgcG9seThfdDsKdHlwZWRlZiBpbnQxNl90IHBvbHkxNl90Owp0eXBlZGVmIGludDY0X3QgcG9seTY0X3Q7CiNlbmRpZgp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSBpbnQ4X3QgaW50OHg4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgxNikpKSBpbnQ4X3QgaW50OHgxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoNCkpKSBpbnQxNl90IGludDE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDgpKSkgaW50MTZfdCBpbnQxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGludDMyX3QgaW50MzJ4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoNCkpKSBpbnQzMl90IGludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgaW50NjRfdCBpbnQ2NHgxX3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGludDY0X3QgaW50NjR4Ml90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSB1aW50OF90IHVpbnQ4eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDE2KSkpIHVpbnQ4X3QgdWludDh4MTZfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgdWludDE2X3QgdWludDE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDgpKSkgdWludDE2X3QgdWludDE2eDhfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDIpKSkgdWludDMyX3QgdWludDMyeDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgdWludDMyX3QgdWludDMyeDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgdWludDY0X3QgdWludDY0eDFfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDIpKSkgdWludDY0X3QgdWludDY0eDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgZmxvYXQxNl90IGZsb2F0MTZ4NF90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoOCkpKSBmbG9hdDE2X3QgZmxvYXQxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSgyKSkpIGZsb2F0MzJfdCBmbG9hdDMyeDJfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgZmxvYXQzMl90IGZsb2F0MzJ4NF90OwojaWZkZWYgX19hYXJjaDY0X18KdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDEpKSkgZmxvYXQ2NF90IGZsb2F0NjR4MV90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fdmVjdG9yX3R5cGUoMikpKSBmbG9hdDY0X3QgZmxvYXQ2NHgyX3Q7CiNlbmRpZgp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDgpKSkgcG9seThfdCBwb2x5OHg4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl9wb2x5dmVjdG9yX3R5cGUoMTYpKSkgcG9seThfdCBwb2x5OHgxNl90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDQpKSkgcG9seTE2X3QgcG9seTE2eDRfdDsKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3BvbHl2ZWN0b3JfdHlwZSg4KSkpIHBvbHkxNl90IHBvbHkxNng4X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl9wb2x5dmVjdG9yX3R5cGUoMSkpKSBwb2x5NjRfdCBwb2x5NjR4MV90Owp0eXBlZGVmIF9fYXR0cmlidXRlX18oKG5lb25fcG9seXZlY3Rvcl90eXBlKDIpKSkgcG9seTY0X3QgcG9seTY0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDh4OHgyX3QgewogIGludDh4OF90IHZhbFsyXTsKfSBpbnQ4eDh4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50OHgxNngyX3QgewogIGludDh4MTZfdCB2YWxbMl07Cn0gaW50OHgxNngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQxNng0eDJfdCB7CiAgaW50MTZ4NF90IHZhbFsyXTsKfSBpbnQxNng0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDE2eDh4Ml90IHsKICBpbnQxNng4X3QgdmFsWzJdOwp9IGludDE2eDh4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4MngyX3QgewogIGludDMyeDJfdCB2YWxbMl07Cn0gaW50MzJ4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQzMng0eDJfdCB7CiAgaW50MzJ4NF90IHZhbFsyXTsKfSBpbnQzMng0eDJfdDsKCnR5cGVkZWYgc3RydWN0IGludDY0eDF4Ml90IHsKICBpbnQ2NHgxX3QgdmFsWzJdOwp9IGludDY0eDF4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50NjR4MngyX3QgewogIGludDY0eDJfdCB2YWxbMl07Cn0gaW50NjR4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50OHg4eDJfdCB7CiAgdWludDh4OF90IHZhbFsyXTsKfSB1aW50OHg4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ4eDE2eDJfdCB7CiAgdWludDh4MTZfdCB2YWxbMl07Cn0gdWludDh4MTZ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDR4Ml90IHsKICB1aW50MTZ4NF90IHZhbFsyXTsKfSB1aW50MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MTZ4OHgyX3QgewogIHVpbnQxNng4X3QgdmFsWzJdOwp9IHVpbnQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQzMngyeDJfdCB7CiAgdWludDMyeDJfdCB2YWxbMl07Cn0gdWludDMyeDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDMyeDR4Ml90IHsKICB1aW50MzJ4NF90IHZhbFsyXTsKfSB1aW50MzJ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50NjR4MXgyX3QgewogIHVpbnQ2NHgxX3QgdmFsWzJdOwp9IHVpbnQ2NHgxeDJfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ2NHgyeDJfdCB7CiAgdWludDY0eDJfdCB2YWxbMl07Cn0gdWludDY0eDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQxNng0eDJfdCB7CiAgZmxvYXQxNng0X3QgdmFsWzJdOwp9IGZsb2F0MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDE2eDh4Ml90IHsKICBmbG9hdDE2eDhfdCB2YWxbMl07Cn0gZmxvYXQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MzJ4MngyX3QgewogIGZsb2F0MzJ4Ml90IHZhbFsyXTsKfSBmbG9hdDMyeDJ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQzMng0eDJfdCB7CiAgZmxvYXQzMng0X3QgdmFsWzJdOwp9IGZsb2F0MzJ4NHgyX3Q7CgojaWZkZWYgX19hYXJjaDY0X18KdHlwZWRlZiBzdHJ1Y3QgZmxvYXQ2NHgxeDJfdCB7CiAgZmxvYXQ2NHgxX3QgdmFsWzJdOwp9IGZsb2F0NjR4MXgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDY0eDJ4Ml90IHsKICBmbG9hdDY0eDJfdCB2YWxbMl07Cn0gZmxvYXQ2NHgyeDJfdDsKCiNlbmRpZgp0eXBlZGVmIHN0cnVjdCBwb2x5OHg4eDJfdCB7CiAgcG9seTh4OF90IHZhbFsyXTsKfSBwb2x5OHg4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk4eDE2eDJfdCB7CiAgcG9seTh4MTZfdCB2YWxbMl07Cn0gcG9seTh4MTZ4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTE2eDR4Ml90IHsKICBwb2x5MTZ4NF90IHZhbFsyXTsKfSBwb2x5MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4OHgyX3QgewogIHBvbHkxNng4X3QgdmFsWzJdOwp9IHBvbHkxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk2NHgxeDJfdCB7CiAgcG9seTY0eDFfdCB2YWxbMl07Cn0gcG9seTY0eDF4Ml90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDJ4Ml90IHsKICBwb2x5NjR4Ml90IHZhbFsyXTsKfSBwb2x5NjR4MngyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ4eDh4M190IHsKICBpbnQ4eDhfdCB2YWxbM107Cn0gaW50OHg4eDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDh4MTZ4M190IHsKICBpbnQ4eDE2X3QgdmFsWzNdOwp9IGludDh4MTZ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MTZ4NHgzX3QgewogIGludDE2eDRfdCB2YWxbM107Cn0gaW50MTZ4NHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQxNng4eDNfdCB7CiAgaW50MTZ4OF90IHZhbFszXTsKfSBpbnQxNng4eDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDMyeDJ4M190IHsKICBpbnQzMngyX3QgdmFsWzNdOwp9IGludDMyeDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MzJ4NHgzX3QgewogIGludDMyeDRfdCB2YWxbM107Cn0gaW50MzJ4NHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ2NHgxeDNfdCB7CiAgaW50NjR4MV90IHZhbFszXTsKfSBpbnQ2NHgxeDNfdDsKCnR5cGVkZWYgc3RydWN0IGludDY0eDJ4M190IHsKICBpbnQ2NHgyX3QgdmFsWzNdOwp9IGludDY0eDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDh4OHgzX3QgewogIHVpbnQ4eDhfdCB2YWxbM107Cn0gdWludDh4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50OHgxNngzX3QgewogIHVpbnQ4eDE2X3QgdmFsWzNdOwp9IHVpbnQ4eDE2eDNfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQxNng0eDNfdCB7CiAgdWludDE2eDRfdCB2YWxbM107Cn0gdWludDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDE2eDh4M190IHsKICB1aW50MTZ4OF90IHZhbFszXTsKfSB1aW50MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MzJ4MngzX3QgewogIHVpbnQzMngyX3QgdmFsWzNdOwp9IHVpbnQzMngyeDNfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQzMng0eDNfdCB7CiAgdWludDMyeDRfdCB2YWxbM107Cn0gdWludDMyeDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDF4M190IHsKICB1aW50NjR4MV90IHZhbFszXTsKfSB1aW50NjR4MXgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50NjR4MngzX3QgewogIHVpbnQ2NHgyX3QgdmFsWzNdOwp9IHVpbnQ2NHgyeDNfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MTZ4NHgzX3QgewogIGZsb2F0MTZ4NF90IHZhbFszXTsKfSBmbG9hdDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQxNng4eDNfdCB7CiAgZmxvYXQxNng4X3QgdmFsWzNdOwp9IGZsb2F0MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDJ4M190IHsKICBmbG9hdDMyeDJfdCB2YWxbM107Cn0gZmxvYXQzMngyeDNfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MzJ4NHgzX3QgewogIGZsb2F0MzJ4NF90IHZhbFszXTsKfSBmbG9hdDMyeDR4M190OwoKI2lmZGVmIF9fYWFyY2g2NF9fCnR5cGVkZWYgc3RydWN0IGZsb2F0NjR4MXgzX3QgewogIGZsb2F0NjR4MV90IHZhbFszXTsKfSBmbG9hdDY0eDF4M190OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQ2NHgyeDNfdCB7CiAgZmxvYXQ2NHgyX3QgdmFsWzNdOwp9IGZsb2F0NjR4MngzX3Q7CgojZW5kaWYKdHlwZWRlZiBzdHJ1Y3QgcG9seTh4OHgzX3QgewogIHBvbHk4eDhfdCB2YWxbM107Cn0gcG9seTh4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5OHgxNngzX3QgewogIHBvbHk4eDE2X3QgdmFsWzNdOwp9IHBvbHk4eDE2eDNfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHkxNng0eDNfdCB7CiAgcG9seTE2eDRfdCB2YWxbM107Cn0gcG9seTE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTE2eDh4M190IHsKICBwb2x5MTZ4OF90IHZhbFszXTsKfSBwb2x5MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5NjR4MXgzX3QgewogIHBvbHk2NHgxX3QgdmFsWzNdOwp9IHBvbHk2NHgxeDNfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHk2NHgyeDNfdCB7CiAgcG9seTY0eDJfdCB2YWxbM107Cn0gcG9seTY0eDJ4M190OwoKdHlwZWRlZiBzdHJ1Y3QgaW50OHg4eDRfdCB7CiAgaW50OHg4X3QgdmFsWzRdOwp9IGludDh4OHg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ4eDE2eDRfdCB7CiAgaW50OHgxNl90IHZhbFs0XTsKfSBpbnQ4eDE2eDRfdDsKCnR5cGVkZWYgc3RydWN0IGludDE2eDR4NF90IHsKICBpbnQxNng0X3QgdmFsWzRdOwp9IGludDE2eDR4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50MTZ4OHg0X3QgewogIGludDE2eDhfdCB2YWxbNF07Cn0gaW50MTZ4OHg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQzMngyeDRfdCB7CiAgaW50MzJ4Ml90IHZhbFs0XTsKfSBpbnQzMngyeDRfdDsKCnR5cGVkZWYgc3RydWN0IGludDMyeDR4NF90IHsKICBpbnQzMng0X3QgdmFsWzRdOwp9IGludDMyeDR4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgaW50NjR4MXg0X3QgewogIGludDY0eDFfdCB2YWxbNF07Cn0gaW50NjR4MXg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBpbnQ2NHgyeDRfdCB7CiAgaW50NjR4Ml90IHZhbFs0XTsKfSBpbnQ2NHgyeDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ4eDh4NF90IHsKICB1aW50OHg4X3QgdmFsWzRdOwp9IHVpbnQ4eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDh4MTZ4NF90IHsKICB1aW50OHgxNl90IHZhbFs0XTsKfSB1aW50OHgxNng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MTZ4NHg0X3QgewogIHVpbnQxNng0X3QgdmFsWzRdOwp9IHVpbnQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQxNng4eDRfdCB7CiAgdWludDE2eDhfdCB2YWxbNF07Cn0gdWludDE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDMyeDJ4NF90IHsKICB1aW50MzJ4Ml90IHZhbFs0XTsKfSB1aW50MzJ4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCB1aW50MzJ4NHg0X3QgewogIHVpbnQzMng0X3QgdmFsWzRdOwp9IHVpbnQzMng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHVpbnQ2NHgxeDRfdCB7CiAgdWludDY0eDFfdCB2YWxbNF07Cn0gdWludDY0eDF4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgdWludDY0eDJ4NF90IHsKICB1aW50NjR4Ml90IHZhbFs0XTsKfSB1aW50NjR4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDE2eDR4NF90IHsKICBmbG9hdDE2eDRfdCB2YWxbNF07Cn0gZmxvYXQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0MTZ4OHg0X3QgewogIGZsb2F0MTZ4OF90IHZhbFs0XTsKfSBmbG9hdDE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgZmxvYXQzMngyeDRfdCB7CiAgZmxvYXQzMngyX3QgdmFsWzRdOwp9IGZsb2F0MzJ4Mng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBmbG9hdDMyeDR4NF90IHsKICBmbG9hdDMyeDRfdCB2YWxbNF07Cn0gZmxvYXQzMng0eDRfdDsKCiNpZmRlZiBfX2FhcmNoNjRfXwp0eXBlZGVmIHN0cnVjdCBmbG9hdDY0eDF4NF90IHsKICBmbG9hdDY0eDFfdCB2YWxbNF07Cn0gZmxvYXQ2NHgxeDRfdDsKCnR5cGVkZWYgc3RydWN0IGZsb2F0NjR4Mng0X3QgewogIGZsb2F0NjR4Ml90IHZhbFs0XTsKfSBmbG9hdDY0eDJ4NF90OwoKI2VuZGlmCnR5cGVkZWYgc3RydWN0IHBvbHk4eDh4NF90IHsKICBwb2x5OHg4X3QgdmFsWzRdOwp9IHBvbHk4eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTh4MTZ4NF90IHsKICBwb2x5OHgxNl90IHZhbFs0XTsKfSBwb2x5OHgxNng0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5MTZ4NHg0X3QgewogIHBvbHkxNng0X3QgdmFsWzRdOwp9IHBvbHkxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IHBvbHkxNng4eDRfdCB7CiAgcG9seTE2eDhfdCB2YWxbNF07Cn0gcG9seTE2eDh4NF90OwoKdHlwZWRlZiBzdHJ1Y3QgcG9seTY0eDF4NF90IHsKICBwb2x5NjR4MV90IHZhbFs0XTsKfSBwb2x5NjR4MXg0X3Q7Cgp0eXBlZGVmIHN0cnVjdCBwb2x5NjR4Mng0X3QgewogIHBvbHk2NHgyX3QgdmFsWzRdOwp9IHBvbHk2NHgyeDRfdDsKCiNpZmRlZiBfX0FSTV9GRUFUVVJFX0JGMTYKdHlwZWRlZiBfX2F0dHJpYnV0ZV9fKChuZW9uX3ZlY3Rvcl90eXBlKDQpKSkgYmZsb2F0MTZfdCBiZmxvYXQxNng0X3Q7CnR5cGVkZWYgX19hdHRyaWJ1dGVfXygobmVvbl92ZWN0b3JfdHlwZSg4KSkpIGJmbG9hdDE2X3QgYmZsb2F0MTZ4OF90OwoKdHlwZWRlZiBzdHJ1Y3QgYmZsb2F0MTZ4NHgyX3QgewogIGJmbG9hdDE2eDRfdCB2YWxbMl07Cn0gYmZsb2F0MTZ4NHgyX3Q7Cgp0eXBlZGVmIHN0cnVjdCBiZmxvYXQxNng4eDJfdCB7CiAgYmZsb2F0MTZ4OF90IHZhbFsyXTsKfSBiZmxvYXQxNng4eDJfdDsKCnR5cGVkZWYgc3RydWN0IGJmbG9hdDE2eDR4M190IHsKICBiZmxvYXQxNng0X3QgdmFsWzNdOwp9IGJmbG9hdDE2eDR4M190OwoKdHlwZWRlZiBzdHJ1Y3QgYmZsb2F0MTZ4OHgzX3QgewogIGJmbG9hdDE2eDhfdCB2YWxbM107Cn0gYmZsb2F0MTZ4OHgzX3Q7Cgp0eXBlZGVmIHN0cnVjdCBiZmxvYXQxNng0eDRfdCB7CiAgYmZsb2F0MTZ4NF90IHZhbFs0XTsKfSBiZmxvYXQxNng0eDRfdDsKCnR5cGVkZWYgc3RydWN0IGJmbG9hdDE2eDh4NF90IHsKICBiZmxvYXQxNng4X3QgdmFsWzRdOwp9IGJmbG9hdDE2eDh4NF90OwoKI2VuZGlmCgojZGVmaW5lIF9fYWkgc3RhdGljIF9faW5saW5lX18gX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSBzcGxhdF9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgNSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSBzcGxhdF9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgc3BsYXRfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCA5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHNwbGF0X2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lcV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRxX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgc3BsYXRfbGFuZXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdF9sYW5lcV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmFiZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhYmRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCBfX25vc3dhcF92YWJkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFiZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3ZhYmRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFiZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWJkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZhYmRxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJkcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhYmRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IF9fbm9zd2FwX3ZhYmRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2YWJkcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmFiZHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhYmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhYmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92YWJkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdmFiZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmFiZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZhYmRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmFiZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWJkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFiZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZhYmRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWJkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFiZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZhYmRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFiZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZhYmRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IF9fbm9zd2FwX3ZhYmRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2YWJkX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhYmRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmFiZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZhYmRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdmFiZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmFiZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZhYmRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWJkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZhYmRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhYnNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmFic3FfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YWJzcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJzcV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJzcV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmFic19mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhYnNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmFic19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YWJzX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWJzX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZhYnNfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2YWRkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWRkcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YWRkcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmFkZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmFkZF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2YWRkX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWRkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFkZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmFkZF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmFkZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2YWRkX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2YWRkX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHBvbHk2NHgxX3QgdmFkZF9wNjQocG9seTY0eDFfdCBfX3AwLCBwb2x5NjR4MV90IF9fcDEpIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDYpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZhZGRfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZhZGRfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZhZGRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2YWRkcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmFkZHFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2YWRkcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZhZGRxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmFkZHFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YWRkaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFkZGhuX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWRkaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFkZGhuX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZhZGRobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YWRkaG5fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWRkaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2YWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmFkZGhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92YWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2YWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFkZGhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92YWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2YW5kcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhbmRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFuZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFuZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFuZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFuZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFuZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFuZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YW5kcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmFuZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YW5kcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhbmRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhbmRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFuZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmFuZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YW5kcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2YW5kX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YW5kX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZhbmRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmFuZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZhbmRfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZhbmRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFuZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmFuZF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2YW5kX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhbmRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YW5kX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmFuZF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YW5kX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmFuZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmJpY3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmJpY3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmJpY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZiaWNxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YmljcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmJpY3FfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZiaWNxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YmljcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YmljcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZiaWNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZiaWNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZiaWNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YmljcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2YmljcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmJpY3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmJpY3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZiaWNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YmljX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YmljX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2YmljX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZiaWNfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YmljX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2YmljX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICYgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmJpY19zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICYgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmJpY19zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmJpY19zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAmIH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YmljX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAmIH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZiaWNfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZiaWNfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgJiB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmJpY19zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgJiB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdmJzbF9wOCh1aW50OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEsIHBvbHk4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2YnNsX3A4KHVpbnQ4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSwgcG9seTh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmJzbF9wMTYodWludDE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEsIHBvbHkxNng0X3QgX19wMikgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdmJzbF9wMTYodWludDE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEsIHBvbHkxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZic2xxX3A4KHVpbnQ4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCBwb2x5OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdmJzbHFfcDgodWludDh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEsIHBvbHk4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdmJzbHFfcDE2KHVpbnQxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxLCBwb2x5MTZ4OF90IF9fcDIpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmJzbHFfcDE2KHVpbnQxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxLCBwb2x5MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZic2xxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmJzbHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmJzbHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmJzbHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZic2xxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZic2xxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YnNscV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YnNscV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YnNscV9zOCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2YnNscV9zOCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmJzbHFfZjMyKHVpbnQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YnNscV9mMzIodWludDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YnNscV9zMzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmJzbHFfczMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmJzbHFfczY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEsIGludDY0eDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZic2xxX3M2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZic2xxX3MxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YnNscV9zMTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2YnNsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YnNsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZic2xfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2YnNsX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmJzbF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEsIHVpbnQ2NHgxX3QgX19wMikgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2YnNsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmJzbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmJzbF9zOCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmJzbF9zOCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2YnNsX2YzMih1aW50MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZic2xfZjMyKHVpbnQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZic2xfczMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2YnNsX3MzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZic2xfczY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEsIGludDY0eDFfdCBfX3AyKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmJzbF9zMTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZic2xfczE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2FnZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2FnZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjYWdlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FnZV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNhZ2VfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjYWd0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjYWd0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNhZ3RfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWd0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2FndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhZ3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNhbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNhbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2FsZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhbGVfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjYWxlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2FsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2FsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjYWx0X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FsdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNhbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNlcV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2VxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNlcXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNlcXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2VxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2VxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2VxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2VxcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZXFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2VxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZXFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2VxX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2VxX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNlcV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNlcV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNlcV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZXFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZXFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2VxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2VxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNnZXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2dlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ2VxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2VxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ2VxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2VxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZ2VxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZ2VxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2VxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNnZXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2dlcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNnZXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ2VfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNnZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZ2VfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ2VfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2dlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2dlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2dlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNnZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNnZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ2VfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ2VfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2d0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNndHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2d0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3RxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNndHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2d0cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2d0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNndHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ3RfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2d0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ3RfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2d0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2d0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZ3RfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPiBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ3RfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZ3RfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNndF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNsZXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPD0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2xlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbGVxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGVxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbGVxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbGVxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2xlcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbGVxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2xlcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNsZXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2xlcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNsZXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbGVfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNsZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbGVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbGVfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2xlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2xlX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2xlX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA8PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjbGVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbGVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZjbHNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbHNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsc3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNsc3FfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjbHNxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjbHNxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y2xzcV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2Y2xzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbHNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjbHNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjbHNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y2xzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzcV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y2xzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsc3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y2xzX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmNsc191OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmNsc191MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmNsc191MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y2xzX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y2xzX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmNsc19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmNsc19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHNfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZjbHNfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmNsc19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsc192KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmNsc19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y2xzX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xzX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNsdHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbHRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2x0cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsdHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNsdHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbHRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2x0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNsdF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsdF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNsdF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2x0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2x0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbHpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2x6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsenFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHpxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHpxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x6cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZjbHpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmNsenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNsenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsenFfdigoaW50OHgxNl90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmNsenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjbHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpxX3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZjbHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6cV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2x6X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjbHpfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2x6X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNsel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsel91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHpfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y2x6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2Y2x6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsel92KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmNsel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Y2x6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x6X3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y2x6X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjbHpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHpfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZjbnRfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcDAsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2Y250X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRfdigoaW50OHg4X3QpX19yZXYwLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2Y250cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3AwLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2Y250cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmNudHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbnRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNudHFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjbnRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y250cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2Y250cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZjbnRxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbnRxX3YoKGludDh4MTZfdClfX3JldjAsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbnRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNudF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y250X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2Y250X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNudF92KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2Y250X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNudF92KChpbnQ4eDhfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZjb21iaW5lX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZjb21iaW5lX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2Y29tYmluZV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2Y29tYmluZV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y29tYmluZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y29tYmluZV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgX19ub3N3YXBfdmNvbWJpbmVfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgX19ub3N3YXBfdmNvbWJpbmVfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNvbWJpbmVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNvbWJpbmVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmNvbWJpbmVfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2Y29tYmluZV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgX19ub3N3YXBfdmNvbWJpbmVfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjb21iaW5lX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y29tYmluZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDEsIDIsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Y29tYmluZV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmNvbWJpbmVfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjb21iaW5lX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmNvbWJpbmVfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y29tYmluZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92Y29tYmluZV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjb21iaW5lX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmNvbWJpbmVfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmNvbWJpbmVfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y29tYmluZV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92Y29tYmluZV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Y3JlYXRlX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAodWludDh4OF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKGludDh4OF90KShfX3Byb21vdGUpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3JlYXRlX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjcmVhdGVfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIHVpbnQ2NF90IF9fcHJvbW90ZSA9IF9fcDA7IFwKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mMzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRxX2YzMl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjMyX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dHFfZjMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjMyX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y3Z0X2YzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9mMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmN2dF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX2YzMl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjMyX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mMzJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YzMl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl9mMzJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dF9uX2YzMl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0X25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjMyX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fczMyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfbl9zMzJfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dHFfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX3MzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zMzJfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zMzJfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl91MzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTMyX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fdTMyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTMyX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX3UzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9uX3UzMl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl91MzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dF9uX3UzMl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjdnRxX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zMzJfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmN2dF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3MzMl92KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmN2dF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRxX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHFfdTMyX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y3Z0cV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3UzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmN2dF91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3UzMl92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX3A4KF9fcDBfMCwgX19wMV8wKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8wID0gX19wMF8wOyBcCiAgcG9seTh4OF90IF9fcmV0XzA7IFwKICBfX3JldF8wID0gc3BsYXRfbGFuZV9wOChfX3MwXzAsIF9fcDFfMCk7IFwKICBfX3JldF8wOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3A4KF9fcDBfMSwgX19wMV8xKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8xID0gX19wMF8xOyBcCiAgcG9seTh4OF90IF9fcmV2MF8xOyAgX19yZXYwXzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEsIF9fczBfMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXRfMTsgXAogIF9fcmV0XzEgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3A4KF9fcmV2MF8xLCBfX3AxXzEpOyBcCiAgX19yZXRfMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEsIF9fcmV0XzEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9wMTYoX19wMF8yLCBfX3AxXzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF8yID0gX19wMF8yOyBcCiAgcG9seTE2eDRfdCBfX3JldF8yOyBcCiAgX19yZXRfMiA9IHNwbGF0X2xhbmVfcDE2KF9fczBfMiwgX19wMV8yKTsgXAogIF9fcmV0XzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfcDE2KF9fcDBfMywgX19wMV8zKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfMyA9IF9fcDBfMzsgXAogIHBvbHkxNng0X3QgX19yZXYwXzM7ICBfX3JldjBfMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMywgX19zMF8zLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXRfMzsgXAogIF9fcmV0XzMgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3AxNihfX3JldjBfMywgX19wMV8zKTsgXAogIF9fcmV0XzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zLCBfX3JldF8zLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3A4KF9fcDBfNCwgX19wMV80KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF80ID0gX19wMF80OyBcCiAgcG9seTh4MTZfdCBfX3JldF80OyBcCiAgX19yZXRfNCA9IHNwbGF0cV9sYW5lX3A4KF9fczBfNCwgX19wMV80KTsgXAogIF9fcmV0XzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3A4KF9fcDBfNSwgX19wMV81KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF81ID0gX19wMF81OyBcCiAgcG9seTh4OF90IF9fcmV2MF81OyAgX19yZXYwXzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUsIF9fczBfNSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0XzU7IFwKICBfX3JldF81ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfcDgoX19yZXYwXzUsIF9fcDFfNSk7IFwKICBfX3JldF81ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNSwgX19yZXRfNSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9wMTYoX19wMF82LCBfX3AxXzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF82ID0gX19wMF82OyBcCiAgcG9seTE2eDhfdCBfX3JldF82OyBcCiAgX19yZXRfNiA9IHNwbGF0cV9sYW5lX3AxNihfX3MwXzYsIF9fcDFfNik7IFwKICBfX3JldF82OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9wMTYoX19wMF83LCBfX3AxXzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF83ID0gX19wMF83OyBcCiAgcG9seTE2eDRfdCBfX3JldjBfNzsgIF9fcmV2MF83ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83LCBfX3MwXzcsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldF83OyBcCiAgX19yZXRfNyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX3AxNihfX3JldjBfNywgX19wMV83KTsgXAogIF9fcmV0XzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83LCBfX3JldF83LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3U4KF9fcDBfOCwgX19wMV84KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF84ID0gX19wMF84OyBcCiAgdWludDh4MTZfdCBfX3JldF84OyBcCiAgX19yZXRfOCA9IHNwbGF0cV9sYW5lX3U4KF9fczBfOCwgX19wMV84KTsgXAogIF9fcmV0Xzg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3U4KF9fcDBfOSwgX19wMV85KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF85ID0gX19wMF85OyBcCiAgdWludDh4OF90IF9fcmV2MF85OyAgX19yZXYwXzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzksIF9fczBfOSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzk7IFwKICBfX3JldF85ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfdTgoX19yZXYwXzksIF9fcDFfOSk7IFwKICBfX3JldF85ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOSwgX19yZXRfOSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF85OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91MzIoX19wMF8xMCwgX19wMV8xMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzEwID0gX19wMF8xMDsgXAogIHVpbnQzMng0X3QgX19yZXRfMTA7IFwKICBfX3JldF8xMCA9IHNwbGF0cV9sYW5lX3UzMihfX3MwXzEwLCBfX3AxXzEwKTsgXAogIF9fcmV0XzEwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91MzIoX19wMF8xMSwgX19wMV8xMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzExID0gX19wMF8xMTsgXAogIHVpbnQzMngyX3QgX19yZXYwXzExOyAgX19yZXYwXzExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMSwgX19zMF8xMSwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzExOyBcCiAgX19yZXRfMTEgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoX19yZXYwXzExLCBfX3AxXzExKTsgXAogIF9fcmV0XzExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTEsIF9fcmV0XzExLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzExOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91NjQoX19wMF8xMiwgX19wMV8xMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzEyID0gX19wMF8xMjsgXAogIHVpbnQ2NHgyX3QgX19yZXRfMTI7IFwKICBfX3JldF8xMiA9IHNwbGF0cV9sYW5lX3U2NChfX3MwXzEyLCBfX3AxXzEyKTsgXAogIF9fcmV0XzEyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91NjQoX19wMF8xMywgX19wMV8xMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzEzID0gX19wMF8xMzsgXAogIHVpbnQ2NHgyX3QgX19yZXRfMTM7IFwKICBfX3JldF8xMyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX3U2NChfX3MwXzEzLCBfX3AxXzEzKTsgXAogIF9fcmV0XzEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTMsIF9fcmV0XzEzLCAxLCAwKTsgXAogIF9fcmV0XzEzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV91MTYoX19wMF8xNCwgX19wMV8xNCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzE0ID0gX19wMF8xNDsgXAogIHVpbnQxNng4X3QgX19yZXRfMTQ7IFwKICBfX3JldF8xNCA9IHNwbGF0cV9sYW5lX3UxNihfX3MwXzE0LCBfX3AxXzE0KTsgXAogIF9fcmV0XzE0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV91MTYoX19wMF8xNSwgX19wMV8xNSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzE1ID0gX19wMF8xNTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzE1OyAgX19yZXYwXzE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNSwgX19zMF8xNSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzE1OyBcCiAgX19yZXRfMTUgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MTYoX19yZXYwXzE1LCBfX3AxXzE1KTsgXAogIF9fcmV0XzE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTUsIF9fcmV0XzE1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9zOChfX3AwXzE2LCBfX3AxXzE2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzE2ID0gX19wMF8xNjsgXAogIGludDh4MTZfdCBfX3JldF8xNjsgXAogIF9fcmV0XzE2ID0gc3BsYXRxX2xhbmVfczgoX19zMF8xNiwgX19wMV8xNik7IFwKICBfX3JldF8xNjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfczgoX19wMF8xNywgX19wMV8xNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8xNyA9IF9fcDBfMTc7IFwKICBpbnQ4eDhfdCBfX3JldjBfMTc7ICBfX3JldjBfMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE3LCBfX3MwXzE3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF8xNzsgXAogIF9fcmV0XzE3ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfczgoX19yZXYwXzE3LCBfX3AxXzE3KTsgXAogIF9fcmV0XzE3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTcsIF9fcmV0XzE3LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9mMzIoX19wMF8xOCwgX19wMV8xOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xOCA9IF9fcDBfMTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODsgXAogIF9fcmV0XzE4ID0gc3BsYXRxX2xhbmVfZjMyKF9fczBfMTgsIF9fcDFfMTgpOyBcCiAgX19yZXRfMTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2YzMihfX3AwXzE5LCBfX3AxXzE5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5ID0gX19wMF8xOTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTsgIF9fcmV2MF8xOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTksIF9fczBfMTksIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTk7IFwKICBfX3JldF8xOSA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3JldjBfMTksIF9fcDFfMTkpOyBcCiAgX19yZXRfMTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xOSwgX19yZXRfMTksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3MzMihfX3AwXzIwLCBfX3AxXzIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yMCA9IF9fcDBfMjA7IFwKICBpbnQzMng0X3QgX19yZXRfMjA7IFwKICBfX3JldF8yMCA9IHNwbGF0cV9sYW5lX3MzMihfX3MwXzIwLCBfX3AxXzIwKTsgXAogIF9fcmV0XzIwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9zMzIoX19wMF8yMSwgX19wMV8yMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMjEgPSBfX3AwXzIxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8yMTsgIF9fcmV2MF8yMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjEsIF9fczBfMjEsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzIxOyBcCiAgX19yZXRfMjEgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYwXzIxLCBfX3AxXzIxKTsgXAogIF9fcmV0XzIxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjEsIF9fcmV0XzIxLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9zNjQoX19wMF8yMiwgX19wMV8yMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMjIgPSBfX3AwXzIyOyBcCiAgaW50NjR4Ml90IF9fcmV0XzIyOyBcCiAgX19yZXRfMjIgPSBzcGxhdHFfbGFuZV9zNjQoX19zMF8yMiwgX19wMV8yMik7IFwKICBfX3JldF8yMjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfczY0KF9fcDBfMjMsIF9fcDFfMjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwXzIzID0gX19wMF8yMzsgXAogIGludDY0eDJfdCBfX3JldF8yMzsgXAogIF9fcmV0XzIzID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfczY0KF9fczBfMjMsIF9fcDFfMjMpOyBcCiAgX19yZXRfMjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMywgX19yZXRfMjMsIDEsIDApOyBcCiAgX19yZXRfMjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3MxNihfX3AwXzI0LCBfX3AxXzI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8yNCA9IF9fcDBfMjQ7IFwKICBpbnQxNng4X3QgX19yZXRfMjQ7IFwKICBfX3JldF8yNCA9IHNwbGF0cV9sYW5lX3MxNihfX3MwXzI0LCBfX3AxXzI0KTsgXAogIF9fcmV0XzI0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZV9zMTYoX19wMF8yNSwgX19wMV8yNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMjUgPSBfX3AwXzI1OyBcCiAgaW50MTZ4NF90IF9fcmV2MF8yNTsgIF9fcmV2MF8yNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjUsIF9fczBfMjUsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzI1OyBcCiAgX19yZXRfMjUgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYwXzI1LCBfX3AxXzI1KTsgXAogIF9fcmV0XzI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjUsIF9fcmV0XzI1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX3U4KF9fcDBfMjYsIF9fcDFfMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzI2ID0gX19wMF8yNjsgXAogIHVpbnQ4eDhfdCBfX3JldF8yNjsgXAogIF9fcmV0XzI2ID0gc3BsYXRfbGFuZV91OChfX3MwXzI2LCBfX3AxXzI2KTsgXAogIF9fcmV0XzI2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3U4KF9fcDBfMjcsIF9fcDFfMjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzI3ID0gX19wMF8yNzsgXAogIHVpbnQ4eDhfdCBfX3JldjBfMjc7ICBfX3JldjBfMjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI3LCBfX3MwXzI3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldF8yNzsgXAogIF9fcmV0XzI3ID0gX19ub3N3YXBfc3BsYXRfbGFuZV91OChfX3JldjBfMjcsIF9fcDFfMjcpOyBcCiAgX19yZXRfMjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNywgX19yZXRfMjcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfdTMyKF9fcDBfMjgsIF9fcDFfMjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF8yOCA9IF9fcDBfMjg7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI4OyBcCiAgX19yZXRfMjggPSBzcGxhdF9sYW5lX3UzMihfX3MwXzI4LCBfX3AxXzI4KTsgXAogIF9fcmV0XzI4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3UzMihfX3AwXzI5LCBfX3AxXzI5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjkgPSBfX3AwXzI5OyBcCiAgdWludDMyeDJfdCBfX3JldjBfMjk7ICBfX3JldjBfMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5LCBfX3MwXzI5LCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfMjk7IFwKICBfX3JldF8yOSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2MF8yOSwgX19wMV8yOSk7IFwKICBfX3JldF8yOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5LCBfX3JldF8yOSwgMSwgMCk7IFwKICBfX3JldF8yOTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmR1cF9sYW5lX3U2NChfX3AwXzMwLCBfX3AxXzMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczBfMzAgPSBfX3AwXzMwOyBcCiAgdWludDY0eDFfdCBfX3JldF8zMDsgXAogIF9fcmV0XzMwID0gc3BsYXRfbGFuZV91NjQoX19zMF8zMCwgX19wMV8zMCk7IFwKICBfX3JldF8zMDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfdTE2KF9fcDBfMzEsIF9fcDFfMzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8zMSA9IF9fcDBfMzE7IFwKICB1aW50MTZ4NF90IF9fcmV0XzMxOyBcCiAgX19yZXRfMzEgPSBzcGxhdF9sYW5lX3UxNihfX3MwXzMxLCBfX3AxXzMxKTsgXAogIF9fcmV0XzMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3UxNihfX3AwXzMyLCBfX3AxXzMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfMzIgPSBfX3AwXzMyOyBcCiAgdWludDE2eDRfdCBfX3JldjBfMzI7ICBfX3JldjBfMzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyLCBfX3MwXzMyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXRfMzI7IFwKICBfX3JldF8zMiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2MF8zMiwgX19wMV8zMik7IFwKICBfX3JldF8zMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyLCBfX3JldF8zMiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9zOChfX3AwXzMzLCBfX3AxXzMzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzMzID0gX19wMF8zMzsgXAogIGludDh4OF90IF9fcmV0XzMzOyBcCiAgX19yZXRfMzMgPSBzcGxhdF9sYW5lX3M4KF9fczBfMzMsIF9fcDFfMzMpOyBcCiAgX19yZXRfMzM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfczgoX19wMF8zNCwgX19wMV8zNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8zNCA9IF9fcDBfMzQ7IFwKICBpbnQ4eDhfdCBfX3JldjBfMzQ7ICBfX3JldjBfMzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM0LCBfX3MwXzM0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0XzM0OyBcCiAgX19yZXRfMzQgPSBfX25vc3dhcF9zcGxhdF9sYW5lX3M4KF9fcmV2MF8zNCwgX19wMV8zNCk7IFwKICBfX3JldF8zNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM0LCBfX3JldF8zNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9mMzIoX19wMF8zNSwgX19wMV8zNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNSA9IF9fcDBfMzU7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8zNTsgXAogIF9fcmV0XzM1ID0gc3BsYXRfbGFuZV9mMzIoX19zMF8zNSwgX19wMV8zNSk7IFwKICBfX3JldF8zNTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZV9mMzIoX19wMF8zNiwgX19wMV8zNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNiA9IF9fcDBfMzY7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMzY7ICBfX3JldjBfMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2LCBfX3MwXzM2LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzM2OyBcCiAgX19yZXRfMzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjBfMzYsIF9fcDFfMzYpOyBcCiAgX19yZXRfMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNiwgX19yZXRfMzYsIDEsIDApOyBcCiAgX19yZXRfMzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfczMyKF9fcDBfMzcsIF9fcDFfMzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzM3ID0gX19wMF8zNzsgXAogIGludDMyeDJfdCBfX3JldF8zNzsgXAogIF9fcmV0XzM3ID0gc3BsYXRfbGFuZV9zMzIoX19zMF8zNywgX19wMV8zNyk7IFwKICBfX3JldF8zNzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZV9zMzIoX19wMF8zOCwgX19wMV8zOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzggPSBfX3AwXzM4OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zODsgIF9fcmV2MF8zOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzgsIF9fczBfMzgsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzM4OyBcCiAgX19yZXRfMzggPSBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjBfMzgsIF9fcDFfMzgpOyBcCiAgX19yZXRfMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zOCwgX19yZXRfMzgsIDEsIDApOyBcCiAgX19yZXRfMzg7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZkdXBfbGFuZV9zNjQoX19wMF8zOSwgX19wMV8zOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMzkgPSBfX3AwXzM5OyBcCiAgaW50NjR4MV90IF9fcmV0XzM5OyBcCiAgX19yZXRfMzkgPSBzcGxhdF9sYW5lX3M2NChfX3MwXzM5LCBfX3AxXzM5KTsgXAogIF9fcmV0XzM5OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZV9zMTYoX19wMF80MCwgX19wMV80MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNDAgPSBfX3AwXzQwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQwOyBcCiAgX19yZXRfNDAgPSBzcGxhdF9sYW5lX3MxNihfX3MwXzQwLCBfX3AxXzQwKTsgXAogIF9fcmV0XzQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX3MxNihfX3AwXzQxLCBfX3AxXzQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF80MSA9IF9fcDBfNDE7IFwKICBpbnQxNng0X3QgX19yZXYwXzQxOyAgX19yZXYwXzQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MSwgX19zMF80MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNDE7IFwKICBfX3JldF80MSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2MF80MSwgX19wMV80MSk7IFwKICBfX3JldF80MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQxLCBfX3JldF80MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2ZHVwX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2ZHVwX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZkdXBfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdmR1cF9uX3AxNihwb2x5MTZfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdmR1cHFfbl9wOChwb2x5OF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZkdXBxX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdmR1cHFfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdmR1cHFfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZkdXBxX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2ZHVwcV9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZkdXBxX25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZkdXBxX25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2ZHVwcV9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZHVwcV9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmR1cHFfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmR1cHFfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmR1cHFfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmR1cHFfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmR1cHFfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZkdXBxX25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2ZHVwcV9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZkdXBxX25fczMyKGludDMyX3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZkdXBxX25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmR1cHFfbl9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmR1cHFfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2ZHVwcV9uX3MxNihpbnQxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2ZHVwX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2ZHVwX25fdTgodWludDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZkdXBfbl91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmR1cF9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2ZHVwX25fdTY0KHVpbnQ2NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2ZHVwX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZkdXBfbl91MTYodWludDE2X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2ZHVwX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZkdXBfbl9zOChpbnQ4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZkdXBfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZkdXBfbl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2ZHVwX25fczMyKGludDMyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmR1cF9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZkdXBfbl9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkge19fcDB9OwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmR1cF9uX3MxNihpbnQxNl90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZkdXBfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZlb3JxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmVvcnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2ZW9ycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2ZW9ycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2ZW9ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZW9ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2ZW9ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2ZW9ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZlb3JxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2ZW9ycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZlb3JxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIF4gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmVvcnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmVvcnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2ZW9ycV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgXiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2ZW9ycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZlb3JxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZlb3JfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZlb3JfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgXiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmVvcl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2ZW9yX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmVvcl91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmVvcl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2ZW9yX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2ZW9yX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZlb3JfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmVvcl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCBeIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZlb3JfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIF4gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2ZW9yX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIF4gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZlb3JfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgXiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2ZW9yX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCBeIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHg4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dF9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRxX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0cV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0cV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZXh0X3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dF9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZleHRfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZleHRfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmV4dF92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0X3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZnZXRfaGlnaF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdmdldF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgX19ub3N3YXBfdmdldF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmdldF9oaWdoX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2Z2V0X2hpZ2hfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZnZXRfaGlnaF91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmdldF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdmdldF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmdldF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Z2V0X2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4MV90IHZnZXRfaGlnaF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgxX3QgdmdldF9oaWdoX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Z2V0X2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZnZXRfaGlnaF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZnZXRfaGlnaF9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmdldF9oaWdoX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92Z2V0X2hpZ2hfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZnZXRfaGlnaF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmdldF9oaWdoX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZnZXRfaGlnaF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmdldF9oaWdoX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Z2V0X2hpZ2hfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmdldF9oaWdoX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmdldF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Z2V0X2hpZ2hfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgxX3QgdmdldF9oaWdoX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2Z2V0X2hpZ2hfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmdldF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Z2V0X2hpZ2hfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgocG9seTh4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgocG9seTh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seThfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChwb2x5OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChwb2x5MTZ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChwb2x5OHgxNl90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKHBvbHk4eDE2X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKHBvbHk4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigocG9seTE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigocG9seTE2eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMTYoKHBvbHkxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pOCgoaW50OHgxNl90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTMyKChpbnQzMng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTMyKChpbnQzMng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kxNigoaW50MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k4KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTgoKGludDh4MTZfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfZjMyKChmbG9hdDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9mMzIoKGZsb2F0MzJ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2YzMigoZmxvYXQzMng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMzIoKGludDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChpbnQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9pMTYoKGludDE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldF9sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChpbnQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kxNigoaW50MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2k4KChpbnQ4eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldF9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2YzMigoZmxvYXQzMngyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2kzMigoaW50MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMzIoKGludDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChpbnQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRfbGFuZV9pMTYoKGludDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2Z2V0X2xvd19wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdmdldF9sb3dfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdmdldF9sb3dfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZnZXRfbG93X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Z2V0X2xvd191OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmdldF9sb3dfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmdldF9sb3dfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZnZXRfbG93X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgxX3QgdmdldF9sb3dfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZnZXRfbG93X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Z2V0X2xvd191MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmdldF9sb3dfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmdldF9sb3dfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZnZXRfbG93X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Z2V0X2xvd19mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmdldF9sb3dfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmdldF9sb3dfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDAsIDEsIDIsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZnZXRfbG93X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Z2V0X2xvd19zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmdldF9sb3dfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4MV90IHZnZXRfbG93X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2Z2V0X2xvd19zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Z2V0X2xvd19zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmdldF9sb3dfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAwLCAxLCAyLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2aGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2aGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2aGFkZHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmhhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2aGFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2aGFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2aGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZoYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZoYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmhhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2aGFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2aGFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2aGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2aGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmhhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmhhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmhzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmhzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmhzdWJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZoc3VicV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2aHN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmhzdWJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmhzdWJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZoc3VicV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmhzdWJxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2aHN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmhzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2aHN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZoc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92aHN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZoc3ViX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZoc3ViX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmhzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmhzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmhzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmhzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZoc3ViX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZoc3ViX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZoc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZoc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zoc3ViX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2aHN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmhzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2aHN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92aHN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX3YoX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3A4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfcDhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9wMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfcDE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wOF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wOF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91MzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3U2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91MTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mMzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2YzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91OF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91OF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91MzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV91NjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV91MTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3UxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczhfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3M4X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9mMzJfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2YzMl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczMyX3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9zNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfcDhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9wOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3AxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9wMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3AxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdThfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdThfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91NjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3UxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91MTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfczhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3U4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3U4X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3UzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdTMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3U2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3UxNl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdTE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zOF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfczhfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YzMl94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjMyX3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zMzJfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX3M2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9wOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3A4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfcDE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3AxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDhfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDhfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3AxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91OF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91OF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV91MzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfdTMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3U2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV91NjRfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfdTE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3UxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9zOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3M2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3M2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdThfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfdThfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91MzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfdTY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfdTE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV91MTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3M4X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9zOF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjMyX3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMzJfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3MzMl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfczY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX3MxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMl9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMl9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHVpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBpbnQzMngyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM191OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM191NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM191MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM19zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM192KCZfX3JldCwgX19wMCwgMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19kdXBfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3M4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQzX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDkpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQzX2R1cF9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIHVpbnQzMngyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIGludDMyeDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgNCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfcDE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3A4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2R1cF9wMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfcDgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9wOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZHVwX3AxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfdTgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91MzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF91MTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0OSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfczgoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDMyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX2YzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9zMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9zMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgMzMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF91OChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3U4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfdTMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3UzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDRfZHVwX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfdTE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX3UxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgMTcpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2R1cF9zOChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9mMzIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCA5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfZjMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfZHVwX3MzMihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfczMyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDRfZHVwX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfZHVwX3MxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfczE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCA1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDUwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQ5KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA0MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM0KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMyk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIHVpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE3KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBmbG9hdDMyeDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgaW50MzJ4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bWF4cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1heHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWF4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtYXhxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1heHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZtYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm1heHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1heHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWF4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bWF4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1heF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtYXhfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWF4X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtYXhfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1heF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtYXhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1heF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1heF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bWF4X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm1pbnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZtaW5xX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWlucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtaW5xX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1pbnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWlucV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1pbnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bWlucV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtaW5xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bWlucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bWluX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm1pbl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtaW5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWluX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2bWluX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm1pbl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1pbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWluX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtaW5fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtaW5fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWluX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bWxhcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZtbGFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2bWxhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bWxhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtbGFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1sYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxhcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bWxhX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtbGFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bWxhX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtbGFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZtbGFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1sYV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZtbGFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZtbGFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bWxhX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1sYV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1sYV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtbGFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZtbGFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVfdTMyKF9fcDBfNDIsIF9fcDFfNDIsIF9fcDJfNDIsIF9fcDNfNDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF80MiA9IF9fcDBfNDI7IFwKICB1aW50MzJ4NF90IF9fczFfNDIgPSBfX3AxXzQyOyBcCiAgdWludDMyeDJfdCBfX3MyXzQyID0gX19wMl80MjsgXAogIHVpbnQzMng0X3QgX19yZXRfNDI7IFwKICBfX3JldF80MiA9IF9fczBfNDIgKyBfX3MxXzQyICogc3BsYXRxX2xhbmVfdTMyKF9fczJfNDIsIF9fcDNfNDIpOyBcCiAgX19yZXRfNDI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lX3UzMihfX3AwXzQzLCBfX3AxXzQzLCBfX3AyXzQzLCBfX3AzXzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDMgPSBfX3AwXzQzOyBcCiAgdWludDMyeDRfdCBfX3MxXzQzID0gX19wMV80MzsgXAogIHVpbnQzMngyX3QgX19zMl80MyA9IF9fcDJfNDM7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80MzsgIF9fcmV2MF80MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDMsIF9fczBfNDMsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNDM7ICBfX3JldjFfNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzQzLCBfX3MxXzQzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzQzOyAgX19yZXYyXzQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MywgX19zMl80MywgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzQzOyBcCiAgX19yZXRfNDMgPSBfX3JldjBfNDMgKyBfX3JldjFfNDMgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoX19yZXYyXzQzLCBfX3AzXzQzKTsgXAogIF9fcmV0XzQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMsIF9fcmV0XzQzLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV91MTYoX19wMF80NCwgX19wMV80NCwgX19wMl80NCwgX19wM180NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzQ0ID0gX19wMF80NDsgXAogIHVpbnQxNng4X3QgX19zMV80NCA9IF9fcDFfNDQ7IFwKICB1aW50MTZ4NF90IF9fczJfNDQgPSBfX3AyXzQ0OyBcCiAgdWludDE2eDhfdCBfX3JldF80NDsgXAogIF9fcmV0XzQ0ID0gX19zMF80NCArIF9fczFfNDQgKiBzcGxhdHFfbGFuZV91MTYoX19zMl80NCwgX19wM180NCk7IFwKICBfX3JldF80NDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFxX2xhbmVfdTE2KF9fcDBfNDUsIF9fcDFfNDUsIF9fcDJfNDUsIF9fcDNfNDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NSA9IF9fcDBfNDU7IFwKICB1aW50MTZ4OF90IF9fczFfNDUgPSBfX3AxXzQ1OyBcCiAgdWludDE2eDRfdCBfX3MyXzQ1ID0gX19wMl80NTsgXAogIHVpbnQxNng4X3QgX19yZXYwXzQ1OyAgX19yZXYwXzQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NSwgX19zMF80NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV80NTsgIF9fcmV2MV80NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDUsIF9fczFfNDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjJfNDU7ICBfX3JldjJfNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQ1LCBfX3MyXzQ1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNDU7IFwKICBfX3JldF80NSA9IF9fcmV2MF80NSArIF9fcmV2MV80NSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3JldjJfNDUsIF9fcDNfNDUpOyBcCiAgX19yZXRfNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NSwgX19yZXRfNDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lX2YzMihfX3AwXzQ2LCBfX3AxXzQ2LCBfX3AyXzQ2LCBfX3AzXzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzQ2ID0gX19wMF80NjsgXAogIGZsb2F0MzJ4NF90IF9fczFfNDYgPSBfX3AxXzQ2OyBcCiAgZmxvYXQzMngyX3QgX19zMl80NiA9IF9fcDJfNDY7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80NjsgXAogIF9fcmV0XzQ2ID0gX19zMF80NiArIF9fczFfNDYgKiBzcGxhdHFfbGFuZV9mMzIoX19zMl80NiwgX19wM180Nik7IFwKICBfX3JldF80NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFxX2xhbmVfZjMyKF9fcDBfNDcsIF9fcDFfNDcsIF9fcDJfNDcsIF9fcDNfNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDcgPSBfX3AwXzQ3OyBcCiAgZmxvYXQzMng0X3QgX19zMV80NyA9IF9fcDFfNDc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzQ3ID0gX19wMl80NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80NzsgIF9fcmV2MF80NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcsIF9fczBfNDcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzQ3OyAgX19yZXYxXzQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV80NywgX19zMV80NywgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNDc7ICBfX3JldjJfNDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQ3LCBfX3MyXzQ3LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ3OyBcCiAgX19yZXRfNDcgPSBfX3JldjBfNDcgKyBfX3JldjFfNDcgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMzIoX19yZXYyXzQ3LCBfX3AzXzQ3KTsgXAogIF9fcmV0XzQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDcsIF9fcmV0XzQ3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV9zMzIoX19wMF80OCwgX19wMV80OCwgX19wMl80OCwgX19wM180OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNDggPSBfX3AwXzQ4OyBcCiAgaW50MzJ4NF90IF9fczFfNDggPSBfX3AxXzQ4OyBcCiAgaW50MzJ4Ml90IF9fczJfNDggPSBfX3AyXzQ4OyBcCiAgaW50MzJ4NF90IF9fcmV0XzQ4OyBcCiAgX19yZXRfNDggPSBfX3MwXzQ4ICsgX19zMV80OCAqIHNwbGF0cV9sYW5lX3MzMihfX3MyXzQ4LCBfX3AzXzQ4KTsgXAogIF9fcmV0XzQ4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZV9zMzIoX19wMF80OSwgX19wMV80OSwgX19wMl80OSwgX19wM180OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNDkgPSBfX3AwXzQ5OyBcCiAgaW50MzJ4NF90IF9fczFfNDkgPSBfX3AxXzQ5OyBcCiAgaW50MzJ4Ml90IF9fczJfNDkgPSBfX3AyXzQ5OyBcCiAgaW50MzJ4NF90IF9fcmV2MF80OTsgIF9fcmV2MF80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDksIF9fczBfNDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV80OTsgIF9fcmV2MV80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDksIF9fczFfNDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml80OTsgIF9fcmV2Ml80OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDksIF9fczJfNDksIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzQ5OyBcCiAgX19yZXRfNDkgPSBfX3JldjBfNDkgKyBfX3JldjFfNDkgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYyXzQ5LCBfX3AzXzQ5KTsgXAogIF9fcmV0XzQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDksIF9fcmV0XzQ5LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZV9zMTYoX19wMF81MCwgX19wMV81MCwgX19wMl81MCwgX19wM181MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTAgPSBfX3AwXzUwOyBcCiAgaW50MTZ4OF90IF9fczFfNTAgPSBfX3AxXzUwOyBcCiAgaW50MTZ4NF90IF9fczJfNTAgPSBfX3AyXzUwOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUwOyBcCiAgX19yZXRfNTAgPSBfX3MwXzUwICsgX19zMV81MCAqIHNwbGF0cV9sYW5lX3MxNihfX3MyXzUwLCBfX3AzXzUwKTsgXAogIF9fcmV0XzUwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZV9zMTYoX19wMF81MSwgX19wMV81MSwgX19wMl81MSwgX19wM181MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTEgPSBfX3AwXzUxOyBcCiAgaW50MTZ4OF90IF9fczFfNTEgPSBfX3AxXzUxOyBcCiAgaW50MTZ4NF90IF9fczJfNTEgPSBfX3AyXzUxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF81MTsgIF9fcmV2MF81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTEsIF9fczBfNTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81MTsgIF9fcmV2MV81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTEsIF9fczFfNTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml81MTsgIF9fcmV2Ml81MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTEsIF9fczJfNTEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUxOyBcCiAgX19yZXRfNTEgPSBfX3JldjBfNTEgKyBfX3JldjFfNTEgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYyXzUxLCBfX3AzXzUxKTsgXAogIF9fcmV0XzUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTEsIF9fcmV0XzUxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lX3UzMihfX3AwXzUyLCBfX3AxXzUyLCBfX3AyXzUyLCBfX3AzXzUyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNTIgPSBfX3AwXzUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzUyID0gX19wMV81MjsgXAogIHVpbnQzMngyX3QgX19zMl81MiA9IF9fcDJfNTI7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzUyOyBcCiAgX19yZXRfNTIgPSBfX3MwXzUyICsgX19zMV81MiAqIHNwbGF0X2xhbmVfdTMyKF9fczJfNTIsIF9fcDNfNTIpOyBcCiAgX19yZXRfNTI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfdTMyKF9fcDBfNTMsIF9fcDFfNTMsIF9fcDJfNTMsIF9fcDNfNTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MyA9IF9fcDBfNTM7IFwKICB1aW50MzJ4Ml90IF9fczFfNTMgPSBfX3AxXzUzOyBcCiAgdWludDMyeDJfdCBfX3MyXzUzID0gX19wMl81MzsgXAogIHVpbnQzMngyX3QgX19yZXYwXzUzOyAgX19yZXYwXzUzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MywgX19zMF81MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81MzsgIF9fcmV2MV81MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTMsIF9fczFfNTMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjJfNTM7ICBfX3JldjJfNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzLCBfX3MyXzUzLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTM7IFwKICBfX3JldF81MyA9IF9fcmV2MF81MyArIF9fcmV2MV81MyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml81MywgX19wM181Myk7IFwKICBfX3JldF81MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUzLCBfX3JldF81MywgMSwgMCk7IFwKICBfX3JldF81MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFfbGFuZV91MTYoX19wMF81NCwgX19wMV81NCwgX19wMl81NCwgX19wM181NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU0ID0gX19wMF81NDsgXAogIHVpbnQxNng0X3QgX19zMV81NCA9IF9fcDFfNTQ7IFwKICB1aW50MTZ4NF90IF9fczJfNTQgPSBfX3AyXzU0OyBcCiAgdWludDE2eDRfdCBfX3JldF81NDsgXAogIF9fcmV0XzU0ID0gX19zMF81NCArIF9fczFfNTQgKiBzcGxhdF9sYW5lX3UxNihfX3MyXzU0LCBfX3AzXzU0KTsgXAogIF9fcmV0XzU0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lX3UxNihfX3AwXzU1LCBfX3AxXzU1LCBfX3AyXzU1LCBfX3AzXzU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNTUgPSBfX3AwXzU1OyBcCiAgdWludDE2eDRfdCBfX3MxXzU1ID0gX19wMV81NTsgXAogIHVpbnQxNng0X3QgX19zMl81NSA9IF9fcDJfNTU7IFwKICB1aW50MTZ4NF90IF9fcmV2MF81NTsgIF9fcmV2MF81NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTUsIF9fczBfNTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTU7ICBfX3JldjFfNTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU1LCBfX3MxXzU1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzU1OyAgX19yZXYyXzU1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NSwgX19zMl81NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzU1OyBcCiAgX19yZXRfNTUgPSBfX3JldjBfNTUgKyBfX3JldjFfNTUgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjJfNTUsIF9fcDNfNTUpOyBcCiAgX19yZXRfNTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NSwgX19yZXRfNTUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVfZjMyKF9fcDBfNTYsIF9fcDFfNTYsIF9fcDJfNTYsIF9fcDNfNTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTYgPSBfX3AwXzU2OyBcCiAgZmxvYXQzMngyX3QgX19zMV81NiA9IF9fcDFfNTY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzU2ID0gX19wMl81NjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU2OyBcCiAgX19yZXRfNTYgPSBfX3MwXzU2ICsgX19zMV81NiAqIHNwbGF0X2xhbmVfZjMyKF9fczJfNTYsIF9fcDNfNTYpOyBcCiAgX19yZXRfNTY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfZjMyKF9fcDBfNTcsIF9fcDFfNTcsIF9fcDJfNTcsIF9fcDNfNTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTcgPSBfX3AwXzU3OyBcCiAgZmxvYXQzMngyX3QgX19zMV81NyA9IF9fcDFfNTc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzU3ID0gX19wMl81NzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF81NzsgIF9fcmV2MF81NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcsIF9fczBfNTcsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzU3OyAgX19yZXYxXzU3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NywgX19zMV81NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNTc7ICBfX3JldjJfNTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3LCBfX3MyXzU3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU3OyBcCiAgX19yZXRfNTcgPSBfX3JldjBfNTcgKyBfX3JldjFfNTcgKiBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjJfNTcsIF9fcDNfNTcpOyBcCiAgX19yZXRfNTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NywgX19yZXRfNTcsIDEsIDApOyBcCiAgX19yZXRfNTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVfczMyKF9fcDBfNTgsIF9fcDFfNTgsIF9fcDJfNTgsIF9fcDNfNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzU4ID0gX19wMF81ODsgXAogIGludDMyeDJfdCBfX3MxXzU4ID0gX19wMV81ODsgXAogIGludDMyeDJfdCBfX3MyXzU4ID0gX19wMl81ODsgXAogIGludDMyeDJfdCBfX3JldF81ODsgXAogIF9fcmV0XzU4ID0gX19zMF81OCArIF9fczFfNTggKiBzcGxhdF9sYW5lX3MzMihfX3MyXzU4LCBfX3AzXzU4KTsgXAogIF9fcmV0XzU4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lX3MzMihfX3AwXzU5LCBfX3AxXzU5LCBfX3AyXzU5LCBfX3AzXzU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81OSA9IF9fcDBfNTk7IFwKICBpbnQzMngyX3QgX19zMV81OSA9IF9fcDFfNTk7IFwKICBpbnQzMngyX3QgX19zMl81OSA9IF9fcDJfNTk7IFwKICBpbnQzMngyX3QgX19yZXYwXzU5OyAgX19yZXYwXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81OSwgX19zMF81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU5OyAgX19yZXYxXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OSwgX19zMV81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzU5OyAgX19yZXYyXzU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81OSwgX19zMl81OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNTk7IFwKICBfX3JldF81OSA9IF9fcmV2MF81OSArIF9fcmV2MV81OSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml81OSwgX19wM181OSk7IFwKICBfX3JldF81OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5LCBfX3JldF81OSwgMSwgMCk7IFwKICBfX3JldF81OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFfbGFuZV9zMTYoX19wMF82MCwgX19wMV82MCwgX19wMl82MCwgX19wM182MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNjAgPSBfX3AwXzYwOyBcCiAgaW50MTZ4NF90IF9fczFfNjAgPSBfX3AxXzYwOyBcCiAgaW50MTZ4NF90IF9fczJfNjAgPSBfX3AyXzYwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzYwOyBcCiAgX19yZXRfNjAgPSBfX3MwXzYwICsgX19zMV82MCAqIHNwbGF0X2xhbmVfczE2KF9fczJfNjAsIF9fcDNfNjApOyBcCiAgX19yZXRfNjA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVfczE2KF9fcDBfNjEsIF9fcDFfNjEsIF9fcDJfNjEsIF9fcDNfNjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzYxID0gX19wMF82MTsgXAogIGludDE2eDRfdCBfX3MxXzYxID0gX19wMV82MTsgXAogIGludDE2eDRfdCBfX3MyXzYxID0gX19wMl82MTsgXAogIGludDE2eDRfdCBfX3JldjBfNjE7ICBfX3JldjBfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYxLCBfX3MwXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNjE7ICBfX3JldjFfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYxLCBfX3MxXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNjE7ICBfX3JldjJfNjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzYxLCBfX3MyXzYxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF82MTsgXAogIF9fcmV0XzYxID0gX19yZXYwXzYxICsgX19yZXYxXzYxICogX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzYxLCBfX3AzXzYxKTsgXAogIF9fcmV0XzYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjEsIF9fcmV0XzYxLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhcV9uX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxhcV9uX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhcV9uX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhcV9uX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQxNng4X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm1sYXFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1sYXFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sYXFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIChpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1sYXFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MSAqIChpbnQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtbGFxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAoaW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbGFxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoaW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1sYV9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWxhX25fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZtbGFfbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm1sYV9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKHVpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1sYV9uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDEgKiAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWxhX25fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtbGFfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19wMSAqIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm1sYV9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogKGludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm1sYV9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWxhX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjEgKiAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm1sc3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bWxzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1sc3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1sc3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm1sc3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm1sc3FfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bWxzcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc3FfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1sc3FfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbHNxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1sc191OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2bWxzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm1sc191MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bWxzX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWxzX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtbHNfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2bWxzX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bWxzX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3Qgdm1sc19mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtbHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIF9fcmV2MjsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtbHNfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIF9fcDI7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtbHNfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bWxzX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bWxzX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzcV9sYW5lX3UzMihfX3AwXzYyLCBfX3AxXzYyLCBfX3AyXzYyLCBfX3AzXzYyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNjIgPSBfX3AwXzYyOyBcCiAgdWludDMyeDRfdCBfX3MxXzYyID0gX19wMV82MjsgXAogIHVpbnQzMngyX3QgX19zMl82MiA9IF9fcDJfNjI7IFwKICB1aW50MzJ4NF90IF9fcmV0XzYyOyBcCiAgX19yZXRfNjIgPSBfX3MwXzYyIC0gX19zMV82MiAqIHNwbGF0cV9sYW5lX3UzMihfX3MyXzYyLCBfX3AzXzYyKTsgXAogIF9fcmV0XzYyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc3FfbGFuZV91MzIoX19wMF82MywgX19wMV82MywgX19wMl82MywgX19wM182MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzYzID0gX19wMF82MzsgXAogIHVpbnQzMng0X3QgX19zMV82MyA9IF9fcDFfNjM7IFwKICB1aW50MzJ4Ml90IF9fczJfNjMgPSBfX3AyXzYzOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNjM7ICBfX3JldjBfNjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYzLCBfX3MwXzYzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzYzOyAgX19yZXYxXzYzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MywgX19zMV82MywgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2Ml82MzsgIF9fcmV2Ml82MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjMsIF9fczJfNjMsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82MzsgXAogIF9fcmV0XzYzID0gX19yZXYwXzYzIC0gX19yZXYxXzYzICogX19ub3N3YXBfc3BsYXRxX2xhbmVfdTMyKF9fcmV2Ml82MywgX19wM182Myk7IFwKICBfX3JldF82MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYzLCBfX3JldF82MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfdTE2KF9fcDBfNjQsIF9fcDFfNjQsIF9fcDJfNjQsIF9fcDNfNjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82NCA9IF9fcDBfNjQ7IFwKICB1aW50MTZ4OF90IF9fczFfNjQgPSBfX3AxXzY0OyBcCiAgdWludDE2eDRfdCBfX3MyXzY0ID0gX19wMl82NDsgXAogIHVpbnQxNng4X3QgX19yZXRfNjQ7IFwKICBfX3JldF82NCA9IF9fczBfNjQgLSBfX3MxXzY0ICogc3BsYXRxX2xhbmVfdTE2KF9fczJfNjQsIF9fcDNfNjQpOyBcCiAgX19yZXRfNjQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lX3UxNihfX3AwXzY1LCBfX3AxXzY1LCBfX3AyXzY1LCBfX3AzXzY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjUgPSBfX3AwXzY1OyBcCiAgdWludDE2eDhfdCBfX3MxXzY1ID0gX19wMV82NTsgXAogIHVpbnQxNng0X3QgX19zMl82NSA9IF9fcDJfNjU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NTsgIF9fcmV2MF82NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjUsIF9fczBfNjUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNjU7ICBfX3JldjFfNjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1LCBfX3MxXzY1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzY1OyAgX19yZXYyXzY1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl82NSwgX19zMl82NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzY1OyBcCiAgX19yZXRfNjUgPSBfX3JldjBfNjUgLSBfX3JldjFfNjUgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV91MTYoX19yZXYyXzY1LCBfX3AzXzY1KTsgXAogIF9fcmV0XzY1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjUsIF9fcmV0XzY1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZV9mMzIoX19wMF82NiwgX19wMV82NiwgX19wMl82NiwgX19wM182NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82NiA9IF9fcDBfNjY7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY2ID0gX19wMV82NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNjYgPSBfX3AyXzY2OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjY7IFwKICBfX3JldF82NiA9IF9fczBfNjYgLSBfX3MxXzY2ICogc3BsYXRxX2xhbmVfZjMyKF9fczJfNjYsIF9fcDNfNjYpOyBcCiAgX19yZXRfNjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lX2YzMihfX3AwXzY3LCBfX3AxXzY3LCBfX3AyXzY3LCBfX3AzXzY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzY3ID0gX19wMF82NzsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjcgPSBfX3AxXzY3OyBcCiAgZmxvYXQzMngyX3QgX19zMl82NyA9IF9fcDJfNjc7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfNjc7ICBfX3JldjBfNjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY3LCBfX3MwXzY3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82NzsgIF9fcmV2MV82NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjcsIF9fczFfNjcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzY3OyAgX19yZXYyXzY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl82NywgX19zMl82NywgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82NzsgXAogIF9fcmV0XzY3ID0gX19yZXYwXzY3IC0gX19yZXYxXzY3ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfZjMyKF9fcmV2Ml82NywgX19wM182Nyk7IFwKICBfX3JldF82NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY3LCBfX3JldF82NywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfczMyKF9fcDBfNjgsIF9fcDFfNjgsIF9fcDJfNjgsIF9fcDNfNjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY4ID0gX19wMF82ODsgXAogIGludDMyeDRfdCBfX3MxXzY4ID0gX19wMV82ODsgXAogIGludDMyeDJfdCBfX3MyXzY4ID0gX19wMl82ODsgXAogIGludDMyeDRfdCBfX3JldF82ODsgXAogIF9fcmV0XzY4ID0gX19zMF82OCAtIF9fczFfNjggKiBzcGxhdHFfbGFuZV9zMzIoX19zMl82OCwgX19wM182OCk7IFwKICBfX3JldF82ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVfczMyKF9fcDBfNjksIF9fcDFfNjksIF9fcDJfNjksIF9fcDNfNjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY5ID0gX19wMF82OTsgXAogIGludDMyeDRfdCBfX3MxXzY5ID0gX19wMV82OTsgXAogIGludDMyeDJfdCBfX3MyXzY5ID0gX19wMl82OTsgXAogIGludDMyeDRfdCBfX3JldjBfNjk7ICBfX3JldjBfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY5LCBfX3MwXzY5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjk7ICBfX3JldjFfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY5LCBfX3MxXzY5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfNjk7ICBfX3JldjJfNjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzY5LCBfX3MyXzY5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82OTsgXAogIF9fcmV0XzY5ID0gX19yZXYwXzY5IC0gX19yZXYxXzY5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2Ml82OSwgX19wM182OSk7IFwKICBfX3JldF82OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5LCBfX3JldF82OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVfczE2KF9fcDBfNzAsIF9fcDFfNzAsIF9fcDJfNzAsIF9fcDNfNzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzcwID0gX19wMF83MDsgXAogIGludDE2eDhfdCBfX3MxXzcwID0gX19wMV83MDsgXAogIGludDE2eDRfdCBfX3MyXzcwID0gX19wMl83MDsgXAogIGludDE2eDhfdCBfX3JldF83MDsgXAogIF9fcmV0XzcwID0gX19zMF83MCAtIF9fczFfNzAgKiBzcGxhdHFfbGFuZV9zMTYoX19zMl83MCwgX19wM183MCk7IFwKICBfX3JldF83MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVfczE2KF9fcDBfNzEsIF9fcDFfNzEsIF9fcDJfNzEsIF9fcDNfNzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzcxID0gX19wMF83MTsgXAogIGludDE2eDhfdCBfX3MxXzcxID0gX19wMV83MTsgXAogIGludDE2eDRfdCBfX3MyXzcxID0gX19wMl83MTsgXAogIGludDE2eDhfdCBfX3JldjBfNzE7ICBfX3JldjBfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxLCBfX3MwXzcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzE7ICBfX3JldjFfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxLCBfX3MxXzcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNzE7ICBfX3JldjJfNzEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzcxLCBfX3MyXzcxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF83MTsgXAogIF9fcmV0XzcxID0gX19yZXYwXzcxIC0gX19yZXYxXzcxICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcmV2Ml83MSwgX19wM183MSk7IFwKICBfX3JldF83MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxLCBfX3JldF83MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNfbGFuZV91MzIoX19wMF83MiwgX19wMV83MiwgX19wMl83MiwgX19wM183MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzcyID0gX19wMF83MjsgXAogIHVpbnQzMngyX3QgX19zMV83MiA9IF9fcDFfNzI7IFwKICB1aW50MzJ4Ml90IF9fczJfNzIgPSBfX3AyXzcyOyBcCiAgdWludDMyeDJfdCBfX3JldF83MjsgXAogIF9fcmV0XzcyID0gX19zMF83MiAtIF9fczFfNzIgKiBzcGxhdF9sYW5lX3UzMihfX3MyXzcyLCBfX3AzXzcyKTsgXAogIF9fcmV0XzcyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX3UzMihfX3AwXzczLCBfX3AxXzczLCBfX3AyXzczLCBfX3AzXzczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzMgPSBfX3AwXzczOyBcCiAgdWludDMyeDJfdCBfX3MxXzczID0gX19wMV83MzsgXAogIHVpbnQzMngyX3QgX19zMl83MyA9IF9fcDJfNzM7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF83MzsgIF9fcmV2MF83MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzMsIF9fczBfNzMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjFfNzM7ICBfX3JldjFfNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzczLCBfX3MxXzczLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzczOyAgX19yZXYyXzczID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MywgX19zMl83MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzczOyBcCiAgX19yZXRfNzMgPSBfX3JldjBfNzMgLSBfX3JldjFfNzMgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3UzMihfX3JldjJfNzMsIF9fcDNfNzMpOyBcCiAgX19yZXRfNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MywgX19yZXRfNzMsIDEsIDApOyBcCiAgX19yZXRfNzM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVfdTE2KF9fcDBfNzQsIF9fcDFfNzQsIF9fcDJfNzQsIF9fcDNfNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF83NCA9IF9fcDBfNzQ7IFwKICB1aW50MTZ4NF90IF9fczFfNzQgPSBfX3AxXzc0OyBcCiAgdWludDE2eDRfdCBfX3MyXzc0ID0gX19wMl83NDsgXAogIHVpbnQxNng0X3QgX19yZXRfNzQ7IFwKICBfX3JldF83NCA9IF9fczBfNzQgLSBfX3MxXzc0ICogc3BsYXRfbGFuZV91MTYoX19zMl83NCwgX19wM183NCk7IFwKICBfX3JldF83NDsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZV91MTYoX19wMF83NSwgX19wMV83NSwgX19wMl83NSwgX19wM183NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1ID0gX19wMF83NTsgXAogIHVpbnQxNng0X3QgX19zMV83NSA9IF9fcDFfNzU7IFwKICB1aW50MTZ4NF90IF9fczJfNzUgPSBfX3AyXzc1OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzU7ICBfX3JldjBfNzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc1LCBfX3MwXzc1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxXzc1OyAgX19yZXYxXzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NSwgX19zMV83NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml83NTsgIF9fcmV2Ml83NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzUsIF9fczJfNzUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF83NTsgXAogIF9fcmV0Xzc1ID0gX19yZXYwXzc1IC0gX19yZXYxXzc1ICogX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYyXzc1LCBfX3AzXzc1KTsgXAogIF9fcmV0Xzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzUsIF9fcmV0Xzc1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc19sYW5lX2YzMihfX3AwXzc2LCBfX3AxXzc2LCBfX3AyXzc2LCBfX3AzXzc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzc2ID0gX19wMF83NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNzYgPSBfX3AxXzc2OyBcCiAgZmxvYXQzMngyX3QgX19zMl83NiA9IF9fcDJfNzY7IFwKICBmbG9hdDMyeDJfdCBfX3JldF83NjsgXAogIF9fcmV0Xzc2ID0gX19zMF83NiAtIF9fczFfNzYgKiBzcGxhdF9sYW5lX2YzMihfX3MyXzc2LCBfX3AzXzc2KTsgXAogIF9fcmV0Xzc2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX2YzMihfX3AwXzc3LCBfX3AxXzc3LCBfX3AyXzc3LCBfX3AzXzc3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzc3ID0gX19wMF83NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNzcgPSBfX3AxXzc3OyBcCiAgZmxvYXQzMngyX3QgX19zMl83NyA9IF9fcDJfNzc7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNzc7ICBfX3JldjBfNzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3LCBfX3MwXzc3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV83NzsgIF9fcmV2MV83NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzcsIF9fczFfNzcsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzc3OyAgX19yZXYyXzc3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83NywgX19zMl83NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF83NzsgXAogIF9fcmV0Xzc3ID0gX19yZXYwXzc3IC0gX19yZXYxXzc3ICogX19ub3N3YXBfc3BsYXRfbGFuZV9mMzIoX19yZXYyXzc3LCBfX3AzXzc3KTsgXAogIF9fcmV0Xzc3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzcsIF9fcmV0Xzc3LCAxLCAwKTsgXAogIF9fcmV0Xzc3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc19sYW5lX3MzMihfX3AwXzc4LCBfX3AxXzc4LCBfX3AyXzc4LCBfX3AzXzc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83OCA9IF9fcDBfNzg7IFwKICBpbnQzMngyX3QgX19zMV83OCA9IF9fcDFfNzg7IFwKICBpbnQzMngyX3QgX19zMl83OCA9IF9fcDJfNzg7IFwKICBpbnQzMngyX3QgX19yZXRfNzg7IFwKICBfX3JldF83OCA9IF9fczBfNzggLSBfX3MxXzc4ICogc3BsYXRfbGFuZV9zMzIoX19zMl83OCwgX19wM183OCk7IFwKICBfX3JldF83ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZV9zMzIoX19wMF83OSwgX19wMV83OSwgX19wMl83OSwgX19wM183OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzkgPSBfX3AwXzc5OyBcCiAgaW50MzJ4Ml90IF9fczFfNzkgPSBfX3AxXzc5OyBcCiAgaW50MzJ4Ml90IF9fczJfNzkgPSBfX3AyXzc5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83OTsgIF9fcmV2MF83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzksIF9fczBfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83OTsgIF9fcmV2MV83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzksIF9fczFfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml83OTsgIF9fcmV2Ml83OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzksIF9fczJfNzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0Xzc5OyBcCiAgX19yZXRfNzkgPSBfX3JldjBfNzkgLSBfX3JldjFfNzkgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfNzksIF9fcDNfNzkpOyBcCiAgX19yZXRfNzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83OSwgX19yZXRfNzksIDEsIDApOyBcCiAgX19yZXRfNzk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVfczE2KF9fcDBfODAsIF9fcDFfODAsIF9fcDJfODAsIF9fcDNfODApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzgwID0gX19wMF84MDsgXAogIGludDE2eDRfdCBfX3MxXzgwID0gX19wMV84MDsgXAogIGludDE2eDRfdCBfX3MyXzgwID0gX19wMl84MDsgXAogIGludDE2eDRfdCBfX3JldF84MDsgXAogIF9fcmV0XzgwID0gX19zMF84MCAtIF9fczFfODAgKiBzcGxhdF9sYW5lX3MxNihfX3MyXzgwLCBfX3AzXzgwKTsgXAogIF9fcmV0XzgwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lX3MxNihfX3AwXzgxLCBfX3AxXzgxLCBfX3AyXzgxLCBfX3AzXzgxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF84MSA9IF9fcDBfODE7IFwKICBpbnQxNng0X3QgX19zMV84MSA9IF9fcDFfODE7IFwKICBpbnQxNng0X3QgX19zMl84MSA9IF9fcDJfODE7IFwKICBpbnQxNng0X3QgX19yZXYwXzgxOyAgX19yZXYwXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MSwgX19zMF84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzgxOyAgX19yZXYxXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MSwgX19zMV84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzgxOyAgX19yZXYyXzgxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84MSwgX19zMl84MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfODE7IFwKICBfX3JldF84MSA9IF9fcmV2MF84MSAtIF9fcmV2MV84MSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml84MSwgX19wM184MSk7IFwKICBfX3JldF84MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgxLCBfX3JldF84MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc3Ffbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc3Ffbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1sc3Ffbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc3Ffbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MTZ4OF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtbHNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtbHNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiAoZmxvYXQzMng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtbHNxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAoaW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiAoaW50MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzcV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKGludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bWxzcV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGludDE2eDhfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtbHNfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm1sc19uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKHVpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bWxzX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKHVpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtbHNfbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtbHNfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxICogKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm1sc19uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bWxzX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtbHNfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MSAqIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtbHNfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMSAqIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm1sc19uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxICogKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3Qgdm1vdl9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3Qgdm1vdl9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2bW92X25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZtb3Zfbl9wMTYocG9seTE2X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZtb3ZxX25fcDgocG9seThfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2bW92cV9uX3A4KHBvbHk4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZtb3ZxX25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtb3ZxX25fcDE2KHBvbHkxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bW92cV9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3Qgdm1vdnFfbl91OCh1aW50OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bW92cV9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92cV9uX3UzMih1aW50MzJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdnFfbl91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1vdnFfbl91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtb3ZxX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtb3ZxX25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZtb3ZxX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZtb3ZxX25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtb3ZxX25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bW92cV9uX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtb3ZxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdnFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdnFfbl9zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bW92cV9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bW92cV9uX3M2NChpbnQ2NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtb3ZxX25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtb3ZxX25fczE2KGludDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1vdnFfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1vdl9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm1vdl9uX3U4KHVpbnQ4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bW92X25fdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtb3Zfbl91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3Qgdm1vdl9uX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1vdl9uX3UxNih1aW50MTZfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSB7X19wMCwgX19wMCwgX19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2bW92X25fdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1vdl9uX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bW92X25fczgoaW50OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bW92X25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bW92X25fZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIHtfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1vdl9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtb3Zfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkge19fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1vdl9uX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtb3Zfbl9zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2bW92X25fczY0KGludDY0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtb3Zfbl9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bW92X25fczE2KGludDE2X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bW92bF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1vdmxfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92bW92bF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bW92bF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bW92bF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92bF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3Ztb3ZsX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1vdmxfczgoaW50OHg4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1vdmxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bW92bF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bW92bF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bF92KChpbnQ4eDhfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtb3ZsX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1vdmxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZsX3YoKGludDh4OF90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1vdmxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1vdmxfdigoaW50OHg4X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm1vdm5fdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3Ztb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2bW92bl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdm1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm1vdm5fdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3Ztb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bW92bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZtb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3Ztb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3Qgdm1vdm5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92bW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm1vdm5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Ztb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92bW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdm1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm11bHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bXVscV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtdWxxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtdWxxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm11bHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZtdWxxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bXVscV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm11bHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdWxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm11bHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bXVscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2bXVsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2bXVsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtdWxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3Qgdm11bF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2bXVsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZtdWxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZtdWxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm11bF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtdWxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bXVsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZtdWxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bXVsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZtdWxfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdm11bF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZtdWxfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3Qgdm11bHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZtdWxxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdm11bHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZV91MzIoX19wMF84MiwgX19wMV84MiwgX19wMl84MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzgyID0gX19wMF84MjsgXAogIHVpbnQzMngyX3QgX19zMV84MiA9IF9fcDFfODI7IFwKICB1aW50MzJ4NF90IF9fcmV0XzgyOyBcCiAgX19yZXRfODIgPSBfX3MwXzgyICogc3BsYXRxX2xhbmVfdTMyKF9fczFfODIsIF9fcDJfODIpOyBcCiAgX19yZXRfODI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lX3UzMihfX3AwXzgzLCBfX3AxXzgzLCBfX3AyXzgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfODMgPSBfX3AwXzgzOyBcCiAgdWludDMyeDJfdCBfX3MxXzgzID0gX19wMV84MzsgXAogIHVpbnQzMng0X3QgX19yZXYwXzgzOyAgX19yZXYwXzgzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MywgX19zMF84MywgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84MzsgIF9fcmV2MV84MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODMsIF9fczFfODMsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84MzsgXAogIF9fcmV0XzgzID0gX19yZXYwXzgzICogX19ub3N3YXBfc3BsYXRxX2xhbmVfdTMyKF9fcmV2MV84MywgX19wMl84Myk7IFwKICBfX3JldF84MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgzLCBfX3JldF84MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfdTE2KF9fcDBfODQsIF9fcDFfODQsIF9fcDJfODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF84NCA9IF9fcDBfODQ7IFwKICB1aW50MTZ4NF90IF9fczFfODQgPSBfX3AxXzg0OyBcCiAgdWludDE2eDhfdCBfX3JldF84NDsgXAogIF9fcmV0Xzg0ID0gX19zMF84NCAqIHNwbGF0cV9sYW5lX3UxNihfX3MxXzg0LCBfX3AyXzg0KTsgXAogIF9fcmV0Xzg0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZV91MTYoX19wMF84NSwgX19wMV84NSwgX19wMl84NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzg1ID0gX19wMF84NTsgXAogIHVpbnQxNng0X3QgX19zMV84NSA9IF9fcDFfODU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF84NTsgIF9fcmV2MF84NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUsIF9fczBfODUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfODU7ICBfX3JldjFfODUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg1LCBfX3MxXzg1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODU7IFwKICBfX3JldF84NSA9IF9fcmV2MF84NSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3UxNihfX3JldjFfODUsIF9fcDJfODUpOyBcCiAgX19yZXRfODUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NSwgX19yZXRfODUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX2YzMihfX3AwXzg2LCBfX3AxXzg2LCBfX3AyXzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2ID0gX19wMF84NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfODYgPSBfX3AxXzg2OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY7IFwKICBfX3JldF84NiA9IF9fczBfODYgKiBzcGxhdHFfbGFuZV9mMzIoX19zMV84NiwgX19wMl84Nik7IFwKICBfX3JldF84NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfZjMyKF9fcDBfODcsIF9fcDFfODcsIF9fcDJfODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODcgPSBfX3AwXzg3OyBcCiAgZmxvYXQzMngyX3QgX19zMV84NyA9IF9fcDFfODc7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc7ICBfX3JldjBfODcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3LCBfX3MwXzg3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV84NzsgIF9fcmV2MV84NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODcsIF9fczFfODcsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODc7IFwKICBfX3JldF84NyA9IF9fcmV2MF84NyAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMihfX3JldjFfODcsIF9fcDJfODcpOyBcCiAgX19yZXRfODcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NywgX19yZXRfODcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX3MzMihfX3AwXzg4LCBfX3AxXzg4LCBfX3AyXzg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84OCA9IF9fcDBfODg7IFwKICBpbnQzMngyX3QgX19zMV84OCA9IF9fcDFfODg7IFwKICBpbnQzMng0X3QgX19yZXRfODg7IFwKICBfX3JldF84OCA9IF9fczBfODggKiBzcGxhdHFfbGFuZV9zMzIoX19zMV84OCwgX19wMl84OCk7IFwKICBfX3JldF84ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfczMyKF9fcDBfODksIF9fcDFfODksIF9fcDJfODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg5ID0gX19wMF84OTsgXAogIGludDMyeDJfdCBfX3MxXzg5ID0gX19wMV84OTsgXAogIGludDMyeDRfdCBfX3JldjBfODk7ICBfX3JldjBfODkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg5LCBfX3MwXzg5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfODk7ICBfX3JldjFfODkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg5LCBfX3MxXzg5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84OTsgXAogIF9fcmV0Xzg5ID0gX19yZXYwXzg5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2MV84OSwgX19wMl84OSk7IFwKICBfX3JldF84OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5LCBfX3JldF84OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfczE2KF9fcDBfOTAsIF9fcDFfOTAsIF9fcDJfOTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzkwID0gX19wMF85MDsgXAogIGludDE2eDRfdCBfX3MxXzkwID0gX19wMV85MDsgXAogIGludDE2eDhfdCBfX3JldF85MDsgXAogIF9fcmV0XzkwID0gX19zMF85MCAqIHNwbGF0cV9sYW5lX3MxNihfX3MxXzkwLCBfX3AyXzkwKTsgXAogIF9fcmV0XzkwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZV9zMTYoX19wMF85MSwgX19wMV85MSwgX19wMl85MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfOTEgPSBfX3AwXzkxOyBcCiAgaW50MTZ4NF90IF9fczFfOTEgPSBfX3AxXzkxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF85MTsgIF9fcmV2MF85MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTEsIF9fczBfOTEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV85MTsgIF9fcmV2MV85MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTEsIF9fczFfOTEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzkxOyBcCiAgX19yZXRfOTEgPSBfX3JldjBfOTEgKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYxXzkxLCBfX3AyXzkxKTsgXAogIF9fcmV0XzkxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTEsIF9fcmV0XzkxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzkxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3UzMihfX3AwXzkyLCBfX3AxXzkyLCBfX3AyXzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfOTIgPSBfX3AwXzkyOyBcCiAgdWludDMyeDJfdCBfX3MxXzkyID0gX19wMV85MjsgXAogIHVpbnQzMngyX3QgX19yZXRfOTI7IFwKICBfX3JldF85MiA9IF9fczBfOTIgKiBzcGxhdF9sYW5lX3UzMihfX3MxXzkyLCBfX3AyXzkyKTsgXAogIF9fcmV0XzkyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX3UzMihfX3AwXzkzLCBfX3AxXzkzLCBfX3AyXzkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfOTMgPSBfX3AwXzkzOyBcCiAgdWludDMyeDJfdCBfX3MxXzkzID0gX19wMV85MzsgXAogIHVpbnQzMngyX3QgX19yZXYwXzkzOyAgX19yZXYwXzkzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MywgX19zMF85MywgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV85MzsgIF9fcmV2MV85MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTMsIF9fczFfOTMsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF85MzsgXAogIF9fcmV0XzkzID0gX19yZXYwXzkzICogX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzkzLCBfX3AyXzkzKTsgXAogIF9fcmV0XzkzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTMsIF9fcmV0XzkzLCAxLCAwKTsgXAogIF9fcmV0XzkzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3UxNihfX3AwXzk0LCBfX3AxXzk0LCBfX3AyXzk0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfOTQgPSBfX3AwXzk0OyBcCiAgdWludDE2eDRfdCBfX3MxXzk0ID0gX19wMV85NDsgXAogIHVpbnQxNng0X3QgX19yZXRfOTQ7IFwKICBfX3JldF85NCA9IF9fczBfOTQgKiBzcGxhdF9sYW5lX3UxNihfX3MxXzk0LCBfX3AyXzk0KTsgXAogIF9fcmV0Xzk0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX3UxNihfX3AwXzk1LCBfX3AxXzk1LCBfX3AyXzk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfOTUgPSBfX3AwXzk1OyBcCiAgdWludDE2eDRfdCBfX3MxXzk1ID0gX19wMV85NTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzk1OyAgX19yZXYwXzk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85NSwgX19zMF85NSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV85NTsgIF9fcmV2MV85NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTUsIF9fczFfOTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF85NTsgXAogIF9fcmV0Xzk1ID0gX19yZXYwXzk1ICogX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYxXzk1LCBfX3AyXzk1KTsgXAogIF9fcmV0Xzk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTUsIF9fcmV0Xzk1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzk1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX2YzMihfX3AwXzk2LCBfX3AxXzk2LCBfX3AyXzk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzk2ID0gX19wMF85NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfOTYgPSBfX3AxXzk2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfOTY7IFwKICBfX3JldF85NiA9IF9fczBfOTYgKiBzcGxhdF9sYW5lX2YzMihfX3MxXzk2LCBfX3AyXzk2KTsgXAogIF9fcmV0Xzk2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lX2YzMihfX3AwXzk3LCBfX3AxXzk3LCBfX3AyXzk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzk3ID0gX19wMF85NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfOTcgPSBfX3AxXzk3OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzk3OyAgX19yZXYwXzk3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85NywgX19zMF85NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfOTc7ICBfX3JldjFfOTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk3LCBfX3MxXzk3LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzk3OyBcCiAgX19yZXRfOTcgPSBfX3JldjBfOTcgKiBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMihfX3JldjFfOTcsIF9fcDJfOTcpOyBcCiAgX19yZXRfOTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85NywgX19yZXRfOTcsIDEsIDApOyBcCiAgX19yZXRfOTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVfczMyKF9fcDBfOTgsIF9fcDFfOTgsIF9fcDJfOTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzk4ID0gX19wMF85ODsgXAogIGludDMyeDJfdCBfX3MxXzk4ID0gX19wMV85ODsgXAogIGludDMyeDJfdCBfX3JldF85ODsgXAogIF9fcmV0Xzk4ID0gX19zMF85OCAqIHNwbGF0X2xhbmVfczMyKF9fczFfOTgsIF9fcDJfOTgpOyBcCiAgX19yZXRfOTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVfczMyKF9fcDBfOTksIF9fcDFfOTksIF9fcDJfOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzk5ID0gX19wMF85OTsgXAogIGludDMyeDJfdCBfX3MxXzk5ID0gX19wMV85OTsgXAogIGludDMyeDJfdCBfX3JldjBfOTk7ICBfX3JldjBfOTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzk5LCBfX3MwXzk5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfOTk7ICBfX3JldjFfOTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk5LCBfX3MxXzk5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldF85OTsgXAogIF9fcmV0Xzk5ID0gX19yZXYwXzk5ICogX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzk5LCBfX3AyXzk5KTsgXAogIF9fcmV0Xzk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTksIF9fcmV0Xzk5LCAxLCAwKTsgXAogIF9fcmV0Xzk5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX3MxNihfX3AwXzEwMCwgX19wMV8xMDAsIF9fcDJfMTAwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8xMDAgPSBfX3AwXzEwMDsgXAogIGludDE2eDRfdCBfX3MxXzEwMCA9IF9fcDFfMTAwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzEwMDsgXAogIF9fcmV0XzEwMCA9IF9fczBfMTAwICogc3BsYXRfbGFuZV9zMTYoX19zMV8xMDAsIF9fcDJfMTAwKTsgXAogIF9fcmV0XzEwMDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZV9zMTYoX19wMF8xMDEsIF9fcDFfMTAxLCBfX3AyXzEwMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTAxID0gX19wMF8xMDE7IFwKICBpbnQxNng0X3QgX19zMV8xMDEgPSBfX3AxXzEwMTsgXAogIGludDE2eDRfdCBfX3JldjBfMTAxOyAgX19yZXYwXzEwMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTAxLCBfX3MwXzEwMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEwMTsgIF9fcmV2MV8xMDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwMSwgX19zMV8xMDEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzEwMTsgXAogIF9fcmV0XzEwMSA9IF9fcmV2MF8xMDEgKiBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTAxLCBfX3AyXzEwMSk7IFwKICBfX3JldF8xMDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMDEsIF9fcmV0XzEwMSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMDE7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxxX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKHVpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxxX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm11bHFfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAodWludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm11bHFfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKHVpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3Qgdm11bHFfbl9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoZmxvYXQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bXVscV9uX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKGZsb2F0MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVscV9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bXVscV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm11bHFfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MTZ4OF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3Qgdm11bF9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMl90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2bXVsX25fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm11bF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2bXVsX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtdWxfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoZmxvYXQzMngyX3QpIHtfX3AxLCBfX3AxfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bXVsX25fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoZmxvYXQzMngyX3QpIHtfX3AxLCBfX3AxfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZtdWxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiAoaW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZtdWxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiAoaW50MzJ4Ml90KSB7X19wMSwgX19wMX07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2bXVsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2bXVsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZtdWxsX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtdWxsX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDM3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCBfX25vc3dhcF92bXVsbF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bXVsbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bXVsbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgX19ub3N3YXBfdm11bGxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgX19ub3N3YXBfdm11bGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgX19ub3N3YXBfdm11bGxfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bXVsbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm11bGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm11bGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm11bGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdm11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9sYW5lX3UzMihfX3AwXzEwMiwgX19wMV8xMDIsIF9fcDJfMTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMTAyID0gX19wMF8xMDI7IFwKICB1aW50MzJ4Ml90IF9fczFfMTAyID0gX19wMV8xMDI7IFwKICB1aW50NjR4Ml90IF9fcmV0XzEwMjsgXAogIF9fcmV0XzEwMiA9IHZtdWxsX3UzMihfX3MwXzEwMiwgc3BsYXRfbGFuZV91MzIoX19zMV8xMDIsIF9fcDJfMTAyKSk7IFwKICBfX3JldF8xMDI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lX3UzMihfX3AwXzEwMywgX19wMV8xMDMsIF9fcDJfMTAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMTAzID0gX19wMF8xMDM7IFwKICB1aW50MzJ4Ml90IF9fczFfMTAzID0gX19wMV8xMDM7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF8xMDM7ICBfX3JldjBfMTAzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMDMsIF9fczBfMTAzLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzEwMzsgIF9fcmV2MV8xMDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwMywgX19zMV8xMDMsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF8xMDM7IFwKICBfX3JldF8xMDMgPSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYwXzEwMywgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzEwMywgX19wMl8xMDMpKTsgXAogIF9fcmV0XzEwMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEwMywgX19yZXRfMTAzLCAxLCAwKTsgXAogIF9fcmV0XzEwMzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2xhbmVfdTE2KF9fcDBfMTA0LCBfX3AxXzEwNCwgX19wMl8xMDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8xMDQgPSBfX3AwXzEwNDsgXAogIHVpbnQxNng0X3QgX19zMV8xMDQgPSBfX3AxXzEwNDsgXAogIHVpbnQzMng0X3QgX19yZXRfMTA0OyBcCiAgX19yZXRfMTA0ID0gdm11bGxfdTE2KF9fczBfMTA0LCBzcGxhdF9sYW5lX3UxNihfX3MxXzEwNCwgX19wMl8xMDQpKTsgXAogIF9fcmV0XzEwNDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2xhbmVfdTE2KF9fcDBfMTA1LCBfX3AxXzEwNSwgX19wMl8xMDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8xMDUgPSBfX3AwXzEwNTsgXAogIHVpbnQxNng0X3QgX19zMV8xMDUgPSBfX3AxXzEwNTsgXAogIHVpbnQxNng0X3QgX19yZXYwXzEwNTsgIF9fcmV2MF8xMDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEwNSwgX19zMF8xMDUsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfMTA1OyAgX19yZXYxXzEwNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTA1LCBfX3MxXzEwNSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzEwNTsgXAogIF9fcmV0XzEwNSA9IF9fbm9zd2FwX3ZtdWxsX3UxNihfX3JldjBfMTA1LCBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjFfMTA1LCBfX3AyXzEwNSkpOyBcCiAgX19yZXRfMTA1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA1LCBfX3JldF8xMDUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTA1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZV9zMzIoX19wMF8xMDYsIF9fcDFfMTA2LCBfX3AyXzEwNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTA2ID0gX19wMF8xMDY7IFwKICBpbnQzMngyX3QgX19zMV8xMDYgPSBfX3AxXzEwNjsgXAogIGludDY0eDJfdCBfX3JldF8xMDY7IFwKICBfX3JldF8xMDYgPSB2bXVsbF9zMzIoX19zMF8xMDYsIHNwbGF0X2xhbmVfczMyKF9fczFfMTA2LCBfX3AyXzEwNikpOyBcCiAgX19yZXRfMTA2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZV9zMzIoX19wMF8xMDcsIF9fcDFfMTA3LCBfX3AyXzEwNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTA3ID0gX19wMF8xMDc7IFwKICBpbnQzMngyX3QgX19zMV8xMDcgPSBfX3AxXzEwNzsgXAogIGludDMyeDJfdCBfX3JldjBfMTA3OyAgX19yZXYwXzEwNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTA3LCBfX3MwXzEwNywgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzEwNzsgIF9fcmV2MV8xMDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwNywgX19zMV8xMDcsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzEwNzsgXAogIF9fcmV0XzEwNyA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjBfMTA3LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTA3LCBfX3AyXzEwNykpOyBcCiAgX19yZXRfMTA3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA3LCBfX3JldF8xMDcsIDEsIDApOyBcCiAgX19yZXRfMTA3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZV9zMTYoX19wMF8xMDgsIF9fcDFfMTA4LCBfX3AyXzEwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTA4ID0gX19wMF8xMDg7IFwKICBpbnQxNng0X3QgX19zMV8xMDggPSBfX3AxXzEwODsgXAogIGludDMyeDRfdCBfX3JldF8xMDg7IFwKICBfX3JldF8xMDggPSB2bXVsbF9zMTYoX19zMF8xMDgsIHNwbGF0X2xhbmVfczE2KF9fczFfMTA4LCBfX3AyXzEwOCkpOyBcCiAgX19yZXRfMTA4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZV9zMTYoX19wMF8xMDksIF9fcDFfMTA5LCBfX3AyXzEwOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTA5ID0gX19wMF8xMDk7IFwKICBpbnQxNng0X3QgX19zMV8xMDkgPSBfX3AxXzEwOTsgXAogIGludDE2eDRfdCBfX3JldjBfMTA5OyAgX19yZXYwXzEwOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTA5LCBfX3MwXzEwOSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEwOTsgIF9fcmV2MV8xMDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEwOSwgX19zMV8xMDksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEwOTsgXAogIF9fcmV0XzEwOSA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjBfMTA5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTA5LCBfX3AyXzEwOSkpOyBcCiAgX19yZXRfMTA5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTA5LCBfX3JldF8xMDksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTA5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bXVsbF9uX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMl90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfdTMyKF9fcDAsICh1aW50MzJ4Ml90KSB7X19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm11bGxfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MCwgKHVpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgX19ub3N3YXBfdm11bGxfbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3UzMihfX3AwLCAodWludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxsX25fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF91MTYoX19wMCwgKHVpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bXVsbF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MTYoX19yZXYwLCAodWludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bXVsbF9uX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDAsICh1aW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtdWxsX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZtdWxsX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF9zMzIoX19wMCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXVsbF9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bXVsbF9uX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczE2KF9fcDAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZtdm5fcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3Qgdm12bl9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZtdm5xX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZtdm5xX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm12bnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3Qgdm12bnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bXZucV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm12bnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm12bnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtdm5xX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm12bnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm12bnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdm5xX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXZucV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtdm5xX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bXZucV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZtdm5fdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm12bl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZtdm5fdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZtdm5fdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3Qgdm12bl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3Qgdm12bl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm12bl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bXZuX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IH5fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bXZuX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IH5fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bXZuX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB+X19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm12bl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB+X19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm12bl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gfl9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZuZWdxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2bmVncV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZuZWdxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bmVncV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZuZWdxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2bmVncV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3Qgdm5lZ19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2bmVnX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZuZWdfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZuZWdfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2bmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2bmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAtX19yZXYwOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3Qgdm5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcmV2MDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2b3JucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2b3JucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2b3JucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm9ybnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZvcm5xX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2b3JucV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm9ybnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZvcm5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZvcm5xX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3Qgdm9ybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm9ybnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm9ybnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZvcm5xX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZvcm5xX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2b3JucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2b3JucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm9ybl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZvcm5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZvcm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZvcm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3Qgdm9ybl91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZvcm5fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZvcm5fdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCB+X19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2b3JuX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCB+X19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2b3JuX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2b3JuX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgfl9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZvcm5fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgfl9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3Qgdm9ybl9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm9ybl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IH5fX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2b3JuX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IH5fX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3Qgdm9ycnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2b3JycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZvcnJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZvcnJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZvcnJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZvcnJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZvcnJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZvcnJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm9ycnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZvcnJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm9ycnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2b3JycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2b3JycV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZvcnJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZvcnJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm9ycnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3Qgdm9ycl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3Qgdm9ycl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCB8IF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2b3JyX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZvcnJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2b3JyX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2b3JyX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZvcnJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZvcnJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3Qgdm9ycl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2b3JyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIHwgX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3Qgdm9ycl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgfCBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZvcnJfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgfCBfX3AxOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3Qgdm9ycl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCB8IF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZvcnJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIHwgX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZwYWRhbHFfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBhZGFscV91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cGFkYWxxX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cGFkYWxxX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cGFkYWxxX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cGFkYWxxX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwYWRhbHFfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGFscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZwYWRhbHFfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cGFkYWxxX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnBhZGFscV9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cGFkYWxxX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnBhZGFscV9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnBhZGFsX3U4KHVpbnQxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnBhZGFsX3U4KHVpbnQxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDFfdCB2cGFkYWxfdTMyKHVpbnQ2NHgxX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZwYWRhbF91MzIodWludDY0eDFfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZwYWRhbF91MTYodWludDMyeDJfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGFsX3UxNih1aW50MzJ4Ml90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZwYWRhbF9zOChpbnQxNng0X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZwYWRhbF9zOChpbnQxNng0X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4MV90IHZwYWRhbF9zMzIoaW50NjR4MV90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgxX3QgdnBhZGFsX3MzMihpbnQ2NHgxX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGFsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkYWxfczE2KGludDMyeDJfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRhbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwYWRhbF9zMTYoaW50MzJ4Ml90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkYWxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZwYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZwYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnBhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnBhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnBhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZwYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZwYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnBhZGRfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZwYWRkX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnBhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnBhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cGFkZGxxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBhZGRscV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnBhZGRscV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cGFkZGxxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBhZGRscV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cGFkZGxxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cGFkZGxxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRscV92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cGFkZGxxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnBhZGRscV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZwYWRkbHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnBhZGRscV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZwYWRkbHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZwYWRkbF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZwYWRkbF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDFfdCB2cGFkZGxfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4MV90IHZwYWRkbF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZwYWRkbF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnBhZGRsX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnBhZGRsX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGxfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZwYWRkbF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDFfdCB2cGFkZGxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDFfdCB2cGFkZGxfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDMpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cGFkZGxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnBhZGRsX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cGFkZGxfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkbF92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnBtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnBtYXhfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cG1heF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cG1heF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cG1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cG1heF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnBtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnBtYXhfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1heF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnBtYXhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZwbWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwbWF4X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cG1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cG1heF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnBtaW5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnBtaW5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cG1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cG1pbl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cG1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cG1pbl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnBtaW5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnBtaW5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1pbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnBtaW5fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZwbWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZwbWluX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cG1pbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cG1pbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnFhYnNxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxYWJzcV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFhYnNxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWFic3FfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWFic3FfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxYWJzcV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhYnNxX3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFhYnNfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cWFic19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cWFic19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFhYnNfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWFic19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFhYnNfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzX3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnFhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cWFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnFhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cWFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cWFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cWFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFhZGRxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWFkZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cWFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cWFkZF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZxYWRkX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cWFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cWFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFhZGRfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxYWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFhZGRfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cWFkZF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbGFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9sYW5lX3MzMihfX3AwXzExMCwgX19wMV8xMTAsIF9fcDJfMTEwLCBfX3AzXzExMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfMTEwID0gX19wMF8xMTA7IFwKICBpbnQzMngyX3QgX19zMV8xMTAgPSBfX3AxXzExMDsgXAogIGludDMyeDJfdCBfX3MyXzExMCA9IF9fcDJfMTEwOyBcCiAgaW50NjR4Ml90IF9fcmV0XzExMDsgXAogIF9fcmV0XzExMCA9IHZxZG1sYWxfczMyKF9fczBfMTEwLCBfX3MxXzExMCwgc3BsYXRfbGFuZV9zMzIoX19zMl8xMTAsIF9fcDNfMTEwKSk7IFwKICBfX3JldF8xMTA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsX2xhbmVfczMyKF9fcDBfMTExLCBfX3AxXzExMSwgX19wMl8xMTEsIF9fcDNfMTExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8xMTEgPSBfX3AwXzExMTsgXAogIGludDMyeDJfdCBfX3MxXzExMSA9IF9fcDFfMTExOyBcCiAgaW50MzJ4Ml90IF9fczJfMTExID0gX19wMl8xMTE7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzExMTsgIF9fcmV2MF8xMTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExMSwgX19zMF8xMTEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTE7ICBfX3JldjFfMTExID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTEsIF9fczFfMTExLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMTExOyAgX19yZXYyXzExMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTExLCBfX3MyXzExMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMTExOyBcCiAgX19yZXRfMTExID0gX19ub3N3YXBfdnFkbWxhbF9zMzIoX19yZXYwXzExMSwgX19yZXYxXzExMSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzExMSwgX19wM18xMTEpKTsgXAogIF9fcmV0XzExMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzExMSwgX19yZXRfMTExLCAxLCAwKTsgXAogIF9fcmV0XzExMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfbGFuZV9zMTYoX19wMF8xMTIsIF9fcDFfMTEyLCBfX3AyXzExMiwgX19wM18xMTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzExMiA9IF9fcDBfMTEyOyBcCiAgaW50MTZ4NF90IF9fczFfMTEyID0gX19wMV8xMTI7IFwKICBpbnQxNng0X3QgX19zMl8xMTIgPSBfX3AyXzExMjsgXAogIGludDMyeDRfdCBfX3JldF8xMTI7IFwKICBfX3JldF8xMTIgPSB2cWRtbGFsX3MxNihfX3MwXzExMiwgX19zMV8xMTIsIHNwbGF0X2xhbmVfczE2KF9fczJfMTEyLCBfX3AzXzExMikpOyBcCiAgX19yZXRfMTEyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9sYW5lX3MxNihfX3AwXzExMywgX19wMV8xMTMsIF9fcDJfMTEzLCBfX3AzXzExMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMTEzID0gX19wMF8xMTM7IFwKICBpbnQxNng0X3QgX19zMV8xMTMgPSBfX3AxXzExMzsgXAogIGludDE2eDRfdCBfX3MyXzExMyA9IF9fcDJfMTEzOyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMTM7ICBfX3JldjBfMTEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMTMsIF9fczBfMTEzLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMTEzOyAgX19yZXYxXzExMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTEzLCBfX3MxXzExMywgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzExMzsgIF9fcmV2Ml8xMTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzExMywgX19zMl8xMTMsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzExMzsgXAogIF9fcmV0XzExMyA9IF9fbm9zd2FwX3ZxZG1sYWxfczE2KF9fcmV2MF8xMTMsIF9fcmV2MV8xMTMsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml8xMTMsIF9fcDNfMTEzKSk7IFwKICBfX3JldF8xMTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMTMsIF9fcmV0XzExMywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMTM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcmV2MCwgX19yZXYxLCAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdnFkbWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbGFsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjAsIF9fcmV2MSwgKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxZG1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbHNsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxzbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9sYW5lX3MzMihfX3AwXzExNCwgX19wMV8xMTQsIF9fcDJfMTE0LCBfX3AzXzExNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfMTE0ID0gX19wMF8xMTQ7IFwKICBpbnQzMngyX3QgX19zMV8xMTQgPSBfX3AxXzExNDsgXAogIGludDMyeDJfdCBfX3MyXzExNCA9IF9fcDJfMTE0OyBcCiAgaW50NjR4Ml90IF9fcmV0XzExNDsgXAogIF9fcmV0XzExNCA9IHZxZG1sc2xfczMyKF9fczBfMTE0LCBfX3MxXzExNCwgc3BsYXRfbGFuZV9zMzIoX19zMl8xMTQsIF9fcDNfMTE0KSk7IFwKICBfX3JldF8xMTQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsX2xhbmVfczMyKF9fcDBfMTE1LCBfX3AxXzExNSwgX19wMl8xMTUsIF9fcDNfMTE1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8xMTUgPSBfX3AwXzExNTsgXAogIGludDMyeDJfdCBfX3MxXzExNSA9IF9fcDFfMTE1OyBcCiAgaW50MzJ4Ml90IF9fczJfMTE1ID0gX19wMl8xMTU7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzExNTsgIF9fcmV2MF8xMTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExNSwgX19zMF8xMTUsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTU7ICBfX3JldjFfMTE1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTUsIF9fczFfMTE1LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMTE1OyAgX19yZXYyXzExNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTE1LCBfX3MyXzExNSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMTE1OyBcCiAgX19yZXRfMTE1ID0gX19ub3N3YXBfdnFkbWxzbF9zMzIoX19yZXYwXzExNSwgX19yZXYxXzExNSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzExNSwgX19wM18xMTUpKTsgXAogIF9fcmV0XzExNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzExNSwgX19yZXRfMTE1LCAxLCAwKTsgXAogIF9fcmV0XzExNTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfbGFuZV9zMTYoX19wMF8xMTYsIF9fcDFfMTE2LCBfX3AyXzExNiwgX19wM18xMTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzExNiA9IF9fcDBfMTE2OyBcCiAgaW50MTZ4NF90IF9fczFfMTE2ID0gX19wMV8xMTY7IFwKICBpbnQxNng0X3QgX19zMl8xMTYgPSBfX3AyXzExNjsgXAogIGludDMyeDRfdCBfX3JldF8xMTY7IFwKICBfX3JldF8xMTYgPSB2cWRtbHNsX3MxNihfX3MwXzExNiwgX19zMV8xMTYsIHNwbGF0X2xhbmVfczE2KF9fczJfMTE2LCBfX3AzXzExNikpOyBcCiAgX19yZXRfMTE2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9sYW5lX3MxNihfX3AwXzExNywgX19wMV8xMTcsIF9fcDJfMTE3LCBfX3AzXzExNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMTE3ID0gX19wMF8xMTc7IFwKICBpbnQxNng0X3QgX19zMV8xMTcgPSBfX3AxXzExNzsgXAogIGludDE2eDRfdCBfX3MyXzExNyA9IF9fcDJfMTE3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMTc7ICBfX3JldjBfMTE3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMTcsIF9fczBfMTE3LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMTE3OyAgX19yZXYxXzExNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTE3LCBfX3MxXzExNywgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzExNzsgIF9fcmV2Ml8xMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzExNywgX19zMl8xMTcsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzExNzsgXAogIF9fcmV0XzExNyA9IF9fbm9zd2FwX3ZxZG1sc2xfczE2KF9fcmV2MF8xMTcsIF9fcmV2MV8xMTcsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2Ml8xMTcsIF9fcDNfMTE3KSk7IFwKICBfX3JldF8xMTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMTcsIF9fcmV0XzExNywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcmV2MCwgX19yZXYxLCAoaW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdnFkbWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcDAsIF9fcDEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbHNsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjAsIF9fcmV2MSwgKGludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZxZG1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3AwLCBfX3AxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFkbXVsaHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnFkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxZG11bGhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cWRtdWxoX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFkbXVsaF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cWRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbXVsaHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGhxX3MzMihfX3AwLCAoaW50MzJ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxocV9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGhxX3MzMihfX3JldjAsIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cWRtdWxocV9uX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsaHFfczE2KF9fcDAsIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxZG11bGhxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsaHFfczE2KF9fcmV2MCwgKGludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGhfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxZG11bGhfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxoX3MzMihfX3JldjAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cWRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxoX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cWRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsaF9zMTYoX19yZXYwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92cWRtdWxsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFkbXVsbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsbF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfbGFuZV9zMzIoX19wMF8xMTgsIF9fcDFfMTE4LCBfX3AyXzExOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTE4ID0gX19wMF8xMTg7IFwKICBpbnQzMngyX3QgX19zMV8xMTggPSBfX3AxXzExODsgXAogIGludDY0eDJfdCBfX3JldF8xMTg7IFwKICBfX3JldF8xMTggPSB2cWRtdWxsX3MzMihfX3MwXzExOCwgc3BsYXRfbGFuZV9zMzIoX19zMV8xMTgsIF9fcDJfMTE4KSk7IFwKICBfX3JldF8xMTg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVfczMyKF9fcDBfMTE5LCBfX3AxXzExOSwgX19wMl8xMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzExOSA9IF9fcDBfMTE5OyBcCiAgaW50MzJ4Ml90IF9fczFfMTE5ID0gX19wMV8xMTk7IFwKICBpbnQzMngyX3QgX19yZXYwXzExOTsgIF9fcmV2MF8xMTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzExOSwgX19zMF8xMTksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMTk7ICBfX3JldjFfMTE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMTksIF9fczFfMTE5LCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF8xMTk7IFwKICBfX3JldF8xMTkgPSBfX25vc3dhcF92cWRtdWxsX3MzMihfX3JldjBfMTE5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTE5LCBfX3AyXzExOSkpOyBcCiAgX19yZXRfMTE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTE5LCBfX3JldF8xMTksIDEsIDApOyBcCiAgX19yZXRfMTE5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsbF9sYW5lX3MxNihfX3AwXzEyMCwgX19wMV8xMjAsIF9fcDJfMTIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8xMjAgPSBfX3AwXzEyMDsgXAogIGludDE2eDRfdCBfX3MxXzEyMCA9IF9fcDFfMTIwOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEyMDsgXAogIF9fcmV0XzEyMCA9IHZxZG11bGxfczE2KF9fczBfMTIwLCBzcGxhdF9sYW5lX3MxNihfX3MxXzEyMCwgX19wMl8xMjApKTsgXAogIF9fcmV0XzEyMDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfbGFuZV9zMTYoX19wMF8xMjEsIF9fcDFfMTIxLCBfX3AyXzEyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTIxID0gX19wMF8xMjE7IFwKICBpbnQxNng0X3QgX19zMV8xMjEgPSBfX3AxXzEyMTsgXAogIGludDE2eDRfdCBfX3JldjBfMTIxOyAgX19yZXYwXzEyMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTIxLCBfX3MwXzEyMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzEyMTsgIF9fcmV2MV8xMjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEyMSwgX19zMV8xMjEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzEyMTsgXAogIF9fcmV0XzEyMSA9IF9fbm9zd2FwX3ZxZG11bGxfczE2KF9fcmV2MF8xMjEsIF9fbm9zd2FwX3NwbGF0X2xhbmVfczE2KF9fcmV2MV8xMjEsIF9fcDJfMTIxKSk7IFwKICBfX3JldF8xMjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjEsIF9fcmV0XzEyMSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjE7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9zMzIoX19wMCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IF9fbm9zd2FwX3ZxZG11bGxfbl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG11bGxfczE2KF9fcDAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX3JldjAsIChpbnQxNng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92cWRtdWxsX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX3AwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnFtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnFtb3ZuX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCBfX25vc3dhcF92cW1vdm5fdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cW1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cW1vdm5fdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZxbW92bl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFtb3ZuX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCBfX25vc3dhcF92cW1vdm5fdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cW1vdm5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFtb3ZuX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cW1vdm5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFtb3ZuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxbW92bl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuX3YoKGludDh4MTZfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnFtb3ZuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFtb3ZuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZxbW92bl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bl92KChpbnQ4eDE2X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgX19ub3N3YXBfdnFtb3ZuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5fdigoaW50OHgxNl90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnFtb3Z1bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZxbW92dW5fczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgX19ub3N3YXBfdnFtb3Z1bl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZxbW92dW5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cW1vdnVuX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92dW5fdigoaW50OHgxNl90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3ZxbW92dW5fczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxbW92dW5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cW1vdnVuX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuX3YoKGludDh4MTZfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3ZxbW92dW5fczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFtb3Z1bl92KChpbnQ4eDE2X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cW5lZ3FfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFuZWdxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVncV92KChpbnQ4eDE2X3QpX19yZXYwLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cW5lZ3FfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFuZWdxX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxbmVncV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFuZWdxX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxbmVncV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFuZWdxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cW5lZ19zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZxbmVnX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxbmVnX3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cW5lZ19zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxbmVnX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnX3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cW5lZ19zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFuZWdfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxcmRtdWxocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG11bGhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdnFyZG11bGhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbXVsaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxcmRtdWxocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3ZxcmRtdWxocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFyZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyZG11bGhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cXJkbXVsaF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXJkbXVsaHFfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxcmRtdWxocV9zMzIoX19wMCwgKGludDMyeDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG11bGhxX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhxX3MzMihfX3JldjAsIChpbnQzMng0X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbXVsaHFfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZxcmRtdWxocV9zMTYoX19wMCwgKGludDE2eDhfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFyZG11bGhxX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjAsIChpbnQxNng4X3QpIHtfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxLCBfX3AxfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cXJkbXVsaF9uX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFyZG11bGhfczMyKF9fcDAsIChpbnQzMngyX3QpIHtfX3AxLCBfX3AxfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZxcmRtdWxoX25fczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFyZG11bGhfczMyKF9fcmV2MCwgKGludDMyeDJfdCkge19fcDEsIF9fcDF9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtdWxoX25fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cXJkbXVsaF9zMTYoX19wMCwgKGludDE2eDRfdCkge19fcDEsIF9fcDEsIF9fcDEsIF9fcDF9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFyZG11bGhfbl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYwLCAoaW50MTZ4NF90KSB7X19wMSwgX19wMSwgX19wMSwgX19wMX0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZxcnNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXJzaGxxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cXJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxcnNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cXJzaGxxX3U2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZxcnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cXJzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZxcnNobHFfdTE2KHVpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxcnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxcnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXJzaGxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cXJzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFyc2hscV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnFyc2hscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXJzaGxfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFyc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cXJzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnFyc2hsX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2cXJzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZxcnNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cXJzaGxfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXJzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZxcnNobF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cXJzaGxfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cXJzaGxfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hybl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXJzaHJ1bl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZxcnNocnVuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJ1bl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXJzaHJ1bl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cXNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZxc2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cXNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cXNobHFfdTMyKHVpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZxc2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZxc2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnFzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnFzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxc2hscV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFzaGxxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cXNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXNobHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxc2hscV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFzaGxfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnFzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cXNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2cXNobF91NjQodWludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cXNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZxc2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFzaGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFzaGxfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxc2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxc2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hscV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hscV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGxxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdXFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdXFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1cV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdXFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdXFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdXFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHVxX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNobHVxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGx1cV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzaGx1cV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1X25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdV9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaGx1X25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hsdV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNobHVfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdV9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hsdV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaGx1X25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hsdV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaGx1X25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnFzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hybl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocnVuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXNocnVuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJ1bl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zxc2hydW5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hydW5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cXNocnVuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnFzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFzdWJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxc3VicV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cXN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnFzdWJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxc3VicV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cXN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXN1YnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnFzdWJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cXN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxc3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3Zxc3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFzdWJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cXN1YnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3VicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IF9fbm9zd2FwX3Zxc3VicV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnFzdWJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnFzdWJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2cXN1Yl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cXN1Yl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZxc3ViX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cXN1Yl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cXN1Yl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnFzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnFzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3Zxc3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnFzdWJfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxc3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXN1Yl92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxc3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92cXN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFzdWJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgX19ub3N3YXBfdnJhZGRobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdnJhZGRobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCBfX25vc3dhcF92cmFkZGhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cmFkZGhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmFkZGhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgX19ub3N3YXBfdnJhZGRobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnJhZGRobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnJhZGRobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IF9fbm9zd2FwX3ZyYWRkaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJhZGRobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYWRkaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnJhZGRobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJhZGRobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IF9fbm9zd2FwX3ZyYWRkaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmFkZGhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJlY3BlcV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cmVjcGVxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJlY3BlX3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cmVjcGVfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZyZWNwZV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJlY3BlX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cmVjcHNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZWNwc3FfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cmVjcHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cmVjcHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmV2MTZfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnJldjE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cmV2MTZxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2LCA5LCA4LCAxMSwgMTAsIDEzLCAxMiwgMTUsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZyZXYxNnFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyZXYxNnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJldjE2cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cmV2MTZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNiwgOSwgOCwgMTEsIDEwLCAxMywgMTIsIDE1LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyZXYxNnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYsIDksIDgsIDExLCAxMCwgMTMsIDEyLCAxNSwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJldjE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyZXYxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyZXYxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cmV2MTZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnJldjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZyZXYzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdnJldjMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2cmV2MzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cmV2MzJxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZyZXYzMnFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZyZXYzMnFfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZyZXYzMnFfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmV2MzJxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyZXYzMnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQsIDExLCAxMCwgOSwgOCwgMTUsIDE0LCAxMywgMTIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyZXYzMnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyZXYzMnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyLCA1LCA0LCA3LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZyZXYzMnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0LCAxMSwgMTAsIDksIDgsIDE1LCAxNCwgMTMsIDEyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJldjMycV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCwgMTEsIDEwLCA5LCA4LCAxNSwgMTQsIDEzLCAxMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cmV2MzJxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIsIDUsIDQsIDcsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cmV2MzJxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMiwgNSwgNCwgNywgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cmV2MzJfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnJldjMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2cmV2MzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZyZXYzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cmV2MzJfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnJldjMyX3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZyZXYzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwLCAzLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnJldjMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCwgMywgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmV2NjRfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnJldjY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2cmV2NjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZyZXY2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZyZXY2NHFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnJldjY0cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdnJldjY0cV9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnJldjY0cV9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyZXY2NHFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJldjY0cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJldjY0cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJldjY0cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDAsIDMsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyZXY2NHFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyZXY2NHFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZyZXY2NHFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJldjY0cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDAsIDMsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZyZXY2NHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZyZXY2NHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCwgMywgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyZXY2NHFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxLCAwLCAzLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZyZXY2NHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCwgNywgNiwgNSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyZXY2NHFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZyZXY2NF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmV2NjRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyZXY2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJldjY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJldjY0X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cmV2NjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJldjY0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyZXY2NF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZyZXY2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJldjY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cmV2NjRfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyZXY2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJldjY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmV2NjRfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmhhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyaGFkZHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJoYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJoYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnJoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnJoYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cmhhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnJoYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyaGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJoYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyaGFkZHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJoYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cmhhZGRfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJoYWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2cmhhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZyaGFkZF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnJoYWRkX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnJoYWRkX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cmhhZGRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyaGFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnJoYWRkX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyaGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJoYWRkX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmhhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cmhhZGRfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJoYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnJzaGxxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cnNobHFfdTgodWludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnJzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyc2hscV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZyc2hscV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJzaGxxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cnNobHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyc2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZyc2hscV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnJzaGxxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cnNobHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cnNobF91OCh1aW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyc2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyc2hsX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnJzaGxfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdnJzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnJzaGxfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2cnNobF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyc2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyc2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZyc2hsX3M2NChpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2cnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2cnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocnFfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocnFfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hycV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hycV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocl9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2cnNocl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hyX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2cnNocl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hyX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zyc2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3Zyc2hybl9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92cnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZyc3FydGVxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cnNxcnRlcV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJzcXJ0ZXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cnNxcnRlcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnJzcXJ0ZV91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZyc3FydGVfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cnNxcnRlX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJzcXJ0ZV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZyc3FydHNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cnNxcnRzcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cnNxcnRzX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZyc3FydHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFxX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNyYXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhcV9uX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZyc3JhX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNyYV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzcmFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzcmFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnJzcmFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc3JhX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZyc3JhX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IF9fbm9zd2FwX3Zyc3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IF9fbm9zd2FwX3Zyc3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgX19ub3N3YXBfdnJzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnJzdWJobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnJzdWJobl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IF9fbm9zd2FwX3Zyc3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZyc3ViaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZyc3ViaG5fczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92cnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZyc3ViaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyc3ViaG5fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCBfX25vc3dhcF92cnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChwb2x5OHg4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKHBvbHk4eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChwb2x5OHg4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChwb2x5MTZ4NF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seThfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAocG9seTh4MTZfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAocG9seTh4MTZfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTgoX19zMCwgKHBvbHk4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAocG9seTE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAocG9seTE2eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDhfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pMTYoX19zMCwgKHBvbHkxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pOChfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kzMihfX3MwLCAoaW50MzJ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAoaW50NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChpbnQ2NHgyX3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChpbnQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k4KF9fczAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTgoX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTMyKF9fczAsIChpbnQzMng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pMzIoX19zMCwgKGludDMyeDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pNjQoX19zMCwgKGludDY0eDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNldHFfbGFuZV9pNjQoX19zMCwgKGludDY0eDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAoaW50NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2kxNihfX3MwLCAoaW50MTZ4OF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTE2KF9fczAsIChpbnQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTY0KF9fczAsIChpbnQ2NHgxX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChpbnQxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTE2KF9fczAsIChpbnQxNng0X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kxNihfX3MwLCAoaW50MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTgoX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pOChfX3MwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2k4KF9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9mMzIoX19zMCwgKGZsb2F0MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfZjMyKF9fczAsIChmbG9hdDMyeDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2YzMihfX3MwLCAoZmxvYXQzMngyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kzMihfX3MwLCAoaW50MzJ4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMzIoX19zMCwgKGludDMyeDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pNjQoX19zMCwgKGludDY0eDFfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2kxNihfX3MwLCAoaW50MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKGludDE2eDRfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9pMTYoX19zMCwgKGludDE2eDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2c2hscV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGxxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hscV91MzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hscV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNobHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnNobHFfdTE2KHVpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZzaGxxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnNobHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2c2hscV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2c2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c2hscV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnNobHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzaGxxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2c2hsX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnNobF91MzIodWludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZzaGxfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2c2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2c2hsX3UxNih1aW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2c2hsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnNobF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZzaGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2c2hsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnNobF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNobF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c2hsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnNobF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hscV9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobHFfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hscV9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobHFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobHFfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxxX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobHFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hscV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hscV9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDMzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobHFfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hscV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnNobF9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobF9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaGxfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2hsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNobF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX25fdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2hsbF9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNobGxfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNobGxfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hsbF9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2hsbF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxsX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocnFfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJxX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocnFfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0OSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJxX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDkpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJxX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hycV9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hycV9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJxX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocnFfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDM1KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocnFfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hycV9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJxX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNocnFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaHJfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hyX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hyX25fdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c2hyX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNocl9uX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocl9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJfbl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5fbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5fbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAxOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNocm5fbl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMTYpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNocm5fbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hybl9uX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocm5fbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNocm5fbl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzaHJuX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaHJuX25fdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpcV9uX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2xpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNsaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2xpX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNsaV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNsaV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbGlfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhcV9uX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmFxX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhcV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM0KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYXFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JhcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFxX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNyYXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzcmFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JhX25fdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JhX25fczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnNyYV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyYV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzcmFfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyYV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmFfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmFfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JhX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlfbl9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2eDRfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaXFfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaXFfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpcV9uX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlxX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNyaXFfbl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzUpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3JpcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlfbl91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE2KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3JpX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDE3KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNyaV9uX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpX25fczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNyaV9uX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zzcmlfbl92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzcmlfbl9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3JpX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlfbl9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpX25fdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpX25fczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCA1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCAzNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNTApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDMpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgNTApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTgpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3A4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9wMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfcDE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdThfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91OF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3U2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mMzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zMzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3MzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3MxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3U4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3U4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdTE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3M4X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczMyX3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3M2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3A4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9wOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3AxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3AxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91OF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3U4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCA1MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91NjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91NjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgMzIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjMyX3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2YzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczMyX3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgMzUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzMyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDMzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfdThfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91OF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxOSk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91MTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfdTE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDkpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9mMzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMzJfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MzMl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9zNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3MxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfcDhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3AxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfcDE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3U4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdThfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3UzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3UzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA1MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV91MTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV91MTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3M4X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfczMyX3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9zMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9zNjRfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3M2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM1KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3MxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfczE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91OF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfdThfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV91MzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV91MzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfdTY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3UxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX3UxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfczhfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zOF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2YzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxX3MzMl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9zMzJfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfczY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MV9zMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfczE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQ5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzNCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAxNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDJfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAxNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QyX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHg4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA1MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0Ml9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCA1MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAzNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M191MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDE4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTgpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QzX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTkpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIDApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCA5KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDMpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA1KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfcDE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNTApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M19sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M19sYW5lX3UzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCBfX3AyLCAxOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDE3KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV91MTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDUpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHkxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQ4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA1MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQ5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDkpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDMyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0MSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzMpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMTYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMTgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxOCk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDE5KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxNyk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDE3KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHg4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgOSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgMik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgMyk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA0KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3AxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMzcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDUwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDUwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA0OSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0OSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDR4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzQpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM0KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDMzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMyk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE2KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDE2KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfbGFuZV91MzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAxOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0X2xhbmVfdTMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfdTE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTcpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3UxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMTcpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDApOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NF9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCA5KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCBfX3AyLCAyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIF9fcDIsIDEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3VicV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZzdWJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnN1YnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnN1YnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnN1YnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2c3VicV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnN1YnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZzdWJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2c3VicV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c3VicV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2c3VicV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZzdWJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnN1Yl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnN1Yl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2c3ViX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZzdWJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2c3ViX3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2c3ViX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZzdWJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZzdWJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnN1Yl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZzdWJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZzdWJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZzdWJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2c3ViX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdnN1Yl9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c3ViX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnN1Yl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnN1YmhuX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZzdWJobl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCBfX25vc3dhcF92c3ViaG5fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnN1YmhuX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZzdWJobl91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCBfX25vc3dhcF92c3ViaG5fdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c3ViaG5fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnN1YmhuX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IF9fbm9zd2FwX3ZzdWJobl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2c3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnN1YmhuX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCBfX25vc3dhcF92c3ViaG5fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJobl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZzdWJobl9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnN1YmhuX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3ViaG5fdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZzdWJobl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgX19ub3N3YXBfdnN1YmhuX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnN1YmhuX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YmxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3U4KF9fcDApIC0gdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3VibF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91OChfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c3VibF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfdTMyKF9fcDApIC0gdm1vdmxfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnN1YmxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91MzIoX19yZXYwKSAtIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF91MTYoX19wMCkgLSB2bW92bF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c3VibF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3UxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2c3VibF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfczgoX19wMCkgLSB2bW92bF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YmxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3M4KF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnN1YmxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3MzMihfX3AwKSAtIHZtb3ZsX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnN1YmxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfczMyKF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZzdWJsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9zMTYoX19wMCkgLSB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YndfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3Vid191OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3U4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnN1YndfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3Vid191MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJ3X3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfdTE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnN1YndfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJ3X3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtb3ZsX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2c3Vid19zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnN1YndfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZzdWJ3X3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YndfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJ3X3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRibDFfcDgocG9seTh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJsMV9wOChwb2x5OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJsMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsMV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJsMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJsMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJsMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJsMl9wOChwb2x5OHg4eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRibDJfcDgocG9seTh4OHgyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0YmwyX3U4KHVpbnQ4eDh4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDJfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnRibDJfdTgodWludDh4OHgyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ0YmwyX3M4KGludDh4OHgyX3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsMl92KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRibDJfczgoaW50OHg4eDJfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwyX3YoKGludDh4OF90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDhfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0YmwzX3A4KHBvbHk4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDNfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0YmwzX3A4KHBvbHk4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRibDNfdTgodWludDh4OHgzX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0YmwzX3U4KHVpbnQ4eDh4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRibDNfczgoaW50OHg4eDNfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YmwzX3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AwLnZhbFsyXSwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0YmwzX3M4KGludDh4OHgzX3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OHgzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsM192KChpbnQ4eDhfdClfX3JldjAudmFsWzBdLCAoaW50OHg4X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRibDRfcDgocG9seTh4OHg0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJsNF92KChpbnQ4eDhfdClfX3AwLnZhbFswXSwgKGludDh4OF90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AwLnZhbFszXSwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJsNF9wOChwb2x5OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJsNF91OCh1aW50OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Ymw0X3YoKGludDh4OF90KV9fcDAudmFsWzBdLCAoaW50OHg4X3QpX19wMC52YWxbMV0sIChpbnQ4eDhfdClfX3AwLnZhbFsyXSwgKGludDh4OF90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJsNF91OCh1aW50OHg4eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJsNF9zOChpbnQ4eDh4NF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19wMC52YWxbMF0sIChpbnQ4eDhfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMC52YWxbM10sIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJsNF9zOChpbnQ4eDh4NF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDh4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRibDRfdigoaW50OHg4X3QpX19yZXYwLnZhbFswXSwgKGludDh4OF90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYwLnZhbFszXSwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJ4MV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRieDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0YngxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4MV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0YngxX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0YngyX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dGJ4Ml91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OHgyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OHgyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4Ml92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dGJ4Ml9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDh4Ml90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDJfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dGJ4Ml9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDh4Ml90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDh4Ml90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRieDNfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dGJ4M19wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OHgzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OHgzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4M192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjIsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRieDNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEudmFsWzBdLCAoaW50OHg4X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnRieDNfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDh4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDh4M190IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRieDNfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYyLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ0YngzX3M4KGludDh4OF90IF9fcDAsIGludDh4OHgzX3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4M192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMiwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHg4eDNfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0YngzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MiwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dGJ4NF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OHg0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnRieDRfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDh4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDh4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnRieDRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OHg0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMS52YWxbMF0sIChpbnQ4eDhfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0Yng0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4eDRfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Yng0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MS52YWxbM10sIChpbnQ4eDhfdClfX3JldjIsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHg4eDRfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLnZhbFswXSwgKGludDh4OF90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMS52YWxbMl0sIChpbnQ4eDhfdClfX3AxLnZhbFszXSwgKGludDh4OF90KV9fcDIsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ0Yng0X3M4KGludDh4OF90IF9fcDAsIGludDh4OHg0X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OHg0X3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFszXSwgX19wMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dGJ4NF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OHgyX3QgdnRybl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDh4Ml90IHZ0cm5fcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NHgyX3QgdnRybl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NHgyX3QgdnRybl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDUpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2eDJfdCB2dHJucV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNngyX3QgdnRybnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM2KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OHgyX3QgdnRybnFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4eDJfdCB2dHJucV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM3KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNngyX3QgdnRybnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZ4Ml90IHZ0cm5xX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDR4Ml90IHZ0cm5xX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NHgyX3QgdnRybnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDh4Ml90IHZ0cm5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OHgyX3QgdnRybnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNngyX3QgdnRybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNngyX3QgdnRybnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0eDJfdCB2dHJucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0eDJfdCB2dHJucV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybnFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDR4Ml90IHZ0cm5xX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0eDJfdCB2dHJucV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJucV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OHgyX3QgdnRybnFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDh4Ml90IHZ0cm5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4eDJfdCB2dHJuX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDh4Ml90IHZ0cm5fdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJ4Ml90IHZ0cm5fdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyeDJfdCB2dHJuX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0eDJfdCB2dHJuX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NHgyX3QgdnRybl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDh4Ml90IHZ0cm5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDh4Ml90IHZ0cm5fczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyeDJfdCB2dHJuX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4MngyX3QgdnRybl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4MngyX3QgdnRybl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnRybl92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyeDJfdCB2dHJuX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDR4Ml90IHZ0cm5fczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NHgyX3QgdnRybl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRzdF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0c3RfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0c3RfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHN0X3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ0c3RxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2dHN0cV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0c3RxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ0c3RxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dHN0cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ0c3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnRzdHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2dHN0cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ0c3RxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnRzdHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnRzdHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnRzdHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ0c3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0c3RxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0c3RfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dHN0X3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dHN0X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnRzdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0c3RfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHN0X3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dHN0X3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0c3RfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnRzdF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dHN0X3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dHN0X3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZ0c3RfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92dHN0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4eDJfdCB2dXpwX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OHgyX3QgdnV6cF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDQpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0eDJfdCB2dXpwX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0eDJfdCB2dXpwX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZ4Ml90IHZ1enBxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2eDJfdCB2dXpwcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzYpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4eDJfdCB2dXpwcV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDh4Ml90IHZ1enBxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzcpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2eDJfdCB2dXpwcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNngyX3QgdnV6cHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NHgyX3QgdnV6cHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0eDJfdCB2dXpwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OHgyX3QgdnV6cHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4eDJfdCB2dXpwcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2eDJfdCB2dXpwcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2eDJfdCB2dXpwcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDR4Ml90IHZ1enBxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDR4Ml90IHZ1enBxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NHgyX3QgdnV6cHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDR4Ml90IHZ1enBxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4eDJfdCB2dXpwcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OHgyX3QgdnV6cHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDh4Ml90IHZ1enBfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OHgyX3QgdnV6cF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4MngyX3QgdnV6cF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJ4Ml90IHZ1enBfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDR4Ml90IHZ1enBfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0eDJfdCB2dXpwX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OHgyX3QgdnV6cF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OHgyX3QgdnV6cF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJ4Ml90IHZ1enBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyeDJfdCB2dXpwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyeDJfdCB2dXpwX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJ4Ml90IHZ1enBfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NHgyX3QgdnV6cF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0eDJfdCB2dXpwX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z1enBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDEpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDh4Ml90IHZ6aXBfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4eDJfdCB2emlwX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgNCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDR4Ml90IHZ6aXBfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDR4Ml90IHZ6aXBfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA1KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNngyX3QgdnppcHFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZ4Ml90IHZ6aXBxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDh4Ml90IHZ6aXBxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OHgyX3QgdnppcHFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZ4Ml90IHZ6aXBxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2eDJfdCB2emlwcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0eDJfdCB2emlwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDR4Ml90IHZ6aXBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4eDJfdCB2emlwcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDh4Ml90IHZ6aXBxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZ4Ml90IHZ6aXBxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZ4Ml90IHZ6aXBxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NHgyX3QgdnppcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NHgyX3QgdnppcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBxX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0eDJfdCB2emlwcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NHgyX3QgdnppcHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDh4Ml90IHZ6aXBxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4eDJfdCB2emlwcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OHgyX3QgdnppcF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4eDJfdCB2emlwX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTYpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyeDJfdCB2emlwX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4MngyX3QgdnppcF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NHgyX3QgdnppcF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDR4Ml90IHZ6aXBfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4eDJfdCB2emlwX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4eDJfdCB2emlwX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4MngyX3QgdnppcF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4MngyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJ4Ml90IHZ6aXBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJ4Ml90IHZ6aXBfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJ4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4MngyX3QgdnppcF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyeDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAyKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0eDJfdCB2emlwX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92emlwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDR4Ml90IHZ6aXBfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2YxNihfX3AwXzEyMiwgX19wMV8xMjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMTIyID0gX19wMF8xMjI7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8xMjI7IFwKICBfX3JldF8xMjIgPSBzcGxhdHFfbGFuZV9mMTYoX19zMF8xMjIsIF9fcDFfMTIyKTsgXAogIF9fcmV0XzEyMjsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfZjE2KF9fcDBfMTIzLCBfX3AxXzEyMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjMgPSBfX3AwXzEyMzsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8xMjM7ICBfX3JldjBfMTIzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjMsIF9fczBfMTIzLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzEyMzsgXAogIF9fcmV0XzEyMyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YxNihfX3JldjBfMTIzLCBfX3AxXzEyMyk7IFwKICBfX3JldF8xMjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjMsIF9fcmV0XzEyMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfZjE2KF9fcDBfMTI0LCBfX3AxXzEyNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjQgPSBfX3AwXzEyNDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzEyNDsgXAogIF9fcmV0XzEyNCA9IHNwbGF0X2xhbmVfZjE2KF9fczBfMTI0LCBfX3AxXzEyNCk7IFwKICBfX3JldF8xMjQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVfZjE2KF9fcDBfMTI1LCBfX3AxXzEyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8xMjUgPSBfX3AwXzEyNTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8xMjU7ICBfX3JldjBfMTI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjUsIF9fczBfMTI1LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzEyNTsgXAogIF9fcmV0XzEyNSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfZjE2KF9fcmV2MF8xMjUsIF9fcDFfMTI1KTsgXAogIF9fcmV0XzEyNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEyNSwgX19yZXRfMTI1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzEyNTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtb3ZxX25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdnFfbl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkge19fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczAsIF9fczB9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bW92X25fZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIHtfX3MwLCBfX3MwLCBfX3MwLCBfX3MwfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1vdl9uX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSB7X19zMCwgX19zMCwgX19zMCwgX19zMH07IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhxX2xhbmVfczMyKF9fcDBfMTI2LCBfX3AxXzEyNiwgX19wMl8xMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEyNiA9IF9fcDBfMTI2OyBcCiAgaW50MzJ4Ml90IF9fczFfMTI2ID0gX19wMV8xMjY7IFwKICBpbnQzMng0X3QgX19yZXRfMTI2OyBcCiAgX19yZXRfMTI2ID0gdnFkbXVsaHFfczMyKF9fczBfMTI2LCBzcGxhdHFfbGFuZV9zMzIoX19zMV8xMjYsIF9fcDJfMTI2KSk7IFwKICBfX3JldF8xMjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxocV9sYW5lX3MzMihfX3AwXzEyNywgX19wMV8xMjcsIF9fcDJfMTI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8xMjcgPSBfX3AwXzEyNzsgXAogIGludDMyeDJfdCBfX3MxXzEyNyA9IF9fcDFfMTI3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8xMjc7ICBfX3JldjBfMTI3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMjcsIF9fczBfMTI3LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMTI3OyAgX19yZXYxXzEyNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTI3LCBfX3MxXzEyNywgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfMTI3OyBcCiAgX19yZXRfMTI3ID0gX19ub3N3YXBfdnFkbXVsaHFfczMyKF9fcmV2MF8xMjcsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3JldjFfMTI3LCBfX3AyXzEyNykpOyBcCiAgX19yZXRfMTI3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTI3LCBfX3JldF8xMjcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTI3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMTYoX19wMF8xMjgsIF9fcDFfMTI4LCBfX3AyXzEyOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMTI4ID0gX19wMF8xMjg7IFwKICBpbnQxNng0X3QgX19zMV8xMjggPSBfX3AxXzEyODsgXAogIGludDE2eDhfdCBfX3JldF8xMjg7IFwKICBfX3JldF8xMjggPSB2cWRtdWxocV9zMTYoX19zMF8xMjgsIHNwbGF0cV9sYW5lX3MxNihfX3MxXzEyOCwgX19wMl8xMjgpKTsgXAogIF9fcmV0XzEyODsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGhxX2xhbmVfczE2KF9fcDBfMTI5LCBfX3AxXzEyOSwgX19wMl8xMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEyOSA9IF9fcDBfMTI5OyBcCiAgaW50MTZ4NF90IF9fczFfMTI5ID0gX19wMV8xMjk7IFwKICBpbnQxNng4X3QgX19yZXYwXzEyOTsgIF9fcmV2MF8xMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEyOSwgX19zMF8xMjksIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMjk7ICBfX3JldjFfMTI5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMjksIF9fczFfMTI5LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8xMjk7IFwKICBfX3JldF8xMjkgPSBfX25vc3dhcF92cWRtdWxocV9zMTYoX19yZXYwXzEyOSwgX19ub3N3YXBfc3BsYXRxX2xhbmVfczE2KF9fcmV2MV8xMjksIF9fcDJfMTI5KSk7IFwKICBfX3JldF8xMjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xMjksIF9fcmV0XzEyOSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xMjk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczMyKF9fcDBfMTMwLCBfX3AxXzEzMCwgX19wMl8xMzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzEzMCA9IF9fcDBfMTMwOyBcCiAgaW50MzJ4Ml90IF9fczFfMTMwID0gX19wMV8xMzA7IFwKICBpbnQzMngyX3QgX19yZXRfMTMwOyBcCiAgX19yZXRfMTMwID0gdnFkbXVsaF9zMzIoX19zMF8xMzAsIHNwbGF0X2xhbmVfczMyKF9fczFfMTMwLCBfX3AyXzEzMCkpOyBcCiAgX19yZXRfMTMwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MzMihfX3AwXzEzMSwgX19wMV8xMzEsIF9fcDJfMTMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8xMzEgPSBfX3AwXzEzMTsgXAogIGludDMyeDJfdCBfX3MxXzEzMSA9IF9fcDFfMTMxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8xMzE7ICBfX3JldjBfMTMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xMzEsIF9fczBfMTMxLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMTMxOyAgX19yZXYxXzEzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTMxLCBfX3MxXzEzMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMTMxOyBcCiAgX19yZXRfMTMxID0gX19ub3N3YXBfdnFkbXVsaF9zMzIoX19yZXYwXzEzMSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzEzMSwgX19wMl8xMzEpKTsgXAogIF9fcmV0XzEzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzEzMSwgX19yZXRfMTMxLCAxLCAwKTsgXAogIF9fcmV0XzEzMTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZV9zMTYoX19wMF8xMzIsIF9fcDFfMTMyLCBfX3AyXzEzMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTMyID0gX19wMF8xMzI7IFwKICBpbnQxNng0X3QgX19zMV8xMzIgPSBfX3AxXzEzMjsgXAogIGludDE2eDRfdCBfX3JldF8xMzI7IFwKICBfX3JldF8xMzIgPSB2cWRtdWxoX3MxNihfX3MwXzEzMiwgc3BsYXRfbGFuZV9zMTYoX19zMV8xMzIsIF9fcDJfMTMyKSk7IFwKICBfX3JldF8xMzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVfczE2KF9fcDBfMTMzLCBfX3AxXzEzMywgX19wMl8xMzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzEzMyA9IF9fcDBfMTMzOyBcCiAgaW50MTZ4NF90IF9fczFfMTMzID0gX19wMV8xMzM7IFwKICBpbnQxNng0X3QgX19yZXYwXzEzMzsgIF9fcmV2MF8xMzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzMywgX19zMF8xMzMsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMzM7ICBfX3JldjFfMTMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzMsIF9fczFfMTMzLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF8xMzM7IFwKICBfX3JldF8xMzMgPSBfX25vc3dhcF92cWRtdWxoX3MxNihfX3JldjBfMTMzLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTMzLCBfX3AyXzEzMykpOyBcCiAgX19yZXRfMTMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTMzLCBfX3JldF8xMzMsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTMzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczMyKF9fcDBfMTM0LCBfX3AxXzEzNCwgX19wMl8xMzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEzNCA9IF9fcDBfMTM0OyBcCiAgaW50MzJ4Ml90IF9fczFfMTM0ID0gX19wMV8xMzQ7IFwKICBpbnQzMng0X3QgX19yZXRfMTM0OyBcCiAgX19yZXRfMTM0ID0gdnFyZG11bGhxX3MzMihfX3MwXzEzNCwgc3BsYXRxX2xhbmVfczMyKF9fczFfMTM0LCBfX3AyXzEzNCkpOyBcCiAgX19yZXRfMTM0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczMyKF9fcDBfMTM1LCBfX3AxXzEzNSwgX19wMl8xMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzEzNSA9IF9fcDBfMTM1OyBcCiAgaW50MzJ4Ml90IF9fczFfMTM1ID0gX19wMV8xMzU7IFwKICBpbnQzMng0X3QgX19yZXYwXzEzNTsgIF9fcmV2MF8xMzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzNSwgX19zMF8xMzUsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8xMzU7ICBfX3JldjFfMTM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzUsIF9fczFfMTM1LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8xMzU7IFwKICBfX3JldF8xMzUgPSBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MF8xMzUsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MzMihfX3JldjFfMTM1LCBfX3AyXzEzNSkpOyBcCiAgX19yZXRfMTM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM1LCBfX3JldF8xMzUsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTM1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczE2KF9fcDBfMTM2LCBfX3AxXzEzNiwgX19wMl8xMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEzNiA9IF9fcDBfMTM2OyBcCiAgaW50MTZ4NF90IF9fczFfMTM2ID0gX19wMV8xMzY7IFwKICBpbnQxNng4X3QgX19yZXRfMTM2OyBcCiAgX19yZXRfMTM2ID0gdnFyZG11bGhxX3MxNihfX3MwXzEzNiwgc3BsYXRxX2xhbmVfczE2KF9fczFfMTM2LCBfX3AyXzEzNikpOyBcCiAgX19yZXRfMTM2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhxX2xhbmVfczE2KF9fcDBfMTM3LCBfX3AxXzEzNywgX19wMl8xMzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzEzNyA9IF9fcDBfMTM3OyBcCiAgaW50MTZ4NF90IF9fczFfMTM3ID0gX19wMV8xMzc7IFwKICBpbnQxNng4X3QgX19yZXYwXzEzNzsgIF9fcmV2MF8xMzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzEzNywgX19zMF8xMzcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8xMzc7ICBfX3JldjFfMTM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xMzcsIF9fczFfMTM3LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8xMzc7IFwKICBfX3JldF8xMzcgPSBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MF8xMzcsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MxNihfX3JldjFfMTM3LCBfX3AyXzEzNykpOyBcCiAgX19yZXRfMTM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM3LCBfX3JldF8xMzcsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTM3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMF8xMzgsIF9fcDFfMTM4LCBfX3AyXzEzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTM4ID0gX19wMF8xMzg7IFwKICBpbnQzMngyX3QgX19zMV8xMzggPSBfX3AxXzEzODsgXAogIGludDMyeDJfdCBfX3JldF8xMzg7IFwKICBfX3JldF8xMzggPSB2cXJkbXVsaF9zMzIoX19zMF8xMzgsIHNwbGF0X2xhbmVfczMyKF9fczFfMTM4LCBfX3AyXzEzOCkpOyBcCiAgX19yZXRfMTM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMF8xMzksIF9fcDFfMTM5LCBfX3AyXzEzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMTM5ID0gX19wMF8xMzk7IFwKICBpbnQzMngyX3QgX19zMV8xMzkgPSBfX3AxXzEzOTsgXAogIGludDMyeDJfdCBfX3JldjBfMTM5OyAgX19yZXYwXzEzOSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTM5LCBfX3MwXzEzOSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzEzOTsgIF9fcmV2MV8xMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzEzOSwgX19zMV8xMzksIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzEzOTsgXAogIF9fcmV0XzEzOSA9IF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjBfMTM5LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjFfMTM5LCBfX3AyXzEzOSkpOyBcCiAgX19yZXRfMTM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTM5LCBfX3JldF8xMzksIDEsIDApOyBcCiAgX19yZXRfMTM5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMTYoX19wMF8xNDAsIF9fcDFfMTQwLCBfX3AyXzE0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTQwID0gX19wMF8xNDA7IFwKICBpbnQxNng0X3QgX19zMV8xNDAgPSBfX3AxXzE0MDsgXAogIGludDE2eDRfdCBfX3JldF8xNDA7IFwKICBfX3JldF8xNDAgPSB2cXJkbXVsaF9zMTYoX19zMF8xNDAsIHNwbGF0X2xhbmVfczE2KF9fczFfMTQwLCBfX3AyXzE0MCkpOyBcCiAgX19yZXRfMTQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMTYoX19wMF8xNDEsIF9fcDFfMTQxLCBfX3AyXzE0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMTQxID0gX19wMF8xNDE7IFwKICBpbnQxNng0X3QgX19zMV8xNDEgPSBfX3AxXzE0MTsgXAogIGludDE2eDRfdCBfX3JldjBfMTQxOyAgX19yZXYwXzE0MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQxLCBfX3MwXzE0MSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzE0MTsgIF9fcmV2MV8xNDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0MSwgX19zMV8xNDEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzE0MTsgXAogIF9fcmV0XzE0MSA9IF9fbm9zd2FwX3ZxcmRtdWxoX3MxNihfX3JldjBfMTQxLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfMTQxLCBfX3AyXzE0MSkpOyBcCiAgX19yZXRfMTQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTQxLCBfX3JldF8xNDEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTQxOyBcCn0pCiNlbmRpZgoKX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3M4KGludDh4OF90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3MzMihpbnQzMng0X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczgoaW50OHgxNl90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3MzMihpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDgocG9seTh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczgoaW50OHg4X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTgodWludDh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDgocG9seTh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfczgoaW50OHg4X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91OCh1aW50OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgKF9fQVJNX0ZQICYgMikKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmN2dF9mMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfZjMyKChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjE2X2YzMigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Y3Z0X2YxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YxNl9mMzIoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9mMzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMzJfZjE2KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0X2YzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YzMl9mMTYoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjdnRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2YxNigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV92KF9fcDAsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2R1cF92KF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2YxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxX2YxNl94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9mMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDNfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2YxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9mMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2YxNl94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgNDApOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQyX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfZHVwX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMl9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCBfX3AyLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19kdXBfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCA4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDQwKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNF9kdXBfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2R1cF92KCZfX3JldCwgX19wMCwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfZHVwX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0MCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLnZhbFszXSwgX19wMiwgOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2YxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9mMTZfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2YxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2YxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mMTZfeDQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfZjE2X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0MCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQwKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQwKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCA4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCA4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDApOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0MCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCA4KTsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2Y3Z0YXFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0YXFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MzMl92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Y3Z0YV9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YV9zMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZjdnRhX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRhcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjdnRhcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MzJfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjdnRhX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRhX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMzJfdigoaW50OHgxNl90KV9fcDAsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmN2dG1xX3MzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMzJfdigoaW50OHgxNl90KV9fcmV2MCwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdmN2dG1fczMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dG1fczMyX3YoKGludDh4OF90KV9fcDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2Y3Z0bV9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV9zMzJfdigoaW50OHg4X3QpX19yZXYwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y3Z0bXFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTMyX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y3Z0bXFfdTMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTMyX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y3Z0bV91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UzMl92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y3Z0bV91MzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UzMl92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczMyX3YoKGludDh4MTZfdClfX3AwLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZjdnRucV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczMyX3YoKGludDh4MTZfdClfX3JldjAsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZjdnRuX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3MzMl92KChpbnQ4eDhfdClfX3AwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdmN2dG5fczMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dG5fczMyX3YoKGludDh4OF90KV9fcmV2MCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmN2dG5xX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UzMl92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmN2dG5xX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UzMl92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmN2dG5fdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MzJfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmN2dG5fdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MzJfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MzMl92KChpbnQ4eDE2X3QpX19wMCwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2Y3Z0cHFfczMyX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MzMl92KChpbnQ4eDE2X3QpX19yZXYwLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2Y3Z0cF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cF9zMzJfdigoaW50OHg4X3QpX19wMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZjdnRwX3MzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3MzMl92KChpbnQ4eDhfdClfX3JldjAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjdnRwcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MzJfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjdnRwcV91MzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MzJfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjdnRwX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTMyX3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjdnRwX3UzMl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTMyX3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQUVTKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNkcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNlcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZXNpbWNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmFlc2ltY3FfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNpbWNxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YWVzaW1jcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmFlc21jcV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNtY3FfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZhZXNtY3FfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZXNtY3FfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRElSRUNURURfUk9VTkRJTkcpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRxX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnJuZHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5kX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRhcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kYXFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZGFxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZGFfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZGFfdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJuZGlxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmRpcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5kaV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cm5kaV9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kbXFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZG1xX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnJuZG1xX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZybmRtX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmRtX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRucV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZG5xX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZG5fZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZG5fdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZG5fZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZG5fdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDMyX3QgdnJuZG5zX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRuc19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZybmRwcV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kcHFfdigoaW50OHgxNl90KV9fcDAsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cm5kcHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnJuZHBxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZHBfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZHBfdigoaW50OHg4X3QpX19wMCwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnJuZHBfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZHBfdigoaW50OHg4X3QpX19yZXYwLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnJuZHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmR4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cm5keF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keF92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cm5keF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRElSRUNURURfUk9VTkRJTkcpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRxX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZF92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZGFxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnJuZGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZybmRhX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRhX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZybmRtcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbXFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cm5kbXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZG1xX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZG1fZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZG1fdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJuZG1fZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZG1fdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJuZG5xX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRucV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRucV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcmV2MCwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cm5kbl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbl92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cm5kbl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kbl92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cm5kcHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZHBxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnJuZHBxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZybmRwX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZybmRwX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZybmR4cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cm5keHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJuZHhxX3YoKGludDh4MTZfdClfX3JldjAsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJuZHhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZHhfdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJuZHhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJuZHhfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX05VTUVSSUNfTUFYTUlOKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2bWF4bm1xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtYXhubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1heG5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heG5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2bWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm1heG5tX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtaW5ubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3Qgdm1pbm5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX05VTUVSSUNfTUFYTUlOKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRlAxNl9WRUNUT1JfQVJJVEhNRVRJQykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3Qgdm1heG5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2bWF4bm1xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bWlubm1xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtaW5ubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2bWlubm1fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2bWlubm1fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbm5tX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEEyKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMWNxX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExY3FfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFjcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQzMl90IHZzaGExaF91MzIodWludDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92c2hhMWhfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExbXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMW1xX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExbXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFtcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExcHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXBxX3UzMihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExcHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFwcV91MzIoX19yZXYwLCBfX3AxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGExc3UwcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFzdTBxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNoYTFzdTBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXN1MHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNoYTFzdTFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTFzdTFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGExc3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMXN1MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2aHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGEyNTZocV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzaGEyNTZocV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NmhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGEyNTZoMnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGEyNTZoMnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2aDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2hhMjU2aDJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzaGEyNTZzdTBxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNoYTI1NnN1MHFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2c3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c2hhMjU2c3UxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNoYTI1NnN1MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEEzKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZiY2F4cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2YmNheHFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZiY2F4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmJjYXhxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmJjYXhxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YmNheHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YmNheHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZiY2F4cV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmJjYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZiY2F4cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmJjYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YmNheHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YmNheHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmNheHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZiY2F4cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZiY2F4cV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZiY2F4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmJjYXhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmJjYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZlb3IzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2ZW9yM3FfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZlb3IzcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmVvcjNxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmVvcjNxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2ZW9yM3FfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2ZW9yM3FfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZlb3IzcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdmVvcjNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZlb3IzcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmVvcjNxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2ZW9yM3FfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2ZW9yM3FfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZW9yM3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZlb3IzcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZlb3IzcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zlb3IzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmVvcjNxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmVvcjNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZyYXgxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyYXgxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2cmF4MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnJheDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ4YXJxX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92eGFycV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZ4YXJxX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z4YXJxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA1MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9TSEE1MTIpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMmhxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hhNTEyaHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyaHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJocV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyaDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2hhNTEyaDJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMmgycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEsIHVpbnQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNoYTUxMmgycV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2c2hhNTEyc3UwcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTBxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZzaGE1MTJzdTBxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTBxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnNoYTUxMnN1MXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGE1MTJzdTFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfU00zKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzbTNwYXJ0dzFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zcGFydHcxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzbTNwYXJ0dzFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zcGFydHcxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c20zcGFydHcycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3BhcnR3MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c20zcGFydHcycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3BhcnR3MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNtM3NzMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTNzczFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNtM3NzMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTNzczFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c20zdHQxYXFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQxYXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbTN0dDFhcV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDFhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNtM3R0MWJxX3UzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3R0MWJxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNTApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c20zdHQxYnFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQxYnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA1MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbTN0dDJhcV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDJhcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDUwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNtM3R0MmFxX3UzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtM3R0MmFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgX19wMywgNTApOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c20zdHQyYnFfdTMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDMyeDRfdCBfX3MyID0gX19wMjsgXAogIHVpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c20zdHQyYnFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA1MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzbTN0dDJicV91MzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTN0dDJicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDUwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1NNNCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2c200ZXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c200ZXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnNtNGVxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzbTRla2V5cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzbTRla2V5cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c200ZWtleXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNtNGVrZXlxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2Y3Z0YXFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0YXFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZjdnRhX3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3M2NF92KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y3Z0YXFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YXFfdTY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y3Z0YXFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YXFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRhX3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTY0X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjdnRtcV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfczY0X3YoKGludDh4MTZfdClfX3AwLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZjdnRtcV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfczY0X3YoKGludDh4MTZfdClfX3JldjAsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBpbnQ2NHgxX3QgdmN2dG1fczY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dG1fczY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjdnRtcV91NjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV91NjRfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjdnRtcV91NjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV91NjRfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmN2dG1fdTY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV91NjRfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmN2dG5xX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRucV9zNjRfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmN2dG5xX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRucV9zNjRfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2Y3Z0bl9zNjRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl9zNjRfdigoaW50OHg4X3QpX19wMCwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmN2dG5xX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3U2NF92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmN2dG5xX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3U2NF92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y3Z0bl91NjRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3U2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2Y3Z0cHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0cHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgaW50NjR4MV90IHZjdnRwX3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3M2NF92KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y3Z0cHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cHFfdTY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y3Z0cHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cHFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRwX3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTY0X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHg4X3QgdnJlaW50ZXJwcmV0X3A4X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfczgoaW50OHg4X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IHZyZWludGVycHJldF9wNjRfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIHBvbHk2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfczgoaW50OHg4X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3MzMihpbnQzMngyX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDRfdCB2cmVpbnRlcnByZXRfcDE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk4eDE2X3QgdnJlaW50ZXJwcmV0cV9wOF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTEyOF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZyZWludGVycHJldHFfcDEyOF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTEyOF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTI4X3QgdnJlaW50ZXJwcmV0cV9wMTI4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF91OCh1aW50OHgxNl90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfczgoaW50OHgxNl90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4Ml90IHZyZWludGVycHJldHFfcDY0X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng4X3QgdnJlaW50ZXJwcmV0cV9wMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4MTZfdCB2cmVpbnRlcnByZXRxX3U4X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV91MzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCB2cmVpbnRlcnByZXRxX3U2NF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IHZyZWludGVycHJldHFfdTE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4MTZfdCB2cmVpbnRlcnByZXRxX3M4X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9zOChpbnQ4eDE2X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCB2cmVpbnRlcnByZXRxX2Y2NF9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9mNjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X3MxNihpbnQxNng4X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IHZyZWludGVycHJldHFfZjMyX3MzMihpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCB2cmVpbnRlcnByZXRxX2YzMl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3A4KHBvbHk4eDE2X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9mMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfZjE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfcDE2KHBvbHkxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91OCh1aW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgdnJlaW50ZXJwcmV0cV9zMzJfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IHZyZWludGVycHJldHFfczMyX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wOChwb2x5OHgxNl90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfcDEyOChwb2x5MTI4X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV9zNjRfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCB2cmVpbnRlcnByZXRxX3M2NF9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3AxMjgocG9seTEyOF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4OF90IHZyZWludGVycHJldHFfczE2X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCB2cmVpbnRlcnByZXRxX3MxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDh4OF90IHZyZWludGVycHJldF91OF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHg4X3QgdnJlaW50ZXJwcmV0X3U4X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX3M4KGludDh4OF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDJfdCB2cmVpbnRlcnByZXRfdTMyX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4Ml90IHZyZWludGVycHJldF91MzJfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2cmVpbnRlcnByZXRfdTY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3U2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4NF90IHZyZWludGVycHJldF91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3UxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHg4X3QgdnJlaW50ZXJwcmV0X3M4X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDhfdCB2cmVpbnRlcnByZXRfczhfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9wOChwb2x5OHg4X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfdTgodWludDh4OF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdnJlaW50ZXJwcmV0X2Y2NF9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3MzMihpbnQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDFfdCB2cmVpbnRlcnByZXRfZjY0X3MxNihpbnQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91OCh1aW50OHg4X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX3M4KGludDh4OF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgdnJlaW50ZXJwcmV0X2YzMl9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDgocG9seTh4OF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfczgoaW50OHg4X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IHZyZWludGVycHJldF9mMTZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDgocG9seTh4OF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfczgoaW50OHg4X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3MzMl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3M2NChpbnQ2NHgxX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfcDY0KHBvbHk2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91OCh1aW50OHg4X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZyZWludGVycHJldF9zNjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9wMTYocG9seTE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTgodWludDh4OF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDRfdCB2cmVpbnRlcnByZXRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgX19BUk1fQVJDSCA+PSA4ICYmIGRlZmluZWQoX19hYXJjaDY0X18pICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9ESVJFQ1RFRF9ST1VORElORykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJuZHFfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cm5kcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnJuZF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cm5kX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZGFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kYXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRhX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRhX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZGlxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRpcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRpX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZG1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRtcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kbXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRtX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRtX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZG5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRucV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRucV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kbnFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRuX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRuX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHBxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwcV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmRwcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kcHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmRwX2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRwX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJuZHhxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZybmR4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5keHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZybmR4X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZybmR4X3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCiNpZiBfX0FSTV9BUkNIID49IDggJiYgZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZSSU5UKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kMzJ4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQzMnhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQzMnhxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDMyeF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ4X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQzMnhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDMyeF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kMzJ6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ6cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQzMnpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQzMnpxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDMyel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kMzJ6X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQzMnpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDMyel92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kNjR4cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR4cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQ2NHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQ2NHhxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDY0eF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR4X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQ2NHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDY0eF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cm5kNjR6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR6cV92KChpbnQ4eDE2X3QpX19wMCwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZybmQ2NHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmQ2NHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnJuZDY0el9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cm5kNjR6X3YoKGludDh4OF90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZybmQ2NHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnJuZDY0el92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIF9fQVJNX0FSQ0ggPj0gOCAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfTlVNRVJJQ19NQVhNSU4pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtYXhubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1heG5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm1heG5tcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1heG5tX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWlubm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtaW5ubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtaW5ubV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bWlubm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQkYxNikgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pCl9fYWkgcG9seTh4OF90IHZyZWludGVycHJldF9wOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDFfdCB2cmVpbnRlcnByZXRfcDY0X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxNng0X3QgdnJlaW50ZXJwcmV0X3AxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5OHgxNl90IHZyZWludGVycHJldHFfcDhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTY0eDJfdCB2cmVpbnRlcnByZXRxX3A2NF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4OF90IHZyZWludGVycHJldHFfcDE2X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV91OF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJ4NF90IHZyZWludGVycHJldHFfdTMyX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgyX3QgdnJlaW50ZXJwcmV0cV91NjRfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCB2cmVpbnRlcnByZXRxX3UxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4eDE2X3QgdnJlaW50ZXJwcmV0cV9zOF9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IHZyZWludGVycHJldF9mMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfZjE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4Ml90IHZyZWludGVycHJldF9zMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDFfdCB2cmVpbnRlcnByZXRfczY0X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng0X3QgdnJlaW50ZXJwcmV0X3MxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wOChwb2x5OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3AxNihwb2x5MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczgoaW50OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3MxNihpbnQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9wOChwb2x5OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9wNjQocG9seTY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3AxNihwb2x5MTZ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTgodWludDh4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91NjQodWludDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczgoaW50OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2KSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQpfX2FpIHBvbHk4eDhfdCB2cmVpbnRlcnByZXRfcDhfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgxX3QgdnJlaW50ZXJwcmV0X3A2NF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5MTZ4NF90IHZyZWludGVycHJldF9wMTZfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTh4MTZfdCB2cmVpbnRlcnByZXRxX3A4X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHkxMjhfdCB2cmVpbnRlcnByZXRxX3AxMjhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHBvbHk2NHgyX3QgdnJlaW50ZXJwcmV0cV9wNjRfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTE2eDhfdCB2cmVpbnRlcnByZXRxX3AxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OHgxNl90IHZyZWludGVycHJldHFfdThfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCB2cmVpbnRlcnByZXRxX3UzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IHZyZWludGVycHJldHFfdTY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV91MTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OHgxNl90IHZyZWludGVycHJldHFfczhfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IHZyZWludGVycHJldHFfZjY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgdnJlaW50ZXJwcmV0cV9mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2YxNl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCB2cmVpbnRlcnByZXRxX3MzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4Ml90IHZyZWludGVycHJldHFfczY0X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgdnJlaW50ZXJwcmV0cV9zMTZfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4eDhfdCB2cmVpbnRlcnByZXRfdThfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgdnJlaW50ZXJwcmV0X3UzMl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZyZWludGVycHJldF91NjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDRfdCB2cmVpbnRlcnByZXRfdTE2X2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDh4OF90IHZyZWludGVycHJldF9zOF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4MV90IHZyZWludGVycHJldF9mNjRfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCB2cmVpbnRlcnByZXRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2YxNl9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCB2cmVpbnRlcnByZXRfczMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgxX3QgdnJlaW50ZXJwcmV0X3M2NF9iZjE2KGJmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZ4NF90IHZyZWludGVycHJldF9zMTZfYmYxNihiZmxvYXQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wMTI4KHBvbHkxMjhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9wMTYocG9seTE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl91OCh1aW50OHgxNl90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3UzMih1aW50MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3M4KGludDh4MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IHZyZWludGVycHJldHFfYmYxNl9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng4X3QgdnJlaW50ZXJwcmV0cV9iZjE2X3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDhfdCB2cmVpbnRlcnByZXRxX2JmMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfcDE2KHBvbHkxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91OCh1aW50OHg4X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3U2NCh1aW50NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4NF90IHZyZWludGVycHJldF9iZjE2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCB2cmVpbnRlcnByZXRfYmYxNl9zNjQoaW50NjR4MV90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KShfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgdnJlaW50ZXJwcmV0X2JmMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0JGMTZfVkVDVE9SX0FSSVRITUVUSUMpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdHFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDExKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfc3BsYXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lX3YoKGludDh4OF90KV9fczAsIF9fcDEsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgc3BsYXRfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZV92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHNwbGF0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0X2xhbmVfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSBzcGxhdHFfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdHFfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3NwbGF0cV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fc3BsYXRxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHNwbGF0X2xhbmVxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9zcGxhdF9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSBzcGxhdF9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgNDMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF9zcGxhdF9sYW5lcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fc3BsYXRfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIF9fcDEsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmZG90cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJmZG90X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92YmZkb3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmJmZG90X2YzMihmbG9hdDMyeDJfdCBfX3AwLCBiZmxvYXQxNng0X3QgX19wMSwgYmZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmJmZG90X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmJmZG90cV9sYW5lX2YzMihfX3AwXzE0MiwgX19wMV8xNDIsIF9fcDJfMTQyLCBfX3AzXzE0MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNDIgPSBfX3AwXzE0MjsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzE0MiA9IF9fcDFfMTQyOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfMTQyID0gX19wMl8xNDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNDI7IFwKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTQyID0gX19zMl8xNDI7IFwKZmxvYXQzMng0X3QgX19yZWludDFfMTQyID0gc3BsYXRxX2xhbmVfZjMyKCooZmxvYXQzMngyX3QgKikgJl9fcmVpbnRfMTQyLCBfX3AzXzE0Mik7IFwKICBfX3JldF8xNDIgPSB2YmZkb3RxX2YzMihfX3MwXzE0MiwgX19zMV8xNDIsICooYmZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8xNDIpOyBcCiAgX19yZXRfMTQyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90cV9sYW5lX2YzMihfX3AwXzE0MywgX19wMV8xNDMsIF9fcDJfMTQzLCBfX3AzXzE0MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNDMgPSBfX3AwXzE0MzsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzE0MyA9IF9fcDFfMTQzOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfMTQzID0gX19wMl8xNDM7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTQzOyAgX19yZXYwXzE0MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQzLCBfX3MwXzE0MywgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxXzE0MzsgIF9fcmV2MV8xNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0MywgX19zMV8xNDMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2Ml8xNDM7ICBfX3JldjJfMTQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xNDMsIF9fczJfMTQzLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE0MzsgXApiZmxvYXQxNng0X3QgX19yZWludF8xNDMgPSBfX3JldjJfMTQzOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnQxXzE0MyA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2YzMigqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50XzE0MywgX19wM18xNDMpOyBcCiAgX19yZXRfMTQzID0gX19ub3N3YXBfdmJmZG90cV9mMzIoX19yZXYwXzE0MywgX19yZXYxXzE0MywgKihiZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzE0Myk7IFwKICBfX3JldF8xNDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNDMsIF9fcmV0XzE0MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNDM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2YmZkb3RfbGFuZV9mMzIoX19wMF8xNDQsIF9fcDFfMTQ0LCBfX3AyXzE0NCwgX19wM18xNDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ0ID0gX19wMF8xNDQ7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDQgPSBfX3AxXzE0NDsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE0NCA9IF9fcDJfMTQ0OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTQ0OyBcCmJmbG9hdDE2eDRfdCBfX3JlaW50XzE0NCA9IF9fczJfMTQ0OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0NCA9IHNwbGF0X2xhbmVfZjMyKCooZmxvYXQzMngyX3QgKikgJl9fcmVpbnRfMTQ0LCBfX3AzXzE0NCk7IFwKICBfX3JldF8xNDQgPSB2YmZkb3RfZjMyKF9fczBfMTQ0LCBfX3MxXzE0NCwgKihiZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzE0NCk7IFwKICBfX3JldF8xNDQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2YmZkb3RfbGFuZV9mMzIoX19wMF8xNDUsIF9fcDFfMTQ1LCBfX3AyXzE0NSwgX19wM18xNDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ1ID0gX19wMF8xNDU7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDUgPSBfX3AxXzE0NTsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE0NSA9IF9fcDJfMTQ1OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzE0NTsgIF9fcmV2MF8xNDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE0NSwgX19zMF8xNDUsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MV8xNDU7ICBfX3JldjFfMTQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xNDUsIF9fczFfMTQ1LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjJfMTQ1OyAgX19yZXYyXzE0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTQ1LCBfX3MyXzE0NSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNDU7IFwKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTQ1ID0gX19yZXYyXzE0NTsgXApmbG9hdDMyeDJfdCBfX3JlaW50MV8xNDUgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YzMigqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50XzE0NSwgX19wM18xNDUpOyBcCiAgX19yZXRfMTQ1ID0gX19ub3N3YXBfdmJmZG90X2YzMihfX3JldjBfMTQ1LCBfX3JldjFfMTQ1LCAqKGJmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMTQ1KTsgXAogIF9fcmV0XzE0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0NSwgX19yZXRfMTQ1LCAxLCAwKTsgXAogIF9fcmV0XzE0NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZmRvdHFfbGFuZXFfZjMyKF9fcDBfMTQ2LCBfX3AxXzE0NiwgX19wMl8xNDYsIF9fcDNfMTQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE0NiA9IF9fcDBfMTQ2OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfMTQ2ID0gX19wMV8xNDY7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNDYgPSBfX3AyXzE0NjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE0NjsgXApiZmxvYXQxNng4X3QgX19yZWludF8xNDYgPSBfX3MyXzE0NjsgXApmbG9hdDMyeDRfdCBfX3JlaW50MV8xNDYgPSBzcGxhdHFfbGFuZXFfZjMyKCooZmxvYXQzMng0X3QgKikgJl9fcmVpbnRfMTQ2LCBfX3AzXzE0Nik7IFwKICBfX3JldF8xNDYgPSB2YmZkb3RxX2YzMihfX3MwXzE0NiwgX19zMV8xNDYsICooYmZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8xNDYpOyBcCiAgX19yZXRfMTQ2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90cV9sYW5lcV9mMzIoX19wMF8xNDcsIF9fcDFfMTQ3LCBfX3AyXzE0NywgX19wM18xNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTQ3ID0gX19wMF8xNDc7IFwKICBiZmxvYXQxNng4X3QgX19zMV8xNDcgPSBfX3AxXzE0NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE0NyA9IF9fcDJfMTQ3OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE0NzsgIF9fcmV2MF8xNDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE0NywgX19zMF8xNDcsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MV8xNDc7ICBfX3JldjFfMTQ3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xNDcsIF9fczFfMTQ3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjJfMTQ3OyAgX19yZXYyXzE0NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTQ3LCBfX3MyXzE0NywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNDc7IFwKYmZsb2F0MTZ4OF90IF9fcmVpbnRfMTQ3ID0gX19yZXYyXzE0NzsgXApmbG9hdDMyeDRfdCBfX3JlaW50MV8xNDcgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKCooZmxvYXQzMng0X3QgKikgJl9fcmVpbnRfMTQ3LCBfX3AzXzE0Nyk7IFwKICBfX3JldF8xNDcgPSBfX25vc3dhcF92YmZkb3RxX2YzMihfX3JldjBfMTQ3LCBfX3JldjFfMTQ3LCAqKGJmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMTQ3KTsgXAogIF9fcmV0XzE0NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0NywgX19yZXRfMTQ3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE0NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZmRvdF9sYW5lcV9mMzIoX19wMF8xNDgsIF9fcDFfMTQ4LCBfX3AyXzE0OCwgX19wM18xNDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTQ4ID0gX19wMF8xNDg7IFwKICBiZmxvYXQxNng0X3QgX19zMV8xNDggPSBfX3AxXzE0ODsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE0OCA9IF9fcDJfMTQ4OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTQ4OyBcCmJmbG9hdDE2eDhfdCBfX3JlaW50XzE0OCA9IF9fczJfMTQ4OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0OCA9IHNwbGF0X2xhbmVxX2YzMigqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50XzE0OCwgX19wM18xNDgpOyBcCiAgX19yZXRfMTQ4ID0gdmJmZG90X2YzMihfX3MwXzE0OCwgX19zMV8xNDgsICooYmZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8xNDgpOyBcCiAgX19yZXRfMTQ4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmZG90X2xhbmVxX2YzMihfX3AwXzE0OSwgX19wMV8xNDksIF9fcDJfMTQ5LCBfX3AzXzE0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNDkgPSBfX3AwXzE0OTsgXAogIGJmbG9hdDE2eDRfdCBfX3MxXzE0OSA9IF9fcDFfMTQ5OyBcCiAgYmZsb2F0MTZ4OF90IF9fczJfMTQ5ID0gX19wMl8xNDk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTQ5OyAgX19yZXYwXzE0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTQ5LCBfX3MwXzE0OSwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxXzE0OTsgIF9fcmV2MV8xNDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE0OSwgX19zMV8xNDksIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2Ml8xNDk7ICBfX3JldjJfMTQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xNDksIF9fczJfMTQ5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE0OTsgXApiZmxvYXQxNng4X3QgX19yZWludF8xNDkgPSBfX3JldjJfMTQ5OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnQxXzE0OSA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMigqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50XzE0OSwgX19wM18xNDkpOyBcCiAgX19yZXRfMTQ5ID0gX19ub3N3YXBfdmJmZG90X2YzMihfX3JldjBfMTQ5LCBfX3JldjFfMTQ5LCAqKGJmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMTQ5KTsgXAogIF9fcmV0XzE0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE0OSwgX19yZXRfMTQ5LCAxLCAwKTsgXAogIF9fcmV0XzE0OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1sYWxicV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWxicV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YmZtbGFsYnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWxicV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmbWxhbGJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbWxhbGJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1sYWx0cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgYmZsb2F0MTZ4OF90IF9fcDEsIGJmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWx0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2YmZtbGFsdHFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1sYWx0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmJmbWxhbHRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbWxhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZiZm1tbGFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBiZmxvYXQxNng4X3QgX19wMSwgYmZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmJmbW1sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmJmbW1sYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGJmbG9hdDE2eDhfdCBfX3AxLCBiZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZiZm1tbGFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmNvbWJpbmVfYmYxNihiZmxvYXQxNng0X3QgX19wMCwgYmZsb2F0MTZ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmNvbWJpbmVfYmYxNihiZmxvYXQxNng0X3QgX19wMCwgYmZsb2F0MTZ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IF9fbm9zd2FwX3Zjb21iaW5lX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDAsIGJmbG9hdDE2eDRfdCBfX3AxKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Y3JlYXRlX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgdWludDY0X3QgX19wcm9tb3RlID0gX19wMDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDBfMTUwKSB7CiAgZmxvYXQzMng0X3QgX19yZXRfMTUwOwpiZmxvYXQxNng0X3QgX19yZWludF8xNTAgPSBfX3AwXzE1MDsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MCA9IHZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MCwgMTYpOwogIF9fcmV0XzE1MCA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MDsKICByZXR1cm4gX19yZXRfMTUwOwp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9mMzJfYmYxNihiZmxvYXQxNng0X3QgX19wMF8xNTEpIHsKICBiZmxvYXQxNng0X3QgX19yZXYwXzE1MTsgIF9fcmV2MF8xNTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwXzE1MSwgX19wMF8xNTEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0XzE1MTsKYmZsb2F0MTZ4NF90IF9fcmVpbnRfMTUxID0gX19yZXYwXzE1MTsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MSA9IF9fbm9zd2FwX3ZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MSwgMTYpOwogIF9fcmV0XzE1MSA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MTsKICBfX3JldF8xNTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTEsIF9fcmV0XzE1MSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzE1MTsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjdnRfZjMyX2JmMTYoYmZsb2F0MTZ4NF90IF9fcDBfMTUyKSB7CiAgZmxvYXQzMng0X3QgX19yZXRfMTUyOwpiZmxvYXQxNng0X3QgX19yZWludF8xNTIgPSBfX3AwXzE1MjsKaW50MzJ4NF90IF9fcmVpbnQxXzE1MiA9IF9fbm9zd2FwX3ZzaGxsX25fczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzE1MiwgMTYpOwogIF9fcmV0XzE1MiA9ICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE1MjsKICByZXR1cm4gX19yZXRfMTUyOwp9CiNlbmRpZgoKX19haSBmbG9hdDMyX3QgdmN2dGFoX2YzMl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKYmZsb2F0MTZfdCBfX3JlaW50ID0gX19wMDsKaW50MzJfdCBfX3JlaW50MSA9ICooaW50MzJfdCAqKSAmX19yZWludCA8PCAxNjsKICBfX3JldCA9ICooZmxvYXQzMl90ICopICZfX3JlaW50MTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNl90IHZjdnRoX2JmMTZfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgYmZsb2F0MTZfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0aF9iZjE2X2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGhfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2JmMTYoX19wMF8xNTMsIF9fcDFfMTUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTMgPSBfX3AwXzE1MzsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTM7IFwKICBfX3JldF8xNTMgPSBzcGxhdHFfbGFuZV9iZjE2KF9fczBfMTUzLCBfX3AxXzE1Myk7IFwKICBfX3JldF8xNTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2JmMTYoX19wMF8xNTQsIF9fcDFfMTU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTQgPSBfX3AwXzE1NDsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTU0OyAgX19yZXYwXzE1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTU0LCBfX3MwXzE1NCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXRfMTU0OyBcCiAgX19yZXRfMTU0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfYmYxNihfX3JldjBfMTU0LCBfX3AxXzE1NCk7IFwKICBfX3JldF8xNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTQsIF9fcmV0XzE1NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVfYmYxNihfX3AwXzE1NSwgX19wMV8xNTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwXzE1NSA9IF9fcDBfMTU1OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE1NTsgXAogIF9fcmV0XzE1NSA9IHNwbGF0X2xhbmVfYmYxNihfX3MwXzE1NSwgX19wMV8xNTUpOyBcCiAgX19yZXRfMTU1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX2JmMTYoX19wMF8xNTYsIF9fcDFfMTU2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNTYgPSBfX3AwXzE1NjsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTU2OyAgX19yZXYwXzE1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTU2LCBfX3MwXzE1NiwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTU2OyBcCiAgX19yZXRfMTU2ID0gX19ub3N3YXBfc3BsYXRfbGFuZV9iZjE2KF9fcmV2MF8xNTYsIF9fcDFfMTU2KTsgXAogIF9fcmV0XzE1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE1NiwgX19yZXRfMTU2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2JmMTYoKGJmbG9hdDE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZXFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfYmYxNigoYmZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX2JmMTYoX19wMF8xNTcsIF9fcDFfMTU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNTcgPSBfX3AwXzE1NzsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTc7IFwKICBfX3JldF8xNTcgPSBzcGxhdHFfbGFuZXFfYmYxNihfX3MwXzE1NywgX19wMV8xNTcpOyBcCiAgX19yZXRfMTU3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfYmYxNihfX3AwXzE1OCwgX19wMV8xNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MwXzE1OCA9IF9fcDBfMTU4OyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MF8xNTg7ICBfX3JldjBfMTU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNTgsIF9fczBfMTU4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNTg7IFwKICBfX3JldF8xNTggPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfYmYxNihfX3JldjBfMTU4LCBfX3AxXzE1OCk7IFwKICBfX3JldF8xNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNTgsIF9fcmV0XzE1OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2JmMTYoX19wMF8xNTksIF9fcDFfMTU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNTkgPSBfX3AwXzE1OTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldF8xNTk7IFwKICBfX3JldF8xNTkgPSBzcGxhdF9sYW5lcV9iZjE2KF9fczBfMTU5LCBfX3AxXzE1OSk7IFwKICBfX3JldF8xNTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX2JmMTYoX19wMF8xNjAsIF9fcDFfMTYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNjAgPSBfX3AwXzE2MDsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTYwOyAgX19yZXYwXzE2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTYwLCBfX3MwXzE2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTYwOyBcCiAgX19yZXRfMTYwID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfYmYxNihfX3JldjBfMTYwLCBfX3AxXzE2MCk7IFwKICBfX3JldF8xNjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjAsIF9fcmV0XzE2MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmR1cHFfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmR1cHFfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZkdXBfbl9iZjE2KGJmbG9hdDE2X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIHtfX3AwLCBfX3AwLCBfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmR1cF9uX2JmMTYoYmZsb2F0MTZfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkge19fcDAsIF9fcDAsIF9fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng0X3QgdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDQsIDUsIDYsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgX19ub3N3YXBfdmdldF9oaWdoX2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA0LCA1LCA2LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfYmYxNigoYmZsb2F0MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfYmYxNigoYmZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9iZjE2KChiZmxvYXQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRfbGFuZV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfYmYxNigoYmZsb2F0MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2JmMTYoKGJmbG9hdDE2eDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZnZXRfbG93X2JmMTYoYmZsb2F0MTZ4OF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwLCAxLCAyLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng0X3QgdmdldF9sb3dfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMCwgMSwgMiwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGJmbG9hdDE2eDRfdCBfX25vc3dhcF92Z2V0X2xvd19iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCwgMSwgMiwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQzKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmxkMXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0Myk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94Ml92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2JmMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9iZjE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMV9iZjE2X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxX2JmMTZfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3g0X3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMl9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2R1cF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQyX2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDExKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM19kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNfZHVwX2JmMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM19sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDQzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgMTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDMpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0X2R1cF9iZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9kdXBfdigmX19yZXQsIF9fcDAsIDExKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNF9kdXBfYmYxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0Myk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxMSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldHFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfYmYxNihfX3MwLCAoYmZsb2F0MTZ4OF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDhfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDRfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnNldF9sYW5lX2JmMTYoX19zMCwgKGJmbG9hdDE2eDRfdClfX3JldjEsIF9fcDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92c2V0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgYmZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfYmYxNihfX3MwLCAoYmZsb2F0MTZ4NF90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fczEsIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3YoX19wMCwgKGludDh4OF90KV9fcmV2MSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MV9iZjE2X3gyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxX2JmMTZfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDRfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFfYmYxNl94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0Ml9iZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4Ml90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0Myk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgyX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QyX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QyX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDJfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19yZXYxLnZhbFswXSwgKGludDh4OF90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDExKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng4eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAxMSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzX2JmMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQzKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDNfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzX2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDR4M190IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4NHgzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDhfdClfX3JldjEudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDh4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDQzKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDExKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRfYmYxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIGJmbG9hdDE2eDR4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCAxMSk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDMpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9iZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGJmbG9hdDE2eDh4NF90IF9fczEgPSBfX3AxOyBcCiAgYmZsb2F0MTZ4OHg0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0Myk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0X2xhbmVfYmYxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NF9sYW5lX2JmMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NHg0X3QgX19zMSA9IF9fcDE7IFwKICBiZmxvYXQxNng0eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3JldjEudmFsWzBdLCAoaW50OHg4X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEudmFsWzNdLCBfX3AyLCAxMSk7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IF9fYTMyX3ZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX19fYTMyX3ZjdnRfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgMTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDRfdCBfX2EzMl92Y3Z0X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl9fX2EzMl92Y3Z0X2JmMTZfdigoaW50OHgxNl90KV9fcmV2MCwgMTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBiZmxvYXQxNng0X3QgX19ub3N3YXBfX19hMzJfdmN2dF9iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fX19hMzJfdmN2dF9iZjE2X3YoKGludDh4MTZfdClfX3AwLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYTMyX3ZjdnRfYmYxNl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX19fYTMyX3ZjdnRfYmYxNl9mMzIoX19yZXYwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgYmZsb2F0MTZ4OF90IHZjdnRxX2hpZ2hfYmYxNl9mMzIoYmZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9iZjE2KF9fYTMyX3ZjdnRfYmYxNl9mMzIoX19wMSksIHZnZXRfbG93X2JmMTYoX19wMCkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDhfdCB2Y3Z0cV9oaWdoX2JmMTZfZjMyKGJmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX2JmMTYoX19ub3N3YXBfX19hMzJfdmN2dF9iZjE2X2YzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2xvd19iZjE2KF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9iZjE2KChiZmxvYXQxNng0X3QpKDBVTEwpLCBfX2EzMl92Y3Z0X2JmMTZfZjMyKF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9iZjE2KChiZmxvYXQxNng0X3QpKDBVTEwpLCBfX25vc3dhcF9fX2EzMl92Y3Z0X2JmMTZfZjMyKF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9CRjE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgX19hNjRfdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoYmZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl9fX2E2NF92Y3Z0cV9sb3dfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgNDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGJmbG9hdDE2eDhfdCBfX2E2NF92Y3Z0cV9sb3dfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX19fYTY0X3ZjdnRxX2xvd19iZjE2X3YoKGludDh4MTZfdClfX3JldjAsIDQzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgYmZsb2F0MTZ4OF90IF9fbm9zd2FwX19fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fX19hNjRfdmN2dHFfbG93X2JmMTZfdigoaW50OHgxNl90KV9fcDAsIDQzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9iZjE2KF9fcDBfMTYxLCBfX3AxXzE2MSwgX19wMl8xNjEsIF9fcDNfMTYxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng4X3QgX19zMF8xNjEgPSBfX3AwXzE2MTsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE2MSA9IF9fcDJfMTYxOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2MTsgXAogIF9fcmV0XzE2MSA9IHZzZXRxX2xhbmVfYmYxNih2Z2V0X2xhbmVfYmYxNihfX3MyXzE2MSwgX19wM18xNjEpLCBfX3MwXzE2MSwgX19wMV8xNjEpOyBcCiAgX19yZXRfMTYxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfYmYxNihfX3AwXzE2MiwgX19wMV8xNjIsIF9fcDJfMTYyLCBfX3AzXzE2MikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTYyID0gX19wMF8xNjI7IFwKICBiZmxvYXQxNng0X3QgX19zMl8xNjIgPSBfX3AyXzE2MjsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTYyOyAgX19yZXYwXzE2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTYyLCBfX3MwXzE2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYyXzE2MjsgIF9fcmV2Ml8xNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2MiwgX19zMl8xNjIsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2MjsgXAogIF9fcmV0XzE2MiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfMTYyLCBfX3AzXzE2MiksIF9fcmV2MF8xNjIsIF9fcDFfMTYyKTsgXAogIF9fcmV0XzE2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE2MiwgX19yZXRfMTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfYmYxNihfX3AwXzE2MywgX19wMV8xNjMsIF9fcDJfMTYzLCBfX3AzXzE2MykgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczBfMTYzID0gX19wMF8xNjM7IFwKICBiZmxvYXQxNng0X3QgX19zMl8xNjMgPSBfX3AyXzE2MzsgXAogIGJmbG9hdDE2eDRfdCBfX3JldF8xNjM7IFwKICBfX3JldF8xNjMgPSB2c2V0X2xhbmVfYmYxNih2Z2V0X2xhbmVfYmYxNihfX3MyXzE2MywgX19wM18xNjMpLCBfX3MwXzE2MywgX19wMV8xNjMpOyBcCiAgX19yZXRfMTYzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9iZjE2KF9fcDBfMTY0LCBfX3AxXzE2NCwgX19wMl8xNjQsIF9fcDNfMTY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNjQgPSBfX3AwXzE2NDsgXAogIGJmbG9hdDE2eDRfdCBfX3MyXzE2NCA9IF9fcDJfMTY0OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2MF8xNjQ7ICBfX3JldjBfMTY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xNjQsIF9fczBfMTY0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjJfMTY0OyAgX19yZXYyXzE2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTY0LCBfX3MyXzE2NCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXRfMTY0OyBcCiAgX19yZXRfMTY0ID0gX19ub3N3YXBfdnNldF9sYW5lX2JmMTYoX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzE2NCwgX19wM18xNjQpLCBfX3JldjBfMTY0LCBfX3AxXzE2NCk7IFwKICBfX3JldF8xNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjQsIF9fcmV0XzE2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfYmYxNihfX3AwXzE2NSwgX19wMV8xNjUsIF9fcDJfMTY1LCBfX3AzXzE2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTY1ID0gX19wMF8xNjU7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjUgPSBfX3AyXzE2NTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldF8xNjU7IFwKICBfX3JldF8xNjUgPSB2c2V0cV9sYW5lX2JmMTYodmdldHFfbGFuZV9iZjE2KF9fczJfMTY1LCBfX3AzXzE2NSksIF9fczBfMTY1LCBfX3AxXzE2NSk7IFwKICBfX3JldF8xNjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfYmYxNihfX3AwXzE2NiwgX19wMV8xNjYsIF9fcDJfMTY2LCBfX3AzXzE2NikgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4OF90IF9fczBfMTY2ID0gX19wMF8xNjY7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjYgPSBfX3AyXzE2NjsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjBfMTY2OyAgX19yZXYwXzE2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTY2LCBfX3MwXzE2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzE2NjsgIF9fcmV2Ml8xNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2NiwgX19zMl8xNjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV0XzE2NjsgXAogIF9fcmV0XzE2NiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfYmYxNihfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzE2NiwgX19wM18xNjYpLCBfX3JldjBfMTY2LCBfX3AxXzE2Nik7IFwKICBfX3JldF8xNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNjYsIF9fcmV0XzE2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9iZjE2KF9fcDBfMTY3LCBfX3AxXzE2NywgX19wMl8xNjcsIF9fcDNfMTY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBiZmxvYXQxNng0X3QgX19zMF8xNjcgPSBfX3AwXzE2NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzE2NyA9IF9fcDJfMTY3OyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE2NzsgXAogIF9fcmV0XzE2NyA9IHZzZXRfbGFuZV9iZjE2KHZnZXRxX2xhbmVfYmYxNihfX3MyXzE2NywgX19wM18xNjcpLCBfX3MwXzE2NywgX19wMV8xNjcpOyBcCiAgX19yZXRfMTY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfYmYxNihfX3AwXzE2OCwgX19wMV8xNjgsIF9fcDJfMTY4LCBfX3AzXzE2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgYmZsb2F0MTZ4NF90IF9fczBfMTY4ID0gX19wMF8xNjg7IFwKICBiZmxvYXQxNng4X3QgX19zMl8xNjggPSBfX3AyXzE2ODsgXAogIGJmbG9hdDE2eDRfdCBfX3JldjBfMTY4OyAgX19yZXYwXzE2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTY4LCBfX3MwXzE2OCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzE2ODsgIF9fcmV2Ml8xNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE2OCwgX19zMl8xNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV0XzE2ODsgXAogIF9fcmV0XzE2OCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9iZjE2KF9fbm9zd2FwX3ZnZXRxX2xhbmVfYmYxNihfX3JldjJfMTY4LCBfX3AzXzE2OCksIF9fcmV2MF8xNjgsIF9fcDFfMTY4KTsgXAogIF9fcmV0XzE2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE2OCwgX19yZXRfMTY4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE2ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGJmbG9hdDE2eDRfdCB2Y3Z0X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBiZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Z2V0X2xvd19iZjE2KF9fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihfX3AwKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4NF90IHZjdnRfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGJmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZnZXRfbG93X2JmMTYoX19ub3N3YXBfX19hNjRfdmN2dHFfbG93X2JmMTZfZjMyKF9fcmV2MCkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBiZmxvYXQxNng4X3QgdmN2dHFfaGlnaF9iZjE2X2YzMihiZmxvYXQxNng4X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChiZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2hpZ2hfYmYxNl92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Myk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgYmZsb2F0MTZ4OF90IHZjdnRxX2hpZ2hfYmYxNl9mMzIoYmZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBiZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgYmZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGJmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfaGlnaF9iZjE2X3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Myk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGJmbG9hdDE2eDhfdCB2Y3Z0cV9sb3dfYmYxNl9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYTY0X3ZjdnRxX2xvd19iZjE2X2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBiZmxvYXQxNng4X3QgdmN2dHFfbG93X2JmMTZfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBiZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF9fX2E2NF92Y3Z0cV9sb3dfYmYxNl9mMzIoX19yZXYwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQ09NUExFWCkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90MjcwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90MjcwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDI3MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y2FkZF9yb3Q5MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZF9yb3Q5MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmNhZGRfcm90OTBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90OTBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZHFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y2FkZHFfcm90MjcwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNhZGRxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y21sYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZjbWxhcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNtbGFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNtbGFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y21sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCBfX25vc3dhcF92Y21sYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX2xhbmVfZjMyKF9fcDBfMTY5LCBfX3AxXzE2OSwgX19wMl8xNjksIF9fcDNfMTY5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE2OSA9IF9fcDBfMTY5OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNjkgPSBfX3AxXzE2OTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTY5ID0gX19wMl8xNjk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNjk7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNjkgPSBfX3MyXzE2OTsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE2OSA9ICh1aW50NjR4MV90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTY5LCBfX3AzXzE2OSl9OyBcCiAgX19yZXRfMTY5ID0gdmNtbGFfZjMyKF9fczBfMTY5LCBfX3MxXzE2OSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTY5KTsgXAogIF9fcmV0XzE2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVfZjMyKF9fcDBfMTcwLCBfX3AxXzE3MCwgX19wMl8xNzAsIF9fcDNfMTcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3MCA9IF9fcDBfMTcwOyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzAgPSBfX3AxXzE3MDsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTcwID0gX19wMl8xNzA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTcwOyAgX19yZXYwXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTcwLCBfX3MwXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTcwOyAgX19yZXYxXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTcwLCBfX3MxXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTcwOyAgX19yZXYyXzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTcwLCBfX3MyXzE3MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzA7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzAgPSBfX3JldjJfMTcwOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTcwID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzAsIF9fcDNfMTcwKX07IFwKICBfX3JldF8xNzAgPSBfX25vc3dhcF92Y21sYV9mMzIoX19yZXYwXzE3MCwgX19yZXYxXzE3MCwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTcwKTsgXAogIF9fcmV0XzE3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE3MCwgX19yZXRfMTcwLCAxLCAwKTsgXAogIF9fcmV0XzE3MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9sYW5lX2YzMihfX3AwXzE3MSwgX19wMV8xNzEsIF9fcDJfMTcxLCBfX3AzXzE3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNzEgPSBfX3AwXzE3MTsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTcxID0gX19wMV8xNzE7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3MSA9IF9fcDJfMTcxOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTcxOyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTcxID0gX19zMl8xNzE7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xNzEgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3MSwgX19wM18xNzEpLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzEsIF9fcDNfMTcxKX07IFwKICBfX3JldF8xNzEgPSB2Y21sYXFfZjMyKF9fczBfMTcxLCBfX3MxXzE3MSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTcxKTsgXAogIF9fcmV0XzE3MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9sYW5lX2YzMihfX3AwXzE3MiwgX19wMV8xNzIsIF9fcDJfMTcyLCBfX3AzXzE3MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xNzIgPSBfX3AwXzE3MjsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTcyID0gX19wMV8xNzI7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3MiA9IF9fcDJfMTcyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE3MjsgIF9fcmV2MF8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE3MiwgX19zMF8xNzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzE3MjsgIF9fcmV2MV8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE3MiwgX19zMV8xNzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzE3MjsgIF9fcmV2Ml8xNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE3MiwgX19zMl8xNzIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTcyOyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTcyID0gX19yZXYyXzE3MjsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3MiA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTcyLCBfX3AzXzE3MiksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3MiwgX19wM18xNzIpfTsgXAogIF9fcmV0XzE3MiA9IF9fbm9zd2FwX3ZjbWxhcV9mMzIoX19yZXYwXzE3MiwgX19yZXYxXzE3MiwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTcyKTsgXAogIF9fcmV0XzE3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE3MiwgX19yZXRfMTcyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE3MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX2xhbmVxX2YzMihfX3AwXzE3MywgX19wMV8xNzMsIF9fcDJfMTczLCBfX3AzXzE3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNzMgPSBfX3AwXzE3MzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTczID0gX19wMV8xNzM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE3MyA9IF9fcDJfMTczOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTczOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTczID0gX19zMl8xNzM7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xNzMgPSAodWludDY0eDFfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xNzMsIF9fcDNfMTczKX07IFwKICBfX3JldF8xNzMgPSB2Y21sYV9mMzIoX19zMF8xNzMsIF9fczFfMTczLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xNzMpOyBcCiAgX19yZXRfMTczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjMyKF9fcDBfMTc0LCBfX3AxXzE3NCwgX19wMl8xNzQsIF9fcDNfMTc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3NCA9IF9fcDBfMTc0OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzQgPSBfX3AxXzE3NDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc0ID0gX19wMl8xNzQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTc0OyAgX19yZXYwXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc0LCBfX3MwXzE3NCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTc0OyAgX19yZXYxXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc0LCBfX3MxXzE3NCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTc0OyAgX19yZXYyXzE3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc0LCBfX3MyXzE3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzQ7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzQgPSBfX3JldjJfMTc0OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTc0ID0gKHVpbnQ2NHgxX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc0LCBfX3AzXzE3NCl9OyBcCiAgX19yZXRfMTc0ID0gX19ub3N3YXBfdmNtbGFfZjMyKF9fcmV2MF8xNzQsIF9fcmV2MV8xNzQsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE3NCk7IFwKICBfX3JldF8xNzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzQsIF9fcmV0XzE3NCwgMSwgMCk7IFwKICBfX3JldF8xNzQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZXFfZjMyKF9fcDBfMTc1LCBfX3AxXzE3NSwgX19wMl8xNzUsIF9fcDNfMTc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3NSA9IF9fcDBfMTc1OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzUgPSBfX3AxXzE3NTsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc1ID0gX19wMl8xNzU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzU7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzUgPSBfX3MyXzE3NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3NSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE3NSwgX19wM18xNzUpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc1LCBfX3AzXzE3NSl9OyBcCiAgX19yZXRfMTc1ID0gdmNtbGFxX2YzMihfX3MwXzE3NSwgX19zMV8xNzUsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE3NSk7IFwKICBfX3JldF8xNzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfbGFuZXFfZjMyKF9fcDBfMTc2LCBfX3AxXzE3NiwgX19wMl8xNzYsIF9fcDNfMTc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3NiA9IF9fcDBfMTc2OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzYgPSBfX3AxXzE3NjsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTc2ID0gX19wMl8xNzY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTc2OyAgX19yZXYwXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc2LCBfX3MwXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTc2OyAgX19yZXYxXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc2LCBfX3MxXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTc2OyAgX19yZXYyXzE3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc2LCBfX3MyXzE3NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzY7IFwKZmxvYXQzMng0X3QgX19yZWludF8xNzYgPSBfX3JldjJfMTc2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTc2ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTc2LCBfX3AzXzE3NiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xNzYsIF9fcDNfMTc2KX07IFwKICBfX3JldF8xNzYgPSBfX25vc3dhcF92Y21sYXFfZjMyKF9fcmV2MF8xNzYsIF9fcmV2MV8xNzYsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE3Nik7IFwKICBfX3JldF8xNzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzYsIF9fcmV0XzE3NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8xNzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y21sYXFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDE4MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmNtbGFfcm90MTgwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDE4MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QxODBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmNtbGFfcm90MTgwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDE4MF9sYW5lX2YzMihfX3AwXzE3NywgX19wMV8xNzcsIF9fcDJfMTc3LCBfX3AzXzE3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xNzcgPSBfX3AwXzE3NzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTc3ID0gX19wMV8xNzc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE3NyA9IF9fcDJfMTc3OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTc3OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTc3ID0gX19zMl8xNzc7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xNzcgPSAodWludDY0eDFfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3NywgX19wM18xNzcpfTsgXAogIF9fcmV0XzE3NyA9IHZjbWxhX3JvdDE4MF9mMzIoX19zMF8xNzcsIF9fczFfMTc3LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xNzcpOyBcCiAgX19yZXRfMTc3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjMyKF9fcDBfMTc4LCBfX3AxXzE3OCwgX19wMl8xNzgsIF9fcDNfMTc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE3OCA9IF9fcDBfMTc4OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xNzggPSBfX3AxXzE3ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTc4ID0gX19wMl8xNzg7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTc4OyAgX19yZXYwXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTc4LCBfX3MwXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTc4OyAgX19yZXYxXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTc4LCBfX3MxXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTc4OyAgX19yZXYyXzE3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTc4LCBfX3MyXzE3OCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xNzg7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzggPSBfX3JldjJfMTc4OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTc4ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xNzgsIF9fcDNfMTc4KX07IFwKICBfX3JldF8xNzggPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjMyKF9fcmV2MF8xNzgsIF9fcmV2MV8xNzgsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE3OCk7IFwKICBfX3JldF8xNzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xNzgsIF9fcmV0XzE3OCwgMSwgMCk7IFwKICBfX3JldF8xNzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVfZjMyKF9fcDBfMTc5LCBfX3AxXzE3OSwgX19wMl8xNzksIF9fcDNfMTc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE3OSA9IF9fcDBfMTc5OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xNzkgPSBfX3AxXzE3OTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTc5ID0gX19wMl8xNzk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xNzk7IFwKZmxvYXQzMngyX3QgX19yZWludF8xNzkgPSBfX3MyXzE3OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE3OSA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTc5LCBfX3AzXzE3OSksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE3OSwgX19wM18xNzkpfTsgXAogIF9fcmV0XzE3OSA9IHZjbWxhcV9yb3QxODBfZjMyKF9fczBfMTc5LCBfX3MxXzE3OSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTc5KTsgXAogIF9fcmV0XzE3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZV9mMzIoX19wMF8xODAsIF9fcDFfMTgwLCBfX3AyXzE4MCwgX19wM18xODApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTgwID0gX19wMF8xODA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE4MCA9IF9fcDFfMTgwOyBcCiAgZmxvYXQzMngyX3QgX19zMl8xODAgPSBfX3AyXzE4MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF8xODA7ICBfX3JldjBfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xODAsIF9fczBfMTgwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV8xODA7ICBfX3JldjFfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xODAsIF9fczFfMTgwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml8xODA7ICBfX3JldjJfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xODAsIF9fczJfMTgwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE4MDsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE4MCA9IF9fcmV2Ml8xODA7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODAgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE4MCwgX19wM18xODApLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODAsIF9fcDNfMTgwKX07IFwKICBfX3JldF8xODAgPSBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihfX3JldjBfMTgwLCBfX3JldjFfMTgwLCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xODApOyBcCiAgX19yZXRfMTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTgwLCBfX3JldF8xODAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVxX2YzMihfX3AwXzE4MSwgX19wMV8xODEsIF9fcDJfMTgxLCBfX3AzXzE4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xODEgPSBfX3AwXzE4MTsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTgxID0gX19wMV8xODE7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE4MSA9IF9fcDJfMTgxOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTgxOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTgxID0gX19zMl8xODE7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xODEgPSAodWludDY0eDFfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODEsIF9fcDNfMTgxKX07IFwKICBfX3JldF8xODEgPSB2Y21sYV9yb3QxODBfZjMyKF9fczBfMTgxLCBfX3MxXzE4MSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTgxKTsgXAogIF9fcmV0XzE4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDE4MF9sYW5lcV9mMzIoX19wMF8xODIsIF9fcDFfMTgyLCBfX3AyXzE4MiwgX19wM18xODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTgyID0gX19wMF8xODI7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4MiA9IF9fcDFfMTgyOyBcCiAgZmxvYXQzMng0X3QgX19zMl8xODIgPSBfX3AyXzE4MjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xODI7ICBfX3JldjBfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xODIsIF9fczBfMTgyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xODI7ICBfX3JldjFfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xODIsIF9fczFfMTgyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8xODI7ICBfX3JldjJfMTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xODIsIF9fczJfMTgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4MjsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE4MiA9IF9fcmV2Ml8xODI7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xODIgPSAodWludDY0eDFfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODIsIF9fcDNfMTgyKX07IFwKICBfX3JldF8xODIgPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjMyKF9fcmV2MF8xODIsIF9fcmV2MV8xODIsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE4Mik7IFwKICBfX3JldF8xODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8xODIsIF9fcmV0XzE4MiwgMSwgMCk7IFwKICBfX3JldF8xODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YzMihfX3AwXzE4MywgX19wMV8xODMsIF9fcDJfMTgzLCBfX3AzXzE4MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xODMgPSBfX3AwXzE4MzsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTgzID0gX19wMV8xODM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE4MyA9IF9fcDJfMTgzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTgzOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTgzID0gX19zMl8xODM7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODMgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODMsIF9fcDNfMTgzKSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE4MywgX19wM18xODMpfTsgXAogIF9fcmV0XzE4MyA9IHZjbWxhcV9yb3QxODBfZjMyKF9fczBfMTgzLCBfX3MxXzE4MywgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTgzKTsgXAogIF9fcmV0XzE4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZXFfZjMyKF9fcDBfMTg0LCBfX3AxXzE4NCwgX19wMl8xODQsIF9fcDNfMTg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE4NCA9IF9fcDBfMTg0OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xODQgPSBfX3AxXzE4NDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTg0ID0gX19wMl8xODQ7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTg0OyAgX19yZXYwXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTg0LCBfX3MwXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTg0OyAgX19yZXYxXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTg0LCBfX3MxXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTg0OyAgX19yZXYyXzE4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTg0LCBfX3MyXzE4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODQ7IFwKZmxvYXQzMng0X3QgX19yZWludF8xODQgPSBfX3JldjJfMTg0OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTg0ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTg0LCBfX3AzXzE4NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xODQsIF9fcDNfMTg0KX07IFwKICBfX3JldF8xODQgPSBfX25vc3dhcF92Y21sYXFfcm90MTgwX2YzMihfX3JldjBfMTg0LCBfX3JldjFfMTg0LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xODQpOyBcCiAgX19yZXRfMTg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTg0LCBfX3JldF8xODQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9yb3QyNzBfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDI3MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDI3MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y21sYV9yb3QyNzBfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MjcwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjbWxhX3JvdDI3MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QyNzBfbGFuZV9mMzIoX19wMF8xODUsIF9fcDFfMTg1LCBfX3AyXzE4NSwgX19wM18xODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTg1ID0gX19wMF8xODU7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4NSA9IF9fcDFfMTg1OyBcCiAgZmxvYXQzMngyX3QgX19zMl8xODUgPSBfX3AyXzE4NTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4NTsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE4NSA9IF9fczJfMTg1OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTg1ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODUsIF9fcDNfMTg1KX07IFwKICBfX3JldF8xODUgPSB2Y21sYV9yb3QyNzBfZjMyKF9fczBfMTg1LCBfX3MxXzE4NSwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTg1KTsgXAogIF9fcmV0XzE4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YzMihfX3AwXzE4NiwgX19wMV8xODYsIF9fcDJfMTg2LCBfX3AzXzE4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8xODYgPSBfX3AwXzE4NjsgXAogIGZsb2F0MzJ4Ml90IF9fczFfMTg2ID0gX19wMV8xODY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE4NiA9IF9fcDJfMTg2OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzE4NjsgIF9fcmV2MF8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE4NiwgX19zMF8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzE4NjsgIF9fcmV2MV8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE4NiwgX19zMV8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyXzE4NjsgIF9fcmV2Ml8xODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE4NiwgX19zMl8xODYsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMTg2OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTg2ID0gX19yZXYyXzE4NjsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE4NiA9ICh1aW50NjR4MV90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTg2LCBfX3AzXzE4Nil9OyBcCiAgX19yZXRfMTg2ID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YzMihfX3JldjBfMTg2LCBfX3JldjFfMTg2LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xODYpOyBcCiAgX19yZXRfMTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTg2LCBfX3JldF8xODYsIDEsIDApOyBcCiAgX19yZXRfMTg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lX2YzMihfX3AwXzE4NywgX19wMV8xODcsIF9fcDJfMTg3LCBfX3AzXzE4NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xODcgPSBfX3AwXzE4NzsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTg3ID0gX19wMV8xODc7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzE4NyA9IF9fcDJfMTg3OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTg3OyBcCmZsb2F0MzJ4Ml90IF9fcmVpbnRfMTg3ID0gX19zMl8xODc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8xODcgPSAodWludDY0eDJfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE4NywgX19wM18xODcpLCB2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODcsIF9fcDNfMTg3KX07IFwKICBfX3JldF8xODcgPSB2Y21sYXFfcm90MjcwX2YzMihfX3MwXzE4NywgX19zMV8xODcsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE4Nyk7IFwKICBfX3JldF8xODc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjMyKF9fcDBfMTg4LCBfX3AxXzE4OCwgX19wMl8xODgsIF9fcDNfMTg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE4OCA9IF9fcDBfMTg4OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xODggPSBfX3AxXzE4ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTg4ID0gX19wMl8xODg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTg4OyAgX19yZXYwXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTg4LCBfX3MwXzE4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTg4OyAgX19yZXYxXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTg4LCBfX3MxXzE4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTg4OyAgX19yZXYyXzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTg4LCBfX3MyXzE4OCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xODg7IFwKZmxvYXQzMngyX3QgX19yZWludF8xODggPSBfX3JldjJfMTg4OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTg4ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xODgsIF9fcDNfMTg4KSwgdmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTg4LCBfX3AzXzE4OCl9OyBcCiAgX19yZXRfMTg4ID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoX19yZXYwXzE4OCwgX19yZXYxXzE4OCwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTg4KTsgXAogIF9fcmV0XzE4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE4OCwgX19yZXRfMTg4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mMzIoX19wMF8xODksIF9fcDFfMTg5LCBfX3AyXzE4OSwgX19wM18xODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTg5ID0gX19wMF8xODk7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE4OSA9IF9fcDFfMTg5OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xODkgPSBfX3AyXzE4OTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE4OTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE4OSA9IF9fczJfMTg5OyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTg5ID0gKHVpbnQ2NHgxX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTg5LCBfX3AzXzE4OSl9OyBcCiAgX19yZXRfMTg5ID0gdmNtbGFfcm90MjcwX2YzMihfX3MwXzE4OSwgX19zMV8xODksICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE4OSk7IFwKICBfX3JldF8xODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QyNzBfbGFuZXFfZjMyKF9fcDBfMTkwLCBfX3AxXzE5MCwgX19wMl8xOTAsIF9fcDNfMTkwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5MCA9IF9fcDBfMTkwOyBcCiAgZmxvYXQzMngyX3QgX19zMV8xOTAgPSBfX3AxXzE5MDsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTkwID0gX19wMl8xOTA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMTkwOyAgX19yZXYwXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTkwLCBfX3MwXzE5MCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfMTkwOyAgX19yZXYxXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTkwLCBfX3MxXzE5MCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMTkwOyAgX19yZXYyXzE5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTkwLCBfX3MyXzE5MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xOTA7IFwKZmxvYXQzMng0X3QgX19yZWludF8xOTAgPSBfX3JldjJfMTkwOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTkwID0gKHVpbnQ2NHgxX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkwLCBfX3AzXzE5MCl9OyBcCiAgX19yZXRfMTkwID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YzMihfX3JldjBfMTkwLCBfX3JldjFfMTkwLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTApOyBcCiAgX19yZXRfMTkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTkwLCBfX3JldF8xOTAsIDEsIDApOyBcCiAgX19yZXRfMTkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMzIoX19wMF8xOTEsIF9fcDFfMTkxLCBfX3AyXzE5MSwgX19wM18xOTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTkxID0gX19wMF8xOTE7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE5MSA9IF9fcDFfMTkxOyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTEgPSBfX3AyXzE5MTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE5MTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5MSA9IF9fczJfMTkxOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTkxID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkxLCBfX3AzXzE5MSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTEsIF9fcDNfMTkxKX07IFwKICBfX3JldF8xOTEgPSB2Y21sYXFfcm90MjcwX2YzMihfX3MwXzE5MSwgX19zMV8xOTEsICooZmxvYXQzMng0X3QgKikgJl9fcmVpbnQxXzE5MSk7IFwKICBfX3JldF8xOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVxX2YzMihfX3AwXzE5MiwgX19wMV8xOTIsIF9fcDJfMTkyLCBfX3AzXzE5MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8xOTIgPSBfX3AwXzE5MjsgXAogIGZsb2F0MzJ4NF90IF9fczFfMTkyID0gX19wMV8xOTI7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzE5MiA9IF9fcDJfMTkyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzE5MjsgIF9fcmV2MF8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzE5MiwgX19zMF8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzE5MjsgIF9fcmV2MV8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzE5MiwgX19zMV8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzE5MjsgIF9fcmV2Ml8xOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzE5MiwgX19zMl8xOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfMTkyOyBcCmZsb2F0MzJ4NF90IF9fcmVpbnRfMTkyID0gX19yZXYyXzE5MjsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE5MiA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE5MiwgX19wM18xOTIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTkyLCBfX3AzXzE5Mil9OyBcCiAgX19yZXRfMTkyID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mMzIoX19yZXYwXzE5MiwgX19yZXYxXzE5MiwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTkyKTsgXAogIF9fcmV0XzE5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE5MiwgX19yZXRfMTkyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzE5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjbWxhcV9yb3Q5MF9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90OTBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Y21sYV9yb3Q5MF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3Q5MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjbWxhX3JvdDkwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjbWxhX3JvdDkwX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMzIoX19wMF8xOTMsIF9fcDFfMTkzLCBfX3AyXzE5MywgX19wM18xOTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTkzID0gX19wMF8xOTM7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5MyA9IF9fcDFfMTkzOyBcCiAgZmxvYXQzMngyX3QgX19zMl8xOTMgPSBfX3AyXzE5MzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5MzsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE5MyA9IF9fczJfMTkzOyBcCnVpbnQ2NHgxX3QgX19yZWludDFfMTkzID0gKHVpbnQ2NHgxX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xOTMsIF9fcDNfMTkzKX07IFwKICBfX3JldF8xOTMgPSB2Y21sYV9yb3Q5MF9mMzIoX19zMF8xOTMsIF9fczFfMTkzLCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTMpOyBcCiAgX19yZXRfMTkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMzIoX19wMF8xOTQsIF9fcDFfMTk0LCBfX3AyXzE5NCwgX19wM18xOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTk0ID0gX19wMF8xOTQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5NCA9IF9fcDFfMTk0OyBcCiAgZmxvYXQzMngyX3QgX19zMl8xOTQgPSBfX3AyXzE5NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTQ7ICBfX3JldjBfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xOTQsIF9fczBfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xOTQ7ICBfX3JldjFfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xOTQsIF9fczFfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml8xOTQ7ICBfX3JldjJfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xOTQsIF9fczJfMTk0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5NDsgXApmbG9hdDMyeDJfdCBfX3JlaW50XzE5NCA9IF9fcmV2Ml8xOTQ7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xOTQgPSAodWludDY0eDFfdCkge3ZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE5NCwgX19wM18xOTQpfTsgXAogIF9fcmV0XzE5NCA9IF9fbm9zd2FwX3ZjbWxhX3JvdDkwX2YzMihfX3JldjBfMTk0LCBfX3JldjFfMTk0LCAqKGZsb2F0MzJ4Ml90ICopICZfX3JlaW50MV8xOTQpOyBcCiAgX19yZXRfMTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTk0LCBfX3JldF8xOTQsIDEsIDApOyBcCiAgX19yZXRfMTk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjMyKF9fcDBfMTk1LCBfX3AxXzE5NSwgX19wMl8xOTUsIF9fcDNfMTk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE5NSA9IF9fcDBfMTk1OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xOTUgPSBfX3AxXzE5NTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTk1ID0gX19wMl8xOTU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xOTU7IFwKZmxvYXQzMngyX3QgX19yZWludF8xOTUgPSBfX3MyXzE5NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzE5NSA9ICh1aW50NjR4Ml90KSB7dmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTk1LCBfX3AzXzE5NSksIHZnZXRfbGFuZV91NjQoKih1aW50NjR4MV90ICopICZfX3JlaW50XzE5NSwgX19wM18xOTUpfTsgXAogIF9fcmV0XzE5NSA9IHZjbWxhcV9yb3Q5MF9mMzIoX19zMF8xOTUsIF9fczFfMTk1LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xOTUpOyBcCiAgX19yZXRfMTk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjMyKF9fcDBfMTk2LCBfX3AxXzE5NiwgX19wMl8xOTYsIF9fcDNfMTk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzE5NiA9IF9fcDBfMTk2OyBcCiAgZmxvYXQzMng0X3QgX19zMV8xOTYgPSBfX3AxXzE5NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMTk2ID0gX19wMl8xOTY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMTk2OyAgX19yZXYwXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMTk2LCBfX3MwXzE5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfMTk2OyAgX19yZXYxXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMTk2LCBfX3MxXzE5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMTk2OyAgX19yZXYyXzE5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMTk2LCBfX3MyXzE5NiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8xOTY7IFwKZmxvYXQzMngyX3QgX19yZWludF8xOTYgPSBfX3JldjJfMTk2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTk2ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0X2xhbmVfdTY0KCoodWludDY0eDFfdCAqKSAmX19yZWludF8xOTYsIF9fcDNfMTk2KSwgdmdldF9sYW5lX3U2NCgqKHVpbnQ2NHgxX3QgKikgJl9fcmVpbnRfMTk2LCBfX3AzXzE5Nil9OyBcCiAgX19yZXRfMTk2ID0gX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YzMihfX3JldjBfMTk2LCBfX3JldjFfMTk2LCAqKGZsb2F0MzJ4NF90ICopICZfX3JlaW50MV8xOTYpOyBcCiAgX19yZXRfMTk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMTk2LCBfX3JldF8xOTYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMTk2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZXFfZjMyKF9fcDBfMTk3LCBfX3AxXzE5NywgX19wMl8xOTcsIF9fcDNfMTk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzE5NyA9IF9fcDBfMTk3OyBcCiAgZmxvYXQzMngyX3QgX19zMV8xOTcgPSBfX3AxXzE5NzsgXAogIGZsb2F0MzJ4NF90IF9fczJfMTk3ID0gX19wMl8xOTc7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8xOTc7IFwKZmxvYXQzMng0X3QgX19yZWludF8xOTcgPSBfX3MyXzE5NzsgXAp1aW50NjR4MV90IF9fcmVpbnQxXzE5NyA9ICh1aW50NjR4MV90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzE5NywgX19wM18xOTcpfTsgXAogIF9fcmV0XzE5NyA9IHZjbWxhX3JvdDkwX2YzMihfX3MwXzE5NywgX19zMV8xOTcsICooZmxvYXQzMngyX3QgKikgJl9fcmVpbnQxXzE5Nyk7IFwKICBfX3JldF8xOTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8xOTgsIF9fcDFfMTk4LCBfX3AyXzE5OCwgX19wM18xOTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMTk4ID0gX19wMF8xOTg7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzE5OCA9IF9fcDFfMTk4OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTggPSBfX3AyXzE5ODsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF8xOTg7ICBfX3JldjBfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8xOTgsIF9fczBfMTk4LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV8xOTg7ICBfX3JldjFfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8xOTgsIF9fczFfMTk4LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8xOTg7ICBfX3JldjJfMTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8xOTgsIF9fczJfMTk4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzE5ODsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5OCA9IF9fcmV2Ml8xOTg7IFwKdWludDY0eDFfdCBfX3JlaW50MV8xOTggPSAodWludDY0eDFfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTgsIF9fcDNfMTk4KX07IFwKICBfX3JldF8xOTggPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMzIoX19yZXYwXzE5OCwgX19yZXYxXzE5OCwgKihmbG9hdDMyeDJfdCAqKSAmX19yZWludDFfMTk4KTsgXAogIF9fcmV0XzE5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzE5OCwgX19yZXRfMTk4LCAxLCAwKTsgXAogIF9fcmV0XzE5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8xOTksIF9fcDFfMTk5LCBfX3AyXzE5OSwgX19wM18xOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMTk5ID0gX19wMF8xOTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzE5OSA9IF9fcDFfMTk5OyBcCiAgZmxvYXQzMng0X3QgX19zMl8xOTkgPSBfX3AyXzE5OTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzE5OTsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzE5OSA9IF9fczJfMTk5OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMTk5ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMTk5LCBfX3AzXzE5OSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8xOTksIF9fcDNfMTk5KX07IFwKICBfX3JldF8xOTkgPSB2Y21sYXFfcm90OTBfZjMyKF9fczBfMTk5LCBfX3MxXzE5OSwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMTk5KTsgXAogIF9fcmV0XzE5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMzIoX19wMF8yMDAsIF9fcDFfMjAwLCBfX3AyXzIwMCwgX19wM18yMDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfMjAwID0gX19wMF8yMDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzIwMCA9IF9fcDFfMjAwOyBcCiAgZmxvYXQzMng0X3QgX19zMl8yMDAgPSBfX3AyXzIwMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF8yMDA7ICBfX3JldjBfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMDAsIF9fczBfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV8yMDA7ICBfX3JldjFfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMDAsIF9fczFfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml8yMDA7ICBfX3JldjJfMjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMDAsIF9fczJfMjAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzIwMDsgXApmbG9hdDMyeDRfdCBfX3JlaW50XzIwMCA9IF9fcmV2Ml8yMDA7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMDAgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMDAsIF9fcDNfMjAwKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIwMCwgX19wM18yMDApfTsgXAogIF9fcmV0XzIwMCA9IF9fbm9zd2FwX3ZjbWxhcV9yb3Q5MF9mMzIoX19yZXYwXzIwMCwgX19yZXYxXzIwMCwgKihmbG9hdDMyeDRfdCAqKSAmX19yZWludDFfMjAwKTsgXAogIF9fcmV0XzIwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIwMCwgX19yZXRfMjAwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIwMDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0NPTVBMRVgpICYmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3QyNzBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90MjcwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3QyNzBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZGRfcm90MjcwX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjYWRkX3JvdDkwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2Y2FkZF9yb3Q5MF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZF9yb3Q5MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjYWRkcV9yb3QyNzBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDI3MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDkwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y2FkZHFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZGRxX3JvdDkwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZjbWxhcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgX19ub3N3YXBfdmNtbGFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y21sYV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IF9fbm9zd2FwX3ZjbWxhX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfbGFuZV9mMTYoX19wMF8yMDEsIF9fcDFfMjAxLCBfX3AyXzIwMSwgX19wM18yMDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjAxID0gX19wMF8yMDE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIwMSA9IF9fcDFfMjAxOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMDEgPSBfX3AyXzIwMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIwMTsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIwMSA9IF9fczJfMjAxOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjAxID0gKHVpbnQzMngyX3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDEsIF9fcDNfMjAxKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAxLCBfX3AzXzIwMSl9OyBcCiAgX19yZXRfMjAxID0gdmNtbGFfZjE2KF9fczBfMjAxLCBfX3MxXzIwMSwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjAxKTsgXAogIF9fcmV0XzIwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVfZjE2KF9fcDBfMjAyLCBfX3AxXzIwMiwgX19wMl8yMDIsIF9fcDNfMjAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwMiA9IF9fcDBfMjAyOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDIgPSBfX3AxXzIwMjsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjAyID0gX19wMl8yMDI7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjAyOyAgX19yZXYwXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjAyLCBfX3MwXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjAyOyAgX19yZXYxXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjAyLCBfX3MxXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjAyOyAgX19yZXYyXzIwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjAyLCBfX3MyXzIwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDI7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMDIgPSBfX3JldjJfMjAyOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjAyID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDIsIF9fcDNfMjAyKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAyLCBfX3AzXzIwMil9OyBcCiAgX19yZXRfMjAyID0gX19ub3N3YXBfdmNtbGFfZjE2KF9fcmV2MF8yMDIsIF9fcmV2MV8yMDIsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIwMik7IFwKICBfX3JldF8yMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMDIsIF9fcmV0XzIwMiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZV9mMTYoX19wMF8yMDMsIF9fcDFfMjAzLCBfX3AyXzIwMywgX19wM18yMDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjAzID0gX19wMF8yMDM7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIwMyA9IF9fcDFfMjAzOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMDMgPSBfX3AyXzIwMzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIwMzsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIwMyA9IF9fczJfMjAzOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjAzID0gKHVpbnQzMng0X3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDMsIF9fcDNfMjAzKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjAzLCBfX3AzXzIwMyksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwMywgX19wM18yMDMpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDMsIF9fcDNfMjAzKX07IFwKICBfX3JldF8yMDMgPSB2Y21sYXFfZjE2KF9fczBfMjAzLCBfX3MxXzIwMywgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjAzKTsgXAogIF9fcmV0XzIwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9sYW5lX2YxNihfX3AwXzIwNCwgX19wMV8yMDQsIF9fcDJfMjA0LCBfX3AzXzIwNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMDQgPSBfX3AwXzIwNDsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjA0ID0gX19wMV8yMDQ7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIwNCA9IF9fcDJfMjA0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIwNDsgIF9fcmV2MF8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwNCwgX19zMF8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIwNDsgIF9fcmV2MV8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwNCwgX19zMV8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzIwNDsgIF9fcmV2Ml8yMDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwNCwgX19zMl8yMDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjA0OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjA0ID0gX19yZXYyXzIwNDsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwNCA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA0LCBfX3AzXzIwNCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwNCwgX19wM18yMDQpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMDQsIF9fcDNfMjA0KSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA0LCBfX3AzXzIwNCl9OyBcCiAgX19yZXRfMjA0ID0gX19ub3N3YXBfdmNtbGFxX2YxNihfX3JldjBfMjA0LCBfX3JldjFfMjA0LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMDQpOyBcCiAgX19yZXRfMjA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjA0LCBfX3JldF8yMDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjE2KF9fcDBfMjA1LCBfX3AxXzIwNSwgX19wMl8yMDUsIF9fcDNfMjA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwNSA9IF9fcDBfMjA1OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDUgPSBfX3AxXzIwNTsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjA1ID0gX19wMl8yMDU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDU7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMDUgPSBfX3MyXzIwNTsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwNSA9ICh1aW50MzJ4Ml90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNSwgX19wM18yMDUpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA1LCBfX3AzXzIwNSl9OyBcCiAgX19yZXRfMjA1ID0gdmNtbGFfZjE2KF9fczBfMjA1LCBfX3MxXzIwNSwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjA1KTsgXAogIF9fcmV0XzIwNTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX2xhbmVxX2YxNihfX3AwXzIwNiwgX19wMV8yMDYsIF9fcDJfMjA2LCBfX3AzXzIwNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMDYgPSBfX3AwXzIwNjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjA2ID0gX19wMV8yMDY7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIwNiA9IF9fcDJfMjA2OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIwNjsgIF9fcmV2MF8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwNiwgX19zMF8yMDYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIwNjsgIF9fcmV2MV8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwNiwgX19zMV8yMDYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIwNjsgIF9fcmV2Ml8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwNiwgX19zMl8yMDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjA2OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjA2ID0gX19yZXYyXzIwNjsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwNiA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNiwgX19wM18yMDYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA2LCBfX3AzXzIwNil9OyBcCiAgX19yZXRfMjA2ID0gX19ub3N3YXBfdmNtbGFfZjE2KF9fcmV2MF8yMDYsIF9fcmV2MV8yMDYsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIwNik7IFwKICBfX3JldF8yMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMDYsIF9fcmV0XzIwNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfbGFuZXFfZjE2KF9fcDBfMjA3LCBfX3AxXzIwNywgX19wMl8yMDcsIF9fcDNfMjA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIwNyA9IF9fcDBfMjA3OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMDcgPSBfX3AxXzIwNzsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjA3ID0gX19wMl8yMDc7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMDc7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMDcgPSBfX3MyXzIwNzsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwNyA9ICh1aW50MzJ4NF90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNywgX19wM18yMDcpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA3LCBfX3AzXzIwNyksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMDcsIF9fcDNfMjA3KSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwNywgX19wM18yMDcpfTsgXAogIF9fcmV0XzIwNyA9IHZjbWxhcV9mMTYoX19zMF8yMDcsIF9fczFfMjA3LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMDcpOyBcCiAgX19yZXRfMjA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2YxNihfX3AwXzIwOCwgX19wMV8yMDgsIF9fcDJfMjA4LCBfX3AzXzIwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMDggPSBfX3AwXzIwODsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjA4ID0gX19wMV8yMDg7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIwOCA9IF9fcDJfMjA4OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIwODsgIF9fcmV2MF8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIwOCwgX19zMF8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIwODsgIF9fcmV2MV8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIwOCwgX19zMV8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIwODsgIF9fcmV2Ml8yMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIwOCwgX19zMl8yMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjA4OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjA4ID0gX19yZXYyXzIwODsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIwOCA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwOCwgX19wM18yMDgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjA4LCBfX3AzXzIwOCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMDgsIF9fcDNfMjA4KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIwOCwgX19wM18yMDgpfTsgXAogIF9fcmV0XzIwOCA9IF9fbm9zd2FwX3ZjbWxhcV9mMTYoX19yZXYwXzIwOCwgX19yZXYxXzIwOCwgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjA4KTsgXAogIF9fcmV0XzIwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIwOCwgX19yZXRfMjA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZjbWxhcV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90MTgwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QxODBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2Y21sYV9yb3QxODBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MTgwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90MTgwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Y21sYV9yb3QxODBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MTgwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjE2KF9fcDBfMjA5LCBfX3AxXzIwOSwgX19wMl8yMDksIF9fcDNfMjA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIwOSA9IF9fcDBfMjA5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMDkgPSBfX3AxXzIwOTsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjA5ID0gX19wMl8yMDk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMDk7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMDkgPSBfX3MyXzIwOTsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIwOSA9ICh1aW50MzJ4Ml90KSB7dmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjA5LCBfX3AzXzIwOSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIwOSwgX19wM18yMDkpfTsgXAogIF9fcmV0XzIwOSA9IHZjbWxhX3JvdDE4MF9mMTYoX19zMF8yMDksIF9fczFfMjA5LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMDkpOyBcCiAgX19yZXRfMjA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MTgwX2xhbmVfZjE2KF9fcDBfMjEwLCBfX3AxXzIxMCwgX19wMl8yMTAsIF9fcDNfMjEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxMCA9IF9fcDBfMjEwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTAgPSBfX3AxXzIxMDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjEwID0gX19wMl8yMTA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjEwOyAgX19yZXYwXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjEwLCBfX3MwXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjEwOyAgX19yZXYxXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjEwLCBfX3MxXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjEwOyAgX19yZXYyXzIxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjEwLCBfX3MyXzIxMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTA7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMTAgPSBfX3JldjJfMjEwOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjEwID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTAsIF9fcDNfMjEwKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjEwLCBfX3AzXzIxMCl9OyBcCiAgX19yZXRfMjEwID0gX19ub3N3YXBfdmNtbGFfcm90MTgwX2YxNihfX3JldjBfMjEwLCBfX3JldjFfMjEwLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMTApOyBcCiAgX19yZXRfMjEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjEwLCBfX3JldF8yMTAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lX2YxNihfX3AwXzIxMSwgX19wMV8yMTEsIF9fcDJfMjExLCBfX3AzXzIxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTEgPSBfX3AwXzIxMTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjExID0gX19wMV8yMTE7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxMSA9IF9fcDJfMjExOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjExOyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjExID0gX19zMl8yMTE7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTEgPSAodWludDMyeDRfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMSwgX19wM18yMTEpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTEsIF9fcDNfMjExKSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjExLCBfX3AzXzIxMSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMSwgX19wM18yMTEpfTsgXAogIF9fcmV0XzIxMSA9IHZjbWxhcV9yb3QxODBfZjE2KF9fczBfMjExLCBfX3MxXzIxMSwgKihmbG9hdDE2eDhfdCAqKSAmX19yZWludDFfMjExKTsgXAogIF9fcmV0XzIxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZV9mMTYoX19wMF8yMTIsIF9fcDFfMjEyLCBfX3AyXzIxMiwgX19wM18yMTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjEyID0gX19wMF8yMTI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIxMiA9IF9fcDFfMjEyOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMTIgPSBfX3AyXzIxMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yMTI7ICBfX3JldjBfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMTIsIF9fczBfMjEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yMTI7ICBfX3JldjFfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMTIsIF9fczFfMjEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yMTI7ICBfX3JldjJfMjEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMTIsIF9fczJfMjEyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIxMjsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIxMiA9IF9fcmV2Ml8yMTI7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTIgPSAodWludDMyeDRfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMiwgX19wM18yMTIpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTIsIF9fcDNfMjEyKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjEyLCBfX3AzXzIxMiksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxMiwgX19wM18yMTIpfTsgXAogIF9fcmV0XzIxMiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KF9fcmV2MF8yMTIsIF9fcmV2MV8yMTIsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxMik7IFwKICBfX3JldF8yMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTIsIF9fcmV0XzIxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjE2KF9fcDBfMjEzLCBfX3AxXzIxMywgX19wMl8yMTMsIF9fcDNfMjEzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxMyA9IF9fcDBfMjEzOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTMgPSBfX3AxXzIxMzsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjEzID0gX19wMl8yMTM7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTM7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMTMgPSBfX3MyXzIxMzsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIxMyA9ICh1aW50MzJ4Ml90KSB7dmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxMywgX19wM18yMTMpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjEzLCBfX3AzXzIxMyl9OyBcCiAgX19yZXRfMjEzID0gdmNtbGFfcm90MTgwX2YxNihfX3MwXzIxMywgX19zMV8yMTMsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIxMyk7IFwKICBfX3JldF8yMTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjE2KF9fcDBfMjE0LCBfX3AxXzIxNCwgX19wMl8yMTQsIF9fcDNfMjE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIxNCA9IF9fcDBfMjE0OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMTQgPSBfX3AxXzIxNDsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjE0ID0gX19wMl8yMTQ7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjE0OyAgX19yZXYwXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjE0LCBfX3MwXzIxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjE0OyAgX19yZXYxXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjE0LCBfX3MxXzIxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjE0OyAgX19yZXYyXzIxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjE0LCBfX3MyXzIxNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMTQ7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMTQgPSBfX3JldjJfMjE0OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjE0ID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE0LCBfX3AzXzIxNCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTQsIF9fcDNfMjE0KX07IFwKICBfX3JldF8yMTQgPSBfX25vc3dhcF92Y21sYV9yb3QxODBfZjE2KF9fcmV2MF8yMTQsIF9fcmV2MV8yMTQsICooZmxvYXQxNng0X3QgKikgJl9fcmVpbnQxXzIxNCk7IFwKICBfX3JldF8yMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTQsIF9fcmV0XzIxNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YxNihfX3AwXzIxNSwgX19wMV8yMTUsIF9fcDJfMjE1LCBfX3AzXzIxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTUgPSBfX3AwXzIxNTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjE1ID0gX19wMV8yMTU7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIxNSA9IF9fcDJfMjE1OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjE1OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjE1ID0gX19zMl8yMTU7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMTUgPSAodWludDMyeDRfdCkge3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTUsIF9fcDNfMjE1KSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNSwgX19wM18yMTUpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE1LCBfX3AzXzIxNSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTUsIF9fcDNfMjE1KX07IFwKICBfX3JldF8yMTUgPSB2Y21sYXFfcm90MTgwX2YxNihfX3MwXzIxNSwgX19zMV8yMTUsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxNSk7IFwKICBfX3JldF8yMTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVxX2YxNihfX3AwXzIxNiwgX19wMV8yMTYsIF9fcDJfMjE2LCBfX3AzXzIxNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMTYgPSBfX3AwXzIxNjsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjE2ID0gX19wMV8yMTY7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIxNiA9IF9fcDJfMjE2OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzIxNjsgIF9fcmV2MF8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIxNiwgX19zMF8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzIxNjsgIF9fcmV2MV8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIxNiwgX19zMV8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIxNjsgIF9fcmV2Ml8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIxNiwgX19zMl8yMTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjE2OyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjE2ID0gX19yZXYyXzIxNjsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzIxNiA9ICh1aW50MzJ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNiwgX19wM18yMTYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjE2LCBfX3AzXzIxNiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMTYsIF9fcDNfMjE2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIxNiwgX19wM18yMTYpfTsgXAogIF9fcmV0XzIxNiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjE2KF9fcmV2MF8yMTYsIF9fcmV2MV8yMTYsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxNik7IFwKICBfX3JldF8yMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMTYsIF9fcmV0XzIxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX3JvdDI3MF9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90MjcwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX3JvdDI3MF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV9yb3QyNzBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmNtbGFfcm90MjcwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDI3MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YxNihfX3AwXzIxNywgX19wMV8yMTcsIF9fcDJfMjE3LCBfX3AzXzIxNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMTcgPSBfX3AwXzIxNzsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjE3ID0gX19wMV8yMTc7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxNyA9IF9fcDJfMjE3OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjE3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjE3ID0gX19zMl8yMTc7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMTcgPSAodWludDMyeDJfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxNywgX19wM18yMTcpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTcsIF9fcDNfMjE3KX07IFwKICBfX3JldF8yMTcgPSB2Y21sYV9yb3QyNzBfZjE2KF9fczBfMjE3LCBfX3MxXzIxNywgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjE3KTsgXAogIF9fcmV0XzIxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2YxNihfX3AwXzIxOCwgX19wMV8yMTgsIF9fcDJfMjE4LCBfX3AzXzIxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMTggPSBfX3AwXzIxODsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjE4ID0gX19wMV8yMTg7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIxOCA9IF9fcDJfMjE4OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIxODsgIF9fcmV2MF8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIxOCwgX19zMF8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIxODsgIF9fcmV2MV8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIxOCwgX19zMV8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzIxODsgIF9fcmV2Ml8yMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIxOCwgX19zMl8yMTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjE4OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjE4ID0gX19yZXYyXzIxODsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIxOCA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjE4LCBfX3AzXzIxOCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxOCwgX19wM18yMTgpfTsgXAogIF9fcmV0XzIxOCA9IF9fbm9zd2FwX3ZjbWxhX3JvdDI3MF9mMTYoX19yZXYwXzIxOCwgX19yZXYxXzIxOCwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjE4KTsgXAogIF9fcmV0XzIxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIxOCwgX19yZXRfMjE4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIxODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QyNzBfbGFuZV9mMTYoX19wMF8yMTksIF9fcDFfMjE5LCBfX3AyXzIxOSwgX19wM18yMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjE5ID0gX19wMF8yMTk7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIxOSA9IF9fcDFfMjE5OyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMTkgPSBfX3AyXzIxOTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIxOTsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIxOSA9IF9fczJfMjE5OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjE5ID0gKHVpbnQzMng0X3QpIHt2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTksIF9fcDNfMjE5KSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjE5LCBfX3AzXzIxOSksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIxOSwgX19wM18yMTkpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMTksIF9fcDNfMjE5KX07IFwKICBfX3JldF8yMTkgPSB2Y21sYXFfcm90MjcwX2YxNihfX3MwXzIxOSwgX19zMV8yMTksICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIxOSk7IFwKICBfX3JldF8yMTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjE2KF9fcDBfMjIwLCBfX3AxXzIyMCwgX19wMl8yMjAsIF9fcDNfMjIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIyMCA9IF9fcDBfMjIwOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMjAgPSBfX3AxXzIyMDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjIwID0gX19wMl8yMjA7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjIwOyAgX19yZXYwXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjIwLCBfX3MwXzIyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjIwOyAgX19yZXYxXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjIwLCBfX3MxXzIyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjIwOyAgX19yZXYyXzIyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjIwLCBfX3MyXzIyMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMjA7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMjAgPSBfX3JldjJfMjIwOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjIwID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjAsIF9fcDNfMjIwKSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjIwLCBfX3AzXzIyMCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyMCwgX19wM18yMjApLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjAsIF9fcDNfMjIwKX07IFwKICBfX3JldF8yMjAgPSBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihfX3JldjBfMjIwLCBfX3JldjFfMjIwLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjApOyBcCiAgX19yZXRfMjIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjIwLCBfX3JldF8yMjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjIwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFfcm90MjcwX2xhbmVxX2YxNihfX3AwXzIyMSwgX19wMV8yMjEsIF9fcDJfMjIxLCBfX3AzXzIyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjEgPSBfX3AwXzIyMTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjIxID0gX19wMV8yMjE7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIyMSA9IF9fcDJfMjIxOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjIxOyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjIxID0gX19zMl8yMjE7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjEgPSAodWludDMyeDJfdCkge3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjEsIF9fcDNfMjIxKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMSwgX19wM18yMjEpfTsgXAogIF9fcmV0XzIyMSA9IHZjbWxhX3JvdDI3MF9mMTYoX19zMF8yMjEsIF9fczFfMjIxLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjEpOyBcCiAgX19yZXRfMjIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90MjcwX2xhbmVxX2YxNihfX3AwXzIyMiwgX19wMV8yMjIsIF9fcDJfMjIyLCBfX3AzXzIyMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjIgPSBfX3AwXzIyMjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjIyID0gX19wMV8yMjI7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzIyMiA9IF9fcDJfMjIyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzIyMjsgIF9fcmV2MF8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIyMiwgX19zMF8yMjIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzIyMjsgIF9fcmV2MV8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIyMiwgX19zMV8yMjIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzIyMjsgIF9fcmV2Ml8yMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIyMiwgX19zMl8yMjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjIyOyBcCmZsb2F0MTZ4OF90IF9fcmVpbnRfMjIyID0gX19yZXYyXzIyMjsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzIyMiA9ICh1aW50MzJ4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMiwgX19wM18yMjIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIyLCBfX3AzXzIyMil9OyBcCiAgX19yZXRfMjIyID0gX19ub3N3YXBfdmNtbGFfcm90MjcwX2YxNihfX3JldjBfMjIyLCBfX3JldjFfMjIyLCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjIpOyBcCiAgX19yZXRfMjIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjIyLCBfX3JldF8yMjIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMTYoX19wMF8yMjMsIF9fcDFfMjIzLCBfX3AyXzIyMywgX19wM18yMjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjIzID0gX19wMF8yMjM7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIyMyA9IF9fcDFfMjIzOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjMgPSBfX3AyXzIyMzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIyMzsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyMyA9IF9fczJfMjIzOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjIzID0gKHVpbnQzMng0X3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIzLCBfX3AzXzIyMyksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjMsIF9fcDNfMjIzKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyMywgX19wM18yMjMpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjIzLCBfX3AzXzIyMyl9OyBcCiAgX19yZXRfMjIzID0gdmNtbGFxX3JvdDI3MF9mMTYoX19zMF8yMjMsIF9fczFfMjIzLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjMpOyBcCiAgX19yZXRfMjIzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mMTYoX19wMF8yMjQsIF9fcDFfMjI0LCBfX3AyXzIyNCwgX19wM18yMjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjI0ID0gX19wMF8yMjQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIyNCA9IF9fcDFfMjI0OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjQgPSBfX3AyXzIyNDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yMjQ7ICBfX3JldjBfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMjQsIF9fczBfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yMjQ7ICBfX3JldjFfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMjQsIF9fczFfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml8yMjQ7ICBfX3JldjJfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMjQsIF9fczJfMjI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIyNDsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyNCA9IF9fcmV2Ml8yMjQ7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMjQgPSAodWludDMyeDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjQsIF9fcDNfMjI0KSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIyNCwgX19wM18yMjQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjI0LCBfX3AzXzIyNCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjQsIF9fcDNfMjI0KX07IFwKICBfX3JldF8yMjQgPSBfX25vc3dhcF92Y21sYXFfcm90MjcwX2YxNihfX3JldjBfMjI0LCBfX3JldjFfMjI0LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjQpOyBcCiAgX19yZXRfMjI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjI0LCBfX3JldF8yMjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmNtbGFxX3JvdDkwX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDkwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDhfdCBfX25vc3dhcF92Y21sYXFfcm90OTBfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDkwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjbWxhX3JvdDkwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmNtbGFfcm90OTBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90OTBfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng0X3QgX19ub3N3YXBfdmNtbGFfcm90OTBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90OTBfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lX2YxNihfX3AwXzIyNSwgX19wMV8yMjUsIF9fcDJfMjI1LCBfX3AzXzIyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yMjUgPSBfX3AwXzIyNTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjI1ID0gX19wMV8yMjU7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIyNSA9IF9fcDJfMjI1OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjI1OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjI1ID0gX19zMl8yMjU7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjUgPSAodWludDMyeDJfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNSwgX19wM18yMjUpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjUsIF9fcDNfMjI1KX07IFwKICBfX3JldF8yMjUgPSB2Y21sYV9yb3Q5MF9mMTYoX19zMF8yMjUsIF9fczFfMjI1LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjUpOyBcCiAgX19yZXRfMjI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZV9mMTYoX19wMF8yMjYsIF9fcDFfMjI2LCBfX3AyXzIyNiwgX19wM18yMjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjI2ID0gX19wMF8yMjY7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIyNiA9IF9fcDFfMjI2OyBcCiAgZmxvYXQxNng0X3QgX19zMl8yMjYgPSBfX3AyXzIyNjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8yMjY7ICBfX3JldjBfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMjYsIF9fczBfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yMjY7ICBfX3JldjFfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMjYsIF9fczFfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yMjY7ICBfX3JldjJfMjI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yMjYsIF9fczJfMjI2LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIyNjsgXApmbG9hdDE2eDRfdCBfX3JlaW50XzIyNiA9IF9fcmV2Ml8yMjY7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yMjYgPSAodWludDMyeDJfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNiwgX19wM18yMjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjYsIF9fcDNfMjI2KX07IFwKICBfX3JldF8yMjYgPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMTYoX19yZXYwXzIyNiwgX19yZXYxXzIyNiwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjI2KTsgXAogIF9fcmV0XzIyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIyNiwgX19yZXRfMjI2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIyNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lX2YxNihfX3AwXzIyNywgX19wMV8yMjcsIF9fcDJfMjI3LCBfX3AzXzIyNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yMjcgPSBfX3AwXzIyNzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjI3ID0gX19wMV8yMjc7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzIyNyA9IF9fcDJfMjI3OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjI3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfMjI3ID0gX19zMl8yMjc7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yMjcgPSAodWludDMyeDRfdCkge3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNywgX19wM18yMjcpLCB2Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjcsIF9fcDNfMjI3KSwgdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjI3LCBfX3AzXzIyNyksIHZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyNywgX19wM18yMjcpfTsgXAogIF9fcmV0XzIyNyA9IHZjbWxhcV9yb3Q5MF9mMTYoX19zMF8yMjcsIF9fczFfMjI3LCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMjcpOyBcCiAgX19yZXRfMjI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDkwX2xhbmVfZjE2KF9fcDBfMjI4LCBfX3AxXzIyOCwgX19wMl8yMjgsIF9fcDNfMjI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIyOCA9IF9fcDBfMjI4OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMjggPSBfX3AxXzIyODsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjI4ID0gX19wMl8yMjg7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjI4OyAgX19yZXYwXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjI4LCBfX3MwXzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjI4OyAgX19yZXYxXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjI4LCBfX3MxXzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjI4OyAgX19yZXYyXzIyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjI4LCBfX3MyXzIyOCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMjg7IFwKZmxvYXQxNng0X3QgX19yZWludF8yMjggPSBfX3JldjJfMjI4OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjI4ID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjgsIF9fcDNfMjI4KSwgX19ub3N3YXBfdmdldF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjI4LCBfX3AzXzIyOCksIF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzIyOCwgX19wM18yMjgpLCBfX25vc3dhcF92Z2V0X2xhbmVfdTMyKCoodWludDMyeDJfdCAqKSAmX19yZWludF8yMjgsIF9fcDNfMjI4KX07IFwKICBfX3JldF8yMjggPSBfX25vc3dhcF92Y21sYXFfcm90OTBfZjE2KF9fcmV2MF8yMjgsIF9fcmV2MV8yMjgsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIyOCk7IFwKICBfX3JldF8yMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMjgsIF9fcmV0XzIyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yMjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mMTYoX19wMF8yMjksIF9fcDFfMjI5LCBfX3AyXzIyOSwgX19wM18yMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjI5ID0gX19wMF8yMjk7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzIyOSA9IF9fcDFfMjI5OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMjkgPSBfX3AyXzIyOTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzIyOTsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIyOSA9IF9fczJfMjI5OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjI5ID0gKHVpbnQzMngyX3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjI5LCBfX3AzXzIyOSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMjksIF9fcDNfMjI5KX07IFwKICBfX3JldF8yMjkgPSB2Y21sYV9yb3Q5MF9mMTYoX19zMF8yMjksIF9fczFfMjI5LCAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50MV8yMjkpOyBcCiAgX19yZXRfMjI5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfcm90OTBfbGFuZXFfZjE2KF9fcDBfMjMwLCBfX3AxXzIzMCwgX19wMl8yMzAsIF9fcDNfMjMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzIzMCA9IF9fcDBfMjMwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8yMzAgPSBfX3AxXzIzMDsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjMwID0gX19wMl8yMzA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjMwOyAgX19yZXYwXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjMwLCBfX3MwXzIzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjMwOyAgX19yZXYxXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjMwLCBfX3MxXzIzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjMwOyAgX19yZXYyXzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjMwLCBfX3MyXzIzMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yMzA7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMzAgPSBfX3JldjJfMjMwOyBcCnVpbnQzMngyX3QgX19yZWludDFfMjMwID0gKHVpbnQzMngyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMwLCBfX3AzXzIzMCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzAsIF9fcDNfMjMwKX07IFwKICBfX3JldF8yMzAgPSBfX25vc3dhcF92Y21sYV9yb3Q5MF9mMTYoX19yZXYwXzIzMCwgX19yZXYxXzIzMCwgKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDFfMjMwKTsgXAogIF9fcmV0XzIzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzIzMCwgX19yZXRfMjMwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzIzMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lcV9mMTYoX19wMF8yMzEsIF9fcDFfMjMxLCBfX3AyXzIzMSwgX19wM18yMzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjMxID0gX19wMF8yMzE7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzIzMSA9IF9fcDFfMjMxOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yMzEgPSBfX3AyXzIzMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzIzMTsgXApmbG9hdDE2eDhfdCBfX3JlaW50XzIzMSA9IF9fczJfMjMxOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjMxID0gKHVpbnQzMng0X3QpIHt2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMxLCBfX3AzXzIzMSksIHZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzEsIF9fcDNfMjMxKSwgdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIzMSwgX19wM18yMzEpLCB2Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMxLCBfX3AzXzIzMSl9OyBcCiAgX19yZXRfMjMxID0gdmNtbGFxX3JvdDkwX2YxNihfX3MwXzIzMSwgX19zMV8yMzEsICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQxXzIzMSk7IFwKICBfX3JldF8yMzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjE2KF9fcDBfMjMyLCBfX3AxXzIzMiwgX19wMl8yMzIsIF9fcDNfMjMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzIzMiA9IF9fcDBfMjMyOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yMzIgPSBfX3AxXzIzMjsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjMyID0gX19wMl8yMzI7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjMyOyAgX19yZXYwXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjMyLCBfX3MwXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjMyOyAgX19yZXYxXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjMyLCBfX3MxXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjMyOyAgX19yZXYyXzIzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjMyLCBfX3MyXzIzMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yMzI7IFwKZmxvYXQxNng4X3QgX19yZWludF8yMzIgPSBfX3JldjJfMjMyOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjMyID0gKHVpbnQzMng0X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMyLCBfX3AzXzIzMiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTMyKCoodWludDMyeDRfdCAqKSAmX19yZWludF8yMzIsIF9fcDNfMjMyKSwgX19ub3N3YXBfdmdldHFfbGFuZV91MzIoKih1aW50MzJ4NF90ICopICZfX3JlaW50XzIzMiwgX19wM18yMzIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjMyLCBfX3AzXzIzMil9OyBcCiAgX19yZXRfMjMyID0gX19ub3N3YXBfdmNtbGFxX3JvdDkwX2YxNihfX3JldjBfMjMyLCBfX3JldjFfMjMyLCAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50MV8yMzIpOyBcCiAgX19yZXRfMjMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjMyLCBfX3JldF8yMzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjMyOyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfQ09NUExFWCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDI3MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FkZHFfcm90MjcwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2Y2FkZHFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNhZGRxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWRkcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y21sYXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IF9fbm9zd2FwX3ZjbWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Y21sYV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y21sYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Y21sYV9sYW5lX2Y2NChfX3AwXzIzMywgX19wMV8yMzMsIF9fcDJfMjMzLCBfX3AzXzIzMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yMzMgPSBfX3AwXzIzMzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjMzID0gX19wMV8yMzM7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzIzMyA9IF9fcDJfMjMzOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjMzOyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjMzID0gX19zMl8yMzM7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMzMgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzMsIF9fcDNfMjMzKSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzMywgX19wM18yMzMpfTsgXAogIF9fcmV0XzIzMyA9IHZjbWxhX2Y2NChfX3MwXzIzMywgX19zMV8yMzMsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzIzMyk7IFwKICBfX3JldF8yMzM7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX2xhbmVfZjY0KF9fcDBfMjM0LCBfX3AxXzIzNCwgX19wMl8yMzQsIF9fcDNfMjM0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzIzNCA9IF9fcDBfMjM0OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yMzQgPSBfX3AxXzIzNDsgXAogIGZsb2F0NjR4MV90IF9fczJfMjM0ID0gX19wMl8yMzQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yMzQ7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yMzQgPSBfX3MyXzIzNDsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzIzNCA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzNCwgX19wM18yMzQpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM0LCBfX3AzXzIzNCl9OyBcCiAgX19yZXRfMjM0ID0gdmNtbGFxX2Y2NChfX3MwXzIzNCwgX19zMV8yMzQsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzIzNCk7IFwKICBfX3JldF8yMzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfbGFuZV9mNjQoX19wMF8yMzUsIF9fcDFfMjM1LCBfX3AyXzIzNSwgX19wM18yMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjM1ID0gX19wMF8yMzU7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzIzNSA9IF9fcDFfMjM1OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yMzUgPSBfX3AyXzIzNTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF8yMzU7ICBfX3JldjBfMjM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yMzUsIF9fczBfMjM1LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV8yMzU7ICBfX3JldjFfMjM1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yMzUsIF9fczFfMjM1LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzIzNTsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzIzNSA9IF9fczJfMjM1OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM1ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM1LCBfX3AzXzIzNSksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzUsIF9fcDNfMjM1KX07IFwKICBfX3JldF8yMzUgPSBfX25vc3dhcF92Y21sYXFfZjY0KF9fcmV2MF8yMzUsIF9fcmV2MV8yMzUsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzIzNSk7IFwKICBfX3JldF8yMzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yMzUsIF9fcmV0XzIzNSwgMSwgMCk7IFwKICBfX3JldF8yMzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9sYW5lcV9mNjQoX19wMF8yMzYsIF9fcDFfMjM2LCBfX3AyXzIzNiwgX19wM18yMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjM2ID0gX19wMF8yMzY7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzIzNiA9IF9fcDFfMjM2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yMzYgPSBfX3AyXzIzNjsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzIzNjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzIzNiA9IF9fczJfMjM2OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM2ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM2LCBfX3AzXzIzNiksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzYsIF9fcDNfMjM2KX07IFwKICBfX3JldF8yMzYgPSB2Y21sYV9mNjQoX19zMF8yMzYsIF9fczFfMjM2LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yMzYpOyBcCiAgX19yZXRfMjM2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFfbGFuZXFfZjY0KF9fcDBfMjM3LCBfX3AxXzIzNywgX19wMl8yMzcsIF9fcDNfMjM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzIzNyA9IF9fcDBfMjM3OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yMzcgPSBfX3AxXzIzNzsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjM3ID0gX19wMl8yMzc7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjM3OyAgX19yZXYyXzIzNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjM3LCBfX3MyXzIzNywgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yMzc7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yMzcgPSBfX3JldjJfMjM3OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjM3ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM3LCBfX3AzXzIzNyksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzcsIF9fcDNfMjM3KX07IFwKICBfX3JldF8yMzcgPSB2Y21sYV9mNjQoX19zMF8yMzcsIF9fczFfMjM3LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yMzcpOyBcCiAgX19yZXRfMjM3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2Y2NChfX3AwXzIzOCwgX19wMV8yMzgsIF9fcDJfMjM4LCBfX3AzXzIzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yMzggPSBfX3AwXzIzODsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjM4ID0gX19wMV8yMzg7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzIzOCA9IF9fcDJfMjM4OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjM4OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjM4ID0gX19zMl8yMzg7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yMzggPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yMzgsIF9fcDNfMjM4KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzOCwgX19wM18yMzgpfTsgXAogIF9fcmV0XzIzOCA9IHZjbWxhcV9mNjQoX19zMF8yMzgsIF9fczFfMjM4LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yMzgpOyBcCiAgX19yZXRfMjM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX2xhbmVxX2Y2NChfX3AwXzIzOSwgX19wMV8yMzksIF9fcDJfMjM5LCBfX3AzXzIzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yMzkgPSBfX3AwXzIzOTsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjM5ID0gX19wMV8yMzk7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzIzOSA9IF9fcDJfMjM5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzIzOTsgIF9fcmV2MF8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzIzOSwgX19zMF8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzIzOTsgIF9fcmV2MV8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzIzOSwgX19zMV8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzIzOTsgIF9fcmV2Ml8yMzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzIzOSwgX19zMl8yMzksIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjM5OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjM5ID0gX19yZXYyXzIzOTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzIzOSA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzIzOSwgX19wM18yMzkpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjM5LCBfX3AzXzIzOSl9OyBcCiAgX19yZXRfMjM5ID0gX19ub3N3YXBfdmNtbGFxX2Y2NChfX3JldjBfMjM5LCBfX3JldjFfMjM5LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yMzkpOyBcCiAgX19yZXRfMjM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjM5LCBfX3JldF8yMzksIDEsIDApOyBcCiAgX19yZXRfMjM5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDE4MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9yb3QxODBfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmNtbGFxX3JvdDE4MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgX19ub3N3YXBfdmNtbGFxX3JvdDE4MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MTgwX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmNtbGFfcm90MTgwX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxLCBmbG9hdDY0eDFfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDE4MF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZV9mNjQoX19wMF8yNDAsIF9fcDFfMjQwLCBfX3AyXzI0MCwgX19wM18yNDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjQwID0gX19wMF8yNDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI0MCA9IF9fcDFfMjQwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNDAgPSBfX3AyXzI0MDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI0MDsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI0MCA9IF9fczJfMjQwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQwID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQwLCBfX3AzXzI0MCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDAsIF9fcDNfMjQwKX07IFwKICBfX3JldF8yNDAgPSB2Y21sYV9yb3QxODBfZjY0KF9fczBfMjQwLCBfX3MxXzI0MCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjQwKTsgXAogIF9fcmV0XzI0MDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90MTgwX2xhbmVfZjY0KF9fcDBfMjQxLCBfX3AxXzI0MSwgX19wMl8yNDEsIF9fcDNfMjQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0MSA9IF9fcDBfMjQxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDEgPSBfX3AxXzI0MTsgXAogIGZsb2F0NjR4MV90IF9fczJfMjQxID0gX19wMl8yNDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDE7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNDEgPSBfX3MyXzI0MTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0MSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MSwgX19wM18yNDEpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQxLCBfX3AzXzI0MSl9OyBcCiAgX19yZXRfMjQxID0gdmNtbGFxX3JvdDE4MF9mNjQoX19zMF8yNDEsIF9fczFfMjQxLCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yNDEpOyBcCiAgX19yZXRfMjQxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lX2Y2NChfX3AwXzI0MiwgX19wMV8yNDIsIF9fcDJfMjQyLCBfX3AzXzI0MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNDIgPSBfX3AwXzI0MjsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjQyID0gX19wMV8yNDI7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI0MiA9IF9fcDJfMjQyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI0MjsgIF9fcmV2MF8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI0MiwgX19zMF8yNDIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI0MjsgIF9fcmV2MV8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI0MiwgX19zMV8yNDIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjQyOyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjQyID0gX19zMl8yNDI7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDIgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDIsIF9fcDNfMjQyKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MiwgX19wM18yNDIpfTsgXAogIF9fcmV0XzI0MiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjY0KF9fcmV2MF8yNDIsIF9fcmV2MV8yNDIsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0Mik7IFwKICBfX3JldF8yNDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNDIsIF9fcmV0XzI0MiwgMSwgMCk7IFwKICBfX3JldF8yNDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQzLCBfX3AxXzI0MywgX19wMl8yNDMsIF9fcDNfMjQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI0MyA9IF9fcDBfMjQzOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNDMgPSBfX3AxXzI0MzsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQzID0gX19wMl8yNDM7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNDM7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDMgPSBfX3MyXzI0MzsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0MyA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0MywgX19wM18yNDMpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQzLCBfX3AzXzI0Myl9OyBcCiAgX19yZXRfMjQzID0gdmNtbGFfcm90MTgwX2Y2NChfX3MwXzI0MywgX19zMV8yNDMsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI0Myk7IFwKICBfX3JldF8yNDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQ0LCBfX3AxXzI0NCwgX19wMl8yNDQsIF9fcDNfMjQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI0NCA9IF9fcDBfMjQ0OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNDQgPSBfX3AxXzI0NDsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQ0ID0gX19wMl8yNDQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjQ0OyAgX19yZXYyXzI0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjQ0LCBfX3MyXzI0NCwgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNDQ7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDQgPSBfX3JldjJfMjQ0OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQ0ID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ0LCBfX3AzXzI0NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDQsIF9fcDNfMjQ0KX07IFwKICBfX3JldF8yNDQgPSB2Y21sYV9yb3QxODBfZjY0KF9fczBfMjQ0LCBfX3MxXzI0NCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjQ0KTsgXAogIF9fcmV0XzI0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QxODBfbGFuZXFfZjY0KF9fcDBfMjQ1LCBfX3AxXzI0NSwgX19wMl8yNDUsIF9fcDNfMjQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0NSA9IF9fcDBfMjQ1OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDUgPSBfX3AxXzI0NTsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjQ1ID0gX19wMl8yNDU7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDU7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNDUgPSBfX3MyXzI0NTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0NSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NSwgX19wM18yNDUpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ1LCBfX3AzXzI0NSl9OyBcCiAgX19yZXRfMjQ1ID0gdmNtbGFxX3JvdDE4MF9mNjQoX19zMF8yNDUsIF9fczFfMjQ1LCAqKGZsb2F0NjR4Ml90ICopICZfX3JlaW50MV8yNDUpOyBcCiAgX19yZXRfMjQ1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNtbGFxX3JvdDE4MF9sYW5lcV9mNjQoX19wMF8yNDYsIF9fcDFfMjQ2LCBfX3AyXzI0NiwgX19wM18yNDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjQ2ID0gX19wMF8yNDY7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI0NiA9IF9fcDFfMjQ2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNDYgPSBfX3AyXzI0NjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF8yNDY7ICBfX3JldjBfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNDYsIF9fczBfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV8yNDY7ICBfX3JldjFfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNDYsIF9fczFfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNDY7ICBfX3JldjJfMjQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNDYsIF9fczJfMjQ2LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI0NjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI0NiA9IF9fcmV2Ml8yNDY7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDYgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDYsIF9fcDNfMjQ2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NiwgX19wM18yNDYpfTsgXAogIF9fcmV0XzI0NiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3QxODBfZjY0KF9fcmV2MF8yNDYsIF9fcmV2MV8yNDYsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0Nik7IFwKICBfX3JldF8yNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNDYsIF9fcmV0XzI0NiwgMSwgMCk7IFwKICBfX3JldF8yNDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y21sYXFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDI3MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90MjcwX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Y21sYXFfcm90MjcwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3QyNzBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Y21sYV9yb3QyNzBfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmNtbGFfcm90MjcwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lX2Y2NChfX3AwXzI0NywgX19wMV8yNDcsIF9fcDJfMjQ3LCBfX3AzXzI0NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yNDcgPSBfX3AwXzI0NzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjQ3ID0gX19wMV8yNDc7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI0NyA9IF9fcDJfMjQ3OyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjQ3OyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjQ3ID0gX19zMl8yNDc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNDcgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDcsIF9fcDNfMjQ3KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0NywgX19wM18yNDcpfTsgXAogIF9fcmV0XzI0NyA9IHZjbWxhX3JvdDI3MF9mNjQoX19zMF8yNDcsIF9fczFfMjQ3LCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yNDcpOyBcCiAgX19yZXRfMjQ3OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhcV9yb3QyNzBfbGFuZV9mNjQoX19wMF8yNDgsIF9fcDFfMjQ4LCBfX3AyXzI0OCwgX19wM18yNDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjQ4ID0gX19wMF8yNDg7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI0OCA9IF9fcDFfMjQ4OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNDggPSBfX3AyXzI0ODsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI0ODsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI0OCA9IF9fczJfMjQ4OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjQ4ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ4LCBfX3AzXzI0OCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNDgsIF9fcDNfMjQ4KX07IFwKICBfX3JldF8yNDggPSB2Y21sYXFfcm90MjcwX2Y2NChfX3MwXzI0OCwgX19zMV8yNDgsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI0OCk7IFwKICBfX3JldF8yNDg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVfZjY0KF9fcDBfMjQ5LCBfX3AxXzI0OSwgX19wMl8yNDksIF9fcDNfMjQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI0OSA9IF9fcDBfMjQ5OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNDkgPSBfX3AxXzI0OTsgXAogIGZsb2F0NjR4MV90IF9fczJfMjQ5ID0gX19wMl8yNDk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfMjQ5OyAgX19yZXYwXzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjQ5LCBfX3MwXzI0OSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfMjQ5OyAgX19yZXYxXzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjQ5LCBfX3MxXzI0OSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNDk7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNDkgPSBfX3MyXzI0OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI0OSA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI0OSwgX19wM18yNDkpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjQ5LCBfX3AzXzI0OSl9OyBcCiAgX19yZXRfMjQ5ID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mNjQoX19yZXYwXzI0OSwgX19yZXYxXzI0OSwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjQ5KTsgXAogIF9fcmV0XzI0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI0OSwgX19yZXRfMjQ5LCAxLCAwKTsgXAogIF9fcmV0XzI0OTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTAsIF9fcDFfMjUwLCBfX3AyXzI1MCwgX19wM18yNTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjUwID0gX19wMF8yNTA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1MCA9IF9fcDFfMjUwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTAgPSBfX3AyXzI1MDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1MDsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MCA9IF9fczJfMjUwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjUwID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUwLCBfX3AzXzI1MCksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTAsIF9fcDNfMjUwKX07IFwKICBfX3JldF8yNTAgPSB2Y21sYV9yb3QyNzBfZjY0KF9fczBfMjUwLCBfX3MxXzI1MCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjUwKTsgXAogIF9fcmV0XzI1MDsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTEsIF9fcDFfMjUxLCBfX3AyXzI1MSwgX19wM18yNTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjUxID0gX19wMF8yNTE7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1MSA9IF9fcDFfMjUxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTEgPSBfX3AyXzI1MTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNTE7ICBfX3JldjJfMjUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNTEsIF9fczJfMjUxLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1MTsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MSA9IF9fcmV2Ml8yNTE7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTEgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTEsIF9fcDNfMjUxKSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1MSwgX19wM18yNTEpfTsgXAogIF9fcmV0XzI1MSA9IHZjbWxhX3JvdDI3MF9mNjQoX19zMF8yNTEsIF9fczFfMjUxLCAqKGZsb2F0NjR4MV90ICopICZfX3JlaW50MV8yNTEpOyBcCiAgX19yZXRfMjUxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNtbGFxX3JvdDI3MF9sYW5lcV9mNjQoX19wMF8yNTIsIF9fcDFfMjUyLCBfX3AyXzI1MiwgX19wM18yNTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjUyID0gX19wMF8yNTI7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI1MiA9IF9fcDFfMjUyOyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTIgPSBfX3AyXzI1MjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI1MjsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1MiA9IF9fczJfMjUyOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjUyID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUyLCBfX3AzXzI1MiksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTIsIF9fcDNfMjUyKX07IFwKICBfX3JldF8yNTIgPSB2Y21sYXFfcm90MjcwX2Y2NChfX3MwXzI1MiwgX19zMV8yNTIsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI1Mik7IFwKICBfX3JldF8yNTI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90MjcwX2xhbmVxX2Y2NChfX3AwXzI1MywgX19wMV8yNTMsIF9fcDJfMjUzLCBfX3AzXzI1MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNTMgPSBfX3AwXzI1MzsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjUzID0gX19wMV8yNTM7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzI1MyA9IF9fcDJfMjUzOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI1MzsgIF9fcmV2MF8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI1MywgX19zMF8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI1MzsgIF9fcmV2MV8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI1MywgX19zMV8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzI1MzsgIF9fcmV2Ml8yNTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI1MywgX19zMl8yNTMsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjUzOyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjUzID0gX19yZXYyXzI1MzsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1MyA9ICh1aW50NjR4Ml90KSB7X19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1MywgX19wM18yNTMpLCBfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjUzLCBfX3AzXzI1Myl9OyBcCiAgX19yZXRfMjUzID0gX19ub3N3YXBfdmNtbGFxX3JvdDI3MF9mNjQoX19yZXYwXzI1MywgX19yZXYxXzI1MywgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjUzKTsgXAogIF9fcmV0XzI1MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI1MywgX19yZXRfMjUzLCAxLCAwKTsgXAogIF9fcmV0XzI1MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZjbWxhcV9yb3Q5MF9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y21sYXFfcm90OTBfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNtbGFxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgyX3QgX19ub3N3YXBfdmNtbGFxX3JvdDkwX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhcV9yb3Q5MF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZjbWxhX3JvdDkwX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxLCBmbG9hdDY0eDFfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbWxhX3JvdDkwX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZjbWxhX3JvdDkwX2xhbmVfZjY0KF9fcDBfMjU0LCBfX3AxXzI1NCwgX19wMl8yNTQsIF9fcDNfMjU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzI1NCA9IF9fcDBfMjU0OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV8yNTQgPSBfX3AxXzI1NDsgXAogIGZsb2F0NjR4MV90IF9fczJfMjU0ID0gX19wMl8yNTQ7IFwKICBmbG9hdDY0eDFfdCBfX3JldF8yNTQ7IFwKZmxvYXQ2NHgxX3QgX19yZWludF8yNTQgPSBfX3MyXzI1NDsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1NCA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NCwgX19wM18yNTQpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU0LCBfX3AzXzI1NCl9OyBcCiAgX19yZXRfMjU0ID0gdmNtbGFfcm90OTBfZjY0KF9fczBfMjU0LCBfX3MxXzI1NCwgKihmbG9hdDY0eDFfdCAqKSAmX19yZWludDFfMjU0KTsgXAogIF9fcmV0XzI1NDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZV9mNjQoX19wMF8yNTUsIF9fcDFfMjU1LCBfX3AyXzI1NSwgX19wM18yNTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfMjU1ID0gX19wMF8yNTU7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzI1NSA9IF9fcDFfMjU1OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl8yNTUgPSBfX3AyXzI1NTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzI1NTsgXApmbG9hdDY0eDFfdCBfX3JlaW50XzI1NSA9IF9fczJfMjU1OyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjU1ID0gKHVpbnQ2NHgyX3QpIHt2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU1LCBfX3AzXzI1NSksIHZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTUsIF9fcDNfMjU1KX07IFwKICBfX3JldF8yNTUgPSB2Y21sYXFfcm90OTBfZjY0KF9fczBfMjU1LCBfX3MxXzI1NSwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjU1KTsgXAogIF9fcmV0XzI1NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjbWxhcV9yb3Q5MF9sYW5lX2Y2NChfX3AwXzI1NiwgX19wMV8yNTYsIF9fcDJfMjU2LCBfX3AzXzI1NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF8yNTYgPSBfX3AwXzI1NjsgXAogIGZsb2F0NjR4Ml90IF9fczFfMjU2ID0gX19wMV8yNTY7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzI1NiA9IF9fcDJfMjU2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzI1NjsgIF9fcmV2MF8yNTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI1NiwgX19zMF8yNTYsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzI1NjsgIF9fcmV2MV8yNTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI1NiwgX19zMV8yNTYsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfMjU2OyBcCmZsb2F0NjR4MV90IF9fcmVpbnRfMjU2ID0gX19zMl8yNTY7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTYgPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTYsIF9fcDNfMjU2KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NiwgX19wM18yNTYpfTsgXAogIF9fcmV0XzI1NiA9IF9fbm9zd2FwX3ZjbWxhcV9yb3Q5MF9mNjQoX19yZXYwXzI1NiwgX19yZXYxXzI1NiwgKihmbG9hdDY0eDJfdCAqKSAmX19yZWludDFfMjU2KTsgXAogIF9fcmV0XzI1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI1NiwgX19yZXRfMjU2LCAxLCAwKTsgXAogIF9fcmV0XzI1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjbWxhX3JvdDkwX2xhbmVxX2Y2NChfX3AwXzI1NywgX19wMV8yNTcsIF9fcDJfMjU3LCBfX3AzXzI1NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF8yNTcgPSBfX3AwXzI1NzsgXAogIGZsb2F0NjR4MV90IF9fczFfMjU3ID0gX19wMV8yNTc7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzI1NyA9IF9fcDJfMjU3OyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfMjU3OyBcCmZsb2F0NjR4Ml90IF9fcmVpbnRfMjU3ID0gX19zMl8yNTc7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTcgPSAodWludDY0eDJfdCkge3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTcsIF9fcDNfMjU3KSwgdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1NywgX19wM18yNTcpfTsgXAogIF9fcmV0XzI1NyA9IHZjbWxhX3JvdDkwX2Y2NChfX3MwXzI1NywgX19zMV8yNTcsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI1Nyk7IFwKICBfX3JldF8yNTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYV9yb3Q5MF9sYW5lcV9mNjQoX19wMF8yNTgsIF9fcDFfMjU4LCBfX3AyXzI1OCwgX19wM18yNTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfMjU4ID0gX19wMF8yNTg7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzI1OCA9IF9fcDFfMjU4OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl8yNTggPSBfX3AyXzI1ODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml8yNTg7ICBfX3JldjJfMjU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNTgsIF9fczJfMjU4LCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzI1ODsgXApmbG9hdDY0eDJfdCBfX3JlaW50XzI1OCA9IF9fcmV2Ml8yNTg7IFwKdWludDY0eDJfdCBfX3JlaW50MV8yNTggPSAodWludDY0eDJfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNTgsIF9fcDNfMjU4KSwgX19ub3N3YXBfdmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1OCwgX19wM18yNTgpfTsgXAogIF9fcmV0XzI1OCA9IHZjbWxhX3JvdDkwX2Y2NChfX3MwXzI1OCwgX19zMV8yNTgsICooZmxvYXQ2NHgxX3QgKikgJl9fcmVpbnQxXzI1OCk7IFwKICBfX3JldF8yNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjY0KF9fcDBfMjU5LCBfX3AxXzI1OSwgX19wMl8yNTksIF9fcDNfMjU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI1OSA9IF9fcDBfMjU5OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNTkgPSBfX3AxXzI1OTsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjU5ID0gX19wMl8yNTk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNTk7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNTkgPSBfX3MyXzI1OTsgXAp1aW50NjR4Ml90IF9fcmVpbnQxXzI1OSA9ICh1aW50NjR4Ml90KSB7dmdldHFfbGFuZV91NjQoKih1aW50NjR4Ml90ICopICZfX3JlaW50XzI1OSwgX19wM18yNTkpLCB2Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjU5LCBfX3AzXzI1OSl9OyBcCiAgX19yZXRfMjU5ID0gdmNtbGFxX3JvdDkwX2Y2NChfX3MwXzI1OSwgX19zMV8yNTksICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI1OSk7IFwKICBfX3JldF8yNTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y21sYXFfcm90OTBfbGFuZXFfZjY0KF9fcDBfMjYwLCBfX3AxXzI2MCwgX19wMl8yNjAsIF9fcDNfMjYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzI2MCA9IF9fcDBfMjYwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMV8yNjAgPSBfX3AxXzI2MDsgXAogIGZsb2F0NjR4Ml90IF9fczJfMjYwID0gX19wMl8yNjA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfMjYwOyAgX19yZXYwXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjYwLCBfX3MwXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfMjYwOyAgX19yZXYxXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjYwLCBfX3MxXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfMjYwOyAgX19yZXYyXzI2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjYwLCBfX3MyXzI2MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF8yNjA7IFwKZmxvYXQ2NHgyX3QgX19yZWludF8yNjAgPSBfX3JldjJfMjYwOyBcCnVpbnQ2NHgyX3QgX19yZWludDFfMjYwID0gKHVpbnQ2NHgyX3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX3U2NCgqKHVpbnQ2NHgyX3QgKikgJl9fcmVpbnRfMjYwLCBfX3AzXzI2MCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KCoodWludDY0eDJfdCAqKSAmX19yZWludF8yNjAsIF9fcDNfMjYwKX07IFwKICBfX3JldF8yNjAgPSBfX25vc3dhcF92Y21sYXFfcm90OTBfZjY0KF9fcmV2MF8yNjAsIF9fcmV2MV8yNjAsICooZmxvYXQ2NHgyX3QgKikgJl9fcmVpbnQxXzI2MCk7IFwKICBfX3JldF8yNjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjAsIF9fcmV0XzI2MCwgMSwgMCk7IFwKICBfX3JldF8yNjA7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9ET1RQUk9EKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZkb3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZkb3RxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92ZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92ZG90cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZkb3RxX3MzMihpbnQzMng0X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZkb3RxX3MzMihpbnQzMng0X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdmRvdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92ZG90cV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmRvdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2ZG90X3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMngyX3QgX19ub3N3YXBfdmRvdF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZkb3RfczMyKGludDMyeDJfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdmRvdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2ZG90X3MzMihpbnQzMngyX3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZG90X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyeDJfdCBfX25vc3dhcF92ZG90X3MzMihpbnQzMngyX3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Zkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90cV9sYW5lX3UzMihfX3AwXzI2MSwgX19wMV8yNjEsIF9fcDJfMjYxLCBfX3AzXzI2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2MSA9IF9fcDBfMjYxOyBcCiAgdWludDh4MTZfdCBfX3MxXzI2MSA9IF9fcDFfMjYxOyBcCiAgdWludDh4OF90IF9fczJfMjYxID0gX19wMl8yNjE7IFwKICB1aW50MzJ4NF90IF9fcmV0XzI2MTsgXAp1aW50OHg4X3QgX19yZWludF8yNjEgPSBfX3MyXzI2MTsgXAp1aW50MzJ4NF90IF9fcmVpbnQxXzI2MSA9IHNwbGF0cV9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjYxLCBfX3AzXzI2MSk7IFwKICBfX3JldF8yNjEgPSB2ZG90cV91MzIoX19zMF8yNjEsIF9fczFfMjYxLCAqKHVpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2MSk7IFwKICBfX3JldF8yNjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lX3UzMihfX3AwXzI2MiwgX19wMV8yNjIsIF9fcDJfMjYyLCBfX3AzXzI2MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2MiA9IF9fcDBfMjYyOyBcCiAgdWludDh4MTZfdCBfX3MxXzI2MiA9IF9fcDFfMjYyOyBcCiAgdWludDh4OF90IF9fczJfMjYyID0gX19wMl8yNjI7IFwKICB1aW50MzJ4NF90IF9fcmV2MF8yNjI7ICBfX3JldjBfMjYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNjIsIF9fczBfMjYyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxXzI2MjsgIF9fcmV2MV8yNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI2MiwgX19zMV8yNjIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2Ml8yNjI7ICBfX3JldjJfMjYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNjIsIF9fczJfMjYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMjYyOyBcCnVpbnQ4eDhfdCBfX3JlaW50XzI2MiA9IF9fcmV2Ml8yNjI7IFwKdWludDMyeDRfdCBfX3JlaW50MV8yNjIgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzI2MiwgX19wM18yNjIpOyBcCiAgX19yZXRfMjYyID0gX19ub3N3YXBfdmRvdHFfdTMyKF9fcmV2MF8yNjIsIF9fcmV2MV8yNjIsICoodWludDh4MTZfdCAqKSAmX19yZWludDFfMjYyKTsgXAogIF9fcmV0XzI2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI2MiwgX19yZXRfMjYyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RxX2xhbmVfczMyKF9fcDBfMjYzLCBfX3AxXzI2MywgX19wMl8yNjMsIF9fcDNfMjYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8yNjMgPSBfX3AwXzI2MzsgXAogIGludDh4MTZfdCBfX3MxXzI2MyA9IF9fcDFfMjYzOyBcCiAgaW50OHg4X3QgX19zMl8yNjMgPSBfX3AyXzI2MzsgXAogIGludDMyeDRfdCBfX3JldF8yNjM7IFwKaW50OHg4X3QgX19yZWludF8yNjMgPSBfX3MyXzI2MzsgXAppbnQzMng0X3QgX19yZWludDFfMjYzID0gc3BsYXRxX2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzI2MywgX19wM18yNjMpOyBcCiAgX19yZXRfMjYzID0gdmRvdHFfczMyKF9fczBfMjYzLCBfX3MxXzI2MywgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2Myk7IFwKICBfX3JldF8yNjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lX3MzMihfX3AwXzI2NCwgX19wMV8yNjQsIF9fcDJfMjY0LCBfX3AzXzI2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMjY0ID0gX19wMF8yNjQ7IFwKICBpbnQ4eDE2X3QgX19zMV8yNjQgPSBfX3AxXzI2NDsgXAogIGludDh4OF90IF9fczJfMjY0ID0gX19wMl8yNjQ7IFwKICBpbnQzMng0X3QgX19yZXYwXzI2NDsgIF9fcmV2MF8yNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2NCwgX19zMF8yNjQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2MV8yNjQ7ICBfX3JldjFfMjY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNjQsIF9fczFfMjY0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV2Ml8yNjQ7ICBfX3JldjJfMjY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNjQsIF9fczJfMjY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8yNjQ7IFwKaW50OHg4X3QgX19yZWludF8yNjQgPSBfX3JldjJfMjY0OyBcCmludDMyeDRfdCBfX3JlaW50MV8yNjQgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMjY0LCBfX3AzXzI2NCk7IFwKICBfX3JldF8yNjQgPSBfX25vc3dhcF92ZG90cV9zMzIoX19yZXYwXzI2NCwgX19yZXYxXzI2NCwgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2NCk7IFwKICBfX3JldF8yNjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjQsIF9fcmV0XzI2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yNjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90X2xhbmVfdTMyKF9fcDBfMjY1LCBfX3AxXzI2NSwgX19wMl8yNjUsIF9fcDNfMjY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjY1ID0gX19wMF8yNjU7IFwKICB1aW50OHg4X3QgX19zMV8yNjUgPSBfX3AxXzI2NTsgXAogIHVpbnQ4eDhfdCBfX3MyXzI2NSA9IF9fcDJfMjY1OyBcCiAgdWludDMyeDJfdCBfX3JldF8yNjU7IFwKdWludDh4OF90IF9fcmVpbnRfMjY1ID0gX19zMl8yNjU7IFwKdWludDMyeDJfdCBfX3JlaW50MV8yNjUgPSBzcGxhdF9sYW5lX3UzMigqKHVpbnQzMngyX3QgKikgJl9fcmVpbnRfMjY1LCBfX3AzXzI2NSk7IFwKICBfX3JldF8yNjUgPSB2ZG90X3UzMihfX3MwXzI2NSwgX19zMV8yNjUsICoodWludDh4OF90ICopICZfX3JlaW50MV8yNjUpOyBcCiAgX19yZXRfMjY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmRvdF9sYW5lX3UzMihfX3AwXzI2NiwgX19wMV8yNjYsIF9fcDJfMjY2LCBfX3AzXzI2NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzI2NiA9IF9fcDBfMjY2OyBcCiAgdWludDh4OF90IF9fczFfMjY2ID0gX19wMV8yNjY7IFwKICB1aW50OHg4X3QgX19zMl8yNjYgPSBfX3AyXzI2NjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzI2NjsgIF9fcmV2MF8yNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2NiwgX19zMF8yNjYsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2MV8yNjY7ICBfX3JldjFfMjY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNjYsIF9fczFfMjY2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjJfMjY2OyAgX19yZXYyXzI2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjY2LCBfX3MyXzI2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI2NjsgXAp1aW50OHg4X3QgX19yZWludF8yNjYgPSBfX3JldjJfMjY2OyBcCnVpbnQzMngyX3QgX19yZWludDFfMjY2ID0gX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoKih1aW50MzJ4Ml90ICopICZfX3JlaW50XzI2NiwgX19wM18yNjYpOyBcCiAgX19yZXRfMjY2ID0gX19ub3N3YXBfdmRvdF91MzIoX19yZXYwXzI2NiwgX19yZXYxXzI2NiwgKih1aW50OHg4X3QgKikgJl9fcmVpbnQxXzI2Nik7IFwKICBfX3JldF8yNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yNjYsIF9fcmV0XzI2NiwgMSwgMCk7IFwKICBfX3JldF8yNjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZG90X2xhbmVfczMyKF9fcDBfMjY3LCBfX3AxXzI2NywgX19wMl8yNjcsIF9fcDNfMjY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNjcgPSBfX3AwXzI2NzsgXAogIGludDh4OF90IF9fczFfMjY3ID0gX19wMV8yNjc7IFwKICBpbnQ4eDhfdCBfX3MyXzI2NyA9IF9fcDJfMjY3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI2NzsgXAppbnQ4eDhfdCBfX3JlaW50XzI2NyA9IF9fczJfMjY3OyBcCmludDMyeDJfdCBfX3JlaW50MV8yNjcgPSBzcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8yNjcsIF9fcDNfMjY3KTsgXAogIF9fcmV0XzI2NyA9IHZkb3RfczMyKF9fczBfMjY3LCBfX3MxXzI2NywgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjY3KTsgXAogIF9fcmV0XzI2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZkb3RfbGFuZV9zMzIoX19wMF8yNjgsIF9fcDFfMjY4LCBfX3AyXzI2OCwgX19wM18yNjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzI2OCA9IF9fcDBfMjY4OyBcCiAgaW50OHg4X3QgX19zMV8yNjggPSBfX3AxXzI2ODsgXAogIGludDh4OF90IF9fczJfMjY4ID0gX19wMl8yNjg7IFwKICBpbnQzMngyX3QgX19yZXYwXzI2ODsgIF9fcmV2MF8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI2OCwgX19zMF8yNjgsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYxXzI2ODsgIF9fcmV2MV8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI2OCwgX19zMV8yNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzI2ODsgIF9fcmV2Ml8yNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI2OCwgX19zMl8yNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI2ODsgXAppbnQ4eDhfdCBfX3JlaW50XzI2OCA9IF9fcmV2Ml8yNjg7IFwKaW50MzJ4Ml90IF9fcmVpbnQxXzI2OCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzI2OCwgX19wM18yNjgpOyBcCiAgX19yZXRfMjY4ID0gX19ub3N3YXBfdmRvdF9zMzIoX19yZXYwXzI2OCwgX19yZXYxXzI2OCwgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjY4KTsgXAogIF9fcmV0XzI2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI2OCwgX19yZXRfMjY4LCAxLCAwKTsgXAogIF9fcmV0XzI2ODsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0RPVFBST0QpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RxX2xhbmVxX3UzMihfX3AwXzI2OSwgX19wMV8yNjksIF9fcDJfMjY5LCBfX3AzXzI2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzI2OSA9IF9fcDBfMjY5OyBcCiAgdWludDh4MTZfdCBfX3MxXzI2OSA9IF9fcDFfMjY5OyBcCiAgdWludDh4MTZfdCBfX3MyXzI2OSA9IF9fcDJfMjY5OyBcCiAgdWludDMyeDRfdCBfX3JldF8yNjk7IFwKdWludDh4MTZfdCBfX3JlaW50XzI2OSA9IF9fczJfMjY5OyBcCnVpbnQzMng0X3QgX19yZWludDFfMjY5ID0gc3BsYXRxX2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjY5LCBfX3AzXzI2OSk7IFwKICBfX3JldF8yNjkgPSB2ZG90cV91MzIoX19zMF8yNjksIF9fczFfMjY5LCAqKHVpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI2OSk7IFwKICBfX3JldF8yNjk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lcV91MzIoX19wMF8yNzAsIF9fcDFfMjcwLCBfX3AyXzI3MCwgX19wM18yNzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF8yNzAgPSBfX3AwXzI3MDsgXAogIHVpbnQ4eDE2X3QgX19zMV8yNzAgPSBfX3AxXzI3MDsgXAogIHVpbnQ4eDE2X3QgX19zMl8yNzAgPSBfX3AyXzI3MDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzI3MDsgIF9fcmV2MF8yNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI3MCwgX19zMF8yNzAsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjFfMjcwOyAgX19yZXYxXzI3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjcwLCBfX3MxXzI3MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2Ml8yNzA7ICBfX3JldjJfMjcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNzAsIF9fczJfMjcwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMjcwOyBcCnVpbnQ4eDE2X3QgX19yZWludF8yNzAgPSBfX3JldjJfMjcwOyBcCnVpbnQzMng0X3QgX19yZWludDFfMjcwID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjcwLCBfX3AzXzI3MCk7IFwKICBfX3JldF8yNzAgPSBfX25vc3dhcF92ZG90cV91MzIoX19yZXYwXzI3MCwgX19yZXYxXzI3MCwgKih1aW50OHgxNl90ICopICZfX3JlaW50MV8yNzApOyBcCiAgX19yZXRfMjcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjcwLCBfX3JldF8yNzAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjcwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmRvdHFfbGFuZXFfczMyKF9fcDBfMjcxLCBfX3AxXzI3MSwgX19wMl8yNzEsIF9fcDNfMjcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8yNzEgPSBfX3AwXzI3MTsgXAogIGludDh4MTZfdCBfX3MxXzI3MSA9IF9fcDFfMjcxOyBcCiAgaW50OHgxNl90IF9fczJfMjcxID0gX19wMl8yNzE7IFwKICBpbnQzMng0X3QgX19yZXRfMjcxOyBcCmludDh4MTZfdCBfX3JlaW50XzI3MSA9IF9fczJfMjcxOyBcCmludDMyeDRfdCBfX3JlaW50MV8yNzEgPSBzcGxhdHFfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzI3MSwgX19wM18yNzEpOyBcCiAgX19yZXRfMjcxID0gdmRvdHFfczMyKF9fczBfMjcxLCBfX3MxXzI3MSwgKihpbnQ4eDE2X3QgKikgJl9fcmVpbnQxXzI3MSk7IFwKICBfX3JldF8yNzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZG90cV9sYW5lcV9zMzIoX19wMF8yNzIsIF9fcDFfMjcyLCBfX3AyXzI3MiwgX19wM18yNzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzI3MiA9IF9fcDBfMjcyOyBcCiAgaW50OHgxNl90IF9fczFfMjcyID0gX19wMV8yNzI7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzIgPSBfX3AyXzI3MjsgXAogIGludDMyeDRfdCBfX3JldjBfMjcyOyAgX19yZXYwXzI3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjcyLCBfX3MwXzI3MiwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxXzI3MjsgIF9fcmV2MV8yNzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI3MiwgX19zMV8yNzIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2Ml8yNzI7ICBfX3JldjJfMjcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yNzIsIF9fczJfMjcyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8yNzI7IFwKaW50OHgxNl90IF9fcmVpbnRfMjcyID0gX19yZXYyXzI3MjsgXAppbnQzMng0X3QgX19yZWludDFfMjcyID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF8yNzIsIF9fcDNfMjcyKTsgXAogIF9fcmV0XzI3MiA9IF9fbm9zd2FwX3Zkb3RxX3MzMihfX3JldjBfMjcyLCBfX3JldjFfMjcyLCAqKGludDh4MTZfdCAqKSAmX19yZWludDFfMjcyKTsgXAogIF9fcmV0XzI3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI3MiwgX19yZXRfMjcyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI3MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RfbGFuZXFfdTMyKF9fcDBfMjczLCBfX3AxXzI3MywgX19wMl8yNzMsIF9fcDNfMjczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMjczID0gX19wMF8yNzM7IFwKICB1aW50OHg4X3QgX19zMV8yNzMgPSBfX3AxXzI3MzsgXAogIHVpbnQ4eDE2X3QgX19zMl8yNzMgPSBfX3AyXzI3MzsgXAogIHVpbnQzMngyX3QgX19yZXRfMjczOyBcCnVpbnQ4eDE2X3QgX19yZWludF8yNzMgPSBfX3MyXzI3MzsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzI3MyA9IHNwbGF0X2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjczLCBfX3AzXzI3Myk7IFwKICBfX3JldF8yNzMgPSB2ZG90X3UzMihfX3MwXzI3MywgX19zMV8yNzMsICoodWludDh4OF90ICopICZfX3JlaW50MV8yNzMpOyBcCiAgX19yZXRfMjczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmRvdF9sYW5lcV91MzIoX19wMF8yNzQsIF9fcDFfMjc0LCBfX3AyXzI3NCwgX19wM18yNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF8yNzQgPSBfX3AwXzI3NDsgXAogIHVpbnQ4eDhfdCBfX3MxXzI3NCA9IF9fcDFfMjc0OyBcCiAgdWludDh4MTZfdCBfX3MyXzI3NCA9IF9fcDJfMjc0OyBcCiAgdWludDMyeDJfdCBfX3JldjBfMjc0OyAgX19yZXYwXzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjc0LCBfX3MwXzI3NCwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxXzI3NDsgIF9fcmV2MV8yNzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI3NCwgX19zMV8yNzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjJfMjc0OyAgX19yZXYyXzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjc0LCBfX3MyXzI3NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzI3NDsgXAp1aW50OHgxNl90IF9fcmVpbnRfMjc0ID0gX19yZXYyXzI3NDsgXAp1aW50MzJ4Ml90IF9fcmVpbnQxXzI3NCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMigqKHVpbnQzMng0X3QgKikgJl9fcmVpbnRfMjc0LCBfX3AzXzI3NCk7IFwKICBfX3JldF8yNzQgPSBfX25vc3dhcF92ZG90X3UzMihfX3JldjBfMjc0LCBfX3JldjFfMjc0LCAqKHVpbnQ4eDhfdCAqKSAmX19yZWludDFfMjc0KTsgXAogIF9fcmV0XzI3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI3NCwgX19yZXRfMjc0LCAxLCAwKTsgXAogIF9fcmV0XzI3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkb3RfbGFuZXFfczMyKF9fcDBfMjc1LCBfX3AxXzI3NSwgX19wMl8yNzUsIF9fcDNfMjc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNzUgPSBfX3AwXzI3NTsgXAogIGludDh4OF90IF9fczFfMjc1ID0gX19wMV8yNzU7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzUgPSBfX3AyXzI3NTsgXAogIGludDMyeDJfdCBfX3JldF8yNzU7IFwKaW50OHgxNl90IF9fcmVpbnRfMjc1ID0gX19zMl8yNzU7IFwKaW50MzJ4Ml90IF9fcmVpbnQxXzI3NSA9IHNwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF8yNzUsIF9fcDNfMjc1KTsgXAogIF9fcmV0XzI3NSA9IHZkb3RfczMyKF9fczBfMjc1LCBfX3MxXzI3NSwgKihpbnQ4eDhfdCAqKSAmX19yZWludDFfMjc1KTsgXAogIF9fcmV0XzI3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkb3RfbGFuZXFfczMyKF9fcDBfMjc2LCBfX3AxXzI3NiwgX19wMl8yNzYsIF9fcDNfMjc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8yNzYgPSBfX3AwXzI3NjsgXAogIGludDh4OF90IF9fczFfMjc2ID0gX19wMV8yNzY7IFwKICBpbnQ4eDE2X3QgX19zMl8yNzYgPSBfX3AyXzI3NjsgXAogIGludDMyeDJfdCBfX3JldjBfMjc2OyAgX19yZXYwXzI3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjc2LCBfX3MwXzI3NiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjFfMjc2OyAgX19yZXYxXzI3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjc2LCBfX3MxXzI3NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzI3NjsgIF9fcmV2Ml8yNzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI3NiwgX19zMl8yNzYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzI3NjsgXAppbnQ4eDE2X3QgX19yZWludF8yNzYgPSBfX3JldjJfMjc2OyBcCmludDMyeDJfdCBfX3JlaW50MV8yNzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfMjc2LCBfX3AzXzI3Nik7IFwKICBfX3JldF8yNzYgPSBfX25vc3dhcF92ZG90X3MzMihfX3JldjBfMjc2LCBfX3JldjFfMjc2LCAqKGludDh4OF90ICopICZfX3JlaW50MV8yNzYpOyBcCiAgX19yZXRfMjc2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjc2LCBfX3JldF8yNzYsIDEsIDApOyBcCiAgX19yZXRfMjc2OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRk1BKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Zm1hcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1hcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSwgZmxvYXQzMng0X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtYXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEsIGZsb2F0MzJ4Ml90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbWFxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgX19wMSwgKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZmbWFxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMzIoX19yZXYwLCBfX3JldjEsIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtYV9uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gdmZtYV9mMzIoX19wMCwgX19wMSwgKGZsb2F0MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWFfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFfZjMyKF9fcmV2MCwgX19yZXYxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyeDRfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMzIoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Zm1zX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyeDJfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hX2YzMihfX3AwLCAtX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtc19mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMngyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMzIoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X0ZNTCkgJiYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmZtbGFscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxhbHFfaGlnaF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2hpZ2hfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9oaWdoX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDRfdCBfX25vc3dhcF92Zm1sYWxxX2hpZ2hfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9oaWdoX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxhbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxhbF9oaWdoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2hpZ2hfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2hpZ2hfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2hpZ2hfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2xvd19mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxxX2xvd192KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1sYWxxX2xvd19mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxxX2xvd192KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtbGFscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbGFscV9sb3dfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2xvd19mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxfbG93X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtbGFsX2xvd19mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sYWxfbG93X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWxhbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbGFsX2xvd192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbWxzbHFfaGlnaF9mMTYoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1sc2xxX2hpZ2hfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfaGlnaF92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdmZtbHNscV9oaWdoX2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfaGlnaF92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2Zm1sc2xfaGlnaF9mMTYoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1sc2xfaGlnaF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9oaWdoX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZmbWxzbF9oaWdoX2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9oaWdoX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbHNscV9sb3dfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmZtbHNscV9sb3dfZjE2KGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtbHNscV9sb3dfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4NF90IF9fbm9zd2FwX3ZmbWxzbHFfbG93X2YxNihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbHFfbG93X3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbHNsX2xvd192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZmbWxzbF9sb3dfZjE2KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtbHNsX2xvd192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyeDJfdCBfX25vc3dhcF92Zm1sc2xfbG93X2YxNihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWxzbF9sb3dfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2YWJkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmFiZHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmFiZF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YWJkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2YWJkX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmFic3FfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2YWJzcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZhYnNfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2YWJzX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmFkZHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZhZGRxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZhZGRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZhZGRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmJzbHFfZjE2KHVpbnQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92YnNscV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2YnNscV9mMTYodWludDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZic2xfZjE2KHVpbnQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdmJzbF9mMTYodWludDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmJzbF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjYWdlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjYWdlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNhZ2VfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2FnZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZ2VfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNhZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNhZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2FndF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhZ3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjYWd0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FndF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2FsZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2FsZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjYWxlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNhbGVfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjYWx0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjYWx0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNhbHRfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2FsdF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNhbHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID09IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpKF9fcmV2MCA9PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZXF6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNlcXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXF6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2dlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2VxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPj0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNnZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwID49IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNnZXpxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ2V6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2dlel9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNnZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNnZXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3RxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2d0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2d0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2d0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjZ3R6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2d0enFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNndHpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ3R6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2xlcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGVxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkoX19yZXYwIDw9IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsZXpxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjbGV6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2xlel9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZXpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHRxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2x0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3AwIDwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2x0X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbHR6cV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0enFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsdHpfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjbHR6X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmN2dHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjE2X3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmN2dHFfZjE2X3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mMTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y3Z0cV9mMTZfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZjdnRxX2YxNl9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2YxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2YxNl92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmN2dF9mMTZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjE2X3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZjdnRfZjE2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9mMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mMTZfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX2YxNl91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fZjE2X3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2YxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfbl9mMTZfdigoaW50OHgxNl90KV9fcmV2MCwgX19wMSwgMzMpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0X25fZjE2X3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxNyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRfbl9mMTZfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDE3KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dF9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3MwLCBfX3AxLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmN2dF9uX2YxNl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9uX2YxNl92KChpbnQ4eDhfdClfX3JldjAsIF9fcDEsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX3MxNl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczE2X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fczE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl9zMTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fczE2X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fczE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fczE2X3YoKGludDh4OF90KV9fcmV2MCwgX19wMSwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRxX25fdTE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3UxNl92KChpbnQ4eDE2X3QpX19zMCwgX19wMSwgNDkpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0cV9uX3UxNl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3UxNl92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCA0OSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjdnRfbl91MTZfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl91MTZfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTcpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y3Z0X25fdTE2X2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl91MTZfdigoaW50OHg4X3QpX19yZXYwLCBfX3AxLCAxNyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0cV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zMTZfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmN2dHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHFfczE2X3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZjdnRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRfczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF9zMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y3Z0cV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3UxNl92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmN2dHFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRfdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3UxNl92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y3Z0X3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dF91MTZfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0YXFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y3Z0YXFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dGFxX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y3Z0YV9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0YV9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRhX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhX3MxNl92KChpbnQ4eDhfdClfX3JldjAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjdnRhcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MTZfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjdnRhcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRhcV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRhX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTE2X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjdnRhX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dGFfdTE2X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdmN2dG1xX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMTZfdigoaW50OHgxNl90KV9fcDAsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmN2dG1xX3MxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtcV9zMTZfdigoaW50OHgxNl90KV9fcmV2MCwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdmN2dG1fczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dG1fczE2X3YoKGludDh4OF90KV9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2Y3Z0bV9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bV9zMTZfdigoaW50OHg4X3QpX19yZXYwLCAxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y3Z0bXFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTE2X3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y3Z0bXFfdTE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bXFfdTE2X3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y3Z0bV91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UxNl92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y3Z0bV91MTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRtX3UxNl92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZjdnRucV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczE2X3YoKGludDh4MTZfdClfX3AwLCAzMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZjdnRucV9zMTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bnFfczE2X3YoKGludDh4MTZfdClfX3JldjAsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZjdnRuX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRuX3MxNl92KChpbnQ4eDhfdClfX3AwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdmN2dG5fczE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dG5fczE2X3YoKGludDh4OF90KV9fcmV2MCwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmN2dG5xX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UxNl92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmN2dG5xX3UxNl9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dG5xX3UxNl92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmN2dG5fdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MTZfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmN2dG5fdTE2X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0bl91MTZfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2Y3Z0cHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MxNl92KChpbnQ4eDE2X3QpX19wMCwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2Y3Z0cHFfczE2X2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdmN2dHBxX3MxNl92KChpbnQ4eDE2X3QpX19yZXYwLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2Y3Z0cF9zMTZfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cF9zMTZfdigoaW50OHg4X3QpX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZjdnRwX3MxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwX3MxNl92KChpbnQ4eDhfdClfX3JldjAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjdnRwcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MTZfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjdnRwcV91MTZfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRwcV91MTZfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjdnRwX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTE2X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjdnRwX3UxNl9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmN2dHBfdTE2X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZXh0cV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dF9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZXh0X2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdmZtYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdmZtYXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEsIGZsb2F0MTZ4OF90IF9fcDIpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4OF90IF9fbm9zd2FwX3ZmbWFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxLCBmbG9hdDE2eDhfdCBfX3AyKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZmbWFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZmbWFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDE2eDRfdCBfX25vc3dhcF92Zm1hX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxLCBmbG9hdDE2eDRfdCBfX3AyKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Zm1zcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmZtYXFfZjE2KF9fcDAsIC1fX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Zm1zcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSwgZmxvYXQxNng4X3QgX19wMikgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYXFfZjE2KF9fcmV2MCwgLV9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdmZtc19mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSwgZmxvYXQxNng0X3QgX19wMikgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmZtYV9mMTYoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZmbXNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEsIGZsb2F0MTZ4NF90IF9fcDIpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFfZjE2KF9fcmV2MCwgLV9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3Qgdm1heHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdm1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZtYXhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm1heF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2bWlucV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2bWluX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZtaW5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm1pbl92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bXVscV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3Qgdm11bHFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm11bF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3Qgdm11bF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICogX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lX2YxNihfX3AwXzI3NywgX19wMV8yNzcsIF9fcDJfMjc3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI3NyA9IF9fcDBfMjc3OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzcgPSBfX3AxXzI3NzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI3NzsgXAogIF9fcmV0XzI3NyA9IF9fczBfMjc3ICogc3BsYXRxX2xhbmVfZjE2KF9fczFfMjc3LCBfX3AyXzI3Nyk7IFwKICBfX3JldF8yNzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lX2YxNihfX3AwXzI3OCwgX19wMV8yNzgsIF9fcDJfMjc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI3OCA9IF9fcDBfMjc4OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzggPSBfX3AxXzI3ODsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yNzg7ICBfX3JldjBfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yNzgsIF9fczBfMjc4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yNzg7ICBfX3JldjFfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yNzgsIF9fczFfMjc4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI3ODsgXAogIF9fcmV0XzI3OCA9IF9fcmV2MF8yNzggKiBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19yZXYxXzI3OCwgX19wMl8yNzgpOyBcCiAgX19yZXRfMjc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjc4LCBfX3JldF8yNzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lX2YxNihfX3AwXzI3OSwgX19wMV8yNzksIF9fcDJfMjc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzI3OSA9IF9fcDBfMjc5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yNzkgPSBfX3AxXzI3OTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI3OTsgXAogIF9fcmV0XzI3OSA9IF9fczBfMjc5ICogc3BsYXRfbGFuZV9mMTYoX19zMV8yNzksIF9fcDJfMjc5KTsgXAogIF9fcmV0XzI3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZV9mMTYoX19wMF8yODAsIF9fcDFfMjgwLCBfX3AyXzI4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODAgPSBfX3AwXzI4MDsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjgwID0gX19wMV8yODA7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjgwOyAgX19yZXYwXzI4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjgwLCBfX3MwXzI4MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfMjgwOyAgX19yZXYxXzI4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjgwLCBfX3MxXzI4MCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yODA7IFwKICBfX3JldF8yODAgPSBfX3JldjBfMjgwICogX19ub3N3YXBfc3BsYXRfbGFuZV9mMTYoX19yZXYxXzI4MCwgX19wMl8yODApOyBcCiAgX19yZXRfMjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjgwLCBfX3JldF8yODAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gX19zMCAqIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX25fZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fczAgKiAoZmxvYXQxNng0X3QpIHtfX3MxLCBfX3MxLCBfX3MxLCBfX3MxfTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDE2eDRfdCkge19fczEsIF9fczEsIF9fczEsIF9fczF9OyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2bmVncV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3Qgdm5lZ3FfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZuZWdfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3AwOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZuZWdfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZwYWRkX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cGFkZF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cG1heF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnBtYXhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtYXhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtaW5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnBtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZwbWluX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWluX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyZWNwZV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVfdigoaW50OHg4X3QpX19wMCwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJlY3BlX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwZV92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cmVjcHNxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZWNwc3FfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJlY3BzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cmVjcHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cmVjcHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZyZXY2NHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDAsIDcsIDYsIDUsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyZXY2NHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwLCA3LCA2LCA1LCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnJldjY0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cmV2NjRfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAzLCAyLCAxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJzcXJ0ZXFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcDAsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2cnNxcnRlcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRlcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyc3FydGVfZjE2KGZsb2F0MTZ4NF90IF9fcDApIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZV92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cnNxcnRlX2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVfdigoaW50OHg4X3QpX19yZXYwLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJzcXJ0c3FfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZyc3FydHNxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZyc3FydHNfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c192KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnJzcXJ0c19mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZzdWJxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2c3VicV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2c3ViX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2c3ViX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OHgyX3QgdnRybnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OHgyX3QgdnRybnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDh4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5xX3YoJl9fcmV0LCAoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDR4Ml90IHZ0cm5fZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z0cm5fdigmX19yZXQsIChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0eDJfdCB2dHJuX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dHJuX3YoJl9fcmV0LCAoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDMsIDIsIDEsIDApOwogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDh4Ml90IHZ1enBxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDh4Ml90IHZ1enBxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwcV92KCZfX3JldCwgKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0eDJfdCB2dXpwX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0eDJfdCBfX3JldDsKICBfX2J1aWx0aW5fbmVvbl92dXpwX3YoJl9fcmV0LCAoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NHgyX3QgdnV6cF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnV6cF92KCZfX3JldCwgKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CgogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAzLCAyLCAxLCAwKTsKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4eDJfdCB2emlwcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4eDJfdCB2emlwcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcHFfdigmX19yZXQsIChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NHgyX3QgdnppcF9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NHgyX3QgX19yZXQ7CiAgX19idWlsdGluX25lb25fdnppcF92KCZfX3JldCwgKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDR4Ml90IHZ6aXBfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDR4Ml90IF9fcmV0OwogIF9fYnVpbHRpbl9uZW9uX3Z6aXBfdigmX19yZXQsIChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDgpOwoKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMywgMiwgMSwgMCk7CiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0ZQMTZfVkVDVE9SX0FSSVRITUVUSUMpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZkaXZxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2ZGl2cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2ZGl2X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2ZGl2X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2YxNigoZmxvYXQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfZjE2KChmbG9hdDE2eDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2YxNigoZmxvYXQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVxX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lcV9mMTYoKGZsb2F0MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFoX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1haF9sYW5lX2YxNihfX3MwLCBfX3MxLCAoZmxvYXQxNng0X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFoX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFoX2xhbmVfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDRfdClfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Zm1haF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmZtYWhfbGFuZV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4NF90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hcV9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDhfdClfX3MyLCBfX3AzLCA0MCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFxX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIF9fcDMsIDQwKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYXFfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIF9fcDMsIDgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSBfX25vc3dhcF92Zm1hX2xhbmVfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDgpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1haF9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFoX2xhbmVxX2YxNihfX3MwLCBfX3MxLCAoZmxvYXQxNng4X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92Zm1haF9sYW5lcV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4OF90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdmZtYWhfbGFuZXFfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDhfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0MCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYV9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCA4KTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbl9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSB2Zm1hcV9mMTYoX19zMCwgX19zMSwgKGZsb2F0MTZ4OF90KSB7X19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMiwgX19zMn0pOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mMTYoX19yZXYwLCBfX3JldjEsIChmbG9hdDE2eDhfdCkge19fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IHZmbWFfZjE2KF9fczAsIF9fczEsIChmbG9hdDE2eDRfdCkge19fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYV9uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92Zm1hX2YxNihfX3JldjAsIF9fcmV2MSwgKGZsb2F0MTZ4NF90KSB7X19zMiwgX19zMiwgX19zMiwgX19zMn0pOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zaF9sYW5lX2YxNihfX3AwXzI4MSwgX19wMV8yODEsIF9fcDJfMjgxLCBfX3AzXzI4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczBfMjgxID0gX19wMF8yODE7IFwKICBmbG9hdDE2X3QgX19zMV8yODEgPSBfX3AxXzI4MTsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjgxID0gX19wMl8yODE7IFwKICBmbG9hdDE2X3QgX19yZXRfMjgxOyBcCiAgX19yZXRfMjgxID0gdmZtYWhfbGFuZV9mMTYoX19zMF8yODEsIC1fX3MxXzI4MSwgX19zMl8yODEsIF9fcDNfMjgxKTsgXAogIF9fcmV0XzI4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNoX2xhbmVfZjE2KF9fcDBfMjgyLCBfX3AxXzI4MiwgX19wMl8yODIsIF9fcDNfMjgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF8yODIgPSBfX3AwXzI4MjsgXAogIGZsb2F0MTZfdCBfX3MxXzI4MiA9IF9fcDFfMjgyOyBcCiAgZmxvYXQxNng0X3QgX19zMl8yODIgPSBfX3AyXzI4MjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml8yODI7ICBfX3JldjJfMjgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yODIsIF9fczJfMjgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF8yODI7IFwKICBfX3JldF8yODIgPSBfX25vc3dhcF92Zm1haF9sYW5lX2YxNihfX3MwXzI4MiwgLV9fczFfMjgyLCBfX3JldjJfMjgyLCBfX3AzXzI4Mik7IFwKICBfX3JldF8yODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zcV9sYW5lX2YxNihfX3AwXzI4MywgX19wMV8yODMsIF9fcDJfMjgzLCBfX3AzXzI4MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yODMgPSBfX3AwXzI4MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjgzID0gX19wMV8yODM7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4MyA9IF9fcDJfMjgzOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjgzOyBcCiAgX19yZXRfMjgzID0gdmZtYXFfbGFuZV9mMTYoX19zMF8yODMsIC1fX3MxXzI4MywgX19zMl8yODMsIF9fcDNfMjgzKTsgXAogIF9fcmV0XzI4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVfZjE2KF9fcDBfMjg0LCBfX3AxXzI4NCwgX19wMl8yODQsIF9fcDNfMjg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI4NCA9IF9fcDBfMjg0OyBcCiAgZmxvYXQxNng4X3QgX19zMV8yODQgPSBfX3AxXzI4NDsgXAogIGZsb2F0MTZ4NF90IF9fczJfMjg0ID0gX19wMl8yODQ7IFwKICBmbG9hdDE2eDhfdCBfX3JldjBfMjg0OyAgX19yZXYwXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjg0LCBfX3MwXzI4NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjg0OyAgX19yZXYxXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjg0LCBfX3MxXzI4NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfMjg0OyAgX19yZXYyXzI4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjg0LCBfX3MyXzI4NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF8yODQ7IFwKICBfX3JldF8yODQgPSBfX25vc3dhcF92Zm1hcV9sYW5lX2YxNihfX3JldjBfMjg0LCAtX19yZXYxXzI4NCwgX19yZXYyXzI4NCwgX19wM18yODQpOyBcCiAgX19yZXRfMjg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjg0LCBfX3JldF8yODQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19sYW5lX2YxNihfX3AwXzI4NSwgX19wMV8yODUsIF9fcDJfMjg1LCBfX3AzXzI4NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODUgPSBfX3AwXzI4NTsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjg1ID0gX19wMV8yODU7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4NSA9IF9fcDJfMjg1OyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjg1OyBcCiAgX19yZXRfMjg1ID0gdmZtYV9sYW5lX2YxNihfX3MwXzI4NSwgLV9fczFfMjg1LCBfX3MyXzI4NSwgX19wM18yODUpOyBcCiAgX19yZXRfMjg1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc19sYW5lX2YxNihfX3AwXzI4NiwgX19wMV8yODYsIF9fcDJfMjg2LCBfX3AzXzI4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yODYgPSBfX3AwXzI4NjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjg2ID0gX19wMV8yODY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzI4NiA9IF9fcDJfMjg2OyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzI4NjsgIF9fcmV2MF8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI4NiwgX19zMF8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzI4NjsgIF9fcmV2MV8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI4NiwgX19zMV8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzI4NjsgIF9fcmV2Ml8yODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI4NiwgX19zMl8yODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjg2OyBcCiAgX19yZXRfMjg2ID0gX19ub3N3YXBfdmZtYV9sYW5lX2YxNihfX3JldjBfMjg2LCAtX19yZXYxXzI4NiwgX19yZXYyXzI4NiwgX19wM18yODYpOyBcCiAgX19yZXRfMjg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjg2LCBfX3JldF8yODYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc2hfbGFuZXFfZjE2KF9fcDBfMjg3LCBfX3AxXzI4NywgX19wMl8yODcsIF9fcDNfMjg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF8yODcgPSBfX3AwXzI4NzsgXAogIGZsb2F0MTZfdCBfX3MxXzI4NyA9IF9fcDFfMjg3OyBcCiAgZmxvYXQxNng4X3QgX19zMl8yODcgPSBfX3AyXzI4NzsgXAogIGZsb2F0MTZfdCBfX3JldF8yODc7IFwKICBfX3JldF8yODcgPSB2Zm1haF9sYW5lcV9mMTYoX19zMF8yODcsIC1fX3MxXzI4NywgX19zMl8yODcsIF9fcDNfMjg3KTsgXAogIF9fcmV0XzI4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNoX2xhbmVxX2YxNihfX3AwXzI4OCwgX19wMV8yODgsIF9fcDJfMjg4LCBfX3AzXzI4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczBfMjg4ID0gX19wMF8yODg7IFwKICBmbG9hdDE2X3QgX19zMV8yODggPSBfX3AxXzI4ODsgXAogIGZsb2F0MTZ4OF90IF9fczJfMjg4ID0gX19wMl8yODg7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfMjg4OyAgX19yZXYyXzI4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMjg4LCBfX3MyXzI4OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfMjg4OyBcCiAgX19yZXRfMjg4ID0gX19ub3N3YXBfdmZtYWhfbGFuZXFfZjE2KF9fczBfMjg4LCAtX19zMV8yODgsIF9fcmV2Ml8yODgsIF9fcDNfMjg4KTsgXAogIF9fcmV0XzI4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVxX2YxNihfX3AwXzI4OSwgX19wMV8yODksIF9fcDJfMjg5LCBfX3AzXzI4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF8yODkgPSBfX3AwXzI4OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjg5ID0gX19wMV8yODk7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzI4OSA9IF9fcDJfMjg5OyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjg5OyBcCiAgX19yZXRfMjg5ID0gdmZtYXFfbGFuZXFfZjE2KF9fczBfMjg5LCAtX19zMV8yODksIF9fczJfMjg5LCBfX3AzXzI4OSk7IFwKICBfX3JldF8yODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zcV9sYW5lcV9mMTYoX19wMF8yOTAsIF9fcDFfMjkwLCBfX3AyXzI5MCwgX19wM18yOTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjkwID0gX19wMF8yOTA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzI5MCA9IF9fcDFfMjkwOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yOTAgPSBfX3AyXzI5MDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yOTA7ICBfX3JldjBfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yOTAsIF9fczBfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8yOTA7ICBfX3JldjFfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yOTAsIF9fczFfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml8yOTA7ICBfX3JldjJfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8yOTAsIF9fczJfMjkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5MDsgXAogIF9fcmV0XzI5MCA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YxNihfX3JldjBfMjkwLCAtX19yZXYxXzI5MCwgX19yZXYyXzI5MCwgX19wM18yOTApOyBcCiAgX19yZXRfMjkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjkwLCBfX3JldF8yOTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19sYW5lcV9mMTYoX19wMF8yOTEsIF9fcDFfMjkxLCBfX3AyXzI5MSwgX19wM18yOTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfMjkxID0gX19wMF8yOTE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzI5MSA9IF9fcDFfMjkxOyBcCiAgZmxvYXQxNng4X3QgX19zMl8yOTEgPSBfX3AyXzI5MTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI5MTsgXAogIF9fcmV0XzI5MSA9IHZmbWFfbGFuZXFfZjE2KF9fczBfMjkxLCAtX19zMV8yOTEsIF9fczJfMjkxLCBfX3AzXzI5MSk7IFwKICBfX3JldF8yOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zX2xhbmVxX2YxNihfX3AwXzI5MiwgX19wMV8yOTIsIF9fcDJfMjkyLCBfX3AzXzI5MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTIgPSBfX3AwXzI5MjsgXAogIGZsb2F0MTZ4NF90IF9fczFfMjkyID0gX19wMV8yOTI7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzI5MiA9IF9fcDJfMjkyOyBcCiAgZmxvYXQxNng0X3QgX19yZXYwXzI5MjsgIF9fcmV2MF8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5MiwgX19zMF8yOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzI5MjsgIF9fcmV2MV8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI5MiwgX19zMV8yOTIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzI5MjsgIF9fcmV2Ml8yOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzI5MiwgX19zMl8yOTIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXRfMjkyOyBcCiAgX19yZXRfMjkyID0gX19ub3N3YXBfdmZtYV9sYW5lcV9mMTYoX19yZXYwXzI5MiwgLV9fcmV2MV8yOTIsIF9fcmV2Ml8yOTIsIF9fcDNfMjkyKTsgXAogIF9fcmV0XzI5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5MiwgX19yZXRfMjkyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX25fZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gdmZtYXFfZjE2KF9fczAsIC1fX3MxLCAoZmxvYXQxNng4X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX25fZjE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IF9fbm9zd2FwX3ZmbWFxX2YxNihfX3JldjAsIC1fX3JldjEsIChmbG9hdDE2eDhfdCkge19fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczIsIF9fczJ9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc19uX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNl90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IHZmbWFfZjE2KF9fczAsIC1fX3MxLCAoZmxvYXQxNng0X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbl9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMTYoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQxNng0X3QpIHtfX3MyLCBfX3MyLCBfX3MyLCBfX3MyfSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtYXhubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjE2KChpbnQ4eDE2X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtYXhubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWF4bm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heG5tdl9mMTYoKGludDh4OF90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWF4bm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12X2YxNigoaW50OHg4X3QpX19yZXYwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1heHZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1heHZxX2YxNigoaW50OHgxNl90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWF4dnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWF4dl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X2YxNigoaW50OHg4X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtYXh2X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9mMTYoKGludDh4OF90KV9fcmV2MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtaW5ubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbm5tdnFfZjE2KChpbnQ4eDE2X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtaW5ubXZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWlubm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbm5tdl9mMTYoKGludDh4OF90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWlubm12X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12X2YxNigoaW50OHg4X3QpX19yZXYwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1pbnZxX2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2YxNigoaW50OHgxNl90KV9fczApOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWludnFfZjE2KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9mMTYoKGludDh4MTZfdClfX3JldjApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWludl9mMTYoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X2YxNigoaW50OHg4X3QpX19zMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtaW52X2YxNihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9mMTYoKGludDh4OF90KV9fcmV2MCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVxX2YxNihfX3AwXzI5MywgX19wMV8yOTMsIF9fcDJfMjkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5MyA9IF9fcDBfMjkzOyBcCiAgZmxvYXQxNng4X3QgX19zMV8yOTMgPSBfX3AxXzI5MzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5MzsgXAogIF9fcmV0XzI5MyA9IF9fczBfMjkzICogc3BsYXRxX2xhbmVxX2YxNihfX3MxXzI5MywgX19wMl8yOTMpOyBcCiAgX19yZXRfMjkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZXFfZjE2KF9fcDBfMjk0LCBfX3AxXzI5NCwgX19wMl8yOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMjk0ID0gX19wMF8yOTQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzI5NCA9IF9fcDFfMjk0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzI5NDsgIF9fcmV2MF8yOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzI5NCwgX19zMF8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzI5NDsgIF9fcmV2MV8yOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzI5NCwgX19zMV8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMjk0OyBcCiAgX19yZXRfMjk0ID0gX19yZXYwXzI5NCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mMTYoX19yZXYxXzI5NCwgX19wMl8yOTQpOyBcCiAgX19yZXRfMjk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMjk0LCBfX3JldF8yOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMjk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV9mMTYoX19wMF8yOTUsIF9fcDFfMjk1LCBfX3AyXzI5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTUgPSBfX3AwXzI5NTsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjk1ID0gX19wMV8yOTU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yOTU7IFwKICBfX3JldF8yOTUgPSBfX3MwXzI5NSAqIHNwbGF0X2xhbmVxX2YxNihfX3MxXzI5NSwgX19wMl8yOTUpOyBcCiAgX19yZXRfMjk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lcV9mMTYoX19wMF8yOTYsIF9fcDFfMjk2LCBfX3AyXzI5NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8yOTYgPSBfX3AwXzI5NjsgXAogIGZsb2F0MTZ4OF90IF9fczFfMjk2ID0gX19wMV8yOTY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfMjk2OyAgX19yZXYwXzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMjk2LCBfX3MwXzI5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfMjk2OyAgX19yZXYxXzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMjk2LCBfX3MxXzI5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8yOTY7IFwKICBfX3JldF8yOTYgPSBfX3JldjBfMjk2ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfZjE2KF9fcmV2MV8yOTYsIF9fcDJfMjk2KTsgXAogIF9fcmV0XzI5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzI5NiwgX19yZXRfMjk2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzI5NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZtdWx4cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZtdWx4cV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQxNng4X3QgX19ub3N3YXBfdm11bHhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3Qgdm11bHhfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDRfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZtdWx4X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MTZ4NF90IF9fbm9zd2FwX3ZtdWx4X2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseGhfbGFuZV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4aF9sYW5lX2YxNihfX3MwLCAoZmxvYXQxNng0X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4aF9sYW5lX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQxNl90KSBfX2J1aWx0aW5fbmVvbl92bXVseGhfbGFuZV9mMTYoX19zMCwgKGZsb2F0MTZ4NF90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lX2YxNihfX3AwXzI5NywgX19wMV8yOTcsIF9fcDJfMjk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5NyA9IF9fcDBfMjk3OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTcgPSBfX3AxXzI5NzsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5NzsgXAogIF9fcmV0XzI5NyA9IHZtdWx4cV9mMTYoX19zMF8yOTcsIHNwbGF0cV9sYW5lX2YxNihfX3MxXzI5NywgX19wMl8yOTcpKTsgXAogIF9fcmV0XzI5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lX2YxNihfX3AwXzI5OCwgX19wMV8yOTgsIF9fcDJfMjk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzI5OCA9IF9fcDBfMjk4OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTggPSBfX3AxXzI5ODsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF8yOTg7ICBfX3JldjBfMjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8yOTgsIF9fczBfMjk4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8yOTg7ICBfX3JldjFfMjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8yOTgsIF9fczFfMjk4LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzI5ODsgXAogIF9fcmV0XzI5OCA9IF9fbm9zd2FwX3ZtdWx4cV9mMTYoX19yZXYwXzI5OCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfZjE2KF9fcmV2MV8yOTgsIF9fcDJfMjk4KSk7IFwKICBfX3JldF8yOTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8yOTgsIF9fcmV0XzI5OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8yOTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseF9sYW5lX2YxNihfX3AwXzI5OSwgX19wMV8yOTksIF9fcDJfMjk5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzI5OSA9IF9fcDBfMjk5OyBcCiAgZmxvYXQxNng0X3QgX19zMV8yOTkgPSBfX3AxXzI5OTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzI5OTsgXAogIF9fcmV0XzI5OSA9IHZtdWx4X2YxNihfX3MwXzI5OSwgc3BsYXRfbGFuZV9mMTYoX19zMV8yOTksIF9fcDJfMjk5KSk7IFwKICBfX3JldF8yOTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseF9sYW5lX2YxNihfX3AwXzMwMCwgX19wMV8zMDAsIF9fcDJfMzAwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzMwMCA9IF9fcDBfMzAwOyBcCiAgZmxvYXQxNng0X3QgX19zMV8zMDAgPSBfX3AxXzMwMDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8zMDA7ICBfX3JldjBfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDAsIF9fczBfMzAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV8zMDA7ICBfX3JldjFfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMDAsIF9fczFfMzAwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzMwMDsgXAogIF9fcmV0XzMwMCA9IF9fbm9zd2FwX3ZtdWx4X2YxNihfX3JldjBfMzAwLCBfX25vc3dhcF9zcGxhdF9sYW5lX2YxNihfX3JldjFfMzAwLCBfX3AyXzMwMCkpOyBcCiAgX19yZXRfMzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzAwLCBfX3JldF8zMDAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzAwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhoX2xhbmVxX2YxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm11bHhoX2xhbmVxX2YxNihfX3MwLCAoZmxvYXQxNng4X3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4aF9sYW5lcV9mMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MTZfdCkgX19idWlsdGluX25lb25fdm11bHhoX2xhbmVxX2YxNihfX3MwLCAoZmxvYXQxNng4X3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhxX2xhbmVxX2YxNihfX3AwXzMwMSwgX19wMV8zMDEsIF9fcDJfMzAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzMwMSA9IF9fcDBfMzAxOyBcCiAgZmxvYXQxNng4X3QgX19zMV8zMDEgPSBfX3AxXzMwMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0XzMwMTsgXAogIF9fcmV0XzMwMSA9IHZtdWx4cV9mMTYoX19zMF8zMDEsIHNwbGF0cV9sYW5lcV9mMTYoX19zMV8zMDEsIF9fcDJfMzAxKSk7IFwKICBfX3JldF8zMDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseHFfbGFuZXFfZjE2KF9fcDBfMzAyLCBfX3AxXzMwMiwgX19wMl8zMDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfMzAyID0gX19wMF8zMDI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzMwMiA9IF9fcDFfMzAyOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzMwMjsgIF9fcmV2MF8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMwMiwgX19zMF8zMDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzMwMjsgIF9fcmV2MV8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwMiwgX19zMV8zMDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfMzAyOyBcCiAgX19yZXRfMzAyID0gX19ub3N3YXBfdm11bHhxX2YxNihfX3JldjBfMzAyLCBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjE2KF9fcmV2MV8zMDIsIF9fcDJfMzAyKSk7IFwKICBfX3JldF8zMDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMDIsIF9fcmV0XzMwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseF9sYW5lcV9mMTYoX19wMF8zMDMsIF9fcDFfMzAzLCBfX3AyXzMwMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF8zMDMgPSBfX3AwXzMwMzsgXAogIGZsb2F0MTZ4OF90IF9fczFfMzAzID0gX19wMV8zMDM7IFwKICBmbG9hdDE2eDRfdCBfX3JldF8zMDM7IFwKICBfX3JldF8zMDMgPSB2bXVseF9mMTYoX19zMF8zMDMsIHNwbGF0X2xhbmVxX2YxNihfX3MxXzMwMywgX19wMl8zMDMpKTsgXAogIF9fcmV0XzMwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4X2xhbmVxX2YxNihfX3AwXzMwNCwgX19wMV8zMDQsIF9fcDJfMzA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzMwNCA9IF9fcDBfMzA0OyBcCiAgZmxvYXQxNng4X3QgX19zMV8zMDQgPSBfX3AxXzMwNDsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MF8zMDQ7ICBfX3JldjBfMzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDQsIF9fczBfMzA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV8zMDQ7ICBfX3JldjFfMzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMDQsIF9fczFfMzA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzMwNDsgXAogIF9fcmV0XzMwNCA9IF9fbm9zd2FwX3ZtdWx4X2YxNihfX3JldjBfMzA0LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9mMTYoX19yZXYxXzMwNCwgX19wMl8zMDQpKTsgXAogIF9fcmV0XzMwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwNCwgX19yZXRfMzA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMwNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9uX2YxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MTZfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSB2bXVseHFfZjE2KF9fczAsIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX25fZjE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQxNl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gX19ub3N3YXBfdm11bHhxX2YxNihfX3JldjAsIChmbG9hdDE2eDhfdCkge19fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gdm11bHhfZjE2KF9fczAsIChmbG9hdDE2eDRfdCkge19fczEsIF9fczEsIF9fczEsIF9fczF9KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhfbl9mMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDE2X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSBfX25vc3dhcF92bXVseF9mMTYoX19yZXYwLCAoZmxvYXQxNng0X3QpIHtfX3MxLCBfX3MxLCBfX3MxLCBfX3MxfSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZwYWRkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZwYWRkcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cG1heG5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtYXhubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtYXhubV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cG1heG5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5xX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2cG1pbm5tcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnBtaW5ubXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnBtaW5ubV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cG1pbm5tX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnJuZGlxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZybmRpcV92KChpbnQ4eDE2X3QpX19wMCwgNDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZybmRpcV9mMTYoZmxvYXQxNng4X3QgX19wMCkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2cm5kaV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3AwLCA4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2cm5kaV9mMTYoZmxvYXQxNng0X3QgX19wMCkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cm5kaV92KChpbnQ4eDhfdClfX3JldjAsIDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2c3FydHFfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDE2eDhfdCkgX19idWlsdGluX25lb25fdnNxcnRxX3YoKGludDh4MTZfdClfX3AwLCA0MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnNxcnRxX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZzcXJ0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0X3YoKGludDh4OF90KV9fcDAsIDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZzcXJ0X2YxNihmbG9hdDE2eDRfdCBfX3AwKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0X3YoKGludDh4OF90KV9fcmV2MCwgOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ0cm4xcV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnRybjFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZ0cm4xX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2dHJuMV9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2dHJuMnFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZ0cm4ycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDRfdCB2dHJuMl9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng0X3QgdnRybjJfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng4X3QgdnV6cDFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2dXpwMXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnV6cDFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ1enAxX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ1enAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnV6cDJxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4NF90IHZ1enAyX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDRfdCB2dXpwMl9mMTYoZmxvYXQxNng0X3QgX19wMCwgZmxvYXQxNng0X3QgX19wMSkgewogIGZsb2F0MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2emlwMXFfZjE2KGZsb2F0MTZ4OF90IF9fcDAsIGZsb2F0MTZ4OF90IF9fcDEpIHsKICBmbG9hdDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQxNng4X3QgdnppcDFxX2YxNihmbG9hdDE2eDhfdCBfX3AwLCBmbG9hdDE2eDhfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnppcDFfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ6aXAxX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMSwgNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MTZ4OF90IHZ6aXAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4OF90IHZ6aXAycV9mMTYoZmxvYXQxNng4X3QgX19wMCwgZmxvYXQxNng4X3QgX19wMSkgewogIGZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQxNng0X3QgdnppcDJfZjE2KGZsb2F0MTZ4NF90IF9fcDAsIGZsb2F0MTZ4NF90IF9fcDEpIHsKICBmbG9hdDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MTZ4NF90IHZ6aXAyX2YxNihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDE2eDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX01BVE1VTF9JTlQ4KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbWxhcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdm1tbGFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1tbGFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW1sYXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bW1sYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bW1sYXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtbWxhcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1c2RvdHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVzZG90cV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3Z1c2RvdHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnVzZG90cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXNkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1c2RvdF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMngyX3QgX19ub3N3YXBfdnVzZG90X3MzMihpbnQzMngyX3QgX19wMCwgdWludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXNkb3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2dXNkb3RxX2xhbmVfczMyKF9fcDBfMzA1LCBfX3AxXzMwNSwgX19wMl8zMDUsIF9fcDNfMzA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMDUgPSBfX3AwXzMwNTsgXAogIHVpbnQ4eDE2X3QgX19zMV8zMDUgPSBfX3AxXzMwNTsgXAogIGludDh4OF90IF9fczJfMzA1ID0gX19wMl8zMDU7IFwKICBpbnQzMng0X3QgX19yZXRfMzA1OyBcCmludDh4OF90IF9fcmVpbnRfMzA1ID0gX19zMl8zMDU7IFwKICBfX3JldF8zMDUgPSB2dXNkb3RxX3MzMihfX3MwXzMwNSwgX19zMV8zMDUsIChpbnQ4eDE2X3QpKHNwbGF0cV9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8zMDUsIF9fcDNfMzA1KSkpOyBcCiAgX19yZXRfMzA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90cV9sYW5lX3MzMihfX3AwXzMwNiwgX19wMV8zMDYsIF9fcDJfMzA2LCBfX3AzXzMwNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzA2ID0gX19wMF8zMDY7IFwKICB1aW50OHgxNl90IF9fczFfMzA2ID0gX19wMV8zMDY7IFwKICBpbnQ4eDhfdCBfX3MyXzMwNiA9IF9fcDJfMzA2OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8zMDY7ICBfX3JldjBfMzA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMDYsIF9fczBfMzA2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYxXzMwNjsgIF9fcmV2MV8zMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwNiwgX19zMV8zMDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzMwNjsgIF9fcmV2Ml8zMDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMwNiwgX19zMl8zMDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzMwNjsgXAppbnQ4eDhfdCBfX3JlaW50XzMwNiA9IF9fcmV2Ml8zMDY7IFwKICBfX3JldF8zMDYgPSBfX25vc3dhcF92dXNkb3RxX3MzMihfX3JldjBfMzA2LCBfX3JldjFfMzA2LCAoaW50OHgxNl90KShfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMzA2LCBfX3AzXzMwNikpKTsgXAogIF9fcmV0XzMwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwNiwgX19yZXRfMzA2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ1c2RvdF9sYW5lX3MzMihfX3AwXzMwNywgX19wMV8zMDcsIF9fcDJfMzA3LCBfX3AzXzMwNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzA3ID0gX19wMF8zMDc7IFwKICB1aW50OHg4X3QgX19zMV8zMDcgPSBfX3AxXzMwNzsgXAogIGludDh4OF90IF9fczJfMzA3ID0gX19wMl8zMDc7IFwKICBpbnQzMngyX3QgX19yZXRfMzA3OyBcCmludDh4OF90IF9fcmVpbnRfMzA3ID0gX19zMl8zMDc7IFwKICBfX3JldF8zMDcgPSB2dXNkb3RfczMyKF9fczBfMzA3LCBfX3MxXzMwNywgKGludDh4OF90KShzcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF8zMDcsIF9fcDNfMzA3KSkpOyBcCiAgX19yZXRfMzA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90X2xhbmVfczMyKF9fcDBfMzA4LCBfX3AxXzMwOCwgX19wMl8zMDgsIF9fcDNfMzA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMDggPSBfX3AwXzMwODsgXAogIHVpbnQ4eDhfdCBfX3MxXzMwOCA9IF9fcDFfMzA4OyBcCiAgaW50OHg4X3QgX19zMl8zMDggPSBfX3AyXzMwODsgXAogIGludDMyeDJfdCBfX3JldjBfMzA4OyAgX19yZXYwXzMwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzA4LCBfX3MwXzMwOCwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYxXzMwODsgIF9fcmV2MV8zMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMwOCwgX19zMV8zMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzMwODsgIF9fcmV2Ml8zMDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMwOCwgX19zMl8zMDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMwODsgXAppbnQ4eDhfdCBfX3JlaW50XzMwOCA9IF9fcmV2Ml8zMDg7IFwKICBfX3JldF8zMDggPSBfX25vc3dhcF92dXNkb3RfczMyKF9fcmV2MF8zMDgsIF9fcmV2MV8zMDgsIChpbnQ4eDhfdCkoX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfMzA4LCBfX3AzXzMwOCkpKTsgXAogIF9fcmV0XzMwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMwOCwgX19yZXRfMzA4LCAxLCAwKTsgXAogIF9fcmV0XzMwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2dXNtbWxhcV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dXNtbWxhcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVzbW1sYXFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z1c21tbGFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9RUkRNWCkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxcmRtbGFocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxYWRkcV9zMzIoX19wMCwgdnFyZG11bGhxX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxcmRtbGFocV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxYWRkcV9zMzIoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2cXJkbWxhaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZHFfczE2KF9fcDAsIHZxcmRtdWxocV9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cXJkbWxhaHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWFkZHFfczE2KF9fcmV2MCwgX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnFyZG1sYWhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZF9zMzIoX19wMCwgdnFyZG11bGhfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnFyZG1sYWhfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWFkZF9zMzIoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZxcmRtbGFoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFhZGRfczE2KF9fcDAsIHZxcmRtdWxoX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZxcmRtbGFoX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFhZGRfczE2KF9fcmV2MCwgX19ub3N3YXBfdnFyZG11bGhfczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbGFocV9sYW5lX3MzMihfX3AwXzMwOSwgX19wMV8zMDksIF9fcDJfMzA5LCBfX3AzXzMwOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzA5ID0gX19wMF8zMDk7IFwKICBpbnQzMng0X3QgX19zMV8zMDkgPSBfX3AxXzMwOTsgXAogIGludDMyeDJfdCBfX3MyXzMwOSA9IF9fcDJfMzA5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzMwOTsgXAogIF9fcmV0XzMwOSA9IHZxYWRkcV9zMzIoX19zMF8zMDksIHZxcmRtdWxocV9zMzIoX19zMV8zMDksIHNwbGF0cV9sYW5lX3MzMihfX3MyXzMwOSwgX19wM18zMDkpKSk7IFwKICBfX3JldF8zMDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZV9zMzIoX19wMF8zMTAsIF9fcDFfMzEwLCBfX3AyXzMxMCwgX19wM18zMTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMxMCA9IF9fcDBfMzEwOyBcCiAgaW50MzJ4NF90IF9fczFfMzEwID0gX19wMV8zMTA7IFwKICBpbnQzMngyX3QgX19zMl8zMTAgPSBfX3AyXzMxMDsgXAogIGludDMyeDRfdCBfX3JldjBfMzEwOyAgX19yZXYwXzMxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzEwLCBfX3MwXzMxMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzMxMDsgIF9fcmV2MV8zMTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMxMCwgX19zMV8zMTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml8zMTA7ICBfX3JldjJfMzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMTAsIF9fczJfMzEwLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8zMTA7IFwKICBfX3JldF8zMTAgPSBfX25vc3dhcF92cWFkZHFfczMyKF9fcmV2MF8zMTAsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxXzMxMCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKF9fcmV2Ml8zMTAsIF9fcDNfMzEwKSkpOyBcCiAgX19yZXRfMzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzEwLCBfX3JldF8zMTAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhxX2xhbmVfczE2KF9fcDBfMzExLCBfX3AxXzMxMSwgX19wMl8zMTEsIF9fcDNfMzExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMTEgPSBfX3AwXzMxMTsgXAogIGludDE2eDhfdCBfX3MxXzMxMSA9IF9fcDFfMzExOyBcCiAgaW50MTZ4NF90IF9fczJfMzExID0gX19wMl8zMTE7IFwKICBpbnQxNng4X3QgX19yZXRfMzExOyBcCiAgX19yZXRfMzExID0gdnFhZGRxX3MxNihfX3MwXzMxMSwgdnFyZG11bGhxX3MxNihfX3MxXzMxMSwgc3BsYXRxX2xhbmVfczE2KF9fczJfMzExLCBfX3AzXzMxMSkpKTsgXAogIF9fcmV0XzMxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFocV9sYW5lX3MxNihfX3AwXzMxMiwgX19wMV8zMTIsIF9fcDJfMzEyLCBfX3AzXzMxMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMzEyID0gX19wMF8zMTI7IFwKICBpbnQxNng4X3QgX19zMV8zMTIgPSBfX3AxXzMxMjsgXAogIGludDE2eDRfdCBfX3MyXzMxMiA9IF9fcDJfMzEyOyBcCiAgaW50MTZ4OF90IF9fcmV2MF8zMTI7ICBfX3JldjBfMzEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTIsIF9fczBfMzEyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfMzEyOyAgX19yZXYxXzMxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzEyLCBfX3MxXzMxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzMxMjsgIF9fcmV2Ml8zMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxMiwgX19zMl8zMTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzMxMjsgXAogIF9fcmV0XzMxMiA9IF9fbm9zd2FwX3ZxYWRkcV9zMTYoX19yZXYwXzMxMiwgX19ub3N3YXBfdnFyZG11bGhxX3MxNihfX3JldjFfMzEyLCBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMTYoX19yZXYyXzMxMiwgX19wM18zMTIpKSk7IFwKICBfX3JldF8zMTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTIsIF9fcmV0XzMxMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MzMihfX3AwXzMxMywgX19wMV8zMTMsIF9fcDJfMzEzLCBfX3AzXzMxMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzEzID0gX19wMF8zMTM7IFwKICBpbnQzMngyX3QgX19zMV8zMTMgPSBfX3AxXzMxMzsgXAogIGludDMyeDJfdCBfX3MyXzMxMyA9IF9fcDJfMzEzOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMxMzsgXAogIF9fcmV0XzMxMyA9IHZxYWRkX3MzMihfX3MwXzMxMywgdnFyZG11bGhfczMyKF9fczFfMzEzLCBzcGxhdF9sYW5lX3MzMihfX3MyXzMxMywgX19wM18zMTMpKSk7IFwKICBfX3JldF8zMTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MzMihfX3AwXzMxNCwgX19wMV8zMTQsIF9fcDJfMzE0LCBfX3AzXzMxNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzE0ID0gX19wMF8zMTQ7IFwKICBpbnQzMngyX3QgX19zMV8zMTQgPSBfX3AxXzMxNDsgXAogIGludDMyeDJfdCBfX3MyXzMxNCA9IF9fcDJfMzE0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zMTQ7ICBfX3JldjBfMzE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTQsIF9fczBfMzE0LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMzE0OyAgX19yZXYxXzMxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE0LCBfX3MxXzMxNCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzMxNDsgIF9fcmV2Ml8zMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxNCwgX19zMl8zMTQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMxNDsgXAogIF9fcmV0XzMxNCA9IF9fbm9zd2FwX3ZxYWRkX3MzMihfX3JldjBfMzE0LCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxXzMxNCwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzMxNCwgX19wM18zMTQpKSk7IFwKICBfX3JldF8zMTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTQsIF9fcmV0XzMxNCwgMSwgMCk7IFwKICBfX3JldF8zMTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MxNihfX3AwXzMxNSwgX19wMV8zMTUsIF9fcDJfMzE1LCBfX3AzXzMxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzE1ID0gX19wMF8zMTU7IFwKICBpbnQxNng0X3QgX19zMV8zMTUgPSBfX3AxXzMxNTsgXAogIGludDE2eDRfdCBfX3MyXzMxNSA9IF9fcDJfMzE1OyBcCiAgaW50MTZ4NF90IF9fcmV0XzMxNTsgXAogIF9fcmV0XzMxNSA9IHZxYWRkX3MxNihfX3MwXzMxNSwgdnFyZG11bGhfczE2KF9fczFfMzE1LCBzcGxhdF9sYW5lX3MxNihfX3MyXzMxNSwgX19wM18zMTUpKSk7IFwKICBfX3JldF8zMTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lX3MxNihfX3AwXzMxNiwgX19wMV8zMTYsIF9fcDJfMzE2LCBfX3AzXzMxNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzE2ID0gX19wMF8zMTY7IFwKICBpbnQxNng0X3QgX19zMV8zMTYgPSBfX3AxXzMxNjsgXAogIGludDE2eDRfdCBfX3MyXzMxNiA9IF9fcDJfMzE2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zMTY7ICBfX3JldjBfMzE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTYsIF9fczBfMzE2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMzE2OyAgX19yZXYxXzMxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE2LCBfX3MxXzMxNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzMxNjsgIF9fcmV2Ml8zMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxNiwgX19zMl8zMTYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzMxNjsgXAogIF9fcmV0XzMxNiA9IF9fbm9zd2FwX3ZxYWRkX3MxNihfX3JldjBfMzE2LCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxXzMxNiwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzMxNiwgX19wM18zMTYpKSk7IFwKICBfX3JldF8zMTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTYsIF9fcmV0XzMxNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFyZG1sc2hxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFzdWJxX3MzMihfX3AwLCB2cXJkbXVsaHFfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFyZG1sc2hxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFzdWJxX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxcmRtbHNocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZxc3VicV9zMTYoX19wMCwgdnFyZG11bGhxX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxcmRtbHNocV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zxc3VicV9zMTYoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2cXJkbWxzaF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZxc3ViX3MzMihfX3AwLCB2cXJkbXVsaF9zMzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2cXJkbWxzaF9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMngyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zxc3ViX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnFyZG1sc2hfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cXN1Yl9zMTYoX19wMCwgdnFyZG11bGhfczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnFyZG1sc2hfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cXN1Yl9zMTYoX19yZXYwLCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sc2hxX2xhbmVfczMyKF9fcDBfMzE3LCBfX3AxXzMxNywgX19wMl8zMTcsIF9fcDNfMzE3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMTcgPSBfX3AwXzMxNzsgXAogIGludDMyeDRfdCBfX3MxXzMxNyA9IF9fcDFfMzE3OyBcCiAgaW50MzJ4Ml90IF9fczJfMzE3ID0gX19wMl8zMTc7IFwKICBpbnQzMng0X3QgX19yZXRfMzE3OyBcCiAgX19yZXRfMzE3ID0gdnFzdWJxX3MzMihfX3MwXzMxNywgdnFyZG11bGhxX3MzMihfX3MxXzMxNywgc3BsYXRxX2xhbmVfczMyKF9fczJfMzE3LCBfX3AzXzMxNykpKTsgXAogIF9fcmV0XzMxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lX3MzMihfX3AwXzMxOCwgX19wMV8zMTgsIF9fcDJfMzE4LCBfX3AzXzMxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzE4ID0gX19wMF8zMTg7IFwKICBpbnQzMng0X3QgX19zMV8zMTggPSBfX3AxXzMxODsgXAogIGludDMyeDJfdCBfX3MyXzMxOCA9IF9fcDJfMzE4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF8zMTg7ICBfX3JldjBfMzE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMTgsIF9fczBfMzE4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfMzE4OyAgX19yZXYxXzMxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzE4LCBfX3MxXzMxOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzMxODsgIF9fcmV2Ml8zMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMxOCwgX19zMl8zMTgsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzMxODsgXAogIF9fcmV0XzMxOCA9IF9fbm9zd2FwX3Zxc3VicV9zMzIoX19yZXYwXzMxOCwgX19ub3N3YXBfdnFyZG11bGhxX3MzMihfX3JldjFfMzE4LCBfX25vc3dhcF9zcGxhdHFfbGFuZV9zMzIoX19yZXYyXzMxOCwgX19wM18zMTgpKSk7IFwKICBfX3JldF8zMTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMTgsIF9fcmV0XzMxOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaHFfbGFuZV9zMTYoX19wMF8zMTksIF9fcDFfMzE5LCBfX3AyXzMxOSwgX19wM18zMTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMxOSA9IF9fcDBfMzE5OyBcCiAgaW50MTZ4OF90IF9fczFfMzE5ID0gX19wMV8zMTk7IFwKICBpbnQxNng0X3QgX19zMl8zMTkgPSBfX3AyXzMxOTsgXAogIGludDE2eDhfdCBfX3JldF8zMTk7IFwKICBfX3JldF8zMTkgPSB2cXN1YnFfczE2KF9fczBfMzE5LCB2cXJkbXVsaHFfczE2KF9fczFfMzE5LCBzcGxhdHFfbGFuZV9zMTYoX19zMl8zMTksIF9fcDNfMzE5KSkpOyBcCiAgX19yZXRfMzE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hxX2xhbmVfczE2KF9fcDBfMzIwLCBfX3AxXzMyMCwgX19wMl8zMjAsIF9fcDNfMzIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjAgPSBfX3AwXzMyMDsgXAogIGludDE2eDhfdCBfX3MxXzMyMCA9IF9fcDFfMzIwOyBcCiAgaW50MTZ4NF90IF9fczJfMzIwID0gX19wMl8zMjA7IFwKICBpbnQxNng4X3QgX19yZXYwXzMyMDsgIF9fcmV2MF8zMjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyMCwgX19zMF8zMjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV8zMjA7ICBfX3JldjFfMzIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjAsIF9fczFfMzIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzIwOyAgX19yZXYyXzMyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzIwLCBfX3MyXzMyMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfMzIwOyBcCiAgX19yZXRfMzIwID0gX19ub3N3YXBfdnFzdWJxX3MxNihfX3JldjBfMzIwLCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MV8zMjAsIF9fbm9zd2FwX3NwbGF0cV9sYW5lX3MxNihfX3JldjJfMzIwLCBfX3AzXzMyMCkpKTsgXAogIF9fcmV0XzMyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyMCwgX19yZXRfMzIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMyMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczMyKF9fcDBfMzIxLCBfX3AxXzMyMSwgX19wMl8zMjEsIF9fcDNfMzIxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMjEgPSBfX3AwXzMyMTsgXAogIGludDMyeDJfdCBfX3MxXzMyMSA9IF9fcDFfMzIxOyBcCiAgaW50MzJ4Ml90IF9fczJfMzIxID0gX19wMl8zMjE7IFwKICBpbnQzMngyX3QgX19yZXRfMzIxOyBcCiAgX19yZXRfMzIxID0gdnFzdWJfczMyKF9fczBfMzIxLCB2cXJkbXVsaF9zMzIoX19zMV8zMjEsIHNwbGF0X2xhbmVfczMyKF9fczJfMzIxLCBfX3AzXzMyMSkpKTsgXAogIF9fcmV0XzMyMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczMyKF9fcDBfMzIyLCBfX3AxXzMyMiwgX19wMl8zMjIsIF9fcDNfMzIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMjIgPSBfX3AwXzMyMjsgXAogIGludDMyeDJfdCBfX3MxXzMyMiA9IF9fcDFfMzIyOyBcCiAgaW50MzJ4Ml90IF9fczJfMzIyID0gX19wMl8zMjI7IFwKICBpbnQzMngyX3QgX19yZXYwXzMyMjsgIF9fcmV2MF8zMjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyMiwgX19zMF8zMjIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8zMjI7ICBfX3JldjFfMzIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjIsIF9fczFfMzIyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMzIyOyAgX19yZXYyXzMyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzIyLCBfX3MyXzMyMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzIyOyBcCiAgX19yZXRfMzIyID0gX19ub3N3YXBfdnFzdWJfczMyKF9fcmV2MF8zMjIsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjFfMzIyLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfMzIyLCBfX3AzXzMyMikpKTsgXAogIF9fcmV0XzMyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyMiwgX19yZXRfMzIyLCAxLCAwKTsgXAogIF9fcmV0XzMyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczE2KF9fcDBfMzIzLCBfX3AxXzMyMywgX19wMl8zMjMsIF9fcDNfMzIzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMjMgPSBfX3AwXzMyMzsgXAogIGludDE2eDRfdCBfX3MxXzMyMyA9IF9fcDFfMzIzOyBcCiAgaW50MTZ4NF90IF9fczJfMzIzID0gX19wMl8zMjM7IFwKICBpbnQxNng0X3QgX19yZXRfMzIzOyBcCiAgX19yZXRfMzIzID0gdnFzdWJfczE2KF9fczBfMzIzLCB2cXJkbXVsaF9zMTYoX19zMV8zMjMsIHNwbGF0X2xhbmVfczE2KF9fczJfMzIzLCBfX3AzXzMyMykpKTsgXAogIF9fcmV0XzMyMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVfczE2KF9fcDBfMzI0LCBfX3AxXzMyNCwgX19wMl8zMjQsIF9fcDNfMzI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMjQgPSBfX3AwXzMyNDsgXAogIGludDE2eDRfdCBfX3MxXzMyNCA9IF9fcDFfMzI0OyBcCiAgaW50MTZ4NF90IF9fczJfMzI0ID0gX19wMl8zMjQ7IFwKICBpbnQxNng0X3QgX19yZXYwXzMyNDsgIF9fcmV2MF8zMjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyNCwgX19zMF8zMjQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV8zMjQ7ICBfX3JldjFfMzI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjQsIF9fczFfMzI0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzI0OyAgX19yZXYyXzMyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI0LCBfX3MyXzMyNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfMzI0OyBcCiAgX19yZXRfMzI0ID0gX19ub3N3YXBfdnFzdWJfczE2KF9fcmV2MF8zMjQsIF9fbm9zd2FwX3ZxcmRtdWxoX3MxNihfX3JldjFfMzI0LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjJfMzI0LCBfX3AzXzMyNCkpKTsgXAogIF9fcmV0XzMyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMyNCwgX19yZXRfMzI0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMyNDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX1FSRE1YKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczMyKF9fcDBfMzI1LCBfX3AxXzMyNSwgX19wMl8zMjUsIF9fcDNfMzI1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMjUgPSBfX3AwXzMyNTsgXAogIGludDMyeDRfdCBfX3MxXzMyNSA9IF9fcDFfMzI1OyBcCiAgaW50MzJ4NF90IF9fczJfMzI1ID0gX19wMl8zMjU7IFwKICBpbnQzMng0X3QgX19yZXRfMzI1OyBcCiAgX19yZXRfMzI1ID0gdnFhZGRxX3MzMihfX3MwXzMyNSwgdnFyZG11bGhxX3MzMihfX3MxXzMyNSwgc3BsYXRxX2xhbmVxX3MzMihfX3MyXzMyNSwgX19wM18zMjUpKSk7IFwKICBfX3JldF8zMjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczMyKF9fcDBfMzI2LCBfX3AxXzMyNiwgX19wMl8zMjYsIF9fcDNfMzI2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zMjYgPSBfX3AwXzMyNjsgXAogIGludDMyeDRfdCBfX3MxXzMyNiA9IF9fcDFfMzI2OyBcCiAgaW50MzJ4NF90IF9fczJfMzI2ID0gX19wMl8zMjY7IFwKICBpbnQzMng0X3QgX19yZXYwXzMyNjsgIF9fcmV2MF8zMjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyNiwgX19zMF8zMjYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV8zMjY7ICBfX3JldjFfMzI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjYsIF9fczFfMzI2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfMzI2OyAgX19yZXYyXzMyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI2LCBfX3MyXzMyNiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfMzI2OyBcCiAgX19yZXRfMzI2ID0gX19ub3N3YXBfdnFhZGRxX3MzMihfX3JldjBfMzI2LCBfX25vc3dhcF92cXJkbXVsaHFfczMyKF9fcmV2MV8zMjYsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoX19yZXYyXzMyNiwgX19wM18zMjYpKSk7IFwKICBfX3JldF8zMjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMjYsIF9fcmV0XzMyNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczE2KF9fcDBfMzI3LCBfX3AxXzMyNywgX19wMl8zMjcsIF9fcDNfMzI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjcgPSBfX3AwXzMyNzsgXAogIGludDE2eDhfdCBfX3MxXzMyNyA9IF9fcDFfMzI3OyBcCiAgaW50MTZ4OF90IF9fczJfMzI3ID0gX19wMl8zMjc7IFwKICBpbnQxNng4X3QgX19yZXRfMzI3OyBcCiAgX19yZXRfMzI3ID0gdnFhZGRxX3MxNihfX3MwXzMyNywgdnFyZG11bGhxX3MxNihfX3MxXzMyNywgc3BsYXRxX2xhbmVxX3MxNihfX3MyXzMyNywgX19wM18zMjcpKSk7IFwKICBfX3JldF8zMjc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHFfbGFuZXFfczE2KF9fcDBfMzI4LCBfX3AxXzMyOCwgX19wMl8zMjgsIF9fcDNfMzI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF8zMjggPSBfX3AwXzMyODsgXAogIGludDE2eDhfdCBfX3MxXzMyOCA9IF9fcDFfMzI4OyBcCiAgaW50MTZ4OF90IF9fczJfMzI4ID0gX19wMl8zMjg7IFwKICBpbnQxNng4X3QgX19yZXYwXzMyODsgIF9fcmV2MF8zMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMyOCwgX19zMF8zMjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV8zMjg7ICBfX3JldjFfMzI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMjgsIF9fczFfMzI4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfMzI4OyAgX19yZXYyXzMyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzI4LCBfX3MyXzMyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfMzI4OyBcCiAgX19yZXRfMzI4ID0gX19ub3N3YXBfdnFhZGRxX3MxNihfX3JldjBfMzI4LCBfX25vc3dhcF92cXJkbXVsaHFfczE2KF9fcmV2MV8zMjgsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYyXzMyOCwgX19wM18zMjgpKSk7IFwKICBfX3JldF8zMjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMjgsIF9fcmV0XzMyOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zMjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaF9sYW5lcV9zMzIoX19wMF8zMjksIF9fcDFfMzI5LCBfX3AyXzMyOSwgX19wM18zMjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzMyOSA9IF9fcDBfMzI5OyBcCiAgaW50MzJ4Ml90IF9fczFfMzI5ID0gX19wMV8zMjk7IFwKICBpbnQzMng0X3QgX19zMl8zMjkgPSBfX3AyXzMyOTsgXAogIGludDMyeDJfdCBfX3JldF8zMjk7IFwKICBfX3JldF8zMjkgPSB2cWFkZF9zMzIoX19zMF8zMjksIHZxcmRtdWxoX3MzMihfX3MxXzMyOSwgc3BsYXRfbGFuZXFfczMyKF9fczJfMzI5LCBfX3AzXzMyOSkpKTsgXAogIF9fcmV0XzMyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoX2xhbmVxX3MzMihfX3AwXzMzMCwgX19wMV8zMzAsIF9fcDJfMzMwLCBfX3AzXzMzMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzMwID0gX19wMF8zMzA7IFwKICBpbnQzMngyX3QgX19zMV8zMzAgPSBfX3AxXzMzMDsgXAogIGludDMyeDRfdCBfX3MyXzMzMCA9IF9fcDJfMzMwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zMzA7ICBfX3JldjBfMzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zMzAsIF9fczBfMzMwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfMzMwOyAgX19yZXYxXzMzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzMwLCBfX3MxXzMzMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzMzMDsgIF9fcmV2Ml8zMzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzMzMCwgX19zMl8zMzAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMzMDsgXAogIF9fcmV0XzMzMCA9IF9fbm9zd2FwX3ZxYWRkX3MzMihfX3JldjBfMzMwLCBfX25vc3dhcF92cXJkbXVsaF9zMzIoX19yZXYxXzMzMCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml8zMzAsIF9fcDNfMzMwKSkpOyBcCiAgX19yZXRfMzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzMwLCBfX3JldF8zMzAsIDEsIDApOyBcCiAgX19yZXRfMzMwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhfbGFuZXFfczE2KF9fcDBfMzMxLCBfX3AxXzMzMSwgX19wMl8zMzEsIF9fcDNfMzMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zMzEgPSBfX3AwXzMzMTsgXAogIGludDE2eDRfdCBfX3MxXzMzMSA9IF9fcDFfMzMxOyBcCiAgaW50MTZ4OF90IF9fczJfMzMxID0gX19wMl8zMzE7IFwKICBpbnQxNng0X3QgX19yZXRfMzMxOyBcCiAgX19yZXRfMzMxID0gdnFhZGRfczE2KF9fczBfMzMxLCB2cXJkbXVsaF9zMTYoX19zMV8zMzEsIHNwbGF0X2xhbmVxX3MxNihfX3MyXzMzMSwgX19wM18zMzEpKSk7IFwKICBfX3JldF8zMzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaF9sYW5lcV9zMTYoX19wMF8zMzIsIF9fcDFfMzMyLCBfX3AyXzMzMiwgX19wM18zMzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzMzMiA9IF9fcDBfMzMyOyBcCiAgaW50MTZ4NF90IF9fczFfMzMyID0gX19wMV8zMzI7IFwKICBpbnQxNng4X3QgX19zMl8zMzIgPSBfX3AyXzMzMjsgXAogIGludDE2eDRfdCBfX3JldjBfMzMyOyAgX19yZXYwXzMzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzMyLCBfX3MwXzMzMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzMzMjsgIF9fcmV2MV8zMzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzMiwgX19zMV8zMzIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml8zMzI7ICBfX3JldjJfMzMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzIsIF9fczJfMzMyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldF8zMzI7IFwKICBfX3JldF8zMzIgPSBfX25vc3dhcF92cWFkZF9zMTYoX19yZXYwXzMzMiwgX19ub3N3YXBfdnFyZG11bGhfczE2KF9fcmV2MV8zMzIsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjJfMzMyLCBfX3AzXzMzMikpKTsgXAogIF9fcmV0XzMzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzMiwgX19yZXRfMzMyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMzIoX19wMF8zMzMsIF9fcDFfMzMzLCBfX3AyXzMzMywgX19wM18zMzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMzMyA9IF9fcDBfMzMzOyBcCiAgaW50MzJ4NF90IF9fczFfMzMzID0gX19wMV8zMzM7IFwKICBpbnQzMng0X3QgX19zMl8zMzMgPSBfX3AyXzMzMzsgXAogIGludDMyeDRfdCBfX3JldF8zMzM7IFwKICBfX3JldF8zMzMgPSB2cXN1YnFfczMyKF9fczBfMzMzLCB2cXJkbXVsaHFfczMyKF9fczFfMzMzLCBzcGxhdHFfbGFuZXFfczMyKF9fczJfMzMzLCBfX3AzXzMzMykpKTsgXAogIF9fcmV0XzMzMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMzIoX19wMF8zMzQsIF9fcDFfMzM0LCBfX3AyXzMzNCwgX19wM18zMzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzMzNCA9IF9fcDBfMzM0OyBcCiAgaW50MzJ4NF90IF9fczFfMzM0ID0gX19wMV8zMzQ7IFwKICBpbnQzMng0X3QgX19zMl8zMzQgPSBfX3AyXzMzNDsgXAogIGludDMyeDRfdCBfX3JldjBfMzM0OyAgX19yZXYwXzMzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzM0LCBfX3MwXzMzNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzMzNDsgIF9fcmV2MV8zMzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzNCwgX19zMV8zMzQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml8zMzQ7ICBfX3JldjJfMzM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzQsIF9fczJfMzM0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF8zMzQ7IFwKICBfX3JldF8zMzQgPSBfX25vc3dhcF92cXN1YnFfczMyKF9fcmV2MF8zMzQsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMzIoX19yZXYxXzMzNCwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjJfMzM0LCBfX3AzXzMzNCkpKTsgXAogIF9fcmV0XzMzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzNCwgX19yZXRfMzM0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMTYoX19wMF8zMzUsIF9fcDFfMzM1LCBfX3AyXzMzNSwgX19wM18zMzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMzNSA9IF9fcDBfMzM1OyBcCiAgaW50MTZ4OF90IF9fczFfMzM1ID0gX19wMV8zMzU7IFwKICBpbnQxNng4X3QgX19zMl8zMzUgPSBfX3AyXzMzNTsgXAogIGludDE2eDhfdCBfX3JldF8zMzU7IFwKICBfX3JldF8zMzUgPSB2cXN1YnFfczE2KF9fczBfMzM1LCB2cXJkbXVsaHFfczE2KF9fczFfMzM1LCBzcGxhdHFfbGFuZXFfczE2KF9fczJfMzM1LCBfX3AzXzMzNSkpKTsgXAogIF9fcmV0XzMzNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNocV9sYW5lcV9zMTYoX19wMF8zMzYsIF9fcDFfMzM2LCBfX3AyXzMzNiwgX19wM18zMzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzMzNiA9IF9fcDBfMzM2OyBcCiAgaW50MTZ4OF90IF9fczFfMzM2ID0gX19wMV8zMzY7IFwKICBpbnQxNng4X3QgX19zMl8zMzYgPSBfX3AyXzMzNjsgXAogIGludDE2eDhfdCBfX3JldjBfMzM2OyAgX19yZXYwXzMzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzM2LCBfX3MwXzMzNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzMzNjsgIF9fcmV2MV8zMzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzMzNiwgX19zMV8zMzYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml8zMzY7ICBfX3JldjJfMzM2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zMzYsIF9fczJfMzM2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8zMzY7IFwKICBfX3JldF8zMzYgPSBfX25vc3dhcF92cXN1YnFfczE2KF9fcmV2MF8zMzYsIF9fbm9zd2FwX3ZxcmRtdWxocV9zMTYoX19yZXYxXzMzNiwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjJfMzM2LCBfX3AzXzMzNikpKTsgXAogIF9fcmV0XzMzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzMzNiwgX19yZXRfMzM2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzMzNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoX2xhbmVxX3MzMihfX3AwXzMzNywgX19wMV8zMzcsIF9fcDJfMzM3LCBfX3AzXzMzNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzM3ID0gX19wMF8zMzc7IFwKICBpbnQzMngyX3QgX19zMV8zMzcgPSBfX3AxXzMzNzsgXAogIGludDMyeDRfdCBfX3MyXzMzNyA9IF9fcDJfMzM3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzMzNzsgXAogIF9fcmV0XzMzNyA9IHZxc3ViX3MzMihfX3MwXzMzNywgdnFyZG11bGhfczMyKF9fczFfMzM3LCBzcGxhdF9sYW5lcV9zMzIoX19zMl8zMzcsIF9fcDNfMzM3KSkpOyBcCiAgX19yZXRfMzM3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hfbGFuZXFfczMyKF9fcDBfMzM4LCBfX3AxXzMzOCwgX19wMl8zMzgsIF9fcDNfMzM4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zMzggPSBfX3AwXzMzODsgXAogIGludDMyeDJfdCBfX3MxXzMzOCA9IF9fcDFfMzM4OyBcCiAgaW50MzJ4NF90IF9fczJfMzM4ID0gX19wMl8zMzg7IFwKICBpbnQzMngyX3QgX19yZXYwXzMzODsgIF9fcmV2MF8zMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzMzOCwgX19zMF8zMzgsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV8zMzg7ICBfX3JldjFfMzM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV8zMzgsIF9fczFfMzM4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfMzM4OyAgX19yZXYyXzMzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzM4LCBfX3MyXzMzOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzM4OyBcCiAgX19yZXRfMzM4ID0gX19ub3N3YXBfdnFzdWJfczMyKF9fcmV2MF8zMzgsIF9fbm9zd2FwX3ZxcmRtdWxoX3MzMihfX3JldjFfMzM4LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzMzOCwgX19wM18zMzgpKSk7IFwKICBfX3JldF8zMzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zMzgsIF9fcmV0XzMzOCwgMSwgMCk7IFwKICBfX3JldF8zMzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaF9sYW5lcV9zMTYoX19wMF8zMzksIF9fcDFfMzM5LCBfX3AyXzMzOSwgX19wM18zMzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzMzOSA9IF9fcDBfMzM5OyBcCiAgaW50MTZ4NF90IF9fczFfMzM5ID0gX19wMV8zMzk7IFwKICBpbnQxNng4X3QgX19zMl8zMzkgPSBfX3AyXzMzOTsgXAogIGludDE2eDRfdCBfX3JldF8zMzk7IFwKICBfX3JldF8zMzkgPSB2cXN1Yl9zMTYoX19zMF8zMzksIHZxcmRtdWxoX3MxNihfX3MxXzMzOSwgc3BsYXRfbGFuZXFfczE2KF9fczJfMzM5LCBfX3AzXzMzOSkpKTsgXAogIF9fcmV0XzMzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbHNoX2xhbmVxX3MxNihfX3AwXzM0MCwgX19wMV8zNDAsIF9fcDJfMzQwLCBfX3AzXzM0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzQwID0gX19wMF8zNDA7IFwKICBpbnQxNng0X3QgX19zMV8zNDAgPSBfX3AxXzM0MDsgXAogIGludDE2eDhfdCBfX3MyXzM0MCA9IF9fcDJfMzQwOyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zNDA7ICBfX3JldjBfMzQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDAsIF9fczBfMzQwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfMzQwOyAgX19yZXYxXzM0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfMzQwLCBfX3MxXzM0MCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzM0MDsgIF9fcmV2Ml8zNDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM0MCwgX19zMl8zNDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzM0MDsgXAogIF9fcmV0XzM0MCA9IF9fbm9zd2FwX3Zxc3ViX3MxNihfX3JldjBfMzQwLCBfX25vc3dhcF92cXJkbXVsaF9zMTYoX19yZXYxXzM0MCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml8zNDAsIF9fcDNfMzQwKSkpOyBcCiAgX19yZXRfMzQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQwLCBfX3JldF8zNDAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQwOyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2YWJkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmFiZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmFiZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2YWJkX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdmFiZGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdmFiZHNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhYmRzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmFic3FfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2YWJzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19yZXYwLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92YWJzcV92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2YWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDJfdCkgX19idWlsdGluX25lb25fdmFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZhYnNfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZhYnNfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0eDFfdCkgX19idWlsdGluX25lb25fdmFic192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZhYnNkX3M2NChpbnQ2NF90IF9fcDApIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhYnNkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmFkZHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZhZGRxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmFkZF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmFkZGRfdTY0KHVpbnQ2NF90IF9fcDAsIHVpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmFkZGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdmFkZGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgcG9seTEyOF90IHZhZGRxX3AxMjgocG9seTEyOF90IF9fcDAsIHBvbHkxMjhfdCBfX3AxKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHkxMjhfdCkgX19idWlsdGluX25lb25fdmFkZHFfcDEyOChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdmFkZGhuX3UzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MTYoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fdTMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTMyKF9fcDAsIHZhZGRobl91NjQoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmFkZGhuX3U2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhZGRobl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTgoX19wMCwgdmFkZGhuX3UxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2YWRkaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTgoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fdTE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MxNihfX3AwLCB2YWRkaG5fczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZGhuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMTYoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWRkaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MzMihfX3AwLCB2YWRkaG5fczY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92YWRkaG5fczY0KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWRkaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczgoX19wMCwgdmFkZGhuX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZhZGRobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3M4KF9fcmV2MCwgX19ub3N3YXBfdmFkZGhuX3MxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2YWRkbHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZhZGRsdnFfdTgodWludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGRsdnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjRfdCB2YWRkbHZxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZhZGRsdnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2YWRkbHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3UxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3QgdmFkZGx2cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNl90IHZhZGRsdnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZxX3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkbHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjRfdCB2YWRkbHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdnFfczMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2YWRkbHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkbHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdnFfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2X3QgdmFkZGx2X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91OChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkbHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGRsdl91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0X3QgdmFkZGx2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfdTMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3QgdmFkZGx2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2YWRkbHZfdTE2KHVpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGRsdl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfczgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2YWRkbHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkbHZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkbHZfczMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdmFkZGx2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMl90IHZhZGRsdl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGRsdl9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkbHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZGx2X3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3QgdmFkZHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3QgdmFkZHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJfdCB2YWRkdnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZhZGR2cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NF90IHZhZGR2cV91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV91NjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0X3QgdmFkZHZxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfdTY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2X3QgdmFkZHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkdnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4X3QgdmFkZHZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDhfdCB2YWRkdnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZhZGR2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZhZGR2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdmFkZHZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdmFkZHZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3QgdmFkZHZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMl90IHZhZGR2cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfczMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2YWRkdnFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdnFfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdmFkZHZxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9zNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGR2cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2YWRkdnFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZxX3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3QgdmFkZHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3QgdmFkZHZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZhZGR2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZhZGR2X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2YWRkdl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2YWRkdl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZhZGR2X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3QgdmFkZHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZhZGR2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmFkZHZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2YWRkdl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZhZGR2X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3QgdmFkZHZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2YWRkdl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92YWRkdl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZhZGR2X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2X3QgdmFkZHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmFkZHZfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBwb2x5NjR4MV90IHZic2xfcDY0KHVpbnQ2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxLCBwb2x5NjR4MV90IF9fcDIpIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2YnNscV9wNjQodWludDY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEsIHBvbHk2NHgyX3QgX19wMikgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2YnNscV9wNjQodWludDY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEsIHBvbHk2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZic2xxX2Y2NCh1aW50NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmJzbHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmJzbHFfZjY0KHVpbnQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zic2xxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZic2xfZjY0KHVpbnQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92YnNsX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAoaW50OHg4X3QpX19wMiwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjYWdlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjYWdlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhZ2VxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2FnZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNhZ2VfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2FnZWRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FnZWRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjYWdlc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWdlc19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNhZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNhZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2FndHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjYWd0X2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2FndF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjYWd0ZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWd0ZF9mNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNhZ3RzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNhZ3RzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2FsZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2FsZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNhbGVfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWxlX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNhbGVkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNhbGVkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2FsZXNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2FsZXNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjYWx0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjYWx0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNhbHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2FsdF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNhbHRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2FsdGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2FsdGRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjYWx0c19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjYWx0c19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2Y2VxX3A2NChwb2x5NjR4MV90IF9fcDAsIHBvbHk2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPT0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZXFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPT0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXFfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID09IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNlcV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjZXFfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA9PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNlcWRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2Vxc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXFzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZXF6X3A4KHBvbHk4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXF6X3A2NChwb2x5NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2VxenFfcDgocG9seTh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZXF6cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXF6cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNlcXpxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZXF6cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZXF6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2VxenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZXF6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2VxenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNlcXpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2VxenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZXF6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZXF6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNlcXpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNlcXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2VxenFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZXF6X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2Vxel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel91MzIodWludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNlcXpfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZXF6X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZXF6X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2Vxel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2Vxel9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZXF6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNlcXpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2Vxel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2Vxel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZXF6X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjZXF6X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNlcXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNlcXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0X3QgdmNlcXpkX3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6ZF91NjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNlcXpkX3M2NChpbnQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNlcXpkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2VxemRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZXF6ZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNlcXpzX2YzMihmbG9hdDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2VxenNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA+PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZ2VxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNnZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2VxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2dlcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+PSBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNnZV91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPj0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDFfdCB2Y2dlX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNnZV9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID49IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2VkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNnZWRfdTY0KHVpbnQ2NF90IF9fcDAsIHVpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZWRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2VkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZWRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjZ2VzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNnZXNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjZ2V6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2dlenFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2V6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2dlenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNnZXpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2V6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2dlenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjZ2V6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ2V6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNnZXpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNnZXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2dlenFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNnZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjZ2V6X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjZ2V6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjZ2V6X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNnZXpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ2V6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2dlel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjZ2V6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNnZXpfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNnZXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2dlel9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlel92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjRfdCB2Y2dlemRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2dlemRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjZ2V6ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNnZXpkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2dlenNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ2V6c19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPiBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjZ3RxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19yZXYwID4gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0cV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA+IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2d0X3U2NCh1aW50NjR4MV90IF9fcDAsIHVpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNndF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA+IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNndF9zNjQoaW50NjR4MV90IF9fcDAsIGludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwID4gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3RkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2d0ZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0ZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndGRfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0ZF9mNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNndHNfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0c19mMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdmNndHpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZjZ3R6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHpxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjZ3R6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2d0enFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjZ3R6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19wMCwgNTApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmNndHpxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNndHpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2d0enFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNndHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2Y2d0enFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcDAsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZjZ3R6cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdmNndHpfczgoaW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdmNndHpfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNndHpfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2d0el9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjZ3R6X3MzMihpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19wMCwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdmNndHpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNndHpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2d0el9zNjQoaW50NjR4MV90IF9fcDApIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2Y2d0el9zMTYoaW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcDAsIDE3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZjZ3R6X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6X3YoKGludDh4OF90KV9fcmV2MCwgMTcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NF90IHZjZ3R6ZF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjZ3R6ZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNndHpkX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2d0emRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjZ3R6c19mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNndHpzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcDAgPD0gX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2xlcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjbGVxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsZXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPD0gX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbGVfdTY0KHVpbnQ2NHgxX3QgX19wMCwgdWludDY0eDFfdCBfX3AxKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KShfX3AwIDw9IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NHgxX3QgdmNsZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbGVfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8PSBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2xlZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmNsZWRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2xlc19mMzIoZmxvYXQzMl90IF9fcDAsIGZsb2F0MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGVzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2Y2xlenFfczgoaW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmNsZXpxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlenFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsZXpxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZjbGV6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2xlenFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsZXpxX3MzMihpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3AwLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2Y2xlenFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsZXpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2xlenFfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjbGV6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenFfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZjbGV6cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19wMCwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmNsZXpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2Y2xlel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2Y2xlel9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2Y2xlel9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZjbGV6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2xlel9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDJfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsZXpfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3AwLCAxOCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2Y2xlel9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2xlel92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbGV6X3M2NChpbnQ2NHgxX3QgX19wMCkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZjbGV6X3MxNihpbnQxNng0X3QgX19wMCkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19wMCwgMTcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmNsZXpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdmNsZXpfdigoaW50OHg4X3QpX19yZXYwLCAxNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0X3QgdmNsZXpkX3M2NChpbnQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsZXpkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2xlemRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbGV6ZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmNsZXpzX2YzMihmbG9hdDMyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y2xlenNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19yZXYwIDwgX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2Y2x0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fcmV2MCA8IF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX3JldjAgPCBfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNsdF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbHRfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpKF9fcDAgPCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZjbHRfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkoX19wMCA8IF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHRkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHRkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y2x0ZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHRkX2Y2NChmbG9hdDY0X3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdGRfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjbHRzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmNsdHNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZjbHR6cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2Y2x0enFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHR6cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2Y2x0enFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmNsdHpxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHR6cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3JldjAsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2Y2x0enFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcDAsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZjbHR6cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0enFfdigoaW50OHgxNl90KV9fcmV2MCwgNTApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZjbHR6cV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19wMCwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmNsdHpxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6cV92KChpbnQ4eDE2X3QpX19yZXYwLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmNsdHpxX3MxNihpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3AwLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2Y2x0enFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdmNsdHpxX3YoKGludDh4MTZfdClfX3JldjAsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZjbHR6X3M4KGludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZjbHR6X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjbHR6X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdmNsdHpfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHR6X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2Y2x0el9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcDAsIDE4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZjbHR6X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6X3YoKGludDh4OF90KV9fcmV2MCwgMTgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdmNsdHpfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdmNsdHpfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3AwLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2Y2x0el9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0el92KChpbnQ4eDhfdClfX3JldjAsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjRfdCB2Y2x0emRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Y2x0emRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZjbHR6ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmNsdHpkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2Y2x0enNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjbHR6c19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmNvbWJpbmVfcDY0KHBvbHk2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdmNvbWJpbmVfcDY0KHBvbHk2NHgxX3QgX19wMCwgcG9seTY0eDFfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y29tYmluZV9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmNvbWJpbmVfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9wOChfX3AwXzM0MSwgX19wMV8zNDEsIF9fcDJfMzQxLCBfX3AzXzM0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwXzM0MSA9IF9fcDBfMzQxOyBcCiAgcG9seTh4OF90IF9fczJfMzQxID0gX19wMl8zNDE7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM0MTsgXAogIF9fcmV0XzM0MSA9IHZzZXRxX2xhbmVfcDgodmdldF9sYW5lX3A4KF9fczJfMzQxLCBfX3AzXzM0MSksIF9fczBfMzQxLCBfX3AxXzM0MSk7IFwKICBfX3JldF8zNDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZV9wOChfX3AwXzM0MiwgX19wMV8zNDIsIF9fcDJfMzQyLCBfX3AzXzM0MikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZfdCBfX3MwXzM0MiA9IF9fcDBfMzQyOyBcCiAgcG9seTh4OF90IF9fczJfMzQyID0gX19wMl8zNDI7IFwKICBwb2x5OHgxNl90IF9fcmV2MF8zNDI7ICBfX3JldjBfMzQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDIsIF9fczBfMzQyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjJfMzQyOyAgX19yZXYyXzM0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzQyLCBfX3MyXzM0MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM0MjsgXAogIF9fcmV0XzM0MiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDgoX19ub3N3YXBfdmdldF9sYW5lX3A4KF9fcmV2Ml8zNDIsIF9fcDNfMzQyKSwgX19yZXYwXzM0MiwgX19wMV8zNDIpOyBcCiAgX19yZXRfMzQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQyLCBfX3JldF8zNDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfcDE2KF9fcDBfMzQzLCBfX3AxXzM0MywgX19wMl8zNDMsIF9fcDNfMzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzQzID0gX19wMF8zNDM7IFwKICBwb2x5MTZ4NF90IF9fczJfMzQzID0gX19wMl8zNDM7IFwKICBwb2x5MTZ4OF90IF9fcmV0XzM0MzsgXAogIF9fcmV0XzM0MyA9IHZzZXRxX2xhbmVfcDE2KHZnZXRfbGFuZV9wMTYoX19zMl8zNDMsIF9fcDNfMzQzKSwgX19zMF8zNDMsIF9fcDFfMzQzKTsgXAogIF9fcmV0XzM0MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3AxNihfX3AwXzM0NCwgX19wMV8zNDQsIF9fcDJfMzQ0LCBfX3AzXzM0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwXzM0NCA9IF9fcDBfMzQ0OyBcCiAgcG9seTE2eDRfdCBfX3MyXzM0NCA9IF9fcDJfMzQ0OyBcCiAgcG9seTE2eDhfdCBfX3JldjBfMzQ0OyAgX19yZXYwXzM0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzQ0LCBfX3MwXzM0NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV2Ml8zNDQ7ICBfX3JldjJfMzQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNDQsIF9fczJfMzQ0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXRfMzQ0OyBcCiAgX19yZXRfMzQ0ID0gX19ub3N3YXBfdnNldHFfbGFuZV9wMTYoX19ub3N3YXBfdmdldF9sYW5lX3AxNihfX3JldjJfMzQ0LCBfX3AzXzM0NCksIF9fcmV2MF8zNDQsIF9fcDFfMzQ0KTsgXAogIF9fcmV0XzM0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM0NCwgX19yZXRfMzQ0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3U4KF9fcDBfMzQ1LCBfX3AxXzM0NSwgX19wMl8zNDUsIF9fcDNfMzQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfMzQ1ID0gX19wMF8zNDU7IFwKICB1aW50OHg4X3QgX19zMl8zNDUgPSBfX3AyXzM0NTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzQ1OyBcCiAgX19yZXRfMzQ1ID0gdnNldHFfbGFuZV91OCh2Z2V0X2xhbmVfdTgoX19zMl8zNDUsIF9fcDNfMzQ1KSwgX19zMF8zNDUsIF9fcDFfMzQ1KTsgXAogIF9fcmV0XzM0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3U4KF9fcDBfMzQ2LCBfX3AxXzM0NiwgX19wMl8zNDYsIF9fcDNfMzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfMzQ2ID0gX19wMF8zNDY7IFwKICB1aW50OHg4X3QgX19zMl8zNDYgPSBfX3AyXzM0NjsgXAogIHVpbnQ4eDE2X3QgX19yZXYwXzM0NjsgIF9fcmV2MF8zNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM0NiwgX19zMF8zNDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV2Ml8zNDY7ICBfX3JldjJfMzQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNDYsIF9fczJfMzQ2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzQ2OyBcCiAgX19yZXRfMzQ2ID0gX19ub3N3YXBfdnNldHFfbGFuZV91OChfX25vc3dhcF92Z2V0X2xhbmVfdTgoX19yZXYyXzM0NiwgX19wM18zNDYpLCBfX3JldjBfMzQ2LCBfX3AxXzM0Nik7IFwKICBfX3JldF8zNDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNDYsIF9fcmV0XzM0NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV91MzIoX19wMF8zNDcsIF9fcDFfMzQ3LCBfX3AyXzM0NywgX19wM18zNDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF8zNDcgPSBfX3AwXzM0NzsgXAogIHVpbnQzMngyX3QgX19zMl8zNDcgPSBfX3AyXzM0NzsgXAogIHVpbnQzMng0X3QgX19yZXRfMzQ3OyBcCiAgX19yZXRfMzQ3ID0gdnNldHFfbGFuZV91MzIodmdldF9sYW5lX3UzMihfX3MyXzM0NywgX19wM18zNDcpLCBfX3MwXzM0NywgX19wMV8zNDcpOyBcCiAgX19yZXRfMzQ3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTMyKF9fcDBfMzQ4LCBfX3AxXzM0OCwgX19wMl8zNDgsIF9fcDNfMzQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfMzQ4ID0gX19wMF8zNDg7IFwKICB1aW50MzJ4Ml90IF9fczJfMzQ4ID0gX19wMl8zNDg7IFwKICB1aW50MzJ4NF90IF9fcmV2MF8zNDg7ICBfX3JldjBfMzQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNDgsIF9fczBfMzQ4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzM0ODsgIF9fcmV2Ml8zNDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM0OCwgX19zMl8zNDgsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF8zNDg7IFwKICBfX3JldF8zNDggPSBfX25vc3dhcF92c2V0cV9sYW5lX3UzMihfX25vc3dhcF92Z2V0X2xhbmVfdTMyKF9fcmV2Ml8zNDgsIF9fcDNfMzQ4KSwgX19yZXYwXzM0OCwgX19wMV8zNDgpOyBcCiAgX19yZXRfMzQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzQ4LCBfX3JldF8zNDgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzQ4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTY0KF9fcDBfMzQ5LCBfX3AxXzM0OSwgX19wMl8zNDksIF9fcDNfMzQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzQ5ID0gX19wMF8zNDk7IFwKICB1aW50NjR4MV90IF9fczJfMzQ5ID0gX19wMl8zNDk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM0OTsgXAogIF9fcmV0XzM0OSA9IHZzZXRxX2xhbmVfdTY0KHZnZXRfbGFuZV91NjQoX19zMl8zNDksIF9fcDNfMzQ5KSwgX19zMF8zNDksIF9fcDFfMzQ5KTsgXAogIF9fcmV0XzM0OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3U2NChfX3AwXzM1MCwgX19wMV8zNTAsIF9fcDJfMzUwLCBfX3AzXzM1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzM1MCA9IF9fcDBfMzUwOyBcCiAgdWludDY0eDFfdCBfX3MyXzM1MCA9IF9fcDJfMzUwOyBcCiAgdWludDY0eDJfdCBfX3JldjBfMzUwOyAgX19yZXYwXzM1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzUwLCBfX3MwXzM1MCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM1MDsgXAogIF9fcmV0XzM1MCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfdTY0KHZnZXRfbGFuZV91NjQoX19zMl8zNTAsIF9fcDNfMzUwKSwgX19yZXYwXzM1MCwgX19wMV8zNTApOyBcCiAgX19yZXRfMzUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzUwLCBfX3JldF8zNTAsIDEsIDApOyBcCiAgX19yZXRfMzUwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfdTE2KF9fcDBfMzUxLCBfX3AxXzM1MSwgX19wMl8zNTEsIF9fcDNfMzUxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfMzUxID0gX19wMF8zNTE7IFwKICB1aW50MTZ4NF90IF9fczJfMzUxID0gX19wMl8zNTE7IFwKICB1aW50MTZ4OF90IF9fcmV0XzM1MTsgXAogIF9fcmV0XzM1MSA9IHZzZXRxX2xhbmVfdTE2KHZnZXRfbGFuZV91MTYoX19zMl8zNTEsIF9fcDNfMzUxKSwgX19zMF8zNTEsIF9fcDFfMzUxKTsgXAogIF9fcmV0XzM1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3UxNihfX3AwXzM1MiwgX19wMV8zNTIsIF9fcDJfMzUyLCBfX3AzXzM1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzM1MiA9IF9fcDBfMzUyOyBcCiAgdWludDE2eDRfdCBfX3MyXzM1MiA9IF9fcDJfMzUyOyBcCiAgdWludDE2eDhfdCBfX3JldjBfMzUyOyAgX19yZXYwXzM1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzUyLCBfX3MwXzM1MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml8zNTI7ICBfX3JldjJfMzUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNTIsIF9fczJfMzUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfMzUyOyBcCiAgX19yZXRfMzUyID0gX19ub3N3YXBfdnNldHFfbGFuZV91MTYoX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3JldjJfMzUyLCBfX3AzXzM1MiksIF9fcmV2MF8zNTIsIF9fcDFfMzUyKTsgXAogIF9fcmV0XzM1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM1MiwgX19yZXRfMzUyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM1MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3M4KF9fcDBfMzUzLCBfX3AxXzM1MywgX19wMl8zNTMsIF9fcDNfMzUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zNTMgPSBfX3AwXzM1MzsgXAogIGludDh4OF90IF9fczJfMzUzID0gX19wMl8zNTM7IFwKICBpbnQ4eDE2X3QgX19yZXRfMzUzOyBcCiAgX19yZXRfMzUzID0gdnNldHFfbGFuZV9zOCh2Z2V0X2xhbmVfczgoX19zMl8zNTMsIF9fcDNfMzUzKSwgX19zMF8zNTMsIF9fcDFfMzUzKTsgXAogIF9fcmV0XzM1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3M4KF9fcDBfMzU0LCBfX3AxXzM1NCwgX19wMl8zNTQsIF9fcDNfMzU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zNTQgPSBfX3AwXzM1NDsgXAogIGludDh4OF90IF9fczJfMzU0ID0gX19wMl8zNTQ7IFwKICBpbnQ4eDE2X3QgX19yZXYwXzM1NDsgIF9fcmV2MF8zNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM1NCwgX19zMF8zNTQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXYyXzM1NDsgIF9fcmV2Ml8zNTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM1NCwgX19zMl8zNTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzM1NDsgXAogIF9fcmV0XzM1NCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfczgoX19ub3N3YXBfdmdldF9sYW5lX3M4KF9fcmV2Ml8zNTQsIF9fcDNfMzU0KSwgX19yZXYwXzM1NCwgX19wMV8zNTQpOyBcCiAgX19yZXRfMzU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzU0LCBfX3JldF8zNTQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzU0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfZjMyKF9fcDBfMzU1LCBfX3AxXzM1NSwgX19wMl8zNTUsIF9fcDNfMzU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzM1NSA9IF9fcDBfMzU1OyBcCiAgZmxvYXQzMngyX3QgX19zMl8zNTUgPSBfX3AyXzM1NTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzM1NTsgXAogIF9fcmV0XzM1NSA9IHZzZXRxX2xhbmVfZjMyKHZnZXRfbGFuZV9mMzIoX19zMl8zNTUsIF9fcDNfMzU1KSwgX19zMF8zNTUsIF9fcDFfMzU1KTsgXAogIF9fcmV0XzM1NTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX2YzMihfX3AwXzM1NiwgX19wMV8zNTYsIF9fcDJfMzU2LCBfX3AzXzM1NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zNTYgPSBfX3AwXzM1NjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMzU2ID0gX19wMl8zNTY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMzU2OyAgX19yZXYwXzM1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzU2LCBfX3MwXzM1NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMzU2OyAgX19yZXYyXzM1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzU2LCBfX3MyXzM1NiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zNTY7IFwKICBfX3JldF8zNTYgPSBfX25vc3dhcF92c2V0cV9sYW5lX2YzMihfX25vc3dhcF92Z2V0X2xhbmVfZjMyKF9fcmV2Ml8zNTYsIF9fcDNfMzU2KSwgX19yZXYwXzM1NiwgX19wMV8zNTYpOyBcCiAgX19yZXRfMzU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzU2LCBfX3JldF8zNTYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVfczMyKF9fcDBfMzU3LCBfX3AxXzM1NywgX19wMl8zNTcsIF9fcDNfMzU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF8zNTcgPSBfX3AwXzM1NzsgXAogIGludDMyeDJfdCBfX3MyXzM1NyA9IF9fcDJfMzU3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzM1NzsgXAogIF9fcmV0XzM1NyA9IHZzZXRxX2xhbmVfczMyKHZnZXRfbGFuZV9zMzIoX19zMl8zNTcsIF9fcDNfMzU3KSwgX19zMF8zNTcsIF9fcDFfMzU3KTsgXAogIF9fcmV0XzM1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lX3MzMihfX3AwXzM1OCwgX19wMV8zNTgsIF9fcDJfMzU4LCBfX3AzXzM1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfMzU4ID0gX19wMF8zNTg7IFwKICBpbnQzMngyX3QgX19zMl8zNTggPSBfX3AyXzM1ODsgXAogIGludDMyeDRfdCBfX3JldjBfMzU4OyAgX19yZXYwXzM1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzU4LCBfX3MwXzM1OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzM1ODsgIF9fcmV2Ml8zNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM1OCwgX19zMl8zNTgsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzM1ODsgXAogIF9fcmV0XzM1OCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfczMyKF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19yZXYyXzM1OCwgX19wM18zNTgpLCBfX3JldjBfMzU4LCBfX3AxXzM1OCk7IFwKICBfX3JldF8zNTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNTgsIF9fcmV0XzM1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9zNjQoX19wMF8zNTksIF9fcDFfMzU5LCBfX3AyXzM1OSwgX19wM18zNTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzM1OSA9IF9fcDBfMzU5OyBcCiAgaW50NjR4MV90IF9fczJfMzU5ID0gX19wMl8zNTk7IFwKICBpbnQ2NHgyX3QgX19yZXRfMzU5OyBcCiAgX19yZXRfMzU5ID0gdnNldHFfbGFuZV9zNjQodmdldF9sYW5lX3M2NChfX3MyXzM1OSwgX19wM18zNTkpLCBfX3MwXzM1OSwgX19wMV8zNTkpOyBcCiAgX19yZXRfMzU5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfczY0KF9fcDBfMzYwLCBfX3AxXzM2MCwgX19wMl8zNjAsIF9fcDNfMzYwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF8zNjAgPSBfX3AwXzM2MDsgXAogIGludDY0eDFfdCBfX3MyXzM2MCA9IF9fcDJfMzYwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF8zNjA7ICBfX3JldjBfMzYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNjAsIF9fczBfMzYwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF8zNjA7IFwKICBfX3JldF8zNjAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NCh2Z2V0X2xhbmVfczY0KF9fczJfMzYwLCBfX3AzXzM2MCksIF9fcmV2MF8zNjAsIF9fcDFfMzYwKTsgXAogIF9fcmV0XzM2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2MCwgX19yZXRfMzYwLCAxLCAwKTsgXAogIF9fcmV0XzM2MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lX3MxNihfX3AwXzM2MSwgX19wMV8zNjEsIF9fcDJfMzYxLCBfX3AzXzM2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfMzYxID0gX19wMF8zNjE7IFwKICBpbnQxNng0X3QgX19zMl8zNjEgPSBfX3AyXzM2MTsgXAogIGludDE2eDhfdCBfX3JldF8zNjE7IFwKICBfX3JldF8zNjEgPSB2c2V0cV9sYW5lX3MxNih2Z2V0X2xhbmVfczE2KF9fczJfMzYxLCBfX3AzXzM2MSksIF9fczBfMzYxLCBfX3AxXzM2MSk7IFwKICBfX3JldF8zNjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZV9zMTYoX19wMF8zNjIsIF9fcDFfMzYyLCBfX3AyXzM2MiwgX19wM18zNjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzM2MiA9IF9fcDBfMzYyOyBcCiAgaW50MTZ4NF90IF9fczJfMzYyID0gX19wMl8zNjI7IFwKICBpbnQxNng4X3QgX19yZXYwXzM2MjsgIF9fcmV2MF8zNjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2MiwgX19zMF8zNjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml8zNjI7ICBfX3JldjJfMzYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zNjIsIF9fczJfMzYyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF8zNjI7IFwKICBfX3JldF8zNjIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNihfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2Ml8zNjIsIF9fcDNfMzYyKSwgX19yZXYwXzM2MiwgX19wMV8zNjIpOyBcCiAgX19yZXRfMzYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzYyLCBfX3JldF8zNjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzYyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZV9wOChfX3AwXzM2MywgX19wMV8zNjMsIF9fcDJfMzYzLCBfX3AzXzM2MykgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczBfMzYzID0gX19wMF8zNjM7IFwKICBwb2x5OHg4X3QgX19zMl8zNjMgPSBfX3AyXzM2MzsgXAogIHBvbHk4eDhfdCBfX3JldF8zNjM7IFwKICBfX3JldF8zNjMgPSB2c2V0X2xhbmVfcDgodmdldF9sYW5lX3A4KF9fczJfMzYzLCBfX3AzXzM2MyksIF9fczBfMzYzLCBfX3AxXzM2Myk7IFwKICBfX3JldF8zNjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lX3A4KF9fcDBfMzY0LCBfX3AxXzM2NCwgX19wMl8zNjQsIF9fcDNfMzY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF8zNjQgPSBfX3AwXzM2NDsgXAogIHBvbHk4eDhfdCBfX3MyXzM2NCA9IF9fcDJfMzY0OyBcCiAgcG9seTh4OF90IF9fcmV2MF8zNjQ7ICBfX3JldjBfMzY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNjQsIF9fczBfMzY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDhfdCBfX3JldjJfMzY0OyAgX19yZXYyXzM2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzY0LCBfX3MyXzM2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBwb2x5OHg4X3QgX19yZXRfMzY0OyBcCiAgX19yZXRfMzY0ID0gX19ub3N3YXBfdnNldF9sYW5lX3A4KF9fbm9zd2FwX3ZnZXRfbGFuZV9wOChfX3JldjJfMzY0LCBfX3AzXzM2NCksIF9fcmV2MF8zNjQsIF9fcDFfMzY0KTsgXAogIF9fcmV0XzM2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2NCwgX19yZXRfMzY0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM2NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfcDE2KF9fcDBfMzY1LCBfX3AxXzM2NSwgX19wMl8zNjUsIF9fcDNfMzY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfMzY1ID0gX19wMF8zNjU7IFwKICBwb2x5MTZ4NF90IF9fczJfMzY1ID0gX19wMl8zNjU7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzM2NTsgXAogIF9fcmV0XzM2NSA9IHZzZXRfbGFuZV9wMTYodmdldF9sYW5lX3AxNihfX3MyXzM2NSwgX19wM18zNjUpLCBfX3MwXzM2NSwgX19wMV8zNjUpOyBcCiAgX19yZXRfMzY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9wMTYoX19wMF8zNjYsIF9fcDFfMzY2LCBfX3AyXzM2NiwgX19wM18zNjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMF8zNjYgPSBfX3AwXzM2NjsgXAogIHBvbHkxNng0X3QgX19zMl8zNjYgPSBfX3AyXzM2NjsgXAogIHBvbHkxNng0X3QgX19yZXYwXzM2NjsgIF9fcmV2MF8zNjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM2NiwgX19zMF8zNjYsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldjJfMzY2OyAgX19yZXYyXzM2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzY2LCBfX3MyXzM2NiwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzM2NjsgXAogIF9fcmV0XzM2NiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9wMTYoX19ub3N3YXBfdmdldF9sYW5lX3AxNihfX3JldjJfMzY2LCBfX3AzXzM2NiksIF9fcmV2MF8zNjYsIF9fcDFfMzY2KTsgXAogIF9fcmV0XzM2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM2NiwgX19yZXRfMzY2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM2NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfdTgoX19wMF8zNjcsIF9fcDFfMzY3LCBfX3AyXzM2NywgX19wM18zNjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzM2NyA9IF9fcDBfMzY3OyBcCiAgdWludDh4OF90IF9fczJfMzY3ID0gX19wMl8zNjc7IFwKICB1aW50OHg4X3QgX19yZXRfMzY3OyBcCiAgX19yZXRfMzY3ID0gdnNldF9sYW5lX3U4KHZnZXRfbGFuZV91OChfX3MyXzM2NywgX19wM18zNjcpLCBfX3MwXzM2NywgX19wMV8zNjcpOyBcCiAgX19yZXRfMzY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV91OChfX3AwXzM2OCwgX19wMV8zNjgsIF9fcDJfMzY4LCBfX3AzXzM2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfMzY4ID0gX19wMF8zNjg7IFwKICB1aW50OHg4X3QgX19zMl8zNjggPSBfX3AyXzM2ODsgXAogIHVpbnQ4eDhfdCBfX3JldjBfMzY4OyAgX19yZXYwXzM2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzY4LCBfX3MwXzM2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYyXzM2ODsgIF9fcmV2Ml8zNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM2OCwgX19zMl8zNjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0XzM2ODsgXAogIF9fcmV0XzM2OCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91OChfX25vc3dhcF92Z2V0X2xhbmVfdTgoX19yZXYyXzM2OCwgX19wM18zNjgpLCBfX3JldjBfMzY4LCBfX3AxXzM2OCk7IFwKICBfX3JldF8zNjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNjgsIF9fcmV0XzM2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zNjg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3UzMihfX3AwXzM2OSwgX19wMV8zNjksIF9fcDJfMzY5LCBfX3AzXzM2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzM2OSA9IF9fcDBfMzY5OyBcCiAgdWludDMyeDJfdCBfX3MyXzM2OSA9IF9fcDJfMzY5OyBcCiAgdWludDMyeDJfdCBfX3JldF8zNjk7IFwKICBfX3JldF8zNjkgPSB2c2V0X2xhbmVfdTMyKHZnZXRfbGFuZV91MzIoX19zMl8zNjksIF9fcDNfMzY5KSwgX19zMF8zNjksIF9fcDFfMzY5KTsgXAogIF9fcmV0XzM2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfdTMyKF9fcDBfMzcwLCBfX3AxXzM3MCwgX19wMl8zNzAsIF9fcDNfMzcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfMzcwID0gX19wMF8zNzA7IFwKICB1aW50MzJ4Ml90IF9fczJfMzcwID0gX19wMl8zNzA7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF8zNzA7ICBfX3JldjBfMzcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNzAsIF9fczBfMzcwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzM3MDsgIF9fcmV2Ml8zNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM3MCwgX19zMl8zNzAsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF8zNzA7IFwKICBfX3JldF8zNzAgPSBfX25vc3dhcF92c2V0X2xhbmVfdTMyKF9fbm9zd2FwX3ZnZXRfbGFuZV91MzIoX19yZXYyXzM3MCwgX19wM18zNzApLCBfX3JldjBfMzcwLCBfX3AxXzM3MCk7IFwKICBfX3JldF8zNzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNzAsIF9fcmV0XzM3MCwgMSwgMCk7IFwKICBfX3JldF8zNzA7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZjb3B5X2xhbmVfdTY0KF9fcDBfMzcxLCBfX3AxXzM3MSwgX19wMl8zNzEsIF9fcDNfMzcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczBfMzcxID0gX19wMF8zNzE7IFwKICB1aW50NjR4MV90IF9fczJfMzcxID0gX19wMl8zNzE7IFwKICB1aW50NjR4MV90IF9fcmV0XzM3MTsgXAogIF9fcmV0XzM3MSA9IHZzZXRfbGFuZV91NjQodmdldF9sYW5lX3U2NChfX3MyXzM3MSwgX19wM18zNzEpLCBfX3MwXzM3MSwgX19wMV8zNzEpOyBcCiAgX19yZXRfMzcxOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfdTE2KF9fcDBfMzcyLCBfX3AxXzM3MiwgX19wMl8zNzIsIF9fcDNfMzcyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfMzcyID0gX19wMF8zNzI7IFwKICB1aW50MTZ4NF90IF9fczJfMzcyID0gX19wMl8zNzI7IFwKICB1aW50MTZ4NF90IF9fcmV0XzM3MjsgXAogIF9fcmV0XzM3MiA9IHZzZXRfbGFuZV91MTYodmdldF9sYW5lX3UxNihfX3MyXzM3MiwgX19wM18zNzIpLCBfX3MwXzM3MiwgX19wMV8zNzIpOyBcCiAgX19yZXRfMzcyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV91MTYoX19wMF8zNzMsIF9fcDFfMzczLCBfX3AyXzM3MywgX19wM18zNzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF8zNzMgPSBfX3AwXzM3MzsgXAogIHVpbnQxNng0X3QgX19zMl8zNzMgPSBfX3AyXzM3MzsgXAogIHVpbnQxNng0X3QgX19yZXYwXzM3MzsgIF9fcmV2MF8zNzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM3MywgX19zMF8zNzMsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjJfMzczOyAgX19yZXYyXzM3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzczLCBfX3MyXzM3MywgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzM3MzsgXAogIF9fcmV0XzM3MyA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91MTYoX19ub3N3YXBfdmdldF9sYW5lX3UxNihfX3JldjJfMzczLCBfX3AzXzM3MyksIF9fcmV2MF8zNzMsIF9fcDFfMzczKTsgXAogIF9fcmV0XzM3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM3MywgX19yZXRfMzczLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM3MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVfczgoX19wMF8zNzQsIF9fcDFfMzc0LCBfX3AyXzM3NCwgX19wM18zNzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfMzc0ID0gX19wMF8zNzQ7IFwKICBpbnQ4eDhfdCBfX3MyXzM3NCA9IF9fcDJfMzc0OyBcCiAgaW50OHg4X3QgX19yZXRfMzc0OyBcCiAgX19yZXRfMzc0ID0gdnNldF9sYW5lX3M4KHZnZXRfbGFuZV9zOChfX3MyXzM3NCwgX19wM18zNzQpLCBfX3MwXzM3NCwgX19wMV8zNzQpOyBcCiAgX19yZXRfMzc0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZV9zOChfX3AwXzM3NSwgX19wMV8zNzUsIF9fcDJfMzc1LCBfX3AzXzM3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF8zNzUgPSBfX3AwXzM3NTsgXAogIGludDh4OF90IF9fczJfMzc1ID0gX19wMl8zNzU7IFwKICBpbnQ4eDhfdCBfX3JldjBfMzc1OyAgX19yZXYwXzM3NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzc1LCBfX3MwXzM3NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjJfMzc1OyAgX19yZXYyXzM3NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc1LCBfX3MyXzM3NSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldF8zNzU7IFwKICBfX3JldF8zNzUgPSBfX25vc3dhcF92c2V0X2xhbmVfczgoX19ub3N3YXBfdmdldF9sYW5lX3M4KF9fcmV2Ml8zNzUsIF9fcDNfMzc1KSwgX19yZXYwXzM3NSwgX19wMV8zNzUpOyBcCiAgX19yZXRfMzc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzc1LCBfX3JldF8zNzUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzc1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZV9mMzIoX19wMF8zNzYsIF9fcDFfMzc2LCBfX3AyXzM3NiwgX19wM18zNzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfMzc2ID0gX19wMF8zNzY7IFwKICBmbG9hdDMyeDJfdCBfX3MyXzM3NiA9IF9fcDJfMzc2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfMzc2OyBcCiAgX19yZXRfMzc2ID0gdnNldF9sYW5lX2YzMih2Z2V0X2xhbmVfZjMyKF9fczJfMzc2LCBfX3AzXzM3NiksIF9fczBfMzc2LCBfX3AxXzM3Nik7IFwKICBfX3JldF8zNzY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lX2YzMihfX3AwXzM3NywgX19wMV8zNzcsIF9fcDJfMzc3LCBfX3AzXzM3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF8zNzcgPSBfX3AwXzM3NzsgXAogIGZsb2F0MzJ4Ml90IF9fczJfMzc3ID0gX19wMl8zNzc7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfMzc3OyAgX19yZXYwXzM3NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzc3LCBfX3MwXzM3NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfMzc3OyAgX19yZXYyXzM3NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc3LCBfX3MyXzM3NywgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF8zNzc7IFwKICBfX3JldF8zNzcgPSBfX25vc3dhcF92c2V0X2xhbmVfZjMyKF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYyXzM3NywgX19wM18zNzcpLCBfX3JldjBfMzc3LCBfX3AxXzM3Nyk7IFwKICBfX3JldF8zNzcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zNzcsIF9fcmV0XzM3NywgMSwgMCk7IFwKICBfX3JldF8zNzc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3MzMihfX3AwXzM3OCwgX19wMV8zNzgsIF9fcDJfMzc4LCBfX3AzXzM3OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfMzc4ID0gX19wMF8zNzg7IFwKICBpbnQzMngyX3QgX19zMl8zNzggPSBfX3AyXzM3ODsgXAogIGludDMyeDJfdCBfX3JldF8zNzg7IFwKICBfX3JldF8zNzggPSB2c2V0X2xhbmVfczMyKHZnZXRfbGFuZV9zMzIoX19zMl8zNzgsIF9fcDNfMzc4KSwgX19zMF8zNzgsIF9fcDFfMzc4KTsgXAogIF9fcmV0XzM3ODsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfczMyKF9fcDBfMzc5LCBfX3AxXzM3OSwgX19wMl8zNzksIF9fcDNfMzc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF8zNzkgPSBfX3AwXzM3OTsgXAogIGludDMyeDJfdCBfX3MyXzM3OSA9IF9fcDJfMzc5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF8zNzk7ICBfX3JldjBfMzc5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zNzksIF9fczBfMzc5LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfMzc5OyAgX19yZXYyXzM3OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzc5LCBfX3MyXzM3OSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfMzc5OyBcCiAgX19yZXRfMzc5ID0gX19ub3N3YXBfdnNldF9sYW5lX3MzMihfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2Ml8zNzksIF9fcDNfMzc5KSwgX19yZXYwXzM3OSwgX19wMV8zNzkpOyBcCiAgX19yZXRfMzc5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzc5LCBfX3JldF8zNzksIDEsIDApOyBcCiAgX19yZXRfMzc5OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y29weV9sYW5lX3M2NChfX3AwXzM4MCwgX19wMV8zODAsIF9fcDJfMzgwLCBfX3AzXzM4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfMzgwID0gX19wMF8zODA7IFwKICBpbnQ2NHgxX3QgX19zMl8zODAgPSBfX3AyXzM4MDsgXAogIGludDY0eDFfdCBfX3JldF8zODA7IFwKICBfX3JldF8zODAgPSB2c2V0X2xhbmVfczY0KHZnZXRfbGFuZV9zNjQoX19zMl8zODAsIF9fcDNfMzgwKSwgX19zMF8zODAsIF9fcDFfMzgwKTsgXAogIF9fcmV0XzM4MDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lX3MxNihfX3AwXzM4MSwgX19wMV8zODEsIF9fcDJfMzgxLCBfX3AzXzM4MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfMzgxID0gX19wMF8zODE7IFwKICBpbnQxNng0X3QgX19zMl8zODEgPSBfX3AyXzM4MTsgXAogIGludDE2eDRfdCBfX3JldF8zODE7IFwKICBfX3JldF8zODEgPSB2c2V0X2xhbmVfczE2KHZnZXRfbGFuZV9zMTYoX19zMl8zODEsIF9fcDNfMzgxKSwgX19zMF8zODEsIF9fcDFfMzgxKTsgXAogIF9fcmV0XzM4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVfczE2KF9fcDBfMzgyLCBfX3AxXzM4MiwgX19wMl8zODIsIF9fcDNfMzgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF8zODIgPSBfX3AwXzM4MjsgXAogIGludDE2eDRfdCBfX3MyXzM4MiA9IF9fcDJfMzgyOyBcCiAgaW50MTZ4NF90IF9fcmV2MF8zODI7ICBfX3JldjBfMzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODIsIF9fczBfMzgyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfMzgyOyAgX19yZXYyXzM4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzgyLCBfX3MyXzM4MiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfMzgyOyBcCiAgX19yZXRfMzgyID0gX19ub3N3YXBfdnNldF9sYW5lX3MxNihfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2Ml8zODIsIF9fcDNfMzgyKSwgX19yZXYwXzM4MiwgX19wMV8zODIpOyBcCiAgX19yZXRfMzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzgyLCBfX3JldF8zODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3A4KF9fcDBfMzgzLCBfX3AxXzM4MywgX19wMl8zODMsIF9fcDNfMzgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfMzgzID0gX19wMF8zODM7IFwKICBwb2x5OHgxNl90IF9fczJfMzgzID0gX19wMl8zODM7IFwKICBwb2x5OHgxNl90IF9fcmV0XzM4MzsgXAogIF9fcmV0XzM4MyA9IHZzZXRxX2xhbmVfcDgodmdldHFfbGFuZV9wOChfX3MyXzM4MywgX19wM18zODMpLCBfX3MwXzM4MywgX19wMV8zODMpOyBcCiAgX19yZXRfMzgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3A4KF9fcDBfMzg0LCBfX3AxXzM4NCwgX19wMl8zODQsIF9fcDNfMzg0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfMzg0ID0gX19wMF8zODQ7IFwKICBwb2x5OHgxNl90IF9fczJfMzg0ID0gX19wMl8zODQ7IFwKICBwb2x5OHgxNl90IF9fcmV2MF8zODQ7ICBfX3JldjBfMzg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODQsIF9fczBfMzg0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYyXzM4NDsgIF9fcmV2Ml8zODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM4NCwgX19zMl8zODQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZfdCBfX3JldF8zODQ7IFwKICBfX3JldF8zODQgPSBfX25vc3dhcF92c2V0cV9sYW5lX3A4KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDgoX19yZXYyXzM4NCwgX19wM18zODQpLCBfX3JldjBfMzg0LCBfX3AxXzM4NCk7IFwKICBfX3JldF8zODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zODQsIF9fcmV0XzM4NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfcDE2KF9fcDBfMzg1LCBfX3AxXzM4NSwgX19wMl8zODUsIF9fcDNfMzg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzg1ID0gX19wMF8zODU7IFwKICBwb2x5MTZ4OF90IF9fczJfMzg1ID0gX19wMl8zODU7IFwKICBwb2x5MTZ4OF90IF9fcmV0XzM4NTsgXAogIF9fcmV0XzM4NSA9IHZzZXRxX2xhbmVfcDE2KHZnZXRxX2xhbmVfcDE2KF9fczJfMzg1LCBfX3AzXzM4NSksIF9fczBfMzg1LCBfX3AxXzM4NSk7IFwKICBfX3JldF8zODU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfcDE2KF9fcDBfMzg2LCBfX3AxXzM4NiwgX19wMl8zODYsIF9fcDNfMzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfMzg2ID0gX19wMF8zODY7IFwKICBwb2x5MTZ4OF90IF9fczJfMzg2ID0gX19wMl8zODY7IFwKICBwb2x5MTZ4OF90IF9fcmV2MF8zODY7ICBfX3JldjBfMzg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zODYsIF9fczBfMzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXYyXzM4NjsgIF9fcmV2Ml8zODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM4NiwgX19zMl8zODYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDhfdCBfX3JldF8zODY7IFwKICBfX3JldF8zODYgPSBfX25vc3dhcF92c2V0cV9sYW5lX3AxNihfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3JldjJfMzg2LCBfX3AzXzM4NiksIF9fcmV2MF8zODYsIF9fcDFfMzg2KTsgXAogIF9fcmV0XzM4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM4NiwgX19yZXRfMzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV91OChfX3AwXzM4NywgX19wMV8zODcsIF9fcDJfMzg3LCBfX3AzXzM4NykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzM4NyA9IF9fcDBfMzg3OyBcCiAgdWludDh4MTZfdCBfX3MyXzM4NyA9IF9fcDJfMzg3OyBcCiAgdWludDh4MTZfdCBfX3JldF8zODc7IFwKICBfX3JldF8zODcgPSB2c2V0cV9sYW5lX3U4KHZnZXRxX2xhbmVfdTgoX19zMl8zODcsIF9fcDNfMzg3KSwgX19zMF8zODcsIF9fcDFfMzg3KTsgXAogIF9fcmV0XzM4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV91OChfX3AwXzM4OCwgX19wMV8zODgsIF9fcDJfMzg4LCBfX3AzXzM4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzM4OCA9IF9fcDBfMzg4OyBcCiAgdWludDh4MTZfdCBfX3MyXzM4OCA9IF9fcDJfMzg4OyBcCiAgdWludDh4MTZfdCBfX3JldjBfMzg4OyAgX19yZXYwXzM4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzg4LCBfX3MwXzM4OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV2Ml8zODg7ICBfX3JldjJfMzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zODgsIF9fczJfMzg4LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfMzg4OyBcCiAgX19yZXRfMzg4ID0gX19ub3N3YXBfdnNldHFfbGFuZV91OChfX25vc3dhcF92Z2V0cV9sYW5lX3U4KF9fcmV2Ml8zODgsIF9fcDNfMzg4KSwgX19yZXYwXzM4OCwgX19wMV8zODgpOyBcCiAgX19yZXRfMzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzg4LCBfX3JldF8zODgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzg4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3UzMihfX3AwXzM4OSwgX19wMV8zODksIF9fcDJfMzg5LCBfX3AzXzM4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzM4OSA9IF9fcDBfMzg5OyBcCiAgdWludDMyeDRfdCBfX3MyXzM4OSA9IF9fcDJfMzg5OyBcCiAgdWludDMyeDRfdCBfX3JldF8zODk7IFwKICBfX3JldF8zODkgPSB2c2V0cV9sYW5lX3UzMih2Z2V0cV9sYW5lX3UzMihfX3MyXzM4OSwgX19wM18zODkpLCBfX3MwXzM4OSwgX19wMV8zODkpOyBcCiAgX19yZXRfMzg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3UzMihfX3AwXzM5MCwgX19wMV8zOTAsIF9fcDJfMzkwLCBfX3AzXzM5MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzM5MCA9IF9fcDBfMzkwOyBcCiAgdWludDMyeDRfdCBfX3MyXzM5MCA9IF9fcDJfMzkwOyBcCiAgdWludDMyeDRfdCBfX3JldjBfMzkwOyAgX19yZXYwXzM5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzkwLCBfX3MwXzM5MCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml8zOTA7ICBfX3JldjJfMzkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl8zOTAsIF9fczJfMzkwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfMzkwOyBcCiAgX19yZXRfMzkwID0gX19ub3N3YXBfdnNldHFfbGFuZV91MzIoX19ub3N3YXBfdmdldHFfbGFuZV91MzIoX19yZXYyXzM5MCwgX19wM18zOTApLCBfX3JldjBfMzkwLCBfX3AxXzM5MCk7IFwKICBfX3JldF8zOTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF8zOTAsIF9fcmV0XzM5MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF8zOTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZXFfdTY0KF9fcDBfMzkxLCBfX3AxXzM5MSwgX19wMl8zOTEsIF9fcDNfMzkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzkxID0gX19wMF8zOTE7IFwKICB1aW50NjR4Ml90IF9fczJfMzkxID0gX19wMl8zOTE7IFwKICB1aW50NjR4Ml90IF9fcmV0XzM5MTsgXAogIF9fcmV0XzM5MSA9IHZzZXRxX2xhbmVfdTY0KHZnZXRxX2xhbmVfdTY0KF9fczJfMzkxLCBfX3AzXzM5MSksIF9fczBfMzkxLCBfX3AxXzM5MSk7IFwKICBfX3JldF8zOTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weXFfbGFuZXFfdTY0KF9fcDBfMzkyLCBfX3AxXzM5MiwgX19wMl8zOTIsIF9fcDNfMzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfMzkyID0gX19wMF8zOTI7IFwKICB1aW50NjR4Ml90IF9fczJfMzkyID0gX19wMl8zOTI7IFwKICB1aW50NjR4Ml90IF9fcmV2MF8zOTI7ICBfX3JldjBfMzkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zOTIsIF9fczBfMzkyLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYyXzM5MjsgIF9fcmV2Ml8zOTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzM5MiwgX19zMl8zOTIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF8zOTI7IFwKICBfX3JldF8zOTIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3U2NChfX25vc3dhcF92Z2V0cV9sYW5lX3U2NChfX3JldjJfMzkyLCBfX3AzXzM5MiksIF9fcmV2MF8zOTIsIF9fcDFfMzkyKTsgXAogIF9fcmV0XzM5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM5MiwgX19yZXRfMzkyLCAxLCAwKTsgXAogIF9fcmV0XzM5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV91MTYoX19wMF8zOTMsIF9fcDFfMzkzLCBfX3AyXzM5MywgX19wM18zOTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF8zOTMgPSBfX3AwXzM5MzsgXAogIHVpbnQxNng4X3QgX19zMl8zOTMgPSBfX3AyXzM5MzsgXAogIHVpbnQxNng4X3QgX19yZXRfMzkzOyBcCiAgX19yZXRfMzkzID0gdnNldHFfbGFuZV91MTYodmdldHFfbGFuZV91MTYoX19zMl8zOTMsIF9fcDNfMzkzKSwgX19zMF8zOTMsIF9fcDFfMzkzKTsgXAogIF9fcmV0XzM5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV91MTYoX19wMF8zOTQsIF9fcDFfMzk0LCBfX3AyXzM5NCwgX19wM18zOTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF8zOTQgPSBfX3AwXzM5NDsgXAogIHVpbnQxNng4X3QgX19zMl8zOTQgPSBfX3AyXzM5NDsgXAogIHVpbnQxNng4X3QgX19yZXYwXzM5NDsgIF9fcmV2MF8zOTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzM5NCwgX19zMF8zOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfMzk0OyAgX19yZXYyXzM5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk0LCBfX3MyXzM5NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzM5NDsgXAogIF9fcmV0XzM5NCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfdTE2KF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTE2KF9fcmV2Ml8zOTQsIF9fcDNfMzk0KSwgX19yZXYwXzM5NCwgX19wMV8zOTQpOyBcCiAgX19yZXRfMzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzk0LCBfX3JldF8zOTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3M4KF9fcDBfMzk1LCBfX3AxXzM5NSwgX19wMl8zOTUsIF9fcDNfMzk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zOTUgPSBfX3AwXzM5NTsgXAogIGludDh4MTZfdCBfX3MyXzM5NSA9IF9fcDJfMzk1OyBcCiAgaW50OHgxNl90IF9fcmV0XzM5NTsgXAogIF9fcmV0XzM5NSA9IHZzZXRxX2xhbmVfczgodmdldHFfbGFuZV9zOChfX3MyXzM5NSwgX19wM18zOTUpLCBfX3MwXzM5NSwgX19wMV8zOTUpOyBcCiAgX19yZXRfMzk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX3M4KF9fcDBfMzk2LCBfX3AxXzM5NiwgX19wMl8zOTYsIF9fcDNfMzk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF8zOTYgPSBfX3AwXzM5NjsgXAogIGludDh4MTZfdCBfX3MyXzM5NiA9IF9fcDJfMzk2OyBcCiAgaW50OHgxNl90IF9fcmV2MF8zOTY7ICBfX3JldjBfMzk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF8zOTYsIF9fczBfMzk2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldjJfMzk2OyAgX19yZXYyXzM5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk2LCBfX3MyXzM5NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfMzk2OyBcCiAgX19yZXRfMzk2ID0gX19ub3N3YXBfdnNldHFfbGFuZV9zOChfX25vc3dhcF92Z2V0cV9sYW5lX3M4KF9fcmV2Ml8zOTYsIF9fcDNfMzk2KSwgX19yZXYwXzM5NiwgX19wMV8zOTYpOyBcCiAgX19yZXRfMzk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfMzk2LCBfX3JldF8zOTYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfMzk2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2YzMihfX3AwXzM5NywgX19wMV8zOTcsIF9fcDJfMzk3LCBfX3AzXzM5NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zOTcgPSBfX3AwXzM5NzsgXAogIGZsb2F0MzJ4NF90IF9fczJfMzk3ID0gX19wMl8zOTc7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zOTc7IFwKICBfX3JldF8zOTcgPSB2c2V0cV9sYW5lX2YzMih2Z2V0cV9sYW5lX2YzMihfX3MyXzM5NywgX19wM18zOTcpLCBfX3MwXzM5NywgX19wMV8zOTcpOyBcCiAgX19yZXRfMzk3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2YzMihfX3AwXzM5OCwgX19wMV8zOTgsIF9fcDJfMzk4LCBfX3AzXzM5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF8zOTggPSBfX3AwXzM5ODsgXAogIGZsb2F0MzJ4NF90IF9fczJfMzk4ID0gX19wMl8zOTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfMzk4OyAgX19yZXYwXzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfMzk4LCBfX3MwXzM5OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfMzk4OyAgX19yZXYyXzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfMzk4LCBfX3MyXzM5OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF8zOTg7IFwKICBfX3JldF8zOTggPSBfX25vc3dhcF92c2V0cV9sYW5lX2YzMihfX25vc3dhcF92Z2V0cV9sYW5lX2YzMihfX3JldjJfMzk4LCBfX3AzXzM5OCksIF9fcmV2MF8zOTgsIF9fcDFfMzk4KTsgXAogIF9fcmV0XzM5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzM5OCwgX19yZXRfMzk4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzM5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMzIoX19wMF8zOTksIF9fcDFfMzk5LCBfX3AyXzM5OSwgX19wM18zOTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzM5OSA9IF9fcDBfMzk5OyBcCiAgaW50MzJ4NF90IF9fczJfMzk5ID0gX19wMl8zOTk7IFwKICBpbnQzMng0X3QgX19yZXRfMzk5OyBcCiAgX19yZXRfMzk5ID0gdnNldHFfbGFuZV9zMzIodmdldHFfbGFuZV9zMzIoX19zMl8zOTksIF9fcDNfMzk5KSwgX19zMF8zOTksIF9fcDFfMzk5KTsgXAogIF9fcmV0XzM5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMzIoX19wMF80MDAsIF9fcDFfNDAwLCBfX3AyXzQwMCwgX19wM180MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzQwMCA9IF9fcDBfNDAwOyBcCiAgaW50MzJ4NF90IF9fczJfNDAwID0gX19wMl80MDA7IFwKICBpbnQzMng0X3QgX19yZXYwXzQwMDsgIF9fcmV2MF80MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwMCwgX19zMF80MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml80MDA7ICBfX3JldjJfNDAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDAsIF9fczJfNDAwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF80MDA7IFwKICBfX3JldF80MDAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MzMihfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfNDAwLCBfX3AzXzQwMCksIF9fcmV2MF80MDAsIF9fcDFfNDAwKTsgXAogIF9fcmV0XzQwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwMCwgX19yZXRfNDAwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zNjQoX19wMF80MDEsIF9fcDFfNDAxLCBfX3AyXzQwMSwgX19wM180MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQwMSA9IF9fcDBfNDAxOyBcCiAgaW50NjR4Ml90IF9fczJfNDAxID0gX19wMl80MDE7IFwKICBpbnQ2NHgyX3QgX19yZXRfNDAxOyBcCiAgX19yZXRfNDAxID0gdnNldHFfbGFuZV9zNjQodmdldHFfbGFuZV9zNjQoX19zMl80MDEsIF9fcDNfNDAxKSwgX19zMF80MDEsIF9fcDFfNDAxKTsgXAogIF9fcmV0XzQwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zNjQoX19wMF80MDIsIF9fcDFfNDAyLCBfX3AyXzQwMiwgX19wM180MDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQwMiA9IF9fcDBfNDAyOyBcCiAgaW50NjR4Ml90IF9fczJfNDAyID0gX19wMl80MDI7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzQwMjsgIF9fcmV2MF80MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwMiwgX19zMF80MDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2Ml80MDI7ICBfX3JldjJfNDAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDIsIF9fczJfNDAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF80MDI7IFwKICBfX3JldF80MDIgPSBfX25vc3dhcF92c2V0cV9sYW5lX3M2NChfX25vc3dhcF92Z2V0cV9sYW5lX3M2NChfX3JldjJfNDAyLCBfX3AzXzQwMiksIF9fcmV2MF80MDIsIF9fcDFfNDAyKTsgXAogIF9fcmV0XzQwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwMiwgX19yZXRfNDAyLCAxLCAwKTsgXAogIF9fcmV0XzQwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMTYoX19wMF80MDMsIF9fcDFfNDAzLCBfX3AyXzQwMywgX19wM180MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzQwMyA9IF9fcDBfNDAzOyBcCiAgaW50MTZ4OF90IF9fczJfNDAzID0gX19wMl80MDM7IFwKICBpbnQxNng4X3QgX19yZXRfNDAzOyBcCiAgX19yZXRfNDAzID0gdnNldHFfbGFuZV9zMTYodmdldHFfbGFuZV9zMTYoX19zMl80MDMsIF9fcDNfNDAzKSwgX19zMF80MDMsIF9fcDFfNDAzKTsgXAogIF9fcmV0XzQwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9zMTYoX19wMF80MDQsIF9fcDFfNDA0LCBfX3AyXzQwNCwgX19wM180MDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzQwNCA9IF9fcDBfNDA0OyBcCiAgaW50MTZ4OF90IF9fczJfNDA0ID0gX19wMl80MDQ7IFwKICBpbnQxNng4X3QgX19yZXYwXzQwNDsgIF9fcmV2MF80MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQwNCwgX19zMF80MDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml80MDQ7ICBfX3JldjJfNDA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDQsIF9fczJfNDA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF80MDQ7IFwKICBfX3JldF80MDQgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNihfX25vc3dhcF92Z2V0cV9sYW5lX3MxNihfX3JldjJfNDA0LCBfX3AzXzQwNCksIF9fcmV2MF80MDQsIF9fcDFfNDA0KTsgXAogIF9fcmV0XzQwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwNCwgX19yZXRfNDA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3A4KF9fcDBfNDA1LCBfX3AxXzQwNSwgX19wMl80MDUsIF9fcDNfNDA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHg4X3QgX19zMF80MDUgPSBfX3AwXzQwNTsgXAogIHBvbHk4eDE2X3QgX19zMl80MDUgPSBfX3AyXzQwNTsgXAogIHBvbHk4eDhfdCBfX3JldF80MDU7IFwKICBfX3JldF80MDUgPSB2c2V0X2xhbmVfcDgodmdldHFfbGFuZV9wOChfX3MyXzQwNSwgX19wM180MDUpLCBfX3MwXzQwNSwgX19wMV80MDUpOyBcCiAgX19yZXRfNDA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfcDgoX19wMF80MDYsIF9fcDFfNDA2LCBfX3AyXzQwNiwgX19wM180MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwXzQwNiA9IF9fcDBfNDA2OyBcCiAgcG9seTh4MTZfdCBfX3MyXzQwNiA9IF9fcDJfNDA2OyBcCiAgcG9seTh4OF90IF9fcmV2MF80MDY7ICBfX3JldjBfNDA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MDYsIF9fczBfNDA2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXYyXzQwNjsgIF9fcmV2Ml80MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQwNiwgX19zMl80MDYsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0XzQwNjsgXAogIF9fcmV0XzQwNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9wOChfX25vc3dhcF92Z2V0cV9sYW5lX3A4KF9fcmV2Ml80MDYsIF9fcDNfNDA2KSwgX19yZXYwXzQwNiwgX19wMV80MDYpOyBcCiAgX19yZXRfNDA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDA2LCBfX3JldF80MDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDA2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfcDE2KF9fcDBfNDA3LCBfX3AxXzQwNywgX19wMl80MDcsIF9fcDNfNDA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczBfNDA3ID0gX19wMF80MDc7IFwKICBwb2x5MTZ4OF90IF9fczJfNDA3ID0gX19wMl80MDc7IFwKICBwb2x5MTZ4NF90IF9fcmV0XzQwNzsgXAogIF9fcmV0XzQwNyA9IHZzZXRfbGFuZV9wMTYodmdldHFfbGFuZV9wMTYoX19zMl80MDcsIF9fcDNfNDA3KSwgX19zMF80MDcsIF9fcDFfNDA3KTsgXAogIF9fcmV0XzQwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3AxNihfX3AwXzQwOCwgX19wMV80MDgsIF9fcDJfNDA4LCBfX3AzXzQwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDRfdCBfX3MwXzQwOCA9IF9fcDBfNDA4OyBcCiAgcG9seTE2eDhfdCBfX3MyXzQwOCA9IF9fcDJfNDA4OyBcCiAgcG9seTE2eDRfdCBfX3JldjBfNDA4OyAgX19yZXYwXzQwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDA4LCBfX3MwXzQwOCwgMywgMiwgMSwgMCk7IFwKICBwb2x5MTZ4OF90IF9fcmV2Ml80MDg7ICBfX3JldjJfNDA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MDgsIF9fczJfNDA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng0X3QgX19yZXRfNDA4OyBcCiAgX19yZXRfNDA4ID0gX19ub3N3YXBfdnNldF9sYW5lX3AxNihfX25vc3dhcF92Z2V0cV9sYW5lX3AxNihfX3JldjJfNDA4LCBfX3AzXzQwOCksIF9fcmV2MF80MDgsIF9fcDFfNDA4KTsgXAogIF9fcmV0XzQwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQwOCwgX19yZXRfNDA4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQwODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3U4KF9fcDBfNDA5LCBfX3AxXzQwOSwgX19wMl80MDksIF9fcDNfNDA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF80MDkgPSBfX3AwXzQwOTsgXAogIHVpbnQ4eDE2X3QgX19zMl80MDkgPSBfX3AyXzQwOTsgXAogIHVpbnQ4eDhfdCBfX3JldF80MDk7IFwKICBfX3JldF80MDkgPSB2c2V0X2xhbmVfdTgodmdldHFfbGFuZV91OChfX3MyXzQwOSwgX19wM180MDkpLCBfX3MwXzQwOSwgX19wMV80MDkpOyBcCiAgX19yZXRfNDA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfdTgoX19wMF80MTAsIF9fcDFfNDEwLCBfX3AyXzQxMCwgX19wM180MTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzQxMCA9IF9fcDBfNDEwOyBcCiAgdWludDh4MTZfdCBfX3MyXzQxMCA9IF9fcDJfNDEwOyBcCiAgdWludDh4OF90IF9fcmV2MF80MTA7ICBfX3JldjBfNDEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MTAsIF9fczBfNDEwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYyXzQxMDsgIF9fcmV2Ml80MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxMCwgX19zMl80MTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4OF90IF9fcmV0XzQxMDsgXAogIF9fcmV0XzQxMCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91OChfX25vc3dhcF92Z2V0cV9sYW5lX3U4KF9fcmV2Ml80MTAsIF9fcDNfNDEwKSwgX19yZXYwXzQxMCwgX19wMV80MTApOyBcCiAgX19yZXRfNDEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDEwLCBfX3JldF80MTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfdTMyKF9fcDBfNDExLCBfX3AxXzQxMSwgX19wMl80MTEsIF9fcDNfNDExKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNDExID0gX19wMF80MTE7IFwKICB1aW50MzJ4NF90IF9fczJfNDExID0gX19wMl80MTE7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzQxMTsgXAogIF9fcmV0XzQxMSA9IHZzZXRfbGFuZV91MzIodmdldHFfbGFuZV91MzIoX19zMl80MTEsIF9fcDNfNDExKSwgX19zMF80MTEsIF9fcDFfNDExKTsgXAogIF9fcmV0XzQxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3UzMihfX3AwXzQxMiwgX19wMV80MTIsIF9fcDJfNDEyLCBfX3AzXzQxMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzQxMiA9IF9fcDBfNDEyOyBcCiAgdWludDMyeDRfdCBfX3MyXzQxMiA9IF9fcDJfNDEyOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNDEyOyAgX19yZXYwXzQxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDEyLCBfX3MwXzQxMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml80MTI7ICBfX3JldjJfNDEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MTIsIF9fczJfNDEyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNDEyOyBcCiAgX19yZXRfNDEyID0gX19ub3N3YXBfdnNldF9sYW5lX3UzMihfX25vc3dhcF92Z2V0cV9sYW5lX3UzMihfX3JldjJfNDEyLCBfX3AzXzQxMiksIF9fcmV2MF80MTIsIF9fcDFfNDEyKTsgXAogIF9fcmV0XzQxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQxMiwgX19yZXRfNDEyLCAxLCAwKTsgXAogIF9fcmV0XzQxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3U2NChfX3AwXzQxMywgX19wMV80MTMsIF9fcDJfNDEzLCBfX3AzXzQxMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwXzQxMyA9IF9fcDBfNDEzOyBcCiAgdWludDY0eDJfdCBfX3MyXzQxMyA9IF9fcDJfNDEzOyBcCiAgdWludDY0eDFfdCBfX3JldF80MTM7IFwKICBfX3JldF80MTMgPSB2c2V0X2xhbmVfdTY0KHZnZXRxX2xhbmVfdTY0KF9fczJfNDEzLCBfX3AzXzQxMyksIF9fczBfNDEzLCBfX3AxXzQxMyk7IFwKICBfX3JldF80MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV91NjQoX19wMF80MTQsIF9fcDFfNDE0LCBfX3AyXzQxNCwgX19wM180MTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxX3QgX19zMF80MTQgPSBfX3AwXzQxNDsgXAogIHVpbnQ2NHgyX3QgX19zMl80MTQgPSBfX3AyXzQxNDsgXAogIHVpbnQ2NHgyX3QgX19yZXYyXzQxNDsgIF9fcmV2Ml80MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxNCwgX19zMl80MTQsIDEsIDApOyBcCiAgdWludDY0eDFfdCBfX3JldF80MTQ7IFwKICBfX3JldF80MTQgPSB2c2V0X2xhbmVfdTY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfdTY0KF9fcmV2Ml80MTQsIF9fcDNfNDE0KSwgX19zMF80MTQsIF9fcDFfNDE0KTsgXAogIF9fcmV0XzQxNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3UxNihfX3AwXzQxNSwgX19wMV80MTUsIF9fcDJfNDE1LCBfX3AzXzQxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzQxNSA9IF9fcDBfNDE1OyBcCiAgdWludDE2eDhfdCBfX3MyXzQxNSA9IF9fcDJfNDE1OyBcCiAgdWludDE2eDRfdCBfX3JldF80MTU7IFwKICBfX3JldF80MTUgPSB2c2V0X2xhbmVfdTE2KHZnZXRxX2xhbmVfdTE2KF9fczJfNDE1LCBfX3AzXzQxNSksIF9fczBfNDE1LCBfX3AxXzQxNSk7IFwKICBfX3JldF80MTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV91MTYoX19wMF80MTYsIF9fcDFfNDE2LCBfX3AyXzQxNiwgX19wM180MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF80MTYgPSBfX3AwXzQxNjsgXAogIHVpbnQxNng4X3QgX19zMl80MTYgPSBfX3AyXzQxNjsgXAogIHVpbnQxNng0X3QgX19yZXYwXzQxNjsgIF9fcmV2MF80MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQxNiwgX19zMF80MTYsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNDE2OyAgX19yZXYyXzQxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDE2LCBfX3MyXzQxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV0XzQxNjsgXAogIF9fcmV0XzQxNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV91MTYoX19ub3N3YXBfdmdldHFfbGFuZV91MTYoX19yZXYyXzQxNiwgX19wM180MTYpLCBfX3JldjBfNDE2LCBfX3AxXzQxNik7IFwKICBfX3JldF80MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MTYsIF9fcmV0XzQxNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9zOChfX3AwXzQxNywgX19wMV80MTcsIF9fcDJfNDE3LCBfX3AzXzQxNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF80MTcgPSBfX3AwXzQxNzsgXAogIGludDh4MTZfdCBfX3MyXzQxNyA9IF9fcDJfNDE3OyBcCiAgaW50OHg4X3QgX19yZXRfNDE3OyBcCiAgX19yZXRfNDE3ID0gdnNldF9sYW5lX3M4KHZnZXRxX2xhbmVfczgoX19zMl80MTcsIF9fcDNfNDE3KSwgX19zMF80MTcsIF9fcDFfNDE3KTsgXAogIF9fcmV0XzQxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3M4KF9fcDBfNDE4LCBfX3AxXzQxOCwgX19wMl80MTgsIF9fcDNfNDE4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzQxOCA9IF9fcDBfNDE4OyBcCiAgaW50OHgxNl90IF9fczJfNDE4ID0gX19wMl80MTg7IFwKICBpbnQ4eDhfdCBfX3JldjBfNDE4OyAgX19yZXYwXzQxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDE4LCBfX3MwXzQxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzQxODsgIF9fcmV2Ml80MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQxOCwgX19zMl80MTgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHg4X3QgX19yZXRfNDE4OyBcCiAgX19yZXRfNDE4ID0gX19ub3N3YXBfdnNldF9sYW5lX3M4KF9fbm9zd2FwX3ZnZXRxX2xhbmVfczgoX19yZXYyXzQxOCwgX19wM180MTgpLCBfX3JldjBfNDE4LCBfX3AxXzQxOCk7IFwKICBfX3JldF80MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MTgsIF9fcmV0XzQxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9mMzIoX19wMF80MTksIF9fcDFfNDE5LCBfX3AyXzQxOSwgX19wM180MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNDE5ID0gX19wMF80MTk7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzQxOSA9IF9fcDJfNDE5OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNDE5OyBcCiAgX19yZXRfNDE5ID0gdnNldF9sYW5lX2YzMih2Z2V0cV9sYW5lX2YzMihfX3MyXzQxOSwgX19wM180MTkpLCBfX3MwXzQxOSwgX19wMV80MTkpOyBcCiAgX19yZXRfNDE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfZjMyKF9fcDBfNDIwLCBfX3AxXzQyMCwgX19wMl80MjAsIF9fcDNfNDIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzQyMCA9IF9fcDBfNDIwOyBcCiAgZmxvYXQzMng0X3QgX19zMl80MjAgPSBfX3AyXzQyMDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF80MjA7ICBfX3JldjBfNDIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MjAsIF9fczBfNDIwLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml80MjA7ICBfX3JldjJfNDIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80MjAsIF9fczJfNDIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzQyMDsgXAogIF9fcmV0XzQyMCA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9mMzIoX19ub3N3YXBfdmdldHFfbGFuZV9mMzIoX19yZXYyXzQyMCwgX19wM180MjApLCBfX3JldjBfNDIwLCBfX3AxXzQyMCk7IFwKICBfX3JldF80MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjAsIF9fcmV0XzQyMCwgMSwgMCk7IFwKICBfX3JldF80MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weV9sYW5lcV9zMzIoX19wMF80MjEsIF9fcDFfNDIxLCBfX3AyXzQyMSwgX19wM180MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzQyMSA9IF9fcDBfNDIxOyBcCiAgaW50MzJ4NF90IF9fczJfNDIxID0gX19wMl80MjE7IFwKICBpbnQzMngyX3QgX19yZXRfNDIxOyBcCiAgX19yZXRfNDIxID0gdnNldF9sYW5lX3MzMih2Z2V0cV9sYW5lX3MzMihfX3MyXzQyMSwgX19wM180MjEpLCBfX3MwXzQyMSwgX19wMV80MjEpOyBcCiAgX19yZXRfNDIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlfbGFuZXFfczMyKF9fcDBfNDIyLCBfX3AxXzQyMiwgX19wMl80MjIsIF9fcDNfNDIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF80MjIgPSBfX3AwXzQyMjsgXAogIGludDMyeDRfdCBfX3MyXzQyMiA9IF9fcDJfNDIyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF80MjI7ICBfX3JldjBfNDIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80MjIsIF9fczBfNDIyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNDIyOyAgX19yZXYyXzQyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNDIyLCBfX3MyXzQyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNDIyOyBcCiAgX19yZXRfNDIyID0gX19ub3N3YXBfdnNldF9sYW5lX3MzMihfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfNDIyLCBfX3AzXzQyMiksIF9fcmV2MF80MjIsIF9fcDFfNDIyKTsgXAogIF9fcmV0XzQyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQyMiwgX19yZXRfNDIyLCAxLCAwKTsgXAogIF9fcmV0XzQyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3M2NChfX3AwXzQyMywgX19wMV80MjMsIF9fcDJfNDIzLCBfX3AzXzQyMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MV90IF9fczBfNDIzID0gX19wMF80MjM7IFwKICBpbnQ2NHgyX3QgX19zMl80MjMgPSBfX3AyXzQyMzsgXAogIGludDY0eDFfdCBfX3JldF80MjM7IFwKICBfX3JldF80MjMgPSB2c2V0X2xhbmVfczY0KHZnZXRxX2xhbmVfczY0KF9fczJfNDIzLCBfX3AzXzQyMyksIF9fczBfNDIzLCBfX3AxXzQyMyk7IFwKICBfX3JldF80MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9zNjQoX19wMF80MjQsIF9fcDFfNDI0LCBfX3AyXzQyNCwgX19wM180MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwXzQyNCA9IF9fcDBfNDI0OyBcCiAgaW50NjR4Ml90IF9fczJfNDI0ID0gX19wMl80MjQ7IFwKICBpbnQ2NHgyX3QgX19yZXYyXzQyNDsgIF9fcmV2Ml80MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQyNCwgX19zMl80MjQsIDEsIDApOyBcCiAgaW50NjR4MV90IF9fcmV0XzQyNDsgXAogIF9fcmV0XzQyNCA9IHZzZXRfbGFuZV9zNjQoX19ub3N3YXBfdmdldHFfbGFuZV9zNjQoX19yZXYyXzQyNCwgX19wM180MjQpLCBfX3MwXzQyNCwgX19wMV80MjQpOyBcCiAgX19yZXRfNDI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlfbGFuZXFfczE2KF9fcDBfNDI1LCBfX3AxXzQyNSwgX19wMl80MjUsIF9fcDNfNDI1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF80MjUgPSBfX3AwXzQyNTsgXAogIGludDE2eDhfdCBfX3MyXzQyNSA9IF9fcDJfNDI1OyBcCiAgaW50MTZ4NF90IF9fcmV0XzQyNTsgXAogIF9fcmV0XzQyNSA9IHZzZXRfbGFuZV9zMTYodmdldHFfbGFuZV9zMTYoX19zMl80MjUsIF9fcDNfNDI1KSwgX19zMF80MjUsIF9fcDFfNDI1KTsgXAogIF9fcmV0XzQyNTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5X2xhbmVxX3MxNihfX3AwXzQyNiwgX19wMV80MjYsIF9fcDJfNDI2LCBfX3AzXzQyNikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNDI2ID0gX19wMF80MjY7IFwKICBpbnQxNng4X3QgX19zMl80MjYgPSBfX3AyXzQyNjsgXAogIGludDE2eDRfdCBfX3JldjBfNDI2OyAgX19yZXYwXzQyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDI2LCBfX3MwXzQyNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzQyNjsgIF9fcmV2Ml80MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzQyNiwgX19zMl80MjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQyNjsgXAogIF9fcmV0XzQyNiA9IF9fbm9zd2FwX3ZzZXRfbGFuZV9zMTYoX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYyXzQyNiwgX19wM180MjYpLCBfX3JldjBfNDI2LCBfX3AxXzQyNik7IFwKICBfX3JldF80MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjYsIF9fcmV0XzQyNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZjcmVhdGVfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkoX19wcm9tb3RlKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmNyZWF0ZV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICB1aW50NjRfdCBfX3Byb21vdGUgPSBfX3AwOyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpKF9fcHJvbW90ZSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIGZsb2F0MzJfdCB2Y3Z0c19mMzJfczMyKGludDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRzX2YzMl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMl90IHZjdnRzX2YzMl91MzIodWludDMyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRzX2YzMl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcmV2MCwgOSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJ4Ml90IF9fbm9zd2FwX3ZjdnRfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjMyX2Y2NCgoaW50OHgxNl90KV9fcDAsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NF90IHZjdnRkX2Y2NF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfZjY0X3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdmN2dGRfZjY0X3U2NCh1aW50NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfZjY0X3U2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHFfZjY0X3YoKGludDh4MTZfdClfX3AwLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dHFfZjY0X3U2NCh1aW50NjR4Ml90IF9fcDApIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9mNjRfdigoaW50OHgxNl90KV9fcmV2MCwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0cV9mNjRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2Y2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZjdnRxX2Y2NF9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX2Y2NF92KChpbnQ4eDE2X3QpX19yZXYwLCAzNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdmN2dF9mNjRfdTY0KHVpbnQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NHgxX3QgdmN2dF9mNjRfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfZjY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Y3Z0X2Y2NF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X2Y2NF9mMzIoKGludDh4OF90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDE2eDhfdCB2Y3Z0X2hpZ2hfZjE2X2YzMihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9mMTYoX19wMCwgdmN2dF9mMTZfZjMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDE2eDhfdCB2Y3Z0X2hpZ2hfZjE2X2YzMihmbG9hdDE2eDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9mMTYoX19yZXYwLCBfX25vc3dhcF92Y3Z0X2YxNl9mMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnRfaGlnaF9mMzJfZjE2KGZsb2F0MTZ4OF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjdnRfZjMyX2YxNih2Z2V0X2hpZ2hfZjE2KF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0X2hpZ2hfZjMyX2YxNihmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y3Z0X2YzMl9mMTYoX19ub3N3YXBfdmdldF9oaWdoX2YxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9oaWdoX2YzMl9mNjQoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfZjMyKF9fcDAsIHZjdnRfZjMyX2Y2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dF9oaWdoX2YzMl9mNjQoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfZjMyKF9fcmV2MCwgX19ub3N3YXBfdmN2dF9mMzJfZjY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2Y3Z0X2hpZ2hfZjY0X2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2Y2NF9mMzIodmdldF9oaWdoX2YzMihfX3AwKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmN2dF9oaWdoX2Y2NF9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmN2dF9mNjRfZjMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9mMzIoX19yZXYwKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdmN2dHNfbl9mMzJfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX2YzMl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRzX25fZjMyX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX2YzMl9zMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjY0X3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl9mNjRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fZjY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fZjY0X3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX2Y2NF92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmN2dF9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9mNjRfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0X25fZjY0X3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fZjY0X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0ZF9uX2Y2NF91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fZjY0X3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGRfbl9mNjRfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fZjY0X3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dHNfbl9zMzJfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19uX3MzMl9mMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y3Z0cV9uX3M2NF9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fczY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fczY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9uX3M2NF92KChpbnQ4eDE2X3QpX19yZXYwLCBfX3AxLCAzNSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmN2dF9uX3M2NF9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfbl9zNjRfdigoaW50OHg4X3QpX19zMCwgX19wMSwgMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZjdnRkX25fczY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfbl9zNjRfZjY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2Y3Z0c19uX3UzMl9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHNfbl91MzJfZjMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmN2dHFfbl91NjRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTY0X3YoKGludDh4MTZfdClfX3MwLCBfX3AxLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZjdnRxX25fdTY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX25fdTY0X3YoKGludDh4MTZfdClfX3JldjAsIF9fcDEsIDUxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y3Z0X25fdTY0X2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X25fdTY0X3YoKGludDh4OF90KV9fczAsIF9fcDEsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmN2dGRfbl91NjRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX25fdTY0X2Y2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCl9fYWkgaW50MzJfdCB2Y3Z0c19zMzJfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0c19zMzJfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdmN2dGRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGRfczY0X2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZjdnRxX3M2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRxX3M2NF92KChpbnQ4eDE2X3QpX19wMCwgMzUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2Y3Z0cV9zNjRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV9zNjRfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2Y3Z0X3M2NF9mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGludDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRfczY0X3YoKGludDh4OF90KV9fcDAsIDMpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQzMl90IHZjdnRzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHNfdTMyX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2Y3Z0ZF91NjRfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnRkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmN2dHFfdTY0X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0cV91NjRfdigoaW50OHgxNl90KV9fcDAsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZjdnRxX3U2NF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdmN2dHFfdTY0X3YoKGludDh4MTZfdClfX3JldjAsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSB1aW50NjR4MV90IHZjdnRfdTY0X2Y2NChmbG9hdDY0eDFfdCBfX3AwKSB7CiAgdWludDY0eDFfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0X3U2NF92KChpbnQ4eDhfdClfX3AwLCAxOSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0YXNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGFzX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0YWRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFkX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dGFzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dGFzX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dGFkX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dGFkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0bXNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG1zX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0bWRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1kX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dG1zX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG1zX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dG1kX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG1kX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0bnNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG5zX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0bmRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5kX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dG5zX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dG5zX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dG5kX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dG5kX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2Y3Z0cHNfczMyX2YzMihmbG9hdDMyX3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHBzX3MzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2Y3Z0cGRfczY0X2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBkX3M2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdmN2dHBzX3UzMl9mMzIoZmxvYXQzMl90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdmN2dHBzX3UzMl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdmN2dHBkX3U2NF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmN2dHBkX3U2NF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMl90IHZjdnR4ZF9mMzJfZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmN2dHhkX2YzMl9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZjdnR4X2YzMl9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92Y3Z0eF9mMzJfdigoaW50OHgxNl90KV9fcDAsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2Y3Z0eF9mMzJfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmN2dHhfZjMyX3YoKGludDh4MTZfdClfX3JldjAsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdmN2dHhfZjMyX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZjdnR4X2YzMl92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZjdnR4X2hpZ2hfZjMyX2Y2NChmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9mMzIoX19wMCwgdmN2dHhfZjMyX2Y2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmN2dHhfaGlnaF9mMzJfZjY0KGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX2YzMihfX3JldjAsIF9fbm9zd2FwX3ZjdnR4X2YzMl9mNjQoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZkaXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2ZGl2cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2ZGl2cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAvIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdmRpdnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAvIF9fcmV2MTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2ZGl2X2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC8gX19wMTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdmRpdl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAvIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmRpdl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC8gX19yZXYxOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lX3A4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwYl9sYW5lX2k4KChwb2x5OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfcDgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4OF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVfaTgoKHBvbHk4eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lX3AxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZV9pMTYoKHBvbHkxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGJfbGFuZV91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVfaTgoKGludDh4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVfdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lX3UzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVfaTMyKChpbnQzMngyX3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwZF9sYW5lX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdmR1cGRfbGFuZV9pNjQoKGludDY0eDFfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVfdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2kxNigoaW50MTZ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwaF9sYW5lX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfaTE2KChpbnQxNng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGJfbGFuZV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVfczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZV9pOCgoaW50OHg4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwZF9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmR1cGRfbGFuZV9mNjQoKGZsb2F0NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHNfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVfZjMyKChmbG9hdDMyeDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZV9mMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZV9mMzIoKGZsb2F0MzJ4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lX2kzMigoaW50MzJ4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZV9pMzIoKGludDMyeDJfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZkdXBkX2xhbmVfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lX2k2NCgoaW50NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cGhfbGFuZV9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVfaTE2KChpbnQxNng0X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVfczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lX2kxNigoaW50MTZ4NF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmR1cF9sYW5lX3A2NChfX3AwXzQyNywgX19wMV80MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjcgPSBfX3AwXzQyNzsgXAogIHBvbHk2NHgxX3QgX19yZXRfNDI3OyBcCiAgX19yZXRfNDI3ID0gc3BsYXRfbGFuZV9wNjQoX19zMF80MjcsIF9fcDFfNDI3KTsgXAogIF9fcmV0XzQyNzsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX3A2NChfX3AwXzQyOCwgX19wMV80MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjggPSBfX3AwXzQyODsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDI4OyBcCiAgX19yZXRfNDI4ID0gc3BsYXRxX2xhbmVfcDY0KF9fczBfNDI4LCBfX3AxXzQyOCk7IFwKICBfX3JldF80Mjg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX3A2NChfX3AwXzQyOSwgX19wMV80MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF80MjkgPSBfX3AwXzQyOTsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDI5OyBcCiAgX19yZXRfNDI5ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVfcDY0KF9fczBfNDI5LCBfX3AxXzQyOSk7IFwKICBfX3JldF80MjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MjksIF9fcmV0XzQyOSwgMSwgMCk7IFwKICBfX3JldF80Mjk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lX2Y2NChfX3AwXzQzMCwgX19wMV80MzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfNDMwID0gX19wMF80MzA7IFwKICBmbG9hdDY0eDJfdCBfX3JldF80MzA7IFwKICBfX3JldF80MzAgPSBzcGxhdHFfbGFuZV9mNjQoX19zMF80MzAsIF9fcDFfNDMwKTsgXAogIF9fcmV0XzQzMDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVfZjY0KF9fcDBfNDMxLCBfX3AxXzQzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF80MzEgPSBfX3AwXzQzMTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzQzMTsgXAogIF9fcmV0XzQzMSA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lX2Y2NChfX3MwXzQzMSwgX19wMV80MzEpOyBcCiAgX19yZXRfNDMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMxLCBfX3JldF80MzEsIDEsIDApOyBcCiAgX19yZXRfNDMxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZV9mMTYoX19wMF80MzIsIF9fcDFfNDMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDRfdCBfX3MwXzQzMiA9IF9fcDBfNDMyOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfNDMyOyBcCiAgX19yZXRfNDMyID0gc3BsYXRxX2xhbmVfZjE2KF9fczBfNDMyLCBfX3AxXzQzMik7IFwKICBfX3JldF80MzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lX2YxNihfX3AwXzQzMywgX19wMV80MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDMzID0gX19wMF80MzM7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfNDMzOyAgX19yZXYwXzQzMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDMzLCBfX3MwXzQzMywgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF80MzM7IFwKICBfX3JldF80MzMgPSBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMTYoX19yZXYwXzQzMywgX19wMV80MzMpOyBcCiAgX19yZXRfNDMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDMzLCBfX3JldF80MzMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDMzOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2ZHVwX2xhbmVfZjY0KF9fcDBfNDM0LCBfX3AxXzQzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF80MzQgPSBfX3AwXzQzNDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzQzNDsgXAogIF9fcmV0XzQzNCA9IHNwbGF0X2xhbmVfZjY0KF9fczBfNDM0LCBfX3AxXzQzNCk7IFwKICBfX3JldF80MzQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lX2YxNihfX3AwXzQzNSwgX19wMV80MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDM1ID0gX19wMF80MzU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80MzU7IFwKICBfX3JldF80MzUgPSBzcGxhdF9sYW5lX2YxNihfX3MwXzQzNSwgX19wMV80MzUpOyBcCiAgX19yZXRfNDM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lX2YxNihfX3AwXzQzNiwgX19wMV80MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfNDM2ID0gX19wMF80MzY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfNDM2OyAgX19yZXYwXzQzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDM2LCBfX3MwXzQzNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80MzY7IFwKICBfX3JldF80MzYgPSBfX25vc3dhcF9zcGxhdF9sYW5lX2YxNihfX3JldjBfNDM2LCBfX3AxXzQzNik7IFwKICBfX3JldF80MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80MzYsIF9fcmV0XzQzNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80MzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seThfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVxX2k4KChwb2x5OHgxNl90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwYl9sYW5lcV9wOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczAgPSBfX3AwOyBcCiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5OF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwYl9sYW5lcV9pOCgocG9seTh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV9wMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwID0gX19wMDsgXAogIHBvbHkxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2kxNigocG9seTE2eDhfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGhfbGFuZXFfcDE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChwb2x5MTZ4OF90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBiX2xhbmVxX3U4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cGJfbGFuZXFfdTgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwc19sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVxX2kzMigoaW50MzJ4NF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwc19sYW5lcV91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwZF9sYW5lcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lcV9pNjQoKGludDY0eDJfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwaF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBoX2xhbmVxX2kxNigoaW50MTZ4OF90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwaF9sYW5lcV91MTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwaF9sYW5lcV9pMTYoKGludDE2eDhfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwYl9sYW5lcV9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBiX2xhbmVxX2k4KChpbnQ4eDE2X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBiX2xhbmVxX3M4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwID0gX19wMDsgXAogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdmR1cGJfbGFuZXFfaTgoKGludDh4MTZfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2Y2NCgoZmxvYXQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBkX2xhbmVxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92ZHVwZF9sYW5lcV9mNjQoKGZsb2F0NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBzX2xhbmVxX2YzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmR1cHNfbGFuZXFfZjMyKChmbG9hdDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZXFfZjMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBzX2xhbmVxX2YzMigoZmxvYXQzMng0X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHNfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHNfbGFuZXFfczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92ZHVwc19sYW5lcV9pMzIoKGludDMyeDRfdClfX3JldjAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwZF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwZF9sYW5lcV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZkdXBkX2xhbmVxX2k2NCgoaW50NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBoX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChpbnQxNng4X3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBoX2xhbmVxX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdmR1cGhfbGFuZXFfaTE2KChpbnQxNng4X3QpX19yZXYwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9wOChfX3AwXzQzNywgX19wMV80MzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMF80MzcgPSBfX3AwXzQzNzsgXAogIHBvbHk4eDhfdCBfX3JldF80Mzc7IFwKICBfX3JldF80MzcgPSBzcGxhdF9sYW5lcV9wOChfX3MwXzQzNywgX19wMV80MzcpOyBcCiAgX19yZXRfNDM3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV9wOChfX3AwXzQzOCwgX19wMV80MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2X3QgX19zMF80MzggPSBfX3AwXzQzODsgXAogIHBvbHk4eDE2X3QgX19yZXYwXzQzODsgIF9fcmV2MF80MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQzOCwgX19zMF80MzgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4OF90IF9fcmV0XzQzODsgXAogIF9fcmV0XzQzOCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3A4KF9fcmV2MF80MzgsIF9fcDFfNDM4KTsgXAogIF9fcmV0XzQzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQzOCwgX19yZXRfNDM4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQzODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfcDY0KF9fcDBfNDM5LCBfX3AxXzQzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQzOSA9IF9fcDBfNDM5OyBcCiAgcG9seTY0eDFfdCBfX3JldF80Mzk7IFwKICBfX3JldF80MzkgPSBzcGxhdF9sYW5lcV9wNjQoX19zMF80MzksIF9fcDFfNDM5KTsgXAogIF9fcmV0XzQzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfcDY0KF9fcDBfNDQwLCBfX3AxXzQ0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQ0MCA9IF9fcDBfNDQwOyBcCiAgcG9seTY0eDJfdCBfX3JldjBfNDQwOyAgX19yZXYwXzQ0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDQwLCBfX3MwXzQ0MCwgMSwgMCk7IFwKICBwb2x5NjR4MV90IF9fcmV0XzQ0MDsgXAogIF9fcmV0XzQ0MCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3A2NChfX3JldjBfNDQwLCBfX3AxXzQ0MCk7IFwKICBfX3JldF80NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3AxNihfX3AwXzQ0MSwgX19wMV80NDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMF80NDEgPSBfX3AwXzQ0MTsgXAogIHBvbHkxNng0X3QgX19yZXRfNDQxOyBcCiAgX19yZXRfNDQxID0gc3BsYXRfbGFuZXFfcDE2KF9fczBfNDQxLCBfX3AxXzQ0MSk7IFwKICBfX3JldF80NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3AxNihfX3AwXzQ0MiwgX19wMV80NDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxNng4X3QgX19zMF80NDIgPSBfX3AwXzQ0MjsgXAogIHBvbHkxNng4X3QgX19yZXYwXzQ0MjsgIF9fcmV2MF80NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ0MiwgX19zMF80NDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTE2eDRfdCBfX3JldF80NDI7IFwKICBfX3JldF80NDIgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9wMTYoX19yZXYwXzQ0MiwgX19wMV80NDIpOyBcCiAgX19yZXRfNDQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDQyLCBfX3JldF80NDIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDQyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDgoX19wMF80NDMsIF9fcDFfNDQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfNDQzID0gX19wMF80NDM7IFwKICBwb2x5OHgxNl90IF9fcmV0XzQ0MzsgXAogIF9fcmV0XzQ0MyA9IHNwbGF0cV9sYW5lcV9wOChfX3MwXzQ0MywgX19wMV80NDMpOyBcCiAgX19yZXRfNDQzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDgoX19wMF80NDQsIF9fcDFfNDQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNl90IF9fczBfNDQ0ID0gX19wMF80NDQ7IFwKICBwb2x5OHgxNl90IF9fcmV2MF80NDQ7ICBfX3JldjBfNDQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NDQsIF9fczBfNDQ0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHk4eDE2X3QgX19yZXRfNDQ0OyBcCiAgX19yZXRfNDQ0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3A4KF9fcmV2MF80NDQsIF9fcDFfNDQ0KTsgXAogIF9fcmV0XzQ0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ0NCwgX19yZXRfNDQ0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ0NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX3A2NChfX3AwXzQ0NSwgX19wMV80NDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF80NDUgPSBfX3AwXzQ0NTsgXAogIHBvbHk2NHgyX3QgX19yZXRfNDQ1OyBcCiAgX19yZXRfNDQ1ID0gc3BsYXRxX2xhbmVxX3A2NChfX3MwXzQ0NSwgX19wMV80NDUpOyBcCiAgX19yZXRfNDQ1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDY0KF9fcDBfNDQ2LCBfX3AxXzQ0NikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwXzQ0NiA9IF9fcDBfNDQ2OyBcCiAgcG9seTY0eDJfdCBfX3JldjBfNDQ2OyAgX19yZXYwXzQ0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDQ2LCBfX3MwXzQ0NiwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0XzQ0NjsgXAogIF9fcmV0XzQ0NiA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9wNjQoX19yZXYwXzQ0NiwgX19wMV80NDYpOyBcCiAgX19yZXRfNDQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDQ2LCBfX3JldF80NDYsIDEsIDApOyBcCiAgX19yZXRfNDQ2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfcDE2KF9fcDBfNDQ3LCBfX3AxXzQ0NykgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTE2eDhfdCBfX3MwXzQ0NyA9IF9fcDBfNDQ3OyBcCiAgcG9seTE2eDhfdCBfX3JldF80NDc7IFwKICBfX3JldF80NDcgPSBzcGxhdHFfbGFuZXFfcDE2KF9fczBfNDQ3LCBfX3AxXzQ0Nyk7IFwKICBfX3JldF80NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9wMTYoX19wMF80NDgsIF9fcDFfNDQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5MTZ4OF90IF9fczBfNDQ4ID0gX19wMF80NDg7IFwKICBwb2x5MTZ4OF90IF9fcmV2MF80NDg7ICBfX3JldjBfNDQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NDgsIF9fczBfNDQ4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHBvbHkxNng4X3QgX19yZXRfNDQ4OyBcCiAgX19yZXRfNDQ4ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3AxNihfX3JldjBfNDQ4LCBfX3AxXzQ0OCk7IFwKICBfX3JldF80NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NDgsIF9fcmV0XzQ0OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV91OChfX3AwXzQ0OSwgX19wMV80NDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMF80NDkgPSBfX3AwXzQ0OTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfNDQ5OyBcCiAgX19yZXRfNDQ5ID0gc3BsYXRxX2xhbmVxX3U4KF9fczBfNDQ5LCBfX3AxXzQ0OSk7IFwKICBfX3JldF80NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV91OChfX3AwXzQ1MCwgX19wMV80NTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2X3QgX19zMF80NTAgPSBfX3AwXzQ1MDsgXAogIHVpbnQ4eDE2X3QgX19yZXYwXzQ1MDsgIF9fcmV2MF80NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1MCwgX19zMF80NTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldF80NTA7IFwKICBfX3JldF80NTAgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTgoX19yZXYwXzQ1MCwgX19wMV80NTApOyBcCiAgX19yZXRfNDUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDUwLCBfX3JldF80NTAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDUwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfdTMyKF9fcDBfNDUxLCBfX3AxXzQ1MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzQ1MSA9IF9fcDBfNDUxOyBcCiAgdWludDMyeDRfdCBfX3JldF80NTE7IFwKICBfX3JldF80NTEgPSBzcGxhdHFfbGFuZXFfdTMyKF9fczBfNDUxLCBfX3AxXzQ1MSk7IFwKICBfX3JldF80NTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV91MzIoX19wMF80NTIsIF9fcDFfNDUyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDUyID0gX19wMF80NTI7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80NTI7ICBfX3JldjBfNDUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NTIsIF9fczBfNDUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNDUyOyBcCiAgX19yZXRfNDUyID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UzMihfX3JldjBfNDUyLCBfX3AxXzQ1Mik7IFwKICBfX3JldF80NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NTIsIF9fcmV0XzQ1MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV91NjQoX19wMF80NTMsIF9fcDFfNDUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNDUzID0gX19wMF80NTM7IFwKICB1aW50NjR4Ml90IF9fcmV0XzQ1MzsgXAogIF9fcmV0XzQ1MyA9IHNwbGF0cV9sYW5lcV91NjQoX19zMF80NTMsIF9fcDFfNDUzKTsgXAogIF9fcmV0XzQ1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX3U2NChfX3AwXzQ1NCwgX19wMV80NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF80NTQgPSBfX3AwXzQ1NDsgXAogIHVpbnQ2NHgyX3QgX19yZXYwXzQ1NDsgIF9fcmV2MF80NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1NCwgX19zMF80NTQsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF80NTQ7IFwKICBfX3JldF80NTQgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTY0KF9fcmV2MF80NTQsIF9fcDFfNDU0KTsgXAogIF9fcmV0XzQ1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ1NCwgX19yZXRfNDU0LCAxLCAwKTsgXAogIF9fcmV0XzQ1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX3UxNihfX3AwXzQ1NSwgX19wMV80NTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NTUgPSBfX3AwXzQ1NTsgXAogIHVpbnQxNng4X3QgX19yZXRfNDU1OyBcCiAgX19yZXRfNDU1ID0gc3BsYXRxX2xhbmVxX3UxNihfX3MwXzQ1NSwgX19wMV80NTUpOyBcCiAgX19yZXRfNDU1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfdTE2KF9fcDBfNDU2LCBfX3AxXzQ1NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzQ1NiA9IF9fcDBfNDU2OyBcCiAgdWludDE2eDhfdCBfX3JldjBfNDU2OyAgX19yZXYwXzQ1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDU2LCBfX3MwXzQ1NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzQ1NjsgXAogIF9fcmV0XzQ1NiA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19yZXYwXzQ1NiwgX19wMV80NTYpOyBcCiAgX19yZXRfNDU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDU2LCBfX3JldF80NTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfczgoX19wMF80NTcsIF9fcDFfNDU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF80NTcgPSBfX3AwXzQ1NzsgXAogIGludDh4MTZfdCBfX3JldF80NTc7IFwKICBfX3JldF80NTcgPSBzcGxhdHFfbGFuZXFfczgoX19zMF80NTcsIF9fcDFfNDU3KTsgXAogIF9fcmV0XzQ1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX3M4KF9fcDBfNDU4LCBfX3AxXzQ1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNl90IF9fczBfNDU4ID0gX19wMF80NTg7IFwKICBpbnQ4eDE2X3QgX19yZXYwXzQ1ODsgIF9fcmV2MF80NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ1OCwgX19zMF80NTgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzQ1ODsgXAogIF9fcmV0XzQ1OCA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zOChfX3JldjBfNDU4LCBfX3AxXzQ1OCk7IFwKICBfX3JldF80NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NTgsIF9fcmV0XzQ1OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9mNjQoX19wMF80NTksIF9fcDFfNDU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzQ1OSA9IF9fcDBfNDU5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNDU5OyBcCiAgX19yZXRfNDU5ID0gc3BsYXRxX2xhbmVxX2Y2NChfX3MwXzQ1OSwgX19wMV80NTkpOyBcCiAgX19yZXRfNDU5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cHFfbGFuZXFfZjY0KF9fcDBfNDYwLCBfX3AxXzQ2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80NjAgPSBfX3AwXzQ2MDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF80NjA7ICBfX3JldjBfNDYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NjAsIF9fczBfNDYwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzQ2MDsgXAogIF9fcmV0XzQ2MCA9IF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19yZXYwXzQ2MCwgX19wMV80NjApOyBcCiAgX19yZXRfNDYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDYwLCBfX3JldF80NjAsIDEsIDApOyBcCiAgX19yZXRfNDYwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cHFfbGFuZXFfZjMyKF9fcDBfNDYxLCBfX3AxXzQ2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF80NjEgPSBfX3AwXzQ2MTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ2MTsgXAogIF9fcmV0XzQ2MSA9IHNwbGF0cV9sYW5lcV9mMzIoX19zMF80NjEsIF9fcDFfNDYxKTsgXAogIF9fcmV0XzQ2MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBxX2xhbmVxX2YzMihfX3AwXzQ2MiwgX19wMV80NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDYyID0gX19wMF80NjI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfNDYyOyAgX19yZXYwXzQ2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDYyLCBfX3MwXzQ2MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80NjI7IFwKICBfX3JldF80NjIgPSBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2MF80NjIsIF9fcDFfNDYyKTsgXAogIF9fcmV0XzQ2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ2MiwgX19yZXRfNDYyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzQ2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBxX2xhbmVxX2YxNihfX3AwXzQ2MywgX19wMV80NjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfNDYzID0gX19wMF80NjM7IFwKICBmbG9hdDE2eDhfdCBfX3JldF80NjM7IFwKICBfX3JldF80NjMgPSBzcGxhdHFfbGFuZXFfZjE2KF9fczBfNDYzLCBfX3AxXzQ2Myk7IFwKICBfX3JldF80NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9mMTYoX19wMF80NjQsIF9fcDFfNDY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzQ2NCA9IF9fcDBfNDY0OyBcCiAgZmxvYXQxNng4X3QgX19yZXYwXzQ2NDsgIF9fcmV2MF80NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ2NCwgX19zMF80NjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXRfNDY0OyBcCiAgX19yZXRfNDY0ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YxNihfX3JldjBfNDY0LCBfX3AxXzQ2NCk7IFwKICBfX3JldF80NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjQsIF9fcmV0XzQ2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zMzIoX19wMF80NjUsIF9fcDFfNDY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80NjUgPSBfX3AwXzQ2NTsgXAogIGludDMyeDRfdCBfX3JldF80NjU7IFwKICBfX3JldF80NjUgPSBzcGxhdHFfbGFuZXFfczMyKF9fczBfNDY1LCBfX3AxXzQ2NSk7IFwKICBfX3JldF80NjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zMzIoX19wMF80NjYsIF9fcDFfNDY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80NjYgPSBfX3AwXzQ2NjsgXAogIGludDMyeDRfdCBfX3JldjBfNDY2OyAgX19yZXYwXzQ2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDY2LCBfX3MwXzQ2NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNDY2OyBcCiAgX19yZXRfNDY2ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjBfNDY2LCBfX3AxXzQ2Nik7IFwKICBfX3JldF80NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjYsIF9fcmV0XzQ2NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zNjQoX19wMF80NjcsIF9fcDFfNDY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF80NjcgPSBfX3AwXzQ2NzsgXAogIGludDY0eDJfdCBfX3JldF80Njc7IFwKICBfX3JldF80NjcgPSBzcGxhdHFfbGFuZXFfczY0KF9fczBfNDY3LCBfX3AxXzQ2Nyk7IFwKICBfX3JldF80Njc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zNjQoX19wMF80NjgsIF9fcDFfNDY4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF80NjggPSBfX3AwXzQ2ODsgXAogIGludDY0eDJfdCBfX3JldjBfNDY4OyAgX19yZXYwXzQ2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDY4LCBfX3MwXzQ2OCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNDY4OyBcCiAgX19yZXRfNDY4ID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3M2NChfX3JldjBfNDY4LCBfX3AxXzQ2OCk7IFwKICBfX3JldF80NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NjgsIF9fcmV0XzQ2OCwgMSwgMCk7IFwKICBfX3JldF80Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwcV9sYW5lcV9zMTYoX19wMF80NjksIF9fcDFfNDY5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80NjkgPSBfX3AwXzQ2OTsgXAogIGludDE2eDhfdCBfX3JldF80Njk7IFwKICBfX3JldF80NjkgPSBzcGxhdHFfbGFuZXFfczE2KF9fczBfNDY5LCBfX3AxXzQ2OSk7IFwKICBfX3JldF80Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwcV9sYW5lcV9zMTYoX19wMF80NzAsIF9fcDFfNDcwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80NzAgPSBfX3AwXzQ3MDsgXAogIGludDE2eDhfdCBfX3JldjBfNDcwOyAgX19yZXYwXzQ3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcwLCBfX3MwXzQ3MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNDcwOyBcCiAgX19yZXRfNDcwID0gX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjBfNDcwLCBfX3AxXzQ3MCk7IFwKICBfX3JldF80NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80NzAsIF9fcmV0XzQ3MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3U4KF9fcDBfNDcxLCBfX3AxXzQ3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzQ3MSA9IF9fcDBfNDcxOyBcCiAgdWludDh4OF90IF9fcmV0XzQ3MTsgXAogIF9fcmV0XzQ3MSA9IHNwbGF0X2xhbmVxX3U4KF9fczBfNDcxLCBfX3AxXzQ3MSk7IFwKICBfX3JldF80NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3U4KF9fcDBfNDcyLCBfX3AxXzQ3MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZfdCBfX3MwXzQ3MiA9IF9fcDBfNDcyOyBcCiAgdWludDh4MTZfdCBfX3JldjBfNDcyOyAgX19yZXYwXzQ3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDcyLCBfX3MwXzQ3MiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXRfNDcyOyBcCiAgX19yZXRfNDcyID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfdTgoX19yZXYwXzQ3MiwgX19wMV80NzIpOyBcCiAgX19yZXRfNDcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDcyLCBfX3JldF80NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDcyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV91MzIoX19wMF80NzMsIF9fcDFfNDczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDczID0gX19wMF80NzM7IFwKICB1aW50MzJ4Ml90IF9fcmV0XzQ3MzsgXAogIF9fcmV0XzQ3MyA9IHNwbGF0X2xhbmVxX3UzMihfX3MwXzQ3MywgX19wMV80NzMpOyBcCiAgX19yZXRfNDczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV91MzIoX19wMF80NzQsIF9fcDFfNDc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNDc0ID0gX19wMF80NzQ7IFwKICB1aW50MzJ4NF90IF9fcmV2MF80NzQ7ICBfX3JldjBfNDc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80NzQsIF9fczBfNDc0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNDc0OyBcCiAgX19yZXRfNDc0ID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2MF80NzQsIF9fcDFfNDc0KTsgXAogIF9fcmV0XzQ3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ3NCwgX19yZXRfNDc0LCAxLCAwKTsgXAogIF9fcmV0XzQ3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfdTY0KF9fcDBfNDc1LCBfX3AxXzQ3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzQ3NSA9IF9fcDBfNDc1OyBcCiAgdWludDY0eDFfdCBfX3JldF80NzU7IFwKICBfX3JldF80NzUgPSBzcGxhdF9sYW5lcV91NjQoX19zMF80NzUsIF9fcDFfNDc1KTsgXAogIF9fcmV0XzQ3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfdTY0KF9fcDBfNDc2LCBfX3AxXzQ3NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzQ3NiA9IF9fcDBfNDc2OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNDc2OyAgX19yZXYwXzQ3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDc2LCBfX3MwXzQ3NiwgMSwgMCk7IFwKICB1aW50NjR4MV90IF9fcmV0XzQ3NjsgXAogIF9fcmV0XzQ3NiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3U2NChfX3JldjBfNDc2LCBfX3AxXzQ3Nik7IFwKICBfX3JldF80NzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3UxNihfX3AwXzQ3NywgX19wMV80NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NzcgPSBfX3AwXzQ3NzsgXAogIHVpbnQxNng0X3QgX19yZXRfNDc3OyBcCiAgX19yZXRfNDc3ID0gc3BsYXRfbGFuZXFfdTE2KF9fczBfNDc3LCBfX3AxXzQ3Nyk7IFwKICBfX3JldF80Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3UxNihfX3AwXzQ3OCwgX19wMV80NzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF80NzggPSBfX3AwXzQ3ODsgXAogIHVpbnQxNng4X3QgX19yZXYwXzQ3ODsgIF9fcmV2MF80NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ3OCwgX19zMF80NzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF80Nzg7IFwKICBfX3JldF80NzggPSBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYwXzQ3OCwgX19wMV80NzgpOyBcCiAgX19yZXRfNDc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNDc4LCBfX3JldF80NzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNDc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9zOChfX3AwXzQ3OSwgX19wMV80NzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZfdCBfX3MwXzQ3OSA9IF9fcDBfNDc5OyBcCiAgaW50OHg4X3QgX19yZXRfNDc5OyBcCiAgX19yZXRfNDc5ID0gc3BsYXRfbGFuZXFfczgoX19zMF80NzksIF9fcDFfNDc5KTsgXAogIF9fcmV0XzQ3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfczgoX19wMF80ODAsIF9fcDFfNDgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF80ODAgPSBfX3AwXzQ4MDsgXAogIGludDh4MTZfdCBfX3JldjBfNDgwOyAgX19yZXYwXzQ4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDgwLCBfX3MwXzQ4MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldF80ODA7IFwKICBfX3JldF80ODAgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zOChfX3JldjBfNDgwLCBfX3AxXzQ4MCk7IFwKICBfX3JldF80ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODAsIF9fcmV0XzQ4MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80ODA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2Y2NChfX3AwXzQ4MSwgX19wMV80ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNDgxID0gX19wMF80ODE7IFwKICBmbG9hdDY0eDFfdCBfX3JldF80ODE7IFwKICBfX3JldF80ODEgPSBzcGxhdF9sYW5lcV9mNjQoX19zMF80ODEsIF9fcDFfNDgxKTsgXAogIF9fcmV0XzQ4MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjY0KF9fcDBfNDgyLCBfX3AxXzQ4MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80ODIgPSBfX3AwXzQ4MjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF80ODI7ICBfX3JldjBfNDgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODIsIF9fczBfNDgyLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzQ4MjsgXAogIF9fcmV0XzQ4MiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2Y2NChfX3JldjBfNDgyLCBfX3AxXzQ4Mik7IFwKICBfX3JldF80ODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2YzMihfX3AwXzQ4MywgX19wMV80ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDgzID0gX19wMF80ODM7IFwKICBmbG9hdDMyeDJfdCBfX3JldF80ODM7IFwKICBfX3JldF80ODMgPSBzcGxhdF9sYW5lcV9mMzIoX19zMF80ODMsIF9fcDFfNDgzKTsgXAogIF9fcmV0XzQ4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjMyKF9fcDBfNDg0LCBfX3AxXzQ4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF80ODQgPSBfX3AwXzQ4NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80ODQ7ICBfX3JldjBfNDg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODQsIF9fczBfNDg0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzQ4NDsgXAogIF9fcmV0XzQ4NCA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjBfNDg0LCBfX3AxXzQ4NCk7IFwKICBfX3JldF80ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODQsIF9fcmV0XzQ4NCwgMSwgMCk7IFwKICBfX3JldF80ODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX2YxNihfX3AwXzQ4NSwgX19wMV80ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4OF90IF9fczBfNDg1ID0gX19wMF80ODU7IFwKICBmbG9hdDE2eDRfdCBfX3JldF80ODU7IFwKICBfX3JldF80ODUgPSBzcGxhdF9sYW5lcV9mMTYoX19zMF80ODUsIF9fcDFfNDg1KTsgXAogIF9fcmV0XzQ4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfZjE2KF9fcDBfNDg2LCBfX3AxXzQ4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF80ODYgPSBfX3AwXzQ4NjsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF80ODY7ICBfX3JldjBfNDg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80ODYsIF9fczBfNDg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV0XzQ4NjsgXAogIF9fcmV0XzQ4NiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YxNihfX3JldjBfNDg2LCBfX3AxXzQ4Nik7IFwKICBfX3JldF80ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80ODYsIF9fcmV0XzQ4NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80ODY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2ZHVwX2xhbmVxX3MzMihfX3AwXzQ4NywgX19wMV80ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzQ4NyA9IF9fcDBfNDg3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzQ4NzsgXAogIF9fcmV0XzQ4NyA9IHNwbGF0X2xhbmVxX3MzMihfX3MwXzQ4NywgX19wMV80ODcpOyBcCiAgX19yZXRfNDg3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmR1cF9sYW5lcV9zMzIoX19wMF80ODgsIF9fcDFfNDg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF80ODggPSBfX3AwXzQ4ODsgXAogIGludDMyeDRfdCBfX3JldjBfNDg4OyAgX19yZXYwXzQ4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDg4LCBfX3MwXzQ4OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNDg4OyBcCiAgX19yZXRfNDg4ID0gX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MF80ODgsIF9fcDFfNDg4KTsgXAogIF9fcmV0XzQ4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ4OCwgX19yZXRfNDg4LCAxLCAwKTsgXAogIF9fcmV0XzQ4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZkdXBfbGFuZXFfczY0KF9fcDBfNDg5LCBfX3AxXzQ4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNDg5ID0gX19wMF80ODk7IFwKICBpbnQ2NHgxX3QgX19yZXRfNDg5OyBcCiAgX19yZXRfNDg5ID0gc3BsYXRfbGFuZXFfczY0KF9fczBfNDg5LCBfX3AxXzQ4OSk7IFwKICBfX3JldF80ODk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2ZHVwX2xhbmVxX3M2NChfX3AwXzQ5MCwgX19wMV80OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzQ5MCA9IF9fcDBfNDkwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF80OTA7ICBfX3JldjBfNDkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80OTAsIF9fczBfNDkwLCAxLCAwKTsgXAogIGludDY0eDFfdCBfX3JldF80OTA7IFwKICBfX3JldF80OTAgPSBfX25vc3dhcF9zcGxhdF9sYW5lcV9zNjQoX19yZXYwXzQ5MCwgX19wMV80OTApOyBcCiAgX19yZXRfNDkwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmR1cF9sYW5lcV9zMTYoX19wMF80OTEsIF9fcDFfNDkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF80OTEgPSBfX3AwXzQ5MTsgXAogIGludDE2eDRfdCBfX3JldF80OTE7IFwKICBfX3JldF80OTEgPSBzcGxhdF9sYW5lcV9zMTYoX19zMF80OTEsIF9fcDFfNDkxKTsgXAogIF9fcmV0XzQ5MTsgXAp9KQojZWxzZQojZGVmaW5lIHZkdXBfbGFuZXFfczE2KF9fcDBfNDkyLCBfX3AxXzQ5MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNDkyID0gX19wMF80OTI7IFwKICBpbnQxNng4X3QgX19yZXYwXzQ5MjsgIF9fcmV2MF80OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzQ5MiwgX19zMF80OTIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzQ5MjsgXAogIF9fcmV0XzQ5MiA9IF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjBfNDkyLCBfX3AxXzQ5Mik7IFwKICBfX3JldF80OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80OTIsIF9fcmV0XzQ5MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80OTI7IFwKfSkKI2VuZGlmCgpfX2FpIHBvbHk2NHgxX3QgdmR1cF9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdmR1cHFfbl9wNjQocG9seTY0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkge19fcDAsIF9fcDB9OwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdmR1cHFfbl9wNjQocG9seTY0X3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2ZHVwcV9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdmR1cHFfbl9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkge19fcDAsIF9fcDB9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZkdXBfbl9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkge19fcDB9OwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZleHRfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmV4dHFfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmV4dHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmV4dHFfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92ZXh0cV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZleHRxX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmV4dF9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZleHRfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0eDJfdCBfX25vc3dhcF92Zm1hcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAoaW50OHgxNl90KV9fcDIsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbWFfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgKGludDh4OF90KV9fcDIsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Zm1hZF9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmZtYWRfbGFuZV9mNjQoX19zMCwgX19zMSwgKGZsb2F0NjR4MV90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFzX2xhbmVfZjMyKF9fczAsIF9fczEsIChmbG9hdDMyeDJfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYXNfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmZtYXNfbGFuZV9mMzIoX19zMCwgX19zMSwgKGZsb2F0MzJ4Ml90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFzX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Zm1hc19sYW5lX2YzMihfX3MwLCBfX3MxLCAoZmxvYXQzMngyX3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYXFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3MyLCBfX3AzLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCBfX3AzLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Zm1hX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4OF90KV9fczIsIF9fcDMsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgX19wMywgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFfbGFuZV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCAoaW50OHg4X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFkX2xhbmVxX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmZtYWRfbGFuZXFfZjY0KF9fczAsIF9fczEsIChmbG9hdDY0eDJfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtYWRfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMSwgMCk7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFkX2xhbmVxX2Y2NChfX3MwLCBfX3MxLCAoZmxvYXQ2NHgyX3QpX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYWRfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hZF9sYW5lcV9mNjQoX19zMCwgX19zMSwgKGZsb2F0NjR4Ml90KV9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1hc19sYW5lcV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMl90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFzX2xhbmVxX2YzMihfX3MwLCBfX3MxLCAoZmxvYXQzMng0X3QpX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFzX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92Zm1hc19sYW5lcV9mMzIoX19zMCwgX19zMSwgKGZsb2F0MzJ4NF90KV9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFzX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdmZtYXNfbGFuZXFfZjMyKF9fczAsIF9fczEsIChmbG9hdDMyeDRfdClfX3MyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2Y2NChfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYXFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFxX2xhbmVxX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgNDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1hcV9sYW5lcV9mMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0MzJ4NF90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdmZtYXFfbGFuZXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCBfX3AzLCA0MSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2YzMihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBmbG9hdDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92Zm1hcV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCAoaW50OHgxNl90KV9fczIsIF9fcDMsIDQxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtYV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3JldjIsIF9fcDMsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmZtYV9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fczIgPSBfX3AyOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdmZtYV9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgKGludDh4MTZfdClfX3MyLCBfX3AzLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgX19wMywgOSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZmbWFfbGFuZXFfZjMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDMyeDRfdCBfX3MyID0gX19wMjsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZmbWFfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIChpbnQ4eDE2X3QpX19zMiwgX19wMywgOSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mNjQoX19wMCwgX19wMSwgKGZsb2F0NjR4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbWFxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCBfX3JldjEsIChmbG9hdDY0eDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2Zm1hX25fZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hX2Y2NChfX3AwLCBfX3AxLCAoZmxvYXQ2NHgxX3QpIHtfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mNjQoX19wMCwgLV9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCAtX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbXNfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjY0KF9fcDAsIC1fX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2Zm1zZF9sYW5lX2Y2NChfX3AwXzQ5MywgX19wMV80OTMsIF9fcDJfNDkzLCBfX3AzXzQ5MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNDkzID0gX19wMF80OTM7IFwKICBmbG9hdDY0X3QgX19zMV80OTMgPSBfX3AxXzQ5MzsgXAogIGZsb2F0NjR4MV90IF9fczJfNDkzID0gX19wMl80OTM7IFwKICBmbG9hdDY0X3QgX19yZXRfNDkzOyBcCiAgX19yZXRfNDkzID0gdmZtYWRfbGFuZV9mNjQoX19zMF80OTMsIC1fX3MxXzQ5MywgX19zMl80OTMsIF9fcDNfNDkzKTsgXAogIF9fcmV0XzQ5MzsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zc19sYW5lX2YzMihfX3AwXzQ5NCwgX19wMV80OTQsIF9fcDJfNDk0LCBfX3AzXzQ5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNDk0ID0gX19wMF80OTQ7IFwKICBmbG9hdDMyX3QgX19zMV80OTQgPSBfX3AxXzQ5NDsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNDk0ID0gX19wMl80OTQ7IFwKICBmbG9hdDMyX3QgX19yZXRfNDk0OyBcCiAgX19yZXRfNDk0ID0gdmZtYXNfbGFuZV9mMzIoX19zMF80OTQsIC1fX3MxXzQ5NCwgX19zMl80OTQsIF9fcDNfNDk0KTsgXAogIF9fcmV0XzQ5NDsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNzX2xhbmVfZjMyKF9fcDBfNDk1LCBfX3AxXzQ5NSwgX19wMl80OTUsIF9fcDNfNDk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMF80OTUgPSBfX3AwXzQ5NTsgXAogIGZsb2F0MzJfdCBfX3MxXzQ5NSA9IF9fcDFfNDk1OyBcCiAgZmxvYXQzMngyX3QgX19zMl80OTUgPSBfX3AyXzQ5NTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml80OTU7ICBfX3JldjJfNDk1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80OTUsIF9fczJfNDk1LCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldF80OTU7IFwKICBfX3JldF80OTUgPSBfX25vc3dhcF92Zm1hc19sYW5lX2YzMihfX3MwXzQ5NSwgLV9fczFfNDk1LCBfX3JldjJfNDk1LCBfX3AzXzQ5NSk7IFwKICBfX3JldF80OTU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zcV9sYW5lX2Y2NChfX3AwXzQ5NiwgX19wMV80OTYsIF9fcDJfNDk2LCBfX3AzXzQ5NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF80OTYgPSBfX3AwXzQ5NjsgXAogIGZsb2F0NjR4Ml90IF9fczFfNDk2ID0gX19wMV80OTY7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzQ5NiA9IF9fcDJfNDk2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNDk2OyBcCiAgX19yZXRfNDk2ID0gdmZtYXFfbGFuZV9mNjQoX19zMF80OTYsIC1fX3MxXzQ5NiwgX19zMl80OTYsIF9fcDNfNDk2KTsgXAogIF9fcmV0XzQ5NjsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVfZjY0KF9fcDBfNDk3LCBfX3AxXzQ5NywgX19wMl80OTcsIF9fcDNfNDk3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzQ5NyA9IF9fcDBfNDk3OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV80OTcgPSBfX3AxXzQ5NzsgXAogIGZsb2F0NjR4MV90IF9fczJfNDk3ID0gX19wMl80OTc7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNDk3OyAgX19yZXYwXzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNDk3LCBfX3MwXzQ5NywgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNDk3OyAgX19yZXYxXzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNDk3LCBfX3MxXzQ5NywgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF80OTc7IFwKICBfX3JldF80OTcgPSBfX25vc3dhcF92Zm1hcV9sYW5lX2Y2NChfX3JldjBfNDk3LCAtX19yZXYxXzQ5NywgX19zMl80OTcsIF9fcDNfNDk3KTsgXAogIF9fcmV0XzQ5NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzQ5NywgX19yZXRfNDk3LCAxLCAwKTsgXAogIF9fcmV0XzQ5NzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVfZjMyKF9fcDBfNDk4LCBfX3AxXzQ5OCwgX19wMl80OTgsIF9fcDNfNDk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzQ5OCA9IF9fcDBfNDk4OyBcCiAgZmxvYXQzMng0X3QgX19zMV80OTggPSBfX3AxXzQ5ODsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNDk4ID0gX19wMl80OTg7IFwKICBmbG9hdDMyeDRfdCBfX3JldF80OTg7IFwKICBfX3JldF80OTggPSB2Zm1hcV9sYW5lX2YzMihfX3MwXzQ5OCwgLV9fczFfNDk4LCBfX3MyXzQ5OCwgX19wM180OTgpOyBcCiAgX19yZXRfNDk4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc3FfbGFuZV9mMzIoX19wMF80OTksIF9fcDFfNDk5LCBfX3AyXzQ5OSwgX19wM180OTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNDk5ID0gX19wMF80OTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzQ5OSA9IF9fcDFfNDk5OyBcCiAgZmxvYXQzMngyX3QgX19zMl80OTkgPSBfX3AyXzQ5OTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF80OTk7ICBfX3JldjBfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF80OTksIF9fczBfNDk5LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV80OTk7ICBfX3JldjFfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV80OTksIF9fczFfNDk5LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2Ml80OTk7ICBfX3JldjJfNDk5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl80OTksIF9fczJfNDk5LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzQ5OTsgXAogIF9fcmV0XzQ5OSA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVfZjMyKF9fcmV2MF80OTksIC1fX3JldjFfNDk5LCBfX3JldjJfNDk5LCBfX3AzXzQ5OSk7IFwKICBfX3JldF80OTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF80OTksIF9fcmV0XzQ5OSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF80OTk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZmbXNfbGFuZV9mNjQoX19wMF81MDAsIF9fcDFfNTAwLCBfX3AyXzUwMCwgX19wM181MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfNTAwID0gX19wMF81MDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzUwMCA9IF9fcDFfNTAwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl81MDAgPSBfX3AyXzUwMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzUwMDsgXAogIF9fcmV0XzUwMCA9IHZmbWFfbGFuZV9mNjQoX19zMF81MDAsIC1fX3MxXzUwMCwgX19zMl81MDAsIF9fcDNfNTAwKTsgXAogIF9fcmV0XzUwMDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVfZjMyKF9fcDBfNTAxLCBfX3AxXzUwMSwgX19wMl81MDEsIF9fcDNfNTAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUwMSA9IF9fcDBfNTAxOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MDEgPSBfX3AxXzUwMTsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNTAxID0gX19wMl81MDE7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MDE7IFwKICBfX3JldF81MDEgPSB2Zm1hX2xhbmVfZjMyKF9fczBfNTAxLCAtX19zMV81MDEsIF9fczJfNTAxLCBfX3AzXzUwMSk7IFwKICBfX3JldF81MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zX2xhbmVfZjMyKF9fcDBfNTAyLCBfX3AxXzUwMiwgX19wMl81MDIsIF9fcDNfNTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUwMiA9IF9fcDBfNTAyOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MDIgPSBfX3AxXzUwMjsgXAogIGZsb2F0MzJ4Ml90IF9fczJfNTAyID0gX19wMl81MDI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTAyOyAgX19yZXYwXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTAyLCBfX3MwXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTAyOyAgX19yZXYxXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTAyLCBfX3MxXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjJfNTAyOyAgX19yZXYyXzUwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTAyLCBfX3MyXzUwMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MDI7IFwKICBfX3JldF81MDIgPSBfX25vc3dhcF92Zm1hX2xhbmVfZjMyKF9fcmV2MF81MDIsIC1fX3JldjFfNTAyLCBfX3JldjJfNTAyLCBfX3AzXzUwMik7IFwKICBfX3JldF81MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MDIsIF9fcmV0XzUwMiwgMSwgMCk7IFwKICBfX3JldF81MDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zZF9sYW5lcV9mNjQoX19wMF81MDMsIF9fcDFfNTAzLCBfX3AyXzUwMywgX19wM181MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzUwMyA9IF9fcDBfNTAzOyBcCiAgZmxvYXQ2NF90IF9fczFfNTAzID0gX19wMV81MDM7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUwMyA9IF9fcDJfNTAzOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzUwMzsgXAogIF9fcmV0XzUwMyA9IHZmbWFkX2xhbmVxX2Y2NChfX3MwXzUwMywgLV9fczFfNTAzLCBfX3MyXzUwMywgX19wM181MDMpOyBcCiAgX19yZXRfNTAzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtc2RfbGFuZXFfZjY0KF9fcDBfNTA0LCBfX3AxXzUwNCwgX19wMl81MDQsIF9fcDNfNTA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMF81MDQgPSBfX3AwXzUwNDsgXAogIGZsb2F0NjRfdCBfX3MxXzUwNCA9IF9fcDFfNTA0OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl81MDQgPSBfX3AyXzUwNDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml81MDQ7ICBfX3JldjJfNTA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MDQsIF9fczJfNTA0LCAxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3JldF81MDQ7IFwKICBfX3JldF81MDQgPSBfX25vc3dhcF92Zm1hZF9sYW5lcV9mNjQoX19zMF81MDQsIC1fX3MxXzUwNCwgX19yZXYyXzUwNCwgX19wM181MDQpOyBcCiAgX19yZXRfNTA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc3NfbGFuZXFfZjMyKF9fcDBfNTA1LCBfX3AxXzUwNSwgX19wMl81MDUsIF9fcDNfNTA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyX3QgX19zMF81MDUgPSBfX3AwXzUwNTsgXAogIGZsb2F0MzJfdCBfX3MxXzUwNSA9IF9fcDFfNTA1OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MDUgPSBfX3AyXzUwNTsgXAogIGZsb2F0MzJfdCBfX3JldF81MDU7IFwKICBfX3JldF81MDUgPSB2Zm1hc19sYW5lcV9mMzIoX19zMF81MDUsIC1fX3MxXzUwNSwgX19zMl81MDUsIF9fcDNfNTA1KTsgXAogIF9fcmV0XzUwNTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNzX2xhbmVxX2YzMihfX3AwXzUwNiwgX19wMV81MDYsIF9fcDJfNTA2LCBfX3AzXzUwNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNTA2ID0gX19wMF81MDY7IFwKICBmbG9hdDMyX3QgX19zMV81MDYgPSBfX3AxXzUwNjsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTA2ID0gX19wMl81MDY7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTA2OyAgX19yZXYyXzUwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTA2LCBfX3MyXzUwNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyX3QgX19yZXRfNTA2OyBcCiAgX19yZXRfNTA2ID0gX19ub3N3YXBfdmZtYXNfbGFuZXFfZjMyKF9fczBfNTA2LCAtX19zMV81MDYsIF9fcmV2Ml81MDYsIF9fcDNfNTA2KTsgXAogIF9fcmV0XzUwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbXNxX2xhbmVxX2Y2NChfX3AwXzUwNywgX19wMV81MDcsIF9fcDJfNTA3LCBfX3AzXzUwNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF81MDcgPSBfX3AwXzUwNzsgXAogIGZsb2F0NjR4Ml90IF9fczFfNTA3ID0gX19wMV81MDc7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUwNyA9IF9fcDJfNTA3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNTA3OyBcCiAgX19yZXRfNTA3ID0gdmZtYXFfbGFuZXFfZjY0KF9fczBfNTA3LCAtX19zMV81MDcsIF9fczJfNTA3LCBfX3AzXzUwNyk7IFwKICBfX3JldF81MDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1zcV9sYW5lcV9mNjQoX19wMF81MDgsIF9fcDFfNTA4LCBfX3AyXzUwOCwgX19wM181MDgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNTA4ID0gX19wMF81MDg7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzUwOCA9IF9fcDFfNTA4OyBcCiAgZmxvYXQ2NHgyX3QgX19zMl81MDggPSBfX3AyXzUwODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF81MDg7ICBfX3JldjBfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MDgsIF9fczBfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MV81MDg7ICBfX3JldjFfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MDgsIF9fczFfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV2Ml81MDg7ICBfX3JldjJfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MDgsIF9fczJfNTA4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzUwODsgXAogIF9fcmV0XzUwOCA9IF9fbm9zd2FwX3ZmbWFxX2xhbmVxX2Y2NChfX3JldjBfNTA4LCAtX19yZXYxXzUwOCwgX19yZXYyXzUwOCwgX19wM181MDgpOyBcCiAgX19yZXRfNTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTA4LCBfX3JldF81MDgsIDEsIDApOyBcCiAgX19yZXRfNTA4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtc3FfbGFuZXFfZjMyKF9fcDBfNTA5LCBfX3AxXzUwOSwgX19wMl81MDksIF9fcDNfNTA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzUwOSA9IF9fcDBfNTA5OyBcCiAgZmxvYXQzMng0X3QgX19zMV81MDkgPSBfX3AxXzUwOTsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTA5ID0gX19wMl81MDk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF81MDk7IFwKICBfX3JldF81MDkgPSB2Zm1hcV9sYW5lcV9mMzIoX19zMF81MDksIC1fX3MxXzUwOSwgX19zMl81MDksIF9fcDNfNTA5KTsgXAogIF9fcmV0XzUwOTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNxX2xhbmVxX2YzMihfX3AwXzUxMCwgX19wMV81MTAsIF9fcDJfNTEwLCBfX3AzXzUxMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81MTAgPSBfX3AwXzUxMDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTEwID0gX19wMV81MTA7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzUxMCA9IF9fcDJfNTEwOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzUxMDsgIF9fcmV2MF81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUxMCwgX19zMF81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzUxMDsgIF9fcmV2MV81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUxMCwgX19zMV81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzUxMDsgIF9fcmV2Ml81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUxMCwgX19zMl81MTAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTEwOyBcCiAgX19yZXRfNTEwID0gX19ub3N3YXBfdmZtYXFfbGFuZXFfZjMyKF9fcmV2MF81MTAsIC1fX3JldjFfNTEwLCBfX3JldjJfNTEwLCBfX3AzXzUxMCk7IFwKICBfX3JldF81MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MTAsIF9fcmV0XzUxMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVxX2Y2NChfX3AwXzUxMSwgX19wMV81MTEsIF9fcDJfNTExLCBfX3AzXzUxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF81MTEgPSBfX3AwXzUxMTsgXAogIGZsb2F0NjR4MV90IF9fczFfNTExID0gX19wMV81MTE7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzUxMSA9IF9fcDJfNTExOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfNTExOyBcCiAgX19yZXRfNTExID0gdmZtYV9sYW5lcV9mNjQoX19zMF81MTEsIC1fX3MxXzUxMSwgX19zMl81MTEsIF9fcDNfNTExKTsgXAogIF9fcmV0XzUxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbGFuZXFfZjY0KF9fcDBfNTEyLCBfX3AxXzUxMiwgX19wMl81MTIsIF9fcDNfNTEyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzUxMiA9IF9fcDBfNTEyOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV81MTIgPSBfX3AxXzUxMjsgXAogIGZsb2F0NjR4Ml90IF9fczJfNTEyID0gX19wMl81MTI7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfNTEyOyAgX19yZXYyXzUxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTEyLCBfX3MyXzUxMiwgMSwgMCk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF81MTI7IFwKICBfX3JldF81MTIgPSBfX25vc3dhcF92Zm1hX2xhbmVxX2Y2NChfX3MwXzUxMiwgLV9fczFfNTEyLCBfX3JldjJfNTEyLCBfX3AzXzUxMik7IFwKICBfX3JldF81MTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1zX2xhbmVxX2YzMihfX3AwXzUxMywgX19wMV81MTMsIF9fcDJfNTEzLCBfX3AzXzUxMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF81MTMgPSBfX3AwXzUxMzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNTEzID0gX19wMV81MTM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzUxMyA9IF9fcDJfNTEzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNTEzOyBcCiAgX19yZXRfNTEzID0gdmZtYV9sYW5lcV9mMzIoX19zMF81MTMsIC1fX3MxXzUxMywgX19zMl81MTMsIF9fcDNfNTEzKTsgXAogIF9fcmV0XzUxMzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbXNfbGFuZXFfZjMyKF9fcDBfNTE0LCBfX3AxXzUxNCwgX19wMl81MTQsIF9fcDNfNTE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUxNCA9IF9fcDBfNTE0OyBcCiAgZmxvYXQzMngyX3QgX19zMV81MTQgPSBfX3AxXzUxNDsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTE0ID0gX19wMl81MTQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTE0OyAgX19yZXYwXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTE0LCBfX3MwXzUxNCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTE0OyAgX19yZXYxXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTE0LCBfX3MxXzUxNCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTE0OyAgX19yZXYyXzUxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTE0LCBfX3MyXzUxNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MTQ7IFwKICBfX3JldF81MTQgPSBfX25vc3dhcF92Zm1hX2xhbmVxX2YzMihfX3JldjBfNTE0LCAtX19yZXYxXzUxNCwgX19yZXYyXzUxNCwgX19wM181MTQpOyBcCiAgX19yZXRfNTE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTE0LCBfX3JldF81MTQsIDEsIDApOyBcCiAgX19yZXRfNTE0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdmZtc3Ffbl9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NF90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZmbWFxX2Y2NChfX3AwLCAtX19wMSwgKGZsb2F0NjR4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZmbXNxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjRfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Zm1hcV9mNjQoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQ2NHgyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZmbXNxX25fZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEsIGZsb2F0MzJfdCBfX3AyKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Zm1hcV9mMzIoX19wMCwgLV9fcDEsIChmbG9hdDMyeDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Zm1zcV9uX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYXFfZjMyKF9fcmV2MCwgLV9fcmV2MSwgKGZsb2F0MzJ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZmbXNfbl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NF90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjY0KF9fcDAsIC1fX3AxLCAoZmxvYXQ2NHgxX3QpIHtfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZmbXNfbl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSwgZmxvYXQzMl90IF9fcDIpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IHZmbWFfZjMyKF9fcDAsIC1fX3AxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdmZtc19uX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxLCBmbG9hdDMyX3QgX19wMikgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmZtYV9mMzIoX19yZXYwLCAtX19yZXYxLCAoZmxvYXQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgxX3QgdmdldF9oaWdoX3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDFfdCB2Z2V0X2hpZ2hfcDY0KHBvbHk2NHgyX3QgX19wMCkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYwLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBwb2x5NjR4MV90IF9fbm9zd2FwX3ZnZXRfaGlnaF9wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4MV90IHZnZXRfaGlnaF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgxX3QgdmdldF9oaWdoX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MCwgMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2Z2V0X2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0X2xhbmVfaTY0KChwb2x5NjR4MV90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChwb2x5NjR4Ml90KV9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Z2V0cV9sYW5lX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIHBvbHk2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfaTY0KChwb2x5NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2k2NCgocG9seTY0eDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmdldHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0X3QgX19yZXQ7IFwKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZnZXRxX2xhbmVfZjY0KChmbG9hdDY0eDJfdClfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldHFfbGFuZV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmdldHFfbGFuZV9mNjQoKGZsb2F0NjR4Ml90KV9fcmV2MCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92Z2V0cV9sYW5lX2Y2NCgoZmxvYXQ2NHgyX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmdldF9sYW5lX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdmdldF9sYW5lX2Y2NCgoZmxvYXQ2NHgxX3QpX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5NjR4MV90IHZnZXRfbG93X3A2NChwb2x5NjR4Ml90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDFfdCB2Z2V0X2xvd19wNjQocG9seTY0eDJfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4MV90IHZnZXRfbG93X2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDFfdCB2Z2V0X2xvd19mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjAsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdmxkMV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfdihfX3AwLCAzOCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV92KF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3YoX19wMCwgNDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfdihfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9kdXBfdihfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDJfdCkgX19idWlsdGluX25lb25fdmxkMXFfZHVwX3YoX19wMCwgMzgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2R1cF92KF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9kdXBfdihfX3AwLCA0Mik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFfZHVwX3YoX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdmxkMV9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bGQxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzgpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgNDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bGQxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQxX3A2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gyX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX3A2NF94MihfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9wNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDJfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfZjY0X3gyKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94Ml92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQxcV9mNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gyX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkMV9mNjRfeDIoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDJfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMV9wNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94M192KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9wNjRfeDMoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfcDY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3gzX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDFxX2Y2NF94MyhfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDNfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMXFfZjY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94M192KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDFfZjY0X3gzKF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxX3gzX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDFfcDY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFfeDRfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMXFfcDY0X3g0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX3A2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQxcV94NF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQxcV9mNjRfeDQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDFxX3g0X3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDFxX2Y2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMXFfeDRfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQxX2Y2NF94NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMV94NF92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQyX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV92KCZfX3JldCwgX19wMCwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQycV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfczY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfdigmX19yZXQsIF9fcDAsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQyX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQyX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9kdXBfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2R1cF92KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDJfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9kdXBfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MXgyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQyX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzYpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM2KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHBvbHk2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDQ4KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkMnFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDMyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkMnFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2eDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQycV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDJxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQycV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDJxX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIGludDY0eDJ4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMnFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDM1KTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQyX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE5KTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDJfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkMl9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4Ml90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkMl9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgMyk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfdigmX19yZXQsIF9fcDAsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfdTY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX3YoJl9fcmV0LCBfX3AwLCA1MSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9zNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV92KCZfX3JldCwgX19wMCwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDNfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfZHVwX3A2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2R1cF92KCZfX3JldCwgX19wMCwgMzgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9kdXBfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfZHVwX2Y2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfZHVwX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkM19kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2R1cF92KCZfX3JldCwgX19wMCwgMTApOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQzX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgxeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM2KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzYpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDNxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBwb2x5NjR4MngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0OCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDUxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkM3FfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDNfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDNxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkM3FfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNngzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzcV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDNxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgNDIpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzUpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIGludDY0eDJ4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM3FfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzUpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZsZDNfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAxOSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDNfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MXgzX3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQzX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkM19sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4M190IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkM19sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCAzKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF92KCZfX3JldCwgX19wMCwgNik7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3U2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNTEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV91NjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfdigmX19yZXQsIF9fcDAsIDUxKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCA0Mik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX3M2NChfX3AwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX3YoJl9fcmV0LCBfX3AwLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkNF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfdigmX19yZXQsIF9fcDAsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9kdXBfcDY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2R1cF9wNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfZHVwX3YoJl9fcmV0LCBfX3AwLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2R1cF92KCZfX3JldCwgX19wMCwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9kdXBfZjY0KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9kdXBfdigmX19yZXQsIF9fcDAsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bGQ0X2R1cF9mNjQoX19wMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRfZHVwX3YoJl9fcmV0LCBfX3AwLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZsZDRfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDYpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzNik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfcDgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTh4MTZ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgcG9seTh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDM4KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzOCk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfdTgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2eDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDgpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCA1MSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIHVpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNTEpOyBcCiBcCiAgX19yZXQudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzBdLCBfX3JldC52YWxbMF0sIDEsIDApOyBcCiAgX19yZXQudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzFdLCBfX3JldC52YWxbMV0sIDEsIDApOyBcCiAgX19yZXQudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzJdLCBfX3JldC52YWxbMl0sIDEsIDApOyBcCiAgX19yZXQudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQudmFsWzNdLCBfX3JldC52YWxbM10sIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bGQ0cV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZsZDRxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ4eDE2eDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMik7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZsZDRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bGQ0cV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0cV9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDQyKTsgXAogXAogIF9fcmV0LnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFswXSwgX19yZXQudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsxXSwgX19yZXQudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFsyXSwgX19yZXQudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV0LnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LnZhbFszXSwgX19yZXQudmFsWzNdLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmxkNHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldDsgXAogIF9fYnVpbHRpbl9uZW9uX3ZsZDRxX2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDM1KTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmxkNHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIGludDY0eDJ4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNHFfbGFuZV92KCZfX3JldCwgX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNSk7IFwKIFwKICBfX3JldC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMF0sIF9fcmV0LnZhbFswXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMV0sIF9fcmV0LnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbMl0sIF9fcmV0LnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldC52YWxbM10sIF9fcmV0LnZhbFszXSwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdmxkNF9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MXg0X3QgX19yZXQ7IFwKICBfX2J1aWx0aW5fbmVvbl92bGQ0X2xhbmVfdigmX19yZXQsIF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTkpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGQ0X2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdmxkNF9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDF4NF90IF9fcmV0OyBcCiAgX19idWlsdGluX25lb25fdmxkNF9sYW5lX3YoJl9fcmV0LCBfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDMpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2bGRycV9wMTI4KF9fcDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxMjhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHkxMjhfdCkgX19idWlsdGluX25lb25fdmxkcnFfcDEyOChfX3AwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtYXhxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bWF4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtYXhfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdm1heF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3Qgdm1heG5tdnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12cV9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZtYXhubXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtYXhubXZxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heG5tdnFfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWF4bm12cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXhubXZxX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWF4bm12X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heG5tdl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXhubXZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4bm12X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3Qgdm1heHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1heHZxX3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3Qgdm1heHZxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJfdCB2bWF4dnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZtYXh2cV91MzIodWludDMyeDRfdCBfX3AwKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1heHZxX3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNl90IHZtYXh2cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV91MTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2X3Qgdm1heHZxX3UxNih1aW50MTZ4OF90IF9fcDApIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZtYXh2cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3Qgdm1heHZxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zOChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2bWF4dnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2bWF4dnFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtYXh2cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXh2cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMl90IHZtYXh2cV9zMzIoaW50MzJ4NF90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2cV9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2bWF4dnFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdm1heHZxX3MzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3Qgdm1heHZxX3MxNihpbnQxNng4X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1heHZxX3MxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNl90IHZtYXh2cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dnFfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDhfdCB2bWF4dl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1heHZfdTgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDhfdCB2bWF4dl91OCh1aW50OHg4X3QgX19wMCkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3U4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3Qgdm1heHZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl91MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyX3Qgdm1heHZfdTMyKHVpbnQzMngyX3QgX19wMCkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3UzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNl90IHZtYXh2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1heHZfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZtYXh2X3UxNih1aW50MTZ4NF90IF9fcDApIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl91MTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4X3Qgdm1heHZfczgoaW50OHg4X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDhfdCB2bWF4dl9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdm1heHZfczgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3Qgdm1heHZfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZtYXh2X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1heHZfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2bWF4dl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMl90IHZtYXh2X3MzMihpbnQzMngyX3QgX19wMCkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtYXh2X3MzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2X3Qgdm1heHZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2bWF4dl9zMTYoaW50MTZ4NF90IF9fcDApIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWF4dl9zMTYoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWlucV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm1pbnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2bWluX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZtaW5ubXZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbm5tdnFfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2bWlubm12cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZxX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWlubm12cV9mMzIoZmxvYXQzMng0X3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZxX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3Qgdm1pbm5tdnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWlubm12cV9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3Qgdm1pbm5tdl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW5ubXZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWlubm12X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1pbm5tdl9mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OF90IHZtaW52cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV91OChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OF90IHZtaW52cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3U4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyX3Qgdm1pbnZxX3UzMih1aW50MzJ4NF90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3UzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJfdCB2bWludnFfdTMyKHVpbnQzMng0X3QgX19wMCkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2bWludnFfdTE2KHVpbnQxNng4X3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNl90IHZtaW52cV91MTYodWludDE2eDhfdCBfX3AwKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3UxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDhfdCB2bWludnFfczgoaW50OHgxNl90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczgoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OF90IHZtaW52cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczgoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3Qgdm1pbnZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0X3Qgdm1pbnZxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm1pbnZxX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2bWludnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWludnFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJfdCB2bWludnFfczMyKGludDMyeDRfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludnFfczMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyX3Qgdm1pbnZxX3MzMihpbnQzMng0X3QgX19wMCkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZtaW52cV9zMTYoaW50MTZ4OF90IF9fcDApIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52cV9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZfdCB2bWludnFfczE2KGludDE2eDhfdCBfX3AwKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZxX3MxNihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4X3Qgdm1pbnZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3U4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4X3Qgdm1pbnZfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludl91OChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMl90IHZtaW52X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZfdTMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMl90IHZtaW52X3UzMih1aW50MzJ4Ml90IF9fcDApIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl91MzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZfdCB2bWludl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3UxNihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZfdCB2bWludl91MTYodWludDE2eDRfdCBfX3AwKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfdTE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OF90IHZtaW52X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zOChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4X3Qgdm1pbnZfczgoaW50OHg4X3QgX19wMCkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X3M4KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMl90IHZtaW52X2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdm1pbnZfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2bWludl9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZtaW52X2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyX3Qgdm1pbnZfczMyKGludDMyeDJfdCBfX3AwKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJfdCB2bWludl9zMzIoaW50MzJ4Ml90IF9fcDApIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92bWludl9zMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNl90IHZtaW52X3MxNihpbnQxNng0X3QgX19wMCkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2X3Qgdm1pbnZfczE2KGludDE2eDRfdCBfX3AwKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdm1pbnZfczE2KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3Qgdm1sYXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEsIGZsb2F0NjR4Ml90IF9fcDIpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bWxhcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19yZXYxICogX19yZXYyOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtbGFfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEsIGZsb2F0NjR4MV90IF9fcDIpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX3AxICogX19wMjsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYXFfbGFuZXFfdTMyKF9fcDBfNTE1LCBfX3AxXzUxNSwgX19wMl81MTUsIF9fcDNfNTE1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTE1ID0gX19wMF81MTU7IFwKICB1aW50MzJ4NF90IF9fczFfNTE1ID0gX19wMV81MTU7IFwKICB1aW50MzJ4NF90IF9fczJfNTE1ID0gX19wMl81MTU7IFwKICB1aW50MzJ4NF90IF9fcmV0XzUxNTsgXAogIF9fcmV0XzUxNSA9IF9fczBfNTE1ICsgX19zMV81MTUgKiBzcGxhdHFfbGFuZXFfdTMyKF9fczJfNTE1LCBfX3AzXzUxNSk7IFwKICBfX3JldF81MTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV91MzIoX19wMF81MTYsIF9fcDFfNTE2LCBfX3AyXzUxNiwgX19wM181MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81MTYgPSBfX3AwXzUxNjsgXAogIHVpbnQzMng0X3QgX19zMV81MTYgPSBfX3AxXzUxNjsgXAogIHVpbnQzMng0X3QgX19zMl81MTYgPSBfX3AyXzUxNjsgXAogIHVpbnQzMng0X3QgX19yZXYwXzUxNjsgIF9fcmV2MF81MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUxNiwgX19zMF81MTYsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNTE2OyAgX19yZXYxXzUxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTE2LCBfX3MxXzUxNiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml81MTY7ICBfX3JldjJfNTE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MTYsIF9fczJfNTE2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTE2OyBcCiAgX19yZXRfNTE2ID0gX19yZXYwXzUxNiArIF9fcmV2MV81MTYgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTMyKF9fcmV2Ml81MTYsIF9fcDNfNTE2KTsgXAogIF9fcmV0XzUxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUxNiwgX19yZXRfNTE2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUxNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVxX3UxNihfX3AwXzUxNywgX19wMV81MTcsIF9fcDJfNTE3LCBfX3AzXzUxNykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzUxNyA9IF9fcDBfNTE3OyBcCiAgdWludDE2eDhfdCBfX3MxXzUxNyA9IF9fcDFfNTE3OyBcCiAgdWludDE2eDhfdCBfX3MyXzUxNyA9IF9fcDJfNTE3OyBcCiAgdWludDE2eDhfdCBfX3JldF81MTc7IFwKICBfX3JldF81MTcgPSBfX3MwXzUxNyArIF9fczFfNTE3ICogc3BsYXRxX2xhbmVxX3UxNihfX3MyXzUxNywgX19wM181MTcpOyBcCiAgX19yZXRfNTE3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZXFfdTE2KF9fcDBfNTE4LCBfX3AxXzUxOCwgX19wMl81MTgsIF9fcDNfNTE4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNTE4ID0gX19wMF81MTg7IFwKICB1aW50MTZ4OF90IF9fczFfNTE4ID0gX19wMV81MTg7IFwKICB1aW50MTZ4OF90IF9fczJfNTE4ID0gX19wMl81MTg7IFwKICB1aW50MTZ4OF90IF9fcmV2MF81MTg7ICBfX3JldjBfNTE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MTgsIF9fczBfNTE4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzUxODsgIF9fcmV2MV81MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUxOCwgX19zMV81MTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNTE4OyAgX19yZXYyXzUxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTE4LCBfX3MyXzUxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV0XzUxODsgXAogIF9fcmV0XzUxOCA9IF9fcmV2MF81MTggKyBfX3JldjFfNTE4ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3UxNihfX3JldjJfNTE4LCBfX3AzXzUxOCk7IFwKICBfX3JldF81MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MTgsIF9fcmV0XzUxOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lcV9mMzIoX19wMF81MTksIF9fcDFfNTE5LCBfX3AyXzUxOSwgX19wM181MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNTE5ID0gX19wMF81MTk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzUxOSA9IF9fcDFfNTE5OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MTkgPSBfX3AyXzUxOTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzUxOTsgXAogIF9fcmV0XzUxOSA9IF9fczBfNTE5ICsgX19zMV81MTkgKiBzcGxhdHFfbGFuZXFfZjMyKF9fczJfNTE5LCBfX3AzXzUxOSk7IFwKICBfX3JldF81MTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV9mMzIoX19wMF81MjAsIF9fcDFfNTIwLCBfX3AyXzUyMCwgX19wM181MjApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNTIwID0gX19wMF81MjA7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzUyMCA9IF9fcDFfNTIwOyBcCiAgZmxvYXQzMng0X3QgX19zMl81MjAgPSBfX3AyXzUyMDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF81MjA7ICBfX3JldjBfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MjAsIF9fczBfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV81MjA7ICBfX3JldjFfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MjAsIF9fczFfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml81MjA7ICBfX3JldjJfNTIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjAsIF9fczJfNTIwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzUyMDsgXAogIF9fcmV0XzUyMCA9IF9fcmV2MF81MjAgKyBfX3JldjFfNTIwICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YzMihfX3JldjJfNTIwLCBfX3AzXzUyMCk7IFwKICBfX3JldF81MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MjAsIF9fcmV0XzUyMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhcV9sYW5lcV9zMzIoX19wMF81MjEsIF9fcDFfNTIxLCBfX3AyXzUyMSwgX19wM181MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzUyMSA9IF9fcDBfNTIxOyBcCiAgaW50MzJ4NF90IF9fczFfNTIxID0gX19wMV81MjE7IFwKICBpbnQzMng0X3QgX19zMl81MjEgPSBfX3AyXzUyMTsgXAogIGludDMyeDRfdCBfX3JldF81MjE7IFwKICBfX3JldF81MjEgPSBfX3MwXzUyMSArIF9fczFfNTIxICogc3BsYXRxX2xhbmVxX3MzMihfX3MyXzUyMSwgX19wM181MjEpOyBcCiAgX19yZXRfNTIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYXFfbGFuZXFfczMyKF9fcDBfNTIyLCBfX3AxXzUyMiwgX19wMl81MjIsIF9fcDNfNTIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81MjIgPSBfX3AwXzUyMjsgXAogIGludDMyeDRfdCBfX3MxXzUyMiA9IF9fcDFfNTIyOyBcCiAgaW50MzJ4NF90IF9fczJfNTIyID0gX19wMl81MjI7IFwKICBpbnQzMng0X3QgX19yZXYwXzUyMjsgIF9fcmV2MF81MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyMiwgX19zMF81MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV81MjI7ICBfX3JldjFfNTIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MjIsIF9fczFfNTIyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTIyOyAgX19yZXYyXzUyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTIyLCBfX3MyXzUyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTIyOyBcCiAgX19yZXRfNTIyID0gX19yZXYwXzUyMiArIF9fcmV2MV81MjIgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfczMyKF9fcmV2Ml81MjIsIF9fcDNfNTIyKTsgXAogIF9fcmV0XzUyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUyMiwgX19yZXRfNTIyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFxX2xhbmVxX3MxNihfX3AwXzUyMywgX19wMV81MjMsIF9fcDJfNTIzLCBfX3AzXzUyMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTIzID0gX19wMF81MjM7IFwKICBpbnQxNng4X3QgX19zMV81MjMgPSBfX3AxXzUyMzsgXAogIGludDE2eDhfdCBfX3MyXzUyMyA9IF9fcDJfNTIzOyBcCiAgaW50MTZ4OF90IF9fcmV0XzUyMzsgXAogIF9fcmV0XzUyMyA9IF9fczBfNTIzICsgX19zMV81MjMgKiBzcGxhdHFfbGFuZXFfczE2KF9fczJfNTIzLCBfX3AzXzUyMyk7IFwKICBfX3JldF81MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhcV9sYW5lcV9zMTYoX19wMF81MjQsIF9fcDFfNTI0LCBfX3AyXzUyNCwgX19wM181MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzUyNCA9IF9fcDBfNTI0OyBcCiAgaW50MTZ4OF90IF9fczFfNTI0ID0gX19wMV81MjQ7IFwKICBpbnQxNng4X3QgX19zMl81MjQgPSBfX3AyXzUyNDsgXAogIGludDE2eDhfdCBfX3JldjBfNTI0OyAgX19yZXYwXzUyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTI0LCBfX3MwXzUyNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzUyNDsgIF9fcmV2MV81MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzUyNCwgX19zMV81MjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml81MjQ7ICBfX3JldjJfNTI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjQsIF9fczJfNTI0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldF81MjQ7IFwKICBfX3JldF81MjQgPSBfX3JldjBfNTI0ICsgX19yZXYxXzUyNCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYyXzUyNCwgX19wM181MjQpOyBcCiAgX19yZXRfNTI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI0LCBfX3JldF81MjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV91MzIoX19wMF81MjUsIF9fcDFfNTI1LCBfX3AyXzUyNSwgX19wM181MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MjUgPSBfX3AwXzUyNTsgXAogIHVpbnQzMngyX3QgX19zMV81MjUgPSBfX3AxXzUyNTsgXAogIHVpbnQzMng0X3QgX19zMl81MjUgPSBfX3AyXzUyNTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTI1OyBcCiAgX19yZXRfNTI1ID0gX19zMF81MjUgKyBfX3MxXzUyNSAqIHNwbGF0X2xhbmVxX3UzMihfX3MyXzUyNSwgX19wM181MjUpOyBcCiAgX19yZXRfNTI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lcV91MzIoX19wMF81MjYsIF9fcDFfNTI2LCBfX3AyXzUyNiwgX19wM181MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF81MjYgPSBfX3AwXzUyNjsgXAogIHVpbnQzMngyX3QgX19zMV81MjYgPSBfX3AxXzUyNjsgXAogIHVpbnQzMng0X3QgX19zMl81MjYgPSBfX3AyXzUyNjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzUyNjsgIF9fcmV2MF81MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyNiwgX19zMF81MjYsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjFfNTI2OyAgX19yZXYxXzUyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTI2LCBfX3MxXzUyNiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2Ml81MjY7ICBfX3JldjJfNTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjYsIF9fczJfNTI2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNTI2OyBcCiAgX19yZXRfNTI2ID0gX19yZXYwXzUyNiArIF9fcmV2MV81MjYgKiBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19yZXYyXzUyNiwgX19wM181MjYpOyBcCiAgX19yZXRfNTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI2LCBfX3JldF81MjYsIDEsIDApOyBcCiAgX19yZXRfNTI2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV91MTYoX19wMF81MjcsIF9fcDFfNTI3LCBfX3AyXzUyNywgX19wM181MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF81MjcgPSBfX3AwXzUyNzsgXAogIHVpbnQxNng0X3QgX19zMV81MjcgPSBfX3AxXzUyNzsgXAogIHVpbnQxNng4X3QgX19zMl81MjcgPSBfX3AyXzUyNzsgXAogIHVpbnQxNng0X3QgX19yZXRfNTI3OyBcCiAgX19yZXRfNTI3ID0gX19zMF81MjcgKyBfX3MxXzUyNyAqIHNwbGF0X2xhbmVxX3UxNihfX3MyXzUyNywgX19wM181MjcpOyBcCiAgX19yZXRfNTI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYV9sYW5lcV91MTYoX19wMF81MjgsIF9fcDFfNTI4LCBfX3AyXzUyOCwgX19wM181MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF81MjggPSBfX3AwXzUyODsgXAogIHVpbnQxNng0X3QgX19zMV81MjggPSBfX3AxXzUyODsgXAogIHVpbnQxNng4X3QgX19zMl81MjggPSBfX3AyXzUyODsgXAogIHVpbnQxNng0X3QgX19yZXYwXzUyODsgIF9fcmV2MF81MjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUyOCwgX19zMF81MjgsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTI4OyAgX19yZXYxXzUyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTI4LCBfX3MxXzUyOCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81Mjg7ICBfX3JldjJfNTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MjgsIF9fczJfNTI4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXRfNTI4OyBcCiAgX19yZXRfNTI4ID0gX19yZXYwXzUyOCArIF9fcmV2MV81MjggKiBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzUyOCwgX19wM181MjgpOyBcCiAgX19yZXRfNTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTI4LCBfX3JldF81MjgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTI4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV9mMzIoX19wMF81MjksIF9fcDFfNTI5LCBfX3AyXzUyOSwgX19wM181MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTI5ID0gX19wMF81Mjk7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzUyOSA9IF9fcDFfNTI5OyBcCiAgZmxvYXQzMng0X3QgX19zMl81MjkgPSBfX3AyXzUyOTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzUyOTsgXAogIF9fcmV0XzUyOSA9IF9fczBfNTI5ICsgX19zMV81MjkgKiBzcGxhdF9sYW5lcV9mMzIoX19zMl81MjksIF9fcDNfNTI5KTsgXAogIF9fcmV0XzUyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFfbGFuZXFfZjMyKF9fcDBfNTMwLCBfX3AxXzUzMCwgX19wMl81MzAsIF9fcDNfNTMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzUzMCA9IF9fcDBfNTMwOyBcCiAgZmxvYXQzMngyX3QgX19zMV81MzAgPSBfX3AxXzUzMDsgXAogIGZsb2F0MzJ4NF90IF9fczJfNTMwID0gX19wMl81MzA7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNTMwOyAgX19yZXYwXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTMwLCBfX3MwXzUzMCwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldjFfNTMwOyAgX19yZXYxXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTMwLCBfX3MxXzUzMCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjJfNTMwOyAgX19yZXYyXzUzMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTMwLCBfX3MyXzUzMCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF81MzA7IFwKICBfX3JldF81MzAgPSBfX3JldjBfNTMwICsgX19yZXYxXzUzMCAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjJfNTMwLCBfX3AzXzUzMCk7IFwKICBfX3JldF81MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MzAsIF9fcmV0XzUzMCwgMSwgMCk7IFwKICBfX3JldF81MzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhX2xhbmVxX3MzMihfX3AwXzUzMSwgX19wMV81MzEsIF9fcDJfNTMxLCBfX3AzXzUzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNTMxID0gX19wMF81MzE7IFwKICBpbnQzMngyX3QgX19zMV81MzEgPSBfX3AxXzUzMTsgXAogIGludDMyeDRfdCBfX3MyXzUzMSA9IF9fcDJfNTMxOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzUzMTsgXAogIF9fcmV0XzUzMSA9IF9fczBfNTMxICsgX19zMV81MzEgKiBzcGxhdF9sYW5lcV9zMzIoX19zMl81MzEsIF9fcDNfNTMxKTsgXAogIF9fcmV0XzUzMTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFfbGFuZXFfczMyKF9fcDBfNTMyLCBfX3AxXzUzMiwgX19wMl81MzIsIF9fcDNfNTMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81MzIgPSBfX3AwXzUzMjsgXAogIGludDMyeDJfdCBfX3MxXzUzMiA9IF9fcDFfNTMyOyBcCiAgaW50MzJ4NF90IF9fczJfNTMyID0gX19wMl81MzI7IFwKICBpbnQzMngyX3QgX19yZXYwXzUzMjsgIF9fcmV2MF81MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUzMiwgX19zMF81MzIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV81MzI7ICBfX3JldjFfNTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MzIsIF9fczFfNTMyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTMyOyAgX19yZXYyXzUzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTMyLCBfX3MyXzUzMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNTMyOyBcCiAgX19yZXRfNTMyID0gX19yZXYwXzUzMiArIF9fcmV2MV81MzIgKiBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzUzMiwgX19wM181MzIpOyBcCiAgX19yZXRfNTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTMyLCBfX3JldF81MzIsIDEsIDApOyBcCiAgX19yZXRfNTMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYV9sYW5lcV9zMTYoX19wMF81MzMsIF9fcDFfNTMzLCBfX3AyXzUzMywgX19wM181MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzUzMyA9IF9fcDBfNTMzOyBcCiAgaW50MTZ4NF90IF9fczFfNTMzID0gX19wMV81MzM7IFwKICBpbnQxNng4X3QgX19zMl81MzMgPSBfX3AyXzUzMzsgXAogIGludDE2eDRfdCBfX3JldF81MzM7IFwKICBfX3JldF81MzMgPSBfX3MwXzUzMyArIF9fczFfNTMzICogc3BsYXRfbGFuZXFfczE2KF9fczJfNTMzLCBfX3AzXzUzMyk7IFwKICBfX3JldF81MzM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhX2xhbmVxX3MxNihfX3AwXzUzNCwgX19wMV81MzQsIF9fcDJfNTM0LCBfX3AzXzUzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNTM0ID0gX19wMF81MzQ7IFwKICBpbnQxNng0X3QgX19zMV81MzQgPSBfX3AxXzUzNDsgXAogIGludDE2eDhfdCBfX3MyXzUzNCA9IF9fcDJfNTM0OyBcCiAgaW50MTZ4NF90IF9fcmV2MF81MzQ7ICBfX3JldjBfNTM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81MzQsIF9fczBfNTM0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNTM0OyAgX19yZXYxXzUzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTM0LCBfX3MxXzUzNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzUzNDsgIF9fcmV2Ml81MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzNCwgX19zMl81MzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0XzUzNDsgXAogIF9fcmV0XzUzNCA9IF9fcmV2MF81MzQgKyBfX3JldjFfNTM0ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81MzQsIF9fcDNfNTM0KTsgXAogIF9fcmV0XzUzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzUzNCwgX19yZXRfNTM0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzUzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV91MzIoX19wMF81MzUsIF9fcDFfNTM1LCBfX3AyXzUzNSwgX19wM181MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81MzUgPSBfX3AwXzUzNTsgXAogIHVpbnQzMng0X3QgX19zMV81MzUgPSBfX3AxXzUzNTsgXAogIHVpbnQzMngyX3QgX19zMl81MzUgPSBfX3AyXzUzNTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTM1OyBcCiAgX19yZXRfNTM1ID0gX19zMF81MzUgKyB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MxXzUzNSksIHNwbGF0X2xhbmVfdTMyKF9fczJfNTM1LCBfX3AzXzUzNSkpOyBcCiAgX19yZXRfNTM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3UzMihfX3AwXzUzNiwgX19wMV81MzYsIF9fcDJfNTM2LCBfX3AzXzUzNikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzUzNiA9IF9fcDBfNTM2OyBcCiAgdWludDMyeDRfdCBfX3MxXzUzNiA9IF9fcDFfNTM2OyBcCiAgdWludDMyeDJfdCBfX3MyXzUzNiA9IF9fcDJfNTM2OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTM2OyAgX19yZXYwXzUzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTM2LCBfX3MwXzUzNiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81MzY7ICBfX3JldjFfNTM2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81MzYsIF9fczFfNTM2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzUzNjsgIF9fcmV2Ml81MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzUzNiwgX19zMl81MzYsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81MzY7IFwKICBfX3JldF81MzYgPSBfX3JldjBfNTM2ICsgX19ub3N3YXBfdm11bGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxXzUzNiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml81MzYsIF9fcDNfNTM2KSk7IFwKICBfX3JldF81MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81MzYsIF9fcmV0XzUzNiwgMSwgMCk7IFwKICBfX3JldF81MzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfdTE2KF9fcDBfNTM3LCBfX3AxXzUzNywgX19wMl81MzcsIF9fcDNfNTM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTM3ID0gX19wMF81Mzc7IFwKICB1aW50MTZ4OF90IF9fczFfNTM3ID0gX19wMV81Mzc7IFwKICB1aW50MTZ4NF90IF9fczJfNTM3ID0gX19wMl81Mzc7IFwKICB1aW50MzJ4NF90IF9fcmV0XzUzNzsgXAogIF9fcmV0XzUzNyA9IF9fczBfNTM3ICsgdm11bGxfdTE2KHZnZXRfaGlnaF91MTYoX19zMV81MzcpLCBzcGxhdF9sYW5lX3UxNihfX3MyXzUzNywgX19wM181MzcpKTsgXAogIF9fcmV0XzUzNzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV91MTYoX19wMF81MzgsIF9fcDFfNTM4LCBfX3AyXzUzOCwgX19wM181MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81MzggPSBfX3AwXzUzODsgXAogIHVpbnQxNng4X3QgX19zMV81MzggPSBfX3AxXzUzODsgXAogIHVpbnQxNng0X3QgX19zMl81MzggPSBfX3AyXzUzODsgXAogIHVpbnQzMng0X3QgX19yZXYwXzUzODsgIF9fcmV2MF81MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzUzOCwgX19zMF81MzgsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTM4OyAgX19yZXYxXzUzOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTM4LCBfX3MxXzUzOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2Ml81Mzg7ICBfX3JldjJfNTM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81MzgsIF9fczJfNTM4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTM4OyBcCiAgX19yZXRfNTM4ID0gX19yZXYwXzUzOCArIF9fbm9zd2FwX3ZtdWxsX3UxNihfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MV81MzgpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3UxNihfX3JldjJfNTM4LCBfX3AzXzUzOCkpOyBcCiAgX19yZXRfNTM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTM4LCBfX3JldF81MzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTM4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3MzMihfX3AwXzUzOSwgX19wMV81MzksIF9fcDJfNTM5LCBfX3AzXzUzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTM5ID0gX19wMF81Mzk7IFwKICBpbnQzMng0X3QgX19zMV81MzkgPSBfX3AxXzUzOTsgXAogIGludDMyeDJfdCBfX3MyXzUzOSA9IF9fcDJfNTM5OyBcCiAgaW50NjR4Ml90IF9fcmV0XzUzOTsgXAogIF9fcmV0XzUzOSA9IF9fczBfNTM5ICsgdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMV81MzkpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzUzOSwgX19wM181MzkpKTsgXAogIF9fcmV0XzUzOTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZV9zMzIoX19wMF81NDAsIF9fcDFfNTQwLCBfX3AyXzU0MCwgX19wM181NDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzU0MCA9IF9fcDBfNTQwOyBcCiAgaW50MzJ4NF90IF9fczFfNTQwID0gX19wMV81NDA7IFwKICBpbnQzMngyX3QgX19zMl81NDAgPSBfX3AyXzU0MDsgXAogIGludDY0eDJfdCBfX3JldjBfNTQwOyAgX19yZXYwXzU0MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTQwLCBfX3MwXzU0MCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzU0MDsgIF9fcmV2MV81NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU0MCwgX19zMV81NDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml81NDA7ICBfX3JldjJfNTQwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NDAsIF9fczJfNTQwLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF81NDA7IFwKICBfX3JldF81NDAgPSBfX3JldjBfNTQwICsgX19ub3N3YXBfdm11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzU0MCksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml81NDAsIF9fcDNfNTQwKSk7IFwKICBfX3JldF81NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDAsIF9fcmV0XzU0MCwgMSwgMCk7IFwKICBfX3JldF81NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVfczE2KF9fcDBfNTQxLCBfX3AxXzU0MSwgX19wMl81NDEsIF9fcDNfNTQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81NDEgPSBfX3AwXzU0MTsgXAogIGludDE2eDhfdCBfX3MxXzU0MSA9IF9fcDFfNTQxOyBcCiAgaW50MTZ4NF90IF9fczJfNTQxID0gX19wMl81NDE7IFwKICBpbnQzMng0X3QgX19yZXRfNTQxOyBcCiAgX19yZXRfNTQxID0gX19zMF81NDEgKyB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MxXzU0MSksIHNwbGF0X2xhbmVfczE2KF9fczJfNTQxLCBfX3AzXzU0MSkpOyBcCiAgX19yZXRfNTQxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lX3MxNihfX3AwXzU0MiwgX19wMV81NDIsIF9fcDJfNTQyLCBfX3AzXzU0MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTQyID0gX19wMF81NDI7IFwKICBpbnQxNng4X3QgX19zMV81NDIgPSBfX3AxXzU0MjsgXAogIGludDE2eDRfdCBfX3MyXzU0MiA9IF9fcDJfNTQyOyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NDI7ICBfX3JldjBfNTQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDIsIF9fczBfNTQyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTQyOyAgX19yZXYxXzU0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTQyLCBfX3MxXzU0MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzU0MjsgIF9fcmV2Ml81NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0MiwgX19zMl81NDIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU0MjsgXAogIF9fcmV0XzU0MiA9IF9fcmV2MF81NDIgKyBfX25vc3dhcF92bXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNTQyKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzU0MiwgX19wM181NDIpKTsgXAogIF9fcmV0XzU0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU0MiwgX19yZXRfNTQyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU0MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNTQzLCBfX3AxXzU0MywgX19wMl81NDMsIF9fcDNfNTQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTQzID0gX19wMF81NDM7IFwKICB1aW50MzJ4NF90IF9fczFfNTQzID0gX19wMV81NDM7IFwKICB1aW50MzJ4NF90IF9fczJfNTQzID0gX19wMl81NDM7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU0MzsgXAogIF9fcmV0XzU0MyA9IF9fczBfNTQzICsgdm11bGxfdTMyKHZnZXRfaGlnaF91MzIoX19zMV81NDMpLCBzcGxhdF9sYW5lcV91MzIoX19zMl81NDMsIF9fcDNfNTQzKSk7IFwKICBfX3JldF81NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3UzMihfX3AwXzU0NCwgX19wMV81NDQsIF9fcDJfNTQ0LCBfX3AzXzU0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU0NCA9IF9fcDBfNTQ0OyBcCiAgdWludDMyeDRfdCBfX3MxXzU0NCA9IF9fcDFfNTQ0OyBcCiAgdWludDMyeDRfdCBfX3MyXzU0NCA9IF9fcDJfNTQ0OyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTQ0OyAgX19yZXYwXzU0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTQ0LCBfX3MwXzU0NCwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81NDQ7ICBfX3JldjFfNTQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NDQsIF9fczFfNTQ0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU0NDsgIF9fcmV2Ml81NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0NCwgX19zMl81NDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81NDQ7IFwKICBfX3JldF81NDQgPSBfX3JldjBfNTQ0ICsgX19ub3N3YXBfdm11bGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxXzU0NCksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTQ0LCBfX3AzXzU0NCkpOyBcCiAgX19yZXRfNTQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTQ0LCBfX3JldF81NDQsIDEsIDApOyBcCiAgX19yZXRfNTQ0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfaGlnaF9sYW5lcV91MTYoX19wMF81NDUsIF9fcDFfNTQ1LCBfX3AyXzU0NSwgX19wM181NDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NDUgPSBfX3AwXzU0NTsgXAogIHVpbnQxNng4X3QgX19zMV81NDUgPSBfX3AxXzU0NTsgXAogIHVpbnQxNng4X3QgX19zMl81NDUgPSBfX3AyXzU0NTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTQ1OyBcCiAgX19yZXRfNTQ1ID0gX19zMF81NDUgKyB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MxXzU0NSksIHNwbGF0X2xhbmVxX3UxNihfX3MyXzU0NSwgX19wM181NDUpKTsgXAogIF9fcmV0XzU0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2hpZ2hfbGFuZXFfdTE2KF9fcDBfNTQ2LCBfX3AxXzU0NiwgX19wMl81NDYsIF9fcDNfNTQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTQ2ID0gX19wMF81NDY7IFwKICB1aW50MTZ4OF90IF9fczFfNTQ2ID0gX19wMV81NDY7IFwKICB1aW50MTZ4OF90IF9fczJfNTQ2ID0gX19wMl81NDY7IFwKICB1aW50MzJ4NF90IF9fcmV2MF81NDY7ICBfX3JldjBfNTQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDYsIF9fczBfNTQ2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzU0NjsgIF9fcmV2MV81NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU0NiwgX19zMV81NDYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjJfNTQ2OyAgX19yZXYyXzU0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTQ2LCBfX3MyXzU0NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0XzU0NjsgXAogIF9fcmV0XzU0NiA9IF9fcmV2MF81NDYgKyBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjFfNTQ2KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2Ml81NDYsIF9fcDNfNTQ2KSk7IFwKICBfX3JldF81NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDYsIF9fcmV0XzU0NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MzMihfX3AwXzU0NywgX19wMV81NDcsIF9fcDJfNTQ3LCBfX3AzXzU0NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTQ3ID0gX19wMF81NDc7IFwKICBpbnQzMng0X3QgX19zMV81NDcgPSBfX3AxXzU0NzsgXAogIGludDMyeDRfdCBfX3MyXzU0NyA9IF9fcDJfNTQ3OyBcCiAgaW50NjR4Ml90IF9fcmV0XzU0NzsgXAogIF9fcmV0XzU0NyA9IF9fczBfNTQ3ICsgdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMV81NDcpLCBzcGxhdF9sYW5lcV9zMzIoX19zMl81NDcsIF9fcDNfNTQ3KSk7IFwKICBfX3JldF81NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MzMihfX3AwXzU0OCwgX19wMV81NDgsIF9fcDJfNTQ4LCBfX3AzXzU0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTQ4ID0gX19wMF81NDg7IFwKICBpbnQzMng0X3QgX19zMV81NDggPSBfX3AxXzU0ODsgXAogIGludDMyeDRfdCBfX3MyXzU0OCA9IF9fcDJfNTQ4OyBcCiAgaW50NjR4Ml90IF9fcmV2MF81NDg7ICBfX3JldjBfNTQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NDgsIF9fczBfNTQ4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNTQ4OyAgX19yZXYxXzU0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTQ4LCBfX3MxXzU0OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzU0ODsgIF9fcmV2Ml81NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU0OCwgX19zMl81NDgsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzU0ODsgXAogIF9fcmV0XzU0OCA9IF9fcmV2MF81NDggKyBfX25vc3dhcF92bXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjFfNTQ4KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml81NDgsIF9fcDNfNTQ4KSk7IFwKICBfX3JldF81NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NDgsIF9fcmV0XzU0OCwgMSwgMCk7IFwKICBfX3JldF81NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MxNihfX3AwXzU0OSwgX19wMV81NDksIF9fcDJfNTQ5LCBfX3AzXzU0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTQ5ID0gX19wMF81NDk7IFwKICBpbnQxNng4X3QgX19zMV81NDkgPSBfX3AxXzU0OTsgXAogIGludDE2eDhfdCBfX3MyXzU0OSA9IF9fcDJfNTQ5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzU0OTsgXAogIF9fcmV0XzU0OSA9IF9fczBfNTQ5ICsgdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMV81NDkpLCBzcGxhdF9sYW5lcV9zMTYoX19zMl81NDksIF9fcDNfNTQ5KSk7IFwKICBfX3JldF81NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9oaWdoX2xhbmVxX3MxNihfX3AwXzU1MCwgX19wMV81NTAsIF9fcDJfNTUwLCBfX3AzXzU1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTUwID0gX19wMF81NTA7IFwKICBpbnQxNng4X3QgX19zMV81NTAgPSBfX3AxXzU1MDsgXAogIGludDE2eDhfdCBfX3MyXzU1MCA9IF9fcDJfNTUwOyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NTA7ICBfX3JldjBfNTUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NTAsIF9fczBfNTUwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTUwOyAgX19yZXYxXzU1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTUwLCBfX3MxXzU1MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU1MDsgIF9fcmV2Ml81NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1MCwgX19zMl81NTAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU1MDsgXAogIF9fcmV0XzU1MCA9IF9fcmV2MF81NTAgKyBfX25vc3dhcF92bXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNTUwKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81NTAsIF9fcDNfNTUwKSk7IFwKICBfX3JldF81NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NTAsIF9fcmV0XzU1MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lcV91MzIoX19wMF81NTEsIF9fcDFfNTUxLCBfX3AyXzU1MSwgX19wM181NTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81NTEgPSBfX3AwXzU1MTsgXAogIHVpbnQzMngyX3QgX19zMV81NTEgPSBfX3AxXzU1MTsgXAogIHVpbnQzMng0X3QgX19zMl81NTEgPSBfX3AyXzU1MTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTUxOyBcCiAgX19yZXRfNTUxID0gX19zMF81NTEgKyB2bXVsbF91MzIoX19zMV81NTEsIHNwbGF0X2xhbmVxX3UzMihfX3MyXzU1MSwgX19wM181NTEpKTsgXAogIF9fcmV0XzU1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVxX3UzMihfX3AwXzU1MiwgX19wMV81NTIsIF9fcDJfNTUyLCBfX3AzXzU1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU1MiA9IF9fcDBfNTUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzU1MiA9IF9fcDFfNTUyOyBcCiAgdWludDMyeDRfdCBfX3MyXzU1MiA9IF9fcDJfNTUyOyBcCiAgdWludDY0eDJfdCBfX3JldjBfNTUyOyAgX19yZXYwXzU1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTUyLCBfX3MwXzU1MiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81NTI7ICBfX3JldjFfNTUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NTIsIF9fczFfNTUyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU1MjsgIF9fcmV2Ml81NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1MiwgX19zMl81NTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF81NTI7IFwKICBfX3JldF81NTIgPSBfX3JldjBfNTUyICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV81NTIsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTUyLCBfX3AzXzU1MikpOyBcCiAgX19yZXRfNTUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTUyLCBfX3JldF81NTIsIDEsIDApOyBcCiAgX19yZXRfNTUyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZXFfdTE2KF9fcDBfNTUzLCBfX3AxXzU1MywgX19wMl81NTMsIF9fcDNfNTUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNTUzID0gX19wMF81NTM7IFwKICB1aW50MTZ4NF90IF9fczFfNTUzID0gX19wMV81NTM7IFwKICB1aW50MTZ4OF90IF9fczJfNTUzID0gX19wMl81NTM7IFwKICB1aW50MzJ4NF90IF9fcmV0XzU1MzsgXAogIF9fcmV0XzU1MyA9IF9fczBfNTUzICsgdm11bGxfdTE2KF9fczFfNTUzLCBzcGxhdF9sYW5lcV91MTYoX19zMl81NTMsIF9fcDNfNTUzKSk7IFwKICBfX3JldF81NTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lcV91MTYoX19wMF81NTQsIF9fcDFfNTU0LCBfX3AyXzU1NCwgX19wM181NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NTQgPSBfX3AwXzU1NDsgXAogIHVpbnQxNng0X3QgX19zMV81NTQgPSBfX3AxXzU1NDsgXAogIHVpbnQxNng4X3QgX19zMl81NTQgPSBfX3AyXzU1NDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzU1NDsgIF9fcmV2MF81NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU1NCwgX19zMF81NTQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldjFfNTU0OyAgX19yZXYxXzU1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTU0LCBfX3MxXzU1NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81NTQ7ICBfX3JldjJfNTU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NTQsIF9fczJfNTU0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTU0OyBcCiAgX19yZXRfNTU0ID0gX19yZXYwXzU1NCArIF9fbm9zd2FwX3ZtdWxsX3UxNihfX3JldjFfNTU0LCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzU1NCwgX19wM181NTQpKTsgXAogIF9fcmV0XzU1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU1NCwgX19yZXRfNTU0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbGFsX2xhbmVxX3MzMihfX3AwXzU1NSwgX19wMV81NTUsIF9fcDJfNTU1LCBfX3AzXzU1NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTU1ID0gX19wMF81NTU7IFwKICBpbnQzMngyX3QgX19zMV81NTUgPSBfX3AxXzU1NTsgXAogIGludDMyeDRfdCBfX3MyXzU1NSA9IF9fcDJfNTU1OyBcCiAgaW50NjR4Ml90IF9fcmV0XzU1NTsgXAogIF9fcmV0XzU1NSA9IF9fczBfNTU1ICsgdm11bGxfczMyKF9fczFfNTU1LCBzcGxhdF9sYW5lcV9zMzIoX19zMl81NTUsIF9fcDNfNTU1KSk7IFwKICBfX3JldF81NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lcV9zMzIoX19wMF81NTYsIF9fcDFfNTU2LCBfX3AyXzU1NiwgX19wM181NTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzU1NiA9IF9fcDBfNTU2OyBcCiAgaW50MzJ4Ml90IF9fczFfNTU2ID0gX19wMV81NTY7IFwKICBpbnQzMng0X3QgX19zMl81NTYgPSBfX3AyXzU1NjsgXAogIGludDY0eDJfdCBfX3JldjBfNTU2OyAgX19yZXYwXzU1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTU2LCBfX3MwXzU1NiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU1NjsgIF9fcmV2MV81NTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU1NiwgX19zMV81NTYsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NTY7ICBfX3JldjJfNTU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NTYsIF9fczJfNTU2LCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF81NTY7IFwKICBfX3JldF81NTYgPSBfX3JldjBfNTU2ICsgX19ub3N3YXBfdm11bGxfczMyKF9fcmV2MV81NTYsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjJfNTU2LCBfX3AzXzU1NikpOyBcCiAgX19yZXRfNTU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTU2LCBfX3JldF81NTYsIDEsIDApOyBcCiAgX19yZXRfNTU2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZXFfczE2KF9fcDBfNTU3LCBfX3AxXzU1NywgX19wMl81NTcsIF9fcDNfNTU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81NTcgPSBfX3AwXzU1NzsgXAogIGludDE2eDRfdCBfX3MxXzU1NyA9IF9fcDFfNTU3OyBcCiAgaW50MTZ4OF90IF9fczJfNTU3ID0gX19wMl81NTc7IFwKICBpbnQzMng0X3QgX19yZXRfNTU3OyBcCiAgX19yZXRfNTU3ID0gX19zMF81NTcgKyB2bXVsbF9zMTYoX19zMV81NTcsIHNwbGF0X2xhbmVxX3MxNihfX3MyXzU1NywgX19wM181NTcpKTsgXAogIF9fcmV0XzU1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVxX3MxNihfX3AwXzU1OCwgX19wMV81NTgsIF9fcDJfNTU4LCBfX3AzXzU1OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTU4ID0gX19wMF81NTg7IFwKICBpbnQxNng0X3QgX19zMV81NTggPSBfX3AxXzU1ODsgXAogIGludDE2eDhfdCBfX3MyXzU1OCA9IF9fcDJfNTU4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF81NTg7ICBfX3JldjBfNTU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NTgsIF9fczBfNTU4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNTU4OyAgX19yZXYxXzU1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTU4LCBfX3MxXzU1OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU1ODsgIF9fcmV2Ml81NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU1OCwgX19zMl81NTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzU1ODsgXAogIF9fcmV0XzU1OCA9IF9fcmV2MF81NTggKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzU1OCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2Ml81NTgsIF9fcDNfNTU4KSk7IFwKICBfX3JldF81NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NTgsIF9fcmV0XzU1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bWxzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSwgZmxvYXQ2NHgyX3QgX19wMikgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtbHNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxLCBmbG9hdDY0eDJfdCBfX3AyKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjEgKiBfX3JldjI7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1sc19mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSwgZmxvYXQ2NHgxX3QgX19wMikgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDEgKiBfX3AyOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzcV9sYW5lcV91MzIoX19wMF81NTksIF9fcDFfNTU5LCBfX3AyXzU1OSwgX19wM181NTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81NTkgPSBfX3AwXzU1OTsgXAogIHVpbnQzMng0X3QgX19zMV81NTkgPSBfX3AxXzU1OTsgXAogIHVpbnQzMng0X3QgX19zMl81NTkgPSBfX3AyXzU1OTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTU5OyBcCiAgX19yZXRfNTU5ID0gX19zMF81NTkgLSBfX3MxXzU1OSAqIHNwbGF0cV9sYW5lcV91MzIoX19zMl81NTksIF9fcDNfNTU5KTsgXAogIF9fcmV0XzU1OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX3UzMihfX3AwXzU2MCwgX19wMV81NjAsIF9fcDJfNTYwLCBfX3AzXzU2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU2MCA9IF9fcDBfNTYwOyBcCiAgdWludDMyeDRfdCBfX3MxXzU2MCA9IF9fcDFfNTYwOyBcCiAgdWludDMyeDRfdCBfX3MyXzU2MCA9IF9fcDJfNTYwOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTYwOyAgX19yZXYwXzU2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTYwLCBfX3MwXzU2MCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV81NjA7ICBfX3JldjFfNTYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NjAsIF9fczFfNTYwLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU2MDsgIF9fcmV2Ml81NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2MCwgX19zMl81NjAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81NjA7IFwKICBfX3JldF81NjAgPSBfX3JldjBfNTYwIC0gX19yZXYxXzU2MCAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19yZXYyXzU2MCwgX19wM181NjApOyBcCiAgX19yZXRfNTYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTYwLCBfX3JldF81NjAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTYwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZXFfdTE2KF9fcDBfNTYxLCBfX3AxXzU2MSwgX19wMl81NjEsIF9fcDNfNTYxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNTYxID0gX19wMF81NjE7IFwKICB1aW50MTZ4OF90IF9fczFfNTYxID0gX19wMV81NjE7IFwKICB1aW50MTZ4OF90IF9fczJfNTYxID0gX19wMl81NjE7IFwKICB1aW50MTZ4OF90IF9fcmV0XzU2MTsgXAogIF9fcmV0XzU2MSA9IF9fczBfNTYxIC0gX19zMV81NjEgKiBzcGxhdHFfbGFuZXFfdTE2KF9fczJfNTYxLCBfX3AzXzU2MSk7IFwKICBfX3JldF81NjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lcV91MTYoX19wMF81NjIsIF9fcDFfNTYyLCBfX3AyXzU2MiwgX19wM181NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF81NjIgPSBfX3AwXzU2MjsgXAogIHVpbnQxNng4X3QgX19zMV81NjIgPSBfX3AxXzU2MjsgXAogIHVpbnQxNng4X3QgX19zMl81NjIgPSBfX3AyXzU2MjsgXAogIHVpbnQxNng4X3QgX19yZXYwXzU2MjsgIF9fcmV2MF81NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU2MiwgX19zMF81NjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTYyOyAgX19yZXYxXzU2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTYyLCBfX3MxXzU2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81NjI7ICBfX3JldjJfNTYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NjIsIF9fczJfNTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNTYyOyBcCiAgX19yZXRfNTYyID0gX19yZXYwXzU2MiAtIF9fcmV2MV81NjIgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfdTE2KF9fcmV2Ml81NjIsIF9fcDNfNTYyKTsgXAogIF9fcmV0XzU2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU2MiwgX19yZXRfNTYyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU2MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVxX2YzMihfX3AwXzU2MywgX19wMV81NjMsIF9fcDJfNTYzLCBfX3AzXzU2MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81NjMgPSBfX3AwXzU2MzsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTYzID0gX19wMV81NjM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU2MyA9IF9fcDJfNTYzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTYzOyBcCiAgX19yZXRfNTYzID0gX19zMF81NjMgLSBfX3MxXzU2MyAqIHNwbGF0cV9sYW5lcV9mMzIoX19zMl81NjMsIF9fcDNfNTYzKTsgXAogIF9fcmV0XzU2MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX2YzMihfX3AwXzU2NCwgX19wMV81NjQsIF9fcDJfNTY0LCBfX3AzXzU2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF81NjQgPSBfX3AwXzU2NDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNTY0ID0gX19wMV81NjQ7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU2NCA9IF9fcDJfNTY0OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzU2NDsgIF9fcmV2MF81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU2NCwgX19zMF81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzU2NDsgIF9fcmV2MV81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU2NCwgX19zMV81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYyXzU2NDsgIF9fcmV2Ml81NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2NCwgX19zMl81NjQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNTY0OyBcCiAgX19yZXRfNTY0ID0gX19yZXYwXzU2NCAtIF9fcmV2MV81NjQgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2Ml81NjQsIF9fcDNfNTY0KTsgXAogIF9fcmV0XzU2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU2NCwgX19yZXRfNTY0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU2NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNxX2xhbmVxX3MzMihfX3AwXzU2NSwgX19wMV81NjUsIF9fcDJfNTY1LCBfX3AzXzU2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNTY1ID0gX19wMF81NjU7IFwKICBpbnQzMng0X3QgX19zMV81NjUgPSBfX3AxXzU2NTsgXAogIGludDMyeDRfdCBfX3MyXzU2NSA9IF9fcDJfNTY1OyBcCiAgaW50MzJ4NF90IF9fcmV0XzU2NTsgXAogIF9fcmV0XzU2NSA9IF9fczBfNTY1IC0gX19zMV81NjUgKiBzcGxhdHFfbGFuZXFfczMyKF9fczJfNTY1LCBfX3AzXzU2NSk7IFwKICBfX3JldF81NjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzcV9sYW5lcV9zMzIoX19wMF81NjYsIF9fcDFfNTY2LCBfX3AyXzU2NiwgX19wM181NjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzU2NiA9IF9fcDBfNTY2OyBcCiAgaW50MzJ4NF90IF9fczFfNTY2ID0gX19wMV81NjY7IFwKICBpbnQzMng0X3QgX19zMl81NjYgPSBfX3AyXzU2NjsgXAogIGludDMyeDRfdCBfX3JldjBfNTY2OyAgX19yZXYwXzU2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTY2LCBfX3MwXzU2NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzU2NjsgIF9fcmV2MV81NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU2NiwgX19zMV81NjYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NjY7ICBfX3JldjJfNTY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NjYsIF9fczJfNTY2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF81NjY7IFwKICBfX3JldF81NjYgPSBfX3JldjBfNTY2IC0gX19yZXYxXzU2NiAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoX19yZXYyXzU2NiwgX19wM181NjYpOyBcCiAgX19yZXRfNTY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTY2LCBfX3JldF81NjYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTY2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc3FfbGFuZXFfczE2KF9fcDBfNTY3LCBfX3AxXzU2NywgX19wMl81NjcsIF9fcDNfNTY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF81NjcgPSBfX3AwXzU2NzsgXAogIGludDE2eDhfdCBfX3MxXzU2NyA9IF9fcDFfNTY3OyBcCiAgaW50MTZ4OF90IF9fczJfNTY3ID0gX19wMl81Njc7IFwKICBpbnQxNng4X3QgX19yZXRfNTY3OyBcCiAgX19yZXRfNTY3ID0gX19zMF81NjcgLSBfX3MxXzU2NyAqIHNwbGF0cV9sYW5lcV9zMTYoX19zMl81NjcsIF9fcDNfNTY3KTsgXAogIF9fcmV0XzU2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNxX2xhbmVxX3MxNihfX3AwXzU2OCwgX19wMV81NjgsIF9fcDJfNTY4LCBfX3AzXzU2OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNTY4ID0gX19wMF81Njg7IFwKICBpbnQxNng4X3QgX19zMV81NjggPSBfX3AxXzU2ODsgXAogIGludDE2eDhfdCBfX3MyXzU2OCA9IF9fcDJfNTY4OyBcCiAgaW50MTZ4OF90IF9fcmV2MF81Njg7ICBfX3JldjBfNTY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NjgsIF9fczBfNTY4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNTY4OyAgX19yZXYxXzU2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTY4LCBfX3MxXzU2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYyXzU2ODsgIF9fcmV2Ml81NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU2OCwgX19zMl81NjgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzU2ODsgXAogIF9fcmV0XzU2OCA9IF9fcmV2MF81NjggLSBfX3JldjFfNTY4ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MxNihfX3JldjJfNTY4LCBfX3AzXzU2OCk7IFwKICBfX3JldF81NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NjgsIF9fcmV0XzU2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3UzMihfX3AwXzU2OSwgX19wMV81NjksIF9fcDJfNTY5LCBfX3AzXzU2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzU2OSA9IF9fcDBfNTY5OyBcCiAgdWludDMyeDJfdCBfX3MxXzU2OSA9IF9fcDFfNTY5OyBcCiAgdWludDMyeDRfdCBfX3MyXzU2OSA9IF9fcDJfNTY5OyBcCiAgdWludDMyeDJfdCBfX3JldF81Njk7IFwKICBfX3JldF81NjkgPSBfX3MwXzU2OSAtIF9fczFfNTY5ICogc3BsYXRfbGFuZXFfdTMyKF9fczJfNTY5LCBfX3AzXzU2OSk7IFwKICBfX3JldF81Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzX2xhbmVxX3UzMihfX3AwXzU3MCwgX19wMV81NzAsIF9fcDJfNTcwLCBfX3AzXzU3MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzU3MCA9IF9fcDBfNTcwOyBcCiAgdWludDMyeDJfdCBfX3MxXzU3MCA9IF9fcDFfNTcwOyBcCiAgdWludDMyeDRfdCBfX3MyXzU3MCA9IF9fcDJfNTcwOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNTcwOyAgX19yZXYwXzU3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcwLCBfX3MwXzU3MCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV81NzA7ICBfX3JldjFfNTcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzAsIF9fczFfNTcwLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYyXzU3MDsgIF9fcmV2Ml81NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3MCwgX19zMl81NzAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldF81NzA7IFwKICBfX3JldF81NzAgPSBfX3JldjBfNTcwIC0gX19yZXYxXzU3MCAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjJfNTcwLCBfX3AzXzU3MCk7IFwKICBfX3JldF81NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzAsIF9fcmV0XzU3MCwgMSwgMCk7IFwKICBfX3JldF81NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3UxNihfX3AwXzU3MSwgX19wMV81NzEsIF9fcDJfNTcxLCBfX3AzXzU3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU3MSA9IF9fcDBfNTcxOyBcCiAgdWludDE2eDRfdCBfX3MxXzU3MSA9IF9fcDFfNTcxOyBcCiAgdWludDE2eDhfdCBfX3MyXzU3MSA9IF9fcDJfNTcxOyBcCiAgdWludDE2eDRfdCBfX3JldF81NzE7IFwKICBfX3JldF81NzEgPSBfX3MwXzU3MSAtIF9fczFfNTcxICogc3BsYXRfbGFuZXFfdTE2KF9fczJfNTcxLCBfX3AzXzU3MSk7IFwKICBfX3JldF81NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzX2xhbmVxX3UxNihfX3AwXzU3MiwgX19wMV81NzIsIF9fcDJfNTcyLCBfX3AzXzU3MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzU3MiA9IF9fcDBfNTcyOyBcCiAgdWludDE2eDRfdCBfX3MxXzU3MiA9IF9fcDFfNTcyOyBcCiAgdWludDE2eDhfdCBfX3MyXzU3MiA9IF9fcDJfNTcyOyBcCiAgdWludDE2eDRfdCBfX3JldjBfNTcyOyAgX19yZXYwXzU3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTcyLCBfX3MwXzU3MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV81NzI7ICBfX3JldjFfNTcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzIsIF9fczFfNTcyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYyXzU3MjsgIF9fcmV2Ml81NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU3MiwgX19zMl81NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF81NzI7IFwKICBfX3JldF81NzIgPSBfX3JldjBfNTcyIC0gX19yZXYxXzU3MiAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjJfNTcyLCBfX3AzXzU3Mik7IFwKICBfX3JldF81NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzIsIF9fcmV0XzU3MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81NzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX2YzMihfX3AwXzU3MywgX19wMV81NzMsIF9fcDJfNTczLCBfX3AzXzU3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF81NzMgPSBfX3AwXzU3MzsgXAogIGZsb2F0MzJ4Ml90IF9fczFfNTczID0gX19wMV81NzM7IFwKICBmbG9hdDMyeDRfdCBfX3MyXzU3MyA9IF9fcDJfNTczOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNTczOyBcCiAgX19yZXRfNTczID0gX19zMF81NzMgLSBfX3MxXzU3MyAqIHNwbGF0X2xhbmVxX2YzMihfX3MyXzU3MywgX19wM181NzMpOyBcCiAgX19yZXRfNTczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lcV9mMzIoX19wMF81NzQsIF9fcDFfNTc0LCBfX3AyXzU3NCwgX19wM181NzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNTc0ID0gX19wMF81NzQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzU3NCA9IF9fcDFfNTc0OyBcCiAgZmxvYXQzMng0X3QgX19zMl81NzQgPSBfX3AyXzU3NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF81NzQ7ICBfX3JldjBfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81NzQsIF9fczBfNTc0LCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV81NzQ7ICBfX3JldjFfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzQsIF9fczFfNTc0LCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2Ml81NzQ7ICBfX3JldjJfNTc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NzQsIF9fczJfNTc0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0XzU3NDsgXAogIF9fcmV0XzU3NCA9IF9fcmV2MF81NzQgLSBfX3JldjFfNTc0ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcmV2Ml81NzQsIF9fcDNfNTc0KTsgXAogIF9fcmV0XzU3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU3NCwgX19yZXRfNTc0LCAxLCAwKTsgXAogIF9fcmV0XzU3NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNfbGFuZXFfczMyKF9fcDBfNTc1LCBfX3AxXzU3NSwgX19wMl81NzUsIF9fcDNfNTc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF81NzUgPSBfX3AwXzU3NTsgXAogIGludDMyeDJfdCBfX3MxXzU3NSA9IF9fcDFfNTc1OyBcCiAgaW50MzJ4NF90IF9fczJfNTc1ID0gX19wMl81NzU7IFwKICBpbnQzMngyX3QgX19yZXRfNTc1OyBcCiAgX19yZXRfNTc1ID0gX19zMF81NzUgLSBfX3MxXzU3NSAqIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU3NSwgX19wM181NzUpOyBcCiAgX19yZXRfNTc1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc19sYW5lcV9zMzIoX19wMF81NzYsIF9fcDFfNTc2LCBfX3AyXzU3NiwgX19wM181NzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzU3NiA9IF9fcDBfNTc2OyBcCiAgaW50MzJ4Ml90IF9fczFfNTc2ID0gX19wMV81NzY7IFwKICBpbnQzMng0X3QgX19zMl81NzYgPSBfX3AyXzU3NjsgXAogIGludDMyeDJfdCBfX3JldjBfNTc2OyAgX19yZXYwXzU3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTc2LCBfX3MwXzU3NiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxXzU3NjsgIF9fcmV2MV81NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU3NiwgX19zMV81NzYsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml81NzY7ICBfX3JldjJfNTc2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81NzYsIF9fczJfNTc2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldF81NzY7IFwKICBfX3JldF81NzYgPSBfX3JldjBfNTc2IC0gX19yZXYxXzU3NiAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjJfNTc2LCBfX3AzXzU3Nik7IFwKICBfX3JldF81NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81NzYsIF9fcmV0XzU3NiwgMSwgMCk7IFwKICBfX3JldF81NzY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzX2xhbmVxX3MxNihfX3AwXzU3NywgX19wMV81NzcsIF9fcDJfNTc3LCBfX3AzXzU3NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNTc3ID0gX19wMF81Nzc7IFwKICBpbnQxNng0X3QgX19zMV81NzcgPSBfX3AxXzU3NzsgXAogIGludDE2eDhfdCBfX3MyXzU3NyA9IF9fcDJfNTc3OyBcCiAgaW50MTZ4NF90IF9fcmV0XzU3NzsgXAogIF9fcmV0XzU3NyA9IF9fczBfNTc3IC0gX19zMV81NzcgKiBzcGxhdF9sYW5lcV9zMTYoX19zMl81NzcsIF9fcDNfNTc3KTsgXAogIF9fcmV0XzU3NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNfbGFuZXFfczE2KF9fcDBfNTc4LCBfX3AxXzU3OCwgX19wMl81NzgsIF9fcDNfNTc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF81NzggPSBfX3AwXzU3ODsgXAogIGludDE2eDRfdCBfX3MxXzU3OCA9IF9fcDFfNTc4OyBcCiAgaW50MTZ4OF90IF9fczJfNTc4ID0gX19wMl81Nzg7IFwKICBpbnQxNng0X3QgX19yZXYwXzU3ODsgIF9fcmV2MF81NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU3OCwgX19zMF81NzgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV81Nzg7ICBfX3JldjFfNTc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81NzgsIF9fczFfNTc4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNTc4OyAgX19yZXYyXzU3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTc4LCBfX3MyXzU3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNTc4OyBcCiAgX19yZXRfNTc4ID0gX19yZXYwXzU3OCAtIF9fcmV2MV81NzggKiBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzU3OCwgX19wM181NzgpOyBcCiAgX19yZXRfNTc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTc4LCBfX3JldF81NzgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTc4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UzMihfX3AwXzU3OSwgX19wMV81NzksIF9fcDJfNTc5LCBfX3AzXzU3OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU3OSA9IF9fcDBfNTc5OyBcCiAgdWludDMyeDRfdCBfX3MxXzU3OSA9IF9fcDFfNTc5OyBcCiAgdWludDMyeDJfdCBfX3MyXzU3OSA9IF9fcDJfNTc5OyBcCiAgdWludDY0eDJfdCBfX3JldF81Nzk7IFwKICBfX3JldF81NzkgPSBfX3MwXzU3OSAtIHZtdWxsX3UzMih2Z2V0X2hpZ2hfdTMyKF9fczFfNTc5KSwgc3BsYXRfbGFuZV91MzIoX19zMl81NzksIF9fcDNfNTc5KSk7IFwKICBfX3JldF81Nzk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfdTMyKF9fcDBfNTgwLCBfX3AxXzU4MCwgX19wMl81ODAsIF9fcDNfNTgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTgwID0gX19wMF81ODA7IFwKICB1aW50MzJ4NF90IF9fczFfNTgwID0gX19wMV81ODA7IFwKICB1aW50MzJ4Ml90IF9fczJfNTgwID0gX19wMl81ODA7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81ODA7ICBfX3JldjBfNTgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODAsIF9fczBfNTgwLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzU4MDsgIF9fcmV2MV81ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU4MCwgX19zMV81ODAsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDJfdCBfX3JldjJfNTgwOyAgX19yZXYyXzU4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTgwLCBfX3MyXzU4MCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU4MDsgXAogIF9fcmV0XzU4MCA9IF9fcmV2MF81ODAgLSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjFfNTgwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYyXzU4MCwgX19wM181ODApKTsgXAogIF9fcmV0XzU4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU4MCwgX19yZXRfNTgwLCAxLCAwKTsgXAogIF9fcmV0XzU4MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZV91MTYoX19wMF81ODEsIF9fcDFfNTgxLCBfX3AyXzU4MSwgX19wM181ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81ODEgPSBfX3AwXzU4MTsgXAogIHVpbnQxNng4X3QgX19zMV81ODEgPSBfX3AxXzU4MTsgXAogIHVpbnQxNng0X3QgX19zMl81ODEgPSBfX3AyXzU4MTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTgxOyBcCiAgX19yZXRfNTgxID0gX19zMF81ODEgLSB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MxXzU4MSksIHNwbGF0X2xhbmVfdTE2KF9fczJfNTgxLCBfX3AzXzU4MSkpOyBcCiAgX19yZXRfNTgxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3UxNihfX3AwXzU4MiwgX19wMV81ODIsIF9fcDJfNTgyLCBfX3AzXzU4MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU4MiA9IF9fcDBfNTgyOyBcCiAgdWludDE2eDhfdCBfX3MxXzU4MiA9IF9fcDFfNTgyOyBcCiAgdWludDE2eDRfdCBfX3MyXzU4MiA9IF9fcDJfNTgyOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTgyOyAgX19yZXYwXzU4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTgyLCBfX3MwXzU4MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV81ODI7ICBfX3JldjFfNTgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81ODIsIF9fczFfNTgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzU4MjsgIF9fcmV2Ml81ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU4MiwgX19zMl81ODIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81ODI7IFwKICBfX3JldF81ODIgPSBfX3JldjBfNTgyIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYxXzU4MiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml81ODIsIF9fcDNfNTgyKSk7IFwKICBfX3JldF81ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81ODIsIF9fcmV0XzU4MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF81ODI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfczMyKF9fcDBfNTgzLCBfX3AxXzU4MywgX19wMl81ODMsIF9fcDNfNTgzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81ODMgPSBfX3AwXzU4MzsgXAogIGludDMyeDRfdCBfX3MxXzU4MyA9IF9fcDFfNTgzOyBcCiAgaW50MzJ4Ml90IF9fczJfNTgzID0gX19wMl81ODM7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTgzOyBcCiAgX19yZXRfNTgzID0gX19zMF81ODMgLSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MxXzU4MyksIHNwbGF0X2xhbmVfczMyKF9fczJfNTgzLCBfX3AzXzU4MykpOyBcCiAgX19yZXRfNTgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lX3MzMihfX3AwXzU4NCwgX19wMV81ODQsIF9fcDJfNTg0LCBfX3AzXzU4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNTg0ID0gX19wMF81ODQ7IFwKICBpbnQzMng0X3QgX19zMV81ODQgPSBfX3AxXzU4NDsgXAogIGludDMyeDJfdCBfX3MyXzU4NCA9IF9fcDJfNTg0OyBcCiAgaW50NjR4Ml90IF9fcmV2MF81ODQ7ICBfX3JldjBfNTg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODQsIF9fczBfNTg0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNTg0OyAgX19yZXYxXzU4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTg0LCBfX3MxXzU4NCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzU4NDsgIF9fcmV2Ml81ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU4NCwgX19zMl81ODQsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzU4NDsgXAogIF9fcmV0XzU4NCA9IF9fcmV2MF81ODQgLSBfX25vc3dhcF92bXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjFfNTg0KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYyXzU4NCwgX19wM181ODQpKTsgXAogIF9fcmV0XzU4NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU4NCwgX19yZXRfNTg0LCAxLCAwKTsgXAogIF9fcmV0XzU4NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZV9zMTYoX19wMF81ODUsIF9fcDFfNTg1LCBfX3AyXzU4NSwgX19wM181ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzU4NSA9IF9fcDBfNTg1OyBcCiAgaW50MTZ4OF90IF9fczFfNTg1ID0gX19wMV81ODU7IFwKICBpbnQxNng0X3QgX19zMl81ODUgPSBfX3AyXzU4NTsgXAogIGludDMyeDRfdCBfX3JldF81ODU7IFwKICBfX3JldF81ODUgPSBfX3MwXzU4NSAtIHZtdWxsX3MxNih2Z2V0X2hpZ2hfczE2KF9fczFfNTg1KSwgc3BsYXRfbGFuZV9zMTYoX19zMl81ODUsIF9fcDNfNTg1KSk7IFwKICBfX3JldF81ODU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVfczE2KF9fcDBfNTg2LCBfX3AxXzU4NiwgX19wMl81ODYsIF9fcDNfNTg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81ODYgPSBfX3AwXzU4NjsgXAogIGludDE2eDhfdCBfX3MxXzU4NiA9IF9fcDFfNTg2OyBcCiAgaW50MTZ4NF90IF9fczJfNTg2ID0gX19wMl81ODY7IFwKICBpbnQzMng0X3QgX19yZXYwXzU4NjsgIF9fcmV2MF81ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU4NiwgX19zMF81ODYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81ODY7ICBfX3JldjFfNTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81ODYsIF9fczFfNTg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNTg2OyAgX19yZXYyXzU4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTg2LCBfX3MyXzU4NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTg2OyBcCiAgX19yZXRfNTg2ID0gX19yZXYwXzU4NiAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV81ODYpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjJfNTg2LCBfX3AzXzU4NikpOyBcCiAgX19yZXRfNTg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTg2LCBfX3JldF81ODYsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTg2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV91MzIoX19wMF81ODcsIF9fcDFfNTg3LCBfX3AyXzU4NywgX19wM181ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyX3QgX19zMF81ODcgPSBfX3AwXzU4NzsgXAogIHVpbnQzMng0X3QgX19zMV81ODcgPSBfX3AxXzU4NzsgXAogIHVpbnQzMng0X3QgX19zMl81ODcgPSBfX3AyXzU4NzsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNTg3OyBcCiAgX19yZXRfNTg3ID0gX19zMF81ODcgLSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MxXzU4NyksIHNwbGF0X2xhbmVxX3UzMihfX3MyXzU4NywgX19wM181ODcpKTsgXAogIF9fcmV0XzU4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNTg4LCBfX3AxXzU4OCwgX19wMl81ODgsIF9fcDNfNTg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTg4ID0gX19wMF81ODg7IFwKICB1aW50MzJ4NF90IF9fczFfNTg4ID0gX19wMV81ODg7IFwKICB1aW50MzJ4NF90IF9fczJfNTg4ID0gX19wMl81ODg7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81ODg7ICBfX3JldjBfNTg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81ODgsIF9fczBfNTg4LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzU4ODsgIF9fcmV2MV81ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU4OCwgX19zMV81ODgsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjJfNTg4OyAgX19yZXYyXzU4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTg4LCBfX3MyXzU4OCwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU4ODsgXAogIF9fcmV0XzU4OCA9IF9fcmV2MF81ODggLSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjFfNTg4KSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2Ml81ODgsIF9fcDNfNTg4KSk7IFwKICBfX3JldF81ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81ODgsIF9fcmV0XzU4OCwgMSwgMCk7IFwKICBfX3JldF81ODg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9oaWdoX2xhbmVxX3UxNihfX3AwXzU4OSwgX19wMV81ODksIF9fcDJfNTg5LCBfX3AzXzU4OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU4OSA9IF9fcDBfNTg5OyBcCiAgdWludDE2eDhfdCBfX3MxXzU4OSA9IF9fcDFfNTg5OyBcCiAgdWludDE2eDhfdCBfX3MyXzU4OSA9IF9fcDJfNTg5OyBcCiAgdWludDMyeDRfdCBfX3JldF81ODk7IFwKICBfX3JldF81ODkgPSBfX3MwXzU4OSAtIHZtdWxsX3UxNih2Z2V0X2hpZ2hfdTE2KF9fczFfNTg5KSwgc3BsYXRfbGFuZXFfdTE2KF9fczJfNTg5LCBfX3AzXzU4OSkpOyBcCiAgX19yZXRfNTg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfaGlnaF9sYW5lcV91MTYoX19wMF81OTAsIF9fcDFfNTkwLCBfX3AyXzU5MCwgX19wM181OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81OTAgPSBfX3AwXzU5MDsgXAogIHVpbnQxNng4X3QgX19zMV81OTAgPSBfX3AxXzU5MDsgXAogIHVpbnQxNng4X3QgX19zMl81OTAgPSBfX3AyXzU5MDsgXAogIHVpbnQzMng0X3QgX19yZXYwXzU5MDsgIF9fcmV2MF81OTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5MCwgX19zMF81OTAsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNTkwOyAgX19yZXYxXzU5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNTkwLCBfX3MxXzU5MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2Ml81OTA7ICBfX3JldjJfNTkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl81OTAsIF9fczJfNTkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNTkwOyBcCiAgX19yZXRfNTkwID0gX19yZXYwXzU5MCAtIF9fbm9zd2FwX3ZtdWxsX3UxNihfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MV81OTApLCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MTYoX19yZXYyXzU5MCwgX19wM181OTApKTsgXAogIF9fcmV0XzU5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5MCwgX19yZXRfNTkwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczMyKF9fcDBfNTkxLCBfX3AxXzU5MSwgX19wMl81OTEsIF9fcDNfNTkxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTEgPSBfX3AwXzU5MTsgXAogIGludDMyeDRfdCBfX3MxXzU5MSA9IF9fcDFfNTkxOyBcCiAgaW50MzJ4NF90IF9fczJfNTkxID0gX19wMl81OTE7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTkxOyBcCiAgX19yZXRfNTkxID0gX19zMF81OTEgLSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MxXzU5MSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU5MSwgX19wM181OTEpKTsgXAogIF9fcmV0XzU5MTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczMyKF9fcDBfNTkyLCBfX3AxXzU5MiwgX19wMl81OTIsIF9fcDNfNTkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTIgPSBfX3AwXzU5MjsgXAogIGludDMyeDRfdCBfX3MxXzU5MiA9IF9fcDFfNTkyOyBcCiAgaW50MzJ4NF90IF9fczJfNTkyID0gX19wMl81OTI7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzU5MjsgIF9fcmV2MF81OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5MiwgX19zMF81OTIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV81OTI7ICBfX3JldjFfNTkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTIsIF9fczFfNTkyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNTkyOyAgX19yZXYyXzU5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTkyLCBfX3MyXzU5MiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTkyOyBcCiAgX19yZXRfNTkyID0gX19yZXYwXzU5MiAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV81OTIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzU5MiwgX19wM181OTIpKTsgXAogIF9fcmV0XzU5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5MiwgX19yZXRfNTkyLCAxLCAwKTsgXAogIF9fcmV0XzU5MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNTkzLCBfX3AxXzU5MywgX19wMl81OTMsIF9fcDNfNTkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81OTMgPSBfX3AwXzU5MzsgXAogIGludDE2eDhfdCBfX3MxXzU5MyA9IF9fcDFfNTkzOyBcCiAgaW50MTZ4OF90IF9fczJfNTkzID0gX19wMl81OTM7IFwKICBpbnQzMng0X3QgX19yZXRfNTkzOyBcCiAgX19yZXRfNTkzID0gX19zMF81OTMgLSB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MxXzU5MyksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzU5MywgX19wM181OTMpKTsgXAogIF9fcmV0XzU5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNTk0LCBfX3AxXzU5NCwgX19wMl81OTQsIF9fcDNfNTk0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF81OTQgPSBfX3AwXzU5NDsgXAogIGludDE2eDhfdCBfX3MxXzU5NCA9IF9fcDFfNTk0OyBcCiAgaW50MTZ4OF90IF9fczJfNTk0ID0gX19wMl81OTQ7IFwKICBpbnQzMng0X3QgX19yZXYwXzU5NDsgIF9fcmV2MF81OTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzU5NCwgX19zMF81OTQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV81OTQ7ICBfX3JldjFfNTk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTQsIF9fczFfNTk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNTk0OyAgX19yZXYyXzU5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTk0LCBfX3MyXzU5NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNTk0OyBcCiAgX19yZXRfNTk0ID0gX19yZXYwXzU5NCAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV81OTQpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzU5NCwgX19wM181OTQpKTsgXAogIF9fcmV0XzU5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzU5NCwgX19yZXRfNTk0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzU5NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtbHNsX2xhbmVxX3UzMihfX3AwXzU5NSwgX19wMV81OTUsIF9fcDJfNTk1LCBfX3AzXzU5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzU5NSA9IF9fcDBfNTk1OyBcCiAgdWludDMyeDJfdCBfX3MxXzU5NSA9IF9fcDFfNTk1OyBcCiAgdWludDMyeDRfdCBfX3MyXzU5NSA9IF9fcDJfNTk1OyBcCiAgdWludDY0eDJfdCBfX3JldF81OTU7IFwKICBfX3JldF81OTUgPSBfX3MwXzU5NSAtIHZtdWxsX3UzMihfX3MxXzU5NSwgc3BsYXRfbGFuZXFfdTMyKF9fczJfNTk1LCBfX3AzXzU5NSkpOyBcCiAgX19yZXRfNTk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfbGFuZXFfdTMyKF9fcDBfNTk2LCBfX3AxXzU5NiwgX19wMl81OTYsIF9fcDNfNTk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Ml90IF9fczBfNTk2ID0gX19wMF81OTY7IFwKICB1aW50MzJ4Ml90IF9fczFfNTk2ID0gX19wMV81OTY7IFwKICB1aW50MzJ4NF90IF9fczJfNTk2ID0gX19wMl81OTY7IFwKICB1aW50NjR4Ml90IF9fcmV2MF81OTY7ICBfX3JldjBfNTk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF81OTYsIF9fczBfNTk2LCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzU5NjsgIF9fcmV2MV81OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzU5NiwgX19zMV81OTYsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjJfNTk2OyAgX19yZXYyXzU5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNTk2LCBfX3MyXzU5NiwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzU5NjsgXAogIF9fcmV0XzU5NiA9IF9fcmV2MF81OTYgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxXzU5NiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTMyKF9fcmV2Ml81OTYsIF9fcDNfNTk2KSk7IFwKICBfX3JldF81OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF81OTYsIF9fcmV0XzU5NiwgMSwgMCk7IFwKICBfX3JldF81OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lcV91MTYoX19wMF81OTcsIF9fcDFfNTk3LCBfX3AyXzU5NywgX19wM181OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF81OTcgPSBfX3AwXzU5NzsgXAogIHVpbnQxNng0X3QgX19zMV81OTcgPSBfX3AxXzU5NzsgXAogIHVpbnQxNng4X3QgX19zMl81OTcgPSBfX3AyXzU5NzsgXAogIHVpbnQzMng0X3QgX19yZXRfNTk3OyBcCiAgX19yZXRfNTk3ID0gX19zMF81OTcgLSB2bXVsbF91MTYoX19zMV81OTcsIHNwbGF0X2xhbmVxX3UxNihfX3MyXzU5NywgX19wM181OTcpKTsgXAogIF9fcmV0XzU5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVxX3UxNihfX3AwXzU5OCwgX19wMV81OTgsIF9fcDJfNTk4LCBfX3AzXzU5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzU5OCA9IF9fcDBfNTk4OyBcCiAgdWludDE2eDRfdCBfX3MxXzU5OCA9IF9fcDFfNTk4OyBcCiAgdWludDE2eDhfdCBfX3MyXzU5OCA9IF9fcDJfNTk4OyBcCiAgdWludDMyeDRfdCBfX3JldjBfNTk4OyAgX19yZXYwXzU5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNTk4LCBfX3MwXzU5OCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV81OTg7ICBfX3JldjFfNTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV81OTgsIF9fczFfNTk4LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYyXzU5ODsgIF9fcmV2Ml81OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzU5OCwgX19zMl81OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF81OTg7IFwKICBfX3JldF81OTggPSBfX3JldjBfNTk4IC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV81OTgsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjJfNTk4LCBfX3AzXzU5OCkpOyBcCiAgX19yZXRfNTk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNTk4LCBfX3JldF81OTgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNTk4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfbGFuZXFfczMyKF9fcDBfNTk5LCBfX3AxXzU5OSwgX19wMl81OTksIF9fcDNfNTk5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF81OTkgPSBfX3AwXzU5OTsgXAogIGludDMyeDJfdCBfX3MxXzU5OSA9IF9fcDFfNTk5OyBcCiAgaW50MzJ4NF90IF9fczJfNTk5ID0gX19wMl81OTk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNTk5OyBcCiAgX19yZXRfNTk5ID0gX19zMF81OTkgLSB2bXVsbF9zMzIoX19zMV81OTksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzU5OSwgX19wM181OTkpKTsgXAogIF9fcmV0XzU5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVxX3MzMihfX3AwXzYwMCwgX19wMV82MDAsIF9fcDJfNjAwLCBfX3AzXzYwMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNjAwID0gX19wMF82MDA7IFwKICBpbnQzMngyX3QgX19zMV82MDAgPSBfX3AxXzYwMDsgXAogIGludDMyeDRfdCBfX3MyXzYwMCA9IF9fcDJfNjAwOyBcCiAgaW50NjR4Ml90IF9fcmV2MF82MDA7ICBfX3JldjBfNjAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82MDAsIF9fczBfNjAwLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNjAwOyAgX19yZXYxXzYwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjAwLCBfX3MxXzYwMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYyXzYwMDsgIF9fcmV2Ml82MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzYwMCwgX19zMl82MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzYwMDsgXAogIF9fcmV0XzYwMCA9IF9fcmV2MF82MDAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxXzYwMCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml82MDAsIF9fcDNfNjAwKSk7IFwKICBfX3JldF82MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MDAsIF9fcmV0XzYwMCwgMSwgMCk7IFwKICBfX3JldF82MDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lcV9zMTYoX19wMF82MDEsIF9fcDFfNjAxLCBfX3AyXzYwMSwgX19wM182MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzYwMSA9IF9fcDBfNjAxOyBcCiAgaW50MTZ4NF90IF9fczFfNjAxID0gX19wMV82MDE7IFwKICBpbnQxNng4X3QgX19zMl82MDEgPSBfX3AyXzYwMTsgXAogIGludDMyeDRfdCBfX3JldF82MDE7IFwKICBfX3JldF82MDEgPSBfX3MwXzYwMSAtIHZtdWxsX3MxNihfX3MxXzYwMSwgc3BsYXRfbGFuZXFfczE2KF9fczJfNjAxLCBfX3AzXzYwMSkpOyBcCiAgX19yZXRfNjAxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm1sc2xfbGFuZXFfczE2KF9fcDBfNjAyLCBfX3AxXzYwMiwgX19wMl82MDIsIF9fcDNfNjAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82MDIgPSBfX3AwXzYwMjsgXAogIGludDE2eDRfdCBfX3MxXzYwMiA9IF9fcDFfNjAyOyBcCiAgaW50MTZ4OF90IF9fczJfNjAyID0gX19wMl82MDI7IFwKICBpbnQzMng0X3QgX19yZXYwXzYwMjsgIF9fcmV2MF82MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYwMiwgX19zMF82MDIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MV82MDI7ICBfX3JldjFfNjAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MDIsIF9fczFfNjAyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjJfNjAyOyAgX19yZXYyXzYwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjAyLCBfX3MyXzYwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjAyOyBcCiAgX19yZXRfNjAyID0gX19yZXYwXzYwMiAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3JldjFfNjAyLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzYwMiwgX19wM182MDIpKTsgXAogIF9fcmV0XzYwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYwMiwgX19yZXRfNjAyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYwMjsgXAp9KQojZW5kaWYKCl9fYWkgcG9seTY0eDFfdCB2bW92X25fcDY0KHBvbHk2NF90IF9fcDApIHsKICBwb2x5NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk2NHgxX3QpIHtfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2bW92cV9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSB7X19wMCwgX19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2bW92cV9uX3A2NChwb2x5NjRfdCBfX3AwKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IChwb2x5NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtb3ZxX25fZjY0KGZsb2F0NjRfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIHtfX3AwLCBfX3AwfTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bW92cV9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSB7X19wMCwgX19wMH07CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm1vdl9uX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSB7X19wMH07CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1vdmxfaGlnaF91OCh1aW50OHgxNl90IF9fcDBfNjAzKSB7CiAgdWludDE2eDhfdCBfX3JldF82MDM7CiAgdWludDh4OF90IF9fYTFfNjAzID0gdmdldF9oaWdoX3U4KF9fcDBfNjAzKTsKICBfX3JldF82MDMgPSAodWludDE2eDhfdCkodnNobGxfbl91OChfX2ExXzYwMywgMCkpOwogIHJldHVybiBfX3JldF82MDM7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZtb3ZsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwXzYwNCkgewogIHVpbnQ4eDE2X3QgX19yZXYwXzYwNDsgIF9fcmV2MF82MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwXzYwNCwgX19wMF82MDQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXRfNjA0OwogIHVpbnQ4eDhfdCBfX2ExXzYwNCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjBfNjA0KTsKICBfX3JldF82MDQgPSAodWludDE2eDhfdCkoX19ub3N3YXBfdnNobGxfbl91OChfX2ExXzYwNCwgMCkpOwogIF9fcmV0XzYwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYwNCwgX19yZXRfNjA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXRfNjA0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92bW92bF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMF82MDUpIHsKICB1aW50MTZ4OF90IF9fcmV0XzYwNTsKICB1aW50OHg4X3QgX19hMV82MDUgPSBfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19wMF82MDUpOwogIF9fcmV0XzYwNSA9ICh1aW50MTZ4OF90KShfX25vc3dhcF92c2hsbF9uX3U4KF9fYTFfNjA1LCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYwNTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1vdmxfaGlnaF91MzIodWludDMyeDRfdCBfX3AwXzYwNikgewogIHVpbnQ2NHgyX3QgX19yZXRfNjA2OwogIHVpbnQzMngyX3QgX19hMV82MDYgPSB2Z2V0X2hpZ2hfdTMyKF9fcDBfNjA2KTsKICBfX3JldF82MDYgPSAodWludDY0eDJfdCkodnNobGxfbl91MzIoX19hMV82MDYsIDApKTsKICByZXR1cm4gX19yZXRfNjA2Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bW92bF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDBfNjA3KSB7CiAgdWludDMyeDRfdCBfX3JldjBfNjA3OyAgX19yZXYwXzYwNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjA3LCBfX3AwXzYwNywgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldF82MDc7CiAgdWludDMyeDJfdCBfX2ExXzYwNyA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYwXzYwNyk7CiAgX19yZXRfNjA3ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fdTMyKF9fYTFfNjA3LCAwKSk7CiAgX19yZXRfNjA3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjA3LCBfX3JldF82MDcsIDEsIDApOwogIHJldHVybiBfX3JldF82MDc7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMF82MDgpIHsKICB1aW50NjR4Ml90IF9fcmV0XzYwODsKICB1aW50MzJ4Ml90IF9fYTFfNjA4ID0gX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3AwXzYwOCk7CiAgX19yZXRfNjA4ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fdTMyKF9fYTFfNjA4LCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYwODsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1vdmxfaGlnaF91MTYodWludDE2eDhfdCBfX3AwXzYwOSkgewogIHVpbnQzMng0X3QgX19yZXRfNjA5OwogIHVpbnQxNng0X3QgX19hMV82MDkgPSB2Z2V0X2hpZ2hfdTE2KF9fcDBfNjA5KTsKICBfX3JldF82MDkgPSAodWludDMyeDRfdCkodnNobGxfbl91MTYoX19hMV82MDksIDApKTsKICByZXR1cm4gX19yZXRfNjA5Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bW92bF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDBfNjEwKSB7CiAgdWludDE2eDhfdCBfX3JldjBfNjEwOyAgX19yZXYwXzYxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjEwLCBfX3AwXzYxMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldF82MTA7CiAgdWludDE2eDRfdCBfX2ExXzYxMCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwXzYxMCk7CiAgX19yZXRfNjEwID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fYTFfNjEwLCAwKSk7CiAgX19yZXRfNjEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjEwLCBfX3JldF82MTAsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldF82MTA7Cn0KX19haSB1aW50MzJ4NF90IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMF82MTEpIHsKICB1aW50MzJ4NF90IF9fcmV0XzYxMTsKICB1aW50MTZ4NF90IF9fYTFfNjExID0gX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3AwXzYxMSk7CiAgX19yZXRfNjExID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fYTFfNjExLCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYxMTsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bW92bF9oaWdoX3M4KGludDh4MTZfdCBfX3AwXzYxMikgewogIGludDE2eDhfdCBfX3JldF82MTI7CiAgaW50OHg4X3QgX19hMV82MTIgPSB2Z2V0X2hpZ2hfczgoX19wMF82MTIpOwogIF9fcmV0XzYxMiA9IChpbnQxNng4X3QpKHZzaGxsX25fczgoX19hMV82MTIsIDApKTsKICByZXR1cm4gX19yZXRfNjEyOwp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtb3ZsX2hpZ2hfczgoaW50OHgxNl90IF9fcDBfNjEzKSB7CiAgaW50OHgxNl90IF9fcmV2MF82MTM7ICBfX3JldjBfNjEzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMF82MTMsIF9fcDBfNjEzLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXRfNjEzOwogIGludDh4OF90IF9fYTFfNjEzID0gX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MF82MTMpOwogIF9fcmV0XzYxMyA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fczgoX19hMV82MTMsIDApKTsKICBfX3JldF82MTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MTMsIF9fcmV0XzYxMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzYxMzsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92bW92bF9oaWdoX3M4KGludDh4MTZfdCBfX3AwXzYxNCkgewogIGludDE2eDhfdCBfX3JldF82MTQ7CiAgaW50OHg4X3QgX19hMV82MTQgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19wMF82MTQpOwogIF9fcmV0XzYxNCA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fczgoX19hMV82MTQsIDApKTsKICByZXR1cm4gX19yZXRfNjE0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtb3ZsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwXzYxNSkgewogIGludDY0eDJfdCBfX3JldF82MTU7CiAgaW50MzJ4Ml90IF9fYTFfNjE1ID0gdmdldF9oaWdoX3MzMihfX3AwXzYxNSk7CiAgX19yZXRfNjE1ID0gKGludDY0eDJfdCkodnNobGxfbl9zMzIoX19hMV82MTUsIDApKTsKICByZXR1cm4gX19yZXRfNjE1Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtb3ZsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwXzYxNikgewogIGludDMyeDRfdCBfX3JldjBfNjE2OyAgX19yZXYwXzYxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDBfNjE2LCBfX3AwXzYxNiwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0XzYxNjsKICBpbnQzMngyX3QgX19hMV82MTYgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MF82MTYpOwogIF9fcmV0XzYxNiA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fczMyKF9fYTFfNjE2LCAwKSk7CiAgX19yZXRfNjE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjE2LCBfX3JldF82MTYsIDEsIDApOwogIHJldHVybiBfX3JldF82MTY7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDBfNjE3KSB7CiAgaW50NjR4Ml90IF9fcmV0XzYxNzsKICBpbnQzMngyX3QgX19hMV82MTcgPSBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcDBfNjE3KTsKICBfX3JldF82MTcgPSAoaW50NjR4Ml90KShfX25vc3dhcF92c2hsbF9uX3MzMihfX2ExXzYxNywgMCkpOwogIHJldHVybiBfX3JldF82MTc7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDBfNjE4KSB7CiAgaW50MzJ4NF90IF9fcmV0XzYxODsKICBpbnQxNng0X3QgX19hMV82MTggPSB2Z2V0X2hpZ2hfczE2KF9fcDBfNjE4KTsKICBfX3JldF82MTggPSAoaW50MzJ4NF90KSh2c2hsbF9uX3MxNihfX2ExXzYxOCwgMCkpOwogIHJldHVybiBfX3JldF82MTg7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3Qgdm1vdmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDBfNjE5KSB7CiAgaW50MTZ4OF90IF9fcmV2MF82MTk7ICBfX3JldjBfNjE5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMF82MTksIF9fcDBfNjE5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXRfNjE5OwogIGludDE2eDRfdCBfX2ExXzYxOSA9IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzYxOSk7CiAgX19yZXRfNjE5ID0gKGludDMyeDRfdCkoX19ub3N3YXBfdnNobGxfbl9zMTYoX19hMV82MTksIDApKTsKICBfX3JldF82MTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MTksIF9fcmV0XzYxOSwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0XzYxOTsKfQpfX2FpIGludDMyeDRfdCBfX25vc3dhcF92bW92bF9oaWdoX3MxNihpbnQxNng4X3QgX19wMF82MjApIHsKICBpbnQzMng0X3QgX19yZXRfNjIwOwogIGludDE2eDRfdCBfX2ExXzYyMCA9IF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19wMF82MjApOwogIF9fcmV0XzYyMCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fczE2KF9fYTFfNjIwLCAwKSk7CiAgcmV0dXJuIF9fcmV0XzYyMDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm1vdm5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTE2KF9fcDAsIHZtb3ZuX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bW92bl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fdTMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtb3ZuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2bW92bl91NjQoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1vdm5faGlnaF91NjQodWludDMyeDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UzMihfX3JldjAsIF9fbm9zd2FwX3Ztb3ZuX3U2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2bW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZtb3ZuX3UxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2bW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fdTE2KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm1vdm5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczE2KF9fcDAsIHZtb3ZuX3MzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtb3ZuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczMyKF9fcDAsIHZtb3ZuX3M2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtb3ZuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczMyKF9fcmV2MCwgX19ub3N3YXBfdm1vdm5fczY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3Qgdm1vdm5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zOChfX3AwLCB2bW92bl9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2bW92bl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3Ztb3ZuX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3Qgdm11bHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKiBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZtdWxxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKiBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm11bF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAqIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNkZWZpbmUgdm11bGRfbGFuZV9mNjQoX19wMF82MjEsIF9fcDFfNjIxLCBfX3AyXzYyMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjIxID0gX19wMF82MjE7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyMSA9IF9fcDFfNjIxOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzYyMTsgXAogIF9fcmV0XzYyMSA9IF9fczBfNjIxICogdmdldF9sYW5lX2Y2NChfX3MxXzYyMSwgX19wMl82MjEpOyBcCiAgX19yZXRfNjIxOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxzX2xhbmVfZjMyKF9fcDBfNjIyLCBfX3AxXzYyMiwgX19wMl82MjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyMiA9IF9fcDBfNjIyOyBcCiAgZmxvYXQzMngyX3QgX19zMV82MjIgPSBfX3AxXzYyMjsgXAogIGZsb2F0MzJfdCBfX3JldF82MjI7IFwKICBfX3JldF82MjIgPSBfX3MwXzYyMiAqIHZnZXRfbGFuZV9mMzIoX19zMV82MjIsIF9fcDJfNjIyKTsgXAogIF9fcmV0XzYyMjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxzX2xhbmVfZjMyKF9fcDBfNjIzLCBfX3AxXzYyMywgX19wMl82MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyMyA9IF9fcDBfNjIzOyBcCiAgZmxvYXQzMngyX3QgX19zMV82MjMgPSBfX3AxXzYyMzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MV82MjM7ICBfX3JldjFfNjIzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MjMsIF9fczFfNjIzLCAxLCAwKTsgXAogIGZsb2F0MzJfdCBfX3JldF82MjM7IFwKICBfX3JldF82MjMgPSBfX3MwXzYyMyAqIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYxXzYyMywgX19wMl82MjMpOyBcCiAgX19yZXRfNjIzOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2bXVsX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDFfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bXVsX2xhbmVfdigoaW50OHg4X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVfZjY0KF9fcDBfNjI0LCBfX3AxXzYyNCwgX19wMl82MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjI0ID0gX19wMF82MjQ7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyNCA9IF9fcDFfNjI0OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjI0OyBcCiAgX19yZXRfNjI0ID0gX19zMF82MjQgKiBzcGxhdHFfbGFuZV9mNjQoX19zMV82MjQsIF9fcDJfNjI0KTsgXAogIF9fcmV0XzYyNDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVfZjY0KF9fcDBfNjI1LCBfX3AxXzYyNSwgX19wMl82MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjI1ID0gX19wMF82MjU7IFwKICBmbG9hdDY0eDFfdCBfX3MxXzYyNSA9IF9fcDFfNjI1OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYwXzYyNTsgIF9fcmV2MF82MjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYyNSwgX19zMF82MjUsIDEsIDApOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjI1OyBcCiAgX19yZXRfNjI1ID0gX19yZXYwXzYyNSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lX2Y2NChfX3MxXzYyNSwgX19wMl82MjUpOyBcCiAgX19yZXRfNjI1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjI1LCBfX3JldF82MjUsIDEsIDApOyBcCiAgX19yZXRfNjI1OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGRfbGFuZXFfZjY0KF9fcDBfNjI2LCBfX3AxXzYyNiwgX19wMl82MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzYyNiA9IF9fcDBfNjI2OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV82MjYgPSBfX3AxXzYyNjsgXAogIGZsb2F0NjRfdCBfX3JldF82MjY7IFwKICBfX3JldF82MjYgPSBfX3MwXzYyNiAqIHZnZXRxX2xhbmVfZjY0KF9fczFfNjI2LCBfX3AyXzYyNik7IFwKICBfX3JldF82MjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsZF9sYW5lcV9mNjQoX19wMF82MjcsIF9fcDFfNjI3LCBfX3AyXzYyNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjI3ID0gX19wMF82Mjc7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzYyNyA9IF9fcDFfNjI3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzYyNzsgIF9fcmV2MV82MjcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYyNywgX19zMV82MjcsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzYyNzsgXAogIF9fcmV0XzYyNyA9IF9fczBfNjI3ICogX19ub3N3YXBfdmdldHFfbGFuZV9mNjQoX19yZXYxXzYyNywgX19wMl82MjcpOyBcCiAgX19yZXRfNjI3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHNfbGFuZXFfZjMyKF9fcDBfNjI4LCBfX3AxXzYyOCwgX19wMl82MjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzYyOCA9IF9fcDBfNjI4OyBcCiAgZmxvYXQzMng0X3QgX19zMV82MjggPSBfX3AxXzYyODsgXAogIGZsb2F0MzJfdCBfX3JldF82Mjg7IFwKICBfX3JldF82MjggPSBfX3MwXzYyOCAqIHZnZXRxX2xhbmVfZjMyKF9fczFfNjI4LCBfX3AyXzYyOCk7IFwKICBfX3JldF82Mjg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsc19sYW5lcV9mMzIoX19wMF82MjksIF9fcDFfNjI5LCBfX3AyXzYyOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjI5ID0gX19wMF82Mjk7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzYyOSA9IF9fcDFfNjI5OyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzYyOTsgIF9fcmV2MV82MjkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzYyOSwgX19zMV82MjksIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzYyOTsgXAogIF9fcmV0XzYyOSA9IF9fczBfNjI5ICogX19ub3N3YXBfdmdldHFfbGFuZV9mMzIoX19yZXYxXzYyOSwgX19wMl82MjkpOyBcCiAgX19yZXRfNjI5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAxMCk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZXFfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAxLCAwKTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxfbGFuZXFfdigoaW50OHg4X3QpX19zMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDEwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfdTMyKF9fcDBfNjMwLCBfX3AxXzYzMCwgX19wMl82MzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF82MzAgPSBfX3AwXzYzMDsgXAogIHVpbnQzMng0X3QgX19zMV82MzAgPSBfX3AxXzYzMDsgXAogIHVpbnQzMng0X3QgX19yZXRfNjMwOyBcCiAgX19yZXRfNjMwID0gX19zMF82MzAgKiBzcGxhdHFfbGFuZXFfdTMyKF9fczFfNjMwLCBfX3AyXzYzMCk7IFwKICBfX3JldF82MzA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV91MzIoX19wMF82MzEsIF9fcDFfNjMxLCBfX3AyXzYzMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzYzMSA9IF9fcDBfNjMxOyBcCiAgdWludDMyeDRfdCBfX3MxXzYzMSA9IF9fcDFfNjMxOyBcCiAgdWludDMyeDRfdCBfX3JldjBfNjMxOyAgX19yZXYwXzYzMSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjMxLCBfX3MwXzYzMSwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82MzE7ICBfX3JldjFfNjMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzEsIF9fczFfNjMxLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNjMxOyBcCiAgX19yZXRfNjMxID0gX19yZXYwXzYzMSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MzIoX19yZXYxXzYzMSwgX19wMl82MzEpOyBcCiAgX19yZXRfNjMxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjMxLCBfX3JldF82MzEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjMxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfdTE2KF9fcDBfNjMyLCBfX3AxXzYzMiwgX19wMl82MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82MzIgPSBfX3AwXzYzMjsgXAogIHVpbnQxNng4X3QgX19zMV82MzIgPSBfX3AxXzYzMjsgXAogIHVpbnQxNng4X3QgX19yZXRfNjMyOyBcCiAgX19yZXRfNjMyID0gX19zMF82MzIgKiBzcGxhdHFfbGFuZXFfdTE2KF9fczFfNjMyLCBfX3AyXzYzMik7IFwKICBfX3JldF82MzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV91MTYoX19wMF82MzMsIF9fcDFfNjMzLCBfX3AyXzYzMykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzYzMyA9IF9fcDBfNjMzOyBcCiAgdWludDE2eDhfdCBfX3MxXzYzMyA9IF9fcDFfNjMzOyBcCiAgdWludDE2eDhfdCBfX3JldjBfNjMzOyAgX19yZXYwXzYzMyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjMzLCBfX3MwXzYzMywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV82MzM7ICBfX3JldjFfNjMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzMsIF9fczFfNjMzLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNjMzOyBcCiAgX19yZXRfNjMzID0gX19yZXYwXzYzMyAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV91MTYoX19yZXYxXzYzMywgX19wMl82MzMpOyBcCiAgX19yZXRfNjMzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjMzLCBfX3JldF82MzMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjMzOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHFfbGFuZXFfZjY0KF9fcDBfNjM0LCBfX3AxXzYzNCwgX19wMl82MzQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjM0ID0gX19wMF82MzQ7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzYzNCA9IF9fcDFfNjM0OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjM0OyBcCiAgX19yZXRfNjM0ID0gX19zMF82MzQgKiBzcGxhdHFfbGFuZXFfZjY0KF9fczFfNjM0LCBfX3AyXzYzNCk7IFwKICBfX3JldF82MzQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVscV9sYW5lcV9mNjQoX19wMF82MzUsIF9fcDFfNjM1LCBfX3AyXzYzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF82MzUgPSBfX3AwXzYzNTsgXAogIGZsb2F0NjR4Ml90IF9fczFfNjM1ID0gX19wMV82MzU7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNjM1OyAgX19yZXYwXzYzNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjM1LCBfX3MwXzYzNSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNjM1OyAgX19yZXYxXzYzNSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjM1LCBfX3MxXzYzNSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF82MzU7IFwKICBfX3JldF82MzUgPSBfX3JldjBfNjM1ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX2Y2NChfX3JldjFfNjM1LCBfX3AyXzYzNSk7IFwKICBfX3JldF82MzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MzUsIF9fcmV0XzYzNSwgMSwgMCk7IFwKICBfX3JldF82MzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lcV9mMzIoX19wMF82MzYsIF9fcDFfNjM2LCBfX3AyXzYzNikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82MzYgPSBfX3AwXzYzNjsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjM2ID0gX19wMV82MzY7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82MzY7IFwKICBfX3JldF82MzYgPSBfX3MwXzYzNiAqIHNwbGF0cV9sYW5lcV9mMzIoX19zMV82MzYsIF9fcDJfNjM2KTsgXAogIF9fcmV0XzYzNjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVxX2YzMihfX3AwXzYzNywgX19wMV82MzcsIF9fcDJfNjM3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzYzNyA9IF9fcDBfNjM3OyBcCiAgZmxvYXQzMng0X3QgX19zMV82MzcgPSBfX3AxXzYzNzsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF82Mzc7ICBfX3JldjBfNjM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82MzcsIF9fczBfNjM3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82Mzc7ICBfX3JldjFfNjM3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzcsIF9fczFfNjM3LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzYzNzsgXAogIF9fcmV0XzYzNyA9IF9fcmV2MF82MzcgKiBfX25vc3dhcF9zcGxhdHFfbGFuZXFfZjMyKF9fcmV2MV82MzcsIF9fcDJfNjM3KTsgXAogIF9fcmV0XzYzNyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzYzNywgX19yZXRfNjM3LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzYzNzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxxX2xhbmVxX3MzMihfX3AwXzYzOCwgX19wMV82MzgsIF9fcDJfNjM4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82MzggPSBfX3AwXzYzODsgXAogIGludDMyeDRfdCBfX3MxXzYzOCA9IF9fcDFfNjM4OyBcCiAgaW50MzJ4NF90IF9fcmV0XzYzODsgXAogIF9fcmV0XzYzOCA9IF9fczBfNjM4ICogc3BsYXRxX2xhbmVxX3MzMihfX3MxXzYzOCwgX19wMl82MzgpOyBcCiAgX19yZXRfNjM4OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHFfbGFuZXFfczMyKF9fcDBfNjM5LCBfX3AxXzYzOSwgX19wMl82MzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzYzOSA9IF9fcDBfNjM5OyBcCiAgaW50MzJ4NF90IF9fczFfNjM5ID0gX19wMV82Mzk7IFwKICBpbnQzMng0X3QgX19yZXYwXzYzOTsgIF9fcmV2MF82MzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzYzOSwgX19zMF82MzksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MV82Mzk7ICBfX3JldjFfNjM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82MzksIF9fczFfNjM5LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82Mzk7IFwKICBfX3JldF82MzkgPSBfX3JldjBfNjM5ICogX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMihfX3JldjFfNjM5LCBfX3AyXzYzOSk7IFwKICBfX3JldF82MzkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82MzksIF9fcmV0XzYzOSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82Mzk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVscV9sYW5lcV9zMTYoX19wMF82NDAsIF9fcDFfNjQwLCBfX3AyXzY0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNjQwID0gX19wMF82NDA7IFwKICBpbnQxNng4X3QgX19zMV82NDAgPSBfX3AxXzY0MDsgXAogIGludDE2eDhfdCBfX3JldF82NDA7IFwKICBfX3JldF82NDAgPSBfX3MwXzY0MCAqIHNwbGF0cV9sYW5lcV9zMTYoX19zMV82NDAsIF9fcDJfNjQwKTsgXAogIF9fcmV0XzY0MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxxX2xhbmVxX3MxNihfX3AwXzY0MSwgX19wMV82NDEsIF9fcDJfNjQxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF82NDEgPSBfX3AwXzY0MTsgXAogIGludDE2eDhfdCBfX3MxXzY0MSA9IF9fcDFfNjQxOyBcCiAgaW50MTZ4OF90IF9fcmV2MF82NDE7ICBfX3JldjBfNjQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDEsIF9fczBfNjQxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjQxOyAgX19yZXYxXzY0MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjQxLCBfX3MxXzY0MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNjQxOyBcCiAgX19yZXRfNjQxID0gX19yZXYwXzY0MSAqIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMTYoX19yZXYxXzY0MSwgX19wMl82NDEpOyBcCiAgX19yZXRfNjQxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjQxLCBfX3JldF82NDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjQxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bF9sYW5lcV91MzIoX19wMF82NDIsIF9fcDFfNjQyLCBfX3AyXzY0MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY0MiA9IF9fcDBfNjQyOyBcCiAgdWludDMyeDRfdCBfX3MxXzY0MiA9IF9fcDFfNjQyOyBcCiAgdWludDMyeDJfdCBfX3JldF82NDI7IFwKICBfX3JldF82NDIgPSBfX3MwXzY0MiAqIHNwbGF0X2xhbmVxX3UzMihfX3MxXzY0MiwgX19wMl82NDIpOyBcCiAgX19yZXRfNjQyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bF9sYW5lcV91MzIoX19wMF82NDMsIF9fcDFfNjQzLCBfX3AyXzY0MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY0MyA9IF9fcDBfNjQzOyBcCiAgdWludDMyeDRfdCBfX3MxXzY0MyA9IF9fcDFfNjQzOyBcCiAgdWludDMyeDJfdCBfX3JldjBfNjQzOyAgX19yZXYwXzY0MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjQzLCBfX3MwXzY0MywgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82NDM7ICBfX3JldjFfNjQzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NDMsIF9fczFfNjQzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXRfNjQzOyBcCiAgX19yZXRfNjQzID0gX19yZXYwXzY0MyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjFfNjQzLCBfX3AyXzY0Myk7IFwKICBfX3JldF82NDMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDMsIF9fcmV0XzY0MywgMSwgMCk7IFwKICBfX3JldF82NDM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3UxNihfX3AwXzY0NCwgX19wMV82NDQsIF9fcDJfNjQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNjQ0ID0gX19wMF82NDQ7IFwKICB1aW50MTZ4OF90IF9fczFfNjQ0ID0gX19wMV82NDQ7IFwKICB1aW50MTZ4NF90IF9fcmV0XzY0NDsgXAogIF9fcmV0XzY0NCA9IF9fczBfNjQ0ICogc3BsYXRfbGFuZXFfdTE2KF9fczFfNjQ0LCBfX3AyXzY0NCk7IFwKICBfX3JldF82NDQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3UxNihfX3AwXzY0NSwgX19wMV82NDUsIF9fcDJfNjQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNjQ1ID0gX19wMF82NDU7IFwKICB1aW50MTZ4OF90IF9fczFfNjQ1ID0gX19wMV82NDU7IFwKICB1aW50MTZ4NF90IF9fcmV2MF82NDU7ICBfX3JldjBfNjQ1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDUsIF9fczBfNjQ1LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzY0NTsgIF9fcmV2MV82NDUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY0NSwgX19zMV82NDUsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDRfdCBfX3JldF82NDU7IFwKICBfX3JldF82NDUgPSBfX3JldjBfNjQ1ICogX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2MV82NDUsIF9fcDJfNjQ1KTsgXAogIF9fcmV0XzY0NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY0NSwgX19yZXRfNjQ1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY0NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxfbGFuZXFfZjMyKF9fcDBfNjQ2LCBfX3AxXzY0NiwgX19wMl82NDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjQ2ID0gX19wMF82NDY7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY0NiA9IF9fcDFfNjQ2OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjQ2OyBcCiAgX19yZXRfNjQ2ID0gX19zMF82NDYgKiBzcGxhdF9sYW5lcV9mMzIoX19zMV82NDYsIF9fcDJfNjQ2KTsgXAogIF9fcmV0XzY0NjsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxfbGFuZXFfZjMyKF9fcDBfNjQ3LCBfX3AxXzY0NywgX19wMl82NDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjQ3ID0gX19wMF82NDc7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY0NyA9IF9fcDFfNjQ3OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzY0NzsgIF9fcmV2MF82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY0NywgX19zMF82NDcsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzY0NzsgIF9fcmV2MV82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY0NywgX19zMV82NDcsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjQ3OyBcCiAgX19yZXRfNjQ3ID0gX19yZXYwXzY0NyAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX2YzMihfX3JldjFfNjQ3LCBfX3AyXzY0Nyk7IFwKICBfX3JldF82NDcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDcsIF9fcmV0XzY0NywgMSwgMCk7IFwKICBfX3JldF82NDc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3MzMihfX3AwXzY0OCwgX19wMV82NDgsIF9fcDJfNjQ4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF82NDggPSBfX3AwXzY0ODsgXAogIGludDMyeDRfdCBfX3MxXzY0OCA9IF9fcDFfNjQ4OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzY0ODsgXAogIF9fcmV0XzY0OCA9IF9fczBfNjQ4ICogc3BsYXRfbGFuZXFfczMyKF9fczFfNjQ4LCBfX3AyXzY0OCk7IFwKICBfX3JldF82NDg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3MzMihfX3AwXzY0OSwgX19wMV82NDksIF9fcDJfNjQ5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF82NDkgPSBfX3AwXzY0OTsgXAogIGludDMyeDRfdCBfX3MxXzY0OSA9IF9fcDFfNjQ5OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF82NDk7ICBfX3JldjBfNjQ5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NDksIF9fczBfNjQ5LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjQ5OyAgX19yZXYxXzY0OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjQ5LCBfX3MxXzY0OSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXRfNjQ5OyBcCiAgX19yZXRfNjQ5ID0gX19yZXYwXzY0OSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMihfX3JldjFfNjQ5LCBfX3AyXzY0OSk7IFwKICBfX3JldF82NDkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NDksIF9fcmV0XzY0OSwgMSwgMCk7IFwKICBfX3JldF82NDk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsX2xhbmVxX3MxNihfX3AwXzY1MCwgX19wMV82NTAsIF9fcDJfNjUwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NTAgPSBfX3AwXzY1MDsgXAogIGludDE2eDhfdCBfX3MxXzY1MCA9IF9fcDFfNjUwOyBcCiAgaW50MTZ4NF90IF9fcmV0XzY1MDsgXAogIF9fcmV0XzY1MCA9IF9fczBfNjUwICogc3BsYXRfbGFuZXFfczE2KF9fczFfNjUwLCBfX3AyXzY1MCk7IFwKICBfX3JldF82NTA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsX2xhbmVxX3MxNihfX3AwXzY1MSwgX19wMV82NTEsIF9fcDJfNjUxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NTEgPSBfX3AwXzY1MTsgXAogIGludDE2eDhfdCBfX3MxXzY1MSA9IF9fcDFfNjUxOyBcCiAgaW50MTZ4NF90IF9fcmV2MF82NTE7ICBfX3JldjBfNjUxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTEsIF9fczBfNjUxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjUxOyAgX19yZXYxXzY1MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjUxLCBfX3MxXzY1MSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXRfNjUxOyBcCiAgX19yZXRfNjUxID0gX19yZXYwXzY1MSAqIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNjUxLCBfX3AyXzY1MSk7IFwKICBfX3JldF82NTEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NTEsIF9fcmV0XzY1MSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NTE7IFwKfSkKI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZtdWxfbl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdm11bF9uX2Y2NCgoZmxvYXQ2NHgxX3QpX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZtdWxxX25fZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICogKGZsb2F0NjR4Ml90KSB7X19wMSwgX19wMX07CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm11bHFfbl9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NF90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAqIChmbG9hdDY0eDJfdCkge19fcDEsIF9fcDF9OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHBvbHkxMjhfdCB2bXVsbF9wNjQocG9seTY0X3QgX19wMCwgcG9seTY0X3QgX19wMSkgewogIHBvbHkxMjhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5MTI4X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWxsX3A2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2bXVsbF9oaWdoX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3A4KHZnZXRfaGlnaF9wOChfX3AwKSwgdmdldF9oaWdoX3A4KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZtdWxsX2hpZ2hfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3A4KF9fbm9zd2FwX3ZnZXRfaGlnaF9wOChfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfcDgoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3Qgdm11bGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF91OCh2Z2V0X2hpZ2hfdTgoX19wMCksIHZnZXRfaGlnaF91OChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bXVsbF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91OChfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3UzMih2Z2V0X2hpZ2hfdTMyKF9fcDApLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX3UxNih2Z2V0X2hpZ2hfdTE2KF9fcDApLCB2Z2V0X2hpZ2hfdTE2KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3Qgdm11bGxfaGlnaF9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9zOCh2Z2V0X2hpZ2hfczgoX19wMCksIHZnZXRfaGlnaF9zOChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtdWxsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bXVsbF9zOChfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm11bGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19wMCksIHZnZXRfaGlnaF9zMzIoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bXVsbF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3AwKSwgdmdldF9oaWdoX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtdWxsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTEyOF90IHZtdWxsX2hpZ2hfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTEyOF90IF9fcmV0OwogIF9fcmV0ID0gdm11bGxfcDY0KChwb2x5NjRfdCkodmdldF9oaWdoX3A2NChfX3AwKSksIChwb2x5NjRfdCkodmdldF9oaWdoX3A2NChfX3AxKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxMjhfdCB2bXVsbF9oaWdoX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5MTI4X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9wNjQoKHBvbHk2NF90KShfX25vc3dhcF92Z2V0X2hpZ2hfcDY0KF9fcmV2MCkpLCAocG9seTY0X3QpKF9fbm9zd2FwX3ZnZXRfaGlnaF9wNjQoX19yZXYxKSkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV91MzIoX19wMF82NTIsIF9fcDFfNjUyLCBfX3AyXzY1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzY1MiA9IF9fcDBfNjUyOyBcCiAgdWludDMyeDJfdCBfX3MxXzY1MiA9IF9fcDFfNjUyOyBcCiAgdWludDY0eDJfdCBfX3JldF82NTI7IFwKICBfX3JldF82NTIgPSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MwXzY1MiksIHNwbGF0X2xhbmVfdTMyKF9fczFfNjUyLCBfX3AyXzY1MikpOyBcCiAgX19yZXRfNjUyOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3UzMihfX3AwXzY1MywgX19wMV82NTMsIF9fcDJfNjUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4NF90IF9fczBfNjUzID0gX19wMF82NTM7IFwKICB1aW50MzJ4Ml90IF9fczFfNjUzID0gX19wMV82NTM7IFwKICB1aW50MzJ4NF90IF9fcmV2MF82NTM7ICBfX3JldjBfNjUzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTMsIF9fczBfNjUzLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYxXzY1MzsgIF9fcmV2MV82NTMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1MywgX19zMV82NTMsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF82NTM7IFwKICBfX3JldF82NTMgPSBfX25vc3dhcF92bXVsbF91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjBfNjUzKSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MzIoX19yZXYxXzY1MywgX19wMl82NTMpKTsgXAogIF9fcmV0XzY1MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY1MywgX19yZXRfNjUzLCAxLCAwKTsgXAogIF9fcmV0XzY1MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV91MTYoX19wMF82NTQsIF9fcDFfNjU0LCBfX3AyXzY1NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDhfdCBfX3MwXzY1NCA9IF9fcDBfNjU0OyBcCiAgdWludDE2eDRfdCBfX3MxXzY1NCA9IF9fcDFfNjU0OyBcCiAgdWludDMyeDRfdCBfX3JldF82NTQ7IFwKICBfX3JldF82NTQgPSB2bXVsbF91MTYodmdldF9oaWdoX3UxNihfX3MwXzY1NCksIHNwbGF0X2xhbmVfdTE2KF9fczFfNjU0LCBfX3AyXzY1NCkpOyBcCiAgX19yZXRfNjU0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3UxNihfX3AwXzY1NSwgX19wMV82NTUsIF9fcDJfNjU1KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjU1ID0gX19wMF82NTU7IFwKICB1aW50MTZ4NF90IF9fczFfNjU1ID0gX19wMV82NTU7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NTU7ICBfX3JldjBfNjU1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTUsIF9fczBfNjU1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYxXzY1NTsgIF9fcmV2MV82NTUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1NSwgX19zMV82NTUsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82NTU7IFwKICBfX3JldF82NTUgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjBfNjU1KSwgX19ub3N3YXBfc3BsYXRfbGFuZV91MTYoX19yZXYxXzY1NSwgX19wMl82NTUpKTsgXAogIF9fcmV0XzY1NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY1NSwgX19yZXRfNjU1LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY1NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV9zMzIoX19wMF82NTYsIF9fcDFfNjU2LCBfX3AyXzY1NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNjU2ID0gX19wMF82NTY7IFwKICBpbnQzMngyX3QgX19zMV82NTYgPSBfX3AxXzY1NjsgXAogIGludDY0eDJfdCBfX3JldF82NTY7IFwKICBfX3JldF82NTYgPSB2bXVsbF9zMzIodmdldF9oaWdoX3MzMihfX3MwXzY1NiksIHNwbGF0X2xhbmVfczMyKF9fczFfNjU2LCBfX3AyXzY1NikpOyBcCiAgX19yZXRfNjU2OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzY1NywgX19wMV82NTcsIF9fcDJfNjU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82NTcgPSBfX3AwXzY1NzsgXAogIGludDMyeDJfdCBfX3MxXzY1NyA9IF9fcDFfNjU3OyBcCiAgaW50MzJ4NF90IF9fcmV2MF82NTc7ICBfX3JldjBfNjU3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NTcsIF9fczBfNjU3LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNjU3OyAgX19yZXYxXzY1NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjU3LCBfX3MxXzY1NywgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjU3OyBcCiAgX19yZXRfNjU3ID0gX19ub3N3YXBfdm11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwXzY1NyksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2MV82NTcsIF9fcDJfNjU3KSk7IFwKICBfX3JldF82NTcgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NTcsIF9fcmV0XzY1NywgMSwgMCk7IFwKICBfX3JldF82NTc7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVfczE2KF9fcDBfNjU4LCBfX3AxXzY1OCwgX19wMl82NTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzY1OCA9IF9fcDBfNjU4OyBcCiAgaW50MTZ4NF90IF9fczFfNjU4ID0gX19wMV82NTg7IFwKICBpbnQzMng0X3QgX19yZXRfNjU4OyBcCiAgX19yZXRfNjU4ID0gdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF82NTgpLCBzcGxhdF9sYW5lX3MxNihfX3MxXzY1OCwgX19wMl82NTgpKTsgXAogIF9fcmV0XzY1ODsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZV9zMTYoX19wMF82NTksIF9fcDFfNjU5LCBfX3AyXzY1OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNjU5ID0gX19wMF82NTk7IFwKICBpbnQxNng0X3QgX19zMV82NTkgPSBfX3AxXzY1OTsgXAogIGludDE2eDhfdCBfX3JldjBfNjU5OyAgX19yZXYwXzY1OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjU5LCBfX3MwXzY1OSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzY1OTsgIF9fcmV2MV82NTkgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY1OSwgX19zMV82NTksIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzY1OTsgXAogIF9fcmV0XzY1OSA9IF9fbm9zd2FwX3ZtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MF82NTkpLCBfX25vc3dhcF9zcGxhdF9sYW5lX3MxNihfX3JldjFfNjU5LCBfX3AyXzY1OSkpOyBcCiAgX19yZXRfNjU5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjU5LCBfX3JldF82NTksIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjU5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lcV91MzIoX19wMF82NjAsIF9fcDFfNjYwLCBfX3AyXzY2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzY2MCA9IF9fcDBfNjYwOyBcCiAgdWludDMyeDRfdCBfX3MxXzY2MCA9IF9fcDFfNjYwOyBcCiAgdWludDY0eDJfdCBfX3JldF82NjA7IFwKICBfX3JldF82NjAgPSB2bXVsbF91MzIodmdldF9oaWdoX3UzMihfX3MwXzY2MCksIHNwbGF0X2xhbmVxX3UzMihfX3MxXzY2MCwgX19wMl82NjApKTsgXAogIF9fcmV0XzY2MDsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfdTMyKF9fcDBfNjYxLCBfX3AxXzY2MSwgX19wMl82NjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF82NjEgPSBfX3AwXzY2MTsgXAogIHVpbnQzMng0X3QgX19zMV82NjEgPSBfX3AxXzY2MTsgXAogIHVpbnQzMng0X3QgX19yZXYwXzY2MTsgIF9fcmV2MF82NjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY2MSwgX19zMF82NjEsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldjFfNjYxOyAgX19yZXYxXzY2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjYxLCBfX3MxXzY2MSwgMywgMiwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV0XzY2MTsgXAogIF9fcmV0XzY2MSA9IF9fbm9zd2FwX3ZtdWxsX3UzMihfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MF82NjEpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV91MzIoX19yZXYxXzY2MSwgX19wMl82NjEpKTsgXAogIF9fcmV0XzY2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY2MSwgX19yZXRfNjYxLCAxLCAwKTsgXAogIF9fcmV0XzY2MTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfdTE2KF9fcDBfNjYyLCBfX3AxXzY2MiwgX19wMl82NjIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng4X3QgX19zMF82NjIgPSBfX3AwXzY2MjsgXAogIHVpbnQxNng4X3QgX19zMV82NjIgPSBfX3AxXzY2MjsgXAogIHVpbnQzMng0X3QgX19yZXRfNjYyOyBcCiAgX19yZXRfNjYyID0gdm11bGxfdTE2KHZnZXRfaGlnaF91MTYoX19zMF82NjIpLCBzcGxhdF9sYW5lcV91MTYoX19zMV82NjIsIF9fcDJfNjYyKSk7IFwKICBfX3JldF82NjI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3UxNihfX3AwXzY2MywgX19wMV82NjMsIF9fcDJfNjYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfNjYzID0gX19wMF82NjM7IFwKICB1aW50MTZ4OF90IF9fczFfNjYzID0gX19wMV82NjM7IFwKICB1aW50MTZ4OF90IF9fcmV2MF82NjM7ICBfX3JldjBfNjYzID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NjMsIF9fczBfNjYzLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzY2MzsgIF9fcmV2MV82NjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY2MywgX19zMV82NjMsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF82NjM7IFwKICBfX3JldF82NjMgPSBfX25vc3dhcF92bXVsbF91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjBfNjYzKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfdTE2KF9fcmV2MV82NjMsIF9fcDJfNjYzKSk7IFwKICBfX3JldF82NjMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NjMsIF9fcmV0XzY2MywgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NjM7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3MzMihfX3AwXzY2NCwgX19wMV82NjQsIF9fcDJfNjY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82NjQgPSBfX3AwXzY2NDsgXAogIGludDMyeDRfdCBfX3MxXzY2NCA9IF9fcDFfNjY0OyBcCiAgaW50NjR4Ml90IF9fcmV0XzY2NDsgXAogIF9fcmV0XzY2NCA9IHZtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fczBfNjY0KSwgc3BsYXRfbGFuZXFfczMyKF9fczFfNjY0LCBfX3AyXzY2NCkpOyBcCiAgX19yZXRfNjY0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfaGlnaF9sYW5lcV9zMzIoX19wMF82NjUsIF9fcDFfNjY1LCBfX3AyXzY2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNjY1ID0gX19wMF82NjU7IFwKICBpbnQzMng0X3QgX19zMV82NjUgPSBfX3AxXzY2NTsgXAogIGludDMyeDRfdCBfX3JldjBfNjY1OyAgX19yZXYwXzY2NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjY1LCBfX3MwXzY2NSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzY2NTsgIF9fcmV2MV82NjUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY2NSwgX19zMV82NjUsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY2NTsgXAogIF9fcmV0XzY2NSA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MF82NjUpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYxXzY2NSwgX19wMl82NjUpKTsgXAogIF9fcmV0XzY2NSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY2NSwgX19yZXRfNjY1LCAxLCAwKTsgXAogIF9fcmV0XzY2NTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNjY2LCBfX3AxXzY2NiwgX19wMl82NjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzY2NiA9IF9fcDBfNjY2OyBcCiAgaW50MTZ4OF90IF9fczFfNjY2ID0gX19wMV82NjY7IFwKICBpbnQzMng0X3QgX19yZXRfNjY2OyBcCiAgX19yZXRfNjY2ID0gdm11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF82NjYpLCBzcGxhdF9sYW5lcV9zMTYoX19zMV82NjYsIF9fcDJfNjY2KSk7IFwKICBfX3JldF82NjY7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9oaWdoX2xhbmVxX3MxNihfX3AwXzY2NywgX19wMV82NjcsIF9fcDJfNjY3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF82NjcgPSBfX3AwXzY2NzsgXAogIGludDE2eDhfdCBfX3MxXzY2NyA9IF9fcDFfNjY3OyBcCiAgaW50MTZ4OF90IF9fcmV2MF82Njc7ICBfX3JldjBfNjY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82NjcsIF9fczBfNjY3LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNjY3OyAgX19yZXYxXzY2NyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjY3LCBfX3MxXzY2NywgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjY3OyBcCiAgX19yZXRfNjY3ID0gX19ub3N3YXBfdm11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzY2NyksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNjY3LCBfX3AyXzY2NykpOyBcCiAgX19yZXRfNjY3ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjY3LCBfX3JldF82NjcsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjY3OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bXVsbF9oaWdoX25fdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9uX3UzMih2Z2V0X2hpZ2hfdTMyKF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtdWxsX2hpZ2hfbl91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bXVsbF9oaWdoX25fdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bXVsbF9uX3UxNih2Z2V0X2hpZ2hfdTE2KF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtdWxsX2hpZ2hfbl91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl91MTYoX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtdWxsX2hpZ2hfbl9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX25fczMyKHZnZXRfaGlnaF9zMzIoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bXVsbF9oaWdoX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtdWxsX2hpZ2hfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtdWxsX25fczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bXVsbF9oaWdoX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm11bGxfbl9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjApLCBfX3AxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfdTMyKF9fcDBfNjY4LCBfX3AxXzY2OCwgX19wMl82NjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF82NjggPSBfX3AwXzY2ODsgXAogIHVpbnQzMng0X3QgX19zMV82NjggPSBfX3AxXzY2ODsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNjY4OyBcCiAgX19yZXRfNjY4ID0gdm11bGxfdTMyKF9fczBfNjY4LCBzcGxhdF9sYW5lcV91MzIoX19zMV82NjgsIF9fcDJfNjY4KSk7IFwKICBfX3JldF82Njg7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV91MzIoX19wMF82NjksIF9fcDFfNjY5LCBfX3AyXzY2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzY2OSA9IF9fcDBfNjY5OyBcCiAgdWludDMyeDRfdCBfX3MxXzY2OSA9IF9fcDFfNjY5OyBcCiAgdWludDMyeDJfdCBfX3JldjBfNjY5OyAgX19yZXYwXzY2OSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjY5LCBfX3MwXzY2OSwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV82Njk7ICBfX3JldjFfNjY5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NjksIF9fczFfNjY5LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfNjY5OyBcCiAgX19yZXRfNjY5ID0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MF82NjksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UzMihfX3JldjFfNjY5LCBfX3AyXzY2OSkpOyBcCiAgX19yZXRfNjY5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjY5LCBfX3JldF82NjksIDEsIDApOyBcCiAgX19yZXRfNjY5OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfdTE2KF9fcDBfNjcwLCBfX3AxXzY3MCwgX19wMl82NzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF82NzAgPSBfX3AwXzY3MDsgXAogIHVpbnQxNng4X3QgX19zMV82NzAgPSBfX3AxXzY3MDsgXAogIHVpbnQzMng0X3QgX19yZXRfNjcwOyBcCiAgX19yZXRfNjcwID0gdm11bGxfdTE2KF9fczBfNjcwLCBzcGxhdF9sYW5lcV91MTYoX19zMV82NzAsIF9fcDJfNjcwKSk7IFwKICBfX3JldF82NzA7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV91MTYoX19wMF82NzEsIF9fcDFfNjcxLCBfX3AyXzY3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzY3MSA9IF9fcDBfNjcxOyBcCiAgdWludDE2eDhfdCBfX3MxXzY3MSA9IF9fcDFfNjcxOyBcCiAgdWludDE2eDRfdCBfX3JldjBfNjcxOyAgX19yZXYwXzY3MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjcxLCBfX3MwXzY3MSwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV82NzE7ICBfX3JldjFfNjcxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NzEsIF9fczFfNjcxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNjcxOyBcCiAgX19yZXRfNjcxID0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MF82NzEsIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3UxNihfX3JldjFfNjcxLCBfX3AyXzY3MSkpOyBcCiAgX19yZXRfNjcxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjcxLCBfX3JldF82NzEsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjcxOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bGxfbGFuZXFfczMyKF9fcDBfNjcyLCBfX3AxXzY3MiwgX19wMl82NzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzY3MiA9IF9fcDBfNjcyOyBcCiAgaW50MzJ4NF90IF9fczFfNjcyID0gX19wMV82NzI7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjcyOyBcCiAgX19yZXRfNjcyID0gdm11bGxfczMyKF9fczBfNjcyLCBzcGxhdF9sYW5lcV9zMzIoX19zMV82NzIsIF9fcDJfNjcyKSk7IFwKICBfX3JldF82NzI7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsbF9sYW5lcV9zMzIoX19wMF82NzMsIF9fcDFfNjczLCBfX3AyXzY3MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNjczID0gX19wMF82NzM7IFwKICBpbnQzMng0X3QgX19zMV82NzMgPSBfX3AxXzY3MzsgXAogIGludDMyeDJfdCBfX3JldjBfNjczOyAgX19yZXYwXzY3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjczLCBfX3MwXzY3MywgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzY3MzsgIF9fcmV2MV82NzMgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY3MywgX19zMV82NzMsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY3MzsgXAogIF9fcmV0XzY3MyA9IF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjBfNjczLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYxXzY3MywgX19wMl82NzMpKTsgXAogIF9fcmV0XzY3MyA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY3MywgX19yZXRfNjczLCAxLCAwKTsgXAogIF9fcmV0XzY3MzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxsX2xhbmVxX3MxNihfX3AwXzY3NCwgX19wMV82NzQsIF9fcDJfNjc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF82NzQgPSBfX3AwXzY3NDsgXAogIGludDE2eDhfdCBfX3MxXzY3NCA9IF9fcDFfNjc0OyBcCiAgaW50MzJ4NF90IF9fcmV0XzY3NDsgXAogIF9fcmV0XzY3NCA9IHZtdWxsX3MxNihfX3MwXzY3NCwgc3BsYXRfbGFuZXFfczE2KF9fczFfNjc0LCBfX3AyXzY3NCkpOyBcCiAgX19yZXRfNjc0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGxfbGFuZXFfczE2KF9fcDBfNjc1LCBfX3AxXzY3NSwgX19wMl82NzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzY3NSA9IF9fcDBfNjc1OyBcCiAgaW50MTZ4OF90IF9fczFfNjc1ID0gX19wMV82NzU7IFwKICBpbnQxNng0X3QgX19yZXYwXzY3NTsgIF9fcmV2MF82NzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY3NSwgX19zMF82NzUsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV82NzU7ICBfX3JldjFfNjc1ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82NzUsIF9fczFfNjc1LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF82NzU7IFwKICBfX3JldF82NzUgPSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYwXzY3NSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2MV82NzUsIF9fcDJfNjc1KSk7IFwKICBfX3JldF82NzUgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82NzUsIF9fcmV0XzY3NSwgMywgMiwgMSwgMCk7IFwKICBfX3JldF82NzU7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bXVseHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bHhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2bXVseHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdm11bHhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0NjR4Ml90IF9fbm9zd2FwX3ZtdWx4cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZtdWx4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZtdWx4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92bXVseHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMng0X3QgX19ub3N3YXBfdm11bHhxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZtdWx4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2bXVseF9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92bXVseF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2bXVseF9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92bXVseF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgOSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3Qgdm11bHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQzMngyX3QgX19ub3N3YXBfdm11bHhfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdm11bHhfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NF90IHZtdWx4ZF9mNjQoZmxvYXQ2NF90IF9fcDAsIGZsb2F0NjRfdCBfX3AxKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdm11bHhkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3Qgdm11bHhzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92bXVseHNfZjMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZtdWx4ZF9sYW5lX2Y2NChfX3AwXzY3NiwgX19wMV82NzYsIF9fcDJfNjc2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMF82NzYgPSBfX3AwXzY3NjsgXAogIGZsb2F0NjR4MV90IF9fczFfNjc2ID0gX19wMV82NzY7IFwKICBmbG9hdDY0X3QgX19yZXRfNjc2OyBcCiAgX19yZXRfNjc2ID0gdm11bHhkX2Y2NChfX3MwXzY3NiwgdmdldF9sYW5lX2Y2NChfX3MxXzY3NiwgX19wMl82NzYpKTsgXAogIF9fcmV0XzY3NjsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHNfbGFuZV9mMzIoX19wMF82NzcsIF9fcDFfNjc3LCBfX3AyXzY3NykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjc3ID0gX19wMF82Nzc7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY3NyA9IF9fcDFfNjc3OyBcCiAgZmxvYXQzMl90IF9fcmV0XzY3NzsgXAogIF9fcmV0XzY3NyA9IHZtdWx4c19mMzIoX19zMF82NzcsIHZnZXRfbGFuZV9mMzIoX19zMV82NzcsIF9fcDJfNjc3KSk7IFwKICBfX3JldF82Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseHNfbGFuZV9mMzIoX19wMF82NzgsIF9fcDFfNjc4LCBfX3AyXzY3OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjc4ID0gX19wMF82Nzg7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY3OCA9IF9fcDFfNjc4OyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY3ODsgIF9fcmV2MV82NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY3OCwgX19zMV82NzgsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzY3ODsgXAogIF9fcmV0XzY3OCA9IHZtdWx4c19mMzIoX19zMF82NzgsIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMzIoX19yZXYxXzY3OCwgX19wMl82NzgpKTsgXAogIF9fcmV0XzY3ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lX2Y2NChfX3AwXzY3OSwgX19wMV82NzksIF9fcDJfNjc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzY3OSA9IF9fcDBfNjc5OyBcCiAgZmxvYXQ2NHgxX3QgX19zMV82NzkgPSBfX3AxXzY3OTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzY3OTsgXAogIF9fcmV0XzY3OSA9IHZtdWx4cV9mNjQoX19zMF82NzksIHNwbGF0cV9sYW5lX2Y2NChfX3MxXzY3OSwgX19wMl82NzkpKTsgXAogIF9fcmV0XzY3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lX2Y2NChfX3AwXzY4MCwgX19wMV82ODAsIF9fcDJfNjgwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzY4MCA9IF9fcDBfNjgwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMV82ODAgPSBfX3AxXzY4MDsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF82ODA7ICBfX3JldjBfNjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82ODAsIF9fczBfNjgwLCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzY4MDsgXAogIF9fcmV0XzY4MCA9IF9fbm9zd2FwX3ZtdWx4cV9mNjQoX19yZXYwXzY4MCwgX19ub3N3YXBfc3BsYXRxX2xhbmVfZjY0KF9fczFfNjgwLCBfX3AyXzY4MCkpOyBcCiAgX19yZXRfNjgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjgwLCBfX3JldF82ODAsIDEsIDApOyBcCiAgX19yZXRfNjgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhxX2xhbmVfZjMyKF9fcDBfNjgxLCBfX3AxXzY4MSwgX19wMl82ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNjgxID0gX19wMF82ODE7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MSA9IF9fcDFfNjgxOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjgxOyBcCiAgX19yZXRfNjgxID0gdm11bHhxX2YzMihfX3MwXzY4MSwgc3BsYXRxX2xhbmVfZjMyKF9fczFfNjgxLCBfX3AyXzY4MSkpOyBcCiAgX19yZXRfNjgxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX2xhbmVfZjMyKF9fcDBfNjgyLCBfX3AxXzY4MiwgX19wMl82ODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfNjgyID0gX19wMF82ODI7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MiA9IF9fcDFfNjgyOyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzY4MjsgIF9fcmV2MF82ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY4MiwgX19zMF82ODIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY4MjsgIF9fcmV2MV82ODIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4MiwgX19zMV82ODIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfNjgyOyBcCiAgX19yZXRfNjgyID0gX19ub3N3YXBfdm11bHhxX2YzMihfX3JldjBfNjgyLCBfX25vc3dhcF9zcGxhdHFfbGFuZV9mMzIoX19yZXYxXzY4MiwgX19wMl82ODIpKTsgXAogIF9fcmV0XzY4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY4MiwgX19yZXRfNjgyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY4MjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4X2xhbmVfZjMyKF9fcDBfNjgzLCBfX3AxXzY4MywgX19wMl82ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjgzID0gX19wMF82ODM7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4MyA9IF9fcDFfNjgzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjgzOyBcCiAgX19yZXRfNjgzID0gdm11bHhfZjMyKF9fczBfNjgzLCBzcGxhdF9sYW5lX2YzMihfX3MxXzY4MywgX19wMl82ODMpKTsgXAogIF9fcmV0XzY4MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4X2xhbmVfZjMyKF9fcDBfNjg0LCBfX3AxXzY4NCwgX19wMl82ODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjg0ID0gX19wMF82ODQ7IFwKICBmbG9hdDMyeDJfdCBfX3MxXzY4NCA9IF9fcDFfNjg0OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzY4NDsgIF9fcmV2MF82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY4NCwgX19zMF82ODQsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXYxXzY4NDsgIF9fcmV2MV82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4NCwgX19zMV82ODQsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjg0OyBcCiAgX19yZXRfNjg0ID0gX19ub3N3YXBfdm11bHhfZjMyKF9fcmV2MF82ODQsIF9fbm9zd2FwX3NwbGF0X2xhbmVfZjMyKF9fcmV2MV82ODQsIF9fcDJfNjg0KSk7IFwKICBfX3JldF82ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82ODQsIF9fcmV0XzY4NCwgMSwgMCk7IFwKICBfX3JldF82ODQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseGRfbGFuZXFfZjY0KF9fcDBfNjg1LCBfX3AxXzY4NSwgX19wMl82ODUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwXzY4NSA9IF9fcDBfNjg1OyBcCiAgZmxvYXQ2NHgyX3QgX19zMV82ODUgPSBfX3AxXzY4NTsgXAogIGZsb2F0NjRfdCBfX3JldF82ODU7IFwKICBfX3JldF82ODUgPSB2bXVseGRfZjY0KF9fczBfNjg1LCB2Z2V0cV9sYW5lX2Y2NChfX3MxXzY4NSwgX19wMl82ODUpKTsgXAogIF9fcmV0XzY4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4ZF9sYW5lcV9mNjQoX19wMF82ODYsIF9fcDFfNjg2LCBfX3AyXzY4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczBfNjg2ID0gX19wMF82ODY7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzY4NiA9IF9fcDFfNjg2OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzY4NjsgIF9fcmV2MV82ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4NiwgX19zMV82ODYsIDEsIDApOyBcCiAgZmxvYXQ2NF90IF9fcmV0XzY4NjsgXAogIF9fcmV0XzY4NiA9IHZtdWx4ZF9mNjQoX19zMF82ODYsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjY0KF9fcmV2MV82ODYsIF9fcDJfNjg2KSk7IFwKICBfX3JldF82ODY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHNfbGFuZXFfZjMyKF9fcDBfNjg3LCBfX3AxXzY4NywgX19wMl82ODcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJfdCBfX3MwXzY4NyA9IF9fcDBfNjg3OyBcCiAgZmxvYXQzMng0X3QgX19zMV82ODcgPSBfX3AxXzY4NzsgXAogIGZsb2F0MzJfdCBfX3JldF82ODc7IFwKICBfX3JldF82ODcgPSB2bXVseHNfZjMyKF9fczBfNjg3LCB2Z2V0cV9sYW5lX2YzMihfX3MxXzY4NywgX19wMl82ODcpKTsgXAogIF9fcmV0XzY4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4c19sYW5lcV9mMzIoX19wMF82ODgsIF9fcDFfNjg4LCBfX3AyXzY4OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMl90IF9fczBfNjg4ID0gX19wMF82ODg7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY4OCA9IF9fcDFfNjg4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYxXzY4ODsgIF9fcmV2MV82ODggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzY4OCwgX19zMV82ODgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMl90IF9fcmV0XzY4ODsgXAogIF9fcmV0XzY4OCA9IHZtdWx4c19mMzIoX19zMF82ODgsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjMyKF9fcmV2MV82ODgsIF9fcDJfNjg4KSk7IFwKICBfX3JldF82ODg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVseHFfbGFuZXFfZjY0KF9fcDBfNjg5LCBfX3AxXzY4OSwgX19wMl82ODkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfNjg5ID0gX19wMF82ODk7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzY4OSA9IF9fcDFfNjg5OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfNjg5OyBcCiAgX19yZXRfNjg5ID0gdm11bHhxX2Y2NChfX3MwXzY4OSwgc3BsYXRxX2xhbmVxX2Y2NChfX3MxXzY4OSwgX19wMl82ODkpKTsgXAogIF9fcmV0XzY4OTsgXAp9KQojZWxzZQojZGVmaW5lIHZtdWx4cV9sYW5lcV9mNjQoX19wMF82OTAsIF9fcDFfNjkwLCBfX3AyXzY5MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF82OTAgPSBfX3AwXzY5MDsgXAogIGZsb2F0NjR4Ml90IF9fczFfNjkwID0gX19wMV82OTA7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfNjkwOyAgX19yZXYwXzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjkwLCBfX3MwXzY5MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjFfNjkwOyAgX19yZXYxXzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjkwLCBfX3MxXzY5MCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF82OTA7IFwKICBfX3JldF82OTAgPSBfX25vc3dhcF92bXVseHFfZjY0KF9fcmV2MF82OTAsIF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9mNjQoX19yZXYxXzY5MCwgX19wMl82OTApKTsgXAogIF9fcmV0XzY5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5MCwgX19yZXRfNjkwLCAxLCAwKTsgXAogIF9fcmV0XzY5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWx4cV9sYW5lcV9mMzIoX19wMF82OTEsIF9fcDFfNjkxLCBfX3AyXzY5MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF82OTEgPSBfX3AwXzY5MTsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjkxID0gX19wMV82OTE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF82OTE7IFwKICBfX3JldF82OTEgPSB2bXVseHFfZjMyKF9fczBfNjkxLCBzcGxhdHFfbGFuZXFfZjMyKF9fczFfNjkxLCBfX3AyXzY5MSkpOyBcCiAgX19yZXRfNjkxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhxX2xhbmVxX2YzMihfX3AwXzY5MiwgX19wMV82OTIsIF9fcDJfNjkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzY5MiA9IF9fcDBfNjkyOyBcCiAgZmxvYXQzMng0X3QgX19zMV82OTIgPSBfX3AxXzY5MjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF82OTI7ICBfX3JldjBfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82OTIsIF9fczBfNjkyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MV82OTI7ICBfX3JldjFfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82OTIsIF9fczFfNjkyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0XzY5MjsgXAogIF9fcmV0XzY5MiA9IF9fbm9zd2FwX3ZtdWx4cV9mMzIoX19yZXYwXzY5MiwgX19ub3N3YXBfc3BsYXRxX2xhbmVxX2YzMihfX3JldjFfNjkyLCBfX3AyXzY5MikpOyBcCiAgX19yZXRfNjkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNjkyLCBfX3JldF82OTIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNjkyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbGFuZXFfZjMyKF9fcDBfNjkzLCBfX3AxXzY5MywgX19wMl82OTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfNjkzID0gX19wMF82OTM7IFwKICBmbG9hdDMyeDRfdCBfX3MxXzY5MyA9IF9fcDFfNjkzOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfNjkzOyBcCiAgX19yZXRfNjkzID0gdm11bHhfZjMyKF9fczBfNjkzLCBzcGxhdF9sYW5lcV9mMzIoX19zMV82OTMsIF9fcDJfNjkzKSk7IFwKICBfX3JldF82OTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVseF9sYW5lcV9mMzIoX19wMF82OTQsIF9fcDFfNjk0LCBfX3AyXzY5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF82OTQgPSBfX3AwXzY5NDsgXAogIGZsb2F0MzJ4NF90IF9fczFfNjk0ID0gX19wMV82OTQ7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfNjk0OyAgX19yZXYwXzY5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNjk0LCBfX3MwXzY5NCwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldjFfNjk0OyAgX19yZXYxXzY5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjk0LCBfX3MxXzY5NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF82OTQ7IFwKICBfX3JldF82OTQgPSBfX25vc3dhcF92bXVseF9mMzIoX19yZXYwXzY5NCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfZjMyKF9fcmV2MV82OTQsIF9fcDJfNjk0KSk7IFwKICBfX3JldF82OTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82OTQsIF9fcmV0XzY5NCwgMSwgMCk7IFwKICBfX3JldF82OTQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2bmVncV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3Qgdm5lZ3FfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bmVncV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAtX19wMDsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm5lZ3FfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IC1fX3JldjA7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3Qgdm5lZ19mNjQoZmxvYXQ2NHgxX3QgX19wMCkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjR4MV90IHZuZWdfczY0KGludDY0eDFfdCBfX3AwKSB7CiAgaW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gLV9fcDA7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2bmVnZF9zNjQoaW50NjRfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92bmVnZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnBhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnBhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZwYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2cGFkZHFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnBhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZwYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cGFkZHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cGFkZHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnBhZGRxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZwYWRkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZwYWRkcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnBhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnBhZGRxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnBhZGRxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cGFkZHFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cGFkZHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZwYWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cGFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnBhZGRxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjRfdCB2cGFkZGRfdTY0KHVpbnQ2NHgyX3QgX19wMCkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfdTY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NF90IHZwYWRkZF91NjQodWludDY0eDJfdCBfX3AwKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnBhZGRkX3U2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2cGFkZGRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2cGFkZGRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfZjY0KF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjRfdCB2cGFkZGRfczY0KGludDY0eDJfdCBfX3AwKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cGFkZGRfczY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0X3QgdnBhZGRkX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwYWRkZF9zNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBhZGRzX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBhZGRzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBhZGRzX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBhZGRzX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnBtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnBtYXhxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnBtYXhxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZwbWF4cV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2cG1heHFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnBtYXhxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnBtYXhxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZwbWF4cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2cG1heHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cG1heHFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4cV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZwbWF4cV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnBtYXhxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnBtYXhxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2cG1heHFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtYXhxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjRfdCB2cG1heHFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhxZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZwbWF4cWRfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heHFkX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2cG1heHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJfdCB2cG1heHNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heHNfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnBtYXhubXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZwbWF4bm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZwbWF4bm1xX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cG1heG5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2cG1heG5tX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1fdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZwbWF4bm1fZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDJfdCkgX19idWlsdGluX25lb25fdnBtYXhubV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3QgdnBtYXhubXFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0X3QgdnBtYXhubXFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtYXhubXFkX2Y2NChfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJfdCB2cG1heG5tc19mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWF4bm1zX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBtYXhubXNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1heG5tc19mMzIoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZwbWlucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ4KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZwbWlucV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZwbWlucV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cG1pbnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnBtaW5xX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQ5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZwbWlucV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQ5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZwbWlucV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cG1pbnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnBtaW5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnBtaW5xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cG1pbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2cG1pbnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cG1pbnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZwbWlucV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZwbWlucV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnBtaW5xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnBtaW5xX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgMzMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0X3QgdnBtaW5xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlucWRfZjY0KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjRfdCB2cG1pbnFkX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjRfdCkgX19idWlsdGluX25lb25fdnBtaW5xZF9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBtaW5zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5zX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyX3QgdnBtaW5zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5zX2YzMihfX3JldjApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZwbWlubm1xX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cG1pbm5tcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2cG1pbm5tcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnBtaW5ubXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnBtaW5ubV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2cG1pbm5tX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1fdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA5KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NF90IHZwbWlubm1xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xZF9mNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NF90IHZwbWlubm1xZF9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZwbWlubm1xZF9mNjQoX19yZXYwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyX3QgdnBtaW5ubXNfZjMyKGZsb2F0MzJ4Ml90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cG1pbm5tc19mMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMl90IHZwbWlubm1zX2YzMihmbG9hdDMyeDJfdCBfX3AwKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnBtaW5ubXNfZjMyKF9fcmV2MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxYWJzcV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFhYnNxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cWFic3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cWFic19zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cWFic192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFhYnNiX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFhYnNiX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFhYnNzX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWJzc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cWFic2RfczY0KGludDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFhYnNkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxYWJzaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cWFic2hfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ4X3QgdnFhZGRiX3U4KHVpbnQ4X3QgX19wMCwgdWludDhfdCBfX3AxKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZGJfdTgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFhZGRzX3UzMih1aW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFhZGRkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFhZGRoX3UxNih1aW50MTZfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkaF91MTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxYWRkYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cWFkZGJfczgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2cWFkZHNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWFkZHNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFhZGRkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFhZGRkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxYWRkaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxYWRkaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cWRtbGFsc19zMzIoaW50NjRfdCBfX3AwLCBpbnQzMl90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfczMyKF9fcDAsIF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFkbWxhbGhfczE2KGludDMyX3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxoX3MxNihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIHZnZXRfaGlnaF9zMzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sYWxfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sYWxfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9oaWdoX2xhbmVfczMyKF9fcDBfNjk1LCBfX3AxXzY5NSwgX19wMl82OTUsIF9fcDNfNjk1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF82OTUgPSBfX3AwXzY5NTsgXAogIGludDMyeDRfdCBfX3MxXzY5NSA9IF9fcDFfNjk1OyBcCiAgaW50MzJ4Ml90IF9fczJfNjk1ID0gX19wMl82OTU7IFwKICBpbnQ2NHgyX3QgX19yZXRfNjk1OyBcCiAgX19yZXRfNjk1ID0gdnFkbWxhbF9zMzIoX19zMF82OTUsIHZnZXRfaGlnaF9zMzIoX19zMV82OTUpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzY5NSwgX19wM182OTUpKTsgXAogIF9fcmV0XzY5NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lX3MzMihfX3AwXzY5NiwgX19wMV82OTYsIF9fcDJfNjk2LCBfX3AzXzY5NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNjk2ID0gX19wMF82OTY7IFwKICBpbnQzMng0X3QgX19zMV82OTYgPSBfX3AxXzY5NjsgXAogIGludDMyeDJfdCBfX3MyXzY5NiA9IF9fcDJfNjk2OyBcCiAgaW50NjR4Ml90IF9fcmV2MF82OTY7ICBfX3JldjBfNjk2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF82OTYsIF9fczBfNjk2LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNjk2OyAgX19yZXYxXzY5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNjk2LCBfX3MxXzY5NiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzY5NjsgIF9fcmV2Ml82OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzY5NiwgX19zMl82OTYsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzY5NjsgXAogIF9fcmV0XzY5NiA9IF9fbm9zd2FwX3ZxZG1sYWxfczMyKF9fcmV2MF82OTYsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzY5NiksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml82OTYsIF9fcDNfNjk2KSk7IFwKICBfX3JldF82OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF82OTYsIF9fcmV0XzY5NiwgMSwgMCk7IFwKICBfX3JldF82OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsX2hpZ2hfbGFuZV9zMTYoX19wMF82OTcsIF9fcDFfNjk3LCBfX3AyXzY5NywgX19wM182OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzY5NyA9IF9fcDBfNjk3OyBcCiAgaW50MTZ4OF90IF9fczFfNjk3ID0gX19wMV82OTc7IFwKICBpbnQxNng0X3QgX19zMl82OTcgPSBfX3AyXzY5NzsgXAogIGludDMyeDRfdCBfX3JldF82OTc7IFwKICBfX3JldF82OTcgPSB2cWRtbGFsX3MxNihfX3MwXzY5NywgdmdldF9oaWdoX3MxNihfX3MxXzY5NyksIHNwbGF0X2xhbmVfczE2KF9fczJfNjk3LCBfX3AzXzY5NykpOyBcCiAgX19yZXRfNjk3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9oaWdoX2xhbmVfczE2KF9fcDBfNjk4LCBfX3AxXzY5OCwgX19wMl82OTgsIF9fcDNfNjk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF82OTggPSBfX3AwXzY5ODsgXAogIGludDE2eDhfdCBfX3MxXzY5OCA9IF9fcDFfNjk4OyBcCiAgaW50MTZ4NF90IF9fczJfNjk4ID0gX19wMl82OTg7IFwKICBpbnQzMng0X3QgX19yZXYwXzY5ODsgIF9fcmV2MF82OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzY5OCwgX19zMF82OTgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV82OTg7ICBfX3JldjFfNjk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV82OTgsIF9fczFfNjk4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNjk4OyAgX19yZXYyXzY5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNjk4LCBfX3MyXzY5OCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNjk4OyBcCiAgX19yZXRfNjk4ID0gX19ub3N3YXBfdnFkbWxhbF9zMTYoX19yZXYwXzY5OCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNjk4KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzY5OCwgX19wM182OTgpKTsgXAogIF9fcmV0XzY5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzY5OCwgX19yZXRfNjk4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzY5ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMzIoX19wMF82OTksIF9fcDFfNjk5LCBfX3AyXzY5OSwgX19wM182OTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzY5OSA9IF9fcDBfNjk5OyBcCiAgaW50MzJ4NF90IF9fczFfNjk5ID0gX19wMV82OTk7IFwKICBpbnQzMng0X3QgX19zMl82OTkgPSBfX3AyXzY5OTsgXAogIGludDY0eDJfdCBfX3JldF82OTk7IFwKICBfX3JldF82OTkgPSB2cWRtbGFsX3MzMihfX3MwXzY5OSwgdmdldF9oaWdoX3MzMihfX3MxXzY5OSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzY5OSwgX19wM182OTkpKTsgXAogIF9fcmV0XzY5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMzIoX19wMF83MDAsIF9fcDFfNzAwLCBfX3AyXzcwMCwgX19wM183MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcwMCA9IF9fcDBfNzAwOyBcCiAgaW50MzJ4NF90IF9fczFfNzAwID0gX19wMV83MDA7IFwKICBpbnQzMng0X3QgX19zMl83MDAgPSBfX3AyXzcwMDsgXAogIGludDY0eDJfdCBfX3JldjBfNzAwOyAgX19yZXYwXzcwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzAwLCBfX3MwXzcwMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzcwMDsgIF9fcmV2MV83MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwMCwgX19zMV83MDAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml83MDA7ICBfX3JldjJfNzAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDAsIF9fczJfNzAwLCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF83MDA7IFwKICBfX3JldF83MDAgPSBfX25vc3dhcF92cWRtbGFsX3MzMihfX3JldjBfNzAwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV83MDApLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzcwMCwgX19wM183MDApKTsgXAogIF9fcmV0XzcwMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwMCwgX19yZXRfNzAwLCAxLCAwKTsgXAogIF9fcmV0XzcwMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMTYoX19wMF83MDEsIF9fcDFfNzAxLCBfX3AyXzcwMSwgX19wM183MDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwMSA9IF9fcDBfNzAxOyBcCiAgaW50MTZ4OF90IF9fczFfNzAxID0gX19wMV83MDE7IFwKICBpbnQxNng4X3QgX19zMl83MDEgPSBfX3AyXzcwMTsgXAogIGludDMyeDRfdCBfX3JldF83MDE7IFwKICBfX3JldF83MDEgPSB2cWRtbGFsX3MxNihfX3MwXzcwMSwgdmdldF9oaWdoX3MxNihfX3MxXzcwMSksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzcwMSwgX19wM183MDEpKTsgXAogIF9fcmV0XzcwMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfaGlnaF9sYW5lcV9zMTYoX19wMF83MDIsIF9fcDFfNzAyLCBfX3AyXzcwMiwgX19wM183MDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwMiA9IF9fcDBfNzAyOyBcCiAgaW50MTZ4OF90IF9fczFfNzAyID0gX19wMV83MDI7IFwKICBpbnQxNng4X3QgX19zMl83MDIgPSBfX3AyXzcwMjsgXAogIGludDMyeDRfdCBfX3JldjBfNzAyOyAgX19yZXYwXzcwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzAyLCBfX3MwXzcwMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzcwMjsgIF9fcmV2MV83MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwMiwgX19zMV83MDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MDI7ICBfX3JldjJfNzAyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDIsIF9fczJfNzAyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MDI7IFwKICBfX3JldF83MDIgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjBfNzAyLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV83MDIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcwMiwgX19wM183MDIpKTsgXAogIF9fcmV0XzcwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwMiwgX19yZXRfNzAyLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbGFsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbGFsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sYWxfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbWxhbF9uX3MxNihfX3AwLCB2Z2V0X2hpZ2hfczE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbGFsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbHNfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZV9zMzIoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxzX2xhbmVfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sYWxoX2xhbmVfczE2KF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lX3MxNihfX3MwLCBfX3MxLCBfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbGFsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxhbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sYWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbGFsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxhbF9sYW5lcV9zMzIoX19wMF83MDMsIF9fcDFfNzAzLCBfX3AyXzcwMywgX19wM183MDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcwMyA9IF9fcDBfNzAzOyBcCiAgaW50MzJ4Ml90IF9fczFfNzAzID0gX19wMV83MDM7IFwKICBpbnQzMng0X3QgX19zMl83MDMgPSBfX3AyXzcwMzsgXAogIGludDY0eDJfdCBfX3JldF83MDM7IFwKICBfX3JldF83MDMgPSB2cWRtbGFsX3MzMihfX3MwXzcwMywgX19zMV83MDMsIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcwMywgX19wM183MDMpKTsgXAogIF9fcmV0XzcwMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sYWxfbGFuZXFfczMyKF9fcDBfNzA0LCBfX3AxXzcwNCwgX19wMl83MDQsIF9fcDNfNzA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MDQgPSBfX3AwXzcwNDsgXAogIGludDMyeDJfdCBfX3MxXzcwNCA9IF9fcDFfNzA0OyBcCiAgaW50MzJ4NF90IF9fczJfNzA0ID0gX19wMl83MDQ7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzcwNDsgIF9fcmV2MF83MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcwNCwgX19zMF83MDQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83MDQ7ICBfX3JldjFfNzA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MDQsIF9fczFfNzA0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNzA0OyAgX19yZXYyXzcwNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzA0LCBfX3MyXzcwNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzA0OyBcCiAgX19yZXRfNzA0ID0gX19ub3N3YXBfdnFkbWxhbF9zMzIoX19yZXYwXzcwNCwgX19yZXYxXzcwNCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml83MDQsIF9fcDNfNzA0KSk7IFwKICBfX3JldF83MDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MDQsIF9fcmV0XzcwNCwgMSwgMCk7IFwKICBfX3JldF83MDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbGFsX2xhbmVxX3MxNihfX3AwXzcwNSwgX19wMV83MDUsIF9fcDJfNzA1LCBfX3AzXzcwNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzA1ID0gX19wMF83MDU7IFwKICBpbnQxNng0X3QgX19zMV83MDUgPSBfX3AxXzcwNTsgXAogIGludDE2eDhfdCBfX3MyXzcwNSA9IF9fcDJfNzA1OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcwNTsgXAogIF9fcmV0XzcwNSA9IHZxZG1sYWxfczE2KF9fczBfNzA1LCBfX3MxXzcwNSwgc3BsYXRfbGFuZXFfczE2KF9fczJfNzA1LCBfX3AzXzcwNSkpOyBcCiAgX19yZXRfNzA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxhbF9sYW5lcV9zMTYoX19wMF83MDYsIF9fcDFfNzA2LCBfX3AyXzcwNiwgX19wM183MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwNiA9IF9fcDBfNzA2OyBcCiAgaW50MTZ4NF90IF9fczFfNzA2ID0gX19wMV83MDY7IFwKICBpbnQxNng4X3QgX19zMl83MDYgPSBfX3AyXzcwNjsgXAogIGludDMyeDRfdCBfX3JldjBfNzA2OyAgX19yZXYwXzcwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzA2LCBfX3MwXzcwNiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzcwNjsgIF9fcmV2MV83MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcwNiwgX19zMV83MDYsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MDY7ICBfX3JldjJfNzA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MDYsIF9fczJfNzA2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MDY7IFwKICBfX3JldF83MDYgPSBfX25vc3dhcF92cWRtbGFsX3MxNihfX3JldjBfNzA2LCBfX3JldjFfNzA2LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcwNiwgX19wM183MDYpKTsgXAogIF9fcmV0XzcwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcwNiwgX19yZXRfNzA2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcwNjsgXAp9KQojZW5kaWYKCl9fYWkgaW50NjRfdCB2cWRtbHNsc19zMzIoaW50NjRfdCBfX3AwLCBpbnQzMl90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfczMyKF9fcDAsIF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFkbWxzbGhfczE2KGludDMyX3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xoX3MxNihfX3AwLCBfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG1sc2xfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIHZnZXRfaGlnaF9zMzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG1sc2xfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZxZG1sc2xfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtbHNsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9oaWdoX2xhbmVfczMyKF9fcDBfNzA3LCBfX3AxXzcwNywgX19wMl83MDcsIF9fcDNfNzA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MDcgPSBfX3AwXzcwNzsgXAogIGludDMyeDRfdCBfX3MxXzcwNyA9IF9fcDFfNzA3OyBcCiAgaW50MzJ4Ml90IF9fczJfNzA3ID0gX19wMl83MDc7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzA3OyBcCiAgX19yZXRfNzA3ID0gdnFkbWxzbF9zMzIoX19zMF83MDcsIHZnZXRfaGlnaF9zMzIoX19zMV83MDcpLCBzcGxhdF9sYW5lX3MzMihfX3MyXzcwNywgX19wM183MDcpKTsgXAogIF9fcmV0XzcwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lX3MzMihfX3AwXzcwOCwgX19wMV83MDgsIF9fcDJfNzA4LCBfX3AzXzcwOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfNzA4ID0gX19wMF83MDg7IFwKICBpbnQzMng0X3QgX19zMV83MDggPSBfX3AxXzcwODsgXAogIGludDMyeDJfdCBfX3MyXzcwOCA9IF9fcDJfNzA4OyBcCiAgaW50NjR4Ml90IF9fcmV2MF83MDg7ICBfX3JldjBfNzA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MDgsIF9fczBfNzA4LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzA4OyAgX19yZXYxXzcwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzA4LCBfX3MxXzcwOCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYyXzcwODsgIF9fcmV2Ml83MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzcwOCwgX19zMl83MDgsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzcwODsgXAogIF9fcmV0XzcwOCA9IF9fbm9zd2FwX3ZxZG1sc2xfczMyKF9fcmV2MF83MDgsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxXzcwOCksIF9fbm9zd2FwX3NwbGF0X2xhbmVfczMyKF9fcmV2Ml83MDgsIF9fcDNfNzA4KSk7IFwKICBfX3JldF83MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MDgsIF9fcmV0XzcwOCwgMSwgMCk7IFwKICBfX3JldF83MDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsX2hpZ2hfbGFuZV9zMTYoX19wMF83MDksIF9fcDFfNzA5LCBfX3AyXzcwOSwgX19wM183MDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcwOSA9IF9fcDBfNzA5OyBcCiAgaW50MTZ4OF90IF9fczFfNzA5ID0gX19wMV83MDk7IFwKICBpbnQxNng0X3QgX19zMl83MDkgPSBfX3AyXzcwOTsgXAogIGludDMyeDRfdCBfX3JldF83MDk7IFwKICBfX3JldF83MDkgPSB2cWRtbHNsX3MxNihfX3MwXzcwOSwgdmdldF9oaWdoX3MxNihfX3MxXzcwOSksIHNwbGF0X2xhbmVfczE2KF9fczJfNzA5LCBfX3AzXzcwOSkpOyBcCiAgX19yZXRfNzA5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9oaWdoX2xhbmVfczE2KF9fcDBfNzEwLCBfX3AxXzcxMCwgX19wMl83MTAsIF9fcDNfNzEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MTAgPSBfX3AwXzcxMDsgXAogIGludDE2eDhfdCBfX3MxXzcxMCA9IF9fcDFfNzEwOyBcCiAgaW50MTZ4NF90IF9fczJfNzEwID0gX19wMl83MTA7IFwKICBpbnQzMng0X3QgX19yZXYwXzcxMDsgIF9fcmV2MF83MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxMCwgX19zMF83MTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83MTA7ICBfX3JldjFfNzEwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MTAsIF9fczFfNzEwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjJfNzEwOyAgX19yZXYyXzcxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzEwLCBfX3MyXzcxMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzEwOyBcCiAgX19yZXRfNzEwID0gX19ub3N3YXBfdnFkbWxzbF9zMTYoX19yZXYwXzcxMCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjFfNzEwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzcxMCwgX19wM183MTApKTsgXAogIF9fcmV0XzcxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxMCwgX19yZXRfNzEwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMzIoX19wMF83MTEsIF9fcDFfNzExLCBfX3AyXzcxMSwgX19wM183MTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxMSA9IF9fcDBfNzExOyBcCiAgaW50MzJ4NF90IF9fczFfNzExID0gX19wMV83MTE7IFwKICBpbnQzMng0X3QgX19zMl83MTEgPSBfX3AyXzcxMTsgXAogIGludDY0eDJfdCBfX3JldF83MTE7IFwKICBfX3JldF83MTEgPSB2cWRtbHNsX3MzMihfX3MwXzcxMSwgdmdldF9oaWdoX3MzMihfX3MxXzcxMSksIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcxMSwgX19wM183MTEpKTsgXAogIF9fcmV0XzcxMTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMzIoX19wMF83MTIsIF9fcDFfNzEyLCBfX3AyXzcxMiwgX19wM183MTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxMiA9IF9fcDBfNzEyOyBcCiAgaW50MzJ4NF90IF9fczFfNzEyID0gX19wMV83MTI7IFwKICBpbnQzMng0X3QgX19zMl83MTIgPSBfX3AyXzcxMjsgXAogIGludDY0eDJfdCBfX3JldjBfNzEyOyAgX19yZXYwXzcxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzEyLCBfX3MwXzcxMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzcxMjsgIF9fcmV2MV83MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxMiwgX19zMV83MTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2Ml83MTI7ICBfX3JldjJfNzEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTIsIF9fczJfNzEyLCAzLCAyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldF83MTI7IFwKICBfX3JldF83MTIgPSBfX25vc3dhcF92cWRtbHNsX3MzMihfX3JldjBfNzEyLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MV83MTIpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMzIoX19yZXYyXzcxMiwgX19wM183MTIpKTsgXAogIF9fcmV0XzcxMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxMiwgX19yZXRfNzEyLCAxLCAwKTsgXAogIF9fcmV0XzcxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMTYoX19wMF83MTMsIF9fcDFfNzEzLCBfX3AyXzcxMywgX19wM183MTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxMyA9IF9fcDBfNzEzOyBcCiAgaW50MTZ4OF90IF9fczFfNzEzID0gX19wMV83MTM7IFwKICBpbnQxNng4X3QgX19zMl83MTMgPSBfX3AyXzcxMzsgXAogIGludDMyeDRfdCBfX3JldF83MTM7IFwKICBfX3JldF83MTMgPSB2cWRtbHNsX3MxNihfX3MwXzcxMywgdmdldF9oaWdoX3MxNihfX3MxXzcxMyksIHNwbGF0X2xhbmVxX3MxNihfX3MyXzcxMywgX19wM183MTMpKTsgXAogIF9fcmV0XzcxMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfaGlnaF9sYW5lcV9zMTYoX19wMF83MTQsIF9fcDFfNzE0LCBfX3AyXzcxNCwgX19wM183MTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxNCA9IF9fcDBfNzE0OyBcCiAgaW50MTZ4OF90IF9fczFfNzE0ID0gX19wMV83MTQ7IFwKICBpbnQxNng4X3QgX19zMl83MTQgPSBfX3AyXzcxNDsgXAogIGludDMyeDRfdCBfX3JldjBfNzE0OyAgX19yZXYwXzcxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzE0LCBfX3MwXzcxNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzcxNDsgIF9fcmV2MV83MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxNCwgX19zMV83MTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MTQ7ICBfX3JldjJfNzE0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTQsIF9fczJfNzE0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MTQ7IFwKICBfX3JldF83MTQgPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjBfNzE0LCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MV83MTQpLCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcxNCwgX19wM183MTQpKTsgXAogIF9fcmV0XzcxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxNCwgX19yZXRfNzE0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtbHNsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2cWRtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG1sc2xfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbWxzbF9uX3MxNihfX3AwLCB2Z2V0X2hpZ2hfczE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnFkbWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtbHNsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbHNfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZV9zMzIoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xzX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMl90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczIsIF9fczIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xzX2xhbmVfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIsIF9fcDMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fczIgPSBfX3AyOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG1sc2xoX2xhbmVfczE2KF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lX3MxNihfX3MwLCBfX3MxLCBfX3JldjIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fczIsIF9fcDMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtbHNsc19sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMiwgX19wMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19zMiA9IF9fcDI7IFwKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMiwgX19zMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFkbWxzbHNfbGFuZXFfczMyKF9fczAsIF9fczEsIF9fcmV2MiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG1sc2xoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19zMiwgX19wMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyLCBfX3AzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3MyID0gX19wMjsgXAogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyLCBfX3MyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cWRtbHNsaF9sYW5lcV9zMTYoX19zMCwgX19zMSwgX19yZXYyLCBfX3AzKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbWxzbF9sYW5lcV9zMzIoX19wMF83MTUsIF9fcDFfNzE1LCBfX3AyXzcxNSwgX19wM183MTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJfdCBfX3MwXzcxNSA9IF9fcDBfNzE1OyBcCiAgaW50MzJ4Ml90IF9fczFfNzE1ID0gX19wMV83MTU7IFwKICBpbnQzMng0X3QgX19zMl83MTUgPSBfX3AyXzcxNTsgXAogIGludDY0eDJfdCBfX3JldF83MTU7IFwKICBfX3JldF83MTUgPSB2cWRtbHNsX3MzMihfX3MwXzcxNSwgX19zMV83MTUsIHNwbGF0X2xhbmVxX3MzMihfX3MyXzcxNSwgX19wM183MTUpKTsgXAogIF9fcmV0XzcxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG1sc2xfbGFuZXFfczMyKF9fcDBfNzE2LCBfX3AxXzcxNiwgX19wMl83MTYsIF9fcDNfNzE2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF83MTYgPSBfX3AwXzcxNjsgXAogIGludDMyeDJfdCBfX3MxXzcxNiA9IF9fcDFfNzE2OyBcCiAgaW50MzJ4NF90IF9fczJfNzE2ID0gX19wMl83MTY7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzcxNjsgIF9fcmV2MF83MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzcxNiwgX19zMF83MTYsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV83MTY7ICBfX3JldjFfNzE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MTYsIF9fczFfNzE2LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjJfNzE2OyAgX19yZXYyXzcxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfNzE2LCBfX3MyXzcxNiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzE2OyBcCiAgX19yZXRfNzE2ID0gX19ub3N3YXBfdnFkbWxzbF9zMzIoX19yZXYwXzcxNiwgX19yZXYxXzcxNiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2Ml83MTYsIF9fcDNfNzE2KSk7IFwKICBfX3JldF83MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MTYsIF9fcmV0XzcxNiwgMSwgMCk7IFwKICBfX3JldF83MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtbHNsX2xhbmVxX3MxNihfX3AwXzcxNywgX19wMV83MTcsIF9fcDJfNzE3LCBfX3AzXzcxNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzE3ID0gX19wMF83MTc7IFwKICBpbnQxNng0X3QgX19zMV83MTcgPSBfX3AxXzcxNzsgXAogIGludDE2eDhfdCBfX3MyXzcxNyA9IF9fcDJfNzE3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcxNzsgXAogIF9fcmV0XzcxNyA9IHZxZG1sc2xfczE2KF9fczBfNzE3LCBfX3MxXzcxNywgc3BsYXRfbGFuZXFfczE2KF9fczJfNzE3LCBfX3AzXzcxNykpOyBcCiAgX19yZXRfNzE3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbWxzbF9sYW5lcV9zMTYoX19wMF83MTgsIF9fcDFfNzE4LCBfX3AyXzcxOCwgX19wM183MTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzcxOCA9IF9fcDBfNzE4OyBcCiAgaW50MTZ4NF90IF9fczFfNzE4ID0gX19wMV83MTg7IFwKICBpbnQxNng4X3QgX19zMl83MTggPSBfX3AyXzcxODsgXAogIGludDMyeDRfdCBfX3JldjBfNzE4OyAgX19yZXYwXzcxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzE4LCBfX3MwXzcxOCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxXzcxODsgIF9fcmV2MV83MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcxOCwgX19zMV83MTgsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2Ml83MTg7ICBfX3JldjJfNzE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl83MTgsIF9fczJfNzE4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF83MTg7IFwKICBfX3JldF83MTggPSBfX25vc3dhcF92cWRtbHNsX3MxNihfX3JldjBfNzE4LCBfX3JldjFfNzE4LCBfX25vc3dhcF9zcGxhdF9sYW5lcV9zMTYoX19yZXYyXzcxOCwgX19wM183MTgpKTsgXAogIF9fcmV0XzcxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcxOCwgX19yZXRfNzE4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzcxODsgXAp9KQojZW5kaWYKCl9fYWkgaW50MzJfdCB2cWRtdWxoc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxZG11bGhoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFkbXVsaGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDJfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaF9sYW5lX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxoc19sYW5lX3MzMihfX3AwXzcxOSwgX19wMV83MTksIF9fcDJfNzE5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfNzE5ID0gX19wMF83MTk7IFwKICBpbnQzMngyX3QgX19zMV83MTkgPSBfX3AxXzcxOTsgXAogIGludDMyX3QgX19yZXRfNzE5OyBcCiAgX19yZXRfNzE5ID0gdnFkbXVsaHNfczMyKF9fczBfNzE5LCB2Z2V0X2xhbmVfczMyKF9fczFfNzE5LCBfX3AyXzcxOSkpOyBcCiAgX19yZXRfNzE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHNfbGFuZV9zMzIoX19wMF83MjAsIF9fcDFfNzIwLCBfX3AyXzcyMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzcyMCA9IF9fcDBfNzIwOyBcCiAgaW50MzJ4Ml90IF9fczFfNzIwID0gX19wMV83MjA7IFwKICBpbnQzMngyX3QgX19yZXYxXzcyMDsgIF9fcmV2MV83MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzcyMCwgX19zMV83MjAsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83MjA7IFwKICBfX3JldF83MjAgPSB2cWRtdWxoc19zMzIoX19zMF83MjAsIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMzIoX19yZXYxXzcyMCwgX19wMl83MjApKTsgXAogIF9fcmV0XzcyMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhoX2xhbmVfczE2KF9fcDBfNzIxLCBfX3AxXzcyMSwgX19wMl83MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjEgPSBfX3AwXzcyMTsgXAogIGludDE2eDRfdCBfX3MxXzcyMSA9IF9fcDFfNzIxOyBcCiAgaW50MTZfdCBfX3JldF83MjE7IFwKICBfX3JldF83MjEgPSB2cWRtdWxoaF9zMTYoX19zMF83MjEsIHZnZXRfbGFuZV9zMTYoX19zMV83MjEsIF9fcDJfNzIxKSk7IFwKICBfX3JldF83MjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoaF9sYW5lX3MxNihfX3AwXzcyMiwgX19wMV83MjIsIF9fcDJfNzIyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfNzIyID0gX19wMF83MjI7IFwKICBpbnQxNng0X3QgX19zMV83MjIgPSBfX3AxXzcyMjsgXAogIGludDE2eDRfdCBfX3JldjFfNzIyOyAgX19yZXYxXzcyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzIyLCBfX3MxXzcyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzcyMjsgXAogIF9fcmV0XzcyMiA9IHZxZG11bGhoX3MxNihfX3MwXzcyMiwgX19ub3N3YXBfdmdldF9sYW5lX3MxNihfX3JldjFfNzIyLCBfX3AyXzcyMikpOyBcCiAgX19yZXRfNzIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzIzLCBfX3AxXzcyMywgX19wMl83MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MjMgPSBfX3AwXzcyMzsgXAogIGludDMyeDRfdCBfX3MxXzcyMyA9IF9fcDFfNzIzOyBcCiAgaW50MzJfdCBfX3JldF83MjM7IFwKICBfX3JldF83MjMgPSB2cWRtdWxoc19zMzIoX19zMF83MjMsIHZnZXRxX2xhbmVfczMyKF9fczFfNzIzLCBfX3AyXzcyMykpOyBcCiAgX19yZXRfNzIzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzI0LCBfX3AxXzcyNCwgX19wMl83MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MjQgPSBfX3AwXzcyNDsgXAogIGludDMyeDRfdCBfX3MxXzcyNCA9IF9fcDFfNzI0OyBcCiAgaW50MzJ4NF90IF9fcmV2MV83MjQ7ICBfX3JldjFfNzI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MjQsIF9fczFfNzI0LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfNzI0OyBcCiAgX19yZXRfNzI0ID0gdnFkbXVsaHNfczMyKF9fczBfNzI0LCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjFfNzI0LCBfX3AyXzcyNCkpOyBcCiAgX19yZXRfNzI0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzI1LCBfX3AxXzcyNSwgX19wMl83MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjUgPSBfX3AwXzcyNTsgXAogIGludDE2eDhfdCBfX3MxXzcyNSA9IF9fcDFfNzI1OyBcCiAgaW50MTZfdCBfX3JldF83MjU7IFwKICBfX3JldF83MjUgPSB2cWRtdWxoaF9zMTYoX19zMF83MjUsIHZnZXRxX2xhbmVfczE2KF9fczFfNzI1LCBfX3AyXzcyNSkpOyBcCiAgX19yZXRfNzI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzI2LCBfX3AxXzcyNiwgX19wMl83MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MjYgPSBfX3AwXzcyNjsgXAogIGludDE2eDhfdCBfX3MxXzcyNiA9IF9fcDFfNzI2OyBcCiAgaW50MTZ4OF90IF9fcmV2MV83MjY7ICBfX3JldjFfNzI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MjYsIF9fczFfNzI2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfNzI2OyBcCiAgX19yZXRfNzI2ID0gdnFkbXVsaGhfczE2KF9fczBfNzI2LCBfX25vc3dhcF92Z2V0cV9sYW5lX3MxNihfX3JldjFfNzI2LCBfX3AyXzcyNikpOyBcCiAgX19yZXRfNzI2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsaHFfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxocV9sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMzQpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxocV9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cWRtdWxocV9sYW5lcV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4MTZfdClfX3MxLCBfX3AyLCAzMyk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGhxX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDJfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGhfbGFuZXFfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxoX2xhbmVxX3MxNihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNng4X3QgX19zMSA9IF9fcDE7IFwKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGhfbGFuZXFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgX19wMiwgMSk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCl9fYWkgaW50NjRfdCB2cWRtdWxsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxZG11bGxzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxZG11bGxoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFkbXVsbGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCB2Z2V0X2hpZ2hfczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZxZG11bGxfczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3AwKSwgdmdldF9oaWdoX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZxZG11bGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzcyNywgX19wMV83MjcsIF9fcDJfNzI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MjcgPSBfX3AwXzcyNzsgXAogIGludDMyeDJfdCBfX3MxXzcyNyA9IF9fcDFfNzI3OyBcCiAgaW50NjR4Ml90IF9fcmV0XzcyNzsgXAogIF9fcmV0XzcyNyA9IHZxZG11bGxfczMyKHZnZXRfaGlnaF9zMzIoX19zMF83MjcpLCBzcGxhdF9sYW5lX3MzMihfX3MxXzcyNywgX19wMl83MjcpKTsgXAogIF9fcmV0XzcyNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MzMihfX3AwXzcyOCwgX19wMV83MjgsIF9fcDJfNzI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MjggPSBfX3AwXzcyODsgXAogIGludDMyeDJfdCBfX3MxXzcyOCA9IF9fcDFfNzI4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF83Mjg7ICBfX3JldjBfNzI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MjgsIF9fczBfNzI4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjFfNzI4OyAgX19yZXYxXzcyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzI4LCBfX3MxXzcyOCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzI4OyBcCiAgX19yZXRfNzI4ID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjBfNzI4KSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMzIoX19yZXYxXzcyOCwgX19wMl83MjgpKTsgXAogIF9fcmV0XzcyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzcyOCwgX19yZXRfNzI4LCAxLCAwKTsgXAogIF9fcmV0XzcyODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MxNihfX3AwXzcyOSwgX19wMV83MjksIF9fcDJfNzI5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF83MjkgPSBfX3AwXzcyOTsgXAogIGludDE2eDRfdCBfX3MxXzcyOSA9IF9fcDFfNzI5OyBcCiAgaW50MzJ4NF90IF9fcmV0XzcyOTsgXAogIF9fcmV0XzcyOSA9IHZxZG11bGxfczE2KHZnZXRfaGlnaF9zMTYoX19zMF83MjkpLCBzcGxhdF9sYW5lX3MxNihfX3MxXzcyOSwgX19wMl83MjkpKTsgXAogIF9fcmV0XzcyOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lX3MxNihfX3AwXzczMCwgX19wMV83MzAsIF9fcDJfNzMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng4X3QgX19zMF83MzAgPSBfX3AwXzczMDsgXAogIGludDE2eDRfdCBfX3MxXzczMCA9IF9fcDFfNzMwOyBcCiAgaW50MTZ4OF90IF9fcmV2MF83MzA7ICBfX3JldjBfNzMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MzAsIF9fczBfNzMwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfNzMwOyAgX19yZXYxXzczMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzMwLCBfX3MxXzczMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzMwOyBcCiAgX19yZXRfNzMwID0gX19ub3N3YXBfdnFkbXVsbF9zMTYoX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjBfNzMwKSwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYxXzczMCwgX19wMl83MzApKTsgXAogIF9fcmV0XzczMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzczMCwgX19yZXRfNzMwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzczMDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lcV9zMzIoX19wMF83MzEsIF9fcDFfNzMxLCBfX3AyXzczMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfNzMxID0gX19wMF83MzE7IFwKICBpbnQzMng0X3QgX19zMV83MzEgPSBfX3AxXzczMTsgXAogIGludDY0eDJfdCBfX3JldF83MzE7IFwKICBfX3JldF83MzEgPSB2cWRtdWxsX3MzMih2Z2V0X2hpZ2hfczMyKF9fczBfNzMxKSwgc3BsYXRfbGFuZXFfczMyKF9fczFfNzMxLCBfX3AyXzczMSkpOyBcCiAgX19yZXRfNzMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFkbXVsbF9oaWdoX2xhbmVxX3MzMihfX3AwXzczMiwgX19wMV83MzIsIF9fcDJfNzMyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF83MzIgPSBfX3AwXzczMjsgXAogIGludDMyeDRfdCBfX3MxXzczMiA9IF9fcDFfNzMyOyBcCiAgaW50MzJ4NF90IF9fcmV2MF83MzI7ICBfX3JldjBfNzMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83MzIsIF9fczBfNzMyLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzMyOyAgX19yZXYxXzczMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzMyLCBfX3MxXzczMiwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzMyOyBcCiAgX19yZXRfNzMyID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjBfNzMyKSwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MV83MzIsIF9fcDJfNzMyKSk7IFwKICBfX3JldF83MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83MzIsIF9fcmV0XzczMiwgMSwgMCk7IFwKICBfX3JldF83MzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2hpZ2hfbGFuZXFfczE2KF9fcDBfNzMzLCBfX3AxXzczMywgX19wMl83MzMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwXzczMyA9IF9fcDBfNzMzOyBcCiAgaW50MTZ4OF90IF9fczFfNzMzID0gX19wMV83MzM7IFwKICBpbnQzMng0X3QgX19yZXRfNzMzOyBcCiAgX19yZXRfNzMzID0gdnFkbXVsbF9zMTYodmdldF9oaWdoX3MxNihfX3MwXzczMyksIHNwbGF0X2xhbmVxX3MxNihfX3MxXzczMywgX19wMl83MzMpKTsgXAogIF9fcmV0XzczMzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxfaGlnaF9sYW5lcV9zMTYoX19wMF83MzQsIF9fcDFfNzM0LCBfX3AyXzczNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfNzM0ID0gX19wMF83MzQ7IFwKICBpbnQxNng4X3QgX19zMV83MzQgPSBfX3AxXzczNDsgXAogIGludDE2eDhfdCBfX3JldjBfNzM0OyAgX19yZXYwXzczNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzM0LCBfX3MwXzczNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzczNDsgIF9fcmV2MV83MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzczNCwgX19zMV83MzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzczNDsgXAogIF9fcmV0XzczNCA9IF9fbm9zd2FwX3ZxZG11bGxfczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzczNCksIF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MxNihfX3JldjFfNzM0LCBfX3AyXzczNCkpOyBcCiAgX19yZXRfNzM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzM0LCBfX3JldF83MzQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzM0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxZG11bGxfaGlnaF9uX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdnFkbXVsbF9uX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFkbXVsbF9oaWdoX25fczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdnFkbXVsbF9uX3MzMihfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MCksIF9fcDEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnFkbXVsbF9oaWdoX25fczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2cWRtdWxsX25fczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cWRtdWxsX2hpZ2hfbl9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92cWRtdWxsX25fczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwKSwgX19wMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxZG11bGxzX2xhbmVfczMyKF9fcDBfNzM1LCBfX3AxXzczNSwgX19wMl83MzUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83MzUgPSBfX3AwXzczNTsgXAogIGludDMyeDJfdCBfX3MxXzczNSA9IF9fcDFfNzM1OyBcCiAgaW50NjRfdCBfX3JldF83MzU7IFwKICBfX3JldF83MzUgPSB2cWRtdWxsc19zMzIoX19zMF83MzUsIHZnZXRfbGFuZV9zMzIoX19zMV83MzUsIF9fcDJfNzM1KSk7IFwKICBfX3JldF83MzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsc19sYW5lX3MzMihfX3AwXzczNiwgX19wMV83MzYsIF9fcDJfNzM2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfNzM2ID0gX19wMF83MzY7IFwKICBpbnQzMngyX3QgX19zMV83MzYgPSBfX3AxXzczNjsgXAogIGludDMyeDJfdCBfX3JldjFfNzM2OyAgX19yZXYxXzczNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzM2LCBfX3MxXzczNiwgMSwgMCk7IFwKICBpbnQ2NF90IF9fcmV0XzczNjsgXAogIF9fcmV0XzczNiA9IHZxZG11bGxzX3MzMihfX3MwXzczNiwgX19ub3N3YXBfdmdldF9sYW5lX3MzMihfX3JldjFfNzM2LCBfX3AyXzczNikpOyBcCiAgX19yZXRfNzM2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFkbXVsbGhfbGFuZV9zMTYoX19wMF83MzcsIF9fcDFfNzM3LCBfX3AyXzczNykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzczNyA9IF9fcDBfNzM3OyBcCiAgaW50MTZ4NF90IF9fczFfNzM3ID0gX19wMV83Mzc7IFwKICBpbnQzMl90IF9fcmV0XzczNzsgXAogIF9fcmV0XzczNyA9IHZxZG11bGxoX3MxNihfX3MwXzczNywgdmdldF9sYW5lX3MxNihfX3MxXzczNywgX19wMl83MzcpKTsgXAogIF9fcmV0XzczNzsgXAp9KQojZWxzZQojZGVmaW5lIHZxZG11bGxoX2xhbmVfczE2KF9fcDBfNzM4LCBfX3AxXzczOCwgX19wMl83MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83MzggPSBfX3AwXzczODsgXAogIGludDE2eDRfdCBfX3MxXzczOCA9IF9fcDFfNzM4OyBcCiAgaW50MTZ4NF90IF9fcmV2MV83Mzg7ICBfX3JldjFfNzM4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83MzgsIF9fczFfNzM4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfNzM4OyBcCiAgX19yZXRfNzM4ID0gdnFkbXVsbGhfczE2KF9fczBfNzM4LCBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2MV83MzgsIF9fcDJfNzM4KSk7IFwKICBfX3JldF83Mzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsc19sYW5lcV9zMzIoX19wMF83MzksIF9fcDFfNzM5LCBfX3AyXzczOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzczOSA9IF9fcDBfNzM5OyBcCiAgaW50MzJ4NF90IF9fczFfNzM5ID0gX19wMV83Mzk7IFwKICBpbnQ2NF90IF9fcmV0XzczOTsgXAogIF9fcmV0XzczOSA9IHZxZG11bGxzX3MzMihfX3MwXzczOSwgdmdldHFfbGFuZV9zMzIoX19zMV83MzksIF9fcDJfNzM5KSk7IFwKICBfX3JldF83Mzk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsc19sYW5lcV9zMzIoX19wMF83NDAsIF9fcDFfNzQwLCBfX3AyXzc0MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0MCA9IF9fcDBfNzQwOyBcCiAgaW50MzJ4NF90IF9fczFfNzQwID0gX19wMV83NDA7IFwKICBpbnQzMng0X3QgX19yZXYxXzc0MDsgIF9fcmV2MV83NDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0MCwgX19zMV83NDAsIDMsIDIsIDEsIDApOyBcCiAgaW50NjRfdCBfX3JldF83NDA7IFwKICBfX3JldF83NDAgPSB2cWRtdWxsc19zMzIoX19zMF83NDAsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczMyKF9fcmV2MV83NDAsIF9fcDJfNzQwKSk7IFwKICBfX3JldF83NDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsaF9sYW5lcV9zMTYoX19wMF83NDEsIF9fcDFfNzQxLCBfX3AyXzc0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0MSA9IF9fcDBfNzQxOyBcCiAgaW50MTZ4OF90IF9fczFfNzQxID0gX19wMV83NDE7IFwKICBpbnQzMl90IF9fcmV0Xzc0MTsgXAogIF9fcmV0Xzc0MSA9IHZxZG11bGxoX3MxNihfX3MwXzc0MSwgdmdldHFfbGFuZV9zMTYoX19zMV83NDEsIF9fcDJfNzQxKSk7IFwKICBfX3JldF83NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsaF9sYW5lcV9zMTYoX19wMF83NDIsIF9fcDFfNzQyLCBfX3AyXzc0MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0MiA9IF9fcDBfNzQyOyBcCiAgaW50MTZ4OF90IF9fczFfNzQyID0gX19wMV83NDI7IFwKICBpbnQxNng4X3QgX19yZXYxXzc0MjsgIF9fcmV2MV83NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0MiwgX19zMV83NDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NDI7IFwKICBfX3JldF83NDIgPSB2cWRtdWxsaF9zMTYoX19zMF83NDIsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczE2KF9fcmV2MV83NDIsIF9fcDJfNzQyKSk7IFwKICBfX3JldF83NDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MzMihfX3AwXzc0MywgX19wMV83NDMsIF9fcDJfNzQzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83NDMgPSBfX3AwXzc0MzsgXAogIGludDMyeDRfdCBfX3MxXzc0MyA9IF9fcDFfNzQzOyBcCiAgaW50NjR4Ml90IF9fcmV0Xzc0MzsgXAogIF9fcmV0Xzc0MyA9IHZxZG11bGxfczMyKF9fczBfNzQzLCBzcGxhdF9sYW5lcV9zMzIoX19zMV83NDMsIF9fcDJfNzQzKSk7IFwKICBfX3JldF83NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MzMihfX3AwXzc0NCwgX19wMV83NDQsIF9fcDJfNzQ0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83NDQgPSBfX3AwXzc0NDsgXAogIGludDMyeDRfdCBfX3MxXzc0NCA9IF9fcDFfNzQ0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83NDQ7ICBfX3JldjBfNzQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NDQsIF9fczBfNzQ0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzQ0OyAgX19yZXYxXzc0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzQ0LCBfX3MxXzc0NCwgMywgMiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfNzQ0OyBcCiAgX19yZXRfNzQ0ID0gX19ub3N3YXBfdnFkbXVsbF9zMzIoX19yZXYwXzc0NCwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKF9fcmV2MV83NDQsIF9fcDJfNzQ0KSk7IFwKICBfX3JldF83NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NDQsIF9fcmV0Xzc0NCwgMSwgMCk7IFwKICBfX3JldF83NDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MxNihfX3AwXzc0NSwgX19wMV83NDUsIF9fcDJfNzQ1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NDUgPSBfX3AwXzc0NTsgXAogIGludDE2eDhfdCBfX3MxXzc0NSA9IF9fcDFfNzQ1OyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc0NTsgXAogIF9fcmV0Xzc0NSA9IHZxZG11bGxfczE2KF9fczBfNzQ1LCBzcGxhdF9sYW5lcV9zMTYoX19zMV83NDUsIF9fcDJfNzQ1KSk7IFwKICBfX3JldF83NDU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cWRtdWxsX2xhbmVxX3MxNihfX3AwXzc0NiwgX19wMV83NDYsIF9fcDJfNzQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NDYgPSBfX3AwXzc0NjsgXAogIGludDE2eDhfdCBfX3MxXzc0NiA9IF9fcDFfNzQ2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83NDY7ICBfX3JldjBfNzQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NDYsIF9fczBfNzQ2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzQ2OyAgX19yZXYxXzc0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzQ2LCBfX3MxXzc0NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzQ2OyBcCiAgX19yZXRfNzQ2ID0gX19ub3N3YXBfdnFkbXVsbF9zMTYoX19yZXYwXzc0NiwgX19ub3N3YXBfc3BsYXRfbGFuZXFfczE2KF9fcmV2MV83NDYsIF9fcDJfNzQ2KSk7IFwKICBfX3JldF83NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NDYsIF9fcmV0Xzc0NiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NDY7IFwKfSkKI2VuZGlmCgpfX2FpIGludDE2X3QgdnFtb3Zuc19zMzIoaW50MzJfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5zX3MzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxbW92bmRfczY0KGludDY0X3QgX19wMCkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFtb3ZuZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxbW92bmhfczE2KGludDE2X3QgX19wMCkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bmhfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZxbW92bnNfdTMyKHVpbnQzMl90IF9fcDApIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFtb3Zuc191MzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFtb3ZuZF91NjQodWludDY0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdm5kX3U2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50OF90IHZxbW92bmhfdTE2KHVpbnQxNl90IF9fcDApIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxbW92bmhfdTE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZxbW92bl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdnFtb3ZuX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cW1vdm5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl91MzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnFtb3ZuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2cW1vdm5fdTY0KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZxbW92bl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdnFtb3ZuX3U2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cW1vdm5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OChfX3AwLCB2cW1vdm5fdTE2KF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZxbW92bl9oaWdoX3UxNih1aW50OHg4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnFtb3ZuX3UxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZxbW92bl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMTYoX19wMCwgdnFtb3ZuX3MzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZxbW92bl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl9zMzIoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cW1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczMyKF9fcDAsIHZxbW92bl9zNjQoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cW1vdm5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92cW1vdm5fczY0KF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnFtb3ZuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczgoX19wMCwgdnFtb3ZuX3MxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxbW92bl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZxbW92bl9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDE2X3QgdnFtb3Z1bnNfczMyKGludDMyX3QgX19wMCkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFtb3Z1bmRfczY0KGludDY0X3QgX19wMCkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuZF9zNjQoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDhfdCB2cW1vdnVuaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cW1vdnVuaF9zMTYoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnFtb3Z1bl9oaWdoX3MzMih1aW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19wMCksIHZxbW92dW5fczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZxbW92dW5faGlnaF9zMzIodWludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MTYoKHVpbnQxNng0X3QpKF9fcmV2MCksIF9fbm9zd2FwX3ZxbW92dW5fczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZxbW92dW5faGlnaF9zNjQodWludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fcDApLCB2cW1vdnVuX3M2NChfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cW1vdnVuX2hpZ2hfczY0KHVpbnQzMngyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3JldjApLCBfX25vc3dhcF92cW1vdnVuX3M2NChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cW1vdnVuX2hpZ2hfczE2KHVpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OCgodWludDh4OF90KShfX3AwKSwgdnFtb3Z1bl9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnFtb3Z1bl9oaWdoX3MxNih1aW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjApLCBfX25vc3dhcF92cW1vdnVuX3MxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZxbmVncV9zNjQoaW50NjR4Ml90IF9fcDApIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcDAsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnFuZWdxX3M2NChpbnQ2NHgyX3QgX19wMCkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ3FfdigoaW50OHgxNl90KV9fcmV2MCwgMzUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2cW5lZ19zNjQoaW50NjR4MV90IF9fcDApIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ192KChpbnQ4eDhfdClfX3AwLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFuZWdiX3M4KGludDhfdCBfX3AwKSB7CiAgaW50OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFuZWdiX3M4KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFuZWdzX3MzMihpbnQzMl90IF9fcDApIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxbmVnc19zMzIoX19wMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cW5lZ2RfczY0KGludDY0X3QgX19wMCkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFuZWdkX3M2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxbmVnaF9zMTYoaW50MTZfdCBfX3AwKSB7CiAgaW50MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cW5lZ2hfczE2KF9fcDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFyZG11bGhzX3MzMihpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSkgewogIGludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxcmRtdWxoaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxocV9sYW5lX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxocV9sYW5lX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZV92KChpbnQ4eDE2X3QpX19zMCwgKGludDh4OF90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAyKTsgXAogIF9fcmV0OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG11bGhfbGFuZV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgX19wMiwgMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgMSk7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoX2xhbmVfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDRfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhfbGFuZV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIF9fcDIsIDEpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHNfbGFuZV9zMzIoX19wMF83NDcsIF9fcDFfNzQ3LCBfX3AyXzc0NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0NyA9IF9fcDBfNzQ3OyBcCiAgaW50MzJ4Ml90IF9fczFfNzQ3ID0gX19wMV83NDc7IFwKICBpbnQzMl90IF9fcmV0Xzc0NzsgXAogIF9fcmV0Xzc0NyA9IHZxcmRtdWxoc19zMzIoX19zMF83NDcsIHZnZXRfbGFuZV9zMzIoX19zMV83NDcsIF9fcDJfNzQ3KSk7IFwKICBfX3JldF83NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHNfbGFuZV9zMzIoX19wMF83NDgsIF9fcDFfNzQ4LCBfX3AyXzc0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc0OCA9IF9fcDBfNzQ4OyBcCiAgaW50MzJ4Ml90IF9fczFfNzQ4ID0gX19wMV83NDg7IFwKICBpbnQzMngyX3QgX19yZXYxXzc0ODsgIF9fcmV2MV83NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc0OCwgX19zMV83NDgsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NDg7IFwKICBfX3JldF83NDggPSB2cXJkbXVsaHNfczMyKF9fczBfNzQ4LCBfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2MV83NDgsIF9fcDJfNzQ4KSk7IFwKICBfX3JldF83NDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaGhfbGFuZV9zMTYoX19wMF83NDksIF9fcDFfNzQ5LCBfX3AyXzc0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc0OSA9IF9fcDBfNzQ5OyBcCiAgaW50MTZ4NF90IF9fczFfNzQ5ID0gX19wMV83NDk7IFwKICBpbnQxNl90IF9fcmV0Xzc0OTsgXAogIF9fcmV0Xzc0OSA9IHZxcmRtdWxoaF9zMTYoX19zMF83NDksIHZnZXRfbGFuZV9zMTYoX19zMV83NDksIF9fcDJfNzQ5KSk7IFwKICBfX3JldF83NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaGhfbGFuZV9zMTYoX19wMF83NTAsIF9fcDFfNzUwLCBfX3AyXzc1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzc1MCA9IF9fcDBfNzUwOyBcCiAgaW50MTZ4NF90IF9fczFfNzUwID0gX19wMV83NTA7IFwKICBpbnQxNng0X3QgX19yZXYxXzc1MDsgIF9fcmV2MV83NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1MCwgX19zMV83NTAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZfdCBfX3JldF83NTA7IFwKICBfX3JldF83NTAgPSB2cXJkbXVsaGhfczE2KF9fczBfNzUwLCBfX25vc3dhcF92Z2V0X2xhbmVfczE2KF9fcmV2MV83NTAsIF9fcDJfNzUwKSk7IFwKICBfX3JldF83NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaHNfbGFuZXFfczMyKF9fcDBfNzUxLCBfX3AxXzc1MSwgX19wMl83NTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF83NTEgPSBfX3AwXzc1MTsgXAogIGludDMyeDRfdCBfX3MxXzc1MSA9IF9fcDFfNzUxOyBcCiAgaW50MzJfdCBfX3JldF83NTE7IFwKICBfX3JldF83NTEgPSB2cXJkbXVsaHNfczMyKF9fczBfNzUxLCB2Z2V0cV9sYW5lX3MzMihfX3MxXzc1MSwgX19wMl83NTEpKTsgXAogIF9fcmV0Xzc1MTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoc19sYW5lcV9zMzIoX19wMF83NTIsIF9fcDFfNzUyLCBfX3AyXzc1MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzc1MiA9IF9fcDBfNzUyOyBcCiAgaW50MzJ4NF90IF9fczFfNzUyID0gX19wMV83NTI7IFwKICBpbnQzMng0X3QgX19yZXYxXzc1MjsgIF9fcmV2MV83NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1MiwgX19zMV83NTIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF83NTI7IFwKICBfX3JldF83NTIgPSB2cXJkbXVsaHNfczMyKF9fczBfNzUyLCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjFfNzUyLCBfX3AyXzc1MikpOyBcCiAgX19yZXRfNzUyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG11bGhoX2xhbmVxX3MxNihfX3AwXzc1MywgX19wMV83NTMsIF9fcDJfNzUzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfNzUzID0gX19wMF83NTM7IFwKICBpbnQxNng4X3QgX19zMV83NTMgPSBfX3AxXzc1MzsgXAogIGludDE2X3QgX19yZXRfNzUzOyBcCiAgX19yZXRfNzUzID0gdnFyZG11bGhoX3MxNihfX3MwXzc1MywgdmdldHFfbGFuZV9zMTYoX19zMV83NTMsIF9fcDJfNzUzKSk7IFwKICBfX3JldF83NTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaGhfbGFuZXFfczE2KF9fcDBfNzU0LCBfX3AxXzc1NCwgX19wMl83NTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF83NTQgPSBfX3AwXzc1NDsgXAogIGludDE2eDhfdCBfX3MxXzc1NCA9IF9fcDFfNzU0OyBcCiAgaW50MTZ4OF90IF9fcmV2MV83NTQ7ICBfX3JldjFfNzU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NTQsIF9fczFfNzU0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfNzU0OyBcCiAgX19yZXRfNzU0ID0gdnFyZG11bGhoX3MxNihfX3MwXzc1NCwgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYxXzc1NCwgX19wMl83NTQpKTsgXAogIF9fcmV0Xzc1NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lcV9zMzIoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50MzJ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzQpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZXFfczMyKF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwID0gX19wMDsgXAogIGludDMyeDRfdCBfX3MxID0gX19wMTsgXAogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyeDRfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzNCk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxocV9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaHFfbGFuZXFfdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzMpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaHFfbGFuZXFfczE2KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDhfdCBfX3MwID0gX19wMDsgXAogIGludDE2eDhfdCBfX3MxID0gX19wMTsgXAogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwLCBfX3MwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLCBfX3MxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2eDhfdCkgX19idWlsdGluX25lb25fdnFyZG11bGhxX2xhbmVxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzMyk7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX2xhbmVxX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtdWxoX2xhbmVxX3MzMihfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQzMng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMywgMiwgMSwgMCk7IFwKICBpbnQzMngyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcmRtdWxoX2xhbmVxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDIpOyBcCiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOyBcCiAgX19yZXQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbXVsaF9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3MwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDEpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbXVsaF9sYW5lcV9zMTYoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZ4OF90IF9fczEgPSBfX3AxOyBcCiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczAsIF9fczAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZ4NF90KSBfX2J1aWx0aW5fbmVvbl92cXJkbXVsaF9sYW5lcV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAxKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKX19haSB1aW50OF90IHZxcnNobGJfdTgodWludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdnFyc2hsYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2cXJzaGxzX3UzMih1aW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFyc2hsc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFyc2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZxcnNobGhfdTE2KHVpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFyc2hsYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaGxiX3M4KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnFyc2hsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobHNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFyc2hsZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2X3QgdnFyc2hsaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNobGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MzIoX19wMF83NTUsIF9fcDFfNzU1LCBfX3AyXzc1NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1NSA9IF9fcDBfNzU1OyBcCiAgdWludDMyeDRfdCBfX3MxXzc1NSA9IF9fcDFfNzU1OyBcCiAgdWludDE2eDhfdCBfX3JldF83NTU7IFwKICBfX3JldF83NTUgPSAodWludDE2eDhfdCkodmNvbWJpbmVfdTE2KCh1aW50MTZ4NF90KShfX3MwXzc1NSksICh1aW50MTZ4NF90KSh2cXJzaHJuX25fdTMyKF9fczFfNzU1LCBfX3AyXzc1NSkpKSk7IFwKICBfX3JldF83NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MzIoX19wMF83NTYsIF9fcDFfNzU2LCBfX3AyXzc1NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc1NiA9IF9fcDBfNzU2OyBcCiAgdWludDMyeDRfdCBfX3MxXzc1NiA9IF9fcDFfNzU2OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzU2OyAgX19yZXYwXzc1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzU2LCBfX3MwXzc1NiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV83NTY7ICBfX3JldjFfNzU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NTYsIF9fczFfNzU2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzU2OyBcCiAgX19yZXRfNzU2ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzc1NiksICh1aW50MTZ4NF90KShfX25vc3dhcF92cXJzaHJuX25fdTMyKF9fcmV2MV83NTYsIF9fcDJfNzU2KSkpKTsgXAogIF9fcmV0Xzc1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc1NiwgX19yZXRfNzU2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocm5faGlnaF9uX3U2NChfX3AwXzc1NywgX19wMV83NTcsIF9fcDJfNzU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzU3ID0gX19wMF83NTc7IFwKICB1aW50NjR4Ml90IF9fczFfNzU3ID0gX19wMV83NTc7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc1NzsgXAogIF9fcmV0Xzc1NyA9ICh1aW50MzJ4NF90KSh2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fczBfNzU3KSwgKHVpbnQzMngyX3QpKHZxcnNocm5fbl91NjQoX19zMV83NTcsIF9fcDJfNzU3KSkpKTsgXAogIF9fcmV0Xzc1NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5faGlnaF9uX3U2NChfX3AwXzc1OCwgX19wMV83NTgsIF9fcDJfNzU4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzU4ID0gX19wMF83NTg7IFwKICB1aW50NjR4Ml90IF9fczFfNzU4ID0gX19wMV83NTg7IFwKICB1aW50MzJ4Ml90IF9fcmV2MF83NTg7ICBfX3JldjBfNzU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NTgsIF9fczBfNzU4LCAxLCAwKTsgXAogIHVpbnQ2NHgyX3QgX19yZXYxXzc1ODsgIF9fcmV2MV83NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc1OCwgX19zMV83NTgsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF83NTg7IFwKICBfX3JldF83NTggPSAodWludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3JldjBfNzU4KSwgKHVpbnQzMngyX3QpKF9fbm9zd2FwX3ZxcnNocm5fbl91NjQoX19yZXYxXzc1OCwgX19wMl83NTgpKSkpOyBcCiAgX19yZXRfNzU4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzU4LCBfX3JldF83NTgsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzU4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hybl9oaWdoX25fdTE2KF9fcDBfNzU5LCBfX3AxXzc1OSwgX19wMl83NTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc1OSA9IF9fcDBfNzU5OyBcCiAgdWludDE2eDhfdCBfX3MxXzc1OSA9IF9fcDFfNzU5OyBcCiAgdWludDh4MTZfdCBfX3JldF83NTk7IFwKICBfX3JldF83NTkgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF83NTkpLCAodWludDh4OF90KSh2cXJzaHJuX25fdTE2KF9fczFfNzU5LCBfX3AyXzc1OSkpKSk7IFwKICBfX3JldF83NTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl91MTYoX19wMF83NjAsIF9fcDFfNzYwLCBfX3AyXzc2MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzYwID0gX19wMF83NjA7IFwKICB1aW50MTZ4OF90IF9fczFfNzYwID0gX19wMV83NjA7IFwKICB1aW50OHg4X3QgX19yZXYwXzc2MDsgIF9fcmV2MF83NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc2MCwgX19zMF83NjAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNzYwOyAgX19yZXYxXzc2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzYwLCBfX3MxXzc2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc2MDsgXAogIF9fcmV0Xzc2MCA9ICh1aW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjBfNzYwKSwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfdnFyc2hybl9uX3UxNihfX3JldjFfNzYwLCBfX3AyXzc2MCkpKSk7IFwKICBfX3JldF83NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjAsIF9fcmV0Xzc2MCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMzIoX19wMF83NjEsIF9fcDFfNzYxLCBfX3AyXzc2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzYxID0gX19wMF83NjE7IFwKICBpbnQzMng0X3QgX19zMV83NjEgPSBfX3AxXzc2MTsgXAogIGludDE2eDhfdCBfX3JldF83NjE7IFwKICBfX3JldF83NjEgPSAoaW50MTZ4OF90KSh2Y29tYmluZV9zMTYoKGludDE2eDRfdCkoX19zMF83NjEpLCAoaW50MTZ4NF90KSh2cXJzaHJuX25fczMyKF9fczFfNzYxLCBfX3AyXzc2MSkpKSk7IFwKICBfX3JldF83NjE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMzIoX19wMF83NjIsIF9fcDFfNzYyLCBfX3AyXzc2MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzYyID0gX19wMF83NjI7IFwKICBpbnQzMng0X3QgX19zMV83NjIgPSBfX3AxXzc2MjsgXAogIGludDE2eDRfdCBfX3JldjBfNzYyOyAgX19yZXYwXzc2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzYyLCBfX3MwXzc2MiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzc2MjsgIF9fcmV2MV83NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2MiwgX19zMV83NjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc2MjsgXAogIF9fcmV0Xzc2MiA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfNzYyKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnFyc2hybl9uX3MzMihfX3JldjFfNzYyLCBfX3AyXzc2MikpKSk7IFwKICBfX3JldF83NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjIsIF9fcmV0Xzc2MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zNjQoX19wMF83NjMsIF9fcDFfNzYzLCBfX3AyXzc2MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzYzID0gX19wMF83NjM7IFwKICBpbnQ2NHgyX3QgX19zMV83NjMgPSBfX3AxXzc2MzsgXAogIGludDMyeDRfdCBfX3JldF83NjM7IFwKICBfX3JldF83NjMgPSAoaW50MzJ4NF90KSh2Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19zMF83NjMpLCAoaW50MzJ4Ml90KSh2cXJzaHJuX25fczY0KF9fczFfNzYzLCBfX3AyXzc2MykpKSk7IFwKICBfX3JldF83NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zNjQoX19wMF83NjQsIF9fcDFfNzY0LCBfX3AyXzc2NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzY0ID0gX19wMF83NjQ7IFwKICBpbnQ2NHgyX3QgX19zMV83NjQgPSBfX3AxXzc2NDsgXAogIGludDMyeDJfdCBfX3JldjBfNzY0OyAgX19yZXYwXzc2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzY0LCBfX3MwXzc2NCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxXzc2NDsgIF9fcmV2MV83NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2NCwgX19zMV83NjQsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc2NDsgXAogIF9fcmV0Xzc2NCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3JldjBfNzY0KSwgKGludDMyeDJfdCkoX19ub3N3YXBfdnFyc2hybl9uX3M2NChfX3JldjFfNzY0LCBfX3AyXzc2NCkpKSk7IFwKICBfX3JldF83NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjQsIF9fcmV0Xzc2NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJuX2hpZ2hfbl9zMTYoX19wMF83NjUsIF9fcDFfNzY1LCBfX3AyXzc2NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83NjUgPSBfX3AwXzc2NTsgXAogIGludDE2eDhfdCBfX3MxXzc2NSA9IF9fcDFfNzY1OyBcCiAgaW50OHgxNl90IF9fcmV0Xzc2NTsgXAogIF9fcmV0Xzc2NSA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF83NjUpLCAoaW50OHg4X3QpKHZxcnNocm5fbl9zMTYoX19zMV83NjUsIF9fcDJfNzY1KSkpKTsgXAogIF9fcmV0Xzc2NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocm5faGlnaF9uX3MxNihfX3AwXzc2NiwgX19wMV83NjYsIF9fcDJfNzY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc2NiA9IF9fcDBfNzY2OyBcCiAgaW50MTZ4OF90IF9fczFfNzY2ID0gX19wMV83NjY7IFwKICBpbnQ4eDhfdCBfX3JldjBfNzY2OyAgX19yZXYwXzc2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzY2LCBfX3MwXzc2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzc2NjsgIF9fcmV2MV83NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc2NiwgX19zMV83NjYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0Xzc2NjsgXAogIF9fcmV0Xzc2NiA9IChpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19yZXYwXzc2NiksIChpbnQ4eDhfdCkoX19ub3N3YXBfdnFyc2hybl9uX3MxNihfX3JldjFfNzY2LCBfX3AyXzc2NikpKSk7IFwKICBfX3JldF83NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjYsIF9fcmV0Xzc2NiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83NjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxcnNocm5zX25fdTMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hybnNfbl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocm5kX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFyc2hybmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocm5oX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5oX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuc19uX3MzMihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5zX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3ZxcnNocm5kX25fczY0KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJuaF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJuaF9uX3MxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zMzIoX19wMF83NjcsIF9fcDFfNzY3LCBfX3AyXzc2NykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzY3ID0gX19wMF83Njc7IFwKICBpbnQzMng0X3QgX19zMV83NjcgPSBfX3AxXzc2NzsgXAogIGludDE2eDhfdCBfX3JldF83Njc7IFwKICBfX3JldF83NjcgPSAoaW50MTZ4OF90KSh2Y29tYmluZV9zMTYoKGludDE2eDRfdCkoX19zMF83NjcpLCAoaW50MTZ4NF90KSh2cXJzaHJ1bl9uX3MzMihfX3MxXzc2NywgX19wMl83NjcpKSkpOyBcCiAgX19yZXRfNzY3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyc2hydW5faGlnaF9uX3MzMihfX3AwXzc2OCwgX19wMV83NjgsIF9fcDJfNzY4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NjggPSBfX3AwXzc2ODsgXAogIGludDMyeDRfdCBfX3MxXzc2OCA9IF9fcDFfNzY4OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83Njg7ICBfX3JldjBfNzY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NjgsIF9fczBfNzY4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzY4OyAgX19yZXYxXzc2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzY4LCBfX3MxXzc2OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzY4OyBcCiAgX19yZXRfNzY4ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83NjgpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cXJzaHJ1bl9uX3MzMihfX3JldjFfNzY4LCBfX3AyXzc2OCkpKSk7IFwKICBfX3JldF83NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NjgsIF9fcmV0Xzc2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJzaHJ1bl9oaWdoX25fczY0KF9fcDBfNzY5LCBfX3AxXzc2OSwgX19wMl83NjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzc2OSA9IF9fcDBfNzY5OyBcCiAgaW50NjR4Ml90IF9fczFfNzY5ID0gX19wMV83Njk7IFwKICBpbnQzMng0X3QgX19yZXRfNzY5OyBcCiAgX19yZXRfNzY5ID0gKGludDMyeDRfdCkodmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fczBfNzY5KSwgKGludDMyeDJfdCkodnFyc2hydW5fbl9zNjQoX19zMV83NjksIF9fcDJfNzY5KSkpKTsgXAogIF9fcmV0Xzc2OTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zNjQoX19wMF83NzAsIF9fcDFfNzcwLCBfX3AyXzc3MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzcwID0gX19wMF83NzA7IFwKICBpbnQ2NHgyX3QgX19zMV83NzAgPSBfX3AxXzc3MDsgXAogIGludDMyeDJfdCBfX3JldjBfNzcwOyAgX19yZXYwXzc3MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzcwLCBfX3MwXzc3MCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXYxXzc3MDsgIF9fcmV2MV83NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc3MCwgX19zMV83NzAsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc3MDsgXAogIF9fcmV0Xzc3MCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3JldjBfNzcwKSwgKGludDMyeDJfdCkoX19ub3N3YXBfdnFyc2hydW5fbl9zNjQoX19yZXYxXzc3MCwgX19wMl83NzApKSkpOyBcCiAgX19yZXRfNzcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzcwLCBfX3JldF83NzAsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzcwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyc2hydW5faGlnaF9uX3MxNihfX3AwXzc3MSwgX19wMV83NzEsIF9fcDJfNzcxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc3MSA9IF9fcDBfNzcxOyBcCiAgaW50MTZ4OF90IF9fczFfNzcxID0gX19wMV83NzE7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzcxOyBcCiAgX19yZXRfNzcxID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzc3MSksIChpbnQ4eDhfdCkodnFyc2hydW5fbl9zMTYoX19zMV83NzEsIF9fcDJfNzcxKSkpKTsgXAogIF9fcmV0Xzc3MTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcnNocnVuX2hpZ2hfbl9zMTYoX19wMF83NzIsIF9fcDFfNzcyLCBfX3AyXzc3MikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83NzIgPSBfX3AwXzc3MjsgXAogIGludDE2eDhfdCBfX3MxXzc3MiA9IF9fcDFfNzcyOyBcCiAgaW50OHg4X3QgX19yZXYwXzc3MjsgIF9fcmV2MF83NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3MiwgX19zMF83NzIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83NzI7ICBfX3JldjFfNzcyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NzIsIF9fczFfNzcyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF83NzI7IFwKICBfX3JldF83NzIgPSAoaW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV9zOCgoaW50OHg4X3QpKF9fcmV2MF83NzIpLCAoaW50OHg4X3QpKF9fbm9zd2FwX3ZxcnNocnVuX25fczE2KF9fcmV2MV83NzIsIF9fcDJfNzcyKSkpKTsgXAogIF9fcmV0Xzc3MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc3MiwgX19yZXRfNzcyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc3MjsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnFyc2hydW5zX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFyc2hydW5zX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXJzaHJ1bmRfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxcnNocnVuaF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXJzaHJ1bmhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIHVpbnQ4X3QgdnFzaGxiX3U4KHVpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICB1aW50OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2cXNobHNfdTMyKHVpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSkgewogIHVpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfdTMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZxc2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFzaGxoX3UxNih1aW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICB1aW50MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ4X3QgdnFzaGxiX3M4KGludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIGludDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9zOChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMl90IHZxc2hsc19zMzIoaW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsc19zMzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2cXNobGRfczY0KGludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgaW50NjRfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cXNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2X3QgdnFzaGxoX3MxNihpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX3MxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cXNobGJfbl91OChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OF90IF9fczAgPSBfX3AwOyBcCiAgdWludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9uX3U4KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHNfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfbl91MzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsZF9uX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjRfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF9uX3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGxoX25fdTE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgdWludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobGJfbl9zOChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQ4X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsYl9uX3M4KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHNfbl9zMzIoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGxoX25fczE2KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaGxoX25fczE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHViX25fczgoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OF90IF9fczAgPSBfX3AwOyBcCiAgaW50OF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXNobHViX25fczgoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hsdXNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNobHVzX25fczMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNobHVkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFzaGx1ZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaGx1aF9uX3MxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczAgPSBfX3AwOyBcCiAgaW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hsdWhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5faGlnaF9uX3UzMihfX3AwXzc3MywgX19wMV83NzMsIF9fcDJfNzczKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNzczID0gX19wMF83NzM7IFwKICB1aW50MzJ4NF90IF9fczFfNzczID0gX19wMV83NzM7IFwKICB1aW50MTZ4OF90IF9fcmV0Xzc3MzsgXAogIF9fcmV0Xzc3MyA9ICh1aW50MTZ4OF90KSh2Y29tYmluZV91MTYoKHVpbnQxNng0X3QpKF9fczBfNzczKSwgKHVpbnQxNng0X3QpKHZxc2hybl9uX3UzMihfX3MxXzc3MywgX19wMl83NzMpKSkpOyBcCiAgX19yZXRfNzczOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl91MzIoX19wMF83NzQsIF9fcDFfNzc0LCBfX3AyXzc3NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzc3NCA9IF9fcDBfNzc0OyBcCiAgdWludDMyeDRfdCBfX3MxXzc3NCA9IF9fcDFfNzc0OyBcCiAgdWludDE2eDRfdCBfX3JldjBfNzc0OyAgX19yZXYwXzc3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzc0LCBfX3MwXzc3NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV83NzQ7ICBfX3JldjFfNzc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83NzQsIF9fczFfNzc0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzc0OyBcCiAgX19yZXRfNzc0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzc3NCksICh1aW50MTZ4NF90KShfX25vc3dhcF92cXNocm5fbl91MzIoX19yZXYxXzc3NCwgX19wMl83NzQpKSkpOyBcCiAgX19yZXRfNzc0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzc0LCBfX3JldF83NzQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzc0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl91NjQoX19wMF83NzUsIF9fcDFfNzc1LCBfX3AyXzc3NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzc3NSA9IF9fcDBfNzc1OyBcCiAgdWludDY0eDJfdCBfX3MxXzc3NSA9IF9fcDFfNzc1OyBcCiAgdWludDMyeDRfdCBfX3JldF83NzU7IFwKICBfX3JldF83NzUgPSAodWludDMyeDRfdCkodmNvbWJpbmVfdTMyKCh1aW50MzJ4Ml90KShfX3MwXzc3NSksICh1aW50MzJ4Ml90KSh2cXNocm5fbl91NjQoX19zMV83NzUsIF9fcDJfNzc1KSkpKTsgXAogIF9fcmV0Xzc3NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9oaWdoX25fdTY0KF9fcDBfNzc2LCBfX3AxXzc3NiwgX19wMl83NzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF83NzYgPSBfX3AwXzc3NjsgXAogIHVpbnQ2NHgyX3QgX19zMV83NzYgPSBfX3AxXzc3NjsgXAogIHVpbnQzMngyX3QgX19yZXYwXzc3NjsgIF9fcmV2MF83NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc3NiwgX19zMF83NzYsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldjFfNzc2OyAgX19yZXYxXzc3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzc2LCBfX3MxXzc3NiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc3NjsgXAogIF9fcmV0Xzc3NiA9ICh1aW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fcmV2MF83NzYpLCAodWludDMyeDJfdCkoX19ub3N3YXBfdnFzaHJuX25fdTY0KF9fcmV2MV83NzYsIF9fcDJfNzc2KSkpKTsgXAogIF9fcmV0Xzc3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc3NiwgX19yZXRfNzc2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc3NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9oaWdoX25fdTE2KF9fcDBfNzc3LCBfX3AxXzc3NywgX19wMl83NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc3NyA9IF9fcDBfNzc3OyBcCiAgdWludDE2eDhfdCBfX3MxXzc3NyA9IF9fcDFfNzc3OyBcCiAgdWludDh4MTZfdCBfX3JldF83Nzc7IFwKICBfX3JldF83NzcgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF83NzcpLCAodWludDh4OF90KSh2cXNocm5fbl91MTYoX19zMV83NzcsIF9fcDJfNzc3KSkpKTsgXAogIF9fcmV0Xzc3NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hybl9oaWdoX25fdTE2KF9fcDBfNzc4LCBfX3AxXzc3OCwgX19wMl83NzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzc3OCA9IF9fcDBfNzc4OyBcCiAgdWludDE2eDhfdCBfX3MxXzc3OCA9IF9fcDFfNzc4OyBcCiAgdWludDh4OF90IF9fcmV2MF83Nzg7ICBfX3JldjBfNzc4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83NzgsIF9fczBfNzc4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXYxXzc3ODsgIF9fcmV2MV83NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc3OCwgX19zMV83NzgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldF83Nzg7IFwKICBfX3JldF83NzggPSAodWludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19yZXYwXzc3OCksICh1aW50OHg4X3QpKF9fbm9zd2FwX3Zxc2hybl9uX3UxNihfX3JldjFfNzc4LCBfX3AyXzc3OCkpKSk7IFwKICBfX3JldF83NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83NzgsIF9fcmV0Xzc3OCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83Nzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXNocm5faGlnaF9uX3MzMihfX3AwXzc3OSwgX19wMV83NzksIF9fcDJfNzc5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83NzkgPSBfX3AwXzc3OTsgXAogIGludDMyeDRfdCBfX3MxXzc3OSA9IF9fcDFfNzc5OyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc3OTsgXAogIF9fcmV0Xzc3OSA9IChpbnQxNng4X3QpKHZjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3MwXzc3OSksIChpbnQxNng0X3QpKHZxc2hybl9uX3MzMihfX3MxXzc3OSwgX19wMl83NzkpKSkpOyBcCiAgX19yZXRfNzc5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMzIoX19wMF83ODAsIF9fcDFfNzgwLCBfX3AyXzc4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfNzgwID0gX19wMF83ODA7IFwKICBpbnQzMng0X3QgX19zMV83ODAgPSBfX3AxXzc4MDsgXAogIGludDE2eDRfdCBfX3JldjBfNzgwOyAgX19yZXYwXzc4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzgwLCBfX3MwXzc4MCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzc4MDsgIF9fcmV2MV83ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc4MCwgX19zMV83ODAsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc4MDsgXAogIF9fcmV0Xzc4MCA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfNzgwKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnFzaHJuX25fczMyKF9fcmV2MV83ODAsIF9fcDJfNzgwKSkpKTsgXAogIF9fcmV0Xzc4MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4MCwgX19yZXRfNzgwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hybl9oaWdoX25fczY0KF9fcDBfNzgxLCBfX3AxXzc4MSwgX19wMl83ODEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzc4MSA9IF9fcDBfNzgxOyBcCiAgaW50NjR4Ml90IF9fczFfNzgxID0gX19wMV83ODE7IFwKICBpbnQzMng0X3QgX19yZXRfNzgxOyBcCiAgX19yZXRfNzgxID0gKGludDMyeDRfdCkodmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fczBfNzgxKSwgKGludDMyeDJfdCkodnFzaHJuX25fczY0KF9fczFfNzgxLCBfX3AyXzc4MSkpKSk7IFwKICBfX3JldF83ODE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXNocm5faGlnaF9uX3M2NChfX3AwXzc4MiwgX19wMV83ODIsIF9fcDJfNzgyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODIgPSBfX3AwXzc4MjsgXAogIGludDY0eDJfdCBfX3MxXzc4MiA9IF9fcDFfNzgyOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83ODI7ICBfX3JldjBfNzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODIsIF9fczBfNzgyLCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjFfNzgyOyAgX19yZXYxXzc4MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzgyLCBfX3MxXzc4MiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzgyOyBcCiAgX19yZXRfNzgyID0gKGludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fcmV2MF83ODIpLCAoaW50MzJ4Ml90KShfX25vc3dhcF92cXNocm5fbl9zNjQoX19yZXYxXzc4MiwgX19wMl83ODIpKSkpOyBcCiAgX19yZXRfNzgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzgyLCBfX3JldF83ODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMTYoX19wMF83ODMsIF9fcDFfNzgzLCBfX3AyXzc4MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83ODMgPSBfX3AwXzc4MzsgXAogIGludDE2eDhfdCBfX3MxXzc4MyA9IF9fcDFfNzgzOyBcCiAgaW50OHgxNl90IF9fcmV0Xzc4MzsgXAogIF9fcmV0Xzc4MyA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF83ODMpLCAoaW50OHg4X3QpKHZxc2hybl9uX3MxNihfX3MxXzc4MywgX19wMl83ODMpKSkpOyBcCiAgX19yZXRfNzgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJuX2hpZ2hfbl9zMTYoX19wMF83ODQsIF9fcDFfNzg0LCBfX3AyXzc4NCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF83ODQgPSBfX3AwXzc4NDsgXAogIGludDE2eDhfdCBfX3MxXzc4NCA9IF9fcDFfNzg0OyBcCiAgaW50OHg4X3QgX19yZXYwXzc4NDsgIF9fcmV2MF83ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc4NCwgX19zMF83ODQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV2MV83ODQ7ICBfX3JldjFfNzg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83ODQsIF9fczFfNzg0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDh4MTZfdCBfX3JldF83ODQ7IFwKICBfX3JldF83ODQgPSAoaW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV9zOCgoaW50OHg4X3QpKF9fcmV2MF83ODQpLCAoaW50OHg4X3QpKF9fbm9zd2FwX3Zxc2hybl9uX3MxNihfX3JldjFfNzg0LCBfX3AyXzc4NCkpKSk7IFwKICBfX3JldF83ODQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83ODQsIF9fcmV0Xzc4NCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83ODQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZxc2hybnNfbl91MzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyX3QgX19zMCA9IF9fcDA7IFwKICB1aW50MTZfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5zX25fdTMyKF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNocm5kX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnFzaHJuZF9uX3U2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJuaF9uX3UxNihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZfdCBfX3MwID0gX19wMDsgXAogIHVpbnQ4X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXNocm5oX25fdTE2KF9fczAsIF9fcDEpOyBcCiAgX19yZXQ7IFwKfSkKI2RlZmluZSB2cXNocm5zX25fczMyKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMCA9IF9fcDA7IFwKICBpbnQxNl90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50MTZfdCkgX19idWlsdGluX25lb25fdnFzaHJuc19uX3MzMihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJuZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50MzJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc2hybmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZxc2hybmhfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFzaHJuaF9uX3MxNihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MzMihfX3AwXzc4NSwgX19wMV83ODUsIF9fcDJfNzg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83ODUgPSBfX3AwXzc4NTsgXAogIGludDMyeDRfdCBfX3MxXzc4NSA9IF9fcDFfNzg1OyBcCiAgaW50MTZ4OF90IF9fcmV0Xzc4NTsgXAogIF9fcmV0Xzc4NSA9IChpbnQxNng4X3QpKHZjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3MwXzc4NSksIChpbnQxNng0X3QpKHZxc2hydW5fbl9zMzIoX19zMV83ODUsIF9fcDJfNzg1KSkpKTsgXAogIF9fcmV0Xzc4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MzMihfX3AwXzc4NiwgX19wMV83ODYsIF9fcDJfNzg2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83ODYgPSBfX3AwXzc4NjsgXAogIGludDMyeDRfdCBfX3MxXzc4NiA9IF9fcDFfNzg2OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83ODY7ICBfX3JldjBfNzg2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODYsIF9fczBfNzg2LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzg2OyAgX19yZXYxXzc4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzg2LCBfX3MxXzc4NiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzg2OyBcCiAgX19yZXRfNzg2ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83ODYpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cXNocnVuX25fczMyKF9fcmV2MV83ODYsIF9fcDJfNzg2KSkpKTsgXAogIF9fcmV0Xzc4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4NiwgX19yZXRfNzg2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3M2NChfX3AwXzc4NywgX19wMV83ODcsIF9fcDJfNzg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODcgPSBfX3AwXzc4NzsgXAogIGludDY0eDJfdCBfX3MxXzc4NyA9IF9fcDFfNzg3OyBcCiAgaW50MzJ4NF90IF9fcmV0Xzc4NzsgXAogIF9fcmV0Xzc4NyA9IChpbnQzMng0X3QpKHZjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3MwXzc4NyksIChpbnQzMngyX3QpKHZxc2hydW5fbl9zNjQoX19zMV83ODcsIF9fcDJfNzg3KSkpKTsgXAogIF9fcmV0Xzc4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZxc2hydW5faGlnaF9uX3M2NChfX3AwXzc4OCwgX19wMV83ODgsIF9fcDJfNzg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF83ODggPSBfX3AwXzc4ODsgXAogIGludDY0eDJfdCBfX3MxXzc4OCA9IF9fcDFfNzg4OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF83ODg7ICBfX3JldjBfNzg4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83ODgsIF9fczBfNzg4LCAxLCAwKTsgXAogIGludDY0eDJfdCBfX3JldjFfNzg4OyAgX19yZXYxXzc4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzg4LCBfX3MxXzc4OCwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfNzg4OyBcCiAgX19yZXRfNzg4ID0gKGludDMyeDRfdCkoX19ub3N3YXBfdmNvbWJpbmVfczMyKChpbnQzMngyX3QpKF9fcmV2MF83ODgpLCAoaW50MzJ4Ml90KShfX25vc3dhcF92cXNocnVuX25fczY0KF9fcmV2MV83ODgsIF9fcDJfNzg4KSkpKTsgXAogIF9fcmV0Xzc4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc4OCwgX19yZXRfNzg4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxc2hydW5faGlnaF9uX3MxNihfX3AwXzc4OSwgX19wMV83ODksIF9fcDJfNzg5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzc4OSA9IF9fcDBfNzg5OyBcCiAgaW50MTZ4OF90IF9fczFfNzg5ID0gX19wMV83ODk7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzg5OyBcCiAgX19yZXRfNzg5ID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzc4OSksIChpbnQ4eDhfdCkodnFzaHJ1bl9uX3MxNihfX3MxXzc4OSwgX19wMl83ODkpKSkpOyBcCiAgX19yZXRfNzg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFzaHJ1bl9oaWdoX25fczE2KF9fcDBfNzkwLCBfX3AxXzc5MCwgX19wMl83OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfNzkwID0gX19wMF83OTA7IFwKICBpbnQxNng4X3QgX19zMV83OTAgPSBfX3AxXzc5MDsgXAogIGludDh4OF90IF9fcmV2MF83OTA7ICBfX3JldjBfNzkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTAsIF9fczBfNzkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfNzkwOyAgX19yZXYxXzc5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzkwLCBfX3MxXzc5MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfNzkwOyBcCiAgX19yZXRfNzkwID0gKGludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfczgoKGludDh4OF90KShfX3JldjBfNzkwKSwgKGludDh4OF90KShfX25vc3dhcF92cXNocnVuX25fczE2KF9fcmV2MV83OTAsIF9fcDJfNzkwKSkpKTsgXAogIF9fcmV0Xzc5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc5MCwgX19yZXRfNzkwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc5MDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnFzaHJ1bnNfbl9zMzIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwID0gX19wMDsgXAogIGludDE2X3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuc19uX3MzMihfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJ1bmRfbl9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDMyX3QgX19yZXQ7IFwKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXNocnVuZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnFzaHJ1bmhfbl9zMTYoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwID0gX19wMDsgXAogIGludDhfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDhfdCkgX19idWlsdGluX25lb25fdnFzaHJ1bmhfbl9zMTYoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQpfX2FpIHVpbnQ4X3QgdnFzdWJiX3U4KHVpbnQ4X3QgX19wMCwgdWludDhfdCBfX3AxKSB7CiAgdWludDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YmJfdTgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyX3QgdnFzdWJzX3UzMih1aW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgdWludDMyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3Vic191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnFzdWJkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2X3QgdnFzdWJoX3UxNih1aW50MTZfdCBfX3AwLCB1aW50MTZfdCBfX3AxKSB7CiAgdWludDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViaF91MTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50OF90IHZxc3ViYl9zOChpbnQ4X3QgX19wMCwgaW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92cXN1YmJfczgoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJfdCB2cXN1YnNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92cXN1YnNfczMyKF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnFzdWJkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnFzdWJkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxc3ViaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Zxc3ViaF9zMTYoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRibDFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRibDFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRibDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJsMXFfcDgocG9seTh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0YmwxcV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwxcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJsMXFfczgoaW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJsMV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRibDFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsMV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwxX3M4KGludDh4MTZfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJsMl9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZxdGJsMl9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MSwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnF0YmwycV9wOChwb2x5OHgxNngyX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRibDJxX3A4KHBvbHk4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwycV91OCh1aW50OHgxNngyX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDJxX3U4KHVpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXRibDJxX3M4KGludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMnFfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDEsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnF0YmwycV9zOChpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXRibDJfdTgodWludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwyX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnF0YmwyX3U4KHVpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDE2eDJfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsMl92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsMl9zOChpbnQ4eDE2eDJfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDJfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwyX3M4KGludDh4MTZ4Ml90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNngyX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwyX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDhfdClfX3JldjEsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnF0YmwzX3A4KHBvbHk4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0YmwzX3A4KHBvbHk4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHBvbHk4eDE2eDNfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzJdLCBfX3AwLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDhfdClfX3JldjEsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZxdGJsM3FfcDgocG9seTh4MTZ4M190IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDE2X3QpX19wMSwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnF0YmwzcV9wOChwb2x5OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZ4M190IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YmwzcV91OCh1aW50OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDNxX3U4KHVpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxdGJsM3FfczgoaW50OHgxNngzX3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YmwzcV92KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDE2X3QpX19wMSwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXRibDNxX3M4KGludDh4MTZ4M190IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZ4M190IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM3FfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MSwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnF0YmwzX3U4KHVpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsM192KChpbnQ4eDE2X3QpX19wMC52YWxbMF0sIChpbnQ4eDE2X3QpX19wMC52YWxbMV0sIChpbnQ4eDE2X3QpX19wMC52YWxbMl0sIChpbnQ4eDhfdClfX3AxLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJsM191OCh1aW50OHgxNngzX3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsM19zOChpbnQ4eDE2eDNfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDNfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0YmwzX3M4KGludDh4MTZ4M190IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNngzX3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YmwzX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MSwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRibDRfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4OF90KV9fcDEsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRibDRfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgcG9seTh4MTZ4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRibDRxX3A4KHBvbHk4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsNHFfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHgxNl90KV9fcDEsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJsNHFfcDgocG9seTh4MTZ4NF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2eDRfdCBfX3JldjA7CiAgX19yZXYwLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzBdLCBfX3AwLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzFdLCBfX3AwLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzJdLCBfX3AwLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYwLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAudmFsWzNdLCBfX3AwLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJsNHFfdigoaW50OHgxNl90KV9fcmV2MC52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjAudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbM10sIChpbnQ4eDE2X3QpX19yZXYxLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0Ymw0cV91OCh1aW50OHgxNng0X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4MTZfdClfX3AxLCA0OCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cXRibDRxX3U4KHVpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHgxNl90KV9fcmV2MSwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0Ymw0cV9zOChpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRxX3YoKGludDh4MTZfdClfX3AwLnZhbFswXSwgKGludDh4MTZfdClfX3AwLnZhbFsxXSwgKGludDh4MTZfdClfX3AwLnZhbFsyXSwgKGludDh4MTZfdClfX3AwLnZhbFszXSwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJsNHFfczgoaW50OHgxNng0X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Ymw0cV92KChpbnQ4eDE2X3QpX19yZXYwLnZhbFswXSwgKGludDh4MTZfdClfX3JldjAudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFszXSwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJsNF91OCh1aW50OHgxNng0X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRibDRfdTgodWludDh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4MTZ4NF90IF9fcmV2MDsKICBfX3JldjAudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMF0sIF9fcDAudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMV0sIF9fcDAudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbMl0sIF9fcDAudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjAudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMC52YWxbM10sIF9fcDAudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCAxNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZxdGJsNF9zOChpbnQ4eDE2eDRfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRibDRfdigoaW50OHgxNl90KV9fcDAudmFsWzBdLCAoaW50OHgxNl90KV9fcDAudmFsWzFdLCAoaW50OHgxNl90KV9fcDAudmFsWzJdLCAoaW50OHgxNl90KV9fcDAudmFsWzNdLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnF0Ymw0X3M4KGludDh4MTZ4NF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHgxNng0X3QgX19yZXYwOwogIF9fcmV2MC52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFswXSwgX19wMC52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsxXSwgX19wMC52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFsyXSwgX19wMC52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MC52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLnZhbFszXSwgX19wMC52YWxbM10sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Ymw0X3YoKGludDh4MTZfdClfX3JldjAudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MC52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYwLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjAudmFsWzNdLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJ4MV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0YngxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRieDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRieDFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0YngxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MXFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJ4MXFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YngxcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJ4MV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDFfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MV92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDFfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngxX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnF0YngyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4OF90KV9fcDIsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cXRieDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnF0YngycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMiwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnF0YngycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cXRieDJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDIsIDMyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnF0YngycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZ4Ml90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4MnFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYyLCAzMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2cXRieDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4Ml92KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHg4X3QpX19wMiwgMTYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2cXRieDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDE2eDJfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNngyX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDJfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngyX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDJfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngyX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDJfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDJfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4OF90KV9fcmV2MiwgMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cXRieDNfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDE2eDNfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M192KChpbnQ4eDhfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDEudmFsWzJdLCAoaW50OHg4X3QpX19wMiwgNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZxdGJ4M19wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZ4M190IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M192KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDhfdClfX3JldjIsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZxdGJ4M3FfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNngzX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEudmFsWzBdLCAoaW50OHgxNl90KV9fcDEudmFsWzFdLCAoaW50OHgxNl90KV9fcDEudmFsWzJdLCAoaW50OHgxNl90KV9fcDIsIDM2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZxdGJ4M3FfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNngzX3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNngzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0YngzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0YngzcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjIsIDQ4KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZxdGJ4M3FfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZ4M190IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4M3FfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMiwgMzIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2cXRieDNxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2eDNfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNngzX3QgX19yZXYxOwogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFswXSwgX19wMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsxXSwgX19wMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLnZhbFsyXSwgX19wMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0YngzcV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MiwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnF0YngzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNfdigoaW50OHg4X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4OF90KV9fcDIsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnF0YngzX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZ4M190IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngzX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0YngzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDNfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNngzX3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDNfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDNfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHg4X3QpX19yZXYyLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZxdGJ4NF9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCA0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnF0Yng0X3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAoaW50OHg4X3QpX19yZXYyLCA0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2cXRieDRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLnZhbFszXSwgKGludDh4MTZfdClfX3AyLCAzNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2cXRieDRxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZ4NF90IF9fcmV2MTsKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMF0sIF9fcDEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMV0sIF9fcDEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbMl0sIF9fcDEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMS52YWxbM10sIF9fcDEudmFsWzNdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIChpbnQ4eDE2X3QpX19yZXYyLCAzNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnF0Yng0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDRfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDE2X3QpX19wMiwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnF0Yng0cV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2eDRfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAoaW50OHgxNl90KV9fcmV2MiwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnF0Yng0cV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnF0Yng0cV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLnZhbFswXSwgKGludDh4MTZfdClfX3AxLnZhbFsxXSwgKGludDh4MTZfdClfX3AxLnZhbFsyXSwgKGludDh4MTZfdClfX3AxLnZhbFszXSwgKGludDh4MTZfdClfX3AyLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZxdGJ4NHFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cXRieDRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgKGludDh4MTZfdClfX3JldjIsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZxdGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZxdGJ4NF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4MTZ4NF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZxdGJ4NF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgKGludDh4OF90KV9fcmV2MiwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cXRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnF0Yng0X3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDE2X3QpX19wMS52YWxbMF0sIChpbnQ4eDE2X3QpX19wMS52YWxbMV0sIChpbnQ4eDE2X3QpX19wMS52YWxbMl0sIChpbnQ4eDE2X3QpX19wMS52YWxbM10sIChpbnQ4eDhfdClfX3AyLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2cXRieDRfczgoaW50OHg4X3QgX19wMCwgaW50OHgxNng0X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2eDRfdCBfX3JldjE7CiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzBdLCBfX3AxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzFdLCBfX3AxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzJdLCBfX3AxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEudmFsWzNdLCBfX3AxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cXRieDRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIChpbnQ4eDhfdClfX3JldjIsIDApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZyYWRkaG5faGlnaF91MzIodWludDE2eDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91MTYoX19wMCwgdnJhZGRobl91MzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnJhZGRobl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fdTMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnJhZGRobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2cmFkZGhuX3U2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2cmFkZGhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTMyKF9fcmV2MCwgX19ub3N3YXBfdnJhZGRobl91NjQoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2cmFkZGhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV91OChfX3AwLCB2cmFkZGhuX3UxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2cmFkZGhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnJhZGRobl91MTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZyYWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MxNihfX3AwLCB2cmFkZGhuX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZyYWRkaG5faGlnaF9zMzIoaW50MTZ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fczMyKF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2cmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMzIoX19wMCwgdnJhZGRobl9zNjQoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2cmFkZGhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zMzIoX19yZXYwLCBfX25vc3dhcF92cmFkZGhuX3M2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnJhZGRobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zOChfX3AwLCB2cmFkZGhuX3MxNihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyYWRkaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZyYWRkaG5fczE2KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2cmJpdF9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcDAsIDQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2cmJpdF9wOChwb2x5OHg4X3QgX19wMCkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAocG9seTh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmJpdF92KChpbnQ4eDhfdClfX3JldjAsIDQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZyYml0cV9wOChwb2x5OHgxNl90IF9fcDApIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHBvbHk4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0cV92KChpbnQ4eDE2X3QpX19wMCwgMzYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnJiaXRxX3A4KHBvbHk4eDE2X3QgX19wMCkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IChwb2x5OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyYml0cV91OCh1aW50OHgxNl90IF9fcDApIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0cV92KChpbnQ4eDE2X3QpX19wMCwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnJiaXRxX3U4KHVpbnQ4eDE2X3QgX19wMCkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDgpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnJiaXRxX3M4KGludDh4MTZfdCBfX3AwKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnJiaXRxX3YoKGludDh4MTZfdClfX3AwLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZyYml0cV9zOChpbnQ4eDE2X3QgX19wMCkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92cmJpdHFfdigoaW50OHgxNl90KV9fcmV2MCwgMzIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnJiaXRfdTgodWludDh4OF90IF9fcDApIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92cmJpdF92KChpbnQ4eDhfdClfX3AwLCAxNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZyYml0X3U4KHVpbnQ4eDhfdCBfX3AwKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcmV2MCwgMTYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2cmJpdF9zOChpbnQ4eDhfdCBfX3AwKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZyYml0X3YoKGludDh4OF90KV9fcDAsIDApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZyYml0X3M4KGludDh4OF90IF9fcDApIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDhfdCkgX19idWlsdGluX25lb25fdnJiaXRfdigoaW50OHg4X3QpX19yZXYwLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3AwLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BlcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVxX3YoKGludDh4MTZfdClfX3JldjAsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cmVjcGVfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJlY3BlX3YoKGludDh4OF90KV9fcDAsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJlY3BlZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJlY3Blc19mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcGVzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnJlY3BzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHNxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDQyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2cmVjcHNxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cmVjcHNfZjY0KGZsb2F0NjR4MV90IF9fcDAsIGZsb2F0NjR4MV90IF9fcDEpIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJlY3BzX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NF90IHZyZWNwc2RfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZyZWNwc2RfZjY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGZsb2F0MzJfdCB2cmVjcHNzX2YzMihmbG9hdDMyX3QgX19wMCwgZmxvYXQzMl90IF9fcDEpIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHNzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJlY3B4ZF9mNjQoZmxvYXQ2NF90IF9fcDApIHsKICBmbG9hdDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHhkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJlY3B4c19mMzIoZmxvYXQzMl90IF9fcDApIHsKICBmbG9hdDMyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMl90KSBfX2J1aWx0aW5fbmVvbl92cmVjcHhzX2YzMihfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2cnNobGRfdTY0KHVpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cnNobGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0X3QgdnJzaGxkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnJzaGxkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cnNocmRfbl91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92cnNocmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZyc2hyZF9uX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc2hyZF9uX3M2NChfX3MwLCBfX3AxKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9oaWdoX25fdTMyKF9fcDBfNzkxLCBfX3AxXzc5MSwgX19wMl83OTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF83OTEgPSBfX3AwXzc5MTsgXAogIHVpbnQzMng0X3QgX19zMV83OTEgPSBfX3AxXzc5MTsgXAogIHVpbnQxNng4X3QgX19yZXRfNzkxOyBcCiAgX19yZXRfNzkxID0gKHVpbnQxNng4X3QpKHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19zMF83OTEpLCAodWludDE2eDRfdCkodnJzaHJuX25fdTMyKF9fczFfNzkxLCBfX3AyXzc5MSkpKSk7IFwKICBfX3JldF83OTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3UzMihfX3AwXzc5MiwgX19wMV83OTIsIF9fcDJfNzkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4NF90IF9fczBfNzkyID0gX19wMF83OTI7IFwKICB1aW50MzJ4NF90IF9fczFfNzkyID0gX19wMV83OTI7IFwKICB1aW50MTZ4NF90IF9fcmV2MF83OTI7ICBfX3JldjBfNzkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTIsIF9fczBfNzkyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXYxXzc5MjsgIF9fcmV2MV83OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzc5MiwgX19zMV83OTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldF83OTI7IFwKICBfX3JldF83OTIgPSAodWludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfdTE2KCh1aW50MTZ4NF90KShfX3JldjBfNzkyKSwgKHVpbnQxNng0X3QpKF9fbm9zd2FwX3Zyc2hybl9uX3UzMihfX3JldjFfNzkyLCBfX3AyXzc5MikpKSk7IFwKICBfX3JldF83OTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF83OTIsIF9fcmV0Xzc5MiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF83OTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5faGlnaF9uX3U2NChfX3AwXzc5MywgX19wMV83OTMsIF9fcDJfNzkzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MzJ4Ml90IF9fczBfNzkzID0gX19wMF83OTM7IFwKICB1aW50NjR4Ml90IF9fczFfNzkzID0gX19wMV83OTM7IFwKICB1aW50MzJ4NF90IF9fcmV0Xzc5MzsgXAogIF9fcmV0Xzc5MyA9ICh1aW50MzJ4NF90KSh2Y29tYmluZV91MzIoKHVpbnQzMngyX3QpKF9fczBfNzkzKSwgKHVpbnQzMngyX3QpKHZyc2hybl9uX3U2NChfX3MxXzc5MywgX19wMl83OTMpKSkpOyBcCiAgX19yZXRfNzkzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91NjQoX19wMF83OTQsIF9fcDFfNzk0LCBfX3AyXzc5NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzc5NCA9IF9fcDBfNzk0OyBcCiAgdWludDY0eDJfdCBfX3MxXzc5NCA9IF9fcDFfNzk0OyBcCiAgdWludDMyeDJfdCBfX3JldjBfNzk0OyAgX19yZXYwXzc5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfNzk0LCBfX3MwXzc5NCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MV83OTQ7ICBfX3JldjFfNzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV83OTQsIF9fczFfNzk0LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfNzk0OyBcCiAgX19yZXRfNzk0ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19yZXYwXzc5NCksICh1aW50MzJ4Ml90KShfX25vc3dhcF92cnNocm5fbl91NjQoX19yZXYxXzc5NCwgX19wMl83OTQpKSkpOyBcCiAgX19yZXRfNzk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzk0LCBfX3JldF83OTQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzk0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91MTYoX19wMF83OTUsIF9fcDFfNzk1LCBfX3AyXzc5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzk1ID0gX19wMF83OTU7IFwKICB1aW50MTZ4OF90IF9fczFfNzk1ID0gX19wMV83OTU7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc5NTsgXAogIF9fcmV0Xzc5NSA9ICh1aW50OHgxNl90KSh2Y29tYmluZV91OCgodWludDh4OF90KShfX3MwXzc5NSksICh1aW50OHg4X3QpKHZyc2hybl9uX3UxNihfX3MxXzc5NSwgX19wMl83OTUpKSkpOyBcCiAgX19yZXRfNzk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl91MTYoX19wMF83OTYsIF9fcDFfNzk2LCBfX3AyXzc5NikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDh4OF90IF9fczBfNzk2ID0gX19wMF83OTY7IFwKICB1aW50MTZ4OF90IF9fczFfNzk2ID0gX19wMV83OTY7IFwKICB1aW50OHg4X3QgX19yZXYwXzc5NjsgIF9fcmV2MF83OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzc5NiwgX19zMF83OTYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDE2eDhfdCBfX3JldjFfNzk2OyAgX19yZXYxXzc5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzk2LCBfX3MxXzc5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHgxNl90IF9fcmV0Xzc5NjsgXAogIF9fcmV0Xzc5NiA9ICh1aW50OHgxNl90KShfX25vc3dhcF92Y29tYmluZV91OCgodWludDh4OF90KShfX3JldjBfNzk2KSwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfdnJzaHJuX25fdTE2KF9fcmV2MV83OTYsIF9fcDJfNzk2KSkpKTsgXAogIF9fcmV0Xzc5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzc5NiwgX19yZXRfNzk2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzc5NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZyc2hybl9oaWdoX25fczMyKF9fcDBfNzk3LCBfX3AxXzc5NywgX19wMl83OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzc5NyA9IF9fcDBfNzk3OyBcCiAgaW50MzJ4NF90IF9fczFfNzk3ID0gX19wMV83OTc7IFwKICBpbnQxNng4X3QgX19yZXRfNzk3OyBcCiAgX19yZXRfNzk3ID0gKGludDE2eDhfdCkodmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fczBfNzk3KSwgKGludDE2eDRfdCkodnJzaHJuX25fczMyKF9fczFfNzk3LCBfX3AyXzc5NykpKSk7IFwKICBfX3JldF83OTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3MzMihfX3AwXzc5OCwgX19wMV83OTgsIF9fcDJfNzk4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNng0X3QgX19zMF83OTggPSBfX3AwXzc5ODsgXAogIGludDMyeDRfdCBfX3MxXzc5OCA9IF9fcDFfNzk4OyBcCiAgaW50MTZ4NF90IF9fcmV2MF83OTg7ICBfX3JldjBfNzk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF83OTgsIF9fczBfNzk4LCAzLCAyLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldjFfNzk4OyAgX19yZXYxXzc5OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfNzk4LCBfX3MxXzc5OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfNzk4OyBcCiAgX19yZXRfNzk4ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fcmV2MF83OTgpLCAoaW50MTZ4NF90KShfX25vc3dhcF92cnNocm5fbl9zMzIoX19yZXYxXzc5OCwgX19wMl83OTgpKSkpOyBcCiAgX19yZXRfNzk4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfNzk4LCBfX3JldF83OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfNzk4OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnJzaHJuX2hpZ2hfbl9zNjQoX19wMF83OTksIF9fcDFfNzk5LCBfX3AyXzc5OSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfNzk5ID0gX19wMF83OTk7IFwKICBpbnQ2NHgyX3QgX19zMV83OTkgPSBfX3AxXzc5OTsgXAogIGludDMyeDRfdCBfX3JldF83OTk7IFwKICBfX3JldF83OTkgPSAoaW50MzJ4NF90KSh2Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19zMF83OTkpLCAoaW50MzJ4Ml90KSh2cnNocm5fbl9zNjQoX19zMV83OTksIF9fcDJfNzk5KSkpKTsgXAogIF9fcmV0Xzc5OTsgXAp9KQojZWxzZQojZGVmaW5lIHZyc2hybl9oaWdoX25fczY0KF9fcDBfODAwLCBfX3AxXzgwMCwgX19wMl84MDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgwMCA9IF9fcDBfODAwOyBcCiAgaW50NjR4Ml90IF9fczFfODAwID0gX19wMV84MDA7IFwKICBpbnQzMngyX3QgX19yZXYwXzgwMDsgIF9fcmV2MF84MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgwMCwgX19zMF84MDAsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MV84MDA7ICBfX3JldjFfODAwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MDAsIF9fczFfODAwLCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84MDA7IFwKICBfX3JldF84MDAgPSAoaW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19yZXYwXzgwMCksIChpbnQzMngyX3QpKF9fbm9zd2FwX3Zyc2hybl9uX3M2NChfX3JldjFfODAwLCBfX3AyXzgwMCkpKSk7IFwKICBfX3JldF84MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MDAsIF9fcmV0XzgwMCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MDA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cnNocm5faGlnaF9uX3MxNihfX3AwXzgwMSwgX19wMV84MDEsIF9fcDJfODAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzgwMSA9IF9fcDBfODAxOyBcCiAgaW50MTZ4OF90IF9fczFfODAxID0gX19wMV84MDE7IFwKICBpbnQ4eDE2X3QgX19yZXRfODAxOyBcCiAgX19yZXRfODAxID0gKGludDh4MTZfdCkodmNvbWJpbmVfczgoKGludDh4OF90KShfX3MwXzgwMSksIChpbnQ4eDhfdCkodnJzaHJuX25fczE2KF9fczFfODAxLCBfX3AyXzgwMSkpKSk7IFwKICBfX3JldF84MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cnNocm5faGlnaF9uX3MxNihfX3AwXzgwMiwgX19wMV84MDIsIF9fcDJfODAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDhfdCBfX3MwXzgwMiA9IF9fcDBfODAyOyBcCiAgaW50MTZ4OF90IF9fczFfODAyID0gX19wMV84MDI7IFwKICBpbnQ4eDhfdCBfX3JldjBfODAyOyAgX19yZXYwXzgwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODAyLCBfX3MwXzgwMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXYxXzgwMjsgIF9fcmV2MV84MDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgwMiwgX19zMV84MDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV0XzgwMjsgXAogIF9fcmV0XzgwMiA9IChpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19yZXYwXzgwMiksIChpbnQ4eDhfdCkoX19ub3N3YXBfdnJzaHJuX25fczE2KF9fcmV2MV84MDIsIF9fcDJfODAyKSkpKTsgXAogIF9fcmV0XzgwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgwMiwgX19yZXRfODAyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZyc3FydGVxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVxX3YoKGludDh4MTZfdClfX3AwLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJzcXJ0ZXFfZjY0KGZsb2F0NjR4Ml90IF9fcDApIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGZsb2F0NjR4MV90IHZyc3FydGVfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZV92KChpbnQ4eDhfdClfX3AwLCAxMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgZmxvYXQ2NF90IHZyc3FydGVkX2Y2NChmbG9hdDY0X3QgX19wMCkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydGVkX2Y2NChfX3AwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJzcXJ0ZXNfZjMyKGZsb2F0MzJfdCBfX3AwKSB7CiAgZmxvYXQzMl90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0ZXNfZjMyKF9fcDApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2cnNxcnRzcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92cnNxcnRzcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0Mik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnJzcXJ0c3FfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDJfdCkgX19idWlsdGluX25lb25fdnJzcXJ0c3FfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDQyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKX19haSBmbG9hdDY0eDFfdCB2cnNxcnRzX2Y2NChmbG9hdDY0eDFfdCBfX3AwLCBmbG9hdDY0eDFfdCBfX3AxKSB7CiAgZmxvYXQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDEwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDY0X3QgdnJzcXJ0c2RfZjY0KGZsb2F0NjRfdCBfX3AwLCBmbG9hdDY0X3QgX19wMSkgewogIGZsb2F0NjRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNkX2Y2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBmbG9hdDMyX3QgdnJzcXJ0c3NfZjMyKGZsb2F0MzJfdCBfX3AwLCBmbG9hdDMyX3QgX19wMSkgewogIGZsb2F0MzJfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyX3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3FydHNzX2YzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2RlZmluZSB2cnNyYWRfbl91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0X3QgX19zMCA9IF9fcDA7IFwKICB1aW50NjRfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnJzcmFkX25fczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fczEgPSBfX3AxOyBcCiAgaW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Zyc3JhZF9uX3M2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnJzdWJobl9oaWdoX3UzMih1aW50MTZ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UxNihfX3AwLCB2cnN1YmhuX3UzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2cnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl91MzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2cnN1YmhuX2hpZ2hfdTY0KHVpbnQzMngyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxLCB1aW50NjR4Ml90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTMyKF9fcDAsIHZyc3ViaG5fdTY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZyc3ViaG5faGlnaF91NjQodWludDMyeDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEsIHVpbnQ2NHgyX3QgX19wMikgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV91MzIoX19yZXYwLCBfX25vc3dhcF92cnN1YmhuX3U2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZyc3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZyc3ViaG5fdTE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZyc3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTgoX19yZXYwLCBfX25vc3dhcF92cnN1YmhuX3UxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnJzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfczE2KF9fcDAsIHZyc3ViaG5fczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnJzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl9zMzIoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZyc3ViaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3MzMihfX3AwLCB2cnN1YmhuX3M2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZyc3ViaG5faGlnaF9zNjQoaW50MzJ4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxLCBpbnQ2NHgyX3QgX19wMikgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3MzMihfX3JldjAsIF9fbm9zd2FwX3Zyc3ViaG5fczY0KF9fcmV2MSwgX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2cnN1YmhuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3M4KF9fcDAsIHZyc3ViaG5fczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnJzdWJobl9oaWdoX3MxNihpbnQ4eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3M4KF9fcmV2MCwgX19ub3N3YXBfdnJzdWJobl9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2RlZmluZSB2c2V0X2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDFfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgxX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92c2V0X2xhbmVfaTY0KF9fczAsIChwb2x5NjR4MV90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0X3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChwb2x5NjR4Ml90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2V0cV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjRfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRxX2xhbmVfaTY0KF9fczAsIChwb2x5NjR4Ml90KV9fcmV2MSwgX19wMik7IFwKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NF90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXQ7IFwKICBfX3JldCA9IChwb2x5NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2k2NChfX3MwLCAocG9seTY0eDJfdClfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldHFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjRfdCBfX3MwID0gX19wMDsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19yZXYxLCBfX3AyKTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdnNldHFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NF90IF9fczAgPSBfX3AwOyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c2V0cV9sYW5lX2Y2NChfX3MwLCAoZmxvYXQ2NHgyX3QpX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnNldF9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0X3QgX19zMCA9IF9fcDA7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAoZmxvYXQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzZXRfbGFuZV9mNjQoX19zMCwgKGZsb2F0NjR4MV90KV9fczEsIF9fcDIpOyBcCiAgX19yZXQ7IFwKfSkKX19haSB1aW50NjRfdCB2c2hsZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzaGxkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZzaGxkX3M2NChpbnQ2NF90IF9fcDAsIGludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZGVmaW5lIHZzaGxkX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzaGxkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNobGRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fdTgoX19wMF84MDMsIF9fcDFfODAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfODAzID0gX19wMF84MDM7IFwKICB1aW50MTZ4OF90IF9fcmV0XzgwMzsgXAogIF9fcmV0XzgwMyA9ICh1aW50MTZ4OF90KSh2c2hsbF9uX3U4KHZnZXRfaGlnaF91OChfX3MwXzgwMyksIF9fcDFfODAzKSk7IFwKICBfX3JldF84MDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fdTgoX19wMF84MDQsIF9fcDFfODA0KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNl90IF9fczBfODA0ID0gX19wMF84MDQ7IFwKICB1aW50OHgxNl90IF9fcmV2MF84MDQ7ICBfX3JldjBfODA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MDQsIF9fczBfODA0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODA0OyBcCiAgX19yZXRfODA0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTgoX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MF84MDQpLCBfX3AxXzgwNCkpOyBcCiAgX19yZXRfODA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODA0LCBfX3JldF84MDQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODA0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNobGxfaGlnaF9uX3UzMihfX3AwXzgwNSwgX19wMV84MDUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF84MDUgPSBfX3AwXzgwNTsgXAogIHVpbnQ2NHgyX3QgX19yZXRfODA1OyBcCiAgX19yZXRfODA1ID0gKHVpbnQ2NHgyX3QpKHZzaGxsX25fdTMyKHZnZXRfaGlnaF91MzIoX19zMF84MDUpLCBfX3AxXzgwNSkpOyBcCiAgX19yZXRfODA1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNobGxfaGlnaF9uX3UzMihfX3AwXzgwNiwgX19wMV84MDYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMng0X3QgX19zMF84MDYgPSBfX3AwXzgwNjsgXAogIHVpbnQzMng0X3QgX19yZXYwXzgwNjsgIF9fcmV2MF84MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgwNiwgX19zMF84MDYsIDMsIDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84MDY7IFwKICBfX3JldF84MDYgPSAodWludDY0eDJfdCkoX19ub3N3YXBfdnNobGxfbl91MzIoX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjBfODA2KSwgX19wMV84MDYpKTsgXAogIF9fcmV0XzgwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgwNiwgX19yZXRfODA2LCAxLCAwKTsgXAogIF9fcmV0XzgwNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaGxsX2hpZ2hfbl91MTYoX19wMF84MDcsIF9fcDFfODA3KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfODA3ID0gX19wMF84MDc7IFwKICB1aW50MzJ4NF90IF9fcmV0XzgwNzsgXAogIF9fcmV0XzgwNyA9ICh1aW50MzJ4NF90KSh2c2hsbF9uX3UxNih2Z2V0X2hpZ2hfdTE2KF9fczBfODA3KSwgX19wMV84MDcpKTsgXAogIF9fcmV0XzgwNzsgXAp9KQojZWxzZQojZGVmaW5lIHZzaGxsX2hpZ2hfbl91MTYoX19wMF84MDgsIF9fcDFfODA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50MTZ4OF90IF9fczBfODA4ID0gX19wMF84MDg7IFwKICB1aW50MTZ4OF90IF9fcmV2MF84MDg7ICBfX3JldjBfODA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MDgsIF9fczBfODA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfODA4OyBcCiAgX19yZXRfODA4ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwXzgwOCksIF9fcDFfODA4KSk7IFwKICBfX3JldF84MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MDgsIF9fcmV0XzgwOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MDg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczgoX19wMF84MDksIF9fcDFfODA5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF84MDkgPSBfX3AwXzgwOTsgXAogIGludDE2eDhfdCBfX3JldF84MDk7IFwKICBfX3JldF84MDkgPSAoaW50MTZ4OF90KSh2c2hsbF9uX3M4KHZnZXRfaGlnaF9zOChfX3MwXzgwOSksIF9fcDFfODA5KSk7IFwKICBfX3JldF84MDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczgoX19wMF84MTAsIF9fcDFfODEwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2X3QgX19zMF84MTAgPSBfX3AwXzgxMDsgXAogIGludDh4MTZfdCBfX3JldjBfODEwOyAgX19yZXYwXzgxMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODEwLCBfX3MwXzgxMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng4X3QgX19yZXRfODEwOyBcCiAgX19yZXRfODEwID0gKGludDE2eDhfdCkoX19ub3N3YXBfdnNobGxfbl9zOChfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYwXzgxMCksIF9fcDFfODEwKSk7IFwKICBfX3JldF84MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTAsIF9fcmV0XzgxMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczMyKF9fcDBfODExLCBfX3AxXzgxMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODExID0gX19wMF84MTE7IFwKICBpbnQ2NHgyX3QgX19yZXRfODExOyBcCiAgX19yZXRfODExID0gKGludDY0eDJfdCkodnNobGxfbl9zMzIodmdldF9oaWdoX3MzMihfX3MwXzgxMSksIF9fcDFfODExKSk7IFwKICBfX3JldF84MTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczMyKF9fcDBfODEyLCBfX3AxXzgxMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODEyID0gX19wMF84MTI7IFwKICBpbnQzMng0X3QgX19yZXYwXzgxMjsgIF9fcmV2MF84MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgxMiwgX19zMF84MTIsIDMsIDIsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV0XzgxMjsgXAogIF9fcmV0XzgxMiA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3ZzaGxsX25fczMyKF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYwXzgxMiksIF9fcDFfODEyKSk7IFwKICBfX3JldF84MTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTIsIF9fcmV0XzgxMiwgMSwgMCk7IFwKICBfX3JldF84MTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hsbF9oaWdoX25fczE2KF9fcDBfODEzLCBfX3AxXzgxMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfODEzID0gX19wMF84MTM7IFwKICBpbnQzMng0X3QgX19yZXRfODEzOyBcCiAgX19yZXRfODEzID0gKGludDMyeDRfdCkodnNobGxfbl9zMTYodmdldF9oaWdoX3MxNihfX3MwXzgxMyksIF9fcDFfODEzKSk7IFwKICBfX3JldF84MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hsbF9oaWdoX25fczE2KF9fcDBfODE0LCBfX3AxXzgxNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4OF90IF9fczBfODE0ID0gX19wMF84MTQ7IFwKICBpbnQxNng4X3QgX19yZXYwXzgxNDsgIF9fcmV2MF84MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgxNCwgX19zMF84MTQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgxNDsgXAogIF9fcmV0XzgxNCA9IChpbnQzMng0X3QpKF9fbm9zd2FwX3ZzaGxsX25fczE2KF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYwXzgxNCksIF9fcDFfODE0KSk7IFwKICBfX3JldF84MTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTQsIF9fcmV0XzgxNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTQ7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzaHJkX25fdTY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19yZXQ7IFwKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnNocmRfbl91NjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzaHJkX25fczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0X3QgX19zMCA9IF9fcDA7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNocmRfbl9zNjQoX19zMCwgX19wMSk7IFwKICBfX3JldDsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTMyKF9fcDBfODE1LCBfX3AxXzgxNSwgX19wMl84MTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQxNng0X3QgX19zMF84MTUgPSBfX3AwXzgxNTsgXAogIHVpbnQzMng0X3QgX19zMV84MTUgPSBfX3AxXzgxNTsgXAogIHVpbnQxNng4X3QgX19yZXRfODE1OyBcCiAgX19yZXRfODE1ID0gKHVpbnQxNng4X3QpKHZjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19zMF84MTUpLCAodWludDE2eDRfdCkodnNocm5fbl91MzIoX19zMV84MTUsIF9fcDJfODE1KSkpKTsgXAogIF9fcmV0XzgxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl91MzIoX19wMF84MTYsIF9fcDFfODE2LCBfX3AyXzgxNikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDE2eDRfdCBfX3MwXzgxNiA9IF9fcDBfODE2OyBcCiAgdWludDMyeDRfdCBfX3MxXzgxNiA9IF9fcDFfODE2OyBcCiAgdWludDE2eDRfdCBfX3JldjBfODE2OyAgX19yZXYwXzgxNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODE2LCBfX3MwXzgxNiwgMywgMiwgMSwgMCk7IFwKICB1aW50MzJ4NF90IF9fcmV2MV84MTY7ICBfX3JldjFfODE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MTYsIF9fczFfODE2LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng4X3QgX19yZXRfODE2OyBcCiAgX19yZXRfODE2ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UxNigodWludDE2eDRfdCkoX19yZXYwXzgxNiksICh1aW50MTZ4NF90KShfX25vc3dhcF92c2hybl9uX3UzMihfX3JldjFfODE2LCBfX3AyXzgxNikpKSk7IFwKICBfX3JldF84MTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTYsIF9fcmV0XzgxNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTY0KF9fcDBfODE3LCBfX3AxXzgxNywgX19wMl84MTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQzMngyX3QgX19zMF84MTcgPSBfX3AwXzgxNzsgXAogIHVpbnQ2NHgyX3QgX19zMV84MTcgPSBfX3AxXzgxNzsgXAogIHVpbnQzMng0X3QgX19yZXRfODE3OyBcCiAgX19yZXRfODE3ID0gKHVpbnQzMng0X3QpKHZjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19zMF84MTcpLCAodWludDMyeDJfdCkodnNocm5fbl91NjQoX19zMV84MTcsIF9fcDJfODE3KSkpKTsgXAogIF9fcmV0XzgxNzsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl91NjQoX19wMF84MTgsIF9fcDFfODE4LCBfX3AyXzgxOCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDJfdCBfX3MwXzgxOCA9IF9fcDBfODE4OyBcCiAgdWludDY0eDJfdCBfX3MxXzgxOCA9IF9fcDFfODE4OyBcCiAgdWludDMyeDJfdCBfX3JldjBfODE4OyAgX19yZXYwXzgxOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODE4LCBfX3MwXzgxOCwgMSwgMCk7IFwKICB1aW50NjR4Ml90IF9fcmV2MV84MTg7ICBfX3JldjFfODE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MTgsIF9fczFfODE4LCAxLCAwKTsgXAogIHVpbnQzMng0X3QgX19yZXRfODE4OyBcCiAgX19yZXRfODE4ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3UzMigodWludDMyeDJfdCkoX19yZXYwXzgxOCksICh1aW50MzJ4Ml90KShfX25vc3dhcF92c2hybl9uX3U2NChfX3JldjFfODE4LCBfX3AyXzgxOCkpKSk7IFwKICBfX3JldF84MTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MTgsIF9fcmV0XzgxOCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fdTE2KF9fcDBfODE5LCBfX3AxXzgxOSwgX19wMl84MTkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDhfdCBfX3MwXzgxOSA9IF9fcDBfODE5OyBcCiAgdWludDE2eDhfdCBfX3MxXzgxOSA9IF9fcDFfODE5OyBcCiAgdWludDh4MTZfdCBfX3JldF84MTk7IFwKICBfX3JldF84MTkgPSAodWludDh4MTZfdCkodmNvbWJpbmVfdTgoKHVpbnQ4eDhfdCkoX19zMF84MTkpLCAodWludDh4OF90KSh2c2hybl9uX3UxNihfX3MxXzgxOSwgX19wMl84MTkpKSkpOyBcCiAgX19yZXRfODE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNocm5faGlnaF9uX3UxNihfX3AwXzgyMCwgX19wMV84MjAsIF9fcDJfODIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHg4X3QgX19zMF84MjAgPSBfX3AwXzgyMDsgXAogIHVpbnQxNng4X3QgX19zMV84MjAgPSBfX3AxXzgyMDsgXAogIHVpbnQ4eDhfdCBfX3JldjBfODIwOyAgX19yZXYwXzgyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODIwLCBfX3MwXzgyMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4OF90IF9fcmV2MV84MjA7ICBfX3JldjFfODIwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MjAsIF9fczFfODIwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXRfODIwOyBcCiAgX19yZXRfODIwID0gKHVpbnQ4eDE2X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3U4KCh1aW50OHg4X3QpKF9fcmV2MF84MjApLCAodWludDh4OF90KShfX25vc3dhcF92c2hybl9uX3UxNihfX3JldjFfODIwLCBfX3AyXzgyMCkpKSk7IFwKICBfX3JldF84MjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MjAsIF9fcmV0XzgyMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2hybl9oaWdoX25fczMyKF9fcDBfODIxLCBfX3AxXzgyMSwgX19wMl84MjEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2eDRfdCBfX3MwXzgyMSA9IF9fcDBfODIxOyBcCiAgaW50MzJ4NF90IF9fczFfODIxID0gX19wMV84MjE7IFwKICBpbnQxNng4X3QgX19yZXRfODIxOyBcCiAgX19yZXRfODIxID0gKGludDE2eDhfdCkodmNvbWJpbmVfczE2KChpbnQxNng0X3QpKF9fczBfODIxKSwgKGludDE2eDRfdCkodnNocm5fbl9zMzIoX19zMV84MjEsIF9fcDJfODIxKSkpKTsgXAogIF9fcmV0XzgyMTsgXAp9KQojZWxzZQojZGVmaW5lIHZzaHJuX2hpZ2hfbl9zMzIoX19wMF84MjIsIF9fcDFfODIyLCBfX3AyXzgyMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZ4NF90IF9fczBfODIyID0gX19wMF84MjI7IFwKICBpbnQzMng0X3QgX19zMV84MjIgPSBfX3AxXzgyMjsgXAogIGludDE2eDRfdCBfX3JldjBfODIyOyAgX19yZXYwXzgyMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODIyLCBfX3MwXzgyMiwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXYxXzgyMjsgIF9fcmV2MV84MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgyMiwgX19zMV84MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MTZ4OF90IF9fcmV0XzgyMjsgXAogIF9fcmV0XzgyMiA9IChpbnQxNng4X3QpKF9fbm9zd2FwX3Zjb21iaW5lX3MxNigoaW50MTZ4NF90KShfX3JldjBfODIyKSwgKGludDE2eDRfdCkoX19ub3N3YXBfdnNocm5fbl9zMzIoX19yZXYxXzgyMiwgX19wMl84MjIpKSkpOyBcCiAgX19yZXRfODIyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODIyLCBfX3JldF84MjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODIyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNocm5faGlnaF9uX3M2NChfX3AwXzgyMywgX19wMV84MjMsIF9fcDJfODIzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF84MjMgPSBfX3AwXzgyMzsgXAogIGludDY0eDJfdCBfX3MxXzgyMyA9IF9fcDFfODIzOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgyMzsgXAogIF9fcmV0XzgyMyA9IChpbnQzMng0X3QpKHZjb21iaW5lX3MzMigoaW50MzJ4Ml90KShfX3MwXzgyMyksIChpbnQzMngyX3QpKHZzaHJuX25fczY0KF9fczFfODIzLCBfX3AyXzgyMykpKSk7IFwKICBfX3JldF84MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9oaWdoX25fczY0KF9fcDBfODI0LCBfX3AxXzgyNCwgX19wMl84MjQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgyNCA9IF9fcDBfODI0OyBcCiAgaW50NjR4Ml90IF9fczFfODI0ID0gX19wMV84MjQ7IFwKICBpbnQzMngyX3QgX19yZXYwXzgyNDsgIF9fcmV2MF84MjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgyNCwgX19zMF84MjQsIDEsIDApOyBcCiAgaW50NjR4Ml90IF9fcmV2MV84MjQ7ICBfX3JldjFfODI0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MjQsIF9fczFfODI0LCAxLCAwKTsgXAogIGludDMyeDRfdCBfX3JldF84MjQ7IFwKICBfX3JldF84MjQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92Y29tYmluZV9zMzIoKGludDMyeDJfdCkoX19yZXYwXzgyNCksIChpbnQzMngyX3QpKF9fbm9zd2FwX3ZzaHJuX25fczY0KF9fcmV2MV84MjQsIF9fcDJfODI0KSkpKTsgXAogIF9fcmV0XzgyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgyNCwgX19yZXRfODI0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgyNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzaHJuX2hpZ2hfbl9zMTYoX19wMF84MjUsIF9fcDFfODI1LCBfX3AyXzgyNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHg4X3QgX19zMF84MjUgPSBfX3AwXzgyNTsgXAogIGludDE2eDhfdCBfX3MxXzgyNSA9IF9fcDFfODI1OyBcCiAgaW50OHgxNl90IF9fcmV0XzgyNTsgXAogIF9fcmV0XzgyNSA9IChpbnQ4eDE2X3QpKHZjb21iaW5lX3M4KChpbnQ4eDhfdCkoX19zMF84MjUpLCAoaW50OHg4X3QpKHZzaHJuX25fczE2KF9fczFfODI1LCBfX3AyXzgyNSkpKSk7IFwKICBfX3JldF84MjU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2hybl9oaWdoX25fczE2KF9fcDBfODI2LCBfX3AxXzgyNiwgX19wMl84MjYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4OF90IF9fczBfODI2ID0gX19wMF84MjY7IFwKICBpbnQxNng4X3QgX19zMV84MjYgPSBfX3AxXzgyNjsgXAogIGludDh4OF90IF9fcmV2MF84MjY7ICBfX3JldjBfODI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MjYsIF9fczBfODI2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDhfdCBfX3JldjFfODI2OyAgX19yZXYxXzgyNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODI2LCBfX3MxXzgyNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXRfODI2OyBcCiAgX19yZXRfODI2ID0gKGludDh4MTZfdCkoX19ub3N3YXBfdmNvbWJpbmVfczgoKGludDh4OF90KShfX3JldjBfODI2KSwgKGludDh4OF90KShfX25vc3dhcF92c2hybl9uX3MxNihfX3JldjFfODI2LCBfX3AyXzgyNikpKSk7IFwKICBfX3JldF84MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MjYsIF9fcmV0XzgyNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84MjY7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzbGlkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c2xpZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNsaWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNsaWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzbGlfbl9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdnNsaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzbGlxX25fcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c2xpcV9uX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzbGlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKX19haSB1aW50OF90IHZzcWFkZGJfdTgodWludDhfdCBfX3AwLCBpbnQ4X3QgX19wMSkgewogIHVpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDhfdCkgX19idWlsdGluX25lb25fdnNxYWRkYl91OChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MzJfdCB2c3FhZGRzX3UzMih1aW50MzJfdCBfX3AwLCBpbnQzMl90IF9fcDEpIHsKICB1aW50MzJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJfdCkgX19idWlsdGluX25lb25fdnNxYWRkc191MzIoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0X3QgdnNxYWRkZF91NjQodWludDY0X3QgX19wMCwgaW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZGRfdTY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQxNl90IHZzcWFkZGhfdTE2KHVpbnQxNl90IF9fcDAsIGludDE2X3QgX19wMSkgewogIHVpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNl90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRoX3UxNihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3FhZGRxX3U4KHVpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNDgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnNxYWRkcV91OCh1aW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHgxNl90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnNxYWRkcV91MzIodWludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDMyeDRfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2c3FhZGRxX3UzMih1aW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnNxYWRkcV91NjQodWludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA1MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3FhZGRxX3U2NCh1aW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnNxYWRkcV91MTYodWludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkgX19idWlsdGluX25lb25fdnNxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCA0OSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2c3FhZGRxX3UxNih1aW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA0OSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2c3FhZGRfdTgodWludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnNxYWRkX3U4KHVpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2c3FhZGRfdTMyKHVpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTgpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnNxYWRkX3UzMih1aW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAxOCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2c3FhZGRfdTY0KHVpbnQ2NHgxX3QgX19wMCwgaW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZzcWFkZF91MTYodWludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDRfdCkgX19idWlsdGluX25lb25fdnNxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2c3FhZGRfdTE2KHVpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDE3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnNxcnRxX2Y2NChmbG9hdDY0eDJfdCBfX3AwKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19wMCwgNDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZzcXJ0cV9mNjQoZmxvYXQ2NHgyX3QgX19wMCkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydHFfdigoaW50OHgxNl90KV9fcmV2MCwgNDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2c3FydHFfZjMyKGZsb2F0MzJ4NF90IF9fcDApIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDMyeDRfdCkgX19idWlsdGluX25lb25fdnNxcnRxX3YoKGludDh4MTZfdClfX3AwLCA0MSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnNxcnRxX2YzMihmbG9hdDMyeDRfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoZmxvYXQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzcXJ0cV92KChpbnQ4eDE2X3QpX19yZXYwLCA0MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnNxcnRfZjY0KGZsb2F0NjR4MV90IF9fcDApIHsKICBmbG9hdDY0eDFfdCBfX3JldDsKICBfX3JldCA9IChmbG9hdDY0eDFfdCkgX19idWlsdGluX25lb25fdnNxcnRfdigoaW50OHg4X3QpX19wMCwgMTApOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2c3FydF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydF92KChpbnQ4eDhfdClfX3AwLCA5KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2c3FydF9mMzIoZmxvYXQzMngyX3QgX19wMCkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gKGZsb2F0MzJ4Ml90KSBfX2J1aWx0aW5fbmVvbl92c3FydF92KChpbnQ4eDhfdClfX3JldjAsIDkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZGVmaW5lIHZzcmFkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3JhZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNyYWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNyYWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzcmlkX25fdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NF90IF9fczAgPSBfX3AwOyBcCiAgdWludDY0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjRfdCBfX3JldDsgXAogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3JpZF9uX3U2NChfX3MwLCBfX3MxLCBfX3AyKTsgXAogIF9fcmV0OyBcCn0pCiNkZWZpbmUgdnNyaWRfbl9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjRfdCBfX3MwID0gX19wMDsgXAogIGludDY0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NF90IF9fcmV0OyBcCiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnNyaWRfbl9zNjQoX19zMCwgX19zMSwgX19wMik7IFwKICBfX3JldDsgXAp9KQojZGVmaW5lIHZzcmlfbl9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwID0gX19wMDsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MV90IF9fcmV0OyBcCiAgX19yZXQgPSAocG9seTY0eDFfdCkgX19idWlsdGluX25lb25fdnNyaV9uX3YoKGludDh4OF90KV9fczAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCA2KTsgXAogIF9fcmV0OyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzcmlxX25fcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMCA9IF9fcDA7IFwKICBwb2x5NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fczAsIChpbnQ4eDE2X3QpX19zMSwgX19wMiwgMzgpOyBcCiAgX19yZXQ7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3JpcV9uX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczAgPSBfX3AwOyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMCwgX19zMCwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldDsgXAogIF9fcmV0ID0gKHBvbHk2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3ZzcmlxX25fdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDM4KTsgXAogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsgXAogIF9fcmV0OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCA2KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLCAzOCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMSwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCA0Mik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEsIF9fczEsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLCBfX3AyLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEsIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMSwgX19zMSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEsIF9fcDIsIDQyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLCBfX3AyLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3gyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94Ml92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX2Y2NF94MihfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDJfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QxcV9mNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gyX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQyKTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0MV9mNjRfeDIoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0MV9wNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94M192KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MXFfeDNfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QxcV9mNjRfeDMoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MXFfZjY0X3gzKF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3gzX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNDIpOyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2c3QxX2Y2NF94MyhfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MV94M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDEwKTsgXAp9KQojZGVmaW5lIHZzdDFfcDY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFfeDRfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDFxX3A2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX3A2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MXFfZjY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxcV94NF92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDFxX2Y2NF94NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDFxX3g0X3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCA0Mik7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDFfZjY0X3g0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QxX3g0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QyX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIDUxKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX3U2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDQyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIDM1KTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0Ml9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0Ml9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QyX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDJxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCBfX3AyLCA0OCk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QycV9sYW5lX3U4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIHVpbnQ4eDE2eDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QycV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4Ml90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDJfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4Ml90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIF9fcDIsIDMyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDJxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgNDIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDJfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4MngyX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgX19wMiwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0MnFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QycV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0MnFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4MngyX3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDJfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0MnFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDJfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDE5KTsgXAp9KQojZGVmaW5lIHZzdDJfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDJfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDJfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCBfX3AyLCAxMCk7IFwKfSkKI2RlZmluZSB2c3QyX2xhbmVfczY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDF4Ml90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0Ml9sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIF9fcDIsIDMpOyBcCn0pCiNkZWZpbmUgdnN0M19wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M192KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIDYpOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX3A2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBwb2x5NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgZmxvYXQ2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIDQyKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX3M2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgaW50NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgMTApOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4MXgzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzX2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCBfX3AyLCA2KTsgXAp9KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3A4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk4eDE2eDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzYpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDM4KTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDNfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgX19wMiwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0M3FfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDQ4KTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2xhbmVfdTY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHVpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICB1aW50NjR4MngzX3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIF9fcDIsIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDNxX2xhbmVfczgoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50OHgxNngzX3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3QzcV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgX19wMiwgMzIpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0M3FfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDNfdCBfX3MxID0gX19wMTsgXAogIGludDh4MTZ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M3FfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDNxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MngzX3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCA0Mik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3QzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCBfX3AyLCAzNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3QzcV9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyeDNfdCBfX3MxID0gX19wMTsgXAogIGludDY0eDJ4M190IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCBfX3AyLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDNfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTkpOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDF4M190IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0M19sYW5lX3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgX19wMiwgMTApOyBcCn0pCiNkZWZpbmUgdnN0M19sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDNfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDNfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIF9fcDIsIDMpOyBcCn0pCiNkZWZpbmUgdnN0NF9wNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDF4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NF92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgMzgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfcDY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIHBvbHk2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzOCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA1MSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV91NjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIDUxKTsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdDRxX2Y2NChfX3AwLCBfX3AxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCA0Mik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9mNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyeDRfdCBfX3MxID0gX19wMTsgXAogIGZsb2F0NjR4Mng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfczY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCAzNSk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9zNjQoX19wMCwgX19wMSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCAzNSk7IFwKfSkKI2VuZGlmCgojZGVmaW5lIHZzdDRfZjY0KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X3YoX19wMCwgKGludDh4OF90KV9fczEudmFsWzBdLCAoaW50OHg4X3QpX19zMS52YWxbMV0sIChpbnQ4eDhfdClfX3MxLnZhbFsyXSwgKGludDh4OF90KV9fczEudmFsWzNdLCAxMCk7IFwKfSkKI2RlZmluZSB2c3Q0X2xhbmVfcDY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgNik7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzYpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBwb2x5OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzNik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3A2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9wNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgcG9seTY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgMzgpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNDgpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV91OChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50OHgxNng0X3QgX19zMSA9IF9fcDE7IFwKICB1aW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCA0OCk7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgNTEpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV91NjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgdWludDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNTEpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zOChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ4eDE2eDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fczEudmFsWzBdLCAoaW50OHgxNl90KV9fczEudmFsWzFdLCAoaW50OHgxNl90KV9fczEudmFsWzJdLCAoaW50OHgxNl90KV9fczEudmFsWzNdLCBfX3AyLCAzMik7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Q0cV9sYW5lX3M4KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDh4MTZ4NF90IF9fczEgPSBfX3AxOyBcCiAgaW50OHgxNng0X3QgX19yZXYxOyBcCiAgX19yZXYxLnZhbFswXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzBdLCBfX3MxLnZhbFswXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldjEudmFsWzFdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMV0sIF9fczEudmFsWzFdLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMl0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsyXSwgX19zMS52YWxbMl0sIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXYxLnZhbFszXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzNdLCBfX3MxLnZhbFszXSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3JldjEudmFsWzBdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMV0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsyXSwgKGludDh4MTZfdClfX3JldjEudmFsWzNdLCBfX3AyLCAzMik7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Q0cV9sYW5lX2Y2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJ4NF90IF9fczEgPSBfX3AxOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19zMS52YWxbMF0sIChpbnQ4eDE2X3QpX19zMS52YWxbMV0sIChpbnQ4eDE2X3QpX19zMS52YWxbMl0sIChpbnQ4eDE2X3QpX19zMS52YWxbM10sIF9fcDIsIDQyKTsgXAp9KQojZWxzZQojZGVmaW5lIHZzdDRxX2xhbmVfZjY0KF9fcDAsIF9fcDEsIF9fcDIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBmbG9hdDY0eDJ4NF90IF9fcmV2MTsgXAogIF9fcmV2MS52YWxbMF0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFswXSwgX19zMS52YWxbMF0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsxXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzFdLCBfX3MxLnZhbFsxXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzJdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMl0sIF9fczEudmFsWzJdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbM10gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFszXSwgX19zMS52YWxbM10sIDEsIDApOyBcCiAgX19idWlsdGluX25lb25fdnN0NHFfbGFuZV92KF9fcDAsIChpbnQ4eDE2X3QpX19yZXYxLnZhbFswXSwgKGludDh4MTZfdClfX3JldjEudmFsWzFdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMl0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFszXSwgX19wMiwgNDIpOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnN0NHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0cV9sYW5lX3YoX19wMCwgKGludDh4MTZfdClfX3MxLnZhbFswXSwgKGludDh4MTZfdClfX3MxLnZhbFsxXSwgKGludDh4MTZfdClfX3MxLnZhbFsyXSwgKGludDh4MTZfdClfX3MxLnZhbFszXSwgX19wMiwgMzUpOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN0NHFfbGFuZV9zNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Mng0X3QgX19zMSA9IF9fcDE7IFwKICBpbnQ2NHgyeDRfdCBfX3JldjE7IFwKICBfX3JldjEudmFsWzBdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbMF0sIF9fczEudmFsWzBdLCAxLCAwKTsgXAogIF9fcmV2MS52YWxbMV0gPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxLnZhbFsxXSwgX19zMS52YWxbMV0sIDEsIDApOyBcCiAgX19yZXYxLnZhbFsyXSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczEudmFsWzJdLCBfX3MxLnZhbFsyXSwgMSwgMCk7IFwKICBfX3JldjEudmFsWzNdID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMS52YWxbM10sIF9fczEudmFsWzNdLCAxLCAwKTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRxX2xhbmVfdihfX3AwLCAoaW50OHgxNl90KV9fcmV2MS52YWxbMF0sIChpbnQ4eDE2X3QpX19yZXYxLnZhbFsxXSwgKGludDh4MTZfdClfX3JldjEudmFsWzJdLCAoaW50OHgxNl90KV9fcmV2MS52YWxbM10sIF9fcDIsIDM1KTsgXAp9KQojZW5kaWYKCiNkZWZpbmUgdnN0NF9sYW5lX3U2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICB1aW50NjR4MXg0X3QgX19zMSA9IF9fcDE7IFwKICBfX2J1aWx0aW5fbmVvbl92c3Q0X2xhbmVfdihfX3AwLCAoaW50OHg4X3QpX19zMS52YWxbMF0sIChpbnQ4eDhfdClfX3MxLnZhbFsxXSwgKGludDh4OF90KV9fczEudmFsWzJdLCAoaW50OHg4X3QpX19zMS52YWxbM10sIF9fcDIsIDE5KTsgXAp9KQojZGVmaW5lIHZzdDRfbGFuZV9mNjQoX19wMCwgX19wMSwgX19wMikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMTApOyBcCn0pCiNkZWZpbmUgdnN0NF9sYW5lX3M2NChfX3AwLCBfX3AxLCBfX3AyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgxeDRfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdDRfbGFuZV92KF9fcDAsIChpbnQ4eDhfdClfX3MxLnZhbFswXSwgKGludDh4OF90KV9fczEudmFsWzFdLCAoaW50OHg4X3QpX19zMS52YWxbMl0sIChpbnQ4eDhfdClfX3MxLnZhbFszXSwgX19wMiwgMyk7IFwKfSkKI2RlZmluZSB2c3RycV9wMTI4KF9fcDAsIF9fcDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHkxMjhfdCBfX3MxID0gX19wMTsgXAogIF9fYnVpbHRpbl9uZW9uX3ZzdHJxX3AxMjgoX19wMCwgX19zMSk7IFwKfSkKX19haSB1aW50NjRfdCB2c3ViZF91NjQodWludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIHVpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NF90KSBfX2J1aWx0aW5fbmVvbl92c3ViZF91NjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50NjRfdCB2c3ViZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICBpbnQ2NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3ZzdWJkX3M2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnN1YnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX3AxOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZzdWJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX3JldjE7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgZmxvYXQ2NHgxX3QgdnN1Yl9mNjQoZmxvYXQ2NHgxX3QgX19wMCwgZmxvYXQ2NHgxX3QgX19wMSkgewogIGZsb2F0NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fcDE7CiAgcmV0dXJuIF9fcmV0Owp9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmNvbWJpbmVfdTE2KF9fcDAsIHZzdWJobl91MzIoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YmhuX2hpZ2hfdTMyKHVpbnQxNng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfdTE2KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3UzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3UzMihfX3AwLCB2c3ViaG5fdTY0KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJobl9oaWdoX3U2NCh1aW50MzJ4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSwgdWludDY0eDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3UzMihfX3JldjAsIF9fbm9zd2FwX3ZzdWJobl91NjQoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2c3ViaG5faGlnaF91MTYodWludDh4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3U4KF9fcDAsIHZzdWJobl91MTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnN1YmhuX2hpZ2hfdTE2KHVpbnQ4eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Zjb21iaW5lX3U4KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3UxNihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnN1YmhuX2hpZ2hfczMyKGludDE2eDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMTYoX19wMCwgdnN1YmhuX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzdWJobl9oaWdoX3MzMihpbnQxNng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyeDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczE2KF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3MzMihfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YmhuX2hpZ2hfczY0KGludDMyeDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSwgaW50NjR4Ml90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y29tYmluZV9zMzIoX19wMCwgdnN1YmhuX3M2NChfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZzdWJobl9oaWdoX3M2NChpbnQzMngyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEsIGludDY0eDJfdCBfX3AyKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmNvbWJpbmVfczMyKF9fcmV2MCwgX19ub3N3YXBfdnN1YmhuX3M2NChfX3JldjEsIF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnN1YmhuX2hpZ2hfczE2KGludDh4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IHZjb21iaW5lX3M4KF9fcDAsIHZzdWJobl9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2c3ViaG5faGlnaF9zMTYoaW50OHg4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92Y29tYmluZV9zOChfX3JldjAsIF9fbm9zd2FwX3ZzdWJobl9zMTYoX19yZXYxLCBfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2c3VibF9oaWdoX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTgoX19wMCkgLSB2bW92bF9oaWdoX3U4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YmxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZzdWJsX2hpZ2hfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTMyKF9fcDApIC0gdm1vdmxfaGlnaF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2c3VibF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91MzIoX19yZXYwKSAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnN1YmxfaGlnaF91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF91MTYoX19wMCkgLSB2bW92bF9oaWdoX3UxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3UxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZzdWJsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zOChfX3AwKSAtIHZtb3ZsX2hpZ2hfczgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZzdWJsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2c3VibF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3MzMihfX3AwKSAtIHZtb3ZsX2hpZ2hfczMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2c3VibF9oaWdoX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczMyKF9fcmV2MCkgLSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zMTYoX19wMCkgLSB2bW92bF9oaWdoX3MxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnN1YmxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3MxNihfX3JldjApIC0gX19ub3N3YXBfdm1vdmxfaGlnaF9zMTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2c3Vid19oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3U4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnN1YndfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm1vdmxfaGlnaF91OChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZzdWJ3X2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3UzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZzdWJ3X2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZzdWJ3X2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3UxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZzdWJ3X2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3UxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnN1YndfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm1vdmxfaGlnaF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnN1YndfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZzdWJ3X2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bW92bF9oaWdoX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnN1YndfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnN1YndfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtb3ZsX2hpZ2hfczE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2c3Vid19oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdWRvdHFfbGFuZXFfczMyKF9fcDBfODI3LCBfX3AxXzgyNywgX19wMl84MjcsIF9fcDNfODI3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84MjcgPSBfX3AwXzgyNzsgXAogIGludDh4MTZfdCBfX3MxXzgyNyA9IF9fcDFfODI3OyBcCiAgdWludDh4MTZfdCBfX3MyXzgyNyA9IF9fcDJfODI3OyBcCiAgaW50MzJ4NF90IF9fcmV0XzgyNzsgXAp1aW50OHgxNl90IF9fcmVpbnRfODI3ID0gX19zMl84Mjc7IFwKICBfX3JldF84MjcgPSB2dXNkb3RxX3MzMihfX3MwXzgyNywgKHVpbnQ4eDE2X3QpKHNwbGF0cV9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfODI3LCBfX3AzXzgyNykpLCBfX3MxXzgyNyk7IFwKICBfX3JldF84Mjc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Vkb3RxX2xhbmVxX3MzMihfX3AwXzgyOCwgX19wMV84MjgsIF9fcDJfODI4LCBfX3AzXzgyOCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODI4ID0gX19wMF84Mjg7IFwKICBpbnQ4eDE2X3QgX19zMV84MjggPSBfX3AxXzgyODsgXAogIHVpbnQ4eDE2X3QgX19zMl84MjggPSBfX3AyXzgyODsgXAogIGludDMyeDRfdCBfX3JldjBfODI4OyAgX19yZXYwXzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODI4LCBfX3MwXzgyOCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYxXzgyODsgIF9fcmV2MV84MjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzgyOCwgX19zMV84MjgsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjJfODI4OyAgX19yZXYyXzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODI4LCBfX3MyXzgyOCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfODI4OyBcCnVpbnQ4eDE2X3QgX19yZWludF84MjggPSBfX3JldjJfODI4OyBcCiAgX19yZXRfODI4ID0gX19ub3N3YXBfdnVzZG90cV9zMzIoX19yZXYwXzgyOCwgKHVpbnQ4eDE2X3QpKF9fbm9zd2FwX3NwbGF0cV9sYW5lcV9zMzIoKihpbnQzMng0X3QgKikgJl9fcmVpbnRfODI4LCBfX3AzXzgyOCkpLCBfX3JldjFfODI4KTsgXAogIF9fcmV0XzgyOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzgyOCwgX19yZXRfODI4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0XzgyODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZzdWRvdF9sYW5lcV9zMzIoX19wMF84MjksIF9fcDFfODI5LCBfX3AyXzgyOSwgX19wM184MjkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzgyOSA9IF9fcDBfODI5OyBcCiAgaW50OHg4X3QgX19zMV84MjkgPSBfX3AxXzgyOTsgXAogIHVpbnQ4eDE2X3QgX19zMl84MjkgPSBfX3AyXzgyOTsgXAogIGludDMyeDJfdCBfX3JldF84Mjk7IFwKdWludDh4MTZfdCBfX3JlaW50XzgyOSA9IF9fczJfODI5OyBcCiAgX19yZXRfODI5ID0gdnVzZG90X3MzMihfX3MwXzgyOSwgKHVpbnQ4eDhfdCkoc3BsYXRfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzgyOSwgX19wM184MjkpKSwgX19zMV84MjkpOyBcCiAgX19yZXRfODI5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN1ZG90X2xhbmVxX3MzMihfX3AwXzgzMCwgX19wMV84MzAsIF9fcDJfODMwLCBfX3AzXzgzMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODMwID0gX19wMF84MzA7IFwKICBpbnQ4eDhfdCBfX3MxXzgzMCA9IF9fcDFfODMwOyBcCiAgdWludDh4MTZfdCBfX3MyXzgzMCA9IF9fcDJfODMwOyBcCiAgaW50MzJ4Ml90IF9fcmV2MF84MzA7ICBfX3JldjBfODMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzAsIF9fczBfODMwLCAxLCAwKTsgXAogIGludDh4OF90IF9fcmV2MV84MzA7ICBfX3JldjFfODMwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84MzAsIF9fczFfODMwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDE2X3QgX19yZXYyXzgzMDsgIF9fcmV2Ml84MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzMCwgX19zMl84MzAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzMDsgXAp1aW50OHgxNl90IF9fcmVpbnRfODMwID0gX19yZXYyXzgzMDsgXAogIF9fcmV0XzgzMCA9IF9fbm9zd2FwX3Z1c2RvdF9zMzIoX19yZXYwXzgzMCwgKHVpbnQ4eDhfdCkoX19ub3N3YXBfc3BsYXRfbGFuZXFfczMyKCooaW50MzJ4NF90ICopICZfX3JlaW50XzgzMCwgX19wM184MzApKSwgX19yZXYxXzgzMCk7IFwKICBfX3JldF84MzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84MzAsIF9fcmV0XzgzMCwgMSwgMCk7IFwKICBfX3JldF84MzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnRybjFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4OF90IHZ0cm4xX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZ0cm4xX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZ0cm4xX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZ0cm4xcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnRybjFxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMTYsIDIsIDE4LCA0LCAyMCwgNiwgMjIsIDgsIDI0LCAxMCwgMjYsIDEyLCAyOCwgMTQsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2dHJuMXFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdnRybjFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZ0cm4xcV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2dHJuMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDE2X3QgdnRybjFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAyLCAxOCwgNCwgMjAsIDYsIDIyLCA4LCAyNCwgMTAsIDI2LCAxMiwgMjgsIDE0LCAzMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4MTZfdCB2dHJuMXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZ0cm4xcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMiwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2dHJuMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMiwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnRybjFxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZ0cm4xcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2dHJuMXFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnRybjFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnRybjFxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAyLCAxOCwgNCwgMjAsIDYsIDIyLCA4LCAyNCwgMTAsIDI2LCAxMiwgMjgsIDE0LCAzMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ0cm4xcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMiwgMTgsIDQsIDIwLCA2LCAyMiwgOCwgMjQsIDEwLCAyNiwgMTIsIDI4LCAxNCwgMzApOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2dHJuMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZ0cm4xcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2dHJuMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDIsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZ0cm4xcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnRybjFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnRybjFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAyLCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ0cm4xcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZ0cm4xcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2dHJuMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2dHJuMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnRybjFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ0cm4xX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDIsIDEwLCA0LCAxMiwgNiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4Ml90IHZ0cm4xX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZ0cm4xX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIHVpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZ0cm4xX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAyLCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4NF90IHZ0cm4xX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDIsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDhfdCB2dHJuMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA4LCAyLCAxMCwgNCwgMTIsIDYsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2dHJuMV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMiwgMTAsIDQsIDEyLCA2LCAxNCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZ0cm4xX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2dHJuMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnRybjFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2dHJuMV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2dHJuMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMiwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZ0cm4xX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAyLCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ0cm4yX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dHJuMl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2dHJuMl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2dHJuMl9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2dHJuMnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ0cm4ycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDE3LCAzLCAxOSwgNSwgMjEsIDcsIDIzLCA5LCAyNSwgMTEsIDI3LCAxMywgMjksIDE1LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnRybjJxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ0cm4ycV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2dHJuMnFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnRybjJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ0cm4ycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAxNywgMywgMTksIDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnRybjJxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dHJuMnFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDUsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnRybjJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDUsIDMsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ0cm4ycV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2dHJuMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnRybjJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ0cm4ycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ0cm4ycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAxNywgMywgMTksIDUsIDIxLCA3LCAyMywgOSwgMjUsIDExLCAyNywgMTMsIDI5LCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2dHJuMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMTcsIDMsIDE5LCA1LCAyMSwgNywgMjMsIDksIDI1LCAxMSwgMjcsIDEzLCAyOSwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnRybjJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2dHJuMnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnRybjJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA1LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2dHJuMnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ0cm4ycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ0cm4ycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgNSwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2dHJuMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2dHJuMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnRybjJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnRybjJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ0cm4yX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dHJuMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA5LCAzLCAxMSwgNSwgMTMsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dHJuMl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dHJuMl91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dHJuMl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgNSwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dHJuMl91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCA1LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnRybjJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgOSwgMywgMTEsIDUsIDEzLCA3LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnRybjJfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDksIDMsIDExLCA1LCAxMywgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2dHJuMl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnRybjJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ0cm4yX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnRybjJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnRybjJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDUsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2dHJuMl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgNSwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCl9fYWkgdWludDY0eDFfdCB2dHN0X3A2NChwb2x5NjR4MV90IF9fcDAsIHBvbHk2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ0c3RxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDUxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2dHN0cV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDUxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZ0c3RxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RxX3YoKGludDh4MTZfdClfX3JldjAsIChpbnQ4eDE2X3QpX19yZXYxLCA1MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDJfdCkgX19idWlsdGluX25lb25fdnRzdHFfdigoaW50OHgxNl90KV9fcDAsIChpbnQ4eDE2X3QpX19wMSwgNTEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnRzdHFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92dHN0cV92KChpbnQ4eDE2X3QpX19yZXYwLCAoaW50OHgxNl90KV9fcmV2MSwgNTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIHVpbnQ2NHgxX3QgdnRzdF91NjQodWludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICB1aW50NjR4MV90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgxX3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDE5KTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4MV90IHZ0c3RfczY0KGludDY0eDFfdCBfX3AwLCBpbnQ2NHgxX3QgX19wMSkgewogIHVpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0eDFfdCkgX19idWlsdGluX25lb25fdnRzdF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMTkpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIHVpbnQ2NF90IHZ0c3RkX3U2NCh1aW50NjRfdCBfX3AwLCB1aW50NjRfdCBfX3AxKSB7CiAgdWludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDY0X3QpIF9fYnVpbHRpbl9uZW9uX3Z0c3RkX3U2NChfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjRfdCB2dHN0ZF9zNjQoaW50NjRfdCBfX3AwLCBpbnQ2NF90IF9fcDEpIHsKICB1aW50NjRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjRfdCkgX19idWlsdGluX25lb25fdnRzdGRfczY0KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDhfdCB2dXFhZGRiX3M4KGludDhfdCBfX3AwLCB1aW50OF90IF9fcDEpIHsKICBpbnQ4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRiX3M4KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDMyX3QgdnVxYWRkc19zMzIoaW50MzJfdCBfX3AwLCB1aW50MzJfdCBfX3AxKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMl90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRzX3MzMihfX3AwLCBfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NF90IHZ1cWFkZGRfczY0KGludDY0X3QgX19wMCwgdWludDY0X3QgX19wMSkgewogIGludDY0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjRfdCkgX19idWlsdGluX25lb25fdnVxYWRkZF9zNjQoX19wMCwgX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZfdCB2dXFhZGRoX3MxNihpbnQxNl90IF9fcDAsIHVpbnQxNl90IF9fcDEpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZGhfczE2KF9fcDAsIF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnVxYWRkcV9zOChpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4MTZfdCkgX19idWlsdGluX25lb25fdnVxYWRkcV92KChpbnQ4eDE2X3QpX19wMCwgKGludDh4MTZfdClfX3AxLCAzMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ1cWFkZHFfczgoaW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IChpbnQ4eDE2X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1cWFkZHFfczMyKGludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnVxYWRkcV9zMzIoaW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMng0X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ1cWFkZHFfczY0KGludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4Ml90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDM1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnVxYWRkcV9zNjQoaW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDM1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZ1cWFkZHFfczE2KGludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRxX3YoKGludDh4MTZfdClfX3AwLCAoaW50OHgxNl90KV9fcDEsIDMzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnVxYWRkcV9zMTYoaW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IChpbnQxNng4X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZHFfdigoaW50OHgxNl90KV9fcmV2MCwgKGludDh4MTZfdClfX3JldjEsIDMzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnVxYWRkX3M4KGludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50OHg4X3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnVxYWRkX3M4KGludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDh4OF90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRfdigoaW50OHg4X3QpX19yZXYwLCAoaW50OHg4X3QpX19yZXYxLCAwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ1cWFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3AwLCAoaW50OHg4X3QpX19wMSwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZ1cWFkZF9zMzIoaW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQzMngyX3QpIF9fYnVpbHRpbl9uZW9uX3Z1cWFkZF92KChpbnQ4eDhfdClfX3JldjAsIChpbnQ4eDhfdClfX3JldjEsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgpfX2FpIGludDY0eDFfdCB2dXFhZGRfczY0KGludDY0eDFfdCBfX3AwLCB1aW50NjR4MV90IF9fcDEpIHsKICBpbnQ2NHgxX3QgX19yZXQ7CiAgX19yZXQgPSAoaW50NjR4MV90KSBfX2J1aWx0aW5fbmVvbl92dXFhZGRfdigoaW50OHg4X3QpX19wMCwgKGludDh4OF90KV9fcDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnVxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnVxYWRkX3YoKGludDh4OF90KV9fcDAsIChpbnQ4eDhfdClfX3AxLCAxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnVxYWRkX3MxNihpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDRfdCkgX19idWlsdGluX25lb25fdnVxYWRkX3YoKGludDh4OF90KV9fcmV2MCwgKGludDh4OF90KV9fcmV2MSwgMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZ1c2RvdHFfbGFuZXFfczMyKF9fcDBfODMxLCBfX3AxXzgzMSwgX19wMl84MzEsIF9fcDNfODMxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF84MzEgPSBfX3AwXzgzMTsgXAogIHVpbnQ4eDE2X3QgX19zMV84MzEgPSBfX3AxXzgzMTsgXAogIGludDh4MTZfdCBfX3MyXzgzMSA9IF9fcDJfODMxOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgzMTsgXAppbnQ4eDE2X3QgX19yZWludF84MzEgPSBfX3MyXzgzMTsgXAogIF9fcmV0XzgzMSA9IHZ1c2RvdHFfczMyKF9fczBfODMxLCBfX3MxXzgzMSwgKGludDh4MTZfdCkoc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzEsIF9fcDNfODMxKSkpOyBcCiAgX19yZXRfODMxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90cV9sYW5lcV9zMzIoX19wMF84MzIsIF9fcDFfODMyLCBfX3AyXzgzMiwgX19wM184MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzgzMiA9IF9fcDBfODMyOyBcCiAgdWludDh4MTZfdCBfX3MxXzgzMiA9IF9fcDFfODMyOyBcCiAgaW50OHgxNl90IF9fczJfODMyID0gX19wMl84MzI7IFwKICBpbnQzMng0X3QgX19yZXYwXzgzMjsgIF9fcmV2MF84MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzgzMiwgX19zMF84MzIsIDMsIDIsIDEsIDApOyBcCiAgdWludDh4MTZfdCBfX3JldjFfODMyOyAgX19yZXYxXzgzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODMyLCBfX3MxXzgzMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzgzMjsgIF9fcmV2Ml84MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzMiwgX19zMl84MzIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0XzgzMjsgXAppbnQ4eDE2X3QgX19yZWludF84MzIgPSBfX3JldjJfODMyOyBcCiAgX19yZXRfODMyID0gX19ub3N3YXBfdnVzZG90cV9zMzIoX19yZXYwXzgzMiwgX19yZXYxXzgzMiwgKGludDh4MTZfdCkoX19ub3N3YXBfc3BsYXRxX2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzIsIF9fcDNfODMyKSkpOyBcCiAgX19yZXRfODMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODMyLCBfX3JldF84MzIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnVzZG90X2xhbmVxX3MzMihfX3AwXzgzMywgX19wMV84MzMsIF9fcDJfODMzLCBfX3AzXzgzMykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODMzID0gX19wMF84MzM7IFwKICB1aW50OHg4X3QgX19zMV84MzMgPSBfX3AxXzgzMzsgXAogIGludDh4MTZfdCBfX3MyXzgzMyA9IF9fcDJfODMzOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzMzsgXAppbnQ4eDE2X3QgX19yZWludF84MzMgPSBfX3MyXzgzMzsgXAogIF9fcmV0XzgzMyA9IHZ1c2RvdF9zMzIoX19zMF84MzMsIF9fczFfODMzLCAoaW50OHg4X3QpKHNwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzMsIF9fcDNfODMzKSkpOyBcCiAgX19yZXRfODMzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnVzZG90X2xhbmVxX3MzMihfX3AwXzgzNCwgX19wMV84MzQsIF9fcDJfODM0LCBfX3AzXzgzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4Ml90IF9fczBfODM0ID0gX19wMF84MzQ7IFwKICB1aW50OHg4X3QgX19zMV84MzQgPSBfX3AxXzgzNDsgXAogIGludDh4MTZfdCBfX3MyXzgzNCA9IF9fcDJfODM0OyBcCiAgaW50MzJ4Ml90IF9fcmV2MF84MzQ7ICBfX3JldjBfODM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzQsIF9fczBfODM0LCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjFfODM0OyAgX19yZXYxXzgzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODM0LCBfX3MxXzgzNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQ4eDE2X3QgX19yZXYyXzgzNDsgIF9fcmV2Ml84MzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzgzNCwgX19zMl84MzQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzgzNDsgXAppbnQ4eDE2X3QgX19yZWludF84MzQgPSBfX3JldjJfODM0OyBcCiAgX19yZXRfODM0ID0gX19ub3N3YXBfdnVzZG90X3MzMihfX3JldjBfODM0LCBfX3JldjFfODM0LCAoaW50OHg4X3QpKF9fbm9zd2FwX3NwbGF0X2xhbmVxX3MzMigqKGludDMyeDRfdCAqKSAmX19yZWludF84MzQsIF9fcDNfODM0KSkpOyBcCiAgX19yZXRfODM0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODM0LCBfX3JldF84MzQsIDEsIDApOyBcCiAgX19yZXRfODM0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ1enAxX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDhfdCB2dXpwMV9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2dXpwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2dXpwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2dXpwMXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ1enAxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQsIDE2LCAxOCwgMjAsIDIyLCAyNCwgMjYsIDI4LCAzMCk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnV6cDFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ1enAxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2dXpwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnV6cDFxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZ1enAxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdnV6cDFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxKSB7CiAgdWludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2dXpwMXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdnV6cDFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZ1enAxcV91NjQodWludDY0eDJfdCBfX3AwLCB1aW50NjR4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2dXpwMXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdnV6cDFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ1enAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ1enAxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0LCAxNiwgMTgsIDIwLCAyMiwgMjQsIDI2LCAyOCwgMzApOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2dXpwMXFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDMwKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnV6cDFxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2dXpwMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnV6cDFxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2dXpwMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ1enAxcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ1enAxcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2dXpwMXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2dXpwMXFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnV6cDFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdnV6cDFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ1enAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2dXpwMV91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2LCA4LCAxMCwgMTIsIDE0KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2dXpwMV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDJfdCB2dXpwMV91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDRfdCB2dXpwMV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDRfdCB2dXpwMV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyLCA0LCA2KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHg4X3QgdnV6cDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMiwgNCwgNiwgOCwgMTAsIDEyLCAxNCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnV6cDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIsIDQsIDYsIDgsIDEwLCAxMiwgMTQpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2dXpwMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnV6cDFfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ1enAxX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnV6cDFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnV6cDFfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIsIDQsIDYpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2dXpwMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMiwgNCwgNik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDhfdCB2dXpwMl9wOChwb2x5OHg4X3QgX19wMCwgcG9seTh4OF90IF9fcDEpIHsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnV6cDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng0X3QgdnV6cDJfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng0X3QgdnV6cDJfcDE2KHBvbHkxNng0X3QgX19wMCwgcG9seTE2eDRfdCBfX3AxKSB7CiAgcG9seTE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk4eDE2X3QgdnV6cDJxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTh4MTZfdCB2dXpwMnFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1LCAxNywgMTksIDIxLCAyMywgMjUsIDI3LCAyOSwgMzEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5NjR4Ml90IHZ1enAycV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTY0eDJfdCB2dXpwMnFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHkxNng4X3QgdnV6cDJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4OF90IHZ1enAycV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2dXpwMnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSwgMTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ1enAycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnV6cDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ1enAycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2dXpwMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnV6cDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ1enAycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2dXpwMnFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2dXpwMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSwgMTcsIDE5LCAyMSwgMjMsIDI1LCAyNywgMjksIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDE2X3QgdnV6cDJxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUsIDE3LCAxOSwgMjEsIDIzLCAyNSwgMjcsIDI5LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0NjR4Ml90IHZ1enAycV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQ2NHgyX3QgdnV6cDJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4NF90IHZ1enAycV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMng0X3QgdnV6cDJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2dXpwMnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2dXpwMnFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdnV6cDJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdnV6cDJxX3M2NChpbnQ2NHgyX3QgX19wMCwgaW50NjR4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZ1enAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ1enAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ4eDhfdCB2dXpwMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHg4X3QgdnV6cDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNywgOSwgMTEsIDEzLCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnV6cDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnV6cDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnV6cDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnV6cDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMywgNSwgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ1enAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMsIDUsIDcsIDksIDExLCAxMywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4OF90IHZ1enAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzLCA1LCA3LCA5LCAxMSwgMTMsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMngyX3QgdnV6cDJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4Ml90IHZ1enAyX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDJfdCB2dXpwMl9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZ1enAyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4NF90IHZ1enAyX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzLCA1LCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng0X3QgdnV6cDJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMsIDUsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHg4X3QgdnppcDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnppcDFfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDRfdCB2emlwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDRfdCB2emlwMV9wMTYocG9seTE2eDRfdCBfX3AwLCBwb2x5MTZ4NF90IF9fcDEpIHsKICBwb2x5MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHBvbHkxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4MTZfdCB2emlwMXFfcDgocG9seTh4MTZfdCBfX3AwLCBwb2x5OHgxNl90IF9fcDEpIHsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHgxNl90IHZ6aXAxcV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHBvbHk2NHgyX3QgdnppcDFxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5NjR4Ml90IHZ6aXAxcV9wNjQocG9seTY0eDJfdCBfX3AwLCBwb2x5NjR4Ml90IF9fcDEpIHsKICBwb2x5NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHBvbHk2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTE2eDhfdCB2emlwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgcG9seTE2eDhfdCB2emlwMXFfcDE2KHBvbHkxNng4X3QgX19wMCwgcG9seTE2eDhfdCBfX3AxKSB7CiAgcG9seTE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHkxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2emlwMXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMTYsIDEsIDE3LCAyLCAxOCwgMywgMTksIDQsIDIwLCA1LCAyMSwgNiwgMjIsIDcsIDIzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ6aXAxcV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnppcDFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ6aXAxcV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2emlwMXFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnppcDFxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ6aXAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZ6aXAxcV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA4LCAxLCA5LCAyLCAxMCwgMywgMTEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ4eDE2X3QgdnppcDFxX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDE2LCAxLCAxNywgMiwgMTgsIDMsIDE5LCA0LCAyMCwgNSwgMjEsIDYsIDIyLCA3LCAyMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHgxNl90IHZ6aXAxcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCAxNiwgMSwgMTcsIDIsIDE4LCAzLCAxOSwgNCwgMjAsIDUsIDIxLCA2LCAyMiwgNywgMjMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDY0eDJfdCB2emlwMXFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0NjR4Ml90IHZ6aXAxcV9mNjQoZmxvYXQ2NHgyX3QgX19wMCwgZmxvYXQ2NHgyX3QgX19wMSkgewogIGZsb2F0NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2emlwMXFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZ6aXAxcV9mMzIoZmxvYXQzMng0X3QgX19wMCwgZmxvYXQzMng0X3QgX19wMSkgewogIGZsb2F0MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDQsIDEsIDUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdnppcDFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCA0LCAxLCA1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdnppcDFxX3MzMihpbnQzMng0X3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZ6aXAxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZ6aXAxcV9zNjQoaW50NjR4Ml90IF9fcDAsIGludDY0eDJfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2emlwMXFfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ6aXAxcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgOCwgMSwgOSwgMiwgMTAsIDMsIDExKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZ6aXAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDh4OF90IHZ6aXAxX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnppcDFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnppcDFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnppcDFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDQsIDEsIDUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnppcDFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgNCwgMSwgNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ6aXAxX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdnppcDFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDgsIDEsIDksIDIsIDEwLCAzLCAxMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGZsb2F0MzJ4Ml90IHZ6aXAxX2YzMihmbG9hdDMyeDJfdCBfX3AwLCBmbG9hdDMyeDJfdCBfX3AxKSB7CiAgZmxvYXQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAwLCAyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDJfdCB2emlwMV9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDAsIDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMngyX3QgdnppcDFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDAsIDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDJfdCB2emlwMV9zMzIoaW50MzJ4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxKSB7CiAgaW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMCwgMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2emlwMV9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMCwgNCwgMSwgNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4NF90IHZ6aXAxX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAwLCA0LCAxLCA1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTh4OF90IHZ6aXAyX3A4KHBvbHk4eDhfdCBfX3AwLCBwb2x5OHg4X3QgX19wMSkgewogIHBvbHk4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5OHg4X3QgdnppcDJfcDgocG9seTh4OF90IF9fcDAsIHBvbHk4eDhfdCBfX3AxKSB7CiAgcG9seTh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4NF90IHZ6aXAyX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBwb2x5MTZ4NF90IHZ6aXAyX3AxNihwb2x5MTZ4NF90IF9fcDAsIHBvbHkxNng0X3QgX19wMSkgewogIHBvbHkxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDIsIDYsIDMsIDcpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5OHgxNl90IHZ6aXAycV9wOChwb2x5OHgxNl90IF9fcDAsIHBvbHk4eDE2X3QgX19wMSkgewogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk4eDE2X3QgdnppcDJxX3A4KHBvbHk4eDE2X3QgX19wMCwgcG9seTh4MTZfdCBfX3AxKSB7CiAgcG9seTh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHBvbHk4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgcG9seTY0eDJfdCB2emlwMnFfcDY0KHBvbHk2NHgyX3QgX19wMCwgcG9seTY0eDJfdCBfX3AxKSB7CiAgcG9seTY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHk2NHgyX3QgdnppcDJxX3A2NChwb2x5NjR4Ml90IF9fcDAsIHBvbHk2NHgyX3QgX19wMSkgewogIHBvbHk2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgcG9seTY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBwb2x5NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBwb2x5MTZ4OF90IHZ6aXAycV9wMTYocG9seTE2eDhfdCBfX3AwLCBwb2x5MTZ4OF90IF9fcDEpIHsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHBvbHkxNng4X3QgdnppcDJxX3AxNihwb2x5MTZ4OF90IF9fcDAsIHBvbHkxNng4X3QgX19wMSkgewogIHBvbHkxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcG9seTE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBwb2x5MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4MTZfdCB2emlwMnFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50OHgxNl90IHZ6aXAycV91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDgsIDI0LCA5LCAyNSwgMTAsIDI2LCAxMSwgMjcsIDEyLCAyOCwgMTMsIDI5LCAxNCwgMzAsIDE1LCAzMSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdnppcDJxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZ6aXAycV91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAyLCA2LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2emlwMnFfdTY0KHVpbnQ2NHgyX3QgX19wMCwgdWludDY0eDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdnppcDJxX3U2NCh1aW50NjR4Ml90IF9fcDAsIHVpbnQ2NHgyX3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZ6aXAycV91MTYodWludDE2eDhfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdnppcDJxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50OHgxNl90IHZ6aXAycV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEpIHsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA4LCAyNCwgOSwgMjUsIDEwLCAyNiwgMTEsIDI3LCAxMiwgMjgsIDEzLCAyOSwgMTQsIDMwLCAxNSwgMzEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2emlwMnFfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgOCwgMjQsIDksIDI1LCAxMCwgMjYsIDExLCAyNywgMTIsIDI4LCAxMywgMjksIDE0LCAzMCwgMTUsIDMxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQ2NHgyX3QgdnppcDJxX2Y2NChmbG9hdDY0eDJfdCBfX3AwLCBmbG9hdDY0eDJfdCBfX3AxKSB7CiAgZmxvYXQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDY0eDJfdCB2emlwMnFfZjY0KGZsb2F0NjR4Ml90IF9fcDAsIGZsb2F0NjR4Ml90IF9fcDEpIHsKICBmbG9hdDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdnppcDJxX2YzMihmbG9hdDMyeDRfdCBfX3AwLCBmbG9hdDMyeDRfdCBfX3AxKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAyLCA2LCAzLCA3KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2emlwMnFfZjMyKGZsb2F0MzJ4NF90IF9fcDAsIGZsb2F0MzJ4NF90IF9fcDEpIHsKICBmbG9hdDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAyLCA2LCAzLCA3KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZ6aXAycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMiwgNiwgMywgNyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZ6aXAycV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2emlwMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2emlwMnFfczY0KGludDY0eDJfdCBfX3AwLCBpbnQ2NHgyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng4X3QgdnppcDJxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCA0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZ6aXAycV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHg4X3QgdnppcDJfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2emlwMl91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCA0LCAxMiwgNSwgMTMsIDYsIDE0LCA3LCAxNSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMngyX3QgdnppcDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDEsIDMpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMngyX3QgdnppcDJfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMSwgMyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng0X3QgdnppcDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdnppcDJfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDE2eDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZ6aXAyX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDQsIDEyLCA1LCAxMywgNiwgMTQsIDcsIDE1KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ4eDhfdCB2emlwMl9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgNCwgMTIsIDUsIDEzLCA2LCAxNCwgNywgMTUpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDJfdCB2emlwMl9mMzIoZmxvYXQzMngyX3QgX19wMCwgZmxvYXQzMngyX3QgX19wMSkgewogIGZsb2F0MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMSwgMSwgMyk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgZmxvYXQzMngyX3QgdnppcDJfZjMyKGZsb2F0MzJ4Ml90IF9fcDAsIGZsb2F0MzJ4Ml90IF9fcDEpIHsKICBmbG9hdDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICBmbG9hdDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV2MCwgX19yZXYxLCAxLCAzKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZ6aXAyX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AxLCAxLCAzKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMngyX3QgdnppcDJfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXYwLCBfX3JldjEsIDEsIDMpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQxNng0X3QgdnppcDJfczE2KGludDE2eDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDE2eDRfdCBfX3JldDsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDEsIDIsIDYsIDMsIDcpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2emlwMl9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldjAsIF9fcmV2MSwgMiwgNiwgMywgNyk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNlbmRpZgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50OHgxNl90IHZhYmFxX3U4KHVpbnQ4eDE2X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3U4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDE2X3QgdmFiYXFfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkcV91OChfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3QgdmFiYXFfdTMyKHVpbnQzMng0X3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3UzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZhYmFxX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3UzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFiYXFfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3UxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhYmFxX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3UxNihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4MTZfdCB2YWJhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRxX3M4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDh4MTZfdCB2YWJhcV9zOChpbnQ4eDE2X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZHFfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFiYXFfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZHFfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJhcV9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZhYmRxX3MzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhcV9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNng4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkcV9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhYmFxX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZHFfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDh4OF90IHZhYmFfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQ4eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkX3U4KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ4eDhfdCB2YWJhX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSwgdWludDh4OF90IF9fcDIpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3U4KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDJfdCB2YWJhX3UzMih1aW50MzJ4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDMyeDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkX3UzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4Ml90IHZhYmFfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJ4Ml90IF9fcDIpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4NF90IHZhYmFfdTE2KHVpbnQxNng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng0X3QgdmFiYV91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3UxNihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDh4OF90IHZhYmFfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDh4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50OHg4X3QgdmFiYV9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxLCBpbnQ4eDhfdCBfX3AyKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3M4KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4Ml90IHZhYmFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZF9zMzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4Ml90IHZhYmFfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkX3MzMihfX3JldjEsIF9fcmV2Mik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDRfdCB2YWJhX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRfczE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDRfdCB2YWJhX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZF9zMTYoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZhYmRsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAodWludDE2eDhfdCkodm1vdmxfdTgoKHVpbnQ4eDhfdCkodmFiZF91OChfX3AwLCBfX3AxKSkpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhYmRsX3U4KHVpbnQ4eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQ4eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MTZ4OF90KShfX25vc3dhcF92bW92bF91OCgodWludDh4OF90KShfX25vc3dhcF92YWJkX3U4KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDE2eDhfdCBfX25vc3dhcF92YWJkbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQxNng4X3QpKF9fbm9zd2FwX3Ztb3ZsX3U4KCh1aW50OHg4X3QpKF9fbm9zd2FwX3ZhYmRfdTgoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKHZtb3ZsX3UzMigodWludDMyeDJfdCkodmFiZF91MzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50MzJ4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9ICh1aW50NjR4Ml90KShfX25vc3dhcF92bW92bF91MzIoKHVpbnQzMngyX3QpKF9fbm9zd2FwX3ZhYmRfdTMyKF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92YWJkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF91MzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKHZtb3ZsX3UxNigodWludDE2eDRfdCkodmFiZF91MTYoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9ICh1aW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfdTE2KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92YWJkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gKHVpbnQzMng0X3QpKF9fbm9zd2FwX3Ztb3ZsX3UxNigodWludDE2eDRfdCkoX19ub3N3YXBfdmFiZF91MTYoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhYmRsX3M4KGludDh4OF90IF9fcDAsIGludDh4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MTZ4OF90KSh2bW92bF91OCgodWludDh4OF90KSh2YWJkX3M4KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdm1vdmxfdTgoKHVpbnQ4eDhfdCkoX19ub3N3YXBfdmFiZF9zOChfX3JldjAsIF9fcmV2MSkpKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDE2eDhfdCBfX25vc3dhcF92YWJkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gKGludDE2eDhfdCkoX19ub3N3YXBfdm1vdmxfdTgoKHVpbnQ4eDhfdCkoX19ub3N3YXBfdmFiZF9zOChfX3AwLCBfX3AxKSkpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFiZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKHZtb3ZsX3UzMigodWludDMyeDJfdCkodmFiZF9zMzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhYmRsX3MzMihpbnQzMngyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQzMngyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF9zMzIoX19yZXYwLCBfX3JldjEpKSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdmFiZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IChpbnQ2NHgyX3QpKF9fbm9zd2FwX3Ztb3ZsX3UzMigodWludDMyeDJfdCkoX19ub3N3YXBfdmFiZF9zMzIoX19wMCwgX19wMSkpKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhYmRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KSh2bW92bF91MTYoKHVpbnQxNng0X3QpKHZhYmRfczE2KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJkbF9zMTYoaW50MTZ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxKSB7CiAgaW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfczE2KF9fcmV2MCwgX19yZXYxKSkpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZhYmRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSAoaW50MzJ4NF90KShfX25vc3dhcF92bW92bF91MTYoKHVpbnQxNng0X3QpKF9fbm9zd2FwX3ZhYmRfczE2KF9fcDAsIF9fcDEpKSkpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZGxfdTgodWludDh4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3U4KF9fcDApICsgdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkbF91OCh1aW50OHg4X3QgX19wMCwgdWludDh4OF90IF9fcDEpIHsKICB1aW50OHg4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91OChfX3JldjApICsgX19ub3N3YXBfdm1vdmxfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkbF91MzIodWludDMyeDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfdTMyKF9fcDApICsgdm1vdmxfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZGxfdTMyKHVpbnQzMngyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF91MzIoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGRsX3UxNih1aW50MTZ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF91MTYoX19wMCkgKyB2bW92bF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkbF91MTYodWludDE2eDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEpIHsKICB1aW50MTZ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3UxNihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkbF9zOChpbnQ4eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfczgoX19wMCkgKyB2bW92bF9zOChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFkZGxfczgoaW50OHg4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDh4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3M4KF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX3MzMihfX3AwKSArIHZtb3ZsX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFkZGxfczMyKGludDMyeDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDMyeDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfczMyKF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9zMTYoX19wMCkgKyB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGRsX3MxNihpbnQxNng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQxNng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHdfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHg4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfdTgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWRkd191OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3U4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3QgdmFkZHdfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWRkd191MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMngyX3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGR3X3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfdTE2KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFkZHdfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGR3X3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDhfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtb3ZsX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWRkd19zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZHdfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGR3X3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3MzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFkZHdfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGR3X3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Z2V0X2xhbmVfZjE2KF9fcDBfODM1LCBfX3AxXzgzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng0X3QgX19zMF84MzUgPSBfX3AwXzgzNTsgXAogIGZsb2F0MTZfdCBfX3JldF84MzU7IFwKZmxvYXQxNng0X3QgX19yZWludF84MzUgPSBfX3MwXzgzNTsgXAppbnQxNl90IF9fcmVpbnQxXzgzNSA9IHZnZXRfbGFuZV9zMTYoKihpbnQxNng0X3QgKikgJl9fcmVpbnRfODM1LCBfX3AxXzgzNSk7IFwKICBfX3JldF84MzUgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM1OyBcCiAgX19yZXRfODM1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmdldF9sYW5lX2YxNihfX3AwXzgzNiwgX19wMV84MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfODM2ID0gX19wMF84MzY7IFwKICBmbG9hdDE2eDRfdCBfX3JldjBfODM2OyAgX19yZXYwXzgzNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODM2LCBfX3MwXzgzNiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfODM2OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfODM2ID0gX19yZXYwXzgzNjsgXAppbnQxNl90IF9fcmVpbnQxXzgzNiA9IF9fbm9zd2FwX3ZnZXRfbGFuZV9zMTYoKihpbnQxNng0X3QgKikgJl9fcmVpbnRfODM2LCBfX3AxXzgzNik7IFwKICBfX3JldF84MzYgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM2OyBcCiAgX19yZXRfODM2OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3AwXzgzNywgX19wMV84MzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZ4NF90IF9fczBfODM3ID0gX19wMF84Mzc7IFwKICBmbG9hdDE2X3QgX19yZXRfODM3OyBcCmZsb2F0MTZ4NF90IF9fcmVpbnRfODM3ID0gX19zMF84Mzc7IFwKaW50MTZfdCBfX3JlaW50MV84MzcgPSBfX25vc3dhcF92Z2V0X2xhbmVfczE2KCooaW50MTZ4NF90ICopICZfX3JlaW50XzgzNywgX19wMV84MzcpOyBcCiAgX19yZXRfODM3ID0gKihmbG9hdDE2X3QgKikgJl9fcmVpbnQxXzgzNzsgXAogIF9fcmV0XzgzNzsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZnZXRxX2xhbmVfZjE2KF9fcDBfODM4LCBfX3AxXzgzOCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF84MzggPSBfX3AwXzgzODsgXAogIGZsb2F0MTZfdCBfX3JldF84Mzg7IFwKZmxvYXQxNng4X3QgX19yZWludF84MzggPSBfX3MwXzgzODsgXAppbnQxNl90IF9fcmVpbnQxXzgzOCA9IHZnZXRxX2xhbmVfczE2KCooaW50MTZ4OF90ICopICZfX3JlaW50XzgzOCwgX19wMV84MzgpOyBcCiAgX19yZXRfODM4ID0gKihmbG9hdDE2X3QgKikgJl9fcmVpbnQxXzgzODsgXAogIF9fcmV0XzgzODsgXAp9KQojZWxzZQojZGVmaW5lIHZnZXRxX2xhbmVfZjE2KF9fcDBfODM5LCBfX3AxXzgzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQxNng4X3QgX19zMF84MzkgPSBfX3AwXzgzOTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MF84Mzk7ICBfX3JldjBfODM5ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84MzksIF9fczBfODM5LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF84Mzk7IFwKZmxvYXQxNng4X3QgX19yZWludF84MzkgPSBfX3JldjBfODM5OyBcCmludDE2X3QgX19yZWludDFfODM5ID0gX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoKihpbnQxNng4X3QgKikgJl9fcmVpbnRfODM5LCBfX3AxXzgzOSk7IFwKICBfX3JldF84MzkgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODM5OyBcCiAgX19yZXRfODM5OyBcCn0pCiNkZWZpbmUgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19wMF84NDAsIF9fcDFfODQwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2eDhfdCBfX3MwXzg0MCA9IF9fcDBfODQwOyBcCiAgZmxvYXQxNl90IF9fcmV0Xzg0MDsgXApmbG9hdDE2eDhfdCBfX3JlaW50Xzg0MCA9IF9fczBfODQwOyBcCmludDE2X3QgX19yZWludDFfODQwID0gX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoKihpbnQxNng4X3QgKikgJl9fcmVpbnRfODQwLCBfX3AxXzg0MCk7IFwKICBfX3JldF84NDAgPSAqKGZsb2F0MTZfdCAqKSAmX19yZWludDFfODQwOyBcCiAgX19yZXRfODQwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZtbGFsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbGFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxhbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZtbGFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxhbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1sYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbGFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1sYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm11bGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZtbGFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3UzMihfX3AwXzg0MSwgX19wMV84NDEsIF9fcDJfODQxLCBfX3AzXzg0MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0MSA9IF9fcDBfODQxOyBcCiAgdWludDMyeDJfdCBfX3MxXzg0MSA9IF9fcDFfODQxOyBcCiAgdWludDMyeDJfdCBfX3MyXzg0MSA9IF9fcDJfODQxOyBcCiAgdWludDY0eDJfdCBfX3JldF84NDE7IFwKICBfX3JldF84NDEgPSBfX3MwXzg0MSArIHZtdWxsX3UzMihfX3MxXzg0MSwgc3BsYXRfbGFuZV91MzIoX19zMl84NDEsIF9fcDNfODQxKSk7IFwKICBfX3JldF84NDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3UzMihfX3AwXzg0MiwgX19wMV84NDIsIF9fcDJfODQyLCBfX3AzXzg0MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0MiA9IF9fcDBfODQyOyBcCiAgdWludDMyeDJfdCBfX3MxXzg0MiA9IF9fcDFfODQyOyBcCiAgdWludDMyeDJfdCBfX3MyXzg0MiA9IF9fcDJfODQyOyBcCiAgdWludDY0eDJfdCBfX3JldjBfODQyOyAgX19yZXYwXzg0MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODQyLCBfX3MwXzg0MiwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84NDI7ICBfX3JldjFfODQyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDIsIF9fczFfODQyLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzg0MjsgIF9fcmV2Ml84NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0MiwgX19zMl84NDIsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84NDI7IFwKICBfX3JldF84NDIgPSBfX3JldjBfODQyICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV84NDIsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml84NDIsIF9fcDNfODQyKSk7IFwKICBfX3JldF84NDIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NDIsIF9fcmV0Xzg0MiwgMSwgMCk7IFwKICBfX3JldF84NDI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3UxNihfX3AwXzg0MywgX19wMV84NDMsIF9fcDJfODQzLCBfX3AzXzg0MykgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg0MyA9IF9fcDBfODQzOyBcCiAgdWludDE2eDRfdCBfX3MxXzg0MyA9IF9fcDFfODQzOyBcCiAgdWludDE2eDRfdCBfX3MyXzg0MyA9IF9fcDJfODQzOyBcCiAgdWludDMyeDRfdCBfX3JldF84NDM7IFwKICBfX3JldF84NDMgPSBfX3MwXzg0MyArIHZtdWxsX3UxNihfX3MxXzg0Mywgc3BsYXRfbGFuZV91MTYoX19zMl84NDMsIF9fcDNfODQzKSk7IFwKICBfX3JldF84NDM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3UxNihfX3AwXzg0NCwgX19wMV84NDQsIF9fcDJfODQ0LCBfX3AzXzg0NCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg0NCA9IF9fcDBfODQ0OyBcCiAgdWludDE2eDRfdCBfX3MxXzg0NCA9IF9fcDFfODQ0OyBcCiAgdWludDE2eDRfdCBfX3MyXzg0NCA9IF9fcDJfODQ0OyBcCiAgdWludDMyeDRfdCBfX3JldjBfODQ0OyAgX19yZXYwXzg0NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODQ0LCBfX3MwXzg0NCwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV84NDQ7ICBfX3JldjFfODQ0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDQsIF9fczFfODQ0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzg0NDsgIF9fcmV2Ml84NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0NCwgX19zMl84NDQsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84NDQ7IFwKICBfX3JldF84NDQgPSBfX3JldjBfODQ0ICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV84NDQsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml84NDQsIF9fcDNfODQ0KSk7IFwKICBfX3JldF84NDQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NDQsIF9fcmV0Xzg0NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NDQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxhbF9sYW5lX3MzMihfX3AwXzg0NSwgX19wMV84NDUsIF9fcDJfODQ1LCBfX3AzXzg0NSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfODQ1ID0gX19wMF84NDU7IFwKICBpbnQzMngyX3QgX19zMV84NDUgPSBfX3AxXzg0NTsgXAogIGludDMyeDJfdCBfX3MyXzg0NSA9IF9fcDJfODQ1OyBcCiAgaW50NjR4Ml90IF9fcmV0Xzg0NTsgXAogIF9fcmV0Xzg0NSA9IF9fczBfODQ1ICsgdm11bGxfczMyKF9fczFfODQ1LCBzcGxhdF9sYW5lX3MzMihfX3MyXzg0NSwgX19wM184NDUpKTsgXAogIF9fcmV0Xzg0NTsgXAp9KQojZWxzZQojZGVmaW5lIHZtbGFsX2xhbmVfczMyKF9fcDBfODQ2LCBfX3AxXzg0NiwgX19wMl84NDYsIF9fcDNfODQ2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF84NDYgPSBfX3AwXzg0NjsgXAogIGludDMyeDJfdCBfX3MxXzg0NiA9IF9fcDFfODQ2OyBcCiAgaW50MzJ4Ml90IF9fczJfODQ2ID0gX19wMl84NDY7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzg0NjsgIF9fcmV2MF84NDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg0NiwgX19zMF84NDYsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV84NDY7ICBfX3JldjFfODQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NDYsIF9fczFfODQ2LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfODQ2OyAgX19yZXYyXzg0NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODQ2LCBfX3MyXzg0NiwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfODQ2OyBcCiAgX19yZXRfODQ2ID0gX19yZXYwXzg0NiArIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjFfODQ2LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfODQ2LCBfX3AzXzg0NikpOyBcCiAgX19yZXRfODQ2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODQ2LCBfX3JldF84NDYsIDEsIDApOyBcCiAgX19yZXRfODQ2OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sYWxfbGFuZV9zMTYoX19wMF84NDcsIF9fcDFfODQ3LCBfX3AyXzg0NywgX19wM184NDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg0NyA9IF9fcDBfODQ3OyBcCiAgaW50MTZ4NF90IF9fczFfODQ3ID0gX19wMV84NDc7IFwKICBpbnQxNng0X3QgX19zMl84NDcgPSBfX3AyXzg0NzsgXAogIGludDMyeDRfdCBfX3JldF84NDc7IFwKICBfX3JldF84NDcgPSBfX3MwXzg0NyArIHZtdWxsX3MxNihfX3MxXzg0Nywgc3BsYXRfbGFuZV9zMTYoX19zMl84NDcsIF9fcDNfODQ3KSk7IFwKICBfX3JldF84NDc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxhbF9sYW5lX3MxNihfX3AwXzg0OCwgX19wMV84NDgsIF9fcDJfODQ4LCBfX3AzXzg0OCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODQ4ID0gX19wMF84NDg7IFwKICBpbnQxNng0X3QgX19zMV84NDggPSBfX3AxXzg0ODsgXAogIGludDE2eDRfdCBfX3MyXzg0OCA9IF9fcDJfODQ4OyBcCiAgaW50MzJ4NF90IF9fcmV2MF84NDg7ICBfX3JldjBfODQ4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NDgsIF9fczBfODQ4LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfODQ4OyAgX19yZXYxXzg0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODQ4LCBfX3MxXzg0OCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzg0ODsgIF9fcmV2Ml84NDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg0OCwgX19zMl84NDgsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzg0ODsgXAogIF9fcmV0Xzg0OCA9IF9fcmV2MF84NDggKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzg0OCwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzg0OCwgX19wM184NDgpKTsgXAogIF9fcmV0Xzg0OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg0OCwgX19yZXRfODQ4LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg0ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3UzMihfX3AxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbGFsX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bWxhbF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTMyKF9fcDEsICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtdWxsX3UxNihfX3AxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbGFsX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF91MTYoX19yZXYxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxhbF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bWxhbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1sYWxfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxzbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxzbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZtbHNsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbHNsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxzbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZtbHNsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxzbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxzbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sc2xfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdm1sc2xfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdm1sc2xfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxzbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwIC0gX19ub3N3YXBfdm11bGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZtbHNsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIF9fbm9zd2FwX3ZtdWxsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3UzMihfX3AwXzg0OSwgX19wMV84NDksIF9fcDJfODQ5LCBfX3AzXzg0OSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg0OSA9IF9fcDBfODQ5OyBcCiAgdWludDMyeDJfdCBfX3MxXzg0OSA9IF9fcDFfODQ5OyBcCiAgdWludDMyeDJfdCBfX3MyXzg0OSA9IF9fcDJfODQ5OyBcCiAgdWludDY0eDJfdCBfX3JldF84NDk7IFwKICBfX3JldF84NDkgPSBfX3MwXzg0OSAtIHZtdWxsX3UzMihfX3MxXzg0OSwgc3BsYXRfbGFuZV91MzIoX19zMl84NDksIF9fcDNfODQ5KSk7IFwKICBfX3JldF84NDk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3UzMihfX3AwXzg1MCwgX19wMV84NTAsIF9fcDJfODUwLCBfX3AzXzg1MCkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDY0eDJfdCBfX3MwXzg1MCA9IF9fcDBfODUwOyBcCiAgdWludDMyeDJfdCBfX3MxXzg1MCA9IF9fcDFfODUwOyBcCiAgdWludDMyeDJfdCBfX3MyXzg1MCA9IF9fcDJfODUwOyBcCiAgdWludDY0eDJfdCBfX3JldjBfODUwOyAgX19yZXYwXzg1MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUwLCBfX3MwXzg1MCwgMSwgMCk7IFwKICB1aW50MzJ4Ml90IF9fcmV2MV84NTA7ICBfX3JldjFfODUwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTAsIF9fczFfODUwLCAxLCAwKTsgXAogIHVpbnQzMngyX3QgX19yZXYyXzg1MDsgIF9fcmV2Ml84NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1MCwgX19zMl84NTAsIDEsIDApOyBcCiAgdWludDY0eDJfdCBfX3JldF84NTA7IFwKICBfX3JldF84NTAgPSBfX3JldjBfODUwIC0gX19ub3N3YXBfdm11bGxfdTMyKF9fcmV2MV84NTAsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTMyKF9fcmV2Ml84NTAsIF9fcDNfODUwKSk7IFwKICBfX3JldF84NTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTAsIF9fcmV0Xzg1MCwgMSwgMCk7IFwKICBfX3JldF84NTA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3UxNihfX3AwXzg1MSwgX19wMV84NTEsIF9fcDJfODUxLCBfX3AzXzg1MSkgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg1MSA9IF9fcDBfODUxOyBcCiAgdWludDE2eDRfdCBfX3MxXzg1MSA9IF9fcDFfODUxOyBcCiAgdWludDE2eDRfdCBfX3MyXzg1MSA9IF9fcDJfODUxOyBcCiAgdWludDMyeDRfdCBfX3JldF84NTE7IFwKICBfX3JldF84NTEgPSBfX3MwXzg1MSAtIHZtdWxsX3UxNihfX3MxXzg1MSwgc3BsYXRfbGFuZV91MTYoX19zMl84NTEsIF9fcDNfODUxKSk7IFwKICBfX3JldF84NTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3UxNihfX3AwXzg1MiwgX19wMV84NTIsIF9fcDJfODUyLCBfX3AzXzg1MikgX19leHRlbnNpb25fXyAoeyBcCiAgdWludDMyeDRfdCBfX3MwXzg1MiA9IF9fcDBfODUyOyBcCiAgdWludDE2eDRfdCBfX3MxXzg1MiA9IF9fcDFfODUyOyBcCiAgdWludDE2eDRfdCBfX3MyXzg1MiA9IF9fcDJfODUyOyBcCiAgdWludDMyeDRfdCBfX3JldjBfODUyOyAgX19yZXYwXzg1MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODUyLCBfX3MwXzg1MiwgMywgMiwgMSwgMCk7IFwKICB1aW50MTZ4NF90IF9fcmV2MV84NTI7ICBfX3JldjFfODUyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTIsIF9fczFfODUyLCAzLCAyLCAxLCAwKTsgXAogIHVpbnQxNng0X3QgX19yZXYyXzg1MjsgIF9fcmV2Ml84NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1MiwgX19zMl84NTIsIDMsIDIsIDEsIDApOyBcCiAgdWludDMyeDRfdCBfX3JldF84NTI7IFwKICBfX3JldF84NTIgPSBfX3JldjBfODUyIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcmV2MV84NTIsIF9fbm9zd2FwX3NwbGF0X2xhbmVfdTE2KF9fcmV2Ml84NTIsIF9fcDNfODUyKSk7IFwKICBfX3JldF84NTIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTIsIF9fcmV0Xzg1MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NTI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bWxzbF9sYW5lX3MzMihfX3AwXzg1MywgX19wMV84NTMsIF9fcDJfODUzLCBfX3AzXzg1MykgX19leHRlbnNpb25fXyAoeyBcCiAgaW50NjR4Ml90IF9fczBfODUzID0gX19wMF84NTM7IFwKICBpbnQzMngyX3QgX19zMV84NTMgPSBfX3AxXzg1MzsgXAogIGludDMyeDJfdCBfX3MyXzg1MyA9IF9fcDJfODUzOyBcCiAgaW50NjR4Ml90IF9fcmV0Xzg1MzsgXAogIF9fcmV0Xzg1MyA9IF9fczBfODUzIC0gdm11bGxfczMyKF9fczFfODUzLCBzcGxhdF9sYW5lX3MzMihfX3MyXzg1MywgX19wM184NTMpKTsgXAogIF9fcmV0Xzg1MzsgXAp9KQojZWxzZQojZGVmaW5lIHZtbHNsX2xhbmVfczMyKF9fcDBfODU0LCBfX3AxXzg1NCwgX19wMl84NTQsIF9fcDNfODU0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQ2NHgyX3QgX19zMF84NTQgPSBfX3AwXzg1NDsgXAogIGludDMyeDJfdCBfX3MxXzg1NCA9IF9fcDFfODU0OyBcCiAgaW50MzJ4Ml90IF9fczJfODU0ID0gX19wMl84NTQ7IFwKICBpbnQ2NHgyX3QgX19yZXYwXzg1NDsgIF9fcmV2MF84NTQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg1NCwgX19zMF84NTQsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV2MV84NTQ7ICBfX3JldjFfODU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NTQsIF9fczFfODU0LCAxLCAwKTsgXAogIGludDMyeDJfdCBfX3JldjJfODU0OyAgX19yZXYyXzg1NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODU0LCBfX3MyXzg1NCwgMSwgMCk7IFwKICBpbnQ2NHgyX3QgX19yZXRfODU0OyBcCiAgX19yZXRfODU0ID0gX19yZXYwXzg1NCAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjFfODU0LCBfX25vc3dhcF9zcGxhdF9sYW5lX3MzMihfX3JldjJfODU0LCBfX3AzXzg1NCkpOyBcCiAgX19yZXRfODU0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODU0LCBfX3JldF84NTQsIDEsIDApOyBcCiAgX19yZXRfODU0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm1sc2xfbGFuZV9zMTYoX19wMF84NTUsIF9fcDFfODU1LCBfX3AyXzg1NSwgX19wM184NTUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDRfdCBfX3MwXzg1NSA9IF9fcDBfODU1OyBcCiAgaW50MTZ4NF90IF9fczFfODU1ID0gX19wMV84NTU7IFwKICBpbnQxNng0X3QgX19zMl84NTUgPSBfX3AyXzg1NTsgXAogIGludDMyeDRfdCBfX3JldF84NTU7IFwKICBfX3JldF84NTUgPSBfX3MwXzg1NSAtIHZtdWxsX3MxNihfX3MxXzg1NSwgc3BsYXRfbGFuZV9zMTYoX19zMl84NTUsIF9fcDNfODU1KSk7IFwKICBfX3JldF84NTU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bWxzbF9sYW5lX3MxNihfX3AwXzg1NiwgX19wMV84NTYsIF9fcDJfODU2LCBfX3AzXzg1NikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJ4NF90IF9fczBfODU2ID0gX19wMF84NTY7IFwKICBpbnQxNng0X3QgX19zMV84NTYgPSBfX3AxXzg1NjsgXAogIGludDE2eDRfdCBfX3MyXzg1NiA9IF9fcDJfODU2OyBcCiAgaW50MzJ4NF90IF9fcmV2MF84NTY7ICBfX3JldjBfODU2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NTYsIF9fczBfODU2LCAzLCAyLCAxLCAwKTsgXAogIGludDE2eDRfdCBfX3JldjFfODU2OyAgX19yZXYxXzg1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODU2LCBfX3MxXzg1NiwgMywgMiwgMSwgMCk7IFwKICBpbnQxNng0X3QgX19yZXYyXzg1NjsgIF9fcmV2Ml84NTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg1NiwgX19zMl84NTYsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4NF90IF9fcmV0Xzg1NjsgXAogIF9fcmV0Xzg1NiA9IF9fcmV2MF84NTYgLSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxXzg1NiwgX19ub3N3YXBfc3BsYXRfbGFuZV9zMTYoX19yZXYyXzg1NiwgX19wM184NTYpKTsgXAogIF9fcmV0Xzg1NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg1NiwgX19yZXRfODU2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg1NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sc2xfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3UzMihfX3AxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbHNsX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDJfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MzIoX19yZXYxLCAodWludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDY0eDJfdCBfX25vc3dhcF92bWxzbF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTMyKF9fcDEsICh1aW50MzJ4Ml90KSB7X19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCAtIHZtdWxsX3UxNihfX3AxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbHNsX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF91MTYoX19yZXYxLCAodWludDE2eDRfdCkge19fcDIsIF9fcDIsIF9fcDIsIF9fcDJ9KTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92bWxzbF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng0X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfdTE2KF9fcDEsICh1aW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2bWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSB2bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCAtIF9fbm9zd2FwX3ZtdWxsX3MzMihfX3JldjEsIChpbnQzMngyX3QpIHtfX3AyLCBfX3AyfSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQpfX2FpIGludDY0eDJfdCBfX25vc3dhcF92bWxzbF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgLSBfX25vc3dhcF92bXVsbF9zMzIoX19wMSwgKGludDMyeDJfdCkge19fcDIsIF9fcDJ9KTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbHNsX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng0X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgLSBfX25vc3dhcF92bXVsbF9zMTYoX19yZXYxLCAoaW50MTZ4NF90KSB7X19wMiwgX19wMiwgX19wMiwgX19wMn0pOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQzMng0X3QgX19ub3N3YXBfdm1sc2xfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwIC0gX19ub3N3YXBfdm11bGxfczE2KF9fcDEsIChpbnQxNng0X3QpIHtfX3AyLCBfX3AyLCBfX3AyLCBfX3AyfSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnNldF9sYW5lX2YxNihfX3AwXzg1NywgX19wMV84NTcsIF9fcDJfODU3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTcgPSBfX3AwXzg1NzsgXAogIGZsb2F0MTZ4NF90IF9fczFfODU3ID0gX19wMV84NTc7IFwKICBmbG9hdDE2eDRfdCBfX3JldF84NTc7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU3ID0gX19zMF84NTc7IFwKZmxvYXQxNng0X3QgX19yZWludDFfODU3ID0gX19zMV84NTc7IFwKaW50MTZ4NF90IF9fcmVpbnQyXzg1NyA9IHZzZXRfbGFuZV9zMTYoKihpbnQxNl90ICopICZfX3JlaW50Xzg1NywgKihpbnQxNng0X3QgKikgJl9fcmVpbnQxXzg1NywgX19wMl84NTcpOyBcCiAgX19yZXRfODU3ID0gKihmbG9hdDE2eDRfdCAqKSAmX19yZWludDJfODU3OyBcCiAgX19yZXRfODU3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnNldF9sYW5lX2YxNihfX3AwXzg1OCwgX19wMV84NTgsIF9fcDJfODU4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTggPSBfX3AwXzg1ODsgXAogIGZsb2F0MTZ4NF90IF9fczFfODU4ID0gX19wMV84NTg7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODU4OyAgX19yZXYxXzg1OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODU4LCBfX3MxXzg1OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldF84NTg7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU4ID0gX19zMF84NTg7IFwKZmxvYXQxNng0X3QgX19yZWludDFfODU4ID0gX19yZXYxXzg1ODsgXAppbnQxNng0X3QgX19yZWludDJfODU4ID0gX19ub3N3YXBfdnNldF9sYW5lX3MxNigqKGludDE2X3QgKikgJl9fcmVpbnRfODU4LCAqKGludDE2eDRfdCAqKSAmX19yZWludDFfODU4LCBfX3AyXzg1OCk7IFwKICBfX3JldF84NTggPSAqKGZsb2F0MTZ4NF90ICopICZfX3JlaW50Ml84NTg7IFwKICBfX3JldF84NTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NTgsIF9fcmV0Xzg1OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c2V0cV9sYW5lX2YxNihfX3AwXzg1OSwgX19wMV84NTksIF9fcDJfODU5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF84NTkgPSBfX3AwXzg1OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfODU5ID0gX19wMV84NTk7IFwKICBmbG9hdDE2eDhfdCBfX3JldF84NTk7IFwKZmxvYXQxNl90IF9fcmVpbnRfODU5ID0gX19zMF84NTk7IFwKZmxvYXQxNng4X3QgX19yZWludDFfODU5ID0gX19zMV84NTk7IFwKaW50MTZ4OF90IF9fcmVpbnQyXzg1OSA9IHZzZXRxX2xhbmVfczE2KCooaW50MTZfdCAqKSAmX19yZWludF84NTksICooaW50MTZ4OF90ICopICZfX3JlaW50MV84NTksIF9fcDJfODU5KTsgXAogIF9fcmV0Xzg1OSA9ICooZmxvYXQxNng4X3QgKikgJl9fcmVpbnQyXzg1OTsgXAogIF9fcmV0Xzg1OTsgXAp9KQojZWxzZQojZGVmaW5lIHZzZXRxX2xhbmVfZjE2KF9fcDBfODYwLCBfX3AxXzg2MCwgX19wMl84NjApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwXzg2MCA9IF9fcDBfODYwOyBcCiAgZmxvYXQxNng4X3QgX19zMV84NjAgPSBfX3AxXzg2MDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84NjA7ICBfX3JldjFfODYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NjAsIF9fczFfODYwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV0Xzg2MDsgXApmbG9hdDE2X3QgX19yZWludF84NjAgPSBfX3MwXzg2MDsgXApmbG9hdDE2eDhfdCBfX3JlaW50MV84NjAgPSBfX3JldjFfODYwOyBcCmludDE2eDhfdCBfX3JlaW50Ml84NjAgPSBfX25vc3dhcF92c2V0cV9sYW5lX3MxNigqKGludDE2X3QgKikgJl9fcmVpbnRfODYwLCAqKGludDE2eDhfdCAqKSAmX19yZWludDFfODYwLCBfX3AyXzg2MCk7IFwKICBfX3JldF84NjAgPSAqKGZsb2F0MTZ4OF90ICopICZfX3JlaW50Ml84NjA7IFwKICBfX3JldF84NjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjAsIF9fcmV0Xzg2MCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NjA7IFwKfSkKI2VuZGlmCgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX0JGMTZfVkVDVE9SX0FSSVRITUVUSUMpCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZm1sYWxicV9sYW5lX2YzMihfX3AwXzg2MSwgX19wMV84NjEsIF9fcDJfODYxLCBfX3AzXzg2MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjEgPSBfX3AwXzg2MTsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzg2MSA9IF9fcDFfODYxOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfODYxID0gX19wMl84NjE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84NjE7IFwKICBfX3JldF84NjEgPSB2YmZtbGFsYnFfZjMyKF9fczBfODYxLCBfX3MxXzg2MSwgKGJmbG9hdDE2eDhfdCkge3ZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSksIHZnZXRfbGFuZV9iZjE2KF9fczJfODYxLCBfX3AzXzg2MSl9KTsgXAogIF9fcmV0Xzg2MTsgXAp9KQojZWxzZQojZGVmaW5lIHZiZm1sYWxicV9sYW5lX2YzMihfX3AwXzg2MiwgX19wMV84NjIsIF9fcDJfODYyLCBfX3AzXzg2MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjIgPSBfX3AwXzg2MjsgXAogIGJmbG9hdDE2eDhfdCBfX3MxXzg2MiA9IF9fcDFfODYyOyBcCiAgYmZsb2F0MTZ4NF90IF9fczJfODYyID0gX19wMl84NjI7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODYyOyAgX19yZXYwXzg2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODYyLCBfX3MwXzg2MiwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYxXzg2MjsgIF9fcmV2MV84NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg2MiwgX19zMV84NjIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4NF90IF9fcmV2Ml84NjI7ICBfX3JldjJfODYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84NjIsIF9fczJfODYyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2MjsgXAogIF9fcmV0Xzg2MiA9IF9fbm9zd2FwX3ZiZm1sYWxicV9mMzIoX19yZXYwXzg2MiwgX19yZXYxXzg2MiwgKGJmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODYyLCBfX3AzXzg2MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODYyLCBfX3AzXzg2MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjIsIF9fcDNfODYyKSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2MiwgX19wM184NjIpfSk7IFwKICBfX3JldF84NjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjIsIF9fcmV0Xzg2MiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NjI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2YmZtbGFsYnFfbGFuZXFfZjMyKF9fcDBfODYzLCBfX3AxXzg2MywgX19wMl84NjMsIF9fcDNfODYzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2MyA9IF9fcDBfODYzOyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODYzID0gX19wMV84NjM7IFwKICBiZmxvYXQxNng4X3QgX19zMl84NjMgPSBfX3AyXzg2MzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2MzsgXAogIF9fcmV0Xzg2MyA9IHZiZm1sYWxicV9mMzIoX19zMF84NjMsIF9fczFfODYzLCAoYmZsb2F0MTZ4OF90KSB7dmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjMsIF9fcDNfODYzKSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjMsIF9fcDNfODYzKSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODYzLCBfX3AzXzg2MyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2MywgX19wM184NjMpfSk7IFwKICBfX3JldF84NjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2YmZtbGFsYnFfbGFuZXFfZjMyKF9fcDBfODY0LCBfX3AxXzg2NCwgX19wMl84NjQsIF9fcDNfODY0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NCA9IF9fcDBfODY0OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY0ID0gX19wMV84NjQ7IFwKICBiZmxvYXQxNng4X3QgX19zMl84NjQgPSBfX3AyXzg2NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NjQ7ICBfX3JldjBfODY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NjQsIF9fczBfODY0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjFfODY0OyAgX19yZXYxXzg2NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODY0LCBfX3MxXzg2NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng4X3QgX19yZXYyXzg2NDsgIF9fcmV2Ml84NjQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg2NCwgX19zMl84NjQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY0OyBcCiAgX19yZXRfODY0ID0gX19ub3N3YXBfdmJmbWxhbGJxX2YzMihfX3JldjBfODY0LCBfX3JldjFfODY0LCAoYmZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9iZjE2KF9fcmV2Ml84NjQsIF9fcDNfODY0KX0pOyBcCiAgX19yZXRfODY0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODY0LCBfX3JldF84NjQsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODY0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmJmbWxhbHRxX2xhbmVfZjMyKF9fcDBfODY1LCBfX3AxXzg2NSwgX19wMl84NjUsIF9fcDNfODY1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NSA9IF9fcDBfODY1OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY1ID0gX19wMV84NjU7IFwKICBiZmxvYXQxNng0X3QgX19zMl84NjUgPSBfX3AyXzg2NTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg2NTsgXAogIF9fcmV0Xzg2NSA9IHZiZm1sYWx0cV9mMzIoX19zMF84NjUsIF9fczFfODY1LCAoYmZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KSwgdmdldF9sYW5lX2JmMTYoX19zMl84NjUsIF9fcDNfODY1KX0pOyBcCiAgX19yZXRfODY1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmJmbWxhbHRxX2xhbmVfZjMyKF9fcDBfODY2LCBfX3AxXzg2NiwgX19wMl84NjYsIF9fcDNfODY2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg2NiA9IF9fcDBfODY2OyBcCiAgYmZsb2F0MTZ4OF90IF9fczFfODY2ID0gX19wMV84NjY7IFwKICBiZmxvYXQxNng0X3QgX19zMl84NjYgPSBfX3AyXzg2NjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NjY7ICBfX3JldjBfODY2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NjYsIF9fczBfODY2LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjFfODY2OyAgX19yZXYxXzg2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODY2LCBfX3MxXzg2NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBiZmxvYXQxNng0X3QgX19yZXYyXzg2NjsgIF9fcmV2Ml84NjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg2NiwgX19zMl84NjYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY2OyBcCiAgX19yZXRfODY2ID0gX19ub3N3YXBfdmJmbWxhbHRxX2YzMihfX3JldjBfODY2LCBfX3JldjFfODY2LCAoYmZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjYsIF9fcDNfODY2KSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9iZjE2KF9fcmV2Ml84NjYsIF9fcDNfODY2KSwgX19ub3N3YXBfdmdldF9sYW5lX2JmMTYoX19yZXYyXzg2NiwgX19wM184NjYpLCBfX25vc3dhcF92Z2V0X2xhbmVfYmYxNihfX3JldjJfODY2LCBfX3AzXzg2Nil9KTsgXAogIF9fcmV0Xzg2NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg2NiwgX19yZXRfODY2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg2NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZiZm1sYWx0cV9sYW5lcV9mMzIoX19wMF84NjcsIF9fcDFfODY3LCBfX3AyXzg2NywgX19wM184NjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODY3ID0gX19wMF84Njc7IFwKICBiZmxvYXQxNng4X3QgX19zMV84NjcgPSBfX3AxXzg2NzsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzg2NyA9IF9fcDJfODY3OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY3OyBcCiAgX19yZXRfODY3ID0gdmJmbWxhbHRxX2YzMihfX3MwXzg2NywgX19zMV84NjcsIChiZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2NyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2NywgX19wM184NjcpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2NyksIHZnZXRxX2xhbmVfYmYxNihfX3MyXzg2NywgX19wM184NjcpLCB2Z2V0cV9sYW5lX2JmMTYoX19zMl84NjcsIF9fcDNfODY3KSwgdmdldHFfbGFuZV9iZjE2KF9fczJfODY3LCBfX3AzXzg2Nyl9KTsgXAogIF9fcmV0Xzg2NzsgXAp9KQojZWxzZQojZGVmaW5lIHZiZm1sYWx0cV9sYW5lcV9mMzIoX19wMF84NjgsIF9fcDFfODY4LCBfX3AyXzg2OCwgX19wM184NjgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODY4ID0gX19wMF84Njg7IFwKICBiZmxvYXQxNng4X3QgX19zMV84NjggPSBfX3AxXzg2ODsgXAogIGJmbG9hdDE2eDhfdCBfX3MyXzg2OCA9IF9fcDJfODY4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg2ODsgIF9fcmV2MF84NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg2OCwgX19zMF84NjgsIDMsIDIsIDEsIDApOyBcCiAgYmZsb2F0MTZ4OF90IF9fcmV2MV84Njg7ICBfX3JldjFfODY4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NjgsIF9fczFfODY4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGJmbG9hdDE2eDhfdCBfX3JldjJfODY4OyAgX19yZXYyXzg2OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODY4LCBfX3MyXzg2OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84Njg7IFwKICBfX3JldF84NjggPSBfX25vc3dhcF92YmZtbGFsdHFfZjMyKF9fcmV2MF84NjgsIF9fcmV2MV84NjgsIChiZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2JmMTYoX19yZXYyXzg2OCwgX19wM184NjgpfSk7IFwKICBfX3JldF84NjggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NjgsIF9fcmV0Xzg2OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84Njg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9oaWdoX2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2YzMl9iZjE2KHZnZXRfaGlnaF9iZjE2KF9fcDApKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBmbG9hdDMyeDRfdCB2Y3Z0cV9oaWdoX2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgYmZsb2F0MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGZsb2F0MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmN2dF9mMzJfYmYxNihfX25vc3dhcF92Z2V0X2hpZ2hfYmYxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgZmxvYXQzMng0X3QgdmN2dHFfbG93X2YzMl9iZjE2KGJmbG9hdDE2eDhfdCBfX3AwKSB7CiAgZmxvYXQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2Y3Z0X2YzMl9iZjE2KHZnZXRfbG93X2JmMTYoX19wMCkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGZsb2F0MzJ4NF90IHZjdnRxX2xvd19mMzJfYmYxNihiZmxvYXQxNng4X3QgX19wMCkgewogIGJmbG9hdDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBmbG9hdDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZjdnRfZjMyX2JmMTYoX19ub3N3YXBfdmdldF9sb3dfYmYxNihfX3JldjApKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfRlAxNl9GTUwpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxhbHFfbGFuZV9oaWdoX2YxNihfX3AwXzg2OSwgX19wMV84NjksIF9fcDJfODY5LCBfX3AzXzg2OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NjkgPSBfX3AwXzg2OTsgXAogIGZsb2F0MTZ4OF90IF9fczFfODY5ID0gX19wMV84Njk7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg2OSA9IF9fcDJfODY5OyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODY5OyBcCiAgX19yZXRfODY5ID0gdmZtbGFscV9oaWdoX2YxNihfX3MwXzg2OSwgX19zMV84NjksIChmbG9hdDE2eDhfdCkge3ZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODY5LCBfX3AzXzg2OSksIHZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODY5LCBfX3AzXzg2OSksIHZnZXRfbGFuZV9mMTYoX19zMl84NjksIF9fcDNfODY5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg2OSwgX19wM184NjkpfSk7IFwKICBfX3JldF84Njk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVfaGlnaF9mMTYoX19wMF84NzAsIF9fcDFfODcwLCBfX3AyXzg3MCwgX19wM184NzApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODcwID0gX19wMF84NzA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg3MCA9IF9fcDFfODcwOyBcCiAgZmxvYXQxNng0X3QgX19zMl84NzAgPSBfX3AyXzg3MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84NzA7ICBfX3JldjBfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84NzAsIF9fczBfODcwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84NzA7ICBfX3JldjFfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84NzAsIF9fczFfODcwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml84NzA7ICBfX3JldjJfODcwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84NzAsIF9fczJfODcwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg3MDsgXAogIF9fcmV0Xzg3MCA9IF9fbm9zd2FwX3ZmbWxhbHFfaGlnaF9mMTYoX19yZXYwXzg3MCwgX19yZXYxXzg3MCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzAsIF9fcDNfODcwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzAsIF9fcDNfODcwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcwLCBfX3AzXzg3MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MCwgX19wM184NzApfSk7IFwKICBfX3JldF84NzAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzAsIF9fcmV0Xzg3MCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NzA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZV9oaWdoX2YxNihfX3AwXzg3MSwgX19wMV84NzEsIF9fcDJfODcxLCBfX3AzXzg3MSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzEgPSBfX3AwXzg3MTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODcxID0gX19wMV84NzE7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MSA9IF9fcDJfODcxOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODcxOyBcCiAgX19yZXRfODcxID0gdmZtbGFsX2hpZ2hfZjE2KF9fczBfODcxLCBfX3MxXzg3MSwgKGZsb2F0MTZ4NF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg3MSwgX19wM184NzEpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODcxLCBfX3AzXzg3MSksIHZnZXRfbGFuZV9mMTYoX19zMl84NzEsIF9fcDNfODcxKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MSwgX19wM184NzEpfSk7IFwKICBfX3JldF84NzE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxfbGFuZV9oaWdoX2YxNihfX3AwXzg3MiwgX19wMV84NzIsIF9fcDJfODcyLCBfX3AzXzg3MikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzIgPSBfX3AwXzg3MjsgXAogIGZsb2F0MTZ4NF90IF9fczFfODcyID0gX19wMV84NzI7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MiA9IF9fcDJfODcyOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg3MjsgIF9fcmV2MF84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3MiwgX19zMF84NzIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg3MjsgIF9fcmV2MV84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg3MiwgX19zMV84NzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg3MjsgIF9fcmV2Ml84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg3MiwgX19zMl84NzIsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODcyOyBcCiAgX19yZXRfODcyID0gX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KF9fcmV2MF84NzIsIF9fcmV2MV84NzIsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MiwgX19wM184NzIpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzIsIF9fcDNfODcyKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODcyLCBfX3AzXzg3MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3MiwgX19wM184NzIpfSk7IFwKICBfX3JldF84NzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzIsIF9fcmV0Xzg3MiwgMSwgMCk7IFwKICBfX3JldF84NzI7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxxX2xhbmVfbG93X2YxNihfX3AwXzg3MywgX19wMV84NzMsIF9fcDJfODczLCBfX3AzXzg3MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84NzMgPSBfX3AwXzg3MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfODczID0gX19wMV84NzM7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3MyA9IF9fcDJfODczOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODczOyBcCiAgX19yZXRfODczID0gdmZtbGFscV9sb3dfZjE2KF9fczBfODczLCBfX3MxXzg3MywgKGZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3MyksIHZnZXRfbGFuZV9mMTYoX19zMl84NzMsIF9fcDNfODczKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3MyksIHZnZXRfbGFuZV9mMTYoX19zMl84NzMsIF9fcDNfODczKSwgdmdldF9sYW5lX2YxNihfX3MyXzg3MywgX19wM184NzMpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODczLCBfX3AzXzg3Myl9KTsgXAogIF9fcmV0Xzg3MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxhbHFfbGFuZV9sb3dfZjE2KF9fcDBfODc0LCBfX3AxXzg3NCwgX19wMl84NzQsIF9fcDNfODc0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg3NCA9IF9fcDBfODc0OyBcCiAgZmxvYXQxNng4X3QgX19zMV84NzQgPSBfX3AxXzg3NDsgXAogIGZsb2F0MTZ4NF90IF9fczJfODc0ID0gX19wMl84NzQ7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc0OyAgX19yZXYwXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODc0LCBfX3MwXzg3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfODc0OyAgX19yZXYxXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODc0LCBfX3MxXzg3NCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODc0OyAgX19yZXYyXzg3NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODc0LCBfX3MyXzg3NCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84NzQ7IFwKICBfX3JldF84NzQgPSBfX25vc3dhcF92Zm1sYWxxX2xvd19mMTYoX19yZXYwXzg3NCwgX19yZXYxXzg3NCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzQsIF9fcDNfODc0KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzQsIF9fcDNfODc0KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc0LCBfX3AzXzg3NCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NCwgX19wM184NzQpfSk7IFwKICBfX3JldF84NzQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzQsIF9fcmV0Xzg3NCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84NzQ7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZV9sb3dfZjE2KF9fcDBfODc1LCBfX3AxXzg3NSwgX19wMl84NzUsIF9fcDNfODc1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg3NSA9IF9fcDBfODc1OyBcCiAgZmxvYXQxNng0X3QgX19zMV84NzUgPSBfX3AxXzg3NTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODc1ID0gX19wMl84NzU7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84NzU7IFwKICBfX3JldF84NzUgPSB2Zm1sYWxfbG93X2YxNihfX3MwXzg3NSwgX19zMV84NzUsIChmbG9hdDE2eDRfdCkge3ZnZXRfbGFuZV9mMTYoX19zMl84NzUsIF9fcDNfODc1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg3NSwgX19wM184NzUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODc1LCBfX3AzXzg3NSksIHZnZXRfbGFuZV9mMTYoX19zMl84NzUsIF9fcDNfODc1KX0pOyBcCiAgX19yZXRfODc1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbGFsX2xhbmVfbG93X2YxNihfX3AwXzg3NiwgX19wMV84NzYsIF9fcDJfODc2LCBfX3AzXzg3NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84NzYgPSBfX3AwXzg3NjsgXAogIGZsb2F0MTZ4NF90IF9fczFfODc2ID0gX19wMV84NzY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg3NiA9IF9fcDJfODc2OyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg3NjsgIF9fcmV2MF84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg3NiwgX19zMF84NzYsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg3NjsgIF9fcmV2MV84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg3NiwgX19zMV84NzYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg3NjsgIF9fcmV2Ml84NzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg3NiwgX19zMl84NzYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODc2OyBcCiAgX19yZXRfODc2ID0gX19ub3N3YXBfdmZtbGFsX2xvd19mMTYoX19yZXYwXzg3NiwgX19yZXYxXzg3NiwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc2LCBfX3AzXzg3NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg3NiwgX19wM184NzYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84NzYsIF9fcDNfODc2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODc2LCBfX3AzXzg3Nil9KTsgXAogIF9fcmV0Xzg3NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg3NiwgX19yZXRfODc2LCAxLCAwKTsgXAogIF9fcmV0Xzg3NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxhbHFfbGFuZXFfaGlnaF9mMTYoX19wMF84NzcsIF9fcDFfODc3LCBfX3AyXzg3NywgX19wM184NzcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODc3ID0gX19wMF84Nzc7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg3NyA9IF9fcDFfODc3OyBcCiAgZmxvYXQxNng4X3QgX19zMl84NzcgPSBfX3AyXzg3NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg3NzsgXAogIF9fcmV0Xzg3NyA9IHZmbWxhbHFfaGlnaF9mMTYoX19zMF84NzcsIF9fczFfODc3LCAoZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg3NywgX19wM184NzcpfSk7IFwKICBfX3JldF84Nzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVxX2hpZ2hfZjE2KF9fcDBfODc4LCBfX3AxXzg3OCwgX19wMl84NzgsIF9fcDNfODc4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg3OCA9IF9fcDBfODc4OyBcCiAgZmxvYXQxNng4X3QgX19zMV84NzggPSBfX3AxXzg3ODsgXAogIGZsb2F0MTZ4OF90IF9fczJfODc4ID0gX19wMl84Nzg7IFwKICBmbG9hdDMyeDRfdCBfX3JldjBfODc4OyAgX19yZXYwXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODc4LCBfX3MwXzg3OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjFfODc4OyAgX19yZXYxXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODc4LCBfX3MxXzg3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfODc4OyAgX19yZXYyXzg3OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODc4LCBfX3MyXzg3OCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84Nzg7IFwKICBfX3JldF84NzggPSBfX25vc3dhcF92Zm1sYWxxX2hpZ2hfZjE2KF9fcmV2MF84NzgsIF9fcmV2MV84NzgsIChmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODc4LCBfX3AzXzg3OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODc4LCBfX3AzXzg3OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84NzgsIF9fcDNfODc4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg3OCwgX19wM184NzgpfSk7IFwKICBfX3JldF84NzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84NzgsIF9fcmV0Xzg3OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84Nzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sYWxfbGFuZXFfaGlnaF9mMTYoX19wMF84NzksIF9fcDFfODc5LCBfX3AyXzg3OSwgX19wM184NzkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODc5ID0gX19wMF84Nzk7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg3OSA9IF9fcDFfODc5OyBcCiAgZmxvYXQxNng4X3QgX19zMl84NzkgPSBfX3AyXzg3OTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg3OTsgXAogIF9fcmV0Xzg3OSA9IHZmbWxhbF9oaWdoX2YxNihfX3MwXzg3OSwgX19zMV84NzksIChmbG9hdDE2eDRfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSksIHZnZXRxX2xhbmVfZjE2KF9fczJfODc5LCBfX3AzXzg3OSl9KTsgXAogIF9fcmV0Xzg3OTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxhbF9sYW5lcV9oaWdoX2YxNihfX3AwXzg4MCwgX19wMV84ODAsIF9fcDJfODgwLCBfX3AzXzg4MCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84ODAgPSBfX3AwXzg4MDsgXAogIGZsb2F0MTZ4NF90IF9fczFfODgwID0gX19wMV84ODA7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg4MCA9IF9fcDJfODgwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzg4MDsgIF9fcmV2MF84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg4MCwgX19zMF84ODAsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzg4MDsgIF9fcmV2MV84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg4MCwgX19zMV84ODAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzg4MDsgIF9fcmV2Ml84ODAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg4MCwgX19zMl84ODAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODgwOyBcCiAgX19yZXRfODgwID0gX19ub3N3YXBfdmZtbGFsX2hpZ2hfZjE2KF9fcmV2MF84ODAsIF9fcmV2MV84ODAsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODAsIF9fcDNfODgwKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MCwgX19wM184ODApLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgwLCBfX3AzXzg4MCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODAsIF9fcDNfODgwKX0pOyBcCiAgX19yZXRfODgwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODgwLCBfX3JldF84ODAsIDEsIDApOyBcCiAgX19yZXRfODgwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbGFscV9sYW5lcV9sb3dfZjE2KF9fcDBfODgxLCBfX3AxXzg4MSwgX19wMl84ODEsIF9fcDNfODgxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4MSA9IF9fcDBfODgxOyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODEgPSBfX3AxXzg4MTsgXAogIGZsb2F0MTZ4OF90IF9fczJfODgxID0gX19wMl84ODE7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODE7IFwKICBfX3JldF84ODEgPSB2Zm1sYWxxX2xvd19mMTYoX19zMF84ODEsIF9fczFfODgxLCAoZmxvYXQxNng4X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg4MSwgX19wM184ODEpfSk7IFwKICBfX3JldF84ODE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sYWxxX2xhbmVxX2xvd19mMTYoX19wMF84ODIsIF9fcDFfODgyLCBfX3AyXzg4MiwgX19wM184ODIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODgyID0gX19wMF84ODI7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg4MiA9IF9fcDFfODgyOyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODIgPSBfX3AyXzg4MjsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84ODI7ICBfX3JldjBfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84ODIsIF9fczBfODgyLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84ODI7ICBfX3JldjFfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84ODIsIF9fczFfODgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84ODI7ICBfX3JldjJfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84ODIsIF9fczJfODgyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg4MjsgXAogIF9fcmV0Xzg4MiA9IF9fbm9zd2FwX3ZmbWxhbHFfbG93X2YxNihfX3JldjBfODgyLCBfX3JldjFfODgyLCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MiwgX19wM184ODIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4MiwgX19wM184ODIpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODgyLCBfX3AzXzg4MiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODIsIF9fcDNfODgyKX0pOyBcCiAgX19yZXRfODgyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODgyLCBfX3JldF84ODIsIDMsIDIsIDEsIDApOyBcCiAgX19yZXRfODgyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbGFsX2xhbmVxX2xvd19mMTYoX19wMF84ODMsIF9fcDFfODgzLCBfX3AyXzg4MywgX19wM184ODMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODgzID0gX19wMF84ODM7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg4MyA9IF9fcDFfODgzOyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODMgPSBfX3AyXzg4MzsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg4MzsgXAogIF9fcmV0Xzg4MyA9IHZmbWxhbF9sb3dfZjE2KF9fczBfODgzLCBfX3MxXzg4MywgKGZsb2F0MTZ4NF90KSB7dmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKSwgdmdldHFfbGFuZV9mMTYoX19zMl84ODMsIF9fcDNfODgzKX0pOyBcCiAgX19yZXRfODgzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbGFsX2xhbmVxX2xvd19mMTYoX19wMF84ODQsIF9fcDFfODg0LCBfX3AyXzg4NCwgX19wM184ODQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODg0ID0gX19wMF84ODQ7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg4NCA9IF9fcDFfODg0OyBcCiAgZmxvYXQxNng4X3QgX19zMl84ODQgPSBfX3AyXzg4NDsgXAogIGZsb2F0MzJ4Ml90IF9fcmV2MF84ODQ7ICBfX3JldjBfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84ODQsIF9fczBfODg0LCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2MV84ODQ7ICBfX3JldjFfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84ODQsIF9fczFfODg0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84ODQ7ICBfX3JldjJfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84ODQsIF9fczJfODg0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg4NDsgXAogIF9fcmV0Xzg4NCA9IF9fbm9zd2FwX3ZmbWxhbF9sb3dfZjE2KF9fcmV2MF84ODQsIF9fcmV2MV84ODQsIChmbG9hdDE2eDRfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODQsIF9fcDNfODg0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg4NCwgX19wM184ODQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODg0LCBfX3AzXzg4NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84ODQsIF9fcDNfODg0KX0pOyBcCiAgX19yZXRfODg0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODg0LCBfX3JldF84ODQsIDEsIDApOyBcCiAgX19yZXRfODg0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbHNscV9sYW5lX2hpZ2hfZjE2KF9fcDBfODg1LCBfX3AxXzg4NSwgX19wMl84ODUsIF9fcDNfODg1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4NSA9IF9fcDBfODg1OyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODUgPSBfX3AxXzg4NTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg1ID0gX19wMl84ODU7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODU7IFwKICBfX3JldF84ODUgPSB2Zm1sc2xxX2hpZ2hfZjE2KF9fczBfODg1LCBfX3MxXzg4NSwgKGZsb2F0MTZ4OF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODUsIF9fcDNfODg1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODUsIF9fcDNfODg1KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NSwgX19wM184ODUpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg1LCBfX3AzXzg4NSl9KTsgXAogIF9fcmV0Xzg4NTsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZV9oaWdoX2YxNihfX3AwXzg4NiwgX19wMV84ODYsIF9fcDJfODg2LCBfX3AzXzg4NikgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84ODYgPSBfX3AwXzg4NjsgXAogIGZsb2F0MTZ4OF90IF9fczFfODg2ID0gX19wMV84ODY7IFwKICBmbG9hdDE2eDRfdCBfX3MyXzg4NiA9IF9fcDJfODg2OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg4NjsgIF9fcmV2MF84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg4NiwgX19zMF84ODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzg4NjsgIF9fcmV2MV84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg4NiwgX19zMV84ODYsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYyXzg4NjsgIF9fcmV2Ml84ODYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg4NiwgX19zMl84ODYsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODg2OyBcCiAgX19yZXRfODg2ID0gX19ub3N3YXBfdmZtbHNscV9oaWdoX2YxNihfX3JldjBfODg2LCBfX3JldjFfODg2LCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4NiwgX19wM184ODYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4NiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4NiwgX19wM184ODYpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODYsIF9fcDNfODg2KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg2LCBfX3AzXzg4Nil9KTsgXAogIF9fcmV0Xzg4NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg4NiwgX19yZXRfODg2LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg4NjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lX2hpZ2hfZjE2KF9fcDBfODg3LCBfX3AxXzg4NywgX19wMl84ODcsIF9fcDNfODg3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg4NyA9IF9fcDBfODg3OyBcCiAgZmxvYXQxNng0X3QgX19zMV84ODcgPSBfX3AxXzg4NzsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg3ID0gX19wMl84ODc7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84ODc7IFwKICBfX3JldF84ODcgPSB2Zm1sc2xfaGlnaF9mMTYoX19zMF84ODcsIF9fczFfODg3LCAoZmxvYXQxNng0X3QpIHt2Z2V0X2xhbmVfZjE2KF9fczJfODg3LCBfX3AzXzg4NyksIHZnZXRfbGFuZV9mMTYoX19zMl84ODcsIF9fcDNfODg3KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4NywgX19wM184ODcpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg3LCBfX3AzXzg4Nyl9KTsgXAogIF9fcmV0Xzg4NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbF9sYW5lX2hpZ2hfZjE2KF9fcDBfODg4LCBfX3AxXzg4OCwgX19wMl84ODgsIF9fcDNfODg4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg4OCA9IF9fcDBfODg4OyBcCiAgZmxvYXQxNng0X3QgX19zMV84ODggPSBfX3AxXzg4ODsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg4ID0gX19wMl84ODg7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODg4OyAgX19yZXYwXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODg4LCBfX3MwXzg4OCwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODg4OyAgX19yZXYxXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODg4LCBfX3MxXzg4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODg4OyAgX19yZXYyXzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODg4LCBfX3MyXzg4OCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84ODg7IFwKICBfX3JldF84ODggPSBfX25vc3dhcF92Zm1sc2xfaGlnaF9mMTYoX19yZXYwXzg4OCwgX19yZXYxXzg4OCwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg4LCBfX3AzXzg4OCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg4OCwgX19wM184ODgpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84ODgsIF9fcDNfODg4KSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODg4LCBfX3AzXzg4OCl9KTsgXAogIF9fcmV0Xzg4OCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg4OCwgX19yZXRfODg4LCAxLCAwKTsgXAogIF9fcmV0Xzg4ODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbHFfbGFuZV9sb3dfZjE2KF9fcDBfODg5LCBfX3AxXzg4OSwgX19wMl84ODksIF9fcDNfODg5KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDRfdCBfX3MwXzg4OSA9IF9fcDBfODg5OyBcCiAgZmxvYXQxNng4X3QgX19zMV84ODkgPSBfX3AxXzg4OTsgXAogIGZsb2F0MTZ4NF90IF9fczJfODg5ID0gX19wMl84ODk7IFwKICBmbG9hdDMyeDRfdCBfX3JldF84ODk7IFwKICBfX3JldF84ODkgPSB2Zm1sc2xxX2xvd19mMTYoX19zMF84ODksIF9fczFfODg5LCAoZmxvYXQxNng4X3QpIHt2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4OSwgX19wM184ODkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KSwgdmdldF9sYW5lX2YxNihfX3MyXzg4OSwgX19wM184ODkpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODg5LCBfX3AzXzg4OSksIHZnZXRfbGFuZV9mMTYoX19zMl84ODksIF9fcDNfODg5KX0pOyBcCiAgX19yZXRfODg5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbHNscV9sYW5lX2xvd19mMTYoX19wMF84OTAsIF9fcDFfODkwLCBfX3AyXzg5MCwgX19wM184OTApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODkwID0gX19wMF84OTA7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5MCA9IF9fcDFfODkwOyBcCiAgZmxvYXQxNng0X3QgX19zMl84OTAgPSBfX3AyXzg5MDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84OTA7ICBfX3JldjBfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84OTAsIF9fczBfODkwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84OTA7ICBfX3JldjFfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84OTAsIF9fczFfODkwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4NF90IF9fcmV2Ml84OTA7ICBfX3JldjJfODkwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84OTAsIF9fczJfODkwLCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5MDsgXAogIF9fcmV0Xzg5MCA9IF9fbm9zd2FwX3ZmbWxzbHFfbG93X2YxNihfX3JldjBfODkwLCBfX3JldjFfODkwLCAoZmxvYXQxNng4X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MCwgX19wM184OTApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MCwgX19wM184OTApLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTAsIF9fcDNfODkwKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkwLCBfX3AzXzg5MCl9KTsgXAogIF9fcmV0Xzg5MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5MCwgX19yZXRfODkwLCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg5MDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lX2xvd19mMTYoX19wMF84OTEsIF9fcDFfODkxLCBfX3AyXzg5MSwgX19wM184OTEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4Ml90IF9fczBfODkxID0gX19wMF84OTE7IFwKICBmbG9hdDE2eDRfdCBfX3MxXzg5MSA9IF9fcDFfODkxOyBcCiAgZmxvYXQxNng0X3QgX19zMl84OTEgPSBfX3AyXzg5MTsgXAogIGZsb2F0MzJ4Ml90IF9fcmV0Xzg5MTsgXAogIF9fcmV0Xzg5MSA9IHZmbWxzbF9sb3dfZjE2KF9fczBfODkxLCBfX3MxXzg5MSwgKGZsb2F0MTZ4NF90KSB7dmdldF9sYW5lX2YxNihfX3MyXzg5MSwgX19wM184OTEpLCB2Z2V0X2xhbmVfZjE2KF9fczJfODkxLCBfX3AzXzg5MSksIHZnZXRfbGFuZV9mMTYoX19zMl84OTEsIF9fcDNfODkxKSwgdmdldF9sYW5lX2YxNihfX3MyXzg5MSwgX19wM184OTEpfSk7IFwKICBfX3JldF84OTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sc2xfbGFuZV9sb3dfZjE2KF9fcDBfODkyLCBfX3AxXzg5MiwgX19wMl84OTIsIF9fcDNfODkyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg5MiA9IF9fcDBfODkyOyBcCiAgZmxvYXQxNng0X3QgX19zMV84OTIgPSBfX3AxXzg5MjsgXAogIGZsb2F0MTZ4NF90IF9fczJfODkyID0gX19wMl84OTI7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODkyOyAgX19yZXYwXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODkyLCBfX3MwXzg5MiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODkyOyAgX19yZXYxXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODkyLCBfX3MxXzg5MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjJfODkyOyAgX19yZXYyXzg5MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODkyLCBfX3MyXzg5MiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84OTI7IFwKICBfX3JldF84OTIgPSBfX25vc3dhcF92Zm1sc2xfbG93X2YxNihfX3JldjBfODkyLCBfX3JldjFfODkyLCAoZmxvYXQxNng0X3QpIHtfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTIsIF9fcDNfODkyKSwgX19ub3N3YXBfdmdldF9sYW5lX2YxNihfX3JldjJfODkyLCBfX3AzXzg5MiksIF9fbm9zd2FwX3ZnZXRfbGFuZV9mMTYoX19yZXYyXzg5MiwgX19wM184OTIpLCBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2Ml84OTIsIF9fcDNfODkyKX0pOyBcCiAgX19yZXRfODkyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfODkyLCBfX3JldF84OTIsIDEsIDApOyBcCiAgX19yZXRfODkyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmZtbHNscV9sYW5lcV9oaWdoX2YxNihfX3AwXzg5MywgX19wMV84OTMsIF9fcDJfODkzLCBfX3AzXzg5MykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84OTMgPSBfX3AwXzg5MzsgXAogIGZsb2F0MTZ4OF90IF9fczFfODkzID0gX19wMV84OTM7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5MyA9IF9fcDJfODkzOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODkzOyBcCiAgX19yZXRfODkzID0gdmZtbHNscV9oaWdoX2YxNihfX3MwXzg5MywgX19zMV84OTMsIChmbG9hdDE2eDhfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5MyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODkzLCBfX3AzXzg5Myl9KTsgXAogIF9fcmV0Xzg5MzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZXFfaGlnaF9mMTYoX19wMF84OTQsIF9fcDFfODk0LCBfX3AyXzg5NCwgX19wM184OTQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODk0ID0gX19wMF84OTQ7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5NCA9IF9fcDFfODk0OyBcCiAgZmxvYXQxNng4X3QgX19zMl84OTQgPSBfX3AyXzg5NDsgXAogIGZsb2F0MzJ4NF90IF9fcmV2MF84OTQ7ICBfX3JldjBfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF84OTQsIF9fczBfODk0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV84OTQ7ICBfX3JldjFfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV84OTQsIF9fczFfODk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZ4OF90IF9fcmV2Ml84OTQ7ICBfX3JldjJfODk0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl84OTQsIF9fczJfODk0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5NDsgXAogIF9fcmV0Xzg5NCA9IF9fbm9zd2FwX3ZmbWxzbHFfaGlnaF9mMTYoX19yZXYwXzg5NCwgX19yZXYxXzg5NCwgKGZsb2F0MTZ4OF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTQsIF9fcDNfODk0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTQsIF9fcDNfODk0KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NCwgX19wM184OTQpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk0LCBfX3AzXzg5NCl9KTsgXAogIF9fcmV0Xzg5NCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0Xzg5NCwgX19yZXRfODk0LCAzLCAyLCAxLCAwKTsgXAogIF9fcmV0Xzg5NDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZmbWxzbF9sYW5lcV9oaWdoX2YxNihfX3AwXzg5NSwgX19wMV84OTUsIF9fcDJfODk1LCBfX3AzXzg5NSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84OTUgPSBfX3AwXzg5NTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODk1ID0gX19wMV84OTU7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5NSA9IF9fcDJfODk1OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODk1OyBcCiAgX19yZXRfODk1ID0gdmZtbHNsX2hpZ2hfZjE2KF9fczBfODk1LCBfX3MxXzg5NSwgKGZsb2F0MTZ4NF90KSB7dmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KSwgdmdldHFfbGFuZV9mMTYoX19zMl84OTUsIF9fcDNfODk1KX0pOyBcCiAgX19yZXRfODk1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmZtbHNsX2xhbmVxX2hpZ2hfZjE2KF9fcDBfODk2LCBfX3AxXzg5NiwgX19wMl84OTYsIF9fcDNfODk2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDMyeDJfdCBfX3MwXzg5NiA9IF9fcDBfODk2OyBcCiAgZmxvYXQxNng0X3QgX19zMV84OTYgPSBfX3AxXzg5NjsgXAogIGZsb2F0MTZ4OF90IF9fczJfODk2ID0gX19wMl84OTY7IFwKICBmbG9hdDMyeDJfdCBfX3JldjBfODk2OyAgX19yZXYwXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfODk2LCBfX3MwXzg5NiwgMSwgMCk7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfODk2OyAgX19yZXYxXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfODk2LCBfX3MxXzg5NiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2eDhfdCBfX3JldjJfODk2OyAgX19yZXYyXzg5NiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfODk2LCBfX3MyXzg5NiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDMyeDJfdCBfX3JldF84OTY7IFwKICBfX3JldF84OTYgPSBfX25vc3dhcF92Zm1sc2xfaGlnaF9mMTYoX19yZXYwXzg5NiwgX19yZXYxXzg5NiwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NiwgX19wM184OTYpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk2LCBfX3AzXzg5NiksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTYsIF9fcDNfODk2KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5NiwgX19wM184OTYpfSk7IFwKICBfX3JldF84OTYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84OTYsIF9fcmV0Xzg5NiwgMSwgMCk7IFwKICBfX3JldF84OTY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sc2xxX2xhbmVxX2xvd19mMTYoX19wMF84OTcsIF9fcDFfODk3LCBfX3AyXzg5NywgX19wM184OTcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MzJ4NF90IF9fczBfODk3ID0gX19wMF84OTc7IFwKICBmbG9hdDE2eDhfdCBfX3MxXzg5NyA9IF9fcDFfODk3OyBcCiAgZmxvYXQxNng4X3QgX19zMl84OTcgPSBfX3AyXzg5NzsgXAogIGZsb2F0MzJ4NF90IF9fcmV0Xzg5NzsgXAogIF9fcmV0Xzg5NyA9IHZmbWxzbHFfbG93X2YxNihfX3MwXzg5NywgX19zMV84OTcsIChmbG9hdDE2eDhfdCkge3ZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5NyksIHZnZXRxX2xhbmVfZjE2KF9fczJfODk3LCBfX3AzXzg5Nyl9KTsgXAogIF9fcmV0Xzg5NzsgXAp9KQojZWxzZQojZGVmaW5lIHZmbWxzbHFfbGFuZXFfbG93X2YxNihfX3AwXzg5OCwgX19wMV84OTgsIF9fcDJfODk4LCBfX3AzXzg5OCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMng0X3QgX19zMF84OTggPSBfX3AwXzg5ODsgXAogIGZsb2F0MTZ4OF90IF9fczFfODk4ID0gX19wMV84OTg7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5OCA9IF9fcDJfODk4OyBcCiAgZmxvYXQzMng0X3QgX19yZXYwXzg5ODsgIF9fcmV2MF84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzg5OCwgX19zMF84OTgsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYxXzg5ODsgIF9fcmV2MV84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzg5OCwgX19zMV84OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzg5ODsgIF9fcmV2Ml84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzg5OCwgX19zMl84OTgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMng0X3QgX19yZXRfODk4OyBcCiAgX19yZXRfODk4ID0gX19ub3N3YXBfdmZtbHNscV9sb3dfZjE2KF9fcmV2MF84OTgsIF9fcmV2MV84OTgsIChmbG9hdDE2eDhfdCkge19fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk4LCBfX3AzXzg5OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfODk4LCBfX3AzXzg5OCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml84OTgsIF9fcDNfODk4KSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzg5OCwgX19wM184OTgpfSk7IFwKICBfX3JldF84OTggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF84OTgsIF9fcmV0Xzg5OCwgMywgMiwgMSwgMCk7IFwKICBfX3JldF84OTg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Zm1sc2xfbGFuZXFfbG93X2YxNihfX3AwXzg5OSwgX19wMV84OTksIF9fcDJfODk5LCBfX3AzXzg5OSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF84OTkgPSBfX3AwXzg5OTsgXAogIGZsb2F0MTZ4NF90IF9fczFfODk5ID0gX19wMV84OTk7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzg5OSA9IF9fcDJfODk5OyBcCiAgZmxvYXQzMngyX3QgX19yZXRfODk5OyBcCiAgX19yZXRfODk5ID0gdmZtbHNsX2xvd19mMTYoX19zMF84OTksIF9fczFfODk5LCAoZmxvYXQxNng0X3QpIHt2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpLCB2Z2V0cV9sYW5lX2YxNihfX3MyXzg5OSwgX19wM184OTkpfSk7IFwKICBfX3JldF84OTk7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Zm1sc2xfbGFuZXFfbG93X2YxNihfX3AwXzkwMCwgX19wMV85MDAsIF9fcDJfOTAwLCBfX3AzXzkwMCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQzMngyX3QgX19zMF85MDAgPSBfX3AwXzkwMDsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAwID0gX19wMV85MDA7IFwKICBmbG9hdDE2eDhfdCBfX3MyXzkwMCA9IF9fcDJfOTAwOyBcCiAgZmxvYXQzMngyX3QgX19yZXYwXzkwMDsgIF9fcmV2MF85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkwMCwgX19zMF85MDAsIDEsIDApOyBcCiAgZmxvYXQxNng0X3QgX19yZXYxXzkwMDsgIF9fcmV2MV85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzkwMCwgX19zMV85MDAsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQxNng4X3QgX19yZXYyXzkwMDsgIF9fcmV2Ml85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkwMCwgX19zMl85MDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgZmxvYXQzMngyX3QgX19yZXRfOTAwOyBcCiAgX19yZXRfOTAwID0gX19ub3N3YXBfdmZtbHNsX2xvd19mMTYoX19yZXYwXzkwMCwgX19yZXYxXzkwMCwgKGZsb2F0MTZ4NF90KSB7X19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzkwMCwgX19wM185MDApLCBfX25vc3dhcF92Z2V0cV9sYW5lX2YxNihfX3JldjJfOTAwLCBfX3AzXzkwMCksIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2Ml85MDAsIF9fcDNfOTAwKSwgX19ub3N3YXBfdmdldHFfbGFuZV9mMTYoX19yZXYyXzkwMCwgX19wM185MDApfSk7IFwKICBfX3JldF85MDAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MDAsIF9fcmV0XzkwMCwgMSwgMCk7IFwKICBfX3JldF85MDA7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmIGRlZmluZWQoX19BUk1fRkVBVFVSRV9GUDE2X1ZFQ1RPUl9BUklUSE1FVElDKSAmJiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2bXVsaF9sYW5lX2YxNihfX3AwXzkwMSwgX19wMV85MDEsIF9fcDJfOTAxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDEgPSBfX3AwXzkwMTsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAxID0gX19wMV85MDE7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAxOyBcCiAgX19yZXRfOTAxID0gX19zMF85MDEgKiB2Z2V0X2xhbmVfZjE2KF9fczFfOTAxLCBfX3AyXzkwMSk7IFwKICBfX3JldF85MDE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2bXVsaF9sYW5lX2YxNihfX3AwXzkwMiwgX19wMV85MDIsIF9fcDJfOTAyKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDIgPSBfX3AwXzkwMjsgXAogIGZsb2F0MTZ4NF90IF9fczFfOTAyID0gX19wMV85MDI7IFwKICBmbG9hdDE2eDRfdCBfX3JldjFfOTAyOyAgX19yZXYxXzkwMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTAyLCBfX3MxXzkwMiwgMywgMiwgMSwgMCk7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAyOyBcCiAgX19yZXRfOTAyID0gX19zMF85MDIgKiBfX25vc3dhcF92Z2V0X2xhbmVfZjE2KF9fcmV2MV85MDIsIF9fcDJfOTAyKTsgXAogIF9fcmV0XzkwMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZtdWxoX2xhbmVxX2YxNihfX3AwXzkwMywgX19wMV85MDMsIF9fcDJfOTAzKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDE2X3QgX19zMF85MDMgPSBfX3AwXzkwMzsgXAogIGZsb2F0MTZ4OF90IF9fczFfOTAzID0gX19wMV85MDM7IFwKICBmbG9hdDE2X3QgX19yZXRfOTAzOyBcCiAgX19yZXRfOTAzID0gX19zMF85MDMgKiB2Z2V0cV9sYW5lX2YxNihfX3MxXzkwMywgX19wMl85MDMpOyBcCiAgX19yZXRfOTAzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bGhfbGFuZXFfZjE2KF9fcDBfOTA0LCBfX3AxXzkwNCwgX19wMl85MDQpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0MTZfdCBfX3MwXzkwNCA9IF9fcDBfOTA0OyBcCiAgZmxvYXQxNng4X3QgX19zMV85MDQgPSBfX3AxXzkwNDsgXAogIGZsb2F0MTZ4OF90IF9fcmV2MV85MDQ7ICBfX3JldjFfOTA0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV85MDQsIF9fczFfOTA0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGZsb2F0MTZfdCBfX3JldF85MDQ7IFwKICBfX3JldF85MDQgPSBfX3MwXzkwNCAqIF9fbm9zd2FwX3ZnZXRxX2xhbmVfZjE2KF9fcmV2MV85MDQsIF9fcDJfOTA0KTsgXAogIF9fcmV0XzkwNDsgXAp9KQojZW5kaWYKCiNlbmRpZgojaWYgZGVmaW5lZChfX0FSTV9GRUFUVVJFX01BVE1VTF9JTlQ4KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Vkb3RxX2xhbmVfczMyKF9fcDBfOTA1LCBfX3AxXzkwNSwgX19wMl85MDUsIF9fcDNfOTA1KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF85MDUgPSBfX3AwXzkwNTsgXAogIGludDh4MTZfdCBfX3MxXzkwNSA9IF9fcDFfOTA1OyBcCiAgdWludDh4OF90IF9fczJfOTA1ID0gX19wMl85MDU7IFwKICBpbnQzMng0X3QgX19yZXRfOTA1OyBcCnVpbnQ4eDhfdCBfX3JlaW50XzkwNSA9IF9fczJfOTA1OyBcCiAgX19yZXRfOTA1ID0gdnVzZG90cV9zMzIoX19zMF85MDUsICh1aW50OHgxNl90KShzcGxhdHFfbGFuZV9zMzIoKihpbnQzMngyX3QgKikgJl9fcmVpbnRfOTA1LCBfX3AzXzkwNSkpLCBfX3MxXzkwNSk7IFwKICBfX3JldF85MDU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2c3Vkb3RxX2xhbmVfczMyKF9fcDBfOTA2LCBfX3AxXzkwNiwgX19wMl85MDYsIF9fcDNfOTA2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMng0X3QgX19zMF85MDYgPSBfX3AwXzkwNjsgXAogIGludDh4MTZfdCBfX3MxXzkwNiA9IF9fcDFfOTA2OyBcCiAgdWludDh4OF90IF9fczJfOTA2ID0gX19wMl85MDY7IFwKICBpbnQzMng0X3QgX19yZXYwXzkwNjsgIF9fcmV2MF85MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkwNiwgX19zMF85MDYsIDMsIDIsIDEsIDApOyBcCiAgaW50OHgxNl90IF9fcmV2MV85MDY7ICBfX3JldjFfOTA2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMV85MDYsIF9fczFfOTA2LCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIHVpbnQ4eDhfdCBfX3JldjJfOTA2OyAgX19yZXYyXzkwNiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTA2LCBfX3MyXzkwNiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMng0X3QgX19yZXRfOTA2OyBcCnVpbnQ4eDhfdCBfX3JlaW50XzkwNiA9IF9fcmV2Ml85MDY7IFwKICBfX3JldF85MDYgPSBfX25vc3dhcF92dXNkb3RxX3MzMihfX3JldjBfOTA2LCAodWludDh4MTZfdCkoX19ub3N3YXBfc3BsYXRxX2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzkwNiwgX19wM185MDYpKSwgX19yZXYxXzkwNik7IFwKICBfX3JldF85MDYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MDYsIF9fcmV0XzkwNiwgMywgMiwgMSwgMCk7IFwKICBfX3JldF85MDY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2c3Vkb3RfbGFuZV9zMzIoX19wMF85MDcsIF9fcDFfOTA3LCBfX3AyXzkwNywgX19wM185MDcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyeDJfdCBfX3MwXzkwNyA9IF9fcDBfOTA3OyBcCiAgaW50OHg4X3QgX19zMV85MDcgPSBfX3AxXzkwNzsgXAogIHVpbnQ4eDhfdCBfX3MyXzkwNyA9IF9fcDJfOTA3OyBcCiAgaW50MzJ4Ml90IF9fcmV0XzkwNzsgXAp1aW50OHg4X3QgX19yZWludF85MDcgPSBfX3MyXzkwNzsgXAogIF9fcmV0XzkwNyA9IHZ1c2RvdF9zMzIoX19zMF85MDcsICh1aW50OHg4X3QpKHNwbGF0X2xhbmVfczMyKCooaW50MzJ4Ml90ICopICZfX3JlaW50XzkwNywgX19wM185MDcpKSwgX19zMV85MDcpOyBcCiAgX19yZXRfOTA3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnN1ZG90X2xhbmVfczMyKF9fcDBfOTA4LCBfX3AxXzkwOCwgX19wMl85MDgsIF9fcDNfOTA4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMngyX3QgX19zMF85MDggPSBfX3AwXzkwODsgXAogIGludDh4OF90IF9fczFfOTA4ID0gX19wMV85MDg7IFwKICB1aW50OHg4X3QgX19zMl85MDggPSBfX3AyXzkwODsgXAogIGludDMyeDJfdCBfX3JldjBfOTA4OyAgX19yZXYwXzkwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTA4LCBfX3MwXzkwOCwgMSwgMCk7IFwKICBpbnQ4eDhfdCBfX3JldjFfOTA4OyAgX19yZXYxXzkwOCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczFfOTA4LCBfX3MxXzkwOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICB1aW50OHg4X3QgX19yZXYyXzkwODsgIF9fcmV2Ml85MDggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkwOCwgX19zMl85MDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJ4Ml90IF9fcmV0XzkwODsgXAp1aW50OHg4X3QgX19yZWludF85MDggPSBfX3JldjJfOTA4OyBcCiAgX19yZXRfOTA4ID0gX19ub3N3YXBfdnVzZG90X3MzMihfX3JldjBfOTA4LCAodWludDh4OF90KShfX25vc3dhcF9zcGxhdF9sYW5lX3MzMigqKGludDMyeDJfdCAqKSAmX19yZWludF85MDgsIF9fcDNfOTA4KSksIF9fcmV2MV85MDgpOyBcCiAgX19yZXRfOTA4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTA4LCBfX3JldF85MDgsIDEsIDApOyBcCiAgX19yZXRfOTA4OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fQVJNX0ZFQVRVUkVfUVJETVgpICYmIGRlZmluZWQoX19hYXJjaDY0X18pCl9fYWkgaW50MzJfdCB2cXJkbWxhaHNfczMyKGludDMyX3QgX19wMCwgaW50MzJfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQzMl90IF9fcmV0OwogIF9fcmV0ID0gdnFhZGRzX3MzMihfX3AwLCB2cXJkbXVsaHNfczMyKF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNl90IHZxcmRtbGFoaF9zMTYoaW50MTZfdCBfX3AwLCBpbnQxNl90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDE2X3QgX19yZXQ7CiAgX19yZXQgPSB2cWFkZGhfczE2KF9fcDAsIHZxcmRtdWxoaF9zMTYoX19wMSwgX19wMikpOwogIHJldHVybiBfX3JldDsKfQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxhaHNfbGFuZV9zMzIoX19wMF85MDksIF9fcDFfOTA5LCBfX3AyXzkwOSwgX19wM185MDkpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MDkgPSBfX3AwXzkwOTsgXAogIGludDMyX3QgX19zMV85MDkgPSBfX3AxXzkwOTsgXAogIGludDMyeDJfdCBfX3MyXzkwOSA9IF9fcDJfOTA5OyBcCiAgaW50MzJfdCBfX3JldF85MDk7IFwKICBfX3JldF85MDkgPSB2cWFkZHNfczMyKF9fczBfOTA5LCB2cXJkbXVsaHNfczMyKF9fczFfOTA5LCB2Z2V0X2xhbmVfczMyKF9fczJfOTA5LCBfX3AzXzkwOSkpKTsgXAogIF9fcmV0XzkwOTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoc19sYW5lX3MzMihfX3AwXzkxMCwgX19wMV85MTAsIF9fcDJfOTEwLCBfX3AzXzkxMCkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzkxMCA9IF9fcDBfOTEwOyBcCiAgaW50MzJfdCBfX3MxXzkxMCA9IF9fcDFfOTEwOyBcCiAgaW50MzJ4Ml90IF9fczJfOTEwID0gX19wMl85MTA7IFwKICBpbnQzMngyX3QgX19yZXYyXzkxMDsgIF9fcmV2Ml85MTAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkxMCwgX19zMl85MTAsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF85MTA7IFwKICBfX3JldF85MTAgPSB2cWFkZHNfczMyKF9fczBfOTEwLCB2cXJkbXVsaHNfczMyKF9fczFfOTEwLCBfX25vc3dhcF92Z2V0X2xhbmVfczMyKF9fcmV2Ml85MTAsIF9fcDNfOTEwKSkpOyBcCiAgX19yZXRfOTEwOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhoX2xhbmVfczE2KF9fcDBfOTExLCBfX3AxXzkxMSwgX19wMl85MTEsIF9fcDNfOTExKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTExID0gX19wMF85MTE7IFwKICBpbnQxNl90IF9fczFfOTExID0gX19wMV85MTE7IFwKICBpbnQxNng0X3QgX19zMl85MTEgPSBfX3AyXzkxMTsgXAogIGludDE2X3QgX19yZXRfOTExOyBcCiAgX19yZXRfOTExID0gdnFhZGRoX3MxNihfX3MwXzkxMSwgdnFyZG11bGhoX3MxNihfX3MxXzkxMSwgdmdldF9sYW5lX3MxNihfX3MyXzkxMSwgX19wM185MTEpKSk7IFwKICBfX3JldF85MTE7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaGhfbGFuZV9zMTYoX19wMF85MTIsIF9fcDFfOTEyLCBfX3AyXzkxMiwgX19wM185MTIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MTIgPSBfX3AwXzkxMjsgXAogIGludDE2X3QgX19zMV85MTIgPSBfX3AxXzkxMjsgXAogIGludDE2eDRfdCBfX3MyXzkxMiA9IF9fcDJfOTEyOyBcCiAgaW50MTZ4NF90IF9fcmV2Ml85MTI7ICBfX3JldjJfOTEyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTIsIF9fczJfOTEyLCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfOTEyOyBcCiAgX19yZXRfOTEyID0gdnFhZGRoX3MxNihfX3MwXzkxMiwgdnFyZG11bGhoX3MxNihfX3MxXzkxMiwgX19ub3N3YXBfdmdldF9sYW5lX3MxNihfX3JldjJfOTEyLCBfX3AzXzkxMikpKTsgXAogIF9fcmV0XzkxMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbGFoc19sYW5lcV9zMzIoX19wMF85MTMsIF9fcDFfOTEzLCBfX3AyXzkxMywgX19wM185MTMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MTMgPSBfX3AwXzkxMzsgXAogIGludDMyX3QgX19zMV85MTMgPSBfX3AxXzkxMzsgXAogIGludDMyeDRfdCBfX3MyXzkxMyA9IF9fcDJfOTEzOyBcCiAgaW50MzJfdCBfX3JldF85MTM7IFwKICBfX3JldF85MTMgPSB2cWFkZHNfczMyKF9fczBfOTEzLCB2cXJkbXVsaHNfczMyKF9fczFfOTEzLCB2Z2V0cV9sYW5lX3MzMihfX3MyXzkxMywgX19wM185MTMpKSk7IFwKICBfX3JldF85MTM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxhaHNfbGFuZXFfczMyKF9fcDBfOTE0LCBfX3AxXzkxNCwgX19wMl85MTQsIF9fcDNfOTE0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTE0ID0gX19wMF85MTQ7IFwKICBpbnQzMl90IF9fczFfOTE0ID0gX19wMV85MTQ7IFwKICBpbnQzMng0X3QgX19zMl85MTQgPSBfX3AyXzkxNDsgXAogIGludDMyeDRfdCBfX3JldjJfOTE0OyAgX19yZXYyXzkxNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTE0LCBfX3MyXzkxNCwgMywgMiwgMSwgMCk7IFwKICBpbnQzMl90IF9fcmV0XzkxNDsgXAogIF9fcmV0XzkxNCA9IHZxYWRkc19zMzIoX19zMF85MTQsIHZxcmRtdWxoc19zMzIoX19zMV85MTQsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczMyKF9fcmV2Ml85MTQsIF9fcDNfOTE0KSkpOyBcCiAgX19yZXRfOTE0OyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sYWhoX2xhbmVxX3MxNihfX3AwXzkxNSwgX19wMV85MTUsIF9fcDJfOTE1LCBfX3AzXzkxNSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzkxNSA9IF9fcDBfOTE1OyBcCiAgaW50MTZfdCBfX3MxXzkxNSA9IF9fcDFfOTE1OyBcCiAgaW50MTZ4OF90IF9fczJfOTE1ID0gX19wMl85MTU7IFwKICBpbnQxNl90IF9fcmV0XzkxNTsgXAogIF9fcmV0XzkxNSA9IHZxYWRkaF9zMTYoX19zMF85MTUsIHZxcmRtdWxoaF9zMTYoX19zMV85MTUsIHZnZXRxX2xhbmVfczE2KF9fczJfOTE1LCBfX3AzXzkxNSkpKTsgXAogIF9fcmV0XzkxNTsgXAp9KQojZWxzZQojZGVmaW5lIHZxcmRtbGFoaF9sYW5lcV9zMTYoX19wMF85MTYsIF9fcDFfOTE2LCBfX3AyXzkxNiwgX19wM185MTYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MTYgPSBfX3AwXzkxNjsgXAogIGludDE2X3QgX19zMV85MTYgPSBfX3AxXzkxNjsgXAogIGludDE2eDhfdCBfX3MyXzkxNiA9IF9fcDJfOTE2OyBcCiAgaW50MTZ4OF90IF9fcmV2Ml85MTY7ICBfX3JldjJfOTE2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTYsIF9fczJfOTE2LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsgXAogIGludDE2X3QgX19yZXRfOTE2OyBcCiAgX19yZXRfOTE2ID0gdnFhZGRoX3MxNihfX3MwXzkxNiwgdnFyZG11bGhoX3MxNihfX3MxXzkxNiwgX19ub3N3YXBfdmdldHFfbGFuZV9zMTYoX19yZXYyXzkxNiwgX19wM185MTYpKSk7IFwKICBfX3JldF85MTY7IFwKfSkKI2VuZGlmCgpfX2FpIGludDMyX3QgdnFyZG1sc2hzX3MzMihpbnQzMl90IF9fcDAsIGludDMyX3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50MzJfdCBfX3JldDsKICBfX3JldCA9IHZxc3Vic19zMzIoX19wMCwgdnFyZG11bGhzX3MzMihfX3AxLCBfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MTZfdCB2cXJkbWxzaGhfczE2KGludDE2X3QgX19wMCwgaW50MTZfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQxNl90IF9fcmV0OwogIF9fcmV0ID0gdnFzdWJoX3MxNihfX3AwLCB2cXJkbXVsaGhfczE2KF9fcDEsIF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdnFyZG1sc2hzX2xhbmVfczMyKF9fcDBfOTE3LCBfX3AxXzkxNywgX19wMl85MTcsIF9fcDNfOTE3KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTE3ID0gX19wMF85MTc7IFwKICBpbnQzMl90IF9fczFfOTE3ID0gX19wMV85MTc7IFwKICBpbnQzMngyX3QgX19zMl85MTcgPSBfX3AyXzkxNzsgXAogIGludDMyX3QgX19yZXRfOTE3OyBcCiAgX19yZXRfOTE3ID0gdnFzdWJzX3MzMihfX3MwXzkxNywgdnFyZG11bGhzX3MzMihfX3MxXzkxNywgdmdldF9sYW5lX3MzMihfX3MyXzkxNywgX19wM185MTcpKSk7IFwKICBfX3JldF85MTc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxzaHNfbGFuZV9zMzIoX19wMF85MTgsIF9fcDFfOTE4LCBfX3AyXzkxOCwgX19wM185MTgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDMyX3QgX19zMF85MTggPSBfX3AwXzkxODsgXAogIGludDMyX3QgX19zMV85MTggPSBfX3AxXzkxODsgXAogIGludDMyeDJfdCBfX3MyXzkxOCA9IF9fcDJfOTE4OyBcCiAgaW50MzJ4Ml90IF9fcmV2Ml85MTg7ICBfX3JldjJfOTE4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMl85MTgsIF9fczJfOTE4LCAxLCAwKTsgXAogIGludDMyX3QgX19yZXRfOTE4OyBcCiAgX19yZXRfOTE4ID0gdnFzdWJzX3MzMihfX3MwXzkxOCwgdnFyZG11bGhzX3MzMihfX3MxXzkxOCwgX19ub3N3YXBfdmdldF9sYW5lX3MzMihfX3JldjJfOTE4LCBfX3AzXzkxOCkpKTsgXAogIF9fcmV0XzkxODsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoaF9sYW5lX3MxNihfX3AwXzkxOSwgX19wMV85MTksIF9fcDJfOTE5LCBfX3AzXzkxOSkgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MTZfdCBfX3MwXzkxOSA9IF9fcDBfOTE5OyBcCiAgaW50MTZfdCBfX3MxXzkxOSA9IF9fcDFfOTE5OyBcCiAgaW50MTZ4NF90IF9fczJfOTE5ID0gX19wMl85MTk7IFwKICBpbnQxNl90IF9fcmV0XzkxOTsgXAogIF9fcmV0XzkxOSA9IHZxc3ViaF9zMTYoX19zMF85MTksIHZxcmRtdWxoaF9zMTYoX19zMV85MTksIHZnZXRfbGFuZV9zMTYoX19zMl85MTksIF9fcDNfOTE5KSkpOyBcCiAgX19yZXRfOTE5OyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hoX2xhbmVfczE2KF9fcDBfOTIwLCBfX3AxXzkyMCwgX19wMl85MjAsIF9fcDNfOTIwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTIwID0gX19wMF85MjA7IFwKICBpbnQxNl90IF9fczFfOTIwID0gX19wMV85MjA7IFwKICBpbnQxNng0X3QgX19zMl85MjAgPSBfX3AyXzkyMDsgXAogIGludDE2eDRfdCBfX3JldjJfOTIwOyAgX19yZXYyXzkyMCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTIwLCBfX3MyXzkyMCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzkyMDsgXAogIF9fcmV0XzkyMCA9IHZxc3ViaF9zMTYoX19zMF85MjAsIHZxcmRtdWxoaF9zMTYoX19zMV85MjAsIF9fbm9zd2FwX3ZnZXRfbGFuZV9zMTYoX19yZXYyXzkyMCwgX19wM185MjApKSk7IFwKICBfX3JldF85MjA7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2cXJkbWxzaHNfbGFuZXFfczMyKF9fcDBfOTIxLCBfX3AxXzkyMSwgX19wMl85MjEsIF9fcDNfOTIxKSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQzMl90IF9fczBfOTIxID0gX19wMF85MjE7IFwKICBpbnQzMl90IF9fczFfOTIxID0gX19wMV85MjE7IFwKICBpbnQzMng0X3QgX19zMl85MjEgPSBfX3AyXzkyMTsgXAogIGludDMyX3QgX19yZXRfOTIxOyBcCiAgX19yZXRfOTIxID0gdnFzdWJzX3MzMihfX3MwXzkyMSwgdnFyZG11bGhzX3MzMihfX3MxXzkyMSwgdmdldHFfbGFuZV9zMzIoX19zMl85MjEsIF9fcDNfOTIxKSkpOyBcCiAgX19yZXRfOTIxOyBcCn0pCiNlbHNlCiNkZWZpbmUgdnFyZG1sc2hzX2xhbmVxX3MzMihfX3AwXzkyMiwgX19wMV85MjIsIF9fcDJfOTIyLCBfX3AzXzkyMikgX19leHRlbnNpb25fXyAoeyBcCiAgaW50MzJfdCBfX3MwXzkyMiA9IF9fcDBfOTIyOyBcCiAgaW50MzJfdCBfX3MxXzkyMiA9IF9fcDFfOTIyOyBcCiAgaW50MzJ4NF90IF9fczJfOTIyID0gX19wMl85MjI7IFwKICBpbnQzMng0X3QgX19yZXYyXzkyMjsgIF9fcmV2Ml85MjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkyMiwgX19zMl85MjIsIDMsIDIsIDEsIDApOyBcCiAgaW50MzJfdCBfX3JldF85MjI7IFwKICBfX3JldF85MjIgPSB2cXN1YnNfczMyKF9fczBfOTIyLCB2cXJkbXVsaHNfczMyKF9fczFfOTIyLCBfX25vc3dhcF92Z2V0cV9sYW5lX3MzMihfX3JldjJfOTIyLCBfX3AzXzkyMikpKTsgXAogIF9fcmV0XzkyMjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZxcmRtbHNoaF9sYW5lcV9zMTYoX19wMF85MjMsIF9fcDFfOTIzLCBfX3AyXzkyMywgX19wM185MjMpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGludDE2X3QgX19zMF85MjMgPSBfX3AwXzkyMzsgXAogIGludDE2X3QgX19zMV85MjMgPSBfX3AxXzkyMzsgXAogIGludDE2eDhfdCBfX3MyXzkyMyA9IF9fcDJfOTIzOyBcCiAgaW50MTZfdCBfX3JldF85MjM7IFwKICBfX3JldF85MjMgPSB2cXN1YmhfczE2KF9fczBfOTIzLCB2cXJkbXVsaGhfczE2KF9fczFfOTIzLCB2Z2V0cV9sYW5lX3MxNihfX3MyXzkyMywgX19wM185MjMpKSk7IFwKICBfX3JldF85MjM7IFwKfSkKI2Vsc2UKI2RlZmluZSB2cXJkbWxzaGhfbGFuZXFfczE2KF9fcDBfOTI0LCBfX3AxXzkyNCwgX19wMl85MjQsIF9fcDNfOTI0KSBfX2V4dGVuc2lvbl9fICh7IFwKICBpbnQxNl90IF9fczBfOTI0ID0gX19wMF85MjQ7IFwKICBpbnQxNl90IF9fczFfOTI0ID0gX19wMV85MjQ7IFwKICBpbnQxNng4X3QgX19zMl85MjQgPSBfX3AyXzkyNDsgXAogIGludDE2eDhfdCBfX3JldjJfOTI0OyAgX19yZXYyXzkyNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTI0LCBfX3MyXzkyNCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7IFwKICBpbnQxNl90IF9fcmV0XzkyNDsgXAogIF9fcmV0XzkyNCA9IHZxc3ViaF9zMTYoX19zMF85MjQsIHZxcmRtdWxoaF9zMTYoX19zMV85MjQsIF9fbm9zd2FwX3ZnZXRxX2xhbmVfczE2KF9fcmV2Ml85MjQsIF9fcDNfOTI0KSkpOyBcCiAgX19yZXRfOTI0OyBcCn0pCiNlbmRpZgoKI2VuZGlmCiNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZhYmRsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfdTgodmdldF9oaWdoX3U4KF9fcDApLCB2Z2V0X2hpZ2hfdTgoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFiZGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQ4eDE2X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTgoX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2YWJkbF91MzIodmdldF9oaWdoX3UzMihfX3AwKSwgdmdldF9oaWdoX3UzMihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTMyKF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2YWJkbF91MTYodmdldF9oaWdoX3UxNihfX3AwKSwgdmdldF9oaWdoX3UxNihfX3AxKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWJkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfdTE2KF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYwKSwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhYmRsX2hpZ2hfczgoaW50OHgxNl90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfczgodmdldF9oaWdoX3M4KF9fcDApLCB2Z2V0X2hpZ2hfczgoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWJkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiZGxfczgoX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjEpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmRsX2hpZ2hfczMyKGludDMyeDRfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZhYmRsX3MzMih2Z2V0X2hpZ2hfczMyKF9fcDApLCB2Z2V0X2hpZ2hfczMyKF9fcDEpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFiZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJkbF9zMzIoX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjApLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSkpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3QgdmFiZGxfaGlnaF9zMTYoaW50MTZ4OF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiZGxfczE2KHZnZXRfaGlnaF9zMTYoX19wMCksIHZnZXRfaGlnaF9zMTYoX19wMSkpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJkbF9oaWdoX3MxNihpbnQxNng4X3QgX19wMCwgaW50MTZ4OF90IF9fcDEpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmRsX3MxNihfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MCksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZGxfaGlnaF91OCh1aW50OHgxNl90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3U4KF9fcDApICsgdm1vdmxfaGlnaF91OChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhZGRsX2hpZ2hfdTgodWludDh4MTZfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50OHgxNl90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkbF9oaWdoX3UzMih1aW50MzJ4NF90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bW92bF9oaWdoX3UzMihfX3AwKSArIHZtb3ZsX2hpZ2hfdTMyKF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3QgdmFkZGxfaGlnaF91MzIodWludDMyeDRfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTMyKF9fcmV2MCkgKyBfX25vc3dhcF92bW92bF9oaWdoX3UzMihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhZGRsX2hpZ2hfdTE2KHVpbnQxNng4X3QgX19wMCwgdWludDE2eDhfdCBfX3AxKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfdTE2KF9fcDApICsgdm1vdmxfaGlnaF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkbF9oaWdoX3UxNih1aW50MTZ4OF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWRkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfczgoX19wMCkgKyB2bW92bF9oaWdoX3M4KF9fcDEpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDE2eDhfdCB2YWRkbF9oaWdoX3M4KGludDh4MTZfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSkgewogIGludDh4MTZfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF9zOChfX3JldjApICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zOChfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3QgdmFkZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1vdmxfaGlnaF9zMzIoX19wMCkgKyB2bW92bF9oaWdoX3MzMihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFkZGxfaGlnaF9zMzIoaW50MzJ4NF90IF9fcDAsIGludDMyeDRfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bW92bF9oaWdoX3MzMihfX3JldjApICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGRsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtb3ZsX2hpZ2hfczE2KF9fcDApICsgdm1vdmxfaGlnaF9zMTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhZGRsX2hpZ2hfczE2KGludDE2eDhfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1vdmxfaGlnaF9zMTYoX19yZXYwKSArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfczE2KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQxNng4X3QgdmFkZHdfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSkgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91OChfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MTZ4OF90IHZhZGR3X2hpZ2hfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcmV2MCArIF9fbm9zd2FwX3Ztb3ZsX2hpZ2hfdTgoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWRkd19oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91MzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWRkd19oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSkgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF91MzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWRkd19oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF91MTYoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2YWRkd19oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSkgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF91MTYoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZhZGR3X2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZtb3ZsX2hpZ2hfczgoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhZGR3X2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9oaWdoX3M4KF9fcmV2MSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDY0eDJfdCB2YWRkd19oaWdoX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdm1vdmxfaGlnaF9zMzIoX19wMSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhZGR3X2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSkgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdm1vdmxfaGlnaF9zMzIoX19yZXYxKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZhZGR3X2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSkgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2bW92bF9oaWdoX3MxNihfX3AxKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQzMng0X3QgdmFkZHdfaGlnaF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92bW92bF9oaWdoX3MxNihfX3JldjEpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9wNjQoX19wMF85MjUsIF9fcDFfOTI1LCBfX3AyXzkyNSwgX19wM185MjUpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MjUgPSBfX3AwXzkyNTsgXAogIHBvbHk2NHgxX3QgX19zMl85MjUgPSBfX3AyXzkyNTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTI1OyBcCiAgX19yZXRfOTI1ID0gdnNldHFfbGFuZV9wNjQodmdldF9sYW5lX3A2NChfX3MyXzkyNSwgX19wM185MjUpLCBfX3MwXzkyNSwgX19wMV85MjUpOyBcCiAgX19yZXRfOTI1OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfcDY0KF9fcDBfOTI2LCBfX3AxXzkyNiwgX19wMl85MjYsIF9fcDNfOTI2KSBfX2V4dGVuc2lvbl9fICh7IFwKICBwb2x5NjR4Ml90IF9fczBfOTI2ID0gX19wMF85MjY7IFwKICBwb2x5NjR4MV90IF9fczJfOTI2ID0gX19wMl85MjY7IFwKICBwb2x5NjR4Ml90IF9fcmV2MF85MjY7ICBfX3JldjBfOTI2ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MjYsIF9fczBfOTI2LCAxLCAwKTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTI2OyBcCiAgX19yZXRfOTI2ID0gX19ub3N3YXBfdnNldHFfbGFuZV9wNjQodmdldF9sYW5lX3A2NChfX3MyXzkyNiwgX19wM185MjYpLCBfX3JldjBfOTI2LCBfX3AxXzkyNik7IFwKICBfX3JldF85MjYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldF85MjYsIF9fcmV0XzkyNiwgMSwgMCk7IFwKICBfX3JldF85MjY7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KI2RlZmluZSB2Y29weXFfbGFuZV9mNjQoX19wMF85MjcsIF9fcDFfOTI3LCBfX3AyXzkyNywgX19wM185MjcpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4Ml90IF9fczBfOTI3ID0gX19wMF85Mjc7IFwKICBmbG9hdDY0eDFfdCBfX3MyXzkyNyA9IF9fcDJfOTI3OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXRfOTI3OyBcCiAgX19yZXRfOTI3ID0gdnNldHFfbGFuZV9mNjQodmdldF9sYW5lX2Y2NChfX3MyXzkyNywgX19wM185MjcpLCBfX3MwXzkyNywgX19wMV85MjcpOyBcCiAgX19yZXRfOTI3OyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVfZjY0KF9fcDBfOTI4LCBfX3AxXzkyOCwgX19wMl85MjgsIF9fcDNfOTI4KSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDJfdCBfX3MwXzkyOCA9IF9fcDBfOTI4OyBcCiAgZmxvYXQ2NHgxX3QgX19zMl85MjggPSBfX3AyXzkyODsgXAogIGZsb2F0NjR4Ml90IF9fcmV2MF85Mjg7ICBfX3JldjBfOTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19zMF85MjgsIF9fczBfOTI4LCAxLCAwKTsgXAogIGZsb2F0NjR4Ml90IF9fcmV0XzkyODsgXAogIF9fcmV0XzkyOCA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfZjY0KHZnZXRfbGFuZV9mNjQoX19zMl85MjgsIF9fcDNfOTI4KSwgX19yZXYwXzkyOCwgX19wMV85MjgpOyBcCiAgX19yZXRfOTI4ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTI4LCBfX3JldF85MjgsIDEsIDApOyBcCiAgX19yZXRfOTI4OyBcCn0pCiNlbmRpZgoKI2RlZmluZSB2Y29weV9sYW5lX3A2NChfX3AwXzkyOSwgX19wMV85MjksIF9fcDJfOTI5LCBfX3AzXzkyOSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwXzkyOSA9IF9fcDBfOTI5OyBcCiAgcG9seTY0eDFfdCBfX3MyXzkyOSA9IF9fcDJfOTI5OyBcCiAgcG9seTY0eDFfdCBfX3JldF85Mjk7IFwKICBfX3JldF85MjkgPSB2c2V0X2xhbmVfcDY0KHZnZXRfbGFuZV9wNjQoX19zMl85MjksIF9fcDNfOTI5KSwgX19zMF85MjksIF9fcDFfOTI5KTsgXAogIF9fcmV0XzkyOTsgXAp9KQojZGVmaW5lIHZjb3B5X2xhbmVfZjY0KF9fcDBfOTMwLCBfX3AxXzkzMCwgX19wMl85MzAsIF9fcDNfOTMwKSBfX2V4dGVuc2lvbl9fICh7IFwKICBmbG9hdDY0eDFfdCBfX3MwXzkzMCA9IF9fcDBfOTMwOyBcCiAgZmxvYXQ2NHgxX3QgX19zMl85MzAgPSBfX3AyXzkzMDsgXAogIGZsb2F0NjR4MV90IF9fcmV0XzkzMDsgXAogIF9fcmV0XzkzMCA9IHZzZXRfbGFuZV9mNjQodmdldF9sYW5lX2Y2NChfX3MyXzkzMCwgX19wM185MzApLCBfX3MwXzkzMCwgX19wMV85MzApOyBcCiAgX19yZXRfOTMwOyBcCn0pCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5cV9sYW5lcV9wNjQoX19wMF85MzEsIF9fcDFfOTMxLCBfX3AyXzkzMSwgX19wM185MzEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MzEgPSBfX3AwXzkzMTsgXAogIHBvbHk2NHgyX3QgX19zMl85MzEgPSBfX3AyXzkzMTsgXAogIHBvbHk2NHgyX3QgX19yZXRfOTMxOyBcCiAgX19yZXRfOTMxID0gdnNldHFfbGFuZV9wNjQodmdldHFfbGFuZV9wNjQoX19zMl85MzEsIF9fcDNfOTMxKSwgX19zMF85MzEsIF9fcDFfOTMxKTsgXAogIF9fcmV0XzkzMTsgXAp9KQojZWxzZQojZGVmaW5lIHZjb3B5cV9sYW5lcV9wNjQoX19wMF85MzIsIF9fcDFfOTMyLCBfX3AyXzkzMiwgX19wM185MzIpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgyX3QgX19zMF85MzIgPSBfX3AwXzkzMjsgXAogIHBvbHk2NHgyX3QgX19zMl85MzIgPSBfX3AyXzkzMjsgXAogIHBvbHk2NHgyX3QgX19yZXYwXzkzMjsgIF9fcmV2MF85MzIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MwXzkzMiwgX19zMF85MzIsIDEsIDApOyBcCiAgcG9seTY0eDJfdCBfX3JldjJfOTMyOyAgX19yZXYyXzkzMiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTMyLCBfX3MyXzkzMiwgMSwgMCk7IFwKICBwb2x5NjR4Ml90IF9fcmV0XzkzMjsgXAogIF9fcmV0XzkzMiA9IF9fbm9zd2FwX3ZzZXRxX2xhbmVfcDY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcmV2Ml85MzIsIF9fcDNfOTMyKSwgX19yZXYwXzkzMiwgX19wMV85MzIpOyBcCiAgX19yZXRfOTMyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXRfOTMyLCBfX3JldF85MzIsIDEsIDApOyBcCiAgX19yZXRfOTMyOyBcCn0pCiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2Y2NChfX3AwXzkzMywgX19wMV85MzMsIF9fcDJfOTMzLCBfX3AzXzkzMykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF85MzMgPSBfX3AwXzkzMzsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTMzID0gX19wMl85MzM7IFwKICBmbG9hdDY0eDJfdCBfX3JldF85MzM7IFwKICBfX3JldF85MzMgPSB2c2V0cV9sYW5lX2Y2NCh2Z2V0cV9sYW5lX2Y2NChfX3MyXzkzMywgX19wM185MzMpLCBfX3MwXzkzMywgX19wMV85MzMpOyBcCiAgX19yZXRfOTMzOyBcCn0pCiNlbHNlCiNkZWZpbmUgdmNvcHlxX2xhbmVxX2Y2NChfX3AwXzkzNCwgX19wMV85MzQsIF9fcDJfOTM0LCBfX3AzXzkzNCkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgyX3QgX19zMF85MzQgPSBfX3AwXzkzNDsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTM0ID0gX19wMl85MzQ7IFwKICBmbG9hdDY0eDJfdCBfX3JldjBfOTM0OyAgX19yZXYwXzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczBfOTM0LCBfX3MwXzkzNCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldjJfOTM0OyAgX19yZXYyXzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fczJfOTM0LCBfX3MyXzkzNCwgMSwgMCk7IFwKICBmbG9hdDY0eDJfdCBfX3JldF85MzQ7IFwKICBfX3JldF85MzQgPSBfX25vc3dhcF92c2V0cV9sYW5lX2Y2NChfX25vc3dhcF92Z2V0cV9sYW5lX2Y2NChfX3JldjJfOTM0LCBfX3AzXzkzNCksIF9fcmV2MF85MzQsIF9fcDFfOTM0KTsgXAogIF9fcmV0XzkzNCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0XzkzNCwgX19yZXRfOTM0LCAxLCAwKTsgXAogIF9fcmV0XzkzNDsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX3A2NChfX3AwXzkzNSwgX19wMV85MzUsIF9fcDJfOTM1LCBfX3AzXzkzNSkgX19leHRlbnNpb25fXyAoeyBcCiAgcG9seTY0eDFfdCBfX3MwXzkzNSA9IF9fcDBfOTM1OyBcCiAgcG9seTY0eDJfdCBfX3MyXzkzNSA9IF9fcDJfOTM1OyBcCiAgcG9seTY0eDFfdCBfX3JldF85MzU7IFwKICBfX3JldF85MzUgPSB2c2V0X2xhbmVfcDY0KHZnZXRxX2xhbmVfcDY0KF9fczJfOTM1LCBfX3AzXzkzNSksIF9fczBfOTM1LCBfX3AxXzkzNSk7IFwKICBfX3JldF85MzU7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9wNjQoX19wMF85MzYsIF9fcDFfOTM2LCBfX3AyXzkzNiwgX19wM185MzYpIF9fZXh0ZW5zaW9uX18gKHsgXAogIHBvbHk2NHgxX3QgX19zMF85MzYgPSBfX3AwXzkzNjsgXAogIHBvbHk2NHgyX3QgX19zMl85MzYgPSBfX3AyXzkzNjsgXAogIHBvbHk2NHgyX3QgX19yZXYyXzkzNjsgIF9fcmV2Ml85MzYgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkzNiwgX19zMl85MzYsIDEsIDApOyBcCiAgcG9seTY0eDFfdCBfX3JldF85MzY7IFwKICBfX3JldF85MzYgPSB2c2V0X2xhbmVfcDY0KF9fbm9zd2FwX3ZnZXRxX2xhbmVfcDY0KF9fcmV2Ml85MzYsIF9fcDNfOTM2KSwgX19zMF85MzYsIF9fcDFfOTM2KTsgXAogIF9fcmV0XzkzNjsgXAp9KQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwojZGVmaW5lIHZjb3B5X2xhbmVxX2Y2NChfX3AwXzkzNywgX19wMV85MzcsIF9fcDJfOTM3LCBfX3AzXzkzNykgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF85MzcgPSBfX3AwXzkzNzsgXAogIGZsb2F0NjR4Ml90IF9fczJfOTM3ID0gX19wMl85Mzc7IFwKICBmbG9hdDY0eDFfdCBfX3JldF85Mzc7IFwKICBfX3JldF85MzcgPSB2c2V0X2xhbmVfZjY0KHZnZXRxX2xhbmVfZjY0KF9fczJfOTM3LCBfX3AzXzkzNyksIF9fczBfOTM3LCBfX3AxXzkzNyk7IFwKICBfX3JldF85Mzc7IFwKfSkKI2Vsc2UKI2RlZmluZSB2Y29weV9sYW5lcV9mNjQoX19wMF85MzgsIF9fcDFfOTM4LCBfX3AyXzkzOCwgX19wM185MzgpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTM4ID0gX19wMF85Mzg7IFwKICBmbG9hdDY0eDJfdCBfX3MyXzkzOCA9IF9fcDJfOTM4OyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYyXzkzODsgIF9fcmV2Ml85MzggPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MyXzkzOCwgX19zMl85MzgsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTM4OyBcCiAgX19yZXRfOTM4ID0gdnNldF9sYW5lX2Y2NChfX25vc3dhcF92Z2V0cV9sYW5lX2Y2NChfX3JldjJfOTM4LCBfX3AzXzkzOCksIF9fczBfOTM4LCBfX3AxXzkzOCk7IFwKICBfX3JldF85Mzg7IFwKfSkKI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MTZ4OF90IHZtbGFsX2hpZ2hfdTgodWludDE2eDhfdCBfX3AwLCB1aW50OHgxNl90IF9fcDEsIHVpbnQ4eDE2X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF91OChfX3AwLCB2Z2V0X2hpZ2hfdTgoX19wMSksIHZnZXRfaGlnaF91OChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2bWxhbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4MTZfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfdTgoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTgoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbGFsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1sYWxfdTMyKF9fcDAsIHZnZXRfaGlnaF91MzIoX19wMSksIHZnZXRfaGlnaF91MzIoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfaGlnaF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMng0X3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF91MzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF91MTYoX19wMCwgdmdldF9oaWdoX3UxNihfX3AxKSwgdmdldF9oaWdoX3UxNihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDMyeDRfdCB2bWxhbF9oaWdoX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2eDhfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX3UxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MTZ4OF90IHZtbGFsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX3M4KF9fcDAsIHZnZXRfaGlnaF9zOChfX3AxKSwgdmdldF9oaWdoX3M4KF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3Qgdm1sYWxfaGlnaF9zOChpbnQxNng4X3QgX19wMCwgaW50OHgxNl90IF9fcDEsIGludDh4MTZfdCBfX3AyKSB7CiAgaW50MTZ4OF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDh4MTZfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxNSwgMTQsIDEzLCAxMiwgMTEsIDEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfczgoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczgoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX3MzMihfX3AwLCB2Z2V0X2hpZ2hfczMyKF9fcDEpLCB2Z2V0X2hpZ2hfczMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMng0X3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDMsIDIsIDEsIDApOwogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19ub3N3YXBfdmdldF9oaWdoX3MzMihfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF9zMTYoX19wMCwgdmdldF9oaWdoX3MxNihfX3AxKSwgdmdldF9oaWdoX3MxNihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZ4OF90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF9zMTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9uX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxhbF9uX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbGFsX2hpZ2hfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX25fdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2bWxhbF9oaWdoX25fdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZfdCBfX3AyKSB7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX25fdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sYWxfaGlnaF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sYWxfbl91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQ2NHgyX3Qgdm1sYWxfaGlnaF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbGFsX25fczMyKF9fcDAsIHZnZXRfaGlnaF9zMzIoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDY0eDJfdCB2bWxhbF9oaWdoX25fczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxhbF9uX3MzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxhbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sYWxfbl9zMTYoX19wMCwgdmdldF9oaWdoX3MxNihfX3AxKSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZtbGFsX2hpZ2hfbl9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDhfdCBfX3AxLCBpbnQxNl90IF9fcDIpIHsKICBpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbGFsX25fczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2bWxzbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfdTgoX19wMCwgdmdldF9oaWdoX3U4KF9fcDEpLCB2Z2V0X2hpZ2hfdTgoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3Qgdm1sc2xfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX3U4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2bWxzbF9oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZtbHNsX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCB2Z2V0X2hpZ2hfdTMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZtbHNsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZtbHNsX2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIHZnZXRfaGlnaF91MTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2bWxzbF9oaWdoX3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9zOChfX3AwLCB2Z2V0X2hpZ2hfczgoX19wMSksIHZnZXRfaGlnaF9zOChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZtbHNsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX3M4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9zMzIoX19wMCwgdmdldF9oaWdoX3MzMihfX3AxKSwgdmdldF9oaWdoX3MzMihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZtbHNsX2hpZ2hfbl91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4NF90IF9fcDEsIHVpbnQzMl90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gdm1sc2xfbl91MzIoX19wMCwgdmdldF9oaWdoX3UzMihfX3AxKSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2bWxzbF9oaWdoX25fdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9uX3UzMihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF91MzIoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIHVpbnQzMng0X3Qgdm1sc2xfaGlnaF9uX3UxNih1aW50MzJ4NF90IF9fcDAsIHVpbnQxNng4X3QgX19wMSwgdWludDE2X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9uX3UxNihfX3AwLCB2Z2V0X2hpZ2hfdTE2KF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50MzJ4NF90IHZtbHNsX2hpZ2hfbl91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNl90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZtbHNsX25fdTE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UxNihfX3JldjEpLCBfX3AyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZtbHNsX2hpZ2hfbl9zMzIoaW50NjR4Ml90IF9fcDAsIGludDMyeDRfdCBfX3AxLCBpbnQzMl90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2bWxzbF9uX3MzMihfX3AwLCB2Z2V0X2hpZ2hfczMyKF9fcDEpLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3Qgdm1sc2xfaGlnaF9uX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4NF90IF9fcDEsIGludDMyX3QgX19wMikgewogIGludDY0eDJfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdm1sc2xfbl9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fcDIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSBpbnQzMng0X3Qgdm1sc2xfaGlnaF9uX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IHZtbHNsX25fczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2bWxzbF9oaWdoX25fczE2KGludDMyeDRfdCBfX3AwLCBpbnQxNng4X3QgX19wMSwgaW50MTZfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92bWxzbF9uX3MxNihfX3JldjAsIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMTYoX19yZXYxKSwgX19wMik7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNkZWZpbmUgdm11bHhfbGFuZV9mNjQoX19wMF85MzksIF9fcDFfOTM5LCBfX3AyXzkzOSkgX19leHRlbnNpb25fXyAoeyBcCiAgZmxvYXQ2NHgxX3QgX19zMF85MzkgPSBfX3AwXzkzOTsgXAogIGZsb2F0NjR4MV90IF9fczFfOTM5ID0gX19wMV85Mzk7IFwKICBmbG9hdDY0eDFfdCBfX3JldF85Mzk7IFwKICBmbG9hdDY0X3QgX194XzkzOSA9IHZnZXRfbGFuZV9mNjQoX19zMF85MzksIDApOyBcCiAgZmxvYXQ2NF90IF9feV85MzkgPSB2Z2V0X2xhbmVfZjY0KF9fczFfOTM5LCBfX3AyXzkzOSk7IFwKICBmbG9hdDY0X3QgX196XzkzOSA9IHZtdWx4ZF9mNjQoX194XzkzOSwgX195XzkzOSk7IFwKICBfX3JldF85MzkgPSB2c2V0X2xhbmVfZjY0KF9fel85MzksIF9fczBfOTM5LCBfX3AyXzkzOSk7IFwKICBfX3JldF85Mzk7IFwKfSkKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiNkZWZpbmUgdm11bHhfbGFuZXFfZjY0KF9fcDBfOTQwLCBfX3AxXzk0MCwgX19wMl85NDApIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTQwID0gX19wMF85NDA7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzk0MCA9IF9fcDFfOTQwOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTQwOyBcCiAgZmxvYXQ2NF90IF9feF85NDAgPSB2Z2V0X2xhbmVfZjY0KF9fczBfOTQwLCAwKTsgXAogIGZsb2F0NjRfdCBfX3lfOTQwID0gdmdldHFfbGFuZV9mNjQoX19zMV85NDAsIF9fcDJfOTQwKTsgXAogIGZsb2F0NjRfdCBfX3pfOTQwID0gdm11bHhkX2Y2NChfX3hfOTQwLCBfX3lfOTQwKTsgXAogIF9fcmV0Xzk0MCA9IHZzZXRfbGFuZV9mNjQoX196Xzk0MCwgX19zMF85NDAsIDApOyBcCiAgX19yZXRfOTQwOyBcCn0pCiNlbHNlCiNkZWZpbmUgdm11bHhfbGFuZXFfZjY0KF9fcDBfOTQxLCBfX3AxXzk0MSwgX19wMl85NDEpIF9fZXh0ZW5zaW9uX18gKHsgXAogIGZsb2F0NjR4MV90IF9fczBfOTQxID0gX19wMF85NDE7IFwKICBmbG9hdDY0eDJfdCBfX3MxXzk0MSA9IF9fcDFfOTQxOyBcCiAgZmxvYXQ2NHgyX3QgX19yZXYxXzk0MTsgIF9fcmV2MV85NDEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3MxXzk0MSwgX19zMV85NDEsIDEsIDApOyBcCiAgZmxvYXQ2NHgxX3QgX19yZXRfOTQxOyBcCiAgZmxvYXQ2NF90IF9feF85NDEgPSB2Z2V0X2xhbmVfZjY0KF9fczBfOTQxLCAwKTsgXAogIGZsb2F0NjRfdCBfX3lfOTQxID0gX19ub3N3YXBfdmdldHFfbGFuZV9mNjQoX19yZXYxXzk0MSwgX19wMl85NDEpOyBcCiAgZmxvYXQ2NF90IF9fel85NDEgPSB2bXVseGRfZjY0KF9feF85NDEsIF9feV85NDEpOyBcCiAgX19yZXRfOTQxID0gdnNldF9sYW5lX2Y2NChfX3pfOTQxLCBfX3MwXzk0MSwgMCk7IFwKICBfX3JldF85NDE7IFwKfSkKI2VuZGlmCgojZW5kaWYKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWJhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZGxfdTgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDE2eDhfdCB2YWJhbF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDhfdCBfX3AxLCB1aW50OHg4X3QgX19wMikgewogIHVpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDh4OF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDhfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfdTgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50MTZ4OF90IF9fbm9zd2FwX3ZhYmFsX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4OF90IF9fcDEsIHVpbnQ4eDhfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92YWJkbF91OChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50NjR4Ml90IHZhYmFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgdWludDY0eDJfdCB2YWJhbF91MzIodWludDY0eDJfdCBfX3AwLCB1aW50MzJ4Ml90IF9fcDEsIHVpbnQzMngyX3QgX19wMikgewogIHVpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgdWludDMyeDJfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAxLCAwKTsKICB1aW50MzJ4Ml90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDEsIDApOwogIHVpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkbF91MzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSB1aW50NjR4Ml90IF9fbm9zd2FwX3ZhYmFsX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMngyX3QgX19wMSwgdWludDMyeDJfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyBfX25vc3dhcF92YWJkbF91MzIoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDMyeDRfdCB2YWJhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgdmFiZGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFiYWxfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDRfdCBfX3AxLCB1aW50MTZ4NF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIHVpbnQxNng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDE2eDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfdTE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgdWludDMyeDRfdCBfX25vc3dhcF92YWJhbF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4NF90IF9fcDEsIHVpbnQxNng0X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfdTE2KF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhbF9zOChpbnQxNng4X3QgX19wMCwgaW50OHg4X3QgX19wMSwgaW50OHg4X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF9zOChfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQxNng4X3QgdmFiYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHg4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfczgoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQxNng4X3QgX19ub3N3YXBfdmFiYWxfczgoaW50MTZ4OF90IF9fcDAsIGludDh4OF90IF9fcDEsIGludDh4OF90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfczgoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmFsX3MzMihpbnQ2NHgyX3QgX19wMCwgaW50MzJ4Ml90IF9fcDEsIGludDMyeDJfdCBfX3AyKSB7CiAgaW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIHZhYmRsX3MzMihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSBpbnQ2NHgyX3QgdmFiYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4Ml90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDEsIDApOwogIGludDMyeDJfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3JldjAgKyBfX25vc3dhcF92YWJkbF9zMzIoX19yZXYxLCBfX3JldjIpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KX19haSBpbnQ2NHgyX3QgX19ub3N3YXBfdmFiYWxfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMngyX3QgX19wMSwgaW50MzJ4Ml90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX3AwICsgX19ub3N3YXBfdmFiZGxfczMyKF9fcDEsIF9fcDIpOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJhbF9zMTYoaW50MzJ4NF90IF9fcDAsIGludDE2eDRfdCBfX3AxLCBpbnQxNng0X3QgX19wMikgewogIGludDMyeDRfdCBfX3JldDsKICBfX3JldCA9IF9fcDAgKyB2YWJkbF9zMTYoX19wMSwgX19wMik7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MzJ4NF90IHZhYmFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDRfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCAzLCAyLCAxLCAwKTsKICBpbnQxNng0X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19yZXYwICsgX19ub3N3YXBfdmFiZGxfczE2KF9fcmV2MSwgX19yZXYyKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9Cl9fYWkgaW50MzJ4NF90IF9fbm9zd2FwX3ZhYmFsX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4NF90IF9fcDEsIGludDE2eDRfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19wMCArIF9fbm9zd2FwX3ZhYmRsX3MxNihfX3AxLCBfX3AyKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWYgZGVmaW5lZChfX2FhcmNoNjRfXykKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDE2eDhfdCB2YWJhbF9oaWdoX3U4KHVpbnQxNng4X3QgX19wMCwgdWludDh4MTZfdCBfX3AxLCB1aW50OHgxNl90IF9fcDIpIHsKICB1aW50MTZ4OF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfdTgoX19wMCwgdmdldF9oaWdoX3U4KF9fcDEpLCB2Z2V0X2hpZ2hfdTgoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQxNng4X3QgdmFiYWxfaGlnaF91OCh1aW50MTZ4OF90IF9fcDAsIHVpbnQ4eDE2X3QgX19wMSwgdWludDh4MTZfdCBfX3AyKSB7CiAgdWludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50OHgxNl90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQ4eDE2X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmFsX3U4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3U4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91OChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgdWludDY0eDJfdCB2YWJhbF9oaWdoX3UzMih1aW50NjR4Ml90IF9fcDAsIHVpbnQzMng0X3QgX19wMSwgdWludDMyeDRfdCBfX3AyKSB7CiAgdWludDY0eDJfdCBfX3JldDsKICBfX3JldCA9IHZhYmFsX3UzMihfX3AwLCB2Z2V0X2hpZ2hfdTMyKF9fcDEpLCB2Z2V0X2hpZ2hfdTMyKF9fcDIpKTsKICByZXR1cm4gX19yZXQ7Cn0KI2Vsc2UKX19haSB1aW50NjR4Ml90IHZhYmFsX2hpZ2hfdTMyKHVpbnQ2NHgyX3QgX19wMCwgdWludDMyeDRfdCBfX3AxLCB1aW50MzJ4NF90IF9fcDIpIHsKICB1aW50NjR4Ml90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMywgMiwgMSwgMCk7CiAgdWludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICB1aW50NjR4Ml90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiYWxfdTMyKF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3UzMihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTMyKF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KX19haSB1aW50MzJ4NF90IHZhYmFsX2hpZ2hfdTE2KHVpbnQzMng0X3QgX19wMCwgdWludDE2eDhfdCBfX3AxLCB1aW50MTZ4OF90IF9fcDIpIHsKICB1aW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfdTE2KF9fcDAsIHZnZXRfaGlnaF91MTYoX19wMSksIHZnZXRfaGlnaF91MTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIHVpbnQzMng0X3QgdmFiYWxfaGlnaF91MTYodWludDMyeDRfdCBfX3AwLCB1aW50MTZ4OF90IF9fcDEsIHVpbnQxNng4X3QgX19wMikgewogIHVpbnQzMng0X3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMywgMiwgMSwgMCk7CiAgdWludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICB1aW50MTZ4OF90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIHVpbnQzMng0X3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJhbF91MTYoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfdTE2KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF91MTYoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDMsIDIsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDE2eDhfdCB2YWJhbF9oaWdoX3M4KGludDE2eDhfdCBfX3AwLCBpbnQ4eDE2X3QgX19wMSwgaW50OHgxNl90IF9fcDIpIHsKICBpbnQxNng4X3QgX19yZXQ7CiAgX19yZXQgPSB2YWJhbF9zOChfX3AwLCB2Z2V0X2hpZ2hfczgoX19wMSksIHZnZXRfaGlnaF9zOChfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50MTZ4OF90IHZhYmFsX2hpZ2hfczgoaW50MTZ4OF90IF9fcDAsIGludDh4MTZfdCBfX3AxLCBpbnQ4eDE2X3QgX19wMikgewogIGludDE2eDhfdCBfX3JldjA7ICBfX3JldjAgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AwLCBfX3AwLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQ4eDE2X3QgX19yZXYxOyAgX19yZXYxID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMSwgX19wMSwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50OHgxNl90IF9fcmV2MjsgIF9fcmV2MiA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDIsIF9fcDIsIDE1LCAxNCwgMTMsIDEyLCAxMSwgMTAsIDksIDgsIDcsIDYsIDUsIDQsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldDsKICBfX3JldCA9IF9fbm9zd2FwX3ZhYmFsX3M4KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3M4KF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zOChfX3JldjIpKTsKICBfX3JldCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcmV0LCBfX3JldCwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbmRpZgoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCl9fYWkgaW50NjR4Ml90IHZhYmFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSB2YWJhbF9zMzIoX19wMCwgdmdldF9oaWdoX3MzMihfX3AxKSwgdmdldF9oaWdoX3MzMihfX3AyKSk7CiAgcmV0dXJuIF9fcmV0Owp9CiNlbHNlCl9fYWkgaW50NjR4Ml90IHZhYmFsX2hpZ2hfczMyKGludDY0eDJfdCBfX3AwLCBpbnQzMng0X3QgX19wMSwgaW50MzJ4NF90IF9fcDIpIHsKICBpbnQ2NHgyX3QgX19yZXYwOyAgX19yZXYwID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMCwgX19wMCwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV2MTsgIF9fcmV2MSA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDEsIF9fcDEsIDMsIDIsIDEsIDApOwogIGludDMyeDRfdCBfX3JldjI7ICBfX3JldjIgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AyLCBfX3AyLCAzLCAyLCAxLCAwKTsKICBpbnQ2NHgyX3QgX19yZXQ7CiAgX19yZXQgPSBfX25vc3dhcF92YWJhbF9zMzIoX19yZXYwLCBfX25vc3dhcF92Z2V0X2hpZ2hfczMyKF9fcmV2MSksIF9fbm9zd2FwX3ZnZXRfaGlnaF9zMzIoX19yZXYyKSk7CiAgX19yZXQgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3JldCwgX19yZXQsIDEsIDApOwogIHJldHVybiBfX3JldDsKfQojZW5kaWYKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwpfX2FpIGludDMyeDRfdCB2YWJhbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gdmFiYWxfczE2KF9fcDAsIHZnZXRfaGlnaF9zMTYoX19wMSksIHZnZXRfaGlnaF9zMTYoX19wMikpOwogIHJldHVybiBfX3JldDsKfQojZWxzZQpfX2FpIGludDMyeDRfdCB2YWJhbF9oaWdoX3MxNihpbnQzMng0X3QgX19wMCwgaW50MTZ4OF90IF9fcDEsIGludDE2eDhfdCBfX3AyKSB7CiAgaW50MzJ4NF90IF9fcmV2MDsgIF9fcmV2MCA9IF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKF9fcDAsIF9fcDAsIDMsIDIsIDEsIDApOwogIGludDE2eDhfdCBfX3JldjE7ICBfX3JldjEgPSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcihfX3AxLCBfX3AxLCA3LCA2LCA1LCA0LCAzLCAyLCAxLCAwKTsKICBpbnQxNng4X3QgX19yZXYyOyAgX19yZXYyID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19wMiwgX19wMiwgNywgNiwgNSwgNCwgMywgMiwgMSwgMCk7CiAgaW50MzJ4NF90IF9fcmV0OwogIF9fcmV0ID0gX19ub3N3YXBfdmFiYWxfczE2KF9fcmV2MCwgX19ub3N3YXBfdmdldF9oaWdoX3MxNihfX3JldjEpLCBfX25vc3dhcF92Z2V0X2hpZ2hfczE2KF9fcmV2MikpOwogIF9fcmV0ID0gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoX19yZXQsIF9fcmV0LCAzLCAyLCAxLCAwKTsKICByZXR1cm4gX19yZXQ7Cn0KI2VuZGlmCgojZW5kaWYKCiN1bmRlZiBfX2FpCgojZW5kaWYgLyogaWYgIWRlZmluZWQoX19BUk1fTkVPTikgKi8KI2VuZGlmIC8qIGlmbmRlZiBfX0FSTV9GUCAqLwojZW5kaWYgLyogX19BUk1fTkVPTl9IICovCgAvKj09PS0tLS0tLS0tLS0tLS0gYXZ4NTEyYml0YWxnaW50cmluLmggLSBCSVRBTEcgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdng1MTJiaXRhbGdpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYNTEyQklUQUxHSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMkJJVEFMR0lOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4NTEyYml0YWxnIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDUxMikpKQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX3BvcGNudF9lcGkxNihfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBvcGNudHdfNTEyKChfX3YzMmhpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpMTYoX19tNTEyaSBfX0EsIF9fbW1hc2szMiBfX1UsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX201MTJpKSBfX2J1aWx0aW5faWEzMl9zZWxlY3R3XzUxMigoX19tbWFzazMyKSBfX1UsCiAgICAgICAgICAgICAgKF9fdjMyaGkpIF9tbTUxMl9wb3BjbnRfZXBpMTYoX19CKSwKICAgICAgICAgICAgICAoX192MzJoaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tNTEyX21hc2t6X3BvcGNudF9lcGkxNihfX21tYXNrMzIgX19VLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpMTYoKF9fbTUxMmkpIF9tbTUxMl9zZXR6ZXJvX3NpNTEyKCksCiAgICAgICAgICAgICAgX19VLAogICAgICAgICAgICAgIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9wb3BjbnRfZXBpOChfX201MTJpIF9fQSkKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfdnBvcGNudGJfNTEyKChfX3Y2NHFpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19wb3BjbnRfZXBpOChfX201MTJpIF9fQSwgX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX3NlbGVjdGJfNTEyKChfX21tYXNrNjQpIF9fVSwKICAgICAgICAgICAgICAoX192NjRxaSkgX21tNTEyX3BvcGNudF9lcGk4KF9fQiksCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9tYXNrel9wb3BjbnRfZXBpOChfX21tYXNrNjQgX19VLCBfX201MTJpIF9fQikKewogIHJldHVybiBfbW01MTJfbWFza19wb3BjbnRfZXBpOCgoX19tNTEyaSkgX21tNTEyX3NldHplcm9fc2k1MTIoKSwKICAgICAgICAgICAgICBfX1UsCiAgICAgICAgICAgICAgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbW01MTJfbWFza19iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tbWFzazY0IF9fVSwgX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIChfX21tYXNrNjQpIF9fYnVpbHRpbl9pYTMyX3Zwc2h1ZmJpdHFtYjUxMl9tYXNrKChfX3Y2NHFpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjY0cWkpIF9fQiwKICAgICAgICAgICAgICBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX21tYXNrNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTUxMl9iaXRzaHVmZmxlX2VwaTY0X21hc2soX19tNTEyaSBfX0EsIF9fbTUxMmkgX19CKQp7CiAgcmV0dXJuIF9tbTUxMl9tYXNrX2JpdHNodWZmbGVfZXBpNjRfbWFzaygoX19tbWFzazY0KSAtMSwKICAgICAgICAgICAgICBfX0EsCiAgICAgICAgICAgICAgX19CKTsKfQoKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKCiNlbmRpZgoAYXZ4NTEydmx2bm5paW50cmluLmgAZnhzcmludHJpbi5oAC8qPT09LS0tLSBtbTNkbm93LmggLSAzRE5vdyEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX01NM0ROT1dfSF9JTkNMVURFRAojZGVmaW5lIF9NTTNETk9XX0hfSU5DTFVERUQKCiNpbmNsdWRlIDxtbWludHJpbi5oPgojaW5jbHVkZSA8cHJmY2h3aW50cmluLmg+Cgp0eXBlZGVmIGZsb2F0IF9fdjJzZiBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oOCkpKTsKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCIzZG5vdyIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXyg2NCkpKQoKc3RhdGljIF9faW5saW5lX18gdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oIjNkbm93IikpKQpfbV9mZW1tcyh2b2lkKSB7CiAgX19idWlsdGluX2lhMzJfZmVtbXMoKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3Bhdmd1c2IoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGF2Z3VzYigoX192OHFpKV9fbTEsIChfX3Y4cWkpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZjJpZChfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmMmlkKChfX3Yyc2YpX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmYWNjKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmYWNjKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmYWRkKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmYWRkKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmY21wZXEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZjbXBlcSgoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZmNtcGdlKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmY21wZ2UoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZjbXBndChfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZmNtcGd0KChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbWF4KF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbWF4KChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbWluKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbWluKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbXVsKF9fbTY0IF9fbTEsIF9fbTY0IF9fbTIpIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmbXVsKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmcmNwKF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3AoKF9fdjJzZilfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyY3BpdDEoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3BpdDEoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyY3BpdDIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZyY3BpdDIoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyc3FydChfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmcnNxcnQoKF9fdjJzZilfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZyc3FydGl0MShfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnJzcWl0MSgoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZnN1YihfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnN1YigoX192MnNmKV9fbTEsIChfX3Yyc2YpX19tMik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZnN1YnIoX19tNjQgX19tMSwgX19tNjQgX19tMikgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGZzdWJyKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BpMmZkKF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGkyZmQoKF9fdjJzaSlfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcG11bGhydyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wbXVsaHJ3KChfX3Y0aGkpX19tMSwgKF9fdjRoaSlfX20yKTsKfQoKLyogSGFuZGxlIHRoZSAzZG5vd2EgaW5zdHJ1Y3Rpb25zIGhlcmUuICovCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCIzZG5vd2EiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNjQpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wZjJpdyhfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3BmMml3KChfX3Yyc2YpX19tKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BmbmFjYyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZm5hY2MoKF9fdjJzZilfX20xLCAoX192MnNmKV9fbTIpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcGZwbmFjYyhfX202NCBfX20xLCBfX202NCBfX20yKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wZnBuYWNjKChfX3Yyc2YpX19tMSwgKF9fdjJzZilfX20yKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNjQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tX3BpMmZ3KF9fbTY0IF9fbSkgewogIHJldHVybiAoX19tNjQpX19idWlsdGluX2lhMzJfcGkyZncoKF9fdjJzaSlfX20pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX202NCBfX0RFRkFVTFRfRk5fQVRUUlMKX21fcHN3YXBkc2YoX19tNjQgX19tKSB7CiAgcmV0dXJuIChfX202NClfX2J1aWx0aW5faWEzMl9wc3dhcGRzZigoX192MnNmKV9fbSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTY0IF9fREVGQVVMVF9GTl9BVFRSUwpfbV9wc3dhcGRzaShfX202NCBfX20pIHsKICByZXR1cm4gKF9fbTY0KV9fYnVpbHRpbl9pYTMyX3Bzd2FwZHNpKChfX3Yyc2kpX19tKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmCgAvKj09PS0tLS0gc3RkZGVmLmggLSBCYXNpYyB0eXBlIGRlZmluaXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQoX19TVERERUZfSCkgfHwgZGVmaW5lZChfX25lZWRfcHRyZGlmZl90KSB8fCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX25lZWRfc2l6ZV90KSB8fCBkZWZpbmVkKF9fbmVlZF93Y2hhcl90KSB8fCAgICAgICAgICAgICAgICAgICAgICAgXAogICAgZGVmaW5lZChfX25lZWRfTlVMTCkgfHwgZGVmaW5lZChfX25lZWRfd2ludF90KQoKI2lmICFkZWZpbmVkKF9fbmVlZF9wdHJkaWZmX3QpICYmICFkZWZpbmVkKF9fbmVlZF9zaXplX3QpICYmICAgICAgICAgICAgICAgICAgIFwKICAgICFkZWZpbmVkKF9fbmVlZF93Y2hhcl90KSAmJiAhZGVmaW5lZChfX25lZWRfTlVMTCkgJiYgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICFkZWZpbmVkKF9fbmVlZF93aW50X3QpCi8qIEFsd2F5cyBkZWZpbmUgbWlzY2VsbGFuZW91cyBwaWVjZXMgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9fU1REREVGX0gKI2VuZGlmCiNkZWZpbmUgX19uZWVkX3B0cmRpZmZfdAojZGVmaW5lIF9fbmVlZF9zaXplX3QKI2RlZmluZSBfX25lZWRfd2NoYXJfdAojZGVmaW5lIF9fbmVlZF9OVUxMCiNkZWZpbmUgX19uZWVkX1NURERFRl9IX21pc2MKLyogX19uZWVkX3dpbnRfdCBpcyBpbnRlbnRpb25hbGx5IG5vdCBkZWZpbmVkIGhlcmUuICovCiNlbmRpZgoKI2lmIGRlZmluZWQoX19uZWVkX3B0cmRpZmZfdCkKI2lmICFkZWZpbmVkKF9QVFJESUZGX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSBwdHJkaWZmX3Qgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9QVFJESUZGX1QKI2VuZGlmCnR5cGVkZWYgX19QVFJESUZGX1RZUEVfXyBwdHJkaWZmX3Q7CiNlbmRpZgojdW5kZWYgX19uZWVkX3B0cmRpZmZfdAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfcHRyZGlmZl90KSAqLwoKI2lmIGRlZmluZWQoX19uZWVkX3NpemVfdCkKI2lmICFkZWZpbmVkKF9TSVpFX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSBzaXplX3Qgd2hlbiBtb2R1bGVzIGFyZSBhdmFpbGFibGUuICovCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9TSVpFX1QKI2VuZGlmCnR5cGVkZWYgX19TSVpFX1RZUEVfXyBzaXplX3Q7CiNlbmRpZgojdW5kZWYgX19uZWVkX3NpemVfdAojZW5kaWYgLypkZWZpbmVkKF9fbmVlZF9zaXplX3QpICovCgojaWYgZGVmaW5lZChfX25lZWRfU1REREVGX0hfbWlzYykKLyogSVNPOTg5OToyMDExIDcuMjAgKEMxMSBBbm5leCBLKTogRGVmaW5lIHJzaXplX3QgaWYgX19TVERDX1dBTlRfTElCX0VYVDFfXyBpcwogKiBlbmFibGVkLiAqLwojaWYgKGRlZmluZWQoX19TVERDX1dBTlRfTElCX0VYVDFfXykgJiYgX19TVERDX1dBTlRfTElCX0VYVDFfXyA+PSAxICYmIFwKICAgICAhZGVmaW5lZChfUlNJWkVfVCkpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKLyogQWx3YXlzIGRlZmluZSByc2l6ZV90IHdoZW4gbW9kdWxlcyBhcmUgYXZhaWxhYmxlLiAqLwojaWYgIV9faGFzX2ZlYXR1cmUobW9kdWxlcykKI2RlZmluZSBfUlNJWkVfVAojZW5kaWYKdHlwZWRlZiBfX1NJWkVfVFlQRV9fIHJzaXplX3Q7CiNlbmRpZgojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfU1REREVGX0hfbWlzYykgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF93Y2hhcl90KQojaWZuZGVmIF9fY3BsdXNwbHVzCi8qIEFsd2F5cyBkZWZpbmUgd2NoYXJfdCB3aGVuIG1vZHVsZXMgYXJlIGF2YWlsYWJsZS4gKi8KI2lmICFkZWZpbmVkKF9XQ0hBUl9UKSB8fCBfX2hhc19mZWF0dXJlKG1vZHVsZXMpCiNpZiAhX19oYXNfZmVhdHVyZShtb2R1bGVzKQojZGVmaW5lIF9XQ0hBUl9UCiNpZiBkZWZpbmVkKF9NU0NfRVhURU5TSU9OUykKI2RlZmluZSBfV0NIQVJfVF9ERUZJTkVECiNlbmRpZgojZW5kaWYKdHlwZWRlZiBfX1dDSEFSX1RZUEVfXyB3Y2hhcl90OwojZW5kaWYKI2VuZGlmCiN1bmRlZiBfX25lZWRfd2NoYXJfdAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfd2NoYXJfdCkgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF9OVUxMKQojdW5kZWYgTlVMTAojaWZkZWYgX19jcGx1c3BsdXMKIyAgaWYgIWRlZmluZWQoX19NSU5HVzMyX18pICYmICFkZWZpbmVkKF9NU0NfVkVSKQojICAgIGRlZmluZSBOVUxMIF9fbnVsbAojICBlbHNlCiMgICAgZGVmaW5lIE5VTEwgMAojICBlbmRpZgojZWxzZQojICBkZWZpbmUgTlVMTCAoKHZvaWQqKTApCiNlbmRpZgojaWZkZWYgX19jcGx1c3BsdXMKI2lmIGRlZmluZWQoX01TQ19FWFRFTlNJT05TKSAmJiBkZWZpbmVkKF9OQVRJVkVfTlVMTFBUUl9TVVBQT1JURUQpCm5hbWVzcGFjZSBzdGQgeyB0eXBlZGVmIGRlY2x0eXBlKG51bGxwdHIpIG51bGxwdHJfdDsgfQp1c2luZyA6OnN0ZDo6bnVsbHB0cl90OwojZW5kaWYKI2VuZGlmCiN1bmRlZiBfX25lZWRfTlVMTAojZW5kaWYgLyogZGVmaW5lZChfX25lZWRfTlVMTCkgKi8KCiNpZiBkZWZpbmVkKF9fbmVlZF9TVERERUZfSF9taXNjKQojaWYgX19TVERDX1ZFUlNJT05fXyA+PSAyMDExMTJMIHx8IF9fY3BsdXNwbHVzID49IDIwMTEwM0wKI2luY2x1ZGUgIl9fc3RkZGVmX21heF9hbGlnbl90LmgiCiNlbmRpZgojZGVmaW5lIG9mZnNldG9mKHQsIGQpIF9fYnVpbHRpbl9vZmZzZXRvZih0LCBkKQojdW5kZWYgX19uZWVkX1NURERFRl9IX21pc2MKI2VuZGlmICAvKiBkZWZpbmVkKF9fbmVlZF9TVERERUZfSF9taXNjKSAqLwoKLyogU29tZSBDIGxpYnJhcmllcyBleHBlY3QgdG8gc2VlIGEgd2ludF90IGhlcmUuIE90aGVycyAobm90YWJseSBNaW5HVykgd2lsbCB1c2UKX19XSU5UX1RZUEVfXyBkaXJlY3RseTsgYWNjb21tb2RhdGUgYm90aCBieSByZXF1aXJpbmcgX19uZWVkX3dpbnRfdCAqLwojaWYgZGVmaW5lZChfX25lZWRfd2ludF90KQovKiBBbHdheXMgZGVmaW5lIHdpbnRfdCB3aGVuIG1vZHVsZXMgYXJlIGF2YWlsYWJsZS4gKi8KI2lmICFkZWZpbmVkKF9XSU5UX1QpIHx8IF9faGFzX2ZlYXR1cmUobW9kdWxlcykKI2lmICFfX2hhc19mZWF0dXJlKG1vZHVsZXMpCiNkZWZpbmUgX1dJTlRfVAojZW5kaWYKdHlwZWRlZiBfX1dJTlRfVFlQRV9fIHdpbnRfdDsKI2VuZGlmCiN1bmRlZiBfX25lZWRfd2ludF90CiNlbmRpZiAvKiBfX25lZWRfd2ludF90ICovCgojZW5kaWYKAC8qPT09LS0tLS0tLS0tLS0tLS0tLS0tIHZhZXNpbnRyaW4uaCAtIFZBRVMgaW50cmluc2ljcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDx2YWVzaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDxpbW1pbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1ZBRVNJTlRSSU5fSAojZGVmaW5lIF9fVkFFU0lOVFJJTl9ICgovKiBEZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIFlNTSBmb3Jtcy4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJ2YWVzIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKLyogRGVmYXVsdCBhdHRyaWJ1dGVzIGZvciBaTU0gZm9ybXMuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTX0YgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdng1MTJmLHZhZXMiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oNTEyKSkpCgoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKIF9tbTI1Nl9hZXNlbmNfZXBpMTI4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfYWVzZW5jMjU2KChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwogX21tMjU2X2Flc2RlY19lcGkxMjgoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9hZXNkZWMyNTYoKF9fdjRkaSkgX19BLAogICAgICAgICAgICAgIChfX3Y0ZGkpIF9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCiBfbW0yNTZfYWVzZW5jbGFzdF9lcGkxMjgoX19tMjU2aSBfX0EsIF9fbTI1NmkgX19CKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9hZXNlbmNsYXN0MjU2KChfX3Y0ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192NGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwogX21tMjU2X2Flc2RlY2xhc3RfZXBpMTI4KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDI1NigoX192NGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjRkaSkgX19CKTsKfQoKI2lmZGVmIF9fQVZYNTEyRklOVFJJTl9ICnN0YXRpYyBfX2lubGluZV9fIF9fbTUxMmkgX19ERUZBVUxUX0ZOX0FUVFJTX0YKIF9tbTUxMl9hZXNlbmNfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZW5jNTEyKChfX3Y4ZGkpIF9fQSwKICAgICAgICAgICAgICAoX192OGRpKSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX201MTJpIF9fREVGQVVMVF9GTl9BVFRSU19GCiBfbW01MTJfYWVzZGVjX2VwaTEyOChfX201MTJpIF9fQSwgX19tNTEyaSBfX0IpCnsKICByZXR1cm4gKF9fbTUxMmkpIF9fYnVpbHRpbl9pYTMyX2Flc2RlYzUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfRgogX21tNTEyX2Flc2VuY2xhc3RfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZW5jbGFzdDUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tNTEyaSBfX0RFRkFVTFRfRk5fQVRUUlNfRgogX21tNTEyX2Flc2RlY2xhc3RfZXBpMTI4KF9fbTUxMmkgX19BLCBfX201MTJpIF9fQikKewogIHJldHVybiAoX19tNTEyaSkgX19idWlsdGluX2lhMzJfYWVzZGVjbGFzdDUxMigoX192OGRpKSBfX0EsCiAgICAgICAgICAgICAgKF9fdjhkaSkgX19CKTsKfQojZW5kaWYgLy8gX19BVlg1MTJGSU5UUklOX0gKCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSU19GCgojZW5kaWYKAHZlY2ludHJpbi5oAHBhdGgATWlzcyBleHBvbmVudCBpbiBudW1iZXIuAGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvcmUyLmNjAEVycm9yIGNvbXBpbGluZyAnAFxTAFs6d29yZDpdAGFsdCAtPiAlZCB8ICVkAFVuZXhwZWN0ZWQgc3BlY2lhbCBzdGF0ZSBpbiBSdW5TdGF0ZU9uQnl0ZQBubyBhcmd1bWVudCBmb3IgcmVwZXRpdGlvbiBvcGVyYXRvcgBleHRlcm5hbC9yZWdleC1yZTIvcmUyL3NpbXBsaWZ5LmNjAFNpbXBsaWZ5IGZhaWxlZCBvbiAAJABcegBceCUwMngAQnJhaWxsZQBJbnNjcmlwdGlvbmFsX1BhaGxhdmkASW5zY3JpcHRpb25hbF9QYXJ0aGlhbgBNZW5kZV9LaWtha3VpAEZhaWxlZCB0byBjcmVhdGUgcGlwZSwgZXJybm89JWQAU2VjdGlvbiBuYW1lICclcycgaXMgdG9vIGxvbmcgKCV6dSk7IHNlY3Rpb24gd2lsbCBub3QgYmUgZm91bmQgKGV2ZW4gaWYgcHJlc2VudCkuAGJhZCBtYWdpYyBudW1iZXIgaW4gQWRkVG9GcmVlbGlzdCgpAF9HTE9CQUxfX05fAGRlY2ltYWwzMgAtLQBjbQBVTkFVVEhFTlRJQ0FURUQAdHJlZS0+aGVpZ2h0KCkgPD0ga01heEhlaWdodAAgZG9lcyBub3QgbWF0Y2ggcG9zaXRpb25hbCBsZW5ndGggAGRldGVjdGVkIGlsbGVnYWwgcmVjdXJzaW9uIGluIE11dGV4IGNvZGUALTI1NjIwNDc3ODgwMTUyMTVoMzBtOHMAL2NvbmZpZy9kYXRhL3R6ZGF0YS8AUC01MjEAQUVTLUdDTSBFbmNyeXB0aW9uIEtBVABEQlJHIEdlbmVyYXRlIEtBVAAlczogZ2V0cmFuZG9tIGluZGljYXRlcyB0aGF0IHRoZSBlbnRyb3B5IHBvb2wgaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkLiBSYXRoZXIgdGhhbiBjb250aW51ZSB3aXRoIHBvb3IgZW50cm9weSwgdGhpcyBwcm9jZXNzIHdpbGwgYmxvY2sgdW50aWwgZW50cm9weSBpcyBhdmFpbGFibGUuCgBreXRoZS9wcm90by9hbmFseXNpcy5wcm90bwAgdHlwZSBkb2VzIG5vdCBtYXRjaAoAa3l0aGUucHJvdG8uQ3h4Q29tcGlsYXRpb25Vbml0RGV0YWlscy5TdGF0UGF0aC5wYXRoAC1jAGMrKwBPdXRwdXQgZmlsZSBtdXN0IGhhdmUgJy5remlwJyBleHRlbnNpb24ALyo9PT0tLS0tIF9fY2xhbmdfaGlwX2NtYXRoLmggLSBISVAgY21hdGggZGVjbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19DTEFOR19ISVBfQ01BVEhfSF9fCiNkZWZpbmUgX19DTEFOR19ISVBfQ01BVEhfSF9fCgojaWYgIWRlZmluZWQoX19ISVBfXykgJiYgIWRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCiNlcnJvciAiVGhpcyBmaWxlIGlzIGZvciBISVAgYW5kIE9wZW5NUCBBTURHQ04gZGV2aWNlIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpZiAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKI2luY2x1ZGUgPGxpbWl0cz4KI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgojaW5jbHVkZSA8dXRpbGl0eT4KI2VuZGlmCiNpbmNsdWRlIDxsaW1pdHMuaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykKCiNwcmFnbWEgcHVzaF9tYWNybygiX19ERVZJQ0VfXyIpCiNwcmFnbWEgcHVzaF9tYWNybygiX19DT05TVEVYUFJfXyIpCiNpZmRlZiBfX09QRU5NUF9BTURHQ05fXwojZGVmaW5lIF9fREVWSUNFX18gc3RhdGljIF9fYXR0cmlidXRlX18oKGFsd2F5c19pbmxpbmUsIG5vdGhyb3cpKQojZGVmaW5lIF9fQ09OU1RFWFBSX18gY29uc3RleHByCiNlbHNlCiNkZWZpbmUgX19ERVZJQ0VfXyBzdGF0aWMgX19kZXZpY2VfXyBpbmxpbmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpCiNkZWZpbmUgX19DT05TVEVYUFJfXwojZW5kaWYgLy8gX19PUEVOTVBfQU1ER0NOX18KCi8vIFN0YXJ0IHdpdGggZnVuY3Rpb25zIHRoYXQgY2Fubm90IGJlIGRlZmluZWQgYnkgREVGIG1hY3JvcyBiZWxvdy4KI2lmIGRlZmluZWQoX19jcGx1c3BsdXMpCiNpZiBkZWZpbmVkIF9fT1BFTk1QX0FNREdDTl9fCl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBmYWJzKGZsb2F0IF9feCkgeyByZXR1cm4gOjpmYWJzZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBzaW4oZmxvYXQgX194KSB7IHJldHVybiA6OnNpbmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgY29zKGZsb2F0IF9feCkgeyByZXR1cm4gOjpjb3NmKF9feCk7IH0KI2VuZGlmCl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBkb3VibGUgYWJzKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6ZmFicyhfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCBhYnMoZmxvYXQgX194KSB7IHJldHVybiA6OmZhYnNmKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGxvbmcgbG9uZyBhYnMobG9uZyBsb25nIF9fbikgeyByZXR1cm4gOjpsbGFicyhfX24pOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBsb25nIGFicyhsb25nIF9fbikgeyByZXR1cm4gOjpsYWJzKF9fbik7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IGZtYShmbG9hdCBfX3gsIGZsb2F0IF9feSwgZmxvYXQgX196KSB7CiAgcmV0dXJuIDo6Zm1hZihfX3gsIF9feSwgX196KTsKfQojaWYgIWRlZmluZWQoX19ISVBDQ19SVENfXykKLy8gVGhlIHZhbHVlIHJldHVybmVkIGJ5IGZwY2xhc3NpZnkgaXMgcGxhdGZvcm0gZGVwZW5kZW50LCB0aGVyZWZvcmUgaXQgaXMgbm90Ci8vIHN1cHBvcnRlZCBieSBoaXBSVEMuCl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBpbnQgZnBjbGFzc2lmeShmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2ZwY2xhc3NpZnkoRlBfTkFOLCBGUF9JTkZJTklURSwgRlBfTk9STUFMLCBGUF9TVUJOT1JNQUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQX1pFUk8sIF9feCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGludCBmcGNsYXNzaWZ5KGRvdWJsZSBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2ZwY2xhc3NpZnkoRlBfTkFOLCBGUF9JTkZJTklURSwgRlBfTk9STUFMLCBGUF9TVUJOT1JNQUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZQX1pFUk8sIF9feCk7Cn0KI2VuZGlmIC8vICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgZnJleHAoZmxvYXQgX19hcmcsIGludCAqX19leHApIHsKICByZXR1cm4gOjpmcmV4cGYoX19hcmcsIF9fZXhwKTsKfQoKI2lmIGRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCi8vIEZvciBPcGVuTVAgd2Ugd29yayBhcm91bmQgc29tZSBvbGQgc3lzdGVtIGhlYWRlcnMgdGhhdCBoYXZlIG5vbi1jb25mb3JtaW5nCi8vIGBpc2luZihmbG9hdClgIGFuZCBgaXNuYW4oZmxvYXQpYCBpbXBsZW1lbnRhdGlvbnMgdGhhdCByZXR1cm4gYW4gYGludGAuIFdlIGRvCi8vIHRoaXMgYnkgcHJvdmlkaW5nIHR3byB2ZXJzaW9ucyBvZiB0aGVzZSBmdW5jdGlvbnMsIGRpZmZlcmluZyBvbmx5IGluIHRoZQovLyByZXR1cm4gdHlwZS4gVG8gYXZvaWQgY29uZmxpY3RpbmcgZGVmaW5pdGlvbnMgd2UgZGlzYWJsZSBpbXBsaWNpdCBiYXNlCi8vIGZ1bmN0aW9uIGdlbmVyYXRpb24uIFRoYXQgbWVhbnMgd2Ugd2lsbCBlbmQgdXAgd2l0aCB0d28gc3BlY2lhbGl6YXRpb25zLCBvbmUKLy8gcGVyIHR5cGUsIGJ1dCBvbmx5IG9uZSBoYXMgYSBiYXNlIGZ1bmN0aW9uIGRlZmluZWQgYnkgdGhlIHN5c3RlbSBoZWFkZXIuCiNwcmFnbWEgb21wIGJlZ2luIGRlY2xhcmUgdmFyaWFudCBtYXRjaCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpbXBsZW1lbnRhdGlvbiA9IHtleHRlbnNpb24oZGlzYWJsZV9pbXBsaWNpdF9iYXNlKX0pCgovLyBGSVhNRTogV2UgbGFjayBhbiBleHRlbnNpb24gdG8gY3VzdG9taXplIHRoZSBtYW5nbGluZyBvZiB0aGUgdmFyaWFudHMsIGUuZy4sCi8vICAgICAgICBhZGQgYSBzdWZmaXguIFRoaXMgbWVhbnMgd2Ugd291bGQgY2xhc2ggd2l0aCB0aGUgbmFtZXMgb2YgdGhlIHZhcmlhbnRzCi8vICAgICAgICAobm90ZSB0aGF0IHdlIGRvIG5vdCBjcmVhdGUgaW1wbGljaXQgYmFzZSBmdW5jdGlvbnMgaGVyZSkuIFRvIGF2b2lkCi8vICAgICAgICB0aGlzIGNsYXNoIHdlIGFkZCBhIG5ldyB0cmFpdCB0byBzb21lIG9mIHRoZW0gdGhhdCBpcyBhbHdheXMgdHJ1ZQovLyAgICAgICAgKHRoaXMgaXMgTExWTSBhZnRlciBhbGwgOykpLiBJdCB3aWxsIG9ubHkgaW5mbHVlbmNlIHRoZSBtYW5nbGVkIG5hbWUKLy8gICAgICAgIG9mIHRoZSB2YXJpYW50cyBpbnNpZGUgdGhlIGlubmVyIHJlZ2lvbiBhbmQgYXZvaWQgdGhlIGNsYXNoLgojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goaW1wbGVtZW50YXRpb24gPSB7dmVuZG9yKGxsdm0pfSkKCl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBpbnQgaXNpbmYoZmxvYXQgX194KSB7IHJldHVybiA6Ol9faXNpbmZmKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGludCBpc2luZihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNpbmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGlzZmluaXRlKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2Zpbml0ZWYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGlzZmluaXRlKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGUoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gaW50IGlzbmFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2lzbmFuZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBpbnQgaXNuYW4oZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2lzbmFuKF9feCk7IH0KCiNwcmFnbWEgb21wIGVuZCBkZWNsYXJlIHZhcmlhbnQKI2VuZGlmIC8vIGRlZmluZWQoX19PUEVOTVBfQU1ER0NOX18pCgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2luZihmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19pc2luZmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2luZihkb3VibGUgX194KSB7IHJldHVybiA6Ol9faXNpbmYoX194KTsgfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2Zpbml0ZShmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19maW5pdGVmKF9feCk7IH0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNmaW5pdGUoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX2Zpbml0ZShfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbmFuKGZsb2F0IF9feCkgeyByZXR1cm4gOjpfX2lzbmFuZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzbmFuKGRvdWJsZSBfX3gpIHsgcmV0dXJuIDo6X19pc25hbihfX3gpOyB9CgojaWYgZGVmaW5lZChfX09QRU5NUF9BTURHQ05fXykKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAojZW5kaWYgLy8gZGVmaW5lZChfX09QRU5NUF9BTURHQ05fXykKCl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzZ3JlYXRlcihmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2dyZWF0ZXIoZG91YmxlIF9feCwgZG91YmxlIF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2dyZWF0ZXJlcXVhbChmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNncmVhdGVyZXF1YWwoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzZ3JlYXRlcmVxdWFsKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzZ3JlYXRlcmVxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2xlc3MoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzcyhfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzcyhfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzZXF1YWwoZmxvYXQgX194LCBmbG9hdCBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzbGVzc2VxdWFsKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc2xlc3NlcXVhbChkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NlcXVhbChfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzZ3JlYXRlcihmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXNsZXNzZ3JlYXRlcihfX3gsIF9feSk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNsZXNzZ3JlYXRlcihkb3VibGUgX194LCBkb3VibGUgX195KSB7CiAgcmV0dXJuIF9fYnVpbHRpbl9pc2xlc3NncmVhdGVyKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc25vcm1hbChmbG9hdCBfX3gpIHsKICByZXR1cm4gX19idWlsdGluX2lzbm9ybWFsKF9feCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgaXNub3JtYWwoZG91YmxlIF9feCkgewogIHJldHVybiBfX2J1aWx0aW5faXNub3JtYWwoX194KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gYm9vbCBpc3Vub3JkZXJlZChmbG9hdCBfX3gsIGZsb2F0IF9feSkgewogIHJldHVybiBfX2J1aWx0aW5faXN1bm9yZGVyZWQoX194LCBfX3kpOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIGlzdW5vcmRlcmVkKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIHsKICByZXR1cm4gX19idWlsdGluX2lzdW5vcmRlcmVkKF9feCwgX195KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gZmxvYXQgbW9kZihmbG9hdCBfX3gsIGZsb2F0ICpfX2lwdHIpIHsKICByZXR1cm4gOjptb2RmZihfX3gsIF9faXB0cik7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IHBvdyhmbG9hdCBfX2Jhc2UsIGludCBfX2lleHApIHsKICByZXR1cm4gOjpwb3dpZihfX2Jhc2UsIF9faWV4cCk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGRvdWJsZSBwb3coZG91YmxlIF9fYmFzZSwgaW50IF9faWV4cCkgewogIHJldHVybiA6OnBvd2koX19iYXNlLCBfX2lleHApOwp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBmbG9hdCByZW1xdW8oZmxvYXQgX194LCBmbG9hdCBfX3ksIGludCAqX19xdW8pIHsKICByZXR1cm4gOjpyZW1xdW9mKF9feCwgX195LCBfX3F1byk7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGZsb2F0IHNjYWxibG4oZmxvYXQgX194LCBsb25nIGludCBfX24pIHsKICByZXR1cm4gOjpzY2FsYmxuZihfX3gsIF9fbik7Cn0KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIGJvb2wgc2lnbmJpdChmbG9hdCBfX3gpIHsgcmV0dXJuIDo6X19zaWduYml0ZihfX3gpOyB9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBib29sIHNpZ25iaXQoZG91YmxlIF9feCkgeyByZXR1cm4gOjpfX3NpZ25iaXQoX194KTsgfQoKLy8gTm90YWJseSBtaXNzaW5nIGFib3ZlIGlzIG5leHR0b3dhcmQuICBXZSBvbWl0IGl0IGJlY2F1c2UKLy8gb2NtbCBkb2Vzbid0IHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24sIGFuZCB3ZSBkb24ndCB3YW50IHRvIGJlIGluIHRoZQovLyBidXNpbmVzcyBvZiBpbXBsZW1lbnRpbmcgdHJpY2t5IGxpYm0gZnVuY3Rpb25zIGluIHRoaXMgaGVhZGVyLgoKLy8gT3RoZXIgZnVuY3Rpb25zLgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX0Zsb2F0MTYgZm1hKF9GbG9hdDE2IF9feCwgX0Zsb2F0MTYgX195LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9GbG9hdDE2IF9feikgewogIHJldHVybiBfX29jbWxfZm1hX2YxNihfX3gsIF9feSwgX196KTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX0Zsb2F0MTYgcG93KF9GbG9hdDE2IF9fYmFzZSwgaW50IF9faWV4cCkgewogIHJldHVybiBfX29jbWxfcG93bl9mMTYoX19iYXNlLCBfX2lleHApOwp9CgojaWZuZGVmIF9fT1BFTk1QX0FNREdDTl9fCi8vIEJFR0lOIERFRl9GVU4gYW5kIEhJUF9PVkVSTE9BRAoKLy8gQkVHSU4gREVGX0ZVTgoKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFRl9GVU4xIikKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFRl9GVU4yIikKI3ByYWdtYSBwdXNoX21hY3JvKCJfX0RFRl9GVU4yX0ZJIikKCi8vIERlZmluZSBjbWF0aCBmdW5jdGlvbnMgd2l0aCBmbG9hdCBhcmd1bWVudCBhbmQgcmV0dXJucyBfX3JldHR5LgojZGVmaW5lIF9fREVGX0ZVTjEoX19yZXR0eSwgX19mdW5jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gX19DT05TVEVYUFJfXyBfX3JldHR5IF9fZnVuYyhmbG9hdCBfX3gpIHsgcmV0dXJuIF9fZnVuYyMjZihfX3gpOyB9CgovLyBEZWZpbmUgY21hdGggZnVuY3Rpb25zIHdpdGggdHdvIGZsb2F0IGFyZ3VtZW50cyBhbmQgcmV0dXJucyBfX3JldHR5LgojZGVmaW5lIF9fREVGX0ZVTjIoX19yZXR0eSwgX19mdW5jKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gX19DT05TVEVYUFJfXyBfX3JldHR5IF9fZnVuYyhmbG9hdCBfX3gsIGZsb2F0IF9feSkgeyAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fZnVuYyMjZihfX3gsIF9feSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KCi8vIERlZmluZSBjbWF0aCBmdW5jdGlvbnMgd2l0aCBhIGZsb2F0IGFuZCBhbiBpbnQgYXJndW1lbnQgYW5kIHJldHVybnMgX19yZXR0eS4KI2RlZmluZSBfX0RFRl9GVU4yX0ZJKF9fcmV0dHksIF9fZnVuYykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19yZXR0eSBfX2Z1bmMoZmxvYXQgX194LCBpbnQgX195KSB7ICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiBfX2Z1bmMjI2YoX194LCBfX3kpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgpfX0RFRl9GVU4xKGZsb2F0LCBhY29zKQpfX0RFRl9GVU4xKGZsb2F0LCBhY29zaCkKX19ERUZfRlVOMShmbG9hdCwgYXNpbikKX19ERUZfRlVOMShmbG9hdCwgYXNpbmgpCl9fREVGX0ZVTjEoZmxvYXQsIGF0YW4pCl9fREVGX0ZVTjIoZmxvYXQsIGF0YW4yKQpfX0RFRl9GVU4xKGZsb2F0LCBhdGFuaCkKX19ERUZfRlVOMShmbG9hdCwgY2JydCkKX19ERUZfRlVOMShmbG9hdCwgY2VpbCkKX19ERUZfRlVOMihmbG9hdCwgY29weXNpZ24pCl9fREVGX0ZVTjEoZmxvYXQsIGNvcykKX19ERUZfRlVOMShmbG9hdCwgY29zaCkKX19ERUZfRlVOMShmbG9hdCwgZXJmKQpfX0RFRl9GVU4xKGZsb2F0LCBlcmZjKQpfX0RFRl9GVU4xKGZsb2F0LCBleHApCl9fREVGX0ZVTjEoZmxvYXQsIGV4cDIpCl9fREVGX0ZVTjEoZmxvYXQsIGV4cG0xKQpfX0RFRl9GVU4xKGZsb2F0LCBmYWJzKQpfX0RFRl9GVU4yKGZsb2F0LCBmZGltKQpfX0RFRl9GVU4xKGZsb2F0LCBmbG9vcikKX19ERUZfRlVOMihmbG9hdCwgZm1heCkKX19ERUZfRlVOMihmbG9hdCwgZm1pbikKX19ERUZfRlVOMihmbG9hdCwgZm1vZCkKX19ERUZfRlVOMihmbG9hdCwgaHlwb3QpCl9fREVGX0ZVTjEoaW50LCBpbG9nYikKX19ERUZfRlVOMl9GSShmbG9hdCwgbGRleHApCl9fREVGX0ZVTjEoZmxvYXQsIGxnYW1tYSkKX19ERUZfRlVOMShmbG9hdCwgbG9nKQpfX0RFRl9GVU4xKGZsb2F0LCBsb2cxMCkKX19ERUZfRlVOMShmbG9hdCwgbG9nMXApCl9fREVGX0ZVTjEoZmxvYXQsIGxvZzIpCl9fREVGX0ZVTjEoZmxvYXQsIGxvZ2IpCl9fREVGX0ZVTjEobG9uZyBsb25nLCBsbHJpbnQpCl9fREVGX0ZVTjEobG9uZyBsb25nLCBsbHJvdW5kKQpfX0RFRl9GVU4xKGxvbmcsIGxyaW50KQpfX0RFRl9GVU4xKGxvbmcsIGxyb3VuZCkKX19ERUZfRlVOMShmbG9hdCwgbmVhcmJ5aW50KQpfX0RFRl9GVU4yKGZsb2F0LCBuZXh0YWZ0ZXIpCl9fREVGX0ZVTjIoZmxvYXQsIHBvdykKX19ERUZfRlVOMihmbG9hdCwgcmVtYWluZGVyKQpfX0RFRl9GVU4xKGZsb2F0LCByaW50KQpfX0RFRl9GVU4xKGZsb2F0LCByb3VuZCkKX19ERUZfRlVOMl9GSShmbG9hdCwgc2NhbGJuKQpfX0RFRl9GVU4xKGZsb2F0LCBzaW4pCl9fREVGX0ZVTjEoZmxvYXQsIHNpbmgpCl9fREVGX0ZVTjEoZmxvYXQsIHNxcnQpCl9fREVGX0ZVTjEoZmxvYXQsIHRhbikKX19ERUZfRlVOMShmbG9hdCwgdGFuaCkKX19ERUZfRlVOMShmbG9hdCwgdGdhbW1hKQpfX0RFRl9GVU4xKGZsb2F0LCB0cnVuYykKCiNwcmFnbWEgcG9wX21hY3JvKCJfX0RFRl9GVU4xIikKI3ByYWdtYSBwb3BfbWFjcm8oIl9fREVGX0ZVTjIiKQojcHJhZ21hIHBvcF9tYWNybygiX19ERUZfRlVOMl9GSSIpCgovLyBFTkQgREVGX0ZVTgoKLy8gQkVHSU4gSElQX09WRVJMT0FECgojcHJhZ21hIHB1c2hfbWFjcm8oIl9fSElQX09WRVJMT0FEMSIpCiNwcmFnbWEgcHVzaF9tYWNybygiX19ISVBfT1ZFUkxPQUQyIikKCi8vIF9faGlwX2VuYWJsZV9pZjo6dHlwZSBpcyBhIHR5cGUgZnVuY3Rpb24gd2hpY2ggcmV0dXJucyBfX1QgaWYgX19CIGlzIHRydWUuCnRlbXBsYXRlIDxib29sIF9fQiwgY2xhc3MgX19UID0gdm9pZD4gc3RydWN0IF9faGlwX2VuYWJsZV9pZiB7fTsKCnRlbXBsYXRlIDxjbGFzcyBfX1Q+IHN0cnVjdCBfX2hpcF9lbmFibGVfaWY8dHJ1ZSwgX19UPiB7IHR5cGVkZWYgX19UIHR5cGU7IH07CgpuYW1lc3BhY2UgX19oaXAgewp0ZW1wbGF0ZSA8Y2xhc3MgX1RwPiBzdHJ1Y3QgaXNfaW50ZWdyYWwgewogIGVudW0geyB2YWx1ZSA9IDAgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPGJvb2w+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8c2lnbmVkIGNoYXI+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDx1bnNpZ25lZCBjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8d2NoYXJfdD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHNob3J0PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8dW5zaWduZWQgc2hvcnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxpbnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDx1bnNpZ25lZCBpbnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19pbnRlZ3JhbDxsb25nPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfaW50ZWdyYWw8dW5zaWduZWQgbG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPGxvbmcgbG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2ludGVncmFsPHVuc2lnbmVkIGxvbmcgbG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKCi8vIFRvRG86IHNwZWNpYWxpemVzIGlzX2FyaXRobWV0aWM8X0Zsb2F0MTY+CnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0cnVjdCBpc19hcml0aG1ldGljIHsKICBlbnVtIHsgdmFsdWUgPSAwIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPGJvb2w+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPGNoYXI+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPHNpZ25lZCBjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzx1bnNpZ25lZCBjaGFyPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzx3Y2hhcl90PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxzaG9ydD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8dW5zaWduZWQgc2hvcnQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPGludD4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8dW5zaWduZWQgaW50PiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxsb25nPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzx1bnNpZ25lZCBsb25nPiB7CiAgZW51bSB7IHZhbHVlID0gMSB9Owp9Owp0ZW1wbGF0ZSA8PiBzdHJ1Y3QgaXNfYXJpdGhtZXRpYzxsb25nIGxvbmc+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPHVuc2lnbmVkIGxvbmcgbG9uZz4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKdGVtcGxhdGUgPD4gc3RydWN0IGlzX2FyaXRobWV0aWM8ZmxvYXQ+IHsKICBlbnVtIHsgdmFsdWUgPSAxIH07Cn07CnRlbXBsYXRlIDw+IHN0cnVjdCBpc19hcml0aG1ldGljPGRvdWJsZT4gewogIGVudW0geyB2YWx1ZSA9IDEgfTsKfTsKCnN0cnVjdCB0cnVlX3R5cGUgewogIHN0YXRpYyBjb25zdCBfX2NvbnN0YW50X18gYm9vbCB2YWx1ZSA9IHRydWU7Cn07CnN0cnVjdCBmYWxzZV90eXBlIHsKICBzdGF0aWMgY29uc3QgX19jb25zdGFudF9fIGJvb2wgdmFsdWUgPSBmYWxzZTsKfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1QsIHR5cGVuYW1lIF9fVT4gc3RydWN0IGlzX3NhbWUgOiBwdWJsaWMgZmFsc2VfdHlwZSB7fTsKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4gc3RydWN0IGlzX3NhbWU8X19ULCBfX1Q+IDogcHVibGljIHRydWVfdHlwZSB7fTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+IHN0cnVjdCBhZGRfcnZhbHVlX3JlZmVyZW5jZSB7IHR5cGVkZWYgX19UICYmdHlwZTsgfTsKCnRlbXBsYXRlIDx0eXBlbmFtZSBfX1Q+IHR5cGVuYW1lIGFkZF9ydmFsdWVfcmVmZXJlbmNlPF9fVD46OnR5cGUgZGVjbHZhbCgpOwoKLy8gZGVjbHR5cGUgaXMgb25seSBhdmFpbGFibGUgaW4gQysrMTEgYW5kIGFib3ZlLgojaWYgX19jcGx1c3BsdXMgPj0gMjAxMTAzTAovLyBfX2hpcF9wcm9tb3RlCnRlbXBsYXRlIDxjbGFzcyBfVHA+IHN0cnVjdCBfX251bWVyaWNfdHlwZSB7CiAgc3RhdGljIHZvaWQgX190ZXN0KC4uLik7CiAgc3RhdGljIF9GbG9hdDE2IF9fdGVzdChfRmxvYXQxNik7CiAgc3RhdGljIGZsb2F0IF9fdGVzdChmbG9hdCk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QoY2hhcik7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QoaW50KTsKICBzdGF0aWMgZG91YmxlIF9fdGVzdCh1bnNpZ25lZCk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QobG9uZyk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QodW5zaWduZWQgbG9uZyk7CiAgc3RhdGljIGRvdWJsZSBfX3Rlc3QobG9uZyBsb25nKTsKICBzdGF0aWMgZG91YmxlIF9fdGVzdCh1bnNpZ25lZCBsb25nIGxvbmcpOwogIHN0YXRpYyBkb3VibGUgX190ZXN0KGRvdWJsZSk7CiAgLy8gTm8gc3VwcG9ydCBmb3IgbG9uZyBkb3VibGUsIHVzZSBkb3VibGUgaW5zdGVhZC4KICBzdGF0aWMgZG91YmxlIF9fdGVzdChsb25nIGRvdWJsZSk7CgogIHR5cGVkZWYgZGVjbHR5cGUoX190ZXN0KGRlY2x2YWw8X1RwPigpKSkgdHlwZTsKICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9ICFpc19zYW1lPHR5cGUsIHZvaWQ+Ojp2YWx1ZTsKfTsKCnRlbXBsYXRlIDw+IHN0cnVjdCBfX251bWVyaWNfdHlwZTx2b2lkPiB7IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsgfTsKCnRlbXBsYXRlIDxjbGFzcyBfQTEsIGNsYXNzIF9BMiA9IHZvaWQsIGNsYXNzIF9BMyA9IHZvaWQsCiAgICAgICAgICBib29sID0gX19udW1lcmljX3R5cGU8X0ExPjo6dmFsdWUgJiZfX251bWVyaWNfdHlwZTxfQTI+Ojp2YWx1ZQogICAgICAgICAgICAgICYmX19udW1lcmljX3R5cGU8X0EzPjo6dmFsdWU+CmNsYXNzIF9fcHJvbW90ZV9pbXAgewpwdWJsaWM6CiAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSBmYWxzZTsKfTsKCnRlbXBsYXRlIDxjbGFzcyBfQTEsIGNsYXNzIF9BMiwgY2xhc3MgX0EzPgpjbGFzcyBfX3Byb21vdGVfaW1wPF9BMSwgX0EyLCBfQTMsIHRydWU+IHsKcHJpdmF0ZToKICB0eXBlZGVmIHR5cGVuYW1lIF9fcHJvbW90ZV9pbXA8X0ExPjo6dHlwZSBfX3R5cGUxOwogIHR5cGVkZWYgdHlwZW5hbWUgX19wcm9tb3RlX2ltcDxfQTI+Ojp0eXBlIF9fdHlwZTI7CiAgdHlwZWRlZiB0eXBlbmFtZSBfX3Byb21vdGVfaW1wPF9BMz46OnR5cGUgX190eXBlMzsKCnB1YmxpYzoKICB0eXBlZGVmIGRlY2x0eXBlKF9fdHlwZTEoKSArIF9fdHlwZTIoKSArIF9fdHlwZTMoKSkgdHlwZTsKICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHRydWU7Cn07Cgp0ZW1wbGF0ZSA8Y2xhc3MgX0ExLCBjbGFzcyBfQTI+IGNsYXNzIF9fcHJvbW90ZV9pbXA8X0ExLCBfQTIsIHZvaWQsIHRydWU+IHsKcHJpdmF0ZToKICB0eXBlZGVmIHR5cGVuYW1lIF9fcHJvbW90ZV9pbXA8X0ExPjo6dHlwZSBfX3R5cGUxOwogIHR5cGVkZWYgdHlwZW5hbWUgX19wcm9tb3RlX2ltcDxfQTI+Ojp0eXBlIF9fdHlwZTI7CgpwdWJsaWM6CiAgdHlwZWRlZiBkZWNsdHlwZShfX3R5cGUxKCkgKyBfX3R5cGUyKCkpIHR5cGU7CiAgc3RhdGljIGNvbnN0IGJvb2wgdmFsdWUgPSB0cnVlOwp9OwoKdGVtcGxhdGUgPGNsYXNzIF9BMT4gY2xhc3MgX19wcm9tb3RlX2ltcDxfQTEsIHZvaWQsIHZvaWQsIHRydWU+IHsKcHVibGljOgogIHR5cGVkZWYgdHlwZW5hbWUgX19udW1lcmljX3R5cGU8X0ExPjo6dHlwZSB0eXBlOwogIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gdHJ1ZTsKfTsKCnRlbXBsYXRlIDxjbGFzcyBfQTEsIGNsYXNzIF9BMiA9IHZvaWQsIGNsYXNzIF9BMyA9IHZvaWQ+CmNsYXNzIF9fcHJvbW90ZSA6IHB1YmxpYyBfX3Byb21vdGVfaW1wPF9BMSwgX0EyLCBfQTM+IHt9OwojZW5kaWYgLy9fX2NwbHVzcGx1cyA+PSAyMDExMDNMCn0gLy8gbmFtZXNwYWNlIF9faGlwCgovLyBfX0hJUF9PVkVSTE9BRDEgaXMgdXNlZCB0byByZXNvbHZlIGZ1bmN0aW9uIGNhbGxzIHdpdGggaW50ZWdlciBhcmd1bWVudCB0bwovLyBhdm9pZCBjb21waWxhdGlvbiBlcnJvciBkdWUgdG8gYW1iaWJ1aXR5LiBlLmcuIGZsb29yKDUpIGlzIHJlc29sdmVkIHdpdGgKLy8gZmxvb3IoZG91YmxlKS4KI2RlZmluZSBfX0hJUF9PVkVSTE9BRDEoX19yZXR0eSwgX19mbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICBfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19pbnRlZ3JhbDxfX1Q+Ojp2YWx1ZSwgX19yZXR0eT46OnR5cGUgIFwKICAgICAgX19mbihfX1QgX194KSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgIHJldHVybiA6Ol9fZm4oKGRvdWJsZSlfX3gpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICB9CgovLyBfX0hJUF9PVkVSTE9BRDIgaXMgdXNlZCB0byByZXNvbHZlIGZ1bmN0aW9uIGNhbGxzIHdpdGggbWl4ZWQgZmxvYXQvZG91YmxlCi8vIG9yIGludGVnZXIgYXJndW1lbnQgdG8gYXZvaWQgY29tcGlsYXRpb24gZXJyb3IgZHVlIHRvIGFtYmlidWl0eS4gZS5nLgovLyBtYXgoNS4wZiwgNi4wKSBpcyByZXNvbHZlZCB3aXRoIG1heChkb3VibGUsIGRvdWJsZSkuCiNpZiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMCiNkZWZpbmUgX19ISVBfT1ZFUkxPQUQyKF9fcmV0dHksIF9fZm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjwgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgIF9faGlwOjppc19hcml0aG1ldGljPF9fVDE+Ojp2YWx1ZSAmJiBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QyPjo6dmFsdWUsICBcCiAgICAgIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMj46OnR5cGU+Ojp0eXBlICAgICAgICAgICAgICAgICAgICAgICBcCiAgX19mbihfX1QxIF9feCwgX19UMiBfX3kpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICB0eXBlZGVmIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMj46OnR5cGUgX19yZXN1bHRfdHlwZTsgICAgICAgICBcCiAgICByZXR1cm4gX19mbigoX19yZXN1bHRfdHlwZSlfX3gsIChfX3Jlc3VsdF90eXBlKV9feSk7ICAgICAgICAgICAgICAgICAgICAgICBcCiAgfQojZWxzZQojZGVmaW5lIF9fSElQX09WRVJMT0FEMihfX3JldHR5LCBfX2ZuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIHRlbXBsYXRlIDx0eXBlbmFtZSBfX1QxLCB0eXBlbmFtZSBfX1QyPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIF9fREVWSUNFX18gX19DT05TVEVYUFJfXyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2FyaXRobWV0aWM8X19UMT46OnZhbHVlICYmICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faGlwOjppc19hcml0aG1ldGljPF9fVDI+Ojp2YWx1ZSwgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZXR0eT46OnR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICBfX2ZuKF9fVDEgX194LCBfX1QyIF9feSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgcmV0dXJuIF9fZm4oKGRvdWJsZSlfX3gsIChkb3VibGUpX195KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogIH0KI2VuZGlmCgpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBhY29zKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBhY29zaCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgYXNpbikKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgYXNpbmgpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGF0YW4pCl9fSElQX09WRVJMT0FEMihkb3VibGUsIGF0YW4yKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBhdGFuaCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgY2JydCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgY2VpbCkKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgY29weXNpZ24pCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGNvcykKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgY29zaCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgZXJmKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBlcmZjKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBleHApCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGV4cDIpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGV4cG0xKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBmYWJzKQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCBmZGltKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBmbG9vcikKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgZm1heCkKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgZm1pbikKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgZm1vZCkKI2lmICFkZWZpbmVkKF9fSElQQ0NfUlRDX18pCl9fSElQX09WRVJMT0FEMShpbnQsIGZwY2xhc3NpZnkpCiNlbmRpZiAvLyAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCBoeXBvdCkKX19ISVBfT1ZFUkxPQUQxKGludCwgaWxvZ2IpCl9fSElQX09WRVJMT0FEMShib29sLCBpc2Zpbml0ZSkKX19ISVBfT1ZFUkxPQUQyKGJvb2wsIGlzZ3JlYXRlcikKX19ISVBfT1ZFUkxPQUQyKGJvb2wsIGlzZ3JlYXRlcmVxdWFsKQpfX0hJUF9PVkVSTE9BRDEoYm9vbCwgaXNpbmYpCl9fSElQX09WRVJMT0FEMihib29sLCBpc2xlc3MpCl9fSElQX09WRVJMT0FEMihib29sLCBpc2xlc3NlcXVhbCkKX19ISVBfT1ZFUkxPQUQyKGJvb2wsIGlzbGVzc2dyZWF0ZXIpCl9fSElQX09WRVJMT0FEMShib29sLCBpc25hbikKX19ISVBfT1ZFUkxPQUQxKGJvb2wsIGlzbm9ybWFsKQpfX0hJUF9PVkVSTE9BRDIoYm9vbCwgaXN1bm9yZGVyZWQpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGxnYW1tYSkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgbG9nKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBsb2cxMCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgbG9nMXApCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGxvZzIpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIGxvZ2IpCl9fSElQX09WRVJMT0FEMShsb25nIGxvbmcsIGxscmludCkKX19ISVBfT1ZFUkxPQUQxKGxvbmcgbG9uZywgbGxyb3VuZCkKX19ISVBfT1ZFUkxPQUQxKGxvbmcsIGxyaW50KQpfX0hJUF9PVkVSTE9BRDEobG9uZywgbHJvdW5kKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBuZWFyYnlpbnQpCl9fSElQX09WRVJMT0FEMihkb3VibGUsIG5leHRhZnRlcikKX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgcG93KQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCByZW1haW5kZXIpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHJpbnQpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHJvdW5kKQpfX0hJUF9PVkVSTE9BRDEoYm9vbCwgc2lnbmJpdCkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgc2luKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBzaW5oKQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCBzcXJ0KQpfX0hJUF9PVkVSTE9BRDEoZG91YmxlLCB0YW4pCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHRhbmgpCl9fSElQX09WRVJMT0FEMShkb3VibGUsIHRnYW1tYSkKX19ISVBfT1ZFUkxPQUQxKGRvdWJsZSwgdHJ1bmMpCgovLyBPdmVybG9hZCB0aGVzZSBidXQgZG9uJ3QgYWRkIHRoZW0gdG8gc3RkLCB0aGV5IGFyZSBub3QgcGFydCBvZiBjbWF0aC4KX19ISVBfT1ZFUkxPQUQyKGRvdWJsZSwgbWF4KQpfX0hJUF9PVkVSTE9BRDIoZG91YmxlLCBtaW4pCgovLyBBZGRpdGlvbmFsIE92ZXJsb2FkcyB0aGF0IGRvbid0IHF1aXRlIG1hdGNoIEhJUF9PVkVSTE9BRC4KI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDIsIHR5cGVuYW1lIF9fVDM+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8CiAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QxPjo6dmFsdWUgJiYgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMj46OnZhbHVlICYmCiAgICAgICAgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMz46OnZhbHVlLAogICAgdHlwZW5hbWUgX19oaXA6Ol9fcHJvbW90ZTxfX1QxLCBfX1QyLCBfX1QzPjo6dHlwZT46OnR5cGUKZm1hKF9fVDEgX194LCBfX1QyIF9feSwgX19UMyBfX3opIHsKICB0eXBlZGVmIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMiwgX19UMz46OnR5cGUgX19yZXN1bHRfdHlwZTsKICByZXR1cm4gOjpmbWEoKF9fcmVzdWx0X3R5cGUpX194LCAoX19yZXN1bHRfdHlwZSlfX3ksIChfX3Jlc3VsdF90eXBlKV9feik7Cn0KI2Vsc2UKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDIsIHR5cGVuYW1lIF9fVDM+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19hcml0aG1ldGljPF9fVDE+Ojp2YWx1ZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QyPjo6dmFsdWUgJiYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19oaXA6OmlzX2FyaXRobWV0aWM8X19UMz46OnZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZT46OnR5cGUKICAgIGZtYShfX1QxIF9feCwgX19UMiBfX3ksIF9fVDMgX196KSB7CiAgcmV0dXJuIDo6Zm1hKChkb3VibGUpX194LCAoZG91YmxlKV9feSwgKGRvdWJsZSlfX3opOwp9CiNlbmRpZgoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2ludGVncmFsPF9fVD46OnZhbHVlLCBkb3VibGU+Ojp0eXBlCiAgICBmcmV4cChfX1QgX194LCBpbnQgKl9fZXhwKSB7CiAgcmV0dXJuIDo6ZnJleHAoKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2ludGVncmFsPF9fVD46OnZhbHVlLCBkb3VibGU+Ojp0eXBlCiAgICBsZGV4cChfX1QgX194LCBpbnQgX19leHApIHsKICByZXR1cm4gOjpsZGV4cCgoZG91YmxlKV9feCwgX19leHApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18KICAgIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjxfX2hpcDo6aXNfaW50ZWdyYWw8X19UPjo6dmFsdWUsIGRvdWJsZT46OnR5cGUKICAgIG1vZGYoX19UIF9feCwgZG91YmxlICpfX2V4cCkgewogIHJldHVybiA6Om1vZGYoKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKI2lmIF9fY3BsdXNwbHVzID49IDIwMTEwM0wKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVDEsIHR5cGVuYW1lIF9fVDI+Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXwogICAgdHlwZW5hbWUgX19oaXBfZW5hYmxlX2lmPF9faGlwOjppc19hcml0aG1ldGljPF9fVDE+Ojp2YWx1ZSAmJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2hpcDo6aXNfYXJpdGhtZXRpYzxfX1QyPjo6dmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgX19oaXA6Ol9fcHJvbW90ZTxfX1QxLCBfX1QyPjo6dHlwZT46OnR5cGUKICAgIHJlbXF1byhfX1QxIF9feCwgX19UMiBfX3ksIGludCAqX19xdW8pIHsKICB0eXBlZGVmIHR5cGVuYW1lIF9faGlwOjpfX3Byb21vdGU8X19UMSwgX19UMj46OnR5cGUgX19yZXN1bHRfdHlwZTsKICByZXR1cm4gOjpyZW1xdW8oKF9fcmVzdWx0X3R5cGUpX194LCAoX19yZXN1bHRfdHlwZSlfX3ksIF9fcXVvKTsKfQojZWxzZQp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UMSwgdHlwZW5hbWUgX19UMj4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2FyaXRobWV0aWM8X19UMT46OnZhbHVlICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9faGlwOjppc19hcml0aG1ldGljPF9fVDI+Ojp2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGU+Ojp0eXBlCiAgICByZW1xdW8oX19UMSBfX3gsIF9fVDIgX195LCBpbnQgKl9fcXVvKSB7CiAgcmV0dXJuIDo6cmVtcXVvKChkb3VibGUpX194LCAoZG91YmxlKV9feSwgX19xdW8pOwp9CiNlbmRpZgoKdGVtcGxhdGUgPHR5cGVuYW1lIF9fVD4KX19ERVZJQ0VfXyBfX0NPTlNURVhQUl9fCiAgICB0eXBlbmFtZSBfX2hpcF9lbmFibGVfaWY8X19oaXA6OmlzX2ludGVncmFsPF9fVD46OnZhbHVlLCBkb3VibGU+Ojp0eXBlCiAgICBzY2FsYmxuKF9fVCBfX3gsIGxvbmcgaW50IF9fZXhwKSB7CiAgcmV0dXJuIDo6c2NhbGJsbigoZG91YmxlKV9feCwgX19leHApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgX19UPgpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18KICAgIHR5cGVuYW1lIF9faGlwX2VuYWJsZV9pZjxfX2hpcDo6aXNfaW50ZWdyYWw8X19UPjo6dmFsdWUsIGRvdWJsZT46OnR5cGUKICAgIHNjYWxibihfX1QgX194LCBpbnQgX19leHApIHsKICByZXR1cm4gOjpzY2FsYm4oKGRvdWJsZSlfX3gsIF9fZXhwKTsKfQoKI3ByYWdtYSBwb3BfbWFjcm8oIl9fSElQX09WRVJMT0FEMSIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX0hJUF9PVkVSTE9BRDIiKQoKLy8gRU5EIEhJUF9PVkVSTE9BRAoKLy8gRU5EIERFRl9GVU4gYW5kIEhJUF9PVkVSTE9BRAoKI2VuZGlmIC8vIGlmbmRlZiBfX09QRU5NUF9BTURHQ05fXwojZW5kaWYgLy8gZGVmaW5lZChfX2NwbHVzcGx1cykKCiNpZm5kZWYgX19PUEVOTVBfQU1ER0NOX18KLy8gRGVmaW5lIHRoZXNlIG92ZXJsb2FkcyBpbnNpZGUgdGhlIG5hbWVzcGFjZSBvdXIgc3RhbmRhcmQgbGlicmFyeSB1c2VzLgojaWYgIWRlZmluZWQoX19ISVBDQ19SVENfXykKI2lmZGVmIF9MSUJDUFBfQkVHSU5fTkFNRVNQQUNFX1NURApfTElCQ1BQX0JFR0lOX05BTUVTUEFDRV9TVEQKI2Vsc2UKbmFtZXNwYWNlIHN0ZCB7CiNpZmRlZiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgojZW5kaWYgLy8gX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmIC8vIF9MSUJDUFBfQkVHSU5fTkFNRVNQQUNFX1NURAoKLy8gUHVsbCB0aGUgbmV3IG92ZXJsb2FkcyB3ZSBkZWZpbmVkIGFib3ZlIGludG8gbmFtZXNwYWNlIHN0ZC4KLy8gdXNpbmcgOjphYnM7IC0gVGhpcyBtYXkgYmUgY29uc2lkZXJlZCBmb3IgQysrLgp1c2luZyA6OmFjb3M7CnVzaW5nIDo6YWNvc2g7CnVzaW5nIDo6YXNpbjsKdXNpbmcgOjphc2luaDsKdXNpbmcgOjphdGFuOwp1c2luZyA6OmF0YW4yOwp1c2luZyA6OmF0YW5oOwp1c2luZyA6OmNicnQ7CnVzaW5nIDo6Y2VpbDsKdXNpbmcgOjpjb3B5c2lnbjsKdXNpbmcgOjpjb3M7CnVzaW5nIDo6Y29zaDsKdXNpbmcgOjplcmY7CnVzaW5nIDo6ZXJmYzsKdXNpbmcgOjpleHA7CnVzaW5nIDo6ZXhwMjsKdXNpbmcgOjpleHBtMTsKdXNpbmcgOjpmYWJzOwp1c2luZyA6OmZkaW07CnVzaW5nIDo6Zmxvb3I7CnVzaW5nIDo6Zm1hOwp1c2luZyA6OmZtYXg7CnVzaW5nIDo6Zm1pbjsKdXNpbmcgOjpmbW9kOwp1c2luZyA6OmZwY2xhc3NpZnk7CnVzaW5nIDo6ZnJleHA7CnVzaW5nIDo6aHlwb3Q7CnVzaW5nIDo6aWxvZ2I7CnVzaW5nIDo6aXNmaW5pdGU7CnVzaW5nIDo6aXNncmVhdGVyOwp1c2luZyA6OmlzZ3JlYXRlcmVxdWFsOwp1c2luZyA6OmlzbGVzczsKdXNpbmcgOjppc2xlc3NlcXVhbDsKdXNpbmcgOjppc2xlc3NncmVhdGVyOwp1c2luZyA6Omlzbm9ybWFsOwp1c2luZyA6OmlzdW5vcmRlcmVkOwp1c2luZyA6OmxkZXhwOwp1c2luZyA6OmxnYW1tYTsKdXNpbmcgOjpsbHJpbnQ7CnVzaW5nIDo6bGxyb3VuZDsKdXNpbmcgOjpsb2c7CnVzaW5nIDo6bG9nMTA7CnVzaW5nIDo6bG9nMXA7CnVzaW5nIDo6bG9nMjsKdXNpbmcgOjpsb2diOwp1c2luZyA6OmxyaW50Owp1c2luZyA6Omxyb3VuZDsKdXNpbmcgOjptb2RmOwovLyB1c2luZyA6Om5hbjsgLSBUaGlzIG1heSBiZSBjb25zaWRlcmVkIGZvciBDKysuCi8vIHVzaW5nIDo6bmFuZjsgLSBUaGlzIG1heSBiZSBjb25zaWRlcmVkIGZvciBDKysuCi8vIHVzaW5nIDo6bmFubDsgLSBUaGlzIGlzIG5vdCB5ZXQgZGVmaW5lZC4KdXNpbmcgOjpuZWFyYnlpbnQ7CnVzaW5nIDo6bmV4dGFmdGVyOwovLyB1c2luZyA6Om5leHR0b3dhcmQ7IC0gT21pdCB0aGlzIHNpbmNlIHdlIGRvIG5vdCBoYXZlIGEgZGVmaW5pdGlvbi4KdXNpbmcgOjpwb3c7CnVzaW5nIDo6cmVtYWluZGVyOwp1c2luZyA6OnJlbXF1bzsKdXNpbmcgOjpyaW50Owp1c2luZyA6OnJvdW5kOwp1c2luZyA6OnNjYWxibG47CnVzaW5nIDo6c2NhbGJuOwp1c2luZyA6OnNpZ25iaXQ7CnVzaW5nIDo6c2luOwp1c2luZyA6OnNpbmg7CnVzaW5nIDo6c3FydDsKdXNpbmcgOjp0YW47CnVzaW5nIDo6dGFuaDsKdXNpbmcgOjp0Z2FtbWE7CnVzaW5nIDo6dHJ1bmM7CgovLyBXZWxsIHRoaXMgaXMgZnVuOiBXZSBuZWVkIHRvIHB1bGwgdGhlc2Ugc3ltYm9scyBpbiBmb3IgbGliYysrLCBidXQgd2UgY2FuJ3QKLy8gcHVsbCB0aGVtIGluIHdpdGggbGlic3RkYysrLCBiZWNhdXNlIGl0cyA6OmlzaW5mIGFuZCA6OmlzbmFuIGFyZSBkaWZmZXJlbnQKLy8gdGhhbiBpdHMgc3RkOjppc2luZiBhbmQgc3RkOjppc25hbi4KI2lmbmRlZiBfX0dMSUJDWFhfXwp1c2luZyA6OmlzaW5mOwp1c2luZyA6OmlzbmFuOwojZW5kaWYKCi8vIEZpbmFsbHksIHB1bGwgdGhlICJmb29iYXJmIiBmdW5jdGlvbnMgdGhhdCBISVAgZGVmaW5lcyBpbnRvIHN0ZC4KdXNpbmcgOjphY29zZjsKdXNpbmcgOjphY29zaGY7CnVzaW5nIDo6YXNpbmY7CnVzaW5nIDo6YXNpbmhmOwp1c2luZyA6OmF0YW4yZjsKdXNpbmcgOjphdGFuZjsKdXNpbmcgOjphdGFuaGY7CnVzaW5nIDo6Y2JydGY7CnVzaW5nIDo6Y2VpbGY7CnVzaW5nIDo6Y29weXNpZ25mOwp1c2luZyA6OmNvc2Y7CnVzaW5nIDo6Y29zaGY7CnVzaW5nIDo6ZXJmY2Y7CnVzaW5nIDo6ZXJmZjsKdXNpbmcgOjpleHAyZjsKdXNpbmcgOjpleHBmOwp1c2luZyA6OmV4cG0xZjsKdXNpbmcgOjpmYWJzZjsKdXNpbmcgOjpmZGltZjsKdXNpbmcgOjpmbG9vcmY7CnVzaW5nIDo6Zm1hZjsKdXNpbmcgOjpmbWF4ZjsKdXNpbmcgOjpmbWluZjsKdXNpbmcgOjpmbW9kZjsKdXNpbmcgOjpmcmV4cGY7CnVzaW5nIDo6aHlwb3RmOwp1c2luZyA6Omlsb2diZjsKdXNpbmcgOjpsZGV4cGY7CnVzaW5nIDo6bGdhbW1hZjsKdXNpbmcgOjpsbHJpbnRmOwp1c2luZyA6Omxscm91bmRmOwp1c2luZyA6OmxvZzEwZjsKdXNpbmcgOjpsb2cxcGY7CnVzaW5nIDo6bG9nMmY7CnVzaW5nIDo6bG9nYmY7CnVzaW5nIDo6bG9nZjsKdXNpbmcgOjpscmludGY7CnVzaW5nIDo6bHJvdW5kZjsKdXNpbmcgOjptb2RmZjsKdXNpbmcgOjpuZWFyYnlpbnRmOwp1c2luZyA6Om5leHRhZnRlcmY7Ci8vIHVzaW5nIDo6bmV4dHRvd2FyZGY7IC0gT21pdCB0aGlzIHNpbmNlIHdlIGRvIG5vdCBoYXZlIGEgZGVmaW5pdGlvbi4KdXNpbmcgOjpwb3dmOwp1c2luZyA6OnJlbWFpbmRlcmY7CnVzaW5nIDo6cmVtcXVvZjsKdXNpbmcgOjpyaW50ZjsKdXNpbmcgOjpyb3VuZGY7CnVzaW5nIDo6c2NhbGJsbmY7CnVzaW5nIDo6c2NhbGJuZjsKdXNpbmcgOjpzaW5mOwp1c2luZyA6OnNpbmhmOwp1c2luZyA6OnNxcnRmOwp1c2luZyA6OnRhbmY7CnVzaW5nIDo6dGFuaGY7CnVzaW5nIDo6dGdhbW1hZjsKdXNpbmcgOjp0cnVuY2Y7CgojaWZkZWYgX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURApfTElCQ1BQX0VORF9OQU1FU1BBQ0VfU1RECiNlbHNlCiNpZmRlZiBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lPTgpfR0xJQkNYWF9FTkRfTkFNRVNQQUNFX1ZFUlNJT04KI2VuZGlmIC8vIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCn0gLy8gbmFtZXNwYWNlIHN0ZAojZW5kaWYgLy8gX0xJQkNQUF9FTkRfTkFNRVNQQUNFX1NURAojZW5kaWYgLy8gIWRlZmluZWQoX19ISVBDQ19SVENfXykKCi8vIERlZmluZSBkZXZpY2Utc2lkZSBtYXRoIGZ1bmN0aW9ucyBmcm9tIDx5bWF0aC5oPiBvbiBNU1ZDLgojaWYgIWRlZmluZWQoX19ISVBDQ19SVENfXykKI2lmIGRlZmluZWQoX01TQ19WRVIpCgovLyBCZWZvcmUgVlMyMDE5LCBgPHltYXRoLmg+YCBpcyBhbHNvIGluY2x1ZGVkIGluIGA8bGltaXRzPmAgYW5kIG90aGVyIGhlYWRlcnMuCi8vIEJ1dCwgZnJvbSBWUzIwMTksIGl0J3Mgb25seSBpbmNsdWRlZCBpbiBgPGNvbXBsZXg+YC4gTmVlZCB0byBpbmNsdWRlCi8vIGA8eW1hdGguaD5gIGhlcmUgdG8gZW5zdXJlIEMgZnVuY3Rpb25zIGRlY2xhcmVkIHRoZXJlIHdvbid0IGJlIG1hcmtkZWQgYXMKLy8gYF9faG9zdF9fYCBhbmQgYF9fZGV2aWNlX19gIHRocm91Z2ggYDxjb21wbGV4PmAgd3JhcHBlci4KI2luY2x1ZGUgPHltYXRoLmg+CgojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKZXh0ZXJuICJDIiB7CiNlbmRpZiAvLyBkZWZpbmVkKF9fY3BsdXNwbHVzKQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgZG91YmxlIF9Db3NoKGRvdWJsZSB4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB5KSB7CiAgcmV0dXJuIGNvc2goeCkgKiB5Owp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKSBmbG9hdCBfRkNvc2goZmxvYXQgeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB5KSB7CiAgcmV0dXJuIGNvc2hmKHgpICogeTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgc2hvcnQgX0R0ZXN0KGRvdWJsZSAqcCkgewogIHJldHVybiBmcGNsYXNzaWZ5KCpwKTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgc2hvcnQgX0ZEdGVzdChmbG9hdCAqcCkgewogIHJldHVybiBmcGNsYXNzaWZ5KCpwKTsKfQpfX0RFVklDRV9fIF9fQ09OU1RFWFBSX18gX19hdHRyaWJ1dGVfXygob3ZlcmxvYWRhYmxlKSkgZG91YmxlIF9TaW5oKGRvdWJsZSB4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdWJsZSB5KSB7CiAgcmV0dXJuIHNpbmgoeCkgKiB5Owp9Cl9fREVWSUNFX18gX19DT05TVEVYUFJfXyBfX2F0dHJpYnV0ZV9fKChvdmVybG9hZGFibGUpKSBmbG9hdCBfRlNpbmgoZmxvYXQgeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB5KSB7CiAgcmV0dXJuIHNpbmhmKHgpICogeTsKfQojaWYgZGVmaW5lZChfX2NwbHVzcGx1cykKfQojZW5kaWYgLy8gZGVmaW5lZChfX2NwbHVzcGx1cykKI2VuZGlmIC8vIGRlZmluZWQoX01TQ19WRVIpCiNlbmRpZiAvLyAhZGVmaW5lZChfX0hJUENDX1JUQ19fKQojZW5kaWYgLy8gaWZuZGVmIF9fT1BFTk1QX0FNREdDTl9fCgojcHJhZ21hIHBvcF9tYWNybygiX19ERVZJQ0VfXyIpCiNwcmFnbWEgcG9wX21hY3JvKCJfX0NPTlNURVhQUl9fIikKCiNlbmRpZiAvLyBfX0NMQU5HX0hJUF9DTUFUSF9IX18KAC8qPT09LS0tLSBhdng1MTJ2bGRxaW50cmluLmggLSBBVlg1MTJWTCBhbmQgQVZYNTEyRFEgaW50cmluc2ljcyAtLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxkcWludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTERRSU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMRFFJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmRxIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmRxIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X211bGxvX2VwaTY0IChfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpICgoX192NGR1KSBfX0EgKiAoX192NGR1KSBfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19tdWxsb19lcGk2NChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSwgX19tMjU2aSBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfbXVsbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9tdWxsb19lcGk2NChfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQikgewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9tdWxsb19lcGk2NChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tdWxsb19lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjJkdSkgX19BICogKF9fdjJkdSkgX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfbXVsbG9fZXBpNjQoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKSB7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX211bGxvX2VwaTY0KF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfbXVsbG9fZXBpNjQoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fbXVsbG9fZXBpNjQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRub3RfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfYW5kbm90X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2FuZG5vdF9wZChfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2FuZG5vdF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19hbmRub3RfcGQoX19tMTI4ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKSB7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fYW5kbm90X3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FuZG5vdF9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2FuZG5vdF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2FuZG5vdF9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfYW5kbm90X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hbmRub3RfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2FuZG5vdF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kbm90X3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9hbmRub3RfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2FuZG5vdF9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fYW5kbm90X3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYW5kX3BkKF9fbTI1NmQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BLCBfX20yNTZkIF9fQikgewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2FuZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9hbmRfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9hbmRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYW5kX3BkKF9fbTEyOGQgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2FuZF9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRfcGQoX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9hbmRfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19hbmRfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2FuZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYW5kX3BzKF9fbW1hc2s4IF9fVSwgX19tMjU2IF9fQSwgX19tMjU2IF9fQikgewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9hbmRfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2FuZF9wcyhfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fYW5kX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9hbmRfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX2FuZF9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3hvcl9wZChfX20yNTZkIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl94b3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfeG9yX3BkKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfeG9yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX3hvcl9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV94b3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfeG9yX3BkIChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3hvcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX3hvcl9wcyhfX20yNTYgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfeG9yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel94b3JfcHMoX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3hvcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfeG9yX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV94b3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X3hvcl9wcyhfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EsIF9fbTEyOCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1feG9yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfb3JfcGQoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EsIF9fbTI1NmQgX19CKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfb3JfcGQoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfb3JfcGQoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSwgX19tMjU2ZCBfX0IpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9vcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19vcl9wZChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9vcl9wZChfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9vcl9wZChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX29yX3BkKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfb3JfcHMoX19tMjU2IF9fVywgX19tbWFzazggX19VLCBfX20yNTYgX19BLCBfX20yNTYgX19CKSB7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X29yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9vcl9wcyhfX21tYXNrOCBfX1UsIF9fbTI1NiBfX0EsIF9fbTI1NiBfX0IpIHsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfb3JfcHMoX19BLCBfX0IpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX29yX3BzKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSwgX19tMTI4IF9fQikgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBzXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9vcl9wcyhfX0EsIF9fQiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfb3JfcHMoX19tbWFzazggX19VLCBfX20xMjggX19BLCBfX20xMjggX19CKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX29yX3BzKF9fQSwgX19CKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHBkX2VwaTY0IChfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwZF9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBkX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cGRfZXBpNjQgKF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBkX2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQycXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRwZF9lcHU2NCAoX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHBkX2VwdTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBkX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHBkX2VwdTY0IChfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cGQydXFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0cGRfZXB1NjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwZDJ1cXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cGRfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBkMnVxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0cHNfZXBpNjQgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0cHNfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBzX2VwaTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnRwc19lcGk2NCAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRwc19lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cHNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMycXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHBzX2VwdTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRwc19lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dHBzX2VwdTY0IChfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0cHNfZXB1NjQgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHBzMnVxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHBzX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnRwczJ1cXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX19XLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0cHNfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0cHMydXFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRlcGk2NF9wZCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjJkaSlfX0EsIF9fdjJkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwaTY0X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwaTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcGk2NF9wZCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwaTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXBpNjRfcGQgKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0ZGkpX19BLCBfX3Y0ZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcGk2NF9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpNjRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcGk2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXBpNjRfcHMgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnRlcGk2NF9wcyAoX19tMTI4IF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4KSBfX2J1aWx0aW5faWEzMl9jdnRxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2N2dGVwaTY0X3BzIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2N2dHFxMnBzMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwaTY0X3BzIChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0ZGkpX19BLCBfX3Y0c2YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwaTY0X3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tMjU2X2N2dGVwaTY0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXBpNjRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW0yNTZfY3Z0ZXBpNjRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRwZF9lcGk2NCAoX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwZF9lcGk2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cGRfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBkX2VwaTY0IChfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBkX2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwZF9lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnR0cGRfZXB1NjQgKF9fbTEyOGQgX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxMTI4X21hc2sgKChfX3YyZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0dHBkX2VwdTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhkIF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTEyOF9tYXNrICgoX192MmRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cGRfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4ZCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXExMjhfbWFzayAoKF9fdjJkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dHRwZF9lcHU2NCAoX19tMjU2ZCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwZDJ1cXEyNTZfbWFzayAoKF9fdjRkZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnR0cGRfZXB1NjQgKF9fbTI1NmkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmQgX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cGQydXFxMjU2X21hc2sgKChfX3Y0ZGYpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwZF9lcHU2NCAoX19tbWFzazggX19VLCBfX20yNTZkIF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBkMnVxcTI1Nl9tYXNrICgoX192NGRmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0dHBzX2VwaTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXExMjhfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjJkaSkgX21tX3NldHplcm9fc2kxMjgoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgLTEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza19jdnR0cHNfZXBpNjQgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cHNfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxMTI4X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3YyZGkpIF9tbV9zZXR6ZXJvX3NpMTI4KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jdnR0cHNfZXBpNjQgKF9fbTEyOCBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dHRwczJxcTI1Nl9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NGRpKSBfbW0yNTZfc2V0emVyb19zaTI1NigpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dHRwc19lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwc19lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMycXEyNTZfbWFzayAoKF9fdjRzZikgX19BLAogICAgICAgICAgICAgICAgKF9fdjRkaSkgX21tMjU2X3NldHplcm9fc2kyNTYoKSwKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2N2dHRwc19lcHU2NCAoX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dHRwc19lcHU2NCAoX19tMTI4aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfX1csCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnR0cHNfZXB1NjQgKF9fbW1hc2s4IF9fVSwgX19tMTI4IF9fQSkgewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfY3Z0dHBzMnVxcTEyOF9tYXNrICgoX192NHNmKSBfX0EsCiAgICAgICAgICAgICAgICAoX192MmRpKSBfbW1fc2V0emVyb19zaTEyOCgpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSBfX1UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0dHBzX2VwdTY0IChfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIC0xKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfY3Z0dHBzX2VwdTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2N2dHRwc19lcHU2NCAoX19tbWFzazggX19VLCBfX20xMjggX19BKSB7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl9jdnR0cHMydXFxMjU2X21hc2sgKChfX3Y0c2YpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0ZGkpIF9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jdnRlcHU2NF9wZCAoX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjJkdSlfX0EsIF9fdjJkZik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2N2dGVwdTY0X3BkIChfX20xMjhkIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwdTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jdnRlcHU2NF9wZCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkgewogIHJldHVybiAoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX2N2dGVwdTY0X3BkKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY3Z0ZXB1NjRfcGQgKF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0ZHUpX19BLCBfX3Y0ZGYpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jdnRlcHU2NF9wZCAoX19tMjU2ZCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcHU2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXB1NjRfcGQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9jdnRlcHU2NF9wZChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fY3Z0ZXB1NjRfcHMgKF9fbTEyOGkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpIF9fYnVpbHRpbl9pYTMyX2N2dHVxcTJwczEyOF9tYXNrICgoX192MmRpKSBfX0EsCiAgICAgICAgICAgICAgICAoX192NHNmKSBfbW1fc2V0emVyb19wcygpLAogICAgICAgICAgICAgICAgKF9fbW1hc2s4KSAtMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY3Z0ZXB1NjRfcHMgKF9fbTEyOCBfX1csIF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9fVywKICAgICAgICAgICAgICAgIChfX21tYXNrOCkgX19VKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfY3Z0ZXB1NjRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMTI4aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOCkgX19idWlsdGluX2lhMzJfY3Z0dXFxMnBzMTI4X21hc2sgKChfX3YyZGkpIF9fQSwKICAgICAgICAgICAgICAgIChfX3Y0c2YpIF9tbV9zZXR6ZXJvX3BzKCksCiAgICAgICAgICAgICAgICAoX19tbWFzazgpIF9fVSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2N2dGVwdTY0X3BzIChfX20yNTZpIF9fQSkgewogIHJldHVybiAoX19tMTI4KV9fYnVpbHRpbl9jb252ZXJ0dmVjdG9yKChfX3Y0ZHUpX19BLCBfX3Y0c2YpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2N2dGVwdTY0X3BzIChfX20xMjggX19XLCBfX21tYXNrOCBfX1UsIF9fbTI1NmkgX19BKSB7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tMjU2X2N2dGVwdTY0X3BzKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY3Z0ZXB1NjRfcHMgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpIHsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9zZWxlY3Rwc18xMjgoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW0yNTZfY3Z0ZXB1NjRfcHMoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpKTsKfQoKI2RlZmluZSBfbW1fcmFuZ2VfcGQoQSwgQiwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMTI4X21hc2soKF9fdjJkZikoX19tMTI4ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZilfbW1fc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19yYW5nZV9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yYW5nZV9wZChVLCBBLCBCLCBDKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcmFuZ2VfcGQoQSwgQiwgQykgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yYW5nZXBkMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKEIpLCAoaW50KShDKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yYW5nZV9wZChXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yYW5nZV9wZChVLCBBLCBCLCBDKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3JhbmdlcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fcmFuZ2VfcHMoQSwgQiwgQykgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19yYW5nZV9wcyhXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmFuZ2VwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yYW5nZV9wcyhVLCBBLCBCLCBDKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmFuZ2VwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcmFuZ2VfcHMoQSwgQiwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JhbmdlcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoQiksIChpbnQpKEMpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yYW5nZV9wcyhXLCBVLCBBLCBCLCBDKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcmFuZ2VwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShXKSwgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yYW5nZV9wcyhVLCBBLCBCLCBDKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcmFuZ2VwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZikoX19tMjU2KShCKSwgKGludCkoQyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fcmVkdWNlX3BkKEEsIEIpIFwKICAoKF9fbTEyOGQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQxMjhfbWFzaygoX192MmRmKShfX20xMjhkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW1fbWFza19yZWR1Y2VfcGQoVywgVSwgQSwgQikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2VfcGQoVSwgQSwgQikgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfcmVkdWNlX3BkKEEsIEIpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfcmVkdWNlcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9zZXR6ZXJvX3BkKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19yZWR1Y2VfcGQoVywgVSwgQSwgQikgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9yZWR1Y2VfcGQoVSwgQSwgQikgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwZDI1Nl9tYXNrKChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW1fcmVkdWNlX3BzKEEsIEIpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczEyOF9tYXNrKChfX3Y0c2YpKF9fbTEyOCkoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNmKV9tbV9zZXR6ZXJvX3BzKCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbV9tYXNrX3JlZHVjZV9wcyhXLCBVLCBBLCBCKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfcmVkdWNlcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9tYXNrel9yZWR1Y2VfcHMoVSwgQSwgQikgXAogICgoX19tMTI4KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpX21tX3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9yZWR1Y2VfcHMoQSwgQikgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JlZHVjZXBzMjU2X21hc2soKF9fdjhzZikoX19tMjU2KShBKSwgKGludCkoQiksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X3NldHplcm9fcHMoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfcmVkdWNlX3BzKFcsIFUsIEEsIEIpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9yZWR1Y2VwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKEIpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFcpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X3JlZHVjZV9wcyhVLCBBLCBCKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfcmVkdWNlcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShCKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzZilfbW0yNTZfc2V0emVyb19wcygpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92ZXBpMzJfbWFzayAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jdnRkMm1hc2sxMjggKChfX3Y0c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbW1hc2s4IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbW92ZXBpMzJfbWFzayAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbW1hc2s4KSBfX2J1aWx0aW5faWEzMl9jdnRkMm1hc2syNTYgKChfX3Y4c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tb3ZtX2VwaTMyIChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2syZDEyOCAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21vdm1fZXBpMzIgKF9fbW1hc2s4IF9fQSkKewogIHJldHVybiAoX19tMjU2aSkgX19idWlsdGluX2lhMzJfY3Z0bWFzazJkMjU2IChfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbW92bV9lcGk2NCAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl9jdnRtYXNrMnExMjggKF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZtX2VwaTY0IChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX2N2dG1hc2sycTI1NiAoX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tb3ZlcGk2NF9tYXNrIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2N2dHEybWFzazEyOCAoKF9fdjJkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tbWFzazggX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tb3ZlcGk2NF9tYXNrIChfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tbWFzazgpIF9fYnVpbHRpbl9pYTMyX2N2dHEybWFzazI1NiAoKF9fdjRkaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2YzMngyIChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX0EsIChfX3Y0c2YpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdF9mMzJ4MiAoX19tMjU2IF9fTywgX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2Jyb2FkY2FzdF9mMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2t6X2Jyb2FkY2FzdF9mMzJ4MiAoX19tbWFzazggX19NLCBfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfc2VsZWN0cHNfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpX21tMjU2X2Jyb2FkY2FzdF9mMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKV9tbTI1Nl9zZXR6ZXJvX3BzKCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2Y2NHgyKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19BLCAoX192MmRmKV9fQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2Jyb2FkY2FzdF9mNjR4MihfX20yNTZkIF9fTywgX19tbWFzazggX19NLCBfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9zZWxlY3RwZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9icm9hZGNhc3RfZjY0eDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RfZjY0eDIgKF9fbW1hc2s4IF9fTSwgX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfYnJvYWRjYXN0X2Y2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZilfbW0yNTZfc2V0emVyb19wZCgpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdF9pMzJ4MiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfYnJvYWRjYXN0X2kzMngyIChfX20xMjhpIF9fTywgX19tbWFzazggX19NLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19NLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9icm9hZGNhc3RfaTMyeDIoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza3pfYnJvYWRjYXN0X2kzMngyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2Jyb2FkY2FzdF9pMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0X2kzMngyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNpKV9fQSwgKF9fdjRzaSlfX0EsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDAsIDEsIDAsIDEsIDAsIDEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19icm9hZGNhc3RfaTMyeDIgKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X2Jyb2FkY2FzdF9pMzJ4MihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fTyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9icm9hZGNhc3RfaTMyeDIgKF9fbW1hc2s4IF9fTSwgX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0ZF8yNTYoKF9fbW1hc2s4KV9fTSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhzaSlfbW0yNTZfYnJvYWRjYXN0X2kzMngyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpX21tMjU2X3NldHplcm9fc2kyNTYoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9icm9hZGNhc3RfaTY0eDIoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkaSlfX0EsIChfX3YyZGkpX19BLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAxKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X21hc2tfYnJvYWRjYXN0X2k2NHgyKF9fbTI1NmkgX19PLCBfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYnJvYWRjYXN0X2k2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX08pOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfYnJvYWRjYXN0X2k2NHgyIChfX21tYXNrOCBfX00sIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHFfMjU2KChfX21tYXNrOClfX00sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfYnJvYWRjYXN0X2k2NHgyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKI2RlZmluZSBfbW0yNTZfZXh0cmFjdGY2NHgyX3BkKEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3VuZGVmaW5lZF9wZCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19leHRyYWN0ZjY0eDJfcGQoVywgVSwgQSwgaW1tKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RmNjR4Ml8yNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVyksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCkoVSkpKQoKI2RlZmluZSBfbW0yNTZfbWFza3pfZXh0cmFjdGY2NHgyX3BkKFUsIEEsIGltbSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9leHRyYWN0ZjY0eDJfMjU2X21hc2soKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpX21tX3NldHplcm9fcGQoKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0aTY0eDJfZXBpNjQoQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4Ml8yNTZfbWFzaygoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGkpX21tX3VuZGVmaW5lZF9zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2V4dHJhY3RpNjR4Ml9lcGk2NChXLCBVLCBBLCBpbW0pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfZXh0cmFjdGk2NHgyXzI1Nl9tYXNrKChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShXKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9leHRyYWN0aTY0eDJfZXBpNjQoVSwgQSwgaW1tKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2V4dHJhY3RpNjR4Ml8yNTZfbWFzaygoX192NGRpKShfX20yNTZpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSlfbW1fc2V0emVyb19zaTEyOCgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2luc2VydGY2NHgyKEEsIEIsIGltbSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9pbnNlcnRmNjR4Ml8yNTYoKF9fdjRkZikoX19tMjU2ZCkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKEIpLCAoaW50KShpbW0pKSkKCiNkZWZpbmUgX21tMjU2X21hc2tfaW5zZXJ0ZjY0eDIoVywgVSwgQSwgQiwgaW1tKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3NlbGVjdHBkXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKV9tbTI1Nl9pbnNlcnRmNjR4MigoQSksIChCKSwgKGltbSkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShXKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrel9pbnNlcnRmNjR4MihVLCBBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2VsZWN0cGRfMjU2KChfX21tYXNrOCkoVSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X2luc2VydGY2NHgyKChBKSwgKEIpLCAoaW1tKSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpX21tMjU2X3NldHplcm9fcGQoKSkpCgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRpNjR4MihBLCBCLCBpbW0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfaW5zZXJ0aTY0eDJfMjU2KChfX3Y0ZGkpKF9fbTI1NmkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKGludCkoaW1tKSkpCgojZGVmaW5lIF9tbTI1Nl9tYXNrX2luc2VydGk2NHgyKFcsIFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfaW5zZXJ0aTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpKF9fbTI1NmkpKFcpKSkKCiNkZWZpbmUgX21tMjU2X21hc2t6X2luc2VydGk2NHgyKFUsIEEsIEIsIGltbSkgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpKFUpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfaW5zZXJ0aTY0eDIoKEEpLCAoQiksIChpbW0pKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX21tMjU2X3NldHplcm9fc2kyNTYoKSkpCgojZGVmaW5lIF9tbV9tYXNrX2ZwY2xhc3NfcGRfbWFzayhVLCBBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tX2ZwY2xhc3NfcGRfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwZDEyOF9tYXNrKChfX3YyZGYpKF9fbTEyOGQpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19mcGNsYXNzX3BkX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbTI1Nl9mcGNsYXNzX3BkX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcGQyNTZfbWFzaygoX192NGRmKShfX20yNTZkKShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KS0xKSkKCiNkZWZpbmUgX21tX21hc2tfZnBjbGFzc19wc19tYXNrKFUsIEEsIGltbSkgXAogICgoX19tbWFzazgpX19idWlsdGluX2lhMzJfZnBjbGFzc3BzMTI4X21hc2soKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoaW1tKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fbW1hc2s4KShVKSkpCgojZGVmaW5lIF9tbV9mcGNsYXNzX3BzX21hc2soQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcHMxMjhfbWFzaygoX192NHNmKShfX20xMjgpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpLTEpKQoKI2RlZmluZSBfbW0yNTZfbWFza19mcGNsYXNzX3BzX21hc2soVSwgQSwgaW1tKSBcCiAgKChfX21tYXNrOClfX2J1aWx0aW5faWEzMl9mcGNsYXNzcHMyNTZfbWFzaygoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShpbW0pLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX19tbWFzazgpKFUpKSkKCiNkZWZpbmUgX21tMjU2X2ZwY2xhc3NfcHNfbWFzayhBLCBpbW0pIFwKICAoKF9fbW1hc2s4KV9fYnVpbHRpbl9pYTMyX2ZwY2xhc3NwczI1Nl9tYXNrKChfX3Y4c2YpKF9fbTI1NikoQSksIChpbnQpKGltbSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX21tYXNrOCktMSkpCgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZgoALyo9PT0tLS0tIGF2eGludHJpbi5oIC0gQVZYIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxhdnhpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPGltbWludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fQVZYSU5UUklOX0gKI2RlZmluZSBfX0FWWElOVFJJTl9ICgp0eXBlZGVmIGRvdWJsZSBfX3Y0ZGYgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CnR5cGVkZWYgZmxvYXQgX192OHNmIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIGxvbmcgbG9uZyBfX3Y0ZGkgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CnR5cGVkZWYgaW50IF9fdjhzaSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKdHlwZWRlZiBzaG9ydCBfX3YxNmhpIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIGNoYXIgX192MzJxaSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKCi8qIFVuc2lnbmVkIHR5cGVzICovCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIF9fdjRkdSBfX2F0dHJpYnV0ZV9fICgoX192ZWN0b3Jfc2l6ZV9fICgzMikpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX192OHN1IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IF9fdjE2aHUgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpKSk7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3YzMnF1IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDMyKSkpOwoKLyogV2UgbmVlZCBhbiBleHBsaWNpdGx5IHNpZ25lZCB2YXJpYW50IGZvciBjaGFyLiBOb3RlIHRoYXQgdGhpcyBzaG91bGRuJ3QKICogYXBwZWFyIGluIHRoZSBpbnRlcmZhY2UgdGhvdWdoLiAqLwp0eXBlZGVmIHNpZ25lZCBjaGFyIF9fdjMycXMgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSkpOwoKdHlwZWRlZiBmbG9hdCBfX20yNTYgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpLCBfX2FsaWduZWRfXygzMikpKTsKdHlwZWRlZiBkb3VibGUgX19tMjU2ZCBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMzIpLCBfX2FsaWduZWRfXygzMikpKTsKdHlwZWRlZiBsb25nIGxvbmcgX19tMjU2aSBfX2F0dHJpYnV0ZV9fKChfX3ZlY3Rvcl9zaXplX18oMzIpLCBfX2FsaWduZWRfXygzMikpKTsKCnR5cGVkZWYgZmxvYXQgX19tMjU2X3UgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMzIpLCBfX2FsaWduZWRfXygxKSkpOwp0eXBlZGVmIGRvdWJsZSBfX20yNTZkX3UgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fKDMyKSwgX19hbGlnbmVkX18oMSkpKTsKdHlwZWRlZiBsb25nIGxvbmcgX19tMjU2aV91IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXygzMiksIF9fYWxpZ25lZF9fKDEpKSk7CgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYXZ4IiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eCIpLCBfX21pbl92ZWN0b3Jfd2lkdGhfXygxMjgpKSkKCi8qIEFyaXRobWV0aWMgKi8KLy8vIEFkZHMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFERFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzdW1zIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2FkZF9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpKChfX3Y0ZGYpX19hKyhfX3Y0ZGYpX19iKTsKfQoKLy8vIEFkZHMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUREUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHN1bXMgb2YgYm90aAovLy8gICAgb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hZGRfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KSgoX192OHNmKV9fYSsoX192OHNmKV9fYik7Cn0KCi8vLyBTdWJ0cmFjdHMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNVQlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWludWVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHN1YnRyYWhlbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBkaWZmZXJlbmNlcyBiZXR3ZWVuCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N1Yl9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpKChfX3Y0ZGYpX19hLShfX3Y0ZGYpX19iKTsKfQoKLy8vIFN1YnRyYWN0cyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTVUJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbWludWVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc3VidHJhaGVuZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N1Yl9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKChfX3Y4c2YpX19hLShfX3Y4c2YpX19iKTsKfQoKLy8vIEFkZHMgdGhlIGV2ZW4taW5kZXhlZCB2YWx1ZXMgYW5kIHN1YnRyYWN0cyB0aGUgb2RkLWluZGV4ZWQgdmFsdWVzIG9mCi8vLyAgICB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQUREU1VCUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBsZWZ0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBhbHRlcm5hdGluZyBzdW1zCi8vLyAgICBhbmQgZGlmZmVyZW5jZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2FkZHN1Yl9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfYWRkc3VicGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIEFkZHMgdGhlIGV2ZW4taW5kZXhlZCB2YWx1ZXMgYW5kIHN1YnRyYWN0cyB0aGUgb2RkLWluZGV4ZWQgdmFsdWVzIG9mCi8vLyAgICB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZBRERTVUJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGFsdGVybmF0aW5nIHN1bXMgYW5kCi8vLyAgICBkaWZmZXJlbmNlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hZGRzdWJfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2FkZHN1YnBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8vLyBEaXZpZGVzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZESVZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGRpdmlkZW5kLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZGl2aXNvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHF1b3RpZW50cyBvZiBib3RoCi8vLyAgICBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9kaXZfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGRmKV9fYS8oX192NGRmKV9fYik7Cn0KCi8vLyBEaXZpZGVzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRJVlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBkaXZpZGVuZC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgZGl2aXNvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcXVvdGllbnRzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfZGl2X3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzZilfX2EvKF9fdjhzZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0gYW5kIHJldHVybnMgdGhlIGdyZWF0ZXIKLy8vICAgIG9mIGVhY2ggcGFpciBvZiB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BWFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbWF4aW11bSB2YWx1ZXMKLy8vICAgIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tYXhfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX21heHBkMjU2KChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdIGFuZCByZXR1cm5zIHRoZSBncmVhdGVyCi8vLyAgICBvZiBlYWNoIHBhaXIgb2YgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVhQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1heGltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tYXhfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX21heHBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8vLyBDb21wYXJlcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSBhbmQgcmV0dXJucyB0aGUgbGVzc2VyCi8vLyAgICBvZiBlYWNoIHBhaXIgb2YgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNSU5QRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1pbmltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWluX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9taW5wZDI1NigoX192NGRmKV9fYSwgKF9fdjRkZilfX2IpOwp9CgovLy8gQ29tcGFyZXMgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSBhbmQgcmV0dXJucyB0aGUgbGVzc2VyCi8vLyAgICBvZiBlYWNoIHBhaXIgb2YgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNSU5QUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1pbmltdW0gdmFsdWVzCi8vLyAgICBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9taW5fcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX21pbnBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8vLyBNdWx0aXBsaWVzIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNVUxQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X211bF9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpKChfX3Y0ZGYpX19hICogKF9fdjRkZilfX2IpOwp9CgovLy8gTXVsdGlwbGllcyB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNVUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHByb2R1Y3RzIG9mIGJvdGgKLy8vICAgIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbXVsX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzZilfX2EgKiAoX192OHNmKV9fYik7Cn0KCi8vLyBDYWxjdWxhdGVzIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNRUlRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc3F1YXJlIHJvb3RzIG9mIHRoZQovLy8gICAgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NxcnRfcGQoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc3FydHBkMjU2KChfX3Y0ZGYpX19hKTsKfQoKLy8vIENhbGN1bGF0ZXMgdGhlIHNxdWFyZSByb290cyBvZiB0aGUgdmFsdWVzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZTUVJUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBzcXVhcmUgcm9vdHMgb2YgdGhlCi8vLyAgICB2YWx1ZXMgaW4gdGhlIG9wZXJhbmQuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zcXJ0X3BzKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zcXJ0cHMyNTYoKF9fdjhzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgcmVjaXByb2NhbCBzcXVhcmUgcm9vdHMgb2YgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQKLy8vICAgIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUlNRUlRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJlY2lwcm9jYWwgc3F1YXJlCi8vLyAgICByb290cyBvZiB0aGUgdmFsdWVzIGluIHRoZSBvcGVyYW5kLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfcnNxcnRfcHMoX19tMjU2IF9fYSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3JzcXJ0cHMyNTYoKF9fdjhzZilfX2EpOwp9CgovLy8gQ2FsY3VsYXRlcyB0aGUgcmVjaXByb2NhbHMgb2YgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUkNQUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByZWNpcHJvY2FscyBvZiB0aGUKLy8vICAgIHZhbHVlcyBpbiB0aGUgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3JjcF9wcyhfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfcmNwcHMyNTYoKF9fdjhzZilfX2EpOwp9CgovLy8gUm91bmRzIHRoZSB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYXMgc3BlY2lmaWVkCi8vLyAgICBieSB0aGUgYnl0ZSBvcGVyYW5kLiBUaGUgc291cmNlIHZhbHVlcyBhcmUgcm91bmRlZCB0byBpbnRlZ2VyIHZhbHVlcyBhbmQKLy8vICAgIHJldHVybmVkIGFzIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmQgX21tMjU2X3JvdW5kX3BkKF9fbTI1NmQgViwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZST1VORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGludGVnZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHJvdW5kaW5nIG9wZXJhdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6NF0gYXJlIHJlc2VydmVkLiBcbgovLy8gICAgQml0IFszXSBpcyBhIHByZWNpc2lvbiBleGNlcHRpb24gdmFsdWU6IFxuCi8vLyAgICAgIDA6IEEgbm9ybWFsIFBFIGV4Y2VwdGlvbiBpcyB1c2VkLiBcbgovLy8gICAgICAxOiBUaGUgUEUgZmllbGQgaXMgbm90IHVwZGF0ZWQuIFxuCi8vLyAgICBCaXQgWzJdIGlzIHRoZSByb3VuZGluZyBjb250cm9sIHNvdXJjZTogXG4KLy8vICAgICAgMDogVXNlIGJpdHMgWzE6MF0gb2YgXGEgTS4gXG4KLy8vICAgICAgMTogVXNlIHRoZSBjdXJyZW50IE1YQ1NSIHNldHRpbmcuIFxuCi8vLyAgICBCaXRzIFsxOjBdIGNvbnRhaW4gdGhlIHJvdW5kaW5nIGNvbnRyb2wgZGVmaW5pdGlvbjogXG4KLy8vICAgICAgMDA6IE5lYXJlc3QuIFxuCi8vLyAgICAgIDAxOiBEb3dud2FyZCAodG93YXJkIG5lZ2F0aXZlIGluZmluaXR5KS4gXG4KLy8vICAgICAgMTA6IFVwd2FyZCAodG93YXJkIHBvc2l0aXZlIGluZmluaXR5KS4gXG4KLy8vICAgICAgMTE6IFRydW5jYXRlZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHJvdW5kZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9yb3VuZF9wZChWLCBNKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3JvdW5kcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoViksIChNKSkpCgovLy8gUm91bmRzIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gYXMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgYnl0ZSBvcGVyYW5kLiBUaGUgc291cmNlIHZhbHVlcyBhcmUgcm91bmRlZCB0byBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMgYW5kIHJldHVybmVkIGFzIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfcm91bmRfcHMoX19tMjU2IFYsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGludGVnZXIgdmFsdWUgdGhhdCBzcGVjaWZpZXMgdGhlIHJvdW5kaW5nIG9wZXJhdGlvbi4gXG4KLy8vICAgIEJpdHMgWzc6NF0gYXJlIHJlc2VydmVkLiBcbgovLy8gICAgQml0IFszXSBpcyBhIHByZWNpc2lvbiBleGNlcHRpb24gdmFsdWU6IFxuCi8vLyAgICAgIDA6IEEgbm9ybWFsIFBFIGV4Y2VwdGlvbiBpcyB1c2VkLiBcbgovLy8gICAgICAxOiBUaGUgUEUgZmllbGQgaXMgbm90IHVwZGF0ZWQuIFxuCi8vLyAgICBCaXQgWzJdIGlzIHRoZSByb3VuZGluZyBjb250cm9sIHNvdXJjZTogXG4KLy8vICAgICAgMDogVXNlIGJpdHMgWzE6MF0gb2YgXGEgTS4gXG4KLy8vICAgICAgMTogVXNlIHRoZSBjdXJyZW50IE1YQ1NSIHNldHRpbmcuIFxuCi8vLyAgICBCaXRzIFsxOjBdIGNvbnRhaW4gdGhlIHJvdW5kaW5nIGNvbnRyb2wgZGVmaW5pdGlvbjogXG4KLy8vICAgICAgMDA6IE5lYXJlc3QuIFxuCi8vLyAgICAgIDAxOiBEb3dud2FyZCAodG93YXJkIG5lZ2F0aXZlIGluZmluaXR5KS4gXG4KLy8vICAgICAgMTA6IFVwd2FyZCAodG93YXJkIHBvc2l0aXZlIGluZmluaXR5KS4gXG4KLy8vICAgICAgMTE6IFRydW5jYXRlZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcm91bmRlZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X3JvdW5kX3BzKFYsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9yb3VuZHBzMjU2KChfX3Y4c2YpKF9fbTI1NikoViksIChNKSkpCgovLy8gUm91bmRzIHVwIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBUaGUKLy8vICAgIHNvdXJjZSB2YWx1ZXMgYXJlIHJvdW5kZWQgdXAgdG8gaW50ZWdlciB2YWx1ZXMgYW5kIHJldHVybmVkIGFzIDY0LWJpdAovLy8gICAgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9jZWlsX3BkKF9fbTI1NmQgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSByb3VuZGVkIHVwIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfY2VpbF9wZChWKSAgX21tMjU2X3JvdW5kX3BkKChWKSwgX01NX0ZST1VORF9DRUlMKQoKLy8vIFJvdW5kcyBkb3duIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gICAgVGhlIHNvdXJjZSB2YWx1ZXMgYXJlIHJvdW5kZWQgZG93biB0byBpbnRlZ2VyIHZhbHVlcyBhbmQgcmV0dXJuZWQgYXMKLy8vICAgIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmQgX21tMjU2X2Zsb29yX3BkKF9fbTI1NmQgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSByb3VuZGVkIGRvd24KLy8vICAgIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfZmxvb3JfcGQoVikgX21tMjU2X3JvdW5kX3BkKChWKSwgX01NX0ZST1VORF9GTE9PUikKCi8vLyBSb3VuZHMgdXAgdGhlIHZhbHVlcyBzdG9yZWQgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhlCi8vLyAgICBzb3VyY2UgdmFsdWVzIGFyZSByb3VuZGVkIHVwIHRvIGludGVnZXIgdmFsdWVzIGFuZCByZXR1cm5lZCBhcwovLy8gICAgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9jZWlsX3BzKF9fbTI1NiBWKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUk9VTkRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSByb3VuZGVkIHVwIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfY2VpbF9wcyhWKSAgX21tMjU2X3JvdW5kX3BzKChWKSwgX01NX0ZST1VORF9DRUlMKQoKLy8vIFJvdW5kcyBkb3duIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFRoZQovLy8gICAgc291cmNlIHZhbHVlcyBhcmUgcm91bmRlZCBkb3duIHRvIGludGVnZXIgdmFsdWVzIGFuZCByZXR1cm5lZCBhcwovLy8gICAgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9mbG9vcl9wcyhfX20yNTYgVik7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlJPVU5EUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgcm91bmRlZCBkb3duIHZhbHVlcy4KI2RlZmluZSBfbW0yNTZfZmxvb3JfcHMoVikgX21tMjU2X3JvdW5kX3BzKChWKSwgX01NX0ZST1VORF9GTE9PUikKCi8qIExvZ2ljYWwgKi8KLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYW5kX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZCkoKF9fdjRkdSlfX2EgJiAoX192NGR1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hbmRfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiAoX19tMjU2KSgoX192OHN1KV9fYSAmIChfX3Y4c3UpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBBTkQgb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIHVzaW5nCi8vLyAgICB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORE5QRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGxlZnQgc291cmNlIG9wZXJhbmQuIFRoZQovLy8gICAgb25lJ3MgY29tcGxlbWVudCBvZiB0aGlzIHZhbHVlIGlzIHVzZWQgaW4gdGhlIGJpdHdpc2UgQU5ELgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgcmlnaHQgc291cmNlIG9wZXJhbmQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIHZhbHVlcyBvZiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHRoZSBvbmUncyBjb21wbGVtZW50IG9mIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9hbmRub3RfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSh+KF9fdjRkdSlfX2EgJiAoX192NGR1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgQU5EIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzggeCBmbG9hdF0sIHVzaW5nCi8vLyAgICB0aGUgb25lJ3MgY29tcGxlbWVudCBvZiB0aGUgdmFsdWVzIGNvbnRhaW5lZCBpbiB0aGUgZmlyc3Qgc291cmNlIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkFORE5QUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbGVmdCBzb3VyY2Ugb3BlcmFuZC4gVGhlCi8vLyAgICBvbmUncyBjb21wbGVtZW50IG9mIHRoaXMgdmFsdWUgaXMgdXNlZCBpbiB0aGUgYml0d2lzZSBBTkQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHJpZ2h0IHNvdXJjZSBvcGVyYW5kLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIEFORCBvZiB0aGUKLy8vICAgIHZhbHVlcyBvZiB0aGUgc2Vjb25kIG9wZXJhbmQgYW5kIHRoZSBvbmUncyBjb21wbGVtZW50IG9mIHRoZSBmaXJzdAovLy8gICAgb3BlcmFuZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2FuZG5vdF9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpKH4oX192OHN1KV9fYSAmIChfX3Y4c3UpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBPUiBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWT1JQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBPUiBvZiB0aGUKLy8vICAgIHZhbHVlcyBiZXR3ZWVuIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfb3JfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKSgoX192NGR1KV9fYSB8IChfX3Y0ZHUpX19iKTsKfQoKLy8vIFBlcmZvcm1zIGEgYml0d2lzZSBPUiBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBiaXR3aXNlIE9SIG9mIHRoZQovLy8gICAgdmFsdWVzIGJldHdlZW4gYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X29yX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzdSlfX2EgfCAoX192OHN1KV9fYik7Cn0KCi8vLyBQZXJmb3JtcyBhIGJpdHdpc2UgWE9SIG9mIHR3byAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgYml0d2lzZSBYT1Igb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3hvcl9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gKF9fbTI1NmQpKChfX3Y0ZHUpX19hIF4gKF9fdjRkdSlfX2IpOwp9CgovLy8gUGVyZm9ybXMgYSBiaXR3aXNlIFhPUiBvZiB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgYml0d2lzZSBYT1Igb2YgdGhlCi8vLyAgICB2YWx1ZXMgYmV0d2VlbiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfeG9yX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NikoKF9fdjhzdSlfX2EgXiAoX192OHN1KV9fYik7Cn0KCi8qIEhvcml6b250YWwgYXJpdGhtZXRpYyAqLwovLy8gSG9yaXpvbnRhbGx5IGFkZHMgdGhlIGFkamFjZW50IHBhaXJzIG9mIHZhbHVlcyBjb250YWluZWQgaW4gdHdvCi8vLyAgICAyNTYtYml0IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIQUREUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgZXZlbi1pbmRleGVkCi8vLyAgICBlbGVtZW50cyBvZiBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgb2RkLWluZGV4ZWQKLy8vICAgIGVsZW1lbnRzIG9mIGEgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwgc3VtcyBvZgovLy8gICAgYm90aCBvcGVyYW5kcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9oYWRkX3BkKF9fbTI1NmQgX19hLCBfX20yNTZkIF9fYikKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9oYWRkcGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIEhvcml6b250YWxseSBhZGRzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3bwovLy8gICAgMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZIQUREUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgb25lIG9mIHRoZSBzb3VyY2Ugb3BlcmFuZHMuCi8vLyAgICBUaGUgaG9yaXpvbnRhbCBzdW1zIG9mIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGluIHRoZSBlbGVtZW50cyB3aXRoCi8vLyAgICBpbmRleCAwLCAxLCA0LCA1IG9mIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgc3VtcyBvZiB0aGUgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiB0aGUgZWxlbWVudHMgd2l0aAovLy8gICAgaW5kZXggMiwgMywgNiwgNyBvZiBhIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaG9yaXpvbnRhbCBzdW1zIG9mCi8vLyAgICBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfaGFkZF9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfaGFkZHBzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8vLyBIb3Jpem9udGFsbHkgc3VidHJhY3RzIHRoZSBhZGphY2VudCBwYWlycyBvZiB2YWx1ZXMgY29udGFpbmVkIGluIHR3bwovLy8gICAgMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSFNVQlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlCi8vLyAgICBldmVuLWluZGV4ZWQgZWxlbWVudHMgb2YgYSB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlCi8vLyAgICBvZGQtaW5kZXhlZCBlbGVtZW50cyBvZiBhIHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBob3Jpem9udGFsCi8vLyAgICBkaWZmZXJlbmNlcyBvZiBib3RoIG9wZXJhbmRzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2hzdWJfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX2hzdWJwZDI1NigoX192NGRmKV9fYSwgKF9fdjRkZilfX2IpOwp9CgovLy8gSG9yaXpvbnRhbGx5IHN1YnRyYWN0cyB0aGUgYWRqYWNlbnQgcGFpcnMgb2YgdmFsdWVzIGNvbnRhaW5lZCBpbiB0d28KLy8vICAgIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSFNVQlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIG9uZSBvZiB0aGUgc291cmNlIG9wZXJhbmRzLgovLy8gICAgVGhlIGhvcml6b250YWwgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiB0aGUKLy8vICAgIGVsZW1lbnRzIHdpdGggaW5kZXggMCwgMSwgNCwgNSBvZiBhIHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyBvbmUgb2YgdGhlIHNvdXJjZSBvcGVyYW5kcy4KLy8vICAgIFRoZSBob3Jpem9udGFsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gdGhlCi8vLyAgICBlbGVtZW50cyB3aXRoIGluZGV4IDIsIDMsIDYsIDcgb2YgYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGhvcml6b250YWwKLy8vICAgIGRpZmZlcmVuY2VzIG9mIGJvdGggb3BlcmFuZHMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9oc3ViX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9oc3VicHMyNTYoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19iKTsKfQoKLyogVmVjdG9yIHBlcm11dGF0aW9ucyAqLwovLy8gQ29waWVzIHRoZSB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gYXMgc3BlY2lmaWVkCi8vLyAgICBieSB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIGNvcGllZC4gXG4KLy8vICAgIEJpdCBbMV06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUgcmV0dXJuZWQKLy8vICAgICAgICAgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzowXSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFs2NV06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20xMjhkIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fcGVybXV0ZXZhcl9wZChfX20xMjhkIF9fYSwgX19tMTI4aSBfX2MpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdnBlcm1pbHZhcnBkKChfX3YyZGYpX19hLCAoX192MmRpKV9fYyk7Cn0KCi8vLyBDb3BpZXMgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBhcyBzcGVjaWZpZWQKLy8vICAgIGJ5IHRoZSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0IFsxXTogXG4KLy8vICAgICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXR1cm5lZAovLy8gICAgICAgICB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzY1XTogXG4KLy8vICAgICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMTI3OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0IFsxMjldOiBcbgovLy8gICAgICAwOiBCaXRzIFsxOTE6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTkxOjEyOF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMjU1OjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzE5M106IFxuCi8vLyAgICAgIDA6IEJpdHMgWzE5MToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsyNTU6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlCi8vLyAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Blcm11dGV2YXJfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmkgX19jKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWx2YXJwZDI1NigoX192NGRmKV9fYSwgKF9fdjRkaSlfX2MpOwp9CgovLy8gQ29waWVzIHRoZSB2YWx1ZXMgc3RvcmVkIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gYXMKLy8vICAgIHNwZWNpZmllZCBieSB0aGUgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kLgovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzMzOjMyXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNjU6NjRdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFs5Nzo5Nl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9wZXJtdXRldmFyX3BzKF9fbTEyOCBfX2EsIF9fbTEyOGkgX19jKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdnBlcm1pbHZhcnBzKChfX3Y0c2YpX19hLCAoX192NHNpKV9fYyk7Cn0KCi8vLyBDb3BpZXMgdGhlIHZhbHVlcyBzdG9yZWQgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBhcwovLy8gICAgc3BlY2lmaWVkIGJ5IHRoZSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQuIFxuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzMzOjMyXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNjU6NjRdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFs5Nzo5Nl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFsxMjk6MTI4XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzE1OToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxNTk6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzE5MToxNjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxNTk6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzIyMzoxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxNTk6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToyMjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxNTk6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzE2MToxNjBdOiBcbgovLy8gICAgICAwMDogQml0cyBbMTU5OjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbMTkxOjE2MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbMjIzOjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjIyNF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMTkzOjE5Ml06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFsyMjU6MjI0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzE1OToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzE5MToxNjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzIyMzoxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToyMjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Blcm11dGV2YXJfcHMoX19tMjU2IF9fYSwgX19tMjU2aSBfX2MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl92cGVybWlsdmFycHMyNTYoKF9fdjhzZilfX2EsIChfX3Y4c2kpX19jKTsKfQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIGluIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGFzIHNwZWNpZmllZAovLy8gICAgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjhkIF9tbV9wZXJtdXRlX3BkKF9fbTEyOGQgQSwgY29uc3QgaW50IEMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBDCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQuIFxuCi8vLyAgICBCaXQgWzBdOiBcbgovLy8gICAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gb2YgdGhlIHJldHVybmVkCi8vLyAgICAgICAgIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMTI3OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdCBbMV06IFxuCi8vLyAgICAgIDA6IEJpdHMgWzYzOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo2NF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tX3Blcm11dGVfcGQoQSwgQykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92cGVybWlscGQoKF9fdjJkZikoX19tMTI4ZCkoQSksIChpbnQpKEMpKSkKCi8vLyBDb3BpZXMgdGhlIHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBhcyBzcGVjaWZpZWQgYnkKLy8vICAgIHRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2ZCBfbW0yNTZfcGVybXV0ZV9wZChfX20yNTZkIEEsIGNvbnN0IGludCBDKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUEVSTUlMUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gQQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gQwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0IFswXTogXG4KLy8vICAgICAgMDogQml0cyBbNjM6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZSByZXR1cm5lZAovLy8gICAgICAgICB2ZWN0b3IuIFxuCi8vLyAgICAgIDE6IEJpdHMgWzEyNzo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjBdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzFdOiBcbgovLy8gICAgICAwOiBCaXRzIFs2MzowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxOiBCaXRzIFsxMjc6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzJdOiBcbgovLy8gICAgICAwOiBCaXRzIFsxOTE6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTkxOjEyOF0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMjU1OjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXQgWzNdOiBcbgovLy8gICAgICAwOiBCaXRzIFsxOTE6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlCi8vLyAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTogQml0cyBbMjU1OjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxOTJdIG9mIHRoZQovLy8gICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlX3BkKEEsIEMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdnBlcm1pbHBkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKEEpLCAoaW50KShDKSkpCgovLy8gQ29waWVzIHRoZSB2YWx1ZXMgaW4gYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBhcyBzcGVjaWZpZWQgYnkKLy8vICAgIHRoZSBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9wZXJtdXRlX3BzKF9fbTEyOCBBLCBjb25zdCBpbnQgQyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIEEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gQwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZQovLy8gICAgY29waWVkLiBcbgovLy8gICAgQml0cyBbMTowXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFszOjJdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzYzOjMyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFs3OjZdOiBcbgovLy8gICAgICAwMDogQml0cyBbMzE6MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFs5NTo2NF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsxMjc6OTZdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbV9wZXJtdXRlX3BzKEEsIEMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl92cGVybWlscHMoKF9fdjRzZikoX19tMTI4KShBKSwgKGludCkoQykpKQoKLy8vIENvcGllcyB0aGUgdmFsdWVzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gYXMgc3BlY2lmaWVkIGJ5Ci8vLyAgICB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfcGVybXV0ZV9wcyhfX20yNTYgQSwgY29uc3QgaW50IEMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBBCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIEMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIGNvcGllZC4gXG4KLy8vICAgIEJpdHMgWzE6MF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFszMTowXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMzE6MF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFszMTowXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzEyNzo5Nl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzMxOjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbMzoyXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs2MzozMl0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzYzOjMyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MzJdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFs5NTo2NF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFs2MzozMl0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzk1OjY0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbOTU6NjRdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNzo2XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzMxOjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbNjM6MzJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbOTU6NjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6OTZdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMTI3Ojk2XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzE6MF06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICBCaXRzIFszOjJdOiBcbgovLy8gICAgICAwMDogQml0cyBbMTU5OjEyOF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAwMTogQml0cyBbMTkxOjE2MF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMDogQml0cyBbMjIzOjE5Ml0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjIyNF0gb2YgdGhlIHNvdXJjZSBhcmUgY29waWVkIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZQovLy8gICAgICAgICAgcmV0dXJuZWQgdmVjdG9yLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzE1OToxMjhdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyMjM6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzE5MToxNjBdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyMjM6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTA6IEJpdHMgWzIyMzoxOTJdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyMjM6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgICAgMTE6IEJpdHMgWzI1NToyMjRdIG9mIHRoZSBzb3VyY2UgYXJlIGNvcGllZCB0byBiaXRzIFsyMjM6MTkyXSBvZiB0aGUKLy8vICAgICAgICAgIHJldHVybmVkIHZlY3Rvci4gXG4KLy8vICAgIEJpdHMgWzc6Nl06IFxuCi8vLyAgICAgIDAwOiBCaXRzIFsxNTk6MTI4XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsxOTE6MTYwXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsyMjM6MTkyXSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuIFxuCi8vLyAgICAgIDExOiBCaXRzIFsyNTU6MjI0XSBvZiB0aGUgc291cmNlIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjIyNF0gb2YgdGhlCi8vLyAgICAgICAgICByZXR1cm5lZCB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X3Blcm11dGVfcHMoQSwgQykgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZwZXJtaWxwczI1NigoX192OHNmKShfX20yNTYpKEEpLCAoaW50KShDKSkpCgovLy8gUGVybXV0ZXMgMTI4LWJpdCBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBkb3VibGVdLCBhcyBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9wZXJtdXRlMmYxMjhfcGQoX19tMjU2ZCBWMSwgX19tMjU2ZCBWMiwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNMkYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgc3BlY2lmeWluZyBob3cgdGhlIHZhbHVlcyBhcmUgdG8gYmUKLy8vICAgIHBlcm11dGVkLiBcbgovLy8gICAgQml0cyBbMTowXTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgICAgICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAgIDAxOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgICAgICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAgIDEwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgICAgMDA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICAgICAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgICAgMDE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgICAxMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgICAgICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgICAxMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgICAgICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9wZXJtdXRlMmYxMjhfcGQoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3ZwZXJtMmYxMjhfcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoVjIpLCAoaW50KShNKSkpCgovLy8gUGVybXV0ZXMgMTI4LWJpdCBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzggeCBmbG9hdF0sIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfcGVybXV0ZTJmMTI4X3BzKF9fbTI1NiBWMSwgX19tMjU2IFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk0yRjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlCi8vLyAgICBwZXJtdXRlZC4gXG4KLy8vICAgIEJpdHMgWzE6MF06IFxuCi8vLyAgICAwMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDAxOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDExOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFs1OjRdOiBcbgovLy8gICAgMDA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDAxOiBCaXRzIFsyNTU6MTI4XSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIDEwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X3Blcm11dGUyZjEyOF9wcyhWMSwgVjIsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl92cGVybTJmMTI4X3BzMjU2KChfX3Y4c2YpKF9fbTI1NikoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFYyKSwgKGludCkoTSkpKQoKLy8vIFBlcm11dGVzIDEyOC1iaXQgZGF0YSB2YWx1ZXMgc3RvcmVkIGluIHR3byAyNTYtYml0IGludGVnZXIgdmVjdG9ycywKLy8vICAgIGFzIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmkgX21tMjU2X3Blcm11dGUyZjEyOF9zaTI1NihfX20yNTZpIFYxLCBfX20yNTZpIFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk0yRjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHBhcmFtIFYyCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCBzcGVjaWZ5aW5nIGhvdyB0aGUgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuCi8vLyAgICBCaXRzIFsxOjBdOiBcbgovLy8gICAgMDA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTA6IEJpdHMgWzEyNzowXSBvZiBvcGVyYW5kIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNTo0XTogXG4KLy8vICAgIDAwOiBCaXRzIFsxMjc6MF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAwMTogQml0cyBbMjU1OjEyOF0gb2Ygb3BlcmFuZCBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICAxMDogQml0cyBbMTI3OjBdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgMTE6IEJpdHMgWzI1NToxMjhdIG9mIG9wZXJhbmQgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X3Blcm11dGUyZjEyOF9zaTI1NihWMSwgVjIsIE0pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdnBlcm0yZjEyOF9zaTI1NigoX192OHNpKShfX20yNTZpKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKShfX20yNTZpKShWMiksIChpbnQpKE0pKSkKCi8qIFZlY3RvciBCbGVuZCAqLwovLy8gTWVyZ2VzIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGRhdGEgdmFsdWVzIHN0b3JlZCBpbiBlaXRoZXIgb2YgdGhlCi8vLyAgICB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUKLy8vICAgIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmQgX21tMjU2X2JsZW5kX3BkKF9fbTI1NmQgVjEsIF9fbTI1NmQgVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggbWFzayBiaXRzIFszOjBdIHNwZWNpZnlpbmcgaG93IHRoZQovLy8gICAgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQuIFRoZSBwb3NpdGlvbiBvZiB0aGUgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlCi8vLyAgICBpbmRleCBvZiBhIGNvcGllZCB2YWx1ZS4gV2hlbiBhIG1hc2sgYml0IGlzIDAsIHRoZSBjb3JyZXNwb25kaW5nIDY0LWJpdAovLy8gICAgZWxlbWVudCBpbiBvcGVyYW5kIFxhIFYxIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcgNjQtYml0IGVsZW1lbnQgaW4KLy8vICAgIG9wZXJhbmQgXGEgVjIgaXMgY29waWVkIHRvIHRoZSBzYW1lIHBvc2l0aW9uIGluIHRoZSBkZXN0aW5hdGlvbi4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2JsZW5kX3BkKFYxLCBWMiwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9ibGVuZHBkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFYyKSwgKGludCkoTSkpKQoKLy8vIE1lcmdlcyAzMi1iaXQgc2luZ2xlLXByZWNpc2lvbiBkYXRhIHZhbHVlcyBzdG9yZWQgaW4gZWl0aGVyIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUKLy8vICAgIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NiBfbW0yNTZfYmxlbmRfcHMoX19tMjU2IFYxLCBfX20yNTYgVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyBbNzowXSBzcGVjaWZ5aW5nIGhvdyB0aGUKLy8vICAgIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkLiBUaGUgcG9zaXRpb24gb2YgdGhlIG1hc2sgYml0IGNvcnJlc3BvbmRzIHRvIHRoZQovLy8gICAgaW5kZXggb2YgYSBjb3BpZWQgdmFsdWUuIFdoZW4gYSBtYXNrIGJpdCBpcyAwLCB0aGUgY29ycmVzcG9uZGluZyAzMi1iaXQKLy8vICAgIGVsZW1lbnQgaW4gb3BlcmFuZCBcYSBWMSBpcyBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gV2hlbiBhIG1hc2sgYml0IGlzIDEsIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBlbGVtZW50IGluCi8vLyAgICBvcGVyYW5kIFxhIFYyIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUgZGVzdGluYXRpb24uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvcGllZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2JsZW5kX3BzKFYxLCBWMiwgTSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX2JsZW5kcHMyNTYoKF9fdjhzZikoX19tMjU2KShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoVjIpLCAoaW50KShNKSkpCgovLy8gTWVyZ2VzIDY0LWJpdCBkb3VibGUtcHJlY2lzaW9uIGRhdGEgdmFsdWVzIHN0b3JlZCBpbiBlaXRoZXIgb2YgdGhlCi8vLyAgICB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSAyNTYtYml0IHZlY3RvcgovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQkxFTkRWUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyAyNTUsIDE5MSwgMTI3LCBhbmQgNjMgc3BlY2lmeWluZwovLy8gICAgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZC4gVGhlIHBvc2l0aW9uIG9mIHRoZSBtYXNrIGJpdCBjb3JyZXNwb25kcwovLy8gICAgdG8gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGEgY29waWVkIHZhbHVlLiBXaGVuIGEgbWFzayBiaXQgaXMgMCwgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIDY0LWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19hIGlzIGNvcGllZCB0byB0aGUgc2FtZQovLy8gICAgcG9zaXRpb24gaW4gdGhlIGRlc3RpbmF0aW9uLiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlIGNvcnJlc3BvbmRpbmcKLy8vICAgIDY0LWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19iIGlzIGNvcGllZCB0byB0aGUgc2FtZSBwb3NpdGlvbiBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29waWVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9ibGVuZHZfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iLCBfX20yNTZkIF9fYykKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl9ibGVuZHZwZDI1NigKICAgIChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYiwgKF9fdjRkZilfX2MpOwp9CgovLy8gTWVyZ2VzIDMyLWJpdCBzaW5nbGUtcHJlY2lzaW9uIGRhdGEgdmFsdWVzIHN0b3JlZCBpbiBlaXRoZXIgb2YgdGhlCi8vLyAgICB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mIFs4IHggZmxvYXRdLCBhcyBzcGVjaWZpZWQgYnkgdGhlIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvcGVyYW5kLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCTEVORFZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYwovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvcGVyYW5kLCB3aXRoIG1hc2sgYml0cyAyNTUsIDIyMywgMTkxLCAxNTksIDEyNywgOTUsIDYzLAovLy8gICAgYW5kIDMxIHNwZWNpZnlpbmcgaG93IHRoZSB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZC4gVGhlIHBvc2l0aW9uIG9mIHRoZQovLy8gICAgbWFzayBiaXQgY29ycmVzcG9uZHMgdG8gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mIGEgY29waWVkIHZhbHVlLiBXaGVuCi8vLyAgICBhIG1hc2sgYml0IGlzIDAsIHRoZSBjb3JyZXNwb25kaW5nIDMyLWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19hIGlzCi8vLyAgICBjb3BpZWQgdG8gdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhlIGRlc3RpbmF0aW9uLiBXaGVuIGEgbWFzayBiaXQgaXMgMSwgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIDMyLWJpdCBlbGVtZW50IGluIG9wZXJhbmQgXGEgX19iIGlzIGNvcGllZCB0byB0aGUgc2FtZQovLy8gICAgcG9zaXRpb24gaW4gdGhlIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb3BpZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfYmxlbmR2X3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IsIF9fbTI1NiBfX2MpCnsKICByZXR1cm4gKF9fbTI1NilfX2J1aWx0aW5faWEzMl9ibGVuZHZwczI1NigKICAgIChfX3Y4c2YpX19hLCAoX192OHNmKV9fYiwgKF9fdjhzZilfX2MpOwp9CgovKiBWZWN0b3IgRG90IFByb2R1Y3QgKi8KLy8vIENvbXB1dGVzIHR3byBkb3QgcHJvZHVjdHMgaW4gcGFyYWxsZWwsIHVzaW5nIHRoZSBsb3dlciBhbmQgdXBwZXIKLy8vICAgIGhhbHZlcyBvZiB0d28gWzggeCBmbG9hdF0gdmVjdG9ycyBhcyBpbnB1dCB0byB0aGUgdHdvIGNvbXB1dGF0aW9ucywgYW5kCi8vLyAgICByZXR1cm5pbmcgdGhlIHR3byBkb3QgcHJvZHVjdHMgaW4gdGhlIGxvd2VyIGFuZCB1cHBlciBoYWx2ZXMgb2YgdGhlCi8vLyAgICBbOCB4IGZsb2F0XSByZXN1bHQuCi8vLwovLy8gICAgVGhlIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQgY29udHJvbHMgd2hpY2ggaW5wdXQgZWxlbWVudHMgd2lsbAovLy8gICAgY29udHJpYnV0ZSB0byB0aGUgZG90IHByb2R1Y3QsIGFuZCB3aGVyZSB0aGUgZmluYWwgcmVzdWx0cyBhcmUgcmV0dXJuZWQuCi8vLyAgICBJbiBnZW5lcmFsLCBmb3IgZWFjaCBkb3QgcHJvZHVjdCwgdGhlIGZvdXIgY29ycmVzcG9uZGluZyBlbGVtZW50cyBvZiB0aGUKLy8vICAgIGlucHV0IHZlY3RvcnMgYXJlIG11bHRpcGxpZWQ7IHRoZSBmaXJzdCB0d28gYW5kIHNlY29uZCB0d28gcHJvZHVjdHMgYXJlCi8vLyAgICBzdW1tZWQsIHRoZW4gdGhlIHR3byBzdW1zIGFyZSBhZGRlZCB0byBmb3JtIHRoZSBmaW5hbCByZXN1bHQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X2RwX3BzKF9fbTI1NiBWMSwgX19tMjU2IFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkRQUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgdmVjdG9yIG9mIFs4IHggZmxvYXRdIHZhbHVlcywgdHJlYXRlZCBhcyB0d28gWzQgeCBmbG9hdF0gdmVjdG9ycy4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gdmFsdWVzLCB0cmVhdGVkIGFzIHR3byBbNCB4IGZsb2F0XSB2ZWN0b3JzLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIGFyZ3VtZW50LiBCaXRzIFs3OjRdIGRldGVybWluZSB3aGljaCBlbGVtZW50cyBvZgovLy8gICAgdGhlIGlucHV0IHZlY3RvcnMgYXJlIHVzZWQsIHdpdGggYml0IFs0XSBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb3dlc3QKLy8vICAgIGVsZW1lbnQgYW5kIGJpdCBbN10gY29ycmVzcG9uZGluZyB0byB0aGUgaGlnaGVzdCBlbGVtZW50IG9mIGVhY2ggWzQgeAovLy8gICAgZmxvYXRdIHN1YnZlY3Rvci4gSWYgYSBiaXQgaXMgc2V0LCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBmcm9tIHRoZQovLy8gICAgdHdvIGlucHV0IHZlY3RvcnMgYXJlIHVzZWQgYXMgYW4gaW5wdXQgZm9yIGRvdCBwcm9kdWN0OyBvdGhlcndpc2UgdGhhdAovLy8gICAgaW5wdXQgaXMgdHJlYXRlZCBhcyB6ZXJvLiBCaXRzIFszOjBdIGRldGVybWluZSB3aGljaCBlbGVtZW50cyBvZiB0aGUKLy8vICAgIHJlc3VsdCB3aWxsIHJlY2VpdmUgYSBjb3B5IG9mIHRoZSBmaW5hbCBkb3QgcHJvZHVjdCwgd2l0aCBiaXQgWzBdCi8vLyAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSBsb3dlc3QgZWxlbWVudCBhbmQgYml0IFszXSBjb3JyZXNwb25kaW5nIHRvIHRoZQovLy8gICAgaGlnaGVzdCBlbGVtZW50IG9mIGVhY2ggWzQgeCBmbG9hdF0gc3VidmVjdG9yLiBJZiBhIGJpdCBpcyBzZXQsIHRoZSBkb3QKLy8vICAgIHByb2R1Y3QgaXMgcmV0dXJuZWQgaW4gdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudDsgb3RoZXJ3aXNlIHRoYXQgZWxlbWVudAovLy8gICAgaXMgc2V0IHRvIHplcm8uIFRoZSBiaXRtYXNrIGlzIGFwcGxpZWQgaW4gdGhlIHNhbWUgd2F5IHRvIGVhY2ggb2YgdGhlCi8vLyAgICB0d28gcGFyYWxsZWwgZG90IHByb2R1Y3QgY29tcHV0YXRpb25zLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB0d28gZG90IHByb2R1Y3RzLgojZGVmaW5lIF9tbTI1Nl9kcF9wcyhWMSwgVjIsIE0pIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9kcHBzMjU2KChfX3Y4c2YpKF9fbTI1NikoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKFYyKSwgKE0pKSkKCi8qIFZlY3RvciBzaHVmZmxlICovCi8vLyBTZWxlY3RzIDggZmxvYXQgdmFsdWVzIGZyb20gdGhlIDI1Ni1iaXQgb3BlcmFuZHMgb2YgWzggeCBmbG9hdF0sIGFzCi8vLyAgICBzcGVjaWZpZWQgYnkgdGhlIGltbWVkaWF0ZSB2YWx1ZSBvcGVyYW5kLgovLy8KLy8vICAgIFRoZSBmb3VyIHNlbGVjdGVkIGVsZW1lbnRzIGluIGVhY2ggb3BlcmFuZCBhcmUgY29waWVkIHRvIHRoZSBkZXN0aW5hdGlvbgovLy8gICAgYWNjb3JkaW5nIHRvIHRoZSBiaXRzIHNwZWNpZmllZCBpbiB0aGUgaW1tZWRpYXRlIG9wZXJhbmQuIFRoZSBzZWxlY3RlZAovLy8gICAgZWxlbWVudHMgZnJvbSB0aGUgZmlyc3QgMjU2LWJpdCBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gYW5kCi8vLyAgICBiaXRzIFsxOTE6MTI4XSBvZiB0aGUgZGVzdGluYXRpb24sIGFuZCB0aGUgc2VsZWN0ZWQgZWxlbWVudHMgZnJvbSB0aGUKLy8vICAgIHNlY29uZCAyNTYtYml0IG9wZXJhbmQgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIGFuZCBiaXRzIFsyNTU6MTkyXSBvZgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLiBGb3IgZXhhbXBsZSwgaWYgYml0cyBbNzowXSBvZiB0aGUgaW1tZWRpYXRlIG9wZXJhbmQKLy8vICAgIGNvbnRhaW4gYSB2YWx1ZSBvZiAweEZGLCB0aGUgMjU2LWJpdCBkZXN0aW5hdGlvbiB2ZWN0b3Igd291bGQgY29udGFpbiB0aGUKLy8vICAgIGZvbGxvd2luZyB2YWx1ZXM6IGJbN10sIGJbN10sIGFbN10sIGFbN10sIGJbM10sIGJbM10sIGFbM10sIGFbM10uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X3NodWZmbGVfcHMoX19tMjU2IGEsIF9fbTI1NiBiLCBjb25zdCBpbnQgbWFzayk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlNIVUZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBUaGUgZm91ciBzZWxlY3RlZCBlbGVtZW50cyBpbiB0aGlzCi8vLyAgICBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cyBbNjM6MF0gYW5kIGJpdHMgWzE5MToxMjhdIGluIHRoZSBkZXN0aW5hdGlvbiwKLy8vICAgIGFjY29yZGluZyB0byB0aGUgYml0cyBzcGVjaWZpZWQgaW4gdGhlIGltbWVkaWF0ZSBvcGVyYW5kLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFRoZSBmb3VyIHNlbGVjdGVkIGVsZW1lbnRzIGluIHRoaXMKLy8vICAgIG9wZXJhbmQgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIGFuZCBiaXRzIFsyNTU6MTkyXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLCBhY2NvcmRpbmcgdG8gdGhlIGJpdHMgc3BlY2lmaWVkIGluIHRoZSBpbW1lZGlhdGUgb3BlcmFuZC4KLy8vIFxwYXJhbSBtYXNrCi8vLyAgICBBbiBpbW1lZGlhdGUgdmFsdWUgY29udGFpbmluZyBhbiA4LWJpdCB2YWx1ZSBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvCi8vLyAgICBjb3B5IGZyb20gXGEgYSBhbmQgXGEgYiBcbi4KLy8vICAgIEJpdHMgWzM6MF0gc3BlY2lmeSB0aGUgdmFsdWVzIGNvcGllZCBmcm9tIG9wZXJhbmQgXGEgYS4gXG4KLy8vICAgIEJpdHMgWzc6NF0gc3BlY2lmeSB0aGUgdmFsdWVzIGNvcGllZCBmcm9tIG9wZXJhbmQgXGEgYi4gXG4KLy8vICAgIFRoZSBkZXN0aW5hdGlvbnMgd2l0aGluIHRoZSAyNTYtYml0IGRlc3RpbmF0aW9uIGFyZSBhc3NpZ25lZCB2YWx1ZXMgYXMKLy8vICAgIGZvbGxvd3MsIGFjY29yZGluZyB0byB0aGUgYml0IHZhbHVlIGFzc2lnbm1lbnRzIGRlc2NyaWJlZCBiZWxvdzogXG4KLy8vICAgIEJpdHMgWzE6MF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFszMTowXSBhbmQgWzE1OToxMjhdIGluIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXRzIFszOjJdIGFyZSB1c2VkIHRvIGFzc2lnbiB2YWx1ZXMgdG8gYml0cyBbNjM6MzJdIGFuZCBbMTkxOjE2MF0gaW4gdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdHMgWzU6NF0gYXJlIHVzZWQgdG8gYXNzaWduIHZhbHVlcyB0byBiaXRzIFs5NTo2NF0gYW5kIFsyMjM6MTkyXSBpbiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0cyBbNzo2XSBhcmUgdXNlZCB0byBhc3NpZ24gdmFsdWVzIHRvIGJpdHMgWzEyNzo5Nl0gYW5kIFsyNTU6MjI0XSBpbgovLy8gICAgdGhlIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IHZhbHVlIGFzc2lnbm1lbnRzOiBcbgovLy8gICAgMDA6IEJpdHMgWzMxOjBdIGFuZCBbMTU5OjEyOF0gYXJlIGNvcGllZCBmcm9tIHRoZSBzZWxlY3RlZCBvcGVyYW5kLiBcbgovLy8gICAgMDE6IEJpdHMgWzYzOjMyXSBhbmQgWzE5MToxNjBdIGFyZSBjb3BpZWQgZnJvbSB0aGUgc2VsZWN0ZWQgb3BlcmFuZC4gXG4KLy8vICAgIDEwOiBCaXRzIFs5NTo2NF0gYW5kIFsyMjM6MTkyXSBhcmUgY29waWVkIGZyb20gdGhlIHNlbGVjdGVkIG9wZXJhbmQuIFxuCi8vLyAgICAxMTogQml0cyBbMTI3Ojk2XSBhbmQgWzI1NToyMjRdIGFyZSBjb3BpZWQgZnJvbSB0aGUgc2VsZWN0ZWQgb3BlcmFuZC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgc2h1ZmZsZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9zaHVmZmxlX3BzKGEsIGIsIG1hc2spIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl9zaHVmcHMyNTYoKF9fdjhzZikoX19tMjU2KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNmKShfX20yNTYpKGIpLCAoaW50KShtYXNrKSkpCgovLy8gU2VsZWN0cyBmb3VyIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGZyb20gdGhlIDI1Ni1iaXQgb3BlcmFuZHMgb2YKLy8vICAgIFs0IHggZG91YmxlXSwgYXMgc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgdmFsdWUgb3BlcmFuZC4KLy8vCi8vLyAgICBUaGUgc2VsZWN0ZWQgZWxlbWVudHMgZnJvbSB0aGUgZmlyc3QgMjU2LWJpdCBvcGVyYW5kIGFyZSBjb3BpZWQgdG8gYml0cwovLy8gICAgWzYzOjBdIGFuZCBiaXRzIFsxOTE6MTI4XSBpbiB0aGUgZGVzdGluYXRpb24sIGFuZCB0aGUgc2VsZWN0ZWQgZWxlbWVudHMKLy8vICAgIGZyb20gdGhlIHNlY29uZCAyNTYtYml0IG9wZXJhbmQgYXJlIGNvcGllZCB0byBiaXRzIFsxMjc6NjRdIGFuZCBiaXRzCi8vLyAgICBbMjU1OjE5Ml0gaW4gdGhlIGRlc3RpbmF0aW9uLiBGb3IgZXhhbXBsZSwgaWYgYml0cyBbMzowXSBvZiB0aGUgaW1tZWRpYXRlCi8vLyAgICBvcGVyYW5kIGNvbnRhaW4gYSB2YWx1ZSBvZiAweEYsIHRoZSAyNTYtYml0IGRlc3RpbmF0aW9uIHZlY3RvciB3b3VsZAovLy8gICAgY29udGFpbiB0aGUgZm9sbG93aW5nIHZhbHVlczogYlszXSwgYVszXSwgYlsxXSwgYVsxXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTI1NmQgX21tMjU2X3NodWZmbGVfcGQoX19tMjU2ZCBhLCBfX20yNTZkIGIsIGNvbnN0IGludCBtYXNrKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWU0hVRlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIG1hc2sKLy8vICAgIEFuIGltbWVkaWF0ZSB2YWx1ZSBjb250YWluaW5nIDgtYml0IHZhbHVlcyBzcGVjaWZ5aW5nIHdoaWNoIGVsZW1lbnRzIHRvCi8vLyAgICBjb3B5IGZyb20gXGEgYSBhbmQgXGEgYjogXG4KLy8vICAgIEJpdCBbMF09MDogQml0cyBbNjM6MF0gYXJlIGNvcGllZCBmcm9tIFxhIGEgdG8gYml0cyBbNjM6MF0gb2YgdGhlCi8vLyAgICBkZXN0aW5hdGlvbi4gXG4KLy8vICAgIEJpdCBbMF09MTogQml0cyBbMTI3OjY0XSBhcmUgY29waWVkIGZyb20gXGEgYSB0byBiaXRzIFs2MzowXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFsxXT0wOiBCaXRzIFs2MzowXSBhcmUgY29waWVkIGZyb20gXGEgYiB0byBiaXRzIFsxMjc6NjRdIG9mIHRoZQovLy8gICAgZGVzdGluYXRpb24uIFxuCi8vLyAgICBCaXQgWzFdPTE6IEJpdHMgWzEyNzo2NF0gYXJlIGNvcGllZCBmcm9tIFxhIGIgdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFsyXT0wOiBCaXRzIFsxOTE6MTI4XSBhcmUgY29waWVkIGZyb20gXGEgYSB0byBiaXRzIFsxOTE6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFsyXT0xOiBCaXRzIFsyNTU6MTkyXSBhcmUgY29waWVkIGZyb20gXGEgYSB0byBiaXRzIFsxOTE6MTI4XSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFszXT0wOiBCaXRzIFsxOTE6MTI4XSBhcmUgY29waWVkIGZyb20gXGEgYiB0byBiaXRzIFsyNTU6MTkyXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLiBcbgovLy8gICAgQml0IFszXT0xOiBCaXRzIFsyNTU6MTkyXSBhcmUgY29waWVkIGZyb20gXGEgYiB0byBiaXRzIFsyNTU6MTkyXSBvZiB0aGUKLy8vICAgIGRlc3RpbmF0aW9uLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgc2h1ZmZsZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9zaHVmZmxlX3BkKGEsIGIsIG1hc2spIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfc2h1ZnBkMjU2KChfX3Y0ZGYpKF9fbTI1NmQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRmKShfX20yNTZkKShiKSwgKGludCkobWFzaykpKQoKLyogQ29tcGFyZSAqLwojZGVmaW5lIF9DTVBfRVFfT1EgICAgMHgwMCAvKiBFcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9MVF9PUyAgICAweDAxIC8qIExlc3MtdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX0xFX09TICAgIDB4MDIgLyogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfVU5PUkRfUSAgMHgwMyAvKiBVbm9yZGVyZWQgKG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkVRX1VRICAgMHgwNCAvKiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OTFRfVVMgICAweDA1IC8qIE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05MRV9VUyAgIDB4MDYgLyogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfT1JEX1EgICAgMHgwNyAvKiBPcmRlcmVkIChub24tc2lnbmFsaW5nKSAgICovCiNkZWZpbmUgX0NNUF9FUV9VUSAgICAweDA4IC8qIEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkdFX1VTICAgMHgwOSAvKiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OR1RfVVMgICAweDBhIC8qIE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX0ZBTFNFX09RIDB4MGIgLyogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkVRX09RICAgMHgwYyAvKiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfR0VfT1MgICAgMHgwZCAvKiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9HVF9PUyAgICAweDBlIC8qIEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX1RSVUVfVVEgIDB4MGYgLyogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX0VRX09TICAgIDB4MTAgLyogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9MVF9PUSAgICAweDExIC8qIExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9MRV9PUSAgICAweDEyIC8qIExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9VTk9SRF9TICAweDEzIC8qIFVub3JkZXJlZCAoc2lnbmFsaW5nKSAgKi8KI2RlZmluZSBfQ01QX05FUV9VUyAgIDB4MTQgLyogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OTFRfVVEgICAweDE1IC8qIE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OTEVfVVEgICAweDE2IC8qIE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9PUkRfUyAgICAweDE3IC8qIE9yZGVyZWQgKHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9FUV9VUyAgICAweDE4IC8qIEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OR0VfVVEgICAweDE5IC8qIE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9OR1RfVVEgICAweDFhIC8qIE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9GQUxTRV9PUyAweDFiIC8qIEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpICAqLwojZGVmaW5lIF9DTVBfTkVRX09TICAgMHgxYyAvKiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9HRV9PUSAgICAweDFkIC8qIEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9HVF9PUSAgICAweDFlIC8qIEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgICovCiNkZWZpbmUgX0NNUF9UUlVFX1VTICAweDFmIC8qIFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSAgKi8KCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHR3bwovLy8gICAgMTI4LWJpdCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSwgdXNpbmcgdGhlIG9wZXJhdGlvbiBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vICAgIFJldHVybnMgYSBbMiB4IGRvdWJsZV0gdmVjdG9yIGNvbnNpc3Rpbmcgb2YgdHdvIGRvdWJsZXMgY29ycmVzcG9uZGluZyB0bwovLy8gICAgdGhlIHR3byBjb21wYXJpc29uIHJlc3VsdHM6IHplcm8gaWYgdGhlIGNvbXBhcmlzb24gaXMgZmFsc2UsIGFuZCBhbGwgMSdzCi8vLyAgICBpZiB0aGUgY29tcGFyaXNvbiBpcyB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW1fY21wX3BkKF9fbTEyOGQgYSwgX19tMTI4ZCBiLCBjb25zdCBpbnQgYyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIGIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHBhcmFtIGMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggYml0cyBbNDowXSBzcGVjaWZ5aW5nIHdoaWNoIGNvbXBhcmlzb24KLy8vICAgIG9wZXJhdGlvbiB0byB1c2U6IFxuCi8vLyAgICAweDAwOiBFcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDE6IExlc3MtdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAzOiBVbm9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA3OiBPcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwODogRXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBCOiBGYWxzZSAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEM6IE5vdC1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBGOiBUcnVlICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEwOiBFcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMTogTGVzcy10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMzogVW5vcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNzogT3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxODogRXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQjogRmFsc2UgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUM6IE5vdC1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRjogVHJ1ZSAodW5vcmRlcmVkLCBzaWduYWxpbmcpCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCiNkZWZpbmUgX21tX2NtcF9wZChhLCBiLCBjKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX2NtcHBkKChfX3YyZGYpKF9fbTEyOGQpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YyZGYpKF9fbTEyOGQpKGIpLCAoYykpKQoKLy8vIENvbXBhcmVzIGVhY2ggb2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWVzIG9mIHR3byAxMjgtYml0IHZlY3RvcnMgb2YKLy8vICAgIFs0IHggZmxvYXRdLCB1c2luZyB0aGUgb3BlcmF0aW9uIHNwZWNpZmllZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIKLy8vICAgIG9wZXJhbmQuCi8vLwovLy8gICAgUmV0dXJucyBhIFs0IHggZmxvYXRdIHZlY3RvciBjb25zaXN0aW5nIG9mIGZvdXIgZmxvYXRzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHRoZSBmb3VyIGNvbXBhcmlzb24gcmVzdWx0czogemVybyBpZiB0aGUgY29tcGFyaXNvbiBpcyBmYWxzZSwgYW5kIGFsbCAxJ3MKLy8vICAgIGlmIHRoZSBjb21wYXJpc29uIGlzIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20xMjggX21tX2NtcF9wcyhfX20xMjggYSwgX19tMTI4IGIsIGNvbnN0IGludCBjKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIGMKLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQsIHdpdGggYml0cyBbNDowXSBzcGVjaWZ5aW5nIHdoaWNoIGNvbXBhcmlzb24KLy8vICAgIG9wZXJhdGlvbiB0byB1c2U6IFxuCi8vLyAgICAweDAwOiBFcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDE6IExlc3MtdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAzOiBVbm9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA3OiBPcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwODogRXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBCOiBGYWxzZSAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEM6IE5vdC1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MEQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBGOiBUcnVlICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEwOiBFcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMTogTGVzcy10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMjogTGVzcy10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMzogVW5vcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE0OiBOb3QtZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNjogTm90LWxlc3MtdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNzogT3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxODogRXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQTogTm90LWdyZWF0ZXItdGhhbiAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQjogRmFsc2UgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUM6IE5vdC1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRTogR3JlYXRlci10aGFuIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxRjogVHJ1ZSAodW5vcmRlcmVkLCBzaWduYWxpbmcpCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4KI2RlZmluZSBfbW1fY21wX3BzKGEsIGIsIGMpIFwKICAoKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jbXBwcygoX192NHNmKShfX20xMjgpKGEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShiKSwgKGMpKSkKCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIG9mIHR3bwovLy8gICAgMjU2LWJpdCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSwgdXNpbmcgdGhlIG9wZXJhdGlvbiBzcGVjaWZpZWQgYnkgdGhlCi8vLyAgICBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLgovLy8KLy8vICAgIFJldHVybnMgYSBbNCB4IGRvdWJsZV0gdmVjdG9yIGNvbnNpc3Rpbmcgb2YgZm91ciBkb3VibGVzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHRoZSBmb3VyIGNvbXBhcmlzb24gcmVzdWx0czogemVybyBpZiB0aGUgY29tcGFyaXNvbiBpcyBmYWxzZSwgYW5kIGFsbCAxJ3MKLy8vICAgIGlmIHRoZSBjb21wYXJpc29uIGlzIHRydWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9jbXBfcGQoX19tMjU2ZCBhLCBfX20yNTZkIGIsIGNvbnN0IGludCBjKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ01QUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gYwovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCwgd2l0aCBiaXRzIFs0OjBdIHNwZWNpZnlpbmcgd2hpY2ggY29tcGFyaXNvbgovLy8gICAgb3BlcmF0aW9uIHRvIHVzZTogXG4KLy8vICAgIDB4MDA6IEVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMTogTGVzcy10aGFuIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDAyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDM6IFVub3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNTogTm90LWxlc3MtdGhhbiAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDA2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDc6IE9yZGVyZWQgKG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA4OiBFcXVhbCAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwOTogTm90LWdyZWF0ZXItdGhhbi1vci1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEI6IEZhbHNlIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQzogTm90LWVxdWFsIChvcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRDogR3JlYXRlci10aGFuLW9yLWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDBFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEY6IFRydWUgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTA6IEVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDExOiBMZXNzLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEyOiBMZXNzLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDEzOiBVbm9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTQ6IE5vdC1lcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE2OiBOb3QtbGVzcy10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDE3OiBPcmRlcmVkIChzaWduYWxpbmcpIFxuCi8vLyAgICAweDE4OiBFcXVhbCAodW5vcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDE5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFBOiBOb3QtZ3JlYXRlci10aGFuICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFCOiBGYWxzZSAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxQzogTm90LWVxdWFsIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFFOiBHcmVhdGVyLXRoYW4gKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDFGOiBUcnVlICh1bm9yZGVyZWQsIHNpZ25hbGluZykKLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbXBhcmlzb24gcmVzdWx0cy4KI2RlZmluZSBfbW0yNTZfY21wX3BkKGEsIGIsIGMpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfY21wcGQyNTYoKF9fdjRkZikoX19tMjU2ZCkoYSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkZikoX19tMjU2ZCkoYiksIChjKSkpCgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZXMgb2YgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzggeCBmbG9hdF0sIHVzaW5nIHRoZSBvcGVyYXRpb24gc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUgaW50ZWdlcgovLy8gICAgb3BlcmFuZC4KLy8vCi8vLyAgICBSZXR1cm5zIGEgWzggeCBmbG9hdF0gdmVjdG9yIGNvbnNpc3Rpbmcgb2YgZWlnaHQgZmxvYXRzIGNvcnJlc3BvbmRpbmcgdG8KLy8vICAgIHRoZSBlaWdodCBjb21wYXJpc29uIHJlc3VsdHM6IHplcm8gaWYgdGhlIGNvbXBhcmlzb24gaXMgZmFsc2UsIGFuZCBhbGwKLy8vICAgIDEncyBpZiB0aGUgY29tcGFyaXNvbiBpcyB0cnVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2IF9tbTI1Nl9jbXBfcHMoX19tMjU2IGEsIF9fbTI1NiBiLCBjb25zdCBpbnQgYyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBjCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIGJpdHMgWzQ6MF0gc3BlY2lmeWluZyB3aGljaCBjb21wYXJpc29uCi8vLyAgICBvcGVyYXRpb24gdG8gdXNlOiBcbgovLy8gICAgMHgwMDogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDAxOiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMzogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNzogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDg6IEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQjogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRjogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMDogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTE6IExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTM6IFVub3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTc6IE9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTg6IEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUI6IEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUY6IFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKQovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCiNkZWZpbmUgX21tMjU2X2NtcF9wcyhhLCBiLCBjKSBcCiAgKChfX20yNTYpX19idWlsdGluX2lhMzJfY21wcHMyNTYoKF9fdjhzZikoX19tMjU2KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoYiksIChjKSkpCgovLy8gQ29tcGFyZXMgZWFjaCBvZiB0aGUgY29ycmVzcG9uZGluZyBzY2FsYXIgZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgb2YKLy8vICAgIHR3byAxMjgtYml0IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLCB1c2luZyB0aGUgb3BlcmF0aW9uIHNwZWNpZmllZCBieSB0aGUKLy8vICAgIGltbWVkaWF0ZSBpbnRlZ2VyIG9wZXJhbmQuCi8vLwovLy8gICAgSWYgdGhlIHJlc3VsdCBpcyB0cnVlLCBhbGwgNjQgYml0cyBvZiB0aGUgZGVzdGluYXRpb24gdmVjdG9yIGFyZSBzZXQ7Ci8vLyAgICBvdGhlcndpc2UgdGhleSBhcmUgY2xlYXJlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGQgX21tX2NtcF9zZChfX20xMjhkIGEsIF9fbTEyOGQgYiwgY29uc3QgaW50IGMpOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDTVBTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBhCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBiCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBjCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIGJpdHMgWzQ6MF0gc3BlY2lmeWluZyB3aGljaCBjb21wYXJpc29uCi8vLyAgICBvcGVyYXRpb24gdG8gdXNlOiBcbgovLy8gICAgMHgwMDogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDAxOiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMzogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNzogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDg6IEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQjogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRjogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMDogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTE6IExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTM6IFVub3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTc6IE9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTg6IEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUI6IEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUY6IFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKQovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29tcGFyaXNvbiByZXN1bHRzLgojZGVmaW5lIF9tbV9jbXBfc2QoYSwgYiwgYykgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl9jbXBzZCgoX192MmRmKShfX20xMjhkKShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRmKShfX20xMjhkKShiKSwgKGMpKSkKCi8vLyBDb21wYXJlcyBlYWNoIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNjYWxhciB2YWx1ZXMgb2YgdHdvIDEyOC1iaXQKLy8vICAgIHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0sIHVzaW5nIHRoZSBvcGVyYXRpb24gc3BlY2lmaWVkIGJ5IHRoZSBpbW1lZGlhdGUKLy8vICAgIGludGVnZXIgb3BlcmFuZC4KLy8vCi8vLyAgICBJZiB0aGUgcmVzdWx0IGlzIHRydWUsIGFsbCAzMiBiaXRzIG9mIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3IgYXJlIHNldDsKLy8vICAgIG90aGVyd2lzZSB0aGV5IGFyZSBjbGVhcmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4IF9tbV9jbXBfc3MoX19tMTI4IGEsIF9fbTEyOCBiLCBjb25zdCBpbnQgYyk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNNUFNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIGEKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccGFyYW0gYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBjCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kLCB3aXRoIGJpdHMgWzQ6MF0gc3BlY2lmeWluZyB3aGljaCBjb21wYXJpc29uCi8vLyAgICBvcGVyYXRpb24gdG8gdXNlOiBcbgovLy8gICAgMHgwMDogRXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDAxOiBMZXNzLXRoYW4gKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwMzogVW5vcmRlcmVkIChub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA1OiBOb3QtbGVzcy10aGFuICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MDY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwNzogT3JkZXJlZCAobm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MDg6IEVxdWFsICh1bm9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDA5OiBOb3QtZ3JlYXRlci10aGFuLW9yLWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwQjogRmFsc2UgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIG5vbi1zaWduYWxpbmcpIFxuCi8vLyAgICAweDBEOiBHcmVhdGVyLXRoYW4tb3ItZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MEU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgc2lnbmFsaW5nKSBcbgovLy8gICAgMHgwRjogVHJ1ZSAodW5vcmRlcmVkLCBub24tc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxMDogRXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTE6IExlc3MtdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTI6IExlc3MtdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTM6IFVub3JkZXJlZCAoc2lnbmFsaW5nKSBcbgovLy8gICAgMHgxNDogTm90LWVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTU6IE5vdC1sZXNzLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTY6IE5vdC1sZXNzLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MTc6IE9yZGVyZWQgKHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTg6IEVxdWFsICh1bm9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MTk6IE5vdC1ncmVhdGVyLXRoYW4tb3ItZXF1YWwgKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUE6IE5vdC1ncmVhdGVyLXRoYW4gKHVub3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUI6IEZhbHNlIChvcmRlcmVkLCBzaWduYWxpbmcpIFxuCi8vLyAgICAweDFDOiBOb3QtZXF1YWwgKG9yZGVyZWQsIHNpZ25hbGluZykgXG4KLy8vICAgIDB4MUQ6IEdyZWF0ZXItdGhhbi1vci1lcXVhbCAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUU6IEdyZWF0ZXItdGhhbiAob3JkZXJlZCwgbm9uLXNpZ25hbGluZykgXG4KLy8vICAgIDB4MUY6IFRydWUgKHVub3JkZXJlZCwgc2lnbmFsaW5nKQovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb21wYXJpc29uIHJlc3VsdHMuCiNkZWZpbmUgX21tX2NtcF9zcyhhLCBiLCBjKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfY21wc3MoKF9fdjRzZikoX19tMTI4KShhKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2YpKF9fbTEyOCkoYiksIChjKSkpCgovLy8gVGFrZXMgYSBbOCB4IGkzMl0gdmVjdG9yIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4K0NPTVBPU0lURSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBpMzJdLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHdpdGggYml0cyBbMjowXSBkZXRlcm1pbmluZyB3aGljaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgaXMgZXh0cmFjdGVkIGFuZCByZXR1cm5lZC4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgZXh0cmFjdGVkIDMyIGJpdHMgb2YgZXh0ZW5kZWQKLy8vICAgIHBhY2tlZCBkYXRhLgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0X2VwaTMyKFgsIE4pIFwKICAoKGludClfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3Y4c2koKF9fdjhzaSkoX19tMjU2aSkoWCksIChpbnQpKE4pKSkKCi8vLyBUYWtlcyBhIFsxNiB4IGkxNl0gdmVjdG9yIGFuZCByZXR1cm5zIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4K0NPTVBPU0lURSA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbMTYgeCBpMTZdLgovLy8gXHBhcmFtIF9faW1tCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlciBvcGVyYW5kIHdpdGggYml0cyBbMzowXSBkZXRlcm1pbmluZyB3aGljaCB2ZWN0b3IKLy8vICAgIGVsZW1lbnQgaXMgZXh0cmFjdGVkIGFuZCByZXR1cm5lZC4KLy8vIFxyZXR1cm5zIEEgMzItYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgZXh0cmFjdGVkIDE2IGJpdHMgb2YgemVybyBleHRlbmRlZAovLy8gICAgcGFja2VkIGRhdGEuCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RfZXBpMTYoWCwgTikgXAogICgoaW50KSh1bnNpZ25lZCBzaG9ydClfX2J1aWx0aW5faWEzMl92ZWNfZXh0X3YxNmhpKChfX3YxNmhpKShfX20yNTZpKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE4pKSkKCi8vLyBUYWtlcyBhIFszMiB4IGk4XSB2ZWN0b3IgYW5kIHJldHVybnMgdGhlIHZlY3RvciBlbGVtZW50IHZhbHVlCi8vLyAgICBpbmRleGVkIGJ5IHRoZSBpbW1lZGlhdGUgY29uc3RhbnQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFszMiB4IGk4XS4KLy8vIFxwYXJhbSBfX2ltbQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCB3aXRoIGJpdHMgWzQ6MF0gZGV0ZXJtaW5pbmcgd2hpY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IGlzIGV4dHJhY3RlZCBhbmQgcmV0dXJuZWQuCi8vLyBccmV0dXJucyBBIDMyLWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCA4IGJpdHMgb2YgemVybyBleHRlbmRlZAovLy8gICAgcGFja2VkIGRhdGEuCiNkZWZpbmUgX21tMjU2X2V4dHJhY3RfZXBpOChYLCBOKSBcCiAgKChpbnQpKHVuc2lnbmVkIGNoYXIpX19idWlsdGluX2lhMzJfdmVjX2V4dF92MzJxaSgoX192MzJxaSkoX19tMjU2aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKE4pKSkKCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBUYWtlcyBhIFs0IHggaTY0XSB2ZWN0b3IgYW5kIHJldHVybnMgdGhlIHZlY3RvciBlbGVtZW50IHZhbHVlCi8vLyAgICBpbmRleGVkIGJ5IHRoZSBpbW1lZGlhdGUgY29uc3RhbnQgb3BlcmFuZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjgrQ09NUE9TSVRFIDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs0IHggaTY0XS4KLy8vIFxwYXJhbSBfX2ltbQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgb3BlcmFuZCB3aXRoIGJpdHMgWzE6MF0gZGV0ZXJtaW5pbmcgd2hpY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IGlzIGV4dHJhY3RlZCBhbmQgcmV0dXJuZWQuCi8vLyBccmV0dXJucyBBIDY0LWJpdCBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCA2NCBiaXRzIG9mIGV4dGVuZGVkCi8vLyAgICBwYWNrZWQgZGF0YS4KI2RlZmluZSBfbW0yNTZfZXh0cmFjdF9lcGk2NChYLCBOKSBcCiAgKChsb25nIGxvbmcpX19idWlsdGluX2lhMzJfdmVjX2V4dF92NGRpKChfX3Y0ZGkpKF9fbTI1NmkpKFgpLCAoaW50KShOKSkpCiNlbmRpZgoKLy8vIFRha2VzIGEgWzggeCBpMzJdIHZlY3RvciBhbmQgcmVwbGFjZXMgdGhlIHZlY3RvciBlbGVtZW50IHZhbHVlCi8vLyAgICBpbmRleGVkIGJ5IHRoZSBpbW1lZGlhdGUgY29uc3RhbnQgb3BlcmFuZCBieSBhIG5ldyB2YWx1ZS4gUmV0dXJucyB0aGUKLy8vICAgIG1vZGlmaWVkIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbOCB4IGkzMl0gdG8gYmUgdXNlZCBieSB0aGUgaW5zZXJ0IG9wZXJhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEFuIGludGVnZXIgdmFsdWUuIFRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGluZGV4IG9mIHRoZSB2ZWN0b3IgZWxlbWVudCB0byBiZQovLy8gICAgcmVwbGFjZWQuCi8vLyBccmV0dXJucyBBIGNvcHkgb2YgdmVjdG9yIFxhIF9fYSwgYWZ0ZXIgcmVwbGFjaW5nIGl0cyBlbGVtZW50IGluZGV4ZWQgYnkKLy8vICAgIFxhIF9faW1tIHdpdGggXGEgX19iLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRfZXBpMzIoWCwgSSwgTikgXAogICgoX19tMjU2aSlfX2J1aWx0aW5faWEzMl92ZWNfc2V0X3Y4c2koKF9fdjhzaSkoX19tMjU2aSkoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnQpKEkpLCAoaW50KShOKSkpCgoKLy8vIFRha2VzIGEgWzE2IHggaTE2XSB2ZWN0b3IgYW5kIHJlcGxhY2VzIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQgd2l0aCBhIG5ldyB2YWx1ZS4gUmV0dXJucyB0aGUKLy8vICAgIG1vZGlmaWVkIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbMTYgeCBpMTZdIHRvIGJlIHVzZWQgYnkgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBbiBpMTYgaW50ZWdlciB2YWx1ZS4gVGhlIHJlcGxhY2VtZW50IHZhbHVlIGZvciB0aGUgaW5zZXJ0IG9wZXJhdGlvbi4KLy8vIFxwYXJhbSBfX2ltbQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIgc3BlY2lmeWluZyB0aGUgaW5kZXggb2YgdGhlIHZlY3RvciBlbGVtZW50IHRvIGJlCi8vLyAgICByZXBsYWNlZC4KLy8vIFxyZXR1cm5zIEEgY29weSBvZiB2ZWN0b3IgXGEgX19hLCBhZnRlciByZXBsYWNpbmcgaXRzIGVsZW1lbnQgaW5kZXhlZCBieQovLy8gICAgXGEgX19pbW0gd2l0aCBcYSBfX2IuCiNkZWZpbmUgX21tMjU2X2luc2VydF9lcGkxNihYLCBJLCBOKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjE2aGkoKF9fdjE2aGkpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoSSksIChpbnQpKE4pKSkKCi8vLyBUYWtlcyBhIFszMiB4IGk4XSB2ZWN0b3IgYW5kIHJlcGxhY2VzIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQgd2l0aCBhIG5ldyB2YWx1ZS4gUmV0dXJucyB0aGUKLy8vICAgIG1vZGlmaWVkIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbMzIgeCBpOF0gdG8gYmUgdXNlZCBieSB0aGUgaW5zZXJ0IG9wZXJhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEFuIGk4IGludGVnZXIgdmFsdWUuIFRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGluZGV4IG9mIHRoZSB2ZWN0b3IgZWxlbWVudCB0byBiZQovLy8gICAgcmVwbGFjZWQuCi8vLyBccmV0dXJucyBBIGNvcHkgb2YgdmVjdG9yIFxhIF9fYSwgYWZ0ZXIgcmVwbGFjaW5nIGl0cyBlbGVtZW50IGluZGV4ZWQgYnkKLy8vICAgIFxhIF9faW1tIHdpdGggXGEgX19iLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRfZXBpOChYLCBJLCBOKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZlY19zZXRfdjMycWkoKF9fdjMycWkpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCkoSSksIChpbnQpKE4pKSkKCiNpZmRlZiBfX3g4Nl82NF9fCi8vLyBUYWtlcyBhIFs0IHggaTY0XSB2ZWN0b3IgYW5kIHJlcGxhY2VzIHRoZSB2ZWN0b3IgZWxlbWVudCB2YWx1ZQovLy8gICAgaW5kZXhlZCBieSB0aGUgaW1tZWRpYXRlIGNvbnN0YW50IG9wZXJhbmQgd2l0aCBhIG5ldyB2YWx1ZS4gUmV0dXJucyB0aGUKLy8vICAgIG1vZGlmaWVkIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCtDT01QT1NJVEUgPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHZlY3RvciBvZiBbNCB4IGk2NF0gdG8gYmUgdXNlZCBieSB0aGUgaW5zZXJ0IG9wZXJhdGlvbi4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVnZXIgdmFsdWUuIFRoZSByZXBsYWNlbWVudCB2YWx1ZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb24uCi8vLyBccGFyYW0gX19pbW0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyIHNwZWNpZnlpbmcgdGhlIGluZGV4IG9mIHRoZSB2ZWN0b3IgZWxlbWVudCB0byBiZQovLy8gICAgcmVwbGFjZWQuCi8vLyBccmV0dXJucyBBIGNvcHkgb2YgdmVjdG9yIFxhIF9fYSwgYWZ0ZXIgcmVwbGFjaW5nIGl0cyBlbGVtZW50IGluZGV4ZWQgYnkKLy8vICAgICBcYSBfX2ltbSB3aXRoIFxhIF9fYi4KI2RlZmluZSBfbW0yNTZfaW5zZXJ0X2VwaTY0KFgsIEksIE4pIFwKICAoKF9fbTI1NmkpX19idWlsdGluX2lhMzJfdmVjX3NldF92NGRpKChfX3Y0ZGkpKF9fbTI1NmkpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9uZyBsb25nKShJKSwgKGludCkoTikpKQojZW5kaWYKCi8qIENvbnZlcnNpb24gKi8KLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs0IHggaTMyXSBpbnRvIGEgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZURFEyUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpMzJdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRlcGkzMl9wZChfX20xMjhpIF9fYSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHNpKV9fYSwgX192NGRmKTsKfQoKLy8vIENvbnZlcnRzIGEgdmVjdG9yIG9mIFs4IHggaTMyXSBpbnRvIGEgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlREUTJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dGVwaTMyX3BzKF9fbTI1NmkgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2NvbnZlcnR2ZWN0b3IoKF9fdjhzaSlfX2EsIF9fdjhzZik7Cn0KCi8vLyBDb252ZXJ0cyBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZDVlRQRDJQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0cGRfcHMoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9jdnRwZDJwczI1NigoX192NGRmKSBfX2EpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbOCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMkRRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHBzX2VwaTMyKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfY3Z0cHMyZHEyNTYoKF9fdjhzZikgX19hKTsKfQoKLy8vIENvbnZlcnRzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW50byBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0Ci8vLyAgICB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBTMlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0cHNfcGQoX19tMTI4IF9fYSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5fY29udmVydHZlY3RvcigoX192NHNmKV9fYSwgX192NGRmKTsKfQoKLy8vIENvbnZlcnRzIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGludG8gYSAxMjgtYml0IHZlY3RvciBvZiBbNAovLy8gICAgeCBpMzJdLCB0cnVuY2F0aW5nIHRoZSByZXN1bHQgYnkgcm91bmRpbmcgdG93YXJkcyB6ZXJvIHdoZW4gaXQgaXMKLy8vICAgIGluZXhhY3QuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFRQRDJEUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbnZlcnRlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0dHBkX2VwaTMyKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX2N2dHRwZDJkcTI1NigoX192NGRmKSBfX2EpOwp9CgovLy8gQ29udmVydHMgYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gaW50byBhIDEyOC1iaXQgdmVjdG9yIG9mIFs0Ci8vLyAgICB4IGkzMl0uIFdoZW4gYSBjb252ZXJzaW9uIGlzIGluZXhhY3QsIHRoZSB2YWx1ZSByZXR1cm5lZCBpcyByb3VuZGVkCi8vLyAgICBhY2NvcmRpbmcgdG8gdGhlIHJvdW5kaW5nIGNvbnRyb2wgYml0cyBpbiB0aGUgTVhDU1IgcmVnaXN0ZXIuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkNWVFBEMkRRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgY29udmVydGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jdnRwZF9lcGkzMihfX20yNTZkIF9fYSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9jdnRwZDJkcTI1NigoX192NGRmKSBfX2EpOwp9CgovLy8gQ29udmVydHMgYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW50byBhIHZlY3RvciBvZiBbOCB4IGkzMl0sCi8vLyAgICB0cnVuY2F0aW5nIHRoZSByZXN1bHQgYnkgcm91bmRpbmcgdG93YXJkcyB6ZXJvIHdoZW4gaXQgaXMgaW5leGFjdC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWQ1ZUVFBTMkRRIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb252ZXJ0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHRwc19lcGkzMihfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2N2dHRwczJkcTI1NigoX192OHNmKSBfX2EpOwp9CgovLy8gUmV0dXJucyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgaW5wdXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSA2NCBiaXQgZG91YmxlIGNvbnRhaW5pbmcgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGlucHV0IHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIGRvdWJsZSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHNkX2Y2NChfX20yNTZkIF9fYSkKewogcmV0dXJuIF9fYVswXTsKfQoKLy8vIFJldHVybnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGlucHV0IHZlY3RvciBvZiBbOCB4IGkzMl0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggaTMyXS4KLy8vIFxyZXR1cm5zIEEgMzIgYml0IGludGVnZXIgY29udGFpbmluZyB0aGUgZmlyc3QgZWxlbWVudCBvZiB0aGUgaW5wdXQgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY3Z0c2kyNTZfc2kzMihfX20yNTZpIF9fYSkKewogX192OHNpIF9fYiA9IChfX3Y4c2kpX19hOwogcmV0dXJuIF9fYlswXTsKfQoKLy8vIFJldHVybnMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgdGhlIGlucHV0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaXMgYSB1dGlsaXR5IGZ1bmN0aW9uIGFuZCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGEgc3BlY2lmaWMKLy8vICAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDMyIGJpdCBmbG9hdCBjb250YWluaW5nIHRoZSBmaXJzdCBlbGVtZW50IG9mIHRoZSBpbnB1dCB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSBmbG9hdCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2N2dHNzX2YzMihfX20yNTYgX19hKQp7CiByZXR1cm4gX19hWzBdOwp9CgovKiBWZWN0b3IgcmVwbGljYXRlICovCi8vLyBNb3ZlcyBhbmQgZHVwbGljYXRlcyBvZGQtaW5kZXhlZCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbOCB4IGZsb2F0XSB0byBmbG9hdCB2YWx1ZXMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WU0hEVVAgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMjU1OjIyNF0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToyMjRdIGFuZCBbMjIzOjE5Ml0gb2YKLy8vICAgIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxOTE6MTYwXSBvZiBcYSBfX2EgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTkxOjE2MF0gYW5kIFsxNTk6MTI4XSBvZgovLy8gICAgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzEyNzo5Nl0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gYW5kIFs5NTo2NF0gb2YgdGhlCi8vLyAgICByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFs2MzozMl0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBhbmQgWzMxOjBdIG9mIHRoZQovLy8gICAgcmV0dXJuIHZhbHVlLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtb3ZlZCBhbmQgZHVwbGljYXRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbW92ZWhkdXBfcHMoX19tMjU2IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fYSwgKF9fdjhzZilfX2EsIDEsIDEsIDMsIDMsIDUsIDUsIDcsIDcpOwp9CgovLy8gTW92ZXMgYW5kIGR1cGxpY2F0ZXMgZXZlbi1pbmRleGVkIHZhbHVlcyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggZmxvYXRdIHRvIGZsb2F0IHZhbHVlcyBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZTTERVUCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFsyMjM6MTkyXSBvZiBcYSBfX2EgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjU1OjIyNF0gYW5kIFsyMjM6MTkyXSBvZgovLy8gICAgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE1OToxMjhdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxOTE6MTYwXSBhbmQgWzE1OToxMjhdIG9mCi8vLyAgICB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbOTU6NjRdIG9mIFxhIF9fYSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxMjc6OTZdIGFuZCBbOTU6NjRdIG9mIHRoZQovLy8gICAgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMzE6MF0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzYzOjMyXSBhbmQgWzMxOjBdIG9mIHRoZQovLy8gICAgcmV0dXJuIHZhbHVlLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBtb3ZlZCBhbmQgZHVwbGljYXRlZAovLy8gICAgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbW92ZWxkdXBfcHMoX19tMjU2IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fYSwgKF9fdjhzZilfX2EsIDAsIDAsIDIsIDIsIDQsIDQsIDYsIDYpOwp9CgovLy8gTW92ZXMgYW5kIGR1cGxpY2F0ZXMgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhCi8vLyAgICAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gdG8gZG91YmxlLXByZWNpc2lvbiB2YWx1ZXMgaW4gYSAyNTYtYml0Ci8vLyAgICB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZERFVQIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBvZiBcYSBfX2EgYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBhbmQgWzYzOjBdIG9mIHRoZQovLy8gICAgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTkxOjEyOF0gb2YgXGEgX19hIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToxOTJdIGFuZCBbMTkxOjEyOF0gb2YKLy8vICAgIHRoZSByZXR1cm4gdmFsdWUuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBtb3ZlZCBhbmQKLy8vICAgIGR1cGxpY2F0ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21vdmVkdXBfcGQoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19hLCAwLCAwLCAyLCAyKTsKfQoKLyogVW5wYWNrIGFuZCBJbnRlcmxlYXZlICovCi8vLyBVbnBhY2tzIHRoZSBvZGQtaW5kZXhlZCB2ZWN0b3IgZWxlbWVudHMgZnJvbSB0d28gMjU2LWJpdCB2ZWN0b3JzIG9mCi8vLyAgICBbNCB4IGRvdWJsZV0gYW5kIGludGVybGVhdmVzIHRoZW0gaW50byBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVU5QQ0tIUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzI1NToxOTJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE5MToxMjhdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4gXG4KLy8vICAgIEJpdHMgWzEyNzo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMjU1OjE5Ml0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bnBhY2toaV9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iLCAxLCA1LCAxKzIsIDUrMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSBldmVuLWluZGV4ZWQgdmVjdG9yIGVsZW1lbnRzIGZyb20gdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZgovLy8gICAgWzQgeCBkb3VibGVdIGFuZCBpbnRlcmxlYXZlcyB0aGVtIGludG8gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLTFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFxuCi8vLyAgICBCaXRzIFs2MzowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFs2MzowXSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTkxOjEyOF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTkxOjEyOF0gb2YgdGhlIHJldHVybiB2YWx1ZS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBcbgovLy8gICAgQml0cyBbNjM6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3OjY0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTkxOjEyOF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjU1OjE5Ml0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bnBhY2tsb19wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iLCAwLCA0LCAwKzIsIDQrMik7Cn0KCi8vLyBVbnBhY2tzIHRoZSAzMi1iaXQgdmVjdG9yIGVsZW1lbnRzIDIsIDMsIDYgYW5kIDcgZnJvbSBlYWNoIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMjU2LWJpdAovLy8gICAgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0hQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFs5NTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMzE6MF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzEyNzo5Nl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbOTU6NjRdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsyMjM6MTkyXSBhcmUgd3JpdHRlbiB0byBiaXRzIFsxNTk6MTI4XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMjU1OjIyNF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMjIzOjE5Ml0gb2YgdGhlIHJldHVybiB2YWx1ZS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFs5NTo2NF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsxMjc6OTZdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzEyNzo5Nl0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzIyMzoxOTJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzE5MToxNjBdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFsyNTU6MjI0XSBhcmUgd3JpdHRlbiB0byBiaXRzIFsyNTU6MjI0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bnBhY2toaV9wcyhfX20yNTYgX19hLCBfX20yNTYgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3Y4c2YpX19hLCAoX192OHNmKV9fYiwgMiwgMTAsIDIrMSwgMTArMSwgNiwgMTQsIDYrMSwgMTQrMSk7Cn0KCi8vLyBVbnBhY2tzIHRoZSAzMi1iaXQgdmVjdG9yIGVsZW1lbnRzIDAsIDEsIDQgYW5kIDUgZnJvbSBlYWNoIG9mIHRoZQovLy8gICAgdHdvIDI1Ni1iaXQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSBhbmQgaW50ZXJsZWF2ZXMgdGhlbSBpbnRvIGEgMjU2LWJpdAovLy8gICAgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uIFxuCi8vLyAgICBCaXRzIFszMTowXSBhcmUgd3JpdHRlbiB0byBiaXRzIFszMTowXSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbNjM6MzJdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzk1OjY0XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTU5OjEyOF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTU5OjEyOF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE5MToxNjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzIyMzoxOTJdIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBcbgovLy8gICAgQml0cyBbMzE6MF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbNjM6MzJdIG9mIHRoZSByZXR1cm4gdmFsdWUuIFxuCi8vLyAgICBCaXRzIFs2MzozMl0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTI3Ojk2XSBvZiB0aGUgcmV0dXJuIHZhbHVlLiBcbgovLy8gICAgQml0cyBbMTU5OjEyOF0gYXJlIHdyaXR0ZW4gdG8gYml0cyBbMTkxOjE2MF0gb2YgdGhlIHJldHVybiB2YWx1ZS4gXG4KLy8vICAgIEJpdHMgWzE5MToxNjBdIGFyZSB3cml0dGVuIHRvIGJpdHMgWzI1NToyMjRdIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGludGVybGVhdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3VucGFja2xvX3BzKF9fbTI1NiBfX2EsIF9fbTI1NiBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjhzZilfX2EsIChfX3Y4c2YpX19iLCAwLCA4LCAwKzEsIDgrMSwgNCwgMTIsIDQrMSwgMTIrMSk7Cn0KCi8qIEJpdCBUZXN0ICovCi8vLyBHaXZlbiB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBaRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgdGhlIFpGIGZsYWcgaW4gdGhlIEVGTEFHUyByZWdpc3Rlci4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX3Rlc3R6X3BkKF9fbTEyOGQgX19hLCBfX20xMjhkIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdHpwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnQgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgQ0YgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIHRoZSBDRiBmbGFnIGluIHRoZSBFRkxBR1MgcmVnaXN0ZXIuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0Y19wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RjcGQoKF9fdjJkZilfX2EsIChfX3YyZGYpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLCBwZXJmb3JtIGFuCi8vLyAgICBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50IGluIHRoZQovLy8gICAgZmlyc3Qgc291cmNlIHZlY3RvciBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudCBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0cyBvZiBib3RoIGVsZW1lbnRzIGFyZSAxLCB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZQovLy8gICAgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwIGFuZCB0aGUgc2lnbi1iaXQgb2YgdGhlIHNlY29uZCBlbGVtZW50Ci8vLyAgICBpcyAxLCB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsCi8vLyAgICBvdGhlcndpc2UgaXQgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLCBvdGhlcndpc2UgcmV0dXJucyAwLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdG56Y19wZChfX20xMjhkIF9fYSwgX19tMTI4ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RuemNwZCgoX192MmRmKV9fYSwgKF9fdjJkZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBaRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIHRoZSBaRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdHpfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdHpwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBDRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIHRoZSBDRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fdGVzdGNfcHMoX19tMTI4IF9fYSwgX19tMTI4IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdGNwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLAovLy8gICAgb3RoZXJ3aXNlIGl0IHJldHVybnMgMC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsIG90aGVyd2lzZSByZXR1cm5zIDAuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV90ZXN0bnpjX3BzKF9fbTEyOCBfX2EsIF9fbTEyOCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RuemNwcygoX192NHNmKV9fYSwgKF9fdjRzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbNCB4IGRvdWJsZV0sIHBlcmZvcm0gYW4KLy8vICAgIGVsZW1lbnQtYnktZWxlbWVudCBjb21wYXJpc29uIG9mIHRoZSBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIGluIHRoZQovLy8gICAgZmlyc3Qgc291cmNlIHZlY3RvciBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBaRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgdGhlIFpGIGZsYWcuCnN0YXRpYyBfX2lubGluZSBpbnQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl90ZXN0el9wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3R6cGQyNTYoKF9fdjRkZilfX2EsIChfX3Y0ZGYpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBkb3VibGVdLCBwZXJmb3JtIGFuCi8vLyAgICBlbGVtZW50LWJ5LWVsZW1lbnQgY29tcGFyaXNvbiBvZiB0aGUgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnRzIGluIHRoZSBzZWNvbmQgc291cmNlCi8vLyAgICB2ZWN0b3IuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBkb3VibGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXRzIG9mIGJvdGggZWxlbWVudHMgYXJlIDEsIHRoZSBaRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlCi8vLyAgICBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0IG9mIHRoZSBmaXJzdCBlbGVtZW50IGlzIDAgYW5kIHRoZSBzaWduLWJpdCBvZiB0aGUgc2Vjb25kIGVsZW1lbnQKLy8vICAgIGlzIDEsIHRoZSBDRiBmbGFnIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgQ0YgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWVEVTVFBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIHRoZSBDRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdGNfcGQoX19tMjU2ZCBfX2EsIF9fbTI1NmQgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3Z0ZXN0Y3BkMjU2KChfX3Y0ZGYpX19hLCAoX192NGRmKV9fYik7Cn0KCi8vLyBHaXZlbiB0d28gMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFs0IHggZG91YmxlXSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgZG91YmxlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0cyBvZiBib3RoIGVsZW1lbnRzIGFyZSAxLCB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZQovLy8gICAgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGRvdWJsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwIGFuZCB0aGUgc2lnbi1iaXQgb2YgdGhlIHNlY29uZCBlbGVtZW50Ci8vLyAgICBpcyAxLCB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsCi8vLyAgICBvdGhlcndpc2UgaXQgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHJldHVybnMgMSBpZiBib3RoIHRoZSBaRiBhbmQgQ0YgZmxhZ3MgYXJlIHNldCB0byAwLCBvdGhlcndpc2UgcmV0dXJucyAwLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdG56Y19wZChfX20yNTZkIF9fYSwgX19tMjU2ZCBfX2IpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfdnRlc3RuemNwZDI1NigoX192NGRmKV9fYSwgKF9fdjRkZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBaRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIHRoZSBaRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdHpfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdHpwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudCBpbiB0aGUKLy8vICAgIGZpcnN0IHNvdXJjZSB2ZWN0b3IgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVsZW1lbnQgaW4gdGhlIHNlY29uZCBzb3VyY2UKLy8vICAgIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdHMgb2YgYm90aCBlbGVtZW50cyBhcmUgMSwgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUKLy8vICAgIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBzaW5nbGUtcHJlY2lzaW9uIGVsZW1lbnRzIHdoZXJlIHRoZQovLy8gICAgc2lnbi1iaXQgb2YgdGhlIGZpcnN0IGVsZW1lbnQgaXMgMCBhbmQgdGhlIHNpZ24tYml0IG9mIHRoZSBzZWNvbmQgZWxlbWVudAovLy8gICAgaXMgMSwgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBDRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIHRoZSBDRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdGNfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdGNwczI1NigoX192OHNmKV9fYSwgKF9fdjhzZilfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbOCB4IGZsb2F0XSwgcGVyZm9ybSBhbgovLy8gICAgZWxlbWVudC1ieS1lbGVtZW50IGNvbXBhcmlzb24gb2YgdGhlIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgaW4gdGhlCi8vLyAgICBmaXJzdCBzb3VyY2UgdmVjdG9yIGFuZCB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50cyBpbiB0aGUgc2Vjb25kIHNvdXJjZQovLy8gICAgdmVjdG9yLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2Ygc2luZ2xlLXByZWNpc2lvbiBlbGVtZW50cyB3aGVyZSB0aGUKLy8vICAgIHNpZ24tYml0cyBvZiBib3RoIGVsZW1lbnRzIGFyZSAxLCB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZQovLy8gICAgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIHNpbmdsZS1wcmVjaXNpb24gZWxlbWVudHMgd2hlcmUgdGhlCi8vLyAgICBzaWduLWJpdCBvZiB0aGUgZmlyc3QgZWxlbWVudCBpcyAwIGFuZCB0aGUgc2lnbi1iaXQgb2YgdGhlIHNlY29uZCBlbGVtZW50Ci8vLyAgICBpcyAxLCB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsCi8vLyAgICBvdGhlcndpc2UgaXQgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZURVNUUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIDEgaWYgYm90aCB0aGUgWkYgYW5kIENGIGZsYWdzIGFyZSBzZXQgdG8gMCwgb3RoZXJ3aXNlIHJldHVybnMgMC4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RuemNfcHMoX19tMjU2IF9fYSwgX19tMjU2IF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl92dGVzdG56Y3BzMjU2KChfX3Y4c2YpX19hLCAoX192OHNmKV9fYik7Cn0KCi8vLyBHaXZlbiB0d28gMjU2LWJpdCBpbnRlZ2VyIHZlY3RvcnMsIHBlcmZvcm0gYSBiaXQtYnktYml0IGNvbXBhcmlzb24KLy8vICAgIG9mIHRoZSB0d28gc291cmNlIHZlY3RvcnMuCi8vLwovLy8gICAgVGhlIEVGTEFHUyByZWdpc3RlciBpcyB1cGRhdGVkIGFzIGZvbGxvd3M6IFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBiaXRzIHdoZXJlIGJvdGggYml0cyBhcmUgMSwgdGhlIFpGIGZsYWcKLy8vICAgIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIFpGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBJZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgcGFpciBvZiBiaXRzIHdoZXJlIHRoZSBiaXQgZnJvbSB0aGUgZmlyc3Qgc291cmNlCi8vLyAgICB2ZWN0b3IgaXMgMCBhbmQgdGhlIGJpdCBmcm9tIHRoZSBzZWNvbmQgc291cmNlIHZlY3RvciBpcyAxLCB0aGUgQ0YgZmxhZwovLy8gICAgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgQ0YgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIFRoaXMgaW50cmluc2ljIHJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBaRiBmbGFnLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVEVTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIHRoZSBaRiBmbGFnLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfdGVzdHpfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3B0ZXN0ejI1NigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2IpOwp9CgovLy8gR2l2ZW4gdHdvIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3JzLCBwZXJmb3JtIGEgYml0LWJ5LWJpdCBjb21wYXJpc29uCi8vLyAgICBvZiB0aGUgdHdvIHNvdXJjZSB2ZWN0b3JzLgovLy8KLy8vICAgIFRoZSBFRkxBR1MgcmVnaXN0ZXIgaXMgdXBkYXRlZCBhcyBmb2xsb3dzOiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgYml0cyB3aGVyZSBib3RoIGJpdHMgYXJlIDEsIHRoZSBaRiBmbGFnCi8vLyAgICBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBaRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgSWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIHBhaXIgb2YgYml0cyB3aGVyZSB0aGUgYml0IGZyb20gdGhlIGZpcnN0IHNvdXJjZQovLy8gICAgdmVjdG9yIGlzIDAgYW5kIHRoZSBiaXQgZnJvbSB0aGUgc2Vjb25kIHNvdXJjZSB2ZWN0b3IgaXMgMSwgdGhlIENGIGZsYWcKLy8vICAgIGlzIHNldCB0byAwLiBPdGhlcndpc2UgdGhlIENGIGZsYWcgaXMgc2V0IHRvIDEuIFxuCi8vLyAgICBUaGlzIGludHJpbnNpYyByZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgQ0YgZmxhZy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFRFU1QgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyB0aGUgQ0YgZmxhZy4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RjX3NpMjU2KF9fbTI1NmkgX19hLCBfX20yNTZpIF9fYikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wdGVzdGMyNTYoKF9fdjRkaSlfX2EsIChfX3Y0ZGkpX19iKTsKfQoKLy8vIEdpdmVuIHR3byAyNTYtYml0IGludGVnZXIgdmVjdG9ycywgcGVyZm9ybSBhIGJpdC1ieS1iaXQgY29tcGFyaXNvbgovLy8gICAgb2YgdGhlIHR3byBzb3VyY2UgdmVjdG9ycy4KLy8vCi8vLyAgICBUaGUgRUZMQUdTIHJlZ2lzdGVyIGlzIHVwZGF0ZWQgYXMgZm9sbG93czogXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGJpdHMgd2hlcmUgYm90aCBiaXRzIGFyZSAxLCB0aGUgWkYgZmxhZwovLy8gICAgaXMgc2V0IHRvIDAuIE90aGVyd2lzZSB0aGUgWkYgZmxhZyBpcyBzZXQgdG8gMS4gXG4KLy8vICAgIElmIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBwYWlyIG9mIGJpdHMgd2hlcmUgdGhlIGJpdCBmcm9tIHRoZSBmaXJzdCBzb3VyY2UKLy8vICAgIHZlY3RvciBpcyAwIGFuZCB0aGUgYml0IGZyb20gdGhlIHNlY29uZCBzb3VyY2UgdmVjdG9yIGlzIDEsIHRoZSBDRiBmbGFnCi8vLyAgICBpcyBzZXQgdG8gMC4gT3RoZXJ3aXNlIHRoZSBDRiBmbGFnIGlzIHNldCB0byAxLiBcbgovLy8gICAgVGhpcyBpbnRyaW5zaWMgcmV0dXJucyAxIGlmIGJvdGggdGhlIFpGIGFuZCBDRiBmbGFncyBhcmUgc2V0IHRvIDAsCi8vLyAgICBvdGhlcndpc2UgaXQgcmV0dXJucyAwLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQVEVTVCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIDEgaWYgYm90aCB0aGUgWkYgYW5kIENGIGZsYWdzIGFyZSBzZXQgdG8gMCwgb3RoZXJ3aXNlIHJldHVybnMgMC4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3Rlc3RuemNfc2kyNTYoX19tMjU2aSBfX2EsIF9fbTI1NmkgX19iKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9pYTMyX3B0ZXN0bnpjMjU2KChfX3Y0ZGkpX19hLCAoX192NGRpKV9fYik7Cn0KCi8qIFZlY3RvciBleHRyYWN0IHNpZ24gbWFzayAqLwovLy8gRXh0cmFjdHMgdGhlIHNpZ24gYml0cyBvZiBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IGVsZW1lbnRzCi8vLyAgICBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBhbmQgd3JpdGVzIHRoZW0gdG8gdGhlIGxvd2VyIG9yZGVyCi8vLyAgICBiaXRzIG9mIHRoZSByZXR1cm4gdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk1TS1BEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzIHdpdGggc2lnbiBiaXRzIHRvIGJlIGV4dHJhY3RlZC4KLy8vIFxyZXR1cm5zIFRoZSBzaWduIGJpdHMgZnJvbSB0aGUgb3BlcmFuZCwgd3JpdHRlbiB0byBiaXRzIFszOjBdLgpzdGF0aWMgX19pbmxpbmUgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbW92ZW1hc2tfcGQoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbW92bXNrcGQyNTYoKF9fdjRkZilfX2EpOwp9CgovLy8gRXh0cmFjdHMgdGhlIHNpZ24gYml0cyBvZiBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IGVsZW1lbnRzCi8vLyAgICBpbiBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGFuZCB3cml0ZXMgdGhlbSB0byB0aGUgbG93ZXIgb3JkZXIKLy8vICAgIGJpdHMgb2YgdGhlIHJldHVybiB2YWx1ZS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTVNLUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcKLy8vICAgIHBvaW50IHZhbHVlcyB3aXRoIHNpZ24gYml0cyB0byBiZSBleHRyYWN0ZWQuCi8vLyBccmV0dXJucyBUaGUgc2lnbiBiaXRzIGZyb20gdGhlIG9wZXJhbmQsIHdyaXR0ZW4gdG8gYml0cyBbNzowXS4Kc3RhdGljIF9faW5saW5lIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21vdmVtYXNrX3BzKF9fbTI1NiBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfbW92bXNrcHMyNTYoKF9fdjhzZilfX2EpOwp9CgovKiBWZWN0b3IgX196ZXJvICovCi8vLyBaZXJvZXMgdGhlIGNvbnRlbnRzIG9mIGFsbCBYTU0gb3IgWU1NIHJlZ2lzdGVycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWkVST0FMTCA8L2M+IGluc3RydWN0aW9uLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eCIpKSkKX21tMjU2X3plcm9hbGwodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX3Z6ZXJvYWxsKCk7Cn0KCi8vLyBaZXJvZXMgdGhlIHVwcGVyIDEyOCBiaXRzIChiaXRzIDI1NToxMjgpIG9mIGFsbCBZTU0gcmVnaXN0ZXJzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZaRVJPVVBQRVIgPC9jPiBpbnN0cnVjdGlvbi4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJhdngiKSkpCl9tbTI1Nl96ZXJvdXBwZXIodm9pZCkKewogIF9fYnVpbHRpbl9pYTMyX3Z6ZXJvdXBwZXIoKTsKfQoKLyogVmVjdG9yIGxvYWQgd2l0aCBicm9hZGNhc3QgKi8KLy8vIExvYWRzIGEgc2NhbGFyIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUgZnJvbSB0aGUKLy8vICAgIHNwZWNpZmllZCBhZGRyZXNzIHBvaW50ZWQgdG8gYnkgXGEgX19hIGFuZCBicm9hZGNhc3RzIGl0IHRvIHRoZSBlbGVtZW50cwovLy8gICAgb2YgYSBbNCB4IGZsb2F0XSB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJST0FEQ0FTVFNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUgdG8gYmUgYnJvYWRjYXN0LgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB3aG9zZSAzMi1iaXQgZWxlbWVudHMgYXJlIHNldAovLy8gICAgZXF1YWwgdG8gdGhlIGJyb2FkY2FzdCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lIF9fbTEyOCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2Jyb2FkY2FzdF9zcyhmbG9hdCBjb25zdCAqX19hKQp7CiAgZmxvYXQgX19mID0gKl9fYTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4KShfX3Y0c2YpeyBfX2YsIF9fZiwgX19mLCBfX2YgfTsKfQoKLy8vIExvYWRzIGEgc2NhbGFyIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUgZnJvbSB0aGUKLy8vICAgIHNwZWNpZmllZCBhZGRyZXNzIHBvaW50ZWQgdG8gYnkgXGEgX19hIGFuZCBicm9hZGNhc3RzIGl0IHRvIHRoZSBlbGVtZW50cwovLy8gICAgb2YgYSBbNCB4IGRvdWJsZV0gdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZCUk9BRENBU1RTRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIFRoZSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlIHRvIGJlIGJyb2FkY2FzdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIHdob3NlIDY0LWJpdCBlbGVtZW50cyBhcmUgc2V0Ci8vLyAgICBlcXVhbCB0byB0aGUgYnJvYWRjYXN0IHZhbHVlLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Jyb2FkY2FzdF9zZChkb3VibGUgY29uc3QgKl9fYSkKewogIGRvdWJsZSBfX2QgPSAqX19hOwogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZkKShfX3Y0ZGYpeyBfX2QsIF9fZCwgX19kLCBfX2QgfTsKfQoKLy8vIExvYWRzIGEgc2NhbGFyIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUgZnJvbSB0aGUKLy8vICAgIHNwZWNpZmllZCBhZGRyZXNzIHBvaW50ZWQgdG8gYnkgXGEgX19hIGFuZCBicm9hZGNhc3RzIGl0IHRvIHRoZSBlbGVtZW50cwovLy8gICAgb2YgYSBbOCB4IGZsb2F0XSB2ZWN0b3IuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJST0FEQ0FTVFNTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgVGhlIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWUgdG8gYmUgYnJvYWRjYXN0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSB3aG9zZSAzMi1iaXQgZWxlbWVudHMgYXJlIHNldAovLy8gICAgZXF1YWwgdG8gdGhlIGJyb2FkY2FzdCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Jyb2FkY2FzdF9zcyhmbG9hdCBjb25zdCAqX19hKQp7CiAgZmxvYXQgX19mID0gKl9fYTsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2KShfX3Y4c2YpeyBfX2YsIF9fZiwgX19mLCBfX2YsIF9fZiwgX19mLCBfX2YsIF9fZiB9Owp9CgovLy8gTG9hZHMgdGhlIGRhdGEgZnJvbSBhIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBmcm9tIHRoZQovLy8gICAgc3BlY2lmaWVkIGFkZHJlc3MgcG9pbnRlZCB0byBieSBcYSBfX2EgYW5kIGJyb2FkY2FzdHMgaXQgdG8gMTI4LWJpdAovLy8gICAgZWxlbWVudHMgaW4gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJST0FEQ0FTVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBUaGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGJlIGJyb2FkY2FzdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIHdob3NlIDEyOC1iaXQgZWxlbWVudHMgYXJlIHNldAovLy8gICAgZXF1YWwgdG8gdGhlIGJyb2FkY2FzdCB2YWx1ZS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9icm9hZGNhc3RfcGQoX19tMTI4ZCBjb25zdCAqX19hKQp7CiAgX19tMTI4ZCBfX2IgPSBfbW1fbG9hZHVfcGQoKGNvbnN0IGRvdWJsZSAqKV9fYSk7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19iLCAoX192MmRmKV9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMSwgMCwgMSk7Cn0KCi8vLyBMb2FkcyB0aGUgZGF0YSBmcm9tIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gZnJvbSB0aGUKLy8vICAgIHNwZWNpZmllZCBhZGRyZXNzIHBvaW50ZWQgdG8gYnkgXGEgX19hIGFuZCBicm9hZGNhc3RzIGl0IHRvIDEyOC1iaXQKLy8vICAgIGVsZW1lbnRzIGluIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkJST0FEQ0FTVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBUaGUgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYmUgYnJvYWRjYXN0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSB3aG9zZSAxMjgtYml0IGVsZW1lbnRzIGFyZSBzZXQKLy8vICAgIGVxdWFsIHRvIHRoZSBicm9hZGNhc3QgdmFsdWUuCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9icm9hZGNhc3RfcHMoX19tMTI4IGNvbnN0ICpfX2EpCnsKICBfX20xMjggX19iID0gX21tX2xvYWR1X3BzKChjb25zdCBmbG9hdCAqKV9fYSk7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2IsIChfX3Y0c2YpX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsIDIsIDMsIDAsIDEsIDIsIDMpOwp9CgovKiBTSU1EIGxvYWQgb3BzICovCi8vLyBMb2FkcyA0IGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgdmFsdWVzIGZyb20gYSAzMi1ieXRlIGFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WQVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSAzMi1ieXRlIGFsaWduZWQgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9sb2FkX3BkKGRvdWJsZSBjb25zdCAqX19wKQp7CiAgcmV0dXJuICooY29uc3QgX19tMjU2ZCAqKV9fcDsKfQoKLy8vIExvYWRzIDggc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDMyLWJ5dGUgYWxpZ25lZAovLy8gICAgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wIGludG8gYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgMzItYnl0ZSBhbGlnbmVkIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBmbG9hdCB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWRfcHMoZmxvYXQgY29uc3QgKl9fcCkKewogIHJldHVybiAqKGNvbnN0IF9fbTI1NiAqKV9fcDsKfQoKLy8vIExvYWRzIDQgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhbiB1bmFsaWduZWQKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZwovLy8gICAgcG9pbnQgdmFsdWVzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWR1X3BkKGRvdWJsZSBjb25zdCAqX19wKQp7CiAgc3RydWN0IF9fbG9hZHVfcGQgewogICAgX19tMjU2ZF91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wZCopX19wKS0+X192Owp9CgovLy8gTG9hZHMgOCBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBmcm9tIGFuIHVuYWxpZ25lZAovLy8gICAgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wIGludG8gYSB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVlVQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiBjb250YWluaW5nIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmcKLy8vICAgIHBvaW50IHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZHVfcHMoZmxvYXQgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3BzIHsKICAgIF9fbTI1Nl91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICByZXR1cm4gKChjb25zdCBzdHJ1Y3QgX19sb2FkdV9wcyopX19wKS0+X192Owp9CgovLy8gTG9hZHMgMjU2IGJpdHMgb2YgaW50ZWdlciBkYXRhIGZyb20gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5Ci8vLyAgICBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGVsZW1lbnRzIG9mIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRFFBIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSAzMi1ieXRlIGFsaWduZWQgcG9pbnRlciB0byBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBpbnRlZ2VyCi8vLyAgICB2YWx1ZXMuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbW92ZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2xvYWRfc2kyNTYoX19tMjU2aSBjb25zdCAqX19wKQp7CiAgcmV0dXJuICpfX3A7Cn0KCi8vLyBMb2FkcyAyNTYgYml0cyBvZiBpbnRlZ2VyIGRhdGEgZnJvbSBhbiB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9uCi8vLyAgICBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WRFFVIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIGludGVnZXIgdmFsdWVzLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1vdmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9sb2FkdV9zaTI1NihfX20yNTZpX3UgY29uc3QgKl9fcCkKewogIHN0cnVjdCBfX2xvYWR1X3NpMjU2IHsKICAgIF9fbTI1NmlfdSBfX3Y7CiAgfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX21heV9hbGlhc19fKSk7CiAgcmV0dXJuICgoY29uc3Qgc3RydWN0IF9fbG9hZHVfc2kyNTYqKV9fcCktPl9fdjsKfQoKLy8vIExvYWRzIDI1NiBiaXRzIG9mIGludGVnZXIgZGF0YSBmcm9tIGFuIHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24KLy8vICAgIHBvaW50ZWQgdG8gYnkgXGEgX19wIGludG8gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yLiBUaGlzIGludHJpbnNpYyBtYXkKLy8vICAgIHBlcmZvcm0gYmV0dGVyIHRoYW4gXGMgX21tMjU2X2xvYWR1X3NpMjU2IHdoZW4gdGhlIGRhdGEgY3Jvc3NlcyBhIGNhY2hlCi8vLyAgICBsaW5lIGJvdW5kYXJ5LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZMRERRVSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBtb3ZlZCB2YWx1ZXMuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbGRkcXVfc2kyNTYoX19tMjU2aSBjb25zdCAqX19wKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX2xkZHF1MjU2KChjaGFyIGNvbnN0ICopX19wKTsKfQoKLyogU0lNRCBzdG9yZSBvcHMgKi8KLy8vIFN0b3JlcyBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IHZhbHVlcyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3IKLy8vICAgIG9mIFs0IHggZG91YmxlXSB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieQovLy8gICAgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZBUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIDMyLWJ5dGUgYWxpZ25lZCBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgZG91YmxlLXByZWNpc2lvbiBmbG9haW5nIHBvaW50IHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdG9yZV9wZChkb3VibGUgKl9fcCwgX19tMjU2ZCBfX2EpCnsKICAqKF9fbTI1NmQgKilfX3AgPSBfX2E7Cn0KCi8vLyBTdG9yZXMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XSB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkFQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgMzItYnl0ZSBhbGlnbmVkIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlCi8vLyAgICBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdG9yZV9wcyhmbG9hdCAqX19wLCBfX20yNTYgX19hKQp7CiAgKihfX20yNTYgKilfX3AgPSBfX2E7Cn0KCi8vLyBTdG9yZXMgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGRvdWJsZV0gdG8gYW4gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WVVBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBkb3VibGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZyBwb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmV1X3BkKGRvdWJsZSAqX19wLCBfX20yNTZkIF9fYSkKewogIHN0cnVjdCBfX3N0b3JldV9wZCB7CiAgICBfX20yNTZkX3UgX192OwogIH0gX19hdHRyaWJ1dGVfXygoX19wYWNrZWRfXywgX19tYXlfYWxpYXNfXykpOwogICgoc3RydWN0IF9fc3RvcmV1X3BkKilfX3ApLT5fX3YgPSBfX2E7Cn0KCi8vLyBTdG9yZXMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XSB0byBhbiB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNT1ZVUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlIGZsb2F0IHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIG1vdmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldV9wcyhmbG9hdCAqX19wLCBfX20yNTYgX19hKQp7CiAgc3RydWN0IF9fc3RvcmV1X3BzIHsKICAgIF9fbTI1Nl91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9wcyopX19wKS0+X192ID0gX19hOwp9CgovLy8gU3RvcmVzIGludGVnZXIgdmFsdWVzIGZyb20gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIHRvIGEgMzItYnl0ZQovLy8gICAgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkRRQSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgMzItYnl0ZSBhbGlnbmVkIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlCi8vLyAgICBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmVfc2kyNTYoX19tMjU2aSAqX19wLCBfX20yNTZpIF9fYSkKewogICpfX3AgPSBfX2E7Cn0KCi8vLyBTdG9yZXMgaW50ZWdlciB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYW4gdW5hbGlnbmVkCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkRRVSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgaW50ZWdlciB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgdmFsdWVzIHRvIGJlIG1vdmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldV9zaTI1NihfX20yNTZpX3UgKl9fcCwgX19tMjU2aSBfX2EpCnsKICBzdHJ1Y3QgX19zdG9yZXVfc2kyNTYgewogICAgX19tMjU2aV91IF9fdjsKICB9IF9fYXR0cmlidXRlX18oKF9fcGFja2VkX18sIF9fbWF5X2FsaWFzX18pKTsKICAoKHN0cnVjdCBfX3N0b3JldV9zaTI1NiopX19wKS0+X192ID0gX19hOwp9CgovKiBDb25kaXRpb25hbCBsb2FkIG9wcyAqLwovLy8gQ29uZGl0aW9uYWxseSBsb2FkcyBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IGVsZW1lbnRzIGZyb20gYQovLy8gICAgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wIGludG8gYSAxMjgtYml0IHZlY3RvciBvZgovLy8gICAgWzIgeCBkb3VibGVdLCBkZXBlbmRpbmcgb24gdGhlIG1hc2sgYml0cyBhc3NvY2lhdGVkIHdpdGggZWFjaCBkYXRhCi8vLyAgICBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUEQgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZgovLy8gICAgZWFjaCBkYXRhIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzIHplcm8sIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uIGlzIG5vdCBsb2FkZWQgYW5kIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB0aGUgcmV0dXJuIHZhbHVlIGlzIHNldCB0byB6ZXJvLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrbG9hZF9wZChkb3VibGUgY29uc3QgKl9fcCwgX19tMTI4aSBfX20pCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfbWFza2xvYWRwZCgoY29uc3QgX192MmRmICopX19wLCAoX192MmRpKV9fbSk7Cn0KCi8vLyBDb25kaXRpb25hbGx5IGxvYWRzIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmcgcG9pbnQgZWxlbWVudHMgZnJvbSBhCi8vLyAgICBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaW50byBhIDI1Ni1iaXQgdmVjdG9yIG9mCi8vLyAgICBbNCB4IGRvdWJsZV0sIGRlcGVuZGluZyBvbiB0aGUgbWFzayBiaXRzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGRhdGEKLy8vICAgIGVsZW1lbnQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNvbnRhaW5zIHRoZSBkb3VibGUtcHJlY2lzaW9uCi8vLyAgICBmbG9hdGluZyBwb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBxdWFkd29yZF0gY29udGFpbmluZyB0aGUgbWFzay4gVGhlIG1vc3QKLy8vICAgIHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIHF1YWR3b3JkIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgbWFzayBiaXRzLiBJZiBhCi8vLyAgICBtYXNrIGJpdCBpcyB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uIGlzIG5vdAovLy8gICAgbG9hZGVkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB0aGUgcmV0dXJuIHZhbHVlIGlzIHNldCB0byB6ZXJvLgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9tYXNrbG9hZF9wZChkb3VibGUgY29uc3QgKl9fcCwgX19tMjU2aSBfX20pCnsKICByZXR1cm4gKF9fbTI1NmQpX19idWlsdGluX2lhMzJfbWFza2xvYWRwZDI1NigoY29uc3QgX192NGRmICopX19wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGkpX19tKTsKfQoKLy8vIENvbmRpdGlvbmFsbHkgbG9hZHMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cyBmcm9tIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgMTI4LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs0IHggZmxvYXRdLCBkZXBlbmRpbmcgb24gdGhlIG1hc2sgYml0cyBhc3NvY2lhdGVkIHdpdGggZWFjaCBkYXRhCi8vLyAgICBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZgovLy8gICAgZWFjaCBkYXRhIGVsZW1lbnQgcmVwcmVzZW50cyB0aGUgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzIHplcm8sIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyB2YWx1ZSBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uIGlzIG5vdCBsb2FkZWQgYW5kIHRoZQovLy8gICAgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB0aGUgcmV0dXJuIHZhbHVlIGlzIHNldCB0byB6ZXJvLgovLy8gXHJldHVybnMgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSBsb2FkZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbWFza2xvYWRfcHMoZmxvYXQgY29uc3QgKl9fcCwgX19tMTI4aSBfX20pCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl9tYXNrbG9hZHBzKChjb25zdCBfX3Y0c2YgKilfX3AsIChfX3Y0c2kpX19tKTsKfQoKLy8vIENvbmRpdGlvbmFsbHkgbG9hZHMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCBlbGVtZW50cyBmcm9tIGEKLy8vICAgIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpbnRvIGEgMjU2LWJpdCB2ZWN0b3Igb2YKLy8vICAgIFs4IHggZmxvYXRdLCBkZXBlbmRpbmcgb24gdGhlIG1hc2sgYml0cyBhc3NvY2lhdGVkIHdpdGggZWFjaCBkYXRhCi8vLyAgICBlbGVtZW50LgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZNQVNLTU9WUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSBtZW1vcnkgbG9jYXRpb24gdGhhdCBjb250YWlucyB0aGUgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmcgcG9pbnQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggZHdvcmRdIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0Ci8vLyAgICBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBkd29yZCBlbGVtZW50IHJlcHJlc2VudHMgdGhlIG1hc2sgYml0cy4gSWYgYSBtYXNrCi8vLyAgICBiaXQgaXMgemVybywgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbiBpcyBub3QgbG9hZGVkCi8vLyAgICBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIHJldHVybiB2YWx1ZSBpcyBzZXQgdG8gemVyby4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgbG9hZGVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X21hc2tsb2FkX3BzKGZsb2F0IGNvbnN0ICpfX3AsIF9fbTI1NmkgX19tKQp7CiAgcmV0dXJuIChfX20yNTYpX19idWlsdGluX2lhMzJfbWFza2xvYWRwczI1NigoY29uc3QgX192OHNmICopX19wLCAoX192OHNpKV9fbSk7Cn0KCi8qIENvbmRpdGlvbmFsIHN0b3JlIG9wcyAqLwovLy8gTW92ZXMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XSB0byBhIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCwgYWNjb3JkaW5nIHRvCi8vLyAgICB0aGUgc3BlY2lmaWVkIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZmxvYXQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggZHdvcmRdIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0Ci8vLyAgICBzaWduaWZpY2FudCBiaXQgb2YgZWFjaCBkd29yZCBlbGVtZW50IGluIHRoZSBtYXNrIHZlY3RvciByZXByZXNlbnRzIHRoZQovLy8gICAgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb20gdmVjdG9yCi8vLyAgICBcYSBfX2EgaXMgbm90IHN0b3JlZCBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbgovLy8gICAgcG9pbnRlZCB0byBieSBcYSBfX3AgaXMgbm90IGNoYW5nZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWFza3N0b3JlX3BzKGZsb2F0ICpfX3AsIF9fbTI1NmkgX19tLCBfX20yNTYgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbWFza3N0b3JlcHMyNTYoKF9fdjhzZiAqKV9fcCwgKF9fdjhzaSlfX20sIChfX3Y4c2YpX19hKTsKfQoKLy8vIE1vdmVzIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGZyb20gYSAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0KLy8vICAgIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZAovLy8gICAgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFTS01PVlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgY29udGFpbmluZyB0aGUgbWFzay4gVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IG9mCi8vLyAgICBlYWNoIGZpZWxkIGluIHRoZSBtYXNrIHZlY3RvciByZXByZXNlbnRzIHRoZSBtYXNrIGJpdHMuIElmIGEgbWFzayBiaXQgaXMKLy8vICAgIHplcm8sIHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGZyb20gdmVjdG9yIFxhIF9fYSBpcyBub3Qgc3RvcmVkIGFuZCB0aGUKLy8vICAgIGNvcnJlc3BvbmRpbmcgZmllbGQgaW4gdGhlIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpcyBub3QKLy8vICAgIGNoYW5nZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tzdG9yZV9wZChkb3VibGUgKl9fcCwgX19tMTI4aSBfX20sIF9fbTEyOGQgX19hKQp7CiAgX19idWlsdGluX2lhMzJfbWFza3N0b3JlcGQoKF9fdjJkZiAqKV9fcCwgKF9fdjJkaSlfX20sIChfX3YyZGYpX19hKTsKfQoKLy8vIE1vdmVzIGRvdWJsZS1wcmVjaXNpb24gdmFsdWVzIGZyb20gYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0KLy8vICAgIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHBvaW50ZWQgdG8gYnkgXGEgX19wLCBhY2NvcmRpbmcgdG8gdGhlIHNwZWNpZmllZAovLy8gICAgbWFzay4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTUFTS01PVlBEIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fcAovLy8gICAgQSBwb2ludGVyIHRvIGEgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBmbG9hdCB2YWx1ZXMuCi8vLyBccGFyYW0gX19tCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBxdWFkd29yZF0gY29udGFpbmluZyB0aGUgbWFzay4gVGhlIG1vc3QKLy8vICAgIHNpZ25pZmljYW50IGJpdCBvZiBlYWNoIHF1YWR3b3JkIGVsZW1lbnQgaW4gdGhlIG1hc2sgdmVjdG9yIHJlcHJlc2VudHMKLy8vICAgIHRoZSBtYXNrIGJpdHMuIElmIGEgbWFzayBiaXQgaXMgemVybywgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgZnJvbSB2ZWN0b3IKLy8vICAgIF9fYSBpcyBub3Qgc3RvcmVkIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmaWVsZCBpbiB0aGUgbWVtb3J5IGxvY2F0aW9uCi8vLyAgICBwb2ludGVkIHRvIGJ5IFxhIF9fcCBpcyBub3QgY2hhbmdlZC4KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBzdG9yZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbWFza3N0b3JlX3BkKGRvdWJsZSAqX19wLCBfX20yNTZpIF9fbSwgX19tMjU2ZCBfX2EpCnsKICBfX2J1aWx0aW5faWEzMl9tYXNrc3RvcmVwZDI1NigoX192NGRmICopX19wLCAoX192NGRpKV9fbSwgKF9fdjRkZilfX2EpOwp9CgovLy8gTW92ZXMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDEyOC1iaXQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGZsb2F0XSB0byBhIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IFxhIF9fcCwgYWNjb3JkaW5nIHRvCi8vLyAgICB0aGUgc3BlY2lmaWVkIG1hc2suCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1BU0tNT1ZQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3AKLy8vICAgIEEgcG9pbnRlciB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IHdpbGwgcmVjZWl2ZSB0aGUgZmxvYXQgdmFsdWVzLgovLy8gXHBhcmFtIF9fbQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIG1hc2suIFRoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZgovLy8gICAgZWFjaCBmaWVsZCBpbiB0aGUgbWFzayB2ZWN0b3IgcmVwcmVzZW50cyB0aGUgbWFzayBiaXRzLiBJZiBhIG1hc2sgYml0IGlzCi8vLyAgICB6ZXJvLCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBmcm9tIHZlY3RvciBfX2EgaXMgbm90IHN0b3JlZCBhbmQgdGhlCi8vLyAgICBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHRoZSBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSBcYSBfX3AgaXMgbm90Ci8vLyAgICBjaGFuZ2VkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XSBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgc3RvcmVkLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tzdG9yZV9wcyhmbG9hdCAqX19wLCBfX20xMjhpIF9fbSwgX19tMTI4IF9fYSkKewogIF9fYnVpbHRpbl9pYTMyX21hc2tzdG9yZXBzKChfX3Y0c2YgKilfX3AsIChfX3Y0c2kpX19tLCAoX192NHNmKV9fYSk7Cn0KCi8qIENhY2hlYWJpbGl0eSBzdXBwb3J0IG9wcyAqLwovLy8gTW92ZXMgaW50ZWdlciBkYXRhIGZyb20gYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIHRvIGEgMzItYnl0ZQovLy8gICAgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzIGZsYWdnZWQgYXMKLy8vICAgIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlREUSA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlCi8vLyAgICBpbnRlZ2VyIHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSB2YWx1ZXMgdG8gYmUgbW92ZWQuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RyZWFtX3NpMjU2KF9fbTI1NmkgKl9fYSwgX19tMjU2aSBfX2IpCnsKICB0eXBlZGVmIF9fdjRkaSBfX3Y0ZGlfYWxpZ25lZCBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKDMyKSkpOwogIF9fYnVpbHRpbl9ub250ZW1wb3JhbF9zdG9yZSgoX192NGRpX2FsaWduZWQpX19iLCAoX192NGRpX2FsaWduZWQqKV9fYSk7Cn0KCi8vLyBNb3ZlcyBkb3VibGUtcHJlY2lzaW9uIHZhbHVlcyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdCi8vLyAgICB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFRvIG1pbmltaXplIGNhY2hpbmcsIHRoZSBkYXRhIGlzCi8vLyAgICBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUgdXNlZCBhZ2FpbiBzb29uKS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWTU9WTlRQRCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgcG9pbnRlciB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24gdGhhdCB3aWxsIHJlY2VpdmUgdGhlCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdHJlYW1fcGQoZG91YmxlICpfX2EsIF9fbTI1NmQgX19iKQp7CiAgdHlwZWRlZiBfX3Y0ZGYgX192NGRmX2FsaWduZWQgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCgzMikpKTsKICBfX2J1aWx0aW5fbm9udGVtcG9yYWxfc3RvcmUoKF9fdjRkZl9hbGlnbmVkKV9fYiwgKF9fdjRkZl9hbGlnbmVkKilfX2EpOwp9CgovLy8gTW92ZXMgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMgZnJvbSBhIDI1Ni1iaXQgdmVjdG9yCi8vLyAgICBvZiBbOCB4IGZsb2F0XSB0byBhIDMyLWJ5dGUgYWxpZ25lZCBtZW1vcnkgbG9jYXRpb24uIFRvIG1pbmltaXplCi8vLyAgICBjYWNoaW5nLCB0aGUgZGF0YSBpcyBmbGFnZ2VkIGFzIG5vbi10ZW1wb3JhbCAodW5saWtlbHkgdG8gYmUgdXNlZCBhZ2FpbgovLy8gICAgc29vbikuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVk5UUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19wCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAzMi1ieXRlIGFsaWduZWQgbWVtb3J5IGxvY2F0aW9uIHRoYXQgd2lsbCByZWNlaXZlIHRoZQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZyBwb2ludCB2YWx1ZXMuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHZhbHVlcyB0byBiZSBtb3ZlZC4Kc3RhdGljIF9faW5saW5lIHZvaWQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zdHJlYW1fcHMoZmxvYXQgKl9fcCwgX19tMjU2IF9fYSkKewogIHR5cGVkZWYgX192OHNmIF9fdjhzZl9hbGlnbmVkIF9fYXR0cmlidXRlX18oKGFsaWduZWQoMzIpKSk7CiAgX19idWlsdGluX25vbnRlbXBvcmFsX3N0b3JlKChfX3Y4c2ZfYWxpZ25lZClfX2EsIChfX3Y4c2ZfYWxpZ25lZCopX19wKTsKfQoKLyogQ3JlYXRlIHZlY3RvcnMgKi8KLy8vIENyZWF0ZSBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSB3aXRoIHVuZGVmaW5lZCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdW5kZWZpbmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3VuZGVmaW5lZF9wZCh2b2lkKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYnVpbHRpbl9pYTMyX3VuZGVmMjU2KCk7Cn0KCi8vLyBDcmVhdGUgYSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XSB3aXRoIHVuZGVmaW5lZCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB1bmRlZmluZWQgdmFsdWVzLgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl91bmRlZmluZWRfcHModm9pZCkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3VuZGVmMjU2KCk7Cn0KCi8vLyBDcmVhdGUgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIHdpdGggdW5kZWZpbmVkIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdW5kZWZpbmVkIHZhbHVlcy4Kc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3VuZGVmaW5lZF9zaTI1Nih2b2lkKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3VuZGVmMjU2KCk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdCi8vLyAgICBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlVOUENLTFBEK1ZJTlNFUlRGMTI4IDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MTkyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjEyOF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo2NF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9wZChkb3VibGUgX19hLCBkb3VibGUgX19iLCBkb3VibGUgX19jLCBkb3VibGUgX19kKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1NmQpeyBfX2QsIF9fYywgX19iLCBfX2EgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBpbml0aWFsaXplZAovLy8gICAgd2l0aCB0aGUgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyMjRdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMjM6MTkyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2MKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjE2MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19kCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxMjhdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZQovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6OTZdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZgovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19nCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjMyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2gKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9wcyhmbG9hdCBfX2EsIGZsb2F0IF9fYiwgZmxvYXQgX19jLCBmbG9hdCBfX2QsCiAgICAgICAgICAgICAgZmxvYXQgX19lLCBmbG9hdCBfX2YsIGZsb2F0IF9fZywgZmxvYXQgX19oKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1Nil7IF9faCwgX19nLCBfX2YsIF9fZSwgX19kLCBfX2MsIF9fYiwgX19hIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQKLy8vICAgIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kwCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjIyNF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kxCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kyCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjE2MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kzCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU5OjEyOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2k0Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTUKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2k2Ci8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNwovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9lcGkzMihpbnQgX19pMCwgaW50IF9faTEsIGludCBfX2kyLCBpbnQgX19pMywKICAgICAgICAgICAgICAgICBpbnQgX19pNCwgaW50IF9faTUsIGludCBfX2k2LCBpbnQgX19pNykKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZpKShfX3Y4c2kpeyBfX2k3LCBfX2k2LCBfX2k1LCBfX2k0LCBfX2kzLCBfX2kyLCBfX2kxLCBfX2kwIH07Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbml0aWFsaXplZCB3aXRoIHRoZSBzcGVjaWZpZWQKLy8vICAgIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cxNQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyNDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTQKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzk6MjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzEzCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjIwOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMgovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIwNzoxOTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTEKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTc2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzEwCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTc1OjE2MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwOQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxNDRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDgKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNDM6MTI4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA3Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNgovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzExMTo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA0Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzk6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDMKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2Mzo0OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwMgovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAxCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDAKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTowXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRfZXBpMTYoc2hvcnQgX193MTUsIHNob3J0IF9fdzE0LCBzaG9ydCBfX3cxMywgc2hvcnQgX193MTIsCiAgICAgICAgICAgICAgICAgc2hvcnQgX193MTEsIHNob3J0IF9fdzEwLCBzaG9ydCBfX3cwOSwgc2hvcnQgX193MDgsCiAgICAgICAgICAgICAgICAgc2hvcnQgX193MDcsIHNob3J0IF9fdzA2LCBzaG9ydCBfX3cwNSwgc2hvcnQgX193MDQsCiAgICAgICAgICAgICAgICAgc2hvcnQgX193MDMsIHNob3J0IF9fdzAyLCBzaG9ydCBfX3cwMSwgc2hvcnQgX193MDApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMjU2aSkoX192MTZoaSl7IF9fdzAwLCBfX3cwMSwgX193MDIsIF9fdzAzLCBfX3cwNCwgX193MDUsIF9fdzA2LAogICAgX193MDcsIF9fdzA4LCBfX3cwOSwgX193MTAsIF9fdzExLCBfX3cxMiwgX193MTMsIF9fdzE0LCBfX3cxNSB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCi8vLyAgICA4LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2IzMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyNDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMzAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNDc6MjQwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI5Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjM5OjIzMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyOAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzMToyMjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjcKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMjM6MjE2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjE1OjIwOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIwNzoyMDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjQKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTk6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjE4NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyMgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE4MzoxNzZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNzU6MTY4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTY3OjE2MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxOQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxNTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTE6MTQ0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTQzOjEzNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEzNToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6MTIwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTE5OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzExMToxMDRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMDM6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzg3OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA5Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNzk6NzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjU2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNTU6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzM5OjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9lcGk4KGNoYXIgX19iMzEsIGNoYXIgX19iMzAsIGNoYXIgX19iMjksIGNoYXIgX19iMjgsCiAgICAgICAgICAgICAgICBjaGFyIF9fYjI3LCBjaGFyIF9fYjI2LCBjaGFyIF9fYjI1LCBjaGFyIF9fYjI0LAogICAgICAgICAgICAgICAgY2hhciBfX2IyMywgY2hhciBfX2IyMiwgY2hhciBfX2IyMSwgY2hhciBfX2IyMCwKICAgICAgICAgICAgICAgIGNoYXIgX19iMTksIGNoYXIgX19iMTgsIGNoYXIgX19iMTcsIGNoYXIgX19iMTYsCiAgICAgICAgICAgICAgICBjaGFyIF9fYjE1LCBjaGFyIF9fYjE0LCBjaGFyIF9fYjEzLCBjaGFyIF9fYjEyLAogICAgICAgICAgICAgICAgY2hhciBfX2IxMSwgY2hhciBfX2IxMCwgY2hhciBfX2IwOSwgY2hhciBfX2IwOCwKICAgICAgICAgICAgICAgIGNoYXIgX19iMDcsIGNoYXIgX19iMDYsIGNoYXIgX19iMDUsIGNoYXIgX19iMDQsCiAgICAgICAgICAgICAgICBjaGFyIF9fYjAzLCBjaGFyIF9fYjAyLCBjaGFyIF9fYjAxLCBjaGFyIF9fYjAwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1NmkpKF9fdjMycWkpewogICAgX19iMDAsIF9fYjAxLCBfX2IwMiwgX19iMDMsIF9fYjA0LCBfX2IwNSwgX19iMDYsIF9fYjA3LAogICAgX19iMDgsIF9fYjA5LCBfX2IxMCwgX19iMTEsIF9fYjEyLCBfX2IxMywgX19iMTQsIF9fYjE1LAogICAgX19iMTYsIF9fYjE3LCBfX2IxOCwgX19iMTksIF9fYjIwLCBfX2IyMSwgX19iMjIsIF9fYjIzLAogICAgX19iMjQsIF9fYjI1LCBfX2IyNiwgX19iMjcsIF9fYjI4LCBfX2IyOSwgX19iMzAsIF9fYjMxCiAgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHdpdGggdGhlIHNwZWNpZmllZAovLy8gICAgNjQtYml0IGludGVncmFsIHZhbHVlcy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWUFVOUENLTFFEUStWSU5TRVJURjEyOCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZAovLy8gICAgQSA2NC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzYzOjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9lcGk2NHgobG9uZyBsb25nIF9fYSwgbG9uZyBsb25nIF9fYiwgbG9uZyBsb25nIF9fYywgbG9uZyBsb25nIF9fZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZpKShfX3Y0ZGkpeyBfX2QsIF9fYywgX19iLCBfX2EgfTsKfQoKLyogQ3JlYXRlIHZlY3RvcnMgd2l0aCBlbGVtZW50cyBpbiByZXZlcnNlIG9yZGVyICovCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLAovLy8gICAgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlciB3aXRoIHRoZSBzcGVjaWZpZWQgZG91YmxlLXByZWNpc2lvbgovLy8gICAgZmxvYXRpbmctcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZVTlBDS0xQRCtWSU5TRVJURjEyOCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEyNzo2NF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxMjhdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZAovLy8gICAgQSBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MTkyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX3BkKGRvdWJsZSBfX2EsIGRvdWJsZSBfX2IsIGRvdWJsZSBfX2MsIGRvdWJsZSBfX2QpCnsKICByZXR1cm4gX21tMjU2X3NldF9wZChfX2QsIF9fYywgX19iLCBfX2EpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLAovLy8gICAgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlciB3aXRoIHRoZSBzcGVjaWZpZWQgc2luZ2xlLXByZWNpc2lvbgovLy8gICAgZmxvYXQtcG9pbnQgdmFsdWVzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBpcyBhIHV0aWxpdHkgZnVuY3Rpb24gYW5kIGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYSBzcGVjaWZpYwovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYgovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs2MzozMl0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjY0XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2QKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3Ojk2XQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2UKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTU5OjEyOF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19mCi8vLyAgICBBIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxNjBdCi8vLyAgICBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fZwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMjM6MTkyXQovLy8gICAgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2gKLy8vICAgIEEgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjU1OjIyNF0KLy8vICAgIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHJfcHMoZmxvYXQgX19hLCBmbG9hdCBfX2IsIGZsb2F0IF9fYywgZmxvYXQgX19kLAogICAgICAgICAgICAgICBmbG9hdCBfX2UsIGZsb2F0IF9fZiwgZmxvYXQgX19nLCBmbG9hdCBfX2gpCnsKICByZXR1cm4gX21tMjU2X3NldF9wcyhfX2gsIF9fZywgX19mLCBfX2UsIF9fZCwgX19jLCBfX2IsIF9fYSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciwgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlcgovLy8gICAgd2l0aCB0aGUgc3BlY2lmaWVkIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kwCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzE6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2kxCi8vLyAgICBBIDMyLWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pMgovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjY0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faTMKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6OTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNAovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNQovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxNjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNgovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIyMzoxOTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19pNwovLy8gICAgQSAzMi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyMjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHJfZXBpMzIoaW50IF9faTAsIGludCBfX2kxLCBpbnQgX19pMiwgaW50IF9faTMsCiAgICAgICAgICAgICAgICAgIGludCBfX2k0LCBpbnQgX19pNSwgaW50IF9faTYsIGludCBfX2k3KQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpMzIoX19pNywgX19pNiwgX19pNSwgX19pNCwgX19pMywgX19pMiwgX19pMSwgX19pMCk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciwgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlcgovLy8gICAgd2l0aCB0aGUgc3BlY2lmaWVkIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX3cxNQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTQKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFszMToxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMwovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzQ3OjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzEyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MTEKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3OTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cxMAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzk1OjgwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA5Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTExOjk2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA4Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjExMl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNwovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE0MzoxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDYKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNTk6MTQ0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzA1Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTc1OjE2MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwNAovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE5MToxNzZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDMKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMDc6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fdzAyCi8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjIwOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX3cwMQovLy8gICAgQSAxNi1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzOToyMjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX193MDAKLy8vICAgIEEgMTYtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MjQwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX2VwaTE2KHNob3J0IF9fdzE1LCBzaG9ydCBfX3cxNCwgc2hvcnQgX193MTMsIHNob3J0IF9fdzEyLAogICAgICAgc2hvcnQgX193MTEsIHNob3J0IF9fdzEwLCBzaG9ydCBfX3cwOSwgc2hvcnQgX193MDgsCiAgICAgICBzaG9ydCBfX3cwNywgc2hvcnQgX193MDYsIHNob3J0IF9fdzA1LCBzaG9ydCBfX3cwNCwKICAgICAgIHNob3J0IF9fdzAzLCBzaG9ydCBfX3cwMiwgc2hvcnQgX193MDEsIHNob3J0IF9fdzAwKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpMTYoX193MDAsIF9fdzAxLCBfX3cwMiwgX193MDMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX193MDQsIF9fdzA1LCBfX3cwNiwgX193MDcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX193MDgsIF9fdzA5LCBfX3cxMCwgX193MTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgX193MTIsIF9fdzEzLCBfX3cxNCwgX193MTUpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IsIGluaXRpYWxpemVkIGluIHJldmVyc2Ugb3JkZXIKLy8vICAgIHdpdGggdGhlIHNwZWNpZmllZCA4LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGlzIGEgdXRpbGl0eSBmdW5jdGlvbiBhbmQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIHNwZWNpZmljCi8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2IzMQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IzMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjkKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzoxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyOAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzMxOjI0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMzk6MzJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjYKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs0Nzo0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzU1OjQ4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjI0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6NTZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjMKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs3MTo2NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IyMgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzc5OjcyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjIxCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbODc6ODBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMjAKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFs5NTo4OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxOQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEwMzo5Nl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxOAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzExMToxMDRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTcKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMTk6MTEyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjE2Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTI3OjEyMF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxNQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzEzNToxMjhdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTQKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNDM6MTM2XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjEzCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTUxOjE0NF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IxMgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE1OToxNTJdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMTEKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxNjc6MTYwXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjEwCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTc1OjE2OF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwOQovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzE4MzoxNzZdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDgKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxOTE6MTg0XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA3Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTk5OjE5Ml0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwNgovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIwNzoyMDBdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDUKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMTU6MjA4XSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjA0Ci8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjIzOjIxNl0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwMwovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzIzMToyMjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19iMDIKLy8vICAgIEFuIDgtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyMzk6MjMyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9fYjAxCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMjQ3OjI0MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IwMAovLy8gICAgQW4gOC1iaXQgaW50ZWdyYWwgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGJpdHMgWzI1NToyNDhdIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGludGVnZXIgdmVjdG9yLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHJfZXBpOChjaGFyIF9fYjMxLCBjaGFyIF9fYjMwLCBjaGFyIF9fYjI5LCBjaGFyIF9fYjI4LAogICAgICAgICAgICAgICAgIGNoYXIgX19iMjcsIGNoYXIgX19iMjYsIGNoYXIgX19iMjUsIGNoYXIgX19iMjQsCiAgICAgICAgICAgICAgICAgY2hhciBfX2IyMywgY2hhciBfX2IyMiwgY2hhciBfX2IyMSwgY2hhciBfX2IyMCwKICAgICAgICAgICAgICAgICBjaGFyIF9fYjE5LCBjaGFyIF9fYjE4LCBjaGFyIF9fYjE3LCBjaGFyIF9fYjE2LAogICAgICAgICAgICAgICAgIGNoYXIgX19iMTUsIGNoYXIgX19iMTQsIGNoYXIgX19iMTMsIGNoYXIgX19iMTIsCiAgICAgICAgICAgICAgICAgY2hhciBfX2IxMSwgY2hhciBfX2IxMCwgY2hhciBfX2IwOSwgY2hhciBfX2IwOCwKICAgICAgICAgICAgICAgICBjaGFyIF9fYjA3LCBjaGFyIF9fYjA2LCBjaGFyIF9fYjA1LCBjaGFyIF9fYjA0LAogICAgICAgICAgICAgICAgIGNoYXIgX19iMDMsIGNoYXIgX19iMDIsIGNoYXIgX19iMDEsIGNoYXIgX19iMDApCnsKICByZXR1cm4gX21tMjU2X3NldF9lcGk4KF9fYjAwLCBfX2IwMSwgX19iMDIsIF9fYjAzLCBfX2IwNCwgX19iMDUsIF9fYjA2LCBfX2IwNywKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYjA4LCBfX2IwOSwgX19iMTAsIF9fYjExLCBfX2IxMiwgX19iMTMsIF9fYjE0LCBfX2IxNSwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYjE2LCBfX2IxNywgX19iMTgsIF9fYjE5LCBfX2IyMCwgX19iMjEsIF9fYjIyLCBfX2IyMywKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYjI0LCBfX2IyNSwgX19iMjYsIF9fYjI3LCBfX2IyOCwgX19iMjksIF9fYjMwLCBfX2IzMSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciwgaW5pdGlhbGl6ZWQgaW4gcmV2ZXJzZSBvcmRlcgovLy8gICAgd2l0aCB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZXMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBVTlBDS0xRRFErVklOU0VSVEYxMjggPC9jPgovLy8gICBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbNjM6MF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2IKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsxMjc6NjRdIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19jCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgYml0cyBbMTkxOjEyOF0gb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2QKLy8vICAgIEEgNjQtYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBiaXRzIFsyNTU6MTkyXSBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX2VwaTY0eChsb25nIGxvbmcgX19hLCBsb25nIGxvbmcgX19iLCBsb25nIGxvbmcgX19jLCBsb25nIGxvbmcgX19kKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpNjR4KF9fZCwgX19jLCBfX2IsIF9fYSk7Cn0KCi8qIENyZWF0ZSB2ZWN0b3JzIHdpdGggcmVwZWF0ZWQgZWxlbWVudHMgKi8KLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0sIHdpdGggZWFjaAovLy8gICAgb2YgdGhlIGZvdXIgZG91YmxlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkREVVArVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUgdXNlZCB0byBpbml0aWFsaXplIGVhY2ggdmVjdG9yCi8vLyAgICBlbGVtZW50IG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBbiBpbml0aWFsaXplZCAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0MV9wZChkb3VibGUgX193KQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfcGQoX193LCBfX3csIF9fdywgX193KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSwgd2l0aCBlYWNoCi8vLyAgICBvZiB0aGUgZWlnaHQgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2ZWN0b3IgZWxlbWVudHMgc2V0IHRvIHRoZQovLy8gICAgc3BlY2lmaWVkIHNpbmdsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlBFUk1JTFBTK1ZJTlNFUlRGMTI4IDwvYz4KLy8vICAgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fdwovLy8gICAgQSBzaW5nbGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvcgovLy8gICAgZWxlbWVudCBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0uCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXQxX3BzKGZsb2F0IF9fdykKewogIHJldHVybiBfbW0yNTZfc2V0X3BzKF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFs4IHggaTMyXSwgd2l0aCBlYWNoIG9mIHRoZQovLy8gICAgMzItYml0IGludGVncmFsIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCAzMi1iaXQgaW50ZWdyYWwKLy8vICAgIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQRVJNSUxQUytWSU5TRVJURjEyOCA8L2M+Ci8vLyAgIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2kKLy8vICAgIEEgMzItYml0IGludGVncmFsIHZhbHVlIHVzZWQgdG8gaW5pdGlhbGl6ZSBlYWNoIHZlY3RvciBlbGVtZW50IG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQW4gaW5pdGlhbGl6ZWQgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBvZiBbOCB4IGkzMl0uCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0MV9lcGkzMihpbnQgX19pKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfZXBpMzIoX19pLCBfX2ksIF9faSwgX19pLCBfX2ksIF9faSwgX19pLCBfX2kpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaTE2XSwgd2l0aCBlYWNoIG9mIHRoZQovLy8gICAgMTYtYml0IGludGVncmFsIHZlY3RvciBlbGVtZW50cyBzZXQgdG8gdGhlIHNwZWNpZmllZCAxNi1iaXQgaW50ZWdyYWwKLy8vICAgIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0hVRkIrVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX193Ci8vLyAgICBBIDE2LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzE2IHggaTE2XS4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXQxX2VwaTE2KHNob3J0IF9fdykKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTE2KF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193LAogICAgICAgICAgICAgICAgICAgICAgICAgIF9fdywgX193LCBfX3csIF9fdywgX193LCBfX3csIF9fdywgX193KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIG9mIFszMiB4IGk4XSwgd2l0aCBlYWNoIG9mIHRoZQovLy8gICAgOC1iaXQgaW50ZWdyYWwgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUgc3BlY2lmaWVkIDgtYml0IGludGVncmFsIHZhbHVlLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZQU0hVRkIrVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19iCi8vLyAgICBBbiA4LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzMyIHggaThdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldDFfZXBpOChjaGFyIF9fYikKewogIHJldHVybiBfbW0yNTZfc2V0X2VwaTgoX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLAogICAgICAgICAgICAgICAgICAgICAgICAgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IsIF9fYiwgX19iLCBfX2IpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpNjRdLCB3aXRoIGVhY2ggb2YgdGhlCi8vLyAgICA2NC1iaXQgaW50ZWdyYWwgdmVjdG9yIGVsZW1lbnRzIHNldCB0byB0aGUgc3BlY2lmaWVkIDY0LWJpdCBpbnRlZ3JhbAovLy8gICAgdmFsdWUuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVk1PVkREVVArVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19xCi8vLyAgICBBIDY0LWJpdCBpbnRlZ3JhbCB2YWx1ZSB1c2VkIHRvIGluaXRpYWxpemUgZWFjaCB2ZWN0b3IgZWxlbWVudCBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEFuIGluaXRpYWxpemVkIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3Igb2YgWzQgeCBpNjRdLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldDFfZXBpNjR4KGxvbmcgbG9uZyBfX3EpCnsKICByZXR1cm4gX21tMjU2X3NldF9lcGk2NHgoX19xLCBfX3EsIF9fcSwgX19xKTsKfQoKLyogQ3JlYXRlIF9femVyb2VkIHZlY3RvcnMgKi8KLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gd2l0aCBhbGwKLy8vICAgIHZlY3RvciBlbGVtZW50cyBpbml0aWFsaXplZCB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZYT1JQUyA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIHdpdGggYWxsIGVsZW1lbnRzIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHplcm9fcGQodm9pZCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20yNTZkKXsgMCwgMCwgMCwgMCB9Owp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIHdpdGggYWxsCi8vLyAgICB2ZWN0b3IgZWxlbWVudHMgaW5pdGlhbGl6ZWQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWWE9SUFMgPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIHdpdGggYWxsIGVsZW1lbnRzIHNldCB0byB6ZXJvLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0emVyb19wcyh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1Nil7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVlhPUlBTIDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGluaXRpYWxpemVkIHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0emVyb19zaTI1Nih2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTI1NmkpKF9fdjRkaSl7IDAsIDAsIDAsIDAgfTsKfQoKLyogQ2FzdCBiZXR3ZWVuIHZlY3RvciB0eXBlcyAqLwovLy8gQ2FzdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gaW50byBhIDI1Ni1iaXQKLy8vICAgIGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNhbWUKLy8vICAgIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHBkX3BzKF9fbTI1NmQgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19hOwp9CgovLy8gQ2FzdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gaW50byBhIDI1Ni1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBzYW1lIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUKLy8vICAgIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cGRfc2kyNTYoX19tMjU2ZCBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19hOwp9CgovLy8gQ2FzdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBpbnRvIGEgMjU2LWJpdAovLy8gICAgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIHNhbWUKLy8vICAgIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3Rwc19wZChfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTZkKV9fYTsKfQoKLy8vIENhc3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW50byBhIDI1Ni1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIHNhbWUgYml0d2lzZSBwYXR0ZXJuIGFzIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3Rwc19zaTI1NihfX20yNTYgX19hKQp7CiAgcmV0dXJuIChfX20yNTZpKV9fYTsKfQoKLy8vIENhc3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3IKLy8vICAgIG9mIFs4IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIHNhbWUKLy8vICAgIGJpdHdpc2UgcGF0dGVybiBhcyB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHNpMjU2X3BzKF9fbTI1NmkgX19hKQp7CiAgcmV0dXJuIChfX20yNTYpX19hOwp9CgovLy8gQ2FzdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGludG8gYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcgovLy8gICAgb2YgWzQgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZSBzYW1lCi8vLyAgICBiaXR3aXNlIHBhdHRlcm4gYXMgdGhlIHBhcmFtZXRlci4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0c2kyNTZfcGQoX19tMjU2aSBfX2EpCnsKICByZXR1cm4gKF9fbTI1NmQpX19hOwp9CgovLy8gUmV0dXJucyB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZgovLy8gICAgWzQgeCBkb3VibGVdIGFzIGEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBsb3dlciAxMjggYml0cyBvZiB0aGUgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RwZDI1Nl9wZDEyOChfX20yNTZkIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRmKV9fYSwgKF9fdjRkZilfX2EsIDAsIDEpOwp9CgovLy8gUmV0dXJucyB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZgovLy8gICAgWzggeCBmbG9hdF0gYXMgYSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gY29udGFpbmluZyB0aGUKLy8vICAgIGxvd2VyIDEyOCBiaXRzIG9mIHRoZSBwYXJhbWV0ZXIuCnN0YXRpYyBfX2lubGluZSBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cHMyNTZfcHMxMjgoX19tMjU2IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192OHNmKV9fYSwgKF9fdjhzZilfX2EsIDAsIDEsIDIsIDMpOwp9CgovLy8gVHJ1bmNhdGVzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIHRoZQovLy8gICAgcGFyYW1ldGVyLgpzdGF0aWMgX19pbmxpbmUgX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X2Nhc3RzaTI1Nl9zaTEyOChfX20yNTZpIF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NGRpKV9fYSwgKF9fdjRkaSlfX2EsIDAsIDEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBmcm9tIGEKLy8vICAgIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vCi8vLyAgICBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSBjb250ZW50cwovLy8gICAgb2YgdGhlIHVwcGVyIDEyOCBiaXRzIGFyZSB1bmRlZmluZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHBhcmFtZXRlci4gVGhlIGNvbnRlbnRzIG9mIHRoZSB1cHBlciAxMjggYml0cwovLy8gICAgYXJlIHVuZGVmaW5lZC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9jYXN0cGQxMjhfcGQyNTYoX19tMTI4ZCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjJkZilfX2EsIChfX3YyZGYpX19hLCAwLCAxLCAtMSwgLTEpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGZyb20gYQovLy8gICAgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLwovLy8gICAgVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgY29udGVudHMKLy8vICAgIG9mIHRoZSB1cHBlciAxMjggYml0cyBhcmUgdW5kZWZpbmVkLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhlIGxvd2VyIDEyOCBiaXRzCi8vLyAgICBjb250YWluIHRoZSB2YWx1ZSBvZiB0aGUgcGFyYW1ldGVyLiBUaGUgY29udGVudHMgb2YgdGhlIHVwcGVyIDEyOCBiaXRzCi8vLyAgICBhcmUgdW5kZWZpbmVkLgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHBzMTI4X3BzMjU2KF9fbTEyOCBfX2EpCnsKICByZXR1cm4gX19idWlsdGluX3NodWZmbGV2ZWN0b3IoKF9fdjRzZilfX2EsIChfX3Y0c2YpX19hLCAwLCAxLCAyLCAzLCAtMSwgLTEsIC0xLCAtMSk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBmcm9tIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyAgICBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSBjb250ZW50cwovLy8gICAgb2YgdGhlIHVwcGVyIDEyOCBiaXRzIGFyZSB1bmRlZmluZWQuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mCi8vLyAgICB0aGUgcGFyYW1ldGVyLiBUaGUgY29udGVudHMgb2YgdGhlIHVwcGVyIDEyOCBiaXRzIGFyZSB1bmRlZmluZWQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfY2FzdHNpMTI4X3NpMjU2KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19hLCAoX192MmRpKV9fYSwgMCwgMSwgLTEsIC0xKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gZnJvbSBhCi8vLyAgICAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0uIFRoZSBsb3dlciAxMjggYml0cwovLy8gICAgY29udGFpbiB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAxMjggYml0cyBhcmUgc2V0Ci8vLyAgICB0byB6ZXJvLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBoYXMgbm8gY29ycmVzcG9uZGluZyBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDEyOC1iaXQgdmVjdG9yIG9mIFsyIHggZG91YmxlXS4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAxMjggYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfemV4dHBkMTI4X3BkMjU2KF9fbTEyOGQgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19hLCAoX192MmRmKV9tbV9zZXR6ZXJvX3BkKCksIDAsIDEsIDIsIDMpOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGZyb20gYQovLy8gICAgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uIFRoZSBsb3dlciAxMjggYml0cyBjb250YWluCi8vLyAgICB0aGUgdmFsdWUgb2YgdGhlIHNvdXJjZSB2ZWN0b3IuIFRoZSB1cHBlciAxMjggYml0cyBhcmUgc2V0IHRvIHplcm8uCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFRoaXMgaW50cmluc2ljIGhhcyBubyBjb3JyZXNwb25kaW5nIGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2EKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0uCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLiBUaGUgbG93ZXIgMTI4IGJpdHMKLy8vICAgIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAxMjggYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX20yNTYgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl96ZXh0cHMxMjhfcHMyNTYoX19tMTI4IF9fYSkKewogIHJldHVybiBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fYSwgKF9fdjRzZilfbW1fc2V0emVyb19wcygpLCAwLCAxLCAyLCAzLCA0LCA1LCA2LCA3KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGZyb20gYSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gICAgVGhlIGxvd2VyIDEyOCBiaXRzIGNvbnRhaW4gdGhlIHZhbHVlIG9mIHRoZSBzb3VyY2UgdmVjdG9yLiBUaGUgdXBwZXIKLy8vICAgIDEyOCBiaXRzIGFyZSBzZXQgdG8gemVyby4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgaGFzIG5vIGNvcnJlc3BvbmRpbmcgaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yLiBUaGUgbG93ZXIgMTI4IGJpdHMgY29udGFpbiB0aGUgdmFsdWUgb2YKLy8vICAgIHRoZSBwYXJhbWV0ZXIuIFRoZSB1cHBlciAxMjggYml0cyBhcmUgc2V0IHRvIHplcm8uCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfemV4dHNpMTI4X3NpMjU2KF9fbTEyOGkgX19hKQp7CiAgcmV0dXJuIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19hLCAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCksIDAsIDEsIDIsIDMpOwp9CgovKgogICBWZWN0b3IgaW5zZXJ0LgogICBXZSB1c2UgbWFjcm9zIHJhdGhlciB0aGFuIGlubGluZXMgYmVjYXVzZSB3ZSBvbmx5IHdhbnQgdG8gYWNjZXB0CiAgIGludm9jYXRpb25zIHdoZXJlIHRoZSBpbW1lZGlhdGUgTSBpcyBhIGNvbnN0YW50IGV4cHJlc3Npb24uCiovCi8vLyBDb25zdHJ1Y3RzIGEgbmV3IDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGJ5IGZpcnN0IGR1cGxpY2F0aW5nCi8vLyAgICBhIDI1Ni1iaXQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGdpdmVuIGluIHRoZSBmaXJzdCBwYXJhbWV0ZXIsIGFuZCB0aGVuCi8vLyAgICByZXBsYWNpbmcgZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgd2l0aCB0aGUgY29udGVudHMgb2YgYQovLy8gICAgMTI4LWJpdCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGltbWVkaWF0ZSBpbnRlZ2VyIHBhcmFtZXRlciBkZXRlcm1pbmVzIGJldHdlZW4gdGhlIHVwcGVyIG9yIHRoZSBsb3dlcgovLy8gICAgMTI4IGJpdHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTYgX21tMjU2X2luc2VydGYxMjhfcHMoX19tMjU2IFYxLCBfX20xMjggVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4gVGhpcyB2ZWN0b3IgaXMgY29waWVkIHRvIHRoZSByZXN1bHQKLy8vICAgIGZpcnN0LCBhbmQgdGhlbiBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUgcmVzdWx0IHdpbGwKLy8vICAgIGJlIHJlcGxhY2VkIGJ5IHRoZSBjb250ZW50cyBvZiBcYSBWMi4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4gVGhlIGNvbnRlbnRzIG9mIHRoaXMgcGFyYW1ldGVyIGFyZQovLy8gICAgd3JpdHRlbiB0byBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUgcmVzdWx0IGRlcGVuZGluZwovLy8gICAgb24gdGhlIHZhbHVlIG9mIHBhcmFtZXRlciBcYSBNLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGRldGVybWluZXMgaG93IHRoZSB2YWx1ZXMKLy8vICAgIGZyb20gdGhlIHR3byBwYXJhbWV0ZXJzIGFyZSBpbnRlcmxlYXZlZDogXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAwLCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUgcmVzdWx0LAovLy8gICAgYW5kIGJpdHMgWzI1NToxMjhdIG9mIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIHJlc3VsdCwgYW5kIGJpdHMgWzEyNzowXSBvZiBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRmMTI4X3BzKFYxLCBWMiwgTSkgXAogICgoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZpbnNlcnRmMTI4X3BzMjU2KChfX3Y4c2YpKF9fbTI1NikoVjEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzZikoX19tMTI4KShWMiksIChpbnQpKE0pKSkKCi8vLyBDb25zdHJ1Y3RzIGEgbmV3IDI1Ni1iaXQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBieSBmaXJzdCBkdXBsaWNhdGluZwovLy8gICAgYSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gZ2l2ZW4gaW4gdGhlIGZpcnN0IHBhcmFtZXRlciwgYW5kIHRoZW4KLy8vICAgIHJlcGxhY2luZyBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyB3aXRoIHRoZSBjb250ZW50cyBvZiBhCi8vLyAgICAxMjgtYml0IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gaW4gdGhlIHNlY29uZCBwYXJhbWV0ZXIuCi8vLwovLy8gICAgVGhlIGltbWVkaWF0ZSBpbnRlZ2VyIHBhcmFtZXRlciBkZXRlcm1pbmVzIGJldHdlZW4gdGhlIHVwcGVyIG9yIHRoZSBsb3dlcgovLy8gICAgMTI4IGJpdHMuCi8vLwovLy8gXGhlYWRlcmZpbGUgPHg4NmludHJpbi5oPgovLy8KLy8vIFxjb2RlCi8vLyBfX20yNTZkIF9tbTI1Nl9pbnNlcnRmMTI4X3BkKF9fbTI1NmQgVjEsIF9fbTEyOGQgVjIsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWMQovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uIFRoaXMgdmVjdG9yIGlzIGNvcGllZCB0byB0aGUgcmVzdWx0Ci8vLyAgICBmaXJzdCwgYW5kIHRoZW4gZWl0aGVyIHRoZSB1cHBlciBvciB0aGUgbG93ZXIgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdCB3aWxsCi8vLyAgICBiZSByZXBsYWNlZCBieSB0aGUgY29udGVudHMgb2YgXGEgVjIuCi8vLyBccGFyYW0gVjIKLy8vICAgIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLiBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlCi8vLyAgICB3cml0dGVuIHRvIGVpdGhlciB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQgZGVwZW5kaW5nCi8vLyAgICBvbiB0aGUgdmFsdWUgb2YgcGFyYW1ldGVyIFxhIE0uCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIuIFRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgZGV0ZXJtaW5lcyBob3cgdGhlIHZhbHVlcwovLy8gICAgZnJvbSB0aGUgdHdvIHBhcmFtZXRlcnMgYXJlIGludGVybGVhdmVkOiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDAsIFxhIFYyIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZSByZXN1bHQsCi8vLyAgICBhbmQgYml0cyBbMjU1OjEyOF0gb2YgXGEgVjEgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIHJlc3VsdC4gXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAxLCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzI1NToxMjhdIG9mIHRoZQovLy8gICAgcmVzdWx0LCBhbmQgYml0cyBbMTI3OjBdIG9mIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMTI3OjBdIG9mIHRoZQovLy8gICAgcmVzdWx0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUgaW50ZXJsZWF2ZWQgdmFsdWVzLgojZGVmaW5lIF9tbTI1Nl9pbnNlcnRmMTI4X3BkKFYxLCBWMiwgTSkgXAogICgoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92aW5zZXJ0ZjEyOF9wZDI1NigoX192NGRmKShfX20yNTZkKShWMSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoVjIpLCAoaW50KShNKSkpCgovLy8gQ29uc3RydWN0cyBhIG5ldyAyNTYtYml0IGludGVnZXIgdmVjdG9yIGJ5IGZpcnN0IGR1cGxpY2F0aW5nIGEKLy8vICAgIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgZ2l2ZW4gaW4gdGhlIGZpcnN0IHBhcmFtZXRlciwgYW5kIHRoZW4gcmVwbGFjaW5nCi8vLyAgICBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyB3aXRoIHRoZSBjb250ZW50cyBvZiBhIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9yIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyLgovLy8KLy8vICAgIFRoZSBpbW1lZGlhdGUgaW50ZWdlciBwYXJhbWV0ZXIgZGV0ZXJtaW5lcyBiZXR3ZWVuIHRoZSB1cHBlciBvciB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMjU2aSBfbW0yNTZfaW5zZXJ0ZjEyOF9zaTI1NihfX20yNTZpIFYxLCBfX20xMjhpIFYyLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVklOU0VSVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVjEKLy8vICAgIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3Rvci4gVGhpcyB2ZWN0b3IgaXMgY29waWVkIHRvIHRoZSByZXN1bHQgZmlyc3QsIGFuZAovLy8gICAgdGhlbiBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUgcmVzdWx0IHdpbGwgYmUKLy8vICAgIHJlcGxhY2VkIGJ5IHRoZSBjb250ZW50cyBvZiBcYSBWMi4KLy8vIFxwYXJhbSBWMgovLy8gICAgQSAxMjgtYml0IGludGVnZXIgdmVjdG9yLiBUaGUgY29udGVudHMgb2YgdGhpcyBwYXJhbWV0ZXIgYXJlIHdyaXR0ZW4gdG8KLy8vICAgIGVpdGhlciB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQgZGVwZW5kaW5nIG9uIHRoZQovLy8gICAgIHZhbHVlIG9mIHBhcmFtZXRlciBcYSBNLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGRldGVybWluZXMgaG93IHRoZSB2YWx1ZXMKLy8vICAgIGZyb20gdGhlIHR3byBwYXJhbWV0ZXJzIGFyZSBpbnRlcmxlYXZlZDogXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAwLCBcYSBWMiBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUgcmVzdWx0LAovLy8gICAgYW5kIGJpdHMgWzI1NToxMjhdIG9mIFxhIFYxIGFyZSBjb3BpZWQgdG8gYml0cyBbMjU1OjEyOF0gb2YgdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgXGEgVjIgYXJlIGNvcGllZCB0byBiaXRzIFsyNTU6MTI4XSBvZiB0aGUKLy8vICAgIHJlc3VsdCwgYW5kIGJpdHMgWzEyNzowXSBvZiBcYSBWMSBhcmUgY29waWVkIHRvIGJpdHMgWzEyNzowXSBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBpbnRlcmxlYXZlZCB2YWx1ZXMuCiNkZWZpbmUgX21tMjU2X2luc2VydGYxMjhfc2kyNTYoVjEsIFYyLCBNKSBcCiAgKChfX20yNTZpKV9fYnVpbHRpbl9pYTMyX3ZpbnNlcnRmMTI4X3NpMjU2KChfX3Y4c2kpKF9fbTI1NmkpKFYxKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShWMiksIChpbnQpKE0pKSkKCi8qCiAgIFZlY3RvciBleHRyYWN0LgogICBXZSB1c2UgbWFjcm9zIHJhdGhlciB0aGFuIGlubGluZXMgYmVjYXVzZSB3ZSBvbmx5IHdhbnQgdG8gYWNjZXB0CiAgIGludm9jYXRpb25zIHdoZXJlIHRoZSBpbW1lZGlhdGUgTSBpcyBhIGNvbnN0YW50IGV4cHJlc3Npb24uCiovCi8vLyBFeHRyYWN0cyBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3IKLy8vICAgIG9mIFs4IHggZmxvYXRdLCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBpbW1lZGlhdGUgaW50ZWdlciBwYXJhbWV0ZXIsIGFuZAovLy8gICAgcmV0dXJucyB0aGUgZXh0cmFjdGVkIGJpdHMgYXMgYSAxMjgtYml0IHZlY3RvciBvZiBbNCB4IGZsb2F0XS4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOCBfbW0yNTZfZXh0cmFjdGYxMjhfcHMoX19tMjU2IFYsIGNvbnN0IGludCBNKTsKLy8vIFxlbmRjb2RlCi8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjggPC9jPiBpbnN0cnVjdGlvbi4KLy8vCi8vLyBccGFyYW0gVgovLy8gICAgQSAyNTYtYml0IHZlY3RvciBvZiBbOCB4IGZsb2F0XS4KLy8vIFxwYXJhbSBNCi8vLyAgICBBbiBpbW1lZGlhdGUgaW50ZWdlci4gVGhlIGxlYXN0IHNpZ25pZmljYW50IGJpdCBkZXRlcm1pbmVzIHdoaWNoIGJpdHMgYXJlCi8vLyAgICBleHRyYWN0ZWQgZnJvbSB0aGUgZmlyc3QgcGFyYW1ldGVyOiBcbgovLy8gICAgSWYgYml0IFswXSBvZiBcYSBNIGlzIDAsIGJpdHMgWzEyNzowXSBvZiBcYSBWIGFyZSBjb3BpZWQgdG8gdGhlCi8vLyAgICByZXN1bHQuIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMSwgYml0cyBbMjU1OjEyOF0gb2YgXGEgViBhcmUgY29waWVkIHRvIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDEyOC1iaXQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCBiaXRzLgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0ZjEyOF9wcyhWLCBNKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdmV4dHJhY3RmMTI4X3BzMjU2KChfX3Y4c2YpKF9fbTI1NikoViksIChpbnQpKE0pKSkKCi8vLyBFeHRyYWN0cyBlaXRoZXIgdGhlIHVwcGVyIG9yIHRoZSBsb3dlciAxMjggYml0cyBmcm9tIGEgMjU2LWJpdCB2ZWN0b3IKLy8vICAgIG9mIFs0IHggZG91YmxlXSwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgcGFyYW1ldGVyLCBhbmQKLy8vICAgIHJldHVybnMgdGhlIGV4dHJhY3RlZCBiaXRzIGFzIGEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBcY29kZQovLy8gX19tMTI4ZCBfbW0yNTZfZXh0cmFjdGYxMjhfcGQoX19tMjU2ZCBWLCBjb25zdCBpbnQgTSk7Ci8vLyBcZW5kY29kZQovLy8KLy8vIFRoaXMgaW50cmluc2ljIGNvcnJlc3BvbmRzIHRvIHRoZSA8Yz4gVkVYVFJBQ1RGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIFYKLy8vICAgIEEgMjU2LWJpdCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdLgovLy8gXHBhcmFtIE0KLy8vICAgIEFuIGltbWVkaWF0ZSBpbnRlZ2VyLiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IGRldGVybWluZXMgd2hpY2ggYml0cyBhcmUKLy8vICAgIGV4dHJhY3RlZCBmcm9tIHRoZSBmaXJzdCBwYXJhbWV0ZXI6IFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMCwgYml0cyBbMTI3OjBdIG9mIFxhIFYgYXJlIGNvcGllZCB0byB0aGUKLy8vICAgIHJlc3VsdC4gXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAxLCBiaXRzIFsyNTU6MTI4XSBvZiBcYSBWIGFyZSBjb3BpZWQgdG8gdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlIGV4dHJhY3RlZCBiaXRzLgojZGVmaW5lIF9tbTI1Nl9leHRyYWN0ZjEyOF9wZChWLCBNKSBcCiAgKChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZleHRyYWN0ZjEyOF9wZDI1NigoX192NGRmKShfX20yNTZkKShWKSwgKGludCkoTSkpKQoKLy8vIEV4dHJhY3RzIGVpdGhlciB0aGUgdXBwZXIgb3IgdGhlIGxvd2VyIDEyOCBiaXRzIGZyb20gYSAyNTYtYml0Ci8vLyAgICBpbnRlZ2VyIHZlY3RvciwgYXMgZGV0ZXJtaW5lZCBieSB0aGUgaW1tZWRpYXRlIGludGVnZXIgcGFyYW1ldGVyLCBhbmQKLy8vICAgIHJldHVybnMgdGhlIGV4dHJhY3RlZCBiaXRzIGFzIGEgMTI4LWJpdCBpbnRlZ2VyIHZlY3Rvci4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gXGNvZGUKLy8vIF9fbTEyOGkgX21tMjU2X2V4dHJhY3RmMTI4X3NpMjU2KF9fbTI1NmkgViwgY29uc3QgaW50IE0pOwovLy8gXGVuZGNvZGUKLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBWCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCi8vLyBccGFyYW0gTQovLy8gICAgQW4gaW1tZWRpYXRlIGludGVnZXIuIFRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgZGV0ZXJtaW5lcyB3aGljaCBiaXRzIGFyZQovLy8gICAgZXh0cmFjdGVkIGZyb20gdGhlIGZpcnN0IHBhcmFtZXRlcjogIFxuCi8vLyAgICBJZiBiaXQgWzBdIG9mIFxhIE0gaXMgMCwgYml0cyBbMTI3OjBdIG9mIFxhIFYgYXJlIGNvcGllZCB0byB0aGUKLy8vICAgIHJlc3VsdC4gXG4KLy8vICAgIElmIGJpdCBbMF0gb2YgXGEgTSBpcyAxLCBiaXRzIFsyNTU6MTI4XSBvZiBcYSBWIGFyZSBjb3BpZWQgdG8gdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMTI4LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBleHRyYWN0ZWQgYml0cy4KI2RlZmluZSBfbW0yNTZfZXh0cmFjdGYxMjhfc2kyNTYoViwgTSkgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92ZXh0cmFjdGYxMjhfc2kyNTYoKF9fdjhzaSkoX19tMjU2aSkoViksIChpbnQpKE0pKSkKCi8qIFNJTUQgbG9hZCBvcHMgKHVuYWxpZ25lZCkgKi8KLy8vIExvYWRzIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzQgeCBmbG9hdF0gZnJvbQovLy8gICAgdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbnMgYW5kIGNvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcgovLy8gICAgb2YgWzggeCBmbG9hdF0gYnkgY29uY2F0ZW5hdGluZyB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gbG9hZCBpbnN0cnVjdGlvbnMgZm9sbG93ZWQgYnkgdGhlCi8vLyAgIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2FkZHJfaGkKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgNCBjb25zZWN1dGl2ZQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuIFRoZXNlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkIHRvCi8vLyAgICBiaXRzWzI1NToxMjhdIG9mIHRoZSByZXN1bHQuIFRoZSBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QKLy8vICAgIGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2FkZHJfbG8KLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgNCBjb25zZWN1dGl2ZQovLy8gICAgc2luZ2xlLXByZWNpc2lvbiBmbG9hdGluZy1wb2ludCB2YWx1ZXMuIFRoZXNlIHZhbHVlcyBhcmUgdG8gYmUgY29waWVkIHRvCi8vLyAgICBiaXRzWzEyNzowXSBvZiB0aGUgcmVzdWx0LiBUaGUgYWRkcmVzcyBvZiB0aGUgbWVtb3J5IGxvY2F0aW9uIGRvZXMgbm90Ci8vLyAgICBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZHUyX20xMjgoZmxvYXQgY29uc3QgKl9fYWRkcl9oaSwgZmxvYXQgY29uc3QgKl9fYWRkcl9sbykKewogIF9fbTI1NiBfX3YyNTYgPSBfbW0yNTZfY2FzdHBzMTI4X3BzMjU2KF9tbV9sb2FkdV9wcyhfX2FkZHJfbG8pKTsKICByZXR1cm4gX21tMjU2X2luc2VydGYxMjhfcHMoX192MjU2LCBfbW1fbG9hZHVfcHMoX19hZGRyX2hpKSwgMSk7Cn0KCi8vLyBMb2FkcyB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFsyIHggZG91YmxlXSBmcm9tCi8vLyAgICB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9ucyBhbmQgY29uc3RydWN0cyBhIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yCi8vLyAgICBvZiBbNCB4IGRvdWJsZV0gYnkgY29uY2F0ZW5hdGluZyB0aGUgdHdvIDEyOC1iaXQgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gbG9hZCBpbnN0cnVjdGlvbnMgZm9sbG93ZWQgYnkgdGhlCi8vLyAgIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2FkZHJfaGkKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgdHdvIGNvbnNlY3V0aXZlCi8vLyAgICBkb3VibGUtcHJlY2lzaW9uIGZsb2F0aW5nLXBvaW50IHZhbHVlcy4gVGhlc2UgdmFsdWVzIGFyZSB0byBiZSBjb3BpZWQgdG8KLy8vICAgIGJpdHNbMjU1OjEyOF0gb2YgdGhlIHJlc3VsdC4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBsb2NhdGlvbiBkb2VzIG5vdAovLy8gICAgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYWRkcl9sbwovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyB0d28gY29uc2VjdXRpdmUKLy8vICAgIGRvdWJsZS1wcmVjaXNpb24gZmxvYXRpbmctcG9pbnQgdmFsdWVzLiBUaGVzZSB2YWx1ZXMgYXJlIHRvIGJlIGNvcGllZCB0bwovLy8gICAgYml0c1sxMjc6MF0gb2YgdGhlIHJlc3VsdC4gVGhlIGFkZHJlc3Mgb2YgdGhlIG1lbW9yeSBsb2NhdGlvbiBkb2VzIG5vdAovLy8gICAgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gY29udGFpbmluZyB0aGUKLy8vICAgIGNvbmNhdGVuYXRlZCByZXN1bHQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZHUyX20xMjhkKGRvdWJsZSBjb25zdCAqX19hZGRyX2hpLCBkb3VibGUgY29uc3QgKl9fYWRkcl9sbykKewogIF9fbTI1NmQgX192MjU2ID0gX21tMjU2X2Nhc3RwZDEyOF9wZDI1NihfbW1fbG9hZHVfcGQoX19hZGRyX2xvKSk7CiAgcmV0dXJuIF9tbTI1Nl9pbnNlcnRmMTI4X3BkKF9fdjI1NiwgX21tX2xvYWR1X3BkKF9fYWRkcl9oaSksIDEpOwp9CgovLy8gTG9hZHMgdHdvIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3JzIGZyb20gdW5hbGlnbmVkIG1lbW9yeSBsb2NhdGlvbnMgYW5kCi8vLyAgICBjb25zdHJ1Y3RzIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBieSBjb25jYXRlbmF0aW5nIHRoZSB0d28gMTI4LWJpdAovLy8gICAgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gbG9hZCBpbnN0cnVjdGlvbnMgZm9sbG93ZWQgYnkgdGhlCi8vLyAgIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2FkZHJfaGkKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uIGNvbnRhaW5pbmcgYSAxMjgtYml0IGludGVnZXIKLy8vICAgIHZlY3Rvci4gVGhpcyB2ZWN0b3IgaXMgdG8gYmUgY29waWVkIHRvIGJpdHNbMjU1OjEyOF0gb2YgdGhlIHJlc3VsdC4gVGhlCi8vLyAgICBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYWRkcl9sbwovLy8gICAgQSBwb2ludGVyIHRvIGEgMTI4LWJpdCBtZW1vcnkgbG9jYXRpb24gY29udGFpbmluZyBhIDEyOC1iaXQgaW50ZWdlcgovLy8gICAgdmVjdG9yLiBUaGlzIHZlY3RvciBpcyB0byBiZSBjb3BpZWQgdG8gYml0c1sxMjc6MF0gb2YgdGhlIHJlc3VsdC4gVGhlCi8vLyAgICBhZGRyZXNzIG9mIHRoZSBtZW1vcnkgbG9jYXRpb24gZG9lcyBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHJldHVybnMgQSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGNvbnRhaW5pbmcgdGhlIGNvbmNhdGVuYXRlZCByZXN1bHQuCnN0YXRpYyBfX2lubGluZSBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfbG9hZHUyX20xMjhpKF9fbTEyOGlfdSBjb25zdCAqX19hZGRyX2hpLCBfX20xMjhpX3UgY29uc3QgKl9fYWRkcl9sbykKewogIF9fbTI1NmkgX192MjU2ID0gX21tMjU2X2Nhc3RzaTEyOF9zaTI1NihfbW1fbG9hZHVfc2kxMjgoX19hZGRyX2xvKSk7CiAgcmV0dXJuIF9tbTI1Nl9pbnNlcnRmMTI4X3NpMjU2KF9fdjI1NiwgX21tX2xvYWR1X3NpMTI4KF9fYWRkcl9oaSksIDEpOwp9CgovKiBTSU1EIHN0b3JlIG9wcyAodW5hbGlnbmVkKSAqLwovLy8gU3RvcmVzIHRoZSB1cHBlciBhbmQgbG93ZXIgMTI4IGJpdHMgb2YgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50Ci8vLyAgICB2ZWN0b3Igb2YgWzggeCBmbG9hdF0gaW50byB0d28gZGlmZmVyZW50IHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb25zLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCA8L2M+IGluc3RydWN0aW9uIGFuZCB0aGUKLy8vICAgc3RvcmUgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2FkZHJfaGkKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBCaXRzWzI1NToxMjhdIG9mIFxhIF9fYSBhcmUgdG8gYmUKLy8vICAgIGNvcGllZCB0byB0aGlzIG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhpcyBtZW1vcnkgbG9jYXRpb24gZG9lcwovLy8gICAgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2FkZHJfbG8KLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBCaXRzWzEyNzowXSBvZiBcYSBfX2EgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQgdG8gdGhpcyBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoaXMgbWVtb3J5IGxvY2F0aW9uIGRvZXMKLy8vICAgIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdLgpzdGF0aWMgX19pbmxpbmUgdm9pZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3N0b3JldTJfbTEyOChmbG9hdCAqX19hZGRyX2hpLCBmbG9hdCAqX19hZGRyX2xvLCBfX20yNTYgX19hKQp7CiAgX19tMTI4IF9fdjEyODsKCiAgX192MTI4ID0gX21tMjU2X2Nhc3RwczI1Nl9wczEyOChfX2EpOwogIF9tbV9zdG9yZXVfcHMoX19hZGRyX2xvLCBfX3YxMjgpOwogIF9fdjEyOCA9IF9tbTI1Nl9leHRyYWN0ZjEyOF9wcyhfX2EsIDEpOwogIF9tbV9zdG9yZXVfcHMoX19hZGRyX2hpLCBfX3YxMjgpOwp9CgovLy8gU3RvcmVzIHRoZSB1cHBlciBhbmQgbG93ZXIgMTI4IGJpdHMgb2YgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50Ci8vLyAgICB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGludG8gdHdvIGRpZmZlcmVudCB1bmFsaWduZWQgbWVtb3J5IGxvY2F0aW9ucy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWRVhUUkFDVEYxMjggPC9jPiBpbnN0cnVjdGlvbiBhbmQgdGhlCi8vLyAgIHN0b3JlIGluc3RydWN0aW9ucy4KLy8vCi8vLyBccGFyYW0gX19hZGRyX2hpCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1syNTU6MTI4XSBvZiBcYSBfX2EgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQgdG8gdGhpcyBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoaXMgbWVtb3J5IGxvY2F0aW9uIGRvZXMKLy8vICAgIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hZGRyX2xvCi8vLyAgICBBIHBvaW50ZXIgdG8gYSAxMjgtYml0IG1lbW9yeSBsb2NhdGlvbi4gQml0c1sxMjc6MF0gb2YgXGEgX19hIGFyZSB0byBiZQovLy8gICAgY29waWVkIHRvIHRoaXMgbWVtb3J5IGxvY2F0aW9uLiBUaGUgYWRkcmVzcyBvZiB0aGlzIG1lbW9yeSBsb2NhdGlvbiBkb2VzCi8vLyAgICBub3QgaGF2ZSB0byBiZSBhbGlnbmVkLgovLy8gXHBhcmFtIF9fYQovLy8gICAgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0uCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmV1Ml9tMTI4ZChkb3VibGUgKl9fYWRkcl9oaSwgZG91YmxlICpfX2FkZHJfbG8sIF9fbTI1NmQgX19hKQp7CiAgX19tMTI4ZCBfX3YxMjg7CgogIF9fdjEyOCA9IF9tbTI1Nl9jYXN0cGQyNTZfcGQxMjgoX19hKTsKICBfbW1fc3RvcmV1X3BkKF9fYWRkcl9sbywgX192MTI4KTsKICBfX3YxMjggPSBfbW0yNTZfZXh0cmFjdGYxMjhfcGQoX19hLCAxKTsKICBfbW1fc3RvcmV1X3BkKF9fYWRkcl9oaSwgX192MTI4KTsKfQoKLy8vIFN0b3JlcyB0aGUgdXBwZXIgYW5kIGxvd2VyIDEyOCBiaXRzIG9mIGEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBpbnRvCi8vLyAgICB0d28gZGlmZmVyZW50IHVuYWxpZ25lZCBtZW1vcnkgbG9jYXRpb25zLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZFWFRSQUNURjEyOCA8L2M+IGluc3RydWN0aW9uIGFuZCB0aGUKLy8vICAgc3RvcmUgaW5zdHJ1Y3Rpb25zLgovLy8KLy8vIFxwYXJhbSBfX2FkZHJfaGkKLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBCaXRzWzI1NToxMjhdIG9mIFxhIF9fYSBhcmUgdG8gYmUKLy8vICAgIGNvcGllZCB0byB0aGlzIG1lbW9yeSBsb2NhdGlvbi4gVGhlIGFkZHJlc3Mgb2YgdGhpcyBtZW1vcnkgbG9jYXRpb24gZG9lcwovLy8gICAgbm90IGhhdmUgdG8gYmUgYWxpZ25lZC4KLy8vIFxwYXJhbSBfX2FkZHJfbG8KLy8vICAgIEEgcG9pbnRlciB0byBhIDEyOC1iaXQgbWVtb3J5IGxvY2F0aW9uLiBCaXRzWzEyNzowXSBvZiBcYSBfX2EgYXJlIHRvIGJlCi8vLyAgICBjb3BpZWQgdG8gdGhpcyBtZW1vcnkgbG9jYXRpb24uIFRoZSBhZGRyZXNzIG9mIHRoaXMgbWVtb3J5IGxvY2F0aW9uIGRvZXMKLy8vICAgIG5vdCBoYXZlIHRvIGJlIGFsaWduZWQuCi8vLyBccGFyYW0gX19hCi8vLyAgICBBIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IuCnN0YXRpYyBfX2lubGluZSB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc3RvcmV1Ml9tMTI4aShfX20xMjhpX3UgKl9fYWRkcl9oaSwgX19tMTI4aV91ICpfX2FkZHJfbG8sIF9fbTI1NmkgX19hKQp7CiAgX19tMTI4aSBfX3YxMjg7CgogIF9fdjEyOCA9IF9tbTI1Nl9jYXN0c2kyNTZfc2kxMjgoX19hKTsKICBfbW1fc3RvcmV1X3NpMTI4KF9fYWRkcl9sbywgX192MTI4KTsKICBfX3YxMjggPSBfbW0yNTZfZXh0cmFjdGYxMjhfc2kyNTYoX19hLCAxKTsKICBfbW1fc3RvcmV1X3NpMTI4KF9fYWRkcl9oaSwgX192MTI4KTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBieQovLy8gICAgY29uY2F0ZW5hdGluZyB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faGkKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBmbG9hdF0gdG8gYmUgY29waWVkIHRvIHRoZSB1cHBlcgovLy8gICAgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2xvCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGJlIGNvcGllZCB0byB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs4IHggZmxvYXRdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2IF9fREVGQVVMVF9GTl9BVFRSUwpfbW0yNTZfc2V0X20xMjggKF9fbTEyOCBfX2hpLCBfX20xMjggX19sbykKewogIHJldHVybiAoX19tMjU2KSBfX2J1aWx0aW5fc2h1ZmZsZXZlY3RvcigoX192NHNmKV9fbG8sIChfX3Y0c2YpX19oaSwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNyk7Cn0KCi8vLyBDb25zdHJ1Y3RzIGEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGJ5Ci8vLyAgICBjb25jYXRlbmF0aW5nIHR3byAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvcnMgb2YgWzIgeCBkb3VibGVdLgovLy8KLy8vIFxoZWFkZXJmaWxlIDx4ODZpbnRyaW4uaD4KLy8vCi8vLyBUaGlzIGludHJpbnNpYyBjb3JyZXNwb25kcyB0byB0aGUgPGM+IFZJTlNFUlRGMTI4IDwvYz4gaW5zdHJ1Y3Rpb24uCi8vLwovLy8gXHBhcmFtIF9faGkKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGJlIGNvcGllZCB0byB0aGUgdXBwZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19sbwovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbMiB4IGRvdWJsZV0gdG8gYmUgY29waWVkIHRvIHRoZSBsb3dlcgovLy8gICAgMTI4IGJpdHMgb2YgdGhlIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzQgeCBkb3VibGVdIGNvbnRhaW5pbmcgdGhlCi8vLyAgICBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9tMTI4ZCAoX19tMTI4ZCBfX2hpLCBfX20xMjhkIF9fbG8pCnsKICByZXR1cm4gKF9fbTI1NmQpIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGYpX19sbywgKF9fdjJkZilfX2hpLCAwLCAxLCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGludGVnZXIgdmVjdG9yIGJ5IGNvbmNhdGVuYXRpbmcgdHdvIDEyOC1iaXQKLy8vICAgIGludGVnZXIgdmVjdG9ycy4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2hpCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYmUgY29waWVkIHRvIHRoZSB1cHBlciAxMjggYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2xvCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYmUgY29waWVkIHRvIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldF9tMTI4aSAoX19tMTI4aSBfX2hpLCBfX20xMjhpIF9fbG8pCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yKChfX3YyZGkpX19sbywgKF9fdjJkaSlfX2hpLCAwLCAxLCAyLCAzKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBieQovLy8gICAgY29uY2F0ZW5hdGluZyB0d28gMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3JzIG9mIFs0IHggZmxvYXRdLiBUaGlzIGlzCi8vLyAgICBzaW1pbGFyIHRvIF9tbTI1Nl9zZXRfbTEyOCwgYnV0IHRoZSBvcmRlciBvZiB0aGUgaW5wdXQgcGFyYW1ldGVycyBpcwovLy8gICAgc3dhcHBlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2xvCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZmxvYXRdIHRvIGJlIGNvcGllZCB0byB0aGUgbG93ZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccGFyYW0gX19oaQovLy8gICAgQSAxMjgtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGZsb2F0XSB0byBiZSBjb3BpZWQgdG8gdGhlIHVwcGVyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHJldHVybnMgQSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbOCB4IGZsb2F0XSBjb250YWluaW5nIHRoZQovLy8gICAgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHJfbTEyOCAoX19tMTI4IF9fbG8sIF9fbTEyOCBfX2hpKQp7CiAgcmV0dXJuIF9tbTI1Nl9zZXRfbTEyOChfX2hpLCBfX2xvKTsKfQoKLy8vIENvbnN0cnVjdHMgYSAyNTYtYml0IGZsb2F0aW5nLXBvaW50IHZlY3RvciBvZiBbNCB4IGRvdWJsZV0gYnkKLy8vICAgIGNvbmNhdGVuYXRpbmcgdHdvIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9ycyBvZiBbMiB4IGRvdWJsZV0uIFRoaXMgaXMKLy8vICAgIHNpbWlsYXIgdG8gX21tMjU2X3NldF9tMTI4ZCwgYnV0IHRoZSBvcmRlciBvZiB0aGUgaW5wdXQgcGFyYW1ldGVycyBpcwovLy8gICAgc3dhcHBlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2xvCi8vLyAgICBBIDEyOC1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFsyIHggZG91YmxlXSB0byBiZSBjb3BpZWQgdG8gdGhlIGxvd2VyCi8vLyAgICAxMjggYml0cyBvZiB0aGUgcmVzdWx0LgovLy8gXHBhcmFtIF9faGkKLy8vICAgIEEgMTI4LWJpdCBmbG9hdGluZy1wb2ludCB2ZWN0b3Igb2YgWzIgeCBkb3VibGVdIHRvIGJlIGNvcGllZCB0byB0aGUgdXBwZXIKLy8vICAgIDEyOCBiaXRzIG9mIHRoZSByZXN1bHQuCi8vLyBccmV0dXJucyBBIDI1Ni1iaXQgZmxvYXRpbmctcG9pbnQgdmVjdG9yIG9mIFs0IHggZG91YmxlXSBjb250YWluaW5nIHRoZQovLy8gICAgY29uY2F0ZW5hdGVkIHJlc3VsdC4Kc3RhdGljIF9faW5saW5lIF9fbTI1NmQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbTI1Nl9zZXRyX20xMjhkIChfX20xMjhkIF9fbG8sIF9fbTEyOGQgX19oaSkKewogIHJldHVybiAoX19tMjU2ZClfbW0yNTZfc2V0X20xMjhkKF9faGksIF9fbG8pOwp9CgovLy8gQ29uc3RydWN0cyBhIDI1Ni1iaXQgaW50ZWdlciB2ZWN0b3IgYnkgY29uY2F0ZW5hdGluZyB0d28gMTI4LWJpdAovLy8gICAgaW50ZWdlciB2ZWN0b3JzLiBUaGlzIGlzIHNpbWlsYXIgdG8gX21tMjU2X3NldF9tMTI4aSwgYnV0IHRoZSBvcmRlciBvZgovLy8gICAgdGhlIGlucHV0IHBhcmFtZXRlcnMgaXMgc3dhcHBlZC4KLy8vCi8vLyBcaGVhZGVyZmlsZSA8eDg2aW50cmluLmg+Ci8vLwovLy8gVGhpcyBpbnRyaW5zaWMgY29ycmVzcG9uZHMgdG8gdGhlIDxjPiBWSU5TRVJURjEyOCA8L2M+IGluc3RydWN0aW9uLgovLy8KLy8vIFxwYXJhbSBfX2xvCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYmUgY29waWVkIHRvIHRoZSBsb3dlciAxMjggYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxwYXJhbSBfX2hpCi8vLyAgICBBIDEyOC1iaXQgaW50ZWdlciB2ZWN0b3IgdG8gYmUgY29waWVkIHRvIHRoZSB1cHBlciAxMjggYml0cyBvZiB0aGUKLy8vICAgIHJlc3VsdC4KLy8vIFxyZXR1cm5zIEEgMjU2LWJpdCBpbnRlZ2VyIHZlY3RvciBjb250YWluaW5nIHRoZSBjb25jYXRlbmF0ZWQgcmVzdWx0LgpzdGF0aWMgX19pbmxpbmUgX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tMjU2X3NldHJfbTEyOGkgKF9fbTEyOGkgX19sbywgX19tMTI4aSBfX2hpKQp7CiAgcmV0dXJuIChfX20yNTZpKV9tbTI1Nl9zZXRfbTEyOGkoX19oaSwgX19sbyk7Cn0KCiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUzEyOAoKI2VuZGlmIC8qIF9fQVZYSU5UUklOX0ggKi8KAGNldC5oAGhyZXNldGludHJpbi5oAHJkc2VlZGludHJpbi5oAC8qPT09LS0tLSB4b3BpbnRyaW4uaCAtIFhPUCBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19YODZJTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8eG9waW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX1hPUElOVFJJTl9ICiNkZWZpbmUgX19YT1BJTlRSSU5fSAoKI2luY2x1ZGUgPGZtYTRpbnRyaW4uaD4KCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fLCBfX3RhcmdldF9fKCJ4b3AiKSwgX19taW5fdmVjdG9yX3dpZHRoX18oMTI4KSkpCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTMjU2IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygieG9wIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NzX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzc3d3KChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwgKF9fdjhoaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY19lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3d3KChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwgKF9fdjhoaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY3NkX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzc3dkKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQiwgKF9fdjRzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY2RfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3N3ZCgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIChfX3Y0c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NzX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzc2RkKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQiwgKF9fdjRzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY19lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc2RkKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQiwgKF9fdjRzaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fbWFjY3Nsb19lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc3NkcWwoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192MmRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWNjbG9fZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cG1hY3NkcWwoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CLCAoX192MmRpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWNjc2hpX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBtYWNzc2RxaCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IsIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hY2NoaV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFjc2RxaCgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IsIChfX3YyZGkpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX21hZGRzZF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkY3Nzd2QoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CLCAoX192NHNpKV9fQyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9tYWRkZF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IsIF9fbTEyOGkgX19DKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwbWFkY3N3ZCgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIChfX3Y0c2kpX19DKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGR3X2VwaTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkYncoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRkX2VwaTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkYmQoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRxX2VwaTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkYnEoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRkX2VwaTE2KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHdkKChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRxX2VwaTE2KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHdxKChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRxX2VwaTMyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZGRxKChfX3Y0c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGR3X2VwdTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkdWJ3KChfX3YxNnFpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkZF9lcHU4KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHViZCgoX192MTZxaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZHFfZXB1OChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR1YnEoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hhZGRkX2VwdTE2KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaGFkZHV3ZCgoX192OGhpKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9oYWRkcV9lcHUxNihfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGhhZGR1d3EoKF9fdjhoaSlfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1faGFkZHFfZXB1MzIoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoYWRkdWRxKChfX3Y0c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hzdWJ3X2VwaTgoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBoc3ViYncoKF9fdjE2cWkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hzdWJkX2VwaTE2KF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaHN1YndkKChfX3Y4aGkpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2hzdWJxX2VwaTMyKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwaHN1YmRxKChfX3Y0c2kpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2Ntb3Zfc2kxMjgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CLCBfX20xMjhpIF9fQykKewogIHJldHVybiAoX19tMTI4aSkoKChfX3YyZHUpX19BICYgKF9fdjJkdSlfX0MpIHwgKChfX3YyZHUpX19CICYgfihfX3YyZHUpX19DKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jbW92X3NpMjU2KF9fbTI1NmkgX19BLCBfX20yNTZpIF9fQiwgX19tMjU2aSBfX0MpCnsKICByZXR1cm4gKF9fbTI1NmkpKCgoX192NGR1KV9fQSAmIChfX3Y0ZHUpX19DKSB8ICgoX192NGR1KV9fQiAmIH4oX192NGR1KV9fQykpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcGVybV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgX19tMTI4aSBfX0MpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBwZXJtKChfX3YxNnFpKV9fQSwgKF9fdjE2cWkpX19CLCAoX192MTZxaSlfX0MpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcm90X2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90YigoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9yb3RfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90dygoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fcm90X2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdGQoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3JvdF9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnByb3RxKChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCiNkZWZpbmUgX21tX3JvdGlfZXBpOChBLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90YmkoKF9fdjE2cWkpKF9fbTEyOGkpKEEpLCAoTikpKQoKI2RlZmluZSBfbW1fcm90aV9lcGkxNihBLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwcm90d2koKF9fdjhoaSkoX19tMTI4aSkoQSksIChOKSkpCgojZGVmaW5lIF9tbV9yb3RpX2VwaTMyKEEsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnByb3RkaSgoX192NHNpKShfX20xMjhpKShBKSwgKE4pKSkKCiNkZWZpbmUgX21tX3JvdGlfZXBpNjQoQSwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHJvdHFpKChfX3YyZGkpKF9fbTEyOGkpKEEpLCAoTikpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NobF9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobGIoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hsX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNobHcoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NobF9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGxkKChfX3Y0c2kpX19BLCAoX192NHNpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGxfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hscSgoX192MmRpKV9fQSwgKF9fdjJkaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hhYigoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9zaGFfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3Zwc2hhdygoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fc2hhX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cHNoYWQoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX3NoYV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBzaGFxKChfX3YyZGkpX19BLCAoX192MmRpKV9fQik7Cn0KCiNkZWZpbmUgX21tX2NvbV9lcHU4KEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb211YigoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MTZxaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXB1MTYoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbXV3KChfX3Y4aGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXB1MzIoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbXVkKChfX3Y0c2kpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRzaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXB1NjQoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbXVxKChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXBpOChBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwY29tYigoX192MTZxaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3YxNnFpKShfX20xMjhpKShCKSwgKE4pKSkKCiNkZWZpbmUgX21tX2NvbV9lcGkxNihBLCBCLCBOKSBcCiAgKChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3ZwY29tdygoX192OGhpKShfX20xMjhpKShBKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjhoaSkoX19tMTI4aSkoQiksIChOKSkpCgojZGVmaW5lIF9tbV9jb21fZXBpMzIoQSwgQiwgTikgXAogICgoX19tMTI4aSlfX2J1aWx0aW5faWEzMl92cGNvbWQoKF9fdjRzaSkoX19tMTI4aSkoQSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpKF9fbTEyOGkpKEIpLCAoTikpKQoKI2RlZmluZSBfbW1fY29tX2VwaTY0KEEsIEIsIE4pIFwKICAoKF9fbTEyOGkpX19idWlsdGluX2lhMzJfdnBjb21xKChfX3YyZGkpKF9fbTEyOGkpKEEpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShCKSwgKE4pKSkKCiNkZWZpbmUgX01NX1BDT01DVFJMX0xUICAgIDAKI2RlZmluZSBfTU1fUENPTUNUUkxfTEUgICAgMQojZGVmaW5lIF9NTV9QQ09NQ1RSTF9HVCAgICAyCiNkZWZpbmUgX01NX1BDT01DVFJMX0dFICAgIDMKI2RlZmluZSBfTU1fUENPTUNUUkxfRVEgICAgNAojZGVmaW5lIF9NTV9QQ09NQ1RSTF9ORVEgICA1CiNkZWZpbmUgX01NX1BDT01DVFJMX0ZBTFNFIDYKI2RlZmluZSBfTU1fUENPTUNUUkxfVFJVRSAgNwoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwdTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1OChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXB1OChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcHU4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTFQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbGVfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcHUxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZXFfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXB1MTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9GQUxTRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb210cnVlX2VwdTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTEUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ3RfZXB1MzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1MzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbmVxX2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwdTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcHUzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHUzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX1RSVUUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbHRfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcHU2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwdTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwdTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR1QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ2VfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcHU2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcHU2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX05FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21mYWxzZV9lcHU2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcHU2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXB1NjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXB1NjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwaTgoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpOChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXBpOChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk4KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcGk4KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTgoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWx0X2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTFQpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbGVfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21ndF9lcGkxNihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkxNihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWdlX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZXFfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21uZXFfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9ORVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZmFsc2VfZXBpMTYoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMTYoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9GQUxTRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb210cnVlX2VwaTE2KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTE2KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfVFJVRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sdF9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xUKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWxlX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTEUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ3RfZXBpMzIoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpMzIoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21nZV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX0dFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWVxX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRVEpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbmVxX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfTkVRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWZhbHNlX2VwaTMyKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTMyKF9fQSwgX19CLCBfTU1fUENPTUNUUkxfRkFMU0UpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tdHJ1ZV9lcGkzMihfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGkzMihfX0EsIF9fQiwgX01NX1BDT01DVFJMX1RSVUUpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tbHRfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9MVCk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21sZV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0xFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbWd0X2VwaTY0KF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiBfbW1fY29tX2VwaTY0KF9fQSwgX19CLCBfTU1fUENPTUNUUkxfR1QpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fY29tZ2VfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9HRSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21lcV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0VRKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbW5lcV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX05FUSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9jb21mYWxzZV9lcGk2NChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gX21tX2NvbV9lcGk2NChfX0EsIF9fQiwgX01NX1BDT01DVFJMX0ZBTFNFKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2NvbXRydWVfZXBpNjQoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIF9tbV9jb21fZXBpNjQoX19BLCBfX0IsIF9NTV9QQ09NQ1RSTF9UUlVFKTsKfQoKI2RlZmluZSBfbW1fcGVybXV0ZTJfcGQoWCwgWSwgQywgSSkgXAogICgoX19tMTI4ZClfX2J1aWx0aW5faWEzMl92cGVybWlsMnBkKChfX3YyZGYpKF9fbTEyOGQpKFgpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjJkZikoX19tMTI4ZCkoWSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKShfX20xMjhpKShDKSwgKEkpKSkKCiNkZWZpbmUgX21tMjU2X3Blcm11dGUyX3BkKFgsIFksIEMsIEkpIFwKICAoKF9fbTI1NmQpX19idWlsdGluX2lhMzJfdnBlcm1pbDJwZDI1NigoX192NGRmKShfX20yNTZkKShYKSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0ZGYpKF9fbTI1NmQpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSkoX19tMjU2aSkoQyksIChJKSkpCgojZGVmaW5lIF9tbV9wZXJtdXRlMl9wcyhYLCBZLCBDLCBJKSBcCiAgKChfX20xMjgpX19idWlsdGluX2lhMzJfdnBlcm1pbDJwcygoX192NHNmKShfX20xMjgpKFgpLCAoX192NHNmKShfX20xMjgpKFkpLCBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKShfX20xMjhpKShDKSwgKEkpKSkKCiNkZWZpbmUgX21tMjU2X3Blcm11dGUyX3BzKFgsIFksIEMsIEkpIFwKICAoKF9fbTI1NilfX2J1aWx0aW5faWEzMl92cGVybWlsMnBzMjU2KChfX3Y4c2YpKF9fbTI1NikoWCksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2YpKF9fbTI1NikoWSksIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y4c2kpKF9fbTI1NmkpKEMpLCAoSSkpKQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4IF9fREVGQVVMVF9GTl9BVFRSUwpfbW1fZnJjel9zcyhfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjgpX19idWlsdGluX2lhMzJfdmZyY3pzcygoX192NHNmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGQgX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9mcmN6X3NkKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKV9fYnVpbHRpbl9pYTMyX3ZmcmN6c2QoKF9fdjJkZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjggX19ERUZBVUxUX0ZOX0FUVFJTCl9tbV9mcmN6X3BzKF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOClfX2J1aWx0aW5faWEzMl92ZnJjenBzKChfX3Y0c2YpX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4ZCBfX0RFRkFVTFRfRk5fQVRUUlMKX21tX2ZyY3pfcGQoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGQpX19idWlsdGluX2lhMzJfdmZyY3pwZCgoX192MmRmKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2ZyY3pfcHMoX19tMjU2IF9fQSkKewogIHJldHVybiAoX19tMjU2KV9fYnVpbHRpbl9pYTMyX3ZmcmN6cHMyNTYoKF9fdjhzZilfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZkIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfZnJjel9wZChfX20yNTZkIF9fQSkKewogIHJldHVybiAoX19tMjU2ZClfX2J1aWx0aW5faWEzMl92ZnJjenBkMjU2KChfX3Y0ZGYpX19BKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMjU2CgojZW5kaWYgLyogX19YT1BJTlRSSU5fSCAqLwoALyo9PT0tLS0tIG9wZW5tcF93cmFwcGVyL21hdGguaCAtLS0tLS0tLSBPcGVuTVAgbWF0aC5oIGludGVyY2VwdCAtLS0tLS0gYysrIC09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCi8vIElmIHdlIGFyZSBpbiBDKysgbW9kZSBhbmQgaW5jbHVkZSA8bWF0aC5oPiAobm90IDxjbWF0aD4pIGZpcnN0LCB3ZSBzdGlsbCBuZWVkCi8vIHRvIG1ha2Ugc3VyZSA8Y21hdGg+IGlzIHJlYWQgZmlyc3QuIFRoZSBwcm9ibGVtIG90aGVyd2lzZSBpcyB0aGF0IHdlIGhhdmVuJ3QKLy8gc2VlbiB0aGUgZGVjbGFyYXRpb25zIG9mIHRoZSBtYXRoLmggZnVuY3Rpb25zIHdoZW4gdGhlIHN5c3RlbSBtYXRoLmggaW5jbHVkZXMKLy8gb3VyIGNtYXRoIG92ZXJsYXkuIEhvd2V2ZXIsIG91ciBjbWF0aCBvdmVybGF5LCBvciBiZXR0ZXIgdGhlIHVuZGVybHlpbmcKLy8gb3ZlcmxheSwgZS5nLiBDVURBLCB1c2VzIHRoZSBtYXRoLmggZnVuY3Rpb25zLiBTaW5jZSB3ZSBoYXZlbid0IGRlY2xhcmVkIHRoZW0KLy8geWV0IHdlIGdldCBlcnJvcnMuIENVREEgYXZvaWRzIHRoaXMgYnkgZWFnZXJseSBkZWNsYXJpbmcgYWxsIG1hdGggZnVuY3Rpb25zCi8vIChpbiB0aGUgX19kZXZpY2VfXyBzcGFjZSkgYnV0IHdlIGNhbm5vdCBkbyB0aGlzLiBJbnN0ZWFkIHdlIGJyZWFrIHRoZQovLyBkZXBlbmRlbmNlIGJ5IGZvcmNpbmcgY21hdGggdG8gZ28gZmlyc3QuIFdoaWxlIG91ciBjbWF0aCB3aWxsIGluIHR1cm4gaW5jbHVkZQovLyB0aGlzIGZpbGUsIHRoZSBjbWF0aCBndWFyZHMgd2lsbCBwcmV2ZW50IHJlY3Vyc2lvbi4KI2lmZGVmIF9fY3BsdXNwbHVzCiNpbmNsdWRlIDxjbWF0aD4KI2VuZGlmCgojaWZuZGVmIF9fQ0xBTkdfT1BFTk1QX01BVEhfSF9fCiNkZWZpbmUgX19DTEFOR19PUEVOTVBfTUFUSF9IX18KCiNpZm5kZWYgX09QRU5NUAojZXJyb3IgIlRoaXMgZmlsZSBpcyBmb3IgT3Blbk1QIGNvbXBpbGF0aW9uIG9ubHkuIgojZW5kaWYKCiNpbmNsdWRlX25leHQgPG1hdGguaD4KCi8vIFdlIG5lZWQgbGltaXRzLmggZm9yIF9fY2xhbmdfY3VkYV9tYXRoLmggYmVsb3cgYW5kIGJlY2F1c2UgaXQgc2hvdWxkIG5vdCBodXJ0Ci8vIHdlIGluY2x1ZGUgaXQgZWFnZXJseSBoZXJlLgojaW5jbHVkZSA8bGltaXRzLmg+CgovLyBXZSBuZWVkIHN0ZGxpYi5oIGJlY2F1c2UgKGZvciBub3cpIF9fY2xhbmdfY3VkYV9tYXRoLmggYmVsb3cgZGVjbGFyZXMgYGFic2AKLy8gd2hpY2ggc2hvdWxkIGxpdmUgaW4gc3RkbGliLmguCiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNwcmFnbWEgb21wIGJlZ2luIGRlY2xhcmUgdmFyaWFudCBtYXRjaCggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBkZXZpY2UgPSB7YXJjaChudnB0eCwgbnZwdHg2NCl9LCBpbXBsZW1lbnRhdGlvbiA9IHtleHRlbnNpb24obWF0Y2hfYW55KX0pCgojZGVmaW5lIF9fQ1VEQV9fCiNkZWZpbmUgX19PUEVOTVBfTlZQVFhfXwojaW5jbHVkZSA8X19jbGFuZ19jdWRhX21hdGguaD4KI3VuZGVmIF9fT1BFTk1QX05WUFRYX18KI3VuZGVmIF9fQ1VEQV9fCgojcHJhZ21hIG9tcCBlbmQgZGVjbGFyZSB2YXJpYW50CgojaWZkZWYgX19BTURHQ05fXwojcHJhZ21hIG9tcCBiZWdpbiBkZWNsYXJlIHZhcmlhbnQgbWF0Y2goZGV2aWNlID0ge2FyY2goYW1kZ2NuKX0pCgojZGVmaW5lIF9fT1BFTk1QX0FNREdDTl9fCiNpbmNsdWRlIDxfX2NsYW5nX2hpcF9tYXRoLmg+CiN1bmRlZiBfX09QRU5NUF9BTURHQ05fXwoKI3ByYWdtYSBvbXAgZW5kIGRlY2xhcmUgdmFyaWFudAojZW5kaWYKCiNlbmRpZgoALyo9PT0tLS0tIG1tX21hbGxvYy5oIC0gSW1wbGVtZW50YXRpb24gb2YgX21tX21hbGxvYyBhbmQgX21tX2ZyZWUgLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKI2lmbmRlZiBfTU1fTUFMTE9DX0hfSU5DTFVERUQKI2RlZmluZSBfTU1fTUFMTE9DX0hfSU5DTFVERUQKCiNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pCgojaW5jbHVkZSA8c3RkbGliLmg+CgovKiBXZSBjYW4ndCBkZXBlbmQgb24gPHN0ZGxpYi5oPiBzaW5jZSB0aGUgcHJvdG90eXBlIG9mIHBvc2l4X21lbWFsaWduCiAgIG1heSBub3QgYmUgdmlzaWJsZS4gICovCiNpZm5kZWYgX19jcGx1c3BsdXMKZXh0ZXJuIGludCBwb3NpeF9tZW1hbGlnbiAodm9pZCAqKiwgc2l6ZV90LCBzaXplX3QpOwojZWxzZQpleHRlcm4gIkMiIGludCBwb3NpeF9tZW1hbGlnbiAodm9pZCAqKiwgc2l6ZV90LCBzaXplX3QpIHRocm93ICgpOwojZW5kaWYKCnN0YXRpYyBfX2lubGluZSB2b2lkICoKX21tX21hbGxvYyAoc2l6ZV90IHNpemUsIHNpemVfdCBhbGlnbm1lbnQpCnsKICAvKiBQb3dlclBDNjQgRUxGIFYyIEFCSSByZXF1aXJlcyBxdWFkd29yZCBhbGlnbm1lbnQuICAqLwogIHNpemVfdCB2ZWNfYWxpZ24gPSBzaXplb2YgKF9fdmVjdG9yIGZsb2F0KTsKICB2b2lkICpwdHI7CgogIGlmIChhbGlnbm1lbnQgPCB2ZWNfYWxpZ24pCiAgICBhbGlnbm1lbnQgPSB2ZWNfYWxpZ247CiAgaWYgKHBvc2l4X21lbWFsaWduICgmcHRyLCBhbGlnbm1lbnQsIHNpemUpID09IDApCiAgICByZXR1cm4gcHRyOwogIGVsc2UKICAgIHJldHVybiBOVUxMOwp9CgpzdGF0aWMgX19pbmxpbmUgdm9pZApfbW1fZnJlZSAodm9pZCAqIHB0cikKewogIGZyZWUgKHB0cik7Cn0KCiNlbHNlCiNpbmNsdWRlX25leHQgPG1tX21hbGxvYy5oPgojZW5kaWYKCiNlbmRpZiAvKiBfTU1fTUFMTE9DX0hfSU5DTFVERUQgKi8KAFZOYW1lIHRlbXBsYXRlIABVbmtub3duIHBvbGljeTogAFN0YWNrIG5vdCBlbXB0eS4AWzpibGFuazpdAFs6eGRpZ2l0Ol0AL2kAJWQrICVzCgBEZWFkU3RhdGUgaW4gUnVuU3RhdGVPbkJ5dGUAaW52YWxpZCByZXBldGl0aW9uIHNpemUAaW52YWxpZCBVVEYtOABPbGRfUGVyc2lhbgBabABleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ZhaWx1cmVfc2lnbmFsX2hhbmRsZXIuY2MAJXNAICUqcCAgKHVua25vd24pCgAlczogZXJybm89JWQAQ29ycnVwdCAvcHJvYy9zZWxmL21hcHMgbGluZTogJXMAaW5kZXggb3V0IG9mIHJhbmdlAGVtcHR5IGFyZW5hIGhhcyBub24tcGFnZS1hbGlnbmVkIGJsb2NrIHNpemUAegAoKQBhbGxvY2F0b3IAIFsAJ10AQ2hlY2sgbm9kZS0+Y29uY2F0KCktPnJpZ2h0ICE9IG51bGxwdHIgZmFpbGVkOiAAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL3N0cmluZ3MvZXNjYXBpbmcuY2MAXS5jaGlsZCBoYXMgYW4gaW52YWxpZCB0YWcgAE91dHB1dCBwb2ludGVyIG11c3Qgbm90IGJlIG51bGxwdHIuAGlsbGVnYWwgc2tpcCBmcm9tIGhlYWQAd2FpdHAudGhyZWFkLT53YWl0cCAhPSBudWxscHRyAFNpZ25hbEFsbCB3YWtldXAAZXh0ZXJuYWwvYWJzZWlsLWNwcC9hYnNsL3N5bmNocm9uaXphdGlvbi9pbnRlcm5hbC93YWl0ZXIuY2MAZXh0ZXJuYWwvYm9yaW5nc3NsL3NyYy9jcnlwdG8vZmlwc21vZHVsZS9lYy93bmFmLmMAcGFzc2VkIGEgbnVsbCBwYXJhbWV0ZXIAa3l0aGUvcHJvdG8vYnVpbGRpbmZvLnByb3RvAGY3NwBmOTUAZ28AZXh0ZXJuYWwva3l0aGUva3l0aGUvY3h4L2V4dHJhY3Rvci9jeHhfZGV0YWlscy5jYwBDaGVjayBmYWlsZWQ6IHNvdXJjZV9maWxlLnZuYW1lLmxhbmd1YWdlKCkuZW1wdHkoKQAtdGFyZ2V0AEtZVEhFX09VVFBVVF9ESVJFQ1RPUlkAQ2hlY2sgZmFpbGVkOiAhY3VycmVudF9maWxlc18udG9wKCkuZmlsZV9wYXRoLmVtcHR5KCkARXh0ZXJuQ1N5c3RlbQAgKGxvY2F0aW9uIABfX2NsYW5nX2hpcF9tYXRoLmgALyo9PT0tLS0tIGFybWludHIuaCAtIEFSTSBXaW5kb3dzIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogT25seSBpbmNsdWRlIHRoaXMgaWYgd2UncmUgY29tcGlsaW5nIGZvciB0aGUgd2luZG93cyBwbGF0Zm9ybS4gKi8KI2lmbmRlZiBfTVNDX1ZFUgojaW5jbHVkZV9uZXh0IDxhcm1pbnRyLmg+CiNlbHNlCgojaWZuZGVmIF9fQVJNSU5UUl9ICiNkZWZpbmUgX19BUk1JTlRSX0gKCnR5cGVkZWYgZW51bQp7CiAgX0FSTV9CQVJSSUVSX1NZICAgID0gMHhGLAogIF9BUk1fQkFSUklFUl9TVCAgICA9IDB4RSwKICBfQVJNX0JBUlJJRVJfSVNIICAgPSAweEIsCiAgX0FSTV9CQVJSSUVSX0lTSFNUID0gMHhBLAogIF9BUk1fQkFSUklFUl9OU0ggICA9IDB4NywKICBfQVJNX0JBUlJJRVJfTlNIU1QgPSAweDYsCiAgX0FSTV9CQVJSSUVSX09TSCAgID0gMHgzLAogIF9BUk1fQkFSUklFUl9PU0hTVCA9IDB4Mgp9IF9BUk1JTlRSX0JBUlJJRVJfVFlQRTsKCiNlbmRpZiAvKiBfX0FSTUlOVFJfSCAqLwojZW5kaWYgLyogX01TQ19WRVIgKi8KAGF2eDUxMnZsYndpbnRyaW4uaAAvKj09PS0tLS0gYXZ4NTEydmxjZGludHJpbi5oIC0gQVZYNTEyVkwgYW5kIEFWWDUxMkNEIGludHJpbnNpY3MgLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZm5kZWYgX19JTU1JTlRSSU5fSAojZXJyb3IgIk5ldmVyIHVzZSA8YXZ4NTEydmxjZGludHJpbi5oPiBkaXJlY3RseTsgaW5jbHVkZSA8aW1taW50cmluLmg+IGluc3RlYWQuIgojZW5kaWYKCiNpZm5kZWYgX19BVlg1MTJWTENESU5UUklOX0gKI2RlZmluZSBfX0FWWDUxMlZMQ0RJTlRSSU5fSAoKLyogRGVmaW5lIHRoZSBkZWZhdWx0IGF0dHJpYnV0ZXMgZm9yIHRoZSBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlLiAqLwojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzEyOCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmNkIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDEyOCkpKQojZGVmaW5lIF9fREVGQVVMVF9GTl9BVFRSUzI1NiBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXywgX19ub2RlYnVnX18sIF9fdGFyZ2V0X18oImF2eDUxMnZsLGF2eDUxMmNkIiksIF9fbWluX3ZlY3Rvcl93aWR0aF9fKDI1NikpKQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3RtYl9lcGk2NCAoX19tbWFzazggX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfbW1fc2V0MV9lcGk2NHgoKGxvbmcgbG9uZykgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMjU2aSBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKX21tMjU2X2Jyb2FkY2FzdG1iX2VwaTY0IChfX21tYXNrOCBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9tbTI1Nl9zZXQxX2VwaTY0eCgobG9uZyBsb25nKV9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9icm9hZGNhc3Rtd19lcGkzMiAoX19tbWFzazE2IF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX21tX3NldDFfZXBpMzIoKGludClfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfYnJvYWRjYXN0bXdfZXBpMzIgKF9fbW1hc2sxNiBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9tbTI1Nl9zZXQxX2VwaTMyKChpbnQpX19BKTsKfQoKCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9jb25mbGljdF9lcGk2NCAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fYnVpbHRpbl9pYTMyX3ZwY29uZmxpY3RkaV8xMjggKChfX3YyZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2NvbmZsaWN0X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9jb25mbGljdF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9jb25mbGljdF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfY29uZmxpY3RfZXBpNjQgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cGNvbmZsaWN0ZGlfMjU2ICgoX192NGRpKSBfX0EpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza19jb25mbGljdF9lcGk2NCAoX19tMjU2aSBfX1csIF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY29uZmxpY3RfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfX1cpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbWFza3pfY29uZmxpY3RfZXBpNjQgKF9fbW1hc2s4IF9fVSwgX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpX19idWlsdGluX2lhMzJfc2VsZWN0cV8yNTYoKF9fbW1hc2s4KV9fVSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfY29uZmxpY3RfZXBpNjQoX19BKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9fdjRkaSlfbW0yNTZfc2V0emVyb19zaTI1NigpKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX2NvbmZsaWN0X2VwaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19idWlsdGluX2lhMzJfdnBjb25mbGljdHNpXzEyOCAoKF9fdjRzaSkgX19BKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2tfY29uZmxpY3RfZXBpMzIgKF9fbTEyOGkgX19XLCBfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2NvbmZsaWN0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX19XKTsKfQoKc3RhdGljIF9faW5saW5lX18gX19tMTI4aSBfX0RFRkFVTFRfRk5fQVRUUlMxMjgKX21tX21hc2t6X2NvbmZsaWN0X2VwaTMyIChfX21tYXNrOCBfX1UsIF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKV9fYnVpbHRpbl9pYTMyX3NlbGVjdGRfMTI4KChfX21tYXNrOClfX1UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX2NvbmZsaWN0X2VwaTMyKF9fQSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfX3Y0c2kpX21tX3NldHplcm9fc2kxMjgoKSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9jb25mbGljdF9lcGkzMiAoX19tMjU2aSBfX0EpCnsKICByZXR1cm4gKF9fbTI1NmkpIF9fYnVpbHRpbl9pYTMyX3ZwY29uZmxpY3RzaV8yNTYgKChfX3Y4c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2NvbmZsaWN0X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jb25mbGljdF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9jb25mbGljdF9lcGkzMiAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9jb25mbGljdF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbHpjbnRfZXBpMzIgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGx6Y250ZF8xMjggKChfX3Y0c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2x6Y250X2VwaTMyIChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9semNudF9lcGkzMiAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NHNpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbHpjbnRfZXBpMzIgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cGx6Y250ZF8yNTYgKChfX3Y4c2kpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2x6Y250X2VwaTMyIChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9semNudF9lcGkzMiAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RkXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9semNudF9lcGkzMihfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192OHNpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20xMjhpIF9fREVGQVVMVF9GTl9BVFRSUzEyOApfbW1fbHpjbnRfZXBpNjQgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSBfX2J1aWx0aW5faWEzMl92cGx6Y250cV8xMjggKChfX3YyZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrX2x6Y250X2VwaTY0IChfX20xMjhpIF9fVywgX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9semNudF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTEyOGkgX19ERUZBVUxUX0ZOX0FUVFJTMTI4Cl9tbV9tYXNrel9semNudF9lcGk2NCAoX19tbWFzazggX19VLCBfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzEyOCgoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9semNudF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192MmRpKV9tbV9zZXR6ZXJvX3NpMTI4KCkpOwp9CgpzdGF0aWMgX19pbmxpbmVfXyBfX20yNTZpIF9fREVGQVVMVF9GTl9BVFRSUzI1NgpfbW0yNTZfbHpjbnRfZXBpNjQgKF9fbTI1NmkgX19BKQp7CiAgcmV0dXJuIChfX20yNTZpKSBfX2J1aWx0aW5faWEzMl92cGx6Y250cV8yNTYgKChfX3Y0ZGkpIF9fQSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrX2x6Y250X2VwaTY0IChfX20yNTZpIF9fVywgX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9semNudF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9fVyk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIF9fbTI1NmkgX19ERUZBVUxUX0ZOX0FUVFJTMjU2Cl9tbTI1Nl9tYXNrel9semNudF9lcGk2NCAoX19tbWFzazggX19VLCBfX20yNTZpIF9fQSkKewogIHJldHVybiAoX19tMjU2aSlfX2J1aWx0aW5faWEzMl9zZWxlY3RxXzI1NigoX19tbWFzazgpX19VLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9semNudF9lcGk2NChfX0EpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX192NGRpKV9tbTI1Nl9zZXR6ZXJvX3NpMjU2KCkpOwp9CgojdW5kZWYgX19ERUZBVUxUX0ZOX0FUVFJTMTI4CiN1bmRlZiBfX0RFRkFVTFRfRk5fQVRUUlMyNTYKCiNlbmRpZiAvKiBfX0FWWDUxMlZMQ0RJTlRSSU5fSCAqLwoAYXZ4NTEydmx2Ym1pMmludHJpbi5oAGNsZmx1c2hvcHRpbnRyaW4uaABjbHplcm9pbnRyaW4uaAAvKj09PS0tLS0gaHRtaW50cmluLmggLSBTdGFuZGFyZCBoZWFkZXIgZm9yIFBvd2VyUEMgSFRNIC0tLS0tLS0tLS0tLS0tLT09PSpcCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqClwqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PSovCgojaWZuZGVmIF9fSFRNSU5UUklOX0gKI2RlZmluZSBfX0hUTUlOVFJJTl9ICgojaWZuZGVmIF9fSFRNX18KI2Vycm9yICJIVE0gaW5zdHJ1Y3Rpb24gc2V0IG5vdCBlbmFibGVkIgojZW5kaWYKCiNpZmRlZiBfX3Bvd2VycGNfXwoKI2luY2x1ZGUgPHN0ZGludC5oPgoKdHlwZWRlZiB1aW50NjRfdCB0ZXhhc3JfdDsKdHlwZWRlZiB1aW50MzJfdCB0ZXhhc3J1X3Q7CnR5cGVkZWYgdWludDMyX3QgdGV4YXNybF90Owp0eXBlZGVmIHVpbnRwdHJfdCB0Zmlhcl90Owp0eXBlZGVmIHVpbnRwdHJfdCB0Zmhhcl90OwoKI2RlZmluZSBfSFRNX1NUQVRFKENSMCkgKChDUjAgPj4gMSkgJiAweDMpCiNkZWZpbmUgX0hUTV9OT05UUkFOU0FDVElPTkFMIDB4MAojZGVmaW5lIF9IVE1fU1VTUEVOREVEICAgICAgICAweDEKI2RlZmluZSBfSFRNX1RSQU5TQUNUSU9OQUwgICAgMHgyCgojZGVmaW5lIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUixCSVROVU0sU0laRSkgXAogICgoKFRFWEFTUikgPj4gKDYzLShCSVROVU0pKSkgJiAoKDE8PChTSVpFKSktMSkpCiNkZWZpbmUgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUixCSVROVU0sU0laRSkgXAogICgoKFRFWEFTUikgPj4gKDMxLShCSVROVU0pKSkgJiAoKDE8PChTSVpFKSktMSkpCgojZGVmaW5lIF9URVhBU1JfRkFJTFVSRV9DT0RFKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgNywgOCkKI2RlZmluZSBfVEVYQVNSVV9GQUlMVVJFX0NPREUoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCA3LCA4KQoKI2RlZmluZSBfVEVYQVNSX0ZBSUxVUkVfUEVSU0lTVEVOVChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDcsIDEpCiNkZWZpbmUgX1RFWEFTUlVfRkFJTFVSRV9QRVJTSVNURU5UKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgNywgMSkKCiNkZWZpbmUgX1RFWEFTUl9ESVNBTExPV0VEKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgOCwgMSkKI2RlZmluZSBfVEVYQVNSVV9ESVNBTExPV0VEKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgOCwgMSkKCiNkZWZpbmUgX1RFWEFTUl9ORVNUSU5HX09WRVJGTE9XKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgOSwgMSkKI2RlZmluZSBfVEVYQVNSVV9ORVNUSU5HX09WRVJGTE9XKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgOSwgMSkKCiNkZWZpbmUgX1RFWEFTUl9GT09UUFJJTlRfT1ZFUkZMT1coVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxMCwgMSkKI2RlZmluZSBfVEVYQVNSVV9GT09UUFJJTlRfT1ZFUkZMT1coVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAxMCwgMSkKCiNkZWZpbmUgX1RFWEFTUl9TRUxGX0lORFVDRURfQ09ORkxJQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxMSwgMSkKI2RlZmluZSBfVEVYQVNSVV9TRUxGX0lORFVDRURfQ09ORkxJQ1QoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAxMSwgMSkKCiNkZWZpbmUgX1RFWEFTUl9OT05fVFJBTlNBQ1RJT05BTF9DT05GTElDVChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDEyLCAxKQojZGVmaW5lIF9URVhBU1JVX05PTl9UUkFOU0FDVElPTkFMX0NPTkZMSUNUKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgMTIsIDEpCgojZGVmaW5lIF9URVhBU1JfVFJBTlNBQ1RJT05fQ09ORkxJQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxMywgMSkKI2RlZmluZSBfVEVYQVNSVV9UUkFOU0FDVElPTl9DT05GTElDVChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDEzLCAxKQoKI2RlZmluZSBfVEVYQVNSX1RSQU5TTEFUSU9OX0lOVkFMSURBVElPTl9DT05GTElDVChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDE0LCAxKQojZGVmaW5lIF9URVhBU1JVX1RSQU5TTEFUSU9OX0lOVkFMSURBVElPTl9DT05GTElDVChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDE0LCAxKQoKI2RlZmluZSBfVEVYQVNSX0lNUExFTUVOVEFJT05fU1BFQ0lGSUMoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxNSwgMSkKI2RlZmluZSBfVEVYQVNSVV9JTVBMRU1FTlRBSU9OX1NQRUNJRklDKFRFWEFTUlUpIFwKICBfVEVYQVNSVV9FWFRSQUNUX0JJVFMoVEVYQVNSVSwgMTUsIDEpCgojZGVmaW5lIF9URVhBU1JfSU5TVFJVQ1RJT05fRkVUQ0hfQ09ORkxJQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAxNiwgMSkKI2RlZmluZSBfVEVYQVNSVV9JTlNUUlVDVElPTl9GRVRDSF9DT05GTElDVChURVhBU1JVKSBcCiAgX1RFWEFTUlVfRVhUUkFDVF9CSVRTKFRFWEFTUlUsIDE2LCAxKQoKI2RlZmluZSBfVEVYQVNSX0FCT1JUKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzEsIDEpCiNkZWZpbmUgX1RFWEFTUlVfQUJPUlQoVEVYQVNSVSkgXAogIF9URVhBU1JVX0VYVFJBQ1RfQklUUyhURVhBU1JVLCAzMSwgMSkKCgojZGVmaW5lIF9URVhBU1JfU1VTUEVOREVEKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzIsIDEpCgojZGVmaW5lIF9URVhBU1JfUFJJVklMRUdFKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzUsIDIpCgojZGVmaW5lIF9URVhBU1JfRkFJTFVSRV9TVU1NQVJZKFRFWEFTUikgXAogIF9URVhBU1JfRVhUUkFDVF9CSVRTKFRFWEFTUiwgMzYsIDEpCgojZGVmaW5lIF9URVhBU1JfVEZJQVJfRVhBQ1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAzNywgMSkKCiNkZWZpbmUgX1RFWEFTUl9ST1QoVEVYQVNSKSBcCiAgX1RFWEFTUl9FWFRSQUNUX0JJVFMoVEVYQVNSLCAzOCwgMSkKCiNkZWZpbmUgX1RFWEFTUl9UUkFOU0FDVElPTl9MRVZFTChURVhBU1IpIFwKICBfVEVYQVNSX0VYVFJBQ1RfQklUUyhURVhBU1IsIDYzLCAxMikKCiNlbmRpZiAvKiBfX3Bvd2VycGMgKi8KCiNpZmRlZiBfX3MzOTBfXwoKLyogQ29uZGl0aW9uIGNvZGVzIGdlbmVyYXRlZCBieSB0YmVnaW4gICovCiNkZWZpbmUgX0hUTV9UQkVHSU5fU1RBUlRFRCAgICAgICAwCiNkZWZpbmUgX0hUTV9UQkVHSU5fSU5ERVRFUk1JTkFURSAxCiNkZWZpbmUgX0hUTV9UQkVHSU5fVFJBTlNJRU5UICAgICAyCiNkZWZpbmUgX0hUTV9UQkVHSU5fUEVSU0lTVEVOVCAgICAzCgovKiBUaGUgYWJvcnQgY29kZXMgYmVsb3cgdGhpcyB0aHJlc2hvbGQgYXJlIHJlc2VydmVkIGZvciBtYWNoaW5lIHVzZS4gICovCiNkZWZpbmUgX0hUTV9GSVJTVF9VU0VSX0FCT1JUX0NPREUgMjU2CgovKiBUaGUgdHJhbnNhY3Rpb24gZGlhZ25vc3RpYyBibG9jayBpcyBpdCBpcyBkZWZpbmVkIGluIHRoZSBQcmluY2lwbGVzCiAgIG9mIE9wZXJhdGlvbiBjaGFwdGVyIDUtOTEuICAqLwoKc3RydWN0IF9faHRtX3RkYiB7CiAgdW5zaWduZWQgY2hhciBmb3JtYXQ7ICAgICAgICAgICAgICAgIC8qICAgMCAqLwogIHVuc2lnbmVkIGNoYXIgZmxhZ3M7CiAgdW5zaWduZWQgY2hhciByZXNlcnZlZDFbNF07CiAgdW5zaWduZWQgc2hvcnQgbmVzdGluZ19kZXB0aDsKICB1bnNpZ25lZCBsb25nIGxvbmcgYWJvcnRfY29kZTsgICAgICAgLyogICA4ICovCiAgdW5zaWduZWQgbG9uZyBsb25nIGNvbmZsaWN0X3Rva2VuOyAgIC8qICAxNiAqLwogIHVuc2lnbmVkIGxvbmcgbG9uZyBhdGlhOyAgICAgICAgICAgICAvKiAgMjQgKi8KICB1bnNpZ25lZCBjaGFyIGVhaWQ7ICAgICAgICAgICAgICAgICAgLyogIDMyICovCiAgdW5zaWduZWQgY2hhciBkeGM7CiAgdW5zaWduZWQgY2hhciByZXNlcnZlZDJbMl07CiAgdW5zaWduZWQgaW50IHByb2dyYW1faW50X2lkOwogIHVuc2lnbmVkIGxvbmcgbG9uZyBleGNlcHRpb25faWQ7ICAgICAvKiAgNDAgKi8KICB1bnNpZ25lZCBsb25nIGxvbmcgYmVhOyAgICAgICAgICAgICAgLyogIDQ4ICovCiAgdW5zaWduZWQgY2hhciByZXNlcnZlZDNbNzJdOyAgICAgICAgIC8qICA1NiAqLwogIHVuc2lnbmVkIGxvbmcgbG9uZyBncHJzWzE2XTsgICAgICAgICAvKiAxMjggKi8KfSBfX2F0dHJpYnV0ZV9fKChfX3BhY2tlZF9fLCBfX2FsaWduZWRfXyAoOCkpKTsKCgovKiBIZWxwZXIgaW50cmluc2ljcyB0byByZXRyeSB0YmVnaW4gaW4gY2FzZSBvZiB0cmFuc2llbnQgZmFpbHVyZS4gICovCgpzdGF0aWMgX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbnVsbCAoaW50IF9fcmV0cnkpCnsKICBpbnQgY2MsIGkgPSAwOwoKICB3aGlsZSAoKGNjID0gX19idWlsdGluX3RiZWdpbigwKSkgPT0gX0hUTV9UQkVHSU5fVFJBTlNJRU5UCiAgICAgICAgICYmIGkrKyA8IF9fcmV0cnkpCiAgICBfX2J1aWx0aW5fdHhfYXNzaXN0KGkpOwoKICByZXR1cm4gY2M7Cn0KCnN0YXRpYyBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19hbHdheXNfaW5saW5lX18sIF9fbm9kZWJ1Z19fKSkKX19idWlsdGluX3RiZWdpbl9yZXRyeV90ZGIgKHZvaWQgKl9fdGRiLCBpbnQgX19yZXRyeSkKewogIGludCBjYywgaSA9IDA7CgogIHdoaWxlICgoY2MgPSBfX2J1aWx0aW5fdGJlZ2luKF9fdGRiKSkgPT0gX0hUTV9UQkVHSU5fVFJBTlNJRU5UCiAgICAgICAgICYmIGkrKyA8IF9fcmV0cnkpCiAgICBfX2J1aWx0aW5fdHhfYXNzaXN0KGkpOwoKICByZXR1cm4gY2M7Cn0KCiNkZWZpbmUgX19idWlsdGluX3RiZWdpbl9yZXRyeSh0ZGIsIHJldHJ5KSBcCiAgKF9fYnVpbHRpbl9jb25zdGFudF9wKHRkYiA9PSAwKSAmJiB0ZGIgPT0gMCA/IFwKICAgX19idWlsdGluX3RiZWdpbl9yZXRyeV9udWxsKHJldHJ5KSA6IFwKICAgX19idWlsdGluX3RiZWdpbl9yZXRyeV90ZGIodGRiLCByZXRyeSkpCgpzdGF0aWMgX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbm9mbG9hdF9udWxsIChpbnQgX19yZXRyeSkKewogIGludCBjYywgaSA9IDA7CgogIHdoaWxlICgoY2MgPSBfX2J1aWx0aW5fdGJlZ2luX25vZmxvYXQoMCkpID09IF9IVE1fVEJFR0lOX1RSQU5TSUVOVAogICAgICAgICAmJiBpKysgPCBfX3JldHJ5KQogICAgX19idWlsdGluX3R4X2Fzc2lzdChpKTsKCiAgcmV0dXJuIGNjOwp9CgpzdGF0aWMgX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCl9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbm9mbG9hdF90ZGIgKHZvaWQgKl9fdGRiLCBpbnQgX19yZXRyeSkKewogIGludCBjYywgaSA9IDA7CgogIHdoaWxlICgoY2MgPSBfX2J1aWx0aW5fdGJlZ2luX25vZmxvYXQoX190ZGIpKSA9PSBfSFRNX1RCRUdJTl9UUkFOU0lFTlQKICAgICAgICAgJiYgaSsrIDwgX19yZXRyeSkKICAgIF9fYnVpbHRpbl90eF9hc3Npc3QoaSk7CgogIHJldHVybiBjYzsKfQoKI2RlZmluZSBfX2J1aWx0aW5fdGJlZ2luX3JldHJ5X25vZmxvYXQodGRiLCByZXRyeSkgXAogIChfX2J1aWx0aW5fY29uc3RhbnRfcCh0ZGIgPT0gMCkgJiYgdGRiID09IDAgPyBcCiAgIF9fYnVpbHRpbl90YmVnaW5fcmV0cnlfbm9mbG9hdF9udWxsKHJldHJ5KSA6IFwKICAgX19idWlsdGluX3RiZWdpbl9yZXRyeV9ub2Zsb2F0X3RkYih0ZGIsIHJldHJ5KSkKCiNlbmRpZiAvKiBfX3MzOTBfXyAqLwoKI2VuZGlmIC8qIF9fSFRNSU5UUklOX0ggKi8KAC8qPT09LS0tLSBzdGRub3JldHVybi5oIC0gU3RhbmRhcmQgaGVhZGVyIGZvciBub3JldHVybiBtYWNybyAtLS0tLS0tLS0tLS0tLS09PT0KICoKICogUGFydCBvZiB0aGUgTExWTSBQcm9qZWN0LCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMCB3aXRoIExMVk0gRXhjZXB0aW9ucy4KICogU2VlIGh0dHBzOi8vbGx2bS5vcmcvTElDRU5TRS50eHQgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24uCiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wIFdJVEggTExWTS1leGNlcHRpb24KICoKICo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PQogKi8KCiNpZm5kZWYgX19TVEROT1JFVFVSTl9ICiNkZWZpbmUgX19TVEROT1JFVFVSTl9ICgojZGVmaW5lIG5vcmV0dXJuIF9Ob3JldHVybgojZGVmaW5lIF9fbm9yZXR1cm5faXNfZGVmaW5lZCAxCgojZW5kaWYgLyogX19TVEROT1JFVFVSTl9IICovCgAvKj09PS0tLS0gZW1taW50cmluLmggLSBJbXBsZW1lbnRhdGlvbiBvZiBTU0UyIGludHJpbnNpY3Mgb24gUG93ZXJQQyAtLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgovKiBJbXBsZW1lbnRlZCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9uIGluY2x1ZGVkIGluIHRoZSBJbnRlbCBDKysgQ29tcGlsZXIKICAgVXNlciBHdWlkZSBhbmQgUmVmZXJlbmNlLCB2ZXJzaW9uIDkuMC4gICovCgojaWZuZGVmIE5PX1dBUk5fWDg2X0lOVFJJTlNJQ1MKLyogVGhpcyBoZWFkZXIgZmlsZSBpcyB0byBoZWxwIHBvcnRpbmcgY29kZSB1c2luZyBJbnRlbCBpbnRyaW5zaWNzCiAgIGV4cGxpY2l0bHkgZnJvbSB4ODZfNjQgdG8gcG93ZXJwYzY0L3Bvd2VycGM2NGxlLgoKICAgU2luY2UgWDg2IFNTRTIgaW50cmluc2ljcyBtYWlubHkgaGFuZGxlcyBfX20xMjhpIGFuZCBfX20xMjhkIHR5cGUsCiAgIFBvd2VyUEMgVk1YL1ZTWCBJU0EgaXMgYSBnb29kIG1hdGNoIGZvciB2ZWN0b3IgZmxvYXQgU0lNRCBvcGVyYXRpb25zLgogICBIb3dldmVyIHNjYWxhciBmbG9hdCBvcGVyYXRpb25zIGluIHZlY3RvciAoWE1NKSByZWdpc3RlcnMgcmVxdWlyZQogICB0aGUgUE9XRVI4IFZTWCBJU0EgKDIuMDcpIGxldmVsLiBUaGVyZSBhcmUgZGlmZmVyZW5jZXMgZm9yIGRhdGEKICAgZm9ybWF0IGFuZCBwbGFjZW1lbnQgb2YgZmxvYXQgc2NhbGFycyBpbiB0aGUgdmVjdG9yIHJlZ2lzdGVyLCB3aGljaAogICByZXF1aXJlIGV4dHJhIHN0ZXBzIHRvIG1hdGNoIFNTRTIgc2NhbGFyIGZsb2F0IHNlbWFudGljcyBvbiBQT1dFUi4KCiAgIEl0IHNob3VsZCBiZSBub3RlZCB0aGF0IHRoZXJlJ3MgbXVjaCBkaWZmZXJlbmNlIGJldHdlZW4gWDg2XzY0J3MKICAgTVhTQ1IgYW5kIFBvd2VySVNBJ3MgRlBTQ1IvVlNDUiByZWdpc3RlcnMuIEl0J3MgcmVjb21tZW5kZWQgdG8gdXNlCiAgIHBvcnRhYmxlIDxmZW52Lmg+IGluc3RlYWQgb2YgYWNjZXNzIE1YU0NSIGRpcmVjdGx5LgoKICAgTW9zdCBTU0UyIHNjYWxhciBmbG9hdCBpbnRyaW5zaWMgb3BlcmF0aW9ucyBjYW4gYmUgcGVyZm9ybWVkIG1vcmUKICAgZWZmaWNpZW50bHkgYXMgQyBsYW5ndWFnZSBmbG9hdCBzY2FsYXIgb3BlcmF0aW9ucyBvciBvcHRpbWl6ZWQgdG8KICAgdXNlIHZlY3RvciBTSU1EIG9wZXJhdGlvbnMuIFdlIHJlY29tbWVuZCB0aGlzIGZvciBuZXcgYXBwbGljYXRpb25zLgoqLwojZXJyb3IgIlBsZWFzZSByZWFkIGNvbW1lbnQgYWJvdmUuICBVc2UgLUROT19XQVJOX1g4Nl9JTlRSSU5TSUNTIHRvIGRpc2FibGUgdGhpcyBlcnJvci4iCiNlbmRpZgoKI2lmbmRlZiBFTU1JTlRSSU5fSF8KI2RlZmluZSBFTU1JTlRSSU5fSF8KCiNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pCgojaW5jbHVkZSA8YWx0aXZlYy5oPgoKLyogV2UgbmVlZCBkZWZpbml0aW9ucyBmcm9tIHRoZSBTU0UgaGVhZGVyIGZpbGVzLiAgKi8KI2luY2x1ZGUgPHhtbWludHJpbi5oPgoKLyogU1NFMiAqLwp0eXBlZGVmIF9fdmVjdG9yIGRvdWJsZSBfX3YyZGY7CnR5cGVkZWYgX192ZWN0b3IgbG9uZyBsb25nIF9fdjJkaTsKdHlwZWRlZiBfX3ZlY3RvciB1bnNpZ25lZCBsb25nIGxvbmcgX192MmR1Owp0eXBlZGVmIF9fdmVjdG9yIGludCBfX3Y0c2k7CnR5cGVkZWYgX192ZWN0b3IgdW5zaWduZWQgaW50IF9fdjRzdTsKdHlwZWRlZiBfX3ZlY3RvciBzaG9ydCBfX3Y4aGk7CnR5cGVkZWYgX192ZWN0b3IgdW5zaWduZWQgc2hvcnQgX192OGh1Owp0eXBlZGVmIF9fdmVjdG9yIHNpZ25lZCBjaGFyIF9fdjE2cWk7CnR5cGVkZWYgX192ZWN0b3IgdW5zaWduZWQgY2hhciBfX3YxNnF1OwoKLyogVGhlIEludGVsIEFQSSBpcyBmbGV4aWJsZSBlbm91Z2ggdGhhdCB3ZSBtdXN0IGFsbG93IGFsaWFzaW5nIHdpdGggb3RoZXIKICAgdmVjdG9yIHR5cGVzLCBhbmQgdGhlaXIgc2NhbGFyIGNvbXBvbmVudHMuICAqLwp0eXBlZGVmIGxvbmcgbG9uZyBfX20xMjhpIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19tYXlfYWxpYXNfXykpOwp0eXBlZGVmIGRvdWJsZSBfX20xMjhkIF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19tYXlfYWxpYXNfXykpOwoKLyogVW5hbGlnbmVkIHZlcnNpb24gb2YgdGhlIHNhbWUgdHlwZXMuICAqLwp0eXBlZGVmIGxvbmcgbG9uZyBfX20xMjhpX3UgX19hdHRyaWJ1dGVfXyAoKF9fdmVjdG9yX3NpemVfXyAoMTYpLCBfX21heV9hbGlhc19fLCBfX2FsaWduZWRfXyAoMSkpKTsKdHlwZWRlZiBkb3VibGUgX19tMTI4ZF91IF9fYXR0cmlidXRlX18gKChfX3ZlY3Rvcl9zaXplX18gKDE2KSwgX19tYXlfYWxpYXNfXywgX19hbGlnbmVkX18gKDEpKSk7CgovKiBEZWZpbmUgdHdvIHZhbHVlIHBlcm11dGUgbWFzay4gICovCiNkZWZpbmUgX01NX1NIVUZGTEUyKHgseSkgKCgoeCkgPDwgMSkgfCAoeSkpCgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBlbGVtZW50IDAgYXMgRiBhbmQgdGhlIHJlc3QgemVyby4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X3NkIChkb3VibGUgX19GKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGQpeyBfX0YsIDAuMCB9Owp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igd2l0aCBib3RoIGVsZW1lbnRzIGVxdWFsIHRvIEYuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfcGQgKGRvdWJsZSBfX0YpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4ZCl7IF9fRiwgX19GIH07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0X3BkMSAoZG91YmxlIF9fRikKewogIHJldHVybiBfbW1fc2V0MV9wZCAoX19GKTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggdGhlIGxvd2VyIHZhbHVlIFggYW5kIHVwcGVyIHZhbHVlIFcuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9wZCAoZG91YmxlIF9fVywgZG91YmxlIF9fWCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhkKXsgX19YLCBfX1cgfTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggdGhlIGxvd2VyIHZhbHVlIFcgYW5kIHVwcGVyIHZhbHVlIFguICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHJfcGQgKGRvdWJsZSBfX1csIGRvdWJsZSBfX1gpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4ZCl7IF9fVywgX19YIH07Cn0KCi8qIENyZWF0ZSBhbiB1bmRlZmluZWQgdmVjdG9yLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bmRlZmluZWRfcGQgKHZvaWQpCnsKICBfX20xMjhkIF9fWSA9IF9fWTsKICByZXR1cm4gX19ZOwp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igb2YgemVyb3MuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHplcm9fcGQgKHZvaWQpCnsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19zcGxhdHMgKDApOwp9CgovKiBTZXRzIHRoZSBsb3cgRFBGUCB2YWx1ZSBvZiBBIGZyb20gdGhlIGxvdyB2YWx1ZSBvZiBCLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tb3ZlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgcmVzdWx0ID0gKF9fdjJkZikgX19BOwogIHJlc3VsdCBbMF0gPSAoKF9fdjJkZikgX19CKVswXTsKICByZXR1cm4gKF9fbTEyOGQpIHJlc3VsdDsKfQoKLyogTG9hZCB0d28gRFBGUCB2YWx1ZXMgZnJvbSBQLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRfcGQgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfbGQoMCwgKF9fdjE2cXUqKV9fUCkpOwp9CgovKiBMb2FkIHR3byBEUEZQIHZhbHVlcyBmcm9tIFAuICBUaGUgYWRkcmVzcyBuZWVkIG5vdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWR1X3BkIChkb3VibGUgY29uc3QgKl9fUCkKewogIHJldHVybiAodmVjX3ZzeF9sZCgwLCBfX1ApKTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggYWxsIHR3byBlbGVtZW50cyBlcXVhbCB0byAqUC4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZDFfcGQgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgcmV0dXJuICh2ZWNfc3BsYXRzICgqX19QKSk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciB3aXRoIGVsZW1lbnQgMCBhcyAqUCBhbmQgdGhlIHJlc3QgemVyby4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZF9zZCAoZG91YmxlIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gX21tX3NldF9zZCAoKl9fUCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZF9wZDEgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIF9tbV9sb2FkMV9wZCAoX19QKTsKfQoKLyogTG9hZCB0d28gRFBGUCB2YWx1ZXMgaW4gcmV2ZXJzZSBvcmRlci4gIFRoZSBhZGRyZXNzIG11c3QgYmUgYWxpZ25lZC4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZHJfcGQgKGRvdWJsZSBjb25zdCAqX19QKQp7CiAgX192MmRmIF9fdG1wID0gX21tX2xvYWRfcGQgKF9fUCk7CiAgcmV0dXJuIChfX20xMjhkKXZlY194eHBlcm1kaSAoX190bXAsIF9fdG1wLCAyKTsKfQoKLyogU3RvcmUgdHdvIERQRlAgdmFsdWVzLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3BkIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICB2ZWNfc3QoKF9fdjE2cXUpX19BLCAwLCAoX192MTZxdSopX19QKTsKfQoKLyogU3RvcmUgdHdvIERQRlAgdmFsdWVzLiAgVGhlIGFkZHJlc3MgbmVlZCBub3QgYmUgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZXVfcGQgKGRvdWJsZSAqX19QLCBfX20xMjhkIF9fQSkKewogICooX19tMTI4ZF91ICopX19QID0gX19BOwp9CgovKiBTdG9yZXMgdGhlIGxvd2VyIERQRlAgdmFsdWUuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3NkIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICAqX19QID0gKChfX3YyZGYpX19BKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIGRvdWJsZSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNkX2Y2NCAoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKChfX3YyZGYpX19BKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZWxfcGQgKGRvdWJsZSAqX19QLCBfX20xMjhkIF9fQSkKewogIF9tbV9zdG9yZV9zZCAoX19QLCBfX0EpOwp9CgovKiBTdG9yZXMgdGhlIHVwcGVyIERQRlAgdmFsdWUuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlaF9wZCAoZG91YmxlICpfX1AsIF9fbTEyOGQgX19BKQp7CiAgKl9fUCA9ICgoX192MmRmKV9fQSlbMV07Cn0KLyogU3RvcmUgdGhlIGxvd2VyIERQRlAgdmFsdWUgYWNyb3NzIHR3byB3b3Jkcy4KICAgVGhlIGFkZHJlc3MgbXVzdCBiZSAxNi1ieXRlIGFsaWduZWQuICAqLwpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlMV9wZCAoZG91YmxlICpfX1AsIF9fbTEyOGQgX19BKQp7CiAgX21tX3N0b3JlX3BkIChfX1AsIHZlY19zcGxhdCAoX19BLCAwKSk7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVfcGQxIChkb3VibGUgKl9fUCwgX19tMTI4ZCBfX0EpCnsKICBfbW1fc3RvcmUxX3BkIChfX1AsIF9fQSk7Cn0KCi8qIFN0b3JlIHR3byBEUEZQIHZhbHVlcyBpbiByZXZlcnNlIG9yZGVyLiAgVGhlIGFkZHJlc3MgbXVzdCBiZSBhbGlnbmVkLiAgKi8KZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZXJfcGQgKGRvdWJsZSAqX19QLCBfX20xMjhkIF9fQSkKewogIF9tbV9zdG9yZV9wZCAoX19QLCB2ZWNfeHhwZXJtZGkgKF9fQSwgX19BLCAyKSk7Cn0KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTEyOF9zaTY0IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoKF9fdjJkaSlfX0EpWzBdOwp9CgovKiBNaWNyb3NvZnQgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpMTI4X3NpNjR4IChfX20xMjhpIF9fQSkKewogIHJldHVybiAoKF9fdjJkaSlfX0EpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKSAoKF9fdjJkZilfX0EgKyAoX192MmRmKV9fQik7Cn0KCi8qIEFkZCB0aGUgbG93ZXIgZG91YmxlLXByZWNpc2lvbiAoNjQtYml0KSBmbG9hdGluZy1wb2ludCBlbGVtZW50IGluCiAgIGEgYW5kIGIsIHN0b3JlIHRoZSByZXN1bHQgaW4gdGhlIGxvd2VyIGVsZW1lbnQgb2YgZHN0LCBhbmQgY29weQogICB0aGUgdXBwZXIgZWxlbWVudCBmcm9tIGEgdG8gdGhlIHVwcGVyIGVsZW1lbnQgb2YgZHN0LiAqLwpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX19BWzBdID0gX19BWzBdICsgX19CWzBdOwogIHJldHVybiAoX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgKChfX3YyZGYpX19BIC0gKF9fdjJkZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX19BWzBdID0gX19BWzBdIC0gX19CWzBdOwogIHJldHVybiAoX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgKChfX3YyZGYpX19BICogKF9fdjJkZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX211bF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX19BWzBdID0gX19BWzBdICogX19CWzBdOwogIHJldHVybiAoX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9kaXZfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19tMTI4ZCkgKChfX3YyZGYpX19BIC8gKF9fdjJkZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Rpdl9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX19BWzBdID0gX19BWzBdIC8gX19CWzBdOwogIHJldHVybiAoX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcXJ0X3BkIChfX20xMjhkIF9fQSkKewogIHJldHVybiAodmVjX3NxcnQgKF9fQSkpOwp9CgovKiBSZXR1cm4gcGFpciB7c3FydCAoQlswXSksIEFbMV19LiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcXJ0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYzsKICBjID0gdmVjX3NxcnQgKChfX3YyZGYpIF9tbV9zZXQxX3BkIChfX0JbMF0pKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICh2ZWNfbWluIChfX0EsIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21pbl9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgYyA9IHZlY19taW4gKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKHZlY19tYXggKF9fQSwgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gdmVjX21heCAoYSwgYik7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoY1swXSwgX19BWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBlcV9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wZXEgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbHRfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGx0ICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGxlX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBsZSAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBndF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wZ3QgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ2VfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGdlICgoX192MmRmKSBfX0EsKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmVxX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgdGVtcCA9IChfX3YyZGYpIHZlY19jbXBlcSAoKF9fdjJkZikgX19BLCAoX192MmRmKV9fQik7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfbm9yICh0ZW1wLCB0ZW1wKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmx0X3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBnZSAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBubGVfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoKF9fbTEyOGQpdmVjX2NtcGd0ICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcG5ndF9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICgoX19tMTI4ZCl2ZWNfY21wbGUgKChfX3YyZGYpIF9fQSwgKF9fdjJkZikgX19CKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmdlX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKChfX20xMjhkKXZlY19jbXBsdCAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBvcmRfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewojaWYgX0FSQ0hfUFdSOAogIF9fdjJkdSBjLCBkOwogIC8qIENvbXBhcmUgYWdhaW5zdCBzZWxmIHdpbGwgcmV0dXJuIGZhbHNlICgwJ3MpIGlmIE5BTi4gICovCiAgYyA9IChfX3YyZHUpdmVjX2NtcGVxIChfX0EsIF9fQSk7CiAgZCA9IChfX3YyZHUpdmVjX2NtcGVxIChfX0IsIF9fQik7CiNlbHNlCiAgX192MmR1IGEsIGI7CiAgX192MmR1IGMsIGQ7CiAgY29uc3QgX192MmR1IGRvdWJsZV9leHBfbWFzayAgPSB7MHg3ZmYwMDAwMDAwMDAwMDAwLCAweDdmZjAwMDAwMDAwMDAwMDB9OwogIGEgPSAoX192MmR1KXZlY19hYnMgKChfX3YyZGYpX19BKTsKICBiID0gKF9fdjJkdSl2ZWNfYWJzICgoX192MmRmKV9fQik7CiAgYyA9IChfX3YyZHUpdmVjX2NtcGd0IChkb3VibGVfZXhwX21hc2ssIGEpOwogIGQgPSAoX192MmR1KXZlY19jbXBndCAoZG91YmxlX2V4cF9tYXNrLCBiKTsKI2VuZGlmCiAgLyogQSAhPSBOQU4gYW5kIEIgIT0gTkFOLiAgKi8KICByZXR1cm4gKChfX20xMjhkKXZlY19hbmQoYywgZCkpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcHVub3JkX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKI2lmIF9BUkNIX1BXUjgKICBfX3YyZHUgYywgZDsKICAvKiBDb21wYXJlIGFnYWluc3Qgc2VsZiB3aWxsIHJldHVybiBmYWxzZSAoMCdzKSBpZiBOQU4uICAqLwogIGMgPSAoX192MmR1KXZlY19jbXBlcSAoKF9fdjJkZilfX0EsIChfX3YyZGYpX19BKTsKICBkID0gKF9fdjJkdSl2ZWNfY21wZXEgKChfX3YyZGYpX19CLCAoX192MmRmKV9fQik7CiAgLyogQSA9PSBOQU4gT1IgQiA9PSBOQU4gY29udmVydHMgdG9vOgogICAgIE5PVChBICE9IE5BTikgT1IgTk9UKEIgIT0gTkFOKS4gICovCiAgYyA9IHZlY19ub3IgKGMsIGMpOwogIHJldHVybiAoKF9fbTEyOGQpdmVjX29yYyhjLCBkKSk7CiNlbHNlCiAgX192MmR1IGMsIGQ7CiAgLyogQ29tcGFyZSBhZ2FpbnN0IHNlbGYgd2lsbCByZXR1cm4gZmFsc2UgKDAncykgaWYgTkFOLiAgKi8KICBjID0gKF9fdjJkdSl2ZWNfY21wZXEgKChfX3YyZGYpX19BLCAoX192MmRmKV9fQSk7CiAgZCA9IChfX3YyZHUpdmVjX2NtcGVxICgoX192MmRmKV9fQiwgKF9fdjJkZilfX0IpOwogIC8qIENvbnZlcnQgdGhlIHRydWUgKCcxJ3MpIGlzIE5BTi4gICovCiAgYyA9IHZlY19ub3IgKGMsIGMpOwogIGQgPSB2ZWNfbm9yIChkLCBkKTsKICByZXR1cm4gKChfX20xMjhkKXZlY19vcihjLCBkKSk7CiNlbmRpZgp9CgpleHRlcm4gX19pbmxpbmUgIF9fbTEyOGQgIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZXFfc2QoX19tMTI4ZCAgX19BLCBfX20xMjhkICBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICAvKiBQb3dlcklTQSBWU1ggZG9lcyBub3QgYWxsb3cgcGFydGlhbCAoZm9yIGp1c3QgbG93ZXIgZG91YmxlKQogICAgIHJlc3VsdHMuIFNvIHRvIGluc3VyZSB3ZSBkb24ndCBnZW5lcmF0ZSBzcHVyaW91cyBleGNlcHRpb25zCiAgICAgKGZyb20gdGhlIHVwcGVyIGRvdWJsZSB2YWx1ZXMpIHdlIHNwbGF0IHRoZSBsb3dlciBkb3VibGUKICAgICBiZWZvcmUgd2UgZG8gdGhlIG9wZXJhdGlvbi4gKi8KICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gKF9fdjJkZikgdmVjX2NtcGVxKGEsIGIpOwogIC8qIFRoZW4gd2UgbWVyZ2UgdGhlIGxvd2VyIGRvdWJsZSByZXN1bHQgd2l0aCB0aGUgb3JpZ2luYWwgdXBwZXIKICAgICBkb3VibGUgZnJvbSBfX0EuICAqLwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbHRfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiBhLCBiLCBjOwogIGEgPSB2ZWNfc3BsYXRzIChfX0FbMF0pOwogIGIgPSB2ZWNfc3BsYXRzIChfX0JbMF0pOwogIGMgPSAoX192MmRmKSB2ZWNfY21wbHQoYSwgYik7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoY1swXSwgX19BWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsZV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIGEsIGIsIGM7CiAgYSA9IHZlY19zcGxhdHMgKF9fQVswXSk7CiAgYiA9IHZlY19zcGxhdHMgKF9fQlswXSk7CiAgYyA9IChfX3YyZGYpIHZlY19jbXBsZShhLCBiKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChjWzBdLCBfX0FbMV0pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGd0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICBjID0gKF9fdjJkZikgdmVjX2NtcGd0KGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ2Vfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiBhLCBiLCBjOwogIGEgPSB2ZWNfc3BsYXRzIChfX0FbMF0pOwogIGIgPSB2ZWNfc3BsYXRzIChfX0JbMF0pOwogIGMgPSAoX192MmRmKSB2ZWNfY21wZ2UoYSwgYik7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoY1swXSwgX19BWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBuZXFfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIF9fdjJkZiBhLCBiLCBjOwogIGEgPSB2ZWNfc3BsYXRzIChfX0FbMF0pOwogIGIgPSB2ZWNfc3BsYXRzIChfX0JbMF0pOwogIGMgPSAoX192MmRmKSB2ZWNfY21wZXEoYSwgYik7CiAgYyA9IHZlY19ub3IgKGMsIGMpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmx0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICAvKiBOb3QgbGVzcyB0aGFuIGlzIGp1c3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsLiAgKi8KICBjID0gKF9fdjJkZikgdmVjX2NtcGdlKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmxlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICAvKiBOb3QgbGVzcyB0aGFuIG9yIGVxdWFsIGlzIGp1c3QgZ3JlYXRlciB0aGFuLiAgKi8KICBjID0gKF9fdjJkZikgdmVjX2NtcGdlKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmd0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICAvKiBOb3QgZ3JlYXRlciB0aGFuIGlzIGp1c3QgbGVzcyB0aGFuIG9yIGVxdWFsLiAgKi8KICBjID0gKF9fdjJkZikgdmVjX2NtcGxlKGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wbmdlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgYSwgYiwgYzsKICBhID0gdmVjX3NwbGF0cyAoX19BWzBdKTsKICBiID0gdmVjX3NwbGF0cyAoX19CWzBdKTsKICAvKiBOb3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIGlzIGp1c3QgbGVzcyB0aGFuLiAgKi8KICBjID0gKF9fdjJkZikgdmVjX2NtcGx0KGEsIGIpOwogIHJldHVybiAoX19tMTI4ZCkgX21tX3NldHJfcGQgKGNbMF0sIF9fQVsxXSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wb3JkX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICBfX3YyZGYgcjsKICByID0gKF9fdjJkZilfbW1fY21wb3JkX3BkICh2ZWNfc3BsYXRzIChfX0FbMF0pLCB2ZWNfc3BsYXRzIChfX0JbMF0pKTsKICByZXR1cm4gKF9fbTEyOGQpIF9tbV9zZXRyX3BkIChyWzBdLCAoKF9fdjJkZilfX0EpWzFdKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXB1bm9yZF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgX192MmRmIHI7CiAgciA9IF9tbV9jbXB1bm9yZF9wZCAodmVjX3NwbGF0cyAoX19BWzBdKSwgdmVjX3NwbGF0cyAoX19CWzBdKSk7CiAgcmV0dXJuIChfX20xMjhkKSBfbW1fc2V0cl9wZCAoclswXSwgX19BWzFdKTsKfQoKLyogRklYTUUKICAgVGhlIF9fbW1fY29taT8/X3NkIGFuZCBfX21tX3Vjb21pPz9fc2QgaW1wbGVtZW50YXRpb25zIGJlbG93IGFyZQogICBleGFjdGx5IHRoZSBzYW1lIGJlY2F1c2UgR0NDIGZvciBQb3dlclBDIG9ubHkgZ2VuZXJhdGVzIHVub3JkZXJlZAogICBjb21wYXJlcyAoc2NhbGFyIGFuZCB2ZWN0b3IpLgogICBUZWNobmljYWxseSBfX21tX2NvbWllcV9zcCBldCBhbGwgc2hvdWxkIGJlIHVzaW5nIHRoZSBvcmRlcmVkCiAgIGNvbXBhcmUgYW5kIHNpZ25hbCBmb3IgUU5hTnMuICBUaGUgX19tbV91Y29taWVxX3NkIGV0IGFsbCBzaG91bGQKICAgYmUgT0suICAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWllcV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPT0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NvbWlsdF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX0FbMF0gPCBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWxlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA8PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY29taWd0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSA+IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pZ2Vfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAoX19BWzBdID49IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jb21pbmVxX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSAhPSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWllcV9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CglyZXR1cm4gKF9fQVswXSA9PSBfX0JbMF0pOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdWNvbWlsdF9zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CglyZXR1cm4gKF9fQVswXSA8IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWxlX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKCXJldHVybiAoX19BWzBdIDw9IF9fQlswXSk7Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91Y29taWd0X3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKCXJldHVybiAoX19BWzBdID4gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pZ2Vfc2QgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewoJcmV0dXJuIChfX0FbMF0gPj0gX19CWzBdKTsKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3Vjb21pbmVxX3NkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fQVswXSAhPSBfX0JbMF0pOwp9CgovKiBDcmVhdGUgYSB2ZWN0b3Igb2YgUWksIHdoZXJlIGkgaXMgdGhlIGVsZW1lbnQgbnVtYmVyLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfZXBpNjR4IChsb25nIGxvbmcgX19xMSwgbG9uZyBsb25nIF9fcTApCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgX19xMCwgX19xMSB9Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9lcGk2NCAoX19tNjQgX19xMSwgIF9fbTY0IF9fcTApCnsKICByZXR1cm4gX21tX3NldF9lcGk2NHggKChsb25nIGxvbmcpX19xMSwgKGxvbmcgbG9uZylfX3EwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfZXBpMzIgKGludCBfX3EzLCBpbnQgX19xMiwgaW50IF9fcTEsIGludCBfX3EwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjRzaSl7IF9fcTAsIF9fcTEsIF9fcTIsIF9fcTMgfTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRfZXBpMTYgKHNob3J0IF9fcTcsIHNob3J0IF9fcTYsIHNob3J0IF9fcTUsIHNob3J0IF9fcTQsCgkgICAgICAgc2hvcnQgX19xMywgc2hvcnQgX19xMiwgc2hvcnQgX19xMSwgc2hvcnQgX19xMCkKewogIHJldHVybiBfX2V4dGVuc2lvbl9fIChfX20xMjhpKShfX3Y4aGkpewogICAgX19xMCwgX19xMSwgX19xMiwgX19xMywgX19xNCwgX19xNSwgX19xNiwgX19xNyB9Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldF9lcGk4IChjaGFyIF9fcTE1LCBjaGFyIF9fcTE0LCBjaGFyIF9fcTEzLCBjaGFyIF9fcTEyLAoJICAgICAgY2hhciBfX3ExMSwgY2hhciBfX3ExMCwgY2hhciBfX3EwOSwgY2hhciBfX3EwOCwKCSAgICAgIGNoYXIgX19xMDcsIGNoYXIgX19xMDYsIGNoYXIgX19xMDUsIGNoYXIgX19xMDQsCgkgICAgICBjaGFyIF9fcTAzLCBjaGFyIF9fcTAyLCBjaGFyIF9fcTAxLCBjaGFyIF9fcTAwKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjE2cWkpewogICAgX19xMDAsIF9fcTAxLCBfX3EwMiwgX19xMDMsIF9fcTA0LCBfX3EwNSwgX19xMDYsIF9fcTA3LAogICAgX19xMDgsIF9fcTA5LCBfX3ExMCwgX19xMTEsIF9fcTEyLCBfX3ExMywgX19xMTQsIF9fcTE1CiAgfTsKfQoKLyogU2V0IGFsbCBvZiB0aGUgZWxlbWVudHMgb2YgdGhlIHZlY3RvciB0byBBLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXQxX2VwaTY0eCAobG9uZyBsb25nIF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0eCAoX19BLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfZXBpNjQgKF9fbTY0IF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0IChfX0EsIF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0MV9lcGkzMiAoaW50IF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTMyIChfX0EsIF9fQSwgX19BLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldDFfZXBpMTYgKHNob3J0IF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTE2IChfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0MV9lcGk4IChjaGFyIF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTggKF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLAoJCSAgICAgICBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSwgX19BLCBfX0EsIF9fQSk7Cn0KCi8qIENyZWF0ZSBhIHZlY3RvciBvZiBRaSwgd2hlcmUgaSBpcyB0aGUgZWxlbWVudCBudW1iZXIuCiAgIFRoZSBwYXJhbWV0ZXIgb3JkZXIgaXMgcmV2ZXJzZWQgZnJvbSB0aGUgX21tX3NldF9lcGkqIGZ1bmN0aW9ucy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2V0cl9lcGk2NCAoX19tNjQgX19xMCwgX19tNjQgX19xMSkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0IChfX3ExLCBfX3EwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRyX2VwaTMyIChpbnQgX19xMCwgaW50IF9fcTEsIGludCBfX3EyLCBpbnQgX19xMykKewogIHJldHVybiBfbW1fc2V0X2VwaTMyIChfX3EzLCBfX3EyLCBfX3ExLCBfX3EwKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXRyX2VwaTE2IChzaG9ydCBfX3EwLCBzaG9ydCBfX3ExLCBzaG9ydCBfX3EyLCBzaG9ydCBfX3EzLAoJICAgICAgICBzaG9ydCBfX3E0LCBzaG9ydCBfX3E1LCBzaG9ydCBfX3E2LCBzaG9ydCBfX3E3KQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpMTYgKF9fcTcsIF9fcTYsIF9fcTUsIF9fcTQsIF9fcTMsIF9fcTIsIF9fcTEsIF9fcTApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NldHJfZXBpOCAoY2hhciBfX3EwMCwgY2hhciBfX3EwMSwgY2hhciBfX3EwMiwgY2hhciBfX3EwMywKCSAgICAgICBjaGFyIF9fcTA0LCBjaGFyIF9fcTA1LCBjaGFyIF9fcTA2LCBjaGFyIF9fcTA3LAoJICAgICAgIGNoYXIgX19xMDgsIGNoYXIgX19xMDksIGNoYXIgX19xMTAsIGNoYXIgX19xMTEsCgkgICAgICAgY2hhciBfX3ExMiwgY2hhciBfX3ExMywgY2hhciBfX3ExNCwgY2hhciBfX3ExNSkKewogIHJldHVybiBfbW1fc2V0X2VwaTggKF9fcTE1LCBfX3ExNCwgX19xMTMsIF9fcTEyLCBfX3ExMSwgX19xMTAsIF9fcTA5LCBfX3EwOCwKCQkgICAgICAgX19xMDcsIF9fcTA2LCBfX3EwNSwgX19xMDQsIF9fcTAzLCBfX3EwMiwgX19xMDEsIF9fcTAwKTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIHdpdGggZWxlbWVudCAwIGFzICpQIGFuZCB0aGUgcmVzdCB6ZXJvLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkX3NpMTI4IChfX20xMjhpIGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKl9fUDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sb2FkdV9zaTEyOCAoX19tMTI4aV91IGNvbnN0ICpfX1ApCnsKICByZXR1cm4gKF9fbTEyOGkpICh2ZWNfdnN4X2xkKDAsIChzaWduZWQgaW50IGNvbnN0ICopX19QKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZGxfZXBpNjQgKF9fbTEyOGlfdSBjb25zdCAqX19QKQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpNjQgKChfX202NCkwTEwsICooX19tNjQgKilfX1ApOwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0b3JlX3NpMTI4IChfX20xMjhpICpfX1AsIF9fbTEyOGkgX19CKQp7CiAgdmVjX3N0ICgoX192MTZxdSkgX19CLCAwLCAoX192MTZxdSopX19QKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdG9yZXVfc2kxMjggKF9fbTEyOGlfdSAqX19QLCBfX20xMjhpIF9fQikKewogICpfX1AgPSBfX0I7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RvcmVsX2VwaTY0IChfX20xMjhpX3UgKl9fUCwgX19tMTI4aSBfX0IpCnsKICAqKGxvbmcgbG9uZyAqKV9fUCA9ICgoX192MmRpKV9fQilbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVwaTY0X3BpNjQgKF9fbTEyOGlfdSBfX0IpCnsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkaSlfX0IpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdnBpNjRfZXBpNjQgKF9fbTY0IF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTY0ICgoX19tNjQpMExMLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVfZXBpNjQgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIF9tbV9zZXRfZXBpNjQgKChfX202NCkwTEwsIChfX202NClfX0FbMF0pOwp9CgovKiBDcmVhdGUgYW4gdW5kZWZpbmVkIHZlY3Rvci4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5kZWZpbmVkX3NpMTI4ICh2b2lkKQp7CiAgX19tMTI4aSBfX1kgPSBfX1k7CiAgcmV0dXJuIF9fWTsKfQoKLyogQ3JlYXRlIGEgdmVjdG9yIG9mIHplcm9zLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zZXR6ZXJvX3NpMTI4ICh2b2lkKQp7CiAgcmV0dXJuIF9fZXh0ZW5zaW9uX18gKF9fbTEyOGkpKF9fdjRzaSl7IDAsIDAsIDAsIDAgfTsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRlcGkzMl9wZCAoX19tMTI4aSBfX0EpCnsKICBfX3YyZGkgdmFsOwogIC8qIEZvciBMRSBuZWVkIHRvIGdlbmVyYXRlIFZlY3RvciBVbnBhY2sgTG93IFNpZ25lZCBXb3JkLgogICAgIFdoaWNoIGlzIGdlbmVyYXRlZCBmcm9tIHVucGFja2guICAqLwogIHZhbCA9IChfX3YyZGkpdmVjX3VucGFja2ggKChfX3Y0c2kpX19BKTsKCiAgcmV0dXJuIChfX20xMjhkKXZlY19jdGYgKHZhbCwgMCk7Cn0KI2VuZGlmCgpleHRlcm4gX19pbmxpbmUgX19tMTI4IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0ZXBpMzJfcHMgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuICgoX19tMTI4KXZlY19jdGYoKF9fdjRzaSlfX0EsIDApKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwZF9lcGkzMiAoX19tMTI4ZCBfX0EpCnsKICBfX3YyZGYgcm91bmRlZCA9IHZlY19yaW50IChfX0EpOwogIF9fdjRzaSByZXN1bHQsIHRlbXA7CiAgY29uc3QgX192NHNpIHZ6ZXJvID0KICAgIHsgMCwgMCwgMCwgMCB9OwoKICAvKiBWU1ggVmVjdG9yIHRydW5jYXRlIERvdWJsZS1QcmVjaXNpb24gdG8gaW50ZWdlciBhbmQgQ29udmVydCB0bwogICBTaWduZWQgSW50ZWdlciBXb3JkIGZvcm1hdCB3aXRoIFNhdHVyYXRlLiAgKi8KICBfX2FzbV9fKAogICAgICAieHZjdmRwc3h3cyAleDAsJXgxIgogICAgICA6ICI9d2EiICh0ZW1wKQogICAgICA6ICJ3YSIgKHJvdW5kZWQpCiAgICAgIDogKTsKCiNpZmRlZiBfQVJDSF9QV1I4CiAgdGVtcCA9IHZlY19tZXJnZW8gKHRlbXAsIHRlbXApOwogIHJlc3VsdCA9IChfX3Y0c2kpIHZlY192cGt1ZHVtICgoX192ZWN0b3IgbG9uZyBsb25nKSB0ZW1wLAoJCQkJIChfX3ZlY3RvciBsb25nIGxvbmcpIHZ6ZXJvKTsKI2Vsc2UKICB7CiAgICBjb25zdCBfX3YxNnF1IHBrcGVybSA9IHsweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA4LCAweDA5LCAweDBhLCAweDBiLAoJMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiB9OwogICAgcmVzdWx0ID0gKF9fdjRzaSkgdmVjX3Blcm0gKChfX3YxNnF1KSB0ZW1wLCAoX192MTZxdSkgdnplcm8sIHBrcGVybSk7CiAgfQojZW5kaWYKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cGRfcGkzMiAoX19tMTI4ZCBfX0EpCnsKICBfX20xMjhpIHJlc3VsdCA9IF9tbV9jdnRwZF9lcGkzMihfX0EpOwoKICByZXR1cm4gKF9fbTY0KSByZXN1bHRbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwZF9wcyAoX19tMTI4ZCBfX0EpCnsKICBfX3Y0c2YgcmVzdWx0OwogIF9fdjRzaSB0ZW1wOwogIGNvbnN0IF9fdjRzaSB2emVybyA9IHsgMCwgMCwgMCwgMCB9OwoKICBfX2FzbV9fKAogICAgICAieHZjdmRwc3AgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAodGVtcCkKICAgICAgOiAid2EiIChfX0EpCiAgICAgIDogKTsKCiNpZmRlZiBfQVJDSF9QV1I4CiAgdGVtcCA9IHZlY19tZXJnZW8gKHRlbXAsIHRlbXApOwogIHJlc3VsdCA9IChfX3Y0c2YpIHZlY192cGt1ZHVtICgoX192ZWN0b3IgbG9uZyBsb25nKSB0ZW1wLAoJCQkJIChfX3ZlY3RvciBsb25nIGxvbmcpIHZ6ZXJvKTsKI2Vsc2UKICB7CiAgICBjb25zdCBfX3YxNnF1IHBrcGVybSA9IHsweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA4LCAweDA5LCAweDBhLCAweDBiLAoJMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiB9OwogICAgcmVzdWx0ID0gKF9fdjRzZikgdmVjX3Blcm0gKChfX3YxNnF1KSB0ZW1wLCAoX192MTZxdSkgdnplcm8sIHBrcGVybSk7CiAgfQojZW5kaWYKICByZXR1cm4gKChfX20xMjgpcmVzdWx0KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0cGRfZXBpMzIgKF9fbTEyOGQgX19BKQp7CiAgX192NHNpIHJlc3VsdDsKICBfX3Y0c2kgdGVtcDsKICBjb25zdCBfX3Y0c2kgdnplcm8gPSB7IDAsIDAsIDAsIDAgfTsKCiAgLyogVlNYIFZlY3RvciB0cnVuY2F0ZSBEb3VibGUtUHJlY2lzaW9uIHRvIGludGVnZXIgYW5kIENvbnZlcnQgdG8KICAgU2lnbmVkIEludGVnZXIgV29yZCBmb3JtYXQgd2l0aCBTYXR1cmF0ZS4gICovCiAgX19hc21fXygKICAgICAgInh2Y3ZkcHN4d3MgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAodGVtcCkKICAgICAgOiAid2EiIChfX0EpCiAgICAgIDogKTsKCiNpZmRlZiBfQVJDSF9QV1I4CiAgdGVtcCA9IHZlY19tZXJnZW8gKHRlbXAsIHRlbXApOwogIHJlc3VsdCA9IChfX3Y0c2kpIHZlY192cGt1ZHVtICgoX192ZWN0b3IgbG9uZyBsb25nKSB0ZW1wLAoJCQkJIChfX3ZlY3RvciBsb25nIGxvbmcpIHZ6ZXJvKTsKI2Vsc2UKICB7CiAgICBjb25zdCBfX3YxNnF1IHBrcGVybSA9IHsweDAwLCAweDAxLCAweDAyLCAweDAzLCAweDA4LCAweDA5LCAweDBhLCAweDBiLAoJMHgxNCwgMHgxNSwgMHgxNiwgMHgxNywgMHgxYywgMHgxZCwgMHgxZSwgMHgxZiB9OwogICAgcmVzdWx0ID0gKF9fdjRzaSkgdmVjX3Blcm0gKChfX3YxNnF1KSB0ZW1wLCAoX192MTZxdSkgdnplcm8sIHBrcGVybSk7CiAgfQojZW5kaWYKCiAgcmV0dXJuICgoX19tMTI4aSkgcmVzdWx0KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHBkX3BpMzIgKF9fbTEyOGQgX19BKQp7CiAgX19tMTI4aSByZXN1bHQgPSBfbW1fY3Z0dHBkX2VwaTMyIChfX0EpOwoKICByZXR1cm4gKF9fbTY0KSByZXN1bHRbMF07Cn0KCmV4dGVybiBfX2lubGluZSBpbnQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTEyOF9zaTMyIChfX20xMjhpIF9fQSkKewogIHJldHVybiAoKF9fdjRzaSlfX0EpWzBdOwp9CgojaWZkZWYgX0FSQ0hfUFdSOApleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHBpMzJfcGQgKF9fbTY0IF9fQSkKewogIF9fdjRzaSB0ZW1wOwogIF9fdjJkaSB0bXAyOwogIF9fdjJkZiByZXN1bHQ7CgogIHRlbXAgPSAoX192NHNpKXZlY19zcGxhdHMgKF9fQSk7CiAgdG1wMiA9IChfX3YyZGkpdmVjX3VucGFja2wgKHRlbXApOwogIHJlc3VsdCA9IHZlY19jdGYgKChfX3ZlY3RvciBzaWduZWQgbG9uZyBsb25nKSB0bXAyLCAwKTsKICByZXR1cm4gKF9fbTEyOGQpcmVzdWx0Owp9CiNlbmRpZgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRwc19lcGkzMiAoX19tMTI4IF9fQSkKewogIF9fdjRzZiByb3VuZGVkOwogIF9fdjRzaSByZXN1bHQ7CgogIHJvdW5kZWQgPSB2ZWNfcmludCgoX192NHNmKSBfX0EpOwogIHJlc3VsdCA9IHZlY19jdHMgKHJvdW5kZWQsIDApOwogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHRwc19lcGkzMiAoX19tMTI4IF9fQSkKewogIF9fdjRzaSByZXN1bHQ7CgogIHJlc3VsdCA9IHZlY19jdHMgKChfX3Y0c2YpIF9fQSwgMCk7CiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0cHNfcGQgKF9fbTEyOCBfX0EpCnsKICAvKiBDaGVjayBpZiB2ZWNfZG91YmxlaCBpcyBkZWZpbmVkIGJ5IDxhbHRpdmVjLmg+LiBJZiBzbyB1c2UgdGhhdC4gKi8KI2lmZGVmIHZlY19kb3VibGVoCiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfZG91YmxlaCAoKF9fdjRzZilfX0EpOwojZWxzZQogIC8qIE90aGVyd2lzZSB0aGUgY29tcGlsZXIgaXMgbm90IGN1cnJlbnQgYW5kIHNvIG5lZWQgdG8gZ2VuZXJhdGUgdGhlCiAgICAgZXF1aXZhbGVudCBjb2RlLiAgKi8KICBfX3Y0c2YgYSA9IChfX3Y0c2YpX19BOwogIF9fdjRzZiB0ZW1wOwogIF9fdjJkZiByZXN1bHQ7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIC8qIFRoZSBpbnB1dCBmbG9hdCB2YWx1ZXMgYXJlIGluIGVsZW1lbnRzIHtbMF0sIFsxXX0gYnV0IHRoZSBjb252ZXJ0CiAgICAgaW5zdHJ1Y3Rpb24gbmVlZHMgdGhlbSBpbiBlbGVtZW50cyB7WzFdLCBbM119LCBTbyB3ZSB1c2UgdHdvCiAgICAgc2hpZnQgbGVmdCBkb3VibGUgdmVjdG9yIHdvcmQgaW1tZWRpYXRlcyB0byBnZXQgdGhlIGVsZW1lbnRzCiAgICAgbGluZWQgdXAuICAqLwogIHRlbXAgPSBfX2J1aWx0aW5fdnN4X3h4c2xkd2kgKGEsIGEsIDMpOwogIHRlbXAgPSBfX2J1aWx0aW5fdnN4X3h4c2xkd2kgKGEsIHRlbXAsIDIpOwojZWxzZQogIC8qIFRoZSBpbnB1dCBmbG9hdCB2YWx1ZXMgYXJlIGluIGVsZW1lbnRzIHtbMF0sIFsxXX0gYnV0IHRoZSBjb252ZXJ0CiAgICAgaW5zdHJ1Y3Rpb24gbmVlZHMgdGhlbSBpbiBlbGVtZW50cyB7WzBdLCBbMl19LCBTbyB3ZSB1c2UgdHdvCiAgICAgc2hpZnQgbGVmdCBkb3VibGUgdmVjdG9yIHdvcmQgaW1tZWRpYXRlcyB0byBnZXQgdGhlIGVsZW1lbnRzCiAgICAgbGluZWQgdXAuICAqLwogIHRlbXAgPSB2ZWNfdm1yZ2h3IChhLCBhKTsKI2VuZGlmCiAgX19hc21fXygKICAgICAgIiB4dmN2c3BkcCAleDAsJXgxIgogICAgICA6ICI9d2EiIChyZXN1bHQpCiAgICAgIDogIndhIiAodGVtcCkKICAgICAgOiApOwogIHJldHVybiAoX19tMTI4ZCkgcmVzdWx0OwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNkX3NpMzIgKF9fbTEyOGQgX19BKQp7CiAgX192MmRmIHJvdW5kZWQgPSB2ZWNfcmludCgoX192MmRmKSBfX0EpOwogIGludCByZXN1bHQgPSAoKF9fdjJkZilyb3VuZGVkKVswXTsKCiAgcmV0dXJuIHJlc3VsdDsKfQovKiBJbnRlbCBpbnRyaW5zaWMuICAqLwpleHRlcm4gX19pbmxpbmUgbG9uZyBsb25nIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2Rfc2k2NCAoX19tMTI4ZCBfX0EpCnsKICBfX3YyZGYgcm91bmRlZCA9IHZlY19yaW50ICgoX192MmRmKSBfX0EgKTsKICBsb25nIGxvbmcgcmVzdWx0ID0gKChfX3YyZGYpIHJvdW5kZWQpWzBdOwoKICByZXR1cm4gcmVzdWx0Owp9CgovKiBNaWNyb3NvZnQgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIGxvbmcgbG9uZyBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNkX3NpNjR4IChfX20xMjhkIF9fQSkKewogIHJldHVybiBfbW1fY3Z0c2Rfc2k2NCAoKF9fdjJkZilfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0dHNkX3NpMzIgKF9fbTEyOGQgX19BKQp7CiAgaW50IHJlc3VsdCA9ICgoX192MmRmKV9fQSlbMF07CgogIHJldHVybiByZXN1bHQ7Cn0KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0c2Rfc2k2NCAoX19tMTI4ZCBfX0EpCnsKICBsb25nIGxvbmcgcmVzdWx0ID0gKChfX3YyZGYpX19BKVswXTsKCiAgcmV0dXJuIHJlc3VsdDsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBsb25nIGxvbmcgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnR0c2Rfc2k2NHggKF9fbTEyOGQgX19BKQp7CiAgcmV0dXJuIF9tbV9jdnR0c2Rfc2k2NCAoX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNkX3NzIChfX20xMjggX19BLCBfX20xMjhkIF9fQikKewogIF9fdjRzZiByZXN1bHQgPSAoX192NHNmKV9fQTsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIF9fdjRzZiB0ZW1wX3M7CiAgLyogQ29weSBkb3VibGUgZWxlbWVudFswXSB0byBlbGVtZW50IFsxXSBmb3IgY29udmVyc2lvbi4gICovCiAgX192MmRmIHRlbXBfYiA9IHZlY19zcGxhdCgoX192MmRmKV9fQiwgMCk7CgogIC8qIFByZS1yb3RhdGUgX19BIGxlZnQgMyAobG9naWNhbGx5IHJpZ2h0IDEpIGVsZW1lbnRzLiAgKi8KICByZXN1bHQgPSBfX2J1aWx0aW5fdnN4X3h4c2xkd2kgKHJlc3VsdCwgcmVzdWx0LCAzKTsKICAvKiBDb252ZXJ0IGRvdWJsZSB0byBzaW5nbGUgZmxvYXQgc2NhbGFyIGluIGEgdmVjdG9yLiAgKi8KICBfX2FzbV9fKAogICAgICAieHNjdmRwc3AgJXgwLCV4MSIKICAgICAgOiAiPXdhIiAodGVtcF9zKQogICAgICA6ICJ3YSIgKHRlbXBfYikKICAgICAgOiApOwogIC8qIFNoaWZ0IHRoZSByZXN1bHRpbmcgc2NhbGFyIGludG8gdmVjdG9yIGVsZW1lbnQgWzBdLiAgKi8KICByZXN1bHQgPSBfX2J1aWx0aW5fdnN4X3h4c2xkd2kgKHJlc3VsdCwgdGVtcF9zLCAxKTsKI2Vsc2UKICByZXN1bHQgWzBdID0gKChfX3YyZGYpX19CKVswXTsKI2VuZGlmCiAgcmV0dXJuIChfX20xMjgpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTMyX3NkIChfX20xMjhkIF9fQSwgaW50IF9fQikKewogIF9fdjJkZiByZXN1bHQgPSAoX192MmRmKV9fQTsKICBkb3VibGUgZGIgPSBfX0I7CiAgcmVzdWx0IFswXSA9IGRiOwogIHJldHVybiAoX19tMTI4ZClyZXN1bHQ7Cn0KCi8qIEludGVsIGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2k2NF9zZCAoX19tMTI4ZCBfX0EsIGxvbmcgbG9uZyBfX0IpCnsKICBfX3YyZGYgcmVzdWx0ID0gKF9fdjJkZilfX0E7CiAgZG91YmxlIGRiID0gX19COwogIHJlc3VsdCBbMF0gPSBkYjsKICByZXR1cm4gKF9fbTEyOGQpcmVzdWx0Owp9CgovKiBNaWNyb3NvZnQgaW50cmluc2ljLiAgKi8KZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzaTY0eF9zZCAoX19tMTI4ZCBfX0EsIGxvbmcgbG9uZyBfX0IpCnsKICByZXR1cm4gX21tX2N2dHNpNjRfc2QgKF9fQSwgX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jdnRzc19zZCAoX19tMTI4ZCBfX0EsIF9fbTEyOCBfX0IpCnsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgLyogVXNlIHNwbGF0IHRvIG1vdmUgZWxlbWVudCBbMF0gaW50byBwb3NpdGlvbiBmb3IgdGhlIGNvbnZlcnQuICovCiAgX192NHNmIHRlbXAgPSB2ZWNfc3BsYXQgKChfX3Y0c2YpX19CLCAwKTsKICBfX3YyZGYgcmVzOwogIC8qIENvbnZlcnQgc2luZ2xlIGZsb2F0IHNjYWxhciB0byBkb3VibGUgaW4gYSB2ZWN0b3IuICAqLwogIF9fYXNtX18oCiAgICAgICJ4c2N2c3BkcCAleDAsJXgxIgogICAgICA6ICI9d2EiIChyZXMpCiAgICAgIDogIndhIiAodGVtcCkKICAgICAgOiApOwogIHJldHVybiAoX19tMTI4ZCkgdmVjX21lcmdlbCAocmVzLCAoX192MmRmKV9fQSk7CiNlbHNlCiAgX192MmRmIHJlcyA9IChfX3YyZGYpX19BOwogIHJlcyBbMF0gPSAoKF9fdjRzZilfX0IpIFswXTsKICByZXR1cm4gKF9fbTEyOGQpIHJlczsKI2VuZGlmCn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2h1ZmZsZV9wZChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IsIGNvbnN0IGludCBfX21hc2spCnsKICBfX3ZlY3RvciBkb3VibGUgcmVzdWx0OwogIGNvbnN0IGludCBsaXRtc2sgPSBfX21hc2sgJiAweDM7CgogIGlmIChsaXRtc2sgPT0gMCkKICAgIHJlc3VsdCA9IHZlY19tZXJnZWggKF9fQSwgX19CKTsKI2lmIF9fR05VQ19fIDwgNgogIGVsc2UgaWYgKGxpdG1zayA9PSAxKQogICAgcmVzdWx0ID0gdmVjX3h4cGVybWRpIChfX0IsIF9fQSwgMik7CiAgZWxzZSBpZiAobGl0bXNrID09IDIpCiAgICByZXN1bHQgPSB2ZWNfeHhwZXJtZGkgKF9fQiwgX19BLCAxKTsKI2Vsc2UKICBlbHNlIGlmIChsaXRtc2sgPT0gMSkKICAgIHJlc3VsdCA9IHZlY194eHBlcm1kaSAoX19BLCBfX0IsIDIpOwogIGVsc2UgaWYgKGxpdG1zayA9PSAyKQogICAgcmVzdWx0ID0gdmVjX3h4cGVybWRpIChfX0EsIF9fQiwgMSk7CiNlbmRpZgogIGVsc2UKICAgIHJlc3VsdCA9IHZlY19tZXJnZWwgKF9fQSwgX19CKTsKCiAgcmV0dXJuIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2toaV9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuIChfX20xMjhkKSB2ZWNfbWVyZ2VsICgoX192MmRmKV9fQSwgKF9fdjJkZilfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2xvX3BkIChfX20xMjhkIF9fQSwgX19tMTI4ZCBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGQpIHZlY19tZXJnZWggKChfX3YyZGYpX19BLCAoX192MmRmKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbG9hZGhfcGQgKF9fbTEyOGQgX19BLCBkb3VibGUgY29uc3QgKl9fQikKewogIF9fdjJkZiByZXN1bHQgPSAoX192MmRmKV9fQTsKICByZXN1bHQgWzFdID0gKl9fQjsKICByZXR1cm4gKF9fbTEyOGQpcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2xvYWRsX3BkIChfX20xMjhkIF9fQSwgZG91YmxlIGNvbnN0ICpfX0IpCnsKICBfX3YyZGYgcmVzdWx0ID0gKF9fdjJkZilfX0E7CiAgcmVzdWx0IFswXSA9ICpfX0I7CiAgcmV0dXJuIChfX20xMjhkKXJlc3VsdDsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKLyogSW50cmluc2ljIGZ1bmN0aW9ucyB0aGF0IHJlcXVpcmUgUG93ZXJJU0EgMi4wNyBtaW5pbXVtLiAgKi8KCi8qIENyZWF0ZXMgYSAyLWJpdCBtYXNrIGZyb20gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0cyBvZiB0aGUgRFBGUCB2YWx1ZXMuICAqLwpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbW92ZW1hc2tfcGQgKF9fbTEyOGQgIF9fQSkKewogIF9fdmVjdG9yIHVuc2lnbmVkIGxvbmcgbG9uZyByZXN1bHQ7CiAgc3RhdGljIGNvbnN0IF9fdmVjdG9yIHVuc2lnbmVkIGludCBwZXJtX21hc2sgPQogICAgewojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KCTB4ODA4MDAwNDAsIDB4ODA4MDgwODAsIDB4ODA4MDgwODAsIDB4ODA4MDgwODAKI2Vsc2UKICAgICAgMHg4MDgwODA4MCwgMHg4MDgwODA4MCwgMHg4MDgwODA4MCwgMHg4MDgwNDAwMAojZW5kaWYKICAgIH07CgogIHJlc3VsdCA9ICgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQoJICAgIHZlY192YnBlcm1xICgoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19BLAoJCQkgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIHBlcm1fbWFzaykpOwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHJlc3VsdFsxXTsKI2Vsc2UKICByZXR1cm4gcmVzdWx0WzBdOwojZW5kaWYKfQojZW5kaWYgLyogX0FSQ0hfUFdSOCAqLwoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9wYWNrc19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfcGFja3MgKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3BhY2tzX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19wYWNrcyAoKF9fdjRzaSlfX0EsIChfX3Y0c2kpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9wYWNrdXNfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX3BhY2tzdSAoKF9fdjhoaSkgX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNraGlfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VsICgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNraGlfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlbCAoKF9fdjhodSlfX0EsIChfX3Y4aHUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2toaV9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VsICgoX192NHN1KV9fQSwgKF9fdjRzdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2hpX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tZXJnZWwgKChfX3ZlY3RvciBsb25nIGxvbmcpIF9fQSwKCQkJICAgICAgIChfX3ZlY3RvciBsb25nIGxvbmcpIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNrbG9fZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VoICgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fdW5wYWNrbG9fZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21lcmdlaCAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV91bnBhY2tsb19lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbWVyZ2VoICgoX192NHNpKV9fQSwgKF9fdjRzaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3VucGFja2xvX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tZXJnZWggKChfX3ZlY3RvciBsb25nIGxvbmcpIF9fQSwKCQkJICAgICAgIChfX3ZlY3RvciBsb25nIGxvbmcpIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3YxNnF1KV9fQSArIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192OGh1KV9fQSArIChfX3Y4aHUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3Y0c3UpX19BICsgKF9fdjRzdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FkZF9lcGk2NCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjJkdSlfX0EgKyAoX192MmR1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc19lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGRzICgoX192MTZxaSlfX0EsIChfX3YxNnFpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWRkc19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWRkcyAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRzX2VwdTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2FkZHMgKChfX3YxNnF1KV9fQSwgKF9fdjE2cXUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hZGRzX2VwdTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGRzICgoX192OGh1KV9fQSwgKF9fdjhodSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192MTZxdSlfX0EgLSAoX192MTZxdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1Yl9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSAoKF9fdjhodSlfX0EgLSAoX192OGh1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3ViX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpICgoX192NHN1KV9fQSAtIChfX3Y0c3UpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdWJfZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgKChfX3YyZHUpX19BIC0gKF9fdjJkdSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1YnNfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3VicyAoKF9fdjE2cWkpX19BLCAoX192MTZxaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N1YnNfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX3N1YnMgKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3Vic19lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zdWJzICgoX192MTZxdSlfX0EsIChfX3YxNnF1KV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3Vic19lcHUxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfc3VicyAoKF9fdjhodSlfX0EsIChfX3Y4aHUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tYWRkX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3ZlY3RvciBzaWduZWQgaW50IHplcm8gPSB7MCwgMCwgMCwgMH07CgogIHJldHVybiAoX19tMTI4aSkgdmVjX3Ztc3Vtc2htICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IsIHplcm8pOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX211bGhpX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3ZlY3RvciBzaWduZWQgaW50IHcwLCB3MTsKCiAgX192ZWN0b3IgdW5zaWduZWQgY2hhciB4Zm9ybTEgPSB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICAweDAyLCAweDAzLCAweDEyLCAweDEzLCAgMHgwNiwgMHgwNywgMHgxNiwgMHgxNywKICAgICAgMHgwQSwgMHgwQiwgMHgxQSwgMHgxQiwgIDB4MEUsIDB4MEYsIDB4MUUsIDB4MUYKI2Vsc2UKICAgICAgMHgwMCwgMHgwMSwgMHgxMCwgMHgxMSwgIDB4MDQsIDB4MDUsIDB4MTQsIDB4MTUsCiAgICAgIDB4MDgsIDB4MDksIDB4MTgsIDB4MTksICAweDBDLCAweDBELCAweDFDLCAweDFECiNlbmRpZgogICAgfTsKCiAgdzAgPSB2ZWNfdm11bGVzaCAoKF9fdjhoaSlfX0EsIChfX3Y4aGkpX19CKTsKICB3MSA9IHZlY192bXVsb3NoICgoX192OGhpKV9fQSwgKF9fdjhoaSlfX0IpOwogIHJldHVybiAoX19tMTI4aSkgdmVjX3Blcm0gKHcwLCB3MSwgeGZvcm0xKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxsb19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgICByZXR1cm4gKF9fbTEyOGkpICgoX192OGhpKV9fQSAqIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsX3N1MzIgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgdW5zaWduZWQgaW50IGEgPSBfX0E7CiAgdW5zaWduZWQgaW50IGIgPSBfX0I7CgogIHJldHVybiAoKF9fbTY0KWEgKiAoX19tNjQpYik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbXVsX2VwdTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKI2lmIF9fR05VQ19fIDwgOAogIF9fdjJkdSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAvKiBWTVggVmVjdG9yIE11bHRpcGx5IE9kZCBVbnNpZ25lZCBXb3JkLiAgKi8KICBfX2FzbV9fKAogICAgICAidm11bG91dyAlMCwlMSwlMiIKICAgICAgOiAiPXYiIChyZXN1bHQpCiAgICAgIDogInYiIChfX0EpLCAidiIgKF9fQikKICAgICAgOiApOwojZWxzZQogIC8qIFZNWCBWZWN0b3IgTXVsdGlwbHkgRXZlbiBVbnNpZ25lZCBXb3JkLiAgKi8KICBfX2FzbV9fKAogICAgICAidm11bGV1dyAlMCwlMSwlMiIKICAgICAgOiAiPXYiIChyZXN1bHQpCiAgICAgIDogInYiIChfX0EpLCAidiIgKF9fQikKICAgICAgOiApOwojZW5kaWYKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKI2Vsc2UKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tdWxlICgoX192NHN1KV9fQSwgKF9fdjRzdSlfX0IpOwojZW5kaWYKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zbGxpX2VwaTE2IChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjhodSBsc2hpZnQ7CiAgX192OGhpIHJlc3VsdCA9IHsgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCB9OwoKICBpZiAoX19CID49IDAgJiYgX19CIDwgMTYpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpKQoJbHNoaWZ0ID0gKF9fdjhodSkgdmVjX3NwbGF0X3MxNihfX0IpOwogICAgICBlbHNlCglsc2hpZnQgPSB2ZWNfc3BsYXRzICgodW5zaWduZWQgc2hvcnQpIF9fQik7CgogICAgICByZXN1bHQgPSB2ZWNfc2wgKChfX3Y4aGkpIF9fQSwgbHNoaWZ0KTsKICAgIH0KCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2xsaV9lcGkzMiAoX19tMTI4aSBfX0EsIGludCBfX0IpCnsKICBfX3Y0c3UgbHNoaWZ0OwogIF9fdjRzaSByZXN1bHQgPSB7IDAsIDAsIDAsIDAgfTsKCiAgaWYgKF9fQiA+PSAwICYmIF9fQiA8IDMyKQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSAmJiBfX0IgPCAxNikKCWxzaGlmdCA9IChfX3Y0c3UpIHZlY19zcGxhdF9zMzIoX19CKTsKICAgICAgZWxzZQoJbHNoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGludCkgX19CKTsKCiAgICAgIHJlc3VsdCA9IHZlY19zbCAoKF9fdjRzaSkgX19BLCBsc2hpZnQpOwogICAgfQoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zbGxpX2VwaTY0IChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjJkdSBsc2hpZnQ7CiAgX192MmRpIHJlc3VsdCA9IHsgMCwgMCB9OwoKICBpZiAoX19CID49IDAgJiYgX19CIDwgNjQpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpICYmIF9fQiA8IDE2KQoJbHNoaWZ0ID0gKF9fdjJkdSkgdmVjX3NwbGF0X3MzMihfX0IpOwogICAgICBlbHNlCglsc2hpZnQgPSAoX192MmR1KSB2ZWNfc3BsYXRzICgodW5zaWduZWQgaW50KSBfX0IpOwoKICAgICAgcmVzdWx0ID0gdmVjX3NsICgoX192MmRpKSBfX0EsIGxzaGlmdCk7CiAgICB9CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CiNlbmRpZgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmFpX2VwaTE2IChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjhodSByc2hpZnQgPSB7IDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSB9OwogIF9fdjhoaSByZXN1bHQ7CgogIGlmIChfX0IgPCAxNikKICAgIHsKICAgICAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKF9fQikpCglyc2hpZnQgPSAoX192OGh1KSB2ZWNfc3BsYXRfczE2KF9fQik7CiAgICAgIGVsc2UKCXJzaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBzaG9ydCkgX19CKTsKICAgIH0KICByZXN1bHQgPSB2ZWNfc3JhICgoX192OGhpKSBfX0EsIHJzaGlmdCk7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NyYWlfZXBpMzIgKF9fbTEyOGkgX19BLCBpbnQgX19CKQp7CiAgX192NHN1IHJzaGlmdCA9IHsgMzEsIDMxLCAzMSwgMzEgfTsKICBfX3Y0c2kgcmVzdWx0OwoKICBpZiAoX19CIDwgMzIpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpKQoJewoJICBpZiAoX19CIDwgMTYpCgkgICAgICByc2hpZnQgPSAoX192NHN1KSB2ZWNfc3BsYXRfczMyKF9fQik7CgkgICAgZWxzZQoJICAgICAgcnNoaWZ0ID0gKF9fdjRzdSkgdmVjX3NwbGF0cygodW5zaWduZWQgaW50KV9fQik7Cgl9CiAgICAgIGVsc2UKCXJzaGlmdCA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBpbnQpIF9fQik7CiAgICB9CiAgcmVzdWx0ID0gdmVjX3NyYSAoKF9fdjRzaSkgX19BLCByc2hpZnQpOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9ic2xsaV9zaTEyOCAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX04pCnsKICBfX3YxNnF1IHJlc3VsdDsKICBjb25zdCBfX3YxNnF1IHplcm9zID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CgogIGlmIChfX04gPCAxNikKICAgIHJlc3VsdCA9IHZlY19zbGQgKChfX3YxNnF1KSBfX0EsIHplcm9zLCBfX04pOwogIGVsc2UKICAgIHJlc3VsdCA9IHplcm9zOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9ic3JsaV9zaTEyOCAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX04pCnsKICBfX3YxNnF1IHJlc3VsdDsKICBjb25zdCBfX3YxNnF1IHplcm9zID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CgogIGlmIChfX04gPCAxNikKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19OKSkKICAgICAgLyogV291bGQgbGlrZSB0byB1c2UgVmVjdG9yIFNoaWZ0IExlZnQgRG91YmxlIGJ5IE9jdGV0CgkgSW1tZWRpYXRlIGhlcmUgdG8gdXNlIHRoZSBpbW1lZGlhdGUgZm9ybSBhbmQgYXZvaWQKCSBsb2FkIG9mIF9fTiAqIDggdmFsdWUgaW50byBhIHNlcGFyYXRlIFZSLiAgKi8KICAgICAgcmVzdWx0ID0gdmVjX3NsZCAoemVyb3MsIChfX3YxNnF1KSBfX0EsICgxNiAtIF9fTikpOwogICAgZWxzZQojZW5kaWYKICAgICAgewoJX192MTZxdSBzaGlmdCA9IHZlY19zcGxhdHMoKHVuc2lnbmVkIGNoYXIpKF9fTio4KSk7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJcmVzdWx0ID0gdmVjX3NybyAoKF9fdjE2cXUpX19BLCBzaGlmdCk7CiNlbHNlCglyZXN1bHQgPSB2ZWNfc2xvICgoX192MTZxdSlfX0EsIHNoaWZ0KTsKI2VuZGlmCiAgICAgIH0KICBlbHNlCiAgICByZXN1bHQgPSB6ZXJvczsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JsaV9zaTEyOCAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX04pCnsKICByZXR1cm4gX21tX2JzcmxpX3NpMTI4IChfX0EsIF9fTik7Cn0KCmV4dGVybiBfX2lubGluZSAgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NsbGlfc2kxMjggKF9fbTEyOGkgX19BLCBjb25zdCBpbnQgX2ltbTUpCnsKICBfX3YxNnF1IHJlc3VsdDsKICBjb25zdCBfX3YxNnF1IHplcm9zID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CgogIGlmIChfaW1tNSA8IDE2KQojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICAgIHJlc3VsdCA9IHZlY19zbGQgKChfX3YxNnF1KSBfX0EsIHplcm9zLCBfaW1tNSk7CiNlbHNlCiAgICByZXN1bHQgPSB2ZWNfc2xkICh6ZXJvcywgKF9fdjE2cXUpIF9fQSwgKDE2IC0gX2ltbTUpKTsKI2VuZGlmCiAgZWxzZQogICAgcmVzdWx0ID0gemVyb3M7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKCl9tbV9zcmxpX2VwaTE2IChfX20xMjhpICBfX0EsIGludCBfX0IpCnsKICBfX3Y4aHUgcnNoaWZ0OwogIF9fdjhoaSByZXN1bHQgPSB7IDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAgfTsKCiAgaWYgKF9fQiA8IDE2KQogICAgewogICAgICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AoX19CKSkKCXJzaGlmdCA9IChfX3Y4aHUpIHZlY19zcGxhdF9zMTYoX19CKTsKICAgICAgZWxzZQoJcnNoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIHNob3J0KSBfX0IpOwoKICAgICAgcmVzdWx0ID0gdmVjX3NyICgoX192OGhpKSBfX0EsIHJzaGlmdCk7CiAgICB9CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NybGlfZXBpMzIgKF9fbTEyOGkgX19BLCBpbnQgX19CKQp7CiAgX192NHN1IHJzaGlmdDsKICBfX3Y0c2kgcmVzdWx0ID0geyAwLCAwLCAwLCAwIH07CgogIGlmIChfX0IgPCAzMikKICAgIHsKICAgICAgaWYgKF9fYnVpbHRpbl9jb25zdGFudF9wKF9fQikpCgl7CgkgIGlmIChfX0IgPCAxNikKCSAgICAgIHJzaGlmdCA9IChfX3Y0c3UpIHZlY19zcGxhdF9zMzIoX19CKTsKCSAgICBlbHNlCgkgICAgICByc2hpZnQgPSAoX192NHN1KSB2ZWNfc3BsYXRzKCh1bnNpZ25lZCBpbnQpX19CKTsKCX0KICAgICAgZWxzZQoJcnNoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGludCkgX19CKTsKCiAgICAgIHJlc3VsdCA9IHZlY19zciAoKF9fdjRzaSkgX19BLCByc2hpZnQpOwogICAgfQoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmxpX2VwaTY0IChfX20xMjhpIF9fQSwgaW50IF9fQikKewogIF9fdjJkdSByc2hpZnQ7CiAgX192MmRpIHJlc3VsdCA9IHsgMCwgMCB9OwoKICBpZiAoX19CIDwgNjQpCiAgICB7CiAgICAgIGlmIChfX2J1aWx0aW5fY29uc3RhbnRfcChfX0IpKQoJewoJICBpZiAoX19CIDwgMTYpCgkgICAgICByc2hpZnQgPSAoX192MmR1KSB2ZWNfc3BsYXRfczMyKF9fQik7CgkgICAgZWxzZQoJICAgICAgcnNoaWZ0ID0gKF9fdjJkdSkgdmVjX3NwbGF0cygodW5zaWduZWQgbG9uZyBsb25nKV9fQik7Cgl9CiAgICAgIGVsc2UKCXJzaGlmdCA9IChfX3YyZHUpIHZlY19zcGxhdHMgKCh1bnNpZ25lZCBpbnQpIF9fQik7CgogICAgICByZXN1bHQgPSB2ZWNfc3IgKChfX3YyZGkpIF9fQSwgcnNoaWZ0KTsKICAgIH0KCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KI2VuZGlmCgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NsbF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192OGh1IGxzaGlmdDsKICBfX3ZlY3RvciBfX2Jvb2wgc2hvcnQgc2htYXNrOwogIGNvbnN0IF9fdjhodSBzaG1heCA9IHsgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1IH07CiAgX192OGh1IHJlc3VsdDsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIGxzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjhodSkgX19CLCAwKTsKI2Vsc2UKICBsc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y4aHUpIF9fQiwgMyk7CiNlbmRpZgogIHNobWFzayA9IHZlY19jbXBsZSAobHNoaWZ0LCBzaG1heCk7CiAgcmVzdWx0ID0gdmVjX3NsICgoX192OGh1KSBfX0EsIGxzaGlmdCk7CiAgcmVzdWx0ID0gdmVjX3NlbCAoKF9fdjhodSkgc2htYXNrLCByZXN1bHQsIHNobWFzayk7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NsbF9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192NHN1IGxzaGlmdDsKICBfX3ZlY3RvciBfX2Jvb2wgaW50IHNobWFzazsKICBjb25zdCBfX3Y0c3Ugc2htYXggPSB7IDMyLCAzMiwgMzIsIDMyIH07CiAgX192NHN1IHJlc3VsdDsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgbHNoaWZ0ID0gdmVjX3NwbGF0ICgoX192NHN1KSBfX0IsIDApOwojZWxzZQogIGxzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjRzdSkgX19CLCAxKTsKI2VuZGlmCiAgc2htYXNrID0gdmVjX2NtcGx0IChsc2hpZnQsIHNobWF4KTsKICByZXN1bHQgPSB2ZWNfc2wgKChfX3Y0c3UpIF9fQSwgbHNoaWZ0KTsKICByZXN1bHQgPSB2ZWNfc2VsICgoX192NHN1KSBzaG1hc2ssIHJlc3VsdCwgc2htYXNrKTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCiNpZmRlZiBfQVJDSF9QV1I4CmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2xsX2VwaTY0IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3YyZHUgbHNoaWZ0OwogIF9fdmVjdG9yIF9fYm9vbCBsb25nIGxvbmcgc2htYXNrOwogIGNvbnN0IF9fdjJkdSBzaG1heCA9IHsgNjQsIDY0IH07CiAgX192MmR1IHJlc3VsdDsKCiAgbHNoaWZ0ID0gdmVjX3NwbGF0ICgoX192MmR1KSBfX0IsIDApOwogIHNobWFzayA9IHZlY19jbXBsdCAobHNoaWZ0LCBzaG1heCk7CiAgcmVzdWx0ID0gdmVjX3NsICgoX192MmR1KSBfX0EsIGxzaGlmdCk7CiAgcmVzdWx0ID0gKF9fdjJkdSl2ZWNfc2VsICgoX192MmRmKSBzaG1hc2ssIChfX3YyZGYpcmVzdWx0LCBzaG1hc2spOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQojZW5kaWYKCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JhX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3Y4aHUgcnNobWF4ID0geyAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUgfTsKICBfX3Y4aHUgcnNoaWZ0OwogIF9fdjhoaSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y4aHUpX19CLCAwKTsKI2Vsc2UKICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y4aHUpX19CLCAzKTsKI2VuZGlmCiAgcnNoaWZ0ID0gdmVjX21pbiAocnNoaWZ0LCByc2htYXgpOwogIHJlc3VsdCA9IHZlY19zcmEgKChfX3Y4aGkpIF9fQSwgcnNoaWZ0KTsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3JhX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3Y0c3UgcnNobWF4ID0geyAzMSwgMzEsIDMxLCAzMSB9OwogIF9fdjRzdSByc2hpZnQ7CiAgX192NHNpIHJlc3VsdDsKCiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogIHJzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjRzdSlfX0IsIDApOwojZWxzZQogIHJzaGlmdCA9IHZlY19zcGxhdCAoKF9fdjRzdSlfX0IsIDEpOwojZW5kaWYKICByc2hpZnQgPSB2ZWNfbWluIChyc2hpZnQsIHJzaG1heCk7CiAgcmVzdWx0ID0gdmVjX3NyYSAoKF9fdjRzaSkgX19BLCByc2hpZnQpOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmxfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjhodSByc2hpZnQ7CiAgX192ZWN0b3IgX19ib29sIHNob3J0IHNobWFzazsKICBjb25zdCBfX3Y4aHUgc2htYXggPSB7IDE1LCAxNSwgMTUsIDE1LCAxNSwgMTUsIDE1LCAxNSB9OwogIF9fdjhodSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y4aHUpIF9fQiwgMCk7CiNlbHNlCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192OGh1KSBfX0IsIDMpOwojZW5kaWYKICBzaG1hc2sgPSB2ZWNfY21wbGUgKHJzaGlmdCwgc2htYXgpOwogIHJlc3VsdCA9IHZlY19zciAoKF9fdjhodSkgX19BLCByc2hpZnQpOwogIHJlc3VsdCA9IHZlY19zZWwgKChfX3Y4aHUpIHNobWFzaywgcmVzdWx0LCBzaG1hc2spOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmxfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjRzdSByc2hpZnQ7CiAgX192ZWN0b3IgX19ib29sIGludCBzaG1hc2s7CiAgY29uc3QgX192NHN1IHNobWF4ID0geyAzMiwgMzIsIDMyLCAzMiB9OwogIF9fdjRzdSByZXN1bHQ7CgojaWZkZWYgX19MSVRUTEVfRU5ESUFOX18KICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3Y0c3UpIF9fQiwgMCk7CiNlbHNlCiAgcnNoaWZ0ID0gdmVjX3NwbGF0ICgoX192NHN1KSBfX0IsIDEpOwojZW5kaWYKICBzaG1hc2sgPSB2ZWNfY21wbHQgKHJzaGlmdCwgc2htYXgpOwogIHJlc3VsdCA9IHZlY19zciAoKF9fdjRzdSkgX19BLCByc2hpZnQpOwogIHJlc3VsdCA9IHZlY19zZWwgKChfX3Y0c3UpIHNobWFzaywgcmVzdWx0LCBzaG1hc2spOwoKICByZXR1cm4gKF9fbTEyOGkpIHJlc3VsdDsKfQoKI2lmZGVmIF9BUkNIX1BXUjgKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zcmxfZXBpNjQgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjJkdSByc2hpZnQ7CiAgX192ZWN0b3IgX19ib29sIGxvbmcgbG9uZyBzaG1hc2s7CiAgY29uc3QgX192MmR1IHNobWF4ID0geyA2NCwgNjQgfTsKICBfX3YyZHUgcmVzdWx0OwoKICByc2hpZnQgPSB2ZWNfc3BsYXQgKChfX3YyZHUpIF9fQiwgMCk7CiAgc2htYXNrID0gdmVjX2NtcGx0IChyc2hpZnQsIHNobWF4KTsKICByZXN1bHQgPSB2ZWNfc3IgKChfX3YyZHUpIF9fQSwgcnNoaWZ0KTsKICByZXN1bHQgPSAoX192MmR1KXZlY19zZWwgKChfX3YyZGYpIHNobWFzaywgKF9fdjJkZilyZXN1bHQsIHNobWFzayk7CgogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CiNlbmRpZgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAodmVjX2FuZCAoKF9fdjJkZikgX19BLCAoX192MmRmKSBfX0IpKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRub3RfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAodmVjX2FuZGMgKChfX3YyZGYpIF9fQiwgKF9fdjJkZikgX19BKSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fb3JfcGQgKF9fbTEyOGQgX19BLCBfX20xMjhkIF9fQikKewogIHJldHVybiAodmVjX29yICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3hvcl9wZCAoX19tMTI4ZCBfX0EsIF9fbTEyOGQgX19CKQp7CiAgcmV0dXJuICh2ZWNfeG9yICgoX192MmRmKSBfX0EsIChfX3YyZGYpIF9fQikpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FuZF9zaTEyOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKXZlY19hbmQgKChfX3YyZGkpIF9fQSwgKF9fdjJkaSkgX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hbmRub3Rfc2kxMjggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSl2ZWNfYW5kYyAoKF9fdjJkaSkgX19CLCAoX192MmRpKSBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX29yX3NpMTI4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpdmVjX29yICgoX192MmRpKSBfX0EsIChfX3YyZGkpIF9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1feG9yX3NpMTI4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpdmVjX3hvciAoKF9fdjJkaSkgX19BLCAoX192MmRpKSBfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGVxICgoX192MTZxaSkgX19BLCAoX192MTZxaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGVxX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBlcSAoKF9fdjhoaSkgX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZXFfZXBpMzIgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGVxICgoX192NHNpKSBfX0EsIChfX3Y0c2kpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsdF9lcGk4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBsdCAoKF9fdjE2cWkpIF9fQSwgKF9fdjE2cWkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBsdF9lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wbHQgKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2NtcGx0X2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19jbXBsdCAoKF9fdjRzaSkgX19BLCAoX192NHNpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3RfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wZ3QgKChfX3YxNnFpKSBfX0EsIChfX3YxNnFpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY21wZ3RfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2NtcGd0ICgoX192OGhpKSBfX0EsIChfX3Y4aGkpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbXBndF9lcGkzMiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfY21wZ3QgKChfX3Y0c2kpIF9fQSwgKF9fdjRzaSlfX0IpOwp9CgpleHRlcm4gX19pbmxpbmUgaW50IF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fZXh0cmFjdF9lcGkxNiAoX19tMTI4aSBjb25zdCBfX0EsIGludCBjb25zdCBfX04pCnsKICByZXR1cm4gKHVuc2lnbmVkIHNob3J0KSAoKF9fdjhoaSlfX0EpW19fTiAmIDddOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2luc2VydF9lcGkxNiAoX19tMTI4aSBjb25zdCBfX0EsIGludCBjb25zdCBfX0QsIGludCBjb25zdCBfX04pCnsKICBfX3Y4aGkgcmVzdWx0ID0gKF9fdjhoaSlfX0E7CgogIHJlc3VsdCBbKF9fTiAmIDcpXSA9IF9fRDsKCiAgcmV0dXJuIChfX20xMjhpKSByZXN1bHQ7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tYXggKChfX3Y4aGkpX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWF4X2VwdTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21heCAoKF9fdjE2cXUpIF9fQSwgKF9fdjE2cXUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9taW5fZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21pbiAoKF9fdjhoaSkgX19BLCAoX192OGhpKV9fQik7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWluX2VwdTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX21pbiAoKF9fdjE2cXUpIF9fQSwgKF9fdjE2cXUpX19CKTsKfQoKCiNpZmRlZiBfQVJDSF9QV1I4Ci8qIEludHJpbnNpYyBmdW5jdGlvbnMgdGhhdCByZXF1aXJlIFBvd2VySVNBIDIuMDcgbWluaW11bS4gICovCgovKiBDcmVhdGVzIGEgNC1iaXQgbWFzayBmcm9tIHRoZSBtb3N0IHNpZ25pZmljYW50IGJpdHMgb2YgdGhlIFNQRlAgdmFsdWVzLiAgKi8KZXh0ZXJuIF9faW5saW5lIGludCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21vdmVtYXNrX2VwaTggKF9fbTEyOGkgX19BKQp7CiAgX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nIHJlc3VsdDsKICBzdGF0aWMgY29uc3QgX192ZWN0b3IgdW5zaWduZWQgY2hhciBwZXJtX21hc2sgPQogICAgewoJMHg3OCwgMHg3MCwgMHg2OCwgMHg2MCwgMHg1OCwgMHg1MCwgMHg0OCwgMHg0MCwKCTB4MzgsIDB4MzAsIDB4MjgsIDB4MjAsIDB4MTgsIDB4MTAsIDB4MDgsIDB4MDAKICAgIH07CgogIHJlc3VsdCA9ICgoX192ZWN0b3IgdW5zaWduZWQgbG9uZyBsb25nKQoJICAgIHZlY192YnBlcm1xICgoX192ZWN0b3IgdW5zaWduZWQgY2hhcikgX19BLAoJCQkgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpIHBlcm1fbWFzaykpOwoKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmV0dXJuIHJlc3VsdFsxXTsKI2Vsc2UKICByZXR1cm4gcmVzdWx0WzBdOwojZW5kaWYKfQojZW5kaWYgLyogX0FSQ0hfUFdSOCAqLwoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxoaV9lcHUxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192NHN1IHcwLCB3MTsKICBfX3YxNnF1IHhmb3JtMSA9IHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIDB4MDIsIDB4MDMsIDB4MTIsIDB4MTMsICAweDA2LCAweDA3LCAweDE2LCAweDE3LAogICAgICAweDBBLCAweDBCLCAweDFBLCAweDFCLCAgMHgwRSwgMHgwRiwgMHgxRSwgMHgxRgojZWxzZQogICAgICAweDAwLCAweDAxLCAweDEwLCAweDExLCAgMHgwNCwgMHgwNSwgMHgxNCwgMHgxNSwKICAgICAgMHgwOCwgMHgwOSwgMHgxOCwgMHgxOSwgIDB4MEMsIDB4MEQsIDB4MUMsIDB4MUQKI2VuZGlmCiAgICB9OwoKICB3MCA9IHZlY192bXVsZXVoICgoX192OGh1KV9fQSwgKF9fdjhodSlfX0IpOwogIHcxID0gdmVjX3ZtdWxvdWggKChfX3Y4aHUpX19BLCAoX192OGh1KV9fQik7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfcGVybSAodzAsIHcxLCB4Zm9ybTEpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVoaV9lcGkxNiAoX19tMTI4aSBfX0EsIGNvbnN0IGludCBfX21hc2spCnsKICB1bnNpZ25lZCBsb25nIGVsZW1lbnRfc2VsZWN0b3JfOTggPSBfX21hc2sgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl9CQSA9IChfX21hc2sgPj4gMikgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl9EQyA9IChfX21hc2sgPj4gNCkgJiAweDAzOwogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl9GRSA9IChfX21hc2sgPj4gNikgJiAweDAzOwogIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBwZXJtdXRlX3NlbGVjdG9yc1s0XSA9CiAgICB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJICAgICAgMHgwOTA4LCAweDBCMEEsIDB4MEQwQywgMHgwRjBFCiNlbHNlCgkgICAgICAweDA4MDksIDB4MEEwQiwgMHgwQzBELCAweDBFMEYKI2VuZGlmCiAgICB9OwogIF9fdjJkdSBwbWFzayA9CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICB7IDB4MTcxNjE1MTQxMzEyMTExMFVMLCAgMFVMfTsKI2Vsc2UKICAgICAgeyAweDEwMTExMjEzMTQxNTE2MTdVTCwgIDBVTH07CiNlbmRpZgogIF9fbTY0X3VuaW9uIHQ7CiAgX192MmR1IGEsIHI7CgogIHQuYXNfc2hvcnRbMF0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzk4XTsKICB0LmFzX3Nob3J0WzFdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl9CQV07CiAgdC5hc19zaG9ydFsyXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfRENdOwogIHQuYXNfc2hvcnRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yX0ZFXTsKICBwbWFza1sxXSA9IHQuYXNfbTY0OwogIGEgPSAoX192MmR1KV9fQTsKICByID0gdmVjX3Blcm0gKGEsIGEsIChfX3ZlY3RvciB1bnNpZ25lZCBjaGFyKXBtYXNrKTsKICByZXR1cm4gKF9fbTEyOGkpIHI7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2h1ZmZsZWxvX2VwaTE2IChfX20xMjhpIF9fQSwgY29uc3QgaW50IF9fbWFzaykKewogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8xMCA9IF9fbWFzayAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzMyID0gKF9fbWFzayA+PiAyKSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzU0ID0gKF9fbWFzayA+PiA0KSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzc2ID0gKF9fbWFzayA+PiA2KSAmIDB4MDM7CiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IHBlcm11dGVfc2VsZWN0b3JzWzRdID0KICAgIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCgkgICAgICAweDAxMDAsIDB4MDMwMiwgMHgwNTA0LCAweDA3MDYKI2Vsc2UKCSAgICAgIDB4MDAwMSwgMHgwMjAzLCAweDA0MDUsIDB4MDYwNwojZW5kaWYKICAgIH07CiAgX192MmR1IHBtYXNrID0KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgICAgICAgICAgICAgeyAwVUwsICAweDFmMWUxZDFjMWIxYTE5MThVTH07CiNlbHNlCiAgICAgICAgICAgICAgICAgeyAwVUwsICAweDE4MTkxYTFiMWMxZDFlMWZVTH07CiNlbmRpZgogIF9fbTY0X3VuaW9uIHQ7CiAgX192MmR1IGEsIHI7CiAgdC5hc19zaG9ydFswXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfMTBdOwogIHQuYXNfc2hvcnRbMV0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzMyXTsKICB0LmFzX3Nob3J0WzJdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl81NF07CiAgdC5hc19zaG9ydFszXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfNzZdOwogIHBtYXNrWzBdID0gdC5hc19tNjQ7CiAgYSA9IChfX3YyZHUpX19BOwogIHIgPSB2ZWNfcGVybSAoYSwgYSwgKF9fdmVjdG9yIHVuc2lnbmVkIGNoYXIpcG1hc2spOwogIHJldHVybiAoX19tMTI4aSkgcjsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaHVmZmxlX2VwaTMyIChfX20xMjhpIF9fQSwgY29uc3QgaW50IF9fbWFzaykKewogIHVuc2lnbmVkIGxvbmcgZWxlbWVudF9zZWxlY3Rvcl8xMCA9IF9fbWFzayAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzMyID0gKF9fbWFzayA+PiAyKSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzU0ID0gKF9fbWFzayA+PiA0KSAmIDB4MDM7CiAgdW5zaWduZWQgbG9uZyBlbGVtZW50X3NlbGVjdG9yXzc2ID0gKF9fbWFzayA+PiA2KSAmIDB4MDM7CiAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBwZXJtdXRlX3NlbGVjdG9yc1s0XSA9CiAgICB7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJMHgwMzAyMDEwMCwgMHgwNzA2MDUwNCwgMHgwQjBBMDkwOCwgMHgwRjBFMEQwQwojZWxzZQogICAgICAweDAwMDEwMjAzLCAweDA0MDUwNjA3LCAweDA4MDkwQTBCLCAweDBDMEQwRTBGCiNlbmRpZgogICAgfTsKICBfX3Y0c3UgdDsKCiAgdFswXSA9IHBlcm11dGVfc2VsZWN0b3JzW2VsZW1lbnRfc2VsZWN0b3JfMTBdOwogIHRbMV0gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzMyXTsKICB0WzJdID0gcGVybXV0ZV9zZWxlY3RvcnNbZWxlbWVudF9zZWxlY3Rvcl81NF0gKyAweDEwMTAxMDEwOwogIHRbM10gPSBwZXJtdXRlX3NlbGVjdG9yc1tlbGVtZW50X3NlbGVjdG9yXzc2XSArIDB4MTAxMDEwMTA7CiAgcmV0dXJuIChfX20xMjhpKXZlY19wZXJtICgoX192NHNpKSBfX0EsIChfX3Y0c2kpX19BLCAoX192ZWN0b3IgdW5zaWduZWQgY2hhcil0KTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tYXNrbW92ZXVfc2kxMjggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgY2hhciAqX19DKQp7CiAgX192MmR1IGhpYml0ID0geyAweDdmN2Y3ZjdmN2Y3ZjdmN2ZVTCwgMHg3ZjdmN2Y3ZjdmN2Y3ZjdmVUx9OwogIF9fdjE2cXUgbWFzaywgdG1wOwogIF9fbTEyOGlfdSAqcCA9IChfX20xMjhpX3UqKV9fQzsKCiAgdG1wID0gKF9fdjE2cXUpX21tX2xvYWR1X3NpMTI4KHApOwogIG1hc2sgPSAoX192MTZxdSl2ZWNfY21wZ3QgKChfX3YxNnF1KV9fQiwgKF9fdjE2cXUpaGliaXQpOwogIHRtcCA9IHZlY19zZWwgKHRtcCwgKF9fdjE2cXUpX19BLCBtYXNrKTsKICBfbW1fc3RvcmV1X3NpMTI4IChwLCAoX19tMTI4aSl0bXApOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2F2Z19lcHU4IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hdmcgKChfX3YxNnF1KV9fQSwgKF9fdjE2cXUpX19CKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hdmdfZXB1MTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIHJldHVybiAoX19tMTI4aSkgdmVjX2F2ZyAoKF9fdjhodSlfX0EsIChfX3Y4aHUpX19CKTsKfQoKCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2FkX2VwdTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjE2cXUgYSwgYjsKICBfX3YxNnF1IHZtaW4sIHZtYXgsIHZhYnNkaWZmOwogIF9fdjRzaSB2c3VtOwogIGNvbnN0IF9fdjRzdSB6ZXJvID0geyAwLCAwLCAwLCAwIH07CiAgX192NHNpIHJlc3VsdDsKCiAgYSA9IChfX3YxNnF1KSBfX0E7CiAgYiA9IChfX3YxNnF1KSBfX0I7CiAgdm1pbiA9IHZlY19taW4gKGEsIGIpOwogIHZtYXggPSB2ZWNfbWF4IChhLCBiKTsKICB2YWJzZGlmZiA9IHZlY19zdWIgKHZtYXgsIHZtaW4pOwogIC8qIFN1bSBmb3VyIGdyb3VwcyBvZiBieXRlcyBpbnRvIGludGVnZXJzLiAgKi8KICB2c3VtID0gKF9fdmVjdG9yIHNpZ25lZCBpbnQpIHZlY19zdW00cyAodmFic2RpZmYsIHplcm8pOwogIC8qIFN1bSBhY3Jvc3MgZm91ciBpbnRlZ2VycyB3aXRoIHR3byBpbnRlZ2VyIHJlc3VsdHMuICAqLwogIHJlc3VsdCA9IHZlY19zdW0ycyAodnN1bSwgKF9fdmVjdG9yIHNpZ25lZCBpbnQpIHplcm8pOwogIC8qIFJvdGF0ZSB0aGUgc3VtcyBpbnRvIHRoZSBjb3JyZWN0IHBvc2l0aW9uLiAgKi8KI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgcmVzdWx0ID0gdmVjX3NsZCAocmVzdWx0LCByZXN1bHQsIDQpOwojZWxzZQogIHJlc3VsdCA9IHZlY19zbGQgKHJlc3VsdCwgcmVzdWx0LCA2KTsKI2VuZGlmCiAgLyogUm90YXRlIHRoZSBzdW1zIGludG8gdGhlIGNvcnJlY3QgcG9zaXRpb24uICAqLwogIHJldHVybiAoX19tMTI4aSkgcmVzdWx0Owp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0cmVhbV9zaTMyIChpbnQgKl9fQSwgaW50IF9fQikKewogIC8qIFVzZSB0aGUgZGF0YSBjYWNoZSBibG9jayB0b3VjaCBmb3Igc3RvcmUgdHJhbnNpZW50LiAgKi8KICBfX2FzbV9fICgKICAgICJkY2J0c3R0IDAsJTAiCiAgICA6CiAgICA6ICJiIiAoX19BKQogICAgOiAibWVtb3J5IgogICk7CiAgKl9fQSA9IF9fQjsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zdHJlYW1fc2k2NCAobG9uZyBsb25nIGludCAqX19BLCBsb25nIGxvbmcgaW50IF9fQikKewogIC8qIFVzZSB0aGUgZGF0YSBjYWNoZSBibG9jayB0b3VjaCBmb3Igc3RvcmUgdHJhbnNpZW50LiAgKi8KICBfX2FzbV9fICgKICAgICIJZGNidHN0dAkwLCUwIgogICAgOgogICAgOiAiYiIgKF9fQSkKICAgIDogIm1lbW9yeSIKICApOwogICpfX0EgPSBfX0I7Cn0KCmV4dGVybiBfX2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc3RyZWFtX3NpMTI4IChfX20xMjhpICpfX0EsIF9fbTEyOGkgX19CKQp7CiAgLyogVXNlIHRoZSBkYXRhIGNhY2hlIGJsb2NrIHRvdWNoIGZvciBzdG9yZSB0cmFuc2llbnQuICAqLwogIF9fYXNtX18gKAogICAgImRjYnRzdHQgMCwlMCIKICAgIDoKICAgIDogImIiIChfX0EpCiAgICA6ICJtZW1vcnkiCiAgKTsKICAqX19BID0gX19COwp9CgpleHRlcm4gX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3N0cmVhbV9wZCAoZG91YmxlICpfX0EsIF9fbTEyOGQgX19CKQp7CiAgLyogVXNlIHRoZSBkYXRhIGNhY2hlIGJsb2NrIHRvdWNoIGZvciBzdG9yZSB0cmFuc2llbnQuICAqLwogIF9fYXNtX18gKAogICAgImRjYnRzdHQgMCwlMCIKICAgIDoKICAgIDogImIiIChfX0EpCiAgICA6ICJtZW1vcnkiCiAgKTsKICAqKF9fbTEyOGQqKV9fQSA9IF9fQjsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jbGZsdXNoICh2b2lkIGNvbnN0ICpfX0EpCnsKICAvKiBVc2UgdGhlIGRhdGEgY2FjaGUgYmxvY2sgZmx1c2guICAqLwogIF9fYXNtX18gKAogICAgImRjYmYgMCwlMCIKICAgIDoKICAgIDogImIiIChfX0EpCiAgICA6ICJtZW1vcnkiCiAgKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9sZmVuY2UgKHZvaWQpCnsKICAvKiBVc2UgbGlnaHQgd2VpZ2h0IHN5bmMgZm9yIGxvYWQgdG8gbG9hZCBvcmRlcmluZy4gICovCiAgX19hdG9taWNfdGhyZWFkX2ZlbmNlIChfX0FUT01JQ19SRUxFQVNFKTsKfQoKZXh0ZXJuIF9faW5saW5lIHZvaWQgX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tZmVuY2UgKHZvaWQpCnsKICAvKiBVc2UgaGVhdnkgd2VpZ2h0IHN5bmMgZm9yIGFueSB0byBhbnkgb3JkZXJpbmcuICAqLwogIF9fYXRvbWljX3RocmVhZF9mZW5jZSAoX19BVE9NSUNfU0VRX0NTVCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2kzMl9zaTEyOCAoaW50IF9fQSkKewogIHJldHVybiBfbW1fc2V0X2VwaTMyICgwLCAwLCAwLCBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2N2dHNpNjRfc2kxMjggKGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgX19BLCAwTEwgfTsKfQoKLyogTWljcm9zb2Z0IGludHJpbnNpYy4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY3Z0c2k2NHhfc2kxMjggKGxvbmcgbG9uZyBfX0EpCnsKICByZXR1cm4gX19leHRlbnNpb25fXyAoX19tMTI4aSkoX192MmRpKXsgX19BLCAwTEwgfTsKfQoKLyogQ2FzdHMgYmV0d2VlbiB2YXJpb3VzIFNQLCBEUCwgSU5UIHZlY3RvciB0eXBlcy4gIE5vdGUgdGhhdCB0aGVzZSBkbyBubwogICBjb252ZXJzaW9uIG9mIHZhbHVlcywgdGhleSBqdXN0IGNoYW5nZSB0aGUgdHlwZS4gICovCmV4dGVybiBfX2lubGluZSBfX20xMjggX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9jYXN0cGRfcHMoX19tMTI4ZCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOCkgX19BOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Nhc3RwZF9zaTEyOChfX20xMjhkIF9fQSkKewogIHJldHVybiAoX19tMTI4aSkgX19BOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4ZCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Nhc3Rwc19wZChfX20xMjggX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX0E7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY2FzdHBzX3NpMTI4KF9fbTEyOCBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIF9fQTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOCBfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Nhc3RzaTEyOF9wcyhfX20xMjhpIF9fQSkKewogIHJldHVybiAoX19tMTI4KSBfX0E7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhkIF9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fY2FzdHNpMTI4X3BkKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhkKSBfX0E7Cn0KCiNlbHNlCiNpbmNsdWRlX25leHQgPGVtbWludHJpbi5oPgojZW5kaWYgLyogZGVmaW5lZChfX2xpbnV4X18pICYmIGRlZmluZWQoX19wcGM2NF9fKSAqLwoKI2VuZGlmIC8qIEVNTUlOVFJJTl9IXyAqLwoALyo9PT0tLS0tIHRtbWludHJpbi5oIC0gSW1wbGVtZW50YXRpb24gb2YgU1NTRTMgaW50cmluc2ljcyBvbiBQb3dlclBDIC0tLS0tLT09PQogKgogKiBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgogKiBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgogKgogKj09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqLwoKLyogSW1wbGVtZW50ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpbmNsdWRlZCBpbiB0aGUgSW50ZWwgQysrIENvbXBpbGVyCiAgIFVzZXIgR3VpZGUgYW5kIFJlZmVyZW5jZSwgdmVyc2lvbiA5LjAuICAqLwoKI2lmbmRlZiBOT19XQVJOX1g4Nl9JTlRSSU5TSUNTCi8qIFRoaXMgaGVhZGVyIGlzIGRpc3RyaWJ1dGVkIHRvIHNpbXBsaWZ5IHBvcnRpbmcgeDg2XzY0IGNvZGUgdGhhdAogICBtYWtlcyBleHBsaWNpdCB1c2Ugb2YgSW50ZWwgaW50cmluc2ljcyB0byBwb3dlcnBjNjRsZS4KCiAgIEl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8gZGV0ZXJtaW5lIGlmIHRoZSByZXN1bHRzIGFyZQogICBhY2NlcHRhYmxlIGFuZCBtYWtlIGFkZGl0aW9uYWwgY2hhbmdlcyBhcyBuZWNlc3NhcnkuCgogICBOb3RlIHRoYXQgbXVjaCBjb2RlIHRoYXQgdXNlcyBJbnRlbCBpbnRyaW5zaWNzIGNhbiBiZSByZXdyaXR0ZW4gaW4KICAgc3RhbmRhcmQgQyBvciBHTlUgQyBleHRlbnNpb25zLCB3aGljaCBhcmUgbW9yZSBwb3J0YWJsZSBhbmQgYmV0dGVyCiAgIG9wdGltaXplZCBhY3Jvc3MgbXVsdGlwbGUgdGFyZ2V0cy4gICovCiNlbmRpZgoKI2lmbmRlZiBUTU1JTlRSSU5fSF8KI2RlZmluZSBUTU1JTlRSSU5fSF8KCiNpZiBkZWZpbmVkKF9fbGludXhfXykgJiYgZGVmaW5lZChfX3BwYzY0X18pCgojaW5jbHVkZSA8YWx0aXZlYy5oPgoKLyogV2UgbmVlZCBkZWZpbml0aW9ucyBmcm9tIHRoZSBTU0UgaGVhZGVyIGZpbGVzLiAgKi8KI2luY2x1ZGUgPHBtbWludHJpbi5oPgoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hYnNfZXBpMTYgKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWJzICgoX192OGhpKSBfX0EpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Fic19lcGkzMiAoX19tMTI4aSBfX0EpCnsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hYnMgKChfX3Y0c2kpIF9fQSk7Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWJzX2VwaTggKF9fbTEyOGkgX19BKQp7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfYWJzICgoX192MTZxaSkgX19BKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWJzX3BpMTYgKF9fbTY0IF9fQSkKewogIF9fdjhoaSBfX0IgPSAoX192OGhpKSAoX192MmR1KSB7IF9fQSwgX19BIH07CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIHZlY19hYnMgKF9fQikpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9hYnNfcGkzMiAoX19tNjQgX19BKQp7CiAgX192NHNpIF9fQiA9IChfX3Y0c2kpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgdmVjX2FicyAoX19CKSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2Fic19waTggKF9fbTY0IF9fQSkKewogIF9fdjE2cWkgX19CID0gKF9fdjE2cWkpIChfX3YyZHUpIHsgX19BLCBfX0EgfTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgdmVjX2FicyAoX19CKSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fYWxpZ25yX2VwaTggKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQiwgY29uc3QgdW5zaWduZWQgaW50IF9fY291bnQpCnsKICBpZiAoX19idWlsdGluX2NvbnN0YW50X3AgKF9fY291bnQpICYmIF9fY291bnQgPCAxNikKICAgIHsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIF9fQSA9IChfX20xMjhpKSB2ZWNfcmV2ZSAoKF9fdjE2cXUpIF9fQSk7CiAgICAgIF9fQiA9IChfX20xMjhpKSB2ZWNfcmV2ZSAoKF9fdjE2cXUpIF9fQik7CiNlbmRpZgogICAgICBfX0EgPSAoX19tMTI4aSkgdmVjX3NsZCAoKF9fdjE2cXUpIF9fQiwgKF9fdjE2cXUpIF9fQSwgX19jb3VudCk7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBfX0EgPSAoX19tMTI4aSkgdmVjX3JldmUgKChfX3YxNnF1KSBfX0EpOwojZW5kaWYKICAgICAgcmV0dXJuIF9fQTsKICAgIH0KCiAgaWYgKF9fY291bnQgPT0gMCkKICAgIHJldHVybiBfX0I7CgogIGlmIChfX2NvdW50ID49IDE2KQogICAgewogICAgICBpZiAoX19jb3VudCA+PSAzMikKCXsKCSAgY29uc3QgX192MTZxdSB6ZXJvID0geyAwIH07CgkgIHJldHVybiAoX19tMTI4aSkgemVybzsKCX0KICAgICAgZWxzZQoJewoJICBjb25zdCBfX3YxNnF1IF9fc2hpZnQgPQoJICAgIHZlY19zcGxhdHMgKCh1bnNpZ25lZCBjaGFyKSAoKF9fY291bnQgLSAxNikgKiA4KSk7CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwoJICByZXR1cm4gKF9fbTEyOGkpIHZlY19zcm8gKChfX3YxNnF1KSBfX0EsIF9fc2hpZnQpOwojZWxzZQoJICByZXR1cm4gKF9fbTEyOGkpIHZlY19zbG8gKChfX3YxNnF1KSBfX0EsIF9fc2hpZnQpOwojZW5kaWYKCX0KICAgIH0KICBlbHNlCiAgICB7CiAgICAgIGNvbnN0IF9fdjE2cXUgX19zaGlmdEEgPQoJdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGNoYXIpICgoMTYgLSBfX2NvdW50KSAqIDgpKTsKICAgICAgY29uc3QgX192MTZxdSBfX3NoaWZ0QiA9IHZlY19zcGxhdHMgKCh1bnNpZ25lZCBjaGFyKSAoX19jb3VudCAqIDgpKTsKI2lmZGVmIF9fTElUVExFX0VORElBTl9fCiAgICAgIF9fQSA9IChfX20xMjhpKSB2ZWNfc2xvICgoX192MTZxdSkgX19BLCBfX3NoaWZ0QSk7CiAgICAgIF9fQiA9IChfX20xMjhpKSB2ZWNfc3JvICgoX192MTZxdSkgX19CLCBfX3NoaWZ0Qik7CiNlbHNlCiAgICAgIF9fQSA9IChfX20xMjhpKSB2ZWNfc3JvICgoX192MTZxdSkgX19BLCBfX3NoaWZ0QSk7CiAgICAgIF9fQiA9IChfX20xMjhpKSB2ZWNfc2xvICgoX192MTZxdSkgX19CLCBfX3NoaWZ0Qik7CiNlbmRpZgogICAgICByZXR1cm4gKF9fbTEyOGkpIHZlY19vciAoKF9fdjE2cXUpIF9fQSwgKF9fdjE2cXUpIF9fQik7CiAgICB9Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2FsaWducl9waTggKF9fbTY0IF9fQSwgX19tNjQgX19CLCB1bnNpZ25lZCBpbnQgX19jb3VudCkKewogIGlmIChfX2NvdW50IDwgMTYpCiAgICB7CiAgICAgIF9fdjJkdSBfX0MgPSB7IF9fQiwgX19BIH07CiNpZmRlZiBfX0xJVFRMRV9FTkRJQU5fXwogICAgICBjb25zdCBfX3Y0c3UgX19zaGlmdCA9IHsgX19jb3VudCA8PCAzLCAwLCAwLCAwIH07CiAgICAgIF9fQyA9IChfX3YyZHUpIHZlY19zcm8gKChfX3YxNnF1KSBfX0MsIChfX3YxNnF1KSBfX3NoaWZ0KTsKI2Vsc2UKICAgICAgY29uc3QgX192NHN1IF9fc2hpZnQgPSB7IDAsIDAsIDAsIF9fY291bnQgPDwgMyB9OwogICAgICBfX0MgPSAoX192MmR1KSB2ZWNfc2xvICgoX192MTZxdSkgX19DLCAoX192MTZxdSkgX19zaGlmdCk7CiNlbmRpZgogICAgICByZXR1cm4gKF9fbTY0KSBfX0NbMF07CiAgICB9CiAgZWxzZQogICAgewogICAgICBjb25zdCBfX202NCBfX3plcm8gPSB7IDAgfTsKICAgICAgcmV0dXJuIF9femVybzsKICAgIH0KfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgMTYsIDE3LCAyMCwgMjEsIDI0LCAyNSwgMjgsIDI5IH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUsIDE4LCAxOSwgMjIsIDIzLCAyNiwgMjcsIDMwLCAzMSB9OwogIF9fdjhoaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUCk7CiAgX192OGhpIF9fRCA9IHZlY19wZXJtICgoX192OGhpKSBfX0EsIChfX3Y4aGkpIF9fQiwgX19RKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGQgKF9fQywgX19EKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSwgMTYsIDE3LCAxOCwgMTksIDI0LCAyNSwgMjYsIDI3IH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgNCwgIDUsICA2LCAgNywgMTIsIDEzLCAxNCwgMTUsIDIwLCAyMSwgMjIsIDIzLCAyOCwgMjksIDMwLCAzMSB9OwogIF9fdjRzaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjRzaSkgX19BLCAoX192NHNpKSBfX0IsIF9fUCk7CiAgX192NHNpIF9fRCA9IHZlY19wZXJtICgoX192NHNpKSBfX0EsIChfX3Y0c2kpIF9fQiwgX19RKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGQgKF9fQywgX19EKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faGFkZF9waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIF9fdjhoaSBfX0MgPSAoX192OGhpKSAoX192MmR1KSB7IF9fQSwgX19CIH07CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMyB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUgfTsKICBfX3Y4aGkgX19EID0gdmVjX3Blcm0gKF9fQywgX19DLCBfX1EpOwogIF9fQyA9IHZlY19wZXJtIChfX0MsIF9fQywgX19QKTsKICBfX0MgPSB2ZWNfYWRkIChfX0MsIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIF9fQylbMV07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hhZGRfcGkzMiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3Y0c2kgX19DID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0EsIF9fQiB9OwogIGNvbnN0IF9fdjE2cXUgX19QID0KICAgIHsgIDAsICAxLCAgMiwgIDMsICA4LCAgOSwgMTAsIDExLCAgMCwgIDEsICAyLCAgMywgIDgsICA5LCAxMCwgMTEgfTsKICBjb25zdCBfX3YxNnF1IF9fUSA9CiAgICB7ICA0LCAgNSwgIDYsICA3LCAxMiwgMTMsIDE0LCAxNSwgIDQsICA1LCAgNiwgIDcsIDEyLCAxMywgMTQsIDE1IH07CiAgX192NHNpIF9fRCA9IHZlY19wZXJtIChfX0MsIF9fQywgX19RKTsKICBfX0MgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUCk7CiAgX19DID0gdmVjX2FkZCAoX19DLCBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSBfX0MpWzFdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hhZGRzX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBfX3Y0c2kgX19DID0geyAwIH0sIF9fRCA9IHsgMCB9OwogIF9fQyA9IHZlY19zdW00cyAoKF9fdjhoaSkgX19BLCBfX0MpOwogIF9fRCA9IHZlY19zdW00cyAoKF9fdjhoaSkgX19CLCBfX0QpOwogIF9fQyA9IChfX3Y0c2kpIHZlY19wYWNrcyAoX19DLCBfX0QpOwogIHJldHVybiAoX19tMTI4aSkgX19DOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oYWRkc19waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjRzaSBfX3plcm8gPSB7IDAgfTsKICBfX3Y4aGkgX19DID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQiB9OwogIF9fdjRzaSBfX0QgPSB2ZWNfc3VtNHMgKF9fQywgX196ZXJvKTsKICBfX0MgPSB2ZWNfcGFja3MgKF9fRCwgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgX19DKVsxXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3ViX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgMTYsIDE3LCAyMCwgMjEsIDI0LCAyNSwgMjgsIDI5IH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUsIDE4LCAxOSwgMjIsIDIzLCAyNiwgMjcsIDMwLCAzMSB9OwogIF9fdjhoaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUCk7CiAgX192OGhpIF9fRCA9IHZlY19wZXJtICgoX192OGhpKSBfX0EsIChfX3Y4aGkpIF9fQiwgX19RKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zdWIgKF9fQywgX19EKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9oc3ViX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSwgMTYsIDE3LCAxOCwgMTksIDI0LCAyNSwgMjYsIDI3IH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgNCwgIDUsICA2LCAgNywgMTIsIDEzLCAxNCwgMTUsIDIwLCAyMSwgMjIsIDIzLCAyOCwgMjksIDMwLCAzMSB9OwogIF9fdjRzaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjRzaSkgX19BLCAoX192NHNpKSBfX0IsIF9fUCk7CiAgX192NHNpIF9fRCA9IHZlY19wZXJtICgoX192NHNpKSBfX0EsIChfX3Y0c2kpIF9fQiwgX19RKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zdWIgKF9fQywgX19EKTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1faHN1Yl9waTE2IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjE2cXUgX19QID0KICAgIHsgIDAsICAxLCAgNCwgIDUsICA4LCAgOSwgMTIsIDEzLCAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMgfTsKICBjb25zdCBfX3YxNnF1IF9fUSA9CiAgICB7ICAyLCAgMywgIDYsICA3LCAxMCwgMTEsIDE0LCAxNSwgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1IH07CiAgX192OGhpIF9fQyA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19BLCBfX0IgfTsKICBfX3Y4aGkgX19EID0gdmVjX3Blcm0gKF9fQywgX19DLCBfX1EpOwogIF9fQyA9IHZlY19wZXJtIChfX0MsIF9fQywgX19QKTsKICBfX0MgPSB2ZWNfc3ViIChfX0MsIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIF9fQylbMV07Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJfcGkzMiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDIsICAzLCAgOCwgIDksIDEwLCAxMSwgIDAsICAxLCAgMiwgIDMsICA4LCAgOSwgMTAsIDExIH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgNCwgIDUsICA2LCAgNywgMTIsIDEzLCAxNCwgMTUsICA0LCAgNSwgIDYsICA3LCAxMiwgMTMsIDE0LCAxNSB9OwogIF9fdjRzaSBfX0MgPSAoX192NHNpKSAoX192MmR1KSB7IF9fQSwgX19CIH07CiAgX192NHNpIF9fRCA9IHZlY19wZXJtIChfX0MsIF9fQywgX19RKTsKICBfX0MgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUCk7CiAgX19DID0gdmVjX3N1YiAoX19DLCBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSBfX0MpWzFdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJzX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3YxNnF1IF9fUCA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgMTYsIDE3LCAyMCwgMjEsIDI0LCAyNSwgMjgsIDI5IH07CiAgY29uc3QgX192MTZxdSBfX1EgPQogICAgeyAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUsIDE4LCAxOSwgMjIsIDIzLCAyNiwgMjcsIDMwLCAzMSB9OwogIF9fdjhoaSBfX0MgPSB2ZWNfcGVybSAoKF9fdjhoaSkgX19BLCAoX192OGhpKSBfX0IsIF9fUCk7CiAgX192OGhpIF9fRCA9IHZlY19wZXJtICgoX192OGhpKSBfX0EsIChfX3Y4aGkpIF9fQiwgX19RKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zdWJzIChfX0MsIF9fRCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX2hzdWJzX3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgY29uc3QgX192MTZxdSBfX1AgPQogICAgeyAgMCwgIDEsICA0LCAgNSwgIDgsICA5LCAxMiwgMTMsICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMyB9OwogIGNvbnN0IF9fdjE2cXUgX19RID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUgfTsKICBfX3Y4aGkgX19DID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQiB9OwogIF9fdjhoaSBfX0QgPSB2ZWNfcGVybSAoX19DLCBfX0MsIF9fUCk7CiAgX192OGhpIF9fRSA9IHZlY19wZXJtIChfX0MsIF9fQywgX19RKTsKICBfX0MgPSB2ZWNfc3VicyAoX19ELCBfX0UpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSBfX0MpWzFdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVfZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxaSBfX3plcm8gPSB7IDAgfTsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX3NlbGVjdCA9IHZlY19jbXBsdCAoKF9fdjE2cWkpIF9fQiwgX196ZXJvKTsKICBfX3YxNnFpIF9fQyA9IHZlY19wZXJtICgoX192MTZxaSkgX19BLCAoX192MTZxaSkgX19BLCAoX192MTZxdSkgX19CKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19zZWwgKF9fQywgX196ZXJvLCBfX3NlbGVjdCk7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NodWZmbGVfcGk4IChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjE2cWkgX196ZXJvID0geyAwIH07CiAgX192MTZxaSBfX0MgPSAoX192MTZxaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fdjE2cWkgX19EID0gKF9fdjE2cWkpIChfX3YyZHUpIHsgX19CLCBfX0IgfTsKICBfX3ZlY3RvciBfX2Jvb2wgY2hhciBfX3NlbGVjdCA9IHZlY19jbXBsdCAoKF9fdjE2cWkpIF9fRCwgX196ZXJvKTsKICBfX0MgPSB2ZWNfcGVybSAoKF9fdjE2cWkpIF9fQywgKF9fdjE2cWkpIF9fQywgKF9fdjE2cXUpIF9fRCk7CiAgX19DID0gdmVjX3NlbCAoX19DLCBfX3plcm8sIF9fc2VsZWN0KTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgKF9fQykpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tMTI4aQpfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX3NpZ25fZXBpOCAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgY29uc3QgX192MTZxaSBfX3plcm8gPSB7IDAgfTsKICBfX3YxNnFpIF9fc2VsZWN0bmVnID0gKF9fdjE2cWkpIHZlY19jbXBsdCAoKF9fdjE2cWkpIF9fQiwgX196ZXJvKTsKICBfX3YxNnFpIF9fc2VsZWN0cG9zID0KICAgIChfX3YxNnFpKSB2ZWNfbmVnICgoX192MTZxaSkgdmVjX2NtcGd0ICgoX192MTZxaSkgX19CLCBfX3plcm8pKTsKICBfX3YxNnFpIF9fY29udiA9IHZlY19hZGQgKF9fc2VsZWN0bmVnLCBfX3NlbGVjdHBvcyk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfbXVsICgoX192MTZxaSkgX19BLCAoX192MTZxaSkgX19jb252KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaWduX2VwaTE2IChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3Y4aGkgX196ZXJvID0geyAwIH07CiAgX192OGhpIF9fc2VsZWN0bmVnID0gKF9fdjhoaSkgdmVjX2NtcGx0ICgoX192OGhpKSBfX0IsIF9femVybyk7CiAgX192OGhpIF9fc2VsZWN0cG9zID0KICAgIChfX3Y4aGkpIHZlY19uZWcgKChfX3Y4aGkpIHZlY19jbXBndCAoKF9fdjhoaSkgX19CLCBfX3plcm8pKTsKICBfX3Y4aGkgX19jb252ID0gdmVjX2FkZCAoX19zZWxlY3RuZWcsIF9fc2VsZWN0cG9zKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tdWwgKChfX3Y4aGkpIF9fQSwgKF9fdjhoaSkgX19jb252KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaWduX2VwaTMyIChfX20xMjhpIF9fQSwgX19tMTI4aSBfX0IpCnsKICBjb25zdCBfX3Y0c2kgX196ZXJvID0geyAwIH07CiAgX192NHNpIF9fc2VsZWN0bmVnID0gKF9fdjRzaSkgdmVjX2NtcGx0ICgoX192NHNpKSBfX0IsIF9femVybyk7CiAgX192NHNpIF9fc2VsZWN0cG9zID0KICAgIChfX3Y0c2kpIHZlY19uZWcgKChfX3Y0c2kpIHZlY19jbXBndCAoKF9fdjRzaSkgX19CLCBfX3plcm8pKTsKICBfX3Y0c2kgX19jb252ID0gdmVjX2FkZCAoX19zZWxlY3RuZWcsIF9fc2VsZWN0cG9zKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19tdWwgKChfX3Y0c2kpIF9fQSwgKF9fdjRzaSkgX19jb252KTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2lnbl9waTggKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgY29uc3QgX192MTZxaSBfX3plcm8gPSB7IDAgfTsKICBfX3YxNnFpIF9fQyA9IChfX3YxNnFpKSAoX192MmR1KSB7IF9fQSwgX19BIH07CiAgX192MTZxaSBfX0QgPSAoX192MTZxaSkgKF9fdjJkdSkgeyBfX0IsIF9fQiB9OwogIF9fQyA9IChfX3YxNnFpKSBfbW1fc2lnbl9lcGk4ICgoX19tMTI4aSkgX19DLCAoX19tMTI4aSkgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgKF9fQykpWzBdOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9zaWduX3BpMTYgKF9fbTY0IF9fQSwgX19tNjQgX19CKQp7CiAgY29uc3QgX192OGhpIF9femVybyA9IHsgMCB9OwogIF9fdjhoaSBfX0MgPSAoX192OGhpKSAoX192MmR1KSB7IF9fQSwgX19BIH07CiAgX192OGhpIF9fRCA9IChfX3Y4aGkpIChfX3YyZHUpIHsgX19CLCBfX0IgfTsKICBfX0MgPSAoX192OGhpKSBfbW1fc2lnbl9lcGkxNiAoKF9fbTEyOGkpIF9fQywgKF9fbTEyOGkpIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIChfX0MpKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTY0Cl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fc2lnbl9waTMyIChfX202NCBfX0EsIF9fbTY0IF9fQikKewogIGNvbnN0IF9fdjRzaSBfX3plcm8gPSB7IDAgfTsKICBfX3Y0c2kgX19DID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fdjRzaSBfX0QgPSAoX192NHNpKSAoX192MmR1KSB7IF9fQiwgX19CIH07CiAgX19DID0gKF9fdjRzaSkgX21tX3NpZ25fZXBpMzIgKChfX20xMjhpKSBfX0MsIChfX20xMjhpKSBfX0QpOwogIHJldHVybiAoX19tNjQpICgoX192MmR1KSAoX19DKSlbMF07Cn0KCmV4dGVybiBfX2lubGluZSBfX20xMjhpCl9fYXR0cmlidXRlX18oKF9fZ251X2lubGluZV9fLCBfX2Fsd2F5c19pbmxpbmVfXywgX19hcnRpZmljaWFsX18pKQpfbW1fbWFkZHVic19lcGkxNiAoX19tMTI4aSBfX0EsIF9fbTEyOGkgX19CKQp7CiAgX192OGhpIF9fdW5zaWduZWQgPSB2ZWNfc3BsYXRzICgoc2lnbmVkIHNob3J0KSAweDAwZmYpOwogIF9fdjhoaSBfX0MgPSB2ZWNfYW5kICh2ZWNfdW5wYWNraCAoKF9fdjE2cWkpIF9fQSksIF9fdW5zaWduZWQpOwogIF9fdjhoaSBfX0QgPSB2ZWNfYW5kICh2ZWNfdW5wYWNrbCAoKF9fdjE2cWkpIF9fQSksIF9fdW5zaWduZWQpOwogIF9fdjhoaSBfX0UgPSB2ZWNfdW5wYWNraCAoKF9fdjE2cWkpIF9fQik7CiAgX192OGhpIF9fRiA9IHZlY191bnBhY2tsICgoX192MTZxaSkgX19CKTsKICBfX0MgPSB2ZWNfbXVsIChfX0MsIF9fRSk7CiAgX19EID0gdmVjX211bCAoX19ELCBfX0YpOwogIGNvbnN0IF9fdjE2cXUgX19vZGRzICA9CiAgICB7ICAwLCAgMSwgIDQsICA1LCAgOCwgIDksIDEyLCAxMywgMTYsIDE3LCAyMCwgMjEsIDI0LCAyNSwgMjgsIDI5IH07CiAgY29uc3QgX192MTZxdSBfX2V2ZW5zID0KICAgIHsgIDIsICAzLCAgNiwgIDcsIDEwLCAxMSwgMTQsIDE1LCAxOCwgMTksIDIyLCAyMywgMjYsIDI3LCAzMCwgMzEgfTsKICBfX0UgPSB2ZWNfcGVybSAoX19DLCBfX0QsIF9fb2Rkcyk7CiAgX19GID0gdmVjX3Blcm0gKF9fQywgX19ELCBfX2V2ZW5zKTsKICByZXR1cm4gKF9fbTEyOGkpIHZlY19hZGRzIChfX0UsIF9fRik7Cn0KCmV4dGVybiBfX2lubGluZSBfX202NApfX2F0dHJpYnV0ZV9fKChfX2dudV9pbmxpbmVfXywgX19hbHdheXNfaW5saW5lX18sIF9fYXJ0aWZpY2lhbF9fKSkKX21tX21hZGR1YnNfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3Y4aGkgX19DID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fQyA9IHZlY191bnBhY2tsICgoX192MTZxaSkgX19DKTsKICBjb25zdCBfX3Y4aGkgX191bnNpZ25lZCA9IHZlY19zcGxhdHMgKChzaWduZWQgc2hvcnQpIDB4MDBmZik7CiAgX19DID0gdmVjX2FuZCAoX19DLCBfX3Vuc2lnbmVkKTsKICBfX3Y4aGkgX19EID0gKF9fdjhoaSkgKF9fdjJkdSkgeyBfX0IsIF9fQiB9OwogIF9fRCA9IHZlY191bnBhY2tsICgoX192MTZxaSkgX19EKTsKICBfX0QgPSB2ZWNfbXVsIChfX0MsIF9fRCk7CiAgY29uc3QgX192MTZxdSBfX29kZHMgID0KICAgIHsgIDAsICAxLCAgNCwgIDUsICA4LCAgOSwgMTIsIDEzLCAxNiwgMTcsIDIwLCAyMSwgMjQsIDI1LCAyOCwgMjkgfTsKICBjb25zdCBfX3YxNnF1IF9fZXZlbnMgPQogICAgeyAgMiwgIDMsICA2LCAgNywgMTAsIDExLCAxNCwgMTUsIDE4LCAxOSwgMjIsIDIzLCAyNiwgMjcsIDMwLCAzMSB9OwogIF9fQyA9IHZlY19wZXJtIChfX0QsIF9fRCwgX19vZGRzKTsKICBfX0QgPSB2ZWNfcGVybSAoX19ELCBfX0QsIF9fZXZlbnMpOwogIF9fQyA9IHZlY19hZGRzIChfX0MsIF9fRCk7CiAgcmV0dXJuIChfX202NCkgKChfX3YyZHUpIChfX0MpKVswXTsKfQoKZXh0ZXJuIF9faW5saW5lIF9fbTEyOGkKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxocnNfZXBpMTYgKF9fbTEyOGkgX19BLCBfX20xMjhpIF9fQikKewogIF9fdjRzaSBfX0MgPSB2ZWNfdW5wYWNraCAoKF9fdjhoaSkgX19BKTsKICBfX3Y0c2kgX19EID0gdmVjX3VucGFja2ggKChfX3Y4aGkpIF9fQik7CiAgX19DID0gdmVjX211bCAoX19DLCBfX0QpOwogIF9fRCA9IHZlY191bnBhY2tsICgoX192OGhpKSBfX0EpOwogIF9fdjRzaSBfX0UgPSB2ZWNfdW5wYWNrbCAoKF9fdjhoaSkgX19CKTsKICBfX0QgPSB2ZWNfbXVsIChfX0QsIF9fRSk7CiAgY29uc3QgX192NHN1IF9fc2hpZnQgPSB2ZWNfc3BsYXRzICgodW5zaWduZWQgaW50KSAxNCk7CiAgX19DID0gdmVjX3NyIChfX0MsIF9fc2hpZnQpOwogIF9fRCA9IHZlY19zciAoX19ELCBfX3NoaWZ0KTsKICBjb25zdCBfX3Y0c2kgX19vbmVzID0gdmVjX3NwbGF0cyAoKHNpZ25lZCBpbnQpIDEpOwogIF9fQyA9IHZlY19hZGQgKF9fQywgX19vbmVzKTsKICBfX0MgPSB2ZWNfc3IgKF9fQywgKF9fdjRzdSkgX19vbmVzKTsKICBfX0QgPSB2ZWNfYWRkIChfX0QsIF9fb25lcyk7CiAgX19EID0gdmVjX3NyIChfX0QsIChfX3Y0c3UpIF9fb25lcyk7CiAgcmV0dXJuIChfX20xMjhpKSB2ZWNfcGFjayAoX19DLCBfX0QpOwp9CgpleHRlcm4gX19pbmxpbmUgX19tNjQKX19hdHRyaWJ1dGVfXygoX19nbnVfaW5saW5lX18sIF9fYWx3YXlzX2lubGluZV9fLCBfX2FydGlmaWNpYWxfXykpCl9tbV9tdWxocnNfcGkxNiAoX19tNjQgX19BLCBfX202NCBfX0IpCnsKICBfX3Y0c2kgX19DID0gKF9fdjRzaSkgKF9fdjJkdSkgeyBfX0EsIF9fQSB9OwogIF9fQyA9IHZlY191bnBhY2toICgoX192OGhpKSBfX0MpOwogIF9fdjRzaSBfX0QgPSAoX192NHNpKSAoX192MmR1KSB7IF9fQiwgX19CIH07CiAgX19EID0gdmVjX3VucGFja2ggKChfX3Y4aGkpIF9fRCk7CiAgX19DID0gdmVjX211bCAoX19DLCBfX0QpOwogIGNvbnN0IF9fdjRzdSBfX3NoaWZ0ID0gdmVjX3NwbGF0cyAoKHVuc2lnbmVkIGludCkgMTQpOwogIF9fQyA9IHZlY19zciAoX19DLCBfX3NoaWZ0KTsKICBjb25zdCBfX3Y0c2kgX19vbmVzID0gdmVjX3NwbGF0cyAoKHNpZ25lZCBpbnQpIDEpOwogIF9fQyA9IHZlY19hZGQgKF9fQywgX19vbmVzKTsKICBfX0MgPSB2ZWNfc3IgKF9fQywgKF9fdjRzdSkgX19vbmVzKTsKICBfX3Y4aGkgX19FID0gdmVjX3BhY2sgKF9fQywgX19EKTsKICByZXR1cm4gKF9fbTY0KSAoKF9fdjJkdSkgKF9fRSkpWzBdOwp9CgojZWxzZQojaW5jbHVkZV9uZXh0IDx0bW1pbnRyaW4uaD4KI2VuZGlmIC8qIGRlZmluZWQoX19saW51eF9fKSAmJiBkZWZpbmVkKF9fcHBjNjRfXykgKi8KCiNlbmRpZiAvKiBUTU1JTlRSSU5fSF8gKi8KAC8vPT09LS0gYWxsb2NhdG9yX2ludGVyZmFjZS5oIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCi8vIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgovLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCi8vCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCi8vCi8vIFB1YmxpYyBpbnRlcmZhY2UgaGVhZGVyIGZvciBhbGxvY2F0b3IgdXNlZCBpbiBzYW5pdGl6ZXJzIChBU2FuL1RTYW4vTVNhbikuCi8vPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT09PS8vCiNpZm5kZWYgU0FOSVRJWkVSX0FMTE9DQVRPUl9JTlRFUkZBQ0VfSAojZGVmaW5lIFNBTklUSVpFUl9BTExPQ0FUT1JfSU5URVJGQUNFX0gKCiNpbmNsdWRlIDxzdGRkZWYuaD4KCiNpZmRlZiBfX2NwbHVzcGx1cwpleHRlcm4gIkMiIHsKI2VuZGlmCiAgLyogUmV0dXJucyB0aGUgZXN0aW1hdGVkIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYmUgcmVzZXJ2ZWQgYnkgYWxsb2NhdG9yCiAgICAgZm9yIHJlcXVlc3Qgb2YgInNpemUiIGJ5dGVzLiBJZiBhbGxvY2F0b3IgY2FuJ3QgYWxsb2NhdGUgdGhhdCBtdWNoCiAgICAgbWVtb3J5LCByZXR1cm5zIHRoZSBtYXhpbWFsIHBvc3NpYmxlIGFsbG9jYXRpb24gc2l6ZSwgb3RoZXJ3aXNlIHJldHVybnMKICAgICAic2l6ZSIuICovCiAgc2l6ZV90IF9fc2FuaXRpemVyX2dldF9lc3RpbWF0ZWRfYWxsb2NhdGVkX3NpemUoc2l6ZV90IHNpemUpOwoKICAvKiBSZXR1cm5zIHRydWUgaWYgcCB3YXMgcmV0dXJuZWQgYnkgdGhlIGFsbG9jYXRvciBhbmQKICAgICBpcyBub3QgeWV0IGZyZWVkLiAqLwogIGludCBfX3Nhbml0aXplcl9nZXRfb3duZXJzaGlwKGNvbnN0IHZvbGF0aWxlIHZvaWQgKnApOwoKICAvKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVzZXJ2ZWQgZm9yIHRoZSBwb2ludGVyIHAuCiAgICAgUmVxdWlyZXMgKGdldF9vd25lcnNoaXAocCkgPT0gdHJ1ZSkgb3IgKHAgPT0gMCkuICovCiAgc2l6ZV90IF9fc2FuaXRpemVyX2dldF9hbGxvY2F0ZWRfc2l6ZShjb25zdCB2b2xhdGlsZSB2b2lkICpwKTsKCiAgLyogTnVtYmVyIG9mIGJ5dGVzLCBhbGxvY2F0ZWQgYW5kIG5vdCB5ZXQgZnJlZWQgYnkgdGhlIGFwcGxpY2F0aW9uLiAqLwogIHNpemVfdCBfX3Nhbml0aXplcl9nZXRfY3VycmVudF9hbGxvY2F0ZWRfYnl0ZXModm9pZCk7CgogIC8qIE51bWJlciBvZiBieXRlcywgbW1hcGVkIGJ5IHRoZSBhbGxvY2F0b3IgdG8gZnVsZmlsbCBhbGxvY2F0aW9uIHJlcXVlc3RzLgogICAgIEdlbmVyYWxseSwgZm9yIHJlcXVlc3Qgb2YgWCBieXRlcywgYWxsb2NhdG9yIGNhbiByZXNlcnZlIGFuZCBhZGQgdG8gZnJlZQogICAgIGxpc3RzIGEgbGFyZ2UgbnVtYmVyIG9mIGNodW5rcyBvZiBzaXplIFggdG8gdXNlIHRoZW0gZm9yIGZ1dHVyZSByZXF1ZXN0cy4KICAgICBBbGwgdGhlc2UgY2h1bmtzIGNvdW50IHRvd2FyZCB0aGUgaGVhcCBzaXplLiBDdXJyZW50bHksIGFsbG9jYXRvciBuZXZlcgogICAgIHJlbGVhc2VzIG1lbW9yeSB0byBPUyAoaW5zdGVhZCwgaXQganVzdCBwdXRzIGZyZWVkIGNodW5rcyB0byBmcmVlCiAgICAgbGlzdHMpLiAqLwogIHNpemVfdCBfX3Nhbml0aXplcl9nZXRfaGVhcF9zaXplKHZvaWQpOwoKICAvKiBOdW1iZXIgb2YgYnl0ZXMsIG1tYXBlZCBieSB0aGUgYWxsb2NhdG9yLCB3aGljaCBjYW4gYmUgdXNlZCB0byBmdWxmaWxsCiAgICAgYWxsb2NhdGlvbiByZXF1ZXN0cy4gV2hlbiBhIHVzZXIgcHJvZ3JhbSBmcmVlcyBtZW1vcnkgY2h1bmssIGl0IGNhbiBmaXJzdAogICAgIGZhbGwgaW50byBxdWFyYW50aW5lIGFuZCB3aWxsIGNvdW50IHRvd2FyZCBfX3Nhbml0aXplcl9nZXRfZnJlZV9ieXRlcygpCiAgICAgbGF0ZXIuICovCiAgc2l6ZV90IF9fc2FuaXRpemVyX2dldF9mcmVlX2J5dGVzKHZvaWQpOwoKICAvKiBOdW1iZXIgb2YgYnl0ZXMgaW4gdW5tYXBwZWQgcGFnZXMsIHRoYXQgYXJlIHJlbGVhc2VkIHRvIE9TLiBDdXJyZW50bHksCiAgICAgYWx3YXlzIHJldHVybnMgMC4gKi8KICBzaXplX3QgX19zYW5pdGl6ZXJfZ2V0X3VubWFwcGVkX2J5dGVzKHZvaWQpOwoKICAvKiBNYWxsb2MgaG9va3MgdGhhdCBtYXkgYmUgb3B0aW9uYWxseSBwcm92aWRlZCBieSB1c2VyLgogICAgIF9fc2FuaXRpemVyX21hbGxvY19ob29rKHB0ciwgc2l6ZSkgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGFmdGVyCiAgICAgICBhbGxvY2F0aW9uIG9mICJzaXplIiBieXRlcywgd2hpY2ggcmV0dXJuZWQgInB0ciIuCiAgICAgX19zYW5pdGl6ZXJfZnJlZV9ob29rKHB0cikgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGJlZm9yZQogICAgICAgZGVhbGxvY2F0aW9uIG9mICJwdHIiLiAqLwogIHZvaWQgX19zYW5pdGl6ZXJfbWFsbG9jX2hvb2soY29uc3Qgdm9sYXRpbGUgdm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSk7CiAgdm9pZCBfX3Nhbml0aXplcl9mcmVlX2hvb2soY29uc3Qgdm9sYXRpbGUgdm9pZCAqcHRyKTsKCiAgLyogSW5zdGFsbHMgYSBwYWlyIG9mIGhvb2tzIGZvciBtYWxsb2MvZnJlZS4KICAgICBTZXZlcmFsIChjdXJyZW50bHksIDUpIGhvb2sgcGFpcnMgbWF5IGJlIGluc3RhbGxlZCwgdGhleSBhcmUgZXhlY3V0ZWQKICAgICBpbiB0aGUgb3JkZXIgdGhleSB3ZXJlIGluc3RhbGxlZCBhbmQgYWZ0ZXIgY2FsbGluZwogICAgIF9fc2FuaXRpemVyX21hbGxvY19ob29rL19fc2FuaXRpemVyX2ZyZWVfaG9vay4KICAgICBVbmxpa2UgX19zYW5pdGl6ZXJfbWFsbG9jX2hvb2svX19zYW5pdGl6ZXJfZnJlZV9ob29rIHRoZXNlIGhvb2tzIGNhbiBiZQogICAgIGNoYWluZWQgYW5kIGRvIG5vdCByZWx5IG9uIHdlYWsgc3ltYm9scyB3b3JraW5nIG9uIHRoZSBwbGF0Zm9ybSwgYnV0CiAgICAgcmVxdWlyZSBfX3Nhbml0aXplcl9pbnN0YWxsX21hbGxvY19hbmRfZnJlZV9ob29rcyB0byBiZSBjYWxsZWQgYXQgc3RhcnR1cAogICAgIGFuZCB0aHVzIHdpbGwgbm90IGJlIGNhbGxlZCBvbiBtYWxsb2MvZnJlZSB2ZXJ5IGVhcmx5IGluIHRoZSBwcm9jZXNzLgogICAgIFJldHVybnMgdGhlIG51bWJlciBvZiBob29rcyBjdXJyZW50bHkgaW5zdGFsbGVkIG9yIDAgb24gZmFpbHVyZS4KICAgICBOb3QgdGhyZWFkLXNhZmUsIHNob3VsZCBiZSBjYWxsZWQgaW4gdGhlIG1haW4gdGhyZWFkIGJlZm9yZSBzdGFydGluZwogICAgIG90aGVyIHRocmVhZHMuCiAgKi8KICBpbnQgX19zYW5pdGl6ZXJfaW5zdGFsbF9tYWxsb2NfYW5kX2ZyZWVfaG9va3MoCiAgICAgIHZvaWQgKCptYWxsb2NfaG9vaykoY29uc3Qgdm9sYXRpbGUgdm9pZCAqLCBzaXplX3QpLAogICAgICB2b2lkICgqZnJlZV9ob29rKShjb25zdCB2b2xhdGlsZSB2b2lkICopKTsKCiAgLyogRHJhaW5zIGFsbG9jYXRvciBxdWFyYW50aW5lcyAoY2FsbGluZyB0aHJlYWQncyBhbmQgZ2xvYmFsIG9uZXMpLCByZXR1cm5zCiAgICAgZnJlZWQgbWVtb3J5IGJhY2sgdG8gT1MgYW5kIHJlbGVhc2VzIG90aGVyIG5vbi1lc3NlbnRpYWwgaW50ZXJuYWwgYWxsb2NhdG9yCiAgICAgcmVzb3VyY2VzIGluIGF0dGVtcHQgdG8gcmVkdWNlIHByb2Nlc3MgUlNTLgogICAgIEN1cnJlbnRseSBhdmFpbGFibGUgd2l0aCBBU2FuIG9ubHkuCiAgKi8KICB2b2lkIF9fc2FuaXRpemVyX3B1cmdlX2FsbG9jYXRvcih2b2lkKTsKI2lmZGVmIF9fY3BsdXNwbHVzCn0gIC8vIGV4dGVybiAiQyIKI2VuZGlmCgojZW5kaWYKAHNhbml0aXplci9hc2FuX2ludGVyZmFjZS5oAHNhbml0aXplci90c2FuX2ludGVyZmFjZS5oAHNhbml0aXplci90c2FuX2ludGVyZmFjZV9hdG9taWMuaABDb3VsZG4ndCBzZWVrIAA6AGV4dGVybmFsL3JlZ2V4LXJlMi9yZTIvcGFyc2UuY2MAIGluIFByb2c6OkZhbm91dCgpAENhbm5vdCB1c2UgU2VhcmNoT25lUGFzcyBmb3IgdW5hbmNob3JlZCBtYXRjaGVzLgBSZWdleHAgbm90IGRlc3Ryb3llZC4AQ2FzZSBub3QgaGFuZGxlZCBpbiBDb21wdXRlU2ltcGxlOiAAQ29hbGVzY2VXYWxrZXI6OlNob3J0VmlzaXQgY2FsbGVkAEltcGVyaWFsX0FyYW1haWMATGwAUGF1X0Npbl9IYXUAc2lnYWx0c3RhY2soKSBmYWlsZWQgd2l0aCBlcnJubz0lZAAgICAgQCAuLi4gYW5kIGF0IGxlYXN0ICVkIG1vcmUgZnJhbWVzCgBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3Zkc29fc3VwcG9ydC5jYwBleHRlcm5hbC9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL2VsZl9tZW1faW1hZ2UuY2MAc3ltYm9sICYmIHZlcnNpb25fc3ltYm9sAGVtcHR5IGFyZW5hIGhhcyBub24tcGFnZS1hbGlnbmVkIGJsb2NrAERuAHB0AFtdAENoZWNrIHMgPD0ga01heEZsYXRMZW5ndGggZmFpbGVkOiAAU3RyaW5nIGNhbm5vdCBlbmQgd2l0aCBceABceCBjYW5ub3QgYmUgZm9sbG93ZWQgYnkgYSBub24taGV4IGRpZ2l0AE5vZGUoAGV4Y2VlZCBjYXBhY2l0eSAAIEAAJXMlcCAlcyAlcwByZXZpc2lvbi50eHQAb3Bwb3J0dW5pc3RpYyBlbnRyb3B5IGZpbGwgZmFpbGVkAEVWUF9BRUFEX0NUWF9zZWFsIGZvciBBRVMtMTI4LUdDTSBmYWlsZWQuCgBleHRlcm5hbC9ib3Jpbmdzc2wvc3JjL2NyeXB0by9maXBzbW9kdWxlL2VjL3AyNTYuYwBCSU8gcm91dGluZXMAb3V0L3Nvb25nLy5pbnRlcm1lZGlhdGVzL2V4dGVybmFsL2t5dGhlL2N4eF9leHRyYWN0b3IvbGludXhfZ2xpYmNfeDg2XzY0L2dlbi9wcm90by9reXRoZS9wcm90by9jb21tb24ucGIuY2MALS10YXJnZXQ9Lip8LVcobm8tKT8oZXJyb3I9KT9hbWJpZ3VvdXMtbWVtYmVyLXRlbXBsYXRlfC1XKG5vLSk/KGVycm9yPSk/YmluZC10by10ZW1wb3JhcnktY29weXwtVyhuby0pPyhlcnJvcj0pP2Jvb2wtY29udmVyc2lvbnN8LVcobm8tKT8oZXJyb3I9KT9jXCtcKzB4LXN0YXRpYy1ub25pbnRlZ3JhbC1pbml0fC1XKG5vLSk/KGVycm9yPSk/Y29uc3RhbnQtY29udmVyc2lvbnwtVyhuby0pPyhlcnJvcj0pP2NvbnN0YW50LWxvZ2ljYWwtb3BlcmFuZHwtVyhuby0pPyhlcnJvcj0pP2dudXwtVyhuby0pPyhlcnJvcj0pP2dudS1kZXNpZ25hdG9yfC1XKG5vLSk/KGVycm9yPSk/aW5pdGlhbGl6ZXItb3ZlcnJpZGVzfC1XKG5vLSk/KGVycm9yPSk/aW52YWxpZC1ub3JldHVybnwtVyhuby0pPyhlcnJvcj0pP2xvY2FsLXR5cGUtdGVtcGxhdGUtYXJnc3wtVyhuby0pPyhlcnJvcj0pP21pc21hdGNoZWQtdGFnc3wtVyhuby0pPyhlcnJvcj0pP251bGwtZGVyZWZlcmVuY2V8LVcobm8tKT8oZXJyb3I9KT9vdXQtb2YtbGluZS1kZWNsYXJhdGlvbnwtVyhuby0pPyhlcnJvcj0pP3JlYWxseS1kb250LXVzZS1jbGFuZy1kaWFnbm9zdGljc3wtVyhuby0pPyhlcnJvcj0pP3RhdXRvbG9naWNhbC1jb21wYXJlfC1XKG5vLSk/KGVycm9yPSk/dW5rbm93bi1hdHRyaWJ1dGVzfC1XKG5vLSk/KGVycm9yPSk/dW5uYW1lZC10eXBlLXRlbXBsYXRlLWFyZ3N8LVcobm8tKT8oZXJyb3I9KT90aHJlYWQtc2FmZXR5LS4qfC1YY2xhbmc9Lip8LVhjbGFuZy1vbmx5PS4qfC1mKG5vLSk/YXNzdW1lLXNhbmUtb3BlcmF0b3ItbmV3fC1mKG5vLSk/Y2FyZXQtZGlhZ25vc3RpY3N8LWYobm8tKT9jYXRjaC11bmRlZmluZWQtYmVoYXZpb3J8LWYobm8tKT9jb2xvci1kaWFnbm9zdGljc3wtZihuby0pP2RpYWdub3N0aWNzLWZpeGl0LWluZm98LWYobm8tKT9kaWFnbm9zdGljcy1wYXJzZWFibGUtZml4aXRzfC1mKG5vLSk/ZGlhZ25vc3RpY3MtcHJpbnQtc291cmNlLXJhbmdlLWluZm98LWYobm8tKT9kaWFnbm9zdGljcy1zaG93LWNhdGVnb3J5Lip8LWYobm8tKT9oZWlub3VzLWdudS1leHRlbnNpb25zfC1mKG5vLSk/bWFjcm8tYmFja3RyYWNlLWxpbWl0Lip8LWYobm8tKT9zYW5pdGl6ZS1hZGRyZXNzLXplcm8tYmFzZS1zaGFkb3d8LWYobm8tKT9zYW5pdGl6ZS1ibGFja2xpc3R8LWYobm8tKT9zYW5pdGl6ZS1tZW1vcnktdHJhY2stb3JpZ2luc3wtZihuby0pP3Nhbml0aXplLXJlY292ZXJ8LWYobm8tKT9zYW5pdGl6ZT0uKnwtZihuby0pP3Nob3ctb3ZlcmxvYWRzLip8LWYobm8tKT91c2UtaW5pdC1hcnJheXwtZihuby0pP3RlbXBsYXRlLWJhY2t0cmFjZS1saW1pdC4qfC1mcGx1Z2luPS4qfC1mcGx1Z2luLWFyZy0uKnwtZ2xpbmUtdGFibGVzLW9ubHkARXJyb3Igd3JpdGluZyBmaWxlZGF0YTogAENvdWxkbid0IGNvbmZpZ3VyZSB2bmFtZXMgZnJvbSAlcwoALXJlc291cmNlLWRpcgBVc2luZyByZWFsIHdvcmtpbmcgZGlyZWN0b3J5ICgAKSAAQ2hlY2sgZmFpbGVkOiAhY3VycmVudF9maWxlc18uZW1wdHkoKQBDaGVjayBmYWlsZWQ6IGxsdm06OnN5czo6cGF0aDo6aXNfYWJzb2x1dGUoZmlsZV9uYW1lKQBidWlsdGluAF9fY2xhbmdfY3VkYV9tYXRoX2ZvcndhcmRfZGVjbGFyZXMuaABfX2NsYW5nX2N1ZGFfcnVudGltZV93cmFwcGVyLmgAYWR4aW50cmluLmgALyo9PT0tLS0tIGFybV9iZjE2LmggLSBBUk0gQkYxNiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWZuZGVmIF9fQVJNX0JGMTZfSAojZGVmaW5lIF9fQVJNX0JGMTZfSAoKdHlwZWRlZiBfX2JmMTYgYmZsb2F0MTZfdDsKI2RlZmluZSBfX2FpIHN0YXRpYyBfX2lubGluZV9fIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXykpCgoKI3VuZGVmIF9fYWkKCiNlbmRpZgoAYXZ4NTEycGZpbnRyaW4uaAAvKj09PS0tLS0gYm1pMmludHJpbi5oIC0gQk1JMiBpbnRyaW5zaWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCgojaWYgIWRlZmluZWQgX19YODZJTlRSSU5fSCAmJiAhZGVmaW5lZCBfX0lNTUlOVFJJTl9ICiNlcnJvciAiTmV2ZXIgdXNlIDxibWkyaW50cmluLmg+IGRpcmVjdGx5OyBpbmNsdWRlIDx4ODZpbnRyaW4uaD4gaW5zdGVhZC4iCiNlbmRpZgoKI2lmbmRlZiBfX0JNSTJJTlRSSU5fSAojZGVmaW5lIF9fQk1JMklOVFJJTl9ICgovKiBEZWZpbmUgdGhlIGRlZmF1bHQgYXR0cmlidXRlcyBmb3IgdGhlIGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuICovCiNkZWZpbmUgX19ERUZBVUxUX0ZOX0FUVFJTIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgX190YXJnZXRfXygiYm1pMiIpKSkKCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX2J6aGlfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfYnpoaV9zaShfX1gsIF9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3BkZXBfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcGRlcF9zaShfX1gsIF9fWSk7Cn0KCnN0YXRpYyBfX2lubGluZV9fIHVuc2lnbmVkIGludCBfX0RFRkFVTFRfRk5fQVRUUlMKX3BleHRfdTMyKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1kpCnsKICByZXR1cm4gX19idWlsdGluX2lhMzJfcGV4dF9zaShfX1gsIF9fWSk7Cn0KCiNpZmRlZiAgX194ODZfNjRfXwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfYnpoaV91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9iemhpX2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfcGRlcF91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wZGVwX2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfcGV4dF91NjQodW5zaWduZWQgbG9uZyBsb25nIF9fWCwgdW5zaWduZWQgbG9uZyBsb25nIF9fWSkKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl9wZXh0X2RpKF9fWCwgX19ZKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgbG9uZyBsb25nIF9fREVGQVVMVF9GTl9BVFRSUwpfbXVseF91NjQgKHVuc2lnbmVkIGxvbmcgbG9uZyBfX1gsIHVuc2lnbmVkIGxvbmcgbG9uZyBfX1ksCgkgICB1bnNpZ25lZCBsb25nIGxvbmcgKl9fUCkKewogIHVuc2lnbmVkIF9faW50MTI4IF9fcmVzID0gKHVuc2lnbmVkIF9faW50MTI4KSBfX1ggKiBfX1k7CiAgKl9fUCA9ICh1bnNpZ25lZCBsb25nIGxvbmcpIChfX3JlcyA+PiA2NCk7CiAgcmV0dXJuICh1bnNpZ25lZCBsb25nIGxvbmcpIF9fcmVzOwp9CgojZWxzZSAvKiAhX194ODZfNjRfXyAqLwoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgaW50IF9fREVGQVVMVF9GTl9BVFRSUwpfbXVseF91MzIgKHVuc2lnbmVkIGludCBfX1gsIHVuc2lnbmVkIGludCBfX1ksIHVuc2lnbmVkIGludCAqX19QKQp7CiAgdW5zaWduZWQgbG9uZyBsb25nIF9fcmVzID0gKHVuc2lnbmVkIGxvbmcgbG9uZykgX19YICogX19ZOwogICpfX1AgPSAodW5zaWduZWQgaW50KSAoX19yZXMgPj4gMzIpOwogIHJldHVybiAodW5zaWduZWQgaW50KSBfX3JlczsKfQoKI2VuZGlmIC8qICFfX3g4Nl82NF9fICAqLwoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fQk1JMklOVFJJTl9IICovCgAvLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLwovLyBQYXJ0IG9mIHRoZSBMTFZNIFByb2plY3QsIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSB2Mi4wIHdpdGggTExWTSBFeGNlcHRpb25zLgovLyBTZWUgaHR0cHM6Ly9sbHZtLm9yZy9MSUNFTlNFLnR4dCBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbi4KLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjAgV0lUSCBMTFZNLWV4Y2VwdGlvbgovLwovLz09PS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0vLwovLyBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmaWxlLCBkbyBub3QgZWRpdCEKLy89PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPT09Ly8KCgoKI2lmbmRlZiBfSFZYX0hFWEFHT05fUFJPVE9TX0hfCiNkZWZpbmUgX0hWWF9IRVhBR09OX1BST1RPU19IXyAxCgojaWZkZWYgX19IVlhfXwojaWYgX19IVlhfTEVOR1RIX18gPT0gMTI4CiNkZWZpbmUgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKGEpIGEgIyMgXzEyOEIKI2Vsc2UKI2RlZmluZSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoYSkgYQojZW5kaWYKCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBSZDMyPXZleHRyYWN0KFZ1MzIsUnMzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBXb3JkMzIgUTZfUl92ZXh0cmFjdF9WUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgTEQKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9SX3ZleHRyYWN0X1ZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9leHRyYWN0dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1oaShWc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfaGlfVyhIVlhfVmVjdG9yUGFpciBWc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9oaV9XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9oaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1sbyhWc3MzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfbG9fVyhIVlhfVmVjdG9yUGFpciBWc3MpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9sb19XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9sbykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12c3BsYXQoUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdnNwbGF0X1IoV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9YW5kKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9hbmRfUVEoSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfYW5kX1FRIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PWFuZChRczQsIVF0NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX2FuZF9RUW4oSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfYW5kX1FRbiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9hbmRfbikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW5vdChRczQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9ub3RfUShIVlhfVmVjdG9yUHJlZCBRcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX25vdF9RIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX25vdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW9yKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV9vcl9RUShIVlhfVmVjdG9yUHJlZCBRcywgSFZYX1ZlY3RvclByZWQgUXQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV9vcl9RUSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PW9yKFFzNCwhUXQ0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1Ffb3JfUVFuKEhWWF9WZWN0b3JQcmVkIFFzLCBIVlhfVmVjdG9yUHJlZCBRdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX29yX1FRbiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9vcl9uKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dnNldHEoUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZzZXRxX1IoV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdnNldHFfUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9zY2FsYXIyKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9eG9yKFFzNCxRdDQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV94b3JfUVEoSFZYX1ZlY3RvclByZWQgUXMsIEhWWF9WZWN0b3JQcmVkIFF0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfeG9yX1FRIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9wcmVkX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdjQpIHZtZW0oUnQzMisjczQpPVZzMzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtZW1fUW5SSVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUW5SSVYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX25xcHJlZF9haSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKCFRdjQpIHZtZW0oUnQzMisjczQpOm50PVZzMzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZtZW1fUW5SSVZfbnQoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUW5SSVZfbnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX250X25xcHJlZF9haSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKFF2NCkgdm1lbShSdDMyKyNzNCk6bnQ9VnMzMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdm1lbV9RUklWX250KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yKiBSdCwgSFZYX1ZlY3RvciBWcykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVk1fU1QKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMAogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92bWVtX1FSSVZfbnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZTMzJiX250X3FwcmVkX2FpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSB2bWVtKFJ0MzIrI3M0KT1WczMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92bWVtX1FSSVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IqIFJ0LCBIVlhfVmVjdG9yIFZzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WTV9TVAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZtZW1fUVJJViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdlMzMmJfcXByZWRfYWkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dmFic2RpZmYoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YWJzZGlmZl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YWJzZGlmZl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzZGlmZmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFic2RpZmYoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhYnNkaWZmX1Z1YlZ1YihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdmFic2RpZmZfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzZGlmZnViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhYnNkaWZmKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YWJzZGlmZl9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZhYnNkaWZmX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2RpZmZ1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12YWJzZGlmZihWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnV3X3ZhYnNkaWZmX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZhYnNkaWZmX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhYnNkaWZmdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhYnMoVnUzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFic19WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhYnNfVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhYnNoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFicyhWdTMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFic19WaF9zYXQoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWJzX1ZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2hfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmFicyhWdTMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWJzX1Z3KEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFic19WdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic3cpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWJzKFZ1MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWJzX1Z3X3NhdChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhYnNfVndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzd19zYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12YWRkKFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWRkX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92YWRkX1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5iPXZhZGQoVnV1MzIuYixWdnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZhZGRfV2JXYihIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XYl92YWRkX1diV2IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRiX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi5iKz1WdTMyLmIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX2NvbmRhY2NfUW5WYlZiKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX2NvbmRhY2NfUW5WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkYm5xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLmIrPVZ1MzIuYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfY29uZGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl9jb25kYWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkYnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YWRkKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92YWRkX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWRkX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZhZGQoVnV1MzIuaCxWdnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZhZGRfV2hXaChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92YWRkX1doV2ggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi5oKz1WdTMyLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX2NvbmRhY2NfUW5WaFZoKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX2NvbmRhY2NfUW5WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaG5xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLmgrPVZ1MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfY29uZGFjY19RVmhWaChIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF9jb25kYWNjX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaHEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YWRkKFZ1MzIuaCxWdjMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFkZF9WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhZGRfVmhWaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZhZGQoVnV1MzIuaCxWdnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92YWRkX1doV2hfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZhZGRfV2hXaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRoc2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YWRkX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkaHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dmFkZChWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdmFkZF9WdWJWdWIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdmFkZF9WdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1YmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFkZChWdTMyLnViLFZ2MzIudWIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhZGRfVnViVnViX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YWRkX1Z1YlZ1Yl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1YnNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWI9dmFkZChWdXUzMi51YixWdnYzMi51Yik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3ViX3ZhZGRfV3ViV3ViX3NhdChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWJfdmFkZF9XdWJXdWJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dmFkZChWdTMyLnVoLFZ2MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3ZhZGRfVnVoVnVoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YWRkX1Z1aFZ1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dmFkZChWdXUzMi51aCxWdnYzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZhZGRfV3VoV3VoX3NhdChIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWhfdmFkZF9XdWhXdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWhzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dmFkZChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdmFkZF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZF9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWRkX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YWRkX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnV1MzIudyxWdnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZhZGRfV3dXdyhIVlhfVmVjdG9yUGFpciBWdXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192YWRkX1d3V3cgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoIVF2NCkgVngzMi53Kz1WdTMyLncKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X2NvbmRhY2NfUW5Wd1Z3KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X2NvbmRhY2NfUW5Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkd25xKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXY0KSBWeDMyLncrPVZ1MzIudwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfY29uZGFjY19RVndWdyhIVlhfVmVjdG9yUHJlZCBRdiwgSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd19jb25kYWNjX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFkZF9Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfVndWd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3c2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZhZGQoVnV1MzIudyxWdnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YWRkX1d3V3dfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZhZGRfV3dXd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbGlnbihWdTMyLFZ2MzIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YWxpZ25fVlZSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbGlnbl9WVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbGlnbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmFsaWduKFZ1MzIsVnYzMiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbGlnbl9WVkkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbGlnbl9WVkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbGlnbmJpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YW5kX1ZWKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92YW5kX1ZWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoUXU0LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUVIoSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRfUVIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRxcnQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzJ8PXZhbmQoUXU0LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRvcl9WUVIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRvcl9WUVIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRxcnRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmFuZChWdTMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92YW5kX1ZSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZhbmRfVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmR2cnQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmFuZChWdTMyLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92YW5kb3JfUVZSKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92YW5kb3JfUVZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kdnJ0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhc2woVnUzMi5oLFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92YXNsX1ZoUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzbF9WaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc2xoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzbChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzbF9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzbF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNsKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbF9Wd1IoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zhc2xfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12YXNsKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbGFjY19Wd1Z3UihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzbGFjY19Wd1Z3UiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzbHdfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmFzbChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzbF9Wd1Z3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzbF9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNsd3YpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXNyKFZ1MzIuaCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcl9WaFIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc3JfVmhSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhc3IoVnUzMi5oLFZ2MzIuaCxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3Zhc3JfVmhWaFJfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFzcl9WaFZoUl9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaGJybmRzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmFzcihWdTMyLmgsVnYzMi5oLFJ0OCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zhc3JfVmhWaFJfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVmhWaFJfcm5kX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcmh1YnJuZHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12YXNyKFZ1MzIuaCxWdjMyLmgsUnQ4KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92YXNyX1ZoVmhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVmhWaFJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaHVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzcihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNyKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzcl9Wd1IoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zhc3JfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNydykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12YXNyKFZ1MzIudyxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFzcmFjY19Wd1Z3UihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFzcmFjY19Wd1Z3UiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcndfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFzcihWdTMyLncsVnYzMi53LFJ0OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1IoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc3JfVndWd1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhc3IoVnUzMi53LFZ2MzIudyxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1Jfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcl9Wd1Z3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyd2hybmRzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXNyKFZ1MzIudyxWdjMyLncsUnQ4KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc3JfVndWd1Jfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YXNyX1Z3VndSX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcndoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhc3IoVnUzMi53LFZ2MzIudyxSdDgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3Zhc3JfVndWd1Jfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmFzcl9Wd1Z3Ul9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3dWhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXNyKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YXNyX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXNyX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J3dikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj1WdTMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX2VxdWFsc19WKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl9lcXVhbHNfViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzc2lnbikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzI9VnV1MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XX2VxdWFsc19XKEhWWF9WZWN0b3JQYWlyIFZ1dSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX2VxdWFsc19XIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNzaWducCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZhdmcoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZhdmdfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhdmdfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12YXZnKFZ1MzIuaCxWdjMyLmgpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmF2Z19WaFZoX3JuZChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZhdmdfVmhWaF9ybmQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmdocm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhdmcoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhdmdfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZhdmdfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZndWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWI9dmF2ZyhWdTMyLnViLFZ2MzIudWIpOnJuZAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZhdmdfVnViVnViX3JuZChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YXZnX1Z1YlZ1Yl9ybmQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd1YnJuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXZnKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXZnX1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92YXZnX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z3VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhdmcoVnUzMi51aCxWdjMyLnVoKTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXZnX1Z1aFZ1aF9ybmQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmF2Z19WdWhWdWhfcm5kIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZndWhybmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YXZnKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YXZnX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXZnX1Z3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmF2ZyhWdTMyLncsVnYzMi53KTpybmQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZhdmdfVndWd19ybmQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192YXZnX1Z3Vndfcm5kIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZnd3JuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12Y2wwKFZ1MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmNsMF9WdWgoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmNsMF9WdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZjbDBoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZjbDAoVnUzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192Y2wwX1Z1dyhIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1d192Y2wwX1Z1dyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmNsMHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZjb21iaW5lKFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XX3Zjb21iaW5lX1ZWKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192Y29tYmluZV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmNvbWJpbmUpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9IzAKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Zfdnplcm8oKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Zfdnplcm8gX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkMCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZkZWFsKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZkZWFsX1ZiKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmRlYWxfVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkZWFsYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZkZWFsZShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmRlYWxlX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92ZGVhbGVfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRlYWxiNHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12ZGVhbChWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92ZGVhbF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZkZWFsX1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGVhbGgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZkZWFsKFZ1MzIsVnYzMixSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192ZGVhbF9WVlIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1dfdmRlYWxfVlZSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGVhbHZkZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12ZGVsdGEoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92ZGVsdGFfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZkZWx0YV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRlbHRhKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmRtcHkoVnUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92ZG1weV9WdWJSYihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZkbXB5X1Z1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oKz12ZG1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZkbXB5YWNjX1ZoVnViUmIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92ZG1weWFjY19WaFZ1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dmRtcHkoVnV1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZkbXB5X1d1YlJiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92ZG1weV9XdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHlidXNfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZkbXB5KFZ1dTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92ZG1weWFjY19XaFd1YlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZkbXB5YWNjX1doV3ViUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5YnVzX2R2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1MzIuaCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weV9WaFJiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlfVmhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFJiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlhY2NfVndWaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12ZG1weShWdXUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192ZG1weV9XaFJiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192ZG1weV9XaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192ZG1weWFjY19Xd1doUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmRtcHlhY2NfV3dXaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhiX2R2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1dTMyLmgsUnQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZkbXB5X1doUmhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9XaFJoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloaXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weWFjY19Wd1doUmhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weWFjY19Wd1doUmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhpc2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZkbXB5KFZ1MzIuaCxSdDMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfVmhSaF9zYXQoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9WaFJoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmRtcHloc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZkbXB5KFZ1MzIuaCxSdDMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFJoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3VmhSaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5aHNhdF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12ZG1weShWdXUzMi5oLFJ0MzIudWgsIzEpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfV2hSdWhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weV9XaFJ1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZkbXB5aHN1aXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdXUzMi5oLFJ0MzIudWgsIzEpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndXaFJ1aF9zYXQoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3V2hSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdWlzYXRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dmRtcHkoVnUzMi5oLFJ0MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlfVmhSdWhfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmRtcHlfVmhSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdXNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12ZG1weShWdTMyLmgsUnQzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192ZG1weWFjY19Wd1ZoUnVoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5YWNjX1Z3VmhSdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWhzdXNhdF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12ZG1weShWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZkbXB5X1ZoVmhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZkbXB5X1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWh2c2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZkbXB5KFZ1MzIuaCxWdjMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmRtcHlhY2NfVndWaFZoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192ZG1weWFjY19Wd1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZG1weWh2c2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudXc9dmRzYWQoVnV1MzIudWgsUnQzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdmRzYWRfV3VoUnVoKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdmRzYWRfV3VoUnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZHNhZHVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi51dys9dmRzYWQoVnV1MzIudWgsUnQzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdmRzYWRhY2NfV3V3V3VoUnVoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192ZHNhZGFjY19XdXdXdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zkc2FkdWhfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5lcShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcV9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxX1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5lcShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcWFuZF9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFhbmRfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWJfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZXEoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFvcl9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFvcl9RVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxYl9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmVxKFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxeGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXF4YWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFiX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZXEoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZXEoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXFhbmRfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxYW5kX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXFoX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmVxKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2Vxb3JfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2Vxb3JfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcWhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5lcShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcXhhY2NfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2VxeGFjY19RVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxaF94b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmVxKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZXFfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmVxKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2VxYW5kX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcWFuZF9RVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmVxd19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5lcShWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9lcW9yX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcW9yX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZXF3X29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZXEoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZXF4YWNjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9lcXhhY2NfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZlcXdfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5ndChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndF9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0X1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5ndChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndGFuZF9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RhbmRfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGJfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZ3QoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3Rvcl9RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3Rvcl9RVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0Yl9vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmd0KFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0eGFjY19RVmJWYihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3R4YWNjX1FWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RiX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZ3QoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZ3QoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RhbmRfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0YW5kX1FWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3RoX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmd0KFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0b3JfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0b3JfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndGhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5ndChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndHhhY2NfUVZoVmgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0eGFjY19RVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0aF94b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmd0KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NCY9dmNtcC5ndChWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0YW5kX1FWdWJWdWIoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0YW5kX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX2FuZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0fD12Y21wLmd0KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3Rvcl9RVnViVnViKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndG9yX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZ3QoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndHhhY2NfUVZ1YlZ1YihIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3R4YWNjX1FWdWJWdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHViX3hvcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUWQ0PXZjbXAuZ3QoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RfVnVoVnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmd0KFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3RhbmRfUVZ1aFZ1aChIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RhbmRfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfYW5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDR8PXZjbXAuZ3QoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndG9yX1FWdWhWdWgoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0b3JfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NF49dmNtcC5ndChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0eGFjY19RVnVoVnVoKEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndHhhY2NfUVZ1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dWhfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dmNtcC5ndChWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0X1Z1d1Z1dyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndF9WdXdWdXcgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHV3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDQmPXZjbXAuZ3QoVnUzMi51dyxWdjMyLnV3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndGFuZF9RVnV3VnV3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndGFuZF9RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5ndChWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0b3JfUVZ1d1Z1dyhIVlhfVmVjdG9yUHJlZCBReCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3Rvcl9RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d19vcikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Xj12Y21wLmd0KFZ1MzIudXcsVnYzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3R4YWNjX1FWdXdWdXcoSFZYX1ZlY3RvclByZWQgUXgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92Y21wX2d0eGFjY19RVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R1d194b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkND12Y21wLmd0KFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0X1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RX3ZjbXBfZ3RfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgUXg0Jj12Y21wLmd0KFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92Y21wX2d0YW5kX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndGFuZF9RVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmd0d19hbmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFF4NHw9dmNtcC5ndChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FfdmNtcF9ndG9yX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndG9yX1FWd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z3R3X29yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBReDRePXZjbXAuZ3QoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUHJlZCBRNl9RX3ZjbXBfZ3R4YWNjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1FfdmNtcF9ndHhhY2NfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZndHdfeG9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLnc9dmluc2VydChSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmluc2VydF9Wd1IoSFZYX1ZlY3RvciBWeCwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZpbnNlcnRfVndSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92aW5zZXJ0d3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmxhbGlnbihWdTMyLFZ2MzIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bGFsaWduX1ZWUihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92bGFsaWduX1ZWUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxhbGlnbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmxhbGlnbihWdTMyLFZ2MzIsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bGFsaWduX1ZWSShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmxhbGlnbl9WVkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsYWxpZ25iaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12bHNyKFZ1MzIudWgsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92bHNyX1Z1aFIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92bHNyX1Z1aFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zsc3JoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmxzcihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmxzcl9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmxzcl9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHNyaHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudXc9dmxzcihWdTMyLnV3LFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmxzcl9WdXdSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmxzcl9WdXdSIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHNydykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZsc3IoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3Zsc3JfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zsc3JfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxzcnd2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmx1dDMyKFZ1MzIuYixWdjMyLmIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmx1dDMyX1ZiVmJSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2dmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuYnw9dmx1dDMyKFZ1MzIuYixWdjMyLmIsUnQ4KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmx1dDMyb3JfVmJWYlZiUihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmx1dDMyb3JfVmJWYlZiUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9vcmFjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12bHV0MTYoVnUzMi5iLFZ2MzIuaCxSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdmx1dDE2X1ZiVmhSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmh8PXZsdXQxNihWdTMyLmIsVnYzMi5oLFJ0OCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bHV0MTZvcl9XaFZiVmhSKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZsdXQxNm9yX1doVmJWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hfb3JhY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bWF4KFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bWF4X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bWF4X1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXhoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZtYXgoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZtYXhfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZtYXhfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWF4dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dm1heChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdm1heF9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdm1heF9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtYXh1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtYXgoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtYXhfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtYXhfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1heHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bWluKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bWluX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bWluX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtaW5oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZtaW4oVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZtaW5fVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZtaW5fVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWludWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudWg9dm1pbihWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdm1pbl9WdWhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdm1pbl9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtaW51aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtaW4oVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtaW5fVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtaW5fVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1pbncpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1wYShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1wYV9XdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dm1wYShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYWFjY19XaFd1YlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFhY2NfV2hXdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1wYShWdXUzMi51YixWdnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZtcGFfV3ViV2IoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViV2IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFidXN2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZtcGEoVnV1MzIudWIsVnZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJXdWIoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViV3ViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1dikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12bXBhKFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcGFfV2hSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYV9XaFJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhaGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcGEoVnV1MzIuaCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYWFjY19Xd1doUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYWFjY19Xd1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFoYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1Z1YlJiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1weV9WdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dm1weShWdTMyLnViLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5YWNjX1doVnViUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1c19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dm1weShWdTMyLnViLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1Z1YlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlfVnViVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlidXN2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi5oKz12bXB5KFZ1MzIudWIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZtcHlhY2NfV2hWdWJWYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWdWJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWJ1c3ZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5X1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdm1weV9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bXB5YWNjX1doVmJWYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcHlhY2NfV2hWYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm1weWUoVnUzMi53LFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5ZV9Wd1Z1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5ZV9Wd1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWV3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dm1weShWdTMyLmgsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcHlfVmhSaChIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcHlfVmhSaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFJ0MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1weWFjY19Xd1ZoUmhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192bXB5YWNjX1d3VmhSaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloc2F0X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZtcHkoVnUzMi5oLFJ0MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlfVmhSaF9zMV9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFJoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloc3JzKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dm1weShWdTMyLmgsUnQzMi5oKTo8PDE6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bXB5X1ZoUmhfczFfc2F0KEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFJoX3MxX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWhzcykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12bXB5KFZ1MzIuaCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZtcHlfVmhWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weV9WaFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWh1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dm1weShWdTMyLmgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhWdWgoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192bXB5YWNjX1d3VmhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlodXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZtcHkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhWaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcHlhY2NfV3dWaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aHZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dm1weShWdTMyLmgsVnYzMi5oKTo8PDE6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weV9WaFZoX3MxX3JuZF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1weV9WaFZoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlodnNycykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpZW8oVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpZW9fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5aWVvX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpZW9oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlpZShWdTMyLncsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWllYWNjX1Z3VndWaChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5aWVhY2NfVndWd1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWV3aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aWUoVnUzMi53LFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aWVfVndWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWllX1Z3VnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWV3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dm1weWllKFZ1MzIudyxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWllYWNjX1Z3VndWdWgoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWllYWNjX1Z3VndWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpZXd1aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bXB5aShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weWlfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bXB5aV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dm1weWkoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhWaChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92bXB5aWFjY19WaFZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpaF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bXB5aShWdTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1weWlfVmhSYihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcHlpX1ZoUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpaGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dm1weWkoVnUzMi5oLFJ0MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhSYihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcHlpYWNjX1ZoVmhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWloYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aW8oVnUzMi53LFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpb19Wd1ZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlpb19Wd1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aW93aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpKFZ1MzIudyxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aV9Wd1JiKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWl3YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5aShWdTMyLncsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1JiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlhY2NfVndWd1JiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aXdiX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlpKFZ1MzIudyxSdDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5aV9Wd1JoKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWl3aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5aShWdTMyLncsUnQzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1JoKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlhY2NfVndWd1JoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5aXdoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZtcHlvKFZ1MzIudyxWdjMyLmgpOjw8MTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5b3doKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm1weW8oVnUzMi53LFZ2MzIuaCk6PDwxOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlvX1Z3VmhfczFfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5b19Wd1ZoX3MxX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfcm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlvKFZ1MzIudyxWdjMyLmgpOjw8MTpybmQ6c2F0OnNoaWZ0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfcm5kX3NhdF9zaGlmdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfcm5kX3NhdF9zaGlmdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weW93aF9ybmRfc2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12bXB5byhWdTMyLncsVnYzMi5oKTo8PDE6c2F0OnNoaWZ0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bXB5b2FjY19Wd1Z3VmhfczFfc2F0X3NoaWZ0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlvYWNjX1Z3VndWaF9zMV9zYXRfc2hpZnQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfc2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dm1weShWdTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZtcHlfVnViUnViKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3VoX3ZtcHlfVnViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXB5dWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnVoKz12bXB5KFZ1MzIudWIsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdm1weWFjY19XdWhWdWJSdWIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlJ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXViX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dm1weShWdTMyLnViLFZ2MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3VoX3ZtcHlfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVidikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudWgrPXZtcHkoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlZ1YihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92bXB5YWNjX1d1aFZ1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVidl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZtcHkoVnUzMi51aCxSdDMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192bXB5X1Z1aFJ1aChIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192bXB5X1Z1aFJ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi51dys9dm1weShWdTMyLnVoLFJ0MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3V3X3ZtcHlhY2NfV3V3VnVoUnVoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weWFjY19XdXdWdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZtcHkoVnUzMi51aCxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192bXB5X1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weV9WdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12bXB5KFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdm1weWFjY19XdXdWdWhWdWgoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdm1weWFjY19XdXdWdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aHZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZtdXgoUXQ0LFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Zfdm11eF9RVlYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92bXV4X1FWViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm11eCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZuYXZnKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bmF2Z19WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm5hdmdfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm5hdmdoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm5hdmcoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdm5hdmdfVnViVnViKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdm5hdmdfVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9dm5hdmcoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZuYXZnX1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192bmF2Z19Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z3cpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bm9ybWFtdChWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bm9ybWFtdF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zub3JtYW10X1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bm9ybWFtdGgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bm9ybWFtdChWdTMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192bm9ybWFtdF9WdyhIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3Zub3JtYW10X1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bm9ybWFtdHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dm5vdChWdTMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92bm90X1YoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zub3RfViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm5vdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12b3IoVnUzMixWdjMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92b3JfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zvcl9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm9yKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2tlKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja2VfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2tlKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja2VfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrZV9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2soVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja19WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrX1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja2hiX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12cGFjayhWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92cGFja19WaFZoX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92cGFja19WaFZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBhY2todWJfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnBhY2tvKFZ1MzIuaCxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cGFja29fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZwYWNrb19WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja29iKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2tvKFZ1MzIudyxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja29fVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrb19Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja29oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBhY2soVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cGFja19Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZwYWNrX1Z3Vndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cGFja3doX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12cGFjayhWdTMyLncsVnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92cGFja19Wd1Z3X3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1aF92cGFja19Wd1Z3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBhY2t3dWhfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnBvcGNvdW50KFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zwb3Bjb3VudF9WaChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zwb3Bjb3VudF9WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnBvcGNvdW50aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMj12cmRlbHRhKFZ1MzIsVnYzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdnJkZWx0YV9WVihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdnJkZWx0YV9WViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJkZWx0YSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnJtcHlfVnViUmIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192cm1weV9WdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXMpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dnJtcHkoVnUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192cm1weWFjY19Wd1Z1YlJiKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlhY2NfVndWdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZybXB5KFZ1dTMyLnViLFJ0MzIuYiwjdTEpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnJtcHlfV3ViUmJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192cm1weV9XdWJSYkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnVzaSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dnJtcHkoVnV1MzIudWIsUnQzMi5iLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192cm1weWFjY19Xd1d1YlJiSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192cm1weWFjY19Xd1d1YlJiSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXNpX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIudWIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnJtcHlfVnViVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlfVnViVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnVzdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi53Kz12cm1weShWdTMyLnViLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZybXB5YWNjX1Z3VnViVmIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnJtcHlhY2NfVndWdWJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHlidXN2X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZybXB5KFZ1MzIuYixWdjMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192cm1weV9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZybXB5X1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudys9dnJtcHkoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZybXB5YWNjX1Z3VmJWYihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192cm1weWFjY19Wd1ZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZybXB5YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZybXB5KFZ1MzIudWIsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weV9WdWJSdWIoSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnJtcHlfVnViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm1weXViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLnV3Kz12cm1weShWdTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdnJtcHlhY2NfVnV3VnViUnViKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5YWNjX1Z1d1Z1YlJ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1Yl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZybXB5KFZ1dTMyLnViLFJ0MzIudWIsI3UxKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192cm1weV9XdWJSdWJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJtcHlfV3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YmkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12cm1weShWdXUzMi51YixSdDMyLnViLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdnJtcHlhY2NfV3V3V3ViUnViSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJtcHlhY2NfV3V3V3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YmlfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZybXB5KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weV9WdWJWdWIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5X1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YnYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIudXcrPXZybXB5KFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm1weWFjY19WdXdWdWJWdWIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZybXB5YWNjX1Z1d1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJtcHl1YnZfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZyb3IoVnUzMixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92cm9yX1ZSKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Zyb3JfVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12cm91bmQoVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92cm91bmRfVmhWaF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92cm91bmRfVmhWaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3VuZGhiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZyb3VuZChWdTMyLmgsVnYzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92cm91bmRfVmhWaF9zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdnJvdW5kX1ZoVmhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmRodWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12cm91bmQoVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92cm91bmRfVndWd19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92cm91bmRfVndWd19zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zyb3VuZHdoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZyb3VuZChWdTMyLncsVnYzMi53KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92cm91bmRfVndWd19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdnJvdW5kX1Z3Vndfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR3dWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZyc2FkKFZ1dTMyLnViLFJ0MzIudWIsI3UxKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192cnNhZF9XdWJSdWJJKEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJzYWRfV3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJzYWR1YmkpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnV3Kz12cnNhZChWdXUzMi51YixSdDMyLnViLCN1MSkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdXdfdnJzYWRhY2NfV3V3V3ViUnViSShIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0LCBXb3JkMzIgSXUxKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdXdfdnJzYWRhY2NfV3V3V3ViUnViSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnJzYWR1YmlfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZzYXQoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92c2F0X1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdnNhdF9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0aHViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNhdChWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNhdF9Wd1Z3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNhdF9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0d2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN4dChWdTMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnN4dF9WYihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZzeHRfVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12c3h0KFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192c3h0X1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnN4dF9WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNodWZmZShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNodWZmZV9WaFZoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNodWZmZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmVoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNodWZmKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzaHVmZl9WYihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUAogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzaHVmZl9WYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZmYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzaHVmZmUoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzaHVmZmVfVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzaHVmZmVfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZmZWIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12c2h1ZmYoVnUzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdnNodWZmX1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNodWZmX1ZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmZoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNodWZmbyhWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdnNodWZmb19WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnNodWZmb19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1ZmZvYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzI9dnNodWZmKFZ1MzIsVnYzMixSdDgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192c2h1ZmZfVlZSKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX3ZzaHVmZl9WVlIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzaHVmZnZkZCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuYj12c2h1ZmZvZShWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZzaHVmZm9lX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XYl92c2h1ZmZvZV9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1Zm9lYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12c2h1ZmZvZShWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZzaHVmZm9lX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92c2h1ZmZvZV9WaFZoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2h1Zm9laCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzaHVmZm8oVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZzaHVmZm9fVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZzaHVmZm9fVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNodWZvaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzdWIoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZzdWJfVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZzdWJfVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dnN1YihWdXUzMi5iLFZ2djMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2JfdnN1Yl9XYldiKEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1diX3ZzdWJfV2JXYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLmItPVZ1MzIuYgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfY29uZG5hY19RblZiVmIoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfY29uZG5hY19RblZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJibnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIuYi09VnUzMi5iCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl9jb25kbmFjX1FWYlZiKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX2NvbmRuYWNfUVZiVmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJicSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzdWIoVnUzMi5oLFZ2MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZzdWJfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZzdWJfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN1YihWdXUzMi5oLFZ2djMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnN1Yl9XaFdoKEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZzdWJfV2hXaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLmgtPVZ1MzIuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfY29uZG5hY19RblZoVmgoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfY29uZG5hY19RblZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJobnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIuaC09VnUzMi5oCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF9jb25kbmFjX1FWaFZoKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX2NvbmRuYWNfUVZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJocSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXZzdWIoVnUzMi5oLFZ2MzIuaCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92c3ViX1ZoVmhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnN1Yl9WaFZoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmg9dnN1YihWdXUzMi5oLFZ2djMyLmgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZzdWJfV2hXaF9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdnN1Yl9XaFdoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmhzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZzdWJfVmhWaChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192c3ViX1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJodykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12c3ViKFZ1MzIudWIsVnYzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92c3ViX1Z1YlZ1YihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92c3ViX1Z1YlZ1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnViaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12c3ViKFZ1MzIudWIsVnYzMi51Yik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWJfdnN1Yl9WdWJWdWJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZzdWJfVnViVnViX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51Yj12c3ViKFZ1dTMyLnViLFZ2djMyLnViKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWJfdnN1Yl9XdWJXdWJfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1Yl92c3ViX1d1Yld1Yl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ1YnNhdF9kdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12c3ViKFZ1MzIudWgsVnYzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdnN1Yl9WdWhWdWhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZzdWJfVnVoVnVoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51aD12c3ViKFZ1dTMyLnVoLFZ2djMyLnVoKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdnN1Yl9XdWhXdWhfc2F0KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92c3ViX1d1aFd1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ1aHNhdF9kdikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12c3ViKFZ1MzIudWgsVnYzMi51aCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192c3ViX1Z1aFZ1aChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192c3ViX1Z1aFZ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnVodykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzdWIoVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZzdWJfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZzdWJfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YncpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdXUzMi53LFZ2djMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnN1Yl9Xd1d3KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZzdWJfV3dXdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmICghUXY0KSBWeDMyLnctPVZ1MzIudwogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfY29uZG5hY19RblZ3VncoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfY29uZG5hY19RblZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ3bnEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRdjQpIFZ4MzIudy09VnUzMi53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd19jb25kbmFjX1FWd1Z3KEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X2NvbmRuYWNfUVZ3VncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzdWJ3cSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzdWIoVnUzMi53LFZ2MzIudyk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192c3ViX1Z3Vndfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnN1Yl9Wd1Z3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dnN1YihWdXUzMi53LFZ2djMyLncpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZzdWJfV3dXd19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnN1Yl9Xd1d3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YndzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZzd2FwKFF0NCxWdTMyLFZ2MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192c3dhcF9RVlYoSFZYX1ZlY3RvclByZWQgUXQsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192c3dhcF9RVlYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zzd2FwKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZ0bXB5KFZ1dTMyLmIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z0bXB5X1diUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5X1diUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dnRtcHkoVnV1MzIuYixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnRtcHlhY2NfV2hXYlJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5YWNjX1doV2JSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnRtcHliX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12dG1weShWdXUzMi51YixSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdnRtcHlfV3ViUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z0bXB5X1d1YlJiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dG1weWJ1cykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaCs9dnRtcHkoVnV1MzIudWIsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z0bXB5YWNjX1doV3ViUmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2hfdnRtcHlhY2NfV2hXdWJSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnRtcHlidXNfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXZ0bXB5KFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Z0bXB5X1doUmIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Z0bXB5X1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5aGIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZ0bXB5KFZ1dTMyLmgsUnQzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Z0bXB5YWNjX1d3V2hSYihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192dG1weWFjY19Xd1doUmIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z0bXB5aGJfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZ1bnBhY2soVnUzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3Z1bnBhY2tfVmIoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92dW5wYWNrX1ZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dW5wYWNrYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12dW5wYWNrKFZ1MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192dW5wYWNrX1ZoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdnVucGFja19WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja2gpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmh8PXZ1bnBhY2tvKFZ1MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92dW5wYWNrb29yX1doVmIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3Z1bnBhY2tvb3JfV2hWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja29iKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi53fD12dW5wYWNrbyhWdTMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdnVucGFja29vcl9Xd1ZoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192dW5wYWNrb29yX1d3VmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z1bnBhY2tvaCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudWg9dnVucGFjayhWdTMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1aF92dW5wYWNrX1Z1YihIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1aF92dW5wYWNrX1Z1YiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnVucGFja3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjAKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi51dz12dW5wYWNrKFZ1MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3V3X3Z1bnBhY2tfVnVoKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3Z1bnBhY2tfVnVoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92dW5wYWNrdWgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dnhvcihWdTMyLFZ2MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3Z4b3JfVlYoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3Z4b3JfVlYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z4b3IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnVoPXZ6eHQoVnUzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XdWhfdnp4dF9WdWIoSFZYX1ZlY3RvciBWdSkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XdWhfdnp4dF9WdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Z6YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYwICovCgojaWYgX19IVlhfQVJDSF9fID49IDYwCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudXc9dnp4dChWdTMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192enh0X1Z1aChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQV9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d1d192enh0X1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnpoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjAgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dnNwbGF0KFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92c3BsYXRfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXRiKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dnNwbGF0KFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92c3BsYXRfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0xBVEUKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdnNwbGF0X1IgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X2x2c3BsYXRoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQ9dnNldHEyKFJ0MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUV92c2V0cTJfUihXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUV92c2V0cTJfUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfcHJlZF9zY2FsYXIydjIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFFkNC5iPXZzaHVmZmUoUXM0LmgsUXQ0LmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclByZWQgUTZfUWJfdnNodWZmZV9RaFFoKEhWWF9WZWN0b3JQcmVkIFFzLCBIVlhfVmVjdG9yUHJlZCBRdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkFfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9RYl92c2h1ZmZlX1FoUWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3NodWZmZXFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBRZDQuaD12c2h1ZmZlKFFzNC53LFF0NC53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQcmVkIFE2X1FoX3ZzaHVmZmVfUXdRdyhIVlhfVmVjdG9yUHJlZCBRcywgSFZYX1ZlY3RvclByZWQgUXQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfUWhfdnNodWZmZV9Rd1F3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl9zaHVmZmVxdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhZGQoVnUzMi5iLFZ2MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWRkX1ZiVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFkZF9WYlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGJzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dmFkZChWdXUzMi5iLFZ2djMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZhZGRfV2JXYl9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2JfdmFkZF9XYldiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncsUXg0KTpjYXJyeQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdmFkZF9Wd1Z3UV9jYXJyeShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yUHJlZCogUXgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdmFkZF9Wd1Z3UV9jYXJyeSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGNhcnJ5KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmg9dmFkZCh2Y2xiKFZ1MzIuaCksVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFkZF92Y2xiX1ZoVmgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF92YWRkX3ZjbGJfVmhWaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZGNsYmgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKHZjbGIoVnUzMi53KSxWdjMyLncpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9Wd192YWRkX3ZjbGJfVndWdyhIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfdmNsYl9Wd1Z3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkY2xidykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dmFkZChWdTMyLmgsVnYzMi5oKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3ZhZGRhY2NfV3dWaFZoKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdmFkZGFjY19Xd1ZoVmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGRod19hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLmgrPXZhZGQoVnUzMi51YixWdjMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZhZGRhY2NfV2hWdWJWdWIoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92YWRkYWNjX1doVnViVnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdWJoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51Yj12YWRkKFZ1MzIudWIsVnYzMi5iKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1Yl92YWRkX1Z1YlZiX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1Yl92YWRkX1Z1YlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZHVidWJiX3NhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dmFkZChWdTMyLnVoLFZ2MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdmFkZGFjY19Xd1Z1aFZ1aChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZhZGRhY2NfV3dWdWhWdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhZGR1aHdfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZhZGQoVnUzMi51dyxWdjMyLnV3KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192YWRkX1Z1d1Z1d19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmFkZF9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkdXdzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZhZGQoVnV1MzIudXcsVnZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192YWRkX1d1d1d1d19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3ZhZGRfV3V3V3V3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFkZHV3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoIVF1NCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVl92YW5kX1FuUihIVlhfVmVjdG9yUHJlZCBRdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9MQVRFCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmFuZF9RblIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmRucXJ0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyfD12YW5kKCFRdTQsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZfdmFuZG9yX1ZRblIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvclByZWQgUXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfTEFURQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WX3ZhbmRvcl9WUW5SIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kbnFydF9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzI9dmFuZCghUXY0LFZ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUW5WKEhWWF9WZWN0b3JQcmVkIFF2LCBIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZfdmFuZF9RblYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZhbmR2bnF2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyPXZhbmQoUXY0LFZ1MzIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WX3ZhbmRfUVYoSFZYX1ZlY3RvclByZWQgUXYsIEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVl92YW5kX1FWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YW5kdnF2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmFzcihWdTMyLmgsVnYzMi5oLFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YXNyX1ZoVmhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFzcl9WaFZoUl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3JoYnNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXNyKFZ1MzIudXcsVnYzMi51dyxSdDgpOnJuZDpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1aF92YXNyX1Z1d1Z1d1Jfcm5kX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zhc3JfVnV3VnV3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNydXd1aHJuZHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51aD12YXNyKFZ1MzIudyxWdjMyLncsUnQ4KTpybmQ6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmFzcl9Wd1Z3Ul9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWhfdmFzcl9Wd1Z3Ul9ybmRfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXNyd3Vocm5kc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZsc3IoVnUzMi51YixSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zsc3JfVnViUihIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zsc3JfVnViUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmxzcmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12bHV0MzIoVnUzMi5iLFZ2MzIuYixSdDgpOm5vbWF0Y2gKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZsdXQzMl9WYlZiUl9ub21hdGNoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYlJfbm9tYXRjaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9ubSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5ifD12bHV0MzIoVnUzMi5iLFZ2MzIuYiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92bHV0MzJvcl9WYlZiVmJJKEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBJdTMpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZQX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmx1dDMyb3JfVmJWYlZiSSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ2Yl9vcmFjY2kpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12bHV0MzIoVnUzMi5iLFZ2MzIuYiwjdTMpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92bHV0MzJfVmJWYkkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlAKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bHV0MzJfVmJWYkkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2dmJpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZsdXQxNihWdTMyLmIsVnYzMi5oLFJ0OCk6bm9tYXRjaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZsdXQxNl9WYlZoUl9ub21hdGNoKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaFJfbm9tYXRjaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmx1dHZ3aF9ubSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIuaHw9dmx1dDE2KFZ1MzIuYixWdjMyLmgsI3UzKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1doX3ZsdXQxNm9yX1doVmJWaEkoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgSXUzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZsdXQxNm9yX1doVmJWaEkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hfb3JhY2NpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi5oPXZsdXQxNihWdTMyLmIsVnYzMi5oLCN1MykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9XaF92bHV0MTZfVmJWaEkoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdiwgV29yZDMyIEl1MykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlBfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bHV0MTZfVmJWaEkgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZsdXR2d2hpKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm1heChWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdm1heF9WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdm1heF9WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bWF4YikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZtaW4oVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZtaW5fVmJWYihIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZtaW5fVmJWYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1pbmIpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnc9dm1wYShWdXUzMi51aCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYV9XdWhSYihIVlhfVmVjdG9yUGFpciBWdXUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1wYV9XdWhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYXVoYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9dm1wYShWdXUzMi51aCxSdDMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdm1wYWFjY19Xd1d1aFJiKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3ZtcGFhY2NfV3dXdWhSYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wYXVoYl9hY2MpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyPXZtcHllKFZ1MzIudyxWdjMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1dfdm1weWVfVndWdWgoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV192bXB5ZV9Wd1Z1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weWV3dWhfNjQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12bXB5aShWdTMyLncsUnQzMi51YikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZtcHlpX1Z3UnViKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdm1weWlfVndSdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpd3ViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLncrPXZtcHlpKFZ1MzIudyxSdDMyLnViKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdm1weWlhY2NfVndWd1J1YihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZtcHlpYWNjX1Z3VndSdWIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlpd3ViX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIrPXZtcHlvKFZ1MzIudyxWdjMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV192bXB5b2FjY19XVndWaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1dfdm1weW9hY2NfV1Z3VmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHlvd2hfNjRfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZyb3VuZChWdTMyLnVoLFZ2MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zyb3VuZF9WdWhWdWhfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zyb3VuZF9WdWhWdWhfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR1aHViKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZyb3VuZChWdTMyLnV3LFZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3Zyb3VuZF9WdXdWdXdfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zyb3VuZF9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm91bmR1d3VoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZzYXQoVnUzMi51dyxWdjMyLnV3KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnVoX3ZzYXRfVnV3VnV3KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3ZzYXRfVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2F0dXd1aCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDYyICovCgojaWYgX19IVlhfQVJDSF9fID49IDYyCi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZzdWIoVnUzMi5iLFZ2MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92c3ViX1ZiVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdnN1Yl9WYlZiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLmI9dnN1YihWdXUzMi5iLFZ2djMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1diX3ZzdWJfV2JXYl9zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV2JfdnN1Yl9XYldiX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmJzYXRfZHYpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12c3ViKFZ1MzIudyxWdjMyLncsUXg0KTpjYXJyeQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnN1Yl9Wd1Z3UV9jYXJyeShIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yUHJlZCogUXgpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVndfdnN1Yl9Wd1Z3UV9jYXJyeSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YmNhcnJ5KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZzdWIoVnUzMi51YixWdjMyLmIpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3ZzdWJfVnViVmJfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3ZzdWJfVnViVmJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c3VidWJ1YmJfc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjIKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZzdWIoVnUzMi51dyxWdjMyLnV3KTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192c3ViX1Z1d1Z1d19zYXQoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnN1Yl9WdXdWdXdfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c3VidXdzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2MiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2MgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkZDMyLnV3PXZzdWIoVnV1MzIudXcsVnZ2MzIudXcpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d1d192c3ViX1d1d1d1d19zYXQoSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3V3X3ZzdWJfV3V3V3V3X3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnN1YnV3c2F0X2R2KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjIgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmFicyhWdTMyLmIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWJzX1ZiKEhWWF9WZWN0b3IgVnUpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmFic19WYiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFic2IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj12YWJzKFZ1MzIuYik6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YWJzX1ZiX3NhdChIVlhfVmVjdG9yIFZ1KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZiX3ZhYnNfVmJfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWJzYl9zYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4MzIuaCs9dmFzbChWdTMyLmgsUnQzMikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3Zhc2xhY2NfVmhWaFIoSFZYX1ZlY3RvciBWeCwgSFZYX1ZlY3RvciBWdSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3Zhc2xhY2NfVmhWaFIgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc2xoX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oKz12YXNyKFZ1MzIuaCxSdDMyKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdmFzcmFjY19WaFZoUihIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdmFzcmFjY19WaFZoUiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcmhfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhc3IoVnUzMi51aCxWdjMyLnVoLFJ0OCk6cm5kOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnViX3Zhc3JfVnVoVnVoUl9ybmRfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdWJfdmFzcl9WdWhWdWhSX3JuZF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1aHVicm5kc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnViPXZhc3IoVnUzMi51aCxWdjMyLnVoLFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWJfdmFzcl9WdWhWdWhSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnViX3Zhc3JfVnVoVnVoUl9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1aHVic2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnVoPXZhc3IoVnUzMi51dyxWdjMyLnV3LFJ0OCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdWhfdmFzcl9WdXdWdXdSX3NhdChIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnVoX3Zhc3JfVnV3VnV3Ul9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhc3J1d3Voc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dmF2ZyhWdTMyLmIsVnYzMi5iKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfdmF2Z19WYlZiKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmF2Z19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YXZnYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5iPXZhdmcoVnUzMi5iLFZ2MzIuYik6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WYl92YXZnX1ZiVmJfcm5kKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfdmF2Z19WYlZiX3JuZCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z2JybmQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudXc9dmF2ZyhWdTMyLnV3LFZ2MzIudXcpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmF2Z19WdXdWdXcoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdmF2Z19WdXdWdXcgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Zhdmd1dykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12YXZnKFZ1MzIudXcsVnYzMi51dyk6cm5kCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdmF2Z19WdXdWdXdfcm5kKEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZBCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZhdmdfVnV3VnV3X3JuZCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmF2Z3V3cm5kKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMj0jMAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1dfdnplcm8oKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIE1BUFBJTkcKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XX3Z6ZXJvIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92ZGQwKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2dG1wLmg9dmdhdGhlcihSdDMyLE11MixWdjMyLmgpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVJNVmgoSFZYX1ZlY3RvciogUnMsIFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9HQVRIRVIKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdmdhdGhlcl9BUk1WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmdhdGhlcm1oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2dG1wLmg9dmdhdGhlcihSdDMyLE11MixWdjMyLmgpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVFSTVZoKEhWWF9WZWN0b3IqIFJzLCBIVlhfVmVjdG9yUHJlZCBRcywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3IgVnYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX0dBVEhFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMQogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl92Z2F0aGVyX0FRUk1WaCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmdhdGhlcm1ocSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnRtcC5oPXZnYXRoZXIoUnQzMixNdTIsVnZ2MzIudykuaAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdmdhdGhlcl9BUk1XdyhIVlhfVmVjdG9yKiBScywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVJNV3cgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtaHcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRczQpIHZ0bXAuaD12Z2F0aGVyKFJ0MzIsTXUyLFZ2djMyLncpLmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZnYXRoZXJfQVFSTVd3KEhWWF9WZWN0b3IqIFJzLCBIVlhfVmVjdG9yUHJlZCBRcywgV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2dikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVFSTVd3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Z2F0aGVybWh3cSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnRtcC53PXZnYXRoZXIoUnQzMixNdTIsVnYzMi53KS53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92Z2F0aGVyX0FSTVZ3KEhWWF9WZWN0b3IqIFJzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfR0FUSEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZnYXRoZXJfQVJNVncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtdykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgaWYgKFFzNCkgdnRtcC53PXZnYXRoZXIoUnQzMixNdTIsVnYzMi53KS53CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92Z2F0aGVyX0FRUk1WdyhIVlhfVmVjdG9yKiBScywgSFZYX1ZlY3RvclByZWQgUXMsIFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9HQVRIRVIKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdmdhdGhlcl9BUVJNVncgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZnYXRoZXJtd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuaD12bHV0NChWdTMyLnVoLFJ0dDMyLmgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bHV0NF9WdWhQaChIVlhfVmVjdG9yIFZ1LCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZsdXQ0X1Z1aFBoIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bHV0NCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIuaD12bXBhKFZ1dTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYV9XdWJSdWIoSFZYX1ZlY3RvclBhaXIgVnV1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1doX3ZtcGFfV3ViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeHgzMi5oKz12bXBhKFZ1dTMyLnViLFJ0MzIudWIpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV2hfdm1wYWFjY19XaFd1YlJ1YihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgV29yZDMyIFJ0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9XaF92bXBhYWNjX1doV3ViUnViIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bXBhYnV1X2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oPXZtcGEoVngzMi5oLFZ1MzIuaCxSdHQzMi5oKTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZoX3ZtcGFfVmhWaFZoUGhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1wYV9WaFZoVmhQaF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGFoaHNhdCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi5oPXZtcGEoVngzMi5oLFZ1MzIudWgsUnR0MzIudWgpOnNhdAogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmhfdm1wYV9WaFZoVnVoUHVoX3NhdChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkNjQgUnR0KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1ZoX3ZtcGFfVmhWaFZ1aFB1aF9zYXQgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcGF1aHVoc2F0KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWeDMyLmg9dm1wcyhWeDMyLmgsVnUzMi51aCxSdHQzMi51aCk6c2F0CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF92bXBzX1ZoVmhWdWhQdWhfc2F0KEhWWF9WZWN0b3IgVngsIEhWWF9WZWN0b3IgVnUsIFdvcmQ2NCBSdHQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmhfdm1wc19WaFZoVnVoUHVoX3NhdCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1wc3VodWhzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXZtcHkoVnUzMi5oLFJ0MzIuaCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192bXB5YWNjX1d3VmhSaChIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlhfRFYKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfV3dfdm1weWFjY19Xd1ZoUmggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHloX2FjYykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi51dz12bXB5ZShWdTMyLnVoLFJ0MzIudWgpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WdXdfdm1weWVfVnVoUnVoKEhWWF9WZWN0b3IgVnUsIFdvcmQzMiBSdCkKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlgKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVnV3X3ZtcHllX1Z1aFJ1aCBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdm1weXVoZSkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVngzMi51dys9dm1weWUoVnUzMi51aCxSdDMyLnVoKQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVnV3X3ZtcHllYWNjX1Z1d1Z1aFJ1aChIVlhfVmVjdG9yIFZ4LCBIVlhfVmVjdG9yIFZ1LCBXb3JkMzIgUnQpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z1d192bXB5ZWFjY19WdXdWdWhSdWggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZtcHl1aGVfYWNjKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLmI9dm5hdmcoVnUzMi5iLFZ2MzIuYikKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1ZiX3ZuYXZnX1ZiVmIoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WYl92bmF2Z19WYlZiIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92bmF2Z2IpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIuYj1wcmVmaXhzdW0oUXY0KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVmJfcHJlZml4c3VtX1EoSFZYX1ZlY3RvclByZWQgUXYpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZTCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAxMjMKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfVmJfcHJlZml4c3VtX1EgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZwcmVmaXhxYikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi5oPXByZWZpeHN1bShRdjQpCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvciBRNl9WaF9wcmVmaXhzdW1fUShIVlhfVmVjdG9yUHJlZCBRdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WaF9wcmVmaXhzdW1fUSBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnByZWZpeHFoKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnc9cHJlZml4c3VtKFF2NCkKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ByZWZpeHN1bV9RKEhWWF9WZWN0b3JQcmVkIFF2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ByZWZpeHN1bV9RIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cHJlZml4cXcpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2MzIuaCkuaD1WdzMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92c2NhdHRlcl9STVZoVihXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNVmhWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1oKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2c2NhdHRlcihSdDMyLE11MixWdjMyLmgpLmgrPVZ3MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZzY2F0dGVyYWNjX1JNVmhWKFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJhY2NfUk1WaFYgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzY2F0dGVybWhfYWRkKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2c2NhdHRlcihSdDMyLE11MixWdjMyLmgpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNVmhWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1FSTVZoViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNjYXR0ZXJtaHEpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2djMyLncpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUk1Xd1YoV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2diwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUl9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1odykKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY1ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY1Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgdnNjYXR0ZXIoUnQzMixNdTIsVnZ2MzIudykuaCs9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJhY2NfUk1Xd1YoV29yZDMyIFJ0LCBXb3JkMzIgTXUsIEhWWF9WZWN0b3JQYWlyIFZ2diwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUl9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyYWNjX1JNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1od19hZGQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIGlmIChRczQpIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2djMyLncpLmg9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNV3dWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJfUVJNV3dWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm1od3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NQovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIHZzY2F0dGVyKFJ0MzIsTXUyLFZ2MzIudykudz1WdzMyCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogdm9pZCBRNl92c2NhdHRlcl9STVZ3VihXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1JNVndWIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92c2NhdHRlcm13KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICB2c2NhdHRlcihSdDMyLE11MixWdjMyLncpLncrPVZ3MzIKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiB2b2lkIFE2X3ZzY2F0dGVyYWNjX1JNVndWKFdvcmQzMiBSdCwgV29yZDMyIE11LCBIVlhfVmVjdG9yIFZ2LCBIVlhfVmVjdG9yIFZ3KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9TQ0FUVEVSCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDAKICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KCiNkZWZpbmUgUTZfdnNjYXR0ZXJhY2NfUk1Wd1YgX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3ZzY2F0dGVybXdfYWRkKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjUgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjUKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBpZiAoUXM0KSB2c2NhdHRlcihSdDMyLE11MixWdjMyLncpLnc9VnczMgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IHZvaWQgUTZfdnNjYXR0ZXJfUVJNVndWKEhWWF9WZWN0b3JQcmVkIFFzLCBXb3JkMzIgUnQsIFdvcmQzMiBNdSwgSFZYX1ZlY3RvciBWdiwgSFZYX1ZlY3RvciBWdykKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfU0NBVFRFUgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X3ZzY2F0dGVyX1FSTVZ3ViBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNjYXR0ZXJtd3EpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NSAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZkMzIudz12YWRkKFZ1MzIudyxWdjMyLncsUXM0KTpjYXJyeTpzYXQKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z3X3ZhZGRfVndWd1FfY2Fycnlfc2F0KEhWWF9WZWN0b3IgVnUsIEhWWF9WZWN0b3IgVnYsIEhWWF9WZWN0b3JQcmVkIFFzKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WQQogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1Z3X3ZhZGRfVndWd1FfY2Fycnlfc2F0IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92YWRkY2FycnlzYXQpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2NiAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2NgovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLnc9dmFzcmludG8oVnUzMi53LFZ2MzIudykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192YXNyaW50b19Xd1Z3VncoSFZYX1ZlY3RvclBhaXIgVnh4LCBIVlhfVmVjdG9yIFZ1LCBIVlhfVmVjdG9yIFZ2KQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WUF9WUwogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QwMTIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Zhc3JpbnRvX1d3VndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdmFzcl9pbnRvKQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjYKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZDMyLnV3PXZyb3RyKFZ1MzIudXcsVnYzMi51dykKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yIFE2X1Z1d192cm90cl9WdXdWdXcoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVlMKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9WdXdfdnJvdHJfVnV3VnV3IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92cm90cikKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY2ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY2Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmQzMi53PXZzYXRkdyhWdTMyLncsVnYzMi53KQogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3IgUTZfVndfdnNhdGR3X1Z3VncoSFZYX1ZlY3RvciBWdSwgSFZYX1ZlY3RvciBWdikKICAgSW5zdHJ1Y3Rpb24gVHlwZTogICAgICBDVklfVkEKICAgRXhlY3V0aW9uIFNsb3RzOiAgICAgICBTTE9UMDEyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Wd192c2F0ZHdfVndWdyBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdnNhdGR3KQojZW5kaWYgLyogX19IRVhBR09OX0FSQ0hfX18gPj0gNjYgKi8KCiNpZiBfX0hWWF9BUkNIX18gPj0gNjgKLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgQXNzZW1ibHkgU3ludGF4OiAgICAgICBWZGQzMi53PXY2bXB5KFZ1dTMyLnViLFZ2djMyLmIsI3UyKTpoCiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdjZtcHlfV3ViV2JJX2goSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Y2bXB5X1d1YldiSV9oIF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Nm1weWh1YnMxMCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY4ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVnh4MzIudys9djZtcHkoVnV1MzIudWIsVnZ2MzIuYiwjdTIpOmgKICAgQyBJbnRyaW5zaWMgUHJvdG90eXBlOiBIVlhfVmVjdG9yUGFpciBRNl9Xd192Nm1weWFjY19Xd1d1YldiSV9oKEhWWF9WZWN0b3JQYWlyIFZ4eCwgSFZYX1ZlY3RvclBhaXIgVnV1LCBIVlhfVmVjdG9yUGFpciBWdnYsIFdvcmQzMiBJdTIpCiAgIEluc3RydWN0aW9uIFR5cGU6ICAgICAgQ1ZJX1ZYX0RWCiAgIEV4ZWN1dGlvbiBTbG90czogICAgICAgU0xPVDIzCiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCgojZGVmaW5lIFE2X1d3X3Y2bXB5YWNjX1d3V3ViV2JJX2ggX19CVUlMVElOX1ZFQ1RPUl9XUkFQKF9fYnVpbHRpbl9IRVhBR09OX1Y2X3Y2bXB5aHViczEwX3Z4eCkKI2VuZGlmIC8qIF9fSEVYQUdPTl9BUkNIX19fID49IDY4ICovCgojaWYgX19IVlhfQVJDSF9fID49IDY4Ci8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgIEFzc2VtYmx5IFN5bnRheDogICAgICAgVmRkMzIudz12Nm1weShWdXUzMi51YixWdnYzMi5iLCN1Mik6dgogICBDIEludHJpbnNpYyBQcm90b3R5cGU6IEhWWF9WZWN0b3JQYWlyIFE2X1d3X3Y2bXB5X1d1YldiSV92KEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192Nm1weV9XdWJXYklfdiBfX0JVSUxUSU5fVkVDVE9SX1dSQVAoX19idWlsdGluX0hFWEFHT05fVjZfdjZtcHl2dWJzMTApCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2lmIF9fSFZYX0FSQ0hfXyA+PSA2OAovKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICBBc3NlbWJseSBTeW50YXg6ICAgICAgIFZ4eDMyLncrPXY2bXB5KFZ1dTMyLnViLFZ2djMyLmIsI3UyKTp2CiAgIEMgSW50cmluc2ljIFByb3RvdHlwZTogSFZYX1ZlY3RvclBhaXIgUTZfV3dfdjZtcHlhY2NfV3dXdWJXYklfdihIVlhfVmVjdG9yUGFpciBWeHgsIEhWWF9WZWN0b3JQYWlyIFZ1dSwgSFZYX1ZlY3RvclBhaXIgVnZ2LCBXb3JkMzIgSXUyKQogICBJbnN0cnVjdGlvbiBUeXBlOiAgICAgIENWSV9WWF9EVgogICBFeGVjdXRpb24gU2xvdHM6ICAgICAgIFNMT1QyMwogICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwoKI2RlZmluZSBRNl9Xd192Nm1weWFjY19Xd1d1YldiSV92IF9fQlVJTFRJTl9WRUNUT1JfV1JBUChfX2J1aWx0aW5fSEVYQUdPTl9WNl92Nm1weXZ1YnMxMF92eHgpCiNlbmRpZiAvKiBfX0hFWEFHT05fQVJDSF9fXyA+PSA2OCAqLwoKI2VuZGlmIC8qIF9fSFZYX18gKi8KCiNlbmRpZgoAcHJmY2h3aW50cmluLmgALyotCiAqIENvcHlyaWdodCAoYykgMjAxMSBFZCBTY2hvdXRlbiA8ZWRARnJlZUJTRC5vcmc+CiAqICAgICAgICAgICAgICAgICAgICBEYXZpZCBDaGlzbmFsbCA8dGhlcmF2ZW5ARnJlZUJTRC5vcmc+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCiAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCiAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCiAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQogKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAogKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCiAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKICogU1VDSCBEQU1BR0UuCiAqCiAqICRGcmVlQlNEJAogKi8KCiNpZm5kZWYgX1NUREFUT01JQ19IXwojZGVmaW5lCV9TVERBVE9NSUNfSF8KCiNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KCiNpZiBkZWZpbmVkKF9fY3BsdXNwbHVzKSAmJiBfX2NwbHVzcGx1cyA+PSAyMDExMDNMICYmIF9faGFzX2luY2x1ZGUoPGF0b21pYz4pCiMgaWYgX19oYXNfZmVhdHVyZShjeHhfYXRvbWljKQojICBkZWZpbmUgX1NUREFUT01JQ19IQVZFX0FUT01JQwojIGVuZGlmCiNlbmRpZgoKI2lmZGVmIF9TVERBVE9NSUNfSEFWRV9BVE9NSUMKCi8qIFdlIGhhdmUgYSB1c2FibGUgQysrIDxhdG9taWM+OyB1c2UgaXQgaW5zdGVhZC4gICovCgojaW5jbHVkZSA8YXRvbWljPgoKI3VuZGVmIF9BdG9taWMKICAgICAgICAvKiBBbHNvIGRlZmluZWQgYnkgPGF0b21pYz4gZm9yIGdjYy4gIEJ1dCBub3QgdXNlZCBpbiBtYWNyb3MuICovCiAgICAgICAgLyogQWxzbyBhIGNsYW5nIGludHJpbnNpYy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgIC8qIFNob3VsZCBub3QgYmUgdXNlZCBieSBjbGllbnQgY29kZSBiZWZvcmUgdGhpcyBmaWxlIGlzICAgICAgKi8KICAgICAgICAvKiBpbmNsdWRlZC4gIFRoZSBkZWZpbml0aW9ucyBpbiA8YXRvbWljPiB0aGVtc2VsdmVzIHNlZSAgICAgICovCiAgICAgICAgLyogdGhlIG9sZCBkZWZpbml0aW9uLCBhcyB0aGV5IHNob3VsZC4gICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAgIC8qIENsaWVudCBjb2RlIHNlZXMgdGhlIGZvbGxvd2luZyBkZWZpbml0aW9uLiAgICAgICAgICAgICAgICAgKi8KCiNkZWZpbmUgX0F0b21pYyh0KSBzdGQ6OmF0b21pYzx0PgoKdXNpbmcgc3RkOjphdG9taWNfaXNfbG9ja19mcmVlOwp1c2luZyBzdGQ6OmF0b21pY19pbml0Owp1c2luZyBzdGQ6OmF0b21pY19zdG9yZTsKdXNpbmcgc3RkOjphdG9taWNfc3RvcmVfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2xvYWQ7CnVzaW5nIHN0ZDo6YXRvbWljX2xvYWRfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2V4Y2hhbmdlOwp1c2luZyBzdGQ6OmF0b21pY19leGNoYW5nZV9leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfY29tcGFyZV9leGNoYW5nZV9zdHJvbmc7CnVzaW5nIHN0ZDo6YXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfc3Ryb25nX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19jb21wYXJlX2V4Y2hhbmdlX3dlYWs7CnVzaW5nIHN0ZDo6YXRvbWljX2NvbXBhcmVfZXhjaGFuZ2Vfd2Vha19leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfYWRkOwp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9hZGRfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX3N1YjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfc3ViX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9vcjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfb3JfZXhwbGljaXQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX3hvcjsKdXNpbmcgc3RkOjphdG9taWNfZmV0Y2hfeG9yX2V4cGxpY2l0Owp1c2luZyBzdGQ6OmF0b21pY19mZXRjaF9hbmQ7CnVzaW5nIHN0ZDo6YXRvbWljX2ZldGNoX2FuZF9leHBsaWNpdDsKdXNpbmcgc3RkOjphdG9taWNfdGhyZWFkX2ZlbmNlOwp1c2luZyBzdGQ6OmF0b21pY19zaWduYWxfZmVuY2U7Cgp1c2luZyBzdGQ6Om1lbW9yeV9vcmRlcjsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfcmVsYXhlZDsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfY29uc3VtZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZTsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfYWNxX3JlbDsKdXNpbmcgc3RkOjptZW1vcnlfb3JkZXJfc2VxX2NzdDsKCnVzaW5nIHN0ZDo6YXRvbWljX2Jvb2w7CnVzaW5nIHN0ZDo6YXRvbWljX2NoYXI7CnVzaW5nIHN0ZDo6YXRvbWljX3NjaGFyOwp1c2luZyBzdGQ6OmF0b21pY191Y2hhcjsKdXNpbmcgc3RkOjphdG9taWNfc2hvcnQ7CnVzaW5nIHN0ZDo6YXRvbWljX3VzaG9ydDsKdXNpbmcgc3RkOjphdG9taWNfaW50Owp1c2luZyBzdGQ6OmF0b21pY191aW50Owp1c2luZyBzdGQ6OmF0b21pY19sb25nOwp1c2luZyBzdGQ6OmF0b21pY191bG9uZzsKdXNpbmcgc3RkOjphdG9taWNfbGxvbmc7CnVzaW5nIHN0ZDo6YXRvbWljX3VsbG9uZzsKdXNpbmcgc3RkOjphdG9taWNfY2hhcjE2X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2NoYXIzMl90Owp1c2luZyBzdGQ6OmF0b21pY193Y2hhcl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfbGVhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfbGVhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9sZWFzdDE2X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfbGVhc3QxNl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfbGVhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2xlYXN0MzJfdDsKdXNpbmcgc3RkOjphdG9taWNfaW50X2xlYXN0NjRfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludF9sZWFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9mYXN0OF90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2Zhc3Q4X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludF9mYXN0MTZfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludF9mYXN0MTZfdDsKdXNpbmcgc3RkOjphdG9taWNfaW50X2Zhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50X2Zhc3QzMl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRfZmFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3VpbnRfZmFzdDY0X3Q7CnVzaW5nIHN0ZDo6YXRvbWljX2ludHB0cl90Owp1c2luZyBzdGQ6OmF0b21pY191aW50cHRyX3Q7CnVzaW5nIHN0ZDo6YXRvbWljX3NpemVfdDsKdXNpbmcgc3RkOjphdG9taWNfcHRyZGlmZl90Owp1c2luZyBzdGQ6OmF0b21pY19pbnRtYXhfdDsKdXNpbmcgc3RkOjphdG9taWNfdWludG1heF90OwoKI2Vsc2UgLyogPGF0b21pYz4gdW5hdmFpbGFibGUsIHBvc3NpYmx5IGJlY2F1c2UgdGhpcyBpcyBDLCBub3QgQysrICovCgovKiBBY3R1YWwgaW1wbGVtZW50YXRpb24gaXMgaW4gYml0cy9zdGRhdG9taWMuaCBzaW5jZSBvdXIgdGVzdCBjb2RlIGlzIEMrKy4gKi8KI2luY2x1ZGUgPGJpdHMvc3RkYXRvbWljLmg+CgojZW5kaWYgLyogPGF0b21pYz4gdW5hdmFpbGFibGUgKi8KCiNlbmRpZiAvKiAhX1NUREFUT01JQ19IXyAqLwoALyo9PT0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB3YWl0cGtnaW50cmluLmggLSBXQUlUUEtHIC0tLS0tLS0tLS0tLS0tLS0tLS0tPT09CiAqCiAqIFBhcnQgb2YgdGhlIExMVk0gUHJvamVjdCwgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlIHYyLjAgd2l0aCBMTFZNIEV4Y2VwdGlvbnMuCiAqIFNlZSBodHRwczovL2xsdm0ub3JnL0xJQ0VOU0UudHh0IGZvciBsaWNlbnNlIGluZm9ybWF0aW9uLgogKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCBXSVRIIExMVk0tZXhjZXB0aW9uCiAqCiAqPT09LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09PT0KICovCiNpZiAhZGVmaW5lZCBfX1g4NklOVFJJTl9IICYmICFkZWZpbmVkIF9fSU1NSU5UUklOX0gKI2Vycm9yICJOZXZlciB1c2UgPHdhaXRwa2dpbnRyaW4uaD4gZGlyZWN0bHk7IGluY2x1ZGUgPHg4NmludHJpbi5oPiBpbnN0ZWFkLiIKI2VuZGlmCgojaWZuZGVmIF9fV0FJVFBLR0lOVFJJTl9ICiNkZWZpbmUgX19XQUlUUEtHSU5UUklOX0gKCi8qIERlZmluZSB0aGUgZGVmYXVsdCBhdHRyaWJ1dGVzIGZvciB0aGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZS4gKi8KI2RlZmluZSBfX0RFRkFVTFRfRk5fQVRUUlMgXAogIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fLCBfX25vZGVidWdfXywgIF9fdGFyZ2V0X18oIndhaXRwa2ciKSkpCgpzdGF0aWMgX19pbmxpbmVfXyB2b2lkIF9fREVGQVVMVF9GTl9BVFRSUwpfdW1vbml0b3IgKHZvaWQgKiBfX2FkZHJlc3MpCnsKICBfX2J1aWx0aW5faWEzMl91bW9uaXRvciAoX19hZGRyZXNzKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX3Vtd2FpdCAodW5zaWduZWQgaW50IF9fY29udHJvbCwgdW5zaWduZWQgbG9uZyBsb25nIF9fY291bnRlcikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl91bXdhaXQgKF9fY29udHJvbCwKICAgICh1bnNpZ25lZCBpbnQpKF9fY291bnRlciA+PiAzMiksICh1bnNpZ25lZCBpbnQpX19jb3VudGVyKTsKfQoKc3RhdGljIF9faW5saW5lX18gdW5zaWduZWQgY2hhciBfX0RFRkFVTFRfRk5fQVRUUlMKX3RwYXVzZSAodW5zaWduZWQgaW50IF9fY29udHJvbCwgdW5zaWduZWQgbG9uZyBsb25nIF9fY291bnRlcikKewogIHJldHVybiBfX2J1aWx0aW5faWEzMl90cGF1c2UgKF9fY29udHJvbCwKICAgICh1bnNpZ25lZCBpbnQpKF9fY291bnRlciA+PiAzMiksICh1bnNpZ25lZCBpbnQpX19jb3VudGVyKTsKfQoKI3VuZGVmIF9fREVGQVVMVF9GTl9BVFRSUwoKI2VuZGlmIC8qIF9fV0FJVFBLR0lOVFJJTl9IICovCgB4c2F2ZW9wdGludHJpbi5oAENvdWxkbid0IG9wZW4gaW5wdXQgZmlsZSAAQmFkIHNpemUgZm9yIAAgbmVhciBvZmZzZXQgAHZuYW1lAEluY29ycmVjdCBoZXggZGlnaXQgYWZ0ZXIgXHUgZXNjYXBlIGluIHN0cmluZy4AVGhlIHN1cnJvZ2F0ZSBwYWlyIGluIHN0cmluZyBpcyBpbnZhbGlkLgBVbmtub3duIGVycm9yLgBbOl5hbG51bTpdAFs6XmJsYW5rOl0AaW52YWxpZCBuYW1lZCBjYXB0dXJlIGdyb3VwAE1hbGZvcm1lZCByZXBlYXQgAFxuAEFkbGFtAENhdWNhc2lhbl9BbGJhbmlhbgBTdW5kYW5lc2UAVWdhcml0aWMAJXM6IGZhaWxlZCB0byByZWFkIGVsZiBoZWFkZXIAYmFkIG1hZ2ljIG51bWJlciBpbiBEZWxldGVBcmVuYSgpAG11c3QgcGFzcyBhIHZhbGlkIGFyZW5hACUAc3RkOjoATk9UX0ZPVU5EAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC9zdHJpbmdzL2NvcmQuY2MAUHJpdmF0ZQAgYW5kIGVudHJ5WwBkZXRlY3RlZCBpbGxlZ2FsIHJlY3Vyc2lvbiBpbnRvIE11dGV4IGNvZGUAd2FpdHAgIT0gbnVsbHB0cgBvbGRfaC0+c2tpcCA9PSBudWxscHRyAGgtPnNraXAgPT0gbnVsbHB0cgBNdXRleDo6RmVyIHdpdGggcGVuZGluZyBDb25kVmFyIHF1ZXVlaW5nAGV4dGVybmFsL2Fic2VpbC1jcHAvYWJzbC90aW1lL2ludGVybmFsL2dldF9jdXJyZW50X3RpbWVfcG9zaXguaW5jAEVWUF9BRUFEX0NUWF9vcGVuIGZvciBBRVMtMTI4LUdDTSBmYWlsZWQuCgBmYWlsZWQgdG8gZ2V0IGZsYWdzIGZyb20gdXJhbmRvbSBmZABSU0Egcm91dGluZXMAUEtDUzcgcm91dGluZXMAcmFuZG9tIG51bWJlciBnZW5lcmF0b3IAVHJ1c3QgVG9rZW4gZnVuY3Rpb25zAAAAAAAAAAAAAAAAAAAAAP////8IAAAA////////////////EAAAABgAAAAgAAAAChtreXRoZS9wcm90by9idWlsZGluZm8ucHJvdG8SC2t5dGhlLnByb3RvIk0KDEJ1aWxkRGV0YWlscxIUCgxidWlsZF90YXJnZXQYASABKAkSEQoJcnVsZV90eXBlGAIgASgJEhQKDGJ1aWxkX2NvbmZpZxgDIAEoCUI1Ch9jb20uZ29vZ2xlLmRldnRvb2xzLmt5dGhlLnByb3RvWhJidWlsZGluZm9fZ29fcHJvdG9iBnByb3RvMwAAAAAAAAAAAAAAAAAAAAAAAAAA/////zAAAAAAAAAAAAAAAAAAAACUFAgA4xQIAPIUCABnFQgAB0cIADFHCACfRwgA1UcIAENICACxSAgA4UgIALVGCAC1RggAEUkIADRJCADpaAgA+GgIAGZpCACcaQgAAAAAAP////8IAAAA////////////////EAAAABgAAAD/////CAAAAP///////////////xAAAAAUAAAAGAAAAP////8IAAAA////////////////EAAAABgAAAAgAAAAKAAAAP///////////////wgAAAAQAAAAAAAAAAEAAAD/////CAAAAP///////////////xAAAAB4AAAA/////wgAAAD///////////////8oAAAAEAAAABgAAAAgAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////EAAAABgAAAAgAAAA/////wgAAAD///////////////8QAAAA/////wgAAAD///////////////9YAAAAQAAAABAAAABIAAAAUAAAAFwAAABgAAAAZAAAACgAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8oAAAAMAAAADgAAAAQAAAA/////wgAAAD///////////////8oAAAAMAAAABAAAAAAAAAAAAAAAAoYa3l0aGUvcHJvdG8vY29tbW9uLnByb3RvEhJreXRoZS5wcm90by5jb21tb24aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8iIwoERmFjdBIMCgRuYW1lGAEgASgJEg0KBXZhbHVlGAIgASgMIkgKBVBvaW50EhMKC2J5dGVfb2Zmc2V0GAEgASgFEhMKC2xpbmVfbnVtYmVyGAIgASgFEhUKDWNvbHVtbl9vZmZzZXQYAyABKAUiWAoEU3BhbhIoCgVzdGFydBgBIAEoCzIZLmt5dGhlLnByb3RvLmNvbW1vbi5Qb2ludBImCgNlbmQYAiABKAsyGS5reXRoZS5wcm90by5jb21tb24uUG9pbnQikgEKCE5vZGVJbmZvEjYKBWZhY3RzGAIgAygLMicua3l0aGUucHJvdG8uY29tbW9uLk5vZGVJbmZvLkZhY3RzRW50cnkSEgoKZGVmaW5pdGlvbhgFIAEoCRosCgpGYWN0c0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoDDoCOAFKBAgBEAJSBnRpY2tldCJrCgpEaWFnbm9zdGljEiYKBHNwYW4YASABKAsyGC5reXRoZS5wcm90by5jb21tb24uU3BhbhIPCgdtZXNzYWdlGAIgASgJEg8KB2RldGFpbHMYAyABKAkSEwoLY29udGV4dF91cmwYBCABKAkifQoSUmVzb2x2ZWREaWFnbm9zdGljEjMKC2NvcnB1c19wYXRoGAEgASgLMh4ua3l0aGUucHJvdG8uY29tbW9uLkNvcnB1c1BhdGgSMgoKZGlhZ25vc3RpYxgCIAEoCzIeLmt5dGhlLnByb3RvLmNvbW1vbi5EaWFnbm9zdGljIjgKCkNvcnB1c1BhdGgSDgoGY29ycHVzGAEgASgJEgwKBHJvb3QYAiABKAkSDAoEcGF0aBgDIAEoCSImCgRMaW5rEhIKCmRlZmluaXRpb24YAyADKAlKBAgBEAJKBAgCEAMi/QMKDE1hcmtlZFNvdXJjZRIzCgRraW5kGAEgASgOMiUua3l0aGUucHJvdG8uY29tbW9uLk1hcmtlZFNvdXJjZS5LaW5kEhAKCHByZV90ZXh0GAIgASgJEi8KBWNoaWxkGAMgAygLMiAua3l0aGUucHJvdG8uY29tbW9uLk1hcmtlZFNvdXJjZRIXCg9wb3N0X2NoaWxkX3RleHQYBCABKAkSEQoJcG9zdF90ZXh0GAUgASgJEhQKDGxvb2t1cF9pbmRleBgGIAEoDRIeChZkZWZhdWx0X2NoaWxkcmVuX2NvdW50GAcgASgNEhwKFGFkZF9maW5hbF9saXN0X3Rva2VuGAogASgIEiYKBGxpbmsYCyADKAsyGC5reXRoZS5wcm90by5jb21tb24uTGluayLMAQoES2luZBIHCgNCT1gQABIICgRUWVBFEAESDQoJUEFSQU1FVEVSEAISDgoKSURFTlRJRklFUhADEgsKB0NPTlRFWFQQBBIPCgtJTklUSUFMSVpFUhAFEh0KGVBBUkFNRVRFUl9MT09LVVBfQllfUEFSQU0QBhITCg9MT09LVVBfQllfUEFSQU0QBxIrCidQQVJBTUVURVJfTE9PS1VQX0JZX1BBUkFNX1dJVEhfREVGQVVMVFMQCBITCg9MT09LVVBfQllfVFlQRUQQCSI3CgpTeW1ib2xJbmZvEhEKCWJhc2VfbmFtZRgBIAEoCRIWCg5xdWFsaWZpZWRfbmFtZRgCIAEoCSJyCgZPcmlnaW4SDgoGY29ycHVzGAEgASgJEhAKCHJldmlzaW9uGAIgASgJEjQKEGNvbW1pdF90aW1lc3RhbXAYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhAKCGxhbmd1YWdlGAQgAygJIqIBCghMYW5ndWFnZRIMCgRuYW1lGAEgASgJEjUKB3N1cHBvcnQYAiABKA4yJC5reXRoZS5wcm90by5jb21tb24uTGFuZ3VhZ2UuU3VwcG9ydBIYChBhbmFseXplcl92ZXJzaW9uGAMgAygJIjcKB1N1cHBvcnQSCwoHVU5LTk9XThAAEhAKDEVYUEVSSU1FTlRBTBABEg0KCVNVUFBPUlRFRBACQjQKH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9QAVoPY29tbW9uX2dvX3Byb3RvYgZwcm90bzMAAAAAAAAAAAD/////KAAAAAcAAAD/////IAAAAA8AAAD/////KAAAABYAAAAdAAAAMAAAAB8AAAD/////iAAAACYAAAD/////OAAAAC8AAAD/////KAAAADYAAAD/////MAAAAD4AAAD/////MAAAAEQAAAD/////cAAAAFIAAAD/////KAAAAFkAAAD/////SAAAAGIAAAD/////OAAAAMXECADFxAgAkMMIALLDCADbwwgACcQIAJTRCACU0QgAps4IANXQCADw0AgAD9EIAAAAAAD/////CAAAAP///////////////xAAAAAYAAAAHAAAAP////8IAAAA////////////////KAAAACwAAAAQAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////EAAAAP////8IAAAA////////////////QAAAABAAAAAoAAAAAAAAAAAAAAAAAAAAChVreXRoZS9wcm90by9jeHgucHJvdG8SC2t5dGhlLnByb3RvIskEChlDeHhDb21waWxhdGlvblVuaXREZXRhaWxzElMKEmhlYWRlcl9zZWFyY2hfaW5mbxgBIAEoCzI3Lmt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuSGVhZGVyU2VhcmNoSW5mbxJXChRzeXN0ZW1faGVhZGVyX3ByZWZpeBgCIAMoCzI5Lmt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuU3lzdGVtSGVhZGVyUHJlZml4EkIKCXN0YXRfcGF0aBgDIAMoCzIvLmt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuU3RhdFBhdGgaUgoPSGVhZGVyU2VhcmNoRGlyEgwKBHBhdGgYASABKAkSGwoTY2hhcmFjdGVyaXN0aWNfa2luZBgCIAEoBRIUCgxpc19mcmFtZXdvcmsYAyABKAgaiwEKEEhlYWRlclNlYXJjaEluZm8SGAoQZmlyc3RfYW5nbGVkX2RpchgBIAEoBRIYChBmaXJzdF9zeXN0ZW1fZGlyGAIgASgFEkMKA2RpchgDIAMoCzI2Lmt5dGhlLnByb3RvLkN4eENvbXBpbGF0aW9uVW5pdERldGFpbHMuSGVhZGVyU2VhcmNoRGlyGj4KElN5c3RlbUhlYWRlclByZWZpeBIOCgZwcmVmaXgYASABKAkSGAoQaXNfc3lzdGVtX2hlYWRlchgCIAEoCBoYCghTdGF0UGF0aBIMCgRwYXRoGAEgASgJQi8KH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9aDGN4eF9nb19wcm90b2IGcHJvdG8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////ygAAAAIAAAA/////zgAAAAQAAAA/////yAAAAAXAAAA/////yAAAAAdAAAA/////1AAAAAAAAAA/////wgAAAD///////////////8YAAAAEAAAAP////8IAAAA////////////////KAAAABAAAAAwAAAA/////wgAAAD///////////////8QAAAAAAAAAAAAAAAAAAAACh1reXRoZS9wcm90by9maWxlY29udGV4dC5wcm90bxILa3l0aGUucHJvdG8i9gEKF0NvbnRleHREZXBlbmRlbnRWZXJzaW9uEjUKA3JvdxgBIAMoCzIoLmt5dGhlLnByb3RvLkNvbnRleHREZXBlbmRlbnRWZXJzaW9uLlJvdxowCgZDb2x1bW4SDgoGb2Zmc2V0GAEgASgFEhYKDmxpbmtlZF9jb250ZXh0GAIgASgJGnIKA1JvdxIWCg5zb3VyY2VfY29udGV4dBgBIAEoCRI7CgZjb2x1bW4YAiADKAsyKy5reXRoZS5wcm90by5Db250ZXh0RGVwZW5kZW50VmVyc2lvbi5Db2x1bW4SFgoOYWx3YXlzX3Byb2Nlc3MYAyABKAhCNwofY29tLmdvb2dsZS5kZXZ0b29scy5reXRoZS5wcm90b1oUZmlsZWNvbnRleHRfZ29fcHJvdG9iBnByb3RvMwAAAAAAAAAAAAAAAAAA/////yAAAAAHAAAA/////zgAAAAPAAAA/////zAAAAAAAAAAAAAAAAAAAAAtTAkAV0wJAMdMCQAUTQkARE0JAHRNCQC5TQkA6U0JABlOCQBJTgkAeU4JAAAAAAD/////CAAAAP///////////////ygAAAAQAAAA/////wgAAAD///////////////8oAAAAEAAAABgAAAAsAAAAMAAAAEQAAAAgAAAANAAAADgAAAA8AAAAQAAAAAAAAAAKGmt5dGhlL3Byb3RvL21ldGFkYXRhLnByb3RvEhRreXRoZS5wcm90by5tZXRhZGF0YRoZa3l0aGUvcHJvdG8vc3RvcmFnZS5wcm90byKeAQoRR2VuZXJhdGVkQ29kZUluZm8SOgoEdHlwZRgBIAEoDjIsLmt5dGhlLnByb3RvLm1ldGFkYXRhLkdlbmVyYXRlZENvZGVJbmZvLlR5cGUSLwoEbWV0YRgCIAMoCzIhLmt5dGhlLnByb3RvLm1ldGFkYXRhLk1hcHBpbmdSdWxlIhwKBFR5cGUSCAoETk9ORRAAEgoKBktZVEhFMBABIs4DCgtNYXBwaW5nUnVsZRI0CgR0eXBlGAEgASgOMiYua3l0aGUucHJvdG8ubWV0YWRhdGEuTWFwcGluZ1J1bGUuVHlwZRIMCgRlZGdlGAIgASgJEiEKBXZuYW1lGAMgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSDQoFYmVnaW4YBCABKA0SCwoDZW5kGAUgASgNEjwKCHNlbWFudGljGAsgASgOMioua3l0aGUucHJvdG8ubWV0YWRhdGEuTWFwcGluZ1J1bGUuU2VtYW50aWMSKAoMc291cmNlX3ZuYW1lGAYgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSFAoMc291cmNlX2JlZ2luGAcgASgNEhIKCnNvdXJjZV9lbmQYCCABKA0SFAoMdGFyZ2V0X2JlZ2luGAkgASgNEhIKCnRhcmdldF9lbmQYCiABKA0iQAoEVHlwZRIICgROT05FEAASBwoDTk9QEAESEgoOQU5DSE9SX0RFRklORVMQAhIRCg1BTkNIT1JfQU5DSE9SEAMiPgoIU2VtYW50aWMSDQoJU0VNQV9OT05FEAASDgoKU0VNQV9XUklURRABEhMKD1NFTUFfUkVBRF9XUklURRACQiEKH2NvbS5nb29nbGUuZGV2dG9vbHMua3l0aGUucHJvdG9iBnByb3RvMwAAAAAAAAAAAAD/////MAAAAAcAAAD/////UAAAAAAAAAAAAAAAomQJALFkCQAfZQkAjWUJAPtlCQA+cgkAbnIJAJ5yCQDOcgkA+nIJAPx9CQAwfgkApX4JAPR+CQB2fwkAKKIJAJ2iCQDsogkAbqMJAAAAAAD/////CAAAAP///////////////xAAAAAYAAAAIAAAACgAAAAwAAAA/////wgAAAD///////////////8QAAAAEQAAABIAAAATAAAAFAAAAP////8IAAAA////////////////KAAAABAAAAAwAAAAGAAAACAAAAD/////CAAAAP///////////////xAAAAD/////CAAAAP///////////////xgAAAAQAAAA/////wgAAAD///////////////8QAAAAKAAAABgAAAAgAAAA/////wgAAAD///////////////8oAAAAEAAAAP////8IAAAA/////////////////////wgAAAD///////////////8gAAAAEAAAABgAAAD/////CAAAAP///////////////xAAAAAYAAAA/////wgAAAD///////////////8QAAAA/////wgAAAD///////////////8QAAAAGAAAAP////8IAAAA////////////////EAAAABgAAAD/////CAAAAP///////////////xAAAAAAAAAAAAAAAAAAAAAKGWt5dGhlL3Byb3RvL3N0b3JhZ2UucHJvdG8SC2t5dGhlLnByb3RvIlgKBVZOYW1lEhEKCXNpZ25hdHVyZRgBIAEoCRIOCgZjb3JwdXMYAiABKAkSDAoEcm9vdBgDIAEoCRIMCgRwYXRoGAQgASgJEhAKCGxhbmd1YWdlGAUgASgJIlwKCVZOYW1lTWFzaxIRCglzaWduYXR1cmUYASABKAgSDgoGY29ycHVzGAIgASgIEgwKBHJvb3QYAyABKAgSDAoEcGF0aBgEIAEoCBIQCghsYW5ndWFnZRgFIAEoCCKJAQoFRW50cnkSIgoGc291cmNlGAEgASgLMhIua3l0aGUucHJvdG8uVk5hbWUSEQoJZWRnZV9raW5kGAIgASgJEiIKBnRhcmdldBgDIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEhEKCWZhY3RfbmFtZRgEIAEoCRISCgpmYWN0X3ZhbHVlGAUgASgMIi4KB0VudHJpZXMSIwoHZW50cmllcxgBIAMoCzISLmt5dGhlLnByb3RvLkVudHJ5IkQKC1JlYWRSZXF1ZXN0EiIKBnNvdXJjZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEhEKCWVkZ2Vfa2luZBgCIAEoCSLMAQoMV3JpdGVSZXF1ZXN0EiIKBnNvdXJjZRgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEjAKBnVwZGF0ZRgCIAMoCzIgLmt5dGhlLnByb3RvLldyaXRlUmVxdWVzdC5VcGRhdGUaZgoGVXBkYXRlEhEKCWVkZ2Vfa2luZBgBIAEoCRIiCgZ0YXJnZXQYAiABKAsyEi5reXRoZS5wcm90by5WTmFtZRIRCglmYWN0X25hbWUYAyABKAkSEgoKZmFjdF92YWx1ZRgEIAEoDCIMCgpXcml0ZVJlcGx5IlkKC1NjYW5SZXF1ZXN0EiIKBnRhcmdldBgBIAEoCzISLmt5dGhlLnByb3RvLlZOYW1lEhEKCWVkZ2Vfa2luZBgCIAEoCRITCgtmYWN0X3ByZWZpeBgDIAEoCSItCgxDb3VudFJlcXVlc3QSDQoFaW5kZXgYASABKAMSDgoGc2hhcmRzGAIgASgDIh0KCkNvdW50UmVwbHkSDwoHZW50cmllcxgBIAEoAyItCgxTaGFyZFJlcXVlc3QSDQoFaW5kZXgYASABKAMSDgoGc2hhcmRzGAIgASgDIk4KEFZOYW1lUmV3cml0ZVJ1bGUSDwoHcGF0dGVybhgBIAEoCRIpCgZ2X25hbWUYAiABKAsyEi5reXRoZS5wcm90by5WTmFtZVIFdm5hbWUiQAoRVk5hbWVSZXdyaXRlUnVsZXMSKwoEcnVsZRgBIAMoCzIdLmt5dGhlLnByb3RvLlZOYW1lUmV3cml0ZVJ1bGVCMwofY29tLmdvb2dsZS5kZXZ0b29scy5reXRoZS5wcm90b1oQc3RvcmFnZV9nb19wcm90b2IGcHJvdG8zAAAAAAAAAAAAAAAAAAD/////QAAAAAoAAAD/////IAAAABQAAAD/////QAAAAB4AAAD/////MAAAACQAAAD/////KAAAACsAAAD/////OAAAADQAAAD/////OAAAADsAAAD/////GAAAAEAAAAD/////MAAAAEgAAAD/////KAAAAE8AAAD/////IAAAAFUAAAD/////KAAAAFwAAAD/////KAAAAGMAAAD/////MAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvY2hpbGRvZgAAAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9leHRlbmRzAAAAAAAAAAAAAAAAAC9reXRoZS9lZGdlL2V4dGVuZHMvcHJpdmF0ZQAAAAAAL2t5dGhlL2VkZ2UvZXh0ZW5kcy9wcml2YXRlL3ZpcnR1YWwAAAAAAAAAAAAAAAAAL2t5dGhlL2VkZ2UvZXh0ZW5kcy9wcm90ZWN0ZWQAAAAva3l0aGUvZWRnZS9leHRlbmRzL3Byb3RlY3RlZC92aXJ0dWFsAAAAAAAAAAAAAAAva3l0aGUvZWRnZS9leHRlbmRzL3B1YmxpYwAAAAAAAC9reXRoZS9lZGdlL2V4dGVuZHMvcHVibGljL3ZpcnR1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I60MAMetDAAArgwAEK4MACCuDAAwrgwAaa4MACOtDACirgwADa0MALKuDADCrgwAI60MANKuDAALrwwARK8MAH2vDACNrwwAI60MAJ2vDAAjrQwAI60MACOtDAAjrQwA2a8MAOmvDAAjrQwA+a8MAAmwDAAZsAwAKbAMACOtDAANrQwADa0MADmwDABJsAwAI60MACOtDABZsAwAI60MACOtDAAjrQwADa0MAGmwDAAjrQwAebAMACOtDAANrQwAsrAMAO+wDAD/sAwAI60MACOtDAAPsQwAI60MACOtDAAjrQwAI60MACOtDAAjrQwAL60MAEixDACBsQwAurEMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAJ7IDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAKTIDABwyAwAcMgMAKrIDABwyAwAcMgMAHDIDACwyAwAtsgMALzIDABwyAwAcMgMAMLIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDADIyAwAzsgMANTIDADayAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwA4MgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHTIDABwyAwAcMgMAHDIDAB0yAwAcMgMAHDIDABwyAwAcMgMAHDIDADmyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHTIDABwyAwAcMgMAHDIDABwyAwAcMgMAIHIDABwyAwAcMgMAHDIDABwyAwAcMgMAHTIDADsyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDAB0yAwAcMgMAHDIDAB0yAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAIHIDABwyAwAcMgMAHDIDABwyAwAgcgMAHDIDABwyAwAcMgMAHDIDABwyAwAgcgMAHTIDABwyAwAcMgMAHDIDABwyAwA8sgMAHDIDAD4yAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDAD+yAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwABMkMAArJDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAIHIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDAB0yAwAcMgMAHDIDABwyAwAcMgMAHDIDAAcyQwAcMgMAHDIDABwyAwAcMgMACXJDAB0yAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDABwyAwAcMgMAHDIDACGEw0AqxMNAKsTDQCrEw0AqxMNAKsTDQCrEw0AqxMNAKsTDQCrEw0AqxMNALoTDQCrEw0AqxMNAKsTDQCrEw0AqxMNAKsTDQCrEw0AyRMNAKsTDQCrEw0AqxMNAKsTDQCrEw0AQxQNAKsTDQCrEw0AqxMNAKsTDQCrEw0AqxMNAFIUDQAAAAAAAAAAAAAAQEAtQxzr4jYaPwAAQOWcMKJCFMuuxEDCiDoAAAAA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eHA2V2Fsa2VySVBTMF9FRQAAAAAAAAAA///////////QWxAA0FsQANxbEADKWxAAylsQAMpbEADKWxAAIVwQADJeEADaXhAAb14QAPVeEACIXhAAPF8QAChhEADeYBAANmEQAJdeEAB4YRAAXl4QAMleEACJYRAAPF4QAOxgEABNXhAA/WAQAJphEAC1YRAADmEQAFtkEABkZBAAjGQQAG1kEAB2ZBAATjNyZTIxNFRvU3RyaW5nV2Fsa2VyRQAAAAAAAAAAAABBAAAAWgAAACAAAABhAAAAagAAAOD///9rAAAAawAAAL8gAABsAAAAcgAAAOD///9zAAAAcwAAAAwBAAB0AAAAegAAAOD///+1AAAAtQAAAOcCAADAAAAA1gAAACAAAADYAAAA3gAAACAAAADfAAAA3wAAAL8dAADgAAAA5AAAAOD////lAAAA5QAAAEYgAADmAAAA9gAAAOD////4AAAA/gAAAOD/////AAAA/wAAAHkAAAAAAQAALwEAAAEAAAAyAQAANwEAAAEAAAA5AQAASAEAAP////9KAQAAdwEAAAEAAAB4AQAAeAEAAIf///95AQAAfgEAAP////9/AQAAfwEAANT+//+AAQAAgAEAAMMAAACBAQAAgQEAANIAAACCAQAAhQEAAAEAAACGAQAAhgEAAM4AAACHAQAAiAEAAP////+JAQAAigEAAM0AAACLAQAAjAEAAP////+OAQAAjgEAAE8AAACPAQAAjwEAAMoAAACQAQAAkAEAAMsAAACRAQAAkgEAAP////+TAQAAkwEAAM0AAACUAQAAlAEAAM8AAACVAQAAlQEAAGEAAACWAQAAlgEAANMAAACXAQAAlwEAANEAAACYAQAAmQEAAAEAAACaAQAAmgEAAKMAAACcAQAAnAEAANMAAACdAQAAnQEAANUAAACeAQAAngEAAIIAAACfAQAAnwEAANYAAACgAQAApQEAAAEAAACmAQAApgEAANoAAACnAQAAqAEAAP////+pAQAAqQEAANoAAACsAQAArQEAAAEAAACuAQAArgEAANoAAACvAQAAsAEAAP////+xAQAAsgEAANkAAACzAQAAtgEAAP////+3AQAAtwEAANsAAAC4AQAAuQEAAAEAAAC8AQAAvQEAAAEAAAC/AQAAvwEAADgAAADEAQAAxAEAAAEAAADFAQAAxQEAAP/////GAQAAxgEAAP7////HAQAAxwEAAP/////IAQAAyAEAAAEAAADJAQAAyQEAAP7////KAQAAygEAAAEAAADLAQAAywEAAP/////MAQAAzAEAAP7////NAQAA3AEAAP/////dAQAA3QEAALH////eAQAA7wEAAAEAAADxAQAA8QEAAP/////yAQAA8gEAAAEAAADzAQAA8wEAAP7////0AQAA9QEAAAEAAAD2AQAA9gEAAJ/////3AQAA9wEAAMj////4AQAAHwIAAAEAAAAgAgAAIAIAAH7///8iAgAAMwIAAAEAAAA6AgAAOgIAACsqAAA7AgAAPAIAAP////89AgAAPQIAAF3///8+AgAAPgIAACgqAAA/AgAAQAIAAD8qAABBAgAAQgIAAP////9DAgAAQwIAAD3///9EAgAARAIAAEUAAABFAgAARQIAAEcAAABGAgAATwIAAAEAAABQAgAAUAIAAB8qAABRAgAAUQIAABwqAABSAgAAUgIAAB4qAABTAgAAUwIAAC7///9UAgAAVAIAADL///9WAgAAVwIAADP///9ZAgAAWQIAADb///9bAgAAWwIAADX///9cAgAAXAIAAE+lAABgAgAAYAIAADP///9hAgAAYQIAAEulAABjAgAAYwIAADH///9lAgAAZQIAACilAABmAgAAZgIAAESlAABoAgAAaAIAAC////9pAgAAaQIAAC3///9qAgAAagIAAESlAABrAgAAawIAAPcpAABsAgAAbAIAAEGlAABvAgAAbwIAAC3///9xAgAAcQIAAP0pAAByAgAAcgIAACv///91AgAAdQIAACr///99AgAAfQIAAOcpAACAAgAAgAIAACb///+DAgAAgwIAACb///+HAgAAhwIAACqlAACIAgAAiAIAACb///+JAgAAiQIAALv///+KAgAAiwIAACf///+MAgAAjAIAALn///+SAgAAkgIAACX///+dAgAAnQIAABWlAACeAgAAngIAABKlAABFAwAARQMAAFQAAABwAwAAcwMAAAEAAAB2AwAAdwMAAAEAAAB7AwAAfQMAAIIAAAB/AwAAfwMAAHQAAACGAwAAhgMAACYAAACIAwAAigMAACUAAACMAwAAjAMAAEAAAACOAwAAjwMAAD8AAACRAwAAoQMAACAAAACjAwAAowMAAB8AAACkAwAAqwMAACAAAACsAwAArAMAANr///+tAwAArwMAANv///+xAwAAsQMAAOD///+yAwAAsgMAAB4AAACzAwAAtAMAAOD///+1AwAAtQMAAEAAAAC2AwAAtwMAAOD///+4AwAAuAMAABkAAAC5AwAAuQMAAAUcAAC6AwAAugMAADYAAAC7AwAAuwMAAOD///+8AwAAvAMAAPn8//+9AwAAvwMAAOD////AAwAAwAMAABYAAADBAwAAwQMAADAAAADCAwAAwgMAAAEAAADDAwAAxQMAAOD////GAwAAxgMAAA8AAADHAwAAyAMAAOD////JAwAAyQMAAF0dAADKAwAAywMAAOD////MAwAAzAMAAMD////NAwAAzgMAAMH////PAwAAzwMAAAgAAADQAwAA0AMAAML////RAwAA0QMAACMAAADVAwAA1QMAANH////WAwAA1gMAAMr////XAwAA1wMAAPj////YAwAA7wMAAAEAAADwAwAA8AMAAKr////xAwAA8QMAALD////yAwAA8gMAAAcAAADzAwAA8wMAAIz////0AwAA9AMAAKT////1AwAA9QMAAKD////3AwAA+AMAAP/////5AwAA+QMAAPn////6AwAA+wMAAAEAAAD9AwAA/wMAAH7///8ABAAADwQAAFAAAAAQBAAALwQAACAAAAAwBAAAMQQAAOD///8yBAAAMgQAAE4YAAAzBAAAMwQAAOD///80BAAANAQAAE0YAAA1BAAAPQQAAOD///8+BAAAPgQAAEQYAAA/BAAAQAQAAOD///9BBAAAQgQAAEIYAABDBAAASQQAAOD///9KBAAASgQAADwYAABLBAAATwQAAOD///9QBAAAXwQAALD///9gBAAAYgQAAAEAAABjBAAAYwQAACQYAABkBAAAgQQAAAEAAACKBAAAvwQAAAEAAADABAAAwAQAAA8AAADBBAAAzgQAAP/////PBAAAzwQAAPH////QBAAALwUAAAEAAAAxBQAAVgUAADAAAABhBQAAhgUAAND///+gEAAAxRAAAGAcAADHEAAAxxAAAGAcAADNEAAAzRAAAGAcAADQEAAA+hAAAMALAAD9EAAA/xAAAMALAACgEwAA7xMAANCXAADwEwAA9RMAAAgAAAD4EwAA/RMAAPj///+AHAAAgBwAAJLn//+BHAAAgRwAAJPn//+CHAAAghwAAJzn//+DHAAAgxwAAJ7n//+EHAAAhBwAAAEAAACFHAAAhRwAAJ3n//+GHAAAhhwAAKTn//+HHAAAhxwAANvn//+IHAAAiBwAAMKJAACQHAAAuhwAAED0//+9HAAAvxwAAED0//95HQAAeR0AAASKAAB9HQAAfR0AAOYOAAAAHgAAYB4AAAEAAABhHgAAYR4AADoAAABiHgAAlR4AAAEAAACbHgAAmx4AAMX///+eHgAAnh4AAEHi//+gHgAA/x4AAAEAAAAAHwAABx8AAAgAAAAIHwAADx8AAPj///8QHwAAFR8AAAgAAAAYHwAAHR8AAPj///8gHwAAJx8AAAgAAAAoHwAALx8AAPj///8wHwAANx8AAAgAAAA4HwAAPx8AAPj///9AHwAARR8AAAgAAABIHwAATR8AAPj///9RHwAAUR8AAAgAAABTHwAAUx8AAAgAAABVHwAAVR8AAAgAAABXHwAAVx8AAAgAAABZHwAAWR8AAPj///9bHwAAWx8AAPj///9dHwAAXR8AAPj///9fHwAAXx8AAPj///9gHwAAZx8AAAgAAABoHwAAbx8AAPj///9wHwAAcR8AAEoAAAByHwAAdR8AAFYAAAB2HwAAdx8AAGQAAAB4HwAAeR8AAIAAAAB6HwAAex8AAHAAAAB8HwAAfR8AAH4AAACAHwAAhx8AAAgAAACIHwAAjx8AAPj///+QHwAAlx8AAAgAAACYHwAAnx8AAPj///+gHwAApx8AAAgAAACoHwAArx8AAPj///+wHwAAsR8AAAgAAACzHwAAsx8AAAkAAAC4HwAAuR8AAPj///+6HwAAux8AALb///+8HwAAvB8AAPf///++HwAAvh8AAIfj///DHwAAwx8AAAkAAADIHwAAyx8AAKr////MHwAAzB8AAPf////QHwAA0R8AAAgAAADYHwAA2R8AAPj////aHwAA2x8AAJz////gHwAA4R8AAAgAAADlHwAA5R8AAAcAAADoHwAA6R8AAPj////qHwAA6x8AAJD////sHwAA7B8AAPn////zHwAA8x8AAAkAAAD4HwAA+R8AAID////6HwAA+x8AAIL////8HwAA/B8AAPf///8mIQAAJiEAAIPi//8qIQAAKiEAACHf//8rIQAAKyEAAJrf//8yIQAAMiEAABwAAABOIQAATiEAAOT///9gIQAAbyEAABAAAABwIQAAfyEAAPD///+DIQAAhCEAAP////+2JAAAzyQAABoAAADQJAAA6SQAAOb///8ALAAALiwAADAAAAAwLAAAXiwAAND///9gLAAAYSwAAAEAAABiLAAAYiwAAAnW//9jLAAAYywAABrx//9kLAAAZCwAABnW//9lLAAAZSwAANXV//9mLAAAZiwAANjV//9nLAAAbCwAAP////9tLAAAbSwAAOTV//9uLAAAbiwAAAPW//9vLAAAbywAAOHV//9wLAAAcCwAAOLV//9yLAAAcywAAAEAAAB1LAAAdiwAAP////9+LAAAfywAAMHV//+ALAAA4ywAAAEAAADrLAAA7iwAAP/////yLAAA8ywAAAEAAAAALQAAJS0AAKDj//8nLQAAJy0AAKDj//8tLQAALS0AAKDj//9ApgAASqYAAAEAAABLpgAAS6YAAD12//9MpgAAbaYAAAEAAACApgAAm6YAAAEAAAAipwAAL6cAAAEAAAAypwAAb6cAAAEAAAB5pwAAfKcAAP////99pwAAfacAAPx1//9+pwAAh6cAAAEAAACLpwAAjKcAAP////+NpwAAjacAANha//+QpwAAk6cAAAEAAACWpwAAqacAAAEAAACqpwAAqqcAALxa//+rpwAAq6cAALFa//+spwAArKcAALVa//+tpwAAracAAL9a//+upwAArqcAALxa//+wpwAAsKcAAO5a//+xpwAAsacAANZa//+ypwAAsqcAAOta//+zpwAAs6cAAKADAAC0pwAAuacAAAEAAABTqwAAU6sAAGD8//9wqwAAv6sAADBo//8h/wAAOv8AACAAAABB/wAAWv8AAOD///8ABAEAJwQBACgAAAAoBAEATwQBANj///+wBAEA0wQBACgAAADYBAEA+wQBANj///+ADAEAsgwBAEAAAADADAEA8gwBAMD///+gGAEAvxgBACAAAADAGAEA3xgBAOD///9AbgEAX24BACAAAABgbgEAf24BAOD///8A6QEAIekBACIAAAAi6QEAQ+kBAN7///9dAQAAQQAAAFoAAAAgAAAAtQAAALUAAAAHAwAAwAAAANYAAAAgAAAA2AAAAN4AAAAgAAAAAAEAAC4BAAAAAABAMgEAADYBAAAAAABAOQEAAEcBAAABAABASgEAAHYBAAAAAABAeAEAAHgBAACH////eQEAAH0BAAABAABAfwEAAH8BAAD0/v//gQEAAIEBAADSAAAAggEAAIQBAAAAAABAhgEAAIYBAADOAAAAhwEAAIcBAAD/////iQEAAIoBAADNAAAAiwEAAIsBAAD/////jgEAAI4BAABPAAAAjwEAAI8BAADKAAAAkAEAAJABAADLAAAAkQEAAJEBAAD/////kwEAAJMBAADNAAAAlAEAAJQBAADPAAAAlgEAAJYBAADTAAAAlwEAAJcBAADRAAAAmAEAAJgBAAABAAAAnAEAAJwBAADTAAAAnQEAAJ0BAADVAAAAnwEAAJ8BAADWAAAAoAEAAKQBAAAAAABApgEAAKYBAADaAAAApwEAAKcBAAD/////qQEAAKkBAADaAAAArAEAAKwBAAABAAAArgEAAK4BAADaAAAArwEAAK8BAAD/////sQEAALIBAADZAAAAswEAALUBAAABAABAtwEAALcBAADbAAAAuAEAALgBAAABAAAAvAEAALwBAAABAAAAxAEAAMQBAAACAAAAxQEAAMUBAAD/////xwEAAMcBAAACAAAAyAEAAMgBAAABAAAAygEAAMoBAAACAAAAywEAANsBAAABAABA3gEAAO4BAAAAAABA8QEAAPEBAAACAAAA8gEAAPQBAAAAAABA9gEAAPYBAACf////9wEAAPcBAADI////+AEAAB4CAAAAAABAIAIAACACAAB+////IgIAADICAAAAAABAOgIAADoCAAArKgAAOwIAADsCAAD/////PQIAAD0CAABd////PgIAAD4CAAAoKgAAQQIAAEECAAD/////QwIAAEMCAAA9////RAIAAEQCAABFAAAARQIAAEUCAABHAAAARgIAAE4CAAAAAABARQMAAEUDAAB0AAAAcAMAAHIDAAAAAABAdgMAAHYDAAABAAAAfwMAAH8DAAB0AAAAhgMAAIYDAAAmAAAAiAMAAIoDAAAlAAAAjAMAAIwDAABAAAAAjgMAAI8DAAA/AAAAkQMAAKEDAAAgAAAAowMAAKsDAAAgAAAAwgMAAMIDAAABAAAAzwMAAM8DAAAIAAAA0AMAANADAADi////0QMAANEDAADn////1QMAANUDAADx////1gMAANYDAADq////2AMAAO4DAAAAAABA8AMAAPADAADK////8QMAAPEDAADQ////9AMAAPQDAADE////9QMAAPUDAADA////9wMAAPcDAAD/////+QMAAPkDAAD5////+gMAAPoDAAABAAAA/QMAAP8DAAB+////AAQAAA8EAABQAAAAEAQAAC8EAAAgAAAAYAQAAIAEAAAAAABAigQAAL4EAAAAAABAwAQAAMAEAAAPAAAAwQQAAM0EAAABAABA0AQAAC4FAAAAAABAMQUAAFYFAAAwAAAAoBAAAMUQAABgHAAAxxAAAMcQAABgHAAAzRAAAM0QAABgHAAA+BMAAP0TAAD4////gBwAAIAcAACy5///gRwAAIEcAACz5///ghwAAIIcAAC85///gxwAAIQcAAC+5///hRwAAIUcAAC95///hhwAAIYcAADE5///hxwAAIccAADc5///iBwAAIgcAADDiQAAkBwAALocAABA9P//vRwAAL8cAABA9P//AB4AAJQeAAAAAABAmx4AAJseAADG////nh4AAJ4eAABB4v//oB4AAP4eAAAAAABACB8AAA8fAAD4////GB8AAB0fAAD4////KB8AAC8fAAD4////OB8AAD8fAAD4////SB8AAE0fAAD4////WR8AAFkfAAD4////Wx8AAFsfAAD4////XR8AAF0fAAD4////Xx8AAF8fAAD4////aB8AAG8fAAD4////iB8AAI8fAAD4////mB8AAJ8fAAD4////qB8AAK8fAAD4////uB8AALkfAAD4////uh8AALsfAAC2////vB8AALwfAAD3////vh8AAL4fAAD74///yB8AAMsfAACq////zB8AAMwfAAD3////2B8AANkfAAD4////2h8AANsfAACc////6B8AAOkfAAD4////6h8AAOsfAACQ////7B8AAOwfAAD5////+B8AAPkfAACA////+h8AAPsfAACC/////B8AAPwfAAD3////JiEAACYhAACj4v//KiEAACohAABB3///KyEAACshAAC63///MiEAADIhAAAcAAAAYCEAAG8hAAAQAAAAgyEAAIMhAAD/////tiQAAM8kAAAaAAAAACwAAC4sAAAwAAAAYCwAAGAsAAABAAAAYiwAAGIsAAAJ1v//YywAAGMsAAAa8f//ZCwAAGQsAAAZ1v//ZywAAGssAAABAABAbSwAAG0sAADk1f//biwAAG4sAAAD1v//bywAAG8sAADh1f//cCwAAHAsAADi1f//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PR49Hj8ePx5BHkEeQx5DHkUeRR5HHkceSR5JHkseSx5NHk0eTx5PHlEeUR5THlMeVR5VHlceVx5ZHlkeWx5bHl0eXR5fHl8eYR5hHmMeYx5lHmUeZx5nHmkeaR5rHmsebR5tHm8ebx5xHnEecx5zHnUedR53HnceeR55Hnseex59Hn0efx5/HoEegR6DHoMehR6FHocehx6JHokeix6LHo0ejR6PHo8ekR6RHpMekx6VHp0enx6fHqEeoR6jHqMepR6lHqcepx6pHqkeqx6rHq0erR6vHq8esR6xHrMesx61HrUetx63HrkeuR67HrsevR69Hr8evx7BHsEewx7DHsUexR7HHsceyR7JHsseyx7NHs0ezx7PHtEe0R7THtMe1R7VHtce1x7ZHtke2x7bHt0e3R7fHt8e4R7hHuMe4x7lHuUe5x7nHuke6R7rHuse7R7tHu8e7x7xHvEe8x7zHvUe9R73Hvce+R75Hvse+x79Hv0e/x4HHxAfFR8gHycfMB83H0AfRR9QH1cfYB9nH3AffR+AH4cfkB+XH6Afpx+wH7Qfth+3H74fvh/CH8Qfxh/HH9Af0x/WH9cf4B/nH/If9B/2H/cfCiEKIQ4hDyETIRMhLyEvITQhNCE5ITkhPCE9IUYhSSFOIU4hhCGEITAsXixhLGEsZSxmLGgsaCxqLGosbCxsLHEscSxzLHQsdix7LIEsgSyDLIMshSyFLIcshyyJLIksiyyLLI0sjSyPLI8skSyRLJMskyyVLJUslyyXLJksmSybLJssnSydLJ8snyyhLKEsoyyjLKUspSynLKcsqSypLKssqyytLK0sryyvLLEssSyzLLMstSy1LLcstyy5LLksuyy7LL0svSy/LL8swSzBLMMswyzFLMUsxyzHLMksySzLLMsszSzNLM8szyzRLNEs0yzTLNUs1SzXLNcs2SzZLNss2yzdLN0s3yzfLOEs4SzjLOQs7CzsLO4s7izzLPMsAC0lLSctJy0tLS0tQaZBpkOmQ6ZFpkWmR6ZHpkmmSaZLpkumTaZNpk+mT6ZRplGmU6ZTplWmVaZXplemWaZZplumW6Zdpl2mX6ZfpmGmYaZjpmOmZaZlpmemZ6Zppmmma6Zrpm2mbaaBpoGmg6aDpoWmhaaHpoemiaaJpoumi6aNpo2mj6aPppGmkaaTppOmlaaVppeml6aZppmm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QwFDAUUBRQFHAUcBSgFKAUwBTAFOAU4BUAFQAVIBUgFUAVQBVgFWAVgBWAFaAVoBXAFcAV4BXgFgAWABYgFiAWQBZAFmAWYBaAFoAWoBagFsAWwBbgFuAXABcAFyAXIBdAF0AXYBdgF4AXkBewF7AX0BfQGBAYIBhAGEAYYBhwGJAYsBjgGRAZMBlAGWAZgBnAGdAZ8BoAGiAaIBpAGkAaYBpwGpAakBrAGsAa4BrwGxAbMBtQG1AbcBuAG8AbwBxAHEAccBxwHKAcoBzQHNAc8BzwHRAdEB0wHTAdUB1QHXAdcB2QHZAdsB2wHeAd4B4AHgAeIB4gHkAeQB5gHmAegB6AHqAeoB7AHsAe4B7gHxAfEB9AH0AfYB+AH6AfoB/AH8Af4B/gEAAgACAgICAgQCBAIGAgYCCAIIAgoCCgIMAgwCDgIOAhACEAISAhICFAIUAhYCFgIYAhgCGgIaAhwCHAIeAh4CIAIgAiICIgIkAiQCJgImAigCKAIqAioCLAIsAi4CLgIwAjACMgIyAjoCOwI9Aj4CQQJBAkMCRgJIAkgCSgJKAkwCTAJOAk4CcANwA3IDcgN2A3YDfwN/A4YDhgOIA4oDjAOMA44DjwORA6EDowOrA88DzwPSA9QD2APYA9oD2gPcA9wD3gPeA+AD4APiA+ID5APkA+YD5gPoA+gD6gPqA+wD7APuA+4D9AP0A/cD9wP5A/oD/QMvBGAEYARiBGIEZARkBGYEZgRoBGgEagRqBGwEbARuBG4EcARwBHIEcgR0BHQEdgR2BHgEeAR6BHoEfAR8BH4EfgSABIAEigSKBIwEjASOBI4EkASQBJIEkgSUBJQElgSWBJgEmASaBJoEnAScBJ4EngSgBKAEogSiBKQEpASmBKYEqASoBKoEqgSsBKwErgSuBLAEsASyBLIEtAS0BLYEtgS4BLgEugS6BLwEvAS+BL4EwATBBMMEwwTFBMUExwTHBMkEyQTLBMsEzQTNBNAE0ATSBNIE1ATUBNYE1gTYBNgE2gTaBNwE3ATeBN4E4ATgBOIE4gTkBOQE5gTmBOgE6ATqBOoE7ATsBO4E7gTwBPAE8gTyBPQE9AT2BPYE+AT4BPoE+gT8BPwE/gT+BAAFAAUCBQIFBAUEBQYFBgUIBQgFCgUKBQwFDAUOBQ4FEAUQBRIFEgUUBRQFFgUWBRgFGAUaBRoFHAUcBR4FHgUgBSAFIgUiBSQFJAUmBSYFKAUoBSoFKgUsBSwFLgUuBTEFVgWgEMUQxxDHEM0QzRCgE/UTkBy6HL0cvxwAHgAeAh4CHgQeBB4GHgYeCB4IHgoeCh4MHgweDh4OHhAeEB4SHhIeFB4UHhYeFh4YHhgeGh4aHhweHB4eHh4eIB4gHiIeIh4kHiQeJh4mHigeKB4qHioeLB4sHi4eLh4wHjAeMh4yHjQeNB42HjYeOB44HjoeOh48HjwePh4+HkAeQB5CHkIeRB5EHkYeRh5IHkgeSh5KHkweTB5OHk4eUB5QHlIeUh5UHlQeVh5WHlgeWB5aHloeXB5cHl4eXh5gHmAeYh5iHmQeZB5mHmYeaB5oHmoeah5sHmwebh5uHnAecB5yHnIedB50HnYedh54Hngeeh56HnwefB5+Hn4egB6AHoIegh6EHoQehh6GHogeiB6KHooejB6MHo4ejh6QHpAekh6SHpQelB6eHp4eoB6gHqIeoh6kHqQeph6mHqgeqB6qHqoerB6sHq4erh6wHrAesh6yHrQetB62HrYeuB64Hroeuh68Hrwevh6+HsAewB7CHsIexB7EHsYexh7IHsgeyh7KHswezB7OHs4e0B7QHtIe0h7UHtQe1h7WHtge2B7aHtoe3B7cHt4e3h7gHuAe4h7iHuQe5B7mHuYe6B7oHuoe6h7sHuwe7h7uHvAe8B7yHvIe9B70HvYe9h74Hvge+h76Hvwe/B7+Hv4eCB8PHxgfHR8oHy8fOB8/H0gfTR9ZH1kfWx9bH10fXR9fH18faB9vH7gfux/IH8sf2B/bH+gf7B/4H/sfAiECIQchByELIQ0hECESIRUhFSEZIR0hJCEkISYhJiEoISghKiEtITAhMyE+IT8hRSFFIYMhgyEALC4sYCxgLGIsZCxnLGcsaSxpLGssayxtLHAscixyLHUsdSx+LIAsgiyCLIQshCyGLIYsiCyILIosiiyMLIwsjiyOLJAskCySLJIslCyULJYsliyYLJgsmiyaLJwsnCyeLJ4soCygLKIsoiykLKQspiymLKgsqCyqLKosrCysLK4sriywLLAssiyyLLQstCy2LLYsuCy4LLosuiy8LLwsviy+LMAswCzCLMIsxCzELMYsxizILMgsyizKLMwszCzOLM4s0CzQLNIs0izULNQs1izWLNgs2CzaLNos3CzcLN4s3izgLOAs4iziLOss6yztLO0s8izyLECmQKZCpkKmRKZEpkamRqZIpkimSqZKpkymTKZOpk6mUKZQplKmUqZUplSmVqZWplimWKZaplqmXKZcpl6mXqZgpmCmYqZipmSmZKZmpmamaKZopmqmaqZspmymgKaApoKmgqaEpoSmhqaGpoimiKaKpoqmjKaMpo6mjqaQppCmkqaSppSmlKaWppammKaYppqmmqYipyKnJKckpyanJqcopyinKqcqpyynLKcupy6nMqcypzSnNKc2pzanOKc4pzqnOqc8pzynPqc+p0CnQKdCp0KnRKdEp0anRqdIp0inSqdKp0ynTKdOp06nUKdQp1KnUqdUp1SnVqdWp1inWKdap1qnXKdcp16nXqdgp2CnYqdip2SnZKdmp2anaKdop2qnaqdsp2ynbqdup3mnead7p3unfad+p4CngKeCp4KnhKeEp4anhqeLp4unjaeNp5CnkKeSp5KnlqeWp5inmKeap5qnnKecp56nnqegp6Cnoqeip6SnpKemp6anqKeop6qnrqewp7Sntqe2p7inuKch/zr/AAAAAAAAAAAABAEAJwQBALAEAQDTBAEAgAwBALIMAQCgGAEAvxgBAEBuAQBfbgEAANQBABnUAQA01AEATdQBAGjUAQCB1AEAnNQBAJzUAQCe1AEAn9QBAKLUAQCi1AEApdQBAKbUAQCp1AEArNQBAK7UAQC11AEA0NQBAOnUAQAE1QEABdUBAAfVAQAK1QEADdUBABTVAQAW1QEAHNUBADjVAQA51QEAO9UBAD7VAQBA1QEARNUBAEbVAQBG1QEAStUBAFDVAQBs1QEAhdUBAKDVAQC51QEA1NUBAO3VAQAI1gEAIdYBADzWAQBV1gEAcNYBAInWAQCo1gEAwNYBAOLWAQD61gEAHNcBADTXAQBW1wEAbtcBAJDXAQCo1wEAytcBAMrXAQAA6QEAIekBAIACAQCcAgEAIAkBADkJAQA/CQEAPwkBAAADbwODBIkEkQW9Bb8FvwXBBcIFxAXFBccFxwUQBhoGSwZfBnAGcAbWBtwG3wbkBucG6AbqBu0GEQcRBzAHSgemB7AH6wfzB/0H/QcWCBkIGwgjCCUIJwgpCC0IWQhbCNMI4QjjCAMJOgk8CT4JTwlRCVcJYgljCYEJgwm8CbwJvgnECccJyAnLCc0J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yXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQBhaxEAYWsRAGFrEQBhaxEAYWsRAGFrEQBhaxEAYWsRAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQBBbBEAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERAMlxEQDJcREA6m0RAMlxEQDJcREA0msRAMlxEQDJcREAyXERAG1wEQDJcREAyXERAMlxEQDJcREAY3ARABBrEQDJcREAyXERAMlxEQBFcBEAyXERAMlxEQDJcREAyXERAMlxEQDJcREAyXERADdsEQDJcREAyXERAMlxEQBPcBEAyXERAEtsEQBVbBEAWXARAMlxEQDSaxEACHgRACR4EQDAdxEAwHcRAC94EQDAdxEAwHcRAMB3EQDAdxEAwHcRAMB3EQDAdxEAwHcRAMB3EQDAdxEAwHcRAMB3EQDAdxEAwHcRAMB3EQDAdxEAwHcRAMB3EQDAdxEAwHcRADp4EQDAdxEAwHcRAMB3EQDAdxEASHgRAHF4EQDWeBEAmXgRAJl4EQDieBEAmXgRAJl4EQCZeBEAmXgRAJl4EQCZeBEAmXgRAJl4EQCZeBEAmXgRAJl4EQCZeBEAmXgRAJl4EQCZeBEAmXgRAJl4EQCZeBEAmXgRAJl4EQDueBEAmXgRAJl4EQCZeBEAmXgRAPp4EQAKghEACoMRAJuBEQDFgREAAAAAAAAAAAAAAAAA/////////////////////////////////////////////////////////z7///8/NDU2Nzg5Ojs8Pf////////8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGf///////xobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIz/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////z7//zQ1Njc4OTo7PD3/////////AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBn/////P/8aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAICBAQCBAQEBAQEBAQEBAQEBAQEBAQEAQECAQEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIDBAUGBwgJAAAAAAAAAAoLDA0ODwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgsMDQ4PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAQEBAQEBAaEhISEhAQEBAQEBAQEBAQEBAQEBAQEAoEBAQEBAQEBAQEBAQEBAQhISEhISEhISEhBAQEBAQEBCFhYWFhYUFBQUFBQUFBQUFBQUFBQUFBQUFBRAQEBAQ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EAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAQAAAAAAAAD4AQAAAAAAAAD+AQAAAAAA+P8BAAAAAAAAAAQAAAAAACKYEgCCpBIACZkSAIKkEgBpmBIAgqQSADuaEgALpxIA7bASAMGnEgDtsBIAPqcSAO2wEgDVqBIAAr4SAE6+EgAovhIAO74SABW+EgDwvxIAPMASABbAEgApwBIAA8ASAGNzZGlvdXhYZkZlRWdHYUFucAAAAAAAAP////////////////////8BAAEBAAAAAAAAAAAAAAAAAAAAAAABAQCAAAAAJgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQEBAQAAAAAAAAAAAAAAAAAAAAAAAAABAAB/AAAAJgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAADvsEgBi7BIAfuwSAJbsEgCy7BIAyuwSAOLsEgAS7RIA+uwSAFPsEgAAAAAAAAAAAP//////////////////////////////////////////xP//yP/////////C/8H//9D/////////////////////D////wsJDf////+E//////////////8H//////////8O/wACCggMgAOF/4L/EAQRiP8BhwX//wb/hv////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9jc2Rpb3V4WGZGZUVnR2FBbnAAAMz4EgDS+BIA0vgSANL4EgDc+BIA4vgSAOj4EgDS+BIA0vgSANL4EgDS+BIA0vgSANL4EgDS+BIA0vgSANL4EgDS+BIA0vgSANL4EgDS+BIA0vgSANL4EgDS+BIA7vgSANL4EgDS+BIA0vgSANL4EgDS+BIA0vgSANL4EgDS+BIA9PgSANL4EgDb+BIA+vgSAAD5EgAG+RIADPkSANL4EgAS+RIA0vgSANL4EgDS+BIA0vgSABj5EgAe+RIAJPkSANL4EgDS+BIAKvkSANL4EgAw+RIA0vgSANL4EgA2+RIAAAAAAAAAAAAAAAAAOw0TAEMNEwBLDRMAUw0TAN8NEwANDhMANg4TAHwOEwCfDhMAug4TAAAAAAAAAAAAMAAxADIAMwA0ADUANgA3ADgAOQAAAAAAAAAAAAAAAAAwMTIzNDU2Nzg5YWJjZGVmAAAAAAAAAAAAAAAAAAAAADAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmMTAxMTEyMTMxNDE1MTYxNzE4MTkxYTFiMWMxZDFlMWYyMDIxMjIyMzI0MjUyNjI3MjgyOTJhMmIyYzJkMmUyZjMwMzEzMjMzMzQzNTM2MzczODM5M2EzYjNjM2QzZTNmNDA0MTQyNDM0NDQ1NDY0NzQ4NDk0YTRiNGM0ZDRlNGY1MDUxNTI1MzU0NTU1NjU3NTg1OTVhNWI1YzVkNWU1ZjYwNjE2MjYzNjQ2NTY2Njc2ODY5NmE2YjZjNmQ2ZTZmNzA3MTcyNzM3NDc1NzY3Nzc4Nzk3YTdiN2M3ZDdlN2Y4MDgxODI4Mzg0ODU4Njg3ODg4OThhOGI4YzhkOGU4ZjkwOTE5MjkzOTQ5NTk2OTc5ODk5OWE5YjljOWQ5ZTlmYTBhMWEyYTNhNGE1YTZhN2E4YTlhYWFiYWNhZGFlYWZiMGIxYjJiM2I0YjViNmI3YjhiOWJhYmJiY2JkYmViZmMwYzFjMmMzYzRjNWM2YzdjOGM5Y2FjYmNjY2RjZWNmZDBkMWQyZDNkNGQ1ZDZkN2Q4ZDlkYWRiZGNkZGRlZGZlMGUxZTJlM2U0ZTVlNmU3ZThlOWVhZWJlY2VkZWVlZmYwZjFmMmYzZjRmNWY2ZjdmOGY5ZmFmYmZjZmRmZWZmAAAAAAAAAAAAAAAAAAAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AAAAAAAAAAABAAAABQAAABkAAAB9AAAAcQIAADUMAAAJPQAALTEBAOH1BQBlzR0A+QKVAN0O6QJRSo0OAAAAAAAAAAAAAAAAJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkAAECAwQFBgcICSQkJCQkJCQKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQkJCQkJAoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAAAAAAAAAAA////P6qqqir///8fmZmZGVVVVRWSJEkS////D47jOA7MzMwMuuiiC6qqqgqJndgJSZIkCYiIiAj///8Hh4eHB8dxHAevobwGZmZmBoZhGAZddNEFFrKQBVVVVQVRuB4FxE7sBC+hvQQkSZIEWO5pBERERARCCCEE////Az744APDw8MDgzqoA+M4jgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBWVVXVAAAA4GdmZuarqqrqbtu27QAAAPByHMfxNDMz80YXXfRWVVX1d2In9rdt2/Z4d3f3AAAA+Hl4ePg5juP4UV5D+ZqZmfl6nuf5o4su+upNb/qrqqr6r0fh+jyxE/vRXkL73LZt+6gRlvu8u7v7vvfe+wAAAPzCBx/8PTw8/H3FV/wdx3H8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8/qqqqqqqqqir/////////H5mZmZmZmZkZVVVVVVVVVRVJkiRJkiRJEv////////8POI7jOI7jOA7MzMzMzMzMDOiiiy666KILqqqqqqqqqgrYiZ3YiZ3YCSRJkiRJkiQJiIiIiIiIiAj/////////B4eHh4eHh4cHHMdxHMdxHAcaymsor6G8BmZmZmZmZmYGGIZhGIZhGAZ00UUXXXTRBQtZyEIWspAFVVVVVVVVVQW4HoXrUbgeBezETuzETuwEEtpLaC+hvQSSJEmSJEmSBITlnkZY7mkERERERERERAQIIYQQQgghBP////////8D+OCDDz744APDw8PDw8PDA6iDOqiDOqgDjuM4juM4jgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwFZVVVVVVVXVAAAAAAAAAOBnZmZmZmZm5quqqqqqqqrqt23btm3btu0AAAAAAAAA8MhxHMdxHMfxNDMzMzMzM/MYXXTRRRdd9FZVVVVVVVX1KHZiJ3ZiJ/bctm3btm3b9nh3d3d3d3f3AAAAAAAAAPh5eHh4eHh4+OQ4juM4juP45jWU11BeQ/mamZmZmZmZ+eh5nud5nuf5jC666KKLLvr1pje96U1v+quqqqqqqqr6SOF6FK5H4foUO7ETO7ET++4ltJfQXkL7btu2bdu2bft8GmG5pxGW+7y7u7u7u7v7+N5777333vsAAAAAAAAA/AgffPDBBx/8PTw8PDw8PPxYfMVXfMVX/HIcx3Ecx3H8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////////////////z+qqqqqqqqqqqqqqqqqqqoq////////////////////H5mZmZmZmZmZmZmZmZmZmRlVVVVVVVVVVVVVVVVVVVUVkiRJkiRJkiRJkiRJkiRJEv///////////////////w+O4ziO4ziO4ziO4ziO4zgOzMzMzMzMzMzMzMzMzMzMDIsuuuiiiy666KKLLrrooguqqqqqqqqqqqqqqqqqqqoKiZ3YiZ3YiZ3YiZ3YiZ3YCUmSJEmSJEmSJEmSJEmSJAmIiIiIiIiIiIiIiIiIiIgI////////////////////B4eHh4eHh4eHh4eHh4eHhwfHcRzHcRzHcRzHcRzHcRwHymsor6G8hvIaymsor6G8BmZmZmZmZmZmZmZmZmZmZgaGYRiGYRiGYRiGYRiGYRgGRRdddNFFF1100UUXXXTRBUIWspCFLGQhC1nIQhaykAVVVVVVVVVVVVVVVVVVVVUFhetRuB6F61G4HoXrUbgeBcRO7MRO7MRO7MRO7MRO7ATaS2gvob2E9hLaS2gvob0EJEmSJEmSJEmSJEmSJEmSBGmE5Z5GWO5phOWeRljuaQREREREREREREREREREREQEhBBCCCGEEEIIIYQQQgghBP///////////////////wODDz744IMPPvjggw8++OADw8PDw8PDw8PDw8PDw8PDA4M6qIM6qIM6qIM6qIM6qAPjOI7jOI7jOI7jOI7jOI4DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAVlVVVVVVVVVVVVVVVVVV1QAAAAAAAAAAAAAAAAAAAOBnZmZmZmZmZmZmZmZmZmbmq6qqqqqqqqqqqqqqqqqq6m7btm3btm3btm3btm3btu0AAAAAAAAAAAAAAAAAAADwchzHcRzHcRzHcRzHcRzH8TQzMzMzMzMzMzMzMzMzM/N10UUXXXTRRRdddNFFF130VlVVVVVVVVVVVVVVVVVV9XdiJ3ZiJ3ZiJ3ZiJ3ZiJ/a3bdu2bdu2bdu2bdu2bdv2eHd3d3d3d3d3d3d3d3d39wAAAAAAAAAAAAAAAAAAAPh5eHh4eHh4eHh4eHh4eHj4OY7jOI7jOI7jOI7jOI7j+DaU11BeQ3kN5TWU11BeQ/mamZmZmZmZmZmZmZmZmZn5ep7neZ7neZ7neZ7neZ7n+bvooosuuuiiiy666KKLLvq+6U1vetOb3vSmN73pTW/6q6qqqqqqqqqqqqqqqqqq+nsUrkfhehSuR+F6FK5H4fo8sRM7sRM7sRM7sRM7sRP7JrSX0F5CewntJbSX0F5C+9y2bdu2bdu2bdu2bdu2bfuXexphuacRlnsaYbmnEZb7vLu7u7u7u7u7u7u7u7u7+3zvvffee++9995777333vsAAAAAAAAAAAAAAAAAAAD8ffDBBx988MEHH3zwwQcf/D08PDw8PDw8PDw8PDw8PPx9xVd8xVd8xVd8xVd8xVf8HcdxHMdxHMdxHMdxHMdx/AAAAAAAAAAA////f1VVVVX///8/MzMzM6qqqiokSZIk////HxzHcRyZmZkZdNFFF1VVVRUTO7ETkiRJEhERERH///8PDw8PD47jOA5eQ3kNzMzMDAzDMAy66KILLGQhC6qqqgqjcD0KiZ3YCV5CewlJkiQJsNzTCIiIiAiEEEII////B3zwwQeHh4cHB3VQB8dxHAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////39VVVVVVVVVVf////////8/MzMzMzMzMzOqqqqqqqqqKpIkSZIkSZIk/////////x9xHMdxHMdxHJmZmZmZmZkZ0UUXXXTRRRdVVVVVVVVVFbETO7ETO7ETSZIkSZIkSRIREREREREREf////////8PDw8PDw8PDw84juM4juM4DjWU11BeQ3kNzMzMzMzMzAwwDMMwDMMwDOiiiy666KILFrKQhSxkIQuqqqqqqqqqCnA9CtejcD0K2Imd2Imd2AkltJfQXkJ7CSRJkiRJkiQJCMs9jbDc0wiIiIiIiIiICBBCCCGEEEII/////////wfwwQcffPDBB4eHh4eHh4cHUAd1UAd1UAccx3Ecx3EcBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////9/VVVVVVVVVVVVVVVVVVVVVf///////////////////z8zMzMzMzMzMzMzMzMzMzMzqqqqqqqqqqqqqqqqqqqqKiRJkiRJkiRJkiRJkiRJkiT///////////////////8fHMdxHMdxHMdxHMdxHMdxHJmZmZmZmZmZmZmZmZmZmRkXXXTRRRdddNFFF1100UUXVVVVVVVVVVVVVVVVVVVVFRM7sRM7sRM7sRM7sRM7sROSJEmSJEmSJEmSJEmSJEkSEREREREREREREREREREREf///////////////////w8PDw8PDw8PDw8PDw8PDw8PjuM4juM4juM4juM4juM4DpTXUF5DeQ3lNZTXUF5DeQ3MzMzMzMzMzMzMzMzMzMwMDMMwDMMwDMMwDMMwDMMwDIsuuuiiiy666KKLLrrooguFLGQhC1nIQhaykIUsZCELqqqqqqqqqqqqqqqqqqqqCgrXo3A9CtejcD0K16NwPQqJndiJndiJndiJndiJndgJtJfQXkJ7Ce0ltJfQXkJ7CUmSJEmSJEmSJEmSJEmSJAnTCMs9jbDc0wjLPY2w3NMIiIiIiIiIiIiIiIiIiIiICAghhBBCCCGEEEIIIYQQQgj///////////////////8HBx988MEHH3zwwQcffPDBB4eHh4eHh4eHh4eHh4eHhwcHdVAHdVAHdVAHdVAHdVAHx3Ecx3Ecx3Ecx3Ecx3EcB1rWO5LWU/Tu+GVlG2a0WJV2vz6if+GuulNvzorfmVrplAXBtiug2JH5RnGkNshOtreYjU1EeuLjcn94sGqMbY5Pn5Zche8IsiNHvLNmK4ve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3gLhAuQC6ALrAu4C8gL1AvgC/AL/AgIDBgMJAwwDEAMTAxYDGgMdAyADJAMnAyoDLQMxAzQDNwM7Az4DQQNFA0gDSwNPA1IDVQNZA1wDXwNjA2YDaQNtA3ADcwN3A3oDfQOBA4QDhwOLA44DkQOUA5gDmwOeA6IDpQOoA6wDrwOyA7YDuQO8A8ADAAAAAAAAAAAAAN8KEwBNCxMATQsTAE0LEwBNCxMALwsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMATQsTAE0LEwBNCxMA3woTAE0LEwBNCxMATQsTAE0LEwAvCxMAAAAAAAAAAAD///////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0OD///////////////////////////////////CgsMDQ4P////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AQAAAAUAAAAZAAAAfQAAAHECAAA1DAAACT0AAC0xAQDh9QUAZc0dAPkClQDdDukCUUqNDpVzwkgAAAAAAAAAAAEAAAAKAAAAZAAAAOgDAAAQJwAAoIYBAEBCDwCAlpgAAOH1BQDKmjsAAAAAAAAAAJ0HEPqTx2VnSfbZly0kZGYUm5MpEA/DKcUJ+MQq8vN7NK69ZxcFNK1fG502kxXeENFgspLH9/+exg7egVZduq6kZAZBenNAT2+E0yBzD9AGLRcb/xzXoRMXdqDvPS1of8CQjP/nMQE//rncP3cBe5GnB8QWnWvAAplxD5bsZ2YF2O964My58oDj9XOCSiGa6wWAs0DUekcO5gh9Jx6xKPqE1/fTW4McAdXZI/fz04Iy0VcI4CWdZWnPF/EsB23aJBcUTZXtjF0+ZreLeuZaeP3SNlRkNIvHQBcSFZT36XIA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dGVybmFsNGNjdHoxMl9HTE9CQUxfX05fMTIxQW5kcm9pZFpvbmVJbmZvU291cmNlRQBONGFic2wxMmx0c18yMDIxMTEwMjEzdGltZV9pbnRlcm5hbDRjY3R6MTJfR0xPQkFMX19OXzEyMUZ1Y2hzaWFab25lSW5mb1NvdXJjZUUAWk40YWJzbDEybHRzXzIwMjExMTAyMTN0aW1lX2ludGVybmFsNGNjdHoxMlRpbWVab25lSW5mbzRMb2FkRVJLTlN0M19fMTEyYmFzaWNfc3RyaW5nSWNOUzRfMTFjaGFyX3RyYWl0c0ljRUVOUzRfOWFsbG9jYXRvckljRUVFRUUzJF8xAE5TdDNfXzExMF9fZnVuY3Rpb242X19iYXNlSUZOU18xMHVuaXF1ZV9wdHJJTjRhYnNsMTJsdHNfMjAyMTExMDIxM3RpbWVfaW50ZXJuYWw0Y2N0ejE0Wm9uZUluZm9Tb3VyY2VFTlNfMTRkZWZhdWx0X2RlbGV0ZUlTN19FRUVFUktOU18xMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFRUVFAE5TdDNfXzExNGJhc2ljX2lmc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzExM2Jhc2ljX2ZpbGVidWZJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAMDEyMzQ1Njc4OQAwMTIzNDU2Nzg5AE40YWJzbDEybHRzXzIwMjExMTAyMTN0aW1lX2ludGVybmFsNGNjdHoxNFpvbmVJbmZvU291cmNlRQAAAAAAAAAAAAAAAAAAAABONGFic2wxMmx0c18yMDIxMTEwMjEzdGltZV9pbnRlcm5hbDRjY3R6MTJUaW1lWm9uZUxpYkNFAAAAAAAAAAAA/////x8AAAAcAAAAHwAAAB4AAAAfAAAAHgAAAB8AAAAfAAAAHgAAAB8AAAAeAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0oRYANKEWAAOhFgD8oBYAJKAWACSgFgA94xYALeMWAB3jFgAP4xYABOMWAPbiFgDq4hYAw+QWALzkFgCw5BYApOQWAJ3kFgCW5BYAiuQWADfnFgAn5xYAF+cWAAnnFgD+5hYA8OYWAOTmFgDk6BYA3egWANHoFgDF6BYAvugWALfoFgCr6BYAmxsXAD8cFwAhHhcAIR4XACEeFwDAHBcAIR4XACEeFwAhHhcATh0XAFczGQCNMxkAlDMZAJszGQD+whkAWsYZAFrGGQBaxhkAWsYZAFrGGQBaxhkAWsYZADLDGQCnwxkAWsYZAFrGGQBaxhkAWsYZAFrGGQBaxhkA+8MZADnEGQBxxBkA4cQZAFrGGQBaxhkAWsYZAFrGGQA+xRkApqampqampqamWVmmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAACAQAAAgAAABABAAAQAAAAEgEAABIAAIAAAQCAAAAAgAIBAIACAACAEAEAgBAAAIASAQCAEgIAAAADAAAAAgAAAgMAAAICAAAQAwAAEAIAABIDAAASAgCAAAMAgAACAIACAwCAAgIAgBADAIAQAgCAEgMAgBIAAACAAQAAgAAAAIIBAACCAAAAkAEAAJAAAACSAQAAkgAAgIABAICAAACAggEAgIIAAICQAQCAkAAAgJIBAICSAgAAgAMAAIACAACCAwAAggIAAJADAACQAgAAkgMAAJICAICAAwCAgAIAgIIDAICCAgCAkAMAgJACAICSAwCAkgAAAAAAAAAAIAIAAAACAAAgAAIAAAACACACAgAAAgIAIEAAAABAAAAgQgAAAEIAACBAAgAAQAIAIEICAABCAgAgAEAAAABAACACQAAAAkAAIABCAAAAQgAgAkIAAAJCACBAQAAAQEAAIEJAAABCQAAgQEIAAEBCACBCQgAAQkIAIAAAAQAAAAEgAgABAAIAASAAAgEAAAIBIAICAQACAgEgQAABAEAAASBCAAEAQgABIEACAQBAAgEgQgIBAEICASAAQAEAAEABIAJAAQACQAEgAEIBAABCASACQgEAAkIBIEBAAQBAQAEgQkABAEJAASBAQgEAQEIBIEJCAQBCQgEgAAAAABAAAAAAAEAAEABAAAAAABAQAAAQAABAEBAAQBAgAAAAMAAAACAAQAAwAEAAIAAAEDAAABAgAEAQMABAEAAgAAAQIAAAACBAABAgQAAAIAAQECAAEAAgQBAQIEAQICAAADAgAAAgIEAAMCBAACAgABAwIAAQICBAEDAgQBAAAACAEAAAgAAAQIAQAECAAAAAkBAAAJAAAECQEABAkCAAAIAwAACAIABAgDAAQIAgAACQMAAAkCAAQJAwAECQACAAgBAgAIAAIECAECBAgAAgAJAQIACQACBAkBAgQJAgIACAMCAAgCAgQIAwIECAICAAkDAgAJAgIECQMCBAkAAAAAAAAQAAABAAAAARAACAAAAAgAEAAIAQAACAEQAAAQAAAAEBAAABEAAAAREAAIEAAACBAQAAgRAAAIERAAAAAABAAAEAQAAQAEAAEQBAgAAAQIABAECAEABAgBEAQAEAAEABAQBAARAAQAERAECBAABAgQEAQIEQAECBEQBAAAAgAAABIAAAECAAABEgAIAAIACAASAAgBAgAIARIAABACAAAQEgAAEQIAABESAAgQAgAIEBIACBECAAgREgAAAAIEAAASBAABAgQAARIECAACBAgAEgQIAQIECAESBAAQAgQAEBIEABECBAAREgQIEAIECBASBAgRAgQIERIEAAAAAAAAABAAAAEAAAABEAQAAAAEAAAQBAABAAQAARAAAAAgAAAAMAAAASAAAAEwBAAAIAQAADAEAAEgBAABMAAAEAAAABAQAAARAAAAERAEABAABAAQEAQAEQAEABEQAAAQIAAAEDAAABEgAAARMAQAECAEABAwBAARIAQAETAAEAAAABAAEAAQAQAAEAEQBBAAAAQQABAEEAEABBABEAAQACAAEAAwABABIAAQATAEEAAgBBAAMAQQASAEEAEwABAQAAAQEBAAEBEAABAREAQQEAAEEBAQBBARAAQQERAAEBAgABAQMAAQESAAEBEwBBAQIAQQEDAEEBEgBBARMAAAAAAAAAAICAAAAAgAAAgABAAAAAQACAgEAAAIBAAIAAACAAAAAggIAAIACAACCAAEAgAABAIICAQCAAgEAggBAAAAAQAACAkAAAAJAAAIAQQAAAEEAAgJBAAACQQACAEAAgABAAIICQACAAkAAggBBAIAAQQCCAkEAgAJBAIIAAAAAgAAAAoIAAACCAAACgAEAAIABAAKCAQAAggEAAoAAAICAAACCggAAgIIAAIKAAQCAgAEAgoIBAICCAQCCgEAAAIBAAAKCQAAAgkAAAoBBAACAQQACgkEAAIJBAAKAQACAgEAAgoJAAICCQACCgEEAgIBBAIKCQQCAgkEAgoAAAAAAAEAAAAACAAAAQgAAAAAAQABAAEAAAgBAAEIARAAAAAQAQAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAIAAAgAAgAAAgIICAIAAAACAggIAAIACAACAAACAggIAAAICAIAAAgCAggAAAIIAAIAAAACAAAAAAIACAAAAAgAAgAAAAAIAAIACAgAAggIAgAACAICCAAAAAgAAgIAAAAACAAAAAgIAAIACAIACAAAAggAAgIACAIAAAAAAAAAAAIICAIACAACAgAIAAAICAIAAAgAAggAAAAIAAICAAgCAAgAAAAICAACAAACAggIAAIAAAACAAACAAAIAgIICAIACAgAAAAIAgIIAAIAAAACAggAAAIACAAAAAAAAAAIAAAAAAICCAACAAgIAgIAAAACAAgCAAgAAAIICAAQgBBAAAAAAACAEAAAABBAEAAAQBCAAAAAgABAAIAQAACAAAAQABBAEAAAAACAAEAQABAAAIAQQAAAEEAQAAAAAAAQABCAAEAQABBAAIAAABCAEAAAAABAAAAAABAAEAAQgABAEIAQAACAEEAQAABAAAAAQAAAEAAQgAAAEIAQQBAAEAAAgBBAAIAAQBCAEAAQgBBAEAAQABAAAEAAAAAAAAAAQBCAAAAAABAAEAAQQACAAAAAAABAEIAQABCAAEAAgBBAAIAAAAAAAAAQAABAEAAAABCAEEAAgBAAAAAQQBAAEEAAABAAEIAAAACAAEAQgABAEAAAAAAAEEAAgBAAAQAABAABBAQAAQAAAQEABAEABAAAAAAEAQEABAABBAAAAQAEAAAEAAAABAQBAAAAAQEEBAEBAAABAAAAAQAEBAAAAAABAAQAAAEEBAABAAABAQAAAQEEBAAABAABAAAEAQAEBAABAAQBAQQAAAAEBAABBAAAAAAAAAAABAEBBAAAAQQEAAEAAAEAAAAAAAQAAQEAAAEABAAAAAQEAQEABAAAAAAAAQQEAAEEAAEABAQBAAQAAAAABAEBBAQBAAAAAQEEAAEAAAQAAAAEAQEEBAAABAAAAQAEAQEABAABBAAAAQAEAAAAAAEABAQBAQAAAQAABAEBBAAAAQAAAAAEBAgQQAAAEAAQCAAAAAgQQBAAAAAAAABAEAgQABAIAEAAABBAEAgAABAAAAAQCBAAAAgAABAIEEAAAABAAAAAABAIAEAQABBAAAAQAAAIAAAAABBAAAgQABAAAEAQABAAAAgQAAAAAAAACABAAAAQQBAAEAAQCABAEAgQQBAAAEAACABAEAgQAAAAAEAACAAAEAAQQAAAEAAQCAAAAAAAQBAIEAAQAAAAAAAQAAAIAEAAAAAAAAgAQBAAEEAQABAAAAAAABAIEEAQCBBAAAAAQAAIEEAQCAAAAAAQABAIEEAACABAAAAQQAAAAEAQCBAAEAgQAAAAAAAQCAAAEAAQQBAAAAAIAAABAAAEAAAgBAEIIAABCAAEAAggBAEAAAABCAAAAQAgAAAAIAAACAAEAQAgBAAIIAABCAAEAQgAAAAAAAQBAAAAAAggAAEAIAQAAAAEAAggBAEAAAAAACAAAAggAAAAIAQACCAEAQggAAEAAAABCAAEAAAgBAAAAAQBCAAEAQggBAAIIAABAAAAAQgAAAEAIAAAACAAAAgABAAIAAAACAAEAQAgBAEIAAAAACAEAQAAAAAIAAQAACAAAQAgBAAIAAQAAAAAAAAgBAEIIAABCAAEAQggBAAAAAABAAAEAQAgAAEIAAQACCAEAAAgAAAAIAQBAAAAAQggAAAIQAAAgEAAIAAAAAAAACAggEAAIAAAIAAAQCAAgAAAIABAIAAAQCAggAAgIAAAAACAACAAgEAAAIAAACCAQCAgAAAAIABAIACAQAAggAAAAAAAIAAAQAAAAAAgIIBAACCAQCAggAAAIIAAAACAQCAAAEAAAAAAICAAQCAgAAAgAIBAIAAAAAAAgAAgAIBAICAAACAggEAAIAAAAAAAACAAgAAAAIAAIAAAQAAggAAAIABAACAAQCAggAAgIABAAAAAQCAggAAgIAAAACAAQCAAgEAAAIAAACCAQCAgAAAAAAAAIAAAQAAAgEAgAIAAICCAAAAggEAgAABAAAAAQAAggABAAAAAAgAAAAIAAQQAAAEEQgABBEAAAABCAAAAAAAAAAAAAQQCAAEEAgAAAEAAAQQAAAAAQgABAEAAAQQCAAAEAgABAEAAAARAAAAEQgABAAAAAAACAAEEAAABAEIAAARAAAEEQgAAAEIAAQQAAAAEQgAABEAAAQACAAAAAAABBEIAAABAAAEEQAABBAIAAABAAAAAAgAAAAAAAQRAAAEEAgABBEIAAABCAAAAAAAAAAIAAAQAAAEEAAAAAAIAAQAAAAAEAgABAAIAAQBCAAAEAgAAAEAAAARCAAEAAAABAEIAAQQAAAAEQAAABEIAAQQAAAEAQgABAEAAAQRAAACAAIAgAACCIIAAAgAAAAAAAAACIIAAgAAAAIAggACCIIAAAAAAAAAgAACCAIAAAgCAAIIAgAACIIAAACAAAIAgAAACAIAAggCAAIAAAAACIIAAgiCAAAAgAAAAAAAAggAAAAAgAACAAIAAAiCAAIAgAACAAAAAAgAAAIIggAAAAAAAgAAAAAIAgAAAIIAAgiCAAAIAAAAAIAAAAAAAAIIAgACAIIAAAiAAAAIggACAAAAAgiCAAAAAgACAAAAAAiCAAIIgAACAAAAAgCCAAAAgAACCAIAAAgCAAAIgAACAIIAAAAAAAIIggACCAAAAAAAAAAAggACAIAAAAgCAAIIAK4EEACMAAAAAAAAAAAAAAAH//////////////////////////////////////////////////////////////////////////////////////wH//////////////////////////////////////////////////////////////////////////////////////ABRlT65YY4cmh+SmiGgtoVA7qLacluZsxXzuLSJkY7xCeFWGTlR7H6TexZSwL07sb8HNXPfiD0sNPHvRR/Ua1A/AADGhY4GtwQE6c2ePstmI5W0QpxkgTkFP7Uh+CivYGtNPbqhS1537+dZKP4dwSei/6jeM0izwYVqQpv5fn4xwuW9ZgEYOSlqeJo7wARcil+0LH0b2Zj1RElXm0RoF6+9Fyc+ZiyX7nKZXvQmQMVQuQE/rQdhNTxwhqJywkCIvpR2n9FmUAH///////////////////////////////////////////pRhoeDvy+Wa3/MAUj3CaXQO7XJuImcR667b7cekThkCSuBBAAiAAAAAAAAAAAAAAAAAAAA//////////////////////////////////////////7/////AAAAAAAAAAD///////////////////////////////////////////////7/////AAAAAAAAAAD////8szEvp+I+5+SYjgVr4/gtGRgdnG7+gUESAxQIj1ATh1rGVjmNii7RnSqFyO3T7CrvqofKIr6LBTeOscce8yCtdG4dO2KLp5uYWfdB4IJUKjhVAvJdv1UpbDpUXjhydgq3NhfeSpYmLG9dnpi/kpLcKfj0Hb0omhR86doxE7XwuMAKYLHOHX6BnXpDHXyQ6g5f////////////////////////////////x2NNgfQ3Ld9YGg2ySLCneuzsGWrMxSlzKoZIzj0DAQcAAAAAAAAAAP////8AAAABAAAAAAAAAAAAAAAA/////////////////////wAAAAEAAAAAAAAAAAAAAAD///////////////xaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgS2sX0fLhLEJH+Lzm5WOkQPJ3A32BLeszoPShOUXYmMKWT+NC4v4af5uO5+tKfA+eFivOM1drMV7Oy7ZAaDe/UfX/////AAAAAP//////////vOb6racXnoTzucrC/GMlUSuBBAAhAAAAAAAAAAAAAAD/////////////////////AAAAAAAAAAAAAAAB/////////////////////v///////////////rQFCoUMBLOr9UEyVlBEsLfXv9i6Jws5QyNV/7S3Dgy9a7S/fzITkLlKA8HTVsIRIjQygNYRXB0h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Njc+UEy3PlBeNz9Qo4M/UHE3QFCBt0BQmzdBUKq3QVDEN0JQ4bdCUPE3Q1ABuENQHjhEUFmERFAyOEVQULhFUGM4RlB5uEZQizhHUKC4R1DGOEhQ1LhIUOc4SVD8uElQEjlKUCK5SlBCOUtQVblLUHg5TFCmuUxQ0zlNUPC5TVALOk5QJ7pOUDk6T1BQuk9QXzpQUBmHUFByOlFQELhRULg5UlCNDzJYTw8yaKeMMmi6DDNoXY8zaG0PNGj3gDRoFQ8ybF6MMmwgDzNsOY8zbEMKMnS5gDJ0bwwzdKgJMni9iTJ4yQkzeJCAM3jYCTR47Yk0eAwKNXguijV4Qwo2eFmKNnhpCjd4ioo3eJ0KOHivijh4vAo5eNuKOXjwCjp4/oo6eAgLO3gcizt4Mws8eEiLPHhfCz14dIs9eMoKPnh8ij54HRIyfDMUMoCQgDKAVTIzgLmAM4BkMjSAzLE0gOoxNYB4sjWALDI2gNuxNoAeMjeAubE3gD8yOID7sTiAEDI5gOwCAAAAAAAAAAAAAAAAAABBU04xX0xFTkdUSF9NSVNNQVRDSABBVVhfRVJST1IAQkFEX0dFVF9BU04xX09CSkVDVF9DQUxMAEJBRF9PQkpFQ1RfSEVBREVSAEJBRF9URU1QTEFURQBCTVBTVFJJTkdfSVNfV1JPTkdfTEVOR1RIAEJOX0xJQgBCT09MRUFOX0lTX1dST05HX0xFTkdUSABCVUZGRVJfVE9PX1NNQUxMAENPTlRFWFRfTk9UX0lOSVRJQUxJU0VEAERFQ09ERV9FUlJPUgBERVBUSF9FWENFRURFRABESUdFU1RfQU5EX0tFWV9UWVBFX05PVF9TVVBQT1JURUQARU5DT0RFX0VSUk9SAEVSUk9SX0dFVFRJTkdfVElNRQBFWFBFQ1RJTkdfQU5fQVNOMV9TRVFVRU5DRQBFWFBFQ1RJTkdfQU5fSU5URUdFUgBFWFBFQ1RJTkdfQU5fT0JKRUNUAEVYUEVDVElOR19BX0JPT0xFQU4ARVhQRUNUSU5HX0FfVElNRQBFWFBMSUNJVF9MRU5HVEhfTUlTTUFUQ0gARVhQTElDSVRfVEFHX05PVF9DT05TVFJVQ1RFRABGSUVMRF9NSVNTSU5HAEZJUlNUX05VTV9UT09fTEFSR0UASEVBREVSX1RPT19MT05HAElMTEVHQUxfQklUU1RSSU5HX0ZPUk1BVABJTExFR0FMX0JPT0xFQU4ASUxMRUdBTF9DSEFSQUNURVJTAElMTEVHQUxfRk9STUFUAElMTEVHQUxfSEVYAElMTEVHQUxfSU1QTElDSVRfVEFHAElMTEVHQUxfSU5URUdFUgBJTExFR0FMX05FU1RFRF9UQUdHSU5HAElMTEVHQUxfTlVMTABJTExFR0FMX05VTExfVkFMVUUASUxMRUdBTF9PQkpFQ1QASUxMRUdBTF9PUFRJT05BTF9BTlkASUxMRUdBTF9PUFRJT05TX09OX0lURU1fVEVNUExBVEUASUxMRUdBTF9UQUdHRURfQU5ZAElMTEVHQUxfVElNRV9WQUxVRQBJTlRFR0VSX05PVF9BU0NJSV9GT1JNQVQASU5URUdFUl9UT09fTEFSR0VfRk9SX0xPTkcASU5WQUxJRF9CSVRfU1RSSU5HX0JJVFNfTEVGVABJTlZBTElEX0JJVF9TVFJJTkdfUEFERElORwBJTlZBTElEX0JNUFNUUklORwBJTlZBTElEX0RJR0lUAElOVkFMSURfTU9ESUZJRVIASU5WQUxJRF9OVU1CRVIASU5WQUxJRF9PQkpFQ1RfRU5DT0RJTkcASU5WQUxJRF9TRVBBUkFUT1IASU5WQUxJRF9USU1FX0ZPUk1BVABJTlZBTElEX1VOSVZFUlNBTFNUUklORwBJTlZBTElEX1VURjhTVFJJTkcATElTVF9FUlJPUgBNSVNTSU5HX0FTTjFfRU9TAE1JU1NJTkdfRU9DAE1JU1NJTkdfU0VDT05EX05VTUJFUgBNSVNTSU5HX1ZBTFVFAE1TVFJJTkdfTk9UX1VOSVZFUlNBTABNU1RSSU5HX1dST05HX1RBRwBORVNURURfQVNOMV9FUlJPUgBORVNURURfQVNOMV9TVFJJTkcATkVTVEVEX1RPT19ERUVQAE5PTl9IRVhfQ0hBUkFDVEVSUwBOT1RfQVNDSUlfRk9STUFUAE5PVF9FTk9VR0hfREFUQQBOT19NQVRDSElOR19DSE9JQ0VfVFlQRQBOVUxMX0lTX1dST05HX0xFTkdUSABPQkpFQ1RfTk9UX0FTQ0lJX0ZPUk1BVABPRERfTlVNQkVSX09GX0NIQVJTAFNFQ09ORF9OVU1CRVJfVE9PX0xBUkdFAFNFUVVFTkNFX0xFTkdUSF9NSVNNQVRDSABTRVFVRU5DRV9OT1RfQ09OU1RSVUNURUQAU0VRVUVOQ0VfT1JfU0VUX05FRURTX0NPTkZJRwBTSE9SVF9MSU5FAFNUUkVBTUlOR19OT1RfU1VQUE9SVEVEAFNUUklOR19UT09fTE9ORwBTVFJJTkdfVE9PX1NIT1JUAFRBR19WQUxVRV9UT09fSElHSABUSU1FX05PVF9BU0NJSV9GT1JNQVQAVE9PX0xPTkcAVFlQRV9OT1RfQ09OU1RSVUNURUQAVFlQRV9OT1RfUFJJTUlUSVZFAFVORVhQRUNURURfRU9DAFVOSVZFUlNBTFNUUklOR19JU19XUk9OR19MRU5HVEgAVU5LTk9XTl9GT1JNQVQAVU5LTk9XTl9NRVNTQUdFX0RJR0VTVF9BTEdPUklUSE0AVU5LTk9XTl9TSUdOQVRVUkVfQUxHT1JJVEhNAFVOS05PV05fVEFHAFVOU1VQUE9SVEVEX0FOWV9ERUZJTkVEX0JZX1RZUEUAVU5TVVBQT1JURURfUFVCTElDX0tFWV9UWVBFAFVOU1VQUE9SVEVEX1RZUEUAV1JPTkdfUFVCTElDX0tFWV9UWVBFAFdST05HX1RBRwBXUk9OR19UWVBFAEJBRF9GT1BFTl9NT0RFAEJST0tFTl9QSVBFAENPTk5FQ1RfRVJST1IARVJST1JfU0VUVElOR19OQklPAElOVkFMSURfQVJHVU1FTlQASU5fVVNFAEtFRVBBTElWRQBOQklPX0NPTk5FQ1RfRVJST1IATk9fSE9TVE5BTUVfU1BFQ0lGSUVEAE5PX1BPUlRfU1BFQ0lGSUVEAE5PX1NVQ0hfRklMRQBOVUxMX1BBUkFNRVRFUgBTWVNfTElCAFVOQUJMRV9UT19DUkVBVEVfU09DS0VUAFVOSU5JVElBTElaRUQAVU5TVVBQT1JURURfTUVUSE9EAFdSSVRFX1RPX1JFQURfT05MWV9CSU8AQVJHMl9MVF9BUkczAEJBRF9FTkNPRElORwBCQURfUkVDSVBST0NBTABCSUdOVU1fVE9PX0xPTkcAQklUU19UT09fU01BTEwAQ0FMTEVEX1dJVEhfRVZFTl9NT0RVTFVTAERJVl9CWV9aRVJPAEVYUEFORF9PTl9TVEFUSUNfQklHTlVNX0RBVEEASU5QVVRfTk9UX1JFRFVDRUQASU5WQUxJRF9JTlBVVABJTlZBTElEX1JBTkdFAE5FR0FUSVZFX05VTUJFUgBOT1RfQV9TUVVBUkUATk9UX0lOSVRJQUxJWkVEAE5PX0lOVkVSU0UAUFJJVkFURV9LRVlfVE9PX0xBUkdFAFBfSVNfTk9UX1BSSU1FAFRPT19NQU5ZX0lURVJBVElPTlMAVE9PX01BTllfVEVNUE9SQVJZX1ZBUklBQkxFUwBBRVNfS0VZX1NFVFVQX0ZBSUxFRABCQURfREVDUllQVABCQURfS0VZX0xFTkdUSABDVFJMX05PVF9JTVBMRU1FTlRFRABDVFJMX09QRVJBVElPTl9OT1RfSU1QTEVNRU5URUQAREFUQV9OT1RfTVVMVElQTEVfT0ZfQkxPQ0tfTEVOR1RIAElOSVRJQUxJWkFUSU9OX0VSUk9SAElOUFVUX05PVF9JTklUSUFMSVpFRABJTlZBTElEX0FEX1NJWkUASU5WQUxJRF9LRVlfTEVOR1RIAElOVkFMSURfTk9OQ0UASU5WQUxJRF9OT05DRV9TSVpFAElOVkFMSURfT1BFUkFUSU9OAElWX1RPT19MQVJHRQBOT19DSVBIRVJfU0VUAE5PX0RJUkVDVElPTl9TRVQAT1VUUFVUX0FMSUFTRVNfSU5QVVQAVEFHX1RPT19MQVJHRQBUT09fTEFSR0UAVU5TVVBQT1JURURfQURfU0laRQBVTlNVUFBPUlRFRF9JTlBVVF9TSVpFAFVOU1VQUE9SVEVEX0tFWV9TSVpFAFVOU1VQUE9SVEVEX05PTkNFX1NJWkUAVU5TVVBQT1JURURfVEFHX1NJWkUAV1JPTkdfRklOQUxfQkxPQ0tfTEVOR1RIAExJU1RfQ0FOTk9UX0JFX05VTEwATUlTU0lOR19DTE9TRV9TUVVBUkVfQlJBQ0tFVABNSVNTSU5HX0VRVUFMX1NJR04ATk9fQ0xPU0VfQlJBQ0UAVU5BQkxFX1RPX0NSRUFURV9ORVdfU0VDVElPTgBWQVJJQUJMRV9FWFBBTlNJT05fVE9PX0xPTkcAVkFSSUFCTEVfSEFTX05PX1ZBTFVFAEJBRF9HRU5FUkFUT1IASU5WQUxJRF9QVUJLRVkATU9EVUxVU19UT09fTEFSR0UATk9fUFJJVkFURV9WQUxVRQBVTktOT1dOX0hBU0gAQkFEX1FfVkFMVUUAQkFEX1ZFUlNJT04ASU5WQUxJRF9QQVJBTUVURVJTAE1JU1NJTkdfUEFSQU1FVEVSUwBORUVEX05FV19TRVRVUF9WQUxVRVMAQklHTlVNX09VVF9PRl9SQU5HRQBDT09SRElOQVRFU19PVVRfT0ZfUkFOR0UARDJJX0VDUEtQQVJBTUVURVJTX0ZBSUxVUkUARUNfR1JPVVBfTkVXX0JZX05BTUVfRkFJTFVSRQBHUk9VUDJQS1BBUkFNRVRFUlNfRkFJTFVSRQBHUk9VUF9NSVNNQVRDSABJMkRfRUNQS1BBUkFNRVRFUlNfRkFJTFVSRQBJTkNPTVBBVElCTEVfT0JKRUNUUwBJTlZBTElEX0NPRkFDVE9SAElOVkFMSURfQ09NUFJFU1NFRF9QT0lOVABJTlZBTElEX0NPTVBSRVNTSU9OX0JJVABJTlZBTElEX0VOQ09ESU5HAElOVkFMSURfRklFTEQASU5WQUxJRF9GT1JNAElOVkFMSURfR1JPVVBfT1JERVIASU5WQUxJRF9QUklWQVRFX0tFWQBJTlZBTElEX1NDQUxBUgBNSVNTSU5HX1BSSVZBVEVfS0VZAE5PTl9OQU1FRF9DVVJWRQBQS1BBUkFNRVRFUlMyR1JPVVBfRkFJTFVSRQBQT0lOVF9BVF9JTkZJTklUWQBQT0lOVF9JU19OT1RfT05fQ1VSVkUAUFVCTElDX0tFWV9WQUxJREFUSU9OX0ZBSUxFRABTTE9UX0ZVTEwAVU5ERUZJTkVEX0dFTkVSQVRPUgBVTktOT1dOX0dST1VQAFVOS05PV05fT1JERVIAV1JPTkdfQ1VSVkVfUEFSQU1FVEVSUwBXUk9OR19PUkRFUgBLREZfRkFJTEVEAFBPSU5UX0FSSVRITUVUSUNfRkFJTFVSRQBVTktOT1dOX0RJR0VTVF9MRU5HVEgAQkFEX1NJR05BVFVSRQBOT1RfSU1QTEVNRU5URUQAUkFORE9NX05VTUJFUl9HRU5FUkFUSU9OX0ZBSUxFRABPUEVSQVRJT05fTk9UX1NVUFBPUlRFRABDT01NQU5EX05PVF9TVVBQT1JURUQARElGRkVSRU5UX0tFWV9UWVBFUwBESUZGRVJFTlRfUEFSQU1FVEVSUwBFTVBUWV9QU0sARVhQRUNUSU5HX0FOX0VDX0tFWV9LRVkARVhQRUNUSU5HX0FOX1JTQV9LRVkARVhQRUNUSU5HX0FfRFNBX0tFWQBJTExFR0FMX09SX1VOU1VQUE9SVEVEX1BBRERJTkdfTU9ERQBJTlZBTElEX0JVRkZFUl9TSVpFAElOVkFMSURfRElHRVNUX0xFTkdUSABJTlZBTElEX0RJR0VTVF9UWVBFAElOVkFMSURfS0VZQklUUwBJTlZBTElEX01HRjFfTUQASU5WQUxJRF9QQURESU5HX01PREUASU5WQUxJRF9QRUVSX0tFWQBJTlZBTElEX1BTU19TQUxUTEVOAElOVkFMSURfU0lHTkFUVVJFAEtFWVNfTk9UX1NFVABNRU1PUllfTElNSVRfRVhDRUVERUQATk9UX0FfUFJJVkFURV9LRVkATk9UX1hPRl9PUl9JTlZBTElEX0xFTkdUSABOT19ERUZBVUxUX0RJR0VTVABOT19LRVlfU0VUAE5PX01EQzJfU1VQUE9SVABOT19OSURfRk9SX0NVUlZFAE5PX09QRVJBVElPTl9TRVQATk9fUEFSQU1FVEVSU19TRVQAT1BFUkFUSU9OX05PVF9TVVBQT1JURURfRk9SX1RISVNfS0VZVFlQRQBPUEVSQVRPTl9OT1RfSU5JVElBTElaRUQAVU5LTk9XTl9QVUJMSUNfS0VZX1RZUEUAVU5TVVBQT1JURURfQUxHT1JJVEhNAE9VVFBVVF9UT09fTEFSR0UASU5WQUxJRF9PSURfU1RSSU5HAFVOS05PV05fTklEAEJBRF9CQVNFNjRfREVDT0RFAEJBRF9FTkRfTElORQBCQURfSVZfQ0hBUlMAQkFEX1BBU1NXT1JEX1JFQUQAQ0lQSEVSX0lTX05VTEwARVJST1JfQ09OVkVSVElOR19QUklWQVRFX0tFWQBOT1RfREVLX0lORk8ATk9UX0VOQ1JZUFRFRABOT1RfUFJPQ19UWVBFAE5PX1NUQVJUX0xJTkUAUkVBRF9LRVkAU0hPUlRfSEVBREVSAFVOU1VQUE9SVEVEX0NJUEhFUgBVTlNVUFBPUlRFRF9FTkNSWVBUSU9OAEJBRF9QS0NTN19WRVJTSU9OAE5PVF9QS0NTN19TSUdORURfREFUQQBOT19DRVJUSUZJQ0FURVNfSU5DTFVERUQATk9fQ1JMU19JTkNMVURFRABCQURfSVRFUkFUSU9OX0NPVU5UAEJBRF9QS0NTMTJfREFUQQBCQURfUEtDUzEyX1ZFUlNJT04AQ0lQSEVSX0hBU19OT19PQkpFQ1RfSURFTlRJRklFUgBDUllQVF9FUlJPUgBFTkNSWVBUX0VSUk9SAEVSUk9SX1NFVFRJTkdfQ0lQSEVSX1BBUkFNUwBJTkNPUlJFQ1RfUEFTU1dPUkQASU5WQUxJRF9DSEFSQUNURVJTAEtFWUdFTl9GQUlMVVJFAEtFWV9HRU5fRVJST1IATUVUSE9EX05PVF9TVVBQT1JURUQATUlTU0lOR19NQUMATVVMVElQTEVfUFJJVkFURV9LRVlTX0lOX1BLQ1MxMgBQS0NTMTJfUFVCTElDX0tFWV9JTlRFR1JJVFlfTk9UX1NVUFBPUlRFRABQS0NTMTJfVE9PX0RFRVBMWV9ORVNURUQAUFJJVkFURV9LRVlfREVDT0RFX0VSUk9SAFBSSVZBVEVfS0VZX0VOQ09ERV9FUlJPUgBVTktOT1dOX0FMR09SSVRITQBVTktOT1dOX0NJUEhFUgBVTktOT1dOX0NJUEhFUl9BTEdPUklUSE0AVU5LTk9XTl9ESUdFU1QAVU5TVVBQT1JURURfS0VZTEVOR1RIAFVOU1VQUE9SVEVEX0tFWV9ERVJJVkFUSU9OX0ZVTkNUSU9OAFVOU1VQUE9SVEVEX09QVElPTlMAVU5TVVBQT1JURURfUFJGAFVOU1VQUE9SVEVEX1BSSVZBVEVfS0VZX0FMR09SSVRITQBVTlNVUFBPUlRFRF9TQUxUX1RZUEUAQkFEX0VfVkFMVUUAQkFEX0ZJWEVEX0hFQURFUl9ERUNSWVBUAEJBRF9QQURfQllURV9DT1VOVABCQURfUlNBX1BBUkFNRVRFUlMAQkxPQ0tfVFlQRV9JU19OT1RfMDEAQkxPQ0tfVFlQRV9JU19OT1RfMDIAQk5fTk9UX0lOSVRJQUxJWkVEAENBTk5PVF9SRUNPVkVSX01VTFRJX1BSSU1FX0tFWQBDUlRfUEFSQU1TX0FMUkVBRFlfR0lWRU4AQ1JUX1ZBTFVFU19JTkNPUlJFQ1QAREFUQV9MRU5fTk9UX0VRVUFMX1RPX01PRF9MRU4AREFUQV9UT09fTEFSR0UAREFUQV9UT09fTEFSR0VfRk9SX0tFWV9TSVpFAERBVEFfVE9PX0xBUkdFX0ZPUl9NT0RVTFVTAERBVEFfVE9PX1NNQUxMAERBVEFfVE9PX1NNQUxMX0ZPUl9LRVlfU0laRQBESUdFU1RfVE9PX0JJR19GT1JfUlNBX0tFWQBEX0VfTk9UX0NPTkdSVUVOVF9UT18xAERfT1VUX09GX1JBTkdFAEVNUFRZX1BVQkxJQ19LRVkARklSU1RfT0NURVRfSU5WQUxJRABJTkNPTlNJU1RFTlRfU0VUX09GX0NSVF9WQUxVRVMASU5URVJOQUxfRVJST1IASU5WQUxJRF9NRVNTQUdFX0xFTkdUSABLRVlfU0laRV9UT09fU01BTEwATEFTVF9PQ1RFVF9JTlZBTElEAE1VU1RfSEFWRV9BVF9MRUFTVF9UV09fUFJJTUVTAE5PX1BVQkxJQ19FWFBPTkVOVABOVUxMX0JFRk9SRV9CTE9DS19NSVNTSU5HAE5fTk9UX0VRVUFMX1BfUQBPQUVQX0RFQ09ESU5HX0VSUk9SAE9OTFlfT05FX09GX1BfUV9HSVZFTgBPVVRQVVRfQlVGRkVSX1RPT19TTUFMTABQQURESU5HX0NIRUNLX0ZBSUxFRABQS0NTX0RFQ09ESU5HX0VSUk9SAFNMRU5fQ0hFQ0tfRkFJTEVEAFNMRU5fUkVDT1ZFUllfRkFJTEVEAFVOS05PV05fQUxHT1JJVEhNX1RZUEUAVU5LTk9XTl9QQURESU5HX1RZUEUAVkFMVUVfTUlTU0lORwBXUk9OR19TSUdOQVRVUkVfTEVOR1RIAEFMUE5fTUlTTUFUQ0hfT05fRUFSTFlfREFUQQBBTFBTX01JU01BVENIX09OX0VBUkxZX0RBVEEAQVBQTElDQVRJT05fREFUQV9JTlNURUFEX09GX0hBTkRTSEFLRQBBUFBMSUNBVElPTl9EQVRBX09OX1NIVVRET1dOAEFQUF9EQVRBX0lOX0hBTkRTSEFLRQBBVFRFTVBUX1RPX1JFVVNFX1NFU1NJT05fSU5fRElGRkVSRU5UX0NPTlRFWFQAQkFEX0FMRVJUAEJBRF9DSEFOR0VfQ0lQSEVSX1NQRUMAQkFEX0RBVEFfUkVUVVJORURfQllfQ0FMTEJBQ0sAQkFEX0RIX1BfTEVOR1RIAEJBRF9ESUdFU1RfTEVOR1RIAEJBRF9FQ0NfQ0VSVABCQURfRUNQT0lOVABCQURfSEFORFNIQUtFX1JFQ09SRABCQURfSEVMTE9fUkVRVUVTVABCQURfTEVOR1RIAEJBRF9QQUNLRVRfTEVOR1RIAEJBRF9SU0FfRU5DUllQVABCQURfU1JUUF9NS0lfVkFMVUUAQkFEX1NSVFBfUFJPVEVDVElPTl9QUk9GSUxFX0xJU1QAQkFEX1NTTF9GSUxFVFlQRQBCQURfV1JJVEVfUkVUUlkAQklPX05PVF9TRVQAQkxPQ0tfQ0lQSEVSX1BBRF9JU19XUk9ORwBDQU5OT1RfSEFWRV9CT1RIX1BSSVZLRVlfQU5EX01FVEhPRABDQU5OT1RfUEFSU0VfTEVBRl9DRVJUAENBX0ROX0xFTkdUSF9NSVNNQVRDSABDQV9ETl9UT09fTE9ORwBDQ1NfUkVDRUlWRURfRUFSTFkAQ0VSVElGSUNBVEVfQU5EX1BSSVZBVEVfS0VZX01JU01BVENIAENFUlRJRklDQVRFX1ZFUklGWV9GQUlMRUQAQ0VSVF9DQl9FUlJPUgBDRVJUX0RFQ09NUFJFU1NJT05fRkFJTEVEAENFUlRfTEVOR1RIX01JU01BVENIAENIQU5ORUxfSURfTk9UX1AyNTYAQ0hBTk5FTF9JRF9TSUdOQVRVUkVfSU5WQUxJRABDSVBIRVJfTUlTTUFUQ0hfT05fRUFSTFlfREFUQQBDSVBIRVJfT1JfSEFTSF9VTkFWQUlMQUJMRQBDTElFTlRIRUxMT19QQVJTRV9GQUlMRUQAQ0xJRU5USEVMTE9fVExTRVhUAENPTk5FQ1RJT05fUkVKRUNURUQAQ09OTkVDVElPTl9UWVBFX05PVF9TRVQAQ09VTERfTk9UX1BBUlNFX0hJTlRTAENVU1RPTV9FWFRFTlNJT05fRVJST1IAREFUQV9MRU5HVEhfVE9PX0xPTkcAREVDUllQVElPTl9GQUlMRUQAREVDUllQVElPTl9GQUlMRURfT1JfQkFEX1JFQ09SRF9NQUMAREhfUFVCTElDX1ZBTFVFX0xFTkdUSF9JU19XUk9ORwBESF9QX1RPT19MT05HAERJR0VTVF9DSEVDS19GQUlMRUQARE9XTkdSQURFX0RFVEVDVEVEAERUTFNfTUVTU0FHRV9UT09fQklHAERVUExJQ0FURV9FWFRFTlNJT04ARFVQTElDQVRFX0tFWV9TSEFSRQBEVVBMSUNBVEVfU0lHTkFUVVJFX0FMR09SSVRITQBFQVJMWV9EQVRBX05PVF9JTl9VU0UARUNDX0NFUlRfTk9UX0ZPUl9TSUdOSU5HAEVDSF9SRUpFQ1RFRABFQ0hfU0VSVkVSX0NPTkZJR19BTkRfUFJJVkFURV9LRVlfTUlTTUFUQ0gARUNIX1NFUlZFUl9DT05GSUdfVU5TVVBQT1JURURfRVhURU5TSU9OAEVDSF9TRVJWRVJfV09VTERfSEFWRV9OT19SRVRSWV9DT05GSUdTAEVNUFRZX0hFTExPX1JFVFJZX1JFUVVFU1QARU1TX1NUQVRFX0lOQ09OU0lTVEVOVABFTkNSWVBURURfTEVOR1RIX1RPT19MT05HAEVSUk9SX0FERElOR19FWFRFTlNJT04ARVJST1JfSU5fUkVDRUlWRURfQ0lQSEVSX0xJU1QARVJST1JfUEFSU0lOR19FWFRFTlNJT04ARVhDRVNTSVZFX01FU1NBR0VfU0laRQBFWENFU1NfSEFORFNIQUtFX0RBVEEARVhUUkFfREFUQV9JTl9NRVNTQUdFAEZSQUdNRU5UX01JU01BVENIAEdPVF9ORVhUX1BST1RPX1dJVEhPVVRfRVhURU5TSU9OAEhBTkRTSEFLRV9GQUlMVVJFX09OX0NMSUVOVF9IRUxMTwBIQU5EU0hBS0VfTk9UX0NPTVBMRVRFAEhUVFBTX1BST1hZX1JFUVVFU1QASFRUUF9SRVFVRVNUAElOQVBQUk9QUklBVEVfRkFMTEJBQ0sASU5DT05TSVNURU5UX0NMSUVOVF9IRUxMTwBJTkNPTlNJU1RFTlRfRUNIX05FR09USUFUSU9OAElOVkFMSURfQUxQTl9QUk9UT0NPTABJTlZBTElEX0FMUE5fUFJPVE9DT0xfTElTVABJTlZBTElEX0NMSUVOVF9IRUxMT19JTk5FUgBJTlZBTElEX0NPTU1BTkQASU5WQUxJRF9DT01QUkVTU0lPTl9MSVNUAElOVkFMSURfREVMRUdBVEVEX0NSRURFTlRJQUwASU5WQUxJRF9FQ0hfQ09ORklHX0xJU1QASU5WQUxJRF9FQ0hfUFVCTElDX05BTUUASU5WQUxJRF9NRVNTQUdFAElOVkFMSURfT1VURVJfUkVDT1JEX1RZUEUASU5WQUxJRF9TQ1RfTElTVABJTlZBTElEX1NJR05BVFVSRV9BTEdPUklUSE0ASU5WQUxJRF9TU0xfU0VTU0lPTgBJTlZBTElEX1RJQ0tFVF9LRVlTX0xFTkdUSABLRVlfVVNBR0VfQklUX0lOQ09SUkVDVABMRU5HVEhfTUlTTUFUQ0gATUlTU0lOR19FWFRFTlNJT04ATUlTU0lOR19LRVlfU0hBUkUATUlTU0lOR19SU0FfQ0VSVElGSUNBVEUATUlTU0lOR19UTVBfREhfS0VZAE1JU1NJTkdfVE1QX0VDREhfS0VZAE1JWEVEX1NQRUNJQUxfT1BFUkFUT1JfV0lUSF9HUk9VUFMATVRVX1RPT19TTUFMTABORUdPVElBVEVEX0FMUFNfV0lUSE9VVF9BTFBOAE5FR09USUFURURfQk9USF9OUE5fQU5EX0FMUE4ATkVHT1RJQVRFRF9UQl9XSVRIT1VUX0VNU19PUl9SSQBORVNURURfR1JPVVAATk9fQVBQTElDQVRJT05fUFJPVE9DT0wATk9fQ0VSVElGSUNBVEVTX1JFVFVSTkVEAE5PX0NFUlRJRklDQVRFX0FTU0lHTkVEAE5PX0NFUlRJRklDQVRFX1NFVABOT19DSVBIRVJTX0FWQUlMQUJMRQBOT19DSVBIRVJTX1BBU1NFRABOT19DSVBIRVJTX1NQRUNJRklFRABOT19DSVBIRVJfTUFUQ0gATk9fQ09NTU9OX1NJR05BVFVSRV9BTEdPUklUSE1TAE5PX0NPTVBSRVNTSU9OX1NQRUNJRklFRABOT19HUk9VUFNfU1BFQ0lGSUVEAE5PX01FVEhPRF9TUEVDSUZJRUQATk9fUDI1Nl9TVVBQT1JUAE5PX1BSSVZBVEVfS0VZX0FTU0lHTkVEAE5PX1JFTkVHT1RJQVRJT04ATk9fUkVRVUlSRURfRElHRVNUAE5PX1NIQVJFRF9DSVBIRVIATk9fU0hBUkVEX0dST1VQAE5PX1NVUFBPUlRFRF9WRVJTSU9OU19FTkFCTEVEAE5VTExfU1NMX0NUWABOVUxMX1NTTF9NRVRIT0RfUEFTU0VEAE9DU1BfQ0JfRVJST1IAT0xEX1NFU1NJT05fQ0lQSEVSX05PVF9SRVRVUk5FRABPTERfU0VTU0lPTl9QUkZfSEFTSF9NSVNNQVRDSABPTERfU0VTU0lPTl9WRVJTSU9OX05PVF9SRVRVUk5FRABPVVRFUl9FWFRFTlNJT05fTk9UX0ZPVU5EAFBBUlNFX1RMU0VYVABQQVRIX1RPT19MT05HAFBFRVJfRElEX05PVF9SRVRVUk5fQV9DRVJUSUZJQ0FURQBQRUVSX0VSUk9SX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFX1RZUEUAUFJFX1NIQVJFRF9LRVlfTVVTVF9CRV9MQVNUAFBSSVZBVEVfS0VZX09QRVJBVElPTl9GQUlMRUQAUFJPVE9DT0xfSVNfU0hVVERPV04AUFNLX0lERU5USVRZX0JJTkRFUl9DT1VOVF9NSVNNQVRDSABQU0tfSURFTlRJVFlfTk9UX0ZPVU5EAFBTS19OT19DTElFTlRfQ0IAUFNLX05PX1NFUlZFUl9DQgBRVUlDX0lOVEVSTkFMX0VSUk9SAFFVSUNfVFJBTlNQT1JUX1BBUkFNRVRFUlNfTUlTQ09ORklHVVJFRABSRUFEX1RJTUVPVVRfRVhQSVJFRABSRUNPUkRfTEVOR1RIX01JU01BVENIAFJFQ09SRF9UT09fTEFSR0UAUkVORUdPVElBVElPTl9FTVNfTUlTTUFUQ0gAUkVORUdPVElBVElPTl9FTkNPRElOR19FUlIAUkVORUdPVElBVElPTl9NSVNNQVRDSABSRVFVSVJFRF9DSVBIRVJfTUlTU0lORwBSRVNVTUVEX0VNU19TRVNTSU9OX1dJVEhPVVRfRU1TX0VYVEVOU0lPTgBSRVNVTUVEX05PTl9FTVNfU0VTU0lPTl9XSVRIX0VNU19FWFRFTlNJT04AU0NTVl9SRUNFSVZFRF9XSEVOX1JFTkVHT1RJQVRJTkcAU0VDT05EX1NFUlZFUkhFTExPX1ZFUlNJT05fTUlTTUFUQ0gAU0VSVkVSSEVMTE9fVExTRVhUAFNFUlZFUl9DRVJUX0NIQU5HRUQAU0VSVkVSX0VDSE9FRF9JTlZBTElEX1NFU1NJT05fSUQAU0VTU0lPTl9JRF9DT05URVhUX1VOSU5JVElBTElaRUQAU0VTU0lPTl9NQVlfTk9UX0JFX0NSRUFURUQAU0hVVERPV05fV0hJTEVfSU5fSU5JVABTSUdOQVRVUkVfQUxHT1JJVEhNU19FWFRFTlNJT05fU0VOVF9CWV9TRVJWRVIAU1JUUF9DT1VMRF9OT1RfQUxMT0NBVEVfUFJPRklMRVMAU1JUUF9VTktOT1dOX1BST1RFQ1RJT05fUFJPRklMRQBTU0wzX0VYVF9JTlZBTElEX1NFUlZFUk5BTUUAU1NMVjNfQUxFUlRfQkFEX0NFUlRJRklDQVRFAFNTTFYzX0FMRVJUX0JBRF9SRUNPUkRfTUFDAFNTTFYzX0FMRVJUX0NFUlRJRklDQVRFX0VYUElSRUQAU1NMVjNfQUxFUlRfQ0VSVElGSUNBVEVfUkVWT0tFRABTU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9VTktOT1dOAFNTTFYzX0FMRVJUX0NMT1NFX05PVElGWQBTU0xWM19BTEVSVF9ERUNPTVBSRVNTSU9OX0ZBSUxVUkUAU1NMVjNfQUxFUlRfSEFORFNIQUtFX0ZBSUxVUkUAU1NMVjNfQUxFUlRfSUxMRUdBTF9QQVJBTUVURVIAU1NMVjNfQUxFUlRfTk9fQ0VSVElGSUNBVEUAU1NMVjNfQUxFUlRfVU5FWFBFQ1RFRF9NRVNTQUdFAFNTTFYzX0FMRVJUX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFAFNTTF9DVFhfSEFTX05PX0RFRkFVTFRfU1NMX1ZFUlNJT04AU1NMX0hBTkRTSEFLRV9GQUlMVVJFAFNTTF9TRVNTSU9OX0lEX0NPTlRFWFRfVE9PX0xPTkcAU1NMX1NFU1NJT05fSURfVE9PX0xPTkcAVElDS0VUX0VOQ1JZUFRJT05fRkFJTEVEAFRMUzEzX0RPV05HUkFERQBUTFNWMV9BTEVSVF9BQ0NFU1NfREVOSUVEAFRMU1YxX0FMRVJUX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFAFRMU1YxX0FMRVJUX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0UAVExTVjFfQUxFUlRfQ0VSVElGSUNBVEVfUkVRVUlSRUQAVExTVjFfQUxFUlRfQ0VSVElGSUNBVEVfVU5PQlRBSU5BQkxFAFRMU1YxX0FMRVJUX0RFQ09ERV9FUlJPUgBUTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRABUTFNWMV9BTEVSVF9ERUNSWVBUX0VSUk9SAFRMU1YxX0FMRVJUX0VDSF9SRVFVSVJFRABUTFNWMV9BTEVSVF9FWFBPUlRfUkVTVFJJQ1RJT04AVExTVjFfQUxFUlRfSU5BUFBST1BSSUFURV9GQUxMQkFDSwBUTFNWMV9BTEVSVF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkAVExTVjFfQUxFUlRfSU5URVJOQUxfRVJST1IAVExTVjFfQUxFUlRfTk9fQVBQTElDQVRJT05fUFJPVE9DT0wAVExTVjFfQUxFUlRfTk9fUkVORUdPVElBVElPTgBUTFNWMV9BTEVSVF9QUk9UT0NPTF9WRVJTSU9OAFRMU1YxX0FMRVJUX1JFQ09SRF9PVkVSRkxPVwBUTFNWMV9BTEVSVF9VTktOT1dOX0NBAFRMU1YxX0FMRVJUX1VOS05PV05fUFNLX0lERU5USVRZAFRMU1YxX0FMRVJUX1VOUkVDT0dOSVpFRF9OQU1FAFRMU1YxX0FMRVJUX1VOU1VQUE9SVEVEX0VYVEVOU0lPTgBUTFNWMV9BTEVSVF9VU0VSX0NBTkNFTExFRABUTFNfUEVFUl9ESURfTk9UX1JFU1BPTkRfV0lUSF9DRVJUSUZJQ0FURV9MSVNUAFRMU19SU0FfRU5DUllQVEVEX1ZBTFVFX0xFTkdUSF9JU19XUk9ORwBUT09fTUFOWV9FTVBUWV9GUkFHTUVOVFMAVE9PX01BTllfS0VZX1VQREFURVMAVE9PX01BTllfV0FSTklOR19BTEVSVFMAVE9PX01VQ0hfUkVBRF9FQVJMWV9EQVRBAFRPT19NVUNIX1NLSVBQRURfRUFSTFlfREFUQQBVTkFCTEVfVE9fRklORF9FQ0RIX1BBUkFNRVRFUlMAVU5DT01QUkVTU0VEX0NFUlRfVE9PX0xBUkdFAFVORVhQRUNURURfQ09NUEFUSUJJTElUWV9NT0RFAFVORVhQRUNURURfRVhURU5TSU9OAFVORVhQRUNURURfRVhURU5TSU9OX09OX0VBUkxZX0RBVEEAVU5FWFBFQ1RFRF9NRVNTQUdFAFVORVhQRUNURURfT1BFUkFUT1JfSU5fR1JPVVAAVU5FWFBFQ1RFRF9SRUNPUkQAVU5LTk9XTl9BTEVSVF9UWVBFAFVOS05PV05fQ0VSVElGSUNBVEVfVFlQRQBVTktOT1dOX0NFUlRfQ09NUFJFU1NJT05fQUxHAFVOS05PV05fQ0lQSEVSX1JFVFVSTkVEAFVOS05PV05fQ0lQSEVSX1RZUEUAVU5LTk9XTl9LRVlfRVhDSEFOR0VfVFlQRQBVTktOT1dOX1BST1RPQ09MAFVOS05PV05fU1NMX1ZFUlNJT04AVU5LTk9XTl9TVEFURQBVTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT05fRElTQUJMRUQAVU5TVVBQT1JURURfQ09NUFJFU1NJT05fQUxHT1JJVEhNAFVOU1VQUE9SVEVEX0VDSF9TRVJWRVJfQ09ORklHAFVOU1VQUE9SVEVEX0VMTElQVElDX0NVUlZFAFVOU1VQUE9SVEVEX1BST1RPQ09MAFVOU1VQUE9SVEVEX1BST1RPQ09MX0ZPUl9DVVNUT01fS0VZAFdST05HX0NFUlRJRklDQVRFX1RZUEUAV1JPTkdfQ0lQSEVSX1JFVFVSTkVEAFdST05HX0NVUlZFAFdST05HX0VOQ1JZUFRJT05fTEVWRUxfUkVDRUlWRUQAV1JPTkdfTUVTU0FHRV9UWVBFAFdST05HX1NJR05BVFVSRV9UWVBFAFdST05HX1NTTF9WRVJTSU9OAFdST05HX1ZFUlNJT05fTlVNQkVSAFdST05HX1ZFUlNJT05fT05fRUFSTFlfREFUQQBYNTA5X0xJQgBYNTA5X1ZFUklGSUNBVElPTl9TRVRVUF9QUk9CTEVNUwBCQURfVkFMSURJVFlfQ0hFQ0sAREVDT0RFX0ZBSUxVUkUASU5WQUxJRF9LRVlfSUQASU5WQUxJRF9NRVRBREFUQQBJTlZBTElEX01FVEFEQVRBX0tFWQBJTlZBTElEX1BST09GAElOVkFMSURfVE9LRU4ATk9fS0VZU19DT05GSUdVUkVEAE5PX1NSUl9LRVlfQ09ORklHVVJFRABPVkVSX0JBVENIU0laRQBTUlJfU0lHTkFUVVJFX0VSUk9SAFRPT19NQU5ZX0tFWVMAQUtJRF9NSVNNQVRDSABCQURfWDUwOV9GSUxFVFlQRQBCQVNFNjRfREVDT0RFX0VSUk9SAENBTlRfQ0hFQ0tfREhfS0VZAENFUlRfQUxSRUFEWV9JTl9IQVNIX1RBQkxFAENSTF9BTFJFQURZX0RFTFRBAENSTF9WRVJJRllfRkFJTFVSRQBERUxUQV9DUkxfV0lUSE9VVF9DUkxfTlVNQkVSAElEUF9NSVNNQVRDSABJTlZBTElEX0RJUkVDVE9SWQBJTlZBTElEX0ZJRUxEX0ZPUl9WRVJTSU9OAElOVkFMSURfRklFTERfTkFNRQBJTlZBTElEX1BBUkFNRVRFUgBJTlZBTElEX1BTU19QQVJBTUVURVJTAElOVkFMSURfVFJVU1QASU5WQUxJRF9WRVJTSU9OAElTU1VFUl9NSVNNQVRDSABLRVlfVFlQRV9NSVNNQVRDSABLRVlfVkFMVUVTX01JU01BVENIAExPQURJTkdfQ0VSVF9ESVIATE9BRElOR19ERUZBVUxUUwBOQU1FX1RPT19MT05HAE5FV0VSX0NSTF9OT1RfTkVXRVIATk9fQ0VSVElGSUNBVEVfRk9VTkQATk9fQ0VSVElGSUNBVEVfT1JfQ1JMX0ZPVU5EAE5PX0NFUlRfU0VUX0ZPUl9VU19UT19WRVJJRlkATk9fQ1JMX0ZPVU5EAE5PX0NSTF9OVU1CRVIAUFVCTElDX0tFWV9ERUNPREVfRVJST1IAUFVCTElDX0tFWV9FTkNPREVfRVJST1IAU0hPVUxEX1JFVFJZAFNJR05BVFVSRV9BTEdPUklUSE1fTUlTTUFUQ0gAVU5LTk9XTl9LRVlfVFlQRQBVTktOT1dOX1BVUlBPU0VfSUQAVU5LTk9XTl9UUlVTVF9JRABXUk9OR19MT09LVVBfVFlQRQBCQURfSVBfQUREUkVTUwBCQURfT0JKRUNUAEJOX0RFQzJCTl9FUlJPUgBCTl9UT19BU04xX0lOVEVHRVJfRVJST1IAQ0FOTk9UX0ZJTkRfRlJFRV9GVU5DVElPTgBESVJOQU1FX0VSUk9SAERJU1RQT0lOVF9BTFJFQURZX1NFVABEVVBMSUNBVEVfWk9ORV9JRABFUlJPUl9DT05WRVJUSU5HX1pPTkUARVJST1JfQ1JFQVRJTkdfRVhURU5TSU9OAEVSUk9SX0lOX0VYVEVOU0lPTgBFWFBFQ1RFRF9BX1NFQ1RJT05fTkFNRQBFWFRFTlNJT05fRVhJU1RTAEVYVEVOU0lPTl9OQU1FX0VSUk9SAEVYVEVOU0lPTl9OT1RfRk9VTkQARVhURU5TSU9OX1NFVFRJTkdfTk9UX1NVUFBPUlRFRABFWFRFTlNJT05fVkFMVUVfRVJST1IASUxMRUdBTF9FTVBUWV9FWFRFTlNJT04ASUxMRUdBTF9IRVhfRElHSVQASU5DT1JSRUNUX1BPTElDWV9TWU5UQVhfVEFHAElOVkFMSURfQk9PTEVBTl9TVFJJTkcASU5WQUxJRF9FWFRFTlNJT05fU1RSSU5HAElOVkFMSURfTVVMVElQTEVfUkROUwBJTlZBTElEX05BTUUASU5WQUxJRF9OVUxMX0FSR1VNRU5UAElOVkFMSURfTlVMTF9OQU1FAElOVkFMSURfTlVMTF9WQUxVRQBJTlZBTElEX05VTUJFUlMASU5WQUxJRF9PQkpFQ1RfSURFTlRJRklFUgBJTlZBTElEX09QVElPTgBJTlZBTElEX1BPTElDWV9JREVOVElGSUVSAElOVkFMSURfUFJPWFlfUE9MSUNZX1NFVFRJTkcASU5WQUxJRF9QVVJQT1NFAElOVkFMSURfU0VDVElPTgBJTlZBTElEX1NZTlRBWABJTlZBTElEX1ZBTFVFAElTU1VFUl9ERUNPREVfRVJST1IATkVFRF9PUkdBTklaQVRJT05fQU5EX05VTUJFUlMATk9fQ09ORklHX0RBVEFCQVNFAE5PX0lTU1VFUl9DRVJUSUZJQ0FURQBOT19JU1NVRVJfREVUQUlMUwBOT19QT0xJQ1lfSURFTlRJRklFUgBOT19QUk9YWV9DRVJUX1BPTElDWV9MQU5HVUFHRV9ERUZJTkVEAE5PX1BVQkxJQ19LRVkATk9fU1VCSkVDVF9ERVRBSUxTAE9ERF9OVU1CRVJfT0ZfRElHSVRTAE9QRVJBVElPTl9OT1RfREVGSU5FRABPVEhFUk5BTUVfRVJST1IAUE9MSUNZX0xBTkdVQUdFX0FMUkVBRFlfREVGSU5FRABQT0xJQ1lfUEFUSF9MRU5HVEgAUE9MSUNZX1BBVEhfTEVOR1RIX0FMUkVBRFlfREVGSU5FRABQT0xJQ1lfV0hFTl9QUk9YWV9MQU5HVUFHRV9SRVFVSVJFU19OT19QT0xJQ1kAU0VDVElPTl9OT1RfRk9VTkQAVFJBSUxJTkdfREFUQV9JTl9FWFRFTlNJT04AVU5BQkxFX1RPX0dFVF9JU1NVRVJfREVUQUlMUwBVTkFCTEVfVE9fR0VUX0lTU1VFUl9LRVlJRABVTktOT1dOX0JJVF9TVFJJTkdfQVJHVU1FTlQAVU5LTk9XTl9FWFRFTlNJT04AVU5LTk9XTl9FWFRFTlNJT05fTkFNRQBVTktOT1dOX09QVElPTgBVTlNVUFBPUlRFRF9PUFRJT04AVVNFUl9UT09fTE9ORwAAAAAAARsDOxiaAABCEwAArDsEADSaAADcPAQAZJoAAGw9BACEmgAADD4EAKSaAACMPgQAxJoAAAw/BADkmgAAnD8EAASbAAB8QAQAJJsAAPxABABEmwAAnEEEAGSbAAA8QgQAhJsAALxCBACkmwAALEMEAMSbAAC8QwQA5JsAACxEBAAEnAAADEUEACScAAB8RQQAPJwAAJxGBABcnAAADEcEAHScAAB8RwQAjJwAAMxHBACknAAA7EcEALycAAD8RwQA1JwAAAxIBADsnAAAHEgEAASdAABsSAQANJ0AAMxIBABUnQAAHEkEAHSdAAB8SgQApJ0AAOxKBAAEngAAXEsEACyeAABsSwQARJ4AAHxLBABcngAArEsEAHyeAACMTAQApJ4AAOxPBAD0ngAAPFEEACyfAADcUgQAZJ8AAOxTBACUnwAAXFQEAMyfAAAcVgQADKAAANxbBABcoAAAXFwEAKSgAACMXAQA1KAAAJxcBADsoAAAfF0EACyhAACcXQQARKEAAKxdBABcoQAAvF0EAHShAAAMXgQApKEAAFxeBADEoQAArF4EAOShAAAMYAQAJKIAALxgBABMogAA3GAEAGyiAADsYAQAhKIAAPxgBACcogAALGEEALyiAAC8YQQA5KIAAJxjBAA0owAAHGQEAGyjAADMZAQAjKMAAOxlBAC8owAAXGYEAPSjAABcZwQANKQAAAxoBABkpAAADGkEAKykAAC8aQQA5KQAAMxpBAD8pAAAfGoEADylAACcagQAVKUAAKxqBABspQAA/GoEAIylAABMawQArKUAAOxrBADcpQAAfGwEAASmAACcbAQAJKYAAKxsBAA8pgAAvGwEAFSmAADsbAQAdKYAADxtBACMpgAA/G4EANymAACcbwQAFKcAAHxwBABMpwAA/HAEAGynAABscQQApKcAACxyBADspwAAnHIEACSoAACscgQAPKgAAFxzBAB8qAAAfHMEAJSoAACccwQArKgAAKxzBADEqAAAvHMEANyoAAAMdAQADKkAAEx0BAAsqQAAnHQEAFypAADsdAQAlKkAADx1BAC0qQAAjHUEANSpAACsdwQAJKoAAJx4BABcqgAAvHgEAHyqAADMeAQAlKoAANx4BACsqgAADHkEAMyqAAAMegQAHKsAAOx8BABsqwAAnH0EALyrAAD8fgQADKwAAHyABABMrAAA7IAEAISsAAAsgwQA7KwAACyEBAA0rQAArIQEAHytAADchAQArK0AAOyEBADErQAA3IUEAASuAAD8hQQAHK4AAAyGBAA0rgAAXIYEAFSuAACshgQAdK4AAIyHBAC0rgAATIgEANyuAABsiAQA/K4AAHyIBAAUrwAAjIgEACyvAAC8iAQATK8AACyJBABkrwAAPIsEALSvAAAcjAQA7K8AAPyMBAAksAAAnI0EAESwAAAMjgQAfLAAAAyPBADEsAAA7I8EAAyxAAB8kAQARLEAAIyQBABcsQAAPJEEAJyxAABckQQAtLEAAGyRBADMsQAAfJEEAOSxAADMkQQAFLIAABySBAA0sgAAbJIEAGyyAAD8kgQAjLIAAIyTBACssgAATJkEAPyyAADcmgQAdLMAAPyaBACUswAADJsEAKyzAAAcmwQAxLMAAEybBADkswAArJ4EADS0AAAspwQAhLQAAAyqBADstAAA/K0EADy1AABssQQAjLUAANyxBADEtQAAXLIEAAy2AACMsgQAPLYAAJyyBABUtgAArLQEAJS2AADMtAQArLYAANy0BADEtgAA/LQEANy2AAActQQA9LYAAHy1BAAktwAA7LUEAEy3AABctgQAdLcAAGy2BACMtwAAfLYEAKS3AACstgQAxLcAANy2BADctwAA/LcEABy4AABMuAQAVLgAAKy4BABsuAAA/LgEAIy4AAC8uQQA3LgAAAy6BAAMuQAAXLoEADy5AADcugQAbLkAAOy6BACEuQAAjLsEAMS5AACsuwQA3LkAANy7BAD0uQAADLwEAAy6AAAcvAQAZLoAADy8BAB8ugAATLwEAJS6AAB8vAQArLoAAKy8BADEugAAvLwEABy7AADcvAQANLsAAOy8BABMuwAA/LwEAGS7AADMvQQAhLsAAOy+BAC8uwAAXMAEAFy8AAB8wQQA3LwAAJzBBAD8vAAArMEEABS9AAC8wQQALL0AAOzBBABMvQAA3MIEACy+AADcxgQAfL4AALzMBAD8vgAAPM8EAIS/AABM0QQA/L8AALzRBAA0wAAAfNIEAHTAAAD80gQAvMAAACzTBADswAAA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LF0FAHTHAABsXQUAXOcAAHxdBQB05wAAjF0FAIznAACsXQUApOcAALxdBQC85wAAzF0FANTnAADcXQUA7OcAAOxdBQAE6AAA/F0FABzoAAAcXgUANOgAACxeBQBM6AAAPF4FAGToAABMXgUAfOgAAFxeBQCU6AAAfF4FAKzoAACMXgUAxOgAAJxeBQDc6AAArF4FAPToAAC8XgUADOkAANxeBQAk6QAA7F4FADzpAAD8XgUAVOkAAAxfBQBs6QAAHF8FAITpAAA8XwUAnOkAAExfBQC06QAAXF8FAMzpAABsXwUA5OkAAHxfBQD86QAAnF8FABTqAACsXwUALOoAALxfBQBE6gAAzF8FAFzqAADcXwUAdOoAAPxfBQCM6gAADGAFAKTqAAAcYAUAvOoAACxgBQDU6gAAPGAFAOzqAABcYAUABOsAAGxgBQAc6wAAfGAFADTrAACMYAUATOsAAJxgBQBk6wAAvGAFAHzrAADMYAUAlOsAANxgBQCs6wAA7GAFAMTrAAD8YAUA3OsAABxhBQD06wAALGEFAAzsAAA8YQUAJOwAAExhBQA87AAAXGEFAFTsAAB8YQUAbOwAAIxhBQCE7AAAnGEFAJzsAACsYQUAtOwAALxhBQDM7AAA3GEFAOTsAADsYQUA/OwAAPxhBQAU7QAADGIFACztAAAcYgUARO0AADxiBQBc7QAATGIFAHTtAABcYgUAjO0AAGxiBQCk7QAAfGIFALztAACcYgUA1O0AAKxiBQDs7QAAvGIFAATuAADMYgUAHO4AANxiBQA07gAA/GIFAEzuAAAMYwUAZO4AABxjBQB87gAALGMFAJTuAAA8YwUArO4AAFxjBQDE7gAAbGMFANzuAAB8YwUA9O4AAJxjBQAU7wAAvGMFACzvAAD8YwUARO8AAAxkBQBc7wAAHGQFAHTvAAAsZAUAjO8AAIxkBQCs7wAAnGQFAMTvAACsZAUA3O8AAExmBQAs8AAAHGcFAFTwAABsZwUAfPAAAPxnBQCs8AAA3GgFAOTwAAD8aAUA/PAAAAxpBQAU8QAALGkFACzxAABMaQUATPEAAGxpBQBk8QAArGkFAHzxAAC8aQUAlPEAAMxpBQCs8QAALGoFAMzxAAA8agUA5PEAAExqBQD88QAA7GsFAEzyAAC8bAUAdPIAAAxtBQCc8gAAnG0FAMzyAAB8bgUA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RMwDANzcFwCUzAMA7OEXAOTMAwBc6BcANM0DAHzoFwBMzQMAbOkXAGTNAwCc6RcAhM0DAMzqFwCczQMA7OwXAMzNAwAs7RcA9M0DAEztFwAMzgMAbO8XACzOAwCM8RcATM4DAOzzFwBszgMA3PUXAJTOAwD89RcArM4DABz2FwDEzgMAfPcXAPTOAwCM9xcADM8DALwAGABczwMArAIYAJTPAwCsCRgA5M8DALwJGAD8zwMAfBEYAEzQAwBMGxgAnNADAPwdGADs0AMAzCEYADzRAwAcKBgAjNEDAFwoGACk0QMALCkYAOzRAwC8LxgAPNIDADwxGACE0gMAHDIYAJzSAwDcMhgA3NIDAAwzGAD00gMAbDYYADzTAwCMNhgAVNMDAGw3GACc0wMA/DcYAMTTAwA8OBgA3NMDAAw5GAAE1AMALDkYACTUAwA8ORgAPNQDAJw5GABs1AMAzDkYAIzUAwAMOhgApNQDAIw6GADU1AMALDsYABTVAwBcOxgALNUDAJw7GABM1QMAbDwYAIzVAwB8PBgApNUDAJxCGADs1QMAzEMYADzWAwBMRBgAbNYDAHxEGACE1gMAfEUYAMTWAwBMRhgABNcDAFxGGAAc1wMALEgYAGzXAwDsSBgAvNcDAPxMGAAM2AMAPE8YAFTYAwCMUBgAjNgDAMxQGACk2AMAPFEYAMzYAwAcUhgAFNkDAAxWGABk2QMAnFgYAKTZAwD8XBgA9NkDACxhGABE2gMADGUYAJTaAwAMaRgA5NoDAKxpGAAk2wMATGoYAGTbAwCcaxgAlNsDAExsGAC82wMAnG0YAAzcAwD8bRgALNwDALxvGABc3AMADHEYAIzcAwDMchgA3NwDANx0GAAs3QMA7HQYAETdAwCMdRgAfN0DADx2GAC03QMATHYYAMzdAwB8dhgA7N0DANx2GAAc3gMA7HYYADTeAwAMdxgATN4DACx3GABk3gMAbHgYAJzeAwBceRgA3N4DAIx5GAD83gMAjHoYABzfAwAMexgAVN8DABx7GABs3wMAvHwYALzfAwDcfBgA1N8DAKx9GAAU4AMA/H4YAETgAwAsgBgAlOADAJyBGADU4AMADIIYAPTgAwDchhgAROEDAMyIGACU4QMA3I4YAOThAwBslBgANOIDAJyUGABU4gMADJsYAKTiAwAcmxgAvOIDAIycGADs4gMArJwYAATjAwDsnxgAPOMDAAygGABU4wMAHKAYAGzjAwAsoBgAhOMDADygGACc4wMATKAYALTjAwBcoBgAzOMDAGygGADk4wMAfKAYAPzjAwCMoBgAFOQDAJygGAAs5AMAzKAYAETkAwDsoBgAXOQDAPygGAB05AMALKEYAIzkAwAsohgA1OQDANyiGAAU5QMA7KMYAFzlAwC8pBgApOUDAFypGAD05QMAfKkYABTmAwAsqxgAZOYDACysGAC05gMATKwYANTmAwA8rhgAJOcDADyvGAB05wMADLAYALznAwC8sxgADOgDANyzGAAk6AMA/LMYADzoAwBctBgAXOgDAGy0GAB06AMAfLQYAIzoAwBcthgA3OgDANy3GAAs6QMAHLkYAHzpAwD8uhgAzOkDAHy8GAAc6gMAbMQYAGzqAwA8xRgAnOoDACzIGADs6gMAnMwYADTrAwC8zBgATOsDALzTGACc6wMAzNMYALTrAwDc0xgAzOsDAOzTGADk6wMATNgYADTsAwCc2hgAhOwDALzgGADU7AMAzOAYAOzsAwAs8RgAXO0DAEzyGACc7QMAfPIYALTtAwCM8hgAzO0DAJzyGADk7QMArPIYAPztAwC8BxkAnO4DANwIGQDk7gMAbAkZABTvAwB8ChkANO8DAPwLGQB07wMA3AwZAKTvAwAsDhkAJPADADwOGQA88AMAbA4ZAFTwAwBsDxkAlPADAFwQGQDU8AMAbBAZAOzwAwCsEBkABPEDAOwQGQAc8QMA/BAZADTxAwAMERkATPEDAAwSGQCM8QMAHBIZAKTxAwAsEhkAvPEDAGwTGQD88QMAfBMZABTyAwDMExkALPIDABwUGQBE8gMALBQZAFzyAwA8FBkAdPIDACwVGQCk8gMAPBUZALzyAwBMFRkA1PIDAIwWGQAE8wMAnBYZABzzAwAMHhkAbPMDAGwjGQCU8wMAjCUZAKzzAwCcJRkAxPMDAKwuGQAU9AMAfDQZAGT0AwAMOhkAzPQDAGw6GQDk9AMAXDwZABT1AwC8PBkALPUDABw9GQBE9QMAbD0ZAHT1AwDMPRkAjPUDAPw9GQCk9QMAbD4ZALz1AwB8PxkA/PUDANxDGQBM9gMALEQZAIT2AwDcRxkAxPYDADxIGQDc9gMAnEgZAPT2AwD8SBkADPcDAGxJGQAk9wMAzEkZADz3AwAsShkA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AAAAABQAAADsKgEA8KkGAAcAAAAAAAAAAAAAABQAAAAEKwEA6KkGAAgAAAAAAAAAAAAAABQAAAAcKwEA4KkGAAQAAAAAAAAAAAAAABQAAAA0KwEA2KkGAAcAAAAAAAAAAAAAABQAAABMKwEA0KkGAAgAAAAAAAAAAAAAABQAAABkKwEAyKkGAAQAAAAAAAAAAAAAABQAAAB8KwEAwKkGAAcAAAAAAAAAAAAAABQAAACUKwEAuKkGAAgAAAAAAAAAAAAAABQAAACsKwEAsKkGAAQAAAAAAAAAAAAAABQAAADEKwEAqKkGAAcAAAAAAAAAAAAAABQAAADcKwEAoKkGAAgAAAAAAAAAAAAAABQAAAD0KwEAmKkGAAQAAAAAAAAAAAAAABQAAAAMLAEAkKkGAAcAAAAAAAAAAAAAABQAAAAkLAEAiKkGAAgAAAAAAAAAAAAAABQAAAA8LAEAgKkGAAQAAAAAAAAAAAAAABQAAABULAEAeKkGAAcAAAAAAAAAAAAAABQAAABsLAEAcKkGAAgAAAAAAAAAAAAAABQAAACELAEAaKkGAAQAAAAAAAAAAAAAABQAAACcLAEAYKkGAA4AAAAAAAAAAAAAABQAAAC0LAEAWKkGAA4AAAAAAAAAAAAAABQAAADMLAEAUKkGAA4AAAAAAAAAAAAAABQAAADkLAEASKkGAAUAAAAAAAAAAAAAABQAAAD8LAEAQKkGAAUAAAAAAAAAAAAAABQAAAAULQEAOKkGAAUAAAAAAAAAAAAAABQAAAAsLQEAMKkGAAUAAAAAAAAAAAAAABQAAABELQEAKKkGAAUAAAAAAAAAAAAAABQAAABcLQEAIKkGAAUAAAAAAAAAAAAAABQAAAB0LQEAGKkGAAUAAAAAAAAAAAAAABQAAACMLQEAEKkGAAUAAAAAAAAAAAAAABQAAACkLQEACKkGAAUAAAAAAAAAAAAAABQAAAC8LQEAAKkGAAUAAAAAAAAAAAAAABQAAADULQEA+KgGAAUAAAAAAAAAAAAAABQAAADsLQEA8KgGAAUAAAAAAAAAAAAAABQAAAAELgEA6KgGAAUAAAAAAAAAAAAAABQAAAAcLgEA4KgGAAUAAAAAAAAAAAAAABQAAAA0LgEA2KgGAAwAAAAAAAAAAAAAAEwAAABMLgEA0KgGADEKAAAAQQ4QQg4YQg4gQg4oQg4w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SYsUJEyJ7+hYBgAAhMAPhXMCAABMOeUPhB0GAABJizdIi1UATInv6DgGAACEwHUOSIPFCEw55XXk6fwFAABIi30ASYs0JEg5/g+ENAIAAEiLTwhIichIg+D+9sEBD4UFAgAASItWCEiJ0UiD4f72wgEPhfoBAABIOcgPhP4BAADoj74SAOn5AQAASItAGOk1////SItJGEg5yA+FRf///+jfdfv/g8MBiVwkFE2NdwhNOeYPgosAAABMifNIOetMi2QkGESLdCQUD4QqAQAASIt1AEiLE0yJ7+iGBQAAhMAPhBMBAABIiztIi3UASDn+D4T/AAAASItPCEiJyEiD4P72wQEPhdAAAABIi1YISInRSIPh/vbCAQ+FxQAAAEg5yA+EyQAAAOjovRIA6cQAAADoTnX7/4NEJBQBSDnrSQ9E7GaQSYs2SItVAEyJ7+gRBQAASYPGCITAdelJjV74Dx9EAABJi3Qk+EmDxPhIi1UATInv6OsEAACEwHTnTDnjD4c2////SYt++EmLNCRIOf50o0iLTwhIichIg+D+9sEBdSNIi1YISInRSIPh/vbCAXUZSDnID4R1////6FO9EgDpcP///0iLQBjr10iLSRhIOch15+lX////SItAGOkn////SItJGEg5yA+FN////+iPdPv/QYPGAUWF9nU2TIn/SIneTInq6GgKAABBicZIjWsISInvSIt0JAhMieroUQoAAITAD4UsAQAARYT2D4Wo/P//SInYTCn4SItMJAhIKdlIOcgPjfEAAABMif9Iid5MieroS/z//0iDwwhIid1Jid/pd/z//0iLQBjp8v3//0iLSRhIOcgPhQL+///oAXT7/0iDxQhMOeUPhKoDAABMiePrD+jqc/v/Zi4PH4QAAAAAAEmLN0iLVQBMie/osQMAAEiDxQiEwHTpTI11+A8fRAAASYs3SItT+EiDw/hMie/ojQMAAITAdelJOd5zVEiLffhIizNIOf50uEiLTwhIichIg+D+9sEBdRxIi1YISInRSIPh/vbCAXUSSDnIdITo/rsSAOuMSItAGOveSItJGEg5yHXq6Wn///8PH4QAAAAAAE2J9+mj+///SI17CEiLdCQITInq6Ff7//9IiVwkCOl0+///SIlcJAhFhPYPhGb7///p0AIAAEiNBXNm9f9IYwyISAHB/+FIi0QkCEiLcPhJixdMie/o1gIAAITAD4SkAgAASYs/SItEJAhIi3D4SDn+D4SPAgAASItPCEiJyEiD4P72wQEPhWACAABIi1YISInRSIPh/vbCAQ+FVQIAAEg5yA+EWQIAAOgzuxIA6VQCAABJjXcISItUJAhIg8L4TIn/TInp6HYDAADpNwIAAEmNdwhJjVcQSItMJAhIg8H4TIn/TYno6AUFAADpFgIAAEmNdwhJjVcQSY1PGEyLRCQISYPA+EyJ/02J6ehQBgAA6fEBAABNjWcQSY13CEyJ/0yJ4kyJ6egVAwAASY1HGEg7RCQID4TMAQAAvRgAAABMjXQkIOsuZi4PH4QAAAAAAEyJ9ui4cfv/TIn36LBk+/9JjUQkCEiDxQhIO0QkCA+EkgEAAEmLFCRJicRIizBMie/oqgEAAITAdNYPV8APKUQkUA8pRCRADylEJDAPKUQkIEmLHCRMiffoo2H7/0iLTCQoSInISIPg/vbBAXUiSItTCEiJ0UiD4f72wgF1GEg5yHQcTIn3SIne6DJx+//rH0iLQBjr2EiLSRhIOch15Ek53nQLTIn3SIne6FFx+/9IietmLg8fhAAAAAAADx9AAEmLdB/4SYs8H0iLTwhIichIg+D+9sEBdRxIi1YISInRSIPh/vbCAXUSSDnIdCLozXD7/+slSItAGOveSItJGEg5yHXqZi4PH4QAAAAAAGaQSDn3dAXo5nD7/0iD+wh0IEmLVB/wTInvTIn26LAAAABIg8P4hMB1iEwB++sGDx8ATIn7SIs7SItPCEiJyEiD4P72wQF1MEiLVCQoSInRSIPh/vbCAXUlSDnID4WQ/v//TDn3D4SP/v//TIn26H9w+//pgv7//0iLQBjrykiLSRhIOcgPhWf+///r1UiLQBjpl/3//0iLSRhIOcgPhaf9///oSnD7/2RIiwQlKAAAAEg7RCRgdQ9Ig8RoW0FcQV1BXkFfXcPoJrcSAGYPH0QAAFVBV0FWQVVBVFNIgezIAAAASYnWSInySIn7ZEiLBCUoAAAASImEJMAAAABIjXwkYEiJ3uhICQAASI18JAhIid5MifLoOAkAAItEJGCLTCQIswE5yA+MhgAAADnBfQQx2+t+TItsJHBIi2wkGEw57U2J7kwPQvVNhfZ0IEyLfCRoTItkJBBMif9MieZMifLovbcSAIXAdA55EetFTDntD5fDdT3rIkk57XI2TInnTIn+TIny6Ji3EgCFwHQGhcB4nusFTDntcpdIjbwkuAAAAEiNdCRgSI1UJAjo8ogAAInDZEiLBCUoAAAASDuEJMAAAAB1FInYSIHEyAAAAFtBXEFdQV5BX13D6BS2EgAPH0AAVUFXQVZBVUFUU1BJic9JidVJifRIif1IizZIixdIic/oy/7//4nDSYt1AEmLFCRMif/ouf7//4TbdCBIi30AhMB0XEmLdQBBvgEAAABIOf4PhfsAAADpNgEAAEUx9oTAD4QrAQAASYs8JEmLdQBIOf50dUiLTwhIichIg+D+9sEBdVFIi1YISInRSIPh/vbCAXVHSDnIdEvoA7cSAOtJSYs0JEg5/nR8SItPCEiJyEiD4P72wQF1WEiLVghIidFIg+H+9sIBdU5IOch0UujOthIA61BIi0AY66lIi0kYSDnIdbXoKG77/0mLNCRIi1UATIn/6Pj9//9BvgEAAACEwA+EiwAAAEiLfQBJizQk6zZIi0AY66JIi0kYSDnIda7o7G37/0mLdQBJixQkTIn/6Lz9//9BvgEAAACEwHRTSYs8JEmLdQBBvgIAAABIOf50QEiLTwhIichIg+D+9sEBdRxIi1YISInRSIPh/vbCAXUSSDnIdBboJbYSAOsUSItAGOveSItJGEg5yHXq6H9t+/9EifBIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx8AVUFXQVZBVUFUU1BNicVIic1IidNJifRJif9MicHoLv7//0GJxkiLdQBIixNMie/oDP3//4TAD4QaAQAASIs7SIt1AEg5/nRASItPCEiJyEiD4P72wQF1HEiLVghIidFIg+H+9sIBdRJIOch0Fuh+tRIA6xRIi0AY695Ii0kYSDnIdero2Gz7/0iLM0mLFCRMie/oqfz//4TAdDhJizwkSIszSDn+dEZIi08ISInISIPg/vbBAXUiSItWCEiJ0UiD4f72wgF1GEg5yHQc6B+1EgDrGkGDxgHrfUiLQBjr2EiLSRhIOch15OhzbPv/SYs0JEmLF0yJ7+hE/P//hMB0OEmLP0mLNCRIOf50RkiLTwhIichIg+D+9sEBdSJIi1YISInRSIPh/vbCAXUYSDnIdBzourQSAOsaQYPGAusYSItAGOvYSItJGEg5yHXk6A5s+/9Bg8YDRInwSIPECFtBXEFdQV5BX13DDx+EAAAAAABVQVdBVkFVQVRTUE2JzU2JxkiJzUiJ00mJ9EiJPCRNicjoav7//0GJx0mLNkiLVQBMie/omPv//4TAD4SGAQAASIt9AEmLNkg5/nRASItPCEiJyEiD4P72wQF1HEiLVghIidFIg+H+9sIBdRJIOch0FugKtBIA6xRIi0AY695Ii0kYSDnIderoZGv7/0iLdQBIixNMie/oNfv//4TAdDhIiztIi3UASDn+dElIi08ISInISIPg/vbBAXUlSItWCEiJ0UiD4f72wgF1G0g5yHQf6KuzEgDrHUGDxwHp5gAAAEiLQBjr1UiLSRhIOch14ej8avv/SIszSYsUJEyJ7+jN+v//hMB0PEmLPCRIizNIOf5IixwkdEZIi08ISInISIPg/vbBAXUiSItWCEiJ0UiD4f72wgF1GEg5yHQc6D+zEgDrGkGDxwLrfUiLQBjr2EiLSRhIOch15OiTavv/SYs0JEiLE0yJ7+hk+v//hMB0OEiLO0mLNCRIOf50RkiLTwhIichIg+D+9sEBdSJIi1YISInRSIPh/vbCAXUYSDnIdBzo2rISAOsaQYPHA+sYSItAGOvYSItJGEg5yHXk6C5q+/9Bg8cERIn4SIPECFtBXEFdQV5BX13DDx+EAAAAAABVQVdBVkFVQVRTSIPsaEiJ1UmJ9kmJ/GRIiwQlKAAAAEiJRCRgSInwSCn4SMH4A7MBSIP4BQ+HkAAAAEiNDUZd9f9IYwSBSAHI/+BJi3b4SYsUJEiJ7+iV+f//hMAPhOUCAABJizwkSYt2+Eg5/g+E1AIAAEiLTwhIichIg+D+9sEBD4WlAgAASItWCEiJ0UiD4f72wgEPhZoCAABIOcgPhJ4CAADo9rESAOmZAgAASY10JAhJg8b4TInnTInySInp6Dr6///pfQIAAEmNVCQQSY10JAhMiedIienoIPr//0mNRCQYTDnwD4RaAgAAx0QkDAAAAABBvxgAAABMjWwkIEmNXCQQTIl0JBjrOA8fAEyJ7ui4aPv/i0QkDIPAAYP4CA+E7wEAAIlEJAxMie/onFv7/0iNQwhJg8cITDnwD4TOAQAASIsTSInDSIswSInv6Jr4//+EwHTaD1fADylEJFAPKUQkQA8pRCQwDylEJCBMizNMie/olFj7/0iLTCQoSInISIPg/vbBAQ+FGgEAAEmLVghIidFIg+H+9sIBD4UPAQAASDnISIlcJBB0DUyJ70yJ9ugWaPv/6xBNOfV0C0yJ70yJ9uhEaPv/TIn7TIt0JBhmLg8fhAAAAAAAZpBJi3Qc+EmLPBxIi08ISInISIPg/vbBAXUcSItWCEiJ0UiD4f72wgF1Ekg5yHQi6L1n+//rJUiLQBjr3kiLSRhIOch16mYuDx+EAAAAAABmkEg593QF6NZn+/9Ig/sIdCBJi1Qc8EiJ70yJ7uig9///SIPD+ITAdYhMAePrBg8fAEyJ40iLO0iLTwhIichIg+D+9sEBdUdIi1wkEEiLVCQoSInRSIPh/vbCAXU3SDnID4V7/v//TDnvD4R6/v//TInu6Gpn+//pbf7//0iLQBjp3f7//0iLSRjp6P7//0iLQBjrs0iLSRhIOcgPhUD+///rw0mNdCQISY1UJBBJjUwkGEmDxvhMiedNifBJienoLfv//+tTSY10JAhJjVQkEEmDxvhMiedMifFJiejon/n//+s1swHrMUiDwwhMOfMPlMNIjXwkIOilWfv/6xtIi0AY6VL9//9Ii0kYSDnID4Vi/f//6Mhm+/9kSIsEJSgAAABIO0QkYHURidhIg8RoW0FcQV1BXkFfXcPooq0SAGaQVUFXQVZBVUFUU0iD7BhJidVIiftMi2IoTYXkdQdMjSVcnRMATIt+CE2LTCQoRQ+2AUH2wAF0Ck2LQQhNi0kQ6wdJg8EBSdHoTIs2TTnHdTEx7U2F/w+EhgAAAEyJ90yJzkyJ+kyJRCQQTIlMJAjoTa4SAEyLTCQITItEJBCFwHRgSYtFMEiFwHUHSI0Fj5MTAEiLcBAPtgaoAXQKSItGCEiLdhDrB0iDxgFI0ei9AQAAAEk5x3UqTYX/dBtMifdMifpNicZMic3oA64SAEmJ6U2J8IXAdQIxwDHthcBAD5XFSYt0JBBJi1QkGEmLTCQgSYtEJDCJKw+2PkD2xwF0CkiLfghIi3YQ6wdIg8YBSNHvSIlzCEiJexAPtjJA9sYBdApIi3IISItSEOsHSIPCAUjR7kiJUxhIiXMgD7YR9sIBdApIi1EISItJEOsHSIPBAUjR6kiJSyhIiVMwTIlLOEyJQ0APtgj2wQF0CkiLSAhIi0AQ6wdIg8ABSNHpSIlDSEiJS1BIidhIg8QYW0FcQV1BXkFfXcNmDx+EAAAAAABVQVdBVkFVQVRTSIPsOGRIiwQlKAAAAEiJRCQwSItHWEiLcBBIjUQkEEiJBCRIx0QkCAAAAACDvpAHAAAAdD9Jif5Ig8ZQSIHGOAcAAEiJ5+hbiAAARIt8JAhJg/8BdSFMizwkQQ+2H/bDAQ+EYgEAAEmLXwhNi38Q6VwBAABFMf9IjVwkEEiNLVcXs/5MjSXK6PH/TI0tK/6k/0yNNYihqv5mLg8fhAAAAAAADx9AAEiJ30iNNbRzn/66vwMAALkGAAAARTHAQbn/////6C6uEgBIid/oNq4SALoOAAAASInHSI018VGX/+jChv//ugEAAABIicdIjTXefqn/6K6G//+6AQAAAEiJx0iJ7uiehv//ugIAAABIicdIjTUESnz/6IqG//+6AQAAAEiJx0iJ7uh6hv//ug0AAABIicdIjTXnh37/6GaG//+6BAAAAEiJx0iNNVGKqf/oUob//0iJx74BAAAA6DWwEgC6EAAAAEiJx0iNNTv9pP/oMYb//0iJx0yJ/ugmsBIAugIAAABIicdMieboFob//7opAAAASInHTInu6AaG//+LdCQISInH6PqvEgC6AQAAAEiJx0yJ9ujqhf//SInf6FKtEgDp3f7//0mDxwFI0esPV8APKUQkEEjHRCQgAAAAAEiD+/APgxQDAABIg/sXcxONBBuIRCQQTI1kJBFIhdt1KOs0SI1rEEiD5fBIie/ocqcSAEmJxEiJRCQgSIPNAUiJbCQQSIlcJBhMiedMif5Iidro7qsSAEHGBBwASY2ekAAAAEH2hpAAAAABdQbGQwEA6ytJi4agAAAAxgAASceGmAAAAAAAAABB9oaQAAAAAXQMSYu+oAAAAOgnpxIASItEJCBIiUMQDyhEJBAPEQNJi0ZYSItYUEiLezC+dQQAALoBAAAAMcnoCa8SAEmLRlhNi77oAAAATItgQE2NrqgAAAC/iAAAAOi5phIASInFSI0FlxATAEiJRQBMiWUISIldEA9XwA8RRRhIx0UoAAAAAA8RRTgPEUVIDxFFWEyJbWhJjYbAAAAASIlFcEyJfXhJjYbwAAAASImFgAAAAL8oAAAA6F2mEgAPV8APEUAQxkAIFki5a3l0aGVfY2xIiUgJx0AQbGFpbcZAFABIjQ2KERMASIkISIloIEiJ3zH2MdJIicHoXK4SAEyLfRC/KAAAAOgOphIASMdAGAAAAADGQAgcSLlreXRoZV9tZUiJSAlIuW1ldGFkYXRhSIlID8ZAFwBIjQ1jERMASIkISIloIEyJ/zH2MdJIicHoBa4SAEiDuwAEAAAAdFK/GAAAAOixpRIASIuLAAQAAEjHgwAEAAAAAAAASIsVUGATAEiDwhBIiRBIiWgISIlIEEiLuwAEAABIiYMABAAASIX/TI18JBB0FEiLB/9QCOsMSImrAAQAAEyNfCQQSYuu6AAAAIC9aQEAAAB0K0iNvSABAABMjbUoAQAASIu1KAEAAOhzYAAATIm1IAEAAA9XwA8RhSgBAABIid/oaq0SAA9XwA8pRCQQSMdEJCAAAAAASI1sJBAPH0AASInfSInu6FWtEgBmg3wkIAF17UiLHCSLRCQISIXAdC1IweADSI0swOsMZg8fRAAASIPFuHQT9kQruAF080iLfCvI6NmkEgDr50iLHCRMOft0CEiJ3+gmqRIAZEiLBCUoAAAASDtEJDB1GUiDxDhbQVxBXUFeQV9dw0iNfCQQ6G2pEgDo6KYSAA8fhAAAAAAAVUFXQVZBVUFUU0iD7FhIiftkSIsEJSgAAABIiUQkUEiNt/AAAAAPtofwAAAAqAF0CUiLg/gAAADrA0jR6EyNs5AAAABIhcBJD0T2TIn36C2lEgBIi0NYSIu76AAAAEiLSBBIi0BQSItxEEyLeShMi2BoSIPHcOgFpRIAD1fADylEJCAPKUQkEA8pBCRIx0QkMAAAAABJieVMie9Mif5MieLoCnb//4nFSIu76AAAAEyJ/uj5rP//McBAhO1JD0XFSItLWEiLSSCKiagAAABIiUQkSIhMJEdIi7uAAAAASIX/D4TkAAAASI2LwAAAAEiBw6gAAABIiwdMjUQkSEyNTCRHTIn2SIna/1AwSItcJCBIhdt0R0iLRCQoSDnYdRlIid/rLmYuDx+EAAAAAABmkEiJ6Eg53XQVSI1o4PZA4AF07kiLePDoRaMSAOvjSIt8JCBIiVwkKOg0oxIASItcJAhIhdt0RkiLRCQQSDnYdRhIid/rLWYuDx+EAAAAAACQSInoSDnddBVIjWjg9kDgAXTuSIt48Oj1ohIA6+NIi3wkCEiJXCQQ6OSiEgBkSIsEJSgAAABIO0QkUHUUSIPEWFtBXEFdQV5BX13D6GCcAADoC6USAGYuDx+EAAAAAACQU0iJ+0iNBdULEwBIiQf2h/AAAAABdAxIi7sAAQAA6I2iEgBIjbvAAAAA6DGcAAD2g6gAAAABdAxIi7u4AAAA6GyiEgD2g5AAAAABdAxIi7ugAAAA6FeiEgBIjUNgSIu7gAAAAEg5+HQMuAUAAABIhf91B+sLuAQAAABIiw//FMFIid9b6XeqEgAPH4AAAAAAU0iJ+0iNBUULEwBIiQf2h/AAAAABdAxIi7sAAQAA6P2hEgBIjbvAAAAA6KGbAAD2g6gAAAABdAxIi7u4AAAA6NyhEgD2g5AAAAABdAxIi7ugAAAA6MehEgBIjUNgSIu7gAAAAEg5+HQMuAUAAABIhf91B+sLuAQAAABIiw//FMFIid/o6KkSAEiJ31vpj6ESAGYuDx+EAAAAAAAPH0QAAFNIiftIjQU9CxMASIkHSIPHOOipLQAA9kMYAXQJSIt7KOhaoRIASInfW+mxqRIAkFNIiftIjQUNCxMASIkHSIPHOOh5LQAA9kMYAXQJSIt7KOgqoRIASInf6IKpEgBIid9b6RmhEgBmDx+EAAAAAABVQVdBVkFVQVRTSIHsuAAAAEmJ/2RIiwQlKAAAAEiJhCSwAAAAg/oBdBeF0g+FswMAAEEPtkcYqAF0UEmLRyDrTQ9XwA8pBCRIx0QkEAAAAABIiedMif7oRDoAAEmDf2AAD4QNAQAATIn/6EE5AAAPthQk9sIBD4ToAAAASIt0JBBIi1QkCOnhAAAASNHoTY13OEiFwA+ErgAAAEmNXxhJi0dgSIXAD4RvAwAAQYt3MEmLT1hIAcFIg8H/SLqrqqqqqqqqqkiJyEj34kmLR0BIweoESIsE0EjB4gNIjRRSSCnRSGnJqAAAAIm0CIwAAABIieVIie9Iid7oMqMSAMdEJBgAAAAASI18JBzoEOcPAMeEJIwAAAAAAAAASI2cJJAAAABIjYQkmAAAAA9XwA8RhCSYAAAASImEJJAAAABMifdIie7pRQEAAEmLfwiLt1gBAADGBCQAhfZ4MkiBx7gAAADrVEjR6kiNdCQBSInH6AznDwD2BCQBD4RnAgAASIt8JBDoiJ8SAOlYAgAAuP7///9IKfCJxonBwekGSIuX4AAAAEiLDMpID6PBD4NdAgAASIHHyAAAAInwSI0EQEjB4ANIAwdIi0AQSIPg+EiLQAhMi2BYSYscJA9XwA8pBCRIx0QkEAAAAABIg/vwD4OOAgAASIP7F3MSjQQbiAQkTI1sJAFIhdt1J+s3SI1rEEiD5fBIie/o1Z4SAEmJxUiJRCQQSIPNAUiJLCRIiVwkCEmDxCBMie9MieZIidroTqMSAEHGRB0AAMdEJBgAAAAASI18JBzoxuUPAMeEJIwAAAAAAAAASI2cJJAAAABIjYQkmAAAAA9XwA8RhCSYAAAASImEJJAAAABIieZMiffofSwAAEiLtCSYAAAASInf6M2NAAD2BCQBdApIi3wkEOhdnhIATIn/6PU2AABIicNJi0cQSItoOEiLRQglAABAAEiJwUjB6RZIhcBIjQU93vH/SI01wSOj/0gPRPBIjRRJSIPCB0iJ3+iF5Q8ASItFCCUAAIAASInBSMHpF0iFwEiNBWIMs/5IjTWXI6P/SA9E8EiNFElIg8IMSInf6FDlDwAxwPdFCAAAIAAPlMBIjQ1QQmH/SI01wPa0/kgPRPFIjRSFDAAAAEiJ3+gi5Q8AMcD3RQAAAABAD5TASI0NMX1+/0iNNSJ9fv9ID0TxSI0UhQcAAABIid/o9OQPADHA9kUAIA+UwEiNDYSksP5IjTXhC7P+SA9E8UiNFIUGAAAASInf6MnkDwAxwPdFAABAAAAPlMBIjQ3kfH7/SI01HJyp/0gPRPFIjRSFBAAAAEiJ3+ib5A8AZEiLBCUoAAAASDuEJLAAAAAPhY0AAABIgcS4AAAAW0FcQV1BXkFfXcNIieLoaqUSAOmq/f//SI01rGef/kmJ5EyJ57pDAgAAuQYAAABFMcBBuf/////oIKISAEyJ5+goohIASI01ctzx/7olAAAASInH6LR6//9IjTXhCrP+ugEAAABIicfooHr//0yJ5+gIohIASYtHYOkr/P//SInn6FehEgDo0p4SAGaQVUFXQVZBVUFUU0iD7GhJifxMjbQkyAAAAEyNvCS4AAAASIuUJLAAAABkSIsEJSgAAABIiUQkYEiJTCRQTIlEJFhIhdJ0Oon1QQ8QBg8RRCQQQQ8QBw8RBCRIjXwkMEyJ5uhKFwAASY1cJBhB9kQkGAEPhZQAAADGQwEA6a4AAAC/AwAAADH26CShEgCEwA+FYQEAAL8DAAAAMfboEKESAITAD4XmAQAAvwMAAAAx9uj8oBIAhMAPhWkCAAC/AwAAADH26OigEgCEwA+F5AIAAIoFSpETAITAD4WEAAAASI09O5ETAOgWpBIAhcB0dEyJZCQwSI18JDDosz4AAEiNPRyREwDoB6QSAOtXSYtEJCjGAABJx0QkIAAAAABB9kQkGAF0CkmLfCQo6FKbEgBIi0QkQEiJQxAPEEQkMA8RA0mLXCQISInfie7ospMAAMZEJDAAjUgBg/kCcyox7UGJbCQwZEiLBCUoAAAASDtEJGAPha8CAABIg8RoW0FcQV1BXkFfXcOFwHgLSIHDuAAAAInG6yS+/v///ynGifDB6AZIi4vgAAAASIsEwUgPo/BzKkiBw8gAAABIiwNIhcB0m4nxSI0MSUiNBMiB5f///3+5////fyMIKc3rgkiNVCQwSInf6AijEgCAfCQwAA+FaP///+vV6MafEgBJicWLAIlEJCxIjTU0ZZ/+SI1cJEhIid+6UgMAALkDAAAARTHAQbn/////6KafEgBIid/orp8SAEiNNdKSqv66EQAAAEiJx+g6eP//SInDSI1sJDBIjXQkUEiJ7+gFfwAASInfSInu6Ppw///2RCQwAXQKSIt8JEDoCZoSAEiNfCRI6G+fEgCLRCQsQYlFAOkG/v//6C2fEgBJicWLAIlEJCxIjTWbZJ/+SI1cJEhIid+6UwMAALkDAAAARTHAQbn/////6A2fEgBIid/oFZ8SAEiNNUuSqv66EAAAAEiJx+ihd///SInDSI1sJDBIie9Mif7obn4AAEiJ30iJ7uhjcP//9kQkMAF0CkiLfCRA6HKZEgBIjXwkSOjYnhIAi0QkLEGJRQDpg/3//+iWnhIASYnHRIsoSI01B2Sf/kiNXCRISInfulQDAAC5AwAAAEUxwEG5/////+h5nhIASInf6IGeEgBIjTVa7qT/uhIAAABIicfoDXf//0iJw0iNbCQwSInvTIn26Np9AABIid9Iie7oz2////ZEJDABdApIi3wkQOjemBIASI18JEjoRJ4SAEWJL+kI/f//TIu0JNgAAADo/50SAEiJw0SLOEiNNXBjn/5IjWwkMEiJ77pVAwAAuQMAAABFMcBBuf/////o4p0SAEiJ7+jqnRIASI01r/lV/7oUAAAASInH6HZ2//9IicdMifboC6ESAEiJ7+jTnRIARIk76av8///oppoSAGYPH0QAAFVBV0FWQVVBVFNIg+woSYn/ZEiLBCUoAAAASIlEJCBIi38Ii7dYAQAAxgQkAI1GAYP4Ag+DaQEAAEUx9kmLfwiLt1gBAADGBCQAhfZ4CUiBx7gAAADrK7j+////SCnwicaJwcHpBkiLl+AAAABIiwzKSA+jwQ+DNAEAAEiBx8gAAACJ8EiNBEBIweADSAMHSItAEEiD4PhIi0AITItgWEmLHCQPV8APKQQkSMdEJBAAAAAASIP78A+DagEAAEiD+xdzEo0EG4gEJEyNbCQBSIXbdSfrN0iNaxBIg+XwSInv6EuXEgBJicVIiUQkEEiDzQFIiSwkSIlcJAhJg8QgTInvTInmSIna6MSbEgBBxkQdAABIieJMif9MifboIBoAAPYEJAF0CkiLfCQQ6CCXEgBIiedMif7opTAAAEmLX2j2AwF1B2bHAwAA6yRIi0MQxgAASMdDCAAAAAD2AwF0EEiLexDo6JYSAEjHAwAAAABIi0QkEEiJQxAPEAQkDxEDZEiLBCUoAAAASDtEJCAPhZwAAABIg8QoW0FcQV1BXkFfXcOF9ngWSIHHuAAAAOs0SIni6AmfEgDp0/7//7j+////SCnwicaJwcHpBkiLl+AAAABIiwzKSA+jwXM3SIHHyAAAAEiLB0iFwA+ESv7//4nxSI0MSUiNBMiDOAAPiDf+//9Ii0AQSIPg+EyLcAjpKf7//0iJ4uilnhIAgDwkAA+FFP7//+vSSInn6PGaEgDobJgSAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIg+xITInDSInNSYn1SYn8ZEiLBCUoAAAASIlEJEBIi0IQSIXAdCZIi0oISItEwfhIg8AQTIs4TYX/dCRBizdMiefoPz0AAIXteTbrGkiLOkiD5/h0CuhbnhIASIXAddBFMf+F7XkaSYt8JAiJ7uhTnhIAhcB4CkyJ54nG6AU9AABFi3UARYX2D4j6AAAAQYtNEDHAjVHzZoP6BkiJXCQID4MBAQAASItYEESLK0iDwxBJi1QkEEiNfCQoSInuSInZTYnoTYn56AouAgAPtmwkKED2xQF0EEiLRCQ4SIkEJEiLbCQw6wxI0e1IjUQkKUiJBCRJi3QkEEiNfCQQSInaTInpTYn4TItMJAjo9jYCAA+2XCQQ9sMBdAxMi3wkIEiLXCQY6whI0etMjXwkEUyJ50SJ9uhNPAAATInn6GUtAABIicdIizQkSInq6CbcDwBMiefoTi0AAEiJx0yJ/kiJ2ugQ3A8A9kQkEAF0CkiLfCQg6I+UEgD2RCQoAXQKSIt8JDjofpQSAGRIiwQlKAAAAEg7RCRAdSJIg8RIW0FcQV1BXkFfXcNmg/kBD4T1/v//SYtFCOns/v//6JeWEgAPH4AAAAAAVUFXQVZBVUFUU0iD7BhkSIsEJSgAAABIiUQkEIsuhe14dUmJ/otOEDHAjVHzZoP6Bg+DkgAAAEyLaBBFi30ASYPFEEyJ9+iVLAAASYnESYteCEiJ34nu6GSMAADGRCQLAI1IAYP5AnNRMe2JbCQMSI10JAy6BAAAAEyJ5+gv2w8ATIn36FcsAABIicdMie5MifroGdsPAGRIiwQlKAAAAEg7RCQQD4WTAAAASIPEGFtBXEFdQV5BX13DhcB4HkiBw7gAAACJxus3ZoP5AQ+EZP///0iLRgjpW////77+////KcaJ8MHoBkiLi+AAAABIiwTBSA+j8HMrSIHDyAAAAEiLA0iFwA+EXf///4nxSI0MSUiNBMi5////fyMIKc3pR////0iNVCQLSInf6H+bEgCAfCQLAA+FLf///+vY6E2VEgBmLg8fhAAAAAAADx8AVUFXQVZBVUFUU0iD7BhkSIsEJSgAAABIiUQkEIsuhe0PiLoAAABJidRIifuLThAxwI1R82aD+gYPg9QAAABMi3AQRYsuSInf6EMrAABIiQQkTIt7CEyJ/4nu6BGLAADGRCQLAI1IAYP5Ag+DkwAAADHtSIs8JEmDxhCJbCQMSI10JAy6BAAAAOjT2Q8ASYsEJEiD+Ad3CEmDfCQQAHQPSIPg+ItwCEiJ3+jCOQAASInf6NoqAABIjTXxiqr+ugYAAABIicfoltkPAEiJ3+i+KgAASInHTIn2TInq6IDZDwBkSIsEJSgAAABIO0QkEA+FkwAAAEiDxBhbQVxBXUFeQV9dw4XAeB5Jgce4AAAAicbrN2aD+QEPhCL///9Ii0YI6Rn///++/v///ynGifDB6AZJi4/gAAAASIsEwUgPo/BzK0mBx8gAAABJiwdIhcAPhBv///+J8UiNDElIjQTIuf///38jCCnN6QX///9IjVQkC0yJ/+jmmRIAgHwkCwAPhev+///r2Oi0kxIADx9AAFVBV0FWQVVBVFNIg+woSYnPSYnVSYn0SYn+ZEiLBCUoAAAASIlEJCBIizpIi0IQSIP/B3cFSIXAdFxIhcB0J0mLTQhIi0TB+EiDwBBIgzgAdERJi0UQSIXAdB1Ji00ISItEwfjrH0iD5/h0KuifmRIASIXAddLrHkmLfQBIg+f46IuZEgBIg8AQSIsAizBMiffoSjgAAEWLJCRJi3YQSI18JAhMifroJTMCAA+2bCQIQPbFAXQMTIt8JBhIi2wkEOsISNHtTI18JAlJg30QAEiNBbVmqf9IjR0XNWH/SA9F2EmDfQAISA9D2EyJ90SJ5ujrNwAATIn36AMpAABIicdMif5IieroxdcPAEyJ9+jtKAAAugEAAABIicdIid7ordcPAPZEJAgBdApIi3wkGOgskBIAZEiLBCUoAAAASDtEJCB1D0iDxChbQVxBXUFeQV9dw+hYkhIADx+EAAAAAABVQVdBVkFVQVRTSIPsOInNQYn3SIn7ZEiLBCUoAAAASIlEJDBIi3cQSI18JBDoPjICAEQPtmQkEEH2xAF0EUiLRCQgSIlEJAhMi2QkGOsNSdHsSI1EJBFIiUQkCEiJ3+g8KAAASYnFTItzCEyJ90SJ/ugKiAAAxkQkLACNSAGD+QIPg6MAAABFMf9Mi3QkCEyJ70SJfCQsSI10JCy6BAAAAOjK1g8ASInf6PInAABIjTWHZan/ugMAAABIicfortYPAEiJ3+jWJwAAiWwkLEiNdCQsugQAAABIicfokNYPAEiJ3+i4JwAASInHTIn2TIni6HrWDwD2RCQQAXQKSIt8JCDo+Y4SAGRIiwQlKAAAAEg7RCQwD4WNAAAASIPEOFtBXEFdQV5BX13DhcB4C0mBxrgAAACJxuskvv7///8pxonwwegGSYuO4AAAAEiLBMFID6PwczhJgcbIAAAASYsGSIXAD4Qe////ifFIjQxJSI0EyEyLdCQIQYHn////f7n///9/IwhBKc/pAf///0iNVCQsTIn36NWWEgCAfCQsAA+F4f7//+vL6KOQEgAPHwBVQVdBVkFVQVRTSIPsOInNQYn3SIn7ZEiLBCUoAAAASIlEJDBIi3cQSI18JBDojjACAEQPtmQkEEH2xAF0EUiLRCQgSIlEJAhMi2QkGOsNSdHsSI1EJBFIiUQkCEiJ3+iMJgAASYnFTItzCEyJ90SJ/uhahgAAxkQkLACNSAGD+QIPg6MAAABFMf9Mi3QkCEyJ70SJfCQsSI10JCy6BAAAAOga1Q8ASInf6EImAABIjTXbY6n/ugUAAABIicfo/tQPAEiJ3+gmJgAAiWwkLEiNdCQsugQAAABIicfo4NQPAEiJ3+gIJgAASInHTIn2TIni6MrUDwD2RCQQAXQKSIt8JCDoSY0SAGRIiwQlKAAAAEg7RCQwD4WNAAAASIPEOFtBXEFdQV5BX13DhcB4C0mBxrgAAACJxuskvv7///8pxonwwegGSYuO4AAAAEiLBMFID6PwczhJgcbIAAAASYsGSIXAD4Qe////ifFIjQxJSI0EyEyLdCQIQYHn////f7n///9/IwhBKc/pAf///0iNVCQsTIn36CWVEgCAfCQsAA+F4f7//+vL6POOEgAPHwBVQVdBVkFVQVRTSIPsOIl0JAxJif1kSIsEJSgAAABIiUQkMEiDOQhBD5PGSIN5EAAPlcCLchAxyY1+82aD/wYPg4EBAABBCMZMi2EQQYssJA9XwA8pRCQQSMdEJCAAAAAASIP9F3MUjUQtAIhEJBBMjXwkEUiF7XUo6zhIjV0QSIPj8EiJ3+j1ixIASYnHSIlEJCBIg8sBSIlcJBBIiWwkGEmDxBBMif9MieZIierobZASAEUPtuZBxgQvAEQPtnQkEEH2xgF0EEiLRCQgSIkEJEyLdCQY6wxJ0e5IjUQkEUiJBCSLbCQMQYPEAUyJ7+hMJAAASYnHSYtdCEiJ34nu6BuEAADGRCQsAI1IAYP5Ag+DoQAAADHtSIscJEyJ/4lsJCxIjXQkLLoEAAAA6N7SDwBMie/oBiQAAEiNNSUttf+6BgAAAEiJx+jC0g8ATInv6OojAABEiWQkLEiNdCQsugQAAABIicfoo9IPAEyJ7+jLIwAASInHSIneTIny6I3SDwD2RCQQAXQKSIt8JCDoDIsSAGRIiwQlKAAAAEg7RCQwD4WdAAAASIPEOFtBXEFdQV5BX13DhcB4HkiBw7gAAACJxus3ZoP+AQ+Edf7//0iLSgjpbP7//77+////KcaJ8MHoBkiLi+AAAABIiwTBSA+j8HM1SIHDyAAAAEiLA0iFwA+EDf///4nxSI0MSUiNBMhIixwkgeX///9/uf///38jCCnN6fH+//9IjVQkLEiJ3+jYkhIAgHwkLAAPhdP+///rzuimjBIAZg8fRAAAVUFXQVZBVUFUU0iD7DiJdCQMSYn9ZEiLBCUoAAAASIlEJDBIgzkIQQ+TxkiDeRAAD5XAi3IQMcmNfvNmg/8GD4OGAQAAQQjGTIthEEGLLCQPV8APKUQkEEjHRCQgAAAAAEiD/RdzFI1ELQCIRCQQTI18JBFIhe11KOs4SI1dEEiD4/BIid/opYkSAEmJx0iJRCQgSIPLAUiJXCQQSIlsJBhJg8QQTIn/TInmSInq6B2OEgBBD7bGQbwCAAAAQcYELwBED7Z0JBBB9sYBdBBIi0wkIEiJDCRMi3QkGOsMSdHuSI1MJBFIiQwki2wkDEEpxEyJ7+j3IQAASYnHSYtdCEiJ34nu6MaBAADGRCQsAI1IAYP5Ag+DoQAAADHtSIscJEyJ/4lsJCxIjXQkLLoEAAAA6InQDwBMie/osSEAAEiNNdcqtf+6BwAAAEiJx+ht0A8ATInv6JUhAABEiWQkLEiNdCQsugQAAABIicfoTtAPAEyJ7+h2IQAASInHSIneTIny6DjQDwD2RCQQAXQKSIt8JCDot4gSAGRIiwQlKAAAAEg7RCQwD4WdAAAASIPEOFtBXEFdQV5BX13DhcB4HkiBw7gAAACJxus3ZoP+AQ+EcP7//0iLSgjpZ/7//77+////KcaJ8MHoBkiLi+AAAABIiwTBSA+j8HM1SIHDyAAAAEiLA0iFwA+EDf///4nxSI0MSUiNBMhIixwkgeX///9/uf///38jCCnN6fH+//9IjVQkLEiJ3+iDkBIAgHwkLAAPhdP+///rzuhRihIAkFNIifvox5ASAEiJ31vp7ocSAGYuDx+EAAAAAAAPH0AAQVZTSIPsGGRIiwQlKAAAAEiJRCQQSItfIEiLQ2BIhcB0WUiLc0BIi0tYSAHBSIPB/0i6q6qqqqqqqqpIichI9+JIweoESIsE1kjB4gNIjRRSSCnRSGnJqAAAAMdECBgBAAAAZEiLBCUoAAAASDtEJBB1cEiDxBhbQV7DSI01HFKf/kyNdCQITIn3uqYDAAC5BgAAAEUxwEG5/////+iOjBIATIn36JaMEgBIjTXgxvH/uiUAAABIicfoImX//0iNNU/1sv66AQAAAEiJx+gOZf//TIn36HaMEgBIi0Ng6T/////oSIkSAA8fhAAAAAAAU0iJ++i3jxIASInfW+nehhIAZi4PH4QAAAAAAA8fQABBV0FWQVVBVFNIgeywDAAASYn3ZEiLBCUoAAAASImEJKgMAABMi2cgSYN8JGAAD4RSAQAATI20JKgIAAC6AAQAAEyJ9zH26BWKEgBMibQkkAgAAA8oBXY2nP4PEYQkmAgAAEyNrCSQBAAAugAEAABMie8x9ujniRIATImsJHgEAAAPKAVINpz+DxGEJIAEAABIjVwkeLoABAAASInfMfbovIkSAEiJXCRgDygFIDac/g8RRCRoSI20JJAIAABIjZQkeAQAAEiNTCRgTIn/6M6JAABIhcB0WEiLTCRgTItEJGgPEIQkkAgAAA8RRCQ4DxCEJHgEAAAPEUQkKA8QRCQoDxFEJBAPEEQkOA8RBCRIjXwkSEyJ5kiJwujiAAAA9kQkSAF0CkiLfCRY6KGFEgBIi3wkYEg533QF6PKJEgBIi7wkeAQAAEw573QF6OCJEgBIi7wkkAgAAEw593QF6M6JEgBkSIsEJSgAAABIO4QkqAwAAHV4SIHEsAwAAFtBXEFdQV5BX8NIjTUBUJ/+SI2cJJAIAABIid+6rQMAALkGAAAARTHAQbn/////6HCKEgBIid/oeIoSAEiNNcLE8f+6JQAAAEiJx+gEY///SI01MfOy/roBAAAASInH6PBi//9Iid/oWIoSAOlH/v//6C6HEgBmLg8fhAAAAAAADx9AAFVBV0FWQVVBVFNIgewoBQAASIlUJBhJifdIiTwkZEiLBCUoAAAASImEJCAFAABIiUwkOEyJRCRASItGYEiLdkBJi1dYSI08EEiDx/9Iu6uqqqqqqqqqSIn4SPfjSMHqBEiLNNZIweIDSI0EUkgpx0hp16gAAAAPtgQWqAFMiUQkCHQHSItEFgjrA0jR6EiJTCQQSI2sJGAFAABIhcAPhOEFAAAPV8APKYQkAAUAAEjHhCQQBQAAAAAAAEmLRwhIi3AQTItlAEyLdQhIjbwkAAUAAEyJ4kyJ8UG4AQAAAOjNjBIASYt3CEmLf0BJi0dgSYtPWEgBwUiDwf9IichJid1I9+NIweoESIsE10jB4gNIjRRSSCnRSGnJqAAAAPYECAF0B0iLXAgQ6whIjRwISIPDAUiLbhBIhdt0DUiJ3+iNiBIASInB6wIxyUiNvCToAAAASInuSInaRTHAQbkBAAAA6FqMEgBIi4Qk6AAAAEiLWChIjawkAAEAALoABAAASInvMfbo14YSAEiJrCToAAAADygFODOc/g8RhCTwAAAASDmcJAAFAAAPhNAAAABNhfYPhB8BAABIx4Qk8AAAAAAAAABIie9Jgf4BBAAAcihIjbwk6AAAALkBAAAASInuTIny6DmJEgBIi7wk6AAAAEgDvCTwAAAATInmTIny6E6HEgBMAbQk8AAAAGbHhCTgAAAABQFIjYwkcAUAAEiLAUiJhCTAAAAASItBCEiJhCTIAAAAZseEJLgAAAABAWbHhCSQAAAAAQFmx0QkaAEBSI28JOgAAABIjbQkwAAAAEiNlCSYAAAASI1MJHBMjUQkSOgLiRIATIssJOkpAwAAD1fADylEJCBIx0QkMAAAAABJi0dgSYt3QEmLT1hIAcFIg8H/SInISfflSMHqBEiLBNZIweIDSI0UUkgp0UhpyagAAAD2BAgBD4SPAAAASItcCBDpjQAAAGbHhCTgAAAABQFMi3QkEEyJtCTAAAAASItcJAhIiZwkyAAAAEiNvCTAAAAAvgIAAADoxIoSAITAD4TdAwAASMeEJPAAAAAAAAAASDmcJPgAAAAPg58AAABIjbwk6AAAALkBAAAASInuSIna6NqHEgBIi7wk6AAAAEgDvCTwAAAA6YMAAABIjRwISIPDAUyLLCRIhdt0DUiJ3+hchhIASInG6wIx9kiJ37oCAAAA6FiKEgAPV8APKUQkIEjHRCQwAAAAAEiFwHQpSInTSIP68A+DAAQAAEmJxkiD+xdzUY0EG4hEJCBMjWQkIUiF23Vp63UxwDHJ631IhdsPhKcCAABIi7wk6AAAAEyJ9kiJ2uhnhRIASIusJPAAAABIAd1Iiawk8AAAAEyLLCTpqgEAAEiJ3UiDxRBIg+XwSInv6JiAEgBJicRIiUQkMEiDzQFIiWwkIEiJXCQoTInnTIn2SIna6BSFEgBBxgQcAIpMJCBIi0QkKInK0Or2wQEPtspID0XISIXJdCpIg/kBdTVIjQ3AeKr+SI18JCBBuAEAAAAx9kjHwv/////ofYQSAIXAdRFIjTW8eKr+SI18JCDoqIcSAA+2bCQgQPbFAXQMSItcJDBIi2wkKOsISNHtSI1cJCFIx4Qk8AAAAAAAAABIOawk+AAAAHMvSI28JOgAAAC5AQAAAEiNtCQAAQAASInq6DaGEgBIi7wk6AAAAEgDvCTwAAAA6xFIhe0PhHEBAABIi7wk6AAAAEiJ3kiJ6ug4hBIASIuEJPAAAABIAehIiYQk8AAAAGbHhCTgAAAABQFIjYwkcAUAAEiLAUiJhCTAAAAASItBCEiJhCTIAAAAZseEJLgAAAABAWbHhCSQAAAAAQFmx0QkaAEBSI28JOgAAABIjbQkwAAAAEiNlCSYAAAASI1MJHBMjUQkSOjqhRIA9kQkIAF0CkiLfCQw6Cl/EgBIi6wk8AAAAEyLtCToAAAAD1fAQQ8RRQBJx0UQAAAAAEiD/fAPg9IBAABIg/0XcxONRC0AQYhFAE2NZQFIhe11JesxSI1dEEiD4/BIid/otn4SAEmJxEmJRRBIg8sBSYldAEmJbQhMiedMifZIieroNYMSAEHGBCwATIn/SIt0JBhMierokAEAAEiLvCToAAAASI2EJAABAABIOcd0BejmghIAZEiLBCUoAAAASDuEJCAFAAAPhVQBAABMiehIgcQoBQAAW0FcQV1BXkFfXcMxwOmj/v//Me3pbf3//0iNNQNJn/5Jid5IjZwk6AAAAEiJ37pxAwAAuQYAAABFMcBBuf/////ob4MSAEiJ3+h3gxIASI01fR7w/7o1AAAASInH6ANc//9IjTUw7LL+ugEAAABIicfo71v//0iJ30yJ8+hUgxIA6bL5//9IjTWWSJ/+SI1cJHBIid+6kgMAALkGAAAARTHAQbn/////6AiDEgBIid/oEIMSAEiNNYC98f+6NQAAAEiJx+icW///SI01yeuy/roBAAAASInH6Ihb//9IicNIjawkmAAAAEiNdCQ4SInv6FBiAABIid9Iie7oRVT///aEJJgAAAABdA1Ii7wkqAAAAOhOfRIASI18JHDotIISAEyLdCQ4SItcJEBIjawkAAEAAOlx+///TInv6PWBEgBIjXwkIOjrgRIA6GZ/EgBmDx9EAABVQVdBVkFVQVRTSIHsSAEAAEiJ00mJ90mJ/mRIiwQlKAAAAEiJhCRAAQAAD1fADylEJCBIx0QkMAAAAABIjXwkIEyJ9kyJ+kiJ2egRBgAATYtmcEiNbCRgD1fADylEJGAPKUQkQEjHRCRQAAAAAEiJbCRYTI1sJHBMie/ocID+/0iNvCSwAAAASIne6KB/EgAPKEQkQA8oTCRQDxGMJNgAAAAPEYQkyAAAAA9XwA8pRCRASMdEJFAAAAAASItEJGBIiYQk6AAAAEiLTCRoSImMJPAAAABIhcl0F0iNjCToAAAASIlIEEiJbCRYDxFFAOsQSI2EJOgAAABIiYQk4AAAAEiNrCT4AAAASInv6N9//v9Iie9Mie7otI7+/0iNlCSwAAAATInnSInW6GFhAABJicSJ00iJ7+h0gf7/SI28JOAAAABIi7Qk6AAAAOjPagAA9oQkyAAAAAF0DUiLvCTYAAAA6Kh7EgD2hCSwAAAAAXQNSIu8JMAAAADokXsSAEyJ7+gpgf7/SI18JFhIi3QkYOiKagAA9kQkQAF0CkiLfCRQ6Gl7EgCE2w+EjwMAAA9XwA8pRCRQDylEJEBJi14IDymEJMAAAAAPKYQksAAAAEjHhCTQAAAAAAAAAEiNvCSwAAAASIneTIn66EGEEgCAvCTQAAAAAHQcDyiEJLAAAAAPKIwkwAAAAA8pTCRQDylEJEDrDUiNfCRASIne6B6EEgBNjXwkKEiLbCRATItsJEhBD7ZMJChJi0QkKEiJwkiD4v5Ig8L/9sEBvhYAAABID0XyTInqSCnydir2wQF0B0mLTCQw6wNI0elIxwQkAAAAAEyJ/0UxwEmJyejQgBIAQYpEJCioAXQPSYtEJDhNhe11EumMAQAASY1HAU2F7Q+EfwEAAEiJ6UwB6UmD/SAPgvUAAABIOchzDUqNFChIOdUPguMAAABNiehJg+DgSY1Q4EiJ10jB7wVIg8cBif6D5gNIg/pgcwQx0uttSIPn/Ej33zHSZi4PH4QAAAAAAJAPEEQVAA8QTBUQDxEEEA8RTBAQDxBEFSAPEEwVMA8RRBAgDxFMEDAPEEQVQA8QTBVQDxFEEEAPEUwQUA8QRBVgDxBMFXAPEUQQYA8RTBBwSIPqgEiDxwR1p0iF9nQ9SI08KkiDxxBIAcJIg8IQSMHmBTHbZi4PH4QAAAAAAA8fAA8QRB/wDxAMHw8RRBrwDxEMGkiDwyBIOd515UwBwE05xQ+EfQAAAEwBxYnOKe5IiepI99JIAcpIg+YHdBcPHwAPtl0AiBhIg8UBSIPAAUiDxv917EiD+gdySmYPH0QAAA+2VQCIEA+2VQGIUAEPtlUCiFACD7ZVA4hQAw+2VQSIUAQPtlUFiFAFD7ZVBohQBg+2VQeIUAdIg8AISIPFCEg5zXW8xgAAQfYHAXUIRQDtRYgv6wVNiWwkMEmLXngPtkwkIPbBAXQMSItUJDBIi0wkKOsISNHpSI1UJCFIjXwkCEiJ3uinY///D1fADymEJOAAAAAPKYQk0AAAAA8phCTAAAAADymEJLAAAAAPtkwkCPbBAXQMSItUJBhIi0wkEOsISNHpSI1UJAlIjbwksAAAAEiJ3ug2LwIASIu8JMgAAAAPtgeoAXQGSItHCOsDSNHoSYPEWEiFwHUqSIHDiAAAAEg7PYcyEwB0CkiJ3ugNeRIA6xBIjbwkyAAAAEiJ3uir4Pz/SI2cJLAAAABMiedIid7oeIr+/0iJ3+iQff7/9kQkCAF0CkiLfCQY6N93EgAx/zH26AZ9EgCEwHU69kQkIAF0CkiLfCQw6MF3EgBkSIsEJSgAAABIO4QkQAEAAA+F5wAAAEiBxEgBAABbQVxBXUFeQV9dw+jTfBIASYnGRIs4SI01REKf/kiNbCQISInvupACAAAxyUUxwEG5/////+i5fBIASInv6MF8EgBIjTXdKpz+uhIAAABIicfoTVX//0iNdCQgSInH6CBO//9IjTWvG2H/ugwAAABIicfoLFX//0iJxUiNnCSwAAAASInfTInm6FaAEgBIie9Iid7o603//0iNNZFYqf+6AQAAAEiJx+j3VP//9oQksAAAAAF0DUiLvCTAAAAA6OB2EgBIjXwkCOhGfBIARYk+9kQkIAEPhf3+///pAv///+gOeRIAZi4PH4QAAAAAAA8fQABVQVdBVkFUU0iB7IAAAABIictJiddJifZJifxkSIsEJSgAAABIiUQkeA+2CUiJyEjR6IDhAUiLUwhIidZID0TwSIP+AXUxSI0NyI+1/kG4AQAAAEiJ3zH2SMfC/////+h8ehIAhcB0SA+2A0iLUwiJwYDhAUjR6ITJSA9FwkiD+Ad1IkiNDYB0xP9BuAcAAABIid8x9kjHwv/////oP3oSAIXAdAtMiedIid7pEgIAAEmLtoAAAAAPtgaoAXQPSItGCEiFwA+F9AEAAOsMSNHoSIXAD4XmAQAAD1fADylEJDAPKUQkIEmLXggPKUQkYA8pRCRQSMdEJHAAAAAASI18JFBIid5Mifrow34SAIB8JHAAdBYPKEQkUA8oTCRgDylMJDAPKUQkIOsNSI18JCBIid7oqX4SAA9XwA8pBCRIx0QkEAAAAABIi3wkIEiLdCQoDylEJGAPKUQkUEiNVCRQ6BtODQC/UAAAAOghdRIASIlEJBAPKAUVJpz+DykEJEiNbCQBD1fADxFAMA8RQCAPEUAQDxEAxkBAALNRMdJIjTVbJPX/Zi4PH4QAAAAAAJAPtnwUUEjB7wQPtgw39sMBSA9ExYgMUA+2RBRQg+AP9gQkAUiJ73QFSIt8JBAPtgQwiERXAUiD+h90Dw+2HCRIi0QkEEiDwgHrtkiNNYn1r/5IjVwkUEiJ4kiJ3+jvfRIASI01EBZ8/0iJ3+gweRIAQIooSItICEiJTCRHSItIAUiJTCRATIt4EA9XwA8RAEjHQBAAAAAASYuegAAAAPYDAXUHZscDAADrJEiLQxDGAABIx0MIAAAAAPYDAXQQSIt7EOg5dBIASMcDAAAAAECIK0iLRCRASItMJEdIiUMBSIlLCEyJexD2RCRQAXQKSIt8JGDoCHQSAPYEJAF0CkiLfCQQ6PhzEgBJi7aAAAAATInn6Al3EgBkSIsEJSgAAABIO0QkeHUTTIngSIHEgAAAAFtBXEFeQV9dw+gRdhIAkFVBV0FWQVVBVFNQSYn+SItfCEyLfxBIi08gSL6rqqqqqqqqqkiJyEj35kk53w+EsgAAAEjB6gRIjQTVAAAAAEiNBEBIic9IKcdMjSzTSGnvqAAAAEkDbQBJA04oSInISPfmSMHqBEiNBNUAAAAASI0EQEgpwUxp4agAAABMAyTTTDnldRDrWGYPH4QAAAAAAEw55XRCSI29kAAAAEiLtZgAAADoeGIAAPZFAAF0CUiLfRDoCXMSAEiBxagAAABIiehJK0UASD3ADwAAdcNJi20ISYPFCOu5SYteCE2LfhBJjUYo6wdJjUYoSYnfSMcAAAAAAEyJ+Egp2EjB+ANIg/gDcjVmLg8fhAAAAAAADx8ASIs76KhyEgBJi14ITYt+EEiDwwhJiV4ITIn4SCnYSMH4A0iD+AJ32EiD+AF0DUiD+AJ1ELgYAAAA6wW4DAAAAEmJRiBMOft0OA8fgAAAAABIizvoWHISAEiDwwhMOft170mLRhBIicFJK04IdBNIg8H4SMHpA0j30UiNBMhJiUYQSYs+SIPECEiF/3QPW0FcQV1BXkFfXekUchIAW0FcQV1BXkFfXcNmDx+EAAAAAABVQVdBVkFVQVRTSIPsOEiJ9UmJ/mRIiwQlKAAAAEiJRCQwTItnCEyLfxBNif1NKeVMietIwfsDTYXtSI0EW0iNDMX/////SQ9EzUiLRyBIi1coSAHCSDnRD4X0CAAASIP4GHIrSIPA6EmJRiBJiwQkSIlEJChJg8QITYlmCEiNdCQoTIn36CYSAADpwwgAAEiJbCQgSYsWTIl0JAhJi24YSInoSCnQSInBSMH5A0g5y3MxSIlUJBBJie5NKf6/wA8AAOgZcRIATYX2D4SWAAAASTnvD4S9AwAATIt0JAjpRQcAAEiJwUjB+QJIhcBBvgEAAABMD0XxTInwSMHoPQ+FgwkAAEqNPPUAAAAA6M9wEgBJicVIjSzYSo0E8EiJRCQQv8APAADotXASAEw583UuSInuTCnudklMieJIwf4DSI1OAUjB6T9IAfFIg8EBSMHhAkiD4fhIKc3piwAAAEyJ4umDAAAATInmTDtkJBAPhIQDAABJifRMi3QkCOmhBwAASYnESInxSMH5AkiF9rsBAAAASA9F2Ui4/////////x9IOcMPh90IAABIid1Ig+X8SI083QAAAADoInASAEmJxkiNLGhIjQTYSIlEJBBMie/oKnASAEiLRCQISItQCEyLeBBNifVMieBIiUUATI1lCEk51w+EZQIAAEyLdCQISItUJBDrKWYuDx+EAAAAAABMieNJg8f4SYsHSIlF+EiDxfhJidxNO34ID4Q9AgAATDntddxJOdRzRkiJ0Ewp4EjB+ANIjUgBSMHpP0gByEiDwAFIg+D+SY0chEiJ3U0p7HSxTCnlSInvTInuSIlUJBBMieLo6HgSAEiLVCQQ65RMKepJidZJwf4CSIXSuAEAAABMD0TwSLj/////////H0k5xg+H3wcAAEmNXgNIwesCSo089QAAAADoI28SAEmJ2UiNLNhIietNOeUPhHMBAABNieBNKehJg8D4SInrTInpSYP4GA+CRgEAAEqNFMhMicFIg+H4So00KUiDxghIOfJzG0qNDMlIjRQISIPCCEiJ60yJ6Uw56g+HEwEAAEnB6ANJg8ABTInBSIPh/EiNefxIif5Iwe4CSIPGAYnyg+IDSIP/DHMEMf/rd0qNHMhIg8NwSIPm/Ej33jH/Dx9EAABBDxBE/QBBDxBM/RAPEUT7kA8RTPugQQ8QRP0gQQ8QTP0wDxFE+7APEUz7wEEPEET9QEEPEEz9UA8RRPvQDxFM++BBDxBE/WBBDxBM/XAPEUT78A8RDPtIg8cQSIPGBHWfSIXSdEVIjTT9EAAAAEwB7knB4QNJjTz5SAHHSIPHEEjB4gUx22YuDx+EAAAAAAAPEEQe8A8QDB4PEUQf8A8RDB9Ig8MgSDnadeVIjRzNAAAAAEgB60k5yHQoSI0MzQAAAABMAelmLg8fhAAAAAAASIsRSIkTSIPDCEiDwQhMOeF17U6NNPBMie9JicXorm0SAEyJ8kyLdCQI6bT9//9MieNMi3QkCEiLVCQQSYs+TYkuSYluCEmJXhBJiVYYSIX/SItsJCAPhMYEAADob20SAOm8BAAATInmTIniSItMJBBIKcoPhpUAAABIwfoDSI1KAUjB6T9IAdFIg8EBSNH5SYnOSffeSMHhA0iJ9UgpzU2F7Q+ErQEAAEiJ70mJx0yJ6uh5dhIATIn4SItMJAhIi3EI6ZMBAABJOe8Pg6cAAABJwe4DSYPGAUnR7k+NJPdNhe0PhMEBAABIweMDSSncTInnSInDTInq6DJ2EgBIidhIi0wkCEyLeRDpoAEAAEiJRCQYTIn4SCnISInBSMH5AkiFwLsBAAAASA9F2UiJ2EjB6D0PhR0FAABJid5Jwe4CSI083QAAAADoYmwSAEqNFPBMjQTYSInXTTn8D4RiAgAASYPF+EmD/RgPgwoBAABIidfpOAIAAEiJRCQYSCn1SInoSMH4AkiF7b0BAAAASA9F6EiJ6EjB6D1Mi3QkCEiJdCQQD4WtBAAASI1dA0jB6wJIjTztAAAAAOjxaxIATI0k2EyNBOhMieZIi3wkEEw5/w+E8wIAAEmDxfhMieZIiflJg/0YD4LMAgAASYnaSI0U2EyJ6UiD4fhIjTQ5SIPGCEg58nMbSo0M0UiNFAhIg8IITInmSIn5SDn6D4eWAgAAScHtA0mDxQFNielJg+H8SY1J/EiJzkjB7gJIg8YBifKD4gNIg/kMD4O2AQAAMe3pGAIAAEiLTCQITI083QAAAABJAe9MiXkQSo0U9kiJUQhJic7pfgEAAEqNNPBMielIg+H4So08IUiDxwhIOf5zMUqNDPFIAcFIg8EITDnhdiFIidfpBgEAAEiLTCQITIlhCEuNFPdIiVEQSYnO6S8CAABJwe0DSYPFAU2J6UmD4fxJjUn8SInPSMHvAkiDxwGJ/YPlA0iD+QxzBDHJ63FKjTTwSIPGcEiD5/xI998xyUEPEATMQQ8QTMwQDxFEzpAPEUzOoEEPEETMIEEPEEzMMA8RRM6wDxFMzsBBDxBEzEBBDxBMzFAPEUTO0A8RTM7gQQ8QRMxgQQ8QTMxwDxFEzvAPEQzOSIPBEEiDxwR1oEiF7XQ4SY00zEiDxhBJweYDSY0MzkgBwUiDwRBIweUFMf8PEEQ+8A8QDD4PEUQ58A8RDDlIg8cgSDn9deVKjTzKTTnNdB1PjSTMDx9EAABJiwwkSIkPSIPHCEmDxAhNOfx17EyLdCQISYkGSYlWCEmJfhBNiUYYSYn/SIt8JBBIhf9Ii0QkGHQO6OFpEgBIi0QkGE2LfhBJiQdJg0YQCOkYAQAASo0M0EiDwXBIg+b8SPfeMe0PEATvDxBM7xAPEUTpkA8RTOmgDxBE7yAPEEzvMA8RROmwDxFM6cAPEETvQA8QTO9QDxFE6dAPEUzp4A8QRO9gDxBM73APEUTp8A8RDOlIg8UQSIPGBHWoSIXSdDhIjQzvSIPBEEnB4gNJjTTqSAHGSIPGEEjB4gUx7Q8QRCnwDxAMKQ8RRC7wDxEMLkiDxSBIOep15UuNNMxNOc10F0qNDM9IixFIiRZIg8YISIPBCEw5+XXtSYkGTYlmCEmJdhBNiUYYSIX/SItEJBh0DujnaBIASItEJBhNi2YISYlEJPhJi0YISI1I+EmJTghIi0j4SIlMJChJiUYISI10JChMiffoYwkAAEiLbCQgSYtOIEkDTihJi3YISLqrqqqqqqqqqkiJyEj34kjB6gRIiwTWSMHiA0iNFFJIKdFIacmoAAAASItVEEiJVAgQDxBFAA8RBAgPV8APEUUASMdFEAAAAABIi5WIAAAASImUCIgAAAAPEE14DxFMCHgPEE1oDxFMCGgPEE1YDxFMCFgPEE0YDxBVKA8QXTgPEGVIDxFkCEgPEVwIOA8RVAgoDxFMCBhIi5WQAAAASImUCJAAAABIi5WYAAAASImUCJgAAABIi7WgAAAASIm0CKAAAABIhfZ0JEgByEgFmAAAAEiJQhBIjYWYAAAASImFkAAAAA8RhZgAAADrF0iNFAhIgcKQAAAASAHISAWYAAAASIkCSYNGKAFkSIsEJSgAAABIO0QkMHUUSIPEOFtBXEFdQV5BX13D6GRsEgDov2kSAGYuDx+EAAAAAAAPH0QAAEFWU0iD7BhIiftkSIsEJSgAAABIiUQkEEiLR2BIhcB0XEiLc0BIi0tYSAHBSIPB/0i6q6qqqqqqqqpIichI9+JIweoESIsE1mRIizQlKAAAAEg7dCQQD4WJAAAASMHiA0iNFFJIKdFIacmoAAAASAHISIPAHEiDxBhbQV7DSI01mjGf/kyNdCQITIn3up8DAAC5BgAAAEUxwEG5/////+gMbBIATIn36BRsEgBIjTVepvH/uiUAAABIicfooET//0iNNc3Usv66AQAAAEiJx+iMRP//TIn36PRrEgBIi0Ng6Tz////oxmgSAGYPH0QAAFVBV0FWQVVBVFNIg+x4SIn1SYn/ZEiLBCUoAAAASIlEJHBIi0ZgSIXAD4RZBQAAD1fAQQ8RB0nHRxAAAAAASIt1QEiLTVhIAcFIg8H/Sb6rqqqqqqqqqkiJyEn35kjB6gRIiwTWSMHiA0iNFFJIKdEPKUQkQA8pRCQwSGnJqAAAAEiNHAhIg8McSI18JDBIid7oSq4PAEiJ3+jirA8Av1AAAADoqGUSAEmJRxAPKAWdFpz+QQ8RB02NbwEPV8APEUAwDxFAIA8RQBAPEQDGQEAAs1ExyUiNPeQU9f8PH0AAD7Z0DDBIwe4ED7YUPvbDAUkPRMWIFEgPtkQMMIPgD0H2BwFMie50BEmLdxAPtgQ4iEROAUiD+R90DkEPth9Ji0cQSIPBAeu4SItFYEiLdUBIi01YSAHBSIPB/0iJyEn35kjB6gRIiwTWSMHiA0iNFFJIKdFIacmoAAAASI00CItcCBhIi31w6LRUAABIhcAPhO0DAABIiQQkiVwkEEiLRWBIi3VASIlsJAhIi01YSAHBSIPB/0iJyEn35kjB6gRIiwTWSMHiA0iNFFJIKdFIjVwkIA9XwA8RRCQgSIlcJBhIacmoAAAATIu0CJAAAABMjSQISYHEmAAAAE055nRzSI1sJBjrEmYuDx+EAAAAAABJicZMOeB0WkmNTiBIie9Iid5IicroBlkAAEmLTghIhcl0HWYuDx+EAAAAAAAPHwBIichIiwlIhcl19evDDx8ASYtGEEw5MHS3SYPGEA8fAEmLDkyNcRBIi0EQSDkIdfDrnkiLLCRIg8VASI18JDBMif7oKWcSAItEJBCJRCRISItEJBhIiUQkUEiLRCQgSIlEJFhIi0wkKEiJTCRgSIXJdBZIjUwkWEiJSBBIiVwkGA9XwA8RA+sKSI1EJFhIiUQkUEyLdCQISI1UJDBIie9IidboqVUAAEmJxInVSI18JFBIi3QkWOj1UgAA9kQkMAF0CkiLfCRA6IRjEgBIjXwkGEiLdCQg6NVSAABAhO11fUmLRmBJi3ZASYtOWEgBwUiDwf9IichIuquqqqqqqqqqSPfiSMHqBEiLBNZIweIDSI0UUkgp0UmLVCRQSGnJqAAAAEg7lAigAAAAdR1Ji3wkQEmDxEhIi5QIkAAAAEyJ5ugbWgAAhMB1FL8EAAAAMfboK2gSAITAD4VzAgAASYtGYEmLdkBJi05YSAHBSIPB/0iJyEm8q6qqqqqqqqpJ9+RIweoESIsc1kjB4gNIjQRSSCnBSGnpqAAAAEiNPCtIgceQAAAASIu0K5gAAADo/lEAAPYEKwF0CkiLfCsQ6I5iEgBJi05ISYtWYEiNQv9JiUZgSInOSSt2QEiJ90jB/wNIhfZIjTx/SI08/f////9ID0T+SQNWWEgp10iDxwFIg/8wchJIi3n46ENiEgBJg0ZI+EmLRmBIhcAPhCMBAABJi3ZASYtOWEgBwUiDwf9IichJ9+RIweoETIs01kjB4gNIjQRSSCnBTGnpqAAAAEuNBC5IBYwAAABLi6wumAAAAEiF7XRET40kLkmBxJgAAACLAOsbZi4PH4QAAAAAAGaQSItNAEmJ7EiFyXQoSInNi00gOchy6jnBcx1MjWUISItNCEiFyXXl6w5LjSwuSIHFmAAAAEmJ7EmLHCRIhdt1c79AAAAA6GZhEgBIicNLjQQuSAWMAAAAiwCJQyAPV8APEUMoSMdDOAAAAAAPEQNIiWsQSYkcJEuLhC6QAAAASIsASIXAdBRLjQwuSIHBkAAAAEiJAUmLNCTrA0iJ3kuLvC6YAAAA6IYy/P9Lg4QuoAAAAAFIg8MoSInfTIn+6P5hEgBkSIsEJSgAAABIO0QkcA+FmwEAAEyJ+EiDxHhbQVxBXUFeQV9dw0iNNZ8rn/5IjVwkMEiJ37pSAgAAuQYAAABFMcBBuf/////oEWYSAEiJ3+gZZhIASI01Y6Dx/7olAAAASInH6KU+//9IjTXSzrL+ugEAAABIicfokT7//0iJ3+j5ZRIASItFYOk/+v//6LtlEgBJicSLAIkEJEiNNSorn/5IjVwkMEiJ37phAgAAuQQAAABFMcBBuf/////onGUSAEiJ3+ikZRIASI01H+Gv/roUAAAASInH6DA+//9IicVJi0ZgSYt2QEmLTlhIAcFIg8H/SInISLqrqqqqqqqqqkj34kjB6gRIiwTWSMHiA0iNFFJIKdFIacmoAAAA9gQIAXQHSItcCBDrCEiNHAhIg8MBSInf6NNkEgBIie9Iid5IicLoxT3//0iNNWp5YP+6EAAAAEiJx+ixPf//SInFQfYHAXQETYtvEEyJ7+icZBIASInvTInuSInC6I49//9IjTUkuLP/uh8AAABIicfoej3//0iNfCQw6OBkEgCLBCRBiQQkTIt0JAjpbPz//+iqYRIAZi4PH4QAAAAAAFVBV0FWQVVBVFNQSYn2SYn/TItnEEw7ZxgPhTgCAABJiw9Ji18ISInYSCnIdlFIwfgDSI1IAUjB6T9IAchIg8ABSNH4SInFSPfdSMHgA0mJ3UkpxUkp3HQSTInvSIneTIni6EloEgBJi18ITQHsTYlnEEiNBOtJiUcI6dgBAABMieBIiQwkSCnISInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhckBAABJie1Jwe0CSI087QAAAADoc14SAE6NFOhMjQToTInRTDnjD4RiAQAATYnjSSnbSYPD+EmD+xhzCEyJ0ek3AQAASo0U6EyJ2UiD4fhIjTQZSIPGCEg58nMYSo0M6UgBwUiDwQhIOdl2CEyJ0ekHAQAAScHrA0mDwwFNidlJg+H8SY1R/EiJ0UjB6QJIg8EBic+D5wNIg/oMcwQx0utySo006EiDxnBIg+H8SPfZMdJmDx+EAAAAAAAPEATTDxBM0xAPEUTWkA8RTNagDxBE0yAPEEzTMA8RRNawDxFM1sAPEETTQA8QTNNQDxFE1tAPEUzW4A8QRNNgDxBM03APEUTW8A8RDNZIg8IQSIPBBHWoSIX/dE5IjQzTSIPBEEnB5QNIjRTVAAAAAEwB6kgBwkiDwhBIwecFMfZmLg8fhAAAAAAADx9EAAAPEEQx8A8QDDEPEUQy8A8RDDJIg8YgSDn3deVLjQzKTTnLdB9KjRzLDx+EAAAAAABIixNIiRFIg8EISIPDCEw543XtSYkHTYlXCEmJTxBNiUcYSYnMSIs8JEiF/3QJ6P1cEgBNi2cQSYsGSYkEJEmDRxAISIPECFtBXEFdQV5BX13D6MlhEgBmDx+EAAAAAABVQVdBVkFVQVRTSIPsSGRIiwQlKAAAAEiJRCRASIsHSItAEEiLQGhMizC/AwAAADH26MphEgCEwA+F2gEAAEmLXhhNi24gTDnrD4TfAAAATI1kJDhIjWwkIEyNPakFl/+/AwAAADH26JRhEgCEwHUOSIPDIEw563Xn6bAAAADojWESAEiJRCQQiwCJRCQITInnSI019iaf/rpbAwAAuQMAAABFMcBBuf/////ocGESAEyJ5+h4YRIAugwAAABIicdIjTVPQ7f+6AQ6//9IiUQkGEiNcxhIie/oEwIAAEiLfCQYSInu6MYy//+6AwAAAEiJx0yJ/ujWOf//SInHSIne6Ksy///2RCQgAXQKSIt8JDDoulsSAEyJ5+giYRIASItEJBCLTCQIiQjpQv///0mLXjBNi244TDnrD4SiAAAATI09SCaf/kyNZCQgSI0t+Px7/2YuDx+EAAAAAAAPH0AAvwMAAAAx9uiUYBIAhMB1C0iDwyBMOet15+tm6JBgEgBIiUQkCIsIiUwkEEyJ50yJ/rphAwAAuQMAAABFMcBBuf/////od2ASAEyJ5+h/YBIAuhYAAABIicdIie7oDzn//0iJx0iJ3ujkMf//TInn6GxgEgCLRCQQSItMJAiJAeuPvwMAAAAx9ugTYBIAhMAPhY0AAABkSIsEJSgAAABIO0QkQA+F4gAAAEiDxEhbQVxBXUFeQV9dw+jzXxIASInDRIs4SI01ZCWf/kiNbCQgSInvulkDAAC5AwAAAEUxwEG5/////+jWXxIASInv6N5fEgBIjTVNU7r+uhYAAABIicfoajj//0mNdkhIicfoPjH//0iJ7+jGXxIARIk76bz9///oiV8SAEiJw0SLOEiNNfokn/5IjWwkIEiJ77pjAwAAuQMAAABFMcBBuf/////obF8SAEiJ7+h0XxIASI01u1Kq/roPAAAASInH6AA4//9IicdMifbo1TD//0iJ7+hdXxIARIk76Qr////oMFwSAEiJ+IsOSI0VtAj1/0hjDIpIAdH/4Q9XwA8RQAjGAAzHQAFRdW906xEPV8APEUAIxgAMx0ABQW5nbGbHQAVlZMZABwDDSMdAEAAAAADGABxIuUluZGV4SGVhSIlIAUi5ZWFkZXJNYXBIiUgHxkAPAMMPV8APEUAIxgAMx0ABU3lzdGbHQAVlbcZABwDDD1fADxFACMYAGki5RXh0ZXJuQ1NIiUgBSLluQ1N5c3RlbUiJSAbGQA4Aww9XwA8RQAjGAA7HQAFDU3lzx0AEc3RlbcZACADDD1fADxFACMYAEki5Q1hYU3lzdGVIiUgBZsdACW0Aww9XwA8RQAjGABRIuU9iakNTeXN0SIlIAWbHQAllbcZACwDDD1fADxFACMYAGEi5T2JqQ1hYU3lIiUgBx0AJc3RlbcZADQDDD1fADxEASMdAEAAAAADGAArHQAFBZnRlZsdABXIAww8fgAAAAABVQVdBVkFVQVRTSIHsyAAAAGRIiwQlKAAAAEiJhCTAAAAAiXQkeIX2D46+AAAAifVJif1Ii38I6MRQAABJi00QO4FYCAAAD4SgAAAATInv6Mzw//9JicZJi10ISInfie7om1AAAMaEJIAAAAAAjUgBg/kCD4OcAAAAMcCJhCSAAAAASI20JIAAAAC6BAAAAEyJ9+hZnw8AD1fADylEJGBJi30Iie7oRmESAEmJxEmJ10iJRCRgSIlUJGhJi10ISInfie7oOFAAAMaEJIAAAAAAjUgBg/kCc0y/AwAAADH26MxcEgCEwA+FKAQAAGRIiwQlKAAAAEg7hCTAAAAAD4USBQAASIHEyAAAAFtBXEFdQV5BX13DhcB4GkiBw7gAAACJxus3hcB4WUiBw7gAAACJxut2vv7///8pxonwwegGSIuL4AAAAEiLBMFID6PwD4PlAAAASIHDyAAAAEiLA0iFwA+EEv///4nxSI0MSUiNBMi5////fyMIiegpyOn6/v//vv7///8pxonwwegGSIuL4AAAAEiLBMFID6PwD4O6AAAASIHDyAAAAEiLA0iFwA+EI////4nxSI0MSUiNBMiDOAAPiBD///9Ii0AQSIPg+EiLaAhIhe0PhPv+//8PV8APKYQksAAAAA8phCSgAAAADymEJJAAAAAPKYQkgAAAAE2LdXgPKUQkEEjHRCQgAAAAAEmD//APg+8DAABJg/8Xc11DjQQ/iEQkEEiNXCQRTYX/dX7phwAAAEiNlCSAAAAASInf6KdeEgCAvCSAAAAAAA+FIv7//+kV////SI2UJIAAAABIid/ohF4SAIC8JIAAAAAAD4Ve/v//6UD///9MiXQkCE2J/kmDxhBJg+bwTIn36MlVEgBIicNIiUQkIEmDzgFMiXQkEEyLdCQITIl8JBhIid9MieZMifroQFoSAELGBDsASI18JDBIjUwkEEyJ7kiJ6uj23v//D7ZMJDD2wQF0DEiLVCRASItMJDjrCEjR6UiNVCQxSI18JEhMifboe0D//w9XwA8phCSwAAAADymEJKAAAAAPKYQkkAAAAA8phCSAAAAAD7ZMJEj2wQF0DEiLVCRYSItMJFDrCEjR6UiNVCRJSI28JIAAAABMifboCgwCAEiLvCSYAAAAD7YHqAF0BkiLRwjrA0jR6EiFwA+ELgEAAPZEJEgBD4VGAQAA9kQkMAEPhVABAAD2RCQQAXQKSIt8JCDo4lQSAEyJ7+h67f//SIu0JJAAAAAPthb2wgF0CkiLVghIi3YQ6wdIg8YBSNHqSInH6CGcDwBMie/oSe3//0iLtCSYAAAAD7YW9sIBdApIi1YISIt2EOsHSIPGAUjR6kiJx+jwmw8ATInv6Bjt//9Ii7QkoAAAAA+2FvbCAXQKSItWCEiLdhDrB0iDxgFI0epIicfov5sPAEyJ7+jn7P//SIu0JKgAAAAPthb2wgF0CkiLVghIi3YQ6wdIg8YBSNHqSInH6I6bDwBMie/otuz//0iLtCSwAAAAD7YW9sIBdApIi1YISIt2EOsHSIPGAUjR6kiJx+hdmw8ASI28JIAAAADogFn+/+lH/P//SYHGiAAAAEg7PS0OEwB0QkyJ9uizVBIA9kQkSAEPhLr+//9Ii3wkWOiuUxIA9kQkMAEPhLD+//9Ii3wkQOiZUxIA9kQkEAEPhaL+///pp/7//0iNvCSYAAAATIn26Bm8/P/2RCRIAQ+EcP7//+u06KdYEgBJicZEizhIjTUYHp/+SI1cJDBIid+61gIAALkDAAAARTHAQbn/////6IpYEgBIid/oklgSAEiNNbz0e/+6DwAAAEiJx+geMf//SInDSI2sJIAAAABIjXQkYEiJ7+jmNwAASInfSInu6Nsp//9IjTWl8+//ugsAAABIicfo5zD//0iJw0mLVQhIjWwkSEiNdCR4SInv6E5cEgBIid9Iie7ooyn//0iNNVxRxP+6AQAAAEiJx+ivMP//9kQkSAF0CkiLfCRY6J5SEgD2hCSAAAAAAXQNSIu8JJAAAADoh1ISAEiNfCQw6O1XEgBFiT7p4fr//0iNfCQQ6DtXEgDotlQSAGYPH0QAAOlbUhIAZi4PH4QAAAAAAJBTSIn7vyAAAADoIlISAEiNDdO9EgBIiQgPEEMIDxFACEiLSxhIiUgYW8NmDx9EAABIjQWxvRIASIkGDxBHCA8RRghIi0cYSIlGGMMPH0QAAMNmLg8fhAAAAAAADx9EAADp61ESAGYuDx+EAAAAAACQQVdBVlNIg+wQSYnKSYnWSInxZEiLFCUoAAAASIlUJAhNixhFD7Y5SItHCEiLVxBMjUAwizJIi1cYSIsaSMcCAAAAAEiJHCRIg8AYSIPsCEiNVCQITInHTYnwTYnRUEFXQVPouVz//0iDxCBIhdt0CUiLA0iJ3/9QIGRIiwQlKAAAAEg7RCQIdQpIg8QQW0FeQV/D6JhTEgDMzMzMzMzMzEFXQVZTSInzSYn+gH9IAHQbiwNBiQZNjX4IQfZGCAF1e2ZBxwcAAOmXAAAAiwNBiQYPEEMIQQ8RRghIi0MYSYlGGA9XwA8RQwhIx0MYAAAAAEHGRiAAQcZGQACAe0AAdDRJjUYgSItLMEiJSBAPEEsgDxEIDxFDIEjHQzAAAAAASItDOEjHQzgAAAAASYlGOEHGRkABQcZGSAHrVkmLRhjGAABJx0YQAAAAAEH2RggBdBFJi34Y6IVQEgBJx0YIAAAAAEiLQxhJiUcQDxBDCEEPEQcPV8APEUMISMdDGAAAAABJjX4gSIPDIEiJ3uheGQAATInwW0FeQV/DzMzMzMxBVlNQSYn+6IQaAABIicNJjUYISDnDdCVIi0sISIXJdCBmLg8fhAAAAAAADx9EAABIichIiwlIhcl19esjMcDrVEiLQxBIORh0FkiNSxBmkEiLEUiNShBIi0IQSDkQdfBJOR51A0mJBkmDRhD/SYt+CEiJ3uj3Dvz/9kMgAXQJSIt7MOi4TxIASInf6LBPEgC4AQAAAEiDxAhbQV7DzMzMVUFXQVZBVUFUU0iD7EhJiddIifNJif5kSIsEJSgAAABIiUQkQEiLB0yLZwhJifVJKcVJwf0DSLmrqqqqqqqqqkwPr+lIi3cQSTn0D4MfAQAATDnjD4S9AQAATIniSCnaSIPC6EmNfCToTInmTDnncz0PV8BMieZmDx+EAAAAAABIi28QSIluEA8QDw8RDg8RB0jHRxAAAAAASIPHGEmLdghIg8YYSYl2CEw553LSSIXSD4Q6AQAATIl8JAhMiXQkEEjB+gNID6/RSYPE6EiNDNUAAAAATI08SUn330kB1UqNDG0AAAAATAHpTI0syEmDxegx7Q9Xyes9Dx+AAAAAAGZBxwQsAABJi0QtEEmJRhBBDxBELQBBDxEGQQ8RTC0AScdELRAAAAAASIPF6Ek57w+ErQAAAE2NNCxB9gQsAXS/SYtELBDGAABJx0QsCAAAAABB9gQsAXSuSYt8LBDoPU4SAA9XyUnHBCwAAAAA65dIuqqqqqqqqqoKSSnEScH8A0wPr+FJg8QBSTnUD4chAgAASY1+EEgpxkjB/gNID6/xSI0sNkw55UkPQuxIuFVVVVVVVVUFSDnGSA9D6kiJfCQ4SIXtdGVIOdUPh+sBAABIjQTtAAAAAEiNPEDon00SAOtLSItEJBBIi3AITIt8JAhMOfsPlsBMOf4Pl8EgwQ+2wUiNBEBJjTTHSInf6H5OEgDpOQEAAEiJ30yJ/uieUBIASYNGCBjpJAEAADHASIlEJBhKjQxtAAAAAEwB6UiNDMhIiUwkKEiJTCQgSI1MbQBIjQTISIlEJDBIjXwkGEyJ/ui5HQAATIt8JCBJiw5MifhIOdl0Pw9XwEyJ+EiJ2kiLcvhIiXD4DxBK6A8RSOgPEULoSMdC+AAAAABIjXLoSItEJCBIg8DoSIlEJCBIifJIOc51ykmLVghIOdp0TEiLTCQoD1fAZg8fhAAAAAAASItDEEiJQRAPEAsPEQkPEQNIx0MQAAAAAEiDwxhIi0wkKEiDwRhIiUwkKEg503XQSItEJCBJi14I6wVIi0wkKEmLLkmJBkiJbCQgSYlOCEiJXCQoSYtGEEiLTCQwSYlOEEiJRCQwSIlsJBhIOet1SEiF23QISInf6FNMEgBMiftkSIsEJSgAAABIO0QkQHVgSInYSIPESFtBXEFdQV5BX13DZi4PH4QAAAAAAA8fQABIicNIOeh0H0iNQ+hIiUQkKPZD6AF06UiLe/joAEwSAEiLRCQo69lIi1wkGEiF23WU65pMiffo9VASAOjQUBIA6CtOEgDMzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+xISYnUSInzSYn+ZEiLBCUoAAAASIlEJEBIiz9Ji24ISYn1SSn9ScH9A0i4q6qqqqqqqqpMD6/oSYtWEEg51Q+DJQEAAEg56w+EpgEAAEiJfCQITIlsJBBMiSQkSInpSCnZSIPB6EiNVehIOepzQw9XwEiJ7mYuDx+EAAAAAAAPH0QAAEiLehBIiX4QDxAKDxEODxECSMdCEAAAAABIg8IYSYt2CEiDxhhJiXYISDnqctJIhckPhCIBAABIwfkDSA+vyEiDxehIjQTNAAAAAEyNNEBJ995IA0wkEEiNBElIi0wkCEyNPMFJg8foRTHtD1fJ6zdmQsdELQAAAEuLRC8QSYlEJBBDDxAEL0EPEQQkQw8RDC9Lx0QvEAAAAABJg8XoTTnuD4SyAAAASYnsTQHsQvZELQABdLtKi0QtEMYAAErHRC0IAAAAAEL2RC0AAXSqSot8LRDoaEoSAA9XyUrHRC0AAAAAAOuSSLmqqqqqqqqqCkgp/UjB/QNID6/oSIPFAUg5zQ+HegIAAEmNdhBIKfpIwfoDSA+v0EyNPBJJOe9MD0L9SLhVVVVVVVVVBUg5wkwPQ/lIiXQkOE2F/3RfSTnPD4dEAgAASo0E/QAAAABIjTxA6MlJEgDrRfYDAQ+FoQEAAGbHAwAASIssJOnSAQAASYtEJBBIiUMQQQ8QBCQPEQMPV8BBDxEEJEnHRCQQAAAAAEmDRggY6cQBAAAxwEiJRCQYSo0MbQAAAABMAelIjQzISIlMJChIiUwkIEuNDH9IjQTISIlEJDBIjXwkGEyJ5ugaHAAATIt8JCBJiw5MifhIOdl0QA9XwEyJ+EiJ2pBIi3L4SIlw+A8QSugPEUjoDxFC6EjHQvgAAAAASI1y6EiLRCQgSIPA6EiJRCQgSInySDnOdcpJi1YISDnadExIi0wkKA9XwGYPH4QAAAAAAEiLQxBIiUEQDxALDxEJDxEDSMdDEAAAAABIg8MYSItMJChIg8EYSIlMJChIOdN10EiLRCQgSYteCOsFSItMJChJiy5JiQZIiWwkIEmJTghIiVwkKEmLRhBIi0wkMEmJThBIiUQkMEiJbCQYSDnrdShIhdt0CEiJ3+iDSBIATIn76ZsAAABmLg8fhAAAAAAAkEiJw0g56HQfSI1D6EiJRCQo9kPoAXTpSIt7+OhQSBIASItEJCjr2UiLXCQYSIXbdbTrukiLRCQQSI0EQEiLVCQISItMwhDGAQBIx0TCCAAAAAD2AwFIiywkdBdIjQTCSIPAEEiLOOgFSBIASMcDAAAAAEiLRRBIiUMQDxBFAA8RAw9XwA8RRQBIx0UQAAAAAGRIiwQlKAAAAEg7RCRAdR9IidhIg8RIW0FcQV1BXkFfXcNMiffoxkwSAOihTBIA6PxJEgDMzMzMzMzMzMzMzMxIg+wYZEiLBCUoAAAASIlEJBBMiw5Ii0YISIkUJEiNDcw7CABIiUwkCEiJ4UG4AQAAAEyJzkiJwugDTQgAZEiLDCUoAAAASDtMJBB1BUiDxBjD6JlJEgDMzMzMzMzMzMxBV0FWQVVBVFNJifdIOdYPhLsAAABJif5MKfpMifhIAdBMi2cITIn7TDngD4SWAAAASMH6A0i4q6qqqqqqqqpID6/CSMHgA0yNLEAPV8lMifvrQmYuDx+EAAAAAAAPHwBmxwMAAEqLRCsQSIlDEEIPEAQrDxEDQg8RDCtKx0QrEAAAAABKjQQrSIPAGEiDwxhMOeB0LvYDAXTGSItDEMYAAEjHQwgAAAAA9gMBdLdIi3sQ6IlGEgAPV8lIxwMAAAAA66JJi0YISDnYdRxJiV4ITIn4W0FcQV1BXkFfww8fAEyJ4Ek53HTkTI1g6PZA6AF07kiLePjoRUYSAOvjzMzMQVdBVkFVQVRTSIN/GAAPhK4AAABJif9MjXcIQbwwAAAAMdvrGWYuDx+EAAAAAACQSIPDAUmDxDhJO18YdGZJiweAPBgAeOlNiy5Li3wl6EiF/3QcQPbHAXQ26CFvBgDrL2YuDx+EAAAAAAAPH0QAAEP2RCXwAXQYS4t8JQDovkUSAGYuDx+EAAAAAAAPH0AAQ/ZEJdABdJhLi3wl4OieRRIA64xJiz/olEUSAEiNBf2q9f9JiQcPV8BBDxFGEEEPEQZbQVxBXUFeQV/DzMzMzEFWU1APtgr2wQF0BkyLcgjrBkmJzknR7g+2PkD2xwF0BkiLXgjrBkiJ+0jR60k53kiJ2EkPQsZIhcB0NfbBAXQQSItSEED2xwF1EEiDxgHrDkiDwgFA9scBdPBIi3YQSIn3SInWSInC6INIEgCFwHUTMclJOd4PksFMOfO4/////w9DwcHoH0iDxAhbQV7DzEiF9nQ8QVZTUEiJ80mJ/kiLNujp////SItzCEyJ9+jd////9kMgAXQJSIt7MOiuRBIASInfSIPECFtBXumfRBIAw8zMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU0iD7FhJifVIiftIiwcPGBhIizZJi20ISI09KPQSAEiJ6ugwAgAASAHoSLlpLTjrCOrfnUj34UgxwkiLC0iLawhIiVwkIEyLYxhIidBIwegHSYnPScHvDEkxx0iJVCQYidAkfw+2wGYPbsBmD2DA8g9wwABmD3DAAEmLRQBIiUQkKE2LbQgxwEiJRCQIZg9vDbLzm/5IiUwkEGYPf0QkME0h5/NCD28UOWYPf1QkQGYPdMJmD9fAhcB0U0QPt/APH4QAAAAAAEEPvN5MAftMIeNIidhIweAETDlsBQh1I02F7XR3SIt8BQBIi3QkKEyJ6ugBRxIAZg9vDUnzm/6FwHRZQY1G/0Qh8EGJxnW5Zg9vRCRAZg90wWYP18CFwHUlSItEJAhJAcdJg8cQSIPAEEiJRCQISItMJBBmD29EJDDpW////0iLfCQgSIt0JBjoIwAAAEiJw7IB6wIx0kiJ2EiDxFhbQVxBXUFeQV9dw8zMzMzMzMzMQVZTUEmJ9kiJ+0iLD0iLVxhIifBIwegHSInOSMHuDEgxxkgh1vMPbwQxZg92yWYPZMhmD9fBhcB1Jb8QAAAAkEgB/kgh1vMPbwQxZg92yWYPZMhmD9fBSIPHEIXAdOFmD7zAD7fASAHwSCHQSItzIEiF9nUIgDwB/nU5MfZIg0MQATH/gDwBgEAPlMdIKf5IiXMgQYDmf0SINAFIjXDxSCHWg+IPSAHyRIg0EUiDxAhbQV7DSInf6PQAAABIiztIi1MYTIn26HWGBQBIiwtIi1MYSItzIOulzMzMzMzMzMxBVlNQSIn7Sb5pLTjrCOrfnUiD+hFyHUiB+gEEAAAPg5gAAABIifdIidboAVAGAEiJx+tuSIP6CXIgSIt8FvjB4gP22onRSNPvSAMeSInYSffmSInTSDHD60hIg/oEchOLBot8FvzB4gOAwuCJ0UjT5+ssSIXSdDlIidFI0ekPtgQOD7Z8Fv9Ig8L/weEDSNPgweIDidFI0+cPtg5ICc9ICcdIAftIidhJ9+ZIidNIMcNIidhIg8QIW0Few0iJ30iDxAhbQV7pJU4GAMzMzMzMSItHGEiFwHQoSIP4EXIVSItPEEjB4QVIjRSASI0Ukkg50XYXSI00AEiDxgHpDwAAAL4BAAAA6QUAAADpoAEAAFVBV0FWQVVBVFNQSYn2SYn9SIsHSIkEJEyLfwhIi28YSIl3GEiNXhdIg+P4SInwSMHgBEiNPBjoxEASAEmJxEmJRQBIAcNJiV0ISY1WEEiJx76AAAAA6FVEEgBJi0UYQ8YENP9IicFIwekDSQNNEEgpyEmJRSBIhe0PhBEBAABFMeTrTmYuDx+EAAAAAABmkGYPvP8Pt/9IAfdIIc+A4n+IFDhIjXfxSCHOg+EPSAHxiBQISYtFCEjB5wTzQQ9vBvMPfwQ4SYPEAUk57A+EogAAAEiLBCRCgDwgAHjoTIngSMHgBE2NNAdJizQHSYtcBwhIjT3o7xIASIna6PD9//9IAdhIuWktOOsI6t+dSPfhSDHCSYtFAEmLTRhIiddIwe8HSInGSMHuDEgx/kghzvMPbwQwZg92yWYPZMhmD9f5hf8PhUj///+7EAAAAA8fAEgB3kghzvMPbwQwZg92yWYPZMhmD9f5SIPDEIX/dOHpHP///0iF7XQXSIs8JEiDxAhbQVxBXUFeQV9d6ZA/EgBIg8QIW0FcQV1BXkFfXcPMVUFXQVZBVUFUU0iD7BhJif9kSIsEJSgAAABIiUQkEEiLP0mLdxjoJYMFAEmDfxgAD4R9AQAARTHt61UPH0QAAGYPvP8Pt/9IAfdIIc9Iif5IKcZMietIKcNIMfNIIcuA4n9Ig/sPD4fJAAAAQohULQBJjUXxSCHIg+EPSAHBiFQNAEmDxQFNO28YD4QmAQAASYsHQoA8KP516EmLRwhNie5JweYESos0ME6LZDAISI09i+4SAEyJ4uiT/P//TAHgSLlpLTjrCOrfnUj34UgxwkmLL0mLTxhIidZIwe4HSInoSMHoDEgx8EghyPMPb0QFAGYPdslmD2TIZg/X+UiJxoX/D4U4////uxAAAABIicZIAd5IIc7zD29ENQBmD3bJZg9kyGYP1/lIg8MQhf904OkL////SI1H8UghyIPhD0gBwYB8PQCAiFQ9AIhUDQBJi0cIdTFIwecE80IPbwQw8w9/BDhJiwdJi08YQsYEKIBJjVXxSCHKg+EPSAHRxgQIgOn8/v//Qg8QBDAPKQQkSMHnBA8QBDhCDxEEMEmLRwhmD28EJPMPfwQ4SYPF/+nP/v//RTHtTInoSMHoA0kDRxBJKcVNiW8gZEiLBCUoAAAASDtEJBB1D0iDxBhbQVxBXUFeQV9dw+jkPxIAzMzMzFVBV0FWQVVBVFNIg+xISYn1SIn7SIsHDxgYSIs2TYt1CEiNPSjtEgBMifLoMPv//0wB8Ei5aS046wjq351I9+FIMcJIiytMi3MISItzGEiJ0EjB6AdIietIwesMSDHDgOJ/D7bCZg9uwGYPYMDyD3DAAGYPcMAASYtFAEiJRCQYTYtlCDHASIkEJGYPbw2+7Jv+SIlsJAhmD39EJCBIIfPzD29UHQBmD39UJDBmD3TCZg/XwIXAdGNED7foSIl0JBBmLg8fhAAAAAAADx9EAABBD7ztSAHdSCH1SYnvScHnBE85ZD4IdSdNheR0Z0uLPD5Ii3QkGEyJ4ugCQBIAZg9vDUrsm/5Ii3QkEIXAdEVBjUX/RCHoQYnFdbVmD29EJDBmD3TBZg/XwIXAdSNIiwQkSAHDSIPDEEiDwBBIiQQkSItsJAhmD29EJCDpTf///zHA6wtNAf5Ii0QkCEgB6EyJ8kiDxEhbQVxBXUFeQV9dw8zMzMzMzMzMzMzMzMzMzEFWU1CAf0gAdFVIifuAf0AAdDlMi3M4SMdDOAAAAABNhfZ0GUmNfgjoo/X//0yJ9+hbQgkATIn36NM7EgD2QyABdAlIi3sw6MQ7EgD2QwgBdAlIi3sY6LU7EgDGQ0gASIPECFtBXsPMzMzMzMzMzMxTSIn7SI0FdacSAEiJB0iLfxBIhf90FvCDbwgBdQ9Ig8cISItH+EiDx/j/UAhIid9b6fpEEgDMzMzMzMzMzMzMU0iJ+0iNBTWnEgBIiQdIi38QSIX/dBbwg28IAXUPSIPHCEiLR/hIg8f4/1AISInf6LtEEgBIid9b6SI7EgDMzEFXQVZBVFNIg+woSYnWSYn3SIn7ZEiLBCUoAAAASIlEJCAPV8APEUdADxFHMA8RRyAPEUcQDxEHSMdHUAAAAABIi3YQSIsG/1AQ9kNQAXU8SInf6GhEEgCEwHQwTYt/GEyNZCQITInnTIn26GBEEgBMif9MiebohUL///ZEJAgBdApIi3wkGOiUOhIAZEiLBCUoAAAASDtEJCB1D0iJ2EiDxChbQVxBXkFfw+jAPBIAQVdBVkFUU0iD7ChJidRIifNJif9kSIsEJSgAAABIiUQkIA9XwA8RB0jHRxAAAAAASIt2EEiLBv9QGEH2RxABD4WKAAAATItzGEiNfCQITInm6MpDEgAPtkwkCInIJAF0DUiLTCQQSIP5D3ML6zlI0elIg/kPcjCEwHQHSItMJBjrBUiNTCQJSLova3l0aGVfYkgzEUi+YnVpbHRpbnNIM3EHSAnWdBpJgcYgAQAASI10JAhMiffodQkAAIpEJAgkAYTAdApIi3wkGOihORIAZEiLBCUoAAAASDtEJCB1D0yJ+EiDxChbQVxBXkFfw+jNOxIAzMzMzMzMzMzMzMzMzFNIiftIi3YQSIsG/1AgSInYW8PMzMzMzMzMzMzMzMzMSIt/EEiLB0iLQCj/4MzMzFNIiftIi3YQSIsG/1AwSInYW8PMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU0iD7BhJidZIifNJif9IidVIKfVIwf0DSb2rqqqqqqqqqkkPr+1MiydIi0cQSInBTCnhSMH5A0kPr81IOc12SE2F5A+EOgEAAEmLRwhMOeAPhBABAABJie3rGGYuDx+EAAAAAABmkEiJ6Ew55Q+E4QAAAEiNaOj2QOgBdOpIi3j46JE4EgDr30mLTwhMKeFMiehMjSwLSMH5A0gPr8hIiWwkEEiJTCQISDnNTIn1TQ9H9Uk53nQYTInnSIne6EU5EgBIg8MYSYPEGEw583XoSItEJAhIOUQkEHY+STnuD4QgAQAASInrSYt/CGYuDx+EAAAAAABmkEyJ7ug4OxIASYPFGEmLfwhIg8cYSYl/CEk53XXj6esAAABJi0cITDngdR1NiWcI6dkAAABmLg8fhAAAAAAAZpBIidhMOeN040iNWOj2QOgBdO5Ii3j46MU3EgDr40mLP0yJ7Um9q6qqqqqqqqrrA0yJ502JZwjopTcSAA9XwEEPEQdJx0cQAAAAADHASLmqqqqqqqqqCkg5zQ+HfQAAAEjB+ANJD6/FSI0UAEg56kgPQtVIvlVVVVVVVVUFSDnwSA9D0Ug5yndUSMHiA0yNJFJMiefoKDcSAEmJRwhJiQdJAcRNiWcQTDnzdCJIicdmkEiJ3uhIOhIASIPDGEmLfwhIg8cYSYl/CEw583XjSIPEGFtBXEFdQV5BX13DTIn/6Aw8EgDMzMzMzMzMzMzMzMxBVlNQSIn7ikcgOkYgdReEwA+EgQAAAEiJ30iDxAhbQV7pegAAAITAdD5Mi3MYSMdDGAAAAABNhfZ0GUmNfgjobPD//0yJ9+gkPQkATIn36Jw2EgD2AwF0CUiLexDojjYSAMZDIADrMEiLRhBIiUMQDxAGDxEDD1fADxEGSMdGEAAAAABIi0YYSMdGGAAAAABIiUMYxkMgAUiDxAhbQV7DQVZTUEmJ9kiJ+/YHAXUHZscDAADrJEiLQxDGAABIx0MIAAAAAPYDAXQQSIt7EOgdNhIASMcDAAAAAEmLRhBIiUMQQQ8QBg8RAw9XwEEPEQZJx0YQAAAAAEmLRhhJx0YYAAAAAEyLcxhIiUMYTYX2dBlJjX4I6Jbv//9MiffoTjwJAEyJ9+jGNRIASInYSIPECFtBXsPMzMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn3SIn9SItfCEQPtiZB9sQBdApNi2cITYt/EOsHSdHsSYPHAUiDxQhIhdsPhM0AAABIiSwkSYntvf/////rJw8fRAAAMcBNOfQPksBNOeYPQsWJwcHpH4XATA9J60iLHMtIhdt0RA+2QyCoAXQGTItzKOsGSYnGSdHuTTn0TInySQ9C1EiF0nS7qAF0B0iLezDrCZBIjXsgSIPHAUyJ/uiAOBIAhcB1quuaSIssJEk57XRLQQ+2RSCoAXQGSYtdKOsGSInDSNHrTDnjTIniSA9C00iF0nQiqAF0BkmLdTDrCEmNdSBIg8YBTIn/6DM4EgCFwHQEeAfrCEk53HMDSYntTInoSIPECFtBXEFdQV5BX13DzFVBV0FWQVVBVFNIg+wYSItvCEiDxwhIhe10GUQPtjJB9sYBSIl0JAh0EkyLcghIi1IQ6y9IiT7pHgEAAEnR7kiDwgHrHmYuDx+EAAAAAACQSItFAEiJ70iFwA+E4AAAAEiJxQ+2RSCoAXQVTIt9KOsVZi4PH4QAAAAAAA8fRAAASYnHSdHvTTn3TInzSQ9C30iF20iJfCQQdBaoAXQiTIttMOskZi4PH4QAAAAAAGaQTTn+cpvraWYPH4QAAAAAAEyNbSBJg8UBSYnUSInXTInuSIna6Dc3EgCFwHQTTIniD4hq////6xQPH4QAAAAAAE05/kyJ4g+CVP///0yJ70iJ1kiJ2ugGNxIATInihcB0D3gS6zhmLg8fhAAAAAAAkE0593MoSI19CEiLRQhIhcAPhSr///9Ii0QkCEiJKOsaSItEJAhIiShIie/rDUiLRCQISIkoSIt8JBBIifhIg8QYW0FcQV1BXkFfXcPMzMzMVUFXQVZBVUFUU1BIi18ISIXbD4THAAAASYn0SYn/SYPHEOslZi4PH4QAAAAAAGaQTDn1D4OfAAAASIPDCEiLG0iF2w+ElgAAAEyNayBMif9MieZMieroVe3//4TAdd5BD7YEJKgBdAhNi3QkCOsHkEmJxknR7g+2SyD2wQF0EUiLayjrEWYuDx+EAAAAAACQSInNSNHtSTnuSInqSQ9C1kiF0nSLSY10JAGoAXQFSYt0JBD2wQF0BkyLazDrBEmDxQFMie/o1jUSAIXAD4Re////D4hh////uAEAAADrAjHASIPECFtBXEFdQV5BX13DVUFXQVZBVUFUU0iD7BhJif5IuGZmZmZmZmYGSIsPSItvCEgpzUjB/QNIvs3MzMzMzMzMSA+v7kiNVQFIOcIPh58BAABJi34QSCnPSMH/A0gPr/5IjRw/SDnTSA9C2ki5MzMzMzMzMwNIOc9ID0PYSIXbdB9IOcMPh24BAABIjQTdAAAAAEiNPIDogjESAEmJxesDRTHtSI1srQBIjTztAAAAAEwB70iNBJtIjRzFAAAAAEwB60iJfCQI6DF2+/9IjQTtKAAAAEwB6E2LPk2LZghNOfwPhOUAAABIiUQkEEiJXCQITY1s7dhJg8TY6x2QTInvTInm6JWA+/9Jg8XYSY1EJNhNOfxJicR0WkyJ7+jcdfv/SYtNCEiJyEiD4P72wQF1MUmLVCQISInRSIPh/vbCAXUmSDnIdbZJjUQkKEmNTShIOch0s0yJ70yJ5uj9gPv/66ZIi0AY68lIi0kYSDnIdYzr1E2LPkmLXghJg8UoTYkuSItEJBBJiUYISItEJAhJiUYQTDn7dBlIg8PYkEiLA0iJ3/8QSI1D2Ew5+0iJw3XsTYX/dCtMif9Ig8QYW0FcQV1BXkFfXelxMBIASItMJAhJiQ5JiUYISYleEE2F/3XVSIPEGFtBXEFdQV5BX13DTIn36FU1EgDoMDUSAEFXQVZBVFNIg+wYSYn0SYn+ZEiLBCUoAAAASIlEJBBIx0QkCAAAAABIjXQkCEyJ4uh7+///SIsYSIXbdAQx0utUSYnHvzgAAADo0i8SAEiJw0iNeCBMieboAzMSAEiLRCQID1fADxEDSIlDEEmJH0mLBkiLAEiFwHQISYkGSYs36wNIid5Ji34I6BIB/P9Jg0YQAbIBZEiLBCUoAAAASDtEJBB1D0iJ2EiDxBhbQVxBXkFfw+jXMRIAzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn9TItnEEw7ZxgPhewBAABNi30ASYttCEiJ6Ewp+A+GuAAAAEjB+ANIuauqqqqqqqqqSA+vyEiNQQFIweg/SAHISIPAAUjR+Ej32EiNDEBMOeUPhG4BAABIiQwkSMHgA0iNHEAPV8nrOA8fhAAAAAAAZsdEHQAAAEiLRRBJiUcQDxBFAEEPEQcPEU0ASMdFEAAAAABIg8UYTDnlD4QdAQAATI08K/ZEHQABdMVIi0QdEMYAAEjHRB0IAAAAAPZEHQABdLRIi3wdEOijLhIAD1fJSMdEHQAAAAAA65xMieBMKfhIicFIwfkDSLpWVVVVVVVVVUgPr9FIhcC4AQAAAEgPRcJIuauqqqqqqqoKSDnID4MGAQAASInDSMHrAkjB4ANIjTxASIk8JOgjLhIASI0MW0iNFMhIicFIAwwkTDnlD4SZAAAAD1fASInWDx9EAABIi30QSIl+EA8QTQAPEQ4PEUUASMdFEAAAAABIg8YYSIPFGEw55XXYTYt9AEmLXQhJi30QSYlFAEmJVQhJiXUQSYlNGEg533UP61MPH0QAAEiJ70g53XRGSI1v6PZH6AF07kiLf/jotS0SAOvjTYtlCEiLDCRIjQTNAAAAAEgB6EmJRRBJjQTMSYlFCOsdSYlFAEmJVQhJiVUQSYlNGE2F/3QITIn/6HUtEgBJi30QTIn26IkwEgBJg0UQGEiDxAhbQVxBXUFeQV9dw+hAMhIAVUFXQVZBVUFUU1BJifZJif1Mi2cQTDtnGA+F7AEAAE2LfQBJi20ISInoTCn4D4a4AAAASMH4A0i5q6qqqqqqqqpID6/ISI1BAUjB6D9IAchIg8ABSNH4SPfYSI0MQEw55Q+EbgEAAEiJDCRIweADSI0cQA9Xyes4Dx+EAAAAAABmx0QdAAAASItFEEmJRxAPEEUAQQ8RBw8RTQBIx0UQAAAAAEiDxRhMOeUPhB0BAABMjTwr9kQdAAF0xUiLRB0QxgAASMdEHQgAAAAA9kQdAAF0tEiLfB0Q6HMsEgAPV8lIx0QdAAAAAADrnEyJ4Ewp+EiJwUjB+QNIulZVVVVVVVVVSA+v0UiFwLgBAAAASA9Fwki5q6qqqqqqqgpIOcgPgxwBAABIicNIwesCSMHgA0iNPEBIiTwk6PMrEgBIjQxbSI0UyEiJwUgDDCRMOeUPhJkAAAAPV8BIidYPH0QAAEiLfRBIiX4QDxBNAA8RDg8RRQBIx0UQAAAAAEiDxhhIg8UYTDnlddhNi30ASYtdCEmLfRBJiUUASYlVCEmJdRBJiU0YSDnfdQ/rUw8fRAAASInvSDnddEZIjW/o9kfoAXTuSIt/+OiFKxIA6+NNi2UISIsMJEiNBM0AAAAASAHoSYlFEEmNBMxJiUUI6x1JiUUASYlVCEmJVRBJiU0YTYX/dAhMif/oRSsSAEmLRRBJi04QSIlIEEEPEAYPEQAPV8BBDxEGScdGEAAAAABJg0UQGEiDxAhbQVxBXUFeQV9dw+j6LxIAzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYn3ZEiLBCUoAAAASIlEJBBIi24gTItyIEk57kiJ60kPQt5IhdtIiRQkdCNNi2cYTItqGEyJ50yJ7kiJ2ugwLhIAhcB0F7ABeR7psgAAAEk57g+XwA+FpgAAAOsosAFMOfUPgpkAAABMie9MieZIidro/C0SAIXAdAaFwHhp6wVJOe5yYk2LdzBIiwQkSItoMEw59UyJ80gPQt1Ihdt0IE2LZyhMi2goTInnTInuSIna6LwtEgCFwHQQsAF5E+tBTDn1D5fAdTnrJrABSTnucjBMie9MieZIidroky0SAIXAdAiFwHkJMcDrFkw59XL3SI18JAhMif5IixQk6DEAAABkSIsMJSgAAABIO0wkEHUPSIPEGFtBXEFdQV5BX13D6B0sEgDMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJidZJifdIi25ATItiQEk57EiJ60kPQtxIhdt0IUmLfzhNi244SIk8JEyJ7kiJ2ugBLRIAhcB0ELABeRPrbkk57A+XwHQn62SwAUw55XJdTInvSIs0JEiJ2ujXLBIAhcB0BoXAeQfrQkk57HI9SYtfUEmLblBIOetIidpID0fVSIXSdBdJi3ZISYt/SOikLBIAhcB0DrABeRHrEUg56w+SwOsJsAFIOetyAjHASIPECFtBXEFdQV5BX13DzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+woSInzSYn9ZEiLBCUoAAAASIlEJCAPthZMjWYB9sIBdApIi3MQSItTCOsGSNHqTInmSI18JBjoCAIAAE2LdQhNhfYPhMcBAABJicBMifBI0ehIuVVVVVVVVVVVSCHBTInwSCnISLkzMzMzMzMzM0iJwkghykjB6AJIIchIAdBIicFIwekESAHBSLgPDw8PDw8PD0ghyEm/AQEBAQEBAQFMD6/4ScHvOEmD/wF3CUmNdv9MIcbrLU058HMFTInG6yNMicBMCfBIweggdA1MicAx0kn39kiJ1usKRInAMdJB9/aJ1kmLRQBIiwTwSIXAD4QbAQAAD7YrQPbFAXQKSItrCEyLYxDrA0jR7UiLGEiF2w+E+QAAAE2Nbv9IiXQkEEyJRCQI6yVmLg8fhAAAAAAADx8ATCHoSDnwD4XQAAAASIsbSIXbD4TEAAAASItDCEk5wHVfD7ZLEEiJyEjR6EiJwvbBAXQESItTGEg56nXQSI17EEiDxwH2wQF0BEiLeyB1XUiF7Q+EhgAAADHJZg8fRAAAD7ZUCxFBOhQMdaFIg8EBSDnIdezraGYuDx+EAAAAAABBg/8BD4Z2////TDnwD4Jw////SInBTAnxSMHpIHQxMdJJ9/ZIidDpV////0iF7XQtTInmSInq6GQqEgBMi0QkCEiLdCQQhcAPhT7////rDjHSQff2idDpJ////zHbZEiLBCUoAAAASDtEJCB1EkiJ2EiDxChbQVxBXUFeQV9dw+j7KBIAzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIP6IHcfSIP6EA+H7AAAAEiJ90iJ1ltBXEFdQV5BX13p8QMAAEiD+kAPh2IBAABIifVIi3YQSItFGEyLTBXwSY08EUm4JzHLl1zIpcNJD6/4SAN9AEyNHAdJwcMMSIn5SMHBG0gDfQhIiftIwcM5SAHLSAH3SYn6ScHCIUwB20kB2kgDdBXgSAHHSANEFfhIjRwwSMHDDEiJ8UjBwRtIA3QV6EiJ8kjBwjlMAc5IAfBIwcYhSAH5SAHRSAHZSAHxSL5PQJAvO2rhmkgPr85MAdBJD6/ASAHISInCSMHqL0gxwkkPr9BMAdJIidBIwegvSDHQSA+vxukAAwAASLhz8pi+b7aStEgPrwZIuU9AkC87auGaSA+vTBb4SIteCEi/JzHLl1zIpcNID698FvBIicZIKd5IwcYVSL1XZZ5Qx9dJyUgx3UjBxSxIAdBIAehIKchIwcEiSAHxSAH5SDHBSLppLTjrCOrfnUgPr8pIic5Iwe4vSDHBSDHxSA+vykiJyEjB6C9IMchID6/C6WsCAABJvHPymL5vtpK0SbppLTjrCOrfnUmJ90iJdCTgSIt8FthMi3QW8EiLdBbITYtMF9BKjQw2SY0sEUmLRBfoSDHFSQ+v6kiJ60jB6y9IMcVIMd1JD6/qSYnoScHoL0kx6E0Pr8JJi2wXwEgB1UiNHC9MAcNIwcMrSAHuTAHOSYnzScHDFEgB/kkB60kB20mLbBfgSAHNTYtMF/hMAeVMjRQvTQHKScHCK0gB6EwB8EiJw0jBwxRMAchIAetMAdNJD6/8SYsvSIlsJOhIAe9Ig8L/SIPiwEiJVCTwQb9AAAAATIt0JOCQTInFSAH3SAHPT4tUPshMAddIwccbT4tsPtBJuHPymL5vtpK0SQ+v+EwB2UuLVD7wSIlUJPhIAdFIwcEWSYnMTQ+v4EyJwkmJ+Ekx2E+LTD7oTAHOSInxTAHhSAHFTA+v2kwDXCToS4t8PthMAdhMAcBIAfhNAdpNAepMidZIAf5JwcIUTQHTSMHFH0iJ70gPr/pIwcArSQHDSAH7SQHNS4tsPvhLA1w+4EkB3UkB7UkB2UwDTCT4TInISAHoScHBFEwBy0nBxStMAetMOXwk8HQXSItUJOBKiyw6SIlsJOhJg8dA6Rf///9IMcZIvWktOOsI6t+dSA+v9UiJ8kjB6i9IMcZIMdZID6/1SInwSMHoL0gx8EgPr8VIicpIweovSDHKSLlz8pi+b7aStEgPr9FMAcJIAcJJMdtMD6/dTInYSMHoL0kx20kxw0wPr91MidhIwegvTDHYSA+vxUgB+EgxwkgPr9VIidFIwekvSDHCSDHKSA+v1UiJ0EjB6C9IMdBID6/FW0FcQV1BXkFfXcPMzMzMzMzMzMzMzMzMzMxIg/4JckVIi1Q3+EiNBDKJ8UjTyEiLD0gxwUi+aS046wjq351ID6/OSInPSMHvL0gxwUgx+UgPr85IichIwegvSDHISA+vxkgx0MNIg/4Ecj2LD4tEN/zB4QNIAfFIMcFIumktOOsI6t+dSA+vykiJzkjB7i9IMcFIMfFID6/KSInISMHoL0gxyEgPr8LDSLhPQJAvO2rhmkiF9nRAD7YPSInySNHqD7YUFw+2fD7/SMHiCEgJykiNDL5ID6/QSL5XZZ5Qx9dJyUgPr/FIMdZIifFIwekvSDHxSA+vwcPMzLABw8zMzMzMzMzMzMzMzMywAcPMzMzMzMzMzMzMzMzMsAHDzMzMzMzMzMzMzMzMzDHAw8zMzMzMzMzMzMzMzMywAcPMzMzMzMzMzMzMzMzMMcDDzMzMzMzMzMzMzMzMzLABw8zMzMzMzMzMzMzMzMywAcPMzMzMzMzMzMzMzMzMMcDDzMzMzMzMzMzMzMzMzDHAw8zMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ/0g59w+EqAEAAEmJ9ESLbghFi3cIRTnuc0ZFOW8MD4OhAAAATYX2D4TvAAAASYsfScHmA0uNLPbrE2YPH4QAAAAAAEiDxbgPhM8AAAD2RCu4AXTvSIt8K8jolSASAOvjRYXtD4QyAQAASYscJEqNBO0AAAAATAHoSI0sw02LJw8fQABMiedIid7oVSESAA8QQxgPEEsoDxBTNUEPEUQkGEEPEUwkKEEPEVQkNUmDxEhIg8NISDnrdcpJiwdFi3cI6dwAAABNhfZ0ZUyJLCRJixwkS40E9kiNLMNNiy9mDx9EAABMie9Iid7o9SASAA8QQxgPEEsoDxBTNUEPEUUYQQ8RTShBDxFVNUiDw0hJg8VISDnrdc1Miywk6xZBx0cIAAAAAEyJ/0yJ7ujEAAAARTH2QYtEJAhJOcZ0ckmLHCRIjQTASI0sw0nB5gNPjST2TAHjTQMnZi4PH4QAAAAAAA8fAEyJ50iJ3uilIhIADxBDGA8QSygPEFM1QQ8RVCQ1QQ8RTCQoQQ8RRCQYSIPDSEmDxEhIOet1yusTSYsHSYnES40M9kiNBMhMOeB1LUWJbwhMifhIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx9EAABIidhMOeN000iNWLj2QLgBdO5Ii3jI6AUfEgDr48zMzEFXQVZBVFNIg+wYSYn/ZEiLBCUoAAAASIlEJBBIx0QkCAAAAABIjUwkCLpIAAAA6IwoEgBJicZNiydBi0cISIXAD4RmAQAASI00wEiNDPW4////SLqP4ziO4ziO40iJyEj34g+64gZMifBMieJyUEmLRCQQSYlGEEEPEAQkQQ8RBg9XwEEPEQQkScdEJBAAAAAAQQ8QRCQYQQ8QTCQoQQ8QVCQ1QQ8RVjVBDxFOKEEPEUYYSY1UJEhMifBIg8BISIP5SA+CrwAAAEmNDPQx9g9XwGYuDx+EAAAAAAAPH0AASIt8MhBIiXwwEA8QDDIPEQwwDxEEMkjHRDIQAAAAAA8QTDIYDxBUMigPEFwyNQ8RXDA1DxFUMCgPEUwwGEiLfDJYSIl8MFgPEEwySA8RTDBIDxFEMkhIx0QyWAAAAAAPEEwyYA8QVDJwDxBcMn0PEVwwfQ8RVDBwDxFMMGBIjTwySIHHkAAAAEiBxpAAAABIOc8PhWj///9NiydBi0cISIXAdClIweADSI0cwOsIZpBIg8O4dBRB9kQcuAF08kmLfBzI6FgdEgDr5k2LJ0iLXCQISY1HEEk5xHQITInn6J0hEgBNiTdBiV8MZEiLBCUoAAAASDtEJBB1DEiDxBhbQVxBXkFfw+hlHxIAzMzMzMzDzMzMzMzMzMzMzMzMzMzMMcDDzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMwxwMPMzMzMzMzMzMzMzMzMQVdBVkFVQVRTSIn7TIs+TYX/dDJMi3YID1fADxEDSMdDEAAAAABJg/7wc2xJg/4XcyRDjQQ2iANJidxJg8QBTYX2dTTrQA9XwA8RA0jHQxAAAAAA6zVNjW4QSYPl8EyJ7+iaGhIASYnESIlDEEmDzQFMiStMiXMITInnTIn+TIny6BofEgBDxgQ0AEiJ2FtBXEFdQV5BX8NIid/oUB8SAFVBV0FWQVVBVFNIg+w4SYnVSInzSYn/ZEiLBCUoAAAASIlEJDAPthZMjWYB9sIBdApIi3MQSItTCOsGSNHqTInmSI18JCjolfP//02LVwhNhdJIiUQkEHRuSInGTInQSNHoSLlVVVVVVVVVVUghwUyJ0EgpyEi5MzMzMzMzMzNIicJIIcpIwegCSCHISAHQSInBSMHpBEgBwUi4Dw8PDw8PDw9IIchJuQEBAQEBAQEBTA+vyEnB6ThJg/kBdxhNjUL/SSHw6zpNidQxwEiJRCQI6YkBAABJifBMOdZyI0iJ8EwJ0EjB6CB0DUiJ8DHSSffySYnQ6wqJ8DHSQffyQYnQSYsHSosEwEiFwEyJRCQIdBhMiXwkGA+2K0D2xQF0EkiLawhMi2MQ6wtNidTpLQEAAEjR7UyLME2F9g+EFgEAAEmNQv9IiUQkIOsQDx9AAE2LNk2F9g+E+wAAAEmLRghIOfB0REGD+QF3FUgjRCQgTDnAdDTp3QAAAGYPH0QAAEw50HIbSInBTAnRSMHpIA+EsgAAADHSSffySInQDx8ATDnAD4WuAAAAQQ+2ThBIichI0ehIicL2wQF0BEmLVhhIOep1i0mNfhBIg8cB9sEBdARJi34gdThIhe0PhBICAAAxyWYuDx+EAAAAAAAPHwBBD7ZUDhFBOhQMD4VQ////SIPBAUg5yHXn6eUBAABmkEiF7Q+E2gEAAEyJ5kiJ6k2Jz0yJ0+jGGxIASYnaTYn5TItEJAhIi3QkEIXAD4UO////6awBAAAx0kH38onQTDnAD4RS////TYnUTIt8JBi/mAAAAOj3FxIASYnGSI1oEEiJ70yJ7uglGxIASYtFKEmJRjhBDxBFGEEPEUYoD1fAQQ8RRRhJx0UoAAAAAEmLRTBJiUZASYtFOEmJRkhJi01ASYlOUEiFyXQXSY1OSEiJSBBJjUU4SYlFMEEPEUU46whJjUZISYlGQEyJ80iDw1hIid/oeBv+/0w57XQPSYPFSEiJ30yJ7uhEKv7/SItEJBBJiUYISccGAAAAAEmLRxhIg8ABeAoPV8DzSA8qwOsYSInBSNHpg+ABSAnID1fA80gPKsDzD1jASItUJAhMiedNheR4B/NIDyrX6xdIifhI0eiJ+YPhAUgJwfNIDyrR8w9Y0vNBDxBPIPMPWdEPLsJ3CUiF/w+FlgAAAEiNBD+7AQAAAEiD/wNyDEiNT/8x20iFzw+Vw0gJw/MPXsHoriASAPNIDyzASInB8w9cBfq2m/5Iwfk/80gPLPBIIc5ICcZIOfNID0PzTIn/6OAAAABJi38ISI1X/0iF13UHSCNUJBDrLUiLRCQQSDn4cwxIicLrHjHS6YoAAABIicFICflIwekgdAcx0kj39+sEMdL390mLB0iLDNBIhcl0C0iLAUmJBkyJMetVSY1PEEmLdxBJiTZNiXcQSIkM0EmLBkiFwHQ6SItACEiNT/9Ihc91BUghyOshSDn4chxIicFICflIwekgdAox0kj390iJ0OsGMdL394nQSYsPTIk0wUmDRxgBsgFkSIsEJSgAAABIO0QkMHUSTInwSIPEOFtBXEFdQV5BX13D6CUYEgDMzMzMzEFXQVZTSYn+uwIAAABIg/4BdBlIjUb/SIXGdQVIifPrC0iJ9+iHHxIASInDTYt+CEw5+w+H7QAAAA+D9wAAAEmLRhhIhcB4B/NIDyrA6xVIicFI0emD4AFICcjzSA8qwPMPWMDzQQ9eRiDoMR8SAPNIDyzISInK8w9cBX21m/7zSA8swEjB+j9IIdBICchJg/8Dcn5MiflI0elIulVVVVVVVVVVSCHKTIn5SCnRSLozMzMzMzMzM0iJzkjB7gJIIdFIIdZIAc5IifFIwekESAHxSLoPDw8PDw8PD0ghyki5AQEBAQEBAQFID6/KSMHpOIP5AXcdSIP4AnIfSIPA/0gPvciD8T/22bgBAAAASNPg6whIicfolh4SAEg5w0gPQthMOftzEEyJ90iJ3ltBXkFf6QoAAABbQV5BX8PMzMzMVUFXQVZBVUFUU0iD7DhIiftIhfZ0RkmJ9EiJ8EjB6D0PhWgDAABKjTzlAAAAAOg9FBIASIs7SIkDSIX/dAXoTRQSAEyJYwhNjUQk/0SJ4IPgA0mD+ANzJTHJ62xIiztIxwMAAAAASIX/dAXoIBQSAEjHQwgAAAAA6QIDAABMieJIg+L8MclmLg8fhAAAAAAASIszSMcEzgAAAABIizNIx0TOCAAAAABIizNIx0TOEAAAAABIizNIx0TOGAAAAABIg8EESDnKdchIhcB0GA8fAEiLE0jHBMoAAAAASIPBAUiDwP9160iLSxBIhckPhI0CAABIjWsQSIt5CEyJ4EjR6Ei6VVVVVVVVVVVIIcJMieBIKdBIujMzMzMzMzMzSInGSCHWSMHoAkgh0EgB8EiJwkjB6gRIAcJIuA8PDw8PDw8PSCHQSL4BAQEBAQEBAUgPr/BIwe44SIP+AXcFTCHH6ydMOedyIkiJ+EwJ4EjB6CB0DUiJ+DHSSff0SInX6wmJ+DHSQff0iddIiwNIiSz4SIspSIXtD4TkAQAATIlkJBhMiUQkEEiJdCQISIkcJOsPSInpSIspSIXtD4TAAQAATIt1CIP+AXcYTSHGSTn+dODrM2YuDx+EAAAAAAAPH0AATTnmchtMifBMCeBIweggD4QvAQAATInwMdJJ9/RJidZJOf50q0iLA0qDPPAAD4T6AAAASItFAEiFwA+E/AAAAEiJfCQgSIlMJCgPtl0QSYndSdHtTInq9sMBdARIi1UYTI1FEUmJ70iJXCQw6w5mkEmLB0iFwA+E4QAAAE2J+UmJxw+2QBCoAXQWSYtPGEg5ynQc6csAAAAPH4QAAAAAAEiJwUjR6Ug5yg+FtAAAAKgBdA1Ji3cg6w8PH4AAAAAASY13EEiDxgFMicf2wwF0BEiLfSB1KkiF0nSVMcAPHwAPtkwFEToMBnV5SIPAAUk5xXXt6Xj///8PH4QAAAAAAEiF0g+EZ////02JzEiJ0+gMFRIATI1FEUiJ2kiLXCQwhcAPhEj///9NieHrNkqJDPBIielMiffpl/7//0mJ6UUx/+s8RInwMdJB9/RBidZJOf4PhHj+///pyP7//02J+UUx/0yLZCQYTItEJBBIi0wkKEiLfCQgSIt0JAhIixwkTIk5SIsDSosE8EiLAEmJAUiLA0qLBPBIiSjpNP7//0iDxDhbQVxBXUFeQV9dw+jtFRIAzMzMzMzMzMzMzMzMzEiF9nRJQVZTUEiJ80mJ/kiLNujp////SItzCEyJ9+jd////SI17QEiLc0joIAAAAPZDIAF0CUiLezDosRASAEiJ30iDxAhbQV7pohASAMPMSIX2dDxBVlNQSInzSYn+SIs26On///9Ii3MITIn36N3////2QygBdAlIi3s46G4QEgBIid9Ig8QIW0Fe6V8QEgDDzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIPsKEiJ80mJ/WRIiwQlKAAAAEiJRCQgD7YWTI1mAfbCAXQKSItzEEiLUwjrBkjR6kyJ5kiNfCQY6Gjp//9Ni3UITYX2D4THAQAASYnATInwSNHoSLlVVVVVVVVVVUghwUyJ8EgpyEi5MzMzMzMzMzNIicJIIcpIwegCSCHISAHQSInBSMHpBEgBwUi4Dw8PDw8PDw9IIchJvwEBAQEBAQEBTA+v+EnB7zhJg/8BdwlJjXb/TCHG6y1NOfBzBUyJxusjTInATAnwSMHoIHQNTInAMdJJ9/ZIidbrCkSJwDHSQff2idZJi0UASIsE8EiFwA+EGwEAAA+2K0D2xQF0CkiLawhMi2MQ6wNI0e1IixhIhdsPhPkAAABNjW7/SIl0JBBMiUQkCOslZi4PH4QAAAAAAA8fAEwh6Eg58A+F0AAAAEiLG0iF2w+ExAAAAEiLQwhMOcB1Xw+2SxBIichI0ehIicL2wQF0BEiLUxhIOep10EiNexBIg8cB9sEBdARIi3sgdV1Ihe0PhIYAAAAxyWYPH0QAAA+2VAsRQToUDHWhSIPBAUg5yHXs62hmLg8fhAAAAAAAQYP/AQ+Gdv///0w58A+CcP///0iJwUwJ8UjB6SB0MTHSSff2SInQ6Vf///9Ihe10LUyJ5kiJ6ujEERIATItEJAhIi3QkEIXAD4U+////6w4x0kH39onQ6Sf///8x22RIiwQlKAAAAEg7RCQgdRJIidhIg8QoW0FcQV1BXkFfXcPoWxASAMzMzMzMzMzMzMzMQVdBVkFUU0iD7BhJidRIifJJif5kSIsEJSgAAABIiUQkEEjHRCQIAAAAAEiNdCQI6PsAAABIixhIhdt0BzHS6bsAAABJice/WAAAAOiPDRIASInDSYtEJBBIiUMwQQ8QBCQPEUMgD1fAQQ8RBCRJx0QkEAAAAABBi0QkGIlDOEmLRCQgSIlDQEmLRCQoSIlDSEmLTCQwSIlLUEiFyXQdSInZSIPBSEiJSBBJjUQkKEmJRCQgQQ8RRCQo6wtIidhIg8BISIlDQEiLRCQID1fADxEDSIlDEEmJH0mLBkiLAEiFwHQISYkGSYs36wNIid5Ji34I6Gje+/9Jg0YQAbIBZEiLBCUoAAAASDtEJBB1D0iJ2EiDxBhbQVxBXkFfw+gtDxIAzMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSItvCEiDxwhIhe10GUQPtjJB9sYBSIl0JAh0EkyLcghIi1IQ6y9IiT7pHgEAAEnR7kiDwgHrHmYuDx+EAAAAAACQSItFAEiJ70iFwA+E4AAAAEiJxQ+2RSCoAXQVTIt9KOsVZi4PH4QAAAAAAA8fRAAASYnHSdHvTTn3TInzSQ9C30iF20iJfCQQdBaoAXQiTIttMOskZi4PH4QAAAAAAGaQTTn+cpvraWYPH4QAAAAAAEyNbSBJg8UBSYnUSInXTInuSIna6HcPEgCFwHQTTIniD4hq////6xQPH4QAAAAAAE05/kyJ4g+CVP///0yJ70iJ1kiJ2uhGDxIATInihcB0D3gS6zhmLg8fhAAAAAAAkE0593MoSI19CEiLRQhIhcAPhSr///9Ii0QkCEiJKOsaSItEJAhIiShIie/rDUiLRCQISIkoSIt8JBBIifhIg8QYW0FcQV1BXkFfXcPMzMzMQVdBVkFUU0iD7BhJic9JidBJif5kSIsEJSgAAABIiUQkEEjHRCQIAAAAAEjHBCQAAAAASI1UJAhIieHokAAAAEiLGEiF23VeSYnEv0AAAADo6woSAEiJw0GLB4lDIEiNeyhJg8cITIn+6BIOEgBIi0QkCA9XwA8RA0iJQxBJiRwkSYsGSIsASIXAdAlJiQZJizQk6wNIid5Ji34I6B/c+/9Jg0YQAWRIiwQlKAAAAEg7RCQQdQ9IidhIg8QYW0FcQV5BX8Po5gwSAMzMzMzMzEiNRwhIOfB0DEWLCESLViBFOdFzKUyLDkmJ8kg5N3R8TYXJdEtMickPH4QAAAAAAEmJykiLSQhIhcl19OtVRTnKD4O8AAAATItGCE2FwA+EuQAAAEyJwWYPH4QAAAAAAEiJz0iLCUiFyXX16cAAAABMjVYQSItOEEg5MXUTDx8ATYsaTY1TEEmLSxBMORl08E2LEkWLAEU5QiBzEE2FyXRbTIkSSYPCCEyJ0MNIizBIhfYPhJcAAABIg8cISIn46x1mLg8fhAAAAAAADx9EAABIiw5IifBIhcl0IUiJzotOIEE5yHLqRDnBcw1IjUYISItOCEiFyXXjSIkyw0iJMkiJ8MNIiTJIiTFIicjDSIt+EEg5N3QaTI1WEGYPH0QAAEmLCkyNURBIi3kQSDkPdfBIOcd0BkQ7TyBzDE2FwHRMSIk6SIn4w0iLCEiFyXUfSIkCw2YuDx+EAAAAAAAPHwBIizFIichIhfZ0LEiJ8YtxIEE58XLqRDnOcw1IjUEISItxCEiF9nXjSIkKw0iJMkiDxghIifDDSIkKSInIw8zMVUFXQVZTUEG2AUg59w+ETwEAAEiJ1UmJ94tHIDtFIA+FOgEAAEiJ+w+2TyhIichI0ehIicL2wQF0BEiLUzAPtnUoQPbGAXQYSIt9MEg5+nQe6QkBAABmLg8fhAAAAAAASIn3SNHvSDn6D4XwAAAASI17KED2xgF0B0iLdTjrCZBIjXUoSIPGAUiDxwH2wQF0BEiLezh1KUiF0nQ2MclmkA+2VAspOhQOD4WxAAAASIPBAUg5yHXp6xkPH4AAAAAASIXSdA3olgsSAIXAD4WNAAAASItDCEiFwHQVDx9EAABIicdIiwBIhcB19esjDx8ASIt7EEg5H3QXSIPDEA8fAEiLA0iNWBBIi3gQSDkHdfBIi00ISIXJdBcPH4AAAAAASInISIsJSIXJdfXrJA8fAEiLRRBIOSh0GEiDxRAPHwBIi00ASI1pEEiLQRBIOQh170iJxUw5/w+FvP7//+sDRTH2RInwSIPECFtBXkFfXcNVQVZTifVJif6B5f///3+LnzABAACNQwGD+AF3CUmLhrgAAADrUIXbeBFIjQRbSMHgA0kDhrgAAADrO77+////SCneifDB6AZJi47gAAAASIsEwUgPo/BzE4nwSI0EQEjB4ANJA4bIAAAA6wpMifcx0uh6DxIAuf///38jCDnpdg5MifeJ7ltBXl3p4RASAIP7/nUMQYuGMAEAAFtBXl3DjUMBQTuGwAAAAHULQTmu2AAAAHbM692D+/5/Mb79////SCneifDB6AZJi47gAAAASIsEwUgPo/BzJonwSI0EQEjB4ANJA4bIAAAA6x2JwEiNBEBIweADSQOGuAAAAOsKTIn3MdLo5g4SALn///9/Iwg56Q+GaP///+l2////zMxQ6EoLEgDMzMzMzMzMzMzMQVdBVlNJif5Ii18QSIXbdS9Jiz5JxwYAAAAASIX/dFlbQV5BX+kmBhIAZg8fRAAASInf6BgGEgBMiftNhf900UyLO0iNe1jopAv+/0iNe0BIi3NI6Af1///2QygBdAlIi3s46OgFEgD2QxABdMJIi3sg6NkFEgDrt1tBXkFfw8zDzMzMzMzMzMzMzMzMzMzMU0iJ+0iNBfVxEgBIiQdIg8cY6FkAAABIid9b6aAPEgBTSIn7SI0F1XESAEiJB0iDxxjoOQAAAEiJ3+iBDxIASInfW+l4BRIAzMzMzMzMzMxIg8cY6RcAAADMzMzMzMzM6VsFEgDMzMzMzMzMzMzMzEFXQVZBVUFUU0mJ/oN/LAB0W0WLZihNheR0UjHb6x6QSYPHEboIAAAATInvTIn+6CwPEgBIg8MBSTncdDBJi0YgTIss2EmD/fh06U2F7XTkTYt9AEmLfQhJx0UIAAAAAEiF/3S7SIsH/1AI67NJi34g6DoJEgBBg34MAHRfRYtmCE2F5HRWMdvrI2YPH0QAAEmDxxG6CAAAAEyJ70yJ/ui8DhIASIPDAUk53HQvSYsGTIss2EmD/fh06k2F7XTlTYt9AEmLfQhJx0UIAAAAAEiF/3S8SIsH/1AI67RJiz5bQVxBXUFeQV/pwwgSAMzMzFVBV0FWQVVBVFNIgey4AgAASInzif1kSIsEJSgAAABIiYQksAIAAEiNFQlfrP+/6ektAL7o6S0A6LMDEgBIiVwkCEiLO+jW9AEASI1cJHBIjXwkKLqIAgAAMfbokAcSAEiJ3+jYB/7/D1fADxGEJMAAAAAPEYQk0AAAAA8RhCSwAAAAxoQkyQAAAAAPEYQk8AAAAA8RhCTgAAAADxGEJAABAABmx4Qk+AAAAAIuxoQk+gAAAADHhCQQAQAAAAAAAEiNhCSAAQAADxGEJIABAAAPEYQkGAEAAA8RhCQoAQAADxGEJDgBAAAPEYQkSAEAAA8RhCRYAQAADxGEJGgBAABIiYQkeAEAAEiNhCSYAQAADxGEJJgBAABIiYQkkAEAAMaEJMgBAAAAxoQkEAIAAAAPEYQkqAEAAA8RhCSyAQAAxoQkGAIAAAEPEYQkIAIAAEjHhCQwAgAAAAAAAGbHhCQgAgAAAi7GhCQiAgAAAA8RhCQ4AgAADxGEJEgCAAAPEYQkWAIAAA8RhCRoAgAADxGEJHgCAAAPEYQkiAIAAA8RhCSYAgAASMeEJKgCAAAAAAAADylEJBBIx0QkIAAAAACF7Q+E3gAAAA+IhwEAAExj7UnB5QNKjSxtAAAAAEwB7UiJ7+hYAhIASInDSIlEJBhIiUQkEEgB6EiJRCQgRTH2611mLg8fhAAAAAAADx9AAEyJ5UiDxRBIg+XwSInv6B0CEgBIiUMQSIPNAUiJK0yJYwhIicNIid9Mif5MieLonQYSAELGBCMASItcJBhIg8MYSIlcJBhJg8YITTn1dEdIi0QkCE6LPDAPV8APEQNIx0MQAAAAAEyJ/+jiBhIASIP48A+DxQAAAEmJxEiD+BcPg3v///9DjQQkiANIg8MBTYXkdZHrnUiNfCQoSI10JBDo+zT//0iLXCQQSIXbdD1Ii0QkGEg52HUPSInf6yRmkEiJ6Eg53XQVSI1o6PZA6AF07kiLePjodQESAOvjSIt8JBBIiVwkGOhkARIASI1sJChIie/oBzn//0iJ7zH26P1C//+Jw+hmCxIASInv6E4AAABkSIsEJSgAAABIO4QksAIAAHUqgPMBD7bDSIHEuAIAAFtBXEFdQV5BX13DSInf6NsFEgBIjXwkEOgRBhIA6EwDEgDMzMzMzMzMzMzMzMxBV0FWU0mJ/vaHcAIAAAEPhawAAABB9oZYAgAAAQ+FuAAAAEH2hkACAAABD4XEAAAAQfaGKAIAAAEPhdAAAABB9oYQAgAAAQ+F3AAAAEH2hvgBAAABdAxJi74IAgAA6I0AEgBJjX4w6PQAAABB9kYYAXQJSYt+KOh0ABIATYs+TYX/D4TRAAAASYtGCEw5+HUbTIn/6bIAAAAPH4AAAAAASInYTDn7D4ScAAAASI1Y6PZA6AF06kiLePjoMQASAOvfSYu+gAIAAOgjABIAQfaGWAIAAAEPhEj///9Ji75oAgAA6AkAEgBB9oZAAgAAAQ+EPP///0mLvlACAADo7/8RAEH2higCAAABD4Qw////SYu+OAIAAOjV/xEAQfaGEAIAAAEPhCT///9Ji74gAgAA6Lv/EQBB9ob4AQAAAQ+FFP///+kb////SYs+TYl+CFtBXkFf6Zf/EQBbQV5BX8PMQVdBVkFUU1BJif6Av7gBAAAAdGZBgL6wAQAAAHRGSYueqAEAAEnHhqgBAAAAAAAASIXbdBlIjXsI6BK5//9Iid/oygUJAEiJ3+hC/xEAQfaGkAEAAAF0DEmLvqABAADoLP8RAEH2hngBAAABdAxJi76IAQAA6Bb/EQBNi75QAQAATYX/dEZJi55YAQAATDn7dCtIg8PYZi4PH4QAAAAAAEiLA0iJ3/8QSI1D2Ew5+0iJw3XsSYu+UAEAAOsDTIn/TYm+WAEAAOjE/hEASY2+OAEAAEmLtkABAADo0bn//0mNviABAABJi7YoAQAA6L65//9B9oYIAQAAAQ+FoQAAAEH2hvAAAAABD4WtAAAAQfaG2AAAAAEPhbkAAABB9obAAAAAAQ+FxQAAAEH2hqAAAAABD4XRAAAAQfaGiAAAAAEPhd0AAABB9kZwAXQMSYu+gAAAAOg3/hEATYt+WE2F/w+E5gAAAEmLRmBMOfh1HUyJ/+nMAAAAZg8fhAAAAAAASInYTDn7D4SzAAAASI1Y6PZA6AF06kiLePjo8f0RAOvfSYu+GAEAAOjj/REAQfaG8AAAAAEPhFP///9Ji74AAQAA6Mn9EQBB9obYAAAAAQ+ER////0mLvugAAADor/0RAEH2hsAAAAABD4Q7////SYu+0AAAAOiV/REAQfaGoAAAAAEPhC////9Ji76wAAAA6Hv9EQBB9oaIAAAAAQ+EI////0mLvpgAAADoYf0RAEH2RnABD4UT////6Rr///9Ji35YTYl+YOhE/REASY1+GOjbAv7/TYsmTYXkdCxJi14ITDnjdC9NjX4QZg8fRAAASIPDqEyJ/0iJ3ugxAAAATDnjdexJiz7rD0iDxAhbQVxBXkFfw0yJ502JZghIg8QIW0FcQV5BX+nk/BEAzMzMzFNIifP2RkABdTL2QygBdTv2QxABdAlIi3sg6MH8EQBIi1sISIXbdBJIx8D/////8EgPwUMISIXAdCJbw0iLe1Dom/wRAPZDKAF0xUiLezjojPwRAPZDEAF1vOvDSIsDSInf/1AQSInfW+kiBBIAzMxIifgPV8CF9nQgDxFACMYAFEi5b2JqZWN0aXZIiUgBZsdACWVjxkALAMMPEQBIx0AQAAAAAMYABsdAAWMrKwDDVUFXQVZBVUFUU0iB7HgFAABJicxIidNJifZJif1kSIsEJSgAAABIiYQkcAUAAA9XwA8phCSQAAAASMeEJKAAAAAAAAAASI20JJAAAAC6AQAAAOgJBhIAhMAPhVMBAACLhCSgAAAAg8gCZoP4Dw+FPwEAAEyNvCTgBAAAD1fADxGEJFAFAAAPEYQkQAUAAA8RhCQwBQAADxGEJCAFAAAPEYQkEAUAAA8RhCQABQAADxGEJPAEAAAPEYQk4AQAAEyJvCTIBAAADygN06yb/g8RjCTQBAAADymEJIAAAABIjbQkkAAAAEiNlCTIBAAATInvMcnoeQUSAEiJhCSAAAAASImUJIgAAACLtCSQAAAASI2UJIAAAABMie/oYgUSAEiDvCSIAAAAAA+EjAAAAIhEJE9IiVwkWEiNNZ+ppP9Mie+6AQAAAOhGBRIASYtdaEiLq5gBAABIhe0PhJgAAABIi7QkgAAAAEiLlCSIAAAASInv6CoFEgCD+P+LTQhImEgPRMFIweADSANFAEiLi5gBAACLUQhIweIDSAMRSDnQdFZIiwAPtlAI9sIBdBxIi0gQ6xwx2+l5BAAATInv6O8EEgAx2+lYBAAASInRSNHpSIXJdCP2wgF0BkiLQBjrCEiDwAhIg8ABSImEJIAAAABIiYwkiAAAAEyJZCRQSMdEJHgAAAAASI2cJMgAAAC6AAQAAEiJ3zH26KX9EQBIiZwksAAAAA8oBQaqm/4PEYQkuAAAAEmLRTj2ABB1YEyLpCSAAAAASIusJIgAAABIi0QkUEiLeAhIjRQvSDlQEEyLfCRYcxpIi1wkUEiNcxi5AQAAAEiJ3+gHABIASIt7CEiF7XRmSItcJFBIAztMieZIieroG/4RAEiLewjrUkyLpCSAAAAATYXkdFxIi6wkiAAAAA9XwA8pRCRgSMdEJHAAAAAASIP98A+DvQMAAEyJ80iD/RdzTo1ELQCIRCRgTI10JGFIhe11aut2SItcJFBIAe9IiXsITIn7TI28JOAEAADpPgEAAA9XwA8pRCRgSMdEJHAAAAAAuQAEAAAx0jH2McDrWkyNfRBJg+fwTIn/6N74EQBJicZIiUQkcEmDzwFMiXwkYEyNvCTgBAAASIlsJGhMifdMieZIieroUv0RAEHGBC4AikQkYEiLdCRwSItUJGhIi4wkwAAAAEmJ3onD0OskAUiNbCRhSA9F7kQPtuNMD0XiSMeEJLgAAAAAAAAATDnhczRIjbwksAAAALkBAAAASI20JMgAAABMieLov/4RAEiLvCSwAAAASAO8JLgAAABIi1wkWOsWTYXkSItcJFgPhHQCAABIi7wksAAAAEiJ7kyJ4ui3/BEASIuMJLgAAACKRCRgJAFMAeFIiYwkuAAAAITAdApIi3wkcOgQ+BEASI2sJLAAAABIie++AgAAAOiLAhIASIt8JFBIie7oXgIAAESLpCSQAAAASYtFOPYAEHUSSIusJIAAAABIi4wkiAAAAOtMxkQkYABIi4QkuAAAAEiNUAFIO5QkwAAAAA+H3QEAAEiLjCSwAAAAilQkYIgUAUiLrCSwAAAASIXtdA1Iie/oiPwRAEiJwesEMckx7Q9XwA8RRCQgSIlcJBhMiXQkEEiNRCR4SIlEJAjHRCQ4AAAAAEjHRCQwAAAAAEjHBCQAAAAARA+2RCRPTInvRInmSInqRTHJ6NMBEgBIhcB0DUiLWAhIg+P86fcAAABNif1IiwWfsRIATIswTIu8JIAAAABNhf90PUiLrCSIAAAAD1fADylEJGBIx0QkcAAAAABIg/3wD4M8AQAASIP9F3MnjUQtAIhEJGBMjWQkYUiF7XU760cPV8APKUQkYEjHRCRwAAAAAOs5SI1dEEiD4/BIid/oh/YRAEmJxEiJRCRwSIPLAUiJXCRgSIlsJGhMiedMif5IieroA/sRAEHGBCwASI1EJGBIiYQkYAUAAEiNBbrqBwBIiYQkaAUAAEiNNRDKtv5IjYwkYAUAALoaAAAAQbgBAAAATIn36OD7BwD2RCRgAU2J73QKSIt8JHDoLPYRADHbSIu8JLAAAABIjYQkyAAAAEg5x3QF6HD6EQBIi7wkyAQAAEw5/3QF6F76EQBkSIsEJSgAAABIO4QkcAUAAHVNSInYSIHEeAUAAFtBXEFdQV5BX13DMcnppv3//0iNvCSwAAAAuQEAAABIjbQkyAAAAOgF/BEASIuEJLgAAADp/P3//0iNfCRg6G76EQDo6fcRAMzMzMzMzMzMzEFXQVZBVFNQSIn7SDn3D4SGAAAASYn3TIt2CEyLYwhNOfRzJEw5cxBzM0jHQwgAAAAASI1zGLkBAAAASInfTIny6Jr7EQDrKk2F9nRJSIs7SYs3TIny6JX+EQDrOU2F5HQQSIs7SYs3TIni6ID+EQDrA0Ux5EmLVwhJOdR0GEmLB0qNNCBMAyNIAcJIKfJMiefoevkRAEyJcwhIidhIg8QIW0FcQV5BX8PMzMzMzMzMSIsPiciD4AeD+Ad1FEiD4fiLCYP5A7gDAAAAD0LBg8gIg8D/g/gLD5LBugMEAAAPo8IPksAgyMMPH4QAAAAAAEFWU1BJifZIifuF0nkMSInfidboSP0RAInCidcx9kiJ2kyJ8UiDxAhbQV7pIP8RAFNIifuLTxyJyIPgf41QzIP6BXc5SIXbdDRIid/oD/8RAEiFwA+E0wAAAEiLQBCJwdHpg+EDg8H/g/kDD4K8AAAASIPg+EiJw+mwAAAAg+F+g/kkdUpIhdt0RUiJ3+je/hEAg8D+g/gDD4KPAAAASIuLmAAAAEiJyEiD4Pj2wQR0DEiFwHQHSIsASIPIBEiJwkiD4vioBHRVSIXSdUvrToPAv4P4AXdWSIXbdFFIid/onP4RAIPA/oP4A3JBSItLcEiJyEiD4Pj2wQR0DEiFwHQHSIsASIPIBEiJwkiD4vioBHQKSIXSdAVIidHrDTHJqARID0TKSIXJdANIictIidhbw2YuDx+EAAAAAAAPH0AAi0ccg+B/g/gxD5TBg/g8D5TACMjDZi4PH4QAAAAAAJBIhf90IUiJ+IoPgMFogPkkdxQPtslIugEAgAAQAAAASA+jynMBwzHAww8fgAAAAABIhf90U4oPMcCA+ZhID0THdTiLCEiJykjB6g6D4hBIjXAQ98EAABAASI1EECBID0TGSIsASIXAdB+LSByD4X+D+Tx0BYP5QHUPw4D5r3UJSItHGEiFwHXxMcDDzMzMzMxVQVdBVkFVQVRTSIHsSAMAAEmJ90mJ/mRIiwQlKAAAAEiJhCRAAwAATI1sJDhMjWQkEDHbujADAABMiecx9uj99REATIlsJChIuAAAAAAQAAAASIlEJDDGhCQ4AwAAAEyJ50yJ/ugmAwAASItsJBBIx0QkEAAAAABEi3wkGMdEJBgAAAAARItkJByLRCQgiUQkDEjHRCQcAAAAAEiLfCQoTDnvdHvoZvYRAItcJCBIhdt0a0SJZCQERIl8JAhMi3wkEEjB4wRFMeRBvQAQAADrGGYuDx+EAAAAAAAPH0QAAEmDxBBMOeN0IUuLBCdMCehIPQDw//906EuLfCcISIPn+HTd6KjxEQDr1otcJCBIweMERIt8JAhEi2QkBOsCMdtIi3wkELoIAAAASIne6I77EQBJiS5FiX4IRYlmDItEJAxBiUYQuggAAAAx/zH26G37EQBkSIsEJSgAAABIO4QkQAMAAHUVTInwSIHESAMAAFtBXEFdQV5BX13D6IDzEQBBV0FWU0iD7BBIifNJif5kSIsEJSgAAABIiUQkCIsGg/gHD4y0AAAASItLCEiFyQ+EpwAAADHbg/gHSA9N2UmLBkGLThBIhcl0Uonewe4EidrB6gkx8kSNSf9EIcpIidZIweYESIs8MEg533Q2QbgBAAAASIH/APD//3QgRAHCQYPAAUQhykiJ10jB5wRIjTQ4SIs8OEg533QM69dIic5IweYESAHGSMHhBEgByEg5xnQKSItGCEiD4PjrAjHAZEiLDCUoAAAASDtMJAgPhYYAAABIg8QQW0FeQV/DSI017pF7/0mJ50yJ/7qNAAAAuQYAAABFMcBBuf/////of/URAEyJ/+iH9REASI01Q7ue/royAAAASInH6BPO/v9IjTVAXrL+ugEAAABIicfo/83+/0iNNffRqP+6VAAAAEiJx+jrzf7/TIn/6FP1EQCLA0iLSwjp3f7//+gj8hEADx8AQVZTUEiJ80mJ/kiJ9+iu+hEAMf+D+AdID037SYsGQYtOEEiFyXRSif7B7gSJ+sHqCTHyRI1J/0QhykiJ1kjB5gRIixwwSDn7dDZBuAEAAABIgfsA8P//dCBEAcJBg8ABRCHKSInTSMHjBEiNNBhIixwYSDn7dAzr10iJzkjB5gRIAcZIweEESAHISDnGdAn2RggED5TA6wIxwEiDxAhbQV7DZi4PH4QAAAAAAA8fQABVQVdBVkFUU0iD7EBkSIsEJSgAAABIiUQkOEiF9g+EhwAAAEmJ9kiJ+4N/IAAPhNoAAABMiTQki0MQhcB0dEiLC0SJ9sHuBESJ8sHqCTHyg8D/IcJIidZIweYESI0sMUiLPDFMOfd0XUG4AQAAADH2SIH/APD//w+EkwoAAEiB9wDg//9ICfdID0T1RAHCQYPAASHCSInXSMHnBEiNLDlIizw5TDn3dB3rxkC1AenPBQAAMe1IieJIid9Iie7o/n0BAEiJxUiDfQgHd0G/MAAAAOgq7hEASItLGItTIEiNFFJIweIEDxBEEdAPEEwR4A8QVBHwDxFQIA8RSBAPEQBIi00Ig+EHSAnBSIlNCESKuygDAAAPV8APKUQkEA8pBCRIx0QkIAAAAABMiffo3/gRAIkEJEyJdCQISMdEJCgAAAAAi0sgO0skD4N2CQAASInlSItDGItLIEiNDElIweEEDxBFAA8QTRAPEFUgDxFUCCAPEUwIEA8RBAiDQyABxoMoAwAAAEGLRhyD4H+D+FIPh5kDAABIjQ3onPT/SGMEgUgByP/gSInfTIn26KAJAACEwA+FdgMAAOsTSInfTIn26LtFAACEwA+FYQMAADHtgLsoAwAAAA+FpAMAAOlZAwAASInfTIn26GRNAACEwHTd6TkDAABIid9MifboAGMAAITAdMnpJQMAAEiJ30yJ9uicagAAhMB0tekRAwAASInfTIn26KhsAACEwHSh6f0CAABIid9MifboJAsAAITAdI3p6QIAAEiJ30yJ9ugQDQAAhMAPhHX////p0QIAAEiJ30yJ9uh4EgAAhMAPhF3////puQIAAEiJ30yJ9uhAFQAAhMAPhEX////poQIAAEiJ30yJ9uhIFgAAhMAPhC3////piQIAAEiJ30yJ9ujAGAAAhMAPhBX////pcQIAAEiJ30yJ9ujIGgAAhMAPhP3+///pWQIAAEiJ30yJ9uiQIwAAhMAPhOX+///pQQIAAEiJ30yJ9uhoJAAAhMAPhM3+///pKQIAAEiJ30yJ9uiQJgAAhMAPhLX+///pEQIAAEiJ30yJ9ugINgAAhMAPhJ3+///p+QEAAEiJ30yJ9ujwNwAAhMAPhIX+///p4QEAAEiJ30yJ9uioOQAAhMAPhG3+///pyQEAAEiJ30yJ9uiQOgAAhMAPhFX+///psQEAAEiJ30yJ9ui4OwAAhMAPhD3+///pmQEAAEiJ30yJ9uhgQAAAhMAPhCX+///pgQEAAEiJ30yJ9ujYRAAAhMAPhA3+///paQEAAEiJ30yJ9ugASAAAhMAPhPX9///pUQEAAEiJ30yJ9uj4SAAAhMAPhN39///pOQEAAEiJ30yJ9ugASgAAhMAPhMX9///pIQEAAEiJ30yJ9uhoTgAAhMAPhK39///pCQEAAEiJ30yJ9ugAUAAAhMAPhJX9///p8QAAAEiJ30yJ9ugIUQAAhMAPhH39///p2QAAAEiJ30yJ9uhgUwAAhMAPhGX9///pwQAAAEiJ30yJ9uh4WAAAhMAPhE39///pqQAAAEiJ30yJ9uhwWwAAhMAPhDX9///pkQAAAEiJ30yJ9ugYXQAAhMAPhB39///rfEiJ30yJ9ugzXwAAhMAPhAj9///rZ0iJ30yJ9uieYAAAhMAPhPP8///rUkiJ30yJ9ugZZQAAhMAPhN78///rPUiJ30yJ9ujkagAAhMAPhMn8///rKEiJ30yJ9ujPawAAhMAPhLT8///rE0iJ30yJ9ujqbAAAhMAPhJ/8//9AtQGAuygDAAAAdUZBi04ciciD4H+NUL+D+gJyIYPhfoP5JA+FvgAAAEyJ9+iR9BEAg8D+g/gCdxnp7wAAAEyJ9+iM9BEAg8D+g/gDD4LbAAAAxoMoAwAAAUyJNCSLSxCFyXRtSIsTRInwwegERIn2we4JMcaDwf8hzkiJ90jB5wRIjQQ6SIs8Okw593RTQbgBAAAARTHJSIH/APD//w+EMgUAAEiB9wDg//9MCc9MD0TIRAHGQYPAASHOSIn3SMHnBEiNBDpIizw6TDn3dBLrxjHASIniSInfSInG6LF4AQCASAgE602DwMyD+AV3PkyJ9+j78xEASIXAdBCLAIPgBoP4Ag+FSP///+shTIn36J7zEQBIhcB0FItAENHog+ADg8D/g/gDD4Ml////RIi7KAMAAItDIIPA/4lDIHQUSItLGInASI0EQEjB4ARIg0QB+AFkSIsEJSgAAABIO0QkOA+FqAQAAInoSIPEQFtBXEFeQV9dw0iJ30yJ9uixBQAAhMAPhBb7///pcv7//0iJ30yJ9ug5BwAAhMAPhP76///pWv7//0iJ30yJ9uiRCQAAhMAPhOb6///pQv7//0iJ30yJ9uh5CgAAhMAPhM76///pKv7//0iJ30yJ9uhhCwAAhMAPhLb6///pEv7//0iJ30yJ9uhpDAAAhMAPhJ76///p+v3//0iJ30yJ9uhxDwAAhMAPhIb6///p4v3//0iJ30yJ9uiJEgAAhMAPhG76///pyv3//0iJ30yJ9ugRFQAAhMAPhFb6///psv3//0iJ30yJ9ugJFwAAhMAPhD76///pmv3//0iJ30yJ9uiBFwAAhMAPhCb6///pgv3//0iJ30yJ9uh5GAAAhMAPhA76///pav3//0iJ30yJ9uihGQAAhMAPhPb5///pUv3//0iJ30yJ9uiJGgAAhMAPhN75///pOv3//0iJ30yJ9uhxGwAAhMAPhMb5///pIv3//0iJ30yJ9uhZHQAAhMAPhK75///pCv3//0iJ30yJ9ujhHwAAhMAPhJb5///p8vz//0iJ30yJ9uj5IgAAhMAPhH75///p2vz//0iJ30yJ9uixJgAAhMAPhGb5///pwvz//0iJ30yJ9ui5KQAAhMAPhE75///pqvz//0iJ30yJ9ugxKwAAhMAPhDb5///pkvz//0iJ30yJ9ugpLgAAhMAPhB75///pevz//0iJ30yJ9ujxNwAAhMAPhAb5///pYvz//0iJ30yJ9ujpOQAAhMAPhO74///pSvz//0iJ30yJ9uhBPAAAhMAPhNb4///pMvz//0iJ30yJ9uhZPQAAhMAPhL74///pGvz//0iJ30yJ9uiRQAAAhMAPhKb4///pAvz//0iJ30yJ9ujZSQAAhMAPhI74///p6vv//0iJ30yJ9uhxSwAAhMAPhHb4///p0vv//0iJ30yJ9ugJTQAAhMAPhF74///puvv//0iJ30yJ9uiBTwAAhMAPhEb4///povv//0iJ30yJ9ujZUAAAhMAPhC74///pivv//0iJ30yJ9ugBUgAAhMAPhBb4///pcvv//0iJ30yJ9ujZVAAAhMAPhP73///pWvv//0iJ30yJ9ujhWwAAhMAPhOb3///pQvv//0iJ30yJ9uhZYQAAhMAPhM73///pKvv//0iJ30yJ9uixQAAAhMAPhLb3///pEvv//0iJ30yJ9uh5RgAAhMAPhJ73///p+vr//0iJ30yJ9uixRwAAhMAPhIb3///p4vr//0iJ30yJ9uhJSQAAhMAPhG73///pyvr//0iJ30yJ9uhxWAAAhMAPhFb3///psvr//0iJ30yJ9uhJXAAAhMAPhD73///pmvr//0iJ30yJ9ujBXQAAhMAPhCb3///pgvr//0iJ30yJ9ugJYwAAhMAPhA73///pavr//0yNYxhIjVEBSYsEJEiNDElIweEESAHBSInlSDnpD5fBSDnodwSEyXUvSY10JBC5MAAAAEyJ5+gx7xEA6U32//9NhclJD0XB6fH6//9IhfZID0Xu6Zj1//9IieVIKcVJjXQkELkwAAAATInn6PzuEQBJAywk6RT2///oLuYRAGYuDx+EAAAAAAAPH0AAVUFXQVZTUEmJ9kmJ/0iJ9+jb7hEAhMB0dkyJ9+jf7hEASIXAdGlIicfo4u4RAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7uhl9P//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36H/uEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+hj7hEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6BRjAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVkFUU0mJ9kmJ/0iLVmBIhdJ0E0iLMkiDwghMif/oOiYBAITAdFhJiwZMiff/UEBMif9IicZMifron2cAAITAdD1Bi15wSIXbdEFNi2ZoSMHjBDHt6w9mDx9EAABIg8UQSDnrdCZJi3QsCEiF9nTtTIn/TIn66GJnAACEwHXeMe2J6FtBXEFeQV9dw0C1AUH2Rh0BdOtMiffob+0RAEiLGEH2Rh0BdQpFMfZMOfN1GuvPTIn36FPtEQBEi3AIScHmA0wDMEw583S3SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oBGIBAInFhMB0kkiNQwhMOfNIicN14uuEVUFXQVZTUEmJ9kmJ/0iJ9+gL7REATIn/SInGTIn66L1mAACEwHQmQLUBQfZGHQF0HkyJ9+jX7BEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMifforOwRAESLcAhJweYDTAMwTDnzdNtIg8MIDx+EAAAAAABIi3P4TIn/6GRhAQCJxYTAdL1IjUMITDnzSInDdeLrr1VBV0FWU1BJifZJif9Ii3Yo6Orx//+EwA+EvQAAAEmLbjBIhe10NotdCEiF23QuSIPFEGYuDx+EAAAAAAAPHwBMif9Iie7o9UIBAITAD4SIAAAASIPFIEiDw/9140yJ9+jb6xEAhMB0dkyJ9+jf6xEASIXAdGlIicfo4usRAEiFwHRcSInF6yEPH4QAAAAAAEyJ/0iJ7uhl8f//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36H/rEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+hj6xEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6BRgAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/SIn36MvqEQCEwHR2TIn36M/qEQBIhcB0aUiJx+jS6hEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6FXw//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffob+oRAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36FPqEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oBF8BAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9IhfZ0bUmNfijo1ekRAEiFwHRfSInF6yhmLg8fhAAAAAAAkEyJ/0iJ7uhV7///hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36G/pEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+hT6REARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6AReAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIX2dG1JjX4o6NXoEQBIhcB0X0iJxesoZi4PH4QAAAAAAJBMif9Iie7oVe7//4TAD4StAAAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQF0aUyJ9+hv6BEASIsYQfZGHQF1CkUx9kw583Ua601MiffoU+gRAESLcAhJweYDTAMwTDnzdDVIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+gEXQEAicWEwHQQSI1DCEw580iJw3Xi6wIx7YnoSIPECFtBXkFfXcOQVUFXQVZTUEmJ9kmJ/0iLdihIifrot2EAAITAdH5Miffoq+cRAITAdHZMiffor+cRAEiFwHRpSInH6LLnEQBIhcB0XEiJxeshDx+EAAAAAABMif9Iie7oNe3//4TAdDxIi20ISIPl+HQ2i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7etvQLUBQfZGHQF0ZUyJ9+hP5xEASIsYQfZGHQF1CkUx9kw583Ua60lMiffoM+cRAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+jkWwEAicWEwHQMSI1DCEw580iJw3XiiehIg8QIW0FeQV9dww8fRAAAQVdBVkFUU1BJifZJif9Ii0YoSInCSIPi+KgEdCBIhdJ0G0iLMkiDwghMif/o/x4BAITAdSRFMeTpAgEAAEUx5KgESQ9F1EyJ/0iJ1ugf7P//hMAPhOYAAABMiffoT+YRAITAdHZMiffoU+YRAEiFwHRpSInH6FbmEQBIhcB0XEiJw+slZi4PH4QAAAAAAGaQTIn/SIne6NXr//+EwHSWSItbCEiD4/h0MotDHIPgf41I/4P5AnLog8Ddg/gCd9FIi4OAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEQbQBQfZGHQF0WkyJ9+jz5REASIsYQfZGHQF1CkUx9kw583Ua6z5Miffo1+URAESLcAhJweYDTAMwTDnzdCZIg8MIDx8ASItz+EyJ/+iUWgEAQYnEhMB0DEiNQwhMOfNIicN14USJ4EiDxAhbQVxBXkFfw2aQVUFXQVZBVUFUU1BIifVJif9Ii0YwSInCSIPi+KgEdCBIhdJ0G0iLMkiDwghMif/orB0BAITAdSRFMeTpbwEAAEUx5KgESQ9F1EyJ/0iJ1ujM6v//hMAPhFMBAACLRSRIiQQkSIXAdGdFMe3rEA8fAEmDxQFMOywkTInldFJJiexIi0UoSosc6ItrDIHl////H0jB5QNIhe101kiDwxBFMfZmLg8fhAAAAAAADx9EAABKizQzTIn/6GTq//+EwA+EdP///0mDxghMOfV14+uhSInv6InkEQCEwHR0SInv6I3kEQBIhcB0Z0iJx+iQ5BEASIXAdFpIicPrI2YPH0QAAEyJ/0iJ3ugV6v//hMAPhCX///9Ii1sISIPj+HQyi0Mcg+B/jUj/g/kCcuiDwN2D+AJ3zUiLg4AAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RBtAH2RR0BdFdIie/oMOQRAEiLGPZFHQF1BUUx9usTSInv6BrkEQBEi3AIScHmA0wDMEw583QpSIPDCGYPH0QAAEiLc/hMif/o1FgBAEGJxITAdAxIjUMITDnzSInDdeFEieBIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx9EAABVQVdBVlNQSYn2SYn/SIn36HvjEQCEwHR2TIn36H/jEQBIhcB0aUiJx+iC4xEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6AXp//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffoH+MRAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36APjEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/otFcBAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9Ii3YoSIn66GdcAACEwHR+TIn36FviEQCEwHR2TIn36F/iEQBIhcB0aUiJx+hi4hEASIXAdFxIicXrIQ8fhAAAAAAATIn/SInu6OXn//+EwHQ8SIttCEiD5fh0NotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe3rb0C1AUH2Rh0BdGVMiffo/+ERAEiLGEH2Rh0BdQpFMfZMOfN1GutJTIn36OPhEQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/olFYBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWU1BJifZJif9IhfZ0bUmNfijoZeERAEiFwHRfSInF6yhmLg8fhAAAAAAAkEyJ/0iJ7ujl5v//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36P/gEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+jj4BEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6JRVAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNIg+w4SYn3SYn+ZEiLBCUoAAAASIlEJDBIi3ZASYtXSOgFFwEAhMAPhMgAAABJi0coQYtPGEmLV1BIiUQkGIlMJCBIiVQkKEiLRCQoSIlEJBAPEEQkGA8RBCRMiffoaBcBAITAD4SLAAAATIn/6OjfEQCEwA+EmgAAAEyJ/+jo3xEASIXAD4SJAAAASInH6OffEQBIhcB0fEiJxesmZi4PH4QAAAAAAA8fAEyJ90iJ7uhl5f//hMB0PEiLbQhIg+X4dFGLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHtZEiLBCUoAAAASDtEJDB1donoSIPEOFtBXkFfXcNAtQFB9kcdAXTZTIn/6GTfEQBIixhB9kcdAXUKRTH/TDn7dRrrvUyJ/+hI3xEARIt4CEnB5wNMAzhMOft0pUiDwwgPH0AASItz+EyJ9+gEVAEAicWEwHSLSI1DCEw5+0iJw3Xi6Xr////oCNYRAA8fhAAAAAAAVUFXQVZTUEmJ9kmJ/0iJ9+i73hEAhMB0dkyJ9+i/3hEASIXAdGlIicfowt4RAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7uhF5P//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36F/eEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+hD3hEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6PRSAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIn36KvdEQCEwHR2TIn36K/dEQBIhcB0aUiJx+iy3REASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6DXj//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffoT90RAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36DPdEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/o5FEBAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9IhfZ0bUmNfjDotdwRAEiFwHRfSInF6yhmLg8fhAAAAAAAkEyJ/0iJ7ug14v//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36E/cEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+gz3BEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6ORQAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn3SYn+SIt2SEmLV1DoZhIBAITAdCZAtQFB9kcdAXQeTIn/6LDbEQBIixhB9kcdAXUZRTH/TDn7dSnrAjHtiehIg8QIW0FeQV9dw0yJ/+iF2xEARIt4CEnB5wNMAzhMOft020iDwwiQSItz+EyJ9+hEUAEAicWEwHTESI1DCEw5+0iJw3Xi67ZVQVdBVlNQSYn2SYn/SIn36AvbEQCEwHR2TIn36A/bEQBIhcB0aUiJx+gS2xEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6JXg//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffor9oRAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36JPaEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oRE8BAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWQVRTSYn2SYn/SIteYEiF23Q7RItjCEnB5ANNheR0LkiDwxAx7WYPH0QAAEiLNCtMif/oVCIAAITAD4SdAAAASIPFCEk57HXjTYX2dGlJjX4w6NXZEQBIhcB0W0iJxeskZi4PH4QAAAAAAJBMif9Iie7oVd///4TAdGJIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368RAtQFB9kYdAXRpTIn36HPZEQBIixhB9kYdAXUORTH2TDnzdR7rTTHt60lMiffoU9kRAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+gETgEAicWEwHQMSI1DCEw580iJw3XiiehbQVxBXkFfXcMPH4AAAAAAVUFXQVZTUEmJ9kmJ/0iF9nRtSY1+MOjV2BEASIXAdF9IicXrKGYuDx+EAAAAAACQTIn/SInu6FXe//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffob9gRAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36FPYEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oBE0BAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9IhfZ0bUmNfjDo1dcRAEiFwHRfSInF6yhmLg8fhAAAAAAAkEyJ/0iJ7uhV3f//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36G/XEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+hT1xEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6ARMAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVkFUU0mJ9kmJ/EiLXnBIhdt0NkSLewhJwecDTYX/dClIg8MQMe1mDx9EAABIizQrTInn6BQfAACEwA+EbQEAAEiDxQhJOe9140mLRnhIhcB0D0iD+AgPg40AAADpwgAAAE2LfmBJi0dYqAF1TqgCdG5JjV9YSIPg/EiLqAA+AABIhe10LEgFcAcAAL4YAAAASInHugMAAADof14BAEiJKMdACAAAAABMiXgQSIPIBOsDTIn4SIPIAUiJA6gEdCBIg+D4dBpIiziLTww5SAh0D4lICEiLB0yJ/v+QgAAAAEmLRnhIg/gIcjpIg+D49kBIAXQQTIn36CHWEQBJi0Z4SIPg+EiLUAhIhdJ0F0iLMkiDwghMiefoMQ4BAITAD4SKAAAASY1+MOjA1REASIXAdFZIicXrH2YPH0QAAEyJ50iJ7uhF2///hMB0YkiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxEC1AUH2Rh0BdB5MiffoY9URAEiLGEH2Rh0BdRdFMfZMOfN1J+sCMe2J6FtBXEFeQV9dw0yJ9+g61REARItwCEnB5gNMAzBMOfN03UiDwwhmDx9EAABIi3P4TInn6PRJAQCJxYTAdMFIjUMITDnzSInDdeLrs1VBV0FWU1BJifZJif9IhfZ0bUmNfjDo1dQRAEiFwHRfSInF6yhmLg8fhAAAAAAAkEyJ/0iJ7uhV2v//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36G/UEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+hT1BEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6ARJAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVkFUU0mJ9kmJ/0iLVlhIhdJ0E0iLMkiDwghMif/oKgwBAITAdH1Bi15oSIXbdCZNi2ZgSMHjAzHtDx8ASYs0LEyJ/+hE2f//hMB0V0iDxQhIOet150mLBkyJ9/9QSITAdBtJiwZMiff/UEBMif9IicZMifroU00AAITAdCZAtQFB9kYdAXQeTIn36G3TEQBIixhB9kYdAXUXRTH2TDnzdSfrAjHtiehbQVxBXkFfXcNMiffoRNMRAESLcAhJweYDTAMwTDnzdN1Ig8MISItz+EyJ/+gESAEAicWEwHTHSI1DCEw580iJw3Xi67lVQVdBVlNQSYn2SYn/SItWQEiF0nQ5SIsySIPCCEyJ/+g7CwEAhMB0NkC1AUH2Rh0BdC5Miffo1dIRAEiLGEH2Rh0BdSlFMfZMOfN1OesSSYt2OEyJ/+hlHgEAhMB1yjHtiehIg8QIW0FeQV9dw0yJ9+ia0hEARItwCEnB5gNMAzBMOfN020iDwwhmDx9EAABIi3P4TIn/6FRHAQCJxYTAdL9IjUMITDnzSInDdeLrsVVBV0FWQVVBVFNQSYn2SYn/TItuOE2F7XRvTY1lEEGLRQyJw4Hj////H0jB4wNIhdt0LjHtZi4PH4QAAAAAAJBJizQsTIn/6KTX//+EwA+E3QAAAEiDxQhIOet140GLRQypAAAAQHQhJf///x9JizTESIX2dBNMif9Mifror0sAAITAD4SoAAAATIn36J/REQCEwHR2TIn36KPREQBIhcB0aUiJx+im0REASIXAdFxIicXrJWYuDx+EAAAAAABmkEyJ/0iJ7ugl1///hMB0YkiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxEC1AUH2Rh0BdGlMiffoQ9ERAEiLGEH2Rh0BdQ5FMfZMOfN1HutNMe3rSUyJ9+gj0REARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6NRFAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQVxBXUFeQV9dw5BVQVdBVkFVQVRTUEmJ9kmJ/0yLbjhNhe10b02NZRBBi0UMicOB4////x9IweMDSIXbdC4x7WYuDx+EAAAAAACQSYs0LEyJ/+gU1v//hMAPhMcAAABIg8UISDnrdeNBi0UMqQAAAEB0ISX///8fSYs0xEiF9nQTTIn/TIn66B9KAACEwA+EkgAAAEmLdkBMif9MifroCEoAAITAdH9Miffo/M8RAITAdHdMiffoANARAEiFwHRqSInH6APQEQBIhcB0XUiJxesiZg8fhAAAAAAATIn/SInu6IXV//+EwHQ8SIttCEiD5fh0NotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe3rb0C1AUH2Rh0BdGVMiffon88RAEiLGEH2Rh0BdQpFMfZMOfN1GutJTIn36IPPEQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oNEQBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXEFdQV5BX13DkFVBV0FWQVVBVFNIg+w4SYn2SYn8ZEiLBCUoAAAASIlEJDBMi244TYXtdG5NjX0QQYtFDInDgeP///8fSMHjA0iF23QtMe1mLg8fhAAAAAAASYs0L0yJ5+hk1P//hMAPhO4CAABIg8UISDnrdeNBi0UMqQAAAEB0ISX///8fSYs0x0iF9nQTTInnTIni6G9IAACEwA+EuQIAAEmLdjBMiefoG9T//4TAD4SlAgAASYsGTIn3/1AgTDnwD4S0AAAATIn36DnOEQCEwHR0TIn36D3OEQBIhcB0Z0iJx+hAzhEASIXAdFpIicPrI2YPH0QAAEyJ50iJ3ujF0///hMAPhE8CAABIi1sISIPj+HQyi0Mcg+B/jUj/g/kCcuiDwN2D+AJ3zUiLg4AAAABIhcB0wQ+2QArB4BCpAAAIAHSz68SzAUH2Rh0BD4QIAgAATIn36NzNEQBIiyhB9kYdAQ+FEwIAAEUx9kw59Q+FHwIAAOnhAQAATIn36OXNEQBIi1gQTIn36NnNEQCLSBhIweEDSANIEEiJTCQISDnLD4Qf////TI18JBjrHWYPH4QAAAAAAEiLXCQQSIPDCEg7XCQID4T7/v//SIsDTItoaEmLRWCoAUiJXCQQdViJwUiD4Pz2wQJ1BUiJw+t6SY1tYEiLmAA+AABIhdt0LEgFcAcAAL4YAAAASInHugMAAADoQFUBAEiJGMdACAAAAABMiWgQSIPIBOsDTInoSIPIAUiJRQCQSInDSIPj+KgEdCdIhdt0IkiLO4tHDDlDCHQPiUMISIsHTInu/5CAAAAASItbEOsCMdtIid/oBs0RAITAdHJIi0NgqAN16kiDw2BMjWugqAF1ronBSIPg/PbBAnUTSInD69BmLg8fhAAAAAAADx9AAEyJ9UyLsAA+AABNhfYPhI0AAABIBXAHAAC+GAAAAEiJx7oDAAAA6IVUAQBMiTDHQAgAAAAATIloEEiDyATrZJBIx0QkKAAAAABIiVwkGEiJXCQg6yFmLg8fhAAAAAAAkEyJ/+jYVQEASItcJBhIhdsPhJr+//9Iid/oUswRAITAdd72g7QAAAAGddVMiedIid7oitH//4TAdcbrFg8fQABMiehIg8gBSIkDSYnu6d7+//8x22RIiwQlKAAAAEg7RCQwdVyJ2EiDxDhbQVxBXUFeQV9dw0yJ9+izyxEARItwCEnB5gNMAzBMOfV0x0iDxQhmLg8fhAAAAAAADx9EAABIi3X4TInn6GRAAQCJw4TAdKJIjUUITDn1SInFdeLrlOhrwhEAZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIPsKEmJ9kmJ/GRIiwQlKAAAAEiJRCQgTItuOE2F7XRuTY19EEGLRQyJw4Hj////H0jB4wNIhdt0LTHtZi4PH4QAAAAAAEmLNC9MiefolND//4TAD4RIAgAASIPFCEg563XjQYtFDKkAAABAdCEl////H0mLNMdIhfZ0E0yJ50yJ4uifRAAAhMAPhBMCAABJi3YwTInn6EvQ//+EwA+E/wEAAEmLBkyJ9/9QIEw58A+EtQAAAEyJ9+hpyhEAhMB0dEyJ9+htyhEASIXAdGdIicfocMoRAEiFwHRaSInF6yNmDx9EAABMiedIie7o9c///4TAD4SpAQAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQEPhGEBAABMiffoC8oRAEiLGEH2Rh0BD4VsAQAARTH2TDnzD4V4AQAA6ToBAABMiffoNMoRAEyLaBBMiffoKMoRAItIGEjB4QNIA0gQSIkMJEk5zQ+EH////0yNfCQI6w5Jg8UITDssJA+ECv///0mLRQBIi0AISIPg+EiLWHBIi0NoqAF1WonBSIPg/PbBAnUFSInF63lIjUtoSIuoAD4AAEiF7XQwSAVwBwAAvhgAAABIice6AwAAAOh7UQEASI1LaEiJKMdACAAAAABIiVgQSIPIBOsDSInYSIPIAUiJAUiJxUiD5fioBHQkSIXtdB9Ii30Ai0cMOUUIdA+JRQhIiwdIid7/kIAAAABIi20QSMdEJBgAAAAASIlsJAhIiWwkEOsqDx9EAABMiedIie7odc7//4TAdC1Mif/oWVMBAEiLbCQISIXtD4QS////SInv6CPJEQCNSP2D+QJyy4P4AXbG69Mx7WRIiwQlKAAAAEg7RCQgdVKJ6EiDxChbQVxBXUFeQV9dw0yJ9+iJyBEARItwCEnB5gNMAzBMOfN0x0iDwwgPH0QAAEiLc/hMiefoRD0BAInFhMB0rEiNQwhMOfNIicN14uue6Eu/EQBmLg8fhAAAAAAAkFVBV0FWQVVBVFNQSYn2SYn/SIt2MOi2zf//hMAPhOkAAABNi244TYXtdGpNjWUQQYtFDInDgeP///8fSMHjA0iF23QtMe1mLg8fhAAAAAAASYs0LEyJ/+h0zf//hMAPhKcAAABIg8UISDnrdeNBi0UMqQAAAEB0HSX///8fSYs0xEiF9nQPTIn/TIn66H9BAACEwHR2TIn36HPHEQCEwHRuTIn36HfHEQBIhcB0YUiJx+h6xxEASIXAdFRIicXrGUyJ/0iJ7ugFzf//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36B/HEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+gDxxEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6LQ7AQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQVxBXUFeQV9dw5BVQVdBVkFVQVRTSIPsKEmJ9kmJ/GRIiwQlKAAAAEiJRCQgTItuOE2F7XRuTY19EEGLRQyJw4Hj////H0jB4wNIhdt0LTHtZi4PH4QAAAAAAEmLNC9Miefo5Mv//4TAD4Q6AgAASIPFCEg563XjQYtFDKkAAABAdCEl////H0mLNMdIhfZ0E0yJ50yJ4ujvPwAAhMAPhAUCAABJi3YwTInn6JvL//+EwA+E8QEAAEmLBkyJ9/9QIEw58A+EtQAAAEyJ9+i5xREAhMB0dEyJ9+i9xREASIXAdGdIicfowMURAEiFwHRaSInF6yNmDx9EAABMiedIie7oRcv//4TAD4SbAQAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQEPhFMBAABMiffoW8URAEiLGEH2Rh0BD4VeAQAARTH2TDnzD4VqAQAA6SwBAABMiffopMURAEyLaBBMiffomMURAItIGEjB4QNIA0gQSIkMJEk5zQ+EH////0yNfCQI6xdmDx+EAAAAAABJg8UITDssJA+EAf///0mLRQBIi1hQSItDSKgBdVqJwUiD4Pz2wQJ1BUiJxet5SI1LSEiLqAA+AABIhe10MEgFcAcAAL4YAAAASInHugMAAADoykwBAEiNS0hIiSjHQAgAAAAASIlYEEiDyATrA0iJ2EiDyAFIiQFIicVIg+X4qAR0JEiF7XQfSIt9AItHDDlFCHQPiUUISIsHSIne/5CAAAAASIttEEjHRCQYAAAAAEiJbCQISIlsJBDrGg8fQABMif/oiE8BAEiLbCQISIXtD4Qq////9oWkAQAABnXhTInnSInu6KbJ//+EwHXSMe1kSIsEJSgAAABIO0QkIHVQiehIg8QoW0FcQV1BXkFfXcNMiffo58MRAESLcAhJweYDTAMwTDnzdMdIg8MIDx8ASItz+EyJ5+ikOAEAicWEwHSuSI1DCEw580iJw3Xi66Doq7oRAGYuDx+EAAAAAACQVUFXQVZBVUFUU1BJifZJif9Ii3Yw6BbJ//+EwA+EeQEAAEmLRkhIg/gIcnSD4AaD+AJ0bIoF3q0SAITAD4TOAQAASYtGSEiD+AhyPUmNTkiJwoPiBkiD4Pgx9oP6AkgPRPBIjUZISIX2SA9EwUiLMInwg+AGSIPm+IP4BHUSSIX2dA1Ii3YI6wdIjTVorRIATIn/6NgZAQCEwA+E+wAAAE2LbjhNhe10cE2NZRBBi0UMicOB4////x9IweMDSIXbdC8x7WYuDx+EAAAAAABmkEmLNCxMif/oVMj//4TAD4S3AAAASIPFCEg563XjQYtFDKkAAABAdCEl////H0mLNMRIhfZ0E0yJ/0yJ+uhfPAAAhMAPhIIAAABMiffoT8IRAITAD4SFAAAATIn36E/CEQBIhcB0eEiJx+hSwhEASIXAdGtIicXrIQ8fhAAAAAAATIn/SInu6NXH//+EwHQ8SIttCEiD5fh0RYtFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe2J6EiDxAhbQVxBXUFeQV9dw0C1AUH2Rh0BdOVMiffo4MERAEiLGEH2Rh0BdQpFMfZMOfN1GuvJTIn36MTBEQBEi3AIScHmA0wDMEw583SxSIPDCEiLc/hMif/ohDYBAInFhMB0m0iNQwhMOfNIicN14uuNSI09AawSAOi0vhEAhcAPhB7+///HBcqrEgAAAAAASMcFx6sSAAAAAABIxwXMqxIAAAAAAEiNPc2rEgDokL4RAOnt/f//Zi4PH4QAAAAAAJBVQVdBVkFVQVRTUEiJ80mJ/EUx/0iJNCTrDmYPH0QAAEmDxwFIixwkSItDeEiJwboAAAAASIPhBHQKSInCSIPi+ItSEInSSTnXD4N8AAAASIPg+EiLQBhKiyz4SIXtdMBMjW0Qi0UMicOB4////x9IweMDSIXbdCVFMfYPH0QAAEuLdDUATInn6EPG//+EwHSPSYPGCEw583Xmi0UMqQAAAEAPhHj///8l////H0mLdMUASIX2D4Rl////TInnTIni6Eo6AADpVf///0iLczBIhfZ0HUiD5vBMiefoEAwBAITAD4STAAAASItDeInBg+EESIXJdA1Ig+D4SIswSItQCOsEMfYx0kyJ5+jR9gAAhMB0aEiNe0DoFMARAEiFwHRvSInF6yNmLg8fhAAAAAAATInnSInu6JXF//+EwHQ8SIttCEiD5fh0R4tFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vERTH/RIn4SIPECFtBXEFdQV5BX13DQbcB9kMdAXTlSInf6J+/EQBIiyj2Qx0BdQkx20g53XUZ68tIid/ohb8RAItYCEjB4wNIAxhIOd10tEiDxQhmkEiLdfhMiefoRDQBAEGJx4TAdJtIjUUISDndSInFdeHrjWYuDx+EAAAAAAAPH0QAAFVBV0FWQVVBVFNQSInzSYn8SItGeDH2ugAAAACoBA+EsAAAADHtSIkcJOsYDx9AAEiLHCRIi0N4SIPFAagED4SDAAAASIPg+ItIEEg5zXN9SItAGEiLHOhIhdt000yNaxCLQwxBicdBgef///8fScHnA02F/3QmRTH2Zg8fRAAAS4t0NQBMiefoQ8T//4TAdJ9Jg8YITTn3deaLQwypAAAAQHSMJf///x9Ji3TFAEiF9g+Eef///0yJ50yJ4uhOOAAA6Wn///8x0jH26wdIizBIi1AITInn6AT1AACEwHRrSI17QOhHvhEASIXAdGJIicXrJmYuDx+EAAAAAAAPHwBMiedIie7oxcP//4TAdDxIi20ISIPl+HQ3i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368RFMf/rX0G3AfZDHQF0VkiJ3+jfvREASIso9kMdAXUJMdtIOd11Ges8SInf6MW9EQCLWAhIweMDSAMYSDnddCVIg8UIZpBIi3X4TInn6IQyAQBBiceEwHQMSI1FCEg53UiJxXXhRIn4SIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAA8fRAAAVUFXQVZTUEmJ9kmJ/+gOOwEAhMB0ZU2F9nRkSY1+QOg8vREASIXAdFZIicXrG2aQTIn/SInu6MXC//+EwHQ8SIttCEiD5fh0NotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe3rb0C1AUH2Rh0BdGVMiffo37wRAEiLGEH2Rh0BdQpFMfZMOfN1GutJTIn36MO8EQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/odDEBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWU1BJifZJif9Ii4agAAAASIXAdB9IixBIhdJ0F0iLMkiDwghMif/okPQAAITAD4STAAAASYtGeDH2ugAAAACoBHQLSIPg+EiLMEiLUAhMif/otvIAAITAdG1JjX5A6Pm7EQBIhcB0bkiJxesoZi4PH4QAAAAAAA8fRAAATIn/SInu6HXB//+EwHQ8SIttCEiD5fh0QYtFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe2J6EiDxAhbQV5BX13DQLUBQfZGHQF06UyJ9+iEuxEASIsYQfZGHQF1CkUx9kw583Ua681MiffoaLsRAESLcAhJweYDTAMwTDnzdLVIg8MIDx9AAEiLc/hMif/oJDABAInFhMB0m0iNQwhMOfNIicN14uuNVUFXQVZBVFNJifZJif9Mi6a4AAAATYXkdENBi2wkDIHl////H0jB5QNIhe10L0mDxBAx22YuDx+EAAAAAABmkEmLNBxMif/odMD//4TAD4SnAAAASIPDCEg53XXjSYuuwAAAAItdCEiF23QdSIPFEEyJ/0iJ7uiFEQEAhMB0fEiDxSBIg8P/dedMif9MifboTDgBAITAdGNNhfZ0a0mNfkDoeroRAEiFwHRdSInF6xlMif9Iie7oBcD//4TAdDxIi20ISIPl+HQ/i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7YnoW0FcQV5BX13DQLUBQfZGHQF060yJ9+gWuhEASIsYQfZGHQF1CkUx9kw583Ua689Miffo+rkRAESLcAhJweYDTAMwTDnzdLdIg8MIZg8fRAAASItz+EyJ/+i0LgEAicWEwHSbSI1DCEw580iJw3Xi641VQVdBVlNIg+wYSYn2SYn/SIt2MEiF9nQUSIPm8EyJ/+hLBQEAhMAPhJEBAABJjUZQMdtB9kY8BEgPRdh0IEiLc0hIhfYPhAYBAABMif9MifroOjMAAITAD4RgAQAASYtWSEiD+ghyM4nQg+AGg/gCdClIg+L4g/gEdQlIhdJ0BEiLUghIizJIg8IITIn/6H3xAACEwA+EIwEAAEyJ9+jtuBEAhMB0eEyJ9+jxuBEASIXAdGtIicfo9LgRAEiFwHReSInF6ydmLg8fhAAAAAAATIn/SInu6HW+//+EwA+E2wAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BD4STAAAATIn36Iu4EQBIixhB9kYdAQ+FigAAAEUx9kw58w+FlgAAAOtvSIszSItTCEyJ/+gA7wAAhMB0WkiLQyhIiUQkEA8QQxgPEQQkTIn/6IPvAACEwHQ9SItrQEiF7Q+E0P7//4tdCEiF2w+ExP7//0iDxRBmkEyJ/0iJ7ujlDgEAhMB0D0iDxSBIg8P/defpoP7//zHtiehIg8QYW0FeQV9dw0yJ9+jrtxEARItwCEnB5gNMAzBMOfN020iDwwgPH4AAAAAASItz+EyJ/+ikLAEAicWEwHS+SI1DCEw580iJw3Xi67BVQVdBVlNQSYn2SYn/g35gAHQpSYtGUEiJwkiD4vioBHQDSIsSSIsySIPCCEyJ/+jM7wAAhMAPhKUAAABMiffoPLcRAITAdHNMiffoQLcRAEiFwHRmSInH6EO3EQBIhcB0WUiJxesiZg8fhAAAAAAATIn/SInu6MW8//+EwHRiSIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEQLUBQfZGHQF0aUyJ9+jjthEASIsYQfZGHQF1DkUx9kw583Ue600x7etJTIn36MO2EQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/odCsBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWU1BJifZJif9Ii0ZQSInCSIPi+KgEdANIixJIizJIg8IITIn/6JLuAACEwHR5TIn36Aa2EQCEwHRxTIn36Aq2EQBIhcB0ZEiJx+gNthEASIXAdFdIicXrHA8fAEyJ/0iJ7uiVu///hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36K+1EQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+iTtREARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6EQqAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/SItGUEiJwkiD4vioBHQDSIsSSIsySIPCCEyJ/+hi7QAAhMB0eUyJ9+jWtBEAhMB0cUyJ9+jatBEASIXAdGRIicfo3bQRAEiFwHRXSInF6xwPHwBMif9Iie7oZbr//4TAdDxIi20ISIPl+HQ2i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7etvQLUBQfZGHQF0ZUyJ9+h/tBEASIsYQfZGHQF1CkUx9kw583Ua60lMiffoY7QRAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+gUKQEAicWEwHQMSI1DCEw580iJw3XiiehIg8QIW0FeQV9dww8fRAAAVUFXQVZTUEmJ9kmJ/0iLdkhJi1ZQ6JbqAACEwHR9TIn36LqzEQCEwHR1TIn36L6zEQBIhcB0aEiJx+jBsxEASIXAdFtIicXrIA8fgAAAAABMif9Iie7oRbn//4TAdDxIi20ISIPl+HQ2i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7etvQLUBQfZGHQF0ZUyJ9+hfsxEASIsYQfZGHQF1CkUx9kw583Ua60lMiffoQ7MRAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+j0JwEAicWEwHQMSI1DCEw580iJw3XiiehIg8QIW0FeQV9dww8fRAAAVUFXQVZTUEmJ9kmJ/0iJ9+irshEAhMB0dkyJ9+ivshEASIXAdGlIicfosrIRAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7ug1uP//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36E+yEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+gzshEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6OQmAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIt2OEmLVkDoZugAAITAdH1MiffoirERAITAdHVMiffojrERAEiFwHRoSInH6JGxEQBIhcB0W0iJxesgDx+AAAAAAEyJ/0iJ7ugVt///hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36C+xEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+gTsREARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6MQlAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/SIn36HuwEQCEwHR2TIn36H+wEQBIhcB0aUiJx+iCsBEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6AW2//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffoH7ARAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36AOwEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/otCQBAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9Iiffoa68RAITAdHZMiffob68RAEiFwHRpSInH6HKvEQBIhcB0XEiJxeslDx+EAAAAAABMif9Iie7o9bT//4TAD4StAAAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQF0aUyJ9+gPrxEASIsYQfZGHQF1CkUx9kw583Ua601Miffo864RAESLcAhJweYDTAMwTDnzdDVIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+ikIwEAicWEwHQQSI1DCEw580iJw3Xi6wIx7YnoSIPECFtBXkFfXcOQVUFXQVZTUEmJ9kmJ/0iJ9+hbrhEAhMB0dkyJ9+hfrhEASIXAdGlIicfoYq4RAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7ujls///hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36P+tEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+jjrREARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6JQiAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIt2QEiJ+uhHJwAAhMB0fkyJ9+g7rREAhMB0dkyJ9+g/rREASIXAdGlIicfoQq0RAEiFwHRcSInF6yEPH4QAAAAAAEyJ/0iJ7ujFsv//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36N+sEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+jDrBEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6HQhAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6F4rAQCEwA+EwQAAAEH2RkQBSYt2SHUVifCD4AN0NYP4A3QwSIPm/EyJ/+sbSInwSIPg/IPmA3QJg/4DdARIi0AITIn/SInGTIn66OMlAACEwHR6TIn36NerEQCEwA+EeQAAAEyJ9+jXqxEASIXAdGxIicfo2qsRAEiFwHRfSInF6xlMif9Iie7oZbH//4TAdDxIi20ISIPl+HRBi0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7YnoSIPECFtBXkFfXcNAtQFB9kYdAXTpTIn36HSrEQBIixhB9kYdAXUKRTH2TDnzdRrrzUyJ9+hYqxEARItwCEnB5gNMAzBMOfN0tUiDwwgPH0AASItz+EyJ/+gUIAEAicWEwHSbSI1DCEw580iJw3Xi641VQVdBVlNQSYn2SYn/6A4qAQCEwA+EsQAAAEH2RkQBdCxJi0ZISInGSIPm/IPgA3QJg/gDdARIi3YITIn/TIn66KskAACEwA+EfgAAAEyJ9+ibqhEAhMB0dkyJ9+ifqhEASIXAdGlIicfooqoRAEiFwHRcSInF6yEPH4QAAAAAAEyJ/0iJ7uglsP//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36D+qEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+gjqhEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6NQeAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6L4oAQCEwA+EsQAAAEH2RkQBdCxJi0ZISInGSIPm/IPgA3QJg/gDdARIi3YITIn/TIn66FsjAACEwA+EfgAAAEyJ9+hLqREAhMB0dkyJ9+hPqREASIXAdGlIicfoUqkRAEiFwHRcSInF6yEPH4QAAAAAAEyJ/0iJ7ujVrv//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36O+oEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+jTqBEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6IQdAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6K4oAQCEwHQmQLUBQfZGHQF0HkyJ9+hYqBEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffoLagRAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+jkHAEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6B4oAQCEwHQmQLUBQfZGHQF0HkyJ9+jIpxEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffonacRAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+hUHAEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6I4nAQCEwHQmQLUBQfZGHQF0HkyJ9+g4pxEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffoDacRAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+jEGwEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6P4mAQCEwHQmQLUBQfZGHQF0HkyJ9+iophEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffofaYRAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+g0GwEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6G4mAQCEwHQmQLUBQfZGHQF0HkyJ9+gYphEASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffo7aURAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+ikGgEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6N4lAQCEwHQmQLUBQfZGHQF0HkyJ9+iIpREASIsYQfZGHQF1GUUx9kw583Up6wIx7YnoSIPECFtBXkFfXcNMiffoXaURAESLcAhJweYDTAMwTDnzdNtIg8MIZg8fhAAAAAAASItz+EyJ/+gUGgEAicWEwHS8SI1DCEw580iJw3Xi665VQVdBVlNQSYn2SYn/6A4kAQCEwA+EgQAAAEyJ9+jOpBEAhMB0eUyJ9+jSpBEASIXAdGxIicfo1aQRAEiFwHRfSInF6yRmLg8fhAAAAAAAkEyJ/0iJ7uhVqv//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36G+kEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+hTpBEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6AQZAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6O4iAQCEwA+EsQAAAEmLdlBIg/4Eci+J8IPgA4P4AXQlSIPm/IP4AnUJSIX2dARIi3YITIn/TIn66IUdAACEwA+EeAAAAEyJ9+h1oxEAhMB0cEyJ9+h5oxEASIXAdGNIicfofKMRAEiFwHRWSInF6xtmkEyJ/0iJ7ugFqf//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36B+jEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+gDoxEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6LQXAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6J4hAQCEwA+EoQAAAEGLRhyD4H+D+EB0GkyJ9+gCoxEATIn/SInGTIn66EQcAACEwHR7TIn36DiiEQCEwHRzTIn36DyiEQBIhcB0ZkiJx+g/ohEASIXAdFlIicXrHg8fRAAATIn/SInu6MWn//+EwHQ8SIttCEiD5fh0NotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe3rb0C1AUH2Rh0BdGVMiffo36ERAEiLGEH2Rh0BdQpFMfZMOfN1GutJTIn36MOhEQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/odBYBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWQVRTSYn2SYn/6F0gAQCEwA+E4AAAAEGLRhyD4H+D+EB0HkyJ9+jBoREATIn/SInGTIn66AMbAACEwA+EtgAAAEGLXmRIweMDSIXbdCtNjWZoMe0PH4QAAAAAAEmLNCxMif/olKb//4TAD4SHAAAASIPFCEg563XjTIn36LugEQCEwA+EewAAAEyJ9+i7oBEASIXAdG5IicfovqARAEiFwHRhSInF6x0PH0AATIn/SInu6EWm//+EwHQ8SIttCEiD5fh0P4tFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe2J6FtBXEFeQV9dw0C1AUH2Rh0BdOtMiffoVqARAEiLGEH2Rh0BdQpFMfZMOfN1GuvPTIn36DqgEQBEi3AIScHmA0wDMEw583S3SIPDCGYPH0QAAEiLc/hMif/o9BQBAInFhMB0m0iNQwhMOfNIicN14uuNVUFXQVZTUEmJ9kmJ/+juHgEAhMAPhKEAAABBi0Ycg+B/g/hAdBpMiffoUqARAEyJ/0iJxkyJ+uiUGQAAhMB0e0yJ9+iInxEAhMB0c0yJ9+iMnxEASIXAdGZIicfoj58RAEiFwHRZSInF6x4PH0QAAEyJ/0iJ7ugVpf//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36C+fEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+gTnxEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6MQTAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVlNQSYn2SYn/6K4dAQCEwA+EoQAAAEGLRhyD4H+D+EB0GkyJ9+gSnxEATIn/SInGTIn66FQYAACEwHR7TIn36EieEQCEwHRzTIn36EyeEQBIhcB0ZkiJx+hPnhEASIXAdFlIicXrHg8fRAAATIn/SInu6NWj//+EwHQ8SIttCEiD5fh0NotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe3rb0C1AUH2Rh0BdGVMiffo750RAEiLGEH2Rh0BdQpFMfZMOfN1GutJTIn36NOdEQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/ohBIBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWU1BJifZJif/obhwBAITAD4QhAQAAQYtGHIPgf4P4QHQeTIn36NKdEQBMif9IicZMifroFBcAAITAD4T3AAAATIn36MSdEQCEwHQuuAAGAABBI0ZgPQAEAAB1HkyJ9+i4nREATIn/SInGTIn66NoWAACEwA+EvQAAAEyJ9+iKnREAhMB0NbgABgAAQSNGYD0AAgAAdCU9AAQAAHQeTIn36IedEQBMif9IicZMifromRYAAITAD4R8AAAATIn36ImcEQCEwA+EewAAAEyJ9+iJnBEASIXAdG5IicfojJwRAEiFwHRhSInF6xtmkEyJ/0iJ7ugVov//hMB0PEiLbQhIg+X4dEGLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHtiehIg8QIW0FeQV9dw0C1AUH2Rh0BdOlMiffoJJwRAEiLGEH2Rh0BdQpFMfZMOfN1GuvNTIn36AicEQBEi3AIScHmA0wDMEw583S1SIPDCA8fQABIi3P4TIn/6MQQAQCJxYTAdJtIjUMITDnzSInDdeLrjVVBV0FWU1BJifZJif9Ii0Z4SIXAdB9IixBIhdJ0F0iLMkiDwghMif/o89MAAITAD4SmAAAASYtGODH2ugAAAACoBHQLSIPg+EiLMEiLUAhMif/oGdIAAITAD4R8AAAATIn36DmbEQCEwHR0TIn36D2bEQBIhcB0Z0iJx+hAmxEASIXAdFpIicXrH2YPH0QAAEyJ/0iJ7ujFoP//hMB0PEiLbQhIg+X4dDaLRRyD4H+NSP+D+QJy6IPA3YP4AnfRSIuFgAAAAEiFwHTFD7ZACsHgEKkAAAgAdLfrxDHt629AtQFB9kYdAXRlTIn36N+aEQBIixhB9kYdAXUKRTH2TDnzdRrrSUyJ9+jDmhEARItwCEnB5gNMAzBMOfN0MUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6HQPAQCJxYTAdAxIjUMITDnzSInDdeKJ6EiDxAhbQV5BX13DDx9EAABVQVdBVkFUU0mJ9kmJ/0yLpqgBAABNheR0Q0GLbCQMgeX///8fSMHlA0iF7XQvSYPEEDHbZi4PH4QAAAAAAGaQSYs0HEyJ/+i0n///hMAPhPcAAABIg8MISDnddeNJi66wAQAAi10ISIXbdCFIg8UQTIn/SInu6MXwAACEwA+EyAAAAEiDxSBIg8P/deNMif9Mifbo2BgBAITAD4SrAAAAQYtGHIPgf4P4QHQeTIn36DyaEQBMif9IicZMifrofhMAAITAD4SBAAAATIn36G6ZEQCEwA+EfgAAAEyJ9+humREASIXAdHFIicfocZkRAEiFwHRkSInF6yAPH4AAAAAATIn/SInu6PWe//+EwHQ8SIttCEiD5fh0P4tFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe2J6FtBXEFeQV9dw0C1AUH2Rh0BdOtMiffoBpkRAEiLGEH2Rh0BdQVFMfbrE0yJ9+jvmBEARItwCEnB5gNMAzBMOfN0vEiDwwhmLg8fhAAAAAAAkEiLc/hMif/opA0BAInFhMB0m0iNQwhMOfNIicN14uuNVUFXQVZTUEmJ9kmJ/0iLdjhIifroZxIAAITAdH5MiffoW5gRAITAdHZMiffoX5gRAEiFwHRpSInH6GKYEQBIhcB0XEiJxeshDx+EAAAAAABMif9Iie7o5Z3//4TAdDxIi20ISIPl+HQ2i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7etvQLUBQfZGHQF0ZUyJ9+j/lxEASIsYQfZGHQF1CkUx9kw583Ua60lMiffo45cRAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+iUDAEAicWEwHQMSI1DCEw580iJw3XiiehIg8QIW0FeQV9dww8fRAAAVUFXQVZTUEmJ9kmJ/0iJ9+hLlxEAhMB0dkyJ9+hPlxEASIXAdGlIicfoUpcRAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7ujVnP//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36O+WEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+jTlhEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6IQLAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIn36DuWEQCEwHR2TIn36D+WEQBIhcB0aUiJx+hClhEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6MWb//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffo35URAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36MOVEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/odAoBAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkEFXQVZBVUFUU0mJ9kmJ/0yLZjhFiywkScHlA02F7XQpSYPEEDHbZi4PH4QAAAAAAEmLNBxMif/oVO0AAITAdB5Ig8MISTnddedJi3YwTIn/W0FcQV1BXkFf6cLgAAAxwFtBXEFdQV5BX8NmDx9EAABBVlNQSYn2SIn7SIt2WEiJ+ui6DgAAhMB0K0mLdmBIhfZ0D0iJ30iJ2uiiDgAAhMB0E0mLdjBIid9Ig8QIW0Fe6WvgAAAxwEiDxAhbQV7DkFVBV0FWU1BJifZJif9Iiffoa5QRAITAdHZMiffob5QRAEiFwHRpSInH6HKUEQBIhcB0XEiJxeslDx+EAAAAAABMif9Iie7o9Zn//4TAD4StAAAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQF0aUyJ9+gPlBEASIsYQfZGHQF1CkUx9kw583Ua601Miffo85MRAESLcAhJweYDTAMwTDnzdDVIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+ikCAEAicWEwHQQSI1DCEw580iJw3Xi6wIx7YnoSIPECFtBXkFfXcOQVUFXQVZTSIPsOEmJ90mJ/mRIiwQlKAAAAEiJRCQwSIt2QEmLV0joFcoAAITAD4TIAAAASYtHKEGLTxhJi1dQSIlEJBiJTCQgSIlUJChIi0QkKEiJRCQQDxBEJBgPEQQkTIn36HjKAACEwA+EiwAAAEyJ/+j4khEAhMAPhJoAAABMif/o+JIRAEiFwA+EiQAAAEiJx+j3khEASIXAdHxIicXrJmYuDx+EAAAAAAAPHwBMifdIie7odZj//4TAdDxIi20ISIPl+HRRi0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7WRIiwQlKAAAAEg7RCQwdXaJ6EiDxDhbQV5BX13DQLUBQfZHHQF02UyJ/+h0khEASIsYQfZHHQF1CkUx/0w5+3Ua671Mif/oWJIRAESLeAhJwecDTAM4TDn7dKVIg8MIDx9AAEiLc/hMiffoFAcBAInFhMB0i0iNQwhMOftIicN14ul6////6BiJEQAPH4QAAAAAAFVBV0FWQVVBVFNQSYn2SYn/SIt+KOi2khEASInFSYt+KOiqkhEATYtuKEGLTQRMjSTITDnldC1mDx+EAAAAAABIi3UATIn/TIn66JELAACEwA+ExAAAAEiDxQhMOeV14E2LbihBi20ASMHlA0iF7XQtSYPFEDHbZg8fhAAAAAAASYt0HQBMif/oo+kAAITAD4SGAAAASIPDCEg53XXiTIn36DqREQCEwHR1TIn36D6REQBIhcB0aEiJx+hBkREASIXAdFtIicXrIA8fgAAAAABMif9Iie7oxZb//4TAdDxIi20ISIPl+HQ2i0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368Qx7etvQLUBQfZGHQF0ZUyJ9+jfkBEASIsYQfZGHQF1CkUx9kw583Ua60lMiffow5ARAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+h0BQEAicWEwHQMSI1DCEw580iJw3XiiehIg8QIW0FcQV1BXkFfXcOQVUFXQVZBVFNJifZJif9Mi2YoQYssJEjB5QNIhe10LkmDxBAx22YuDx+EAAAAAACQSYs0HEyJ/+hU6AAAhMAPhK0AAABIg8MISDnddeNMiffo648RAITAdHJMiffo748RAEiFwHRlSInH6PKPEQBIhcB0WEiJxeshDx+EAAAAAABMif9Iie7odZX//4TAdGJIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ30UiLhYAAAABIhcB0xQ+2QArB4BCpAAAIAHS368RAtQFB9kYdAXRpTIn36JOPEQBIixhB9kYdAXUORTH2TDnzdR7rTTHt60lMiffoc48RAESLcAhJweYDTAMwTDnzdDFIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+gkBAEAicWEwHQMSI1DCEw580iJw3XiiehbQVxBXkFfXcMPH4AAAAAAVUFXQVZTUEmJ9kmJ/0iLfijoyo8RAEiJxUmLfijovo8RAEmLTiiLSQRIjRzISDnddC5mLg8fhAAAAAAADx9AAEiLdQBMif9MifrooQgAAITAD4SqAAAASIPFCEg53XXgTIn36IiOEQCEwHRvTIn36IyOEQBIhcB0YkiJx+iPjhEASIXAdFVIicXrHg8fRAAATIn/SInu6BWU//+EwHRiSIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEQLUBQfZGHQF0aUyJ9+gzjhEASIsYQfZGHQF1DkUx9kw583Ue600x7etJTIn36BOOEQBEi3AIScHmA0wDMEw583QxSIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/oxAIBAInFhMB0DEiNQwhMOfNIicN14onoSIPECFtBXkFfXcMPH0QAAFVBV0FWU1BJifZJif9Iiffoe40RAITAdHZMiffof40RAEiFwHRpSInH6IKNEQBIhcB0XEiJxeslDx+EAAAAAABMif9Iie7oBZP//4TAD4StAAAASIttCEiD5fh0MotFHIPgf41I/4P5AnLog8Ddg/gCd81Ii4WAAAAASIXAdMEPtkAKweAQqQAACAB0s+vEQLUBQfZGHQF0aUyJ9+gfjREASIsYQfZGHQF1CkUx9kw583Ua601MiffoA40RAESLcAhJweYDTAMwTDnzdDVIg8MIZi4PH4QAAAAAAA8fRAAASItz+EyJ/+i0AQEAicWEwHQQSI1DCEw580iJw3Xi6wIx7YnoSIPECFtBXkFfXcOQVUFXQVZTUEmJ9kmJ/0iJ9+hrjBEAhMB0dkyJ9+hvjBEASIXAdGlIicfocowRAEiFwHRcSInF6yUPH4QAAAAAAEyJ/0iJ7uj1kf//hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36A+MEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+jzixEARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6KQAAQCJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIn36FuLEQCEwHR2TIn36F+LEQBIhcB0aUiJx+hiixEASIXAdFxIicXrJQ8fhAAAAAAATIn/SInu6OWQ//+EwA+ErQAAAEiLbQhIg+X4dDKLRRyD4H+NSP+D+QJy6IPA3YP4AnfNSIuFgAAAAEiFwHTBD7ZACsHgEKkAAAgAdLPrxEC1AUH2Rh0BdGlMiffo/4oRAEiLGEH2Rh0BdQpFMfZMOfN1GutNTIn36OOKEQBEi3AIScHmA0wDMEw583Q1SIPDCGYuDx+EAAAAAAAPH0QAAEiLc/hMif/olP8AAInFhMB0EEiNQwhMOfNIicN14usCMe2J6EiDxAhbQV5BX13DkFVBV0FWU1BJifZJif9IiffoW4oRAEiFwHRlSInH6F6KEQBIhcB0WEiJxeshDx9AAEyJ/0iJ7ujlj///hMAPhK0AAABIi20ISIPl+HQyi0Ucg+B/jUj/g/kCcuiDwN2D+AJ3zUiLhYAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68RAtQFB9kYdAXRpTIn36P+JEQBIixhB9kYdAXUKRTH2TDnzdRrrTUyJ9+jjiREARItwCEnB5gNMAzBMOfN0NUiDwwhmLg8fhAAAAAAADx9EAABIi3P4TIn/6JT+AACJxYTAdBBIjUMITDnzSInDdeLrAjHtiehIg8QIW0FeQV9dw5BVQVdBVlNQSYn2SYn/SIt2KEiD5vxIifroQwMAAITAD4SWAAAASYt2MEyJ/0yJ+ugsAwAAhMAPhH8AAABMiffoHIkRAITAD4R+AAAATIn36ByJEQBIhcB0cUiJx+gfiREASIXAdGRIicXrHg8fRAAATIn/SInu6KWO//+EwHQ8SIttCEiD5fh0QYtFHIPgf41I/4P5AnLog8Ddg/gCd9FIi4WAAAAASIXAdMUPtkAKweAQqQAACAB0t+vEMe2J6EiDxAhbQV5BX13DQLUBQfZGHQF06UyJ9+i0iBEASIsYQfZGHQF1CkUx9kw583Ua681MiffomIgRAESLcAhJweYDTAMwTDnzdLVIg8MIDx9AAEiLc/hMif/oVP0AAInFhMB0m0iNQwhMOfNIicN14uuNVUFXQVZBVUFUU0iD7ChJifZJif9kSIsEJSgAAABIiUQkIEiLRlgPV8APKQQkSMdEJBAAAAAATIuoSEgAAEiLqFBIAABMKe1IietIwfsDSIXtdDkPiMcBAABIie/oj3wRAEmJxEiJBCRIjQTYSIlEJBBMiedMie5IieroEYERAEyJ40gB60iJXCQI6wVFMeQx20iJ2Ewp4EiD+AgPhYIAAABJiwQki0Acg+B/g/hSdXNMiefoWHwRAEmNfijoj4cRAEiFwA+EwgAAAEiJw+sikEyJ/0iJ3ugVjf//hMAPhBoBAABIi1sISIPj+A+EmwAAAItDHIPgf41I/4P5AnLkg8Ddg/gCd8lIi4OAAAAASIXAdL0PtkAKweAQqQAACAB0r+vASTncdFdMieXrHA8fAEyJ/+i4jP//hMAPhLAAAABIg8UISDnddDZIi3UAi0Ycg+B/jUj/g/kCcuWDwN2D+AJ3zUiLhoAAAABIhcB0wQ+2QArB4BCpAAAIAHSz68FNheR0CEyJ5+iEexEAswFB9kYdAXRqTIn36MOGEQBIiyhB9kYdAXUKRTH2TDn1dRrrTkyJ9+inhhEARItwCEnB5gNMAzBMOfV0NkiDxQgPHwBIi3X4TIn/6GT7AACJw4TAdB1IjUUITDn1SInFdeLrD02F5HQITInn6BN7EQAx22RIiwQlKAAAAEg7RCQgdRmJ2EiDxChbQVxBXUFeQV9dw0iJ5+j4fxEA6DN9EQAPHwBVQVdBVkFVQVRTSIHsGAEAAGRIiwQlKAAAAEiJhCQQAQAASIX2D4SVAAAASYnWSIn1SYn9g38gAEiJdCQYD4TqAAAASImsJMAAAABBi0UQhcB0dEmLTQCJ7sHuBInqweoJMfKDwP8hwkiJ1kjB5gRIjRwxSInvSIssMUg5/XRgvwEAAAAx9kiB/QDw//8PhPi7AABIgfUA4P//SAn1SA9E8wH6g8cBIcJIidVIweUESI0cKUiLLClIO2wkGHQh68azAekEuwAAMdtIjZQkwAAAAEyJ70iJ3uikCQEASInDSIN7CAdIi2wkGHdCvzAAAADoy3kRAEmLTRhBi1UgSI0UUkjB4gQPEEQR0A8QTBHgDxBUEfAPEVAgDxFIEA8RAEiLSwiD4QdICcFIiUsIQYqFKAMAAIhEJDcPV8APKYQk0AAAAA8phCTAAAAASMeEJOAAAAAAAAAASInv6KGFEQCJhCTAAAAASImsJMgAAABIx4Qk6AAAAAAAAABBi00gQTtNJEyJdCQgD4O3ugAASI2sJMAAAABJi0UYQYtNIEiNDElIweEEDxBFAA8QTRAPEFUgDxFUCCAPEUwIEA8RBAhBg0UgAUHGhSgDAAAASI2EJNAAAAAPV8APEYQk+AAAAA8RhCToAAAADxGEJNgAAABIx4QkCAEAAAAAAABIiYQkwAAAAEiNjCTIAAAATIt8JBhMifhIg+D7SImEJNAAAABIuAEAAAAIAAAASImEJMgAAAC4AQAAAGYuDx+EAAAAAACJwEyLJMFB9sQED4WgAAAATIniSIPKBEiJFMGLhCTIAAAASIlEJEgxwITAD4XktwAASYPk+EGKBCQEgA+2wEiNDQsp9P9IYwSBSAHI/+BJi1QkEEiLMkiDwghIi1wkIEiJ3+jZuwAAhMAPhE65AABIjbwkkAAAAEyJ5uhRhBEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi6wkqAAAAEyLtCSwAAAA6xdmkIPA/4mEJMgAAADptrcAAEiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+EM7cAAPbBA3QKSI18JHDo9IMRAEiLMEiJ30iJ2ujG/P//hMAPhIy3AABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6NCDEQDro+jZgxEA65xJi1QkEPbCBEiLXCQgdBtIg+L4SIsySIPCCEiJ3+j1ugAAhMAPhGq4AABIjbwkkAAAAEyJ5uhtgxEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi6wkqAAAAEyLtCSwAAAA6wZIg0QkcAhIi0QkcEiLTCR4SDnodQlMOfEPhGC2AAD2wQN0CkiNfCRw6CGDEQBIizBIid9Iidro8/v//4TAD4S5tgAASItEJHioA3S0SI18JHBIg/gEcwy+AQAAAOj9ghEA66PoBoMRAOucSYtUJBhIizJIg8IISItcJCBIid/oK7oAAITAD4SgtwAASI28JJAAAABMieboo4IRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIusJKgAAABMi7QksAAAAOsGSINEJHAISItEJHBIi0wkeEg56HUJTDnxD4SWtQAA9sEDdApIjXwkcOhXghEASIswSInfSIna6Cn7//+EwA+E77UAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoM4IRAOuj6DyCEQDrnEmLVCQYSIsySIPCCEiLXCQgSInf6GG5AACEwA+E1rYAAEiNvCSQAAAATInm6NmBEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+EzLQAAPbBA3QKSI18JHDojYERAEiLMEiJ30iJ2uhf+v//hMAPhCW1AABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6GmBEQDro+hygREA65xJi1QkGEiLMkiDwghIi1wkIEiJ3+iXuAAAhMAPhAy2AABIjbwkkAAAAEyJ5ugPgREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi6wkqAAAAEyLtCSwAAAA6wZIg0QkcAhIi0QkcEiLTCR4SDnodQlMOfEPhAK0AAD2wQN0CkiNfCRw6MOAEQBIizBIid9Iidrolfn//4TAD4RbtAAASItEJHioA3S0SI18JHBIg/gEcwy+AQAAAOifgBEA66PoqIARAOucSI28JJAAAABMieboZoARAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABMi7QksAAAAEiLRCRwSItMJHhIOdhIi2wkIA+EIpwAAOkmnAAASI28JJAAAABMieboDIARAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABMi7QksAAAAEiLRCRwSItMJHhIOdhIi2wkIA+EoJwAAOmknAAASI28JJAAAABMiebosn8RAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABMi7QksAAAAEiLRCRwSItMJHhIOdhIi2wkIA+Epp8AAOmqnwAASYt0JBBJi1QkGEyLdCQgTIn36BG1AACEwA+ENrQAAEmLRCQ4SIlEJBBBDxBEJCgPEQQkTIn36I21AACEwA+EErQAAEmLXCRQSIXbdCmLawhIhe10IUiDwxBMifdIid7o9NQAAITAD4S6sgAASIPDIEiDxf9140iNvCSQAAAATInm6OJ+EQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAASIusJLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOdh1CUg56Q+E1bEAAPbBA3QKSI18JHDoln4RAEiLMEyJ90yJ8uho9///hMAPhC6yAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6HJ+EQDro+h7fhEA65xIjbwkkAAAAEyJ5ug5fhEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4RxnwAA6XWfAABIjbwkkAAAAEyJ5ujffREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4R3ogAA6XuiAABIjbwkkAAAAEyJ5uiFfREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4SJogAA6Y2iAABIjbwkkAAAAEyJ5ugrfREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4SbogAA6Z+iAABJi1QkEEiF0kiLXCQgdBdIizJIg8IISInf6DO0AACEwA+EqLEAAEiNvCSQAAAATInm6Kt8EQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+Enq8AAPbBA3QKSI18JHDoX3wRAEiLMEiJ30iJ2ugx9f//hMAPhPevAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6Dt8EQDro+hEfBEA65xIjbwkkAAAAEyJ5ugCfBEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4RapwAA6V6nAABIjbwkkAAAAEyJ5uioexEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4SIqQAA6YypAABIjbwkkAAAAEyJ5uhOexEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4T+mQAA6QKaAABIjbwkkAAAAEyJ5uj0ehEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4RwnQAA6XSdAABIjbwkkAAAAEyJ5uiaehEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4QmogAA6SqiAABJi3QkKEmLVCQwTIt0JCBMiffo+a8AAITAD4QerwAATIlsJChBiwQkqQAABAB0UjHJPMUPlcFBi1QkBEjB4QRMAeGDfNFAAHQ4TI0s0UmDxUBBi10MSIXbdCdIwegOg+AQSQHFTIn3TInu6NHPAACEwA+E0q4AAEmDxSBIg8P/deNIjbwkkAAAAEyJ5ui/eREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEiLrCSwAAAASItEJHBIi0wkeEg52EyLbCQoD4TdegAA6eF6AABJi3QkEEiLXCQgSInf6BN+//+EwA+ESK4AAEiNvCSQAAAATInm6Et5EQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+EPqwAAPbBA3QKSI18JHDo/3gRAEiLMEiJ30iJ2ujR8f//hMAPhJesAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6Nt4EQDro+jkeBEA65xIjbwkkAAAAEyJ5uiieBEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4T2gAAA6fqAAABIjbwkkAAAAEyJ5uhIeBEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4SYkwAA6ZyTAABJi1QkGEiLMkiDwghIi1wkIEiJ3+hVrwAAhMAPhMqsAABIjbwkkAAAAEyJ5ujNdxEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi6wkqAAAAEyLtCSwAAAA6wZIg0QkcAhIi0QkcEiLTCR4SDnodQlMOfEPhMCqAAD2wQN0CkiNfCRw6IF3EQBIizBIid9IidroU/D//4TAD4QZqwAASItEJHioA3S0SI18JHBIg/gEcwy+AQAAAOhddxEA66PoZncRAOucSYtUJBhIizJIg8IISItcJCBIid/oi64AAITAD4QArAAASI28JJAAAABMieboA3cRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIusJKgAAABMi7QksAAAAOsGSINEJHAISItEJHBIi0wkeEg56HUJTDnxD4T2qQAA9sEDdApIjXwkcOi3dhEASIswSInfSIna6Inv//+EwA+ET6oAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADok3YRAOuj6Jx2EQDrnEiNvCSQAAAATInm6Fp2EQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAATIu0JLAAAABIi0QkcEiLTCR4SDnYSItsJCAPhGqYAADpbpgAAEEPt0QkBEiJRCQoSIXAdG1NjXwkIEjBZCQoBEUx9kyJ7UyJ5+gndhEASInDSo00ME2LL0yJ5+gldhEAhMB0FEqLNDNIg+b4SIt8JCDob3r//+sQSIt8JCBMie5Iifrone7//4TASYntD4RgqQAASYPGEEmDxwhMOXQkKHWhTInn6Ot1EQBIi3wkIEiJxuguev//hMBMi3wkGA+FtqgAAOlZqgAASYtsJCiJ6IPgBoP4BEiLXCQgdUdIg+X4SInv6Lx1EQBIicdIie4x0ui/dREAQYtMJCSJjCSQAAAAiYwklAAAAEiNlCSQAAAASInfSInG6ImsAACEwA+E/qkAAEiNvCSQAAAATInm6AF1EQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+E9KcAAPbBA3QKSI18JHDotXQRAEiLMEiJ30iJ2uiH7f//hMAPhE2oAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6JF0EQDro+iadBEA65xJi1QkIEiLMkiDwghIi1wkIEiJ3+i/qwAAhMAPhDSpAABIjbwkkAAAAEyJ5ug3dBEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi6wkqAAAAEyLtCSwAAAA6wZIg0QkcAhIi0QkcEiLTCR4SDnodQlMOfEPhCqnAAD2wQN0CkiNfCRw6OtzEQBIizBIid9Iidrovez//4TAD4SDpwAASItEJHioA3S0SI18JHBIg/gEcwy+AQAAAOjHcxEA66Po0HMRAOucSI28JJAAAABMiebojnMRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABMi7QksAAAAEiLRCRwSItMJHhIOdhIi2wkIA+EqncAAOmudwAASYt0JBBJi1QkGEiLXCQgSInf6O2oAACEwA+EEqgAAEmLRCQwSIlEJBBBDxBEJCAPEQQkSInf6GmpAACEwA+E7qcAAEiNvCSQAAAATInm6PFyEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+E5KUAAPbBA3QKSI18JHDopXIRAEiLMEiJ30iJ2uh36///hMAPhD2mAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6IFyEQDro+iKchEA65xJi1wkGEiF20yLfCQgdCxEizNNhfZ0JEnB5gMx7UiLdCsQTIn/6G7JAACEwA+E5KUAAEiDxQhJOe514kiNvCSQAAAATInm6A1yEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAASIusJLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOdh1CUg56Q+EAKUAAPbBA3QKSI18JHDowXERAEiLMEyJ/0yJ+uiT6v//hMAPhFmlAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6J1xEQDro+imcREA65xJi1wkGEiF20yLfCQgdCxEizNNhfZ0JEnB5gMx7UiLdCsQTIn/6IrIAACEwA+EAKUAAEiDxQhJOe514kiNvCSQAAAATInm6ClxEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAASIusJLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOdh1CUg56Q+EHKQAAPbBA3QKSI18JHDo3XARAEiLMEyJ/0yJ+uiv6f//hMAPhHWkAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6LlwEQDro+jCcBEA65xJi1wkGEiF20yLfCQgdCxEizNNhfZ0JEnB5gMx7UiLdCsQTIn/6KbHAACEwA+EHKQAAEiDxQhJOe514kiNvCSQAAAATInm6EVwEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAASIusJLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOdh1CUg56Q+EOKMAAPbBA3QKSI18JHDo+W8RAEiLMEyJ/0yJ+ujL6P//hMAPhJGjAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6NVvEQDro+jebxEA65xJi1wkGEiF20yLfCQgdCxEizNNhfZ0JEnB5gMx7UiLdCsQTIn/6MLGAACEwA+EOKMAAEiDxQhJOe514kiNvCSQAAAATInm6GFvEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLnCSoAAAASIusJLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOdh1CUg56Q+EVKIAAPbBA3QKSI18JHDoFW8RAEiLMEyJ/0yJ+ujn5///hMAPhK2iAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6PFuEQDro+j6bhEA65xJi3QkIEiLXCQgSInfSIna6KPn//+EwA+EmKMAAEiNvCSQAAAATInm6JtuEQAPEIQkkAAAAA8pRCRwSIuEJKAAAABIiYQkgAAAAEiLrCSoAAAATIu0JLAAAADrBkiDRCRwCEiLRCRwSItMJHhIOeh1CUw58Q+EjqEAAPbBA3QKSI18JHDoT24RAEiLMEiJ30iJ2ugh5///hMAPhOehAABIi0QkeKgDdLRIjXwkcEiD+ARzDL4BAAAA6CtuEQDro+g0bhEA65xIjbwkkAAAAEyJ5ujybREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4TakAAA6d6QAABIjbwkkAAAAEyJ5uiYbREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4T8lQAA6QCWAABIjbwkkAAAAEyJ5ug+bREADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4RSlwAA6VaXAABJi3QkEEiLfCQgSIn66NLl//+EwA+Ex6EAAEmNTCQQSY1UJBhBiwQkwegSD7bASI0MwUg50Q+E/p8AAEyNNMX4////MdtJi3QcGIA+xHUJSIX2dARIi3YQSIt8JCBIifrof+X//4TAD4R0oQAASIPDCEk53nXP6b6fAABJi3QkGEiLbCQgSInv6Bdx//+EwA+ETKEAAE2NdCQoQYtEJBBMjTzFAAAAAE2F/3QkMdtJizQeSInv6Opw//+EwA+E8J8AAEiDwwhJOd9140GLRCQQTIlsJChBi0wkFEiFyUyLfCQYD4TCbAAATY0sxkiNLM0AAAAATAHt6cxqAABIjbwkkAAAAEyJ5ujoaxEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4S8nAAA6cCcAABIjbwkkAAAAEyJ5uiOaxEADxCEJJAAAAAPKUQkcEiLhCSgAAAASImEJIAAAABIi5wkqAAAAEyLtCSwAAAASItEJHBIi0wkeEg52EiLbCQgD4TOnAAA6dKcAABBD7ZEJALB4BCpAAAgAEiLXCQgdBxJi1QkEEiLMkiDwghIid/oi6IAAITAD4QAoAAASI28JJAAAABMieboA2sRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIusJKgAAABMi7QksAAAAOsGSINEJHAISItEJHBIi0wkeEg56HUJTDnxD4T2nQAA9sEDdApIjXwkcOi3ahEASIswSInfSIna6Inj//+EwA+ET54AAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADok2oRAOuj6JxqEQDrnEyJ5+jyahEASItcJCBIid9IicboAm///4TAD4Q3nwAASI28JJAAAABMieboOmoRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIusJKgAAABMi7QksAAAAOsGSINEJHAISItEJHBIi0wkeEg56HUJTDnxD4QtnQAA9sEDdApIjXwkcOjuaREASIswSInfSIna6MDi//+EwA+Ehp0AAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoymkRAOuj6NNpEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/ot8AAAITAD4QtnQAASIPFCEk57nXiSI28JJAAAABMieboVmkRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4RJnAAA9sEDdApIjXwkcOgKaREASIswTIn/TIn66Nzh//+EwA+EopwAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADo5mgRAOuj6O9oEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o078AAITAD4RJnAAASIPFCEk57nXiSI28JJAAAABMiebocmgRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4RlmwAA9sEDdApIjXwkcOgmaBEASIswTIn/TIn66Pjg//+EwA+EvpsAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoAmgRAOuj6AtoEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o774AAITAD4RlmwAASIPFCEk57nXiSI28JJAAAABMiebojmcRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SBmgAA9sEDdApIjXwkcOhCZxEASIswTIn/TIn66BTg//+EwA+E2poAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoHmcRAOuj6CdnEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oC74AAITAD4SBmgAASIPFCEk57nXiSI28JJAAAABMieboqmYRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SdmQAA9sEDdApIjXwkcOheZhEASIswTIn/TIn66DDf//+EwA+E9pkAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoOmYRAOuj6ENmEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oJ70AAITAD4SdmQAASIPFCEk57nXiSI28JJAAAABMieboxmURAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4S5mAAA9sEDdApIjXwkcOh6ZREASIswTIn/TIn66Eze//+EwA+EEpkAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoVmURAOuj6F9lEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oQ7wAAITAD4S5mAAASIPFCEk57nXiSI28JJAAAABMiebo4mQRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TVlwAA9sEDdApIjXwkcOiWZBEASIswTIn/TIn66Gjd//+EwA+ELpgAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADocmQRAOuj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EQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o1rAAAITAD4RMjQAASIPFCEk57nXiSI28JJAAAABMiebodVkRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4RojAAA9sEDdApIjXwkcOgpWREASIswTIn/TIn66PvR//+EwA+EwYwAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoBVkRAOuj6A5ZEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o8q8AAITAD4RojAAASIPFCEk57nXiSI28JJAAAABMiebokVgRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SEiwAA9sEDdApIjXwkcOhFWBEASIswTIn/TIn66BfR//+EwA+E3YsAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoIVgRAOuj6CpYEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oDq8AAITAD4SEiwAASIPFCEk57nXiSI28JJAAAABMieborVcRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SgigAA9sEDdApIjXwkcOhhVxEASIswTIn/TIn66DPQ//+EwA+E+YoAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoPVcRAOuj6EZXEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oKq4AAITAD4SgigAASIPFCEk57nXiSI28JJAAAABMieboyVYRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4S8iQAA9sEDdApIjXwkcOh9VhEASIswTIn/TIn66E/P//+EwA+EFYoAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoWVYRAOuj6GJWEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oRq0AAITAD4S8iQAASIPFCEk57nXiSI28JJAAAABMiebo5VURAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TYiAAA9sEDdApIjXwkcOiZVREASIswTIn/TIn66GvO//+EwA+EMYkAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADodVURAOuj6H5VEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oYqwAAITAD4TYiAAASIPFCEk57nXiSI28JJAAAABMieboAVURAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4T0hwAA9sEDdApIjXwkcOi1VBEASIswTIn/TIn66IfN//+EwA+ETYgAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADokVQRAOuj6JpUEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/ofqsAAITAD4T0hwAASIPFCEk57nXiSI28JJAAAABMieboHVQRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4QQhwAA9sEDdApIjXwkcOjRUxEASIswTIn/TIn66KPM//+EwA+EaYcAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADorVMRAOuj6LZTEQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/omqoAAITAD4QQhwAASIPFCEk57nXiSI28JJAAAABMieboOVMRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4QshgAA9sEDdApIjXwkcOjtUhEASIswTIn/TIn66L/L//+EwA+EhYYAAEiLRCR4qAN0tEiN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TIn66Aiz//+EwA+Ezm0AAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoEjoRAOuj6Bs6EQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/o/5AAAITAD4R1bQAASIPFCEk57nXiSI28JJAAAABMiebonjkRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4SRbAAA9sEDdApIjXwkcOhSOREASIswTIn/TIn66CSy//+EwA+E6mwAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoLjkRAOuj6Dc5EQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oG5AAAITAD4SRbAAASIPFCEk57nXiSI28JJAAAABMieboujgRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4StawAA9sEDdApIjXwkcOhuOBEASIswTIn/TIn66ECx//+EwA+EBmwAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoSjgRAOuj6FM4EQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oN48AAITAD4StawAASIPFCEk57nXiSI28JJAAAABMiebo1jcRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TJagAA9sEDdApIjXwkcOiKNxEASIswTIn/TIn66Fyw//+EwA+EImsAAEiLRCR4qAN0tEiNfCRwSIP4BHMMvgEAAADoZjcRAOuj6G83EQDrnEmLXCQYSIXbTIt8JCB0LESLM02F9nQkScHmAzHtSIt0KxBMif/oU44AAITAD4TJagAASIPFCEk57nXiSI28JJAAAABMiebo8jYRAA8QhCSQAAAADylEJHBIi4QkoAAAAEiJhCSAAAAASIucJKgAAABIi6wksAAAAOsGSINEJHAISItEJHBIi0wkeEg52HUJSDnpD4TlaQAA9sEDdApIjXwk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SItEJHBIi0wkeEg52HSW651MOfEPhP4tAAD2wQN0CkiNfCRw6L/6EABIizBIie9IierokXP//4TAD4RXLgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOib+hAA6w1Ig0QkcAjrBeic+hAASItEJHBIi0wkeEg52HSW651MOfEPhJItAAD2wQN0CkiNfCRw6FP6EABIizBIie9IieroJXP//4TAD4TrLQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgv+hAA6w1Ig0QkcAjrBegw+hAASItEJHBIi0wkeEg52HSW651MOfEPhCYtAAD2wQN0CkiNfCRw6Of5EABIizBIie9IierouXL//4TAD4R/LQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjD+RAA6w1Ig0QkcAjrBejE+RAASItEJHBIi0wkeEg52HSW651MOfEPhLosAAD2wQN0CkiNfCRw6Hv5EABIizBIie9IieroTXL//4TAD4QTLQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhX+RAA6w1Ig0QkcAjrBehY+RAASItEJHBIi0wkeEg52HSW651MOfEPhE4sAAD2wQN0CkiNfCRw6A/5EABIizBIie9Iiero4XH//4TAD4SnLAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjr+BAA6w1Ig0QkcAjrBejs+BAASItEJHBIi0wkeEg52HSW651MOfEPhOIrAAD2wQN0CkiNfCRw6KP4EABIizBIie9IierodXH//4TAD4Q7LAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh/+BAA6w1Ig0QkcAjrBeiA+BAASItEJHBIi0wkeEg52HSW651MOfEPhHYrAAD2wQN0CkiNfCRw6Df4EABIizBIie9IieroCXH//4TAD4TPKwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgT+BAA6w1Ig0QkcAjrBegU+BAASItEJHBIi0wkeEg52HSW651MOfEPhAorAAD2wQN0CkiNfCRw6Mv3EABIizBIie9IieronXD//4TAD4RjKwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOin9xAA6w1Ig0QkcAjrBeio9xAASItEJHBIi0wkeEg52HSW651MOfEPhJ4qAAD2wQN0CkiNfCRw6F/3EABIizBIie9IieroMXD//4TAD4T3KgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOg79xAA6w1Ig0QkcAjrBeg89xAASItEJHBIi0wkeEg52HSW651MOfEPhDIqAAD2wQN0CkiNfCRw6PP2EABIizBIie9IieroxW///4TAD4SLKgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjP9hAA6w1Ig0QkcAjrBejQ9hAASItEJHBIi0wkeEg52HSW651MOfEPhMYpAAD2wQN0CkiNfCRw6If2EABIizBIie9IieroWW///4TAD4QfKgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhj9hAA6w1Ig0QkcAjrBehk9hAASItEJHBIi0wkeEg52HSW651MOfEPhFopAAD2wQN0CkiNfCRw6Bv2EABIizBIie9Iiero7W7//4TAD4SzKQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOj39RAA6w1Ig0QkcAjrBej49RAASItEJHBIi0wkeEg52HSW651MOfEPhO4oAAD2wQN0CkiNfCRw6K/1EABIizBIie9IierogW7//4TAD4RHKQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiL9RAA6w1Ig0QkcAjrBeiM9RAASItEJHBIi0wkeEg52HSW651MOfEPhIIoAAD2wQN0CkiNfCRw6EP1EABIizBIie9IieroFW7//4TAD4TbKAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgf9RAA6w1Ig0QkcAjrBegg9RAASItEJHBIi0wkeEg52HSW651MOfEPhBYoAAD2wQN0CkiNfCRw6Nf0EABIizBIie9IieroqW3//4TAD4RvKAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiz9BAA6w1Ig0QkcAjrBei09BAASItEJHBIi0wkeEg52HSW651MOfEPhKonAAD2wQN0CkiNfCRw6Gv0EABIizBIie9IieroPW3//4TAD4QDKAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhH9BAA6w1Ig0QkcAjrBehI9BAASItEJHBIi0wkeEg52HSW651MOfEPhD4nAAD2wQN0CkiNfCRw6P/zEABIizBIie9Iiero0Wz//4TAD4SXJwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjb8xAA6w1Ig0QkcAjrBejc8xAASItEJHBIi0wkeEg52HSW651MOfEPhNImAAD2wQN0CkiNfCRw6JPzEABIizBIie9IieroZWz//4TAD4QrJwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhv8xAA6w1Ig0QkcAjrBehw8xAASItEJHBIi0wkeEg52HSW651MOfEPhGYmAAD2wQN0CkiNfCRw6CfzEABIizBIie9Iiero+Wv//4TAD4S/JgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgD8xAA6w1Ig0QkcAjrBegE8xAASItEJHBIi0wkeEg52HSW651MOfEPhPolAAD2wQN0CkiNfCRw6LvyEABIizBIie9IierojWv//4TAD4RTJgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiX8hAA6w1Ig0QkcAjrBeiY8hAASItEJHBIi0wkeEg52HSW651MOfEPhI4lAAD2wQN0CkiNfCRw6E/yEABIizBIie9IieroIWv//4TAD4TnJQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgr8hAA6w1Ig0QkcAjrBegs8hAASItEJHBIi0wkeEg52HSW651MOfEPhCIlAAD2wQN0CkiNfCRw6OPxEABIizBIie9IierotWr//4TAD4R7JQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOi/8RAA6w1Ig0QkcAjrBejA8RAASItEJHBIi0wkeEg52HSW651MOfEPhLYkAAD2wQN0CkiNfCRw6HfxEABIizBIie9IieroSWr//4TAD4QPJQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhT8RAA6w1Ig0QkcAjrBehU8RAASItEJHBIi0wkeEg52HSW651MOfEPhEokAAD2wQN0CkiNfCRw6AvxEABIizBIie9Iiero3Wn//4TAD4SjJAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjn8BAA6w1Ig0QkcAjrBejo8BAASItEJHBIi0wkeEg52HSW651MOfEPhN4jAAD2wQN0CkiNfCRw6J/wEABIizBIie9IierocWn//4TAD4Q3JAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh78BAA6w1Ig0QkcAjrBeh88BAASItEJHBIi0wkeEg52HSW651MOfEPhHIjAAD2wQN0CkiNfCRw6DPwEABIizBIie9IieroBWn//4TAD4TLIwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgP8BAA6w1Ig0QkcAjrBegQ8BAASItEJHBIi0wkeEg52HSW651MOfEPhAYjAAD2wQN0CkiNfCRw6MfvEABIizBIie9IieromWj//4TAD4RfIwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOij7xAA6w1Ig0QkcAjrBeik7xAASItEJHBIi0wkeEg52HSW651MOfEPhJoiAAD2wQN0CkiNfCRw6FvvEABIizBIie9IieroLWj//4TAD4TzIgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOg37xAA6w1Ig0QkcAjrBeg47xAASItEJHBIi0wkeEg52HSW651MOfEPhC4iAAD2wQN0CkiNfCRw6O/uEABIizBIie9IierowWf//4TAD4SHIgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjL7hAA6w1Ig0QkcAjrBejM7hAASItEJHBIi0wkeEg52HSW651MOfEPhMIhAAD2wQN0CkiNfCRw6IPuEABIizBIie9IieroVWf//4TAD4QbIgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhf7hAA6w1Ig0QkcAjrBehg7hAASItEJHBIi0wkeEg52HSW651MOfEPhFYhAAD2wQN0CkiNfCRw6BfuEABIizBIie9Iiero6Wb//4TAD4SvIQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjz7RAA6w1Ig0QkcAjrBej07RAASItEJHBIi0wkeEg52HSW651MOfEPhOogAAD2wQN0CkiNfCRw6KvtEABIizBIie9IierofWb//4TAD4RDIQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiH7RAA6w1Ig0QkcAjrBeiI7RAASItEJHBIi0wkeEg52HSW651MOfEPhH4gAAD2wQN0CkiNfCRw6D/tEABIizBIie9IieroEWb//4TAD4TXIAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgb7RAA6w1Ig0QkcAjrBegc7RAASItEJHBIi0wkeEg52HSW651MOfEPhBIgAAD2wQN0CkiNfCRw6NPsEABIizBIie9IieropWX//4TAD4RrIAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiv7BAA6w1Ig0QkcAjrBeiw7BAASItEJHBIi0wkeEg52HSW651MOfEPhKYfAAD2wQN0CkiNfCRw6GfsEABIizBIie9IieroOWX//4TAD4T/HwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhD7BAA6w1Ig0QkcAjrBehE7BAASItEJHBIi0wkeEg52HSW651MOfEPhDofAAD2wQN0CkiNfCRw6PvrEABIizBIie9IierozWT//4TAD4STHwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjX6xAA6w1Ig0QkcAjrBejY6xAASItEJHBIi0wkeEg52HSW651MOfEPhM4eAAD2wQN0CkiNfCRw6I/rEABIizBIie9IieroYWT//4TAD4QnHwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhr6xAA6w1Ig0QkcAjrBehs6xAASItEJHBIi0wkeEg52HSW651MOfEPhGIeAAD2wQN0CkiNfCRw6CPrEABIizBIie9Iiero9WP//4TAD4S7HgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOj/6hAA6w1Ig0QkcAjrBegA6xAASItEJHBIi0wkeEg52HSW651MOfEPhPYdAAD2wQN0CkiNfCRw6LfqEABIizBIie9IieroiWP//4TAD4RPHgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiT6hAA6w1Ig0QkcAjrBeiU6hAASItEJHBIi0wkeEg52HSW651MOfEPhIodAAD2wQN0CkiNfCRw6EvqEABIizBIie9IieroHWP//4TAD4TjHQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgn6hAA6w1Ig0QkcAjrBego6hAASItEJHBIi0wkeEg52HSW651MOfEPhB4dAAD2wQN0CkiNfCRw6N/pEABIizBIie9IierosWL//4TAD4R3HQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOi76RAA6w1Ig0QkcAjrBei86RAASItEJHBIi0wkeEg52HSW651MOfEPhLIcAAD2wQN0CkiNfCRw6HPpEABIizBIie9IieroRWL//4TAD4QLHQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhP6RAA6w1Ig0QkcAjrBehQ6RAASItEJHBIi0wkeEg52HSW651MOfEPhEYcAAD2wQN0CkiNfCRw6AfpEABIizBIie9Iiero2WH//4TAD4SfHAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjj6BAA6w1Ig0QkcAjrBejk6BAASItEJHBIi0wkeEg52HSW651MOfEPhNobAAD2wQN0CkiNfCRw6JvoEABIizBIie9IierobWH//4TAD4QzHAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh36BAA6w1Ig0QkcAjrBeh46BAASItEJHBIi0wkeEg52HSW651MOfEPhG4bAAD2wQN0CkiNfCRw6C/oEABIizBIie9IieroAWH//4TAD4THGwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgL6BAA6w1Ig0QkcAjrBegM6BAASItEJHBIi0wkeEg52HSW651MOfEPhAIbAAD2wQN0CkiNfCRw6MPnEABIizBIie9IierolWD//4TAD4RbGwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOif5xAA6w1Ig0QkcAjrBeig5xAASItEJHBIi0wkeEg52HSW651MOfEPhJYaAAD2wQN0CkiNfCRw6FfnEABIizBIie9IieroKWD//4TAD4TvGgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgz5xAA6w1Ig0QkcAjrBeg05xAASItEJHBIi0wkeEg52HSW651MOfEPhCoaAAD2wQN0CkiNfCRw6OvmEABIizBIie9IierovV///4TAD4SDGgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjH5hAA6w1Ig0QkcAjrBejI5hAASItEJHBIi0wkeEg52HSW651MOfEPhL4ZAAD2wQN0CkiNfCRw6H/mEABIizBIie9IieroUV///4TAD4QXGgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhb5hAA6w1Ig0QkcAjrBehc5hAASItEJHBIi0wkeEg52HSW651MOfEPhFIZAAD2wQN0CkiNfCRw6BPmEABIizBIie9Iiero5V7//4TAD4SrGQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjv5RAA6w1Ig0QkcAjrBejw5RAASItEJHBIi0wkeEg52HSW651MOfEPhOYYAAD2wQN0CkiNfCRw6KflEABIizBIie9IieroeV7//4TAD4Q/GQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiD5RAA6w1Ig0QkcAjrBeiE5RAASItEJHBIi0wkeEg52HSW651MOfEPhHoYAAD2wQN0CkiNfCRw6DvlEABIizBIie9IieroDV7//4TAD4TTGAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgX5RAA6w1Ig0QkcAjrBegY5RAASItEJHBIi0wkeEg52HSW651MOfEPhA4YAAD2wQN0CkiNfCRw6M/kEABIizBIie9IierooV3//4TAD4RnGAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOir5BAA6w1Ig0QkcAjrBeis5BAASItEJHBIi0wkeEg52HSW651MOfEPhKIXAAD2wQN0CkiNfCRw6GPkEABIizBIie9IieroNV3//4TAD4T7FwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOg/5BAA6w1Ig0QkcAjrBehA5BAASItEJHBIi0wkeEg52HSW651MOfEPhDYXAAD2wQN0CkiNfCRw6PfjEABIizBIie9IieroyVz//4TAD4SPFwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjT4xAA6w1Ig0QkcAjrBejU4xAASItEJHBIi0wkeEg52HSW651MOfEPhMoWAAD2wQN0CkiNfCRw6IvjEABIizBIie9IieroXVz//4TAD4QjFwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhn4xAA6w1Ig0QkcAjrBeho4xAASItEJHBIi0wkeEg52HSW651MOfEPhF4WAAD2wQN0CkiNfCRw6B/jEABIizBIie9Iiero8Vv//4TAD4S3FgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOj74hAA6w1Ig0QkcAjrBej84hAASItEJHBIi0wkeEg52HSW651MOfEPhPIVAAD2wQN0CkiNfCRw6LPiEABIizBIie9IierohVv//4TAD4RLFgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiP4hAA6w1Ig0QkcAjrBeiQ4hAASItEJHBIi0wkeEg52HSW651MOfEPhIYVAAD2wQN0CkiNfCRw6EfiEABIizBIie9IieroGVv//4TAD4TfFQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgj4hAA6w1Ig0QkcAjrBegk4hAASItEJHBIi0wkeEg52HSW651MOfEPhBoVAAD2wQN0CkiNfCRw6NvhEABIizBIie9IierorVr//4TAD4RzFQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOi34RAA6w1Ig0QkcAjrBei44RAASItEJHBIi0wkeEg52HSW651MOfEPhK4UAAD2wQN0CkiNfCRw6G/hEABIizBIie9IieroQVr//4TAD4QHFQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhL4RAA6w1Ig0QkcAjrBehM4RAASItEJHBIi0wkeEg52HSW651MOfEPhEIUAAD2wQN0CkiNfCRw6APhEABIizBIie9Iiero1Vn//4TAD4SbFAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjf4BAA6w1Ig0QkcAjrBejg4BAASItEJHBIi0wkeEg52HSW651MOfEPhNYTAAD2wQN0CkiNfCRw6JfgEABIizBIie9IieroaVn//4TAD4QvFAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhz4BAA6w1Ig0QkcAjrBeh04BAASItEJHBIi0wkeEg52HSW651MOfEPhGoTAAD2wQN0CkiNfCRw6CvgEABIizBIie9Iiero/Vj//4TAD4TDEwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgH4BAA6w1Ig0QkcAjrBegI4BAASItEJHBIi0wkeEg52HSW651MOfEPhP4SAAD2wQN0CkiNfCRw6L/fEABIizBIie9IierokVj//4TAD4RXEwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOib3xAA6w1Ig0QkcAjrBeic3xAASItEJHBIi0wkeEg52HSW651MOfEPhJISAAD2wQN0CkiNfCRw6FPfEABIizBIie9IieroJVj//4TAD4TrEgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgv3xAA6w1Ig0QkcAjrBegw3xAASItEJHBIi0wkeEg52HSW651MOfEPhCYSAAD2wQN0CkiNfCRw6OfeEABIizBIie9IierouVf//4TAD4R/EgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjD3hAA6w1Ig0QkcAjrBejE3hAASItEJHBIi0wkeEg52HSW651MOfEPhLoRAAD2wQN0CkiNfCRw6HveEABIizBIie9IieroTVf//4TAD4QTEgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhX3hAA6w1Ig0QkcAjrBehY3hAASItEJHBIi0wkeEg52HSW651MOfEPhE4RAAD2wQN0CkiNfCRw6A/eEABIizBIie9Iiero4Vb//4TAD4SnEQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjr3RAA6w1Ig0QkcAjrBejs3RAASItEJHBIi0wkeEg52HSW651MOfEPhOIQAAD2wQN0CkiNfCRw6KPdEABIizBIie9IierodVb//4TAD4Q7EQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh/3RAA6w1Ig0QkcAjrBeiA3RAASItEJHBIi0wkeEg52HSW651MOfEPhHYQAAD2wQN0CkiNfCRw6DfdEABIizBIie9IieroCVb//4TAD4TPEAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgT3RAA6w1Ig0QkcAjrBegU3RAASItEJHBIi0wkeEg52HSW651MOfEPhAoQAAD2wQN0CkiNfCRw6MvcEABIizBIie9IieronVX//4TAD4RjEAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOin3BAA6w1Ig0QkcAjrBeio3BAASItEJHBIi0wkeEg52HSW651MOfEPhJ4PAAD2wQN0CkiNfCRw6F/cEABIizBIie9IieroMVX//4TAD4T3DwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOg73BAA6w1Ig0QkcAjrBeg83BAASItEJHBIi0wkeEg52HSW651MOfEPhDIPAAD2wQN0CkiNfCRw6PPbEABIizBIie9IieroxVT//4TAD4SLDwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjP2xAA6w1Ig0QkcAjrBejQ2xAASItEJHBIi0wkeEg52HSW651MOfEPhMYOAAD2wQN0CkiNfCRw6IfbEABIizBIie9IieroWVT//4TAD4QfDwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhj2xAA6w1Ig0QkcAjrBehk2xAASItEJHBIi0wkeEg52HSW651MOfEPhFoOAAD2wQN0CkiNfCRw6BvbEABIizBIie9Iiero7VP//4TAD4SzDgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOj32hAA6w1Ig0QkcAjrBej42hAASItEJHBIi0wkeEg52HSW651MOfEPhO4NAAD2wQN0CkiNfCRw6K/aEABIizBIie9IierogVP//4TAD4RHDgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiL2hAA6w1Ig0QkcAjrBeiM2hAASItEJHBIi0wkeEg52HSW651MOfEPhIINAAD2wQN0CkiNfCRw6EPaEABIizBIie9IieroFVP//4TAD4TbDQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgf2hAA6w1Ig0QkcAjrBegg2hAASItEJHBIi0wkeEg52HSW651MOfEPhBYNAAD2wQN0CkiNfCRw6NfZEABIizBIie9IieroqVL//4TAD4RvDQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiz2RAA6w1Ig0QkcAjrBei02RAASItEJHBIi0wkeEg52HSW651MOfEPhKoMAAD2wQN0CkiNfCRw6GvZEABIizBIie9IieroPVL//4TAD4QDDQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhH2RAA6w1Ig0QkcAjrBehI2RAASItEJHBIi0wkeEg52HSW651MOfEPhD4MAAD2wQN0CkiNfCRw6P/YEABIizBIie9Iiero0VH//4TAD4SXDAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjb2BAA6w1Ig0QkcAjrBejc2BAASItEJHBIi0wkeEg52HSW651MOfEPhNILAAD2wQN0CkiNfCRw6JPYEABIizBIie9IieroZVH//4TAD4QrDAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhv2BAA6w1Ig0QkcAjrBehw2BAASItEJHBIi0wkeEg52HSW651MOfEPhGYLAAD2wQN0CkiNfCRw6CfYEABIizBIie9Iiero+VD//4TAD4S/CwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgD2BAA6w1Ig0QkcAjrBegE2BAASItEJHBIi0wkeEg52HSW651MOfEPhPoKAAD2wQN0CkiNfCRw6LvXEABIizBIie9IierojVD//4TAD4RTCwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiX1xAA6w1Ig0QkcAjrBeiY1xAASItEJHBIi0wkeEg52HSW651MOfEPhI4KAAD2wQN0CkiNfCRw6E/XEABIizBIie9IieroIVD//4TAD4TnCgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgr1xAA6w1Ig0QkcAjrBegs1xAASItEJHBIi0wkeEg52HSW651MOfEPhCIKAAD2wQN0CkiNfCRw6OPWEABIizBIie9IierotU///4TAD4R7CgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOi/1hAA6w1Ig0QkcAjrBejA1hAASItEJHBIi0wkeEg52HSW651MOfEPhLYJAAD2wQN0CkiNfCRw6HfWEABIizBIie9IieroSU///4TAD4QPCgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhT1hAA6w1Ig0QkcAjrBehU1hAASItEJHBIi0wkeEg52HSW651MOfEPhEoJAAD2wQN0CkiNfCRw6AvWEABIizBIie9Iiero3U7//4TAD4SjCQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjn1RAA6w1Ig0QkcAjrBejo1RAASItEJHBIi0wkeEg52HSW651MOfEPhN4IAAD2wQN0CkiNfCRw6J/VEABIizBIie9IierocU7//4TAD4Q3CQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh71RAA6w1Ig0QkcAjrBeh81RAASItEJHBIi0wkeEg52HSW651MOfEPhHIIAAD2wQN0CkiNfCRw6DPVEABIizBIie9IieroBU7//4TAD4TLCAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgP1RAA6w1Ig0QkcAjrBegQ1RAASItEJHBIi0wkeEg52HSW651MOfEPhAYIAAD2wQN0CkiNfCRw6MfUEABIizBIie9IieromU3//4TAD4RfCAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOij1BAA6w1Ig0QkcAjrBeik1BAASItEJHBIi0wkeEg52HSW651MOfEPhJoHAAD2wQN0CkiNfCRw6FvUEABIizBIie9IieroLU3//4TAD4TzBwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOg31BAA6w1Ig0QkcAjrBeg41BAASItEJHBIi0wkeEg52HSW651MOfEPhC4HAAD2wQN0CkiNfCRw6O/TEABIizBIie9IierowUz//4TAD4SHBwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjL0xAA6w1Ig0QkcAjrBejM0xAASItEJHBIi0wkeEg52HSW651MOfEPhMIGAAD2wQN0CkiNfCRw6IPTEABIizBIie9IieroVUz//4TAD4QbBwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhf0xAA6w1Ig0QkcAjrBehg0xAASItEJHBIi0wkeEg52HSW651MOfEPhFYGAAD2wQN0CkiNfCRw6BfTEABIizBIie9Iiero6Uv//4TAD4SvBgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjz0hAA6w1Ig0QkcAjrBej00hAASItEJHBIi0wkeEg52HSW651MOfEPhOoFAAD2wQN0CkiNfCRw6KvSEABIizBIie9IierofUv//4TAD4RDBgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiH0hAA6w1Ig0QkcAjrBeiI0hAASItEJHBIi0wkeEg52HSW651MOfEPhH4FAAD2wQN0CkiNfCRw6D/SEABIizBIie9IieroEUv//4TAD4TXBQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgb0hAA6w1Ig0QkcAjrBegc0hAASItEJHBIi0wkeEg52HSW651MOfEPhBIFAAD2wQN0CkiNfCRw6NPREABIizBIie9IieropUr//4TAD4RrBQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiv0RAA6w1Ig0QkcAjrBeiw0RAASItEJHBIi0wkeEg52HSW651MOfEPhKYEAAD2wQN0CkiNfCRw6GfREABIizBIie9IieroOUr//4TAD4T/BAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhD0RAA6w1Ig0QkcAjrBehE0RAASItEJHBIi0wkeEg52HSW651MOfEPhDoEAAD2wQN0CkiNfCRw6PvQEABIizBIie9IierozUn//4TAD4STBAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjX0BAA6w1Ig0QkcAjrBejY0BAASItEJHBIi0wkeEg52HSW651MOfEPhM4DAAD2wQN0CkiNfCRw6I/QEABIizBIie9IieroYUn//4TAD4QnBAAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhr0BAA6w1Ig0QkcAjrBehs0BAASItEJHBIi0wkeEg52HSW651MOfEPhGIDAAD2wQN0CkiNfCRw6CPQEABIizBIie9Iiero9Uj//4TAD4S7AwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOj/zxAA6w1Ig0QkcAjrBegA0BAASItEJHBIi0wkeEg52HSW651MOfEPhPYCAAD2wQN0CkiNfCRw6LfPEABIizBIie9IieroiUj//4TAD4RPAwAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOiTzxAA6w1Ig0QkcAjrBeiUzxAASItEJHBIi0wkeEg52HSW651MOfEPhIoCAAD2wQN0CkiNfCRw6EvPEABIizBIie9IieroHUj//4TAD4TjAgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOgnzxAA6w1Ig0QkcAjrBegozxAASItEJHBIi0wkeEg52HSW651MOfEPhB4CAAD2wQN0CkiNfCRw6N/OEABIizBIie9IierosUf//4TAD4R3AgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOi7zhAA6w1Ig0QkcAjrBei8zhAASItEJHBIi0wkeEg52HSW651MOfEPhLIBAAD2wQN0CkiNfCRw6HPOEABIizBIie9IieroRUf//4TAD4QLAgAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOhPzhAA6w1Ig0QkcAjrBehQzhAASItEJHBIi0wkeEg52HSW651MOfEPhEYBAAD2wQN0CkiNfCRw6AfOEABIizBIie9Iiero2Ub//4TAD4SfAQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOjjzRAA6w1Ig0QkcAjrBejkzRAASItEJHBIi0wkeEg52HSW651MOfEPhNoAAAD2wQN0CkiNfCRw6JvNEABIizBIie9IierobUb//4TAD4QzAQAASItEJHioA3QXSI18JHBIg/gEcxS+AQAAAOh3zRAA6w1Ig0QkcAjrBeh4zRAASItEJHBIi0wkeEg52HSW651MOfF0cvbBA3QKSI18JHDoM80Q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iedMieLoXh///4TAD4Tq/f//SIPDCEk533Xf6d/9//9Ei30QScHnA02F/w+Ezv3//zHbSIt0HVBMiedMieLoJR///4TAD4Sx/f//SIPDCEk533Xf6ab9//9MiedIie7odAsAAOmP/f//TInnSInu6CQNAADpf/3//0SLfRBJwecDTYX/D4R1/f//MdtIi7QdiAAAAEyJ50yJ4ujJHv//hMAPhFX9//9Ig8MISTnfddzpSv3//0yJ50iJ7ujoDgAA6TP9//9MiedIie7oKA8AAOkj/f//TInnSInu6EgQAADpE/3//0yJ50iJ7uiIEAAA6QP9//9MiedIie7oyBAAAOnz/P//TInnSInu6AgRAADp4/z//0yJ50iJ7uhIEQAA6dP8//9MiedIie7oiBEAAOnD/P//TInnSInu6CgSAADps/z//0yJ50iJ7ujIFAAA6aP8//9Ei30QScHnA02F/w+Emfz//zHbSIt0HRhMiedMieLo8B3//4TAD4R8/P//SIPDCEk533Xf6XH8//9Ei30QScHnA02F/w+EYPz//0iDxRgx20iLdB0ATInnTIni6LMd//+EwA+EP/z//0iDwwhJOd913+k0/P//TInnSInu6JIUAADpHfz//0yJ50iJ7uhyFgAA6Q38//9Ei30QScHnA02F/w+EA/z//zHbSIt0HWhMiedMieLoWh3//4TAD4Tm+///SIPDCEk533Xf6dv7//9Ei30QScHnA02F/w+Eyvv//zHbSIt0HVBMiedMieLoIR3//4TAD4St+///SIPDCEk533Xf6aL7//9Ei30QScHnA02F/w+Ekfv//zHbSIt0HVBMiedMieLo6Bz//4TAD4R0+///SIPDCEk533Xf6Wn7//9MiedIie7oBxYAAOlS+///ZpBBV0FWQVRTUEmJ9kmJ/ItGEEiLdMYYSIn66KIc//+EwHRAQYtGEEiNDMUAAAAASIXJdDNMjTzF+P///zHbDx8ASYt0HhhMiedMieLocBz//4TAdBRIjUsISTnfSInLdeDrBjHA6wKwAUiDxAhbQVxBXkFfw2YuDx+EAAAAAABmkEFXQVZBVFNQSYn2SYn8i0YQSIt0xhhIifroIhz//4TAdEBBi0YQSI0MxQAAAABIhcl0M0yNPMX4////MdsPHwBJi3QeGEyJ50yJ4ujwG///hMB0FEiNSwhJOd9Iict14OsGMcDrArABSIPECFtBXEFeQV/DZi4PH4QAAAAAAGaQQVdBVkFUU1BJifZJifxIi3YYSIn66KYb//+EwHREQYtGEEiNDMUAAAAASIXJdDdMjTzF+P///zHbDx+AAAAAAEmLdB4oTInnTIni6HAb//+EwHQUSI1LCEk530iJy3Xg6wYxwOsCsAFIg8QIW0FcQV5BX8NmLg8fhAAAAAAAZpBBV0FWQVVBVFNJifZJif2LRhBMjTzFAAAAAE2F/3Q2MdtmLg8fhAAAAAAADx9EAABJi3QeGEyJ70yJ6ugAG///hMAPhOkAAABIg8MISTnfdd9Bi0YQTI08xQAAAABNhf90NUn3302NJMZJg8QYMduQSYs0HEyJ70yJ6ujBGv//hMAPhKoAAABIg8MITIn4SAHYdd1Bi0YQTI08xQAAAABNhf90PEjB4ARNjSQGSYPEGDHbZi4PH4QAAAAAAA8fQABJizQcTInvTInq6HEa//+EwHReSIPDCEk533XkQYtGEEiNDMUAAAAASIXJdFBMjTzF+P///0iNBEBNjTTGSYPGGDHbZi4PH4QAAAAAAA8fAEmLNB5Mie9MieroIRr//4TAdBBIjUsISTnfSInLdeHrAjHAW0FcQV1BXkFfw7AB6/JmLg8fhAAAAAAADx9EAABBV0FWQVVBVFNJifZJif2LRhBMjTzFAAAAAE2F/3Q2MdtmLg8fhAAAAAAADx9EAABJi3QeGEyJ70yJ6uiwGf//hMAPhOkAAABIg8MISTnfdd9Bi0YQTI08xQAAAABNhf90NUn3302NJMZJg8QYMduQSYs0HEyJ70yJ6uhxGf//hMAPhKoAAABIg8MITIn4SAHYdd1Bi0YQTI08xQAAAABNhf90PEjB4ARNjSQGSYPEGDHbZi4PH4QAAAAAAA8fQABJizQcTInvTInq6CEZ//+EwHReSIPDCEk533XkQYtGEEiNDMUAAAAASIXJdFBMjTzF+P///0iNBEBNjTTGSYPGGDHbZi4PH4QAAAAAAA8fAEmLNB5Mie9Miero0Rj//4TAdBBIjUsISTnfSInLdeHrAjHAW0FcQV1BXkFfw7AB6/JmLg8fhAAAAAAADx9EAABBVlNQSInzSYn+SI1GEEiF9kgPRMZIizBIifrogBj//4TAdBZIi3MoTIn3TInySIPECFtBXulmGP//McBIg8QIW0Few2YuDx+EAAAAAABmkEFWU1BIifNJif5IjUYQSIX2SA9ExkiLMEiJ+ugwGP//hMB0FkiLczBMifdMifJIg8QIW0Fe6RYY//8xwEiDxAhbQV7DZi4PH4QAAAAAAGaQQVZTUEiJ80mJ/kiNRhBIhfZID0TGSIswSIn66OAX//+EwHQWSItzIEyJ90yJ8kiDxAhbQV7pxhf//zHASIPECFtBXsNmLg8fhAAAAAAAZpBBVlNQSInzSYn+SI1GEEiF9kgPRMZIizBIifrokBf//4TAdBZIi3MgTIn3TInySIPECFtBXul2F///McBIg8QIW0Few2YuDx+EAAAAAABmkEFXQVZBVUFUU0mJ9kmJ/USLfhBJwecDTYX/dCUx22aQSYt0HihMie9MieroMBf//4TAD4S5AAAASIPDCEk533XfSY1GGE2F9kkPRMZIizBMie9MieroBhf//4TAD4SPAAAAQYtGEEyNPMUAAAAATYX/dDBJ999NjSTGSYPEKDHbSYs0HEyJ70yJ6ujRFv//hMB0XkiDwwhMifhIAdh14UGLRhBIjQzFAAAAAEiFyXRNTI08xfj///9IweAESQHGSYPGKDHbZi4PH4QAAAAAAJBJizQeTInvTInq6IEW//+EwHQQSI1LCEk530iJy3Xh6wIxwFtBXEFdQV5BX8OwAevyZi4PH4QAAAAAAA8fRAAAQVZTUEiJ80mJ/kiNRhBIhfZID0TGSIswSIn66DAW//+EwHQWSItzIEyJ90yJ8kiDxAhbQV7pFhb//zHASIPECFtBXsNmLg8fhAAAAAAAZpBBVlNQSInzSYn+SI1GEEiF9kgPRMZIizBIifro4BX//4TAdBZIi3MgTIn3TInySIPECFtBXunGFf//McBIg8QIW0Few2YuDx+EAAAAAABmkEFXQVZBVUFUU0iD7CBJifZJifxIi3Y4SYtWQOhg0v//hMAPhN0BAABJi0ZYSIlEJBBBDxBGSA8RBCRMiefo3tL//4TAD4S7AQAARYt+EEnB5wNNhf90KjHbDx+AAAAAAEmLdB5gTInnTIni6EAV//+EwA+EjQEAAEiDwwhJOd9130mLdhhMiedMieLoIBX//4TAD4RtAQAASYt2KEyJ50yJ4ugJFf//hMAPhFYBAABBi0YQTI08xQAAAABNhf90OEn3302NLMZJg8VgMdsPHwBJi3QdAEyJ50yJ4ujQFP//hMAPhB0BAABIg8MITIn4SAHYddxBi0YQTI08xQAAAABNhf90QEjB4ARNjSwGSYPFYDHbZi4PH4QAAAAAAA8fAEmLdB0ATInnTIni6IAU//+EwA+EzQAAAEiDwwhJOd9130GLRhBMjTzFAAAAAE2F/3QzSI0EQE2NLMZJg8VgMdtJi3QdAEyJ50yJ4uhAFP//hMAPhI0AAABIg8MISTnfdd9Bi0YQTI08xQAAAABNhf90L0jB4AVNjSwGSYPFYDHbSYt0HQBMiedMieLoABT//4TAdFFIg8MISTnfdeNBi0YQSI0MxQAAAABIhcl0R0yNPMX4////SI0EgE2NNMZJg8ZgMdtJizQeTInnTIni6L0T//+EwHQQSI1LCEk530iJy3Xh6wIxwEiDxCBbQVxBXUFeQV/DsAHr7g8fgAAAAABBV0FWQVVBVFNJifZJifxEi34QScHnA02F/3QlMdtmkEmLdB5ATInnTIni6GAT//+EwA+EaQEAAEiDwwhJOd9130mNXhhNhfZJD0TeSIszTInnTIni6DYT//+EwA+EPwEAAEiLcxBMiedMieLoHxP//4TAD4QoAQAAQYtGEEyNPMUAAAAATYX/dD5J999NjSzGSYPFQDHbZg8fhAAAAAAASYt0HQBMiedMieLo4BL//4TAD4TpAAAASIPDCEyJ+EgB2HXcQYtGEEyNPMUAAAAATYX/dEBIweAETY0sBkmDxUAx22YuDx+EAAAAAAAPHwBJi3QdAEyJ50yJ4uiQEv//hMAPhJkAAABIg8MISTnfdd9Bi0YQTI08xQAAAABNhf90L0iNBEBNjSzGSYPFQDHbSYt0HQBMiedMieLoUBL//4TAdF1Ig8MISTnfdeNBi0YQSI0MxQAAAABIhcl0T0yNPMX4////SMHgBUkBxkmDxkAx22YuDx+EAAAAAAAPHwBJizQeTInnTIni6AES//+EwHQQSI1LCEk530iJy3Xh6wIxwFtBXEFdQV5BX8OwAevyZi4PH4QAAAAAAA8fRAAAQVdBVkFVQVRTSYn2SYn8i0YQSI1MxkBIjQzBSI0MwUiNDMFIizTBSIn66KER//+EwA+EugEAAEmNRkBBi04QSI0EyEiNBMhIjQTISI0EyEiLdMgITInnTIni6HER//+EwA+EigEAAEWLfhBJwecDTYX/dC0x22YuDx+EAAAAAABJi3QeQEyJ50yJ4uhAEf//hMAPhFkBAABIg8MISTnfdd9Ji3YYTInnTIni6CAR//+EwA+EOQEAAEmLdihMiedMieLoCRH//4TAD4QiAQAAQYtGEEyNPMUAAAAATYX/dDhJ999NjSzGSYPFQDHbDx8ASYt0HQBMiedMieLo0BD//4TAD4TpAAAASIPDCEyJ+EgB2HXcQYtGEEyNPMUAAAAATYX/dEBIweAETY0sBkmDxUAx22YuDx+EAAAAAAAPHwBJi3QdAEyJ50yJ4uiAEP//hMAPhJkAAABIg8MISTnfdd9Bi0YQTI08xQAAAABNhf90L0iNBEBNjSzGSYPFQDHbSYt0HQBMiedMieLoQBD//4TAdF1Ig8MISTnfdeNBi0YQSI0MxQAAAABIhcl0T0yNPMX4////SMHgBUkBxkmDxkAx22YuDx+EAAAAAAAPHwBJizQeTInnTIni6PEP//+EwHQQSI1LCEk530iJy3Xh6wIxwFtBXEFdQV5BX8OwAevyZi4PH4QAAAAAAA8fRAAAQVZTUEiJ80mJ/kiNRhBIhfZID0TGSIswSIn66KAP//+EwHQWSItzIEyJ90yJ8kiDxAhbQV7phg///zHASIPECFtBXsNmLg8fhAAAAAAAZpBVQVdBVlNIg+woSYn3SIn7ZEiLBCUoAAAASIlEJCCLThBMjTTNAAAAAE2F9nQnMe1Ji3QvGEiJ30iJ2ugwD///hMAPhLMAAABIg8UISTnudd9Bi08QSYPHGEmNBM9IjRTNAAAAAEiJRCQID1fADxFEJBBIhdIPhIQAAABMjTzIMclMjXQkCGYuDx+EAAAAAAD2wQN0CEyJ9+jzlRAASIswSInfSIna6MUO//+JxYTAdFFIi0QkEKgDdBZMifdIg/gEcx2+AQAAAOjTlRAA6xaQSINEJAgI6w0PH4QAAAAAAOjLlRAASItEJAhIi0wkEEw5+HWcSIXJdZfrBzHt6wNAtQFkSIsEJSgAAABIO0QkIHUNiehIg8QoW0FeQV9dw+h8ixAAZi4PH4QAAAAAAGaQQVZTUEiJ80mJ/kiNRhBIhfZID0TGSIswSIn66CAO//+EwHQWSItzIEyJ90yJ8kiDxAhbQV7pBg7//zHASIPECFtBXsNmLg8fhAAAAAAAZpBBVlNQSInzSYn+SI1GEEiF9kgPRMZIizBIifro0A3//4TAdBZIi3MgTIn3TInySIPECFtBXum2Df//McBIg8QIW0Few2YuDx+EAAAAAABmkEFWU1BIifNJif5IjUYQSIX2SA9ExkiLMEiJ+uiADf//hMB0FkiLcyBMifdMifJIg8QIW0Fe6WYN//8xwEiDxAhbQV7DZi4PH4QAAAAAAGaQQVZTUEiJ80mJ/kiNRhBIhfZID0TGSIswSIn66DAN//+EwHQWSItzIEyJ90yJ8kiDxAhbQV7pFg3//zHASIPECFtBXsNmLg8fhAAAAAAAZpBBVlNQSInzSYn+SI1GEEiF9kgPRMZIizBIifro4Az//4TAdBZIi3MgTIn3TInySIPECFtBXunGDP//McBIg8QIW0Few2YuDx+EAAAAAABmkEFXQVZBVFNQSYn2SYn8i0YQTI08xQAAAABNhf90IzHbSYt0HhhMiedMieLogAz//4TAdF5Ig8MISTnfdeNBi0YQSI0MxQAAAABIhcl0SEG/CAAAAEkpz02NNMZJg8YYMdtmLg8fhAAAAAAADx9EAABJizQeTInnTIni6DEM//+EwHQVSY0MH0iDwwhIhcl14OsGMcDrArABSIPECFtBXEFeQV/DZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iD7BhJifZJif1Ii3ZASYtWSOivyP//hMAPhG0CAABJi0ZgSIlEJBBBDxBGUA8RBCRMie/oLcn//4TAD4RLAgAAQYtuEEjB5QNIhe10KTHbZg8fRAAASYt0HmhMie9MierokAv//4TAD4QeAgAASIPDCEg53XXfSYt2GEyJ70yJ6uhwC///hMAPhP4BAABJi3YoTInvTInq6FkL//+EwA+E5wEAAEGLRhBMjSTFAAAAAE2F5HQ3SffcTY08xkmDx2gx7Q8fAEmLNC9Mie9MieroIQv//4TAD4SvAQAASIPFCEyJ4EgB6HXdQYtGEEyNPMUAAAAATYX/dEFIweAESY0sBkiDxWgx22YuDx+EAAAAAAAPH0AASIt0HQBMie9Miero0Ar//4TAD4ReAQAASIPDCEk533XfQYtGEEyNPMUAAAAATYX/dDNIjQRASY0sxkiDxWgx20iLdB0ATInvTInq6JAK//+EwA+EHgEAAEiDwwhJOd9130GLRhBMjTzFAAAAAE2F/3QvSMHgBUmNLAZIg8VoMdtIi3QdAEyJ70yJ6uhQCv//hMAPhN4AAABIg8MISTnfdd9AtQFBg34wAQ+FyQAAAEGLRhBMjTzFAAAAAE2F/3QySI0EgE2NJMZJg8RoMdtJizQcTInvTInq6AMK//+EwA+EkQAAAEiDwwhJOd914EGLRhBMjTzFAAAAAE2F/3QySI0EQEjB4ARNjSQGSYPEaDHbSYs0HEyJ70yJ6ujACf//hMB0UkiDwwhJOd915EGLRhBIjQzFAAAAAEiFyXQ6TI08xfj///9Ia8A4SQHGSYPGaDHbSYs0HkyJ70yJ6uh+Cf//icWEwHQQSI1DCEk530iJw3Xf6wIx7YnoSIPEGFtBXEFdQV5BX13DDx+AAAAAAEFWU1BIifNJif5IjUYQSIX2SA9ExkiLMEiJ+ugwCf//hMB0FkiLc0BMifdMifJIg8QIW0Fe6RYJ//8xwEiDxAhbQV7DZi4PH4QAAAAAAGaQQVdBVkFVQVRTSIPsIEmJ9kmJ/EiLdjhJi1ZA6LDF//+EwA+EqQEAAEmLRlhIiUQkEEEPEEZIDxEEJEyJ5+guxv//hMAPhIcBAABFi34QScHnA02F/3QqMdsPH4AAAAAASYt0HmBMiedMieLokAj//4TAD4RZAQAASIPDCEk533XfSYt2GEyJ50yJ4uhwCP//hMAPhDkBAABJi3YoTInnTIni6FkI//+EwA+EIgEAAEGLRhBMjTzFAAAAAE2F/3Q4SfffTY0sxkmDxWAx2w8fAEmLdB0ATInnTIni6CAI//+EwA+E6QAAAEiDwwhMifhIAdh13EGLRhBMjTzFAAAAAE2F/3RASMHgBE2NLAZJg8VgMdtmLg8fhAAAAAAADx8ASYt0HQBMiedMieLo0Af//4TAD4SZAAAASIPDCEk533XfQYtGEEyNPMUAAAAATYX/dC9IjQRATY0sxkmDxWAx20mLdB0ATInnTIni6JAH//+EwHRdSIPDCEk533XjQYtGEEiNDMUAAAAASIXJdFNMjTzF+P///0jB4AVJAcZJg8ZgMdtmLg8fhAAAAAAADx8ASYs0HkyJ50yJ4uhBB///hMB0EEiNSwhJOd9Iict14esCMcBIg8QgW0FcQV1BXkFfw7AB6+5mLg8fhAAAAAAAkEFWU1BIifNJif5IjUYQSIX2SA9ExkiLMEiJ+ujwBv//hMB0FkiLcyBMifdMifJIg8QIW0Fe6dYG//8xwEiDxAhbQV7DZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iD7ChkSIsEJSgAAABIiUQkIESLbhAx7UWF7XRuSYn2SIn7QbcBSYnkZi4PH4QAAAAAAA8fAA9XwA8pBCRIx0QkEAAAAABMiedMifaJ6ujDjhAASIs0JEiJ30iJ2uhUBv//hMB0KEiLdCQISInfSIna6EAG//+EwHQUg8UBRDntQQ+Sx0E57XWt6wNFMf9kSIsEJSgAAABIO0QkIHUaQYD3AUGA5wFEifhIg8QoW0FcQV1BXkFfXcPoKYMQAGYPH4QAAAAAAFVBV0FWU0iD7ChkSIsEJSgAAABIiUQkIEG2AUiF9g+EqgAAAEiLRhBIi24YMclIOehID0TBSA9E6UiJRCQID1fADxFEJBBIOegPhH8AAABIifsxyUyNfCQIDx+AAAAAAPbBA3QITIn/6KOMEABIizBIid9IidrodQX//4TAdExIi0QkEKgDdBhMif9Ig/gEcx++AQAAAOiFjBAA6xgPHwBIg0QkCAjrDQ8fhAAAAAAA6HuMEABIi0QkCEiLTCQQSDnodZxIhcl1l+sDRTH2ZEiLBCUoAAAASDtEJCB1DkSJ8EiDxChbQV5BX13D6C+CEABmLg8fhAAAAAAADx9EAABTswFIhfZ0FA+3RiBIjQ2ZN/P/SGMEgUgByP/gidhbw0iLdihIifpb6cME//9Ii1YoSIXSdOZIizJIg8II6C7D//+EwHXWMdvr0lvpcAIAAFvpigAAAFvpxAAAAFvp/gAAAFvpWAEAAFvpsgEAAFvpDAIAAFvppgIAAFvpAAMAAFvpWgMAAFvptAMAAFvp7gMAAFvpKAQAAFvpogQAAFvpbAYAAFvpxgYAAFvpIAcAAFvpmgcAAEiLVjBIhdIPhXP////pVP///0iLdjDpU////1vpyQQAAGYPH4QAAAAAAEFWU1BJifZIiftIi3YoSIn66PoD//+EwHQWSYt2MEiJ30iJ2kiDxAhbQV7p4AP//zHASIPECFtBXsNmDx9EAABBVlNQSYn2SIn7SIt2KEiJ+ui6A///hMB0FkmLdjBIid9IidpIg8QIW0Fe6aAD//8xwEiDxAhbQV7DZg8fRAAAQVdBVkFUU1CLRiRIhcB0QUmJ/EyLdihMjTzF+P///zHbZi4PH4QAAAAAAA8fRAAASYs0HkyJ50yJ4uhRA///hMB0EEiNSwhJOd9Iict14esCsAFIg8QIW0FcQV5BX8OQQVdBVkFUU1CLRiRIhcB0QUmJ/EyLdihMjTzF+P///zHbZi4PH4QAAAAAAA8fRAAASYs0HkyJ50yJ4ujxAv//hMB0EEiNSwhJOd9Iict14esCsAFIg8QIW0FcQV5BX8OQQVdBVkFUU1CLRiRIhcB0QUmJ/EyLdihMjTzF+P///zHbZi4PH4QAAAAAAA8fRAAASYs0HkyJ50yJ4uiRAv//hMB0EEiNSwhJOd9Iict14esCsAFIg8QIW0FcQV5BX8OQUIB+IwB0EkiLdihIifroXQL//4TAdRvrHUiLVihIhdJ0EEiLMkiDwgjowsD//4TAdASwAVnDMcBZw2YPH0QAAEFXQVZBVFNQi0YwSIXAdEFJifxMi3Y4TI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLo8QH//4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFXQVZBVFNQi0YkSIXAdEFJifxMi3YoTI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLokQH//4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFXQVZBVFNQi0YkSIXAdEFJifxMi3YoTI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLoMQH//4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFXQVZBVFNQi0YkSIXAdEFJifxMi3YoTI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLo0QD//4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFWU1BJifZIiftIi3YoSIn66JoA//+EwHQWSYt2MEiJ30iJ2kiDxAhbQV7pgAD//zHASIPECFtBXsNmDx9EAABBVlNQSYn2SIn7SIt2KEiJ+uhaAP//hMB0FkmLdjBIid9IidpIg8QIW0Fe6UAA//8xwEiDxAhbQV7DZg8fRAAAQVdBVkFUU1BJifZJifxIi3YoSIn66BYA//+EwHRDQYtGMEiFwHQ+TYt2OEyNPMX4////MdtmLg8fhAAAAAAAkEmLNB5MiedMieLo4f/+/4TAdBRIjUsISTnfSInLdeHrBjHA6wKwAUiDxAhbQVxBXkFfw2YuDx+EAAAAAAAPHwBBV0FWQVRTUItGJEiFwHRBSYn8TIt2KEyNPMX4////MdtmLg8fhAAAAAAADx9EAABJizQeTInnTIni6HH//v+EwHQQSI1LCEk530iJy3Xh6wKwAUiDxAhbQVxBXkFfw5BBV0FWQVVBVFNJifZJif1Ii3YoSIn66DX//v+EwA+ELgEAAEWLfjBNhf90NE2LZjhJwecDMdtmLg8fhAAAAAAASYs0HEyJ70yJ6ugB//7/hMAPhPoAAABIg8MISTnfdeBFi35ATYX/dDdNi2ZIScHnAzHbZi4PH4QAAAAAAA8fAEmLNBxMie9Mierowf7+/4TAD4S6AAAASIPDCEk533XgRYt+UE2F/3QzTYtmWEnB5wMx22YuDx+EAAAAAAAPHwBJizQcTInvTInq6IH+/v+EwHR+SIPDCEk533XkRYt+YE2F/3QnTYtmaEnB5wMx25BJizQcTInvTInq6FH+/v+EwHROSIPDCEk533XkQYuGgAAAAEiFwHRFTYu2iAAAAEyNPMX4////MdsPH4AAAAAASYs0HkyJ70yJ6ugR/v7/hMB0EEiNSwhJOd9Iict14esCMcBbQVxBXUFeQV/DsAHr8mYuDx+EAAAAAAAPH0QAAEFXQVZBVFNQi0YkSIXAdEFJifxMi3YoTI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLoof3+/4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFXQVZBVFNQi0YkSIXAdEFJifxMi3YoTI08xfj///8x22YuDx+EAAAAAAAPH0QAAEmLNB5MiedMieLoQf3+/4TAdBBIjUsISTnfSInLdeHrArABSIPECFtBXEFeQV/DkEFXQVZBVFNQSYn2SYn8SIt2KEiJ+ugG/f7/hMB0Q0GLRjBIhcB0Pk2LdjhMjTzF+P///zHbZi4PH4QAAAAAAJBJizQeTInnTIni6NH8/v+EwHQUSI1LCEk530iJy3Xh6wYxwOsCsAFIg8QIW0FcQV5BX8NmLg8fhAAAAAAADx8AQVdBVkFUU1BJifZJifxIi3YoSIn66Ib8/v+EwHRDQYtGMEiFwHQ+TYt2OEyNPMX4////MdtmLg8fhAAAAAAAkEmLNB5MiedMieLoUfz+/4TAdBRIjUsISTnfSInLdeHrBjHA6wKwAUiDxAhbQVxBXkFfw2YuDx+EAAAAAAAPHwBVQVdBVkFVQVRTUEiJ9UmJ/EiLRngx9roAAAAAqAQPhLAAAAAx20iJLCTrGA8fQABIiywkSItFeEiDwwGoBA+EjAAAAEiD4PiLSBBIOctzd0iLQBhIiyzYSIXtdNNMjW0Qi0UMQYnHQYHn////H0nB5wNNhf90JkUx9mYPH0QAAEuLdDUATInn6FOH/v+EwHSfSYPGCE0593Xmi0UMqQAAAEB0jCX///8fSYt0xQBIhfYPhHn///9MiedMieLoXvv+/+lp////SIswSItQCOsEMdIx9kyJ5+gUuP//hMB0WA+2RUrB4BBBtwGpAAABAHRKSInv6HcNAABIicNIie/oHA4AAEg5w3QySYnGSIPDGEiLU/hIizJIg8IITInn6H25//9BiceEwHQRSI1DGEw580iJw3Xa6wNFMf9EifhIg8QIW0FcQV1BXkFfXcMPHwBVQVdBVkFVQVRTUEmJ/EiJNCRIi0Y4Mfa6AAAAAKgED4SvAAAAMdvrGw8fgAAAAABIiwQkSItAOEiDwwGoBA+EjAAAAEiD4PiLSBBIOctzd0iLQBhIiyzYSIXtdNNMjW0Qi0UMQYnHQYHn////H0nB5wNNhf90JkUx9mYPH0QAAEuLdDUATInn6AOG/v+EwHSfSYPGCE0593Xmi0UMqQAAAEB0jCX///8fSYt0xQBIhfYPhHn///9MiedMieLoDvr+/+lp////SIswSItQCOsEMdIx9kyJ5+jEtv//hMB0R0iLBCRIi0A4SInCSIPi+KgEdARIi1IgSIXSdBdIizJIg8IITInn6EW4//+EwHQYsAHrFkiLBCRIi3AwTInn6I3L//+EwHXoMcBIg8QIW0FcQV1BXkFfXcMPH4QAAAAAAFVBV0FWQVVBVFNIg+xISYn1SIn9ZEiLBCUoAAAASIlEJEBIi0Y4Mfa6AAAAAKgESIl8JCAPhLYAAAAx7esSZpBJi0U4SIPFAagED4SXAAAASIPg+ItIEEg5zXN9SItAGEiLHOhIhdt010yNYxCLQwxBicdBgef///8fScHnA02F/3QrRTH2Zi4PH4QAAAAAAEuLNDRIi3wkIOiyhP7/hMB0nkmDxghNOfd15YtDDKkAAABAdIsl////H0mLNMRIhfYPhHn///9Ii3wkIEiJ+ui8+P7/6Wf///9IizBIi1AISItsJCDrCTHSSItsJCAx9kiJ7+hotf//hMAPhNwCAABJi0UoQYtNGEmLlZgAAABIiUQkKIlMJDBIiVQkOEiLRCQ4SIlEJBAPEEQkKA8RBCRIie/oyLX//4TAD4ScAgAATInv6Oh9EABIhcB0QPZAEAZ0OkyLeCBNhf90MUGLXwhIhdt0KEmDxxAPH4AAAAAASInvTIn+6BXV//+EwA+EWQIAAEmDxyBIg8P/deNJi0U4SInCSIPi+KgEdARIi1IgSIXSdBhIizJIg8IISInv6Fy2//+EwHVH6R8CAABNi314TInv6DeAEACFwHQyicVIweUDMdtmLg8fhAAAAAAAkEmLNB9Ii3wkIOhig/7/hMAPhOYBAABIg8MISDnddeFJi0U4qAR0IkiD4PhIi3AoSIX2dBVIi3wkIEiJ+uhv9/7/hMAPhLMBAABBi0Ucg+B/RTHkg/g3TQ9E5Q+FfAAAAEyJ5+jIfxAASYnHTInn6L1/EABJi2wkUEjB7SWB5fj//wBIAcVJOe90UmYPH0QAAEmLH0iLE/bCBnUfSIPi+HQZSIsySIPCCEiLfCQg6H61//+EwA+EQgEAAEiLcwhIi3wkIEiJ+ujl9v7/hMAPhCkBAABJg8cISTnvdbRBi0VQicGB4QAAQAKB+QAAQAB0X0EPtk1USMHhIEgJyInBgeEAAAACSIXJdUapAAAACHUZSYO9gAAAAAB1NYnBgeEAAAAgSIXJdAnrJqkAAAAgdR9IuQAAAAAMAAAASIXIdRBMie/o+X4QAITAD4TOAAAAQLUBQYtFHIPgf4PAykUx/4P4BE0PQv2D+AN3akmNf0jo3H4QAEiLSBBIichIg+D49sEEdANIiwBIjXjASIXASA9E+HRBSIuHgAAAAEiFwHQ1D7ZACsHgEKkAAAgAdCforX4QAEiFwHQdTDn4dBhIiwhIicf/USBJicRJiwdMif//UCBJOcRAhO10HkmLRQBMie//UEBIi3wkIEiJxkiJ+ui89f7/hMB0BLAB6wIxwGRIiwwlKAAAAEg7TCRAdRZIg8RIW0FcQV1BXkFfXcMx7eku////6LdyEADMzMzMzMzMQVZTUEmJ1kiJ8EiJ+4tPCIt3EI0UjQQAAACNPHY5+nM399EB8StLDInyweoDOdF2KYNDCAFIgTgA8P//dASDQwz/SYsOSIkISMdACAAAAABIg8QIW0FewwH2SInf6I4AAACLSxCFyXRuTIsbSYsWidDB6ASJ1sHuCTHGg8H/Ic5IifdIwecESY0EO02LFDtMOdJ0nUG5AQAAAEUxwEmB+gDw//90OEmB8gDg//9NCcJMD0TARAHOQYPBASHOSIn3SMHnBEmNBDtNixQ7TDnSD4Rc////68YxwOlT////TYXASQ9FwOlH////zMzMzMzMQVdBVlNIiftEi3cQTIs/g8b/SInwSNHoSAnwSInBSMHpAkgJwUiJyEjB6ARICchIicFIwekISAnBSInISMHoEEgJyEiJwUjB6SAJwYPBAYP5Qb9AAAAAD0P5iXsQSMHnBL4IAAAA6OV8EABIiQNNhf90KEnB5gRLjRQ3SInfTIn+6MoAAAC6CAAAAEyJ/0yJ9ltBXkFf6eV4EABIx0MIAAAAAItLEEiFyQ+EmQAAAEjB4QRIjXHwiffB7wSDxwFIg+cHdCNI999IicIPH0QAAEjHAgDw//9Ig8IQSP/HdfBIg/5wcwvrYEiJwkiD/nByV0gByGYuDx+EAAAAAABmkEjHAgDw//9Ix0IQAPD//0jHQiAA8P//SMdCMADw//9Ix0JAAPD//0jHQlAA8P//SMdCYADw//9Ix0JwAPD//0iD6oBIOcJ1uFtBXkFfw8zMQVdBVlNJidZIifNJif9Ix0cIAAAAAItPEEiFyQ+EogAAAEmLB0jB4QRIjXHwiffB7wSDxwFIicJIg+cHdCJI999IicJmLg8fhAAAAAAAZpBIxwIA8P//SIPCEEj/x3XwSIP+cHJeSAHIDx+AAAAAAEjHAgDw//9Ix0IQAPD//0jHQiAA8P//SMdCMADw//9Ix0JAAPD//0jHQlAA8P//SMdCYADw//9Ix0JwAPD//0iD6oBIOcJ1uOsKZg8fRAAASIPDEEw58w+EtAAAAEiLA0iJwUiByQAQAABIgfkA8P//dN1NixdBi1cQicHB6QSJxsHuCTHOg8L/IdZIifFIweEESY08CkmLDApIOch1KkiJB0iLQwhIg+D8SIlHCEiDYwgHQYNHCAFIi3sISIPn+HSO6OlsEADrh0G4AQAAAEUxyUiB+QDw//90LUiB8QDg//9MCclMD0TPRAHGQYPAASHWSInxSMHhBEmNPApJiwwKSDnIdJnryk2FyUkPRfnrjltBXkFfw8zMzMzMzMzMzFVBV0FWQVVBVFNIg+wYidFJifdJif5kSIsEJSgAAABIiUQkEEgBd1BIiwe7AQAAAEjT40iLVwhIjQwDSIPB/0iJ3Uj33Ugh6UgpwUgBzkgpwkg51nZXSIPD/06NJDtJgfwBEAAAclS+EAAAAEyJ5+j8eRAASYnHSIkEJEyJZCQIQYtWSEE7VkwPg7AAAABJi0ZAidFIweEEDxAEJA8RBAhBg0ZIAUwB+0gh6+tvSAHISQHHTYk+SInD62FBi0YYSMHoB0iD+B65HgAAAA9CyEG8ABAAAEnT5L4QAAAATInn6It5EABJicVIiQQkQYtWGEE7VhxzZ0mLRhCJ0UiLFCRIiRTIQYNGGAFNAexNiWYITAHrSCHrSQHfTYk+ZEiLBCUoAAAASDtEJBB1UEiJ2EiDxBhbQVxBXUFeQV9dw0mNfkBIg8IBSI13ELkQAAAA6Ex2EABBi1ZI6TH///9JjX4QSIPCAUiNdxC5CAAAAOgtdhAAQYtWGOl6////6F9tEADMzMzMzMzMzMzMzMzMzMxBV0FWU0mJ/0yLN0mLRmCoA3QXQYB/EAB0BzHA6ZgAAABBxkcQAUmLRmCoAXVTicFIg+D89sECdQVIicPrcUiLmAA+AABIhdt0LEgFcAcAAL4YAAAASInHugMAAADoDv7//0iJGMdACAAAAABMiXAQSIPIBOsDTInwSIPIAUmJRmBIicNIg+P4qAR0I0iF23QeSIs7i0cMOUMIdA+JQwhIiwdMifb/kIAAAABIi1sQMcBJOV8ISA9Fw0mJB0yJ+FtBXkFfw8zMzMzMzMzMzMzMQVdBVlNJif9MizdJi0ZoqAN0F0GAfxAAdAcxwOmYAAAAQcZHEAFJi0ZoqAF1U4nBSIPg/PbBAnUFSInD63FIi5gAPgAASIXbdCxIBXAHAAC+GAAAAEiJx7oDAAAA6D79//9IiRjHQAgAAAAATIlwEEiDyATrA0yJ8EiDyAFJiUZoSInDSIPj+KgEdCNIhdt0HkiLO4tHDDlDCHQPiUMISIsHTIn2/5CAAAAASItbEDHASTlfCEgPRcNJiQdMifhbQV5BX8PMzMzMzMzMzMzMzEFXQVZTSYn/TIs3SYtGSKgDdBdBgH8QAHQHMcDpmAAAAEHGRxABSYtGSKgBdVOJwUiD4Pz2wQJ1BUiJw+txSIuYAD4AAEiF23QsSAVwBwAAvhgAAABIice6AwAAAOhu/P//SIkYx0AIAAAAAEyJcBBIg8gE6wNMifBIg8gBSYlGSEiJw0iD4/ioBHQjSIXbdB5IizuLRww5Qwh0D4lDCEiLB0yJ9v+QgAAAAEiLWxAxwEk5XwhID0XDSYkHTIn4W0FeQV/DzMzMzMzMzMzMzMxBV0FWQVRTUEiJ+0yLd2hJi0ZgqAF1TqgCdG5NjX5gSIPg/EyLoAA+AABNheR0LEgFcAcAAL4YAAAASInHugMAAADoufv//0yJIMdACAAAAABMiXAQSIPIBOsDTInwSIPIAUmJB6gEdCBIg+D4dBpIiziLTww5SAh0D4lICEiLB0yJ9v+QgAAAAEiLu4AAAABIi0cYSIPECKgBdQhbQVxBXkFfw1tBXEFeQV/p0HUQAEFXQVZBVUFUU0iJ++g/////SYnGTIt7aEmLR2CoAXVPqAJ0b02NZ2BIg+D8TIuoAD4AAE2F7XQsSAVwBwAAvhgAAABIice6AwAAAOgA+///TIkox0AIAAAAAEyJeBBIg8gE6wNMifhIg8gBSYkEJKgEdCBIg+D4dBpIiziLTww5SAh0D4lICEiLB0yJ/v+QgAAAAEiLg4AAAACLQBBIjQRASY0ExltBXEFdQV5BX8PMVUFXQVZBVUFUU0iD7ChMic1MicNJidVJifdJif5kSIsEJSgAAABIiUQkIEiLelgx0uj6dBAASYnE9oXsAAAAAnQcScHvIEmLfVhEif4x0ujcdBAASInDTCnjSIPDAkyJJCRIiVwkCEiNHdLBqv9Iiee6BgAAAEiJ3jHJ6MB0EABIi2wkCEg56EgPQ8VIKcVIAwQkSIlEJBBIiWwkGEiNfCQQugYAAABIid5Ix8H/////6Jp0EABIicNIg8MBTIt8JBBIi0QkGEg5w0gPQ9hIKetIAcNIOdhID0LYD1fAQQ8RBknHRhAAAAAATYX/dFJIg/vwc25Ig/sXcxGNBBtBiAZNjWYBSIXbdSTrMEiNaxBIg+XwSInv6PRlEABJicRJiUYQSIPNAUmJLkmJXghMiedMif5IidrodGoQAEHGBBwAZEiLBCUoAAAASDtEJCB1GkyJ8EiDxChbQVxBXUFeQV9dw0yJ9+iVahAA6BBoEABVQVdBVkFVQVRTSIHsqAAAAEyJTCQgTIlEJBhJic9JidZJifVIiXwkEEiLjCTgAAAAZEiLBCUoAAAASImEJKAAAABIi1kISIXbD4SNAAAASI1pCOsZZi4PH4QAAAAAAJBIiwNIid1IhcB0dUiJw0iLRCQYSDlDIHfncw1IjWsISItDCEiFwHXjSIN9AAB0Ww9XwEiLRCQQDxEASMdAEAAAAABNhfYPhNgGAABJg//wD4P4BgAASYP/Fw+DiQYAAEONBD9Ii0wkEIgBSI1pAU2F/w+FmAYAAOmhBgAASI1ZCEiJ3UiDfQAAdaW/KAAAAEmJzuipZBAASItMJBhIiUggD1fADxEASIlYEEiJRQBJiw5IiwlIhcl0B0mJDkiLRQBJi34ISInG6PQ1+v9Jg0YQAQ9XwA8pRCRgSMdEJHAAAAAASItEJBiLQCBIhcAPhN0FAABIi0wkGEiLWRhIjQRASI0Ew0iJRCQ46xQPH0QAAEiDwxhIO1wkOA+EsQUAAItDEI1I+WaD+QZyCY1I82aD+QZzbUmLTThJi1VYSI28JIAAAABIid5FMcDoQXIQAA+2lCSAAAAA9sIBdBRIi7QkkAAAAEiLlCSIAAAA6w1mkEjR6kiNtCSBAAAASI18JGDou2kQAPaEJIAAAAABdIFIi7wkkAAAAOjEYxAA6W////9mg/gBdI1Ii2sISIXtD4StAAAASIN8JCAAD4ShAAAASItEJBiLQBBIhcAPhJkAAABIi0wkGEiLSQhIweADRTH2Zi4PH4QAAAAAAA8fRAAASjks8XQMSYPGAUiDwPh18OtfQYP+/3RZSItsJCBIie9EifboiHEQAEmJx0iJ70iJxkyJ6uiHcRAAhMB0E0iLfCQgRIn2TInq6INxEABMizhmQYN/EAEPhMT+//9Mif/ofHEQAIXAD4S0/v//QYnG63JIhe0PhMr+//8PV8APKUQkQEjHRCRQAAAAAEyLdRBFiz4PKUQkQEjHRCRQAAAAAEmD/xcPg6oCAABDjQQ/iEQkQEiNRCRBTYX/D4W3AgAA6coCAABmLg8fhAAAAAAAkOibYhAASYPHGEmDxv8PhD3+//9Bi0cQjUj5ZoP5BnIJjUjzZoP5BnN3SYtNOEmLVVhIjbwkgAAAAEyJ/kUxwOiMcBAAD7aUJIAAAAD2wgF0H0iLtCSQAAAASIuUJIgAAADrGGYuDx+EAAAAAAAPHwBI0epIjbQkgQAAAEiNfCRg6PtnEAD2hCSAAAAAAQ+Ecv///0iLvCSQAAAA6WD///9mg/gBdINJi0cISIXAD4R2////D1fADylEJEBIx0QkUAAAAABIiUQkMEiLcBCLLg8pRCRASMdEJFAAAAAASIP9F3MUjUQtAIhEJEBMjWQkQUiF7XUy6z9MjWUQSYPk8EyJ50iJdCQo6HRhEABIi3QkKEiJRCRQSYPMAUyJZCRASYnESIlsJEhIg8YQTInnSInq6OplEABBxgQsAEiLVCQw9kIDAg+EhgAAAA9XwA8phCSAAAAASMeEJJAAAAAAAAAASI28JIAAAABMie7o7wQAAEiLvCSAAAAASIuEJJAAAABIg/8HdwVIhcB0REiFwHQvSIuMJIgAAABIi0TB+EiDwBBMiwBNhcB0Jg+2TCRA9sEBdFlIi1QkUEiLTCRI61VIg+f4dArohWkQAEiFwHXOD7ZUJED2wgF0DEiLdCRQSItUJEjrCEjR6kiNdCRBSI18JGDoiGYQAPZEJEABD4QC/v//SIt8JFDp8/3//0jR6UiNVCRBSIuEJOAAAABIiQQkSI28JIAAAABMie5FMcnorPr//w+2lCSAAAAA9sIBdBJIi7QkkAAAAEiLlCSIAAAA6wtI0epIjbQkgQAAAEiNfCRg6BhmEAD2hCSAAAAAAXSGSIu8JJAAAADoIWAQAOl0////TY1nEEmD5PBMiefo7F8QAEiJRCRQSYPMAUyJZCRATIl8JEhJg8YQSYnESInHTIn2TIn66GRkEABMieBCxgQ4APZFAwIPhIkAAAAPV8APKYQkgAAAAEjHhCSQAAAAAAAAAEiNvCSAAAAATInuSInq6GgDAABIi7wkgAAAAEiLhCSQAAAASIP/B3cFSIXAdERIhcB0L0iLjCSIAAAASItEwfhIg8AQTIsATYXAdCYPtkwkQPbBAXReSItUJFBIi0wkSOtaSIPn+HQK6P5nEABIhcB1zg+2VCRA9sIBdAxIi3QkUEiLVCRI6whI0epIjXQkQUiNfCRg6AFlEAD2RCRAAQ+Exvr//0iLfCRQ6AxfEADpt/r//0jR6UiNVCRBSIuEJOAAAABIiQQkSI28JIAAAABMie5FMcnoIPn//w+2lCSAAAAA9sIBdBJIi7QkkAAAAEiLlCSIAAAA6wtI0epIjbQkgQAAAEiNfCRg6IxkEAD2hCSAAAAAAXSBSIu8JJAAAADolV4QAOlv////SItEJHBIi0wkEEiJQRAPKEQkYA8RAes7SY1fEEiD4/BIid/oSF4QAEiJxUiLRCQQSIloEEiDywFIiRhMiXgISInvTIn2TIn66MNiEABCxkQ9AABkSIsEJSgAAABIO4QkoAAAAHUhSItEJBBIgcSoAAAAW0FcQV1BXkFfXcNIi3wkEOjZYhAA6FRgEAAPH0AAQVZTSIPsKEiJ+2RIiwQlKAAAAEiJRCQgSI1EJBAPV8APEUQkEEiJRCQITI10JAhMiTQk6Aj4//9Ii3QkEEyJ9+h7CAAAZEiLBCUoAAAASDtEJCB1C0iJ2EiDxChbQV7D6OtfEABmLg8fhAAAAAAAkEFXQVZBVUFUU0iD7DBIidBJif5kSIsMJSgAAABIiUwkKEiLTjhIi1ZYSInHMfZFMcDo2msQAEiJRCQISIlUJBBIjR1ZuKr/SI18JAi6BgAAAEiJ3jHJ6EVrEABMi2QkEEw54EkPQ8RJKcRIA0QkCEiJRCQYTIlkJCBIjXwkGLoGAAAASIneSMfB/////+geaxAASInDSIPDAUyLfCQYSItEJCBIOcNID0PYTCnjSAHDSDnYSA9C2A9XwEEPEQZJx0YQAAAAAEiD+/BzbUiD+xdzEY0EG0GIBk2NZgFIhdt1JOswTI1rEEmD5fBMie/ofVwQAEmJxEmJRhBJg80BTYkuSYleCEyJ50yJ/kiJ2uj9YBAAQcYEHABkSIsEJSgAAABIO0QkKHUZTInwSIPEMFtBXEFdQV5BX8NMiffoH2EQAOiaXhAAzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYn/ZEiLBCUoAAAASIlEJBBIiVQkCPZCAwJ1FA9XwEEPEQdJx0cQAAAAAOlPAQAASYn2SIu+6AUAAItHEIXAdGtMixeJ1cHtBInRwekJMemDwP8hwUiJzkjB5gRJjRwySYssMkg51XRVQbkBAAAARTHASIH9APD//w+EIgEAAEiB9QDg//9MCcVMD0TDRAHJQYPBASHBSInOSMHmBEmNHDJJiywySDnVdBTrxjHbSI1UJAhIid7o9wAAAEiJw0iLSwhIichIg+D49sEEdAhIhcB0A0iLAEiDwwhFMeRIhcB0Iw+2SAyA4QOA+QJ1CkiLAEiFwHXs6w1Ig+D7RTHkhMlMD0TgSItUJAhIid9Mifbo7QQAAEiFwHQlSItICEUx7b0AAAAASIP5CHIk9sEEdRVIg8AIvQEAAABJicXrEUUx7THt6wpIg+H4TIspi2kISItUJAhIid9MifboogQAAEiFwHQKD7ZAFEjB4ALrAjHATAngSYkHTYlvCEmJbxBkSIsEJSgAAABIO0QkEHUeTIn4SIPEGFtBXEFdQV5BX13DTYXASQ9F2OkB////6NBcEABBVlNQSYnWSInwSIn7i08Ii3cQjRSNBAAAAI08djn6czf30QHxK0sMifLB6gM50XYpg0MIAUiBOADw//90BINDDP9Jiw5IiQhIx0AIAAAAAEiDxAhbQV7DAfZIid/ojgAAAItLEIXJdG5MixtJixaJ0MHoBInWwe4JMcaDwf8hzkiJ90jB5wRJjQQ7TYsUO0w50nSdQbkBAAAARTHASYH6APD//3Q4SYHyAOD//00JwkwPRMBEAc5Bg8EBIc5IifdIwecESY0EO02LFDtMOdIPhFz////rxjHA6VP///9NhcBJD0XA6Uf////MzMzMzMxBV0FWU0iJ+0SLdxBMiz+Dxv9IifBI0ehICfBIicFIwekCSAnBSInISMHoBEgJyEiJwUjB6QhICcFIichIwegQSAnISInBSMHpIAnBg8EBg/lBv0AAAAAPQ/mJexBIwecEvggAAADoBWcQAEiJA02F/3QoScHmBEuNFDdIid9Mif7oygAAALoIAAAATIn/TIn2W0FeQV/pBWMQAEjHQwgAAAAAi0sQSIXJD4SZAAAASMHhBEiNcfCJ98HvBIPHAUiD5wd0I0j330iJwg8fRAAASMcCAPD//0iDwhBI/8d18EiD/nBzC+tgSInCSIP+cHJXSAHIZi4PH4QAAAAAAGaQSMcCAPD//0jHQhAA8P//SMdCIADw//9Ix0IwAPD//0jHQkAA8P//SMdCUADw//9Ix0JgAPD//0jHQnAA8P//SIPqgEg5wnW4W0FeQV/DzMxBV0FWQVVBVFNJidZIifNJif9Ix0cIAAAAAItPEEiFyQ+ErgAAAEmLB0jB4QRIjXHwiffB7wSDxwFIicJIg+cHdB5I999IicIPH4QAAAAAAEjHAgDw//9Ig8IQSP/HdfBIg/5wcm5IAcgPH4AAAAAASMcCAPD//0jHQhAA8P//SMdCIADw//9Ix0IwAPD//0jHQkAA8P//SMdCUADw//9Ix0JgAPD//0jHQnAA8P//SIPqgEg5wnW46xpMiefoflcQAGYuDx+EAAAAAAAPH0AASIPDEEw58w+EHAEAAEiLA0iJwUiByQAQAABIgfkA8P//dN1NixdBi1cQicHB6QSJxsHuCTHOg8L/IdZIifFIweEESY08CkmLDApIOcgPhYcAAABIiQdIi0MISIlHCEjHQwgAAAAAQYNHCAFMi2sIQfbFBHSLSYPl+HSFTYtlGEH2xAR0IUmD5Ph0G0mLPCRJjUQkEEg5x3QF6DJbEABMiefoylYQAE2LZQhB9sQED4RM////SYPk+A+EQv///0mLPCRJjUQkEEg5xw+EGv///+j7WhAA6RD///9BuAEAAABFMclIgfkA8P//dDFIgfEA4P//TAnJTA9Ez0QBxkGDwAEh1kiJ8UjB4QRJjTwKSYsMCkg5yA+EOP///+vGTYXJSQ9F+ekq////W0FcQV1BXkFfw8zMzMzMzMzMzMzMzMxBV0FWQVRTUEmJ1EmJ9kmJ/0iLAkgPuuAkcw9MifdMiebommQQAEmLBCSpAAAAAg+EnQAAAEmLRjj3QAwgAAIAD4SMAAAASYuG6AUAAItAMIXAdH5Jiw9IictIweM9SMH7P0ghy0iD4/h1UkmNvoAAAAC+IAAAALoEAAAA6B/p//9IicNJiwdIg+D4SIkDSMdDCAAAAADHQxAAAAAAxkMUAEjHQxgAAAAASInYSIPIBEmJB0mLhugFAACLQDA7QxB0EkyJ90yJ5kiJ2ugAZBAA6wIx20iJ2EiDxAhbQVxBXkFfw8zMzMzMzMzMzMzMzMxIhfZ0LUFWU1BIifNJif5Iizbo6f///0iLcwhMiffo3f///0iJ30iDxAhbQV7pDlUQAMPMzMzMzMzMzMzMzMzMSI0FacEQAMPMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYn2SIn7ZEiLBCUoAAAASIlEJBD2BgF0BkmLfhDrBEmNfgFIjTWjal7/6GNjEABIicVIhcAPhLoAAABIie8x9roCAAAA6FhjEACFwA+FJgEAAEiJ7+hYYxAASYnHSIXAD4hLAgAASInvMfYx0ugwYxAAhcAPhWcDAAAPV8APEQNIx0MQAAAAAEiJ30yJ/jHS6C1jEAD2AwF0BkiLexDrBEiNewG6AQAAAEyJ/kiJ6egeYxAASIP4AQ+FUwQAAEiJ7+gcYxAAg/j/D4R1BQAAZEiLBCUoAAAASDtEJBAPhZ8GAABIidhIg8QYW0FcQV1BXkFfXcNIjTVQ16D/TI18JAhMif+6GQAAALkGAAAARTHAQbn/////6BZZEABMif/oHlkQAEiNNU/XoP+6HwAAAEiJx+iqMf3/SI0118Gw/roBAAAASInH6JYx/f9IjTXJ4PL/uhkAAABIicfogjH9/0iJx0yJ9uhXKv3/TIn/6N9YEADpw/7//0GJx0iNbCQITI0lj8Gw/kyNLQKT7/9IjR2mie//Zi4PH4QAAAAAAA8fAEiJ70iNNaDWoP+6GgAAALkGAAAARTHAQbn/////6G5YEABIie/odlgQALoOAAAASInHSI01MfyU/+gCMf3/uhMAAABIicdIjTWNTKf/6O4w/f+6AQAAAEiJx0yJ5ujeMP3/ugIAAABIicdIjTVE9Hn/6Mow/f+6AQAAAEiJx0yJ5ui6MP3/ugEAAABIicdIjTU/917/6KYw/f+6FgAAAEiJx0iNNXdHqP7okjD9/0iJx0SJ/uh3WhAAugQAAABIicdIjTUmTKf/6HMw/f9Iiccx9uhZWhAAugIAAABIicdMie7oWTD9/7oOAAAASInHSIne6Ekw/f9IicdMifboHin9/0iJ7+imVxAA6fH+//9IjWwkCEyNJVnAsP5MjS3Mke//SI0da9/y/w8fgAAAAABIie9IjTVw1aD/uhwAAAC5BgAAAEUxwEG5/////+g+VxAASInv6EZXEAC6DgAAAEiJx0iNNQH7lP/o0i/9/7oEAAAASInHSI01jvV7/+i+L/3/ugEAAABIicdMiebori/9/7oCAAAASInHSI01lkao/uiaL/3/ugEAAABIicdMieboii/9/7oBAAAASInHSI01D/Ze/+h2L/3/ugcAAABIicdIjTVdrlP/6GIv/f9IicdMif7oZ2AQALoEAAAASInHSI019kqn/+hDL/3/SInHMfboKVkQALoCAAAASInHTInu6Ckv/f+6DQAAAEiJx0iJ3ugZL/3/SInHTIn26O4n/f9Iie/odlYQAOnx/v//QYnESI1sJAhMjT0mv7D+TI0tmZDv/0iNHT2H7/8PH0AASInvSI01QNSg/7odAAAAuQYAAABFMcBBuf/////oDlYQAEiJ7+gWVhAAug4AAABIicdIjTXR+ZT/6KIu/f+6EwAAAEiJx0iNNR5GuP7oji79/7oBAAAASInHTIn+6H4u/f+6AgAAAEiJx0iNNeTxef/oai79/7oBAAAASInHTIn+6Fou/f+6AQAAAEiJx0iNNd/0Xv/oRi79/7oWAAAASInHSI016kmn/+gyLv3/SInHRInm6BdYEAC6BAAAAEiJx0iNNcZJp//oEy79/0iJxzH26PlXEAC6AgAAAEiJx0yJ7uj5Lf3/ug4AAABIicdIid7o6S39/0iJx0yJ9ui+Jv3/SInv6EZVEADp8f7//0mJx0iNbCQITI0l9r2w/kyNLWmP7/9IjR1wSsL/Dx9AAEiJ70iNNRDToP+6IAAAALkGAAAARTHAQbn/////6N5UEABIie/o5lQQALoOAAAASInHSI01ofiU/+hyLf3/uiMAAABIicdIjTXVMrX+6F4t/f+6AQAAAEiJx0yJ5uhOLf3/ugIAAABIicdIjTW08Hn/6Dot/f+6AQAAAEiJx0yJ5ugqLf3/ugEAAABIicdIjTVGJaf/6BYt/f+6JgAAAEiJx0iNNR2ksf/oAi39/0iJx0yJ/uj3VhAAugQAAABIicdIjTWr617/6OMs/f9Iice+AQAAAOjGVhAAugIAAABIicdMie7oxiz9/7oOAAAASInHSIne6LYs/f9IicdMifboiyX9/0iJ7+gTVBAA6e7+//9IjWwkCEiNHca8sP5MjT12zK3+TI0lMo7v/0yNLd+fov9mLg8fhAAAAAAADx8ASInvSI010NGg/7ohAAAAuQYAAABFMcBBuf/////onlMQAEiJ7+imUxAAug4AAABIicdIjTVh95T/6DIs/f+6DgAAAEiJx0iNNVm6sP7oHiz9/7oBAAAASInHSIne6A4s/f+6AgAAAEiJx0iNNclHp//o+iv9/7oBAAAASInHSIne6Oor/f+6BAAAAEiJx0iNNSC6sP7o1iv9/7oRAAAASInHSI01kkjC/+jCK/3/SInHvv/////opVUQALoHAAAASInHTIn+6KUr/f9Iice+/////+iIVRAAugIAAABIicdMieboiCv9/7oPAAAASInHTInu6Hgr/f9IicdMifboTST9/0iJ7+jVUhAA6fD+///oq08QAMzMzMzMzMzMzMzMVUFXQVZBVUFUU0iB7IgAAABIiVQkKEiJfCQQZEiLBCUoAAAASImEJIAAAABMiyZIiXQkGEiLRghIiUQkIEk5xA+EqwEAAEmJzUmDxClIjWwkUOsjZi4PH4QAAAAAAGaQSY1EJFhJg8QvTDtkJCBJicQPhHoBAAAPV8APKUQkYEjHRCRwAAAAAEEPtkQk50mNVCToSInBSNHpqAFJi0Qk90gPRMJIiUQkUEkPRUwk70iJTCRYSYnuSInv6EEHAQCJw0EPtkQk/0iJwUjR6agBSYtEJA9JD0TESIlEJEBJD0VMJAdIiUwkSEiNfCRA6A4HAQCJxUEPtkQkF0mNVCQYSInBSNHpqAFJi0QkJ0gPRMJIiUQkMEkPRUwkH0iJTCQ4SI18JDDo1gYBADnrD0zdOcMPTNiJ2A9XwA8pRCRgSMdEJHAAAAAA/8B1FUUx/zHb60lmLg8fhAAAAAAADx9AAIP7/g+OtwIAAEhj6EjB5QRIie/ouEsQAEmJx0iJRCRgSI0cKEiJXCRwSInHMfZIieroSk8QAEiJXCRoSYt8JNdIi0QkKEiJRCRQTIlsJFhMKftIwesEiRwkTIn1TIn2MdJMielBuAIAAABNifnongYBAITAdTZNhf8PhIH+//9MiXwkaEyJ/+hkSxAA6W/+//9Ii3QkGEiDxhhIi2wkEEiJ7+iJT/z/6ewBAAAPV8BIi2wkEA8RRTAPEUUgDxFFEA8RRQBIie/oBE/8/0EPtkwk50iJyEjR6IDhAUmLVCTvSInWSA9E8EiF9nR0TYtsJNdIi3UYSDs1VAURAHU0SItEJBBIjWgYSIs1QgURAEiJ7+h6s/r/SIt1AEiLbCQQQQ+2RCTnSYtUJO+JwYDhAUjR6ITJSY1MJOhJD0VMJPdIiUwkUEgPRcJIiUQkWEiNVCRQTInvTIn5QYnY6OASAQBBD7ZMJP9IichI0eiA4QFJi1QkB0iJ1kgPRPBIhfZ0ck2LdCTXSIt1IEg7NcAEEQB1NEiLRCQQTI1oIEiLNa4EEQBMie/o5rL6/0mLdQBIi2wkEEEPtkQk/0mLVCQHicGA4QFI0eiEyUmLTCQPSQ9EzEiJTCRQSA9FwkiJRCRYSI1UJFBMifdMiflBidjoThIBAEEPtkwkF0iJyEjR6IDhAUmLVCQfSInWSA9E8EiF9nR0TYt0JNdIi3UoSDs1LgQRAHU0SItEJBBMjWgoSIs1HAQRAEyJ7+hUsvr/SYt1AEiLbCQQQQ+2RCQXSYtUJB+JwYDhAUjR6ITJSY1MJBhJD0VMJCdIiUwkUEgPRcJIiUQkWEiNVCRQTIn3TIn5QYnY6LoRAQBNhf90DUyJfCRoTIn/6FhJEABkSIsEJSgAAABIO4QkgAAAAHUfSInoSIHEiAAAAFtBXEFdQV5BX13DSI18JGDoNk4QAOhxSxAAkEFXQVZTSYnOSYnXSIn7D1fADxFHMA8RRyAPEUcQDxEH6Kv7//9Ii0soD7YBqAF0C0iLQQhIhcB1GOsISNHoSIXAdQ5Iid9Mif5MifLoTxMAAEiJ2FtBXkFfw2YPH0QAAEFWU0iD7ChJic5IidFIifJIif5kSIsEJSgAAABIiUQkIEjHRCQYAAAAAEiNfCQY6LwAAABIi1wkGEiF23R+TYX2dHlIhdt0GkiJ50iNdCQYugEAAADoFncEAEH2BgF1KOtED1fADykEJEjHRCQQAAAAAMYEJARmx0QkAU9LxkQkAwBB9gYBdB5Ji0YQxgAAScdGCAAAAABB9gYBdAlJi34Q6BpIEABIi0QkEEmJRhAPKAQkQQ8RBkiLXCQY9sMBdAhIid/oN3EEAEiF2w+UwGRIiwwlKAAAAEg7TCQgdQhIg8QoW0Few+gkShAADx9AAFVBV0FWQVVBVFNIgex4AQAASInLSInVSYn3SYn+ZEiLBCUoAAAASImEJHABAAAPV8APKYQkkAAAAA8phCSgAAAADymEJIAAAAAPKUQkcA8pRCRgDylEJFBIx4QkmAAAAAAEAADHhCSgAAAAAAAAAL8oAAAA6DdHEABIxwAAAAAASMdACAAAAQAPV8APEUAQSMdAIAAAAABIiUQkYEiJRCRoSImsJLAAAABIiawkuAAAAEiNRB0ASImEJMAAAABIiZwkyAAAAEyNpCSwAAAATImkJEABAABIhdt0QIB9AO91DEiDxQFIiawksAAAAEg5xXQpgH0Au3UMSIPFAUiJrCSwAAAASDnFdBKAfQC/dQxIg8UBSImsJLAAAABIjXwkUEiNtCRAAQAA6EMVAACLhCSgAAAAhcB0IYPA/4P4EA+HwgcAAEiYSI0NGxHz/0hjPIFIAc/ptAcAAGaDfCReBA+FXggAAEyJfCQQg3wkUAAPhFwIAABIuf///////wAATIt8JFhJIc9IjRV/m7H/SInQSMHoEMH4GL4NAAAAKcaJdCQMSCHKSIlUJChIjQXOvRAASIPAEEiJRCQgTIk0JJBmQYN/DgMPhSAIAAAPV8APKYQksAAAAGbHhCS+AAAABQRIi4QkuAAAAEi5AAAAAAAA//9IIchIjQ0Qm7H/SAnISImEJLgAAADHhCSwAAAABwAAAE2LdwhIuf///////wAASSHOSLkAAAAAAAAAEEiFyItEJAxBicW4BwAAAEQPROhBix9MD0RkJChIhdt0ckyJ9UjB4wVJAd7rDw8fRAAASIPFIEiDw+B0Vw+3RQ6pABAAAHULi00AQTnNdePrEZAPvlUNuQ0AAAAp0UE5zXXQSIt1CEi5////////AABIIc6pABAAAEgPRfVJOfR0D0yJ50yJ6uiGSBAAhcB1okmJ7kmLRwhIuf///////wAASCHIQYsPSMHhBUgBwUk5zg+E9QYAAEH2Rh8ED4TqBgAASY1GEA9XwA8phCTwAAAADymEJOAAAAAPKYQk0AAAAA8phCTAAAAADymEJLAAAABIx4QkAAEAAAAAAABBD7dOHkmLXhhIuv///////wAASCHT98EAEAAASA9F2L/gAAAA6FtEEABIicUPV8APEUAISItEJCBIiUUATI11GEyJ90iJ3uiZ4wAATIm0JLAAAABIi5wkuAAAAEiJrCS4AAAASIXbdCNIx8D/////8EgPwUMISIXAdRFIiwNIid//UBBIid/oyUsQAEyLrCSwAAAAQYO9gAAAAAB0J0mLdXgPthb2wgEPhCcBAABIi1YISIt2EOkhAQAAZi4PH4QAAAAAAA9XwA8phCRAAQAAZseEJE4BAAAFBEiLhCRIAQAASLkAAAAAAAD//0ghyEyNJR/R8v9MCeBIiYQkSAEAAMeEJEABAAAFAAAASYtvCEi6////////AABIIdVMieFIwekQwfkYQb4NAAAAQSnOSSHUSLkAAAAAAAAAEEiFyLgFAAAARA9E8EGLH0iNhCRAAQAATA9F4EiF2w+ElAAAAEiJ6EjB4wVIAdhIiUQkGOsNDx8ASIPFIEiDw+B0cQ+3RQ6pABAAAHULi00AQTnOdePrEZAPvlUNuQ0AAAAp0UE5znXQSIt1CEi5////////AABIIc6pABAAAEgPRfVJOfR0MUyJ50yJ8uhGRhAAhcB1ousgSIPGAUjR6kyLNCRMjaQksAAAAEyJ9+mpAAAASItsJBhJi0cISLn///////8AAEghyEGLD0jB4QVIAcFIOc1MizQkTI2kJLAAAAB0aWaDfR4DdWJIg8UQD1fADymEJFABAAAPKYQkQAEAAEG4BAAAAEiNvCRAAQAATInuSInqSI0NjiGn/+i2BAAASIuEJEABAABIhcAPhBABAABJiQa9AQAAAKgBD4QaAwAA8INA/wHpEAMAALojAAAATIn3SI01Cp9T/+gXfgQAvQEAAAD2hCTwAAAAAQ+FlAAAAPaEJNgAAAABD4WhAAAA9oQkwAAAAAF0DUiLvCTQAAAA6M9BEABIi5wkuAAAAEiF23QjSMfA//////BID8FDCEiFwHURSIsDSInf/1AQSInf6E9JEACF7Q+FxwMAAEmDxxBIi0QkWEi5////////AABIIciLTCRQSMHhBEgBwUk5zw+FXfv//+lpAwAADx+EAAAAAABIi7wkAAEAAOhTQRAA9oQk2AAAAAEPhF////9Ii7wk6AAAAOg4QRAA9oQkwAAAAAEPhU7////pVv////aEJNgAAAABdC5Ii4Qk6AAAAMYAAEjHhCTgAAAAAAAAAPaEJNgAAAABdA1Ii7wk6AAAAOjtQBAASI2MJEgBAABIi0EQSI2UJNgAAABIiUIQDxABDxECD1fADxEBSMdBEAAAAAAPKYQkIAEAAA8phCQQAQAASIu0JLAAAABBuAYAAABIjbwkEAEAAEiJ6kiNDXARtf7o/AIAAEiLhCQQAQAASIXAdBpJiQa9AQAAAKgBD4QzAQAA8INA/wHpKQEAAPaEJMAAAAABdC5Ii4Qk0AAAAMYAAEjHhCTIAAAAAAAAAPaEJMAAAAABdA1Ii7wk0AAAAOgtQBAASI2UJBgBAABIi0IQSI2MJNgAAABIiUH4DxACDxFB6A9XwA8RAkjHQhAAAAAADylEJEAPKUQkMEiLtCSwAAAAQbgEAAAASI18JDBIiepIjQ0fUun/6EQCAABIi0QkMEiFwHQTSYkGvQEAAACoAXR48INA/wHrcfaEJPAAAAABdC5Ii4QkAAEAAMYAAEjHhCT4AAAAAAAAAPaEJPAAAAABdA1Ii7wkAAEAAOh/PxAASI1UJDhIi0IQSI2MJNgAAABIiUEoDxACDxFBGA9XwA8RAkjHQhAAAAAASIt8JBBMiebo+AoAADHtSI18JDDobAsAAEiLvCQQAQAASIX/dA1A9scBdB7oZGgEAOsX9oQkGAEAAAF0DUiLvCQoAQAA6As/EABIi7wkQAEAAEiF/3QUQPbHAQ+E8vz//+gvaAQA6ej8///2hCRIAQAAAQ+E2vz//0iLvCRYAQAA6M8+EADpyPz//0iNPZHM8v9IibwksAAAAOi2QxAASImEJLgAAABIjQUJzPL/SImEJEABAABIx4QkSAEAAA0AAABIi7wkqAAAAEiNnCQgAQAASIne6KvABgBIKdhIiZwkEAEAAEiJhCQYAQAASI18JDBIjbQksAAAAEiNlCRAAQAASI2MJBABAADoNisHAA+2VCQw9sIBdAxIi3QkQEiLVCQ46whI0epIjXQkMUyJ9+gwegQA9kQkMAF0SUiLfCRA6A8+EADrPUiNNTToov+6JgAAAOsnSccGAAAAAOsmSI01v+F7/7oiAAAATIs0JOsMSI01cyG1/rodAAAATIn36OB5BABIjXwkUOgmCgAAZEiLBCUoAAAASDuEJHABAAB1FUyJ8EiBxHgBAABbQVxBXUFeQV9dw+jpPxAAZg8fhAAAAAAAVUFXQVZBVUFUU0iB7AgBAABIiXQkKGRIiwQlKAAAAEiJhCQAAQAAD1fADymEJNAAAABIhclIiXwkEEiJTCQgD4SCBwAASYnNSLgAAAAAAAAFBEwJ6EiJhCTYAAAARImEJNAAAABMi3IISL7///////8AAEkh9osKSYnMScHkBUyJ6kjB6hDB+hi9DQAAACnVSSH1SA+64DxMiUQkGEEPQ+hMjbwk0AAAAE0PQu9MifNIhckPhIwAAABNiedMifPrHWYuDx+EAAAAAAAPH0QAAEiDwyBJg8fgD4QIAQAAD7dDDqkAEAAAdReLCznNdeHrHmYuDx+EAAAAAAAPH0QAAA++Uw25DQAAACnROc11wUiLcwhIuf///////wAASCHOqQAQAABID0XzSTn1dA9Mie9Iieroxz8QAIXAdZNMjbwk0AAAAE0B5kw58w+ElQAAAA+3Qx6pAAQAAA+FmgAAAEiNBQrZ7f9IiYQk0AAAAEjHhCTYAAAADwAAAEiLRCQgSImEJKAAAABIi0QkGEiJhCSoAAAASI0FpQ+n/0iJRCRwSMdEJHgRAAAASI18JFBIjbQk0AAAAEiNlCSgAAAASI1MJHDotygHAA+2VCRQ9sIBD4SPAwAASIt0JGBIi1QkWOmIAwAAD1fASItcJBAPEUMQDxED6aUFAABIuf///////wAASCNLGEiDwxCpABAAAEgPRNlIid/oc0AQAEmJxg9XwA8pRCRQSMdEJGAAAAAASI2sJKAAAABMi2wkKOsZTQHmTAHzSItsJBhMKfVJie5IjawkoAAAAEiNBRAIAABIiUQkcEiNBQQZEQBIiUQkOEiLBRAZEQBIg/j/dDhIjUQkcEiJhCTQAAAASI1EJDhIiYQk2AAAAEyJvCSgAAAASI094RgRAEiJ7kiNFU8IAADo+kkQAEiLPcMYEQAPV8APKYQk0AAAAEiJnCSgAAAATIm0JKgAAADHBCQBAAAASInuMdJMifFFMcBNifnovvUAAITAD4S+AgAATIl0JBhMi6Qk2AAAAE2F5A+E3QQAAEyLtCTQAAAASY1sJP5JjX4BSY1EJP9IOehID0Lox4Qk0AAAAAAAAABIiXwkIEiJ7kyJ+rkKAAAA6LPFBgCEwHQfi6wk0AAAAIXtD4X9AAAA6cgCAABmLg8fhAAAAAAAkEyJ7+jY7QAAD1fADymEJNAAAABIx4Qk4AAAAAAAAABIg/3wD4NZBAAASIlEJDBIg/0XcxyNRC0AiIQk0AAAAEyNvCTRAAAASIXtdTjrRWaQTI1tEEmD5fBMie/ooDkQAEmJx0iJhCTgAAAASYPNAUyJrCTQAAAATItsJChIiawk2AAAAEyJ/0mNdgFIieroDT4QAEHGBC8ASIt8JDBIjbQk0AAAAOj2BgAASYnH9oQk0AAAAAF0DUiLvCTgAAAA6Fw5EABMie/oFO0AAEiDwAhJOccPhKECAABBi284TI28JNAAAACF7Q+E0AEAAEE7bWgPj8YBAABJKd5Ii0QkGEw58EwPQvBIjQWyLrj+SImEJNAAAABIx4Qk2AAAAAEAAABIjQUc13n/SImEJOAAAABIx4Qk6AAAAAIAAABBuAEAAABIjXwkOEiJ3kyJ8kyJ+eibMwcAD7ZEJDioAXQSSItMJEhIi0QkQOsOZg8fRAAASNHoSI1MJDlIiYwk0AAAAEiJhCTYAAAASI0FMC64/kiJhCSgAAAASMeEJKgAAAABAAAAie9IjawkgAAAAEiJ7uh7ugYASCnoSIlsJHBIiUQkeEiNfCRQTIn+SI2UJKAAAABIjUwkcOikLAcA9kQkOAEPhOn8//9Ii3wkSOgvOBAA6dr8//9I0epIjXQkUUiLXCQQSI18JDjoI3QEAEiLRCQ4SIkDSMdEJDg2AAAASIXAD4X3AQAASInf6AGGBABIi3wkOED2xwEPhOABAADoHWEEAOnWAQAASI0FcC24/kiJhCTQAAAASMeEJNgAAAABAAAASI0F2tV5/0iJhCTgAAAASMeEJOgAAAACAAAASI28JKAAAABIjYwk0AAAAEG4AQAAAEiJ3kyJ8uhRMgcAD7aEJKAAAACoAXRXSIuMJLAAAABIi4QkqAAAAOtQSI0FLxR8/0iJhCTQAAAASMeEJNgAAAAcAAAASI2cJLAAAACJ70iJ3uhGuQYASCnYSImcJKAAAABIiYQkqAAAAOmoAAAASNHoSI2MJKEAAABIi1wkEEiJjCTQAAAASImEJNgAAABIjXwkUEiNtCTQAAAA6CwqBwD2hCSgAAAAAXQNSIu8JLAAAADo1TYQAEiLRCRgSIlDGA8oRCRQDxFDCA9XwA8pRCRQSMdEJGAAAAAASMcDAAAAAOmkAAAASI0FmzCn/0iJhCTQAAAASMeEJNgAAAAXAAAASItEJCBIiYQkoAAAAEiJrCSoAAAASI18JHBIjbQk0AAAAEiNlCSgAAAA6FwiBwAPtlQkcPbCAXQPSIu0JIAAAABIi1QkeOsISNHqSI10JHFIi1wkEEiNfCQ46DxyBABIi0QkOEiJA0jHRCQ4NgAAAEiFwHRZ9kQkcAF0DUiLvCSAAAAA6AI2EAD2RCRQAXQKSIt8JGDo8TUQAGRIiwQlKAAAAEg7hCQAAQAAdU1IidhIgcQIAQAAW0FcQV1BXkFfXcNMjS2i9fL/6XX4//9Iid/oxYMEAEiLfCQ4QPbHAXSU6OVeBADrjeiOOhAASI28JNAAAADoYToQAOjcNxAAzMzMzMzMzMzMzMzMQVdBVkFVQVRTSIPsIGRIiwQlKAAAAEiJRCQYD1fADykEJEjHRCQQAAAAAEiD+vAPg+YAAABJidVJifdJif5Ig/oXcxRDjUQtAIgEJEyNZCQBTYXtdSfrM0mNXRBIg+PwSInf6Pg0EABJicRIiUQkEEiDywFIiRwkTIlsJAhMiedMif5MierodTkQAEPGBCwASYteKEg7HUXvEAB0DPYDAXUnZscDAADrRL8YAAAA6K00EAAPKAQkDxEASItMJBBIiUgQSYlGKOs0SItDEMYAAEjHQwgAAAAA9gMBdBBIi3sQ6Jo0EABIxwMAAAAASItEJBBIiUMQDygEJA8RA2RIiwQlKAAAAEg7RCQYdRZIg8QgW0FcQV1BXkFfw0iJ5+gtORAA6Kg2EADMzMzMzMzMzEFXQVZTSYn3SYn+SItfCEg7XxB0UUmLB0iJA0mLRwhIiUMISIXAdAbwSINACAFIjXsQSY13EOg1NxAASI17KEmNdyjoKDcQAEiDw0BJg8dASInfTIn+6BU3EABJg0YIWFtBXkFfw0yJ90yJ/ltBXkFf6ZoiAADMzMzMzMzMzMzMSIn4SIs/SIX/dAtA9scBdAvp+lwEAPZACAF1AcNIi3gY6aozEADMzMzMzMzMzMzMQVdBVlNJif5Mi38YTYX/dElJiz9Ihf90Kw8fgAAAAABJOX8QdBZIi18Q6NE3EABJiR9Iid9Ihdt15usISMdHCAAAAABJi38gSIX/dAXoTjMQAEyJ/+hGMxAASYt+MOidNxAASYt+KEiF/3QKW0FeQV/pKjMQAFtBXkFfw8zMzMxBV0FWU0iD7DBIiftkSIsEJSgAAABIiUQkKL/IAAAA6NwyEABJicZIiztIiXwkGEiF/3QH6Oc3EADrAjHASIlEJCCLcwhJiedMif/o0NEAAEiNdCQYTIn3TIn66JDdAABMiXMQZEiLBCUoAAAASDtEJCh1CkiDxDBbQV5BX8Po7TQQAMzMzMzMzMzMzMzMzMxIiwdIiwhIi0AISIs4/yHMVUFXQVZBVUFUU1BJifdIif1Ii18IRA+2JkH2xAF0Ck2LZwhNi38Q6wdJ0exJg8cBSIPFCEiF2w+EzQAAAEiJLCRJie29/////+snDx9EAAAxwE059A+SwE055g9CxYnBwekfhcBMD0nrSIscy0iF23RED7ZDIKgBdAZMi3Mo6wZJicZJ0e5NOfRMifJJD0LUSIXSdLuoAXQHSIt7MOsJkEiNeyBIg8cBTIn+6FA1EACFwHWq65pIiywkSTntdEtBD7ZFIKgBdAZJi10o6wZIicNI0etMOeNMieJID0LTSIXSdCKoAXQGSYt1MOsISY11IEiDxgFMif/oAzUQAIXAdAR4B+sISTnccwNJie1MiehIg8QIW0FcQV1BXkFfXcPMU0iD7FBIiftkSIsEJSgAAABIiUQkSA9XwA8RRCQwSMdEJEAAAAAASItHIEiJBCQPEUQkCA8RRCQYSMdEJCgAAQAAx0QkMAAAAABIx0QkOAAAAADHRCRAAgAAAEiJ50iJ2uiaAAAAiUNQSIlTWIXAdQ5IjQWoAgAASIXAdQnrJDHASIXAdB1Ii0M4SI1I8EiJSzhIOct0DA8QAQ8RA2bHQP4AAEiLezBIiXs46BA1EAAPV8APEUMwSMdDQAAAAABIi3wkEOj3NBAASIt8JAhIhf90BeiIMBAAZEiLBCUoAAAASDtEJEh1CUiJ2EiDxFBbw+i6MhAAzMzMzMzMzMzMzEFXQVZTSInzSYn+x0cwAAAAAEjHRzgAAAAASIsOSIsBSb8AJgAAAQAAAEg7QRB0Kg+2MEiD/iB3GUkPo/dzE0iDwAFIiQFIiwtIiwFIO0EQdd5Bi0YwhcB1cEiLMbgBAAAASDtxEHR5gD4AdHRMifdIid7oeAAAAEGLRjCFwHVKSIsLSIsBSDtBEHQuDx9AAA+2EEiD+iB3GUkPo9dzE0iDwAFIiQFIiwtIiwFIO0EQdd5Bi0YwhcB1EEiLMTHASDtxEHQFgD4AdRJJi04QSYtWOEmJThhbQV5BX8O4AgAAAEgrcQhBiUYwSYl2OOvbzEFWU1BJidZIiwZIiwhIO0gQdEAPvhmNU6WD+iB3H0iNHYPs8v9IYxSTSAHa/+JMifJIg8QIW0Fe6VMKAACD+yJ1EUyJ8jHJSIPECFtBXul9AgAATInySIPECFtBXuneDAAATInySIPECFtBXumPAQAASIPBAUiJCEiLBkiLCEg7SBAPhIEAAACAOXV1fEiDwQFIiQhIiwZIiwhIO0gQdGmAOWx1ZEiDwQFIiQhIiwZIiwhIO0gQdFGAOWx1TEiDwQFIiQhJi0Y4SYtOQEgpwUiD+Q9+RUiNSBBJiU44D1fADxEASIPECFtBXsNMifJIg8QIW0Fe6UYAAABMifJIg8QIW0Fe6dcFAABIK0gIx0cwAwAAAEiJTzjryUmNfiC+AQAAAOg4FgAASYtGOOunzMyDPwAPlcDDzMzMzMzMzMzMU0iLBkiLCEg7SBB0f0iJ00iDwQFIiQhIiwZIiwhIi1AQSDnRdGOAOXJ1YUiDwQFIiQhIiwZIiwhIO0gQdE6AOXV1SUiDwQFIiQhIiwZIiwhIO0gQdDaAOWV1MUiDwQFIiQhIi0M4SItLQEgpwUiD+Q9+KkiNSBBIiUs4D1fADxEAZsdADgoAW8NIidFIK0gIx0cwAwAAAEiJTzhbw0iNeyC+AQAAAOh1FQAASItDOOvCzMzMzMzMzMzMzMzMzMzMU0iLBkiLCEg7SBAPhJcAAABIidNIg8EBSIkISIsGSIsISItQEEg50XR7gDlhdXlIg8EBSIkISIsGSIsISDtIEHRmgDlsdWFIg8EBSIkISIsGSIsISDtIEHROgDlzdUlIg8EBSIkISIsGSIsISDtIEHQ2gDlldTFIg8EBSIkISItDOEiLS0BIKcFIg/kPfipIjUgQSIlLOA9XwA8RAGbHQA4JAFvDSInRSCtICMdHMAMAAABIiU84W8NIjXsgvgEAAADomRQAAEiLQzjrwszMzFVBV0FWQVVBVFNIg+w4SYnQSInzSYn8ZEiLBCUoAAAASIlEJDBIiwZIixBIO1AQdA5Ig8IBSIkQSIsDSItQEEjHRCQoAAAAAEyJZCQgx0QkKAAAAABIizBIOdYPhC4DAABIjT0o7PL/TI1MJCAPHwAPthaA+lx0VoD6Ig+EfgIAAID6Hw+G8gIAAEiNVgFIiRBED7Y+TItsJCBNi3UYSYtFIEiJwkwp8kiF0n59SY1GAUmJRRhFiD6DRCQoAUiLA0iLMEg7cBB1p+nEAgAASIn1SCtoCEiDxgFIiTBIiwNIizBIO3AQD4TXAgAAD7YWRA+2NBdFhPYPhM8AAABIg8YBSIkwSItsJCBIi0UYSItVIEgpwkiF0g+ODQEAAEiNUAFIiVUYRIgw645Ji20QSIXtTIlkJAhMiUQkGHQSSCnoTI1gAUnR7EkBxEiJ6OslSYN9AAB1GL8BAAAAQYnM6B0rEABEieFJiUUASYlFCE2LZSgxwIlMJARJKcZJjUYBSTnETA9C4EiJ702F5HQKTInm6Do6EADrB+hjLxAAMcBJiUUQSQHGSQHETYllIEyLZCQITItEJBiLTCQESI09zury/0yNTCQg6eH+//+A+nUPhe4BAABNic5Bic1NicdIg8YBSIkwTInnSIneSInq6P0UAABBg3wkMAAPhaUBAACJxiUA/P//PQDYAABMifd0S+hLFgAATYnxTYn4RInpSI09a+ry/+mT/v//vgEAAABIie9NiceJTCQETYnN6P8XAABNielIjT1F6vL/i0wkBE2J+EiLRRjpwv7//4l0JBRMiWQkCEiLA0iLCEg7SBAPhIEBAACAOVwPhXgBAABIg8EBSIkISIsDSIsISDtIEA+EYQEAAIA5dQ+FWAEAAEiDwQFIiQhMi2QkCEyJ50iJ3kiJ6ug5FAAAQYN8JDAAD4XhAAAAicGB4QD8//+B+QDcAAAPhR4BAACLTCQUweEKgcEAAKD8BQAk//8JyAUAAAEAicZMi2QkCEyJ9+kR////SIPGAUiJMEiLbCQgSItFGEiLVSBIKcJIhdIPjrQAAABIjVABSIlVGMYAAItUJCiNQgGJRCQoQYN8JDAAdWeJwEiLfCQgSIt3GEgpxkiJdxiEyUyJx7kBAAAA6NIRAACEwHVCSIsDSIsISCtICEHHRCQwEAAAAEmJTCQ46yiE0nQSSCtwCEHHRCQwDAAAAOsQSInWSCtwCEHHRCQwCwAAAEmJdCQ4ZEiLBCUoAAAASDtEJDB1VkiDxDhbQVxBXUFeQV9dw0HHRCQwCgAAAEmJbCQ469G+AQAAAEiJ702JxkGJz+haFgAARIn5TYnwSItFGOkq////TItkJAhBx0QkMAkAAABJiWwkOOua6OEqEADMVUFXQVZBVUFUU1BJiddIifNJif5IiwZIiwhIO0gQdAdIg8EBSIkISYtHOEmLT0BIKcFIg/kPD47yAgAASI1IEEmJTzgPV8APEQBmx0AOAwBIiwNIiwhIvQAmAAABAAAASDtIEHQsZi4PH4QAAAAAAA+2EUiD+iB3GUgPo9VzE0iDwQFIiQhIiwNIiwhIO0gQdd5Bg34wAHUySIsISItQEEg50XQ1gDl9dTBIg8EBSIkISYtHOEi5AAAAAAAAAwBIiUj4SMdA8AAAAABIg8QIW0FcQV1BXkFfXcNIOdEPhGcBAABFMeSAOSIPhVsBAABMifdIid5Mifq5AQAAAOju+v//QYN+MAB1wkiLA0iLCEg7SBB0NGYuDx+EAAAAAACQD7YRSIP6IHcZSA+j1XMTSIPBAUiJCEiLA0iLCEg7SBB13kGDfjAAdYJIiwhIO0gQD4Q9AgAAgDk6D4U0AgAAkEiDwQFIiQhIiwNIiwhIO0gQdA8PthFIg/ogdwZID6PVct5Bg34wAA+FPv///0yJ90iJ3kyJ+uiF9///QYN+MAAPhSX///9IiwNIiwhIO0gQdDtmLg8fhAAAAAAADx9AAA+2EUiD+iB3GUgPo9VzE0iDwQFIiQhIiwNIiwhIO0gQdd5Bg34wAA+F3v7//0iLCEg7SBAPhEsBAABBg8QBD74Rg/osdVVmLg8fhAAAAAAASIPBAUiJCEiLA0iLCEg7SBB0Dw+2EUiD+iB3BkgPo9Vy3kGDfjAAD4WO/v//SIsISDtIEA+FnP7//0grSAhBx0YwBAAAAOn2AAAAg/p9D4XhAAAASLoAAAAAAAD//0iDwQFIiQhFieZJweYFTYtvEEmLRzhIicNMKfNJiV84TInxSPfZZsdECP4DAEWF5A+EtgAAAE2LfQBNhf90DUmLTwhKjQQxSTsHdmNJi20ITDn1SQ9G7kmDfRgAdRy/AQAAAOiaJRAASLoAAAAAAAD//0mJRRhJiUUgSInvSIPHGHRv6No0EABIhcB0aUiJKEjHQAgAAAAATIl4EEmJRQAxyUmJx0i6AAAAAAAA//9JjTwPSIPHGEwB8UmJTwjrQkmNfyC+AQAAAOhEDQAASYtHOOn3/P//SCtICEHHRjAGAAAASYlOOOlx/f//SCFT+OsmMf/rDDH/SLoAAAAAAAD//0gjU/hICfpIiVP4SIneTIny6IopEABEiWP0RIlj8Ok4/f//SCtICEHHRjAFAAAA67DMzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ10iJ80mJ/kiLBkiLCEg7SBB0B0iDwQFIiQhJi0c4SYtPQEgpwUiD+Q8PjlMBAABIjUgQSYlPOA9XwA8RAGbHQA4EAEiLA0iLCEi9ACYAAAEAAABIO0gQdCxmLg8fhAAAAAAAD7YRSIP6IHcZSA+j1XMTSIPBAUiJCEiLA0iLCEg7SBB13kGDfjAAdS9IiwhIO0gQdDWAOV11MEiDwQFIiQhJi0c4SLkAAAAAAAAEAEiJSPhIx0DwAAAAAEiDxAhbQVxBXUFeQV9dw0Ux5OsLDx9AAEGDfjAAdeFMifdIid5Mifroe/T//0GDfjAAdcxIiwNIiwhIO0gQdD8PH4QAAAAAAA+2EUiD+iB3J0gPo9VzIUiDwQFIiQhIiwNIiwhIO0gQdd5mLg8fhAAAAAAADx9AAEGDfjAAdYFIiwhIO0gQD4QRAQAAQYPEAYA5LHVJDx8ASIPBAUiJCEiLA0iLCEg7SBAPhGn///8PthFIg/ogD4dc////SA+j1XLW6VH///9JjX8gvgEAAADoMwsAAEmLRzjplv7//4A5XQ+FtgAAAEi6AAAAAAAA//9Ig8EBSIkIRYnmScHmBE2LbxBJi0c4SInDTCnzSYlfOEyJ8Uj32WbHRAj+BABFheQPhIsAAABNi30ATYX/dA1Ji08ISo0EMUk7B3ZPSYttCEw59UkPRu5Jg30YAHUSvwEAAADonyIQAEmJRRhJiUUgSInvSIPHGHRO6OkxEABIhcB0REiJKEjHQAgAAAAATIl4EEmJRQAxyUmJx0mNPA9Ig8cYTAHxSYlPCOsdSCtICEHHRjAHAAAASYlOOOlO/v//SCFT+OsiMf9IuAAAAAAAAP//SCND+EgJ+EiJQ/hIid5MifLoviYQAESJY/REiWPw6Rn+///MVUFXQVZBVUFUU0iD7DhIiVQkCEiJfCQYSIsOTIsJSItpEEk56Q+EygIAAEWKAUyJykiJz0GA+C0PlMBIiUQkEHURSY1RAUiJEUiLPkiLF0iLbxBIOeoPhJMCAABMK0kIigqA+TAPhKMCAACAwc+A+QgPh3gCAABIjUoBSIkPRA++IkGDxNBIixZIizpIi0oQZg9XwEG2AUGA+C11ZEg5zw+EiQIAADHJDx+EAAAAAAAPti+NRdA8CQ+HMwEAAEGB/MzMzAxzKkONBKRIjW8BSIkqD74XRI0kQkGDxNCDwQFIixZIizpIO3oQdcTpAAEAAHVsQID9OH7OQbzMzMwM615IOc8PhDECAAAxyQ8fQAAPti+NRdA8CQ+H0wAAAEGB/JmZmRlzKkONBKRIjW8BSIkqD74XRI0kQkGDxNCDwQFIixZIizpIO3oQdcTpoAAAAHUMQID9NX7OQbyZmZkZRYnnSIs6SItqEGYPV8BBtgFBgPgtD4WFAAAASDnvD4TJAQAASbjMzMzMzMzMDEG60P///02NWP9mDx+EAAAAAAAPtgeNaNBAgP0JD4evAQAATTnfdylLjQS/SI1vAUiJKg++F0QB0kyNPEKDwQFIixZIizpIO3oQdcfpgQEAAE05xw+FgwAAADw4D494AAAA68RFMdtFMf9FMdLpZgEAAEg57w+EUAEAAEm4mZmZmZmZmRlButD///9NjVj/Dx9AAA+2B41o0ECA/QkPhy8BAABNOd93KUuNBL9IjW8BSIkqD74XRAHSTI08QoPBAUiLFkiLOkg7ehB1x+kBAQAATTnHdQc8NX7OTYnHZkkPbs9mD2INmcyZ/mYPXA2Bz5n+Zg8owWYPFcHyD1jBSIsCSDtCEHRTihiAw9CA+wl3SfIPEA2K3fL/Zi4PH4QAAAAAAGYPKNDyD1nRSI14AUiJOg++AIPA0A9XwPIPKsDyD1jCSIsWSIsCSDtCEHQLD7YYgMPQgPsJdslBswFFMfbrc0iJ+UmJ0UwrSQhIi0QkGMdAMAMAAABMiUg46V0GAABIg8IBSIkXSIsWZg9XwEUx20G2ATHJRTH/RTHkRTHS6zZFMduwAUiJRCQQ6woxwEiJRCQQRTHbMcnpqP7//0Ux27ABSIlEJBDrCjHASIlEJBBFMdtBsgFIizpIi2oQRIngSIlEJCBIOe8PhM8AAACAPy4Phd4AAABIg8cBSIk6SIsWTIsCSIt6EEk5+A+EkwAAAEGKKI1F0DwKD4OFAAAARTHtRYT2dHRFhNJMi3QkIE0PRP5AgP0wD4ykAAAAMf9Bu9D///+J+ECA/TkPj5IAAABMif9Iwe81D4WFAAAAS408v0gB/0mNaAFIiSpFD744RQHfMdJJAf8PlcIB0UiLFkyLAkw7QhB0DUEPtiiNeP9AgP0vf6+DwP/rSDHATIt0JCDrakwrQghIi0QkGMdAMA4AAABMiUA46R8FAAAxwEUx7UyLdCQgRYTbD4VQBAAA6XcCAAAxwEyLdCQg6bYAAAAxwEyLAmZJD27PZg9iDY7Kmf5mD1wNds2Z/kiLehBmDyjBZg8VwfIPWMFBswFJOfgPhCwCAABBihiAw9CA+wl3bvIPEA132/L/Zg9X0g8fAIP5EH87Zg8o2PIPWdlJjXgBSIk6QQ++EIPC0A9XwPIPKsLyD1jDg8D/Zg8uwnYYg8EB6xNmLg8fhAAAAAAAZpBJg8ABTIkCSIsWTIsCTDtCEHQMQQ+2GIDD0ID7CXahSIs6SItqEEg57w+EdAMAAIA/ZQ+FYgMAAEiDxwFIiTpFhNJMifFJD0XPQQ+200WE20G7AQAAAEQPRdp1IWZID27JZg9iDafJmf5mD1wNj8yZ/mYPKMFmDxXB8g9YwUiLDkiLEUg7URAPhPYDAABAijpAgP8rD4XgAwAAQID/K0EPlcBIg8IBSIkRSIsWSIsKSDtKEA+EyAIAAIoZgMPQgPsJD4e6AgAASI15AUiJOg++EYPC0EWEwA+EqAAAAEiLPkiLD0g7TxAPhNgAAACNmPf//39IY9tIaetnZmZmSInrSMHrP0jB/SIB3WYPH0QAAIoZgMPQgPsJD4enAAAAjRSSSI1ZAUiJHw++CY0UUYPC0EiLPjnqfw5Iiw9IO08Qdc/pfwAAAEiLD0g7TxB06YoZgMPQgPsJd99Ig8EBSIkPSIs+SIsPSDtPEHQSD7YZgMPQgPsJTIt0JCB3vOvbTIt0JCDrs7k0AQAAKcEPH0AASIs+SIsvSDtvEHQpD7ZdAIDD0ID7CXcdjRSSSI1dAUiJHw++fQCNFFeDwtA5yn7Q6VUCAABBidVB991FhMBED0TqRYTbD4XUAQAARYTSD4SDAAAAgHwkEABIi1QkCA+EyQAAAEn330iLQjhIi0pASCnBSIP5Dw+OpAIAAEiNSBBIiUo4SLkAAAAAAACWAEiJSAhMiThNhf8PiEEBAAAxyUyJ+kjB6iAPlMHB4QaByZYBAABmiUgOutD///9IgcIwAACASTnXD4MPAgAAD7fJg8kg6f8AAACAfCQQAEiLVCQID4S2AAAAQffcSItCOEiLSkBIKcFIg/kPD449AgAASI1IEEiJSjhIx0AIAAAAAEljzEiJCIXJufYBAAC6tgAAAA9J0WaJUA7prgEAAEiLQjhIi0pASCnBSIP5Dw+OFgIAAEiNSBBIiUo4SMdACAAAAABMiTgxyU2F/w+ZwcHhB4HJFgEAAGaJSA5MifpIweogD4VkAQAAD7fJicqDykBmiVAOutD///9IgcIwAACASTnXD4NDAQAAg8lg6zlIi0I4SItKQEgpwUiD+Q8PjsIBAABIjUgQSIlKOEjHQAgAAAAATIkwMclFheQPmcHB4QWBydYBAABmiUgO6fwAAABmubYASYH/AAAAgH3q6eoAAABIK0oISItEJBjHQDAPAAAASIlIOOnRAAAAgD9FD4SV/P//RTHtRYTbD4Qs/v//QQHFQYH9y/7//38rZg9XyUGB/Zj9//98ZPIPXgVw2PL/uMz+//9EKehIjQ1B2vL/8g9eBMHrJkWF7XgRRInoSI0NK9ry//IPWQTB6xBB991IjQUa2vL/8kIPXgToZg8oyGYPLgW42PL/dhJIi0QkGMdAMA0AAABMiUg46z+AfCQQAHQIZg9XDQXJmf5Ii1QkCEiLQjhIi0pASCnBSIP5D346SI1IEEiJSjhIuQAAAAAAABYCSIlICPIPEQhIg8Q4W0FcQV1BXkFfXcOAOi0PhBf8//9FMcDpHvz//0iNeiC+AQAAAGYPKUwkIOiBAAAAZg8oTCQgSItUJAhIi0I466FIjXogvgEAAADoYgAAAEiLVCQISItCOOlA/f//SI16IL4BAAAA6EYAAABIi1QkCEiLQjjpp/3//0iNeiC+AQAAAOgqAAAASItUJAhIi0I46c79//9IjXogvgEAAADoDgAAAEiLVCQISItCOOki/v//QVdBVkFUU1BIifNJif5Mi38QTYX/dBZJi04gTCn5SI1BAUjR6EgByEyJ+esdSYM+AHURvwEAAADosxcQAEmJBkmJRghJi0YoMclNi2YYSSnMSMHjBEwB40g52EgPQ9hMif9Ihdt0CkiJ3ujRJhAA6wfo+hsQADHASYlGEEkBxE2JZhhIAcNJiV4gSIPECFtBXEFeQV/DzMzMzMzMzMzMzFVBV0FWQVVBVFNQQYnXSYn2SIn9SItfOEiLR0BIKdiFyXQ1SIP4Dw+OTgEAAEiNQxBIiUU4TItlEA9XwA8RA0GD/w13V2bHQw4FHLANRCj4iEMN6fgAAABIg/gPD44wAQAASLgAAAAAAAD//0iNSxBIiU04D1fADxEDTYX2D4QmAQAAZsdDDgUESCNDCEwJ8EiJQwhEiTvpzgAAAGbHQw4FDESJO0SJ+P/AD4SMAAAAicVIg8UHSIPl+EmLFCRIhdJ0DUiLSghIjQQpSDsCdltIiRQkTYtsJAhJOe1MD0btSYN8JBgAdRS/AQAAAOheFhAASYlEJBhJiUQkIEyJ70iDxxh0N+imJRAASIXAdC1MiShIx0AIAAAAAEiLDCRIiUgQSYkEJDHJSInCSI0ECkiDwBhIAc1IiWoI6wIxwA+3Sw5IweEwSAnBSIlLCEiJw02F9nRgRIn9SInfTIn2SInq6IoaEADGBCsAsAFIg8QIW0FcQV1BXkFfXcNIjX0gvgEAAADo1/3//0iLXTjpm/7//0iNfSC+AQAAAOjA/f//SItdOOm5/v//TI01oNXy/+nO/v//TI01lNXy/+uXzMxVQVdBVlNIiw5IixlIO1kQD4Q4AQAARA++A0GNaNC40P///0CA/QpyIkGNaL+4yf///0CA/QZyE0GNaJ+4qf///0CA/QYPgwMBAABIg8MBSIkZSIsOSIsZSDtZEA+E7AAAAEQPvhNBjWrQQbnQ////QID9CnIkQY1qv0G5yf///0CA/QZyFEGNap9Buan///9AgP0FD4e0AAAASIPDAUiJGUiLDkiLGUg7WRAPhJ0AAABED74zQY1u0EG70P///0CA/QpyIEGNbr9Bu8n///9AgP0GchBBjW6fQbup////QID9BXdpSIPDAUiJGUiLNkiLHkg7XhB0Vg++C41p0EG/0P///0CA/QpyHo1pv0G/yf///0CA/QZyD41pn0G/qf///0CA/QV3JkQBwMHgBEQB0EQByMHgBEQB8EQB2MHgBAHIRAH4SIPDAUiJHusNx0cwCAAAAEiJVzgxwFtBXkFfXcPMzMzMzMzMzMzMzMzMzFVBV0FWQVRTQYn0SYn+g/5/dytJix5Ii0MYSItLIEgpwUiFyQ+OKQEAAEiNSAFIiUsYRIggSYPGCOkIAQAAQYH8/wcAAHcxRInlwe0GQIDNwEmLHkiLQxhIi0sgSCnBSIXJD44UAQAASI1IAUiJSxhAiCjpnwAAAESJ40GB/P//AAB3CMHrDIDL4Os4wesSgMvwTYs+SYtHGEmLTyBIKcFIhckPjhUBAABIjUgBSYlPGIgYQYNGCAFEiePB6wyA4z+Ay4BNiz5Ji0cYSYtPIEgpwUiFyQ+OtwAAAEiNSAFJiU8YiBhBg0YIAUSJ48HrBoDjP4DLgE2LPkmLRxhJi08gSCnBSIXJD46bAAAASI1IAUmJTxiIGEGDRggBQYDkP0GAzIBJix5Ii0MYSItLIEgpwUiFyX4ySYPGCEiNSAFIiUsYRIggQYMGAVtBXEFeQV9dw74BAAAASInf6IAAAABIi0MY6cH+//++AQAAAEiJ3+hqAAAASItDGOu7vgEAAABIid/oVwAAAEiLQxjp1v7//74BAAAATIn/6EEAAABJi0cY6TP///++AQAAAEyJ/+grAAAASYtHGOlP////vgEAAABMif/oFQAAAEmLRxjp1f7//8zMzMzMzMzMzMzMzEFXQVZBVFNQSYn0SYn+TIt/EE2F/3QWSYtOIEwp+UiNQQFI0ehIAchMifnrHUmDPgB1Eb8BAAAA6AMSEABJiQZJiUYISYtGKDHJSYteGEgpy0kB3Ew54EwPQ+BMif9NheR0CkyJ5uglIRAA6wfoThYQADHASYlGEEgBw0mJXhhJAcRNiWYgSIPECFtBXEFeQV/DzMzMzMzMzMzMzMzMzMxTSIn7SI0FZYkQAEiDwBBIiQdIg8cY6HXAAABIid9b6ZwbEADMzMzMzMzMzMzMzMxTSIn7SI0FNYkQAEiDwBBIiQdIg8cY6EXAAABIid/obRsQAEiJ31vpZBEQAMzMzMxIg8cY6SfAAADMzMzMzMzM6UsREADMzMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn3SYn+SLi66KKLLrroAkiLD0iLbwhIKc1Iwf0DSL6jiy666KKLLkgPr+5IjVUBSDnCD4eqAQAASYt+EEgpz0jB/wNID6/+SI0cP0g500gPQtpIuV100UUXXXQBSDnPSA9D2EiF23QXSDnDD4d5AQAASGv7WOiaEBAASYnE6wNFMeRMa+1YS40sLEhr21hJiwdLiQQsSYtHCEuJRCwISIXAdAbwSINACAFMAeNLjTwsSIPHEEmNdxDolxMQAEuNPCxIg8coSY13KOiGExAAS408LEiDx0BJg8dATIn+6HITEABIjUVYTYsmSYtOCEw54Q+EzQAAAEiJ3k2NfhAPV8APH0AASItRqEiJVahIi1GwSIlVsA8RQahIi1HISIlVyA8QSbgPEU24DxFBuEjHQcgAAAAASItR4EiJVeAPEEnQDxFN0A8RQdBIx0HgAAAAAEiLUfhIiVX4DxBJ6A8RTegPEUHoSMdB+AAAAABIjVGoSIPFqEiJ0Uw54nWITYsmSYteCEmJLkmJRghJiXYQTDnjdBWQSIPDqEyJ/0iJ3uixEv7/TDnjdexNheR0JkyJ50iDxAhbQVxBXUFeQV9d6XEPEABJiS5JiUYISYleEE2F5HXaSIPECFtBXEFdQV5BX13DTIn36FoUEADoNRQQAMzMzMzMU0iD7CBIiftkSIsEJSgAAABIiUQkGOgVrgAASInf6I1zAwBmxwQkAQHHRCQEAwAAAMZEJAgASMdEJBAAAAAASInn6DlUAwBkSIsEJSgAAABIO0QkGHUGSIPEIFvD6C4READMzMzMzMzMzMzMzMzMzFVBVlNIg+wwSInySIn+ZEiLBCUoAAAASIlEJChIx0QkIAAAAABIjXwkIOgBAQAASIN8JCAAdBC/BAAAADH26L0TEACEwHU1SItcJCD2wwF0CEiJ3+i3NwQASIXbD5TAZEiLDCUoAAAASDtMJCgPha4AAABIg8QwW0FeXcPojxMQAEmJxosoSI018RKu/kiNXCQYSInfungAAAC5BAAAAEUxwEG5/////+hzExAASInf6HsTEABIicNIg3wkIAB0FEiJ50iNdCQgugEAAADorjwEAOsgD1fADykEJEjHRCQQAAAAAMYEJARmx0QkAU9LxkQkAwBIieZIid/oseT8//YEJAF0CkiLfCQQ6MENEABIjXwkGOgnExAAQYku6Sb////o+g8QAGYuDx+EAAAAAABVQVdBVkFVQVRTSIPsWEmJ10iJ9UmJ/mRIiwQlKAAAAEiJRCRQSMdEJEgAAAAASIsGSIn3/5C4AAAASItAEEiLcBBIjXwkSOgkDgAAx0QkRAAAAAEPV8APKUQkMA8pRCQgTItkJEhIi0UASInv/5C4AAAASItYCEmJ5UyJ70iJ7uhrHBAASI18JCBMjUwkREyJ5kiJ2kyJ6U2J+OhgHBAA9gQkAXQKSIt8JBDo8AwQAESLfCQgRYX/dBNED7ZkJChB9sQBdBNIi1wkMOsSSccGAAAAAOnmAAAATInjSNHrSI1sJChMi2wkOEiF23kPSI01BWpT/0iJ3+gTHBAASIPFAUH2xAFMD0TtD1fADykEJEjHRCQQAAAAAE2F7XQiSIP78A+D1AAAAEiD+xdzGo0EG4gEJEyNZCQBSIXbdS/rOzHAMckx0utFSI1rEEiD5fBIie/oKAwQAEmJxEiJRCQQSIPNAUiJLCRIiVwkCEyJ50yJ7kiJ2uilEBAAQcYEHACKFCRIi0wkEEiLRCQIidPQ6/bCAUiNVCQBSA9F0Q+2y0gPRchMifdEif7ooTUEAPYEJAF0CkiLfCQQ6OELEAD2RCQoAXQKSIt8JDjo0AsQAEiNfCRI6LYNAABkSIsEJSgAAABIO0QkUHUaTInwSIPEWFtBXEFdQV5BX13DSInn6GwQEADo5w0QAA8fgAAAAABTSIPsMEiJ+2RIiwQlKAAAAEiJRCQoD1fADylEJBBIx0QkIAAAAABIx0QkCAAAAABIjXwkCEiNVCQQ6LH9//9Ii0QkCEiFwHUjSItMJCBIiUsYDyhEJBAPEUMID1fADylEJBBIx0QkIAAAAABIiQP2RCQQAXQKSIt8JCDoEAsQAGRIiwQlKAAAAEg7RCQodQlIidhIg8QwW8PoQg0QAGaQVUFXQVZBVUFUU0iB7JgAAABJidZIifNJif9kSIsEJSgAAABIiYQkkAAAAA9XwA8pRCQwDylEJCBIx0QkQAAAAABIx0QkSAABAABIjUQkIEiJRCRQDxFEJFgPEUQkaEjHRCR4AAAAAA8oBcK5mf4PEYQkgAAAAMeEJIgAAABEAQAAxoQkjAAAAABMjWQkUEyJ5+jKFAAASI01Xa57/0yJ57oGAAAAMcnoRCUAAPYDAXQGSItbEOsESIPDAUiJ3+gtDxAATInnSIneicIxyegeJQAASI01y+20/kyJ57oHAAAAMcnoCCUAAA9XwA8pBCRIx0QkEAAAAABIieZMif/oHfv//0GJxQ+2FCSEwHQR9sIBdCRIi3QkEEiLVCQI6yD2wgEPhJwAAABIi3wkEOi+CRAA6Y0AAABI0epIjXQkAUiNfCRQuQMAAADoQhUAAPYEJAF0CkiLfCQQ6JIJEABIg0QkcPBIi1wkUEiLaxhIi0MgSInBSCnpSIXJD46iAAAASI1FAUiJQxjGRQB9SItcJDhIi0QkQEiJwUgp2UiFyQ+OmAAAAEiNQwFIiUQkOMYDAEiDRCQ4/0iLdCQwTIn36JwQEABIi3wkaOiCDRAASIt8JGBIhf90BegTCRAASIt8JDDoaQ0QAEiLfCQoSIX/dAXo+ggQAGRIiwQlKAAAAEg7hCSQAAAAD4UCAQAARInoSIHEmAAAAFtBXEFdQV5BX13DTIt7EE2F/3QuTCn4TI1gAUnR7EkBxEyJ+Os5TIt8JDBNhf90T0wp+EyNYAFJ0exJAcRMifjrYEiDOwB1Eb8BAAAA6GcIEABIiQNIiUMITItjKDHASCnFSI1FAUk5xEwPQuBMif9NheR0TUyJ5uiMFxAA60pIg3wkIAB1FL8BAAAA6CgIEABIiUQkIEiJRCQoTItkJEgxwEgpw0iNQwFJOcRMD0LgTIn/TYXkdCRMieboSRcQAOsh6HIMEAAxwEiJQxBIAcVJAcRMiWMg6Y3+///oWAwQADHASIlEJDBIAcNJAcRMiWQkQOmW/v//6CwKEABmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIHsWAEAAEmJ1UiJ9UiJ+2RIiwQlKAAAAEiJhCRQAQAAD1fADymEJDABAAAPKYQkQAEAAA8phCQgAQAADymEJBABAAAPKYQkAAEAAA8phCTwAAAASMeEJDgBAAAABAAAx4QkQAEAAAAAAAC/KAAAAOgxBxAASMcAAAAAAEjHQAgAAAEAD1fADxFAEEjHQCAAAAAASImEJAABAABIiYQkCAEAAPYDAXQGSItbEOsESIPDAUiJXCRgSIlcJGhIjbwk8AAAAEyNdCRgTIn26LVGAACDvCRAAQAAAA+FowQAAGaDvCT+AAAAAw+FlAQAAEiJbCQYSL3///////8AAA9XwA8pRCRgTI09xKp7/0i4AAAAAAAABQRMCfhIiUQkaEiLvCT4AAAASCHvi7Qk8AAAAEiJ80jB4wVMiflIwekQwfkYug0AAAApykkh70gPuuA8vQYAAAAPQurHRCRgBgAAAEmJ/E0PQv5IiXwkKEmJ/kiJdCQgSIX2D4SMAAAATIlsJBBJid1NiebrGmYuDx+EAAAAAABmkEmDxiBJg8XgD4TeAwAAQQ+3Rg6pABAAAHUWQYsOOc113+sdZi4PH4QAAAAAAA8fAEEPvlYNuQ0AAAAp0TnNdcBJi3YISLn///////8AAEghzqkAEAAASQ9F9kk593QPTIn/SInq6DYJEACFwHWSTItsJBBIi0QkKEgB2Ek5xg+EaAMAAEmJxki4AAAAAAAA//9IuQAAAAAAAAAQD1fADylEJGBmx0QkbgUESCNEJGhIjRUu6bT+SAnQSInWSMHuEMH+GL8NAAAAKfdIvv///////wAASCHySIXIuwcAAAAPRd9MjXwkYEwPRPpIiUQkaMdEJGAHAAAASItsJCBIhe0PhHoAAABIweUF6xIPH0AASYPEIEiDxeAPhM4CAABBD7dEJA6pABAAAHUVQYsMJDnLdd3rHGYuDx+EAAAAAACQQQ++VCQNuQ0AAAAp0TnLdb9Ji3QkCEi5////////AABIIc6pABAAAEkPRfRJOfd0D0yJ/0iJ2ugkCBAAhcB1kE059A+EYwIAAEiNNaqoe/9Ijbwk8AAAAOgjFAAA9kAPBA+ERQIAAEiNNTbotP5Ijbwk8AAAAOgFFAAAZoN4DgMPhSYCAAAPV8APKYQk0AAAAEjHhCTgAAAAAAAAAEiNNVaoe/9IjZwk8AAAAEiJ3+jMEwAASL7///////8AAEgjcAgPt0gO98EAEAAASA9F8EiNvCTQAAAA6OMUAABIi3wkGEiF/3QNSI20JNAAAADo7AQQAEiNNa2HoP9Ijbwk0AAAAOgoyfz/hMAPhNYBAAAPV8APKYQksAAAAEjHhCTAAAAAAAAAAEiJXCRgTI28JLAAAABIjXQkYEyJ/+hPAgAAD1fADymEJJAAAABIx4QkoAAAAAAAAABIx4QkiAAAAAAAAABJi0UATInv/5C4AAAASItAEEiLcBBIjbwkiAAAAOg6BAAAD1fADylEJHAPKUQkYEiLrCSIAAAASYtFAEyJ7/+QuAAAAEiLWAhIjXwkUEyJ/uinFAAAZsdEJDAAAEiLTCRQTItEJFhIjUQkMEiJBCRIjXwkYEyNjCSQAAAASInuSIna6IUSEACDfCRgAA+E/gAAADHbvwQAAAAx9ugcCBAAhMAPhPoAAADoHwgQAEmJxkSLOEiNNYAHrv5IjWwkSEiJ77q9AAAAuQQAAABFMcBBuf/////oAggQAEiJ7+gKCBAASInFSI1cJDBIjXQkYEiJ3+glEhAASInvSIne6GrZ/P9IjTUkVKL/ugIAAABIicfoduD8/0iNtCSwAAAASInH6EbZ/P/2RCQwAXQKSIt8JEDoVQIQAEiNfCRI6LsHEABFiT4x2+taMdtIjbwk8AAAAOiVzv//ZEiLBCUoAAAASDuEJFABAAAPhbkAAACJ2EiBxFgBAABbQVxBXUFeQV9dwzHb9oQk0AAAAAF1VOu6SI20JJAAAABMie/ojBEQAInD9kQkaAF0CkiLfCR46NkBEABIjbwkiAAAAOi8AwAA9oQkkAAAAAF1KvaEJLAAAAABdTf2hCTQAAAAAQ+EaP///0iLvCTgAAAA6J0BEADpVv///0iLvCSgAAAA6IsBEAD2hCSwAAAAAXTJSIu8JMAAAADodAEQAPaEJNAAAAABdcDpI////+iwAxAAQVdBVkFVQVRTSIHskAAAAEmJ/mRIiwQlKAAAAEiJhCSIAAAAD1fADylEJCAPKUQkEEjHRCQwAAAAAEjHRCQ4AAEAAEiNRCQQSIlEJEgPEUQkUA8RRCRgSMdEJHAAAAAADygFObCZ/g8RRCR4x4QkgAAAAEQBAADGhCSEAAAAAEiLPkiNNYvktP7oYhAAAEiNdCRISInH6MUTAACEwA+E/wAAAEiLRCQoSItMJDBIKcFIhckPjk0BAABIjUgBSIlMJCjGAABIg0QkKP9Mi3wkIA9XwEEPEQZJx0YQAAAAAEyJ/+h5BRAASIP48A+DLgEAAEmJxUiD+BdzE0ONRC0AQYgGTY1mAU2F7XUn6zNMietIg8MQSIPj8EiJ3+ggABAASYnESYlGEEiDywFJiR5NiW4ITInnTIn+TInq6KAEEABDxgQsAEiLfCRg6HEEEABIi3wkWEiF/3QF6AIAEABIi3wkIOhYBBAASIt8JBhIhf90Bejp/w8AZEiLBCUoAAAASDuEJIgAAAAPhZkAAABMifBIgcSQAAAAW0FcQV1BXkFfw0iNNWUErv5IjVwkCEiJ37qwAAAAuQYAAABFMcBBuf/////o5wQQAEiJ3+jvBBAASI01zVSx/7owAAAASInH6Hvd/P9IjTWobbD+ugEAAABIicfoZ938/0iJ3+jPBBAA6Z3+//9IjXwkEL4BAAAA6Ovs//9Ii0QkKOma/v//TIn36AkEEADohAEQAA8fQABBV0FWU0iD7CBJifdJif5kSIsEJSgAAABIiUQkGOi+DhAATDn4dEi/EAAAAOjf/g8ASInDSI0F7XYQAEiJAw9XwA8pBCRIx0QkEAAAAABIiedMif7olw4QAEiJQwj2BCQBdB1Ii3wkEOjD/g8A6xGKBZP0EACEwHQrSIsdgPQQAEmJHmRIiwQlKAAAAEg7RCQYD4WAAAAATInwSIPEIFtBXkFfw0iNPV30EADoAAcQAIXAdMW/EAAAAOhS/g8ASInD6BoOEABIjQ1bdhAASIkLD1fADykEJEjHRCQQAAAAAEiJ50iJxugFDhAASIlDCPYEJAF0CkiLfCQQ6DH+DwBIiR368xAASI09+/MQAOiuBhAA6WL////oZAAQAA8fQABBVlNIg+woZEiLBCUoAAAASIlEJCBIix9IxwcAAAAASIXbdByKBb7zEACEwHQqSDkdq/MQAHQJSIsDSInf/1AIZEiLBCUoAAAASDtEJCB1e0iDxChbQV7DSI09ifMQAOgsBhAAhcB0xr8QAAAA6H79DwBJicboRg0QAEiNDYd1EABJiQ4PV8APKQQkSMdEJBAAAAAASInnSInG6DENEABJiUYI9gQkAXQKSIt8JBDoXf0PAEyJNSbzEABIjT0n8xAA6NoFEADpY////+iQ/w8AVUFXQVZBVUFUU0iD7HhIictJiddJifRJif5kSIsEJSgAAABIiUQkcEjHRCRoAAAAAEiLAUiJz/+QuAAAAEiLQBBIi3AQSI18JGjowf3//w9XwA8pRCRQSMdEJGAAAAAADylEJEBMjWwkQEiNdCRQTInv6JkMEAAPV8APKUQkMA8pRCQgSItsJGhIiwNIid//kLgAAABIi1AISI18JCBIie5MieFNiehNifnocQwQAESLfCQgRYX/dBNED7ZkJChB9sQBdDNIi1wkMOsySI10JFBIid/oBwwQAITAD4RKAQAASccGAAAAAPZEJCgBD4ToAAAA6U4BAABMieNI0etIjWwkKEyLbCQ4SIXbeQ9IjTWGWVP/SInf6JQLEABIg8UBQfbEAUwPRO0PV8APKQQkSMdEJBAAAAAATYXtdCJIg/vwD4MSAQAASIP7F3MajQQbiAQkTI1kJAFIhdt1L+s7McAxyTHS60VIjWsQSIPl8EiJ7+ip+w8ASYnESIlEJBBIg80BSIksJEiJXCQITInnTInuSIna6CYAEABBxgQcAIoUJEiLTCQQSItEJAiJ09Dr9sIBSI1UJAFID0XRD7bLSA9FyEyJ90SJ/ugiJQQA9gQkAXVE9kQkKAF1a/ZEJFABdApIi3wkYOhU+w8ASI18JGjoOv3//2RIiwQlKAAAAEg7RCRwdVtMifBIg8R4W0FcQV1BXkFfXcNIi3wkEOge+w8A9kQkKAF0susbSI01r/C3/roxAAAATIn36BE3BAD2RCQoAXSVSIt8JDjo8PoPAPZEJFABdYvrk0iJ5+iv/w8A6Cr9DwBmLg8fhAAAAAAAU0iD7BBIidFIiftkSIsEJSgAAABIiUQkCGbHRCQGAABIjVQkBuhm/f//ZEiLBCUoAAAASDtEJAh1CUiJ2EiDxBBbw+jY/A8ADx+EAAAAAABBV0FWQVRTSIPsKE2JxkmJz0iJ+2RIiwQlKAAAAEiJRCQgD1fADylEJBAPKQQkSYnkTInnuf/////oMgoQAEiJ30yJ5kyJ+kyJ8ejx/P//ZEiLBCUoAAAASDtEJCB1D0iJ2EiDxChbQVxBXkFfw+hd/A8AZi4PH4QAAAAAAA8fAEFXQVZTSIPsQEmJzkiJ+2RIiwQlKAAAAEiJRCQ4ZsdEJA4AAA9XwA8pRCQgDylEJBBMjXwkEEyJ/7n/////6K0JEABIjVQkDkiJ30yJ/kyJ8ehq/P//ZEiLBCUoAAAASDtEJDh1DUiJ2EiDxEBbQV5BX8Po2PsPAA8fhAAAAAAAQVdBVlNIg+xASInLSYn+ZEiLBCUoAAAASIlEJDhIic/oKwsAAA9XwA8pBCRIi3MYSDs1qbMQAHUWSIPDGEiLNZyzEABIid/o1GH6/0iLM0mJ50yJ/+j2CBAAD1fADylEJCAPKUQkEEiNXCQQSInfTIn+6AkJEABMifdIid7oDgkQAEiJ3+gWCRAAZEiLBCUoAAAASDtEJDh1CkiDxEBbQV5BX8PoJ/sPAA8fgAAAAABBV0FWU0iB7IAAAABkSIsEJSgAAABIiUQkeA9XwA8pRCRgDylEJFBIi08YD7Y5SI1BAUiJ+kjR6kD2xwFID0VBEEmJ9g9FUQhIjVwkUEiJ30iJxrn/////6GMIEAAPV8APKUQkEA8pRCQgDylEJDAPKQQkD1fASIlcJBBIx0QkGAAAAABIx0QkHgAAAABIx0QkKP///3/HRCQw////f0iLBcuyEACLAIlEJDSJRCQ4DylEJEBJiedMif/oQQgQAEyJ90yJ/uhGCBAAicNMif/oTAgQAGRIiwQlKAAAAEg7RCR4dQ+J2EiBxIAAAABbQV5BX8PoKPoPAA8fhAAAAAAASIn4SI0Nvm8QAEiJD0iLfwhIx0AIAAAAAEiF/3QGSIsH/2AIw2YuDx+EAAAAAACQU0iJ+0iNBY1vEABIiQdIi38ISMdDCAAAAABIhf90BkiLB/9QCEiJ31vpcvcPAGaQQVdBVkFVQVRTSIHsgAAAAEmJzkmJ9EmJ/2RIiwQlKAAAAEiJRCR4D7Ya9sMBdApMi2oQSItaCOsHTI1qAUjR60iJ174vAAAASMfC/////+h8BxAASI1IAUgpy0wB6EiDwAFNi2wkCEiNDVzvp/5IiUwkSEjHRCRQAQAAAEiJRCQYSIlcJCBJieRIjXQkSEiNVCQYTInn6NXiBgBJi0UATIn/TInuTIniTInx/1AQ9gQkAXQKSIt8JBDosvYPAGRIiwQlKAAAAEg7RCR4dRRMifhIgcSAAAAAW0FcQV1BXkFfw+jZ+A8AZg8fhAAAAAAAQVdBVkFVQVRTSIHsgAAAAEmJzkmJ9EmJ/2RIiwQlKAAAAEiJRCR4D7Ya9sMBdApMi2oQSItaCOsHTI1qAUjR60iJ174vAAAASMfC/////+iMBhAASI1IAUgpy0wB6EiDwAFNi2wkCEiNDWzup/5IiUwkSEjHRCRQAQAAAEiJRCQYSIlcJCBJieRIjXQkSEiNVCQYTInn6OXhBgBJi0UATIn/TInuTIniTInx/1AY9gQkAXQKSIt8JBDowvUPAGRIiwQlKAAAAEg7RCR4dRRMifhIgcSAAAAAW0FcQV1BXkFfw+jp9w8AzMzMzMzMzMzMVUFXQVZTUEmJ/0iLXyBIO18YD4S1AAAASItD8EiFwHRYgHv4AE2LN3QhSYtGGEmLTiBIKcFIhckPjr0AAABIjUgBSYlOGMYALOsuqAG4LAAAAL06AAAAD0ToSYtGGEmLTiBIKcFIhckPjqMAAABIjUgBSYlOGECIKEiDQ/ABSYtfIEmLRyhIKdhIg/gPfkVIjUMQSYlHIEjHAwAAAADGQwgASYsfSItDGEiLSyBIKcFIhcl+M0iNSAFIiUsYxgB7sAFIg8QIW0FeQV9dw0HGRzwB665JjX8IvgEAAADoHh8AAEmLXyDrp74BAAAASInf6Dvi//9Ii0MY67q+AQAAAEyJ9+go4v//SYtGGOkt////vgEAAABMiffoEuL//0mLRhjpR////8zMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYnWSInzSYn/SItvIEg7bxgPhEwBAABIi0XwSIXAdGeAffgATYsndClNi2wkGEmLRCQgSInBTCnpSIXJD45GAQAASY1FAUmJRCQYQcZFACzrNagBuCwAAAC6OgAAAA9E0E2LbCQYSYtEJCBIicFMKelIhckPjpoBAABJjUUBSYlEJBhBiFUASINF8AFJiy9Mi2UYSItFIEiJwUwp4Uw58Q+MxwAAAE2F9g+EowAAAE2NRv9MifJIidhIg+IDdCJIidhJizcPtghIg8ABSItuGEiNfQFIiX4YiE0ASIPC/3XhSYP4A3JrSInBSCnZDx9EAABJixcPthhIi3IYSI1+AUiJehiIHkmLFw+2WAFIi3IYSI1+AUiJehiIHkmLFw+2WAJIi3IYSI1+AUiJehiIHkmLFw+2WANIi3IYSI1+AUiJehiIHkiDwQRIg8AETDnxcqCwAUiDxBhbQVxBXUFeQV9dw0HGRzwB6R////9Ii30QSIX/dDVIKfhMjWgBSdHtSQHFSIn460hJi3wkEEiF/w+EqQAAAEgp+EiNSAFI0elIAcFIifjpvQAAAEiDfQAAdRhJif2/AQAAAOhz8g8ATInvSIlFAEiJRQhMi20oMcBJKcRLjQQ0STnFTA9C6E2F7XQKTInu6JcBEADrB+jA9g8AMcBIiUUQSQHETIllGEkBxUyJbSBNhfYPhaD+///pPv///4lUJAxJi0wkEEiFyUiJDCQPhIQAAABIKchIjXABSNHuSAHGSInI6ZAAAABIiTwkSYM8JAB1E78BAAAA6N7xDwBJiQQkSYlEJAhJi0wkKDHASIs8JEkpxUmNRQFIOcFID0LISIXJSIkMJHQKSInO6PsAEADrB+gk9g8AMcBJiUQkEEkBxU2JbCQYSIsMJEgBwUmJTCQg6ZT9//9JgzwkAHUTvwEAAADoc/EPAEmJBCRJiUQkCEmLdCQoMcBJKcVJjUUBSDnGSA9C8EiF9kiJdCQQdAtIizwk6JIAEADrC0iLPCTot/UPADHASYlEJBBJAcVNiWwkGEiLTCQQSAHBSYlMJCCLVCQM6Vr9///MzEFXQVZBVFNQSINHIPBMiydJi1wkGEmLRCQgSInBSCnZSIXJfhpIjUMBSYlEJBjGA32wAUiDxAhbQVxBXkFfw02LdCQQTYX2dBJMKfBMjXgBSdHvSQHHTInw6yFJgzwkAHUTvwEAAADopPAPAEmJBCRJiUQkCE2LfCQoMcBIKcNIjUMBSTnHTA9C+EyJ902F/3QKTIn+6Mb/DwDrB+jv9A8AMcBJiUQkEEgBw0kBx02JfCQg6W3////MzMzMzMzMzFVBV0FWQVVBVFNIg+wYSInzSYn+ZEiLBCUoAAAASIlEJBBIvf///////wAASIn36Dz1DwAPV8APKQQkSLkAAAAAAAAFBEgJ2UiJTCQIiQQkTYtuCEkh7UGLFkmJ1EnB5AVIid5Iwe4Qwf4YQb4NAAAAQSn2SCHrSA+64TxED0PwSYnnTA9D+0yJ60iF0nRvTInlTInr6xNmDx+EAAAAAABIg8MgSIPF4HRiD7dDDqkAEAAAdQuLC0E5znXk6xJmkA++Uw25DQAAACnRQTnOddBIi3MISLn///////8AAEghzqkAEAAASA9F80k593QPTIn/TIny6ObyDwCFwHWiTQHlTDnrdAZIg8MQ6w0PV8BIjR065RAADykDZEiLBCUoAAAASDtEJBB1EkiJ2EiDxBhbQVxBXUFeQV9dw+iA8Q8AQVdBVkFUU1BJifZJifwPV8APEQdIx0cQAAAAAEiJ9+gM9A8ASIP48HNjSYnHSIP4F3MTQ40EP0GIBCRJg8QBTYX/dSrrNkyJ+0iDwxBIg+PwSInf6LfuDwBJiUQkEEiDywFJiRwkTYl8JAhJicRMiedMifZMifroNPMPAEPGBDwASIPECFtBXEFeQV/DTInn6GvzDwDMzMzMzMzMzMzMzEFWU1BJif72BgF0BkiLRhDrBEiNRgFJiQZJx0YIAAAAAA+2HvbDAXQLSIteCEiF23kZ6whI0etIhdt5D0iNNadLU/9Iid/otf0PAEmJXghIg8QIW0Few8zMzMzMzMzMzEFXQVZBVUFUU0iD7CBkSIsEJSgAAABIiUQkGA9XwA8pBCRIx0QkEAAAAABIg/rwD4PmAAAASYnVSYn3SYn+SIP6F3MUQ41ELQCIBCRMjWQkAU2F7XUn6zNJjV0QSIPj8EiJ3+io7Q8ASYnESIlEJBBIg8sBSIkcJEyJbCQITInnTIn+TInq6CXyDwBDxgQsAEmLXhBIOx31pxAAdAz2AwF1J2bHAwAA60S/GAAAAOhd7Q8ADygEJA8RAEiLTCQQSIlIEEmJRhDrNEiLQxDGAABIx0MIAAAAAPYDAXQQSIt7EOhK7Q8ASMcDAAAAAEiLRCQQSIlDEA8oBCQPEQNkSIsEJSgAAABIO0QkGHUWSIPEIFtBXEFdQV5BX8NIiefo3fEPAOhY7w8AzMzMzMzMzMxVQVdBVkFUU0mJ9kmJ/A+3Tw6JyIPgB4P4BXcgSI0Vubfy/0hjBIJIAdD/4EyJ91tBXEFeQV9d6YQDAAD3wQACAAAPhYcBAAD2wSAPhbsBAAD2wUAPhb8CAABJizQkTIn3hMkPiMQCAABbQVxBXkFfXemaEgAATIn3MfbrCEyJ974BAAAAW0FcQV5BX13prgUAAEyJ9+jW9v//icExwITJD4RqAgAAQYM8JAAPhJ0AAABJv////////wAASYtcJAhMIftmLg8fhAAAAAAADx8AD7dDDkiLSwipABAAAHURSInOTCH+ixPrGw8fgAAAAABIichIwegQwfgYug0AAAApwkiJ3kjB6TuD4QFMiffo7QYAAITAD4QfAgAASI17EEyJ9ujZ/v//hMAPhAsCAABIg8MgSYtMJAhMIflBiwQkSInCSMHiBUgBykg503WCTIn3icZbQVxBXkFfXelw+v//SYteIEk7XhgPhNABAABIi0PwSIXAD4TTAAAAgHv4AE2LPg+EmAAAAEmLRxhJi08gSCnBSIXJD47vAQAASI1IAUmJTxjGACzpogAAAEmLRCQI98EAEAAAdSxIuv///////wAASCHQQYsUJEmJxOsk8kEPEAQkTIn3W0FcQV5BX13p6wcAAEjB6BDB+Bi6DQAAACnCwekLg+EBTIn3TInmW0FcQV5BX13p9AUAAEGLNCRMifdbQVxBXkFfXelwCQAAqAG4LAAAAL06AAAAD0ToSYtHGEmLTyBIKcFIhckPjl4BAABIjUgBSYlPGECIKEiDQ/ABSYteIEmLRihIKdhIg/gPD47gAAAASI1DEEmJRiBIxwMAAAAAxkMIAUmLHkiLQxhIi0sgSCnBSIXJD47NAAAASI1IAUiJSxjGAFtBgzwkAHRHSb////////8AAEmLXCQITCH7Zi4PH4QAAAAAAEiJ30yJ9ug1/f//hMB0a0iDwxBJi0QkCEwh+EGLDCRIweEESAHBSDnLddVJg0Yg8EmLHkiLQxhIi0sgSCnBSIXJfnJIjUgBSIlLGMYAXbABW0FcQV5BX13DQYs0JEyJ91tBXEFeQV9d6eMKAABbQVxBXkFfXelGDQAAMcDr0kHGRjwB6Q////9JjX4IvgEAAADoGhQAAEmLXiDpCf///74BAAAASInf6DTX//9Ii0MY6R3///++AQAAAEiJ3+ge1///SItDGOl4////vgEAAABMif/oCNf//0mLRxjp+/3//74BAAAATIn/6PLW//9Ji0cY6Yz+///MzMzMzMzMzMxVQVdBVkFVQVRTUEmJ/0yLZyBMO2cYD4TaAAAASYtEJPBIhcB0YUGAfCT4AE2LL3QlSYttGEmLRSBIicFIKelIhckPjtAAAABIjUUBSYlFGMZFACzrMagBuCwAAAC9OgAAAA9E6E2LdRhJi0UgSInBTCnxSIXJD44iAQAASY1GAUmJRRhBiC5Jg0Qk8AFJiy9Ii10YSItFIEiJwUgp2UiD+QN+WUiNQwFIiUUYxgNuSYsHSItIGEiNUQFIiVAYxgF1SYsHSItIGEiNUQFIiVAYxgFsSYsHSItIGEiNUQFIiVAYxgFssAFIg8QIW0FcQV1BXkFfXcNBxkc8AeuQTIt1EE2F9nQ0TCnwTI1gAUnR7EkBxEyJ8OtBTYt1EE2F9g+EmAAAAEwp8EiNWAFI0etIAcNMifDpogAAAEiDfQAAdRK/AQAAAOjV5w8ASIlFAEiJRQhMi2UoMcBIKcNIjUMESTnETA9C4EyJ902F5HQKTInm6Pn2DwDrB+gi7A8AMcBIiUUQSAHDSIldGEkBxEyJZSBJiy9Ii10Y6Qb///9Ji00QSIXJSIkMJHRvSCnISI1YAUjR60gBw0iJyOt8SYN9AAB1Er8BAAAA6FLnDwBJiUUASYlFCEmLXSgxwEgpxUiNRQFIOcNID0LYTIn3SIXbdApIid7odvYPAOsH6J/rDwAxwEmJRRBIAcVJiW0YSAHDSYldIOku/v//SYN9AAB1Er8BAAAA6PXmDwBJiUUASYlFCEmLXSgxwEkpxkmNRgFIOcNID0LYSIXbdA5IizwkSIne6Bj2DwDrC0iLPCToPesPADHASYlFEEkBxk2JdRhIAcNJiV0g6QD+///MzMzMVUFXQVZBVUFUU0iD7BhBifRIiftIi28gSDtvGA+EgQAAAEiLRfBIhcB0WYB9+ABMiyt0IU2LdRhJi0UgSInBTCnxSIXJfmJJjUYBSYlFGEHGBizrL6gBuCwAAABBvjoAAABED0TwTYt9GEmLRSBIicFMKflIhcl+S0mNRwFJiUUYRYg3SINF8AFBD7b0SInfSIPEGFtBXEFdQV5BX13prQ4AAMZDPAHr4EmLfRBIhf90NUgp+EyNeAFJ0e9JAcdIifjrTEmLTRBIhclIiUwkCHR5SCnISI1wAUjR7kgBxkiJyOmDAAAASIl8JAhJg30AAHUSvwEAAADoo+UPAEmJRQBJiUUITYt9KDHASIt8JAhJKcZJjUYBSTnHTA9C+E2F/3QKTIn+6MX0DwDrB+ju6Q8AMcBJiUUQSQHGTYl1GEkBx02JfSDp/P7//0mDfQAAdRK/AQAAAOhE5Q8ASYlFAEmJRQhJi3UoMcBJKcdJjUcBSDnGSA9C8EiF9kiJdCQQdAxIi3wkCOhk9A8A6wxIi3wkCOiI6Q8AMcBJiUUQSQHHTYl9GEiLTCQQSAHBSYlNIOnD/v//zMzMzMzMzMzMzFVBV0FWQVVBVFNIg+wYQYnWSYn1SIn9SItfIEg7XxgPhIYAAABIi0PwSIXAdFyAe/gATIt9AHQjTYtnGEmLRyBIicFMKeFIhcl+ZkmNRCQBSYlHGEHGBCQs6y+oAbgsAAAAujoAAAAPRNBNi2cYSYtHIEiJwUwp4UiFyX5PSY1EJAFJiUcYQYgUJEiDQ/ABSInvTInuRInySIPEGFtBXEFdQV5BX13pZQ8AAMZFPAHr3kmLfxBIhf90OEgp+EiNSAFI0elIAcFIifjrS4lUJAxJi08QSIXJSIkMJHR+SCnISI1wAUjR7kgBxkiJyOmGAAAASIk8JEmDPwB1Eb8BAAAA6NrjDwBJiQdJiUcISYtPKDHASIs8JEkpxEmNRCQBSDnBSA9CyEiFyUiJDCR0CkiJzuj58g8A6wfoIugPADHASYlHEEkBxE2JZxhIiwwkSAHBSYlPIOnw/v//SYM/AHURvwEAAADodeMPAEmJB0mJRwhJi3coMcBJKcRJjUQkAUg5xkgPQvBIhfZIiXQkEHQLSIs8JOiW8g8A6wtIizwk6LvnDwAxwEmJRxBJAcRNiWcYSItMJBBIAcFJiU8gi1QkDOm2/v//zMzMzMzMzMzMVUFXQVZBVUFUU0iD7BhJifxIi18gSDtfGHR8SItD8EiFwHRYgHv4AE2LLCR0IUmLbRhJi0UgSInBSCnpSIXJfl5IjUUBSYlFGMZFACzrLagBuCwAAAC9OgAAAA9E6E2LdRhJi0UgSInBTCnxSIXJfk9JjUYBSYlFGEGILkiDQ/ABTInnSIPEGFtBXEFdQV5BX13paQ8AAEHGRCQ8AeviTYt1EE2F9vIPEUQkCHQ7TCnwTI14AUnR70kBx0yJ8OtI8g8RRCQISYtNEEiFyUiJTCQQdHhIKchMjXgBSdHvSQHHSInI6YIAAABJg30AAHUSvwEAAADoFuIPAEmJRQBJiUUITYt9KDHASCnFSI1FAUk5x0wPQvhMifdNhf90CkyJ/ug68Q8A6wfoY+YPADHASYlFEEgBxUmJbRhJAcdNiX0g8g8QRCQI6fX+//9Jg30AAHUSvwEAAADos+EPAEmJRQBJiUUITYt9KDHASSnGSY1GAUk5x0wPQvhNhf90D0iLfCQQTIn+6NXwDwDrDEiLfCQQ6PnlDwAxwEmJRRBJAcZNiXUYSQHHTYl9IPIPEEQkCOm7/v//zMzMzMzMzMzMzFVBV0FWQVVBVFNIg+wYQYn0SYn/SItvIEg7bxgPhNEAAABIi0XwSIXAdGGAffgATYsvdCVNi3UYSYtFIEiJwUwp8UiFyQ+OygAAAEmNRgFJiUUYQcYGLOszqAG4LAAAAEG+OgAAAEQPRPBJi10YSYtFIEiJwUgp2UiFyQ+ODQEAAEiNQwFJiUUYRIgzSINF8AFJix9Ii2sYSItDIEiJwUgp6UiD+Qp+UkiNRQtIiUMYRYXkeAVIie7rC0iNdQHGRQAtQffcRInn6LMXAABJiw9Ii1EYSCnoSAHQSIPA9UiJQRiwAUiDxBhbQVxBXUFeQV9dw0HGRzwB65dMi3MQTYX2dDRMKfBMjWgBSdHtSQHFTInw6z9Ji30QSIX/D4SPAAAASCn4SI1YAUjR60gBw0iJ+OmjAAAASIM7AHURvwEAAADoCeAPAEiJA0iJQwhMi2soMcBIKcVIjUULSTnFTA9C6EyJ902F7XQKTInu6C7vDwDrB+hX5A8AMcBIiUMQSAHFSQHFTIlrIOka////SYtNEEiFyUiJTCQIdHlIKchIjXABSNHuSAHGSInI6YMAAABIiXwkCEmDfQAAdRK/AQAAAOiJ3w8ASYlFAEmJRQhJi10oMcBIi3wkCEkpxkmNRgFIOcNID0LYSIXbdApIid7oq+4PAOsH6NTjDwAxwEmJRRBJAcZNiXUYSAHDSYldIOk2/v//SYN9AAB1Er8BAAAA6CrfDwBJiUUASYlFCEmLdSgxwEgpw0iNQwFIOcZID0LwSIX2SIl0JBB0DEiLfCQI6EruDwDrDEiLfCQI6G7jDwAxwEmJRRBIAcNJiV0YSItMJBBIAcFJiU0g6QH+//9VQVdBVkFVQVRTSIPsGEGJ9kmJ/0iLbyBIO28YD4S+AAAASItF8EiFwHRggH34AE2LL3QkSYtdGEmLRSBIicFIKdlIhckPjrcAAABIjUMBSYlFGMYDLOszqAG4LAAAALs6AAAAD0TYTYtlGEmLRSBIicFMKeFIhckPjv0AAABJjUQkAUmJRRhBiBwkSINF8AFJix9Ii2sYSItDIEiJwUgp6UiD+Ql+QEiNRQpIiUMYRIn3SInu6EYVAABJiw9Ii1EYSCnoSAHQSIPA9kiJQRiwAUiDxBhbQVxBXUFeQV9dw0HGRzwB66lMi2sQTYXtdDRMKehMjWABSdHsSQHETIno6z9Ji30QSIX/D4SPAAAASCn4TI1gAUnR7EkBxEiJ+OmjAAAASIM7AHURvwEAAADonN0PAEiJA0iJQwhMi2MoMcBIKcVIjUUKSTnETA9C4EyJ702F5HQKTInm6MHsDwDrB+jq4Q8AMcBIiUMQSAHFSQHETIljIOks////SYtNEEiFyUiJTCQIdHlIKchIjXABSNHuSAHGSInI6YMAAABIiXwkCEmDfQAAdRK/AQAAAOgc3Q8ASYlFAEmJRQhNi2UoMcBIi3wkCEgpw0iNQwFJOcRMD0LgTYXkdApMieboPuwPAOsH6GfhDwAxwEmJRRBIAcNJiV0YSQHETYllIOlJ/v//SYN9AAB1Er8BAAAA6L3cDwBJiUUASYlFCEmLdSgxwEkpxEmNRCQBSDnGSA9C8EiF9kiJdCQQdAxIi3wkCOjc6w8A6wxIi3wkCOgA4Q8AMcBJiUUQSQHETYllGEiLTCQQSAHBSYlNIOkQ/v//zMxVQVdBVkFVQVRTSIPsGEmJ9kmJ/UiLXyBIO18YD4TVAAAASItD8EiFwHRkgHv4AEmLbQB0JUyLfRhIi0UgSInBTCn5SIXJD47NAAAASY1HAUiJRRhBxgcs6zWoAbgsAAAAQb86AAAARA9E+EyLZRhIi0UgSInBTCnhSIXJD44SAQAASY1EJAFIiUUYRYg8JEiDQ/ABSYttAEiLXRhIi0UgSInBSCnZSIP5FH5SSI1DFUiJRRhNhfZ4BUiJ3usKSI1zAcYDLUn33kyJ9+hAFQAASYtNAEiLURhIKdhIAdBIg8DrSIlBGLABSIPEGFtBXEFdQV5BX13DQcZFPAHrlkyLfRBNhf90NEwp+EyNYAFJ0exJAcRMifjrQUiLfRBIhf8PhJEAAABIKfhMjWABSdHsSQHESIn46aUAAABIg30AAHUSvwEAAADoFNsPAEiJRQBIiUUITItlKDHASCnDSI1DFUk5xEwPQuBMif9NheR0CkyJ5ug46g8A6wfoYd8PADHASIlFEEgBw0kBxEyJZSDpGP///0iLTRBIhclIiUwkCHR5SCnISI1wAUjR7kgBxkiJyOmDAAAASIl8JAhIg30AAHUSvwEAAADok9oPAEiJRQBIiUUITItlKDHASIt8JAhJKcdJjUcBSTnETA9C4E2F5HQKTInm6LXpDwDrB+je3g8AMcBIiUUQSQHHTIl9GEkBxEyJZSDpMf7//0iDfQAAdRK/AQAAAOg02g8ASIlFAEiJRQhIi3UoMcBJKcRJjUQkAUg5xkgPQvBIhfZIiXQkEHQMSIt8JAjoU+kPAOsMSIt8JAjod94PADHASIlFEEkBxEyJZRhIi0wkEEgBwUiJTSDp+/3//8zMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYn2SYn/SItfIEg7XxgPhMIAAABIi0PwSIXAdGSAe/gASYsvdCdMi2UYSItFIEiJwUwp4UiFyQ+OuwAAAEmNRCQBSIlFGEHGBCQs6zSoAbgsAAAAQbw6AAAARA9E4EyLbRhIi0UgSInBTCnpSIXJD47+AAAASY1FAUiJRRhFiGUASIND8AFJiy9Ii10YSItFIEiJwUgp2UiD+RN+QEiNQxRIiUUYTIn3SIne6MISAABJiw9Ii1EYSCnYSAHQSIPA7EiJQRiwAUiDxBhbQVxBXUFeQV9dw0HGRzwB66lMi2UQTYXkdDRMKeBMjWgBSdHtSQHFTIng60FIi30QSIX/D4SRAAAASCn4TI1oAUnR7UkBxUiJ+OmlAAAASIN9AAB1Er8BAAAA6JfYDwBIiUUASIlFCEyLbSgxwEgpw0iNQxRJOcVMD0LoTInnTYXtdApMie7ou+cPAOsH6OTcDwAxwEiJRRBIAcNJAcVMiW0g6Sr///9Ii00QSIXJSIlMJAh0ekgpyEiNcAFI0e5IAcZIicjphAAAAEiJfCQISIN9AAB1Er8BAAAA6BbYDwBIiUUASIlFCEyLbSgxwEiLfCQISSnESY1EJAFJOcVMD0LoTYXtdApMie7oN+cPAOsH6GDcDwAxwEiJRRBJAcRMiWUYSQHFTIltIOlC/v//SIN9AAB1Er8BAAAA6LbXDwBIiUUASIlFCEiLdSgxwEkpxUmNRQFIOcZID0LwSIX2SIl0JBB0DEiLfCQI6NbmDwDrDEiLfCQI6PrbDwAxwEiJRRBJAcVMiW0YSItMJBBIAcFIiU0g6Q/+///MzMzMzMzMzMzMzMxBV0FWQVVBVFNIiftMiydNi2wkGEmLRCQgSInBTCnphfZ0PkiD+QMPjpwAAABJjUUBSYlEJBhBxkUAdEiLA0iLSBhIjVEBSIlQGMYBckiLA0iLSBhIjVEBSIlQGMYBdetKSIP5BH5+SY1FAUmJRCQYQcZFAGZIiwNIi0gYSI1RAUiJUBjGAWFIiwNIi0gYSI1RAUiJUBjGAWxIiwNIi0gYSI1RAUiJUBjGAXNIiwNIi0gYSI1RAUiJUBjGAWWwAVtBXEFdQV5BX8NNi3QkEE2F9nQuTCnwTI14AUnR70kBx0yJ8Os9TYt0JBBNhfZ0U0wp8EyNeAFJ0e9JAcdMifDrYkmDPCQAdRO/AQAAAOg+1g8ASYkEJEmJRCQITYt8JCgxwEkpxUmNRQRJOcdMD0L4TIn3TYX/dEtMif7oYOUPAOtISYM8JAB1E78BAAAA6P3VDwBJiQQkSYlEJAhNi3wkKDHASSnFSY1FBUk5x0wPQvhMifdNhf90M0yJ/ugf5Q8A6zDoSNoPADHASYlEJBBJAcVNiWwkGEkBx02JfCQgTIsjTYtsJBjpgf7//+gf2g8AMcBJiUQkEEkBxU2JbCQYSQHHTYl8JCBMiyNNi2wkGOmS/v//zMzMzMzMzMzMzMxBV0FWQVRTUEiJ80mJ/kyLfxBNhf90FkmLTiBMKflIjUEBSNHoSAHITIn56x1Jgz4AdRG/AQAAAOgz1Q8ASYkGSYlGCEmLRigxyU2LZhhJKcxIweMETAHjSDnYSA9D2EyJ/0iF23QKSIne6FHkDwDrB+h62Q8AMcBJiUYQSQHETYlmGEgBw0mJXiBIg8QIW0FcQV5BX8PMzMzMzMzMzMzMVUFXQVZBVUFUU1BBiddJifZJifxIiy9DjQR/jVwAAkyLbRhIi00gSInITCnoSDnYD4z5AAAASY1FAUiJRRhBxkUAIkWF/w+EvwAAAEWJ+jHJTI0NSKDy/0yNBTGg8v+QQQ+2HA4PtvtBD7YUOUmLLCRIi3UYSI1GAUiJRRiE0nUNiB5Ig8EBTDnRctTrfcYGXEmLBCRIi3AYSI1uAUiJaBiIFoD6dXXbSYsEJEiLUBhIjXIBSIlwGMYCMEmLBCRIi1AYSI1yAUiJcBjGAjBJiwQkSIn6SMHqBEEPthQQSItwGEiNbgFIiWgYiBZJiwQkg+cPQQ+2FDhIi3AYSI1+AUiJeBiIFul4////SYsEJEiLSBhIjVEBSIlQGMYBIrABSIPECFtBXEFdQV5BX13DSIt9EEiF/3QSSCn5SI1BAUjR6EgByEiJ+esnSIN9AAB1GkiJPCS/AQAAAOhx0w8ASIs8JEiJRQBIiUUISItFKDHJSSnNTAHrSDnYSA9D2EiF23QKSIne6JXiDwDrB+i+1w8AMcBIiUUQSQHFTIltGEgBw0iJXSBJiywkTIttGOmD/v//zMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+w4ZEiLBCUoAAAASIlEJDBJvAAAAAAAAPB/ZkkPfsZMifNMIeNMOeMPhMAAAABJif1Iiy9Mi30YSItFIEiJwUwp+UiD+RgPjssAAABJjUcZSIlFGEqNBHUAAAAASIXAdCBFi3U4Zg9XyWYPLsh2MUmNbwFBxgctZg9XBbWCmf7rIkyJ+E2F9nkISY1HAUHGBy1mxwAwLsZAAjBIg8AD6zhMif3HRCQsAAAAAMdEJCgAAAAASI10JCxIjVQkKEiJ7+jvAAAAi3QkLItUJChIie9EifHofAMAAEmLTQBIi1EYTCn4SAHQSIPA50iJQRhMOeMPlcBkSIsMJSgAAABIO0wkMA+FpAAAAEiDxDhbQVxBXUFeQV9dw0iLfRBIhf9mD39EJBB0Ekgp+EiNSAFI0elIAcFIifjrKUiJfCQISIN9AAB1Er8BAAAA6LbRDwBIiUUASIlFCEiLTSgxwEiLfCQISSnHSY1HGUg5wUgPQshIhclIiUwkCHQKSInO6NPgDwDrB+j81Q8AMcBIiUUQSQHHTIl9GEiLTCQISAHBSIlNIGYPb0QkEOmg/v//6MPTDwDMzMxVQVdBVkFVQVRTSIPsOEmJ0UiJdCQISIk8JGRIiwQlKAAAAEiJRCQwSL8AAAAAAAAQAGZID37ASI1P/0ghwUjB6DQl/wcAAEyNLDmFwEwPROmNgM37//9Bvs77//9ED0XwS410LQBKjQQtAQAAAEwB6EGNTv+JykkPuuU0chNmkEiNHACDwv9IhfhIidh08esDSInDQYncQcHkCkGNRv5Ig8b/STn9D0TISbv///////8/AEwPRd4p0YDBCknT47jN////KdAPV8DyDyrA8g9ZBQOQ8v/yD1gFg4/y//IPLMBmD+bI8w/myfIPXMFmD1fJMclmDy7BD5fBAcHB+QONBM0IAAAAg8EBvlwBAAApxkGJMUiNBQad8v9IiyzISI01u5/y/0QPvzxOSQ+9zUiD8T9J0+VIx0QkKAAAAABMie5Iwe4gRInvQYntSMHtIEmJ6EwPr8ZIiehID6/HSQ+v9UkPr/1Iwe8gQYnySQH6icdMAddIge8AAACASMHuIEwBxkjB6CBIAfBIwe8gSAHHQSnOQ40EPoPAQEiJfCQgiUQkKEjHRCQYAAAAAEjB6xaJ2EiJ7kgPr/BIietJD6/cSQ+vxU0Pr+VJwewgicdMAeeJ2UgB+UiB6QAAAIBIweggSAHwSMHrIEgBw0jB6SBIjTQLQo0EOoPANolEJBhEidhJwesgSInqSQ+v00gPr+hND6/dTA+v6EnB7SBEidhMAeiJ70gBx0iB7wAAAIBJwesgSQHTSMHtIEwB3UjB7yBIAe9I99dIjQQZSIPA/0iJRCQQSI1UN/9IjXwkIEiNdCQQSIsMJEyLRCQI6MACAABkSIsEJSgAAABIO0QkMHUPSIPEOFtBXEFdQV5BX13D6CzRDwDMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEGJz4nTQYn0SYn+Ro0sI4XSeElBg/0Vf0OF234pSWP8TAH3QY1EJAFBOcVBD0/FQffUQQHESYPEAb4wAAAATIni6A/SDwBJY8VmQccEBi4wSQHGSYPGAukPAgAAQY1t/4P9FHc4RIntSY08LkiDxwFJjTQuidj32Ehj0Oil1w8AQcYELi5EAfsPiLMAAABJY8RJAcZJg8YB6c4BAABBjUUFg/gFd3+9AgAAAEQp7UmNPC5JY9RMifboaNcPAGZBxwYwLkWF7XkcSY1+AoP9BLoDAAAAD03Vg8L+vjAAAADocdEPAPfbRDn7D46lAAAAQYP/AnwnQYPHAmYuDx+EAAAAAABmkEGNR/9BgDwGMA+F5AAAAEGJx4P4A3/pSYPGA+lGAQAAQfffRTn9fXVmQccGMC5BxkYCMEmDxgPpKgEAAEGD/wJ8QUGNTQFEAeNIY8OJykiJxkjB5iBIuQAAAAABAAAASAHxSL4AAAAA/////w8fQABBgDwGMHVzSIPA/0gB8Ug50H/tQYPFAk0B7unXAAAARAHlSGPFSQHG6ckAAABBg/wBdQ9BxkYBZYXteE9Jg8YC61pJjX4CSY12AUGNRCT/SGPQ6FnWDwBBxkYBLkljxELGRDABZUkBxkmDxgKF7XksQcYGLUmDxgHrGkjB+SBJAc7rc0SJ+EkBxutrQcZGAi1Jg8YDvQEAAABEKe2D/WR8LonoSGnAH4XrUUjB6CWNSDBBiA5rwGQpxUiNBeCc8v8PtwRoZkGJRgFJg8YD6yeD/Qp8F4noSI0Nw5zy/w+3BEFmQYkGSYPGAusLQIDFMEGILkmDxgFMifBIg8QIW0FcQV1BXkFfXcPMzMzMzMzMzFVBV0FWQVVBVFNMiUwk6EmJzDHJK04IQboBAAAASdPiSIsuSInoSNPoSIs3SIl0JPBNjVr/uwEAAACD+ApyU7sCAAAAg/hkckm7AwAAAD3oAwAAcj27BAAAAD0QJwAAcjG7BQAAAD2ghgEAciW7BgAAAD1AQg8Achm7BwAAAD2AlpgAcg09AOH1BbsJAAAAg9sASYntTCtsJPBNid9IiWwk+Ekh70HHAAAAAABIjT2BlvL/6zNmLg8fhAAAAAAAkEGLKAQwjXUBQYkwSGP1QYgENESJzUjT5U2NNC9EichJOdYPhnoBAACF2w+OCwEAAIPD/4P7CA+HxgAAAEUxyUhjLJ9IAf3/5YnGvc3MzMxID6/1SMHuI40sNo1srQDpjQAAAInGSGn2H4XrUUjB7iVr7mTre4nGSGn2001iEEjB7iZp7ugDAADrZonGvVkXt9FID6/1SMHuLWnuECcAAOtPicbB7gVIafbFWnwKSMHuJ2nuoIYBAOs3icZIafaD3htDSMHuMmnuQEIPAOsiicZIafZryl9rSMHuNmnugJaYAGYuDx+EAAAAAAAPH0QAACnoQYnBifCFwA+FAf///0SJyEGJwUGLKDHAhe0PhfH+///p+/7//4nFSGntiTvmVUjB7Tlp9QDh9QUp8EGJwYnohcAPhcf+///rxDHA6ySQSGPqQIDGMIPCAUGJEEGINCxIjRS/TSHfg8ABSInVTCn9dyFNAf9PjTy/TIn+SNPuSInXSAHXQYsQQIT2dcKF0nTP67xIi0wk6CkBg/gID4+HAAAASJhIjQ0DmvL/iwSB63tIi0Qk6AEYidhIjTXumfL/iwSGSNPgTTnuTItMJPAPg7MAAABIidFMKfFIOcEPgqQAAABJYwhMie9MKfdJAcdJAe9MKfpMK0wk+A8fQABNOe9yCUuNNDlIOfd2e0GARAz//0gpwg+Sw00573NqSCnHSQHHhNt01+teMcBJD6/FSTnHc1NMOdVyTkljCEiJwkwp+kiNPL9NAddMKf9IicVI991mLg8fhAAAAAAAZpBJOcdyCUmNNC9IOfJ2G0GARAz//0wp1w+Sw0k5x3MKTCnSTQHXhNt011tBXEFdQV5BX13DzMzMzMzMzMzMzMzMSInwgf8PJwAAd0IPt8/B6QJpyXsUAADB6RFMjQQJa8lkif4pzg+3zkgByYH/6AMAAA+CpgAAAEiNNQKZ8v9CihQGiBBIg8AB6ZkAAACJ+YH//+D1BQ+HywAAAL5ZF7fRSA+v8UjB7i1EacYQJwAAifpEKcJMacmD3htDScHpMUGD4f4Pt87B6QJpyXsUAADB6RFryWQpzg+39kgB9g+3ysHpAmnJexQAAMHpEUyNBAlryWQpyg+30kgB0oH/gJaYAA+CmQAAAEiNDXKY8v9CigwJiAhIg8AB6Y8AAACD/2QPgu0AAABBD7fQSIPKAUiNNUuY8v+KFBaIEEiDwAFIjRU7mPL/ihQKiBBIg8ABD7fJSIPJAUiNFSSY8v+KDAqICEiDwAHDSGnRiTvmVUjB6jlp8gDh9QWJ+Snxgf8Aypo7D4KaAAAAidJIjTXwl/L/D7cUVmaJEEiDwALpigAAAIH/QEIPAA+C+wAAAESJyUiDyQFIjT3Gl/L/igwPiAhIg8ABSI0Ntpfy/4oMMYgISIPAAQ+3zkiDyQFIjTWfl/L/igwOiAhCigwGiEgBQQ+3yEiDyQGKDA6ISAKKDBaISAMPt8pIg8kBigwOiEgESIPABcOD/woPgyL////pLf///4DCMIgQSIPAAYnKvlkXt9FID6/ySMHuLWn+ECcAACn5SGnSg94bQ0jB6jIPt/7B7wJp/3sUAADB7xFr/2Qp/kQPt8YPt/nB7wJp/3sUAADB7xFr92Qp8Q+3yUiNNf6W8v8PtxRWZokQQg+3FEZmiVACD7cUfmaJUAQPtwxOZolIBkiDwAjDgf+ghgEAD4MQ////6Rv////MzMzMzMzMzEFXQVZTSIH//+D1BXdNgf8PJwAAD4dbAQAAD7fHwegCacB7FAAAwegRSI0MAGvAZIn6KcIPt8JIAcCB/+gDAAAPguwBAABIjRVzlvL/ihQKiBZIg8YB6eABAABIuP//wG/yhiMASDnHD4eIAQAASLn9zmGEEXfMq0iJ+Ej34UjB6hpIacIA4fUFSYn6SSnCidO4WRe30Uxp+4PeG0NID6/YSMHrLWnLECcAACnKScHvMUGD5/4Pt8vB6QJpyXsUAADB6RFryWQpy0QPt/NNAfYPt8rB6QJpyXsUAADB6RFMjQwJa8lkKcpED7fCTQHASQ+vwkjB6C1p2BAnAABJadKD3htDRInRKdlIweoxgeL+AQAAD7fYwesCadt7FAAAwesRa9tkKdhED7fYTQHbD7fBwegCacB7FAAAwegRTI0UAGvAZCnBD7fBSAHASLkAgMakfo0DAEg5zw+CHwEAAEiNDVqV8v9Cigw5iA5Ig8YB6RwBAACJ+LpZF7fRSA+v0EjB6i1p2hAnAACJ+SnZSGnYg94bQ0jB6zGD4/4Pt8LB6AJpwHsUAADB6BFrwGQpwg+3wkgBwA+30cHqAmnSexQAAMHqEUyNBBJr0mQp0Q+3yUgByUiB/4CWmAAPgpYBAABIjRXYlPL/ihQaiBZIg8YB6Y4BAABIuVd4E7EvZaU5SIn4SPfhSMHqM0i4AADBb/KGIwBID6/CSCnHg/oJD4fKAQAAgMIwiBZIg8YB6dkCAACD/2QPgtUBAAAPt8lIg8kBSI0Vd5Ty/4oMCogOSIPGAUiNDWeU8v+KDAGIDkiDxgEPt8BIg8gBSI0NUJTy/4oEAYgGSIPGAemfAwAASLkAQHoQ81oAAEg5zw+CjQEAAESJ+UiDyQFIjT0hlPL/igwPiA5Ig8YBSI0NEZTy/0KKDDGIDkiDxgFBD7fOSIPJAUiNPfiT8v+KDA+IDkiDxgFIjQ3ok/L/QooMCYgOSIPGAUEPt8lIg8kBSI09z5Py/4oMD4gOSIPGAUiNDb+T8v9CigwBiA5Ig8YBQQ+3yEiDyQFIjT2mk/L/igwPiA6KDBeITgGJ0UiDyQGKDA+ITgJCigwfiE4DQQ+3y0iDyQGKDA+ITgRCigwXiE4FQQ+3ykiDyQGKDA+ITgaKDAeITgcPt8BIg8gBigQHiEYISIPGCemmAgAASIH/QEIPAA+C/AAAAInaSIPKAUiNPS+T8v+KFBeIFkiDxgFIjRUfk/L/ihQCiBZIg8YBD7fASIPIAUiNFQiT8v+KBAKIBkKKBAKIRgFBD7fASIPIAYoEAohGAooECohGAw+3wUiDyAGKBAKIRgRIg8YF6S8CAACD+mMPh5sAAACJ0EiNDcCS8v8PtwRBZokGSIPGAun7AAAAg/8KD4M5/v//6UT+//9IiflIwekNSIH5lXPCSA+Ddv7//0iJ+UjB6QxIgflRSo0OD4Nz/v//SIn5SMHpC0iB+d0O6QIPg3f+//9IiflIwekKSIH5+QKVAA+DdP7//0iB/wDKmjsPg3/+///pi/7//0iB/6CGAQAPgw3////pGP///4nQwegCacB7FAAAwegRgfrnAwAAdzODwDCIBg+3wonBwekCacl7FAAAwekRa8lkKcgPt8BIjQ3zkfL/D7cEQWaJRgFIg8YD6zBryGQpyg+3wA+3ykiNFdOR8v8PtwRCZokGigRKSAHJiEYCD7fBikQCAYhGA0iDxgRIuf3OYYQRd8yrSIn4SPfhSMHqGkhpwgDh9QVIKceJ07lZF7fRTGnTg94bQ0gPr9lIwestacMQJwAAKcJJweoyD7fDwegCacB7FAAAwegRa8BkKcNED7fDD7fCwegCadh7FAAAwesRa8NkKcJED7fKSA+vz0jB6S1pwRAnAACJ+inCSGn/g94bQ0jB7zGB5/4BAAAPt8HB6AJpwHsUAADB6BFrwGQpwUQPt9kPt8rB6QJpyXsUAADB6RFrwWQpwkQPt/JIjRXrkPL/Qg+3BFJmiQZCD7cEQmaJRgIPtwRaZolGBEIPtwRKZolGBg+3BDpmiUYIQg+3BFpmiUYKD7cESmaJRgxCD7cEcmaJRg5Ig8YQSInwW0FeQV/DzMzMzMzMzMzMzEFXQVZTSIPsUEmJ9kmJ/2RIiwQlKAAAAEiJRCRID1fADxFEJDBIx0QkQAAAAABIi0cgSIkEJA8RRCQIDxFEJBhIx0QkKAABAADHRCRAAgAAAMdEJDAAAAAASMdEJDgAAAAASIsGSLsAJgAAAQAAAJAPtghIg/kgdwxID6PLcwZIg8AB6+tJiQaAOAAPhOMAAABIiedMifZMifroAQEAAItMJDCFyXUsSYsGZg8fRAAAD7YISIP5IHcMSA+jy3MGSIPAAevrSYkGMcmAOAAPhagAAABIi0QkEEiLVCQ4SIlEJBhBiU9QSYlXWIXJdQ5IjQULkf//SIXAdQnrJTHASIXAdB5Ji0c4SI1I8EmJTzhJOc90DQ8QAUEPEQdmx0D+AABJi38wSYl/OOhyww8AD1fAQQ8RRzBJx0dAAAAAAEiLfCQQ6FjDDwBIi3wkCEiF/3QF6Om+DwBkSIsEJSgAAABIO0QkSHUrTIn4SIPEUFtBXkFfw7kBAAAA6wW5AgAAAEkrRgiJTCQwSIlEJDjpQf///+j5wA8AzMzMzMzMzMzMU0iJ00iLBg++EI1KpYP5IHcZSI0Vn4ny/0hjDIpIAdH/4UiJ2lvpVQgAAIP6InULSInaMclb6ZUBAABIidpb6YwKAABIjUgBSIkOgHgBYQ+FIgEAAEiNSAJIiQ6AeAJsD4URAQAASI1IA0iJDoB4A3MPhQABAABIjUgESIkOgHgEZQ+F7wAAAEiDwAVIiQZIi0M4SItLQEgpwUiD+Q8PjuQAAABIjUgQSIlLOA9XwA8RAGbHQA4JAFvDSI1IAUiJDoB4AXUPhawAAABIjUgCSIkOgHgCbA+FmwAAAEiNSANIiQ6AeANsD4WKAAAASIPABEiJBkiLQzhIi0tASCnBSIP5Dw+OlgAAAEiNSBBIiUs4D1fADxEAW8NIjUgBSIkOgHgBcnVRSI1IAkiJDoB4AnV1REiNSANIiQ6AeANldTdIg8AESIkGSItDOEiLS0BIKcFIg/kPfl5IjUgQSIlLOA9XwA8RAGbHQA4KAFvDSInaW+n5AwAASCtOCMdHMAMAAABIiU84W8NIjXsgvgEAAADo+qT//0iLQzjpBf///0iNeyC+AQAAAOjjpP//SItDOOlT////SI17IL4BAAAA6Myk//9Ii0M4647MzMzMzMxVQVdBVkFVQVRTSIPsSEGJyEmJ10iJ+2RIiwQlKAAAAEiJRCRADxAGDylEJBBIiXQkIEiLRCQQSIPAAUiJRCQQSMdEJDgAAAAASIl8JDDHRCQ4AAAAAEiNFZON8v8PHwAPtgiA+Vx0T4D5Ig+EKwIAAID5Hw+GmQIAAEiNSAFIiUwkEEQPtiBMi3QkME2LbhhJi0YgSInBTCnpSIXJfmpJjUUBSYlGGEWIZQCDRCQ4AUiLRCQQ66lIicVIK2wkGEiNSAFIiUwkEA+2SAFED7Y0CkWE9g+EwgAAAEiDwAJIiUQkEEiLbCQwSItFGEiLTSBIKcFIhckPjvoAAABIjUgBSIlNGESIMOuiSYtuEEiF7UyJfCQIdBJIKehMjXgBSdHvSQHHSIno6yNJgz4AdRe/AQAAAEWJx+h0uw8ARYn4SYkGSYlGCE2LfigxwESJRCQESSnFSY1FAUk5x0wPQvhIie9Nhf90CkyJ/uiRyg8A6wfour8PADHASYlGEEkBxUkBx02JfiBMi3wkCESLRCQESI0VWYzy/+kD////gPl1D4XTAQAASYnVRYnESIPAAkiJRCQQSInfSI10JBBIierojA8AAIN7MAAPhWIBAACJxiUA/P//PQDYAAB0PEiNfCQw6Kqm//9Ii0QkEEWJ4EyJ6ulq/v//vgEAAABIie9FicRJidXoZ6j//0yJ6kWJ4EiLRRjp5P7//4k0JEmJ3kiLRCQQgDhcD4VZAQAASI1IAUiJTCQQgHgBdQ+FRgEAAEiDwAJIiUQkEEyJ80yJ90iNdCQQSInq6PUOAABBg34wAA+FygAAAInBgeEA/P//gfkA3AAAD4ULAQAAiwwkweEKgcEAAKD8BQAk//8JyAUAAAEAicZMifPpQP///0iDwAFIiUQkEEiLbCQwSItFGEiLTSBIKcFIhckPjp4AAABIjUgBSIlNGMYAAItUJDiNQgGJRCQ4g3swAHVWicBIi0wkMEiLcRhIKcZIiXEYRYTATIn/uQEAAADoZKL//4TAdTBIi0QkEEgrRCQYx0MwEAAAAOsZSCtEJBiEyXQJx0MwDAAAAOsHx0MwCwAAAEiJQzhIi0QkIA8oRCQQDxEAZEiLBCUoAAAASDtEJEB1RkiDxEhbQVxBXUFeQV9dw74BAAAASInvRYnG6ASn//9FifBIi0UY6Ub////HQzAKAAAASIlrOOurQcdGMAkAAABJiW44653oiLsPAMzMzMzMzMzMVUFXQVZBVUFUU1BJidZIifNJif9IgwYBSItCOEiLSkBIKcFIg/kPfn1IjUgQSYlOOA9XwA8RAGbHQA4DAEiLA0i9ACYAAAEAAABmDx9EAAAPtghIg/kgdwxID6PNcwZIg8AB6+tIiQNBg38wAHUoigiA+X11R0iDwAFIiQNJi0Y4SLkAAAAAAAADAEiJSPhIx0DwAAAAAEiDxAhbQVxBXUFeQV9dw0mNfiC+AQAAAOhsoP//SYtGOOls////gPkiD4UmAQAARTHkTIn/SIneTInyuQEAAADohPv//0GDfzAAdbRIiwtIicgPH4AAAAAAD7YQSIP6IHcQSA+j1XMKSIPAAUiDwQHr50iJA0GDfzAAdYSAODoPheYBAABIg8ABSIkDZi4PH4QAAAAAAA8fAA+2CEiD+SB3DEgPo81zBkiDwAHr60iJA0GDfzAAD4VE////TIn/SIneTIny6C/5//9Bg38wAA+FK////0iLC0iJyGYuDx+EAAAAAAAPH0AAD7YQSIP6IHcQSA+j1XMKSIPAAUiDwQHr50iJA0GDfzAAD4Xw/v//QYPEAQ++EIP6LHVOSIPAAUiJA2YPH0QAAA+2CEiD+SB3DEgPo81zBkiDwAHr60iJA0GDfzAAD4W0/v//gDgiD4Td/v//SCtDCEHHRzAEAAAASYlHOOmW/v//g/p9D4WsAAAASIPAAUiJA0WJ50nB5wVNi24QSYtGOEiJw0wp+0mJXjhMiflI99lmx0QI/gMARYXkD4SLAAAATYt1AE2F9nQNSYtOCEqNBDlJOwZ2T0mLbQhMOf1JD0bvSYN9GAB1Er8BAAAA6J62DwBJiUUYSYlFIEiJ70iDxxh0VujoxQ8ASIXAdExIiShIx0AIAAAAAEyJcBBJiUUAMclJicZJjTwOSIPHGEwB+UmJTgjrJUgrSwhBx0cwBgAAAEmJTzjpzP3//w+3Q/5IweAwSIlD+OscMf8Pt0P+SMHgMEgJ+EiJQ/hIid5Mifrou7oPAESJY/REiWPw6ZX9//9IK0sIQcdHMAUAAADrslVBV0FWQVVBVFNQSYnWSInzSYn/SIMGAUiLQjhIi0pASCnBSIP5D357SI1IEEmJTjgPV8APEQBmx0AOBABIiwNIvQAmAAABAAAAZg8fRAAAD7YISIP5IHcMSA+jzXMGSIPAAevrSIkDQYN/MAB1JoA4XXVHSIPAAUiJA0mLRjhIuQAAAAAAAAQASIlI+EjHQPAAAAAASIPECFtBXEFdQV5BX13DSY1+IL4BAAAA6F6d//9Ji0Y46W7///9FMeTrCkiJA0GDfzAAdctMif9Iid5MifLoqPb//0GDfzAAdbZIiwtIichmLg8fhAAAAAAAkA+2EEiD+iB3F0gPo9VzEUiDwAFIg8EB6+cPH4AAAAAASIkDQYN/MAAPhXf///9Bg8QBihCA+ix1HEiDwAFIiQMPtghIg/kgd4dID6PNc4FIg8AB6+uA+l0Phd8AAABIg8ABSIkDRYnnScHnBE2LbhBJi0Y4SInDTCn7SYleOEyJ+Uj32WbHRAj+BABFheR0dk2LdQBNhfZ0DUmLTghKjQQ5STsGdk9Ji20ITDn9SQ9G70mDfRgAdRK/AQAAAOhOtA8ASYlFGEmJRSBIie9Ig8cYdEHomMMPAEiFwHQ3SIkoSMdACAAAAABMiXAQSYlFADHJSYnGSY08DkiDxxhMAflJiU4I6xAPt0P+SMHgMEiJQ/jrHDH/D7dD/kjB4DBICfhIiUP4SIneTIn66IC4DwBEiWP0RIlj8Olo/v//SCtLCEHHRzAHAAAASYlPOOlT/v//zMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIPsKEiJFCRJifRMixZFigJEicBMidNBgPgtdQhJjVoBQYpCAUmLTCQISIlMJAg8MA+EVQMAAI1Iz4D5CA+HDwMAAEQPtuhBg8XQQIpzAUiDwwGNRtBmD1fAQbcBQYD4LXVXPAkPhxcDAAAx0mYPH4QAAAAAAEGB/czMzAxzKEONRK0AQA+2zkSNLEFBg8XQg8IBD7ZzAUiDwwGNRtA8CnLU6bcAAAB1WUCA/jh+0EG9zMzMDEC2OetIPAkPh8ACAAAx0maQQYH9mZmZGXMlQ41ErQBAD7bORI0sQUGDxdCDwgEPtnMBSIPDAY1G0DwKctTranUMQID+NX7TQb2ZmZkZuND///9Fie5BgPgtdVxJu8vMzMzMzMwMTY1LAQ8fhAAAAAAATTnedyZLjSy2QA+29gHGTI00boPCAQ+2cwFIg8MBjU7QgPkKctrpxgAAAE05znVjQID+OH9d681FMdtFMfZFMcnpuAAAAEm7mJmZmZmZmRlNjUsBZi4PH4QAAAAAAGaQTTnedyNLjSy2QA+29gHGTI00boPCAQ+2cwFIg8MBjU7QgPkKctrraU05znUGQID+NX7SZkkPbs5mD2IN4F6Z/mYPXA3IYZn+Zg8owWYPFcHyD1jB8g8QDeRv8v8PH0AAZg8o0PIPWdFAD7bGg8DQD1fA8g8qwPIPWMIPtnMBSIPDAY1G0DwKctdBswFFMf/rCmYPV8BBtwFFMdtBsQFMK1QkCDHAQID+Lg+FeQEAAECKcwFIg8MBjU7QgPkKD4MhAQAAMclFhP8PhJ0AAABEielFhMlMD0TxMclBu9D///9AgP45f2FMifVIwe01dVhLjSy2SAHtTI17AUQPtvZFAd6Dwf8x9kkB7kAPlcYB8g+2cwFMiftAgP4vf8RmSQ9uzmYPYg33XZn+Zg9cDd9gmf5mDyjBZg8VwfIPWMExwEyJ++mMAgAAZkkPbs5mD2INzF2Z/mYPXA20YJn+Zg8owWYPFcHyD1jBQbMB8g8QDc1u8v9mD1fS6xUPH4AAAAAAD7ZzAUiDwwFAgP4vfjdAgP45D4+SAAAAg/oQf+NmDyjY8g9Z2UAPtvaDxtAPV8DyDyrG8g9Yw4PB/2YPLsJ2wIPCAeu7McDpdAEAAEiJ2EgrRCQIx0cwAwAAAEiJRzjpugMAAEiJ2EgrRCQIx0cwDgAAAEiJRzjpogMAAEUx2zHS6dX9//9AinMBSIPDAWYPV8BFMdtBtwEx0kUx9kUx7UUxyel2/v//MclAgP5lD4WzAwAARInoRYTJSQ9FxkEPttNFhNtBuwEAAABED0XadSFmSA9uyGYPYg3CXJn+Zg9cDapfmf5mDyjBZg8VwfIPWMEPtkMBg/grD4V3AwAAPCtBD5XHD7ZTAo1y0ECA/goPgzgDAABIg8MDg8LQPCt1Mbg0AQAAKcgPH4QAAAAAAA+2M41u0ECA/Ql3Z40UkkiDwwGNFFaDwtA5wn7j6X4CAACKA41w0ECA/gkPhzcDAACNsff//39IY/ZIafZnZmZmSIn1SMHtP0jB/iIB7maQjRSSD7bAjRRQg8LQOfJ/GA+2QwFIg8MBjWjQQID9CnLf6xNFMf/rDg+2QwFIg8MBBNA8CnLyidD32EWE/w9EwkWE2w+FigAAAEWEyQ+E1AAAAEGA+C0PhR4BAABJ995IixQkSItCOEiLSkBIKcFIg/kPD47PAgAASI1IEEiJSjhIuQAAAAAAAJYASIlICEyJME2F9g+IIQIAADHJTInySMHqIA+UwcHhBoHJlgEAAGaJSA660P///0iBwjAAAIBJOdYPg9YBAAAPt8mDySDpWwEAAAHIPcv+//9/L2YPV8k9mP3//w+McgEAAPIPXgVdbfL/ucz+//8pwUiNBS9v8v/yD14EyOk3AQAAhcAPiCEBAACJwEiNDRRv8v/yD1kEwekcAQAAQYD4LQ+FvgAAAEH33UiLFCRIi0I4SItKQEgpwUiD+Q8PjhYCAABIjUgQSIlKOEjHQAgAAAAASWPNSIkIhcm59gEAALq2AAAAD0nRZolQDukkAQAASIsUJEiLQjhIi0pASCnBSIP5Dw+O6gEAAEiNSBBIiUo4SMdACAAAAABMiTAxyU2F9g+ZwcHhB4HJFgEAAGaJSA5MifJIweogD4XWAAAAD7fJicqDykBmiVAOutD///9IgcIwAACASTnWD4O1AAAAg8lg60BIixQkSItCOEiLSkBIKcFIg/kPD46RAQAASI1IEEiJSjhIx0AIAAAAAESJ6UiJCDHJRYXtD5nBweEFgcnWAQAAZolIDutq99hIjQ3zbfL/8g9eBMFmDyjIZg8uBZJs8v92DcdHMA0AAABMiVc460FBgPgtdQhmD1cN5VyZ/kiLFCRIi0I4SItKQEgpwUiD+Q8PjpwAAABIjUgQSIlKOEi5AAAAAAAAFgJIiUgI8g8RCEmJHCRIi0QkCEmJRCQISIPEKFtBXEFdQV5BX13DZrm2AEmB/gAAAIAPjWL////r0EiDwwJIidhIK0QkCMdHMA8AAABIiUc467dAgP5FD4RD/P//6Ur9//88LQ+Egfz//41Q0ID6CQ+HqQAAAEiDwwKDwNCJwumJ/P//QbcB6Rb9//9IjXogvgEAAABmDylMJBDo/JP//2YPKEwkEEiLFCRIi0I46T3///9IjXogvgEAAADo25P//0iLFCRIi0I46Rb9//9IjXogvgEAAADowJP//0iLFCRIi0I46c/9//9IjXogvgEAAADopZP//0iLFCRIi0I46fv9//9IjXogvgEAAADoipP//0iLFCRIi0I46VT+//9Ig8MB6Rb////MzMzMVUFXQVZTSIsORA++AUGNaNBBudD///+40P///0CA/QpyIkGNaL+4yf///0CA/QZyE0GNaJ+4qf///0CA/QYPg9EAAABIjWkBSIkuRA++UQFBjWrQQID9CnIkQY1qv0G5yf///0CA/QZyFEGNap9Buan///9AgP0FD4eXAAAASI1pAkiJLkQPvlkCQY1b0EG+0P///0G/0P///4D7CnIeQY1bv0G/yf///4D7BnIPQY1bn0G/qf///4D7BXdYSI1ZA0iJHg++WQONa9BAgP0Kch6Na79Bvsn///9AgP0Gcg+Na59Bvqn///9AgP0FdyZEAcDB4AREAdBEAcjB4AREAdhEAfjB4AQB2EQB8EiDwQRIiQ7rDcdHMAgAAABIiVc4McBbQV5BX13DzMzMzMzMzIuHrAAAADnwD5TBg/gDD5TACMjDZi4PH4QAAAAAAGaQQVdBVkFVQVRTTYnPTYnESInTSYn1SYn+SYPFEEiJ1+gMrw8AuQEAAABMie9Iid5IicJFMcDoZroPAIXAdR5Mie9MieZMifroZLoPAIXAdQxMie/oaLoPAIXAdC2Jx+htug8ASInDSInH6MKuDwBMifdIid5IicLo9OQDAEyJ8FtBXEFdQV5BX8NJxwYAAAAA6+pmLg8fhAAAAAAADx9AAEFWU1BJifZIiftIg8MQSIn36HquDwBIid9MifZIicIxyUUxwOjXuQ8AhcB0CEiDxAhbQV7DSInfSIPECFtBXuncuQ8AZi4PH4QAAAAAAGaQQVZTUDHAgL+oAAAAAHVgSIn7xoeoAAAAAUyNdxBIjTUepMH/ugUAAABMifcxyUUxwOh6uQ8AhcB1NUyJ9+iOuQ8AhcB1KUiNNS9Hef+6CwAAAEyJ9zHJRTHA6FG5DwCFwHUMTIn36GW5DwCFwHQISIPECFtBXsOLi6wAAACJyIPIAoP4A3UvSI01Vvqh/7oLAAAATIn3MclFMcDoELkPAIXAdctMiffoJLkPAIXAdb+Li6wAAACD4f4xwIP5AnWvSI01QySp/7oNAAAATIn3MclFMcDo17gPAIXAdZJMifdIg8QIW0Fe6eS4DwAPH0AAVUFXQVZTSIPsGEGJzkiJ8EmJ/2RIiwwlKAAAAEiJTCQQSI018Uay/0iJx+jQtg8ASIXAdGRIicW/2AAAAOjupw8ASInDSI0FHCAQAEiDwBBIiQNIiWsISI17EEiJ7uiduA8AxoOoAAAAAESJs6wAAAAPV8APEYOwAAAADxGDwAAAAMeD0AAAAAAAgD9JiV8ISccHAAAAAOs96PKsDwCLOOhruA8ASInFSInH6KCsDwBIjXwkCEiJ7kiJwuhQ6QMASItEJAhJiQdIx0QkCDYAAABIhcB0HmRIiwQlKAAAAEg7RCQQdShMifhIg8QYW0FeQV9dw0yJ/+hk9QMASIt8JAhA9scBdM/ohNADAOvI6I2pDwBmLg8fhAAAAAAADx8AVVNQidVIiftIjQU5HxAASIPAEEiJB0iJdwhIg8cQ6L23DwDGg6gAAAAAiausAAAAD1fADxGDsAAAAA8Rg8AAAADHg9AAAAAAAIA/SIPECFtdw2YuDx+EAAAAAAAPH0AAQVdBVlNJif5IjQXZHhAASIPAEEiJB0iLn8AAAABIhdsPhY4AAABJi76wAAAASceGsAAAAAAAAABIhf90BeiOpg8ASYu+kAAAAEiF/3QMSYm+mAAAAOh2pg8ASYu+gAAAAEnHhoAAAAAAAAAASIX/dAdB/5aIAAAAQfZGSAF0CUmLfljoSKYPAE2LfjBNhf90bkmLRjhMOfh1PkyJ/+tSkEiJ3+gopg8ATIn7TYX/D4Ry////TIs79kMQAXTjSIt7IOgKpg8A69gPH4QAAAAAAEiJ2Ew5+3QVSI1YyPZAyAF07kiLeNjo5aUPAOvjSYt+ME2JfjhbQV5BX+nRpQ8AW0FeQV/DZi4PH4QAAAAAAJBTSIn76Of+//9Iid9b6a6lDwBmLg8fhAAAAAAADx9AAFVBV0FWQVRTSIHs4AAAAEmJ10iJ80mJ/mRIiwQlKAAAAEiJhCTYAAAASIn36C/8//+FwHRvicfoBLYPAEiJw0iJx+hZqg8ASI28JLAAAABIid5IicLohuADAEiLhCSwAAAASYkGSMeEJLAAAAA2AAAASIXAD4QdBAAAZEiLBCUoAAAASDuEJNgAAAAPhVUEAABMifBIgcTgAAAAW0FcQV5BX13DD1fADymEJKAAAAAPKYQkkAAAAEiNvCSQAAAATIn+6EmZ//9Ii4QkkAAAAEiFwHQnSYkGqAEPhF0DAADwg0D/AUmDPgAPhU4DAABMiffouvIDAOlBAwAAD1fADylEJHBIx4QkgAAAAAAAAAAPtrQkmAAAAEyNpCSZAAAAQPbGAQ9XwHQSSIu8JKgAAABIi7QkoAAAAOsGSNHuTInnDymEJMAAAAAPKYQksAAAAEiNrCSwAAAASInq6BB9CgBIjXwkcLogAAAASInu6H6VBAAPV8APKYQkwAAAAA8phCSwAAAASI01O0J5/0iNfCRQuhQAAADoRd8DAEiLRCRQSImEJLAAAABIx0QkUDYAAABIhcAPhPkCAACLg6wAAACJwYPJAoP5Aw+FygAAAEiDvCSQAAAAAA+F/AIAAA+2RCRwSYnBSdHpqAFMD0VMJHhMjUQkcUwPRYQkgAAAAA+2hCSYAAAAqAF0EkyLpCSoAAAASIuEJKAAAADrA0jR6EyJZCRASIlEJEgPEEQkQA8RBCRIjRUL9aH/SI1sJFC5CwAAAEiJ70iJ3uiiAgAASI28JLAAAABIie7oMgkAAEiLKEiLfCRQSIX/dA1A9scBdBjoaswDAOsR9kQkWAF0CkiLfCRo6BejDwBIhe0PhTcBAACLg6wAAACD4P6D+AIPhSUBAAAPV8APKUQkIEjHRCQwAAAAAEiNdCQgTIn/6K6zDwBBiceEwHQbRA+2TCRwQfbBAXROTIuEJIAAAABMi0wkeOtHSI01kp3B/0iNfCRQuiQAAADo5t0DAEiLRCRQSYkGSMdEJFA2AAAASIXAD4WbAAAATIn36JTwAwBIi3wkUOtuSdHpTI1EJHEPtkQkIKgBdAxIi0wkMEiLRCQo6whI0ehIjUwkIUiJTCQQSIlEJBgPEEQkEA8RBCRIjRUIHqn/SI1sJFC5DQAAAEiJ70iJ3uh5AQAASI28JLAAAABIie7oCQgAAEiLfCRQSIX/dA1A9scBdBjoRMsDAOsR9kQkWAF0CkiLfCRo6PGhDwD2RCQgAXQKSIt8JDDo4KEPAEWE/w+EtAAAAEiLhCSwAAAASIXAdAVJiQbrTUiNhCS4AAAASIuMJMgAAABJiU4YDxCEJLgAAABBDxFGCA9XwA8RAEjHQBAAAAAASccGAAAAAPaEJLgAAAABdA1Ii7wkyAAAAOh4oQ8A9kQkcAF0DUiLvCSAAAAA6GShDwBIi7wkkAAAAEiF/3QUQPbHAQ+EJ/z//+iIygMA6R38///2hCSYAAAAAQ+ED/z//0iLvCSoAAAA6CihDwDp/fv//0iLvCSwAAAASIX/dIdA9scBdJjoS8oDAOuRTIn36BHvAwBIi7wksAAAAED2xwEPhMn7///roEiNvCSwAAAA6PDuAwBIi3wkUED2xwEPhOv8///oDMoDAOnh/P//SI28JJAAAADomu8DAOgFow8ADx9EAABVQVdBVkFVQVRTSIHsuAAAAE2JzE2JxUiJ80mJ/mRIiwQlKAAAAEiJhCSwAAAAD1fADylEJDBIx0QkQAAAAABIiZQkgAAAAEiJjCSIAAAATIlEJFBMiUwkWEiNbCQwSI20JIAAAABIjVQkUEiJ7+g9jAYATI27sAAAAEyJ/0iJ7kiJ6ugoBwAA9sIBD4TUAQAASI2MJPAAAABIx0QkUAAAAAAPtlQkMPbCAXQMSIt8JEBIi1QkOOsISNHqSI18JDEPV8APKYQkgAAAAEjHhCSQAAAAAAAAAEiLaQhIg/3wD4OLAgAASIlcJAhMiTwkSIsxSIP9F0iJRCQYSIlUJChIiXwkIHMajUQtAIiEJIAAAABMjbwkgQAAAEiF7XVB60pMiWwkEEyNbRBJg+XwTInvSInz6FifDwBIid5JicdIiYQkkAAAAEmDzQFMiawkgAAAAEyLbCQQSImsJIgAAABMif9IieroxqMPAEHGBC8ARA+2jCSAAAAAQfbBAXQSTIuEJJAAAABMi4wkiAAAAOsLSdHpTI2EJIEAAABIixwkSIt0JAhIjXwkUEiLVCQgSItMJCjoyPT///aEJIAAAAABdA1Ii7wkkAAAAOjhng8ASIN8JFAAD4SKAAAASI28JIAAAABIid5Ii1QkGOiwDgAASIucJIAAAABIx4QkgAAAAAAAAABIhdt0IYC8JJAAAAAAdA/2QxABdAlIi3sg6I6eDwBIid/ohp4PAEiLRCRQSYkGSMdEJFA2AAAASIXAD4XzAAAATIn36HTsAwBIi3wkUED2xwEPhNwAAADokMcDAOnSAAAAD1fADymEJIAAAABIx4QkkAAAAAAAAABJg/zwD4PqAAAASYP8F3MaQ40EJIiEJIAAAABIjawkgQAAAE2F5HUy6z5JjVwkEEiD4/BIid/o2Z0PAEiJxUiJhCSQAAAASIPLAUiJnCSAAAAATImkJIgAAABIie9Mie5MieLoTKIPAELGRCUAAEiLhCSQAAAASYlGGIqEJIAAAABBiEYISIuEJIEAAABJiUYJi4QkiQAAAEGJRhEPt4QkjQAAAGZBiUYVioQkjwAAAEGIRhdJxwYAAAAA9kQkMAF0CkiLfCRA6GidDwBkSIsEJSgAAABIO4QksAAAAHUiTInwSIHEuAAAAFtBXEFdQV5BX13DSI28JIAAAADoA6IPAOh+nw8AZi4PH4QAAAAAAA8fQABBV0FWQVVBVFNIg+xwSYnPSYnUSInzSYn+ZEiLBCUoAAAASIlEJGhIiffosfP//4XAdF2Jx+iGrQ8ASInDSInH6NuhDwBIjXwkQEiJ3kiJwugL2AMASItEJEBJiQZIx0QkQDYAAABIhcAPha4AAABMiffoueoDAEiLfCRAQPbHAQ+ElwAAAOjVxQMA6Y0AAAAPV8APKUQkUA8pRCRATI1sJEBMiedMif5MieroQHUKAEiNfCQouiAAAABMie7oro0EAEQPtkwkKEH2wQF0DEyLRCQ4TItMJDDrCEnR6UyNRCQpTIlkJBhMiXwkIA8QRCQYDxEEJEiNFWA6ef+5CwAAAEyJ90iJ3uhk+///9kQkKAF0CkiLfCQ46AOcDwBkSIsEJSgAAABIO0QkaHURTInwSIPEcFtBXEFdQV5BX8PoLZ4PAGYuDx+EAAAAAAAPHwBVQVZTSInzSYn+SI1+EOidrA8AicVIi3sI6LKqDwBIx0MIAAAAAIXtdCKJ7+g/rA8ASInDSInH6JSgDwBMifdIid5IicLoxtYDAOsHSccGAAAAAEyJ8FtBXl3DDx9EAABVQVdBVkFVQVRTSIPsGGRIiwQlKAAAAEiJRCQQSI09VvOp/+ioog8AvQEAAABIhcAPhPkAAABIicOAOAAPhO0AAABIjTVE86n/SInf6A+sDwCFwA+E1gAAAEiNNdNupv9Iid/o+KsPAIXAD4SzAAAASI01D7Fd/0iJ3+jhqw8AhcAPhKMAAAC/BAAAADH26A2gDwCEwA+ElAAAAOgQoA8ASYnGRIsoSI01OfCw/0yNfCQITIn/uqYAAAC5BAAAAEUxwEG5/////+jznw8ATIn/6PufDwBIjTVnkLf+uhIAAABIicfoh3j8/0mJxEiJ3+h8nw8ATInnSIneSInC6G54/P9IjTV7lKb/ug0AAABIicfoWnj8/0yJ/+jCnw8ARYku6wy9AgAAAOsFvQMAAABkSIsEJSgAAABIO0QkEHURiehIg8QYW0FcQV1BXkFfXcPoa5wPAMzMzMzMzMzMzMzMQVdBVlNJif5IOfcPhJMAAABIifNIiwZIhcB0LkmDPgB1E0H2RggBdAxJi34Y6N6ZDwBIiwNIxwM2AAAASYs+SDn4dUqoAXVP61VIg8MISYM+AHRZSItDEEmJRhgPEANBDxFGCA9XwA8RA0jHQxAAAAAASYs+SIX/dCpJxwYAAAAAQPbHAXQd6MTCAwDrFkmJBkD2xwF0COi0wgMASYsGSIXAdGJMifBbQV5BX8NNjX4IQfZGCAF1CGZBxwcAAOsnSYtGGMYAAEnHRhAAAAAAQfZGCAF0EUmLfhjoMZkPAEnHRggAAAAASItDEEmJRxAPEANBDxEHD1fADxEDSMdDEAAAAADrnkyJ9+gS5wMA65RVQVdBVkFVQVRTSIPsKEiJ1UiJ80mJ/WRIiwQlKAAAAEiJRCQgD7YWTI1mAfbCAXQKSItzEEiLUwjrBkjR6kyJ5kiNfCQY6BVy/f9Ni30ITYX/SIlEJAh0ckiJxkiJLCRMifhI0ehIuVVVVVVVVVVVSCHBTIn4SCnISLkzMzMzMzMzM0iJwkghykjB6AJIIchIAdBIicFIwekESAHBSLgPDw8PDw8PD0ghyEi9AQEBAQEBAQFID6/oSMHtOEiD/QF3EU2Nd/9JIfbrM0Ux5OlvAQAASYn2TDn+ciNIifBMCfhIweggdA1IifAx0kn390mJ1usKifAx0kH390GJ1kmLRQBKiwTwSIXAdBlMiWwkEEQPtitB9sUBdBJMi2sITItjEOsLTYn06RIBAABJ0e1IixjrD2YuDx+EAAAAAABmkEiLG0iF2w+E6gAAAEiLQwhIOfB0RIP9AXcWSY1P/0ghyEw58HQz6csAAAAPH0QAAEw5+HIbSInBTAn5SMHpIA+EoQAAADHSSff3SInQDx8ATDnwD4WdAAAAD7ZLEEiJyEjR6EiJwvbBAXQESItTGEw56nWMSI17EEiDxwH2wQF0BEiLeyB1OU2F7Q+EjQEAADHJZi4PH4QAAAAAAA8fQAAPtlQLEUE6FAwPhVH///9Ig8EBSDnIdejpYAEAAA8fAE2F7Q+EVAEAAEyJ5kyJ6uhcmg8ASIt0JAiFwA+FH////+k3AQAAMdJB9/eJ0Ew58A+EY////02J9EyLbCQQSIssJL8oAAAA6JSWDwBIicNIjXgQSInu6MWZDwBIi0QkCEiJQwhIxwMAAAAASYtFGEiDwAF4JPNIDyrATYX/eTRMifhI0ehEifmD4QFICcHzSA8q0fMPWNLrH0iJwUjR6YPgAUgJyPNIDyrA8w9YwE2F/3jM80kPKtfzQQ8QTSDzD1nRDy7CdwlNhf8PhZ8AAABLjQQ/vQEAAABJg/8Dcg1JjU//Me1Jhc9AD5XFSAnF8w9ewejYnw8A80gPLMBIicHzD1wFJDaZ/kjB+T/zSA8s8EghzkgJxkg59UgPQ/VMie/o6gAAAE2LfQhNjWf/TYXndQdMI2QkCOs1TItkJAhNOfxyK0yJ4EwJ+EjB6CB0FEyJ4DHSSff3SYnU6xIx0umBAAAARIngMdJB9/dBidRJi0UASosM4EiFyXQLSIsBSIkDSIkZ61dJjU0QSYtVEEiJE0mJXRBKiQzgSIsDSIXAdDxIi0AISY1P/0mFz3UFSCHI6yJMOfhyHUiJwUwJ+UjB6SB0CjHSSff3SInQ6wcx0kH394nQSYtNAEiJHMFJg0UYAbIBZEiLBCUoAAAASDtEJCB1EkiJ2EiDxChbQVxBXUFeQV9dw+hElw8AzMzMzEFXQVZTSYn+uwIAAABIg/4BdBlIjUb/SIXGdQVIifPrC0iJ9+inng8ASInDTYt+CEw5+w+H7QAAAA+D9wAAAEmLRhhIhcB4B/NIDyrA6xVIicFI0emD4AFICcjzSA8qwPMPWMDzQQ9eRiDoUZ4PAPNIDyzISInK8w9cBZ00mf7zSA8swEjB+j9IIdBICchJg/8Dcn5MiflI0elIulVVVVVVVVVVSCHKTIn5SCnRSLozMzMzMzMzM0iJzkjB7gJIIdFIIdZIAc5IifFIwekESAHxSLoPDw8PDw8PD0ghyki5AQEBAQEBAQFID6/KSMHpOIP5AXcdSIP4AnIfSIPA/0gPvciD8T/22bgBAAAASNPg6whIicfotp0PAEg5w0gPQthMOftzEEyJ90iJ3ltBXkFf6QoAAABbQV5BX8PMzMzMVUFXQVZBVUFUU0iD7DhIiftIhfZ0RkmJ9EiJ8EjB6D0PhWgDAABKjTzlAAAAAOhdkw8ASIs7SIkDSIX/dAXobZMPAEyJYwhNjUQk/0SJ4IPgA0mD+ANzJTHJ62xIiztIxwMAAAAASIX/dAXoQJMPAEjHQwgAAAAA6QIDAABMieJIg+L8MclmLg8fhAAAAAAASIszSMcEzgAAAABIizNIx0TOCAAAAABIizNIx0TOEAAAAABIizNIx0TOGAAAAABIg8EESDnKdchIhcB0GA8fAEiLE0jHBMoAAAAASIPBAUiDwP9160iLSxBIhckPhI0CAABIjWsQSIt5CEyJ4EjR6Ei6VVVVVVVVVVVIIcJMieBIKdBIujMzMzMzMzMzSInGSCHWSMHoAkgh0EgB8EiJwkjB6gRIAcJIuA8PDw8PDw8PSCHQSL4BAQEBAQEBAUgPr/BIwe44SIP+AXcFTCHH6ydMOedyIkiJ+EwJ4EjB6CB0DUiJ+DHSSff0SInX6wmJ+DHSQff0iddIiwNIiSz4SIspSIXtD4TkAQAATIlkJBhMiUQkEEiJdCQISIkcJOsPSInpSIspSIXtD4TAAQAATIt1CIP+AXcYTSHGSTn+dODrM2YuDx+EAAAAAAAPH0AATTnmchtMifBMCeBIweggD4QvAQAATInwMdJJ9/RJidZJOf50q0iLA0qDPPAAD4T6AAAASItFAEiFwA+E/AAAAEiJfCQgSIlMJCgPtl0QSYndSdHtTInq9sMBdARIi1UYTI1FEUmJ70iJXCQw6w5mkEmLB0iFwA+E4QAAAE2J+UmJxw+2QBCoAXQWSYtPGEg5ynQc6csAAAAPH4QAAAAAAEiJwUjR6Ug5yg+FtAAAAKgBdA1Ji3cg6w8PH4AAAAAASY13EEiDxgFMicf2wwF0BEiLfSB1KkiF0nSVMcAPHwAPtkwFEToMBnV5SIPAAUk5xXXt6Xj///8PH4QAAAAAAEiF0g+EZ////02JzEiJ0+gslA8ATI1FEUiJ2kiLXCQwhcAPhEj///9NieHrNkqJDPBIielMiffpl/7//0mJ6UUx/+s8RInwMdJB9/RBidZJOf4PhHj+///pyP7//02J+UUx/0yLZCQYTItEJBBIi0wkKEiLfCQgSIt0JAhIixwkTIk5SIsDSosE8EiLAEmJAUiLA0qLBPBIiSjpNP7//0iDxDhbQVxBXUFeQV9dw+gNlQ8AzMzMzMzMzMzMzMzMzEFXQVZTSInRSYn4TItWCEyLSghMidBI0ehIulVVVVVVVVVVSCHCTInQSCnQSLozMzMzMzMzM0iJx0gh10jB6AJIIdBIAfhIicJIweoESAHCSLgPDw8PDw8PD0gh0Em/AQEBAQEBAQFMD6/4ScHvOEmD/wF3CUmNQv9JIcHrKU050XIkTInITAnQSMHoIHQNTInIMdJJ9/JJidHrC0SJyDHSQffyQYnRTIs2S4sEzmaQSInHSIsASDnIdfVMjV4QTDnfdDpIi0cIQYP/AXcOSY1S/0gh0Ew5yHUk62xMOdByGEiJwkwJ0kjB6iAPhMcAAAAx0kn38kiJ0Ew5yHRKSIsBSIXAdDpIi0AIQYP/AXcOSY1S/0gh0Ew5yHUk6ypMOdByGEiJwkwJ0kjB6iAPhKgAAAAx0kn38kiJ0Ew5yHQIS8cEzgAAAABIixlIhdt0GEiLQwhBg/8BdxJJg8L/TCHQTDnIdSTrLDHb6yhMOdByFEiJwkwJ0kjB6iB0UDHSSffySInQTDnIdApIixZIiTzCSIsZSIkfSMcBAAAAAEiDRhj/SYkITYlYCEHGQBABTInAW0FeQV/DMdJB9/KJ0Ew5yA+FNv///+l7////MdJB9/KJ0Ew5yHWx67kx0kH38onQTDnID4VV////6Vj///9TSIPsUEiJ+2RIiwQlKAAAAEiJRCRID1fADylEJBAPKQQkSInn6OYAAABIiwQkSIXAdCBIiQOoAQ+EiQAAAPCDQP8BSIM7AHV+SInf6N/bAwDrdIpEJAhIi0wkCUiJTCQoSItMJBBIiUwkL0iLTCQYD1fADxFEJAhIx0QkGAAAAABIi1QkKEiLdCQvSIlUJDhIiXQkP0jHRCQoAAAAAEjHRCQvAAAAAIhDCEiLRCQ4SItUJD9IiUMJSIlTEEiJSxhIxwMAAAAASIs8JEiF/3QNQPbHAXQY6IW2AwDrEfZEJAgBdApIi3wkGOgyjQ8AZEiLBCUoAAAASDtEJEh1CUiJ2EiDxFBbw+hkjw8ADx9AAEFXQVZTSIHs4AAAAEiJ00mJ90mJ/mRIiwQlKAAAAEiJhCTYAAAASIXSdD5BgD8vdThIjbwkoAAAAEyJ/kiJ2uhsCwAASIuEJLAAAABJiUYYDxCEJKAAAABBDxFGCEnHBgAAAADpfAEAAA9XwA8pRCQwDylEJCBIjXwkIOiwGwAASItEJCBIhcB0J0mJBqgBD4QoAQAA8INA/wFJgz4AD4UZAQAATIn36HTaAwDpDAEAAA+2TCQo9sEBdB5Ii0QkOEiLTCQwSIXJdBxIjVH/gHwI/y9ID0XR6w9I0elIjUQkKUiFyXXkMdJIiYQkoAAAAEiJlCSoAAAASI0Fa4Sn/kiJRCRwSMdEJHgBAAAASIXbdBBBgD8vdQxJg8cBSIPD/+sCMdtMiXwkQEiJXCRISI18JAhIjbQkoAAAAEiNVCRwSI1MJEDotngGAA+2VCQI9sIBdAxIi3QkGEiLVCQQ6whI0epIjXQkCUiNvCSgAAAA6DsKAABIi4QksAAAAEmJRhgPKIQkoAAAAEEPEUYID1fADymEJKAAAABIx4QksAAAAAAAAABJxwYAAAAA9kQkCAF0CkiLfCQY6FOLDwBIi3wkIEiF/3QNQPbHAXQY6H60AwDrEfZEJCgBdApIi3wkOOgriw8AZEiLBCUoAAAASDuEJNgAAAB1EEyJ8EiBxOAAAABbQV5BX8PoU40PAA8fAFVBV0FWQVVBVFNIg+xISInzSYn+ZEiLBCUoAAAASIlEJEAPV8APKUQkMA8pRCQgSI18JCBIidZIicrosf3//0iLRCQgSIXAdCdJiQaoAQ+EXgEAAPCDQP8BSYM+AA+FTwEAAEyJ9+il2AMA6UIBAABED7ZsJChB9sUBdAxMi2QkOEyLbCQw6whJ0e1MjWQkKQ+2K0D2xQF0QUiLawhIi1sQSIXtdEBJOe1yXUyJ50iJ3kiJ6ui3jQ8AhcB1S02J70kp7w+EswAAAEmNDCxIg/0BdSKAOy91Hes0SIPDAUjR7UiF7XXATInhTYnvTYXtD4SHAAAAgDkvdQ5JjQwsSIPBAUmDx//rBkyJ4U2J7w9XwA8pBCRIx0QkEAAAAABJg//wD4PUAAAASYP/F3MWQ40EP4gEJEiNXCQBTYX/dFJJiczrKEmJzEmNbxBIg+XwSInv6ImJDwBIicNIiUQkEEiDzQFIiSwkTIl8JAhIid9MieZMifroBo4PAOsYSI1cJAEPV8APKQQkSMdEJBAAAAAARTH/QsYEOwBIi0QkEEmJRhgPKAQkQQ8RRghJxwYAAAAASIt8JCBIhf90DUD2xwF0GOh5sgMA6xH2RCQoAXQKSIt8JDjoJokPAGRIiwQlKAAAAEg7RCRAdRpMifBIg8RIW0FcQV1BXkFfXcNIiefozI0PAOhHiw8ADx+AAAAAAFVBVlNIg+xQSIn7ZEiLBCUoAAAASIlEJEgPV8APKUQkEA8pBCRIiefoIwEAAEiLBCRIhcB0J0iJA6gBD4S9AAAA8INA/wFIgzsAD4WuAAAASInf6KjWAwDpoQAAAECKbCQISItEJAlIiUQkKEiLRCQQSIlEJC9Mi3QkGA9XwA8RRCQISMdEJBgAAAAASItEJChIi0wkL0iJRCQ4SIlMJD9Ix0QkKAAAAABIx0QkLwAAAAC/MAAAAOgUiA8ASMcAAAAAAEiNDZbt8v9IiUgID1fADxFAEA8RQCBAiGsISItMJDhIi1QkP0iJSwlIiVMQTIlzGEiJQyBIxwMAAAAASIs8JEiF/3QNQPbHAXQY6B6xAwDrEfZEJAgBdApIi3wkGOjLhw8AZEiLBCUoAAAASDtEJEh1DEiJ2EiDxFBbQV5dw+j6iQ8AZi4PH4QAAAAAAEFXQVZBVUFUU0iD7FBkSIsEJSgAAABIiUQkSA9XwA8pRCQwSMdEJEAAAAAASIP68A+DXwEAAEmJ1UmJ90mJ/kiD+hdzFUONRC0AiEQkMEyNZCQxTYXtdSjrNEmNXRBIg+PwSInf6BaHDwBJicRIiUQkQEiDywFIiVwkMEyJbCQ4TInnTIn+TInq6JKLDwBDxgQsAL8QEAAA6OOGDwBIicNIiUQkIA8oBSQ5mf4PKUQkELoBEAAASInHMfbocIoPAPZEJDABdAdIi3wkQOsFSI18JDFIid7oxZcPAEiFwHRjSInf6LiLDwBIjXwkEEiJxjHS6ImVDwBIi0QkIEmJRhgPKEQkEEEPEUYISccGAAAAAPZEJDABdApIi3wkQOh+hg8AZEiLBCUoAAAASDtEJEh1bUyJ8EiDxFBbQVxBXUFeQV/D6JiLDwCLMEiNfCQI6KwkAABIi0QkCEmJBkjHRCQINgAAAEiFwHQRSInf6C6GDwD2RCQwAXWf66dMiffoLdQDAEiLfCQIQPbHAXTc6E2vAwDr1UiNfCQw6NGKDwDoTIgPAGYuDx+EAAAAAABmkFNIifvoB4kPAL8wAAAA6L2FDwBIxwAAAAAASI0NP+vy/0iJSAgPV8APEUAQDxFAIEiJQxhbw2YuDx+EAAAAAABTSIn76JeGDwBIidhbw2aQVUFXQVZBVUFUU0iB7JgAAABJic5JidVIiXwkGGRIiwQlKAAAAEiJhCSQAAAASIl0JBBMi2YYSI1sJChIie9IidZIicro9wMAAEyJ5+hflAYATY18JAhMif9Iie7ozxcAAEiJw/bCAXUSTGv7OE0DfCQQhNJ1O+k1AwAASIlsJGBIjQWkJrL/SIlEJEBIjRVpV/L/SI1MJGBMjUQkQEyJ/0iJ3uhYGQAATGv7OE0DfCQQD1fADylEJHAPKUQkYEiNfCRgTInuTIny6DL9//9Ii2wkYEiF7UyJZCQgdDJA9sUBdUdJjV8YSYt/GEiF/w+E3AEAAEg5/Q+FOQIAAEiJ70D2xQEPhTUCAADpnAIAAA+2XCRo9sMBSIlsJAh0FkiLbCR4SItcJHDrEvCDRf8B6V4BAABI0etIjWwkaUyLZCQQRQ+2NCRB9sYBdEhNi3QkCE2LZCQQTYX2dEVMOfMPgokAAABIie9MieZMifLonocPAIXAdXdJid1NKfV0QkmNBC5Jg/4BdVtBgDwkL0mJxHUZ619Jg8QBSdHuTYX2dbtJiexJid1Ihdt0FUGAPCQvdTtNjSQuSYPEAUmDxf/rM0iNXCRBD1fADylEJEBIx0QkUAAAAABFMe1Ii2wkCOmHAAAASYnEQYA8JC90xUmJ7EmJ3Q9XwA8pRCRASMdEJFAAAAAASYP98A+DGwIAAEmD/RdzHUONRC0AiEQkQEiNXCRBTYXtSItsJAh1MEUx7es5SY1tEEiD5fBIie/oP4MPAEiJw0iJRCRQSIPNAUiJbCRATIlsJEhIi2wkCEiJ30yJ5kyJ6ui2hw8AQsYEKwCKXCRASItEJEFIiYQkgAAAAEiLRCRISImEJIcAAABMi3QkUEiLfCRgSIX/dA1A9scBdBjoOawDAOsR9kQkaAF0CkiLfCR46OaCDwBJi38YSIXtdBxJjV8YSIX/D4Uk/v//QfZHIAF1SUiJK+nMAAAASIX/dHBBiF8gSIuEJIAAAABIi4wkhwAAAEmJRyFJiU8oTYl3MEnHRxgAAAAAQPbHAQ+ElQAAAOjFqwMA6YsAAABJi38w6HeCDwBJi38YSDn9D4TH/f//SIkrQPbHAXRs6JyrAwBIgzsAdWFIid/oXtADAOtXQfZHIAF1CWZBx0cgAADrJ0mLRzDGAABJx0coAAAAAEH2RyABdBFJi38w6B2CDwBJx0cgAAAAAEGIXyBIi4QkgAAAAEiLjCSHAAAASYlHIUmJTyhNiXcwTItkJCBJi0cYSIXAdBNIi1wkGEiJA6gBdCPwg0D/AescSYPHIEiLXCQYSI17CEyJ/ujfhA8ASMcDAAAAAEyJ5+hgowYA9kQkKAF0CkiLfCQ46J+BDwBkSIsEJSgAAABIO4QkkAAAAHUfSInYSIHEmAAAAFtBXEFdQV5BX13DSI18JEDoPYYPAOi4gw8ADx+EAAAAAABVQVdBVkFVQVRTSIHsyAAAAEmJ1EmJ9kiJfCQQZEiLBCUoAAAASImEJMAAAABIhdJ0DUGAPi8PlMCJRCQM6wjHRCQMAAAAAA9XwA8pRCRASMdEJFAAAAAATIl0JGBMiWQkaMZEJHAvDymEJLAAAAAPKYQkoAAAAA8phCSQAAAASI1EJGBIiYQksAAAAMaEJLgAAAAvTYX2TIl0JBgPhK0AAABMjawkuAAAADHJTInlTInzZi4PH4QAAAAAAA8fQABMie9Iid5Iiero4oMGAEiJ0UiNFCtIOdB1C8eEJJgAAAABAAAASIuUJJAAAABIKdUPgk4DAABIAdNIKdhIOcVID0LFSImcJKAAAABIiYQkqAAAAEgB0UgBwUiJjCSQAAAASIXAdAtIg/gBdT2AOy51OIO8JJgAAAABdDtIi4QksAAAAEiLGEiLaAjpcf///8eEJJgAAAACAAAATImkJJAAAAAxwEyJ4esag7wkmAAAAAIPlcDrDceEJJgAAAACAAAAMcBMjbQkoAAAAEyLfCRoTI2sJLgAAACEwHUJTDn5D4ReAQAAQQ8QBg8pRCQgSIN8JCgCdQ9Ii0QkIA+3AD0uLgAAdCxIi0QkSEg7RCRQdA9BDxAGDxEASINEJEgQ61BIjXwkQEiNdCQg6GEbAADrP0iLTCRISDlMJEB0IEiNQfBIg3n4AnUOSIsID7cJgfkuLgAAdAdIiUQkSOsTgHwkDAB0oWYuDx+EAAAAAABmkIO8JJgAAAABSIuMJJAAAAB1KMeEJJgAAAACAAAAuAIAAADpngAAAGYPH4QAAAAAAIO8JJgAAAABdNhIi4QksAAAAEiLGEiLaAhMie9Iid5IieroKYIGAEiJ0UiNFCtIOdB1C8eEJJgAAAABAAAASIuUJJAAAABIKdUPgpUBAABIAdNIKdhIOcVID0LFSImcJKAAAABIiYQkqAAAAEgB0UgBwUiJjCSQAAAASIXAdIFIg/gBdQmAOy4PhHL///+LhCSYAAAAg/gCD4Se/v//6aL+//8xyUiNBd8fsv9NheR0KUmNdCT/SIP+AroCAAAASA9C1kiLdCQYgD4vdTGDwgFJg/wBdQuJ0eskSItcJBDrSbkBAAAAgH4BL3USSYP8AnTkgH4CL7kCAAAAD0TKhclIi1wkEHQTg/kCdRK5AgAAAEiNBYrUsf7rEDHJ6wy5AQAAAEiNBTB2p/5IiYQkkAAAAEiJjCSYAAAASIt0JEBIi1QkSEiNDQ92p/5IjXwkIEG4AQAAAOilGgAAD7ZEJCCoAXQMSItMJDBIi0QkKOsISNHoSI1MJCFIiUwkYEiJRCRoSI20JJAAAABIjVQkYEiJ3+hpaQYA9kQkIAF0CkiLfCQw6Fh9DwBIi3wkQEiF/3QKSIl8JEjoRH0PAGRIiwQlKAAAAEg7hCTAAAAAdRpIidhIgcTIAAAAW0FcQV1BXkFfXcPoB4IPAOhifw8AZpBVQVdBVkFVQVRTSIHs6AAAAEGJzEiJ00iJ9UmJ/mRIiwQlKAAAAEiJhCTgAAAAD1fADylEJEAPKUQkMEiNfCQw6Kvu//9Ii0QkMEiFwHQnSYkGqAEPhPcDAADwg0D/AUmDPgAPhegDAABMiffor8oDAOnbAwAASMeEJNcAAAAAAAAASMeEJNAAAAAAAAAAQY1EJP+D+AF3dw9XwA8phCSQAAAADymEJIAAAABIx4QkoAAAAAAAAABIjbwkgAAAAEiJ7kiJ2uhW8///TIusJIAAAABNhe0PhJICAABMie9B9sUBdBfwQYNF/wFIi7wkgAAAAEiF/w+EygIAAED2xwEPhCkDAADoRqUDAOkfAwAAMckxwEiJBCQx20Ux/0iDfCQwAA+FeQMAAEiLRCRISIlEJCAPEEQkOA8pRCQQD1fADxFEJDhIx0QkSAAAAADGRCRYAMZEJHgASIlMJAiEyU2J/XRURIhsJFhIi4Qk0AAAAEiLjCTXAAAASIlEJFlIiUwkYEiJXCRoSMeEJNAAAAAAAAAASMeEJNcAAAAAAAAASIsEJEiJRCRwxkQkeAFFMe0x7UUx/+sHSIndTIs8JESJpCSAAAAASI28JIgAAABIjXQkEOhYfg8ATI2kJKAAAADGhCSgAAAAAMaEJMAAAAAAilwkeITbdERIjXQkWEyJ5+grfg8AvzAAAADo4XoPAEjHAAAAAABIjQ1j4PL/SIlICA9XwA8RQBAPEUAgSImEJLgAAADGhCTAAAAAAYuEJIAAAABBiUYISIuEJJgAAABJiUYgDxCEJIgAAABBDxFGEA9XwA8RhCSIAAAASMeEJJgAAAAAAAAAQcZGKABBxkZIAITbdElJjUYoSYtMJBBIiUgQQQ8QDCQPEQhBDxEEJEnHRCQQAAAAAEiLhCS4AAAASYlGQEHGRkgBSccGAAAAAEjHhCS4AAAAAAAAAOsHSccGAAAAAEiJ64B8JHgAdD1Ii2wkcEjHRCRwAAAAAEiF7XQZSI19COjVM/3/SInv6I2ABgBIie/oBXoPAPZEJFgBdApIi3wkaOj0eQ8A9kQkEAF0CkiLfCQg6ON5DwCAfCQIAA+EGQEAAE2F/3QZSY1/COiKM/3/TIn/6EKABgBMif/ounkPAEH2xQEPhPEAAABIid/oqHkPAOnkAAAARIq8JIgAAABIi4QkiQAAAEiJhCTQAAAASIuEJJAAAABIiYQk1wAAAEiLnCSYAAAAD1fADxGEJIgAAABIi4QkoAAAAEiJBCQPEYQkmAAAALABSIlEJAjrEjHASIlEJAgxwEiJBCQx20Ux/0iLrCSgAAAASMeEJKAAAAAAAAAASIXtdBlIjX0I6Ncy/f9Iie/oj38GAEiJ7+gHeQ8A9oQkiAAAAAF0DUiLvCSYAAAA6PB4DwBNhe1Ii0wkCA+E7vz//02JLkH2xQF0DPBBg0X/AUmDPgB0aEH2xQF0CEyJ7+j/oQMASIt8JDBIhf90DUD2xwF0GOjqoQMA6xH2RCQ4AXQKSIt8JEjol3gPAGRIiwQlKAAAAEg7hCTgAAAAdS9MifBIgcToAAAAW0FcQV1BXkFfXcNIjXwkMOhFxwMATIn36G3GAwBB9sUBdZDrluigeg8AVUFXQVZBVUFUU0iD7DhJic5JiddIifNJifxkSIsEJSgAAABIiUQkMIsGhcAPhKABAACD+AJ0UYP4AXV9D1fADylEJCAPKUQkEEiNcyBIjXwkEEyJ+kyJ8egzAgAAgHwkKAAPhGoBAAAPtkQkEKgBD4QKAQAASItMJBhIhckPhQcBAADpEAEAAA9XwA8pRCQgDylEJBBIjXMgSI18JBBMifpMifHo5wEAAIB8JCgAD4XkAAAA6RkBAAC/BgAAADH26Lt8DwCEwA+FQAEAAA9XwA8pRCQQSMdEJCAAAAAASYP+8A+DlQEAAEmD/hdzFEONBDaIRCQQSI1cJBFNhfZ1KOs0SY1uEEiD5fBIie/oHncPAEiJw0iJRCQgSIPNAUiJbCQQTIl0JBhIid9Mif5MifLomnsPAELGBDMASItEJCBJiUQkGIpEJBBBiEQkCEiLRCQRSYlEJAmLRCQZQYlEJBEPt0QkHWZBiUQkFYpEJB9BiEQkF0nHBCQAAAAA62hIicFI0elIhcl0DqgBdClIi0QkIIA4L3QpSItEJCBJiUQkGA8oRCQQQQ8RRCQISccEJAAAAADrMEiNRCQRgDgvddf2RCQQAXQKSIt8JCDofnYPAEiDwwhMiedIid5MifpMifHoaev//2RIiwQlKAAAAEg7RCQwD4WMAAAATIngSIPEOFtBXEFdQV5BX13D6H57DwBJicWLAIlEJAxIjTWkGpT/SI1sJBBIie+6zwAAALkGAAAARTHAQbn/////6F57DwBIie/oZnsPAEiNNfAS7f+6EAAAAEiJx+jyU/z/izNIicfo2H0PAEiJ7+hQew8Ai0QkDEGJRQDpUP7//0iNfCQQ6Jl6DwDoFHgPAA8fQABVQVdBVkFVQVRTSIPsOEiJ+2RIiwQlKAAAAEiJRCQwgH4gAA+EJAEAAEmJzkmJ1w9XwA8pRCQgDylEJBBIjXwkEOja7///SItsJBBIhe0PhKYAAAC/BAAAADH26JB6DwCEwA+EuAAAAOiTeg8ASYnEiwCJRCQESI01uRmU/0yNbCQITInvulwAAAC5BAAAAEUxwEG5/////+hzeg8ATInv6Ht6DwBIjTUPeq3+uhIAAABIicfoB1P8/0iJx0yJ/kyJ8uj5Uvz/SI01k8ah/7oCAAAASInH6OVS/P9IjXQkEEiJx+iIqgMATInv6EB6DwCLRCQEQYkEJOsmSItEJChIiUMQDxBEJBgPEQMPV8APEUQkGEjHRCQoAAAAAMZDGAFIi3wkEEiF/3QNQPbHAXQY6MudAwDrEfZEJBgBdApIi3wkKOh4dA8ASIXtdAfGAwDGQxgAZEiLBCUoAAAASDtEJDB1EkiJ2EiDxDhbQVxBXUFeQV9dw+iVdg8ADx9EAABIhfZ0B4A/Lw+UwMMxwMOQQVdBVlMx20iNRv9Ig/gOdyhJifZJif9IjQ0yRvL/SGMEgUgByDHJ/+BIuwAAAAABAAAAQYA/MHVsMcnpnQAAAEiNNYYeov9Mif9MifLoTncPADHbhcAPlMNIweMgMcnrfEiNNTvRUv9Mif9MifLoLXcPADHJhcAPlMFIictIweMg61dIjTWgaKf+TIn/TIny6At3DwAxyYXAD5TBSInLSMHjIOs4SI01r0mm/0yJ/0yJ8ujpdg8AhcB0LkiNNSz3n/9Mif9MifLo03YPADHSMcmFwA+UwUgPRdpIAclICctIidhbQV5BX8O5AQAAAOvtQVdBVkFUU1BJic5Jidfo/f7//0iJw0m8AAAAAP8AAABMheB0BUGJH+sPSI01uciw/0yJ9+h3eg8ATIXjD5XASIPECFtBXEFeQV/DDx9EAABVQVdBVkFUU0iD7BBIiftkSIsEJSgAAABIiUQkCIP+AnRfifWD/gF0K4XtdXkPV8APEUMIxgMUSLhjbGVhbi1vbkiJQwFmx0MJbHnGQwsA6YAAAABIx0MQAAAAAMYDHki4cHJlZmVyLXJIiUMBSLhyZWxhdGl2ZUiJQwjGQxAA61MPV8APEUMIxgMWSLhwcmVmZXItckiJQwHHQwhyZWFsxkMMAOsuvwYAAAAx9uhudw8AhMB1Pg9XwA8RQwjGAxJIuCh1bmtub3duSIlDAWbHQwkpAGRIiwQlKAAAAEg7RCQIdXZIidhIg8QQW0FcQV5BX13D6Dd3DwBJicZEiyBIjTVgFpT/SYnnTIn/uvYAAAC5BgAAAEUxwEG5/////+gcdw8ATIn/6CR3DwBIjTWZdq3+uh4AAABIicfosE/8/0iJx4nu6JZ5DwBMif/oDncPAEWJJulc////6OFzDwCQU0iB7KAAAABIiftkSIsEJSgAAABIiYQkmAAAAEiF0nQPSI1C/4B8Fv8vSA9FwusCMcBIiXQkaEiJRCRwSI0Fp2mn/kiJRCQ4SMdEJEABAAAATYXAdA+AOS91DUiDwQFJg8D/6wNFMcBIiUwkCEyJRCQQSI10JGhIjVQkOEiNTCQISInf6PddBgBkSIsEJSgAAABIO4QkmAAAAHUMSInYSIHEoAAAAFvD6DNzDwAPHwBBV0FWQVRTSIPsOEmJ/mRIiwQlKAAAAEiJRCQwv5AAAADomnAPAEiJw0iJRCQgDygF+x+Z/g8pRCQQD1fADxFAcA8RQGAPEUBQDxFAQA8RQDAPEUAgDxFAEA8RAMaAgAAAAAC+gQAAAEiJx+iAgQ8ASIXAdFRIid/oY3UPAEiNfCQQSInGMdLoNH8PAEiLRCQgSYlGGA8oRCQQQQ8RRghJxwYAAAAAZEiLBCUoAAAASDtEJDAPhfIAAABMifBIg8Q4W0FcQV5BX8NIjVwkEehNdQ8ASYnHTI1kJBDrHw8fAEiLfCQgSIt0JBhIg8YB6P2ADwBIhcAPhYEAAABBizeD/iJ1Pw+2dCQQQPbGAXQRSIt0JBjrDWYuDx+EAAAAAABI0e5IAfZMiecx0uiQfg8AD7Z0JBBA9sYBdaVI0e5Iid/rp0iNfCQI6PMNAABIi0QkCEmJBkjHRCQINgAAAEiFwHQv9kQkEAEPhDj///9Ii3wkIOhobw8A6Sn////2RCQQAQ+E7f7//0iLXCQg6eP+//9MiffoVr0DAEiLfCQIQPbHAXS+6HaYAwDrt+h/cQ8AZi4PH4QAAAAAAA8fRAAASIn4MdJIhfZ0N0iJ9w8fAEiF/3QsSI1P/4B8OP8vSInPde1Ig/n/dAtIhcl1CboBAAAAwzHSw0g58UgPR85IicrDZi4PH4QAAAAAAA8fQABIifhIhfZ0OEiJ8g8fRAAASIX2dCpIjU7/gHww/y9Iic517UiFyXQbSIP5/3QRSIPBAUg50UgPR8pIAchIKcrDMdLDSIPAAUiDwv/DDx9AAEFXQVZTSIPsUEmJ1kmJ90iJ+2RIiwQlKAAAAEiJRCRID1fADylEJDAPKUQkIEiNfCQgSInOTInC6CPg//9Ii3wkIEiF/3QQD1fADxEDSMdDEAAAAADrdEiNdCQoSInnTIn6TInx6Bbj//9IizwkSIX/dBsPV8APEQNIx0MQAAAAAED2xwF0Oug0lwMA6zNIi0QkGEiJQxAPEEQkCA8RAw9XwA8RRCQISMdEJBgAAAAA9kQkCAF0CkiLfCQY6L9tDwBIi3wkIEiF/3QoQPbHAXQF6OqWAwBkSIsEJSgAAABIO0QkSHUgSInYSIPEUFtBXkFfw/ZEJCgBdNxIi3wkOOh8bQ8A69DoxW8PAMzMzMzMVUFXQVZBVUFUU0iD7FhIifVJif5IiwcPGBgPth5MjWYB9sMBdApIi3UQSItdCOsGSNHrTInmSI098xwQAEiJ2uj7Kv3/SAHYSLlpLTjrCOrfnUj34UgxwkmLNkmJ10nB7wdIifBIwegMidGA4X8PtslmD27BZg9gwPIPcMAARA+2bQBB9sUBSIlUJCB0D0iLTRBIiUwkEEyLbQjrCEyJZCQQSdHtSYtuCEyJdCQoTYt2GEkxx2YPcMAAMcBIiUQkCGYPbw1nHJn+SIl0JBhmD39EJDBNIffzQg9vFD5mD39UJEBmD3TCZg/XwIXAdHxED7fgZi4PH4QAAAAAAA8fAEEPvNxMAftMIfNIa8s4D7ZEDQCoAXQZSIt8DRBIi0QNCOsYZi4PH4QAAAAAAA8fAEjR6EiNPClIg8cBTDnodR5Nhe10c0iLdCQQTInq6I5vDwBmD28N1huZ/oXAdFpBjUQk/0Qh4EGJxHWVZg9vRCRAZg90wWYP18CFwHUlSItEJAhJAcdJg8cQSIPAEEiJRCQISIt0JBhmD29EJDDpMv///0iLfCQoSIt0JCDo7wAAAEiJw7IB6wIx0kiJ2EiDxFhbQVxBXUFeQV9dw8zMzMxVQVdBVkFVQVRTUEyLbwhIa+44SIsBTYswSItIEEmJTC0QDxAAQQ8RRC0AD1fADxEASMdAEAAAAABNjXwtIEEPEUQtIEnHRC0wAAAAAEyJ9+hLcA8ASIP48HNtSYnESIP4F3MSQ40EJEGIB0mDxwFNheR1Kes1TInjSIPDEEiD4/BIid/o92oPAEmJRC0wSIPLAUmJH02JZC0oSYnHTIn/TIn2TIni6HVvDwBDxgQnAEnHRC0YAAAAAEiDxAhbQVxBXUFeQV9dw0yJ/+igbw8AQVZTUEmJ9kiJ+0iLD0iLVxhIifBIwegHSInOSMHuDEgxxkgh1vMPbwQxZg92yWYPZMhmD9fBhcB1Jb8QAAAAkEgB/kgh1vMPbwQxZg92yWYPZMhmD9fBSIPHEIXAdOFmD7zAD7fASAHwSCHQSItzIEiF9nUIgDwB/nU5MfZIg0MQATH/gDwBgEAPlMdIKf5IiXMgQYDmf0SINAFIjXDxSCHWg+IPSAHyRIg0EUiDxAhbQV7DSInf6CQAAABIiztIi1MYTIn26DWuAgBIiwtIi1MYSItzIOulzMzMzMzMzMxIi0cYSIXAdChIg/gRchVIi08QSMHhBUiNFIBIjRSSSDnRdhdIjTQASIPGAekPAAAAvgEAAADpBQAAAOmQAgAAVUFXQVZBVUFUU0iD7BhJifdJifxIiwdIiUQkCEiLbwhMi28YSIl3GEiNXhdIg+P4SGv+OEgB3+hUaQ8ASYnGSYkEJEgBw0mJXCQISY1XEEiJx76AAAAA6ORsDwBJi0QkGEPGBD7/SInBSMHpA0kDTCQQSCnISYlEJCBMiWwkEE2F7Q+E9wEAAEUx/+sSDx8ASYPHAUw7fCQQD4TAAQAASItEJAhCgDw4AHjlTWv3OEIPtlw1APbDAXQWSot0NRBKi1w1COsVZi4PH4QAAAAAAEjR60mNNC5Ig8YBTY0sLkiNPYoYEABIidrokib9/0gB2Ei5aS046wjq351I9+FIMcJJiwQkSYtMJBhIiddIwe8HSInGSMHuDEgx/kghzvMPbwQwZg92yWYPZMhmD9f5hf91LLsQAAAADx+EAAAAAABIAd5IIc7zD28EMGYPdslmD2TIZg/X+UiDwxCF/3ThZg/vyWYPvP8Pt/9IAfdIIc+A4n+IFDhIjXfxSCHOg+EPSAHxiBQISYtEJAhIa884SYtVEEiJVAgQ80EPb0UA8w9/BAjzQQ9/TQBJx0UQAAAAAEiNNAhIg8YYSY0ULkiDwhhKi3w1GEiF/3Q1SIk+SMcCNgAAAEH2RQABD4Sw/v//SY0ELkiDwBBIizjowGcPAOmb/v//Zi4PH4QAAAAAAJBKi3w1MEiJfAgw80IPb0Q1IPMPf0QIIPNCD39MNSBKx0Q1MAAAAABIxwYAAAAASIs6SIX/dA1A9scBdJnor5ADAOuSSY0ELkiDwCD2AAF0hUqLfDUw6FZnDwDpdv///0iDfCQQAHQYSIt8JAhIg8QYW0FcQV1BXkFfXekxZw8ASIPEGFtBXEFdQV5BX13DzMxVQVdBVkFVQVRTSIPsSEmJ/GRIiwQlKAAAAEiJRCRASIs/SYt0JBjoxKoCAGYP78BmD39EJCBmD39EJBBmD38EJEjHRCQwAAAAAEmDfCQYAA+E0AEAAEUx9kyNPYAWEADrXWYuDx+EAAAAAAAPH0AAZg+87Q+37UgB/UghzUiJ70gp90yJ80gp80gx+0ghy4Dif0iD+w8Ph+gAAABCiBQwSY128UghzoPhD0gB8YgUCEmDxgFNO3QkGA+EagEAAEmLBCRCgDww/nXmSYtEJAhNa+44Qg+2LChA9sUBdBJKi3QoEEqLbCgI6xFmDx9EAABI0e1KjTQoSIPGAUyJ/0iJ6ujqI/3/SAHoSLlpLTjrCOrfnUj34UgxwkmLBCRJi0wkGEiJ10jB7wdIicZIwe4MSDH+SCHO8w9vBDBmD3bJZg9kyGYP1+lIifeF7Q+FHv///7sQAAAASIn3Zg8fRAAASAHfSCHP8w9vBDhmD3bJZg9kyGYP1+lIg8MQhe104ens/v//SI118UghzoPhD0gB8YA8KICIFCiIFAhJi1QkCHU7SGv1OEgB1kkB1UmNfCQgTInq6LcAAABJiwQkSYtMJBhCxgQwgEmNVvFIIcqD4Q9IAdHGBAiA6dP+//9MAepJjVwkIEiJ30iJ5uiAAAAASYtUJAhJAdVIa+04SAHqSInfTInu6GYAAABJA2wkCEiJ30iJ7kiJ4uhTAAAASYPG/+mK/v//RTH2TInwSMHoA0kDRCQQSSnGTYl0JCBkSIsEJSgAAABIO0QkQHUPSIPESFtBXEFdQV5BX13D6A9nDwDMzMzMzMzMzMzMzMzMzMxTSInTSItCEEiJRhAPEAIPEQYPV8APEQJIx0IQAAAAAEiLQhhIhcB0HUiJRhhIx0MYNgAAAPYDAXUCW8NIi3sQW+lqZA8ASItDMEiJRjAPEEsgDxFOIA8RQyBIx0MwAAAAAEjHRhgAAAAASIt7GEiF/3QNQPbHAXS86HKNAwDrtUiNQyD2AAF0rEiLezDoHmQPAOuhzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJif1MizdMi2cITSn0TYnnScH/BEmNTwFIichIweg8D4XEAAAASLj/////////D0mLbRBMKfVIiepIwfoESMH9A0g5zUgPQulIuf////////8HSDnKSA9D6EiF7XQiSIk0JEg5xQ+HhgAAAEiJ70jB5wTobmMPAEiJw0iLNCTrAjHbScHnBEjB5QRIAd0PEAZCDxEEO0kB30mDxxBNheR+EkiJ30yJ9kyJ4ujWZw8ATYt1AEmJXQBNiX0ISYltEE2F9nQWTIn3SIPECFtBXEFdQV5BX13pK2MPAEiDxAhbQVxBXUFeQV9dw0yJ7+gkaA8A6P9nDwDMzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIPsGEmJ10mJ/A9XwA8RB0jHRxAAAAAASDnWD4TzAAAATInDSYnOSInySItuCEyNbhBNOf10H0yJ6GYuDx+EAAAAAABmkEgB3UgDaAhIg8AQTDn4dfBIhe0PhLUAAABIg/0WSIlUJBB2LUiNVepIxwQkAAAAAL4WAAAATInnMclFMcBFMcnoq2gPAEiLVCQQQfYEJAF1D0mNRCQBjUwtAEGIDCTrCkmLRCQQSYlsJAjGBCgASIsySItSCEH2BCQBdAdJi2wkEOsHTInlSIPFAUiJ7+ieZg8ATTn9SItEJBB0MkgDaAhIie9MifZIidrogmYPAEgB3UmLdQBJi1UISInv6G9mDwBJA20ISYPFEE05/XXSTIngSIPEGFtBXEFdQV5BX13DuAIAAACD/313DUhjx0iNDRw08v+LBIHDDx+EAAAAAABQ6OpmDwCLOFjp0v///2aQVUFWU4nzSYn+iffowP///4nFid/oR3IPAEiJw0iJx+h8Zg8ATIn3ie5IidpIicHoHIsDAEyJ8FtBXl3DDx9AAFVBVlNIifvolGYPAIsoie/oe////0GJxonv6AFyDwBIicVIicfoNmYPAEiJ30SJ9kiJ6kiJwejVigMASInYW0FeXcPMzMzMzMzMzMzMzMzMw8zMzMzMzMzMzMzMzMzMzDHAg/4BD5TAg8ABiQeD/gIPlEcED5RHBYP+Aw+VRwZIx0cIAACAAEi4AAAAAAEAAABIiUcQw2YuDx+EAAAAAABTSIPsMEiJ+2RIiwQlKAAAAEiJRCQoD1fADxEHSMdHEAAAAADHRxgBAAAAZsdHHAAAxkceAUjHRyAAAIAAx0coAAAAAMZHLAEPEYeIAAAASMeHmAAAAAAAAAAPEUctDxFHOA8Rh7AAAABIx4fAAAAAAAAAAEiJdCQYSIX2dApIiffoOmUPAOsCMcBIiUQkIMcEJAEAAABmx0QkBAAAxkQkBgFIx0QkCAAAgABIuAAAAAABAAAASIlEJBBIjXQkGEiJ4kiJ3+gmAAAAZEiLBCUoAAAASDtEJCh1BkiDxDBbw+grYg8AZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIHsiAEAAEmJ1kiJ80mJ/GRIiwQlKAAAAEiJhCSAAQAASIsFjlUQAEiD+P90LEiNRCQ4SIlEJHBIjUQkcEiJRCRQSI09bVUQAEiNFaZGAABIjXQkUOiMbg8ATIs7TYX/dDtIi1sID1fADylEJHBIx4QkgAAAAAAAAABIg/vwD4NMCAAASIP7F3MwjQQbiEQkcEyNbCRxSIXbdUjrVA9XwA8pRCRwSMeEJIAAAAAAAAAAQfYEJAF1RutmSI1rEEiD5fBIie/o3F4PAEmJxUiJhCSAAAAASIPNAUiJbCRwSIlcJHhMie9Mif5IidroVWMPAEHGRB0AAEH2BCQBdCJJi0QkEMYAAEnHRCQIAAAAAEH2BCQBdApJi3wkEOimXg8ASIuEJIAAAABJiUQkEA8oRCRwQQ8RBCRIiw2AVBAAQQ+2FCRIidZI0e72wgFJD0V0JAhJjXwkGEmNbCQBSYtWEEmJVCQoQQ8QBkEPEUQkGA9XwEEPEUQkUEnHRCRgAAAAAEHHRCRo/////0nHRCRwAAAAAEmJTCR4QceEJIAAAAAAAAAAQQ8RhCSgAAAADylEJGAPKUQkUEgPRMVIiUQkcEiJdCR46DwJAABIjXwkcEiNVCRQicboq5wAAEmJRCRQSIXAdDJIx0QkKAAAAABJjXQkMEmNVCRISI1MJChIicfowToCAITAD4R0AQAASIt8JCjpegEAAEGAfCQeAA+EBwQAAMZEJHAASI1cJHhIjbwk6AAAAEyNvCSAAAAASI0FQtYPAEiNSBhIiUwkeEiDwEBIiYQk6AAAAEyJ/uiFbg8ASMeEJHABAAAAAAAAx4QkeAEAAP////9MjS2X1Q8ASY1FGEiJRCQISIlEJHhJg8VATImsJOgAAABMif/oVW4PAEyNNUbWDwBJg8YQTIm0JIAAAAAPV8APEYQkwAAAAA8RhCTQAAAAx4Qk4AAAABAAAABIjTVRb+j/uh0AAABIid/o4Dr8/0iNNUGT7v+6AQAAAEiJx+jMOvz/SInHvsIAAADor2QPAEiNNVmuof+6AgAAAEiJx+irOvz/SI01bPld/7oPAAAASInf6Jc6/P9IicNBD7YEJEiJwUjR6agBSQ9FbCQQSIlsJChJD0VMJAhIiUwkMEiNfCQ4SI10JCjoAgoAAA+2VCQ49sIBD4TgAQAASIt0JEhIi1QkQOnZAQAASY1EJFBIizjoqBsCAEiJx0mJfCRYSYtEJCBIAcBIuVZVVVVVVVVVSPfpSInQSMHoP0iNNBDoG/kAAEmJRCRgSIXAdCNJi3wkWOhnNgIAQYlEJGhJi3wkYOiY9wEAQYhEJGzpowQAAEGAfCQeAA+EQgQAAMZEJHAATI1sJHhIjbwk6AAAAEyNvCSAAAAASI0FcdQPAEiNSBhIiUwkeEiDwEBIiYQk6AAAAEyJ/ui0bA8ASMeEJHABAAAAAAAAx4QkeAEAAP////9IjR3G0w8ASI1DGEiJRCQISIlEJHhIg8NASImcJOgAAABMif/ohGwPAEyNNXXUDwBJg8YQTIm0JIAAAAAPV8APEYQkwAAAAA8RhCTQAAAAx4Qk4AAAABAAAABIjTWAbej/uh0AAABMie/oDzn8/0iNNXCR7v+6AQAAAEiJx+j7OPz/SInHvtcAAADo3mIPAEiNNYisof+6AgAAAEiJx+jaOPz/SI01VW3o/7oRAAAATInv6MY4/P9JicVBD7YEJEiJwUjR6agBSQ9FbCQQSIlsJBBJD0VMJAhIiUwkGEiNfCQ4SI10JBDoMQgAAA+2VCQ49sIBD4RSAgAASIt0JEhIi1QkQOlLAgAASNHqSI10JDlIid/oZDj8/0iNNR3en/+6AwAAAEiJx+hQOPz/SInDSI18JBBIjXQkUOh+MgIAD7ZUJBD2wgF0DEiLdCQgSItUJBjrCEjR6kiNdCQRSInf6Bg4/P/2RCQQAQ+FBgEAAPZEJDgBD4UQAQAAgHwkcAAPhBoBAABIi0QkCEiJRCR4TImsJOgAAABMibQkgAAAAPaEJMAAAAABdA1Ii7wk0AAAAOjGWQ8ATIn/6P5qDwBIjTVX0g8ASIPGCEiNfCR46PlqDwBIjbwk6AAAAOj8ag8AvxgAAADoclkPAEiJw0iNdCRQSInH6MIxAgBJiVwkeItEJFCD+A65AQAAAA9CyEGJjCSAAAAATIt0JFhNhfZ0P0iLXCRgD1fADylEJHBIx4QkgAAAAAAAAABIg/vwD4NDAgAASIP7F3NljQQbiEQkcEyNfCRxSIXbdX3phgAAAA9XwA8pRCRwSMeEJIAAAAAAAAAA63VIi3wkIOj9WA8A9kQkOAEPhPD+//9Ii3wkSOjoWA8AgHwkcAAPheb+//9IjXwkcOgzSwAA6df+//9IjWsQSIPl8EiJ7+ieWA8ASYnHSImEJIAAAABIg80BSIlsJHBIiVwkeEyJ/0yJ9kiJ2ugXXQ8AQcYEHwBJjZwkiAAAAEH2hCSIAAAAAXUGxkMBAOsvSYuEJJgAAADGAABJx4QkkAAAAAAAAABB9oQkiAAAAAF0DUmLvCSYAAAA6EpYDwBIi4QkgAAAAEiJQxAPKEQkcA8RA+n2AAAASNHqSI10JDlMie/oITb8/0iNNfL0Xf+6AQAAAEiJx+gNNvz/9kQkOAF0CkiLfCRI6PxXDwCAfCRwAHUKSI18JHDoS0oAAEiLRCQISIlEJHhIiZwk6AAAAEyJtCSAAAAA9oQkwAAAAAF0DUiLvCTQAAAA6LpXDwBMif/o8mgPAEiNNUvQDwBIg8YISI18JHjo7WgPAEiNvCToAAAA6PBoDwC/GAAAAOhmVw8ASInDvzAAAADoWVcPAEiJQxAPKAX+CZn+DxEDDxAFedWs/g8RQBAPEAVe1az+DxEAZsdAIGVkxkAiAEmJXCR4QceEJIAAAAAOAAAASItcJGhIhdt0FvYDAXQJSIt7EOgjVw8ASInf6BtXDwBkSIsEJSgAAABIO4QkgAEAAHUcSIHEiAEAAFtBXEFdQV5BX13DSI18JHDovFsPAOg3WQ8ADx+AAAAAAEiD7DhkSIsEJSgAAABIiUQkMA9XwA8RB0jHRxAAAAAAx0cYAQAAAGbHRxwAAMZHHgFIx0cgAACAAMdHKAAAAADGRywBDxGHiAAAAEjHh5gAAAAAAAAADxFHLQ8RRzgPEYewAAAASMeHwAAAAAAAAAAPtgZIjU4BSInCSNHqqAFID0VOEEiJTCQgSA9FVghIiVQkKMdEJAgBAAAAZsdEJAwAAMZEJA4BSMdEJBAAAIAASLgAAAAAAQAAAEiJRCQYSI10JCBIjVQkCOhC9v//ZEiLBCUoAAAASDtEJDB1BUiDxDjD6EhYDwAPH4QAAAAAAEiD7ChkSIsEJSgAAABIiUQkIA9XwA8RB0jHRxAAAAAAx0cYAQAAAGbHRxwAAMZHHgFIx0cgAACAAMdHKAAAAADGRywBDxGHiAAAAEjHh5gAAAAAAAAADxFHLQ8RRzgPEYewAAAASMeHwAAAAAAAAADHRCQIAQAAAGbHRCQMAADGRCQOAUjHRCQQAACAAEi4AAAAAAEAAABIiUQkGEiNVCQI6Hr1//9kSIsEJSgAAABIO0QkIHUFSIPEKMPogFcPAA9XwA8RB0jHRxAAAAAAx0cYAQAAAGbHRxwAAMZHHgFIx0cgAACAAMdHKAAAAADGRywBDxGHiAAAAEjHh5gAAAAAAAAADxFHLQ8RRzgPEYewAAAASMeHwAAAAAAAAADp/fT//2YuDx+EAAAAAAAPHwBVQVdBVkFVQVRTSIHsKAEAAEiJ+2RIiwQlKAAAAEiJhCQgAQAAiwe9BAAAAIP4AQ+EhwEAAIP4AnUKvSQAAADpeAEAAIB7BgAPhG4BAADGRCQQAEyNbCQYSI28JIgAAABMjXwkIEiNBRTNDwBIjUgYSIlMJBhIg8BASImEJIgAAABMif7oV2UPAEjHhCQQAQAAAAAAAMeEJBgBAAD/////TI0lacwPAEmNRCQYSIlEJAhIiUQkGEmDxEBMiaQkiAAAAEyJ/+gmZQ8ATI01F80PAEmDxhBMiXQkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNStm6P+6HQAAAEyJ7+i6Mfz/SI01G4ru/7oBAAAASInH6KYx/P9Iice+gAAAAOiJWw8ASI01M6Wh/7oCAAAASInH6IUx/P9IjTVx0az+uhEAAABMie/ocTH8/4szSInH6FdbDwCAfCQQAHUKSI18JBDotkUAAEiLRCQISIlEJBhMiaQkiAAAAEyJdCQg9kQkYAF0CkiLfCRw6C5TDwBMif/oZmQPAEiNNb/LDwBIg8YISI18JBjoYWQPAEiNvCSIAAAA6GRkDwCJ6A2UBwAAgHsEAA9FxYnBg8kCgHsQAA9EyI2BAAgAAIB7EQAPRMGJwYPJCIB7EgAPRMiJyA0AEAAAgHsTAA9EwQ+2SxSD8QEJwYnIDYAAAACAexUAD0TBicGByQABAACAexYAD0TIiciDyBCAexcAD0TBZEiLDCUoAAAASDuMJCABAAB1EkiBxCgBAABbQVxBXUFeQV9dw+i3VA8ADx+AAAAAAEFWU0iD7DhIiftkSIsEJSgAAABIiUQkMEiDfghjdwpIid/ouT4AAOtnumQAAABIifcx9uj4hwIASIlEJAhIiVQkEEyNdCQYSI10JAhMiffojD4AAEiNNQwmpv9MiffonVYPAEiLSBBIiUsQDxAADxEDD1fADxEASMdAEAAAAAD2RCQYAXQKSIt8JCjo0FEPAGRIiwQlKAAAAEg7RCQwdQtIidhIg8Q4W0Few+gAVA8AU0iD7DBIiftkSIsEJSgAAABIiUQkKEiJPCRIi4ewAAAASIP4/3Q0SI27sAAAAEiNRCQISIlEJBhIieBIiUQkIEiNRCQYSIlEJBBIjRXvOAAASI10JBDodWAPAEiLQ3BkSIsMJSgAAABIO0wkKHUGSIPEMFvD6IZTDwBmDx9EAABBVlNQSYn+SIt/WEiF/3QF6LsSAgBJi35QSIX/dAXorRICAEmLXmBIhdt0EEiJ3+hMEgEASInf6PRQDwBJi15wSIXbdBBIid/oMxIBAEiJ3+jbUA8ASYteeEiF23QfSDsdw0YQAHQW9gMBdAlIi3sQ6LtQDwBIid/os1APAEmLnqAAAABIhdt0HUg7HaBGEAB0FEiLcwhIid/oIkgAAEiJ3+iKUA8ASYueqAAAAEiF23QdSDsdf0YQAHQUSItzCEiJ3+hJSAAASInf6GFQDwBB9oaIAAAAAXUVQfZGMAF1IUH2BgF1KkiDxAhbQV7DSYu+mAAAAOg2UA8AQfZGMAF030mLfkDoJlAPAEH2BgF01kmLfhBIg8QIW0Fe6RBQDwBIi0dgSIXAdASLQBDDuP/////DZi4PH4QAAAAAAA8fAFVTSIPsOGRIiwQlKAAAAEiJRCQwvf////9Ig39gAHRXSIn7SIl8JAhIi4ewAAAASIP4/3Q2SI27sAAAAEiNRCQQSIlEJCBIjUQkCEiJRCQoSI1EJCBIiUQkGEiNFR83AABIjXQkGOilXg8ASItDcEiFwHQDi2gQZEiLBCUoAAAASDtEJDB1CYnoSIPEOFtdw+irUQ8AZi4PH4QAAAAAAJBIi39gSIX/dALrFbj/////w2YuDx+EAAAAAAAPH0QAAFVBV0FWQVVBVFNIg+xIZEiLBCUoAAAASIlEJEAPV8APKUQkIA8pRCQQSMdEJDAAAAAAi28Qx0QkEAAAAACF7Q+I/QEAAEiJ80mJ/kiNPK0AAAAA6LhODwBIiUQkGIlsJCBIjTztAAAAAOiiTg8ASIlEJCiJbCQwSI10JBBMiffoXN0BAEyNcwhIi3MISInf6MxGAABMiTMPV8APEUMISIt8JCiLRCQQhcAPhB8BAABIiVwkCEmJ/Os9Dx+AAAAAAEiJA0mLN0iLewjowR/5/0iDQxABSIt8JCiLRCQQQYNFIAFJg8QISGPISI0Mz0k5zA+EuQAAAEGLVCQEvf////+DxQG+AQAAAInp0+Y51nzwSYseSIXbdDhNiffrEQ8fAEiLC0mJ30iFyXQ1SInLi0scOc186znpfSpMjXsISItLCEiFyXXl6xsPH4QAAAAAAEyJ802J9+sLDx+EAAAAAABJid9Niy9Nhe0PhW7///+/KAAAAOiXTQ8ASYnFiWgcx0AgAAAAAA9XwA8RAEiJWBBJiQdIi1wkCEiLA0iLAEiFwA+FGf///0yJ7ukX////SYsOSIXJdBdmDx+EAAAAAABIichIi0kISIXJdfTrJUmNRhBJi04QTDkxdRUPH0QAAEiLCEiNQRBIi1EQSDkKdPBIiwCLWBxIx0QkKAAAAABIhf90BegnTQ8ASIt8JBhIx0QkGAAAAABIhf90BegPTQ8AZEiLBCUoAAAASDtEJEB1FonYSIPESFtBXEFdQV5BX13D6NlRDwDoNE8PAA8fQABVQVZTSIPsMGRIiwQlKAAAAEiJRCQovf////9Ig39gAHReSYn2SIn7SIk8JEiLh7AAAABIg/j/dDRIjbuwAAAASI1EJAhIiUQkGEiJ4EiJRCQgSI1EJBhIiUQkEEiNFQ00AABIjXQkEOiTWw8ASIt7cEiF/3QKTIn26DL9//+JxWRIiwQlKAAAAEg7RCQodQuJ6EiDxDBbQV5dw+iQTg8AU0iD7DBIiftkSIsEJSgAAABIiUQkKEiJPCRIi4e4AAAASIP4/3Q0SI27uAAAAEiNRCQISIlEJBhIieBIiUQkIEiNRCQYSIlEJBBIjRVfNgAASI10JBDoBVsPAEiLg6AAAABkSIsMJSgAAABIO0wkKHUGSIPEMFvD6BNODwAPHwBTSIPsMEiJ+2RIiwQlKAAAAEiJRCQoSIk8JEiLh8AAAABIg/j/dDRIjbvAAAAASI1EJAhIiUQkGEiJ4EiJRCQgSI1EJBhIiUQkEEiNFS82AABIjXQkEOiFWg8ASIuDqAAAAGRIiwwlKAAAAEg7TCQodQZIg8QwW8Pok00PAA8fAEGJyUmJ0EiJ+EiJ90iJxroCAAAAMcnpBQAAAA8fRAAAVUFXQVZBVUFUU0iB7EgBAABIiftkSIsEJSgAAABIiYQkQAEAAIO/gAAAAAAPhCEBAACAex4AD4R2AQAAxkQkMABMjXQkOEiNvCSoAAAATI18JEBIjQWGww8ASI1IGEiJTCQ4SIPAQEiJhCSoAAAATIn+6MlbDwBIx4QkMAEAAAAAAADHhCQ4AQAA/////0iNLdvCDwBMjWUYTIlkJDhIg8VASImsJKgAAABMif/onlsPAEyNLY/DDwBJg8UQTIlsJEAPV8APEYQkgAAAAA8RhCSQAAAAx4QkoAAAABAAAABIjTWdXOj/uh0AAABMiffoLCj8/0iNNY2A7v+6AQAAAEiJx+gYKPz/SInHviADAADo+1EPAEiNNaWbof+6AgAAAEiJx+j3J/z/SI01Ae56/7oNAAAATIn36OMn/P9Ii3N4D7YW9sIBdHBIi1YISIt2EOttRYnOMe1EOUtoD4yGAQAASYn0iVQkHEyJRCQoQY1GAUiJTCQgSIXJQYnHRA9E/UyNbCQwRYX2RA9F+LoQAQAATInvMfboFE0PAEGD/xIPjYsAAAAxwEiJRCQQ6aYAAAAx7ekvAQAASIPGAUjR6kiJx+hYJ/z/gHwkMAB1CkiNfCQw6Kc7AABMiWQkOEiJrCSoAAAATIlsJED2hCSAAAAAAXQNSIu8JJAAAADoHkkPAEyJ/+hWWg8ASI01r8EPAEiDxghMiffoU1oPAEiNvCSoAAAA6FZaDwAx7em3AAAARIn9SMHlBEiJ7+hASw8ASYnFSInHMfZIieroYEwPAEyJ6EyJbCQQSYtMJAhEiTwkSInfTInmMdJEi0QkHE2J6ejKAwAAhMB0WEiLTCQgSIXJdA9Ji0UASQNFCEkrBCRIiQFFhfZIi2wkKHQ5SIXtdDQx20WF9kQPTvNJweYDkEk53nQhSItEHQBJi3xdEEmLdF0YSIsQ/1AISIPDCITAdd4x7esDQLUBSIt8JBBIhf90BeioSg8AZEiLBCUoAAAASDuEJEABAAB1FInoSIHESAEAAFtBXEFdQV5BX13D6FxKDwBmLg8fhAAAAAAAZpBBiclJidBIifhIifdIicYx0jHJ6cj8//8PH4QAAAAAAFNIg+wQQYnJSYnQSIn7ZEiLBCUoAAAASIlEJAhIxwQkAAAAAEiJ4UiJ90iJ3roBAAAA6In8//+EwHQLSIsMJEgBC0gpSwhkSIsMJSgAAABIO0wkCHUGSIPEEFvD6M9JDwBmLg8fhAAAAAAADx9EAABTSIPsEEGJyUmJ0EiJ+2RIiwQlKAAAAEiJRCQISMcEJAAAAABIieFIifdIid4x0ugc/P//hMB0C0iLDCRIAQtIKUsIZEiLDCUoAAAASDtMJAh1BkiDxBBbw+hiSQ8AZpBVQVdBVkFVQVRTSIHsSAEAAEmJ1kiJ9UmJ/GRIiwQlKAAAAEiJhCRAAQAASI18JDBFMf+6EAEAADH26GFKDwBNi24ITYXtfmZIiWwkCEmLLkkB7esyZi4PH4QAAAAAAJDoG1gPAEiLAEhjy41R0EQ5+kEPTtf2REgBCEQPRfpIg8UBTDntcxqAfQBcdfFIg8UBu/////9MOe1zxQ++XQDrv0GD/xB+DzHb6eIAAABBvwEAAADrCUGDxwFIi2wkCEEPtgQkTY1sJAFIicFI0emoAUmLRCQQSQ9ExUiJRCQQSQ9FTCQISIlMJBhEiTwkMdtIjXQkEEyNTCQwSInvMdJFMcDoKQEAAITAD4SBAAAAD1fADylEJBBIx0QkIAAAAABIjXQkEEiNTCQwSInvTInyRYn46CgOAACJw4TAdEFB9gQkAXQFTYtsJBBIi3QkMEwp7kiLVCQ4RA+2RCQQQfbAAXQMSItMJCBMi0QkGOsISdHoSI1MJBFMiefoEVcPAPZEJBABdApIi3wkIOiARQ8AZEiLBCUoAAAASDuEJEABAAB1FInYSIHESAEAAFtBXEFdQV5BX13D6KRHDwAPH0AAVUFXQVZTUEyLdwhNhfZ+T0iLH0kB3kUx/+ssDx9EAADom1YPAEiLAEhjzY1R0EQ5+kEPTtf2REgBCEQPRfpIg8MBTDnzcxuAO1x18kiDwwG9/////0w583PGD74r68FFMf9EifhIg8QIW0FeQV9dw1VBV0FWQVVBVFNIgeyYAQAASYn+ZEiLBCUoAAAASImEJJABAACDv4AAAAAAD4Q7AQAAQYB+HgAPhPMDAADGhCSAAAAAAEyNvCSIAAAASI28JPgAAABMjawkkAAAAEiNBTy9DwBIjUgYSImMJIgAAABIg8BASImEJPgAAABMie7ofFUPAEjHhCSAAQAAAAAAAMeEJIgBAAD/////SI0tjrwPAEyNZRhMiaQkiAAAAEiDxUBIiawk+AAAAEyJ7+hOVQ8ASI0dP70PAEiDwxBIiZwkkAAAAA9XwA8RhCTQAAAADxGEJOAAAADHhCTwAAAAEAAAAEiNNUpW6P+6HQAAAEyJ/+jZIfz/SI01Onru/7oBAAAASInH6MUh/P9Iice+QwIAAOioSw8ASI01UpWh/7oCAAAASInH6KQh/P9IjTWu53r/ug0AAABMif/okCH8/0mLdngPthb2wgEPhFMCAABIi1YISIt2EOlNAgAASInNSYnUSYn3SDnKdw1Ji3cISDnuD4PXAgAAQYB+HgAPhJ0CAADGhCSAAAAAAEiNvCT4AAAASI2cJJAAAABIjQXuuw8ASI1IGEiJjCSIAAAASIPAQEiJhCT4AAAASIne6C5UDwBIx4QkgAEAAAAAAADHhCSIAQAA/////0yNNUC7DwBJjUYYSIlEJAhIiYQkiAAAAEmDxkBMibQk+AAAAEiJ3+j7Uw8ATI0t7LsPAEmDxRBMiawkkAAAAA9XwA8RhCTQAAAADxGEJOAAAADHhCTwAAAAEAAAAEiNNfdU6P+6HQAAAEiNvCSIAAAA6IEg/P9IjTXieO7/ugEAAABIicfobSD8/0iJx75JAgAA6FBKDwBIjTX6k6H/ugIAAABIicfoTCD8/0iNNSsTtP66JQAAAEiNvCSIAAAA6DMg/P9IjTU3PcH/ugoAAABIicfoHyD8/0iJx0yJ5ugUSg8ATI0l2eCx/7oCAAAASInHTInm6P0f/P9IjTXOvaj/uggAAABIicfo6R/8/0iJx0iJ7ujeSQ8AugIAAABIicdMiebozh/8/0iNNQ8hpv+6CwAAAEiJx+i6H/z/SYt3CEiJx+iuSQ8ASI01gd5d/7oBAAAASInH6Jof/P+AvCSAAAAAAHUNSI28JIAAAADo4zMAAEiLRCQISImEJIgAAABMibQk+AAAAEyJrCSQAAAA9oQk0AAAAAF0DUiLvCTgAAAA6E9BDwBIjbwkkAAAAOiCUg8ASI0127kPAEiDxghIjbwkiAAAAOtrSIPGAUjR6kiJx+geH/z/gLwkgAAAAAB1DUiNvCSAAAAA6GczAABMiaQkiAAAAEiJrCT4AAAASImcJJAAAAD2hCTQAAAAAXQNSIu8JOAAAADo2EAPAEyJ7+gQUg8ASI01abkPAEiDxghMif/oDVIPAEiNvCT4AAAA6BBSDwBFMe1kSIsEJSgAAABIO4QkkAEAAA+F3AgAAESJ6EiBxJgBAABbQVxBXUFeQV9dw0SLlCTQAQAAQQ8QBw8pRCRwSItcJHBMAeNIiVwkcEiLRCR4TCngSCn1SAHFRTHtRYXSSI18JGBJD0T9SIlsJHgPV8APKUQkYEGLRmiNSAFEOdBBD03KSIlMJAhJi1ZgigKEwHQJTYXkD4Vm////hMB0C7kCAAAAgHoBAHUTQYP4ArkBAAAAQQ9EyITAQQ9EyEEPtkYwqAF0Bk2LXjjrBkmJw0nR602F23QtSIkMJEUx7U2F5A+FGv///0wp3Q+CEf///0iJfCQoSIl0JBioAXQQSYt+QOsSSIl8JCjppwAAAEmNfjBIg8cBTIssJEiJVCQQQYB+SABMiVwkOHQ7TYXbfltIi0QkOEyNBAdIidkPthGNcr+NQiBAgP4aD7bAD0PCOAcPhaf+//9Ig8cBSIPBAUw5x3LY6yVIid5MidpNiczoqkIPAEyLLCREi5Qk0AEAAE2J4YXAD4Vz/v//TItcJDhMAdtIiVwkcEiJbCR4McBBg/0CD5TAg8ABicFIi3QkGEiLVCQQRQ+2Rh1BgH5sAA+VwEiLXCQIg/sGQQ+cxEEgxItqELgAAAQASInXMdL3/Uhj0MZEJF8AjUH/g/gCTIlcJDgPg4ABAACD+QJED0TBSIH+ARAAAA+SwEQg4DwBdRlBvQEAAACD+wEPjw4DAABIg/4JD4IEAwAAgf30AQAAfxRIOdZ3D0G9AQAAAIP7AQ+P6AIAAEiJVCQgiWwkEEyJ00yJTCQYSI1EJF9IjXQkcEyNTCRgTIk8JEyJ+rkBAAAARInFagBQ6EFvAQBIg8QQhMAPhX8BAACAfCRfAA+Eav3//0G9AQAAAEGAfh4AD4S7AAAASI01ZlDo/0iNvCSAAAAAutgCAADoACkAAEiNvCSIAAAASI01xzO3/roYAAAA6Ncb/P9Ji05gi3EQSInH6LhFDwBMjT2N3LH/ugIAAABIicdMif7osRv8/0iNNZCTsP+6DgAAAEiJx+idG/z/SYtOYItxFEiJx+h+RQ8AugIAAABIicdMif7ofhv8/0iNNZFTXf+6CwAAAEiJx+hqG/z/SYtOYItxIEiJx+hLRQ8ASI28JIAAAADoTikAAEyLPCRMi0wkGEmJ2kiLXCQIQYno6awBAABIiVQkIIlsJBBMidNMiUwkGEiNbCRfSI10JHBMiTwkTIn6MclEiUQkNEyLTCQoagBV6A9uAQBIg8QQhMAPhIIAAABIidiFwA+EwgIAAEyJ9+gw6///SIXAD4Qn/P//SYnFSI10JGBIicdIixQkuQEAAABBuAEAAABJifFqAFXowm0BAEiDxBCEwA+EYQMAAEiLTCQISInIg/kBTItMJBhJidpMi1wkOA+PLwIAAEiJxQ+FlwIAAA8oRCRgQQ8RAemJAgAARTHtgHwkXwAPhLb7//9BgH4eAA+EuQAAAEiNNbVO6P9MjbwkgAAAAEyJ/7qbAgAA6EwnAABIjbwkiAAAAEiNNRMyt/66GAAAAOgjGvz/SYtOYItxEEiJx+gERA8ASI0t2dqx/7oCAAAASInHSInu6P0Z/P9IjTXckbD/ug4AAABIicfo6Rn8/0mLTmCLcRRIicfoykMPALoCAAAASInHSInu6MoZ/P9IjTXdUV3/ugsAAABIicfothn8/0mLTmCLcSBIicfol0MPAEyJ/+ifJwAATIs8JEyLTCQYSYnaSItcJAhEi0QkNItsJBBIi1QkIA8oRCRwDylEJECwAYlEJChFhe0PlMBBgPQBQQjEdX5NidRJi35gSIPsCEiNdCRITIn6uQEAAABIidhMictIicVQ6KrPAQBIg8QQhMAPhTsBAACAfCQoAA+Fc/r//0GAfh4AD4Ro+v//SI01dU3o/0iNnCSAAAAASInfuvoCAADoDCYAAEiNvCSIAAAASI01qR60/robAAAA6RcDAABIidhNidSB/fQBAAB/C0g5VCRID4asAAAASYt+YEiD7AhIjXQkSEyJ+kSJ6UyJy0iJxVDoC8gBAEiDxBCEwA+FrAAAAIB8JCgAD4Xk+f//QYB+HgAPhNn5//9IjTXmTOj/SI2cJIAAAABIid+6BwMAAOh9JQAASI28JIgAAABIjTUOjKH/6YgCAAAPKEQkYA8pRCRAQbgCAAAAQb0BAAAAx0QkKAAAAABMizwki2wkEEiLVCQgSInD6bb+//9BtQHpcfn//0mLfmBIg+wISI10JEhMifpEielMictIicVQ6C/0AQBIg8QQhMAPhKcBAABJidlNieJMi1wkOE2F23QMRYXSfgdNKRlNAVkIQbUBRDnVD40e+f//SGPNSWPCQSnqSInKSPfSSAHCSYPiB3QlSInOSMHmBEwBzkn32jH/D1fADxEGSIPH/0iDxhBJOfp18Egp+UiD+gcPgtf4//9IKchIweEETAHJSIPBcA9XwA8RQZAPEUGgDxFBsA8RQcAPEUHQDxFB4A8RQfAPEQFIg+mASIPA+HXX6Zj4//+AfCRfAEGKRh5Ii0wkCA+ELQEAAEmJ2oTAD4S4AAAASI01g0vo/0yNvCSAAAAATIn/urACAADoGiQAAEiNvCSIAAAASI014S63/roYAAAA6PEW/P9Bi3UQSInH6NVADwBIjS2q17H/ugIAAABIicdIie7ozhb8/0iNNa2OsP+6DgAAAEiJx+i6Fvz/QYt1FEiJx+ieQA8AugIAAABIicdIie7onhb8/0iNNbFOXf+6CwAAAEiJx+iKFvz/QYt1IEiJx+huQA8ATIn/6HYkAABIi0wkCEmJ2kUx7UyLPCRMi0wkGESLRCQ0i2wkEEiLVCQgSInL6cz8//+AfCQoAA+Fkff//0GAfh4AD4SG9///SI01k0ro/0iNnCSAAAAASInfugEDAADoKiMAAEiNvCSIAAAASI017LOo/7ocAAAA6ziEwA+ETPf//0iNNVlK6P9IjZwkgAAAAEiJ37q4AgAA6PAiAABIjbwkiAAAAEiNNRukr/66FwAAAOjHFfz/SInf6L8jAADpCvf//+gFOg8ADx9EAABVQVdBVkFVQVRTSIHsKAEAAGRIiwQlKAAAAEiJhCQgAQAATItqCLABTYXtD47ZAwAARYnHSInNSYn0SIk8JEiJVCQITIsyTQH16xkPH0QAAA++8EyJ5+jlSA8ASYPGAU057nN0QQ+2BjxcdeRJg8YBu/////9NOe5zBEEPvh7onUgPAEiLAEhjy/ZESAEIdSCD+1wPheYBAABMiee+XAAAAOuzZi4PH4QAAAAAAA8fAIPD0EQ5+30nSGPDSMHgBEiLVAUISIXSdJJIi3QFAEyJ5+i6PA8A64OwAekrAwAASIsEJIB4HgAPhBsDAADGRCQQAEyNdCQYSI28JIgAAABMjXwkIEiNBWWvDwBIjUgYSIlMJBhIg8BASImEJIgAAABMif7oqEcPAEjHhCQQAQAAAAAAAMeEJBgBAAD/////TI0luq4PAEmNRCQYSIkEJEiJRCQYSYPEQEyJpCSIAAAATIn/6HhHDwBMjS1prw8ASYPFEEyJbCQgD1fADxFEJGAPEUQkcMeEJIAAAAAQAAAASI01fUjo/7odAAAATIn36AwU/P9IjTVtbO7/ugEAAABIicfo+BP8/0iJx76iAwAA6Ns9DwBIjTWFh6H/ugIAAABIicfo1xP8/0iNNazSXf+6EAAAAEyJ9+jDE/z/SInHid7oqT0PAEiNNX7+m/66CwAAAEiJx+ilE/z/SInDSItEJAhIiyhIie/okjoPAEiJ30iJ7kiJwuiEE/z/gHwkEAB1CkiNfCQQ6NMnAABIiwQkSIlEJBhMiaQkiAAAAEyJbCQg9kQkYAF0CkiLfCRw6Ew1DwBMif/ohEYPAEiNNd2tDwBIg8YITIn36XcBAABIiwQkgHgeAA+EewEAAMZEJBAASI1cJBhIjbwkiAAAAEyNfCQgSI0Fxa0PAEiNSBhIiUwkGEiDwEBIiYQkiAAAAEyJ/ugIRg8ASMeEJBABAAAAAAAAx4QkGAEAAP////9MjSUarQ8ATY1sJBhMiWwkGEmDxEBMiaQkiAAAAEyJ/+jcRQ8ATI01za0PAEmDxhBMiXQkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNeFG6P+6HQAAAEiJ3+hwEvz/SI010Wru/7oBAAAASInH6FwS/P9Iice+rgMAAOg/PA8ASI016YWh/7oCAAAASInH6DsS/P9IjTU+Kaf+uhkAAABIid/oJxL8/0iJw0iLRCQISIsoSInv6BQ5DwBIid9Iie5IicLoBhL8/4B8JBAAdQpIjXwkEOhVJgAATIlsJBhMiaQkiAAAAEyJdCQg9kQkYAF0CkiLfCRw6NIzDwBMif/oCkUPAEiNNWOsDwBIg8YISI18JBjoBUUPAEiNvCSIAAAA6AhFDwAxwGRIiwwlKAAAAEg7jCQgAQAAdRJIgcQoAQAAW0FcQV1BXkFfXcPozDUPAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIgeyIAQAASYnXSIn1SYn9ZEiLBCUoAAAASImEJIABAABIjXwkcEUx5LoQAQAAMfbowTYPAE2LdwhNhfZIiWwkGEyJfCQgfmZJiy9JAe7rLWYPH0QAAOh7RA8ASIsASGPLjVHQRDniQQ9O1PZESAEIRA9F4kiDxQFMOfVzGoB9AFx18UiDxQG7/////0w59XPFD75dAOu/MdtBg/wQD49iAgAAQYPEAUiLbCQY6wZBvAEAAABBD7ZdAE2NdQH2wwF0Ck2LdRBJi10I6wNI0esPV8APKUQkMEjHRCRAAAAAAEiF2w+ICQIAAEwB8zHASIlEJBAx9k2NfQFIiXQkKOsTZg8fRAAASYPGAUk53g+HggEAAEEPtkUASInBSNHpqAFJi0UQSQ9Ex0iJRCRQSQ9FTQhIiUwkWEyJ8kgpwkSJJCRIie9IjXQkUEUxwEyNTCRw6DDt//+EwA+ENwEAAEiLVCRwSTnWcxVMKfJIjXwkMEyJ9ujONw8ASItUJHBIO1QkKA+FzgAAAEiDfCR4AA+FwgAAAIN9GAF1bEiJ3kwp9kiD/gS4BAAAAA9N8EyJ9+ginAAAhcB0TsdEJFAAAAAASI18JFBMifboeZoAAItMJFCB+QAAEQB8EsdEJFD9/wAAuAEAAAC5/f8AAIP4AXU2gfn9/wAAdS5mLg8fhAAAAAAADx9AAEk53g+D9/7//7oBAAAASI18JDBMifboJTcPAOng/v//TGP4SI18JDBMifZMifroDTcPAE0B/k2NfQFIi2wkGEk53g+Gxf7//+tFZg8fRAAASInvSI10JDBIi1QkIEiNTCRwRYng6Eb5//9Ii3QkcEgDdCR4SItEJBCDwAFIiUQkEEmJ9kg53g+GZv7//+sKTIn2g3wkEAB0U0g53nMQSCnzSI18JDBIidrokjYPAEiLRCRASIlEJGAPKEQkMA8pRCRQSYtNEEiJTCRAQQ8QTQAPKUwkMEEPEUUASYlFEEiLXCQQ9kQkMAF1C+sTMdv2RCQwAXQKSIt8JEDoYTAPAGRIiwQlKAAAAEg7hCSAAQAAdRSJ2EiBxIgBAABbQVxBXUFeQV9dw+iFMg8ADx9EAABVQVdBVkFVQVRTSIHsOAEAAEmJzkmJ1EmJ90mJ/WRIiwQlKAAAAEiJhCQwAQAASI18JCAx7boQAQAAMfbofzMPAEmLXCQISIXbfl1MiXwkEEyJdCQYTYs8JEwB++smZpDoO0EPAEiLAEljzo1R0DnqD07V9kRIAQgPRepJg8cBSTnfcxtBgD9cdfFJg8cBQb7/////STnfc8dFD74368GD/RB+CzHb62u9AQAAAOsNg8UBTIt0JBhMi3wkEEmLTQiJLCQx20yNTCQgTIn/TInuMdJFMcDodur//4TAdDVB9gYBdQhmQccGAADrD0mLRhDGAABJx0YIAAAAAEiNTCQgTIn/TIn2TIniQYno6G/3//+Jw2RIiwQlKAAAAEg7hCQwAQAAdRSJ2EiBxDgBAABbQVxBXUFeQV9dw+hBMQ8AkEFXQVZBVFNQSYn0SYn+D1fADxEHSMdHEAAAAABIi3YISAH26GhADwBJg3wkCAAPhIcAAAAx20yNPdUopv8PHwBJiwQkD7YEGDxhfSQ8QX0wPDB9YYTAeEV1LkyJ90yJ/ugrMw8A60FmDx+EAAAAAAA8en8U6ydmLg8fhAAAAAAAPFt8GTxfdBVMife+XAAAAOjrPw8ASYsEJA+2BBgPvvBMiffo2D8PAEiDwwFJO1wkCHKN6wY8OX/P6+JMifBIg8QIW0FcQV5BX8NmDx9EAABVQVdBVkFVQVRTSIPsSGRIiwQlKAAAAEiJRCRASIN/YAB0IUGJz0mJ1kiJ80mJ/UiNdzBED7ZnMEH2xAF0DUWLZTjrCjHb6dQBAABJ0exFOfxFD0/nSWPsSI18JCAx0kiJ6UmJ8OiWMg8A9gMBdB1Ii0MQxgAASMdDCAAAAAD2AwF0CUiLexDolC0PAEiLRCQwSIlDEA8QRCQgDxEDSI18JCBJjXUwMdJIielJifDoTTIPAEH2BgF0HkmLRhDGAABJx0YIAAAAAEH2BgF0CUmLfhDoSS0PAEiLRCQwSYlGEA8QRCQgQQ8RBkGAfUgAdDxFheR+N0iNQwFEieEx0usJSIPCAUg50XQj9gMBSInGdARIi3MQD7Y8Fo1vn0CA/Rl33kCAx+BAiDwW69QPV8APKUQkIEjHRCQwAAAAAA8pBCRIx0QkEAAAAABFKed+LkmLfWBIjXQkIEiJ4kSJ+ejtbwEAhMB0Fg+2VCQg9sIBdFZIi3QkMEiLVCQo61JBD7YGqAF0E0mLRghIhcB0EkyJ9+jaLQEA62RI0ehIhcB17kiNLQTOsf9Iid9Iie7o3jMPAEyJ90iJ7ujTMw8AMdv2BCQBdT/rR0jR6kiNdCQhSInf6CkyDwAPthQk9sIBdAxIi3QkEEiLVCQI6whI0epIjXQkAUyJ9+gEMg8AswH2BCQBdApIi3wkEOgSLA8A9kQkIAF0CkiLfCQw6AEsDwBkSIsEJSgAAABIO0QkQHURidhIg8RIW0FcQV1BXkFfXcPoKy4PAGYuDx+EAAAAAACQVUFXQVZBVUFUU1BJidZJif9Mi24ITYXtflVIiy5JAe1BvP/////rEQ8fhAAAAAAASIPFAUw57XM8gH0AXHXxSIPFAUw57XRQD75dAIP7XHTf6Oo8DwBIiwBIY8v2REgBCHQ+g8PQQTncRA9M4+vBQbz/////QYtPaLMBQTnMfjJIjTXtz5P/MdtMifdEieIxwOh6LwEA6xpIjTWTl6/+6wdIjTXx/qX/TIn36JAyDwAx24nYSIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAA8fAEiF0g+UwMNmDx+EAAAAAABIhdJ0FlBIifBIif5IiddIicLoiTwPAEiDxAiwAcNmkEiF0nQHSIk6SIlyCLABw5BIg/4BdQywAUiF0nQEig+ICsMxwMNmLg8fhAAAAAAAkEiD/gF1DLABSIXSdASKD4gKwzHAw2YuDx+EAAAAAACQSIP+AXUMsAFIhdJ0BIoPiArDMcDDZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIPsSGRIiwQlKAAAAEiJRCRASIX2D4QGAQAAQYnPSIn1SYn9SIkUJA9XwA8pRCQgDylEJBDGRCQwAEwPvjfogzsPAEiLAEyNJZTLsf9C9kRwASAPhZIAAAAxwEGA/i0PlMBKjQwoSInrSCnDSIP7A3I/gDkwdTqAeQEwdTQx0kGA/i0PlMJIAdpKjTQqSIPG/g8fRAAAgHkCMHUVSIPD/0iDwQFIg/sCd+y7AgAAAOsDSInOSAHDSIP7IHcuSPfYSAHGTI1kJBC5IQAAAEyJ50iJ2ug+Ow8AQYD+LXUFxkQkEC3GRBwQAEiJ3UjHRCQIAAAAAOidLg8ASInDxwAAAAAASI10JAhMiedEifroFDsPAEwB5Ug5bCQIdQWDOwB0ITHAZEiLDCUoAAAASDtMJEB1IkiDxEhbQVxBXUFeQV9dw0iJwbABSIsUJEiF0nTTSIkK687oTCsPAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIg+xIZEiLBCUoAAAASIlEJEBIhfYPhA0BAABBic9JifVIif1IiRQkD1fADylEJCAPKUQkEMZEJDAATA++N+gTOg8ASIsATI0lJMqx/0L2RHABIA+FkgAAADHAQYD+LQ+UwEiNDChMietIKcNIg/sDcj+AOTB1OoB5ATB1NDHSQYD+LQ+UwkgB2kiNNCpIg8b+Dx9EAACAeQIwdRVIg8P/SIPBAUiD+wJ37LsCAAAA6wNIic5IAcNIg/sgdy5I99hIAcZMjWQkELkhAAAATInnSIna6M45DwBBgP4tdQXGRCQQLcZEHBAASYndQYA8JC10NkjHRCQIAAAAAOgmLQ8ASInDxwAAAAAASI10JAhMiedEifrorTkPAE0B5Uw5bCQIdQWDOwB0ITHAZEiLDCUoAAAASDtMJEB1IkiDxEhbQVxBXUFeQV9dw0iJwbABSIsUJEiF0nTTSIkK687o1SkPAA8fRAAAU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIni6Pr8//+EwHQZSIsMJEgPv8FIOch1DLABSIXbdAdmiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+hwKQ8AU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIni6Ar+//+EwHQZSIsMJEiB+f//AAB3DLABSIXbdAdmiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+gQKQ8AU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIni6Dr8//+EwHQXSIsMJEhjwUg5yHULsAFIhdt0BokL6wIxwGRIiwwlKAAAAEg7TCQIdQZIg8QQW8PosigPAGaQU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIni6Er9//+EwHQYSIsMJEiJyEjB6CB1C7ABSIXbdAaJC+sCMcBkSIsMJSgAAABIO0wkCHUGSIPEEFvD6FEoDwCQVUFXQVZBVUFUU0iD7EhkSIsEJSgAAABIiUQkQEiF9g+EBgEAAEGJz0iJ9UmJ/UiJFCQPV8APKUQkIA8pRCQQxkQkMABMD7436CM3DwBIiwBMjSU0x7H/QvZEcAEgD4WSAAAAMcBBgP4tD5TASo0MKEiJ60gpw0iD+wNyP4A5MHU6gHkBMHU0MdJBgP4tD5TCSAHaSo00KkiDxv4PH0QAAIB5AjB1FUiDw/9Ig8EBSIP7AnfsuwIAAADrA0iJzkgBw0iD+yB3Lkj32EgBxkyNZCQQuSEAAABMiedIidro3jYPAEGA/i11BcZEJBAtxkQcEABIid1Ix0QkCAAAAADoPSoPAEiJw8cAAAAAAEiNdCQITInnRIn66NQ2DwBMAeVIOWwkCHUFgzsAdCExwGRIiwwlKAAAAEg7TCRAdSJIg8RIW0FcQV1BXkFfXcNIicGwAUiLFCRIhdJ000iJCuvO6OwmDwBmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIPsSGRIiwQlKAAAAEiJRCRASIX2D4QNAQAAQYnPSYn1SIn9SIkUJA9XwA8pRCQgDylEJBDGRCQwAEwPvjfoszUPAEiLAEyNJcTFsf9C9kRwASAPhZIAAAAxwEGA/i0PlMBIjQwoTInrSCnDSIP7A3I/gDkwdTqAeQEwdTQx0kGA/i0PlMJIAdpIjTQqSIPG/g8fRAAAgHkCMHUVSIPD/0iDwQFIg/sCd+y7AgAAAOsDSInOSAHDSIP7IHcuSPfYSAHGTI1kJBC5IQAAAEyJ50iJ2uhuNQ8AQYD+LXUFxkQkEC3GRBwQAEmJ3UGAPCQtdDZIx0QkCAAAAADoxigPAEiJw8cAAAAAAEiNdCQITInnRIn66G01DwBNAeVMOWwkCHUFgzsAdCExwGRIiwwlKAAAAEg7TCRAdSJIg8RIW0FcQV1BXkFfXcNIicGwAUiLFCRIhdJ000iJCuvO6HUlDwAPH0QAAEiJ0THS6wlmDx+EAAAAAABVQVdBVkFVQVRTSIHs6AAAAGRIiwQlKAAAAEiJhCTgAAAASIX2D4SvAQAASYnOQYnXSYn0SIn9D1fADxGEJMkAAAAPKYQkwAAAAA8phCSwAAAADymEJKAAAAAPKYQkkAAAAA8phCSAAAAADylEJHAPKUQkYA8pRCRQDylEJEAPKUQkMA8pRCQgDylEJBBMD74v6OozDwBIiwBC9kRoASB1BUyJ4+spSY00LEyJ4w8fAEiD+wEPhJ8AAABMD75tAUiDxQFIg8P/QvZEaAEgdeExyUGA/S0PlMFIjQQpSCnLSIP7A3JVgDgwdVCAeAEwdUoxyUGA/S0PlMFIAdlIjTQpSIPG/mYuDx+EAAAAAABmkIB4AjB1JEiDw/9Ig8ABSIP7AnfsuwIAAABBgP0tdBRIgfvIAAAAdxjrIUiJxkGA/S117EiDwwFIgfvIAAAAdh9IjS1Ew7H/6z4x20iNfCQQuckAAABIidroYzMPAOsbSIPG/0iNfCQQuckAAABIidroSzMPAMZEJBAtSI1sJBDGRBwQAEmJ3EjHRCQIAAAAAOirJg8ASInDxwAAAAAASI10JAhIie9FhP90C+hgMw8A8w9awOsF6GUzDwBMAeVIOWwkCHUFgzsAdCcxwGRIiwwlKAAAAEg7jCTgAAAAdTBIgcToAAAAW0FcQV1BXkFfXcOwAU2F9nTURYT/dAvyD1rA80EPEQbrxPJBDxEG673oPCMPAGYuDx+EAAAAAABmkEiJ0boBAAAA6cP9//8PHwBTSIPsEEiJ02RIiwQlKAAAAEiJRCQISMcEJAAAAABIieK5CgAAAOhF9v//hMB0GUiLDCRID7/BSDnIdQywAUiF23QHZokL6wIxwGRIiwwlKAAAAEg7TCQIdQZIg8QQW8PouyIPAGYuDx+EAAAAAACQU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIniuRAAAADo1fX//4TAdBlIiwwkSA+/wUg5yHUMsAFIhdt0B2aJC+sCMcBkSIsMJSgAAABIO0wkCHUGSIPEEFvD6EsiDwBmLg8fhAAAAAAAkFNIg+wQSInTZEiLBCUoAAAASIlEJAhIxwQkAAAAAEiJ4rkIAAAA6GX1//+EwHQZSIsMJEgPv8FIOch1DLABSIXbdAdmiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+jbIQ8AZi4PH4QAAAAAAJBBVlNIg+wYSYnWZEiLBCUoAAAASIlEJBBIx0QkCAAAAABIjVQkCDHbMcno8fT//4TAdB1Ii0QkCEgPv8hIOcF1DbMBTYX2dAhmQYkG6wIx22RIiwQlKAAAAEg7RCQQdQqJ2EiDxBhbQV7D6GEhDwCQU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIniuQoAAADo9fX//4TAdBlIiwwkSIH5//8AAHcMsAFIhdt0B2aJC+sCMcBkSIsMJSgAAABIO0wkCHUGSIPEEFvD6PsgDwBmLg8fhAAAAAAAkFNIg+wQSInTZEiLBCUoAAAASIlEJAhIxwQkAAAAAEiJ4rkQAAAA6IX1//+EwHQZSIsMJEiB+f//AAB3DLABSIXbdAdmiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+iLIA8AZi4PH4QAAAAAAJBTSIPsEEiJ02RIiwQlKAAAAEiJRCQISMcEJAAAAABIieK5CAAAAOgV9f//hMB0GUiLDCRIgfn//wAAdwywAUiF23QHZokL6wIxwGRIiwwlKAAAAEg7TCQIdQZIg8QQW8PoGyAPAGYuDx+EAAAAAACQQVZTSIPsGEmJ1mRIiwQlKAAAAEiJRCQQSMdEJAgAAAAASI1UJAgx2zHJ6KH0//+EwHQcSItEJAhIPf//AAB3DbMBTYX2dAhmQYkG6wIx22RIiwQlKAAAAEg7RCQQdQqJ2EiDxBhbQV7D6KIfDwBmkFNIg+wQSInTZEiLBCUoAAAASIlEJAhIxwQkAAAAAEiJ4rkKAAAA6MXy//+EwHQXSIsMJEhjwUg5yHULsAFIhdt0BokL6wIxwGRIiwwlKAAAAEg7TCQIdQZIg8QQW8PoPR8PAGYuDx+EAAAAAAAPHwBTSIPsEEiJ02RIiwQlKAAAAEiJRCQISMcEJAAAAABIieK5EAAAAOhV8v//hMB0F0iLDCRIY8FIOch1C7ABSIXbdAaJC+sCMcBkSIsMJSgAAABIO0wkCHUGSIPEEFvD6M0eDwBmLg8fhAAAAAAADx8AU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIniuQgAAADo5fH//4TAdBdIiwwkSGPBSDnIdQuwAUiF23QGiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+hdHg8AZi4PH4QAAAAAAA8fAEFWU0iD7BhJidZkSIsEJSgAAABIiUQkEEjHRCQIAAAAAEiNVCQIMdsxyehx8f//hMB0G0iLRCQISGPISDnBdQyzAU2F9nQHQYkG6wIx22RIiwQlKAAAAEg7RCQQdQqJ2EiDxBhbQV7D6OMdDwAPHwBTSIPsEEiJ02RIiwQlKAAAAEiJRCQISMcEJAAAAABIieK5CgAAAOh18v//hMB0GEiLDCRIichIweggdQuwAUiF23QGiQvrAjHAZEiLDCUoAAAASDtMJAh1BkiDxBBbw+h8HQ8AZi4PH4QAAAAAAGaQU0iD7BBIidNkSIsEJSgAAABIiUQkCEjHBCQAAAAASIniuRAAAADoBfL//4TAdBhIiwwkSInISMHoIHULsAFIhdt0BokL6wIxwGRIiwwlKAAAAEg7TCQIdQZIg8QQW8PoDB0PAGYuDx+EAAAAAABmkFNIg+wQSInTZEiLBCUoAAAASIlEJAhIxwQkAAAAAEiJ4rkIAAAA6JXx//+EwHQYSIsMJEiJyEjB6CB1C7ABSIXbdAaJC+sCMcBkSIsMJSgAAABIO0wkCHUGSIPEEFvD6JwcDwBmLg8fhAAAAAAAZpBBVlNIg+wYSYnWZEiLBCUoAAAASIlEJBBIx0QkCAAAAABIjVQkCDHbMcnoIfH//4TAdBxIi0QkCEiJwUjB6SB1DLMBTYX2dAdBiQbrAjHbZEiLBCUoAAAASDtEJBB1ConYSIPEGFtBXsPoIhwPAGaQuQoAAADpZu///2YPH0QAALkQAAAA6Vbv//9mDx9EAAC5CAAAAOlG7///Zg8fRAAAMcnpOe///2YPH4QAAAAAALkKAAAA6Zbw//9mDx9EAAC5EAAAAOmG8P//Zg8fRAAAuQgAAADpdvD//2YPH0QAADHJ6Wnw//9mDx+EAAAAAAC5CgAAAOlG8///Zg8fRAAAuRAAAADpNvP//2YPH0QAALkIAAAA6Sbz//9mDx9EAAAxyekZ8///Zg8fhAAAAAAAuQoAAADpdvT//2YPH0QAALkQAAAA6Wb0//9mDx9EAAC5CAAAAOlW9P//Zg8fRAAAMcnpSfT//2YPH4QAAAAAAFC/GAAAAOilGA8AD1fADxEASMdAEAAAAABIiQWoDhAAvxgAAADohhgPAEiNSAgPV8APEUAISIkISIkFkQ4QAL8YAAAA6GcYDwBIjUgID1fADxFACEiJCEiJBXoOEABYw1VBV0FWQVVBVFNIgexIAQAAZEiLBCUoAAAASImEJEABAABIiwdIi0AITIsgSLhWVVVVVVVVVUn3bCQgSYt8JFhIidBIweg/SI00EOhAtQAASYlEJHBIhcAPhVYCAABBgHwkHgAPhPABAADGRCQwAEyNdCQ4SI28JKgAAABMjXwkQEiNBaiQDwBIjUgYSIlMJDhIg8BASImEJKgAAABMif7o6ygPAEjHhCQwAQAAAAAAAMeEJDgBAAD/////SI0d/Y8PAEiNQxhIiQQkSIlEJDhIg8NASImcJKgAAABMif/ovCgPAEiNLa2QDwBIg8UQSIlsJEAPV8APEYQkgAAAAA8RhCSQAAAAx4QkoAAAABAAAABIjTW7Kej/uh0AAABMiffoSvX7/0iNNatN7v+6AQAAAEiJx+g29fv/SInHvvEAAADoGR8PAEiNNcNoof+6AgAAAEiJx+gV9fv/SI010pqf/7oZAAAATIn36AH1+/9JicVBD7YEJEmNTCQBSInCSNHqqAFJD0VMJBBIiUwkCEkPRVQkCEiJVCQQSI18JBhIjXQkCOhnxP//D7ZUJBj2wgF0DEiLdCQoSItUJCDrCEjR6kiNdCQZTInv6KH0+/9IjTVys13/ugEAAABIicfojfT7//ZEJBgBdApIi3wkKOh8Fg8AgHwkMAB1CkiNfCQw6MsIAABIiwQkSIlEJDhIiZwkqAAAAEiJbCRA9oQkgAAAAAF0DUiLvCSQAAAA6D4WDwBMif/odicPAEiNNc+ODwBIg8YITIn36HMnDwBIjbwkqAAAAOh2Jw8AvxgAAADo7BUPAEiJw78wAAAA6N8VDwBIiUMQDygFdMaY/g8RAw8QBdzem/4PEUAaDxAFx96b/g8RQBAPEAWs3pv+DxEAxkAqAEmJXCR4QceEJIAAAAAOAAAAZEiLBCUoAAAASDuEJEABAAB1EkiBxEgBAABbQVxBXUFeQV9dw+jiFw8AZpBTSIsHSItACEiLGEiLe1hIhf90E+i38AEASImDoAAAAEiFwHQOW8NIi4OgAAAASIXAdfJIiwVWCxAASImDoAAAAFvDZi4PH4QAAAAAAA8fAFNIiwdIi0AISIsYSIt7WEiF/3QT6EfxAQBIiYOoAAAASIXAdA5bw0iLg6gAAABIhcB18kiLBQ4LEABIiYOoAAAAW8PMzMzMzMzMzMzMzMzMVUFXQVZBVFNBiddIifNIif3GBwBMjXcISIPHeEyNZRBIjQWJjQ8ASI1IGEiJTQhIg8BASIlFeEyJ5ujRJQ8ASMeFAAEAAAAAAADHhQgBAAD/////SI0F5YwPAEiNSBhIiU0ISIPAQEiJRXhMieforSUPAEiNBZ6NDwBIg8AQSIlFEA9XwA8RRVAPEUVgx0VwEAAAAEiJ3+hUGQ8ATIn3SIneSInC6Eby+/9IjTWnSu7/ugEAAABIicfoMvL7/0iJx0SJ/ugXHA8ASI01wWWh/7oCAAAASInHW0FcQV5BX13pC/L7/8zMzMzMzMzMzMzMQVdBVlNIifuAPwB1CEiJ3+hLBgAATI1zCEiNBTCMDwBIjUgYSIlLCEiDwEBIiUN4TI17EEiNBe2MDwBIg8AQSIlDEPZDUAF0CUiLe2DorhMPAEyJ/+jmJA8ASI01P4wPAEiDxghMiffo4yQPAEiDw3hIid9bQV5BX+niJA8AzMxBV0FWQVVBVFNIiftMiz5Nhf90MkyLdggPV8APEQNIx0MQAAAAAEmD/vBzbEmD/hdzJEONBDaIA0mJ3EmDxAFNhfZ1NOtAD1fADxEDSMdDEAAAAADrNU2NbhBJg+XwTInv6PoSDwBJicRIiUMQSYPNAUyJK0yJcwhMiedMif5MifLoehcPAEPGBDQASInYW0FcQV1BXkFfw0iJ3+iwFw8AQVZTUEiJ+0iNBSKLDwBIjUgYSIkPSIPAQEiJR3BMjXcISI0F4IsPAEiDwBBIiUcI9kdIAXQJSIt7WOihEg8ATIn36NkjDwBIjTUyiw8ASIPGCEiJ3+jWIw8ASIPDcEiJ30iDxAhbQV7p0yMPAMzMzEFWU1BIiftIjQWyig8ASI1IGEiJD0iDwEBIiUdwTI13CEiNBXCLDwBIg8AQSIlHCPZHSAF0CUiLe1joMRIPAEyJ9+hpIw8ASI01wooPAEiDxghIid/oZiMPAEiNe3DobSMPAEiJ30iDxAhbQV7p/hEPAMzMzMzMzMzMzMzMzMzMQVdBVlNIiwdIi0DoTI08B0iNDSmKDwBIjVEYSIkUB0yNNAdJg8ZwSIPBQEiJTAdwSI0cB0iDwwhIjQ3Zig8ASIPBEEiJTAcI9kQHSAF0CUmLf1jomBEPAEiJ3+jQIg8ASI01KYoPAEiDxghMif/ozSIPAEyJ91tBXkFf6dAiDwBBV0FWU0iLB0iLQOhIjRwHSI0NqYkPAEiNURhIiRQHTI00B0mDxnBIg8FASIlMB3BMjTwHSYPHCEiNDVmKDwBIg8EQSIlMBwj2RAdIAXQJSIt7WOgYEQ8ATIn/6FAiDwBIjTWpiQ8ASIPGCEiJ3+hNIg8ATIn36FUiDwBIid9bQV5BX+noEA8AzMzMzMzMzMxTSIn7SI0F/YkPAEiDwBBIiQf2R0ABdAlIi3tQ6L8QDwBIid9b6fYhDwDMzMzMzMxTSIn7SI0FzYkPAEiDwBBIiQf2R0ABdAlIi3tQ6I8QDwBIid/oxyEPAEiJ31vpfhAPAMzMzMzMzMzMzMzMzMzMU4nTTItPMEyLR1hNOchzB0yJT1hNiciJyEjHwv////+D4BgPhLsAAACD+Bh1CYP7AQ+ErQAAAE2FwHQM9kdAAXQZTItfUOsXRTHShdt1GjHASAHweUfpiQAAAEyNX0FNicJNKdqF23Tmg/sCdBiD+wF1cfbBCHUYTInISCtHKEgB8HkZ615MidBIAfB5D+tUSItHGEgrRxBIAfB4R0k5wnxCSIXAdBb2wQh0B0iDfxgAdDH2wRB0BU2FyXQn9sEIdA9Ii1cQSAHCSIlXGEyJRyD2wRB0C0hjyEgDTyhIiU8wSInCMcBbw8zMzMzMzMzMSIsHSItAIEiJ1jHS/+DMzEiLRzBIi09YSDnBcwdIiUdYSInBuP/////2R2AIdBxIi1cgSDnKcwdIiU8gSInKSItPGEg50XMDD7YBw8zMzMxIi0cwSItPWEg5wXMHSIlHWEiJwUiLVxi4/////0g5VxBzI4P+/3Qf9kdgEHUGQDhy/3USSI1C/0iJRxhIiU8gQIhy/4nww0iDwv9IiVcYSIlPIDHAw8zMzMzMzMzMzMxVQVdBVkFVQVRTUIP+/3QkQYn3SIn7TItnGEyLbzBMK2cQSItHOEk5xXQQSItrWOmDAAAAMcDpwQAAALj/////9kNgEA+EsgAAAEiLQyhIi2tYSSnFSCnFTI1zQEyJ9zH26PofDwBIi0NASIPg/kiDwP/2Q0ABvhYAAABID0XwTIn3MdLoJx0PAA+2Q0CoAXQKSItLUEiLQ0jrB0iNS0FI0ehIAchIiUsoSIlDOEkBzUyJazBIAc1JjU0BSDnpSA9D6UiJa1j2Q2AIdB/2Q0ABdAZIi1NQ6wRIjVNBSQHUSIlTEEyJYxhIiWsgSTnFdBtIiUswRYh9AEEPtsdIg8QIW0FcQV1BXkFfXcNBD7b3SIsDSItAaEiJ30iDxAhbQVxBXUFeQV9d/+DMzMzMzMzMU0iD7CBIiftkSIsEJSgAAABIiUQkGEiDxwhIjTUM76X/ugEAAADodev7/w9XwA8pBCRIx0QkEAAAAABIjXMQSInn6GkAAAAPtgQkSInCSNHqqAFID0VUJAhIjXwkAUgPRXwkEEiLBb3HDwBIiwi+AQAAAOhYHw8AxgMB9gQkAXQKSIt8JBDoFQ0PAGRIiwQlKAAAAEg7RCQYdQZIg8QgW8PoSg8PAMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ+YtGYKgQdRioCHVvD1fAQQ8RAUnHQRAAAAAA6TkEAABMi3YwSItOWEmJzUw58XMHTIl2WE2J9UiLXigPV8BBDxEBScdBEAAAAABNie9JKd9Jg//wD4MRBAAASYP/FndoRQD/RYg5TInISIPAAUw56w+FiQAAAOnbAwAASIteEEyLZiAPV8BBDxEBScdBEAAAAABMieVIKd1Ig/3wD4PJAwAASIP9Fg+HsAAAAI1ELQBBiAFMichIg8ABTDnjD4XHAAAA6Y4DAABNjWcQSYPk8EyJ50yJzUiJDCTo5AsPAEiLDCRJielIiUUQSYPMAUyJZQBMiX0ITDnrD4RXAwAASTnOSYnKTQ9H1kkp2kmD+iAPgncBAABJOc5IicpJD0fWSDnQcw9IKdpIAcJIOdMPglkBAABNidBJg+DgSY1Q4EiJ10jB7wVIg8cBif6D5gNIg/pgc30x0unfAAAATI19EEmD5/BMif9Nic7oVAsPAE2J8UmJRhBJg88BTYk+SYluCEw54w+EzAIAAEiD/SAPgkkCAABMOeBzDUiNDChIOcsPgjcCAABJiehJg+DgSY1I4EiJzkjB7gVIg8YBifKD4gNIg/lgD4NQAQAAMf/puQEAAEiD5/xI998x0g8fhAAAAAAADxAEEw8QTBMQDxEEEA8RTBAQDxBEEyAPEEwTMA8RRBAgDxFMEDAPEEQTQA8QTBNQDxFEEEAPEUwQUA8QRBNgDxBME3APEUQQYA8RTBBwSIPqgEiDxwR1qEiF9nQ+SI08EEiDxxBIAdpIg8IQSMHmBTHtZi4PH4QAAAAAAA8fQAAPEEQq8A8QDCoPEUQv8A8RDC9Ig8UgSDnudeVMAcBNOcIPhMwBAABMAcNJOc5JD0fOicop2kiJ3kj31kgBzkiD4gd0H2YuDx+EAAAAAABmkA+2C4gISIPDAUiDwAFIg8L/de1Ig/4HD4KGAQAADx8AD7YLiAgPtksBiEgBD7ZLAohIAg+2SwOISAMPtksEiEgED7ZLBYhIBQ+2SwaISAYPtksHiEgHSIPACEiDwwhMOet1vek7AQAASIPm/Ej33jH/Zi4PH4QAAAAAAA8fRAAADxAEOw8QTDsQDxEEOA8RTDgQDxBEOyAPEEw7MA8RRDggDxFMODAPEEQ7QA8QTDtQDxFEOEAPEUw4UA8QRDtgDxBMO3APEUQ4YA8RTDhwSIPvgEiDxgR1qEiF0nQ+SI00OEiDxhBIAd9Ig8cQSMHiBTHJZi4PH4QAAAAAAA8fQAAPEEQP8A8QDA8PEUQO8A8RDA5Ig8EgSDnKdeVMAcBMOcUPhHwAAABMAcNEieIp2kiJ3kj31kwB5kiD4gd0FWaQD7YLiAhIg8MBSIPAAUiDwv917UiD/gdySg8fgAAAAAAPtguICA+2SwGISAEPtksCiEgCD7ZLA4hIAw+2SwSISAQPtksFiEgFD7ZLBohIBg+2SweISAdIg8AISIPDCEw543W9xgAATInISIPECFtBXEFdQV5BX13DTInP6EANDwBIhfZ0PEFWU1BIifNJif5Iizbo6f///0iLcwhMiffo3f////ZDIAF0CUiLezDoPggPAEiJ30iDxAhbQV7pLwgPAMPMzMzMzMzMzMzMzMzMzEiF9nQ8QVZTUEiJ80mJ/kiLNujp////SItzCEyJ9+jd////9kMoAXQJSIt7OOjuBw8ASInfSIPECFtBXunfBw8Aw8zMzMzMzMzMzMzMzMzMSIX2dC1BVlNQSInzSYn+SIs26On///9Ii3MITIn36N3///9Iid9Ig8QIW0Fe6Z4HDwDDzMzMzMzMzMzMzMzMzIk3DxACDxFHCEiJTxhIx0cgAAAAAMdHKAAAAABA9sYguP//EAC5/wAAAA9EyIlPLMNmLg8fhAAAAAAADx9EAABBV0FWU0yLfyDrFQ8fRAAATIn36DgHDwBIid/o0MgBAE2F/3QuTIn7TYt/EEjHQxAAAAAAgDsWdd9Mi3MgTYX2dNZB9gYBdMhJi34Q6P8GDwDrvVtBXkFfww8fgAAAAABBVlNQSInzSIX2dD9Ix0MQAAAAAIA7FHUyTItzIE2F9nQpSMdDIAAAAABMiffoXvQBAEiJQxhJjX4QSYt2GOh9VQAATIn36KUGDwBIidhIg8QIW0Few2YuDx+EAAAAAABBV0FWU0iJ80mJ/r7/////MdLoyQAAAIA7FA+FlgAAAEiLeyBIhf8PhIkAAABBi3Ys6PrsAQBIi3sgi0cIg/gCdCeD+AF1b0iLRxBEi3gcSInf6NnHAQC/KAAAAOgPBg8ASInDQYsW6zxIi0cQRIt4HEGNR7+D+Bl3PEGDxyBEif7ouuoBAITAdCxIid/onscBAL8oAAAA6NQFDwBIicNBixaDygFIice+AwAAAOjOwQEARIl7GIA7FXcLSInf6B0IAgCIQwFJi0YgSIlDEEmJXiCwAVtBXkFfw2YPH0QAAFVBV0FWQVVBVFNQSItfIEiF2w+E4wAAAEyLaxBNhe0PhNYAAACKA41I/YD5AQ+HyAAAAEGJ1kGKTQCNUf2A+gEPh7UAAABBD7dVAmYzUwL2wgEPhaMAAABBifdJifyA+QN1I0GLdRhBxkUABEHHRRgAAAAAScdFIAAAAABMie/ofMwBAIoDPAN1DYtzGEyJ7+hrzAEA60KDexgAfh8x7ZBIi0MgizSoTInv6FHMAQBIg8UBSGNDGEg5xXzkx0MYAAAAAEiLeyBIhf90BehPBw8ASMdDIAAAAABFhf94EMYDA0SJexhmRIlzArAB6w9NiWwkIEiJ3+hVxgEAMcBIg8QIW0FcQV1BXkFfXcMPH0AAg/4WD53Aw2YPH4QAAAAAAFNJifmF9n5RRTHAifBJifnrKWYuDx+EAAAAAAAPH0AAjUsBKchBOdJBD0/ISI0MSU2NDIkPT8OFwH4eicPR60yNHFtHixSZQTnSf9RDOVSZBHzNS40EmVvDSGPGSI0EQEiNDIcxwEk5yUkPQsFbw5CJ8ItPCIH5////P38Mg/n/dCCD+QF0O+tFgfkAAABAdCiB+QEAAEB1NYnBKw/2wQF1K4nBwekfAcGD4f6JwinKg/oBdRWDwAHDicErD/bBAXULqAF1BIPAAcODwP/DAcjDZi4PH4QAAAAAAA8fRAAAifhIjQ1T8vH/SGMRSIXSflxMjQRSScHgAkwDBTi+DwBIjQ3Z4fH/RTHJ6x8PH0AAjX4BKfpBOcJBD0/5SI0Mf0mNDIsPT9aF0n4jSYnLidbR7kiNDHZFixSLQTnCf9FBOUSLBHzKifdBOcJ+E8NMOcFz+kiFyXT1RIsRQTnCf+2J+UiNDElBi0yLCIH5////P38Mg/n/dCGD+QF0PetHgfkAAABAdCmB+QEAAEB1N4nBRCnR9sEBdbSJwcHpHwHBg+H+icIpyoP6AXUWg8ABw4nBRCnR9sEBdZOoAXUEg8ABw4PA/8MByMMPH4AAAAAAVUFXQVZBVFOJ80mJ/ESLP0H2xwF0C4nf6PP+//852HV2QffHAAgAAHQkg/sKdR+/KAAAAOhnAg8ASYnGSInHvgEAAABEifroZL4BAOszTInnid5Eifrotfz//4TAdS2/KAAAAOg3Ag8ASYnGQYsUJEiJx74DAAAA6DO+AQBBiV4YTInnTIn26KT7//+wAVtBXEFeQV9dw78oAAAA6P8BDwBJicZBgef+PwAASInHvhQAAABEifro9b0BAL8oAAAA6NsBDwBIicVIicfo8OEBAEmJbiCJ3esiDx+EAAAAAABJi34gie6J6ujz4QEAie/oHP7//4nFOdh0h0H2RCQBCHTeg/0KdObr1w8fgAAAAABVQVdBVlNQSYn+RIs/RIn9g+UQvygAAADocwEPAEiJw8HtAoPFDkiJx4nuRIn66G29AQBMifdIid7o4vr//7ABSIPECFtBXkFfXcMPH0QAAFVBVlNBifZIifu/KAAAAOgsAQ8ASInFixNIicdEifboLL0BAEiJ30iJ7uih+v//sAFbQV5dw2YuDx+EAAAAAABBV0FWU4nzSYn+vygAAADo7AAPAEmJx0GLFoPzEUiJx4ne6Om8AQBMifdMif7oXvr//7ABW0FeQV/DZg8fRAAAVUFXQVZTUEiJ+0SLN0H2xhB1Kr8oAAAA6KMADwBIicVIice+DwAAAESJ8uigvAEASInfSInu6BX6///rNUSJ9YHNACAAAIkrvygAAADobgAPAEmJx0iJx74TAAAAierobLwBAEiJ30yJ/ujh+f//RIkzsAFIg8QIW0FeQV9dw5BVQVdBVlNQSYn+ix+J3YHlCAgAAL8oAAAA6CIADwBJiceD/Qh1EUyJ/74MAAAAidroG7wBAOtPgeP+PwAATIn/vhQAAACJ2ugEvAEAvygAAADo6v8OAEiJxUiJx+j/3wEASYlvIEiJ7zH2ugkAAADoDOABAEmLfyBBi1YsvgsAAADo+t8BAEyJ90yJ/ug/+f//sAFIg8QIW0FeQV9dw2aQVUFXQVZTUEGJ90iJ+0iLdyBIhfZ0CA+2PoP/FnIcSItDGMcACAAAAEiLQxgPEAIPEUAIMcDpzgAAAIsDicWD9UCEyQ9E6EQ5/3UOD7dOArABOc0PhK8AAACDx/mD/wJ3EA+3RgI5xXUIxgYH6ZUAAAC/KAAAAOgl/w4ASYnGSInHRIn+ieroJbsBAGZBx0YGAQBIi2sgSItFEEmJRhBIx0UQAAAAAIB9ABR1MkyLfSBNhf90KUjHRSAAAAAATIn/6JvsAQBIiUUYSY1/EEmLdxjouk0AAEyJ/+ji/g4AZkGDfgYCcgZJi0YI6wdMifBIg8AISIkoTIn36BIBAgBBiEYBTIlzILABSIPECFtBXkFfXcNmLg8fhAAAAAAADx8AidCAPgp1DotOGIXJeAiFyX4Dmff5w4tOHIXJf/Xr9pCJyEWFyQ+OdwEAAESJyUGD+QhzBzHS6VUBAACJyoPi+GYPbsBmD3DAAEiNcvhIifBIwegDSIPAAUiF9g+EQgEAAEiJx0iD5/5I998x9mYPb8hmLg8fhAAAAAAADx9EAADzQQ9vFLDzQQ9vXLAQ80EPb2SwIPNBD29ssDBmD2/wZg9m8mYP29ZmD9/wZg/r8mYPb9FmD2bTZg/b2mYP39FmD+vTZg9vxmYPZsRmD9vgZg/fxmYP68RmD2/KZg9mzWYP2+lmD9/KZg/rzUiDxhBIg8cCdYuoAXQ980EPbxSw80EPb1ywEGYPb+BmD2biZg/b1GYP3+BmD+viZg9v0WYPZtNmD9vaZg/f0WYP69NmD2/EZg9vymYPb9FmD2bQZg/bwmYP39FmD+vQZg9wwu5mD2/IZg9mymYP29FmD9/IZg/rymYPcMFVZg9v0GYPZtFmD9vKZg/f0GYP69FmD37QSDnKdB1mLg8fhAAAAAAAkEGLNJA5xg9MxkiDwgFIOdF17sMx9mYPb8ioAQ+FSP///+uDZi4PH4QAAAAAAA8fAEFXQVZBVUFUU0iB7CABAABkSIsEJSgAAABIiYQkGAEAAMZEJAgATI10JBBIjbwkgAAAAEyNfCQYSI0FYXUPAEiNSBhIiUwkEEiDwEBIiYQkgAAAAEyJ/uikDQ8ASMeEJAgBAAAAAAAAx4QkEAEAAP////9IjR22dA8ATI1jGEyJZCQQSIPDQEiJnCSAAAAATIn/6HkNDwBMjS1qdQ8ASYPFEEyJbCQYD1fADxFEJFgPEUQkaMdEJHgQAAAASI01hzLu/7ofAAAATIn36BDa+/9IjTVxMu7/ugEAAABIicfo/Nn7/0iJx74xAgAA6N8DDwBIjTWJTaH/ugIAAABIicfo29n7/0iNNeDMs/66IwAAAEyJ9+jH2fv/gHwkCAB1CkiNfCQI6Bbu//9MiWQkEEiJnCSAAAAATIlsJBj2RCRYAXQKSIt8JGjok/sOAEyJ/+jLDA8ASI01JHQPAEiDxghMiffoyAwPAEiNvCSAAAAA6MsMDwBkSIsEJSgAAABIO4QkGAEAAHUTMcBIgcQgAQAAW0FcQV1BXkFfw+iQ/Q4AVUFXQVZBVUFUU0iD7CiJ1UGJ90mJ/mRIiwQlKAAAAEiJRCQgg/r/dDCB/egDAAB/MUGB/+gDAAB/KEQ5/XwjSYtGIEiFwHQFgDgWclNJi0YYxwAIAAAA6xNBgf/pAwAAfN1Ji0YYxwAJAAAASYtGGA8QAQ8RQAhFMe1kSIsEJSgAAABIO0QkIA+FzAEAAESJ6EiDxChbQVxBXUFeQV9dw0iJDCRBiwaJw4PzQEWEwA9E2L8oAAAA6GT6DgBJicRIice+CgAAAIna6GK2AQBFiXwkHEGJbCQYZkHHRCQGAQBJi14gSItDEEmJRCQQSMdDEAAAAACAOxR1MkyLayBNhe10KUjHQyAAAAAATInv6M3nAQBIiUMYSY19EEmLdRjo7EgAAEyJ7+gU+g4AZkGDfCQGAnIHSYtEJAjrB0yJ4EiDwAhIiRhMiefoQvwBAEGIRCQBTYlmIEG1AUGD/wF/CYP9Ag+MEf///0jHRCQYAAAAAL8wAAAA6KT5DgAPV8APEQAPEUAQDxFAIEiJRCQQxkQkGABIjQVlcw8ASIPAEEiJRCQIx0QkHEBCDwBIjXwkCEyJ5rroAwAAuQEAAADo3UsAAIXAdD1IjQWacw8ASIPAEEiJRCQISI18JAjon0gAAEiLXCQQSIXbD4SL/v//SInf6NlKAABIid/oQfkOAOl2/v//SYtGGMcACQAAAEmLRhhIiwwkDxABDxFACEiNBURzDwBIg8AQSIlEJAhIjXwkCOhJSAAASItcJBBIhdsPhDL+//9Iid/og0oAAEiJ3+jr+A4A6R3+///oMfsOAJBVQVdBVkFVQVRTUEiJ80mJ/78oAAAA6KX4DgBJicZBixdIice+FgAAAOiitAEAQYtHKIPAAUGJRyhBiUYYTIsjTYXkD4SCAAAAvxgAAADobfgOAEmJxUiLWwgPV8APEQBIx0AQAAAAAEiD+/BzeUiD+xdzFY0EG0GIRQBMie1Ig8UBSIXbdS3rOUyJJCRMjWMQSYPk8EyJ5+gj+A4ASInFSYlFEEmDzAFNiWUATIskJEmJXQhIie9MieZIidronvwOAMZEHQAATYluIEyJ/0yJ9uh68f//sAFIg8QIW0FcQV1BXkFfXcNMie/owfwOAJBBVlNQSYn+vygAAADov/cOAEiJw0GLFkiJx74WAAAA6LyzAQDHQxj/////TIn3SIne6Crx//+wAUiDxAhbQV7DQVdBVlNJif++/////zHS6Ozx//9Ji0cgSIXAdAWAOBZyKL8oAAAA6GT3DgBJicZBixdIice+AgAAAOhhswEATIn/TIn26Nbw//9Mif++BQAAAOh5GAAASYt/IEiF/3RJSItPEEiFyXRAgDkXdTtIi0EQSIXAdHyKF4oYgPoMdVmA+wN0CoD7DHRegPsUdWRIi1AQSIlXEEiJeRBJiU8gSInH6Km4AQDrKL8oAAAA6N32DgBIicNBixdIice+FwAAAOjasgEATIn/SIne6E/w//+wAVtBXkFfw4D7DHUVgPoUdAWA+gN1C0mJTyDoX7gBAOveSIlHEEiJeRBJiU8g69BmLg8fhAAAAAAADx9EAABBVlNQSIn7SItHIEiFwHQFgDgWcie/KAAAAOhh9g4ASYnGixNIice+AgAAAOhfsgEASInfTIn26NTv//9Iid++BQAAAEiDxAhbQV7pcBcAAEFXQVZBVFNQSIn76JD+//9Ii3sgSItHEEiJQyDoz7cBAEiJ374GAAAA6EIXAABMi2MgTYXkD4SIAAAATYt0JBBNhfZ0fkGAPhZ1eEmLRhBIiUMgQQ+3RgKJA0GDfhgAD46CAAAAQcYGC2ZBx0YGAQBJx0QkEAAAAABBgDwkFHU1TYt8JCBNhf90K0nHRCQgAAAAAEyJ/+hV4wEASYlEJBhJjX8QSYt3GOhzRAAATIn/6Jv1DgBmQYN+BgJyN0mLRgjrNUiLQxjHAAYAAABIi0MYDxBDCA8RQAgxwEiDxAhbQVxBXkFfw0yJ9+gBtwEATYnm6xNJjUYITIkgTIn36J33AQBBiEYBSInfTIn26K7u//+wAevFZi4PH4QAAAAAAFNIifvod/3//0iLeyBIi0cQSIlDIOi2tgEASInfvgYAAABb6SgWAAAPH4QAAAAAAEFWU1BIifvoRP3//0iLeyBIi0cQSIlDIOiDtgEASInfvgYAAADo9hUAAEyLcyBNhfZ0IkmDfhAAdChIi0MYxwAGAAAASItDGA8QQwgPEUAIRTH261VIx0MgAAAAAEUx9utISMdDIAAAAABJx0YQAAAAAEGAPhR1MkmLXiBIhdt0KUnHRiAAAAAASInf6A/iAQBJiUYYSI17EEiLcxjoLkMAAEiJ3+hW9A4ATInwSIPECFtBXsNmLg8fhAAAAAAAkIoPgPkCdCBIifiA+QV1F2aDeAYCchBIi0AISIsIMcCAOQJID0XBwzHAw2YPH0QAAFVBVlNIifuKBzwCdG48BXVCZoN7BgJyO0yLcwhJiz6APwJ0V+iHtQEASccGAAAAAA+3QwZmg/gCdUlJi24IScdGCAAAAABIid/oYrUBAEiJ6+soD7drAkiJ3+hRtQEAvygAAADoh/MOAEiJw0iJx74CAAAAieroha8BAEiJ2FtBXl3Dg8D/ZolDBkmNdggPt9BIweIDTIn36NP8DgDr3JBIifiAPwV0NA+3SAKD4QGJCooIgPkEdDmA+QN1PscGAQAAAEiDwBjDDx+EAAAAAABIi0AISIsAgDgFdcwPt0gGZoXJdMNmg/kBdeVIg8AI6+OLSBiJDkiLQCDDxwYAAAAAMcDDZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7FgBAABIiftkSIsEJSgAAABIiYQkUAEAAA9XwA8phCRAAQAADymEJDABAABFMe3rCg8fAEiDwwhIixsPtgM8BXUlQYP9A38PSWPFQYPFAUiJnMQwAQAAZoN7BgJy1kiLWwhIixvr1DwDdFU8BHVbi0sYicgp8H4yg8H/OfEPhb0CAABIi3sgSGPGiyyH6NL0DgBIx0MgAAAAAIlrGMYDA0WF7X8u6bkCAABIi3sgSIX/dAXorPQOAEjHQyAAAAAAx0MYAAAAAMYDAkWF7Q+OkAIAAEiNXCQwRYnuSYPGAUGDxf9MjT0yaw8ASYPHEEiNBZ9qDwBIg8AISIlEJAhMiTwk60lMieNMiefoJQMPAEiNfCQoSIt0JAjoJgMPAEiNvCSYAAAA6CkDDwBIx0UIAAAAAMZFAAJMizwkSYPG/0GDxf9Jg/4BD44WAgAARInoSIusxDABAABmg30GAnIVTItlCOsTZi4PH4QAAAAAAA8fRAAATI1lCEmLPCSAPwJ1uugOswEASccEJAAAAAAPt0UGZoP4Ag+DWAEAAMZEJCAASI0NDGoPAEiNQRhIiUQkKEiNQUBIiYQkmAAAAEiNvCSYAAAASIne6EcCDwBIx4QkIAEAAAAAAADHhCQoAQAA/////0iNBVlpDwBIjUgYSIlMJBhIiUwkKEiDwEBIiUQkEEiJhCSYAAAASYncSInf6A8CDwBMiXwkMEiNXCQoD1fADxFDWA8RQ0jHhCSQAAAAEAAAALofAAAASInfSI01Gifu/+irzvv/ugEAAABIicdIjTUEJ+7/6JfO+/9Iice+TgMAAOh6+A4AugIAAABIicdIjTUcQqH/6HbO+/+6CgAAAEiJ30iNNZfBs/7oYs77/w+3dQZIicfoRvgOAIB8JCAAdQpIjXwkIOil4v//SItEJBhIiUQkKEiLRCQQSImEJJgAAABMiXwkMPZEJHABD4Qu/v//SIu8JIAAAADoEfAOAOkc/v//Zi4PH4QAAAAAAGaQdSpNi3wkCEnHRCQIAAAAAEiJ70yJ/ui1wQEATIn/TIs8JOh5sQEA6Rv+//+DwP9miUUGSY10JAgPt9BIweIDTInn6Bn5DgDp+/3//4lDGEiLeyBIY85IjTSPSGPQSMHiAuj6+A4ARYXtD49w/f//ZEiLBCUoAAAASDuEJFABAAB1EkiBxFgBAABbQVxBXUFeQV9dw+i38Q4ADx+AAAAAAFVBV0FWQVVBVFNIgex4AQAAQYnXZEiLBCUoAAAASImEJHABAABIiXwkWIl0JFQPV8APKUQkMEjHRCRAAAAAAEiNfCQwSI10JFhIjVQkVOjtVAAATI2kJNgAAABMjTUmaA8ASYPGEEiNBZNnDwBIg8AISIlEJCBMiXQkCESJfCQc6x5mLg8fhAAAAAAADx9AAEgpyEjB6ANp0KuqqqqJVfhIi2wkOEiNXeBMi23gSItN6Ek5zQ+EQgMAAEhjRfhMKelIwekDacmrqqqqOch9UUiNBEBIjTTFCAAAAEwB7kiNFMUQAAAATAHqSDtsJEAPg+wCAABIiwaLCkiJRQCJTQgPV8APEUUMDxFFGEiDRCQ4MOuNZi4PH4QAAAAAAA8fAIN92AAPjsUCAABFMfYx2+sYZi4PH4QAAAAAAA8fRAAAQTnGD42JAgAASItF0EljzkiNFMhJO1UIcztIY9tIweEDZi4PH4QAAAAAAA8fRAAASIsSSIkU2EiDwwFIi0XQSI0UCEiDwghBg8YBSIPBCEk7VQhy24tN3I1R/4P6AnNQD1fADylEJGBJi0UASIlEJGBJi30IQYt1FESJ+ujvugEASIlEJGhIjXwkYL4CAAAARIn66Ji6AQBIi03QSGPTg8MBSIkE0UUDdRDpmAEAAJCD+QN1G0mLTQBIY9ODwwFIiQzQRQN1EOl7AQAADx9AAMZEJGAASI0NBGYPAEiNQRhIiUQkaEiNQUBIiYQk2AAAAEyJ50yNfCRwTIn+6D/+DgBIx4QkYAEAAAAAAADHhCRoAQAA/////0iNBVFlDwBIjUgYSIlMJBBIiUwkaEiDwEBIiUQkKEiJhCTYAAAATIn/6Ar+DgBMi2QkCEyJZCRwD1fATI18JGhBDxFHWEEPEUdIx4Qk0AAAABAAAAC6HwAAAEyJ/0iNNQ4j7v/on8r7/7oBAAAASInHSI01+CLu/+iLyvv/SInHvtADAADobvQOALoCAAAASInHSI01ED6h/+hqyvv/ug8AAABMif9IjTVQQrD/6FbK+/+LddxIicfoO/QOAIB8JGAAdQpIjXwkYOia3v//SItEJBBIiUQkaEiLRCQoSImEJNgAAABMiWQkcPaEJLAAAAABdA1Ii7wkwAAAAOgH7A4ASI18JHDoPf0OAEiNfCRoSIt0JCDoPv0OAEyNpCTYAAAATInn6D79DgBEi3wkHEmDxRiLRdhMO23oD4Wo/f//QTnGD42f/f//TWP2SGPbZg8fhAAAAAAASItF0EqLDPBJg8YBSIkM2EiDwwFIY0XYSTnGfOPpbv3//0iNReBMiyhMi3QkCOsRSI18JDDoVlEAAOmx/P//MdtMiW3oiV3YSI1d4ItF3I1IAYlN3EiD+AMPh6wAAABIjQ0uwPH/SGMEgUgByP/gSIt90It12EiJ2eiSAgAA6fABAABIi33Qi3XYRIn6SInZ6BsHAADp2QEAAEyLdCQwSItcJDhIidhMKfBEi23YSIP4MA+E3QEAAEiLe+BIhf90CUiJe+jo5uoOAEiNQ9BIiUQkOEhjQ8hIi0uwSI0EQESJbMEUSItEJDiDQPgBTIt0JAjp+fv//0iLfdCLddhIidnoqgQAAOloAQAAxkQkYABIjQ1ZYw8ASI1BGEiJRCRoSI1BQEiJhCTYAAAASI28JNgAAABIjVwkcEiJ3uiP+w4ASMeEJGABAAAAAAAAx4QkaAEAAP////9IjQWhYg8ASI1IGEiJTCQQSIlMJGhMjWhATImsJNgAAABIid/oX/sOAEyJdCRwD1fASI1EJGgPEUBYDxFASMeEJNAAAAAQAAAAuh8AAABIjVwkaEiJ30iNNWUg7v/o9sf7/7oBAAAASInHSI01TyDu/+jix/v/SInHvvcDAADoxfEOALoCAAAASInHSI01Zzuh/+jBx/v/ug8AAABIid9IjTWnP7D/6K3H+/+LddxIicfokvEOAIB8JGAAdQpIjXwkYOjx2///SItEJBBIiUQkaEyJrCTYAAAATIl0JHD2hCSwAAAAAXQNSIu8JMAAAADoY+kOAEiNfCRw6Jn6DgBIjXwkaEiLdCQg6Jr6DgBIjbwk2AAAAOid+g4ASItN4EiLRehIOcEPhFz6//8x0oN93AMPhV36///pS/r//02F9nRFTDnzdRlMiffrMWYuDx+EAAAAAABmkEiJ60w59XQYSI1r0EiLe+BIhf9060iJe+jo4ugOAOvgSIt8JDBMiXQkOOjR6A4AZEiLBCUoAAAASDuEJHABAAB1FUSJ6EiBxHgBAABbQVxBXUFeQV9dw+j06g4ADx9AAFVBV0FWQVVBVFNIg+xYZEiLBCUoAAAASIlEJFCF9g+IVwIAAEmJzkiJ+0GJ8IPGAUUx/zHSRTHbMf9FMe1IiUwkKEiJdCQYTIlEJBDrH0GJw0yJy02J1WYPH4QAAAAAAEmDxwFJOfcPhA4CAABNOcdzPk6LJPvrEA8fhAAAAAAASYPECE2LJCRBD7YEJDwFdS9BD7dEJAZmhcB0PWaD+AF03k2LZCQITYskJOvbDx8AMckx7UUx5OmUAAAADx9AAEEPt2wkAjwEdBw8A3URSYPEGLkBAAAA6xdBD7dsJAIxyUUx5OsKQYtMJBhNi2QkIIPlATnqdVlFhdt+SIXJfkRNiepJidlIiUwkCInJRIndMcBmLg8fhAAAAAAADx9AAIsch0E7HIQPhTEBAABIg8ABSDnoD4MU////SDnIcuHpCv///4nVZi4PH4QAAAAAAESJ6Ek5xw+E6QAAAEGNRQFJOccPhNwAAACJLCRIiUwkCEjHRCRIAAAAAEiJfCQgRIneiVQkBESJ3ehytQEASIlEJEhMiWwkME1j9U05934oTY1uAWYuDx+EAAAAAABmkEqLfOv4ie7o5PP//0SJ6EmDxQFMOfh16EqNBPNIiUQkQESJ+UyLbCQwRCnpiUwkPEyLdCQoSYtWCEk7VhBzIUiLdCRISIkySIlCCIlKEMdCFP////9Jg0YIGOsbDx9AAEyJ90iNdCRISI1UJEBIjUwkPOgZTgAASIt0JBhMi0QkEEiLfCQgi1QkBEGJ60iLTCQIiywkTTnHD4MS/v//RYn9TInnQYnLierpAv7//4nVhcBMictNidVIi0wkCA+E3f7//0GJw+nl/f//ZEiLBCUoAAAASDtEJFB1D0iDxFhbQVxBXUFeQV9dw+hR6A4AkFVBV0FWQVVBVFNIg+w4ZEiLBCUoAAAASIlEJDCF9g+IrAEAAEiJzUiJ+0iJ8InBg8ABSIlEJBBFMfZFMeRFMf9IiQwkSIlsJAjrOQ8fRAAASInvSI10JChIjVQkIEiNTCQc6DlNAABIiwwkSTnORQ9C/k2J7EmDxgFMO3QkEA+ETAEAAE2J5Uk5zg+DpAAAAE6LLPNBikUAPAJ0KzwFdSBmQYN9BgJyGEmLRQhIiwCAOAJBvQAAAABMD0XoDx9AAE2F5HUK62lFMe1NheR0YUGKBCSNSPSA+QlzFUyJ50yJ7uhqtwEAhMBIiwwkdYfrRDwKdTxBi0QkHEE7RCQYSIsMJHUwZkGDfCQGAnIHSYtEJAjrBUmNRCQISIsAD7YASIP4FHcLuQgwEABID6PBcqtIiwwkRIn4STnGD4Qr////QY1HAUk5xg+EHv///0jHRCQoAAAAAEyJ5+gSpAEASIlEJChNY+dNOeZ+H0mNbCQBSIt86/jodvD//0iJROv4iehIg8UBTDnwdeZKjQTjSIlEJCBEifFEKfmJTCQcSItsJAhIi1UISDtVEA+DoP7//0iLdCQoSIkySIlCCIlKEMdCFP////9Ig0UIGOmX/v//ZEiLBCUoAAAASDtEJDB1D0iDxDhbQVxBXUFeQV9dw+hc5g4AZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7MgBAACJVCQEZEiLBCUoAAAASImEJMABAACF9g+IRAQAAEmJzkGJ9UmJ/InzQYPFATHtTI28JIAAAABIjQXaXA8ASIPAEEiJRCQgSI0FQlwPAEiDwAhIiUQkSDHAMdJIiUwkMEyJbCQQSIlcJAjrXQ8fQABMifdIjbQksAAAAEiNVCRoSI1MJGToBksAAEyLbCQQSItcJAhIi7QkmAAAAEiNvCSQAAAA6BcyAABIi1QkGEiLdCRASDndD0LVSIPFAUiJ8Ew57Q+EmQMAAEg53XMySYs07EiFwHQsigiA+RR0BYD5A3Ugig6A+QN0BYD5FHUUSInG68VmLg8fhAAAAAAAZpBIicaJ0Eg5xXSpjUIBSDnFdKFIiXQkQA9XwA8phCSQAAAADymEJIAAAABIx4QkoAAAAAAAAABMif9IidPor8IBAEiJXCQYSGPDSYnFSIlsJChIicFIiUQkOEg5xQ+PqwAAAEjHhCSwAAAAAAAAAEyJ/+ga0AEASInHi3QkBOj+swEASImEJLAAAABIi0wkOEmNDMxIiUwkaEiLbCQoieorVCQYiVQkZEyLdCQwSYt2CEk7dhAPg7b+//9IiQZIiU4IiVYQx0YU/////0mDRggY6bX+//9mLg8fhAAAAAAAkEGLVhhBD7dOAkyJ/4nW6J0CAABMiffolaMBAEmDxQFEiehIO0QkKA+EVf///0+LNOxBigY8A3TIPBR1REmLbhiDfRAAdM1Ii10IZg8fRAAAizOLUwRMif/o08EBAEhjRRBIweADSANFCEiDwwhIOcN13uufZi4PH4QAAAAAAGaQTInjxoQksAAAAABIjQ0+Wg8ASI1BGEiJhCS4AAAASI1BQEiJhCQoAQAASI28JCgBAABIjawkwAAAAEiJ7uhu8g4ASMeEJLABAAAAAAAAx4QkuAEAAP////9IjQWAWQ8ASI1IGEiJTCRYSImMJLgAAABIg8BASIlEJFBIiYQkKAEAAEiJ7+g28g4ASItEJCBIiYQkwAAAAEiNrCS4AAAAD1fADxFFWA8RRUjHhCQgAQAAEAAAALofAAAASInvSI01Nhfu/+jHvvv/ugEAAABIicdIjTUgF+7/6LO++/9Iice+ngQAAOiW6A4AugIAAABIicdIjTU4MqH/6JK++/+6FAAAAEiJ70iNNYFcqP/ofr77/0EPtjZIicfoYugOALoBAAAASInHSI01l06v/uhevvv/SYnESI18JGhMifbojhgCAA+2VCRo9sIBdAxIi3QkeEiLVCRw6whI0epIjXQkaUyJ5+govvv/9kQkaAF0CkiLfCR46BfgDgCAvCSwAAAAAEmJ3HUNSI28JLAAAADoXdL//0iLRCRYSImEJLgAAABIi0QkUEiJhCQoAQAASItEJCBIiYQkwAAAAPaEJAABAAABdA1Ii7wkEAEAAOi/3w4ASI28JMAAAADo8vAOAEiNvCS4AAAASIt0JEjo8PAOAEiNvCQoAQAA6PPwDgDpkf3//2RIiwQlKAAAAEg7hCTAAQAAdRJIgcTIAQAAW0FcQV1BXkFfXcPotOEOAA8fQABVQVZTic2J00mJ/onIJQQIAACD+AR0MYP+Cn8sg/sKfCeD/gl/E0yJ97oJAAAAQPbFAXUz6Ee/AQCD+wt8NUyJ974LAAAA6wNMifeJ2kD2xQF1CVtBXl3pJL8BADHJW0FeXelpAgAAMcnoYgIAAIP7C33LW0FeXcMPH4QAAAAAAFVBV0FWQVVBVFNIg+woQYn3SIn7TIt3IE2F9nQXQYoOgPkVdhcxwEUx5E2F9nVT6aYBAABFMeTpngEAAEyJ8EUx5GYuDx+EAAAAAAAPH0AAD7bRuQEAAABEOfp1BA+3SAZBAcxIi0AQSIXAD4ReAQAAD7YIgPkVdtdNhfYPhFgBAABJOUYQD4SkAQAARInnSMHnA+go3g4AQYoWgPoVD4dCAQAASIlcJAhIicFIg8H4SIlMJBBEieNEiXwkBEiJRCQYZi4PH4QAAAAAAA8fQAAPtspJi3YQRDn5SIl0JCB1H0EPt24GSIP9AnJ0TYtuCEiF7XV06aQAAABmDx9EAABJx0YQAAAAAID6FHU4TYtuIE2F7XQvScdGIAAAAABMie9IicXoV8sBAEmJRhhJjX0QSYt1GOh2LAAATInv6J7dDgBIiehIY8uDw/9MiXTI+OteZi4PH4QAAAAAAA8fQABNjW4ISIXtdDVIY8NIi0wkEEyNPMFIg8UBDx+AAAAAAEmLfO3w6MacAQBJiQeDw/9Jg8f4SIPF/0iD/QF/4kyJ9+jangEARIt8JARIi0QkGEiLbCQgSIXtD4SBAAAAilUASYnugPoVD4YD////63IxwE2F9g+FqP7//0SJ50jB5wPo2twOADHtiwtEif9JicdIicZEieJBuAEAAADoT6YBAEmJ3kiJw0iJx+gh3wEAiEMBSIlrEEmJXiBMif9Ig8QoW0FcQV1BXkFfXemw3A4ASIPEKFtBXEFdQV5BX13DMe1Ii1wkCOugDx+EAAAAAABVQVdBVkFVQVRTSIHsKAEAAGRIiwQlKAAAAEiJhCQgAQAAg/kLD4xcAQAAxkQkEABMjXQkGEiNvCSIAAAATI1kJCBIjQUHVQ8ASI1IGEiJTCQYSIPAQEiJhCSIAAAATInm6ErtDgBIx4QkEAEAAAAAAADHhCQYAQAA/////0iNHVxUDwBMjXsYTIl8JBhIg8NASImcJIgAAABMiefoH+0OAEiNLRBVDwBIg8UQSIlsJCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTUqEu7/uh8AAABMiffos7n7/0iNNRQS7v+6AQAAAEiJx+ifufv/SInHvl8BAADoguMOAEiNNSwtof+6AgAAAEiJx+h+ufv/SI019vKx/rohAAAATIn36Gq5+/+AfCQQAHUKSI18JBDouc3//0yJfCQYSImcJIgAAABIiWwkIPZEJGABdApIi3wkcOg22w4ATInn6G7sDgBIjTXHUw8ASIPGCEyJ9+hr7A4ASI28JIgAAADobuwOAOlGAQAAQYnPidWJ80iJPCToGbsBAITAD4QuAQAAOesPjyYBAABIjQWOyfH/TGMgRYXkD44TAQAAS40EZEjB4AJIAwVvlQ8ASIlEJAhBg8cBSI09B7nx/0Ux7etGid6D5gGDxv+JwcHpHwHBg+H+iccpzzHSg/8BD5TCSIs8JAHCAd5Eifno9P3//0GLRgSDwAFIjT3GuPH/icM56A+PqQAAAESJ4UmJ/useDx9AAI1yASnxOdhBD0/1SI0Edk2NNIYPT8qFyX4micrR6kiNNFJBiwS2Odh/1kE5XLYEfM9NjTS2OcN8sesYDx9EAABMO3QkCHNWTYX2dFFBiwY5w3yXQYtGBEGLdgg56A9NxYP+/w+ERf///4nyg/4BSIs8JA+FWP///4nZwekfAdmD4f6J2inKMfaD+gFAD5TG996JwvfSg+IB6TP///9kSIsEJSgAAABIO4QkIAEAAHUSSIHEKAEAAFtBXEFdQV5BX13D6OnbDgBmDx+EAAAAAABVQVdBVkFVQVRTUECE9nkNSYn+TItnCEmD/AJzFDHbSInYSIPECFtBXEFdQV5BX13DTYsuMdtBgH0AXHXiSI0FnLHx/4sohe1+1UiNHa9TDwDrF2YuDx+EAAAAAAAPHwBIg8MwSIPF/3SzTIs7TYX/dO5Mif/oFt4OAEiD+AJ14E0573QLQQ+3B2ZBO0UAddBJg8UCTYkuSYPE/k2JZgjpe////2YuDx+EAAAAAABmkFVBV0FWQVVBVFNIg+xYZEiLBCUoAAAASIlEJFC4AgAAAPfGAAQAAA+EnAIAAEiJy0iJ/UiLTwhIg/kCD4KIAgAASIt9AIA/XA+FewIAAEmJ1sdEJEwAAAAARA++bwFEiWwkTESJ6oDi37gCAAAAgPpQD4VSAgAAQYn3RTHkQYD9UA+VRCQQDxBFAA8pRCQwSIPHAg9XwA8pRCQgSIl9AEiDwf5IiU0ISIP5BL4EAAAAD0Lx6JhCAACFwHRFSIt1AEiNfCRM6PZAAACLTCRMgfkAABEAfBDHRCRM/f8AAEG9/f8AAOsbg/gBD4UnAgAAQb39/wAAgfn9/wAAD4UVAgAAxwMMAAAAD1fADxFDCESJ6UiJXCQYg/l7dWxIie++fQAAADHS6FYOAgBIg/j/D4S0AQAASYnFSItFAEiJRCQgTIlsJChIicNMAehIg8ABTInpSIPBAUiJRQBIKU0ISI18JCBIi3QkGOhDAgAAicG4AQAAAITJD4RNAQAASItMJDBIi0UA6yBIi0wkMEiNUQJIi0UASYnFSSnVSInTSIlUJCBMiWwkKEgpyIpMJBBBiMxDjRQkg8L/SIlEJDhNhe10XoA7XnUU99pIg8MBSIlcJCBJg8X/TIlsJChJg/0DdUJIjS34tA8ASI0Fku6x/kiJ2Ug5ww+EowAAAEiJ2EiJ2Q+3ADVBbgAAD7ZLAoPxeUG9AwAAAGYJwXUI6X4AAABFMe2JVCQMTIl0JBBIjQUZPPL/RIswRYX2fnVIjS1uWw8A6xZmLg8fhAAAAAAAZpBIg8UwSYPG/3RWTItlAE2F5HQPTInn6HXbDgBMOeh14OsHMcBMOeh110k53HQXTYXtdBJIid5MiedMierov9kOAIXAdbtMi3QkEItUJAxMifdIie5Eifno1AEAADHA6xlIi1wkGMcDBAAAAA8oRCQwDxFDCLgBAAAAZEiLDCUoAAAASDtMJFB1UkiDxFhbQVxBXUFeQV9dw0iNfCQwSItcJBhIid7otgAAAInBuAEAAACEyXTExwMEAAAADyhEJDAPEUMI67NIY9BIAVUASClVCIXAD4Xo/f//65noANgOAEFXQVZTSYnWSInzSYn/SIs+SItGCEiD+AS+BAAAAA9C8Oj6PwAAhcB0LEiLM0yJ/+hbPgAAQYsPgfkAABEAfAlBxwf9/wAA6w2D+AF1IoH5/f8AAHUaQccGDAAAAA9XwEEPEUYIuP////9bQV5BX8NIY8hIAQtIKUsI6+4PH0AAVUFXQVZBVFNIg+wQSYn2ZEiLBCUoAAAASIlEJAhIix9Ii28Ix0QkBAAAAABMjXwkBOsaZi4PH4QAAAAAAA8fAEhjyEgBy0gpzYXAeFdIhe1BD5TEdE5Ig/0EvgQAAAAPQvVIid/oNj8AAIXAdCRMif9Iid7olz0AAItMJASB+f//EAB/DYP4AXW2gfn9/wAAda5BxwYMAAAAD1fAQQ8RRghFMeRkSIsEJSgAAABIO0QkCHUQRIngSIPEEFtBXEFeQV9dw+i31g4ADx+AAAAAAFVBV0FWQVRTSIPsMEGJzEiJ80mJ/mRIiwQlKAAAAEiJRCQog/oBdXCDexgAficx7UiLQxAPtzSoD7dUqAJMifdEieHouPT//0iDxQFIY0MYSDnFfNuDeygAD466AQAAMe1mLg8fhAAAAAAADx9EAABIi0MgizToi1ToBEyJ90SJ4eh69P//SIPFAUhjQyhIOcV83emBAQAAQfbEAXVZi0MYhcAPjhABAABIi0sQMe0x9uslZi4PH4QAAAAAAA8fAA+3dKkCg8YBSIPFAUhj0Eg51Q+N4wAAAA+3FKk51nPgg8L/TIn3RInh6BL0//9Ii0sQi0MY68kPV8APKUQkEA8pBCRIx0QkIAAAAABIiefoTLMBAIN7GAB+KzHtSYnnkEiLQxAPtzSoD7dUqAJMif9EieHoyPP//0iDxQFIY0MYSDnFfNuDeygAfigx7UmJ50iLQyCLNOiLVOgETIn/RInh6Jrz//9Ig8UBSGNDKEg5xXzdQYHkBAgAAEGD/AR0EkiJ574KAAAAugoAAADo7rIBAEiJ40iJ3+iTuwEATIn3SIne6Oi2AQBIjXwkEEiLdCQY6HkhAADrYDH2i0MohcB+R0iLSyAx7esZZg8fRAAAi1TpBI1yAUiDxQFIY/hIOf19HosU6TnWfeaDwv9MifdEieHoCPP//0iLSyCLQyjrz4H6//8QAH0QTIn3uv//EABEieHo5/L//2RIiwQlKAAAAEg7RCQodQ1Ig8QwW0FcQV5BX13D6HXUDgAPH0QAAEFXQVZTTYnGSYnXSItWCEiF0nQhSInzSIn4SIs+gD9cdR+LSCxIid9Mif5MifJbQV5BX+t7QccGBQAAAA8QAetLSIP6BL4EAAAAD0Ly6D48AACFwHQsSIszTIn/6J86AABBiw+B+QAAEQB8CUHHB/3/AADrDYP4AXUfgfn9/wAAdRdBxwYMAAAAD1fAQQ8RRggxwFtBXkFfw0hjyEgBC0gpSwiFwA+ZwOvpZg8fRAAAVUFXQVZBVUFUU0iD7BhJiddkSIsEJSgAAABIiUQkEEiLRwhIhcB0HEiJ+0yLL0GAfQBcdQ9Ig/gBdz1BxwcHAAAA6wdBxwcBAAAAD1fAQQ8RRwgxwGRIiwwlKAAAAEg7TCQQD4UrAwAASIPEGFtBXEFdQV5BX13Dic1JifbHRCQMAAAAAMdEJAgAAAAASY19AUiJO0iDwP9IiUMISIP4BL4EAAAAD0Lw6DM7AACFwHQzSIszSI18JAzokjkAAExjZCQMSYH8AAARAHwKx0QkDP3/AADrDoP4AXUVQYH8/f8AAHUMQccHDAAAAOlb////SGPwSIsTSAHySIkTSItLCEgp8UiJSwiFwA+IRP///0WNRCTQQYP4SHcmSI01Q6Xx/0pjPIZIAff/50iFyQ+EpQAAAIoCJPg8MHRH6ZgAAABBg/x/D4+OAAAA6JHhDgBIiwBC9kRgAQx1fkWJJum3AAAAQccGDQAAAOmrAAAAQccGCQAAAOmfAAAARTHASIXJdFEPvjKJdCQMifAk+DwwdUJGjQTGQYPA0EiNcgFIiTNIichIg8D/SIlDCHQmD742iXQkDInwJPg8MHUXRo0ExkGDwNBIg8ICSIkTSIPB/kiJSwhBOeh+GkHHBwIAAABIiwNMKehNiW8ISYlHEOlh/v//RYkG6yJBxwYHAAAA6xlBxwYMAAAA6xBBxwYKAAAA6wdBxwYLAAAAsAHpNf7//0iFyXSzSI18JAxIid5Mifroi/n//4XAD4gW/v//g3wkDHsPhZkAAABIjXwkDEiJ3kyJ+uho+f//MdKFwA+I8f3//0Ux5IkUJIt8JAyNR9CD+ApyII1Hv4P4JQ+H+QAAAEi5PwAAAD8AAABID6PBD4PlAAAAQcHkBESJZCQE6H4aAABBicREA2QkBEE57A+PJf///0iDewgAD4Qa////SI18JAxIid5Mifro8vj//4nBixQkg8L/McCFyXmJ6XT9//9Ig3sIAA+E7P7//0iNfCQISIneTIn66MT4//+FwA+IT/3//4t8JAyNR9CD+ApyII1Hv4P4JQ+HvP7//0i5PwAAAD8AAABID6PBD4Oo/v//i0QkCI1I0IP5CnIgg8C/g/glD4eQ/v//SLk/AAAAPwAAAEgPo8EPg3z+///ovxkAAInDweMEi3wkCOixGQAAAdhBiQbpoP7//4P/fQ+FVv7//4M8JAAPhEz+//9FiSbphf7//+gn0A4ADx+AAAAAAFVBV0FWQVVBVFNQTYnGSYnMSYnXSInzSYn9SIsu6I77//+EwHRrSItDCEiD+AJyDkiLC4A5LXUGgHkBXXULQYsHQYlHBLAB60pIg8EBSIkLSIPA/0iJQwhJjVcETInvSIneTInhTYnw6EP7//+EwHQgQYtPBLABQTsPfRdBxwYEAAAASIsDSCnoSYluCEmJRhAxwEiDxAhbQVxBXUFeQV9dw2YuDx+EAAAAAAAPH0AAVUFXQVZBVUFUU0iD7HhJic1kSIsEJSgAAABIiUQkcA8QBg8pRCRgSIN+CAAPhKsAAABJifZIiwaAOFsPhZwAAABJif9IiVQkUL8oAAAA6K3MDgBIicO6/j8AAEEjF0iJx74UAAAA6KWIAQC/KAAAAOiLzA4ASInFSInH6KCsAQBIiVwkCEiJayBJiw5Ji0YISI1RAUmJFkiJw0iDw/9JiV4IdE6AOl51S0iDwQJJiQ5Ig8D+SYlGCLkECAAAQSMPsgFIiVQkIIP5BA+FuAMAAEiJw0iF23Us6coDAABBx0UAAQAAAA9XwEEPEUUI6dEDAAAx2zHASIlEJCBIhdsPhKMDAABIjQXhpPH/iwBIiUQkMEiNBVek8f+LAEiJRCQ4sQFMiWwkGGYPH4QAAAAAAEmLLopFAPbBAXUIPF0PhBADAAA8LQ+VwgjR9sEBdGFIg/sDchs8W3UXgH0BOnURSIP7AnwLSIP7BA+N4wEAAJBIg/sDclU8XHVRikUBDCA8cHVIQYs3SItEJAhIi1AgTIn3TInp6Kby//+FwA+EvAAAAIP4AXUk6Q0DAAAPH0AAQfZHAQJ1FEiD+wEPhCcDAACAfQFdD4UdAwAATYn9QYA/AHkcSYtGCEiJRCQQSIP4Ag+DiwAAAGYPH4QAAAAAAEjHRCRYAAAAAEmLHk2J70yJ70yJ9kiNVCRYSI1MJGBMi2wkGE2J6Ojk+P//hMAPhJUCAABJi0YISIP4AnISSYsOgDktdQqAeQFdD4XOAAAAi1QkWIlUJFyJ1kiLRCQISIt4IEGLD4PJBOhi6///SYteCDHJSIXbD4XD/v//6TUCAABNiz5BgD9cD4Vx////g3wkOAAPjmb///9Ii1wkOEiNLfpEDwDrFg8fhAAAAAAASIPFMEiDw/8PhEL///9Mi2UATYXkdOlMiefoYc8OAEiD+AJ12005/HQLQQ+3BCRmQTsHdctJg8cCTYk+SItEJBBIg8D+SYlGCEiLRCQISIt4IItVCE2J70GLTQBIie7ovPX//0yLbCQY6VD///9Ig8EBSYkOSIPA/0mJRghMif9MifZIjVQkXEiNTCRgTYno6Mv3//+EwA+EfAEAAIt0JFiLVCRcOfIPjf3+///pFgIAAEGLD4lMJCxIi0wkCEiLSSBIiUwkSEiNDCtIg8H+QbwEAAAA6x5mDx+EAAAAAABJjRQsSIPC/0mDxAFIOcoPh9v9//9CgHwl/jp140KAfCX/XXXbTIl8JECDfCQwAA+OfgEAAEyLfCQwTI0t70QPAOsbZi4PH4QAAAAAAA8fAEmDxTBJg8f/D4RVAQAASYt9AEiF/3QbSIl8JBBIi3wkEOgqzg4ASIt8JBBMOeB10OsHMcBMOeB1x0g573QUTYXkdA9Iie5MieLocswOAIXAda5MAeVJiS5MKeNJiV4IQYtVCEiLfCRITInui0wkLOh89P//TItsJBhMi3wkQOkL/v//SIPFAUmJLkiDw/9JiV4IgHwkIAB0DkiLRCQISIt4IOh5sQEASItEJAhIi0wkUEiJAbAB6z1Iie++CgAAALoKAAAA6KaoAQBJi14ISIXbD4Vd/P//QcdFAAUAAAAPKEQkYEEPEUUISIt8JAjo/YkBADHAZEiLDCUoAAAASDtMJHAPhcYAAABIg8R4W0FcQV1BXkFfXcNIg8UBSIPD/8dEJFgAAAAASIP7BL4EAAAAD0LzSInv6IQyAACFwHRISI18JFhIie7o4zAAAItMJFiB+QAAEQB8IsdEJFj9/wAA6yVIi0QkGMcABAAAAEiJaAhMiWAQ6W7///+D+AF1LIH5/f8AAHUkQcdFAAwAAAAPV8DpTP///0HHRQAEAAAASYsGSCnYSYldCOsahcAPiDX///9Bx0UABAAAAEmLDoPAAUmJTQhJiUUQ6Rr////ozMkOAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIgew4AQAASYn/ZEiLBCUoAAAASImEJDABAAAPEAYPKUQkEESLL0H3xQACAAAPhPAAAABIi2wkGEiD/QIPguEAAABIi0QkEIA4KA+F0wAAAIB4AT8PhckAAABIifNMiXwkCEyNeAJMiXwkEEiDxf5IiWwkGEiD/QMPgjcCAABBgD9QD4UtAgAAgHgDPA+FIwIAAEiNfCQQugIAAAC+PgAAAOhg/QEASIP4/w+EZQMAAEiJxUyLdCQQSY1GAkiNTf5IiUQkIEiJTCQoTIt8JAhJi3cYSI18JCDoWfH//4TAD4SlAQAASYPG/kiDxQNIjXwkIOj/AwAAhMAPhL4DAABIjXQkIEyJ/+h6zf//SQHuSIsDTIkzTCnwSAFDCLAB6WkBAADGRCQgAEyNdCQoSI28JJgAAABMjWwkMEiNBeU+DwBIjUgYSIlMJChIg8BASImEJJgAAABMie7oKNcOAEjHhCQgAQAAAAAAAMeEJCgBAAD/////SI0tOj4PAEyNZRhMiWQkKEiDxUBIiawkmAAAAEyJ7+j91g4ASI0d7j4PAEiDwxBIiVwkMA9XwA8RRCRwDxGEJIAAAADHhCSQAAAAEAAAAEiNNQX87f+6HwAAAEyJ9+iOo/v/SI017/vt/7oBAAAASInH6Hqj+/9Iice++wcAAOhdzQ4ASI01Bxeh/7oCAAAASInH6Fmj+/9IjTVTapP/uiYAAABMiffoRaP7/4B8JCAAdQpIjXwkIOiUt///TIlkJChIiawkmAAAAEiJXCQw9kQkcAF0DUiLvCSAAAAA6A7FDgBMie/oRtYOAEiNNZ89DwBIg8YITIn36EPWDgBIjbwkmAAAAOhG1g4ASYtHGMcAAQAAADHAZEiLDCUoAAAASDuMJDABAAAPhUwCAABIgcQ4AQAAW0FcQV1BXkFfXcPHRCQgAAAAAEiF7Q+EzAEAAMdEJAQAAAAARTH2Dx9EAABIi0QkCEyLYBhIg/0EvgQAAAAPQvVMif/o4y4AAIXAD4QEAQAASI18JCBMif7oPi0AAItMJCCB+QAAEQAPjd8AAACD+AF1DIH5/f8AAA+E1gAAAEhj0EkB10yJfCQQSCnVSIlsJBiFwA+IRv///4P5VH4pg8Grg/keD4c9AQAASI0VIprx/0hjBIpIAdD/4PZEJAQBdVtBg81A63SD+S0Phc0AAAD2RCQEAQ+FDAEAALABiUQkBEUx9kiF7Q+FPv///+n1AAAA9kQkBAF1LEGDzQjrPPZEJAQBdShBg80B6y/2RCQEAXUkQYHl7z8AAOsfQYHlvz8AAOsWQYHl9z8AAOsNQYHl/j8AAOsEQYPNEEG2AUiF7Q+F5P7//+mbAAAAx0QkIP3/AABBxwQkDAAAAA9XwEEPEUQkCOl1/v//SItsJAhIi3UYSInf6BDu//+EwA+EXP7//0iLRRjHAA0AAABIi0UYDxADDxFACOlC/v//g/kpdDmD+Tp1QL8oAAAA6OrCDgBIicVMi3wkCEGLF0iJx74WAAAA6OJ+AQDHRRj/////TIn/SInu6FC8///2RCQEAXRLRYT2dUZIi0wkCEiLQRjHAAsAAABIi0EYSIsLSItUJBBIKcpIiUgISIlQEOnN/f//SYtHGMcADQAAAEmLRxhMiXAISIloEOmy/f//SItEJAhEiSgPKEQkEA8RA7AB6Z39///owsQOAGaQTItPCE2FyXRXTIsHTInOSPfesAG/AQAAAOsdDx9EAABMOc8PksBIjQw+SIPBAUiDxwFIg/kBdCNBD7ZUOP+NStCA+Qpy2o1Kn4D5GnLSgPpfdM2Awr+A+hl2xTQBJAHDMcAkAcNmLg8fhAAAAAAAkEFXQVZBVUFUU0iD7BBJifZJif1kSIsEJSgAAABIiUQkCMdEJAQAAAAA9gYBdQ9mQccGAABJg30IAHUY61hJi0YQxgAAScdGCAAAAABJg30IAHRCMdtMjXwkBEmJ5A8fAMcEJAAAAABJi0UAD7YEGIkEJEyJ/0yJ5ugjKwAASGPQTIn3TIn+6FXHDgBIg8MBSTtdCHLLZEiLBCUoAAAASDtEJAh1DkiDxBBbQVxBXUFeQV/D6JjDDgAPH4QAAAAAAFVBV0FWQVVBVFNIgey4AAAAQYn0ZEiLBCUoAAAASImEJLAAAABIhdJMjbwkgAAAAEiJVCQISQ9E1w9XwA8phCSQAAAADymEJIAAAABIx0QkUAAAAACJdCRQDxAHDxFEJFhIiVQkEEiJVCRoSMdEJHAAAAAAuP//EAC5/wAAAEH2xCAPRMjHRCR4AAAAAIlMJHwPEAcPKUQkQA+E7AAAAL8YAAAA6HfADgBJicYPV8APEQBIx0AQAAAAAMeEJKAAAAAAAAAAZscAAABIg3wkSAB0VzHbSI2sJKAAAABMjWwkIGYuDx+EAAAAAAAPH0QAAMdEJCAAAAAASItEJEAPtgQYiUQkIEiJ70yJ7ujQKQAASGPQTIn3SInu6ALGDgBIg8MBSDtcJEhyx0iLTCQISI1BGEiFyUiNnCSYAAAASQ9Ez0gPRdhIi2kYSIXtdBf2RQABdAlIi30Q6OO/DgBIie/o278OAEyJM0EPtgaoAXQKSYtGCE2LdhDrB0mDxgFI0ehMiXQkQEiJRCRIQfbEAg+FkAkAAEiLdCRISIX2D4QZCgAASI0F5pfx/4sASIlEJBhMjbQkoAAAAEyNbCRQTI0lD5bx/zHbMe3rPjHSSIucJKAAAABIic1IKd1IiawkqAAAAA+2ykyJ74nGTIny6I2///+EwA+E+QkAAEiLdCRISIX2D4SzCQAASIt8JEAPvg+DwdyD+VgPh0QDAAC4BwAAAEljDIxMAeH/4UyJ7+gtvv//6WIEAADHRCQ8AAAAAA8oRCRADylEJCAPKYQkoAAAAEyLvCSoAAAATYX/D4QfCAAATIusJKAAAABBgH0Aew+FDAgAAE2J/EmDxP8PhP8HAABFD7Z1Aegj0A4ASIsAQvZEcAEID4TmBwAASYP8AnIWQYD+MHUQQQ+2TQL2REgBCA+FygcAAEmNV/4xyUUx5GYuDx+EAAAAAAAPH0QAAEGB/P/g9QUPj6UHAABIOcoPhJwHAABBD7b2Q408pESNJH5Bg8TQRQ+2dA0CSIPBAUL2RHABCHXIQYD+LA+FiQYAAEqNBClIg8ACSImEJKAAAABJKc9Jg8f+TIm8JKgAAABIOcoPhEgHAABBgHwNAn0PhQQHAAC5/////0G2fYlMJDxBgP59D4RfBgAA6SEHAABMie/oh8f//4TAD4UpAwAA6X4IAABMie/oYr3//+kXAwAATInv6AXG///pCgMAAItcJFD3wwACAAAPhDwCAABIg/4CD4IyAgAAgH8BPw+FKAIAAEyJ70iNdCRA6A/2//+EwA+FCgIAAOkmCAAAuAkAAADrQ0jHhCSgAAAAAAAAAEyJ70iNdCRATInySItMJBDoKvD//4TAD4T2BwAASIu0JKAAAABMie/oorb//+nAAQAAuAgAAAAPKEQkQA8phCSgAAAASI1PAUiJTCRASI1W/0iJVCRI9kQkUQIPhIn9//9IhdJ0KoA5P3UlSIPHAkiJfCRASIPG/kiJdCRIsgFIiflIhe0PhGH9///pHQgAADHSSIXtD4RR/f//6Q0IAABEi2QkUESJ5YPlEL8oAAAA6Iq8DgBIicPB7QKDxQ5IiceJ7kSJ4kyNJSaT8f/ofXgBAEyJ70iJ3unXAQAAi2wkUPfFAAEAAA+FNQEAAPfFAAIAAA+F3QEAAEiD/gIPglACAACKRwEMIDxwD4VDAgAAvygAAADoJbwOAEiJw4Hl/j8AAEiJx74UAAAAieroHXgBAL8oAAAA6AO8DgBIicVIicfoGJwBAEiJayCLdCRQSI18JEBIiepIi0wkEOge4///hcAPhMYBAACD+AIPhNkBAACD+AEPhdgBAADpUAcAAMeEJKAAAAAAAAAASIP+BLgEAAAAD0Pw6DMmAACFwA+ERgYAAEiLdCRATIn36I4kAACLtCSgAAAAgf7//xAAD48mBgAAg/gBdQyB/v3/AAAPhBUGAABIY8hIAUwkQEgpTCRIhcAPiCkGAABMie/orbj//zHtMdvpH/z///fDABAAAA+FhAAAAA9XwA8phCSgAAAATInvTIn26GLC///plwAAAEiD/gIPgicBAACKRwGJwYDJIID5YkyNtCSgAAAAD4Wo/v//Mds8Yg+Uw78oAAAA6Om6DgBJicSD8xFIiceJ3onq6Od2AQBMie9MieZMjSV+kfH/6FW0//9Ig0QkQAJIi3QkSEiDxv7rPb8oAAAA6Kq6DgBIicVIice+FgAAAIna6Kh2AQDHRRj/////TInvSInu6Ba0//9Ig0QkQAFIi3QkSEiDxv9IiXQkSDHtMdvpSfv//0iD/gJyd4pHATxQfyI8QQ+EtQEAADxDD4UT/v//TInvvg0AAADo/7j//+nCAQAAPFEPhN8BAAA8eg+F8f3//78oAAAA6CC6DgBIicNIice+EwAAAOmGAQAATInvSIne6JWz//8x7THbTI20JKAAAADpz/r//0iJ3+isewEARItkJFBFhOQPiekAAABMi3QkSEmD/gIPgtoAAABMi3wkQEGAP1wPhcsAAACDfCQYAA+OwAAAAEiLXCQYTI0tOTQPAOsVDx+AAAAAAEmDxTBIg8P/D4SdAAAASYttAEiF7XTpSInv6KG+DgBIg/gCddtMOf10Cg+3RQBmQTsHdcxJg8cCTIl8JEBJg8b+TIl0JEi/KAAAAOhQuQ4ASInDQYHk/j8AAEiJx74UAAAARIni6EZ1AQC/KAAAAOgsuQ4ASInFSInH6EGZAQBIiWsgQYtVCItMJFBIie9Mie7oyuT//0yNbCRQTInvSIne6Iqy///pdQIAAMeEJKAAAAAAAAAAi0wkfEiNfCRATI20JKAAAABMifZIi1QkEOh85///hMAPhJgDAACLtCSgAAAATI1sJFBMie/oELb//zHtMdtMjbwkgAAAAOkzAgAAvygAAADolbgOAEiJw0iJx74SAAAAierok3QBAEyJ70iJ3ugIsv//SINEJEACSIt0JEhIg8b+SIl0JEgx7THbTI20JKAAAADpM/n//0iDxwJIiXwkQEiDxv5IiXQkSEiJ9UyNtCSgAAAASIP9AXQeSIXtD4Tc/P//SIt8JECAP1x1EIB/AUV1Cun9AQAASIt8JEDHhCSgAAAAAAAAAEiD/QS4BAAAAA9D6Inu6H8iAACFwA+EkgIAAEiLdCRATIn36NogAACLtCSgAAAAgf7//xAAD49yAgAAg/gBdQyB/v3/AAAPhGECAABIY8hIAUwkQEgpTCRIhcAPiHUCAABMie/o+bT//0iLbCRISIP9AQ+FWv///+lz////So0EKUiDwAFI99FJAc9EieFEiWQkPEGA/n0PhccAAABIg8ABSImEJKAAAABJg8f/TIm8JKgAAABIi4QkoAAAAEiJRCRASIuEJKgAAABIiUQkSPZEJFECdRwxwEyNvCSAAAAATI20JKAAAABMjWwkUOnIAAAASItEJEhIhcBMjbwkgAAAAA+EmgAAAEiLTCRAgDk/D4WMAAAASIPBAUiJTCRASIPA/0iJRCRIsAHreEiNvCSgAAAASI10JDzoZAQAAITAdCJMi7wkqAAAAE2F/3QVSIuEJKAAAABEijBBgP59D4Q5////TI1sJFBMie++ewAAAOjss///SINEJEABSINEJEj/Me0x20yNvCSAAAAATI20JKAAAABMjSUZjfH/6Tv3//8xwEyNtCSgAAAATI1sJFBIhe0PheYBAABIi1wkIEiLbCRASCndSIlsJCiLVCQ8RA+2wEyJ70SJ5kiNTCQg6P66//+EwHWu6ekAAABIg8cCSIl8JEBIg8X+SIlsJEhIie7pifv//0iLdCRISIX2D4SJAAAAvQQAAABIjZwkoAAAAEyNdCRQZi4PH4QAAAAAAJDHhCSgAAAAAAAAAEiLfCRASIP+BA9D9ehEIAAAhcB0W0iLdCRASInf6KMeAACLtCSgAAAAgf7//xAAfz+D+AF1CIH+/f8AAHQySGPISAFMJEBIKUwkSIXAeEpMiffozrL//0iLdCRISIX2dZRIjXwkUOh6wP//SYnH6yxIi0wkCEiNQQhIhclMD0X5QccHDAAAAEiNjCSIAAAASA9EwQ9XwA8RAEUx/0iLbCRw6xJmkEyJ9+g4tQ4ASInf6NB2AQBIhe10LkiJ60iLbRBIx0MQAAAAAIA7FnXfTItzIE2F9nTWQfYGAXTISYt+EOj/tA4A671Ii5wkmAAAAEiF23QW9gMBdAlIi3sQ6OK0DgBIid/o2rQOAGRIiwQlKAAAAEg7hCSwAAAAdW1MifhIgcS4AAAAW0FcQV1BXkFfXcNIi0QkCEiFwEwPRfhBxwcKAAAASCnZSYlfCEmJTxDpQ////0iJ3+gndgEA6Tb///9Ii0QkCEiFwEwPRfhBxwcKAAAASItEJEBIKdhJiV8ISYlHEOkO////6KW2DgAPH0QAAFVBV0FWQVVBVFNIgewYAQAAiftkSIsEJSgAAABIiYQkEAEAAI1D0IP4Cg+CcgEAAI1Dv4P4BXcKg8PJidjpYAEAAI1Dn4P4BXcKg8OpidjpTgEAAMYEJABMjXQkCEiNfCR4TI18JBBIjQWiLA8ASI1IGEiJTCQISIPAQEiJRCR4TIn+6OjEDgBIx4QkAAEAAAAAAADHhCQIAQAA/////0yNJforDwBNjWwkGEyJbCQISYPEQEyJZCR4TIn/6L/EDgBIjS2wLA8ASIPFEEiJbCQQD1fADxFEJFAPEUQkYMdEJHAQAAAASI01zent/7ofAAAATIn36FaR+/9IjTW36e3/ugEAAABIicfoQpH7/0iJx76hBQAA6CW7DgBIjTXPBKH/ugIAAABIicfoIZH7/0iNNfg2n/+6DgAAAEyJ9+gNkfv/SInHid7o87oOAIA8JAB1CEiJ5+hVpf//TIlsJAhMiWQkeEiJbCQQ9kQkUAF0CkiLfCRg6NWyDgBMif/oDcQOAEiNNWYrDwBIg8YITIn36ArEDgBIjXwkeOgQxA4AMcBkSIsMJSgAAABIO4wkEAEAAHUSSIHEGAEAAFtBXEFdQV5BX13D6NS0DgAPH0AAQVdBVkFVQVRTTItnCE2F5HQiSYn2SYn/SIsfRA+2K+jMww4ASIsIQg+3FGn3wgAIAAB1DDHAW0FcQV1BXkFfw0mD/AJyEUGA/TB1Cw+2cwH2RHEBCHXdMcn3wgAIAAB0REmDxP9Ig8MBMckPH0QAAIH5/+D1BX+8QQ+21Y0MiY0MSoPB0EmJH02JZwhJg+wBchNED7YrSIsQSIPDAUL2RGoBCHXLQYkOsAHriszMzMxTSIn7SI0F7SsPAEiDwBBIiQfo+QAAAEiLWwhIhdt0EUiJ3+g4AwAASInfW+mfsQ4AW8PMzMzMzMzMzMzMzMzMQVZTUEiJ+0iNBaorDwBIg8AQSIkH6LYAAABMi3MITYX2dBBMiffo9QIAAEyJ9+hdsQ4ASInfSIPECFtBXulOsQ4AzMzMzMzMzMzMzMzMzMyJ8MPMzMzMzMzMzMzMzMzMSIX2dC1BVlNQSInzSYn+SIs26On///9Ii3MITIn36N3///9Iid9Ig8QIW0Fe6f6wDgDDzMzMzMzMzMzMzMzMzA8LzMzMzMzMzMzMzMzMzMyJ0MPMzMzMzMzMzMzMzMzMicjDzMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNIgewYAQAAZEiLBCUoAAAASImEJBABAABIi0cISIXAD4TyAQAASIN4KAAPhOcBAABJifzGBCQATI10JAhIjXwkeEyNfCQQSI0FKSkPAEiNSBhIiUwkCEiDwEBIiUQkeEyJ/uhvwQ4ASMeEJAABAAAAAAAAx4QkCAEAAP////9IjR2BKA8ATI1rGEyJbCQISIPDQEiJXCR4TIn/6EfBDgBIjS04KQ8ASIPFEEiJbCQQD1fADxFEJFAPEUQkYMdEJHAQAAAASI01JoGz/rojAAAATIn36N6N+/9IjTU/5u3/ugEAAABIicfoyo37/0iJx76XAAAA6K23DgBIjTVXAaH/ugIAAABIicfoqY37/0iNNaRM7P+6EAAAAEyJ9+iVjfv/gDwkAHUISInn6Oeh//9MiWwkCEiJXCR4SIlsJBD2RCRQAXQKSIt8JGDoZ68OAEyJ/+ifwA4ASI01+CcPAEiDxghMiffonMAOAEiNfCR46KLADgBmkEmLXCQISItTKEiF0g+EjwAAAEiLSwhIi0MgSAHCSIPC/0iJ1kjB7gdIizTxg+J/SMHiBUiLfBYYSIX/dBLo/q4OAEmLXCQISItLCEiLQyBIi1MQSItzKEiNfv9IiXsoSInXSCnPSIn5SMHhBEiDwf9Ihf9ID0TPSAHwSCnBSIPBAUiB+QABAAAPgnL///9Ii3r46KmuDgBIg0MQ+Olf////ZEiLBCUoAAAASDuEJBABAAB1EkiBxBgBAABbQVxBXUFeQV9dw+jFsA4AzMzMzMxBV0FWU0mJ/kiLXwhMi38QSMdHKAAAAABMifhIKdhIwfgDSIP4A3IwDx+EAAAAAABIizvoOK4OAEmLXghNi34QSIPDCEmJXghMifhIKdhIwfgDSIP4AnfYSIP4AXQNSIP4AnUQuIAAAADrBbhAAAAASYlGIEw5+3Q4Dx+AAAAAAEiLO+jorQ4ASIPDCEw5+3XvSYtGEEiJwUkrTgh0E0iDwfhIwekDSPfRSI0EyEmJRhBJiz5Ihf90CltBXkFf6a2tDgBbQV5BX8PMzMzMzMzMVUFXQVZBVUFUU0iB7CgBAACJTCQMQYnUSYn2SYn9ZEiLBCUoAAAASImEJCABAADorPz//02F9g+EagMAAEmLbQhIi0UISItNEEgpwUiJykjB4gRIg8L/SIXJSA9E0UiLTShIA00gSDnKdRRIie/ovQQAAEiLRQhIi00gSANNKEiJykjB6gdIiwTQg+F/SMHhBUyJNAjHRAgI/////0SJZAgM6y5mLg8fhAAAAAAAZpBIicpIweoHSIsE0IPhf0jB4QVMiTwIx0QICP////+JXAgMSMdECBgAAAAASINFKAHrHmYuDx+EAAAAAAAPH0AASI0UAUiDwhREiSKDRAEIAUmLRQhIi0goSItQCEiLQCBIjRwBSIPD/0iJ2EjB6AdMizTCg+N/SMHjBUmLLB5NjTweSYPHCEGDfB4I/3QiD7dNBoXJD4SWAAAAZoP5AQ+EnAAAAEiLRQjplwAAAA8fAEGLRRSNSP9BiU0UhcAPjhQBAADGRCQQAEGLVB4MSYtFAEyJ70iJ7kiNTCQQ/1AQQYlEHhCAfCQQAA+F/wAAAEHHBwAAAABJx0QeGAAAAAAPt30GSIX/dIZNjSQeSYPEGGaD/wEPhXQBAABJjQQeSIPAFOlwAQAAZg8fhAAAAAAARYsP62tmLg8fhAAAAAAAkEiNRQhFiw9BOcl9VIB8JAwAD4RJAQAARYXJD45AAQAAQY1J/0iLFMhKOxTID4UuAQAASYtEHhiLNIhJi0UATInv/1AgSYtMHhhJYxeJBJFBgwcB6bj+//8PH4QAAAAAAEGLVB4MQYtMHhBNi0QeGEmLRQBMie9Iie7/UBhBicRmg30GAnIrSYt8HhhIhf90IeiLrQ4A6xpBxkUQAUGLVB4MSYtFAEyJ70iJ7v9QKEGJxEmLXQhIi0MQSItLKEiNUf9IiVMoSInCSCtTCEiJ1kjB5gRIg8b/SIXSSA9E8kgDSyBIKc5Ig8YBSIH+AAEAAHIOSIt4+Oi1qg4ASINDEPhJi0UISItIKEiFyQ+E/QEAAEiLUAhIi0AgSAHISIPA/0iJwUjB6QdIiwzKg+B/SMHgBUiLVAEYSIXSD4TA/f//SGN0AQhIjRSy6br9//9IwecC6LmsDgBJiQQk6e79//9JY8lJi20ITIs8yEGLXB4QSItFCEiLTRBIKcFIicpIweIESIPC/0iFyUgPRNFIi00oSANNIEg5yg+FIv3//0iJ7+iaAQAASItFCEiLTSBIA00o6Qn9///GRCQQAEyNdCQYSI28JIgAAABMjWwkIEiNBZsiDwBIjUgYSIlMJBhIg8BASImEJIgAAABMie7o3roOAEjHhCQQAQAAAAAAAMeEJBgBAAD/////SI0d8CEPAEyNexhMiXwkGEiDw0BIiZwkiAAAAEyJ7+izug4ASI0tpCIPAEiDxRBIiWwkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNY96s/66IwAAAEyJ9+hHh/v/SI01qN/t/7oBAAAASInH6DOH+/9Iice+pAAAAOgWsQ4ASI01wPqg/7oCAAAASInH6BKH+/9IjTWzU6H/ugkAAABMiffo/ob7/4B8JBAAdQpIjXwkEOhNm///TIl8JBhIiZwkiAAAAEiJbCQg9kQkYAF0CkiLfCRw6MqoDgBMie/oAroOAEiNNVshDwBIg8YITIn36P+5DgBIjbwkiAAAAOgCug4AZEiLBCUoAAAASDuEJCABAAB1FUSJ4EiBxCgBAABbQVxBXUFeQV9dw+jFqg4AzMzMzMxBV0FWU0iD7EBJif5kSIsEJSgAAABIiUQkOEiLRyBIPYAAAAByN0iDwIBJiUYgSMdEJBAAAAAASYtGCEiLCEiJTCQQSIPACEmJRghIjXQkEEyJ9+iYAQAA6WEBAABJi0YQSYtOGEiJw0krXghIwfsDSInKSSsWSInWSMH+A0g583MqvwAQAABIOcEPhLsAAADou6cOAEiJRCQQSI10JBBMiffoyQMAAOkSAQAASInQSMH4AkiF0kG/AQAAAEwPRfhJjUYYSIlEJDBMifhIweg9D4UCAQAASo08/QAAAADobacOAEiJRCQQSI0M2EiJTCQgSIlMJBhKjQT4SIlEJCi/ABAAAOhHpw4ASIlEJAhIjXwkEEiNdCQI6EMIAABJi14QSTteCHRATI18JBAPH0AASIPD+EyJ/0iJ3uihCgAASTteCHXrSYtGEOsf6ACnDgBIiUQkEEiNdCQQTIn36I4FAADpx/7//0iJ2EmLPg8oRCQQSIl8JBBBDxEGSIlcJBgPKEQkIEiJRCQgSYtOGEEPEUYQSIlMJChIicFIKdl0FEiDwfhIwekDSPfRSI0EyEiJRCQgSIX/dAXosqYOAGRIiwQlKAAAAEg7RCQ4dQ9Ig8RAW0FeQV/D6IOrDgDo3qgOAMzMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Mi2cQTDtnGA+FOAIAAEmLD0mLXwhIidhIKch2UUjB+ANIjUgBSMHpP0gByEiDwAFI0fhIicVI991IweADSYndSSnFSSncdBJMie9Iid5MieLoea8OAEmLXwhNAexNiWcQSI0E60mJRwjp2AEAAEyJ4EiJDCRIKchIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FyQEAAEmJ7UnB7QJIjTztAAAAAOijpQ4ATo0U6EyNBOhMidFMOeMPhGIBAABNieNJKdtJg8P4SYP7GHMITInR6TcBAABKjRToTInZSIPh+EiNNBlIg8YISDnycxhKjQzpSAHBSIPBCEg52XYITInR6QcBAABJwesDSYPDAU2J2UmD4fxJjVH8SInRSMHpAkiDwQGJz4PnA0iD+gxzBDHS63JKjTToSIPGcEiD4fxI99kx0mYPH4QAAAAAAA8QBNMPEEzTEA8RRNaQDxFM1qAPEETTIA8QTNMwDxFE1rAPEUzWwA8QRNNADxBM01APEUTW0A8RTNbgDxBE02APEEzTcA8RRNbwDxEM1kiDwhBIg8EEdahIhf90TkiNDNNIg8EQScHlA0iNFNUAAAAATAHqSAHCSIPCEEjB5wUx9mYuDx+EAAAAAAAPH0QAAA8QRDHwDxAMMQ8RRDLwDxEMMkiDxiBIOfd15UuNDMpNOct0H0qNHMsPH4QAAAAAAEiLE0iJEUiDwQhIg8MITDnjde1JiQdNiVcISYlPEE2JRxhJicxIizwkSIX/dAnoLaQOAE2LZxBJiwZJiQQkSYNHEAhIg8QIW0FcQV1BXkFfXcPo+agOAMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/TItnEEw7ZxgPhTgCAABJiw9Ji18ISInYSCnIdlFIwfgDSI1IAUjB6T9IAchIg8ABSNH4SInFSPfdSMHgA0mJ3UkpxUkp3HQSTInvSIneTIni6PmsDgBJi18ITQHsTYlnEEiNBOtJiUcI6dgBAABMieBIiQwkSCnISInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhckBAABJie1Jwe0CSI087QAAAADoI6MOAE6NFOhMjQToTInRTDnjD4RiAQAATYnjSSnbSYPD+EmD+xhzCEyJ0ek3AQAASo0U6EyJ2UiD4fhIjTQZSIPGCEg58nMYSo0M6UgBwUiDwQhIOdl2CEyJ0ekHAQAAScHrA0mDwwFNidlJg+H8SY1R/EiJ0UjB6QJIg8EBic+D5wNIg/oMcwQx0utySo006EiDxnBIg+H8SPfZMdJmDx+EAAAAAAAPEATTDxBM0xAPEUTWkA8RTNagDxBE0yAPEEzTMA8RRNawDxFM1sAPEETTQA8QTNNQDxFE1tAPEUzW4A8QRNNgDxBM03APEUTW8A8RDNZIg8IQSIPBBHWoSIX/dE5IjQzTSIPBEEnB5QNIjRTVAAAAAEwB6kgBwkiDwhBIwecFMfZmLg8fhAAAAAAADx9EAAAPEEQx8A8QDDEPEUQy8A8RDDJIg8YgSDn3deVLjQzKTTnLdB9KjRzLDx+EAAAAAABIixNIiRFIg8EISIPDCEw543XtSYkHTYlXCEmJTxBNiUcYSYnMSIs8JEiF/3QJ6K2hDgBNi2cQSYsGSYkEJEmDRxAISIPECFtBXEFdQV5BX13D6HmmDgDMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0iLXwhIOx90CEmJ3OkhAgAATYtvEEmLRxhJOcVzV0wp6EjB+ANIjUgBSMHpP0iNLAhIg8UBSNH9TI0k7QAAAABNAexMiepIKdp0Ekkp1EyJ50iJ3uh2qg4ATYtvEE2JZwhIjQTtAAAAAEwB6EmJRxDpvQEAAEgp2EiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4W2AQAATI1lA0nB7AJIjTztAAAAAOiioA4ATYnjTo0k4EyNBOhMieFMOesPhE4BAABNiepJKdpJg8L4TInhSInaSYP6GA+CIQEAAEqNFNhMidFIg+H4SI00GUiDxghIOfJzG0qNDNlIjTQISIPGCEyJ4UiJ2kg53g+H7gAAAEnB6gNJg8IBTYnRSYPh/EmNUfxIiddIwe8CSIPHAYn5g+EDSIP6DHMEMfbraUqNFNhIg8JwSIPn/Ej33zH2DxAE8w8QTPMQDxFE8pAPEUzyoA8QRPMgDxBM8zAPEUTysA8RTPLADxBE80APEEzzUA8RRPLQDxFM8uAPEETzYA8QTPNwDxFE8vAPEQzySIPGEEiDxwR1qEiFyXQ+SI0U80iDwhBJweMDSY0080gBxkiDxhBIweEFMf9mDx9EAAAPEEQ68A8QDDoPEUQ+8A8RDD5Ig8cgSDn5deVLjQzMTTnKdB9KjRTLDx+EAAAAAABIizJIiTFIg8EISIPCCEw56nXtSYkHTYlnCEmJTxBNiUcYSIXbdAxIid/oQZ8OAE2LZwhJiwZJiUQk+EmDRwj4SIPECFtBXEFdQV5BX13D6AykDgDMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0yLZxBMO2cYD4U4AgAASYsPSYtfCEiJ2EgpyHZRSMH4A0iNSAFIwek/SAHISIPAAUjR+EiJxUj33UjB4ANJid1JKcVJKdx0EkyJ70iJ3kyJ4ugJqA4ASYtfCE0B7E2JZxBIjQTrSYlHCOnYAQAATIngSIkMJEgpyEiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4XJAQAASYntScHtAkiNPO0AAAAA6DOeDgBOjRToTI0E6EyJ0Uw54w+EYgEAAE2J40kp20mDw/hJg/sYcwhMidHpNwEAAEqNFOhMidlIg+H4SI00GUiDxghIOfJzGEqNDOlIAcFIg8EISDnZdghMidHpBwEAAEnB6wNJg8MBTYnZSYPh/EmNUfxIidFIwekCSIPBAYnPg+cDSIP6DHMEMdLrckqNNOhIg8ZwSIPh/Ej32THSZg8fhAAAAAAADxAE0w8QTNMQDxFE1pAPEUzWoA8QRNMgDxBM0zAPEUTWsA8RTNbADxBE00APEEzTUA8RRNbQDxFM1uAPEETTYA8QTNNwDxFE1vAPEQzWSIPCEEiDwQR1qEiF/3ROSI0M00iDwRBJweUDSI0U1QAAAABMAepIAcJIg8IQSMHnBTH2Zi4PH4QAAAAAAA8fRAAADxBEMfAPEAwxDxFEMvAPEQwySIPGIEg593XlS40Myk05y3QfSo0cyw8fhAAAAAAASIsTSIkRSIPBCEiDwwhMOeN17UmJB02JVwhJiU8QTYlHGEmJzEiLPCRIhf90Cei9nA4ATYtnEEmLBkmJBCRJg0cQCEiDxAhbQVxBXUFeQV9dw+iJoQ4AzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Ii18ISDsfdAhJidzpIQIAAE2LbxBJi0cYSTnFc1dMKehIwfgDSI1IAUjB6T9IjSwISIPFAUjR/UyNJO0AAAAATQHsTInqSCnadBJJKdRMiedIid7ohqUOAE2LbxBNiWcISI0E7QAAAABMAehJiUcQ6b0BAABIKdhIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FtgEAAEyNZQNJwewCSI087QAAAADospsOAE2J406NJOBMjQToTInhTDnrD4ROAQAATYnqSSnaSYPC+EyJ4UiJ2kmD+hgPgiEBAABKjRTYTInRSIPh+EiNNBlIg8YISDnycxtKjQzZSI00CEiDxghMieFIidpIOd4Ph+4AAABJweoDSYPCAU2J0UmD4fxJjVH8SInXSMHvAkiDxwGJ+YPhA0iD+gxzBDH262lKjRTYSIPCcEiD5/xI998x9g8QBPMPEEzzEA8RRPKQDxFM8qAPEETzIA8QTPMwDxFE8rAPEUzywA8QRPNADxBM81APEUTy0A8RTPLgDxBE82APEEzzcA8RRPLwDxEM8kiDxhBIg8cEdahIhcl0PkiNFPNIg8IQScHjA0mNNPNIAcZIg8YQSMHhBTH/Zg8fRAAADxBEOvAPEAw6DxFEPvAPEQw+SIPHIEg5+XXlS40MzE05ynQfSo0Uyw8fhAAAAAAASIsySIkxSIPBCEiDwghMOep17UmJB02JZwhJiU8QTYlHGEiF23QMSInf6FGaDgBNi2cISYsGSYlEJPhJg0cI+EiDxAhbQVxBXUFeQV9dw+gcnw4AzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJidRJif5IuFVVVVVVVVUFTIsvSItfCEiJ3Uwp7UjB/QRIuquqqqqqqqqqSA+v6kiNTQFIOcEPh2gBAABJi34QTCnvSMH/BEgPr/pMjTw/STnPTA9C+Ui5qqqqqqqqqgJIOc9MD0P4TYX/dCNIiTQkSTnHD4czAQAATIn4SMHgBEiNPEDobJkOAEiLNCTrAjHASI08bQAAAABIAe9IwecESI0UOEuNDH9IweEESAHBSIs2QYssJEiJNDiJbDgID1fADxFEOAwPEUQ4GEgB+EiDwDBMOesPhKoAAABmLg8fhAAAAAAADxBL0A8RStAPEULgSMdC8AAAAABIi3PgSIly4EiLc+hIiXLoSItz8EiJcvAPEUPgSMdD8AAAAACLc/iJcvhIg8LQSI1z0EiJ80w57nWySYseSYt2CEmJFkmJRghJiU4QSDnedSNIhdt0RkiJ30iDxAhbQVxBXUFeQV9d6bCYDgBIie5IOd103UiNbtBIi37gSIX/dOtIiX7o6JKYDgDr4EmJFkmJRghJiU4QSIXbdbpIg8QIW0FcQV1BXkFfXcNMiffoeZ0OAOhUnQ4AzMzMzFVBV0FWQVVBVFNIg+wYSYn/SbiqqqqqqqqqCkyLN0iLbwhMKfVIietIwfsDSLirqqqqqqqqqkgPr9hIjXsBTDnHD4feAAAASIk0JEiJVCQISIlMJBBJi3cQTCn2SMH+A0gPr/BIjRQ2SDn6SA9C10i5VVVVVVVVVQVIOc5JD0PQTDnCD4ekAAAASMHiA0yNJFJMiefop5cOAEiNDFtMjSzISQHESIsUJEiLEkiLdCQISIs2SIt8JBCLP0iJFMhIiXTICIl8yBDHRMgU/////0iNHMhIg8MYSSntSIXtfhFMie9MifZIiero85sOAE2LN02JL0mJXwhNiWcQTYX2dBZMifdIg8QYW0FcQV1BXkFfXelKlw4ASIPEGFtBXEFdQV5BX13DTIn/6EOcDgDoHpwOAMzMzMzMzMzMzMzMzMzMD7YOuAEAAACEyXgDiQ/DD7ZWAYHygAAAAPbCwHQNuf3/AAC4AQAAAIkPw4D533ccgPnAcumD4R/B4QYJ0bgCAAAAgfmAAAAAc8Lr0g+2RgI1gAAAAKjAdcWA+e93HcHhDMHiBg+3yQnRgfkACAAAcq0JwbgDAAAAiQ/DD7Z2A4H2gAAAAED2xsB1k4D593eOweEMweIGCcoJwsHiBoHiwP8fAIH6AAABAA+Cb////wnyuAQAAACJ0YkPww8fRAAAiw6D+X93CIgPuAEAAADDgfn/BwAAdxiJyMHoBgzAiAeA4T+AyYCITwG4AgAAAMOB+QAAEQC4/f8AAA9CwYnBPf//AAB3I8HpDIDJ4IgPicHB6QaA4T+AyYCITwEkPwyAiEcCuAMAAADDwekSgMnwiA+JwcHpDIDhP4DJgIhPAYnBwekGgOE/gMmAiE8CJD8MgIhHA7gEAAAAw2YPH0QAALgBAAAAgf+AAAAAciG4AgAAAIH/AAgAAHIUgccAAP//gf8AABAAuAQAAACD0P/DkDHAhfZ+C4oPuAEAAACEyXgBw4P+AnwUgPngcvWD/gN8CoD58HLrg/4DdeYxwMNmkDHA6x9mLg8fhAAAAAAAZpC6AQAAAIXJD4SiAAAASAHXg8ABD7YPhMl55g+2dwGB9oAAAABA9sbAdAe6AQAAAOvcgPnfdxyA+cBy74PhHsHhBgnxugIAAACB+YAAAABzvevYD7ZXAoDiwID6gHXMgPnvdxrB4QzB5gYPt8kJ8boDAAAAgfkACAAAc5LrrQ+2VwOA4sCA+oB1oYD593ecweYMg+EHweESCfG6BAAAAIH5//8AAA+HY////+l7////w4H+gAAAAH0I6dOmDgAPHwAPtgeEwHgZhcAPhMcAAAC6AQAAAOsjZi4PH4QAAAAAAA+2TwGB8YAAAAD2wcB0F7oBAAAAuP3/AAA58A+ElwAAAEgB1+u6PN93GjzAcuGD4B/B4AYJyLoCAAAAPYAAAAByzevVD7ZXAoHygAAAAPbCwHW8PO93G8HgDMHhBg+3wAnIPQAIAABypgnQugMAAADrp0QPtkcDQYHwgAAAAEH2wMB1izz3d4fB4AzB4QYJwQnRweEGgeHA/x8AgfkAAAEAD4Jo////RAnBugQAAACJyOlj////Mf9IifjDzMzMzIn4w2YuDx+EAAAAAAAPHwCJ8NHoQPbGAXUHiwTHwegEw4tExwTDZi4PH4QAAAAAAIX2dEFBidBBweAE6yIPHwCLBM+JxsHuBEGJwUGD4QhFCcGD4AdECciJBM+F9nQWifHR6UD2xgF014t0zwSJVM8EhfZ16sNmLg8fhAAAAAAAhfZ0SInwhdJ0SYnG6wpmkIt0zwSF9nQ3ifHR6UD2xgF17kSLBM9EicbB7gRBg/gQc+bB4gSLNM9BifBBg+AIQQnQg+YHRAnGiTTPw4nQw4lUzwTDZi4PH4QAAAAAAGaQQVZTUEiJ+78wAAAA6J+SDgAPV8APEQAPEUAQDxFAIEiJQwjGQxAASI0FchMPAEiDwBBIiQNIx0MwAAAAAMdDOAAAAAAPEUNgDxFDUMdDcAAAgD9Ix0N4AAAAAL+QAQAA6EuSDgBJicZIicfoYFMAAEyJcxjGQyAAx0MkAQAAAMZDKABIuAAAAAABAAAASIlDQEjHQ0gAAAAASInfvgEAAADoKgAAAEhj+EjB5wNIA3sw6BpSAADHQ0QAAAAASIPECFtBXsNmLg8fhAAAAAAAkFVBV0FWQVVBVFNQSIn7gH8gAHUQQYn2RIt7QEONBDc7Q0R+HMZDIAFBv/////9EifhIg8QIW0FcQV1BXkFfXcOLUzg50A+OjAAAAE1j54XSuQgAAAAPRcoPH4QAAAAAAInNjUwtADnof/aF7Xhxie9IwecD6GeRDgBJicVIi3MwSIX2dBNJweQDTInvTIni6MyaDgBEi3tASWPHSI08xQAAAABMAe+J6SnBSGPRSMHiAzH26NiUDgBIi3swTIlrMEiF/3QF6DaRDgCJazhEi3tARQH+RInwiUNA6U/////oDJYOAGYuDx+EAAAAAABmkEFXQVZTSYn/SI0F0REPAEiDwBBIiQdMi3cYTYX2dBBMiffoOVIAAEyJ9+jhkA4ASYt/YEiF/3QYDx+EAAAAAABIix/oyJAOAEiJ30iF23XwSYt/UEnHR1AAAAAASIX/dAXoqpAOAEmLfzBJx0cwAAAAAEiF/3QF6JSQDgBIjQXFEQ8ASIPAEEmJB0yJ/+ieMQAASYtfCEiF23QVSInf6A00AABIid9bQV5BX+lgkA4AW0FeQV/DZi4PH4QAAAAAAFNIifvoN////0iJ31vpPpAOAGYuDx+EAAAAAAAPH0AAMcDDZi4PH4QAAAAAAA8fAEUx0oX2D4SbAAAAuAAAAACF0g+ESQEAAEmJ8knB6iBJidBJweggTItfMEhjzkWLDMtEicmD4QeD+QZ1cY0MNkQ50XVpQYP5D3djRYXSdExBidFBweEE6ykPH4QAAAAAAEGLDPtBicpBweoEic6D5ghECc6D4QcJ8UGJDPtFhdJ0GkSJ19HvQfbCAXTURYtU+wRBiVT7BEWF0nXmTYnCSInQ6bsAAAAxwOm0AAAAgH8oAHRaRYXAdOZBifFBweEE6zBmLg8fhAAAAAAADx9EAABBiwz7QYnIQcHoBInIg+AIRAnIg+EHCcFBiQz7RYXAdK1EicfR70H2wAF01EWLRPsEQYl0+wRFhcB15uuRRYXSdElBidFBweEE6yYPH0QAAEGLBMtBicJBweoEiceD5whECc+D4AcJ+EGJBMtFhdJ0GkSJ0dHpQfbCAXTURYtUywRBiVTLBEWF0nXmTYnCSInwScHiIInATAnQww8fRAAAVUFXQVZBVUFUU1BIidVIifNJidVJwe0ghdt0eUGJ3EjB6yCF7XR2SYn/vgEAAADofPz//4XAeGpBicaJx0jB5wNJA38wRInmiero0U0AAIXbdFZFhe10W0mLRzCJ3usIi3TIBIX2dEaJ8dHpQPbGAXXuixTIidbB7gSD+hBz6UHB5QSJ1oPmCEQJ7oPiBwnyiRTI6x5MietBie7rFkWJ5usRMdtFMfbrCkyJ6+sFRIlsyARIweMgRInwSAnYSIPECFtBXEFdQV5BX13DDx9AAFVBV0FWQVVBVFNQQYnXSYn2SYn9vgEAAADowvv//4XAD4h/AAAAicNMifVIwe0gQYnESo085QAAAABJA30wMfYx0ugJTQAASIXtdEVJi0UwidnB4QTrJGYPH4QAAAAAAIs00In1we0EifeD5wgJz4PmBwn+iTTQhe10Fonq0epA9sUBdNuLbNAEiVzQBIXtdepJi0UwRYT/dBFGiXTgBInZAcnrJTHJMdvrH0HB5gRCiwzgicqD4ghECfKD4QcJ0UKJDOCNDBuDwQFIweEgidhICchIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx9AAFNIifPoB////0i5AAAAAP////9IIciJ2UgJyFvDDx8AVUFXQVZBVFNJifZJif9FhfZ0R0GJ1ESJ9UyJ/74BAAAA6Kr6//+FwHhaicNJwe4gicdIwecDSQN/MEWE5HRbMfaJ6uj4SwAAhdsPhKwAAACNDBtFhfZ1VusuTIn/vgEAAADoafr//4XAeBmJw4nHSMHnA0kDfzAx9uhCTAAAidkByesEMckx20jB4SCJ2EgJyFtBXEFeQV9dw4nuMdLonUsAAI0MG4PBAUWF9nTaSYtHMInP6xJmLg8fhAAAAAAAi3zQBIX/dC2J+tHqQPbHAXXuizTQiffB7wSD/hBz6UHB5gSJ94PnCEQJ94PmBwn+iTTQ65NEiXTQBOuMRInx64VmLg8fhAAAAAAADx9EAABBV0FWU0mJ/r4BAAAA6K75//+FwHgeicNBicdKjTz9AAAAAEkDfjAx9uiCSwAASMHjIesFMdtFMf9MCftIidhbQV5BX8NmLg8fhAAAAAAAkFVBV0FWQVVBVFNQQYnMQYnWQYn3SIn9vgEAAADoT/n//4XAeCmJw0GJxUqNPO0AAAAASAN9MEEPtsxEif5EifJFMcDoqEoAAEjB4yHrBTHbRTHtTAnrSInYSIPECFtBXEFdQV5BX13DDx+EAAAAAABVQVZTQYn2SIn9vgEAAADo7Pj//4XAeBiJw0iNPN0AAAAASAN9MESJ9uiySgAA6wIx20iJ2FtBXl3DZg8fRAAAVUFXQVZTUEGJ9kiJ/b4BAAAA6Kn4//+FwHghicNBicdKjTz9AAAAAEgDfTBEifYx0uhKSgAASMHjIesFMdtFMf9MCftIidhIg8QIW0FeQV9dw2YuDx+EAAAAAAAPH0AAVUFXQVZBVUFUU1BJifRFheQPhKAAAABBiddJif6+AgAAAOg5+P//hcAPiIgAAACJw0yJ5UjB7SBBicVKjTztAAAAAEkDfjBDjTQ/RIni6K1JAACDwwFJi0YwSo086EiDxwhDjTQ/g8YBMdLokEkAAIXtdD1Ji0YwidnB4QTrHJCLNNCJ9cHtBIn3g+cICc+D5gcJ/ok00IXtdBaJ6tHqQPbFAXTbi2zQBIlc0ASF7XXqSMHjIesFMdtFMe1MCetIidhIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx9EAABBVlNQSYn+SIN/aAAPhLwAAABJi35gSIX/dBUPH0QAAEiLH+hYiQ4ASInfSIXbdfBJx0ZgAAAAAEmLVlhIhdIPhIEAAABIjUr/idCD4ANIg/kDcwQxyetESIPi/DHJZpBJi3ZQSMcEzgAAAABJi3ZQSMdEzggAAAAASYt2UEjHRM4QAAAAAEmLdlBIx0TOGAAAAABIg8EESDnKdcRIhcB0JWYuDx+EAAAAAAAPH0QAAEmLVlBIxwTKAAAAAEiDwQFIg8D/depJx0ZoAAAAAEnHRngAAAAASIPECFtBXsNmkFVBV0FWQVVBVFNQRInFQYnMQYnVifNJif++AQAAAOh99v//hcB4KUGJxkEPttUPtvOJx0jB5wNJA38wQQ+2zEUxwOjZRwAATInySMHiIesFMdJFMfZIidFIwekgSYtHMIXtdEqFyQ+ElAAAAInqweIE6yhmLg8fhAAAAAAADx8AizzwifnB6QSJ+4PjCAnTg+cHCd+JPPCFyXRlic7R7vbBAXTci0zwBIls8ATr6UGLd3yF9nQ+hcl0Qon16wpmkIts+ASF7XQwie/R70D2xQF17osc+Indwe0Eg/sQc+lIweocidmD4QgJ0YPjBwnLiRz46wiJzusEiUz4BEGJd3xEifBIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAADx9AAEFXQVZBVUFUU0iD7CBBidFkSIsEJSgAAABIiUQkGEljwEjB4BGJ8kjB4glICcJEichIjQRCQYnMSQnETIkkJEyNd1BMi19YTYXbD4QlAQAATInYSNHoSLpVVVVVVVVVVUghwkyJ2Egp0Ei6MzMzMzMzMzNIicNIIdNIwegCSCHQSAHYSInCSMHqBEgBwki4Dw8PDw8PDw9IIdBJvwEBAQEBAQEBTA+v+EnB7zhJg/8BdwlNjVP/TSHi6yxNieJNOdxyJEyJ4EwJ2EjB6CB0DUyJ4DHSSffzSYnS6wtEieAx0kH380GJ0kmLBkqLBNBIhcAPhH4AAABIixhIhdt0dk2Na//rHWYuDx+EAAAAAACQTDljEA+EsQAAAEiLG0iF23RTSItDCEw54HTlQYP/AXcPTCHo6zpmLg8fhAAAAAAATDnYcitIicJMCdpIweogdAox0kn380iJ0OsVMdJB9/OJ0GYuDx+EAAAAAAAPH0AATDnQdKVAD7b2QQ+20Q+2yehb/f//icNIieZIiXQkEEiNFbpf8f9IjUwkEEyNRCQITIn36EgqAACJWBhkSIsEJSgAAABIO0QkGHUVidhIg8QgW0FcQV1BXkFfw4tbGOvb6PuHDgBmLg8fhAAAAAAAkEhj1kiLdzBMi0dYMcmAfNYGAEEPlcFNhcAPhEYBAAAPtkTWBEQPtlTWBYsU1oPi8EjB4g1IweAJSAnQSo0EUESIyUgJwUyJwEjR6Ei6VVVVVVVVVVVIIcJMicBIKdBIujMzMzMzMzMzSInGSCHWSMHoAkgh0EgB8EiJwkjB6gRIAcJIuA8PDw8PDw8PSCHQSbkBAQEBAQEBAUwPr8hJwek4SYP5AXcSSL7///////8BAEwBxkghzusqSInOTDnBciJIichMCcBIweggdA1Iicgx0kn38EiJ1usJicgx0kH38InWSItHUEiLBPBIhcB0dUiLOEiF/3RtTY1Q/+sQZpBIOU8QdGFIiz9Ihf90V0iLRwhIOch06UGD+QF3E0wh0Os+Zi4PH4QAAAAAAA8fQABMOcByK0iJwkwJwkjB6iB0CjHSSffwSInQ6xUx0kH38InQZi4PH4QAAAAAAA8fQABIOfB0oTH/SIX/D5XAw2aQVUFWU4B/IAB1Uon1SIn7i3d4hfZ0Q4N7JAF1DkiJ34nq6EoAAACJxesvSInfvgEAAADo+fH//4XAeBxBicaJx0jB5wNIA3swi3N4ieroTkMAAESJ9esCMe2Ja3hbQV5dw2YuDx+EAAAAAAAPH0QAAFVBV0FWQVVBVFNQidWJ80mJ/+hpBAAASYnFRYXtdCaJLCRNiexJwewgRYXkdEpJY81Ji0cwQfbEAXVGRIsMyEHB6QTrQUyJ/74BAAAA6G7x//+FwA+I8AMAAEGJxonHSMHnA0kDfzCJ3onq6MBCAABEifDp1AMAAEmLRzBBidnrBUSLTMgETWPxMclCgHzwBgAPlcJJi39YSL5VVVVVVVVVVUm6MzMzMzMzMzNJuA8PDw8PDw8PSbsBAQEBAQEBAUiF/4lcJAQPhCUBAABIifNCD7Z08ARCD7Zs8AVCiwTwg+DwSMHgDUjB5glICcZIjQRuiNFICcFIifhI0ehIIdhIifpIKcJIidBMIdBIweoCTCHSSAHCSInTSMHrBEgB00whw0kPr9tIwes4SIP7AXcSSL7///////8BAEgB/kghzuspSInOSDn5ciFIichICfhIweggdA1Iicgx0kj390iJ1usIicgx0vf3idZJi0dQSIsE8EiFwHR5SIsoSIXtdHFMjUf/6xxmDx+EAAAAAABIOU0QD4RDAQAASIttAEiF7XRPSItFCEg5yHTkg/sBdw9MIcBIOfB04es3Dx9EAABIOfhyG0iJwkgJ+kjB6iB0FjHSSPf3SInQDx+AAAAAAEg58HS16wsx0vf3idBIOfB0qEWJzosEJExjyEmLbzBNi1dYRotEzQBJwegEMfZCgHzNBgAPlcBNhdIPhNMBAABCD7ZMzQRCD7ZUzQVMicdIwecRSMHhCUgJ+UiNDFFAiMZICc5MidBI0ehIuVVVVVVVVVVVSCHITInSSCnCSInQSLkzMzMzMzMzM0ghyEjB6gJIIcpIAcJIidFIwekESAHRSLgPDw8PDw8PD0ghwUkPr8tIwek4SIP5AXcVSL////////8BAEwB10gh9+nBAAAASIn3TDnWD4K1AAAASInwTAnQSMHoIA+EnAAAAEiJ8DHSSffySInX6ZUAAABMif++AQAAAOjW7v//hcAPiFgBAACJwUmLbzBIjTzNAAAAAEgB70IPtnT1BEIPtlT1BUIPtkz1BkaLRPUAQcHoBInD6BtAAABFheQPhC0BAABBid5JY8VJi08wQfbEAUm7AQEBAQEBAQEPhSgBAABEifLB4gSLNMGJ94PnCAnXg+YHCf6JNMHpjP7//4nwMdJB9/KJ10mLR1BIiwT4SIXAdHRIixhIhdt0bE2NWv/rEQ8fAEg5cxB0fEiLG0iF23RVSItDCEg58HTpg/kBdxRMIdhIOfh04us9Zi4PH4QAAAAAAEw50HIbSInCTAnSSMHqIHQWMdJJ9/JIidAPH4AAAAAASDn4dLHrDDHSQffyidBIOfh0o0LHRM0AAAAAAEmLRzBCx0TIBAAAAABBg0dA/0mLbzBJY96LdN0Awe4ETIn/RInC6Nn7//+FwHQfSYtPMMHgBIsU2YnWg+YICcaD4gcJ8okU2YtEJATrAjHASIPECFtBXEFdQV5BX13DQYneiVwkBIsEJEm7AQEBAQEBAQHphP3//0SJdMEE6Xf9//9mkEFXQVZBVUFUU0iB7CABAABkSIsEJSgAAABIiYQkGAEAAExjxkiLRzBCixzAidmD4QeD+QJ1N0KKTMAESGPSOkzQBA+FggEAAEKKTMAFOkzQBQ+FcwEAAEKKXMAGMck6XNAGD4ViAQAA6WEBAAD2wwcPhIkBAADGRCQIAEyNdCQQSI28JIAAAABMjXwkGEiNBWz3DgBIjUgYSIlMJBBIg8BASImEJIAAAABMif7or48OAEjHhCQIAQAAAAAAAMeEJBABAAD/////SI0dwfYOAEyNYxhMiWQkEEiDw0BIiZwkgAAAAEyJ/+iEjw4ATI0tdfcOAEmDxRBMiWwkGA9XwA8RRCRYDxFEJGjHRCR4EAAAAEiNNV0jk/+6IQAAAEyJ9+gbXPv/SI01fLTt/7oBAAAASInH6Adc+/9Iice+dQIAAOjqhQ4ASI01lM+g/7oCAAAASInH6OZb+/9IjTW4HLH/uhMAAABMiffo0lv7/4B8JAgAdQpIjXwkCOghcP//TIlkJBBIiZwkgAAAAEyJbCQY9kQkWAF0CkiLfCRo6J59DgBMif/o1o4OAEiNNS/2DgBIg8YITIn36NOODgBIjbwkgAAAAOjWjg4AMckx9mRIiwQlKAAAAEg7hCQYAQAAD4W3AAAASMHhIInwSAnISIHEIAEAAFtBXEFdQV5BX8NMY8JEik8oRopUwASJ9w8fAEhjz0hjTMgERDhUyAR1GA+2VMgFQjpUwAV1DA+2TMgGQjpMwAZ0WDHJRYTJdI7B6wT2BNgHdRGJ34sM2InL9sEHdL3pHv7//4nbRDhU2AQPhWf///+KVNgFvgAAAABCOlTABQ+FVf///4pU2AaNDD8x9kI6VMAGD0XOD0X+6waNDD+DwQGJ/uky////6O9+DgBmLg8fhAAAAAAADx9EAABIY/ZIi08wikTxBEhj0jpE0QR1FopE8QU6RNEFdQyKRPEGOkTRBg+UwMMxwMMPHwBIi0d4w2YuDx+EAAAAAACQg38kAnUID7bJ6fIEAAAPtsnpCgAAAGYuDx+EAAAAAABVQVdBVkFVQVRTSIPsOEGJ1YnzZEiLBCUoAAAASIlEJDA51n4OiVwkLESJbCQo6bEBAABBic9Jif5EieiD4MCJRCQQRInog+A/iUQkHESJ6CUA8P//iUQkDESJ6CX/DwAAiUQkFESJ6CUAAPz/iUQkCESJ6CX//wMAiUQkGA8fAIH7gAAAAHUUQYH9//8QAHULQYB+KAAPhDABAACD+39/C71/AAAAQYP9f380gfv/BwAAfw69/wcAAEGB/QAIAAB9HoH7//8AAH81vf//AABBgf3//wAAficPH4QAAAAAAEEPts9MifeJ3onq6BD///+DxQGJ60Q5636G6Sb///9Bgf2AAAAAD4z7AAAAidiD4MA7RCQQdUGJ2CUA8P//O0QkDHVOidglAAD8/ztEJAgPhBwBAABBvP//AwD3w///AwB1PYtEJAiJxYF8JBj//wMAdWHp+QAAAEG8PwAAAPbDP3Udi0QkEInFg3wkHD90p+tCQbz/DwAA98P/DwAAdCBBCdxBD7bPTIn3id5EieLobP7//0GDxAFEiePpVf///4tEJAyJxYF8JBT/DwAAD4Rw////jVX/QQ+2z0yJ94ne6Dv+//+J6+kp////x0QkLIAAAADHRCQo//8QAEyJ9+g8BAAAZEiLBCUoAAAASDtEJDAPheECAABIg8Q4W0FcQV1BXkFfXcOJXCQsRIlsJChMife+AQAAAOgT6P//hcAPiPQAAABBicRBD7bVD7bzicdIwecDSQN+MEEPts9FMcDoazkAAEyJ4UjB4SHpzQAAAIlcJCxEiWwkKMdEJCQAAAAAx0QkIAAAAABIjXwkJEiNdCQs6Ffj//9BicdIjXwkIEiNdCQo6EXj//9BgH4oAA+EHAEAAEWF/w+OigEAAA+2dCQkD7ZUJCBMifcxyUUxwOj68f//icNBg/8BD4RpAQAARY1n/0WJ/70BAAAA6yIPtvAPttFMifcxyUGJ2Oit8P//icNIg8UBSTnvD4Q5AQAAD7ZELCQPtkwsIDjIddBJOex0yw+20EyJ94nWMclBidjomfH//+vKMclFMeRIic5Iwe4gQYtGfIXAdECF9nRESYtWMInF6wiLbPoEhe10MInv0e9A9sUBde6LHPqJ3cHtBIP7EHPpSMHpHIneg+YICc6D4wcJ84kc+usIifDrBIl0+gRBiUZ8QYB+IAAPhWD+//9Bi3Z4hfYPhPYAAABBg34kAQ+FvwAAAEyJ90SJ4ujK9P//QYnERYlmeOky/v//RYX/fnJBg8f/Qg+2dDwkQg+2VDwgTIn3MclFMcDo3PD//4nDRYX/dFBJjW8B6x8PtvEPttBMifcxyUGJ2Oic7///icNIg8X/SIP9AX4rD7ZMLCIPtkQsHjjBc9NIg/0CdM0PtvEPttBMifcxyUGJ2OiJ8P//68sx20GAfiAAD4Wu/f//QYt2eIX2dHtBg34kAXVKTIn3idroIfT//4nDQYlGeOmK/f//TIn3vgEAAADoyeX//4XAeFeJw4nHSMHnA0kDfjBBi3Z4RIni6B03AABBidxFiWZ46VX9//9Mife+AQAAAOiU5f//hcB4LonFicdIwecDSQN+MEGLdniJ2ujpNgAAietBiV546SL9//9FMeRFiWZ46Rb9//8x20GJXnjpC/3//+iieQ4AZpBVQVdBVkFUU4H+/wAAAA+PFwEAAInVifM51g+PCwEAAEGJzEmJ/74BAAAA6CDl//+FwHg3QYnGgf3/AAAAuP8AAAAPTMUPttAPtvNEifdIwecDSQN/MEEPtsxFMcDobjYAAEyJ8UjB4SHrBTHJRTH2SInOSMHuIEGLR3yFwHRFhfZ0SUmLVzCJxesNDx9EAACLbPoEhe10MInv0e9A9sUBde6LHPqJ3cHtBIP7EHPpSMHpHIneg+YICc6D4wcJ84kc+usIifDrBIl0+gRBiUd8QYB/IAB1VEGLd3iF9nRIQYN/JAF1EEyJ/0SJ8uif8v//QYnG6zFMif++AQAAAOhN5P//hcB4HYnDicdIwecDSQN/MEGLd3hEifLooTUAAEGJ3usDRTH2RYl3eFtBXEFeQV9dw2YuDx+EAAAAAABmkFVBV0FWQVVBVFNIg+w4SYn/ZEiLBCUoAAAASIlEJDAPV8APKUQkIA8pRCQQDykEJL6AAAAAur8AAAAxyUUxwOgs7f//iQQkuwEAAABIjS0BT/H/Qb1VBQAA6yBMif9EieLo6vH//0GJxEWJZ3hIg8MBSIPFDEiD+wx0c0hjRfhEiwSED7Z1/A+2VQBMif8xyejb7P//iQScSQ+j3XLPQYB/IAB1yEGJxEGLd3iF9nS5QYN/JAF0pEyJ/74BAAAA6Ezj//+FwHgeQYnGicdIwecDSQN/MEGLd3hEieLonzQAAEWJ9OuDRTHk6Xv///9kSIsEJSgAAABIO0QkMHUPSIPEOFtBXEFdQV5BX13D6E53DgBmLg8fhAAAAAAADx9AAFVBV0FWQVVBVFNIgewYAQAASYn+ZEiLBCUoAAAASImEJBABAADGBCQATI18JAhIjXwkeEyNZCQQSI0Fce0OAEiNSBhIiUwkCEiDwEBIiUQkeEyJ5ui3hQ4ASMeEJAABAAAAAAAAx4QkCAEAAP////9IjR3J7A4ATI1rGEyJbCQISIPDQEiJXCR4TInn6I+FDgBIjS2A7Q4ASIPFEEiJbCQQD1fADxFEJFAPEUQkYMdEJHAQAAAASI01aBmT/7ohAAAATIn/6CZS+/9IjTWHqu3/ugEAAABIicfoElL7/0iJx74sAwAA6PV7DgBIjTWfxaD/ugIAAABIicfo8VH7/0iNNTISeP+6FgAAAEyJ/+jdUfv/gDwkAHUISInn6C9m//9MiWwkCEiJXCR4SIlsJBD2RCRQAXQKSIt8JGDor3MOAEyJ5+jnhA4ASI01QOwOAEiDxghMif/o5IQOAEiNfCR46OqEDgBBxkYgAWRIiwQlKAAAAEg7hCQQAQAAdRQxwEiBxBgBAABbQVxBXUFeQV9dw+ipdQ4AZg8fhAAAAAAAxkcgATHAw2YPH4QAAAAAAIB/IAB0A8YBATHAww8fQABVQVdBVkFVQVRTSIPsGEGJ1In1SYn+ZEiLBCUoAAAASIlEJBCJdCQMi0ckg/gBdBCD+AJ0EEUx/0Ux7ek+AQAAg/1/f01Mife+AQAAAOje4P//hcB4LkGJx0GJxUqNPO0AAAAASQN+MEEPtsyJ7onqRTHA6DgyAABJwechTQn96foAAABFMf9FMe1NCf3p7AAAAMdEJAgAAAAASI18JAhIjXQkDOgn3P//QYnHD7ZsJAhMife+AQAAAOhy4P//hcB4JUGJxYnDSI083QAAAABJA34wie6J6jHJRTHA6M8xAABJweUh6wVFMe0x20kJ3UGD/wJ8fESJ+EiJBCS7AQAAAOtQZi4PH4QAAAAAAA8fAInFQYnHSo08/QAAAABJA34wRInmRIniMclFMcDofzEAAEjB5SFMCf1MifdMie5IieroyuH//0mJxUiDwwFIORwkdB5ED7ZkHAhMife+AQAAAOjK3///hcB5pjHtRTH/68RJvwAAAAD/////TSHvZEiLBCUoAAAASDtEJBB1FUSJ6EwJ+EiDxBhbQVxBXUFeQV9dw+jYcw4ADx+EAAAAAABVQVdBVkFVQVRTSIHsOAEAAGRIiwQlKAAAAEiJhCQwAQAAgH8gAHQhMdtkSIsEJSgAAABIO4QkMAEAAA+FMAUAAEiJ2Om7BAAASYn0SIl8JAiKBgT/PBQPh1cCAABNiccx2w+2wEiNDeRJ8f9IYwSBSAHI/+BBi3QkGEEPt1QkAoPiAUiLfCQI6MP9///pXwQAAEiLfCQIgH8oAb4BAAAAg9YA6UQEAABJi1wkGIN7BAAPhGkEAABEijNFhPZBD5XHTItkJAhMiefoMuf//4N7EAAPhD4EAABIi2sI6x7oTfn//0iDxQhIY0MQSMHgA0gDQwhIOcUPhBoEAACLdQBFhPZ0C4P+QXwLg30EW3zUg/5CfQ+LVQSD+nl/IYP6QX0K6xqLVQSD+kF8EoP+en8NRIn4g/5bfAeD+mB/AjHAQYN8JCQCD7bITInndJHo/vP//+uPSYsfQYP5Ag+Myf7//0SJyEG9AQAAAEiJRCQY6xtNieaJ6UnB5iCJy0wJ80mDxQFJOcUPhJ7+//9LiyzvSYnsScHsIIXbdNZJid5Jwe4ghe0PhIsAAABIi3wkCL4BAAAA6Mfd//+FwHh/iUQkFInHSMHnA0iLRCQISAN4MIneieroFy8AAEWF9nRtRYXkdHJIi0QkCEiLQDBEifbrF2YuDx+EAAAAAAAPH0QAAIt0yASF9nRIifHR6UD2xgF17osUyInWwe4Eg/oQc+lBweQEidaD5ghECeaD4gcJ8okUyOsgidnpOv///0Ux9jHJSItEJBjpK////02J5usFRIlkyARIi0QkGItMJBTpE////0mLN0EPt1QkAoPiQMHqBkiLfCQI6CTh///pcAIAAEmLH0EPt1QkAoPiQMHqBkiLfCQISIne6APh//9IuQAAAAD/////SCHBidtICcvpdv3//0iNNfoTk/9IjVwkIEiJ37rlAwAA6MNZ//9IjXwkKEiNNYlSs/66GgAAAOidTPv/QQ+2NCRIicfogHYOAOlaAgAASItcJAhIid/o/uT//0iJ3zH2uv//EAAxyegd8v//SItbeOkO/f//SIt8JAgx9rr/AAAAMcno4eL//+m9AQAASIt8JAiAfygBvgIAAACD3gDpogEAAEiLfCQIvhAAAADpkwEAAEiLfCQIviAAAADphAEAAEGLdCQYSItsJAhIie/oBuP//0iJw4O9gAAAAAIPhaD8//9Iie++CAAAAOgp4///SInvSInGSIna6Lvd///pRwEAAEGLRCQYhcAPhI4AAACFwEyLbCQID46hAQAASb4AAAAA/////0mLRCQgizBBD7dUJAKD4gFMie/oavr//0iJw4ndTCHzQYN8JBgCfEdBvwEAAABICd1Ji0QkIEKLNLhBD7dUJAKD4gFMie/oN/r//0yJ70iJ7kiJwug53f//SInDid1MIfNJg8cBSWNEJBhJOcd8v0gJ6+nl+///SIt8JAjoceH//+mdAAAASYsfQYP5Ag+Myfv//0WJzr0BAAAADx+AAAAAAEmLFO9Ii3wkCEiJ3ujf3P//SInDSIPFAUk57nXj6Zj7//9JizdBD7dUJAKD4kDB6gZIi3wkCOgF4P//60RBi1QkGEmLH4XSD4ht+///SIt8JAhIid7oVuL//+slSIt8JAgPtkco6w4xwEiLfCQIgH8oAA+UwI00hQQAAADoz+H//2RIiwwlKAAAAEg7jCQwAQAAdW1IgcQ4AQAAW0FcQV1BXkFfXcNJi1wkeOkK+///SI01jhGT/0iNXCQgSInfuqsDAADoV1f//0iNfCQoSI01KAux/7oXAAAA6DFK+/9Iid/oKVj//0iLRCQIxkAgAenD+v//Mdsx7UgJ6+m5+v//6FpuDgBmLg8fhAAAAAAASItHGIlwHED2xiB0B8dHJAIAAABIiVdISIXSfioxwEiB+pEBAAByJEiBwnD+//9IidZIwe4DSIH6AAAACLgAAAABD0LG6wW4oIYBAIlHRImPgAAAAMNmLg8fhAAAAAAAVUFXQVZBVUFUU0iB7JgAAABIidVBifZJif9kSIsEJSgAAABIiYQkkAAAAA9XwA8RRCR4DxFEJGgPEUQkWA8RRCRIDxFEJDgPEUQkKA8RRCQYSMeEJIgAAAAAAAAAvzAAAADoGWsOAA9XwA8RAA8RQBAPEUAgD1fASIlEJBDGRCQYAEiNBefrDgBIg8AQSIlEJAhIx0QkOAAAAADHRCRAAAAAAA8RRCRoDxFEJFjHRCR4AACAP0jHhCSAAAAAAAAAAL+QAQAA6LVqDgBIicNIicfoyisAAEiJXCQgxkQkKADHRCQsAQAAAMZEJDAASLgAAAAAAQAAAEiJRCRISMdEJFAAAAAASI18JAi+AQAAAOiM2P//SGP4SMHnA0gDfCQ46HsqAABBD7dHAkiLTCQgiUEcqCB0CMdEJCwCAAAASIlsJFBIhe1+KjHASIH9kQEAAHIkSIHFcP7//0iJ6UjB6QNIgf0AAAAIuAAAAAEPQsHrBbighgEAiUQkTMeEJIgAAAAAAAAARIh0JDBMif/o7WoBAEiJBCRIhcAPhAUBAABIieUx20iJ7zH26PEBAABBicRIie8x9uiEAwAAQYnHSIssJItEJEwBwIlEJBxIjXwkCEiJ7jHSMcnoshQAAEmJxUiJ7+hXKwEAgHwkKAAPhbMAAADGRCQwAEiNfCQIvgEAAADomNf//4XAeBiJw0iNPN0AAAAASAN8JDgx9uheKQAA6wIx20iNfCQITInuSIna6ErZ//9IicNIi0QkIESIcAJIi0QkIIB4AgBBD7bMQQ+214nWD0TxD0TKQIgwSItEJCCISAFIi0QkIIlYCEiLRCQggDgAdSNIjWwkCEiJ7+h7BAAASInvSInGSIna6O3Y//9IicNIi0QkIIlYDIB8JCgAdDgx20iNfCQI6N/X//9kSIsEJSgAAABIO4QkkAAAAA+FxgAAAEiJ2EiBxJgAAABbQVxBXUFeQV9dw0iLXCQgg3sIAHUOg3sMAHUIx0QkSAEAAABIi0QkOEjHRCQ4AAAAAEiLe0hIiUNISInYSIX/dAroh2gOAEiLRCQgi0wkQIlLUItMJEiJSBBIi3wkIOgKMAAASIt8JCDosEAAAEiLfCQg6BY7AABIi0QkUEiFwH4eSItcJCBIY0sQSMHhA0gpyDHJSAVw/v//SA9JyOsKuQAAEABIi1wkIEiJS2BIx0QkIAAAAADpGf///+hdag4AZi4PH4QAAAAAAA8fAFVBV0FWQVRTSIPsEGRIiwQlKAAAAEiJRCQISIsfMcBIhdsPhCwBAACJ9YP+Aw+PIQEAAEmJ/ooDPBIPhLoAAAA8Cw+EpQAAADwFD4UCAQAAD7dDBmaFwA+E9QAAAEyNewhMiflmg/gBdARIi0sISIs56PomAQBIiQQkg8UBSInnie7oef///4TAD4S6AAAAD7d7BkjB5wPoRGcOAEmJxEiLBCRJiQQkD7dDBmaD+AIPgrwAAAC9AQAAAOsiDx9AAEiLPOnopyYBAEmJBOxIg8UBD7dDBkg5xQ+DkwAAAEyJ+WaD+AJy2UiLSwjr02aDewYCchVIi0MI6xMPt1MCMf8x9uhZNQEA6zFIjUMISIs46FsmAQBIiQQkg8UBSInnie7o2v7//0iLPCSEwHQfD7dzAotTGOg2NAEASYkGSInf6FsoAQCwAesLSIs8JOhOKAEAMcBkSIsMJSgAAABIO0wkCHUxSIPEEFtBXEFeQV9dww+38A+3UwJMiefokDMBAEmJBkiJ3+gVKAEATInn6G1mDgDrsOi2aA4AZg8fRAAAVUFXQVZBVFNIg+wQZEiLBCUoAAAASIlEJAhIix8xwEiF2w+EQwEAAIn1g/4DD484AQAASYn+igM8Ew+E0QAAADwLD4S8AAAAPAUPhRkBAAAPt0MGSIXAD4QMAQAATI17CEyJ+WaD+AF0BEiLSwiDwP9IizzB6FYlAQBIiQQkg8UBSInnie7odf///4TAD4TNAAAAD7d7BkjB5wPooGUOAEmJxEiLBCQPt0sGSYlEzPgPt0MGZoP4Ag+CygAAADHt6zNmLg8fhAAAAAAADx9AAEiLPOno9yQBAEmJBOxIg8UBD7dDBkiJwUiDwf9IOc0PjZMAAABMiflmg/gCctJIi0sI68xmg3sGAnIVSItDCOsTD7dTAjH/MfboojMBAOsxSI1DCEiLOOikJAEASIkEJIPFAUiJ54nu6MP+//9IizwkhMB0Hw+3cwKLUxjofzIBAEmJBkiJ3+ikJgEAsAHrC0iLPCTolyYBADHAZEiLDCUoAAAASDtMJAh1MUiDxBBbQVxBXkFfXcMPt/APt1MCTInn6NkxAQBJiQZIid/oXiYBAEyJ5+i2ZA4A67Do/2YOAGYuDx+EAAAAAAAPH0QAAFVBV0FWQVRTSYn8vgEAAADoi9L//4XAeCdBicaJx0jB5wNJA3wkMDH2uv8AAAAxyUUxwOjoIwAARInzRAHz6wUx20Ux9kyJ574BAAAA6E7S//+FwHh6icVBicdKjTz9AAAAAEkDfCQwMfYx0uifIwAASYtEJDCF23RLienB4QTrKmYuDx+EAAAAAAAPH0QAAIs00InzwesEifeD5wgJz4PmBwn+iTTQhdt0FYna0er2wwF03Itc0ASJbNAEhdt160mLRCQwRol0+ARIweUh6wUx7UUx/0wJ/UiJ6FtBXEFeQV9dw2YuDx+EAAAAAABmkEFWU1CAfyAAdAcxwOmmAAAASIn7TIt3GEGDfggAdQ5Bg34MAHUHx0NAAQAAAEiLQzBIx0MwAAAAAEmLfkhJiUZISIX/dAXoZWMOAItDOEGJRlCLQ0BIi0sYiUEQSIt7GOjrKgAASIt7GOiSOwAASIt7GOj5NQAASItLSEiFyX4eSItDGEhjUBBIweIDSCnRMdJIgcFw/v//SA9J0esJSItDGLoAABAASIlQYEiLQxhIx0MYAAAAAEiDxAhbQV7DkEiJ8jH26Ub3//9mDx9EAABIifK+AQAAAOkz9///Dx8AVUFXQVZTSIHsqAAAAEiJ1UGJ9kmJ/2RIiwQlKAAAAEiJhCSgAAAAD1fADxGEJIgAAAAPEUQkeA8RRCRoDxFEJFgPEUQkSA8RRCQ4DxFEJChIx4QkmAAAAAAAAAC/MAAAAOhKYg4AD1fADxEADxFAEA8RQCAPV8BIiUQkIMZEJCgASI0FGOMOAEiDwBBIiUQkGEjHRCRIAAAAAMdEJFAAAAAADxFEJHgPEUQkaMeEJIgAAAAAAIA/SMeEJJAAAAAAAAAAv5ABAADo42EOAEiJw0iJx+j4IgAASIlcJDDGRCQ4AMdEJDwBAAAAxkQkQABIuAAAAAABAAAASIlEJFhIx0QkYAAAAABIjXwkGL4BAAAA6LrP//9IY/hIwecDSAN8JEjoqSEAAEEPt0cCSItMJDCJQRyoIHQIx0QkPAIAAABIiWwkYEiF7X4qMdtIgf2RAQAAciRIgcVw/v//SInoSMHoA0iB/QAAAAi7AAAAAQ9C2OsFu6CGAQCJXCRcRIm0JJgAAABMif/oI2IBAEiFwA+EhwEAAEiJxQHbiVwkLDHbSI18JBhIicYx0jHJ6A4MAABJicdIie/osyIBAIB8JDgAD4VXAQAASItEJDDGAAFIi0QkMMZAAQFFhfZ1HkiNXCQYSInf6EX8//9Iid9IicZMifrot9D//0mJx0iLRCQwRIl4CEiLRCQwRIl4DIB8JDgAD4UEAQAASItcJDCDewgAdQ6DewwAdQjHRCRYAQAAAEiLRCRISMdEJEgAAAAASIt7SEiJQ0hIidhIhf90Cuh7YA4ASItEJDCLTCRQiUtQi0wkWIlIEEiLfCQw6P4nAABIi3wkMOikOAAASIt8JDDoCjMAAEiLRCRgSIXAfh5Ii1wkMEhjSxBIweEDSCnIMclIBXD+//9ID0nI6wq5AAAQAEiLXCQwSIlLYEjHRCQwAAAAAMZEJBcASI0Fr7aw/kiJBCRIx0QkCAwAAABIjUQkF0iJ4kiJ30iJ1rkBAAAAQbgDAAAARTHJagBQ6N6QAABIg8QQgHwkFwB0EkiJ3+gLIQAASInf6LNfDgAx20iNfCQY6JfO//9kSIsEJSgAAABIO4QkoAAAAHURSInYSIHEqAAAAFtBXkFfXcPozmEOAGYuDx+EAAAAAAAPH0AA6Zv8///MzMzMzMzMzMzMzFNIiftIjQWN4A4ASIPAEEiJB+hpAAAASItbCEiF23QRSInf6NgCAABIid9b6S9fDgBbw8zMzMzMzMzMzMzMzMwPC8zMzMzMzMzMzMzMzMzMSInQw8zMzMzMzMzMzMzMzEiJyMPMzMzMzMzMzMzMzMxIifDDzMzMzMzMzMzMzMzMVUFXQVZBVUFUU0iB7BgBAABkSIsEJSgAAABIiYQkEAEAAEiLRwhIhcAPhCMCAABIg3goAA+EGAIAAEmJ/MYEJABMjXQkCEiNfCR4TI18JBBIjQVJ1w4ASI1IGEiJTCQISIPAQEiJRCR4TIn+6I9vDgBIx4QkAAEAAAAAAADHhCQIAQAA/////0iNHaHWDgBMjWsYTIlsJAhIg8NASIlcJHhMif/oZ28OAEiNLVjXDgBIg8UQSIlsJBAPV8APEUQkUA8RRCRgx0QkcBAAAABIjTVGL7P+uiMAAABMiffo/jv7/0iNNV+U7f+6AQAAAEiJx+jqO/v/SInHvpcAAADozWUOAEiNNXevoP+6AgAAAEiJx+jJO/v/SI01xPrr/7oQAAAATIn36LU7+/+APCQAdQhIiefoB1D//0yJbCQISIlcJHhIiWwkEPZEJFABdApIi3wkYOiHXQ4ATIn/6L9uDgBIjTUY1g4ASIPGCEyJ9+i8bg4ASI18JHjowm4OAEmLXCQISItDKEiFwA+EwgAAAEm+wcDAwMDAwMDrFg8fQABJi1wkCEiLQyhIhcAPhKAAAABIi2sISItzIEiNDDBIg8H/SInISffmSMHqBkiLRNUASGvSVUgp0UiNDElIweEESIt8CChIhf90EujxXA4ASYtcJAhIi2sISItzIEiLQxBIi0soSI1R/0iJUyhIicJIKepIiddIwf8DSGv/VUiDx/9IhdJID0T6SAHOSCn3SIPHAUiB/6oAAAAPgmH///9Ii3j46JhcDgBIg0MQ+OlO////ZEiLBCUoAAAASDuEJBABAAB1EkiBxBgBAABbQVxBXUFeQV9dw+i0Xg4AzMzMzEFXQVZTSYn+SItfCEyLfxBIx0coAAAAAEyJ+Egp2EjB+ANIg/gDcjAPH4QAAAAAAEiLO+goXA4ASYteCE2LfhBIg8MISYleCEyJ+Egp2EjB+ANIg/gCd9hIg/gBdA1Ig/gCdRC4VQAAAOsFuCoAAABJiUYgTDn7dDgPH4AAAAAASIs76NhbDgBIg8MITDn7de9Ji0YQSInBSStOCHQTSIPB+EjB6QNI99FIjQTISYlGEEmLPkiF/3QKW0FeQV/pnVsOAFtBXkFfw8zMzMzMzMxVQVdBVkFVQVRTUEiJzUmJ/kyLPkyLbwhNhe10a0yJ6EjR6Ei5VVVVVVVVVVVIIcFMiehIKchIuTMzMzMzMzMzSInCSCHKSMHoAkghyEgB0EiJwUjB6QRIAcFIuA8PDw8PDw8PSCHISLkBAQEBAQEBAUgPr8hIwek4SIP5AXcRTY1l/00h/Os0RTHk6YwAAABNifxNOe9yJEyJ+EwJ6EjB6CB0DUyJ+DHSSff1SYnU6wtEifgx0kH39UGJ1EmLBkqLHOBIhdt0VEmNdf/rFGaQSCHwTDngdURMOXsQD4Q9AQAASIsbSIXbdDJIi0MITDn4dOWD+QF22Ew56HLWSInCTAnqSMHqIHQKMdJJ9/VIidDrwDHSQff1idDrt78gAAAA6EpaDgBIicNIi0UASIsASIlDEMdDGAAAAABMiXsISMcDAAAAAEmLRhhIg8ABeCTzSA8qwE2F7Xk0TInoSNHoRInpg+EBSAnB80gPKtHzD1jS6x9IicFI0emD4AFICcjzSA8qwPMPWMBNhe14zPNJDyrV80EPEE4g8w9Z0Q8uwncJTYXtD4WfAAAATInoTAHovQEAAABJg/0Dcg1JjU3/Me1Jhc1AD5XFSAnF8w9eweiLYw4A80gPLMBIicHzD1wF1/mX/kjB+T/zSA8s8EghzkgJxkg59UgPQ/VMiffozQAAAE2LbghNjWX/TYXldQVNIfzrNU0573MMTYn86ysx0umYAAAATIn4TAnoSMHoIHQNTIn4MdJJ9/VJidTrC0SJ+DHSQff1QYnUSYsGSosM4EiFyXQLSIsBSIkDSIkZ61ZJjU4QSYtWEEiJE0mJXhBKiQzgSIsDSIXAdDtIi0AISY1N/0mFzXUFSCHI6yJMOehyHUiJwUwJ6UjB6SB0CjHSSff1SInQ6wcx0kH39YnQSYsOSIkcwUmDRhgBsgFIidhIg8QIW0FcQV1BXkFfXcNBV0FWU0mJ/rsCAAAASIP+AXQZSI1G/0iFxnUFSInz6wtIiffod2IOAEiJw02LfghMOfsPh+0AAAAPg/cAAABJi0YYSIXAeAfzSA8qwOsVSInBSNHpg+ABSAnI80gPKsDzD1jA80EPXkYg6CFiDgDzSA8syEiJyvMPXAVt+Jf+80gPLMBIwfo/SCHQSAnISYP/A3J+TIn5SNHpSLpVVVVVVVVVVUghykyJ+Ugp0Ui6MzMzMzMzMzNIic5Iwe4CSCHRSCHWSAHOSInxSMHpBEgB8Ui6Dw8PDw8PDw9IIcpIuQEBAQEBAQEBSA+vykjB6TiD+QF3HUiD+AJyH0iDwP9ID73Ig/E/9tm4AQAAAEjT4OsISInH6IZhDgBIOcNID0LYTDn7cxBMifdIid5bQV5BX+kKAAAAW0FeQV/DzMzMzEFWU1BIiftIhfZ0RUmJ9kiJ8EjB6D0PhUECAABKjTz1AAAAAOg3Vw4ASIs7SIkDSIX/dAXoR1cOAEyJcwhNjUb/RInwg+ADSYP4A3MlMcnrZ0iLO0jHAwAAAABIhf90BegbVw4ASMdDCAAAAADp4wEAAEyJ8kiD4vwxyQ8fRAAASIszSMcEzgAAAABIizNIx0TOCAAAAABIizNIx0TOEAAAAABIizNIx0TOGAAAAABIg8EESDnKdchIhcB0GA8fAEiLE0jHBMoAAAAASIPBAUiDwP9160yLWxBNhdsPhHMBAABIjXsQTYtTCEyJ8EjR6Ei5VVVVVVVVVVVIIcFMifBIKchIuTMzMzMzMzMzSInCSCHKSMHoAkghyEgB0EiJwUjB6QRIAcFIuA8PDw8PDw8PSCHISbkBAQEBAQEBAUwPr8hJwek4SYP5AXcFTSHC6ylNOfJyJEyJ0EwJ8EjB6CB0DUyJ0DHSSff2SYnS6wtEidAx0kH39kGJ0kiLA0qJPNDrEGYuDx+EAAAAAAAPHwBJiftJiztIhf8PhLYAAABIi0cIQYP5AXcXTCHATDnQdN/rMmYuDx+EAAAAAAAPHwBMOfByG0iJwUwJ8UjB6SB0cjHSSff2SInQDx+AAAAAAEw50HSrSIsLSIM8wQBIifp0QmYuDx+EAAAAAAAPH0AASInRSIsSSIXSdApIi3cQSDtyEHTrSYkTSIsTSIsUwkiLEkiJEUiLC0iLBMFIiTjpX////0yJHMFJiftJicLpUP///zHSQff2idBMOdAPhD3////rkEiDxAhbQV7D6A5aDgDMzMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNIgewoAQAAiUwkBEmJ1EmJ9kiJ+2RIiwQlKAAAAEiJhCQgAQAA6Pz1//9NhfYPhO4DAABIi2sISIt1CEiLRRBIKfBIicFIwfkDSGvRVUiDwv9IhcBID0TQSItNKEgDTSBIOcp1FEiJ7+g5BQAASIt1CEiLTSBIA00oSLrBwMDAwMDAwEiJyEj34kjB6gZIiwTWSGvSVUgp0UiNDElIweEETIk0CMdECAj/////TIlkCAzrOw8fAEiJyEi6wcDAwMDAwMBI9+JIweoGSIsE1khr0lVIKdFIjQxJSMHhBEyJJAjHRAgI/////0yJdAgMD1fADxFECBRIx0QIKAAAAABIg0UoAesQSI0UCEiDwhxMiSKDRAgIAUiLQwhIi0goSItwCEiLQCBIAcFIg8H/SInISLrBwMDAwMDAwEj34kjB6gZMizTWSGvCVUgpwUyNPElJwecES4ssPk+NLD5Jg8UIQ4N8Pgj/dC4Pt00GhckPhKIAAABmg/kBD4SoAAAASItFCOmjAAAAZi4PH4QAAAAAAA8fRAAAi0MUjUj/iUsUhcAPjhUBAADGRCQQAEuLVD4MSIsDSInfSInuSI1MJBD/UBBLiUQ+FIB8JBAAD4X/AAAAQcdFAAAAAABLx0Q+KAAAAABED7dlBk2F5A+Ed////0uNDD5Ig8EoZkGD/AEPhYYBAABLjQQ+SIPAHEiJAelU////ZpBFi00A62pmLg8fhAAAAAAASI1FCEWLTQBBOcl9U4B8JAQAD4SIAQAARYXJD45/AQAAQY1J/0iLFMhKOxTID4VtAQAAS4tEPihIizTISIsDSInf/1AgS4tMPihJY1UASIkE0UGDRQAB6ZT+//8PH0AAS4tUPgxLi0w+FE+LRD4oSIsDSInfSInu/1AYSYnEZoN9BgJyKUuLfD4oSIX/dB/ovFQOAOsYxkMQAUuLVD4MSIsDSInfSInu/1AoSYnESItrCEiLRRBIi00oSI1R/0iJVShIicJIK1UISInWSMH+A0hr9lVIg8b/SIXSSA9E8kgDTSBIKc5Ig8YBSIH+qgAAAHIOSIt4+OjkUQ4ASINFEPhIi0MISItIKEiFyQ+EQAIAAEiLcAhIi0AgSAHBSIPB/0iJyEi6wcDAwMDAwMBI9+JIweoGSIsE1khr0lVIKdFIjQxJSMHhBEiLVAgoSIXSD4SK/f//SGN0CAhIjRTy6YT9//9JweQDTInn6NBTDgBIiUQkCEiJxzH2TIni6O5UDgBLjQQ+SIPAKEiLTCQISIkI6av9//9mDx+EAAAAAABJY8lIi2sITIskyE+LdD4USIt1CEiLRRBIKfBIicFIwfkDSGvRVUiDwv9IhcBID0TQSItNKEgDTSBIOcoPha78//9Iie/olgEAAEiLdQhIi00gSANNKOmV/P//xkQkEABMjXQkGEiNvCSIAAAATI1sJCBIjQWHyQ4ASI1IGEiJTCQYSIPAQEiJhCSIAAAATInu6MphDgBIx4QkEAEAAAAAAADHhCQYAQAA/////0iNHdzIDgBMjXsYTIl8JBhIg8NASImcJIgAAABMie/on2EOAEiNLZDJDgBIg8UQSIlsJCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTV7IbP+uiMAAABMiffoMy77/0iNNZSG7f+6AQAAAEiJx+gfLvv/SInHvqQAAADoAlgOAEiNNayhoP+6AgAAAEiJx+j+Lfv/SI01n/qg/7oJAAAATIn36Oot+/+AfCQQAHUKSI18JBDoOUL//0yJfCQYSImcJIgAAABIiWwkIPZEJGABdApIi3wkcOi2Tw4ATInv6O5gDgBIjTVHyA4ASIPGCEyJ9+jrYA4ASI28JIgAAADo7mAOAGRIiwQlKAAAAEg7hCQgAQAAdRVMieBIgcQoAQAAW0FcQV1BXkFfXcPosVEOAMxBV0FWU0iD7EBJif5kSIsEJSgAAABIiUQkOEiLRyBIg/hVcjdIg8CrSYlGIEjHRCQQAAAAAEmLRghIiwhIiUwkEEiDwAhJiUYISI10JBBMiffomgEAAOljAQAASYtGEEmLThhIicNJK14ISMH7A0iJykkrFkiJ1kjB/gNIOfNzKr/wDwAASDnBD4S9AAAA6K1ODgBIiUQkEEiNdCQQTIn36MsDAADpFAEAAEiJ0EjB+AJIhdJBvwEAAABMD0X4SY1GGEiJRCQwTIn4SMHoPQ+FBAEAAEqNPP0AAAAA6F9ODgBIiUQkEEiNDNhIiUwkIEiJTCQYSo0E+EiJRCQov/APAADoOU4OAEiJRCQISI18JBBIjXQkCOhFCAAASYteEEk7Xgh0QkyNfCQQZg8fRAAASIPD+EyJ/0iJ3uihCgAASTteCHXrSYtGEOsf6PBNDgBIiUQkEEiNdCQQTIn36I4FAADpxf7//0iJ2EmLPg8oRCQQSIl8JBBBDxEGSIlcJBgPKEQkIEiJRCQgSYtOGEEPEUYQSIlMJChIicFIKdl0FEiDwfhIwekDSPfRSI0EyEiJRCQgSIX/dAXook0OAGRIiwQlKAAAAEg7RCQ4dQ9Ig8RAW0FeQV/D6HNSDgDozk8OAMzMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Mi2cQTDtnGA+FOAIAAEmLD0mLXwhIidhIKch2UUjB+ANIjUgBSMHpP0gByEiDwAFI0fhIicVI991IweADSYndSSnFSSncdBJMie9Iid5MieLoaVYOAEmLXwhNAexNiWcQSI0E60mJRwjp2AEAAEyJ4EiJDCRIKchIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FyQEAAEmJ7UnB7QJIjTztAAAAAOiTTA4ATo0U6EyNBOhMidFMOeMPhGIBAABNieNJKdtJg8P4SYP7GHMITInR6TcBAABKjRToTInZSIPh+EiNNBlIg8YISDnycxhKjQzpSAHBSIPBCEg52XYITInR6QcBAABJwesDSYPDAU2J2UmD4fxJjVH8SInRSMHpAkiDwQGJz4PnA0iD+gxzBDHS63JKjTToSIPGcEiD4fxI99kx0mYPH4QAAAAAAA8QBNMPEEzTEA8RRNaQDxFM1qAPEETTIA8QTNMwDxFE1rAPEUzWwA8QRNNADxBM01APEUTW0A8RTNbgDxBE02APEEzTcA8RRNbwDxEM1kiDwhBIg8EEdahIhf90TkiNDNNIg8EQScHlA0iNFNUAAAAATAHqSAHCSIPCEEjB5wUx9mYuDx+EAAAAAAAPH0QAAA8QRDHwDxAMMQ8RRDLwDxEMMkiDxiBIOfd15UuNDMpNOct0H0qNHMsPH4QAAAAAAEiLE0iJEUiDwQhIg8MITDnjde1JiQdNiVcISYlPEE2JRxhJicxIizwkSIX/dAnoHUsOAE2LZxBJiwZJiQQkSYNHEAhIg8QIW0FcQV1BXkFfXcPo6U8OAMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/TItnEEw7ZxgPhTgCAABJiw9Ji18ISInYSCnIdlFIwfgDSI1IAUjB6T9IAchIg8ABSNH4SInFSPfdSMHgA0mJ3UkpxUkp3HQSTInvSIneTIni6OlTDgBJi18ITQHsTYlnEEiNBOtJiUcI6dgBAABMieBIiQwkSCnISInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhckBAABJie1Jwe0CSI087QAAAADoE0oOAE6NFOhMjQToTInRTDnjD4RiAQAATYnjSSnbSYPD+EmD+xhzCEyJ0ek3AQAASo0U6EyJ2UiD4fhIjTQZSIPGCEg58nMYSo0M6UgBwUiDwQhIOdl2CEyJ0ekHAQAAScHrA0mDwwFNidlJg+H8SY1R/EiJ0UjB6QJIg8EBic+D5wNIg/oMcwQx0utySo006EiDxnBIg+H8SPfZMdJmDx+EAAAAAAAPEATTDxBM0xAPEUTWkA8RTNagDxBE0yAPEEzTMA8RRNawDxFM1sAPEETTQA8QTNNQDxFE1tAPEUzW4A8QRNNgDxBM03APEUTW8A8RDNZIg8IQSIPBBHWoSIX/dE5IjQzTSIPBEEnB5QNIjRTVAAAAAEwB6kgBwkiDwhBIwecFMfZmLg8fhAAAAAAADx9EAAAPEEQx8A8QDDEPEUQy8A8RDDJIg8YgSDn3deVLjQzKTTnLdB9KjRzLDx+EAAAAAABIixNIiRFIg8EISIPDCEw543XtSYkHTYlXCEmJTxBNiUcYSYnMSIs8JEiF/3QJ6J1IDgBNi2cQSYsGSYkEJEmDRxAISIPECFtBXEFdQV5BX13D6GlNDgDMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0iLXwhIOx90CEmJ3OkhAgAATYtvEEmLRxhJOcVzV0wp6EjB+ANIjUgBSMHpP0iNLAhIg8UBSNH9TI0k7QAAAABNAexMiepIKdp0Ekkp1EyJ50iJ3uhmUQ4ATYtvEE2JZwhIjQTtAAAAAEwB6EmJRxDpvQEAAEgp2EiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4W2AQAATI1lA0nB7AJIjTztAAAAAOiSRw4ATYnjTo0k4EyNBOhMieFMOesPhE4BAABNiepJKdpJg8L4TInhSInaSYP6GA+CIQEAAEqNFNhMidFIg+H4SI00GUiDxghIOfJzG0qNDNlIjTQISIPGCEyJ4UiJ2kg53g+H7gAAAEnB6gNJg8IBTYnRSYPh/EmNUfxIiddIwe8CSIPHAYn5g+EDSIP6DHMEMfbraUqNFNhIg8JwSIPn/Ej33zH2DxAE8w8QTPMQDxFE8pAPEUzyoA8QRPMgDxBM8zAPEUTysA8RTPLADxBE80APEEzzUA8RRPLQDxFM8uAPEETzYA8QTPNwDxFE8vAPEQzySIPGEEiDxwR1qEiFyXQ+SI0U80iDwhBJweMDSY0080gBxkiDxhBIweEFMf9mDx9EAAAPEEQ68A8QDDoPEUQ+8A8RDD5Ig8cgSDn5deVLjQzMTTnKdB9KjRTLDx+EAAAAAABIizJIiTFIg8EISIPCCEw56nXtSYkHTYlnCEmJTxBNiUcYSIXbdAxIid/oMUYOAE2LZwhJiwZJiUQk+EmDRwj4SIPECFtBXEFdQV5BX13D6PxKDgDMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0yLZxBMO2cYD4U4AgAASYsPSYtfCEiJ2EgpyHZRSMH4A0iNSAFIwek/SAHISIPAAUjR+EiJxUj33UjB4ANJid1JKcVJKdx0EkyJ70iJ3kyJ4uj5Tg4ASYtfCE0B7E2JZxBIjQTrSYlHCOnYAQAATIngSIkMJEgpyEiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4XJAQAASYntScHtAkiNPO0AAAAA6CNFDgBOjRToTI0E6EyJ0Uw54w+EYgEAAE2J40kp20mDw/hJg/sYcwhMidHpNwEAAEqNFOhMidlIg+H4SI00GUiDxghIOfJzGEqNDOlIAcFIg8EISDnZdghMidHpBwEAAEnB6wNJg8MBTYnZSYPh/EmNUfxIidFIwekCSIPBAYnPg+cDSIP6DHMEMdLrckqNNOhIg8ZwSIPh/Ej32THSZg8fhAAAAAAADxAE0w8QTNMQDxFE1pAPEUzWoA8QRNMgDxBM0zAPEUTWsA8RTNbADxBE00APEEzTUA8RRNbQDxFM1uAPEETTYA8QTNNwDxFE1vAPEQzWSIPCEEiDwQR1qEiF/3ROSI0M00iDwRBJweUDSI0U1QAAAABMAepIAcJIg8IQSMHnBTH2Zi4PH4QAAAAAAA8fRAAADxBEMfAPEAwxDxFEMvAPEQwySIPGIEg593XlS40Myk05y3QfSo0cyw8fhAAAAAAASIsTSIkRSIPBCEiDwwhMOeN17UmJB02JVwhJiU8QTYlHGEmJzEiLPCRIhf90CeitQw4ATYtnEEmLBkmJBCRJg0cQCEiDxAhbQVxBXUFeQV9dw+h5SA4AzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Ii18ISDsfdAhJidzpIQIAAE2LbxBJi0cYSTnFc1dMKehIwfgDSI1IAUjB6T9IjSwISIPFAUjR/UyNJO0AAAAATQHsTInqSCnadBJJKdRMiedIid7odkwOAE2LbxBNiWcISI0E7QAAAABMAehJiUcQ6b0BAABIKdhIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FtgEAAEyNZQNJwewCSI087QAAAADookIOAE2J406NJOBMjQToTInhTDnrD4ROAQAATYnqSSnaSYPC+EyJ4UiJ2kmD+hgPgiEBAABKjRTYTInRSIPh+EiNNBlIg8YISDnycxtKjQzZSI00CEiDxghMieFIidpIOd4Ph+4AAABJweoDSYPCAU2J0UmD4fxJjVH8SInXSMHvAkiDxwGJ+YPhA0iD+gxzBDH262lKjRTYSIPCcEiD5/xI998x9g8QBPMPEEzzEA8RRPKQDxFM8qAPEETzIA8QTPMwDxFE8rAPEUzywA8QRPNADxBM81APEUTy0A8RTPLgDxBE82APEEzzcA8RRPLwDxEM8kiDxhBIg8cEdahIhcl0PkiNFPNIg8IQScHjA0mNNPNIAcZIg8YQSMHhBTH/Zg8fRAAADxBEOvAPEAw6DxFEPvAPEQw+SIPHIEg5+XXlS40MzE05ynQfSo0Uyw8fhAAAAAAASIsySIkxSIPBCEiDwghMOep17UmJB02JZwhJiU8QTYlHGEiF23QMSInf6EFBDgBNi2cISYsGSYlEJPhJg0cI+EiDxAhbQVxBXUFeQV9dw+gMRg4AzMzMzMzMzMzMzMzMifGNcT+FyQ9J8YnywfoGSGPCSIsEx4PmwCnxSNPoSNPgSIXAdArB4gZID7zACdDDuP////+D+gJ0LYP6AXQVhdJ1NkiLTwhIhcl0CEgPvMGDyEDDSItPEEiFyXQKSA+8wQ2AAAAAw0iLTxhIhcl0CUgPvMENwAAAAMNmDx9EAADB5gSLB4PgCAnwiQeJVwTDQcHgBIsHg+AIRAHAg8ACiQdAiHcEiFcFiE8Gww8fQADB4gSLB4PgCAHQg8ADiQeJdwTDZi4PH4QAAAAAAA8fAMHiBIsHg+AIAdCDwASJB4l3BMNmLg8fhAAAAAAADx8AiweD4PiDyAWJB4l3BMNmkIsHg+D4g8gGiQfDDx9EAACADwfDZi4PH4QAAAAAAGaQU0iJ+0SLDkSJyIPgB0iNDdAZ8f9IYwSBSAHI/+BBwekEi04ESI01ZVLn/+sOQcHpBItOBEiNNbDcXP9Iid9EicrrWoB+BgBIjQUt4bD/SI0Vw9zr/0gPRNAPtk4ERA+2RgVBwekESI01iN6w/0iJ3zHA6GlBAADrZ4tWBEHB6QRIjTWNNKb+6w6LVgRBwekESI01bLun/0iJ30SJyTHA6DxBAADrOotWBEiNNWSVr/9Iid/rEUHB6QRIjTW5HqX/SInfRInKMcDoE0EAAOsRSI0115Ww/kiJ3zHA6ABBAABIidhbw2YuDx+EAAAAAACQxkcEAMcHAAAAAA9XwA8RRwi4/////0iJRxjHRyAAAAAASMdHSAAAAADHR1AAAAAADxFHWA8RR2gPEYd4AQAASMeHiAEAAAAAAADDDx9EAABTSIn7SIt3cOiTbwAASItzaEiJ3+iHbwAASIt7WEiF/3QF6PlADgBIi3tISMdDSAAAAABIhf90Blvpcj4OAFvDQVdBVkFVQVRTSIPsMEiJ80mJ/mRIiwQlKAAAAEiJRCQogH4DAHQTi1MITIn3SIne6NsAAADpowAAAA9XwA8pRCQQDykEJEjHRCQgAAAAAESLaxDHBCQAAAAARYXtD4ibAAAATo0krQAAAABMiefo3T0OAEmJx0iJRCQIRIlsJBBMiefoyD0OAEiJRCQYRIlsJCBIY0sISIXJdBZBOc12EUHHBI8AAAAAiQjHBCQBAAAASIniTIn3SIne6HEBAABIi3wkGEiF/3QF6KI9DgBIi3wkCEiF/3QF6JM9DgBkSIsEJSgAAABIO0QkKHUWTInwSIPEMFtBXEFdQV5BX8PoXUIOAOi4Pw4ADx+EAAAAAABVQVdBVkFVQVRTSIPsKEmJ/mRIiwQlKAAAAEiJRCQgD1fADxEHSMdHEAAAAAA5VhAPjrgAAABJifdIY9pMjSzdAAAAAEyNZCQISI0tB8Ge/+sfZi4PH4QAAAAAAA8fQABIg8MBSWNHEEmDxQhIOcN9fUmLR0hKjTQoQvYEKAh1MEyJ5+jo/P//9kQkCAFIjUwkCXQFSItMJBhMifdIjTXo2ev/6ypmLg8fhAAAAAAAkEyJ5+i4/P//9kQkCAFIjUwkCXQFSItMJBhMifdIie6J2jHA6LhBAAD2RCQIAXSBSIt8JBjodzwOAOly////ZEiLBCUoAAAASDtEJCB1EkyJ8EiDxChbQVxBXUFeQV9dw+ibPg4AZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIPsOEiJdCQQZEiLBCUoAAAASIlEJDAPV8APEQdIiXwkCEjHRxAAAAAAgzoAD4RDAQAASInTTItqGOs6iTyOSGMDSItTGIkMgoMDAUGLAA8fgAAAAACoBg+EyAAAAEmDxQRIYwNIweACSANDGEk5xQ+EAAEAAEWLZQBNY/xIi0QkEEyLcEhLjSz+SI18JBhIie7or/v///ZEJBgBSI1MJBl0BUiLTCQoSIt8JAhIjTV5v57/RIniMcDoqEAAAPZEJBgBdApIi3wkKOhnOw4Ai0UASIP4EA+Cev///0iJwUjB6QRIi1MYMfZIhdJ0A4tzIDnOD4Zd////SYnoSItzCEhjLI6LOzn9D4Mu////OQyqD4Ul////6Tr///9mLg8fhAAAAAAAS2NE/gRIhcAPhCr///9Ii0sYMdJIhcl0A4tTIDnCD4YU////SItTCEhjPIKLMzn3cwk5BLkPhP3+//+JNIJIYwtIi1MYiQSKgwMB6ej+//9kSIsEJSgAAABIO0QkMHUUSItEJAhIg8Q4W0FcQV1BXkFfXcPo5zwOAA8fgAAAAABBV0FWQVVBVFNIg+wwSInzSYn+ZEiLBCUoAAAASIlEJCiAfgMAdBOLUwxMifdIid7o+/z//+mjAAAAD1fADylEJBAPKQQkSMdEJCAAAAAARItrEMcEJAAAAABFhe0PiJsAAABOjSStAAAAAEyJ5+j9OQ4ASYnHSIlEJAhEiWwkEEyJ5+joOQ4ASIlEJBhEiWwkIEhjSwxIhcl0FkE5zXYRQccEjwAAAACJCMcEJAEAAABIieJMifdIid7okf3//0iLfCQYSIX/dAXowjkOAEiLfCQISIX/dAXoszkOAGRIiwQlKAAAAEg7RCQodRZMifBIg8QwW0FcQV1BXkFfw+h9Pg4A6Ng7DgAPH4QAAAAAAEFXQVZBVFNQSYn0SYn+D1fADxEHSMdHEAAAAABMjT3HCrP+MdLrJmYPH4QAAAAAAEiJy0yJ90yJ/onZMcDobj4AAI1TAYH7/wAAAH09SGPCRQ+2RAR4SD0AAQAAuf8AAABID03ISIPA/0iJzkj33pBIjTwGSIP//3S2SI1YAUU4RAR6SInYdOjrqUyJ8EiDxAhbQVxBXkFfww8fgAAAAABTSIPsMEiJ+2RIiwQlKAAAAEiJRCQoSIk8JEiLh3gBAABIg/j/dDRIjbt4AQAASI1EJAhIiUQkGEiJ4EiJRCQgSI1EJBhIiUQkEEiNFX8iAABIjXQkEOilRw4Ai0MYZEiLDCUoAAAASDtMJCh1BkiDxDBbw+i3Og4ADx+AAAAAAFVBV0FWQVVBVFNQRItnEEWF5A+ILAMAAEmJ/U6NPKUAAAAATIn/6BU4DgBJicZMif/oCjgOAEljTQhFMcBIhcl0FUE5zHYQQccEjgAAAACJCEG4AQAAAESJwkiNNJUAAAAASIX2D4T8AAAATI0ckEmJwmYuDx+EAAAAAAAPH0AATGPJSYt9SEKLDM+Jyg8fAInTg/oQchmJ3sHuBIsU94nVg+UHg/0GdOfrBw8fRAAAMfaJ2oPi8IPhDwnRQokMz4P7EHIkQTn0dh+J8kljHJZEOcNzBTk0mHQPRYkElkGJM0GDwAFCiwzP9sEHdTVCi2zPBIXtdCVJi3VIDx9EAABIY9WLHNaJ2YPhB4P5BnUrid3B7QSD+w935usCMe1CiWzPBEmDwgRJY8hMjRyITTnadDBBiwrpRf///0KJbM8EQTnsdt5JYwyWRDnBcwU5LIh00EWJBJZJY8iJLIhBg8AB68BBi00IRTHbhcl0GEE5zHYTSGPRQccElgAAAACJCEG7AQAAAESJ2UiNFI0AAAAASIXSD4SMAQAASI0MiEG5SAAAAEG4lwAAAEiJx+slg+X4g80BQoks+w8fgAAAAABIg8cESWPLSI0MiEg5zw+EUgEAAExjP0mLXUhCiyz7SIP9EHIoSInqSMHqBEE51HYcSWM0lkQ53nMFORSwdA5FiRyWiRFBg8MBQoss+0D2xQd0bUD2xQd1p4nqweoETmNU+wSLDNOJzoPmB4P+Ag+FogAAAInOwe4ERDn+D4WUAAAAgHzTBAAPhYkAAACAfNMF/w+FfgAAAEyJ0g8fRAAAixTTidaD5gdBD6Pxc0pIweoE6+xmLg8fhAAAAAAAZpBKY0z7BEiFyXSJQTnMdoRJYxSORDnacwk5DJAPhHL///9FiRyOSWPTiQyQQYPDAUKLLPvpW////0EPo/ByGOns/v//Zi4PH4QAAAAAAA8fAMHpBIsMy4nKg+IHQQ+j0XLvQQ+j0A+C1f7//0KLDNOJyoPiB4P6Ag+Fw/7//8HpBEQ5+Q+Ft/7//0KAfNMEAA+Fq/7//0KAfNMF/w+Fn/7//+mJ/v//SInH6DI1DgBMifdIg8QIW0FcQV1BXkFfXekcNQ4A6Ac6DgAPH4AAAAAASIsHSDnwD4SOAAAAilb/McmA+goPlMFIi38ISAHHSDn3D4SPAAAASDn3dg2JyoPKAoA+Cg9F0YnRSDnwD4SQAAAAQIp+/4n6gOLfgMK/QbABsAGA+hpyEY1H0DwKD5LCQID/Xw+UwAjQQIo2ifKA4t+Awr+A+hpyFI1W0ID6Cg+SwkCA/l9BD5TAQQjQRDDAjVEQhMAPRcrrYEiLfwhIhf90UkgB97kFAAAASDn3D4d4////64OJ0CTfBL88GnIwgPpfdCuAwtCA+gl2I4PJCusoigaJwoDi34DCv4D6GnIKPF90BgTQPAl3D4PJEOsKg8ka6wW5DwAAAI0ECffQg+AgCcjDZi4PH4QAAAAAAJBIg+wYZEiLBCUoAAAASIlEJBCJdCQMiVQkCIX2dQiB+v8AAAB0LUiLR2BIO0docxCJMItMJAiJSARIg0dgCOsTSIPHWEiNdCQMSI1UJAjobSAAAGRIiwQlKAAAAEg7RCQQdQVIg8QYw+jjNQ4ADx8AVUFXQVZBVUFUU0iD7BhJif1kSIsEJSgAAABIiUQkEEiLb1hIO29gD4Q1AwAATI1kJAjrGmYuDx+EAAAAAABmkEiDxQhJO21gD4QQAwAAi10ATGN1BIXbflyNQ/+JwsHqBkmLdNUAvwEAAACJwUjT50gPo8ZyP0gJ/kmJdNUASInaSMHqBkmLdNUAidlI0+5I0+ZIhfYPhDECAACJ2oPiwEgPvM4J0UhjyUmLVSCLDIqJwIkMgkGNdj9FhfZBD0n2ifDB+AZImEmLVMUAg+bARInxKfG+AQAAAEjT5kgPo8pzDoH7/wAAAH5m6VH///+QSAnySYlUxQBBjUYBQY1OQIXAD0nIicrB+gZIY8JJi0TFAIPhwPfZRAHxg8EBSNPoSNPgSIXAD4R0AQAAweIGSA+8wAnQSJhJi00giwSBQokEsYH7/wAAAA+P8v7//2aQjXM/hdsPSfOJ8sH6BkhjwkmLRMUAg+bAidkp8UjT6EjT4EiFwA+EhQAAAMHiBkgPvMAJ0Exj+EmLRSBCiwy4iUwkDEmLdUBJi1VISDnWdCA5DnQcOU4EdBdIg8YISDnWde7rHGYuDx+EAAAAAABmkEg51nQLi04E639mDx9EAABBi0U4iUQkCIPAAUGJRThJO1VQc0uJCotMJAiJSgRJg0VICOtQZi4PH4QAAAAAAJC4/////4P6AnR7g/oBdF+F0g+Fbf///0mLTQhIhcl0TkgPvMGDyEDpWP///w8fQABJjX1ASI10JAxMieLoDx4AAItMJAhJi0UgQokMuEGNRwFFOfcPRdgPhOP9//+B+wABAAAPjOf+///p0v3//0mLTRBIhcl0DkgPvMENgAAAAOn//v//SYtNGEiFyQ+E8v7//0gPvMENwAAAAOnk/v//uP////+D+gJ0ZYP6AXRJhdIPhX7+//9Ji00ISIXJdDhID7zBg8hA6Wn+//+5/////4P6AnRsg/oBdE+F0g+Fw/3//0mLVQhIhdJ0PkgPvMqDyUDprv3//0mLTRBIhcl0DkgPvMENgAAAAOkm/v//SYtNGEiFyQ+EGf7//0gPvMENwAAAAOkL/v//SYtVEEiF0nQPSA+8yoHJgAAAAOlk/f//SYtVGEiF0g+EV/3//0gPvMqBycAAAADpSP3//0mLbVhJi0VASYlFSEmJbWBkSIsEJSgAAABIO0QkEHUPSIPEGFtBXEFdQV5BX13D6E4yDgBmLg8fhAAAAAAADx9AAEiD7BhkSIsEJSgAAABIiUQkEIl0JAxIi0dASItPSEg5yHQhZi4PH4QAAAAAAA8fADkwdBA5cAR0C0iDwAhIOch17usKSDnIdAWLQATrOotHOIlEJAiDwAGJRzhIO09QcxCJMYtEJAiJQQRIg0dICOsXSIPHQEiNdCQMSI1UJAjoLBwAAItEJAhkSIsMJSgAAABIO0wkEHUFSIPEGMPonjEOAGYuDx+EAAAAAAAPH0AAVUFXQVZBVUFUU0iD7BhIiRQkSYn3SIn7ZEiLBCUoAAAASIlEJBDHRzgAAAAARTHkSI1sJAjrFmYPH4QAAAAAAEGB/P8AAAAPj3oBAABBjXQkP0WF5EEPSfSJ8MH4BkhjyEiLFMuD5sBEieEp8UjT6kjT4kiF0g+EpAAAAMHgBkwPvPJBCcZNY+5Ii0MgQosEqIlEJAxIi1NASItLSEg5ynQuZi4PH4QAAAAAAA8fQAA5AnQcOUIEdBdIg8IISDnKde7rLGYuDx+EAAAAAABmkEg5ynQbi3IERSnmD4xf////6YgAAABmLg8fhAAAAAAAi1M4iVQkCIPCAYlTOEg7S1BzTYkBi3QkCIlxBEiDQ0gIRSnmD4wm////61IPH0AAQb7/////g/gCdH+D+AF0YYXAD4VO////SItDCEiFwHRQTA+88EGDzkDpOP///2aQSI17QEiNdCQMSInq6J8aAACLdCQIRSnmD4zS/v//TWPkS408J0mDxgFMifLoTzEOAE055U0PT+VBg8QB6a/+//9Ii0MQSIXAdBBMD7zwQYHOgAAAAOnc/v//SItDGEiFwA+Ez/7//0wPvPBBgc7AAAAA6b/+//+LQzhIiwwkiQFkSIsEJSgAAABIO0QkEHUPSIPEGFtBXEFdQV5BX13D6JwvDgBmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIHsmAAAAEmJ/mRIiwQlKAAAAEiJhCSQAAAASI18JEAPV8APKUQkMA8phCSAAAAADylEJHAPKUQkYA8pRCRQDylEJEAPKUQkIEi4AAAAAAAAAIBIiUQkOL4AAQAA6LQXAABIi0QkQMeA/AMAAAABAADHRCRYAQEAAEGDfhAAD456BAAATI18JHhFMe0xwEiJRCQQMdtMiXQkCOsdswFIjXwkIOj++P//SYPFAUljRhBJOcUPjUUEAABNi2ZIQ4sE7IPgB4P4BA+EuQAAAIP4AnXWSIkcJEyJ/UMPtlzsBEeKdOwFRQ+2/olcJBxEiXwkGIXbD4XiAAAAQYD+/w+F2AAAAEOAfOwGAA+EpwMAAID7eg+HngMAAEGA/mEPgpQDAACD+2K4YQAAAA9C2EGD/3q4egAAAEQPQ/hEOfsPj3MDAACDw+BBg8fgiVwkHESJfCQYSIuEJIAAAABIO4QkiAAAAA+DLwMAAIkYi0wkGIlIBEiDhCSAAAAACOk2AwAAZg8fRAAAQ4tE7ASoAw+EyAAAAEiLTCQQgOEBD4W6AAAAx0QkHAoAAADHRCQYCgAAAEiLhCSAAAAASDuEJIgAAABzcMcACgAAAItMJBiJSARIg4QkgAAAAAjrakiLhCSAAAAASDuEJIgAAABzI4kYi0wkGIlIBEiDhCSAAAAACEOAfOwGAA+FBP///+mmAgAASInvSI10JBxIjVQkGOjUFwAAQ4B87AYAD4Xh/v//6YMCAABMif9IjXQkHEiNVCQY6LEXAABIjXwkIOhX9///Q4tE7ASxAUiJTCQQqDAPhEX+//+J2CQBD4U7/v//Mf/rI0yJ/0iNdCQcSI1UJBjocxcAAA8fAInfgfsAAQAAD43mAAAAQYn5QYDh30GAwb+NV9CA+goPksJAgP9fQQ+UwkEI0kG4/wAAAIH//gAAAH9VQYD5Gg+Swo1vAUQI0on+6yoPH0AAjUvQgPkKD5LBgPtfD5TACMg40A+FhQAAAI1rAYnegf0AAQAAdBqJ64nZgOHfgMG/gPkZd8uE0nXgQYnw6wdmkLsAAQAAQYD5Gg+SwEQI0DwBD4VZ////iXwkHESJRCQYhf91DUGB+P8AAAAPhD////9Ii4wkgAAAAEg7jCSIAAAAD4MU////iTmLRCQYiUEESIOEJIAAAAAI6RL///9EjUP/66FIjXwkIOgi9v//Mf/rLIk5i0QkGIlBBEiDhCSAAAAACGYuDx+EAAAAAABmkInfgfsAAQAAD43o/P//QYn5QYDh30GAwb+NV9CA+goPksJAgP9fQQ+UwkEI0kG4/wAAAIH//gAAAH9VQYD5Gg+Swo1vAUQI0on+6yoPH0AAjUvQgPkKD5LBgPtfD5TACMg40A+FgwAAAI1rAYnegf0AAQAAdBqJ64nZgOHfgMG/gPkac8uE0nXgQYnw6wdmkLsAAQAAQYD5Gg+SwEQI0A+FW////4l8JBxEiUQkGIX/dQ1Bgfj/AAAAD4RB////SIuMJIAAAABIO4wkiAAAAA+CDf///0yJ/0iNdCQcSI1UJBjoaRUAAOkU////RI1D/+ujSInvSI10JBxIjVQkGOhMFQAAZi4PH4QAAAAAAGaQQ4sE7KgIdS9Mi3QkCEmLTkhCi0zpCInKg+IHg/oCSYnvdRwxwYP5EEiLHCQPgsD7///psfv//0yLdCQISYnvSIscJOmg+///SY12eEmDxhRIjXwkIEyJ8ujj+P//SIt8JHhIhf90DUiJvCSAAAAA6AwoDgBIi3wkYEiF/3QKSIl8JGjo+CcOAEiLfCRASIX/dApIiXwkSOjkJw4AZEiLBCUoAAAASDuEJJAAAAB1EkiBxJgAAABbQVxBXUFeQV9dw+gKKg4AZi4PH4QAAAAAAFVBV0FWQVVBVFNIgexYAQAAZEiLBCUoAAAASImEJFABAACAfwMAD4WrBgAASYn+xkcDAQ9XwA8phCQwAQAADymEJCABAABIx4QkQAEAAAAAAACLbxDHhCQgAQAAAAAAAIXtD4iUBgAASI0crQAAAABIid/oGCcOAEiJhCQoAQAAiawkMAEAAEiJ3+gBJw4ASImEJDgBAACJrCRAAQAAD1fADylEJHBIx4QkgAAAAAAAAACF7XQeSInf6NImDgBIjQyoSIlEJHBIiUQkeEiJjCSAAAAAD1fADymEJAABAAAPKYQk8AAAAEjHhCQQAQAAAAAAAEiJ3+iVJg4ASImEJPgAAACJrCQAAQAATI087QAAAABMif/odiYOAEiJhCQIAQAAiawkEAEAAA9XwA8phCTQAAAADymEJMAAAABIx4Qk4AAAAAAAAABIid/oQCYOAEiJhCTIAAAAiawk0AAAAEyJ/+gpJg4ASImEJNgAAACJrCTgAAAAD1fADylEJFBIx0QkYAAAAABIjZwk8AAAAEiNlCTAAAAASI1MJFBMjYQkIAEAAEyNTCRwTIn3SIne6FwFAAAPV8APKYQkoAAAAA8phCSQAAAASMeEJLAAAAAAAAAASI28JJAAAABIid7o3Q8AAEiLvCSoAAAASGOEJJAAAABIjTTHSI0FghAAAEiJRCQwSI1UJDDogxMAAEiLhCSoAAAASGOMJJAAAABMjTzISYPH+Ek5x3RlTI2kJPAAAABMjawkwAAAAEiNbCRQSI2cJCABAADrEA8fgAAAAABJg8f4STnHdDZBizdBO3YMdO5BO3YIdOhIjUQkcEiJBCRMifdMieJMielJiehJidnoWwkAAEiLhCSoAAAA68FMY6Qk8AAAAA9XwA8pRCQwSMdEJEAAAAAATYXkdG5FheQPiEsEAABKjTylAAAAAOjNJA4ASInDSIlEJDhIiUQkMEqNBKBIiUQkQEmNTCT/TIngSIPgA3Q4MdIPH4AAAAAAxwMAAAAASItcJDhIg8MESIlcJDhIg8IBSDnQdeNMieBIKdBIg/kDcxfrbjHb62pMieBIg/kDcmEPH4QAAAAAAMcDAAAAAEiLTCQ4SI1RBEiJVCQ4x0EEAAAAAEiLTCQ4SI1RBEiJVCQ4x0EEAAAAAEiLTCQ4SI1RBEiJVCQ4x0EEAAAAAEiLXCQ4SIPDBEiJXCQ4SIPA/HWnD1fADylEJBBIx0QkIAAAAABJY24QSIXtD4TOAAAAhe0PiE0DAABIjTztAAAAAOjUIw4ASYnHSI0E6EyJfCQQTIl8JBhIiUQkIEWF5A+EpgAAAEyLpCQIAQAASYPECEyNbCQQSI2cJCABAABIjWwkcEyJ+A8fQABMKfhIwegDSWNMJPxIi1QkMIkEikGLdCT4TIn3SI2UJPAAAABMielJidhJienojgoAAEiLRCQYg0j4CEhjhCTwAAAASMHgA0gDhCQIAQAASTnEdBBMi3wkEEiLRCQYSYPECOucSItcJDhMi3wkEEiLRCQY6w9FMf9FheQPhVr///9MifhIK1wkMEjB6wJBiV4gD1fAQQ8RRiRBDxFGNEiJx0wp/0iJ+0jB6wOF235nMcnrLGYuDx+EAAAAAAAPHwBBg0SWJAFIg8EBSInHTCn/SIn7SMHrA0hj00g50X03QYs0z4nyg+IHg/oBdNNIifBIwegESIt8JDCLBIfB4ASD5ggJxgnWQYk0z0yLfCQQSItEJBjrqkGLRgyFwHQdMclBO0YID5XBSItEJDCLUARBiVYMi0SIBEGJRghBiV4QhdsPiLUBAABIuPj///8HAAAASCHH6DciDgBJi35ISYlGSEiF/3QU6EUiDgBJi0ZITIt8JBBBi04Q6wKJ2UGJXlBIY9FIweIDSInHTIn+6H4rDgBIi3wkEEiF/3QKSIl8JBjoCiIOAEiLfCQwSIX/dApIiXwkOOj2IQ4ASIu8JKgAAABIx4QkqAAAAAAAAABIhf90BejYIQ4ASIu8JJgAAABIx4QkmAAAAAAAAABIhf90Bei6IQ4ASItcJFBIhdt0P0iLRCRYSDnYdQ5Iid/rJpBIiehIOd10GEiNaOhIi3joSIX/dOtIiXjw6IIhDgDr4EiLfCRQSIlcJFjocSEOAEiLvCTYAAAASIX/dAXoXyEOAEiLvCTIAAAASIX/dAXoTSEOAEiLvCQIAQAASMeEJAgBAAAAAAAASIX/dAXoLyEOAEiLvCT4AAAASMeEJPgAAAAAAAAASIX/dAXoESEOAEiLfCRwSIX/dApIiXwkeOj9IA4ASIu8JDgBAABIhf90BejrIA4ASIu8JCgBAABIhf90BejZIA4AZEiLBCUoAAAASDuEJFABAAB1IUiBxFgBAABbQVxBXUFeQV9dw+ifJQ4ASI18JDDotSUOAOjwIg4AVUFXQVZBVUFUU0iD7DhNicRIiUwkCEmJ12RIiwQlKAAAAEiJRCQwSItGGItOIEiFwHQzhcl0L4sGSItOCIkBSGMOSItWGMcEygAAAACDBgFIi04ISItWGEhjCYlEygRIi0YYi04gTIlMJCCLXwxFMcBIhcCJykEPRNA52nY+TGPTTItOCEtjFJGLLjnqcwU5HNB0KEOJLJFIYwZIi04YiRzBgwYBSItGCEiLThhKYwSQiWzBBEiLRhiLTiCLXwhIhcBBD0TIOdl2OEhjy0yLRghJYyyIixY51XMFORzodCJBiRSISGMGSItuGIlcxQCDBgFIi0YISItuGEhjBIiJVMUEQccEJAAAAABMi0wkIEmLAUmJQQiLTwyJTCQsSTtBEEiJdCQYSIl8JBBzGIkISYtBCEiDwARJiUEISTkBdS/pWAMAAEiNdCQsTInPTInL6EsZAABJidlIi3wkEEiLdCQYSItDCEk5AQ+ELgMAAEyNBT758P/rFQ8fhAAAAAAASYtBCEk5AQ+EEAMAAMdEJCwAAAAARIto/EiDwPxEiWwkLEmJQQjrMEKJDKpIYwZIi1YYRIkswoMGAUiLRghIi1YYSmMEqIlMwgRGi2z1AEHB7QREiWwkLEmLRCQYMclIhcB0BUGLTCQgRDnpdjhJY81Ji1QkCEhjHIpBiywkOetzCkQ5LJgPhHT///+JLIpJYwQkSYtMJBhEiSyBQYMEJAFEi2wkLE1j9UiLb0hGi2z1AESJ6IPgB0ljBIBMAcD/4EnB7QRIi0YYMclIhcB0A4tOIEQ56Q+Gd////0iLVghKYxyqiw45yw+DOv///0Q5LNgPhTD////pVv///w8fAEnB7QRJi0cYMclIhcB0BEGLTyBGi0T1BEQ56UiLfCQIdklJi08ISmM0qUGLFznWcwZEOSzwdGhIi0cISCsHSMHoA2nAq6qqqkKJFKlJYw9Ji1cYRIksykGDBwFJi08ISYtXGEpjDKmJRMoESItHCEg7RxBzFQ9XwA8RAEjHQBAAAAAASINHCBjrFUiLfCQIRInD6IkYAABBidhIi3wkCESJ6EmLTwhJi1cYSGMEgUhjTMIESIsHSI0MSUiLVMgISDtUyBBzFEiNBMhIg8AIi0wkLIkKSIMABOsZSI08yEiNdCQsRInD6MUZAABBidhIi3wkCEmLRxgxyUiFwHQEQYtPIElj2DnZdkhJi08ISGM0mUGLFznWcwZEOQTwdGFIi0cISCsHSMHoA2nAq6qqqokUmUljD0mLVxhEiQTKQYMHAUmLTwhJi1cYSGMMmYlEygRIi0cISDtHEHMVD1fADxEASMdAEAAAAABIg0cIGOsPSIt8JAjophcAAEiLfCQISYtHCEmLTxhIYwSYSGNMwQRIiwdIjQxJSItUyAhIO1TIEHMUSI0EyEiDwAiLTCQsiQpIgwAE6w5IjTzISI10JCzo6xgAAEyLTCQgQotE9QSJRCQoSYtJCEk7SRBzCYkBSYNBCATrE0yJz0iNdCQoTInL6CoWAABJidlIi3QkGEiLfCQQTI0FKvbw/0aLbPUAQcHtBESJbCQs6Tv9//9kSIsEJSgAAABIO0QkMHUPSIPEOFtBXEFdQV5BX13D6C8eDgBmLg8fhAAAAAAADx9EAABVQVdBVkFVQVRTSIPsKEyJy0iJTCQISIkUJEmJ/UyLZCRgZEiLBCUoAAAASIlEJCCJdCQcQccBAAAAAEmLBCRJiUQkCEk7RCQQTIlEJBB0EokwSYtMJAhIg8EESYlMJAjrEkiNdCQcTInn6PEYAABJi0wkCEk5DCRIiywkD4QMAQAAQbgDAAAA6xVmDx9EAABJi0wkCEk5DCQPhO8AAACLQfxIg8H8SYlMJAjrIQ8fAEyJ50iNdCQY6BMVAABIiywkQbgDAAAAQ4sE98HoBEiLSxgx0kiFyXQDi1MgTGPwOcJ2JEiLUwhKYzyyizM593MFOQS5dJpCiTSySGMLSItTGIkEioMDATtEJBx0M0iLTRgx0kiFyXQDi1UgOcJ2IUiLVQhKYxSyO1UAcxQ5BNEPhFv///9mLg8fhAAAAAAAkE2LfUhDiwT3icGD4QdBD6PIcy1Di0T3BIlEJBhJi0wkCEk7TCQQD4NE////iQFJg0QkCATpTv///w8fgAAAAACD+QYPhEL////pAv///0SLA0WFwEyLdCQQTIt8JAgPhA0BAABIi0sYSYnLSIsUJOsjRIsDZi4PH4QAAAAAAGaQSYPDBEljwEiNBIFJOcMPhN0AAABJi38YMfZIhf90BEGLdyBFiyNEOeZ21U1j1EmLRwhKYzSQQTs3c8VEOST3db9IY0T3BEmLNkiNBEBIizzGTItMxghMOc91OOujDx8AQokslkhjAkiLShhEiSTBgwIBSItCCEiLShhKYwSQiWzBBEiDxwRIi0sYTDnPD4Re////MfZIhcl0A4tzIEhjLznudhxIi0MISGM0qDszcxA5LLF0zWYuDx+EAAAAAACQSItKGDH2SIXJdAOLciBEOeZ2r0iLcghKYwSWiyo56A+De////0Q5JMEPhXH////rkWRIiwQlKAAAAEg7RCQgdQ9Ig8QoW0FcQV1BXkFfXcPoSxsOAGYuDx+EAAAAAACQVUFXQVZBVUFUU0iD7BhNic5MicNJic9JidRIiTwkZEiLBCUoAAAASIlEJBCJdCQMQccAAAAAAEmLAUmJQQhJO0EQdBCJMEmLTghIg8EESYlOCOsRSI10JAxMiffoHxYAAEmLTghJOQ4PhBcCAACLQfxIg8H8SYlOCOsaDx9EAABMifdIjXQkCOhjEgAAQotE7QDB6ARIi0sYMdJIhcl0A4tTIExj6DnCdiRIi1MISmM8qoszOfdzBTkEuXSkQok0qkhjC0iLUxiJBIqDAwE7RCQMdDxJi0wkGDHSSIXJdAVBi1QkIDnCdidJi1QkCEpjFKpBOxQkcxg5BNEPhGUBAABmLg8fhAAAAAAADx9EAABIiwQkSItoSEKLRO0AicGD4QdIjRX78fD/SGMMikgB0f/hSYtHCEk7RxBzFUjHAAAAAABJi0cISIPACEmJRwjrDEyJ/+gnFgAASYtHCItI+IPh+IPJAYlI+EmLRwhBiw+JwinKg+L4i0j4g+EPjQxRiUj4SYtHCEiJwUkrD0jB6QODwQGJSPxCi0TtBIlEJAhJi04ISTtOEA+D0v7//4kBSYNGCATp0/7//0mLRwhJO0cQczRIxwAAAAAASYtHCEiDwAhJiUcI6ytJi0cISTtHEHNpSMcAAAAAAEmLRwhIg8AISYlHCOtgTIn/6IAVAABJi0cISotM7QBIiUj4SYtHCEKLTO0ASMHpAoHh/P//P0mLVCQISYt0JBhIYwwKi0zOBMHhBItQ+InWg+YICc6D4gcJ8olQ+OkV/v//TIn/6CwVAABJi0cISotM7QBIiUj46fv9//9Ji0cISTtHEHM0SMcAAAAAAEmLRwhIg8AISYlHCOsrZEiLBCUoAAAASDtEJBB1QkiDxBhbQVxBXUFeQV9dw0yJ/+jUFAAASYtHCItI+IPh+IPJBolI+EmLRwhJi0wkCEmLVCQYSmMMqYtMygTpW////+hkGA4ADx9AAFNIiwdIi0AISIsYSInf6B2fAACJQxhbw8zMzMzMzMzMVUFXQVZTUEiJ80mJ/osGiQcx7UiDfhgAdAOLayCF7Q+IhwAAAInvSMHnAuigFQ4ASYnHSYlGCEGJbhAx7UiDexgAdAOLayCF7Xhhie9IwecD6HoVDgBJiUYYQYluIEiLcxiLQyBIhfZ0HoXAdBpIY9BIi3MISMHiAkyJ/+jPHg4ASItzGItDIEiF9nQUhcB0EEhj0EmLfhhIweID6K8eDgBIg8QIW0FeQV9dw+gvGg4AzMzMzMzMzMzMzMzMzMzMiwc7Bg+cwMPMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYn2SYn/SItfCEiLbxBIiehIKdhIwfgCSDnwc35JizdIKfNJidxJwfwCS408NEiJ+EjB6D4PhYIBAABIuP////////8/SCn1SInpSMH5AkjR/Ug5/UgPQu9Iuv////////8fSDnRSA9D6EiF7UiJdCQISIl8JBAPhLgAAABIOcUPhz8BAABIjTytAAAAAOhfFA4ASYnF6Z0AAABJjUb/TInxSIPhA3QoMdIPH4QAAAAAAMcDAAAAAEmLXwhIg8MESYlfCEiDwgFIOdF15Ukp1kiD+AMPgtQAAAAPH4QAAAAAAMcDAAAAAEmLRwhIjUgESYlPCMdABAAAAABJi0cISI1IBEmJTwjHQAQAAAAASYtHCEiNSARJiU8Ix0AEAAAAAEmLXwhIg8MESYlfCEmDxvx1r+t5RTHtSo08pQAAAABMAe9JweYCMfZMifLoURcOAEyNNK0AAAAATQHuSItEJBBIjSyFAAAAAEwB7UiF234VTInvSIt0JAhIidroERgOAEmLP+sFSIt8JAhNiS9JiW8ITYl3EEiF/3QTSIPEGFtBXEFdQV5BX13pZBMOAEiDxBhbQVxBXUFeQV9dw0yJ/+hdGA4A6DgYDgDMzMzMzMzMzFVBV0FWQVVBVFNIg+wYSIn7TIs3TItnCE0p9E2J50nB/wNJjU8BSInISMHoPQ+F2QAAAEi4/////////x9Mi2sQTSn1TInvSMH/A0nB/QJJOc1MD0LpSLn/////////D0g5z0wPQ+hNhe10L0iJdCQISIlUJBBJOcUPh5UAAABKjTztAAAAAOiUEg4ASInFSItUJBBIi3QkCOsCMe1OjSztAAAAAEkB7YsGQolE/QCLAkKJRP0ETo08/QgAAABJAe9NheR+EUiJ70yJ9kyJ4ujsFg4ATIszSIkrTIl7CEyJaxBNhfZ0FkyJ90iDxBhbQVxBXUFeQV9d6UMSDgBIg8QYW0FcQV1BXkFfXcNIid/oPBcOAOgXFw4AzMzMzMzMzFVBV0FWQVVBVFNIg+wYSYnXSYn1SYn+SY1F+EiJBCRMifVMiWwkEEmJ7kyJ6Uwp8UiJyEjB+ANIg/gFD4YOBAAASIH59wAAAA+OJgUAAEiJwkjB6j9IAcJIg+L+TY0slkiB+TkfAAAPjMMAAABIjWgDSIXASA9J6EgB7UiD5fhNjSQuTAHtTIn3TInmTInqSInpTYn46GYFAACJw0iLPCRIie5B/xeEwA+EQgEAAEiLRQBIixQkSIsKSIlNAEiJAkiJ70yJ7kH/F4TAD4TZAAAASYtFAEiLTQBJiU0ASIlFAEyJ70yJ5kH/F4TAD4T0AAAASYsEJEmLTQBJiQwkSYlFAEyJ50yJ9kH/F4TAD4TYAAAASYsGSYsMJEmJDkmJBCSDwwTpxwAAAA8fgAAAAABMie9MifZB/xeJw0iLPCRMie5B/xeE23QnSYsOhMB0X0iLFCRIiwJJiQZIiQq7AQAAAOmJAAAAZg8fhAAAAAAAMduEwHR6SYtFAEiLFCRIiwpJiU0ASIkCTInvTIn2Qf8XuwEAAACEwHRWSYsGSYtNAEmJDkmJRQDrNYPDAetBSYtFAEmJBkmJTQBIizwkTInuQf8XuwEAAACEwHQjSYtFAEiLFCRIiwpJiU0ASIkCuwIAAADrCoPDAusFg8MDZpCJXCQMTIn3TInuQf8XhMAPhRkCAABIiywkSYnsDx9AAEmDxPhNOfR0F0yJ50yJ7kH/F4TAdOrp1QAAAA8fRAAATY1mCEyJ90iJ7kH/F4TAdA9Mi2wkEEk57HVj6ZoDAABJOexMi2wkEA+EjAMAAGaQTIn3TInmQf8XhMB1DkmDxAhJOex16ulvAwAASYsEJEiLTQBJiQwkSIlFAEmDxAhJOex1GulRAwAADx+AAAAAAEiLA0iLTQBIiQtIiUUASYPE+EyJ42YuDx+EAAAAAACQSIPDCEyJ90iJ3kH/F4TAdO9MjWMIZi4PH4QAAAAAAJBIg8X4TIn3SInuQf8XhMB170g563KqSYne6Sz9//9mkEmLBkmLDCRJiQ5JiQQkg0QkDAFJjV4ITDnjc3cPH0AASIPD+EiJ3WYPH4QAAAAAAEiDxQhIie9Mie5B/xeEwHXvSI1dCGYuDx+EAAAAAACQSYPE+EyJ50yJ7kH/F4TAdO9MOeV3KkiLRQBJiwwkSIlNAEmJBCSDRCQMAUw57U0PROzrnGYuDx+EAAAAAABmkEiJ60w564tsJAx0HkyJ70iJ3kH/F4TAdBFIiwNJi00ASIkLSYlFAIPFAYXtTItsJBB1MEyJ90iJ3kyJ+ujfBAAAQYnESI1rCEiJ70yJ7kyJ+ujKBAAAhMB1VEWE5A+FNPz//0iJ2Ewp8EyJ6Ugp2Ug5yH0jTIn3SIneTIn66O77//9Ig8MISInd6Qn8//9MiyQk6ez+//9IjXsITInuTIn66Mr7//9Jid3p2fv//0mJ3UWE5A+Ezfv//+mbAQAASI0NHujw/0hjBIFIAcj/4EmDxfhMie9MifZB/xeEwA+EdgEAAEmLBkmLTQBJiQ7pYwEAAEmNbghJg8X4SInvTIn2Qf8XicNMie9Iie5B/xeE2w+E6QAAAEmLDoTAD4QQAQAASYtFAEmJBkmJTQDpKAEAAEmNdghJjVYQSYPF+EyJ90yJ6U2J+EiDxBhbQVxBXUFeQV9d6RYBAABNjWYISY1uEEmNXhhJg8X4TIn3TInmSInqSInZTYn46PIAAABMie9Iid5B/xeEwA+EywAAAEiLA0mLTQBIiQtJiUUASInfSInuQf8XhMAPhKwAAADzD29FAGYPcMBO8w9/RQBIie9MieZB/xeEwA+EjAAAAPNBD29GCGYPcMBO80EPf0YITInn6zNMifdMie5MifpIg8QYW0FcQV1BXkFfXemwAQAAhMB0VkmLRghJi00ASYlOCEmJRQBIie9MifZB/xeEwHQ580EPbwZmD3DATvNBD38G6yhJi0YISYkGSYlOCEyJ70iJ7kH/F4TAdBBIi0UASYtNAEiJTQBJiUUASIPEGFtBXEFdQV5BX13DzMzMzMzMzFVBV0FWQVVBVFNQTYnHSYnOSYnVSYn0SIn9SIn3SInuQf8QicNMie9MieZB/xeE20iJLCR0G0iLTQCEwHRQSYtFAEiJRQBJiU0AvQEAAADrcDHthMB0akmLBCRJi00ASYkMJEmJRQBMiedIizQkQf8XvQEAAACEwHRHSIsUJEiLAkmLDCRIiQpJiQQk6y5JiwQkSIlFAEmJDCRMie9MieZB/xe9AQAAAITAdBVJiwQkSYtNAEmJDCRJiUUAvQIAAABMifdMie5B/xeEwHRXSYtFAEmLDkmJTQBJiQZMie9MieZB/xeEwHQ0SYsEJEmLTQBJiQwkSYlFAEyJ50iLHCRIid5B/xeEwHQYSIsDSYsMJEiJC0mJBCSDxQPrCIPFAesDg8UCiehIg8QIW0FcQV1BXkFfXcPMzMzMzMzMzMzMVUFXQVZBVUFUU0iD7ChIidNIifVJifxkSIsEJSgAAABIiUQkIEyNfxBMjW8ITInvTInm/xJBicZMif9Mie7/E0WE9nQYSYsMJITAdEZJi0QkEEmJBCRJiUwkEOthhMB0XfNBD29EJAhmD3DATvNBD39EJAhMie9Mieb/E4TAdD7zQQ9vBCRmD3DATvNBD38EJOsrSYtEJAhJiQQkSYlMJAhMif9Mie7/E4TAdBHzQQ9vRQBmD3DATvNBD39FAEyJZCQISY1EJBhIOeh0eUnHxvD///9MjWwkGEiJbCQQ6yBMi2QkCEiLRCQYSYkEJEiLbCQQSY1HCEmDxvhIOeh0RkyJ/kmJx0iJx/8ThMB05EmLB0iJRCQYTIn1TYn8Dx8ASYtEJPhJiQQkSIXtdLJJjXQk8EyJ7/8TSYPE+EiDxQiEwHXc659kSIsEJSgAAABIO0QkIHUPSIPEKFtBXEFdQV5BX13D6MYLDgDMzMzMzMxVQVdBVkFVQVRTSIPsKEmJ1kmJ9UiJ+2RIiwQlKAAAAEiJRCQgSInwSCn4SMH4A0G3AUiD+AUPh4cAAABIjQ2Z4/D/SGMEgUgByP/gSYPF+EyJ70iJ3kH/FoTAD4TkAgAASIsDSYtNAEiJC0mJRQDp0QIAAE2J7EiNewhJg8T4SIneTYn1Qf8WicVMiSQkTInnTI1jCEyJ5kH/FkCE7Q+EDgEAAEiLC4TAD4R2AQAATIssJEmLRQBIiQNJiU0A6YICAABIjWsQSI17CEiJ3k2J90H/FkGJxEiJ70iNcwhB/xZFhOQPhAcBAABIiwuEwA+EYwEAAEiLQxBIiQNIiUsQ6X0BAABIjXMISI1rEE2J7EyNaxhJg8T4SInfSInqTInpTYnw6Cf8//9MiedMie5B/xaEwA+ECwIAAEmLRQBJiwwkSYlNAEmJBCRMie9Iie5B/xaEwA+E6gEAAPMPb0UAZg9wwE7zD39FAEiJ70iNawhIie5B/xaEwA+ExgEAAPMPb0MIZg9wwE7zD39DCEiJ7+s+SI1zCEiNUxBJg8X4SInfTInpTYnw6KP7///pkwEAAITAD4SLAQAASItDCEyLLCRJi00ASIlLCEmJRQBMiedIid5B/xaEwA+EZgEAAPMPbwNmD3DATvMPfwPpVAEAAITAD4SJAAAA8w9vQwhmD3DATvMPf0MISI17CEiJ3kH/F4TAdGzzD28DZg9wwE7zD38D611Ii0MISIkDSIlLCEiLHCRIid9MieZB/xaEwA+EAAEAAEmLBCRIiwtJiQwkSIkD6e0AAABIi0MISIkDSIlLCEiJ70iNcwhB/xeEwHQRSI1DCPMPbwBmD3DATvMPfwBIjUMYTDnoD4SmAAAASIlcJBDHRCQMAAAAAEnHxPD///9IjVwkGEyJLCTrNGaQTItsJBBIi0QkGEmJRQCLRCQMg8ABiUQkDIP4CEyLLCRNifd0ZUiNRQhJg8T4TDnodFNIie5IicVIicdB/xeEwHTjSItFAEiJRCQYSYntTYnnZi4PH4QAAAAAAA8fRAAASYtF+EmJRQBNhf90k0mNdfBIid9B/xZJg8X4SYPHCITAdd3rgEG3AesLSIPFCEw57UEPlMdkSIsEJSgAAABIO0QkIHUSRIn4SIPEKFtBXEFdQV5BX13D6FQIDgDMzMzMVUFXQVZBVUFUU1BJif1MizdMi38ITSn3TIn9SMH9AkiNTQFIichIweg+D4W3AAAASLj/////////P02LZRBNKfRMieJIwfoCSdH8STnMTA9C4Ui5/////////x9IOcpMD0PgTYXkdB9IiTQkSTnEd35KjTylAAAAAOhiBQ4ASInDSIs0JOsCMdtOjSSjiwaJBKtIjSyrSIPFBE2F/34SSInfTIn2TIn66NMJDgBNi3UASYldAEmJbQhNiWUQTYX2dBZMifdIg8QIW0FcQV1BXkFfXekoBQ4ASIPECFtBXEFdQV5BX13DTInv6CEKDgDo/AkOAMzMzMzMzMzMzMzMzEFXQVZBVUFUU0mJ/ki4qqqqqqqqqgpMiz9Ii18ISYncTSn8ScH8A0i6q6qqqqqqqqpMD6/iSY1MJAFIOcEPhzcBAABJi3YQTCn+SMH+A0gPr/JMjSw2STnNTA9C6Ui5VVVVVVVVVQVIOc5MD0PoTYXtdBxJOcUPhwYBAABKjQTtAAAAAEiNPEDoUwQOAOsCMcBLjTRkSI0U8EqNDG0AAAAATAHpSI0MyA9XwA8RBPBIx0TwEAAAAABIjQTwSIPAGEw5+w+ElwAAAA8fgAAAAAAPEULoSMdC+AAAAABIi3PoSIly6EiLc/BIiXLwSItz+EiJcvhIg8LoDxFD6EjHQ/gAAAAASI1z6EiJ80w5/nXASYseSYt2CEmJFkmJRghJiU4QSDnedSFIhdt0REiJ31tBXEFdQV5BX+nDAw4ADx8ATIn2STnedN9MjXboSIt+6EiF/3TrSIl+8OiiAw4A6+BJiRZJiUYISYlOEEiF23W8W0FcQV1BXkFfw0yJ9+iOCA4A6GkIDgDMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ/UyLN0yLfwhNKfdMif1Iwf0CSI1NAUiJyEjB6D4PhbcAAABIuP////////8/TYtlEE0p9EyJ4kjB+gJJ0fxJOcxMD0LhSLn/////////H0g5ykwPQ+BNheR0H0iJNCRJOcR3fkqNPKUAAAAA6NICDgBIicNIizQk6wIx206NJKOLBokEq0iNLKtIg8UETYX/fhJIid9MifZMifroQwcOAE2LdQBJiV0ASYltCE2JZRBNhfZ0FkyJ90iDxAhbQVxBXUFeQV9d6ZgCDgBIg8QIW0FcQV1BXkFfXcNMie/okQcOAOhsBw4AzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJif1MizdMi38ITSn3TIn9SMH9AkiNTQFIichIweg+D4W3AAAASLj/////////P02LZRBNKfRMieJIwfoCSdH8STnMTA9C4Ui5/////////x9IOcpMD0PgTYXkdB9IiTQkSTnEd35KjTylAAAAAOjSAQ4ASInDSIs0JOsCMdtOjSSjiwaJBKtIjSyrSIPFBE2F/34SSInfTIn2TIn66EMGDgBNi3UASYldAEmJbQhNiWUQTYX2dBZMifdIg8QIW0FcQV1BXkFfXemYAQ4ASIPECFtBXEFdQV5BX13DTInv6JEGDgDobAYOAMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn8TIs3TIt/CE0p902J/UnB/QNJjU0BSInISMHoPQ+FwAAAAEi4/////////x9Ji2wkEEwp9UiJ6kjB+gNIwf0CSDnNSA9C6Ui5/////////w9IOcpID0PoSIXtdBtIOcUPh4UAAABIjTztAAAAAOjQAA4ASInD6wIx20iNBOtKxwTrAAAAAE6NLOtJg8UITYX/fhhIid9MifZMifpIicXoPwUOAEiJ6E2LNCRJiRwkTYlsJAhJiUQkEE2F9nQWTIn3SIPECFtBXEFdQV5BX13pjwAOAEiDxAhbQVxBXUFeQV9dw0yJ5+iIBQ4A6GMFDgDMzMxVQVdBVkFVQVRTUEiJ80iJPCRIi24ITI0krQEAAABMiefoqgIOAEmJx0iF7Q+O/gAAAEyLK0wB7UyNNbXa8P8x2+seZkHHBB9cJ2YPH0QAAEiDwwJJg8UBSTntD4OvAAAATIngSCnYSIP4Ag+CpAAAAEEPtk0AjVH3gPoedyIPttJJYxSWTAHy/+JmQccEH1x0671mLg8fhAAAAAAADx8AgPlcdQlmQccEH1xc66KNUeCA+l9yTUiD+AVyWQ+2yUmNPB++BQAAAEiNFR7Rsv4xwOjqEQ4ASIPDBOl1////ZkHHBB9cbull////ZkHHBB9cculZ////ZkHHBB9cIulN////QYgMH0iDwwHpRP///0w543UdD1fASIssJA8RRQBIx0UQAAAAAEiJ7+gQBA4AMdtBxgQfAA9XwEiLLCQPEUUASMdFEAAAAABIg/vwc9hIg/sXcxSNBBuIRQBJiexJg8QBSIXbdSXrMUyNaxBJg+XwTInv6Nb+DQBJicRIiUUQSYPNAUyJbQBIiV0ITInnTIn+SIna6FUDDgBBxgQcAEyJ/+g4AQ4ASInoSIPECFtBXEFdQV5BX13DZg8fRAAAD7YHSInBSNHpqAFBD5TCTItPCEyJykgPRNFIhdJ0d0yNRwHrQWYuDx+EAAAAAACQSI1B/wDAiAdIjQQPSIPA/0iDwAHGAAAPtgdIicFI0emoAUEPlMJMi08ITInKSA9E0UiF0nQwTItfEEH2wgFMid5JD0XwD7ZEFv88/3UZQfbCAXWsSY1B/0iJRwhLjQQLSIPA/+uuwwQBiEQW/8NmkFNIgezQAAAASIn7SIlUJBBIiUwkGEyJRCQgTIlMJCiEwHQxDylEJDAPKUwkQA8pVCRQDylcJGAPKWQkcA8prCSAAAAADym0JJAAAAAPKbwkoAAAAGRIiwQlKAAAAEiJhCTIAAAAD1fADymEJLAAAABIieBIiYQkwAAAAEi4EAAAADAAAABIiYQksAAAAEiNhCTgAAAASImEJLgAAAAPEQdIx0cQAAAAAEiNlCSwAAAA6CsAAABkSIsEJSgAAABIO4QkyAAAAHUMSInYSIHE0AAAAFvD6If/DQAPH4AAAAAAVUFXQVZBVUFUU0iB7DgEAABJidVJifdIif1kSIsEJSgAAABIiYQkMAQAAEiNXCQwugAEAABIid8x9uiBAA4AD1fADylEJBBIx0QkIAAAAABBDxBFAA8pRCQQSYtFEEiJRCQgTI1MJBC+AAQAALkABAAASInfugEAAABNifjoDg8OAInDPQAEAABzFInaSI10JDBIie/odgIOAOmZAAAASIlsJAhBvgAEAABMjWQkEOsXZi4PH4QAAAAAAA8fRAAASInv6Nj+DQBEifBEAfBEjXMBhdtED0jwSWPeSInf6K3+DQBIicVBDxBFAA8pRCQQSYtFEEiJRCQgSInvSIneugEAAABIx8H/////TYn4TYnh6HoODgCJw4XAeKREOfN9n4naSIt8JAhIie7o4AEOAEiJ7+ho/g0AZEiLBCUoAAAASDuEJDAEAAB1EkiBxDgEAABbQVxBXUFeQV9dw+ge/g0AZi4PH4QAAAAAAA8fQABIgezYAAAASIlUJBBIiUwkGEyJRCQgTIlMJCiEwHQxDylEJDAPKUwkQA8pVCRQDylcJGAPKWQkcA8prCSAAAAADym0JJAAAAAPKbwkoAAAAGRIiwQlKAAAAEiJhCTQAAAAD1fADymEJLAAAABIieBIiYQkwAAAAEi4EAAAADAAAABIiYQksAAAAEiNhCTgAAAASImEJLgAAAD2BwF1B2bHBwAA6w9Ii0cQxgAASMdHCAAAAABIjZQksAAAAOjP/f//ZEiLBCUoAAAASDuEJNAAAAB1CEiBxNgAAADD6C/9DQBmLg8fhAAAAAAADx9EAABIgezYAAAASIlUJBBIiUwkGEyJRCQgTIlMJCiEwHQxDylEJDAPKUwkQA8pVCRQDylcJGAPKWQkcA8prCSAAAAADym0JJAAAAAPKbwkoAAAAGRIiwQlKAAAAEiJhCTQAAAAD1fADymEJLAAAABIieBIiYQkwAAAAEi4EAAAADAAAABIiYQksAAAAEiNhCTgAAAASImEJLgAAABIjZQksAAAAOj6/P//ZEiLBCUoAAAASDuEJNAAAAB1CEiBxNgAAADD6Fr8DQDMzMzMzMzMzMzMVUFXQVZBVUFUU0iD7BhJic5IiftIiTeJVwjGRwwASIPHEDH26EcMDgCFwA+FpQIAAEiNe2gPV8APEUNUDxFDSEUx/zH26CYMDgCFwA+FhAIAAEyJs6AAAAAPV8APEYOwAAAADxGDwAAAAMeD0AAAAAAAgD9Ix4PYAAAAAAAAAMeD4AAAAP////9Ix4PoAAAAAAAAAMeD8AAAAP////9Ix4P4AAAAAAAAAMeDAAEAAP////9Ix4MIAQAAAAAAAMeDEAEAAP////9Ix4MYAQAAAAAAAMeDIAEAAP////9Ix4MoAQAAAAAAAMeDMAEAAP////9Ix4M4AQAAAAAAAMeDQAEAAP////9Ix4NIAQAAAAAAAMeDUAEAAP////+DewgBSIsrdQREi30QRIttMEUB/UQDbTREi0U8Q408KEhjz0jB4QJIi5OgAAAASI2CqP7//0iJg6AAAABIY3UQSWPHSAHGSMHmBEj32UgB0UiBwaj+//9IKfFIg8H8SImLoAAAAHgrSImLqAAAAEhjVRRIY3UgSAHGSMHmAkiNBNZIjQSASI0EheABAABIOcF9CcZDDAHpEAEAAIk8JEyJRCQQvzgAAADoF/gNAESLZRBEiWQkBEUB/McAAAAAAEyJfCQID4jwAAAASYnGRYnnScHnAkyJ/+jo9w0ASYlGCEWJZhBMif/o2PcNAEmJRhhFiWYgi0QkBEGJRihMi3wkCEWJfixBiUYwQcZGNAFIjUNITIkwvzgAAADopfcNAESLZRBEieVEAf3HAAAAAAAPiIUAAABJicZBie9JwecCTIn/6H33DQBJiUYIQYluEEyJ/+ht9w0ASYlGGEGJbiBFiWYoSItEJAhBiUYsRYlmMEHGRjQBTIlzUIM8JP5+O0iLRCQQQo0sKIPFAYnvSMHnAugu9w0ASIt7WEiJQ1hIhf90Beg89w0AiWtgSIPEGFtBXEFdQV5BX13D6BX8DQAPH0QAAEFXQVZTSYn/TIt3SE2F9nQ0SYt+GEnHRhgAAAAASIX/dAXo+fYNAEmLfghJx0YIAAAAAEiF/3QF6OP2DQBMiffo2/YNAE2Ld1BNhfZ0NEmLfhhJx0YYAAAAAEiF/3QF6Lz2DQBJi34IScdGCAAAAABIhf90Beim9g0ATIn36J72DQBJi4fAAAAASIXAdBZmkEiLGEiLeBDohPYNAEiJ2EiF23XsSYO/yAAAAAAPhNIAAABJi7/AAAAASIX/dBJmkEiLH+hY9g0ASInfSIXbdfBJx4fAAAAAAAAAAEmLl7gAAABIhdIPhI4AAABIjUr/idCD4ANIg/kDcwQxyetaSIPi/DHJZi4PH4QAAAAAAGaQSYu3sAAAAEjHBM4AAAAASYu3sAAAAEjHRM4IAAAAAEmLt7AAAABIx0TOEAAAAABJi7ewAAAASMdEzhgAAAAASIPBBEg5ynW4SIXAdBwPHwBJi5ewAAAASMcEygAAAABIg8EBSIPA/3XnSceHyAAAAAAAAABJi7/AAAAASIX/dBBIix/oiPUNAEiJ30iF23XwSYu/sAAAAEnHh7AAAAAAAAAASIX/dAXoZPUNAEmNf2jo2wcOAIXAdSxJi39YScdHWAAAAABIhf90BehB9Q0ASYPHEEyJ/+i1Bw4AhcB1BltBXkFfw+gW+g0AZg8fRAAAQVZTUEmJ/kiLh8AAAABIhcB0IWYuDx+EAAAAAAAPHwBIixhIi3gQ6PT0DQBIidhIhdt17EmDvsgAAAAAD4TSAAAASYu+wAAAAEiF/3QSZpBIix/oyPQNAEiJ30iF23XwSceGwAAAAAAAAABJi5a4AAAASIXSD4SOAAAASI1K/4nQg+ADSIP5A3MEMcnrWkiD4vwxyWYuDx+EAAAAAABmkEmLtrAAAABIxwTOAAAAAEmLtrAAAABIx0TOCAAAAABJi7awAAAASMdEzhAAAAAASYu2sAAAAEjHRM4YAAAAAEiDwQRIOcp1uEiFwHQcDx8ASYuWsAAAAEjHBMoAAAAASIPBAUiDwP9150nHhsgAAAAAAAAASIPECFtBXsMPH0AAVUFXQVZBVUFUU1BJif4PV8APEQdIx0cQAAAAAIM+AHRySYn1SIteGEiNLVyVsP9MjT1dUVH/TI0l8Umv/0iJ6us3Zi4PH4QAAAAAAA8fQABMifdIjTXEkrD/McDoz/j//0yJ+kiDwwRJY0UASMHgAkkDRRhIOcN0GosLQTlNKH/PTIn3TInmMcDoovj//0iJ6uvRTInwSIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIPsKEmJ/mRIiwQlKAAAAEiJRCQgSIP+AnQ5SInzD1fASIP+AXQZSIXbdUdBDxEGScdGEAAAAABmQccGAl/rKUEPEQZJx0YQAAAAAGZBxwYCWOsVD1fAQQ8RBknHRhAAAAAAZkHHBgIqQcZGAgDpuwAAAA8pBCRIx0QkEAAAAABIjTX056X+SInnSInaMcDo4vf//4N7CAB+b0yNPTCUsP9JieRMjS0uUFH/Me1MifrrIg8fQABIjTWIdp7/McDosvf//0yJ+kiDxQFIY0MISDnFfTVIiwOLDKhMieeD+f501IP5/3UPSI01hkiv/+vNZg8fRAAASI01Z5Gw/zHA6HL3//9MierrvotTDEiNNUH3q/5IiecxwOhZ9///SItEJBBJiUYQDygEJEEPEQZkSIsEJSgAAABIO0QkIHUSTInwSIPEKFtBXEFdQV5BX13D6EH0DQCQVUFXQVZBVUFUU0iD7EhIiVQkMEmJ9mRIiwQlKAAAAEiJRCRASGNeKEhjRixIAdi6BAAAAEj34kGJzUmJ/0jHx/////9ID0H46AP0DQBNYyZEiemB4QABAACJTCQMMe1MiXwkIEGLTwiJTCQITYXkSIlEJBgPhIMBAABEiWwkBE2LdhhIi0wkIEiLCUiJTCQQScHkAjHJMdJIiVQkKDH/RTHtMe3rJ0iLVCQQgHoBAEAPtv+6AQAAAA9E+g8fRAAASIPBBEk5zA+EGAEAAEWLPA5A9scBdBSDfCQIAA+EAwEAAEQ5+w+O+gAAAEQ5+w+OjAAAAE1j10iLRCQQTItISEeLBNFEicaD5geD/gF1YYN8JAgDdFqDfCQIAHUzSIXJdU5MicZIwe4EQYs08UGJ80GD4wdBg/sCdBZBg/sGdTBIwe4EQYs08YPmB4P+AnUgg3wkCAEPlMKEVCQodRKDfCQMAA+FUQIAAA8fgAAAAABD9kTR+Ah1OEiLRCQY60SQhe0Pjjj///+NVf+DPJD/D4Qr////ieqDxQHHBJD/////sgFIiVQkKOkT////Dx8ASGPVg8UBSItEJBhEiTyQR4sE0UGD4AdBg/gFD4TV/v//QYP4BA+F5f7//0cLbNEE6dv+//+F7X4KjU3/gzyI/w9E6UWF7USLZCQEdQhFMe1Ei2QkDInpRAnhdRJIicfoTPINALsBAAAA6RcBAABEiWQkBESJbCQQTGPlg3wkCAF1Zk6NPKBJOcd2XUyNbCQ4SInH6ydmLg8fhAAAAAAAkEUx9kiJ3kyJ6ugiAg4ASo08s0w5/0iLRCQYcyxIiftMOf9z3GYuDx+EAAAAAABmkIM7/3QLSIPDBEw5+3Ly68BBvgEAAADru0iLTCQwSIXJdGlBjXQkAULHBKD+////SGMZSIXbdFJMi1kYSItMJCBMizFMjQSd/P///0H2wASLTCQED4WCAAAATWMLTYtWSEOLFMqD4geD+gV1EEOLVMoEg8UCSGP2iRSwie5JjXsEifVNhcB1XOsGifWLTCQEi1QkEMHiEAnRSIt8JCBIicaJ6kiJxei2AAAASInDSInv6CvxDQBkSIsEJSgAAABIO0QkQA+FhQAAAEiJ2EiDxEhbQVxBXUFeQV9dw0yJ302FwHSsTY0Em4n16w4PH0QAAEiDxwhMOcd0lkhjN0mLVkiLHPKD4weD+wV1DYt08gRIY9WDxQGJNJBIY3cESYtWSIsc8oPjB4P7BXXFi3TyBEhj1YPFAYk0kOu2SIt8JBjonPANALsCAAAA6Wf////obfANAGYuDx+EAAAAAAAPHwBVQVdBVkFVQVRTSIPsOInNQYnWSYn1SIn7ZEiLBCUoAAAASIlEJDBIiXQkIIlUJCiJTCQsSI1EJCBIiUQkGEyNv7AAAABIjXQkGEyJ/+h+PQAASIXAdAlIi0AQ6UkBAABIiwtIi4OgAAAARIthFElj1kjB4gJCjTzig8cYSMHnIEi5AAAAACgAAABIAflIwfkgSCnIfRJIx4OgAAAA/////zHA6QEBAABIiVQkCEyJfCQQRY18JAFJY89IiQwkSImDoAAAAEjB/yDoIu0NAEiJRCQYRYXkD4iLAAAARIn6SI1K/0GD5wNIg/kDcwQxyetQg+L8MclmLg8fhAAAAAAASMdEyBAAAAAASItEJBhIx0TIGAAAAABIi0QkGEjHRMggAAAAAEiLRCQYSMdEyCgAAAAASIPBBEiLRCQYSDnKdb9Nhf90IUiDwQJmDx9EAABIxwTIAAAAAEiLRCQYSIPBAUmDx/916UiLDCRIjQzISIPBEEiJCEiLXCQYSIs7TInuSItUJAjo5fUNAESJcwiJawxIjVQkGEiLfCQQSInW6Gw+AABIi0QkGGRIiwwlKAAAAEg7TCQwdQ9Ig8Q4W0FcQV1BXkFfXcPok+4NAA8fAEFXQVZBVFNQxwIAAAAAi0IoiUIwg34IAA+OiQAAAEmJ1kmJ9EmJ/zHb6xoPH0QAAEGAfjQAdDJIg8MBSWNEJAhIOcN9YkmLBCSLFJiD+v9034P6/nRRQQ+2TCQMTIn/TIn26FkAAADrzkHGRjQAQYtGMI1IAUGJTjAxyUmDfhgAdARBi04gOcF2rUhjyEGLFkmLdgiJFI5JYw5Ji1YYiQSKQYMGAeuQSIPECFtBXEFeQV/DZi4PH4QAAAAAAA8fAFVBV0FWQVVBVFNIgexIAQAASInzSIn9ZEiLBCUoAAAASImEJEABAABIi39YiRf30YlMJARBvgEAAABIjQVnZA4ASIPAEEiNDdRjDgBIg8EISIlMJBBMjT0kxvD/SIl8JBhIiUQkCOtBSI18JEDoTvwNAEiNfCQ4SIt0JBDoT/wNAEiNvCSoAAAA6FL8DQBIi3wkGGYuDx+EAAAAAAAPHwBFhfYPjtwCAABBg8b/QosEt+sQZi4PH4QAAAAAAA8fAIPAAYXAdNmD+P8PhBABAABIi0sYMdJIhcl0A4tTIExj6DnCdjtIi1MISmMUqjsTcwU5BJF0qsZDNACLC0iLUwhCiQyqSGMLSItTGIkEioMDAesRZi4PH4QAAAAAAA8fAMZDNABIi00ATIthSEOLFOyJ0YPhB4PB/4P5BQ+H6AAAAEljDI9MAfn/4YPiCInRwekDg/EBAciF0g+EZP///+k8////S40M7PbCCHUPjVABSWP2QYPGAYkUt4sRg+IHg/oGdUmDeywAfkNIi1UAO0IMdTo7Qgh0NUljxkGDxgHHBIf/////6yX2wgh1DYPAAUljzkGDxgGJBI+LRCQEQ4VE7AQPhdf+//9LjQzsiwHB6ATp7P7//2YPH4QAAAAAAIB7NAAPhbb+///GQzQAi0MwjUgBiUswMclIg3sYAHQDi0sgOcEPhpX+//9IY8iLE0iLcwiJFI5IYwtIi1MYiQSKgwMB6Xf+///GRCQwAEiNDQtiDgBIjUEYSIlEJDhIjUFASImEJKgAAABIjbwkqAAAAEiNdCRA6ET6DQBIx4QkMAEAAAAAAADHhCQ4AQAA/////0iNBVZhDgBIjUgYSIlMJChIiUwkOEiDwEBIiUQkIEiJhCSoAAAASI18JEDoDfoNAEiLRCQISIlEJEBIjXwkOA9XwA8RR1gPEUdIx4QkoAAAABAAAAC6HQAAAEiNNdL+W//op8b6/7oBAAAASInHSI01AB/t/+iTxvr/SInHvmIDAADodvANALoCAAAASInHSI01GDqg/+hyxvr/uhIAAABIjXwkOEiNNW6xmv7oXMb6/0OLNOyD5gdIicfoPfANAIB8JDAAdQpIjXwkMOic2v7/SItEJChIiUQkOEiLRCQgSImEJKgAAABIi0QkCEiJRCRA9oQkgAAAAAEPhPX8//9Ii7wkkAAAAOgA6A0A6eP8//9kSIsEJSgAAABIO4QkQAEAAHUSSIHESAEAAFtBXEFdQV5BX13D6CHqDQCQVUFXQVZBVUFUU1DHAgAAAACLQiiJQjCDPgB0UEGJzkmJ1EiJ9UmJ/0iLXhhBvf////9mLg8fhAAAAAAADx9AAIsTOVUoQQ9O1UyJ/0yJ5kSJ8ej5+///SIPDBEhjRQBIweACSANFGEg5w3XUSIPECFtBXEFdQV5BX13DDx9EAABVQVdBVkFVQVRTSIHsWAEAAESJBCRkSIsEJSgAAABIiYQkUAEAAMcCAAAAAItCKIlCMIM+AA+ELAMAAEiJ1UiJ80mJ/Y1BIIlEJARMi3YYTI0FImAOAEmDwBBIjQWPXw4ASIPACEiJRCQgQbraAAAATIlMJBBIiUwkCEiJfCQoTIlEJBjrYkiNfCRQ6AD4DQBIjXwkSEiLdCQg6AH4DQBIjbwkuAAAAOgE+A0ATItMJBBIi0wkCEyLbCQoTYn4QbraAAAAZi4PH4QAAAAAAGaQSYPGBEhjA0jB4AJIA0MYSTnGD4R/AgAATWM+RDl7KH5fSYtFAEyLYEhDixT8idaD5geD/gcPh5sAAABBD6Pycr+D/gIPhOwBAACD/gUPhYMAAACAeAEAdA+B+QABAAB0B0GDfQgDdZhBxgEBQYN9CAB1jekfAgAADx+EAAAAAABBgDkAD4UNAgAAgH00AA+FbP///8ZFNACLRTCNUAGJVTAx0kiDfRgAdAOLVSA5wg+GS////0hj+ItVAEiLdQiJFL5IY3UASItVGIkEsoNFAAHpKv///8ZEJEAASI0NXl4OAEiNQRhIiUQkSEiNQUBIiYQkuAAAAEiNvCS4AAAASI10JFBNicXolPYNAEjHhCRAAQAAAAAAAMeEJEgBAAD/////SI0Fpl0OAEiNSBhIiUwkOEiJTCRISIPAQEiJRCQwSImEJLgAAABIjXwkUOhd9g0ATIlsJFBMjWwkSA9XwEEPEUVYQQ8RRUjHhCSwAAAAEAAAALodAAAATInvSI01Ivtb/+j3wvr/ugEAAABIicdIjTVQG+3/6OPC+v9Iice+uwMAAOjG7A0AugIAAABIicdIjTVoNqD/6MLC+v+6EgAAAEyJ70iNNcCtmv7orsL6/0OLNPyD5gdIicfoj+wNAIB8JEAAdQpIjXwkQOju1v7/SItEJDhIiUQkSEiLRCQwSImEJLgAAABIi0QkGEmJx0iJRCRQ9oQkkAAAAAEPhJL9//9Ii7wkoAAAAOhP5A0A6YD9//+D+VuJyA9MRCQEg/lBD0zBQ4B8/AYAD0TBQw+2dPwEOfAPjKP9//9DD7Z0/AU58A+Plf3//8HqBEyJ70iJ7osMJE2Jx+iB+P//QbraAAAATYn4SItMJAhMi0wkEOlp/f//ZEiLBCUoAAAASDuEJFABAAB1EkiBxFgBAABbQVxBXUFeQV9dw+gP5g0AZi4PH4QAAAAAAA8fRAAAVUFXQVZTUEGJ10iJ80iJ/UyNdxBMiffoNPYNAIXAdStIie9Iid5EifroIgAAAEiJw0yJ9+gn9g0AhcB1DkiJ2EiDxAhbQV5BX13D6FDoDQBVQVdBVkFVQVRTSIHsOAEAAEmJ9WRIiwQlKAAAAEiJhCQwAQAASIP+AnYdQYnWSYn/SIsHgfoAAQAAD4UgAQAAi0AU6SABAABNhe0PhAECAABJg/0CD4TtAQAASYP9AQ+F6AIAAMZEJCAATI10JChIjbwkmAAAAEyNZCQwSI0FnVsOAEiNSBhIiUwkKEiDwEBIiYQkmAAAAEyJ5ujg8w0ASMeEJCABAAAAAAAAx4QkKAEAAP////9IjS3yWg4ATI19GEyJfCQoSIPFQEiJrCSYAAAATInn6LXzDQBIjR2mWw4ASIPDEEiJXCQwD1fADxFEJHAPEYQkgAAAAMeEJJAAAAAQAAAASI01efhb/7odAAAATIn36EbA+v9IjTWnGO3/ugEAAABIicfoMsD6/0iJx77yAwAA6BXqDQBIjTW/M6D/ugIAAABIicfoEcD6/0iNNT1/6/+6GwAAAOnjAgAASWPOD7ZECHhImEmLRMUQSIXAD4WEBAAASYtfSMcDAAAAAItDKIlDMEGDfQgAfn8x7esgZi4PH4QAAAAAAA8fAIB7NAB0MEiDxQFJY0UISDnFfVtJi0UAixSog/r/dOGD+v50SkEPtk0MTIn/SIne6Az2///r0MZDNACLQzCNSAGJSzAxyUiDexgAdAOLSyA5wXazSGPIixNIi3MIiRSOSGMLSItTGIkEioMDAeuYQYtVDInQwegQD7bKic+DzwIx7UGD/gpBD5TAD0X5if6DzgpBgf4AAQAAD0X3D4VwAgAAMf/pkAIAALgCAAAA6aoDAADGRCQgAEyNdCQoSI28JJgAAABMjWQkMEiNBbBZDgBIjUgYSIlMJChIg8BASImEJJgAAABMiebo8/ENAEjHhCQgAQAAAAAAAMeEJCgBAAD/////SI0tBVkOAEyNfRhMiXwkKEiDxUBIiawkmAAAAEyJ5+jI8Q0ASI0duVkOAEiDwxBIiVwkMA9XwA8RRCRwDxGEJIAAAADHhCSQAAAAEAAAAEiNNYz2W/+6HQAAAEyJ9+hZvvr/SI01uhbt/7oBAAAASInH6EW++v9Iice+9gMAAOgo6A0ASI010jGg/7oCAAAASInH6CS++v9IjTXfNrD+uhwAAADp9gAAAMZEJCAATI10JChIjbwkmAAAAEyNZCQwSI0FtVgOAEiNSBhIiUwkKEiDwEBIiYQkmAAAAEyJ5uj48A0ASMeEJCABAAAAAAAAx4QkKAEAAP////9IjS0KWA4ATI19GEyJfCQoSIPFQEiJrCSYAAAATInn6M3wDQBIjR2+WA4ASIPDEEiJXCQwD1fADxFEJHAPEYQkgAAAAMeEJJAAAAAQAAAASI01kfVb/7odAAAATIn36F69+v9IjTW/Fe3/ugEAAABIicfoSr36/0iJx775AwAA6C3nDQBIjTXXMKD/ugIAAABIicfoKb36/0iNNdHx5v+6KgAAAEyJ9+gVvfr/gHwkIAB1CkiNfCQg6GTR/v9MiXwkKEiJrCSYAAAASIlcJDD2RCRwAXQNSIu8JIAAAADo3t4NAEyJ5+gW8A0ASI01b1cOAEiDxghMiffoE/ANAEiNvCSYAAAA6BbwDQAxwOlLAQAARInzgOPfgMO/QLcBgPsachZBjX7QQID/Cg+Sw0GA/l9AD5THQAjfRIjFSIlsJBj3wgACAAAPlMKJfCQMQDD6RA+24kHB5ARBg8QQQQn099EhyEmLb0hJi19QRIXgdGZMiXQkEMcDAAAAAItDKIlDMIN9AAB0OkyLdRgPH0QAAEGLFjlVKLj/////D07QTIn/SIneRInh6JTy//9Jg8YESGNFAEjB4AJIA0UYSTnGdc9Ji19ISYtvUEmJb0hJiV9QTIt0JBDGRCQgAEyNTCQgTIn/SInuSInaRInxSItcJBhBidjod/b//0mLV0hJi3dQSYl3SEmJV1CKRCQgjbsAAQAAhMAPRPuNjwACAACAfCQMAA9Ez4TAdAdBg38IA3QCMdJMif/olev//0mLD0GB/gABAAB1BYtJFOsISWPWD7ZMEXhIY8lJiUTNEGRIiwwlKAAAAEg7jCQwAQAAdRJIgcQ4AQAAW0FcQV1BXkFfXcPoit8NAGYuDx+EAAAAAABQSIk3xkcIAEiJ9+jg7w0AhcB1AljD6AXiDQAPH0QAAFOAfwgAdAJbw0iJ+0iLP+is7w0AhcB1EkiLO+iQ7w0AhcB1BsZDCAFbw+jR4Q0AkFOKXwhIiz/ohO8NAITbhcB1AlvD6LfhDQAPH4AAAAAAQVdBVlNJif+AfggAdShJifZIiz7oV+8NAIXAD4XnAQAASYs+6DfvDQCFwA+F1wEAAEHGRggBSceH2AAAAAAAAABBx4fgAAAA/////0nHh+gAAAAAAAAAQceH8AAAAP////9Jx4f4AAAAAAAAAEHHhwABAAD/////SceHCAEAAAAAAABBx4cQAQAA/////0nHhxgBAAAAAAAAQceHIAEAAP////9Jx4coAQAAAAAAAEHHhzABAAD/////SceHOAEAAAAAAABBx4dAAQAA/////0nHh0gBAAAAAAAAQceHUAEAAP////9Ji4fAAAAASIXAdCJmLg8fhAAAAAAADx9AAEiLGEiLeBDotNsNAEiJ2EiF23XsSYO/yAAAAAAPhNIAAABJi7/AAAAASIX/dBJmkEiLH+iI2w0ASInfSIXbdfBJx4fAAAAAAAAAAEmLl7gAAABIhdIPhI4AAABIjUr/idCD4ANIg/kDcwQxyetaSIPi/DHJZi4PH4QAAAAAAGaQSYu3sAAAAEjHBM4AAAAASYu3sAAAAEjHRM4IAAAAAEmLt7AAAABIx0TOEAAAAABJi7ewAAAASMdEzhgAAAAASIPBBEg5ynW4SIXAdBwPHwBJi5ewAAAASMcEygAAAABIg8EBSIPA/3XnSceHyAAAAAAAAABJi4eoAAAASYmHoAAAAFtBXkFfw+ij3w0ADx8AQVdBVlNJidZIiftIiTdIg/oCdk7GQxgASMdDIAAAAABBi0YMiUMUTWN+CLkEAAAATIn4SPfhRIl7EEjHx/////9ID0H46MbcDQBIiUMISYs2ScHnAkiJx0yJ+uiw4w0A6w8PV8APEUMIxkMYAUyJcyBbQV5BX8NmDx+EAAAAAACAfxgAdAHDSIt/CEiF/3T26YvcDQBmLg8fhAAAAAAAkFVBV0FWQVVBVFNIgewoAQAASIn7ZEiLBCUoAAAASImEJCABAACAfxgAdAlIi1sg6acBAABMizNJg8YQTIn36G3sDQCFwA+FuAEAAEiLO0iLcwiLUxCLSxToo+v//0iJw0iFwA+FZgEAAMZEJBAATI1kJBhIjbwkiAAAAEiNbCQgSI0FSVIOAEiNSBhIiUwkGEiDwEBIiYQkiAAAAEiJ7uiM6g0ASMeEJBABAAAAAAAAx4QkGAEAAP////9MjS2eUQ4ASY1FGEiJRCQISIlEJBhJg8VATImsJIgAAABIie/oXOoNAEyNPU1SDgBJg8cQTIl8JCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTUj71v/uh0AAABMiefo8Lb6/0iNNVEP7f+6AQAAAEiJx+jctvr/SInHvt0EAADov+ANAEiNNWkqoP+6AgAAAEiJx+i7tvr/SI01tlye/7ojAAAATInlTInn6KS2+v+AfCQQAHUKSI18JBDo88r+/0iLRCQISIlEJBhMiawkiAAAAEyJfCQg9kQkYAF0CkiLfCRw6GvYDQBIjXwkIOih6Q0ASI01+lAOAEiDxghIie/onukNAEiNvCSIAAAA6KHpDQBMiffo6eoNAIXAdShkSIsEJSgAAABIO4QkIAEAAHUaSInYSIHEKAEAAFtBXEFdQV5BX13D6PjcDQDoU9oNAA8fADHSMclFMcDptBwAAA8fQAAx0jHJQbgBAAAA6aEcAACQMdK5AQAAAEUxwOmRHAAAkDHSuQEAAABBuAEAAADpfhwAAGYuDx+EAAAAAAAPH0AAugEAAAAxyUUxwOlhHAAAkLoBAAAAMclBuAEAAADpThwAAGYuDx+EAAAAAAAPH0AAugEAAAC5AQAAAEUxwOkuHAAAZi4PH4QAAAAAAA8fQAC6AQAAALkBAAAAQbgBAAAA6QscAABmLg8fhAAAAAAAkItWMA+2TiFED7ZGIvfSweof6eobAABmLg8fhAAAAAAAi0Yw99DB6B2D4PwPtk4hSAHJD7ZWIkgJykgJwkjB4gRIjQV5WA4ASAN8Agj/JAKQVUFXQVZBVUFUU0iB7BgBAABJifVkSIsEJSgAAABIiYQkEAEAAEiLBkiLThBIOchyF0mLVQhIAcJJi3UYSAHOSDnyD4Z0AQAAxgQkAEyNdCQISI18JHhMjXwkEEiNBU5PDgBIjUgYSIlMJAhIg8BASIlEJHhMif7olOcNAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0tpk4OAEyNZRhMiWQkCEiDxUBIiWwkeEyJ/+hs5w0ASI0dXU8OAEiDwxBIiVwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNTbsW/+6HQAAAEyJ9+gDtPr/SI01ZAzt/7oBAAAASInH6O+z+v9Iice+aQYAAOjS3Q0ASI01fCeg/7oCAAAASInH6M6z+v9IjTX3K6//uh0AAABMiffourP6/4A8JAB1CEiJ5+gMyP7/TIlkJAhIiWwkeEiJXCQQ9kQkUAF0CkiLfCRg6IzVDQBMif/oxOYNAEiNNR1ODgBIg8YITIn36MHmDQBIjXwkeOjH5g0AScdFKAEAAACwAWRIiwwlKAAAAEg7jCQQAQAAD4U4AgAASIHEGAEAAFtBXEFdQV5BX13DSYn+QYB9IgB0GUg5yHQ9ikD/PAp1GEG/AQAAALgCAAAA6zFIOfJ0JIoCPAp06InBgOHfgMG/gPkaD4PIAQAAQb8AAgAAuAQAAADrCEG/BQAAADHAQQ+2XSBICcNIweMESY0sHkiBxdgAAABMifdMie5IiepEifnouAEAAITAdSFJi3U4TIn36Oj3//9MifdMie5IiepEifnolwEAAITAdBlIi0UASYlFKEGLhB7gAAAAQYlFMOkb////xgQkAEyNdCQISI18JHhMjXwkEEiNBSBNDgBIjUgYSIlMJAhIg8BASIlEJHhMif7oZuUNAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0teEwOAEyNZRhMiWQkCEiDxUBIiWwkeEyJ/+g+5Q0ASI0dL00OAEiDwxBIiVwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNQjqW/+6HQAAAEyJ9+jVsfr/SI01Ngrt/7oBAAAASInH6MGx+v9Iice+mAYAAOik2w0ASI01TiWg/7oCAAAASInH6KCx+v9IjTWWt7L+uh4AAABMiffojLH6/4A8JAB1CEiJ5+jexf7/TIlkJAhIiWwkeEiJXCQQ9kQkUAF0CkiLfCRg6F7TDQBMif/oluQNAEiNNe9LDgBIg8YITIn36JPkDQBIjXwkeOiZ5A0AQcZFQAExwOnQ/f//PF8PhDD+//8E0DwJD4Ym/v//RTH/uAYAAADpLv7//+hZ1Q0AZg8fhAAAAAAAVUFXQVZBVUFUU1CLQghAtQGD+P8PhckAAABBic1JidRJifdIiftMjXcQTIn36G7lDQCFwA+FugAAAEGLRCQIQLUBg/j/D4WMAAAASItDSMcAAAAAAItIKIlIMEiLA0iLc0gxyUGAfyAAD5TBi1SICEiJ30SJ6egF5///SItzSDHtSInfMdJEienoguD//0iJwUmJBCS4/v///0iNUf9Ig/oCcitIhcl0LkiLO+hvmf//g/j/dBRBgH8gAHUNSYsMJIF5DAAAAQByBbj+////QYlEJAhAtQFMiffo0eQNAIXAdRGJ6EiDxAhbQVxBXUFeQV9dw+j31g0ADx+AAAAAAFVBV0FWQVVBVFNIg+x4QYnNSInVSIuMJLgAAABIi5QksAAAAGRIiwQlKAAAAEiJRCRwSMcBAAAAAIB/DAB0CsYCATHb6VgBAABFic9FicRJifZIifvGAgBIx0QkaAAAAABIg8doSIl8JGDGRCRoAOhM5A0AhcAPhUYBAABIi4QkwAAAAEEPEAYPKQQkD1fADylEJCAPKUQkMEjHRCRAAAAAAA8QRQAPKUQkEEjHRCQoAAAAAMdEJDD/////SI1MJGBIiUwkOMZEJEAASMdEJEgAAAAARIhsJCBEiGQkIUSIfCQiSIlEJFBIieZIid/oHfr//4TAdF9Ii0QkKEiD+AF0EUiD+AJ1D0Uw/HRYSYtGCOtUMdvrdItEJDD30MHoHYPg/A+2TCQhSAHJD7ZUJCJICcpICcJIweIESI0FP1IOAEgDXAIISInmSInf/xQCgHwkQAB0I0iLhCSwAAAAxgABMdvrJjHASIuMJLgAAABJAwZIiQGzAesSicNIi0QkSEiLjCS4AAAASIkBQIpsJGhIi3wkYOgW4w0AQITthcB1IWRIiwQlKAAAAEg7RCRwdRaJ2EiDxHhbQVxBXUFeQV9dw+gp1Q0A6ITSDQAPH0AAU0iD7DBIiftkSIsEJSgAAABIiUQkKIP+A3RFhfYPhYgAAABIiRwkSIuDgAEAAEiD+P90cUiNu4ABAABIjUQkCEiJRCQYSIngSIlEJCBIjUQkGEiJRCQQSI0VohMAAOs7SIkcJEiLg4ABAABIg/j/dDRIjbuAAQAASI1EJAhIiUQkGEiJ4EiJRCQgSI1EJBhIiUQkEEiNFbUTAABIjXQkEOir3g0ASIPDaOtJSIkcJEiLg4gBAABIg/j/dDRIjbuIAQAASI1EJAhIiUQkGEiJ4EiJRCQgSI1EJBhIiUQkEEiNFaoTAABIjXQkEOhg3g0ASIPDcEiLA2RIiwwlKAAAAEg7TCQodQZIg8QwW8PobtENAGYuDx+EAAAAAAAPH0AASIX2dBVTSInzSIn36N/X//9Iid9b6fbODQDDDx9EAABVQVdBVkFVQVRTSIPsOEmJ90iJ+0yLZCRwZEiLBCUoAAAASIlEJDBBxgQkAA8QAg8pRCQgSIN8JCAAdQlBDxAHDylEJCCLEw+2QwGAewIAidYPRPCJxw9E+kCE/3QKSIt8JCBJOz91G0CE9nQ7SIt0JCBIA3QkKEmLP0kDfwhIOf50JTHAZEiLDCUoAAAASDtMJDAPhVIBAABIg8Q4W0FcQV1BXkFfXcNBtQGD+QF0EITSD5XBQYP4AkEPlMVBCM1Ii0wkeEGD+AJMiUwkEHQoQYP4A3UaSYnOSIXJQA+UxUG4AwAAAMdEJAwAAAAA6zGEwA+EqQAAAEC1AUG4AQAAAE2FyYlsJAxJic50BDHt6xBAhO24AQAAAEQPRMBAgPUBSInfRInG6JT9//9Ix0QkGAAAAABFMcmAewIAQQ+UwUiD7AhMjVQkIEEPts1ED7bFSI1UJChIicdMif5BVkFSQVToifv//0iDxCCJwTHAQYA8JAAPhQv///+EyUiLfCQQD4T+/v//gHwkDAB0KEiLTCQYMcCAewIAdQ1Ji1cI6wkx7elZ////MdJJAxdIOdEPhc/+//+wAUiF/w+ExP7//0mLD0mLVwhIAcqAewIASIt0JBhID0TWSA9E8Ugp8kiJN0iJVwjpmv7//+hQzw0AVUFXQVZBVUFUU0iB7GgBAABkSIsEJSgAAABIiYQkYAEAAEUx5IB/DAAPhQkKAABJifVIiftIx4QkWAEAAAAAAABIg8doSIm8JFABAADGhCRYAQAAAOhm3w0AhcAPhRAKAABIid8PV8APKYQksAAAAA8phCTgAAAADymEJNAAAAAPKYQkwAAAAEjHhCTwAAAAAAAAAMeEJOAAAAD/////SI2EJFABAABIiYQk6AAAAMaEJPAAAAAADxGEJPgAAADGhCTQAAAAAEiNtCSwAAAA6Dz1//9FMeSEwA+EPwkAAEiDvCTYAAAAAg+CMAkAAEiNlCTYAAAAD1fADymEJDABAAAPKYQkIAEAAEjHhCRAAQAAAAAAAMeEJEABAAAAAIA/DymEJKAAAAAPKYQkkAAAAA8phCSAAAAAx0QkYAAAAABIjbwkIAEAAEiNTCRgSInW6AsmAABIi4QkiAAAAEiLjCSQAAAASCnBSInKSMHiBkiDwv9IhclID0TRSIuMJKgAAABIA4wkoAAAAEg5ynUlSI28JIAAAADoZCwAAEiLhCSIAAAASIuMJKAAAABIA4wkqAAAAEiJykjB6glIiwTQgeH/AQAASIuUJNgAAABIiRTISIOEJKgAAAABSIsDTGNgFEyJ5UiDxQEPV8APKUQkYEjHRCRwAAAAAIXtD4TIAAAAQYP8/g+ObAgAAEiNPK0AAAAA6MjKDQBIiUQkaEiJRCRgSI0MqEiJTCRwSI1V/0iJ6UiD4QMPhCQIAAAx9maQxwAAAAAASItEJGhIg8AESIlEJGhIg8YBSDnxdeNIielIKfFIg/oDcmAPH4AAAAAAxwAAAAAASItEJGhIjVAESIlUJGjHQAQAAAAASItEJGhIjVAESIlUJGjHQAQAAAAASItEJGhIjVAESIlUJGjHQAQAAAAASItEJGhIg8AESIlEJGhIg8H8dacx0kiJ2EiJXCQg6ylmLg8fhAAAAAAAkEiJ8EiLTCRgiQSZSInCSIPCAT3/AAAASItEJCB9S0iLCEhj0g+2XBF4SIH6AAEAAL7/AAAASA9N8kiDwv9IifdI999mLg8fhAAAAAAADx8ASI0EF0iD+P90pkiNQgE4XBF6SInCdOnrmkmJx0iLAEhjQBRIi0wkYMcEgQABAAAPV8APKUQkQEjHRCRQAAAAAIXtD4TRAAAAQYP8/g+O/wYAAEiNPK0AAAAA6FHJDQBIiUQkSEiJRCRASI0MqEiJTCRQSI1N/0iJ6kiD4gN0MTH2Zi4PH4QAAAAAAA8fRAAAxwAAAAAASItEJEhIg8AESIlEJEhIg8YBSDnydeNIKfVIg/kDcmNmLg8fhAAAAAAAxwAAAAAASItEJEhIjUgESIlMJEjHQAQAAAAASItEJEhIjUgESIlMJEjHQAQAAAAASItEJEhIjUgESIlMJEjHQAQAAAAASItEJEhIg8AESIlEJEhIg8X8dadJjV8QRTH2TIlsJChIiVwkCOszDx9AAIpNDYDhAUiJhCQYAQAAiEwkOEiLB0iNtCQYAQAASI1UJDj/UDBB9sYBD4VEBAAASIuMJKgAAABIhckPhDMEAABMiXQkGEiLhCSIAAAASIuUJKAAAABIidZIwe4JSIs08InXgef/AQAASIss/kiDwf9IiYwkqAAAAEiDwgFIiZQkoAAAAEiB+gAEAAByHUiLOOgLyA0ASIOEJIgAAAAISIGEJKAAAAAA/v//TItsJGBIi0QkaEiJRCQwSTnFD4ROAwAASIlsJBDrNA8fgAAAAABCD7ZEMHhIi1wkCEiLbCQQSJhIi0wkQMcEgf////9Jg8UETDtsJDAPhBMDAABNY3UASMdEJDgAAAAASInf6C7aDQCFwA+F+AQAAE2J/EyJ/0iJ7kSJ8ugV5P//SInFSInf6BraDQCFwA+F1AQAAEiJbCQ4SIP9AQ+E0wAAAEiF7Q+EygIAAEyLhCQoAQAATYXAD4SJAQAASInoSMHoII0U7QAAAABIg8IISDHCSL5pLTjrCOrfnUgPr9ZIidFIwekvSDHCSDHKSA+v1kiJ0UjB6S9IMdFID6/OTInASNHoSLpVVVVVVVVVVUgh0EyJwkgpwkiJ0Ei+MzMzMzMzMzNIIfBIweoCSCHySAHCSInTSMHrBEgB00i4Dw8PDw8PDw9IIcNIuAEBAQEBAQEBSA+v2EjB6zhIg/sBdzFJjXD/SCHO6ztmLg8fhAAAAAAAZpBNiedJiwQkQYH+AAEAAA+FnP7//4tAFOma/v//SInOTDnBcgtIicgx0kn38EiJ1kiLhCQgAQAASIsE8EiFwA+EjAAAAEiLOEiF/w+EgAAAAE2NSP/rHGYuDx+EAAAAAABIOW8QD4QTAQAASIs/SIX/dF5Ii0cISDnIdOWD+wF3EEwhyOs7Zi4PH4QAAAAAAJBMOcByK0iJwkwJwkjB6iB0CjHSSffwSInQ6xUx0kH38InQZi4PH4QAAAAAAA8fQABIOfB0pWYuDx+EAAAAAACQi4QkOAEAAImEJBgBAABIjbwkIAEAAEiNVCQ4SInWSI2MJBgBAADo5R8AAEiLhCSIAAAASIuMJJAAAABIKcFIicpIweIGSIPC/0iFyUgPRNFIi4wkqAAAAEgDjCSgAAAASDnKdSVIjbwkgAAAAOg+JgAASIuEJIgAAABIi4wkoAAAAEgDjCSoAAAASInKSMHqCUiLBNCB4f8BAABIi1QkOEiJFMhIg4QkqAAAAAFIjXQkOEiJtCQYAQAASI28JCABAABIjRX/n/D/SI2MJBgBAABMjYQkEAEAAOgiNAAAi0AYTIt8JCBJiw9Bgf4AAQAAdQ6LSRTrD2YPH4QAAAAAAEIPtkwxeEiLXCQISItsJBBIY8lIi1QkQIkEiune/P//TIt0JBjrGWYPH4QAAAAAAEG2AUiLXCQISItsJBBNiedMi2wkKEmLfSBIhf8PhOP7//9B9sYBdRhIi0QkQEiD/QIPhan7///rEw8fgAAAAAAxwEiD/QIPhZT7//+xAemT+///RIukJDgBAABIi3wkQEiF/3QKSIl8JEjoEcQNAEiLfCRgSIX/dApIiXwkaOj9ww0ASIucJIgAAABIi6wkkAAAAEjHhCSoAAAAAAAAAEiJ6Egp2EjB+ANIg/gDcjWQSIs76MjDDQBIi5wkiAAAAEiLrCSQAAAASIPDCEiJnCSIAAAASInoSCnYSMH4A0iD+AJ3zEiD+AF0DUiD+AJ1FLgAAgAA6wW4AAEAAEiJhCSgAAAASDnrdEQPH4AAAAAASIs76GjDDQBIg8MISDnrde9Ii4QkkAAAAEiJwUgrjCSIAAAAdBdIg8H4SMHpA0j30UiNBMhIiYQkkAAAAEiLvCSAAAAASIX/dAXoIcMNAEiLvCQwAQAASIX/dBQPH0AASIsf6AjDDQBIid9Ihdt18EiLvCQgAQAASMeEJCABAAAAAAAASIX/dAXo4sINAIqcJFgBAABIi7wkUAEAAOh+1Q0AhNuFwHU6ZEiLBCUoAAAASDuEJGABAAB1QESJ4EiBxGgBAABbQVxBXUFeQV9dw0iJ6UiD+gMPgwP4///pV/j//+h5xw0ASI18JGDoj8cNAEiNfCRA6IXHDQDowMQNAFNIidPoN/L//0iJx0iJ3lvpW/X//2YuDx+EAAAAAACQQIg9haAOAMMPH4QAAAAAAFVBV0FWQVVBVFNIgezYAAAAZEiLBCUoAAAASImEJNAAAACAfwwAdAcx7elPAQAAQYnOSYnUSInzSIn9D1fADymEJLAAAAAPKYQkoAAAAEjHhCTAAAAAAAAAAMeEJMAAAAAAAIA/SMeEJJgAAAAAAAAASIPHaEiJvCSQAAAAxoQkmAAAAADodtQNAIXAD4XQBAAAD1fADylEJCAPKUQkUA8pRCRADylEJDBIx0QkYAAAAADHRCRQ/////0iNhCSQAAAASIlEJFjGRCRgAA8RRCRoxkQkQAFIjXQkIEiJ7+ht6v//hMB0N0iLRCRISIP4AnQsSIP4AQ+FrQAAAEiNLchisP9Iid9Iie7oosgNAEyJ50iJ7uiXyA0AQLUB6wIx7YqcJJgAAABIi7wkkAAAAOi80w0AhNuFwA+FJAQAAEiLvCSwAAAASIX/dBUPH0QAAEiLH+jowA0ASInfSIXbdfBIi7wkoAAAAEjHhCSgAAAAAAAAAEiF/3QF6MLADQBkSIsEJSgAAABIO4Qk0AAAAA+F0gMAAInoSIHE2AAAAFtBXEFdQV5BX13DSIlEJBj2AwF1B2bHAwAA6w9Ii0MQxgAASMdDCAAAAABIjX0QSIl8JBDoCdMNAIXAD4WDAwAARYX2D44eAQAAx0QkDAAAAABIjXQkGEiJtCSIAAAASI28JKAAAABIjRVMm/D/SI2MJIgAAABMjYQkgAAAAOhvLwAAg3gYAA+P2wAAAEiNdCQYSIm0JIgAAABIjbwkoAAAAEiNFRGb8P9IjYwkiAAAAEyNhCSAAAAA6DQvAACDQBgBSIt0JBhIie+6AAEAAOhu3P//SIP4AXQVSIXAD4S8AgAASIP4AnR/9kANAXV5RTH/6xtmLg8fhAAAAAAADx9AAEGDxwFBgf8AAQAAdFlIi3QkGEiJ70SJ+ugj3P//SIXAD4R3AgAASYnFSIP4AnQNSYP9A3LLQYN9CAB+xEEPvte+AQAAAEiJ3+gj0g0ATIlsJBiLRCQMg8ABiUQkDEQ58A+F6v7//0iDvCS4AAAAAA+E8QAAAEiLvCSwAAAASIX/dB5mLg8fhAAAAAAADx9AAEiLH+gIvw0ASInfSIXbdfBIx4QksAAAAAAAAABIi5QkqAAAAEiF0g+EnQAAAEiNSv+J0IPgA0iD+QNzBDHJ61xIg+L8MclmLg8fhAAAAAAASIu0JKAAAABIxwTOAAAAAEiLtCSgAAAASMdEzggAAAAASIu0JKAAAABIx0TOEAAAAABIi7QkoAAAAEjHRM4YAAAAAEiDwQRIOcp1tEiFwHQpZi4PH4QAAAAAAA8fRAAASIuUJKAAAABIxwTKAAAAAEiDwQFIg8D/deZIx4QkuAAAAAAAAABIi0QkSEiJRCQYQfYEJAF1CWZBxwQkAADrEUmLRCQQxgAAScdEJAgAAAAARYX2D47rAAAARTH/SI1cJBhMjS0PmfD/SImcJIgAAABIjbwkoAAAAEiJ3kyJ6kiNjCSIAAAATI2EJIAAAADoHC0AAEyNhCSAAAAASI2MJIgAAABIjbwkoAAAAIN4GAAPj48AAABEiXwkDEiJnCSIAAAASIneTInq6OIsAACDQBgBQb//AAAA6wxmDx9EAABBg8f/c3tIi3QkGEiJ70SJ+ugK2v//SIXAdGJJicVIg/gCdA1Jg/0DctZBg30IAH7PQQ++174BAAAATInn6A7QDQBMiWwkGESLfCQMQYPHAUU590iNXCQYTI0tOZjw/w+FJP///0yJ5+hjvv//QQ+2BCSoAXQQSYtEJAjrDDHt6w9AtQHrCkjR6EiFwEAPlcVIi3wkEOiWzw0AhcAPhL77///oycENAOgkvw0ADx9AAFVBV0FWU0iD7DhBic5JiddIifVIiftkSIsEJSgAAABIiUQkMEiJfCQISIuHiAEAAEiD+P90NkiNu4gBAABIjUQkEEiJRCQgSI1EJAhIiUQkKEiNRCQgSIlEJBhIjRXOAAAASI10JBjohMsNAEiLe3BIie5MifpEifHoEvr//2RIiwwlKAAAAEg7TCQwdQtIg8Q4W0FeQV9dw+iCvg0AZpBBVlNQSIsHSItACEiLGL9YAQAA6Pi7DQBJicZIi0NgSInBSMHpP0gBwUjR+UyJ90iJ3jHS6PfB//9MiXNoSIPECFtBXsNmLg8fhAAAAAAAkEFWU1BIiwdIi0AISIsYv1gBAADoqLsNAEmJxkiLS2BIicdIid66AwAAAOixwf//TIlzaEiDxAhbQV7DDx9EAABVQVZTSIsHSItACEiLGECKawK/WAEAAOhkuw0ASYnGSItLYECE7XUQSInISMHoP0gByEjR+EiJwUyJ90iJ3roBAAAA6FjB//9MiXNwW0FeXcPMzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIHsCAIAAIlMJEyJVCRkSYn1ZEiLBCUoAAAASImEJAACAABIix5Mi04ISQHZRIlEJCBFhcBNic9MD0X7SIlcJBhJD0XZTItmKEiJfCQISIsHSImEJJgAAABB9kQkDQFIiVwkOHUTMcBIiUQkQDHASIlEJDDprQAAAEmDfVAAD4R8AAAASItEJAiDeAgDdXFBi0wkCIXJfmhIichIg8ABg8H/6yFmkEGJHJBIYz5Ii24YiVS9AIMGAUiDwP+Dwf9Ig/gBfjtJixQkic5IYxSySIP6/nQrSYt1UEiLfhgx7UiF/3QDi24gOdV2zUyLRghJYyyQix453XOtORSvdajruLABSIlEJDBMifhMiXwkQIB8JEwASItcJDh0C02JfUiwAemJCQAASItEJAhIg8AQSIlEJFBJOd8PhEwGAABMiUwkeItEJCA0AQ+2wEgBwEiDwP9IiYQkkAAAADHASIlEJChIjQX2Mg4ASIPAEEiJhCSIAAAASI0FWzIOAEiDwAhIiYQkgAAAAEyJ5esTZi4PH4QAAAAAAEk53w+E5wUAAIB8JGQAdE5JOex1SUGLdTCAfCQgAHQgSInaTCn6TIn/6PK/DQBJicdIhcB1KOnnBQAADx9EAABJKd9Iid9MifroMswNAEiFwA+E0gUAAEmJx0mDxwFMifhJg8cBSI1I/4B8JCAATA9E+UgPRcgPtglIi4QkmAAAAA+2RAh4SYtExBBIhcB0EEmJxOloBAAADx+EAAAAAABIiUwkcE2J5kyLZCRQTInn6IvLDQCFwA+FjggAAEiLfCQITIn2SItUJHDocdX//0iJw0yJ5+h2yw0AhcAPhWkIAABIhdsPV8B0DUmJ3EiLXCQ46QkEAACAPd6WDgAASItMJCh0J0iFyXQiTIn4SCnISItMJAhIi4nIAAAASAHJSI0MiUg5yA+CFggAAEiNjCTQAAAADxFBEA8RAUiLRCQISImEJMgAAABIg/0CdmzGhCTgAAAAAEjHhCToAAAAAAAAAItFDImEJNwAAABIY10IiZwk2AAAAEiJ2LkEAAAASPfhSMfB/////0gPQMFIicfoa7oNAEiJhCTQAAAASIt1AEjB4wJIiUQkKEiJx0iJ2uhLwQ0AD1fA6xoPEQHGhCTgAAAAAUiJrCToAAAAMcBIiUQkKEiNjCSoAAAASIP9Aw+Swg8RQRAPEQFIi0QkCEiJhCSgAAAASYP+AohUJBd2acaEJLgAAAAASMeEJMAAAAAAAAAAQYtGDImEJLQAAABJY14IiZwksAAAAEiJ2LkEAAAASPfhSMfB/////0gPQMFIicfot7kNAEiJhCSoAAAASYs2SMHjAkiJRCRYSInHSIna6JjADQDrGg8RAcaEJLgAAAABTIm0JMAAAAAxwEiJRCRYSYP+Aw+SRCQWSYt1OEiLfCQI6EXa//9IjbwkyAAAAOjo3P//SInFSIXATIt0JCgPhPUBAABIjbwkoAAAAOjK3P//SIXAD4TfAQAASInDSIlsJGhIi2wkUEiJ7+hcyQ0AhcAPhV8GAABIi3wkCEiJ3kiLVCRw6ELT//9JicRIie/oR8kNAIXAD4U6BgAATYXkSItsJGhIi3wkWHQHswHplgEAAMaEJPAAAAAASI0NKi8OAEiNQRhIiYQk+AAAAEiNQUBIiYQkaAEAAEiNvCRoAQAASI2sJAABAABIie7oWscNAEjHhCTwAQAAAAAAAMeEJPgBAAD/////SI0FbC4OAEyNcBhMibQk+AAAAEyNYEBMiaQkaAEAAEiJ7+gsxw0ASIucJIgAAABIiZwkAAEAAEiNrCT4AAAAD1fADxFFWA8RRUjHhCRgAQAAEAAAALodAAAASInvSI015ctb/+i6k/r/ugEAAABIicdIjTUT7Oz/6KaT+v9Iice+ogUAAOiJvQ0AugIAAABIicdIjTUrB6D/6IWT+v+6LgAAAEiJ70iNNbrLW//ocZP6/4C8JPAAAAAAdQ1Ijbwk8AAAAOi6p/7/TIm0JPgAAABMiaQkaAEAAEiJnCQAAQAA9oQkQAEAAAFIi2wkaHQNSIu8JFABAADoJrUNAEiNvCQAAQAA6FnGDQBIjbwk+AAAAEiLtCSAAAAA6FTGDQBIjbwkaAEAAOhXxg0ATIt0JChBxkVAATHbRTHkSIt8JFhIhf8PlMAIRCQWdQXoQrcNAE2F9g+UwAhEJBd1CEyJ9+gutw0ATIn4TIl8JCiE20iLXCQ4D4RHBAAAZg8fhAAAAAAASYP8Ag+G0gAAAEH2RCQNAQ+E6vr//0mJ6UmDfVAAD4SMAAAASItEJAiDeAgDD4V9AAAAQYtMJAiFyX50SInISIPAAYPB/+snDx+EAAAAAABBiSyQSGM+SItuGIlUvQCDBgFIg8D/g8H/SIP4AX5BSYsUJInOSGMUskiD+v50MUmLdVBIi34YMe1Ihf90A4tuIDnVds1Mi0YISWMckIsuOetzrTkUn3Wo67hmDx9EAABIi4QkkAAAAEmNDAewAUiJRCQwgHwkTAB1TUiJTCRASItcJDhMic3pJPr//0mD/AEPhbsCAABIi0QkQOkeAwAASYnfTIn6gHwkIAB0MUmLRQBJA0UISYtNEEkDTRhJiddIOch1J+s+SYlNSLAB6fcCAABIi1QkeOvUTIt8JBhJi0UASTtFEHQdSIPA/0yJfCQYRA+2MEiLRCQISIsAQg+2RDB46xZMiXwkGEiLRCQISIsAi0AUQb4AAQAASJhNi3zEEE2F/w+FzQEAAEiJ3UiLXCRQSInf6LXFDQCFwA+FuAIAAEiLfCQITInmRIny6J3P//9JicdIid/oosUNAIXAD4WVAgAATYX/SInrD4WGAQAAD1fADxGEJOAAAAAPEYQk0AAAAEiLRCQISImEJMgAAABJg/wCdmnGhCTgAAAAAEjHhCToAAAAAAAAAEGLRCQMiYQk3AAAAEljXCQIuQQAAABIidhI9+GJnCTYAAAASMfH/////0gPQfjo0bQNAEiJhCTQAAAASYs0JEjB4wJIiUQkIEiJx0iJ2uixuw0A6x8PEYQk0AAAAMaEJOAAAAABTImkJOgAAAAxwEiJRCQgSYt1OEiLfCQI6GLV//9IjbwkyAAAAOgF2P//SIXASItcJFAPhIIAAABIicVIid/onMQNAIXAD4WfAQAASIt8JAhIie5EifLohM7//0mJx0iJ3+iJxA0AhcAPhXwBAABNhf9Ii1wkOHQFQLUB60xIjTXhx1v/SI2cJPAAAABIid+66wUAAOi2nP7/SI28JPgAAABIjTWmTlz/uikAAADojY/6/0iJ3+iFnf7/QcZFQAEx7UUx/0iLXCQ4SYP8A0iLfCQgcgpIhf90BejRsw0AQITtD4T2AAAASYP/AnZJQfZHDQFIi0QkQA+EsAAAAEmDfVAAsAFIiUQkMA+EmQAAAEiLRCQIg3gIAw+FigAAAEGLTwiFyQ+OfgAAAEiJyEiDwAGDwf/rOEmD/wEPhEX9//9JiV1IsAHrcA8fgAAAAABBiSyQSGM+SItuGIlUvQCDBgFIg8D/g8H/SIP4AX46SYsXic5IYxSySIP6/nQrSYt1UEiLfhgx7UiF/3QDi24gOdV2zkyLRghJYxyQiy4563OuORSfdanruUiLRCQYSYlFSEiLRCQwJAFkSIsMJSgAAABIO4wkAAIAAHUkSIHECAIAAFtBXEFdQV5BX13DMcDr10HGRUABMcDrzuhAtQ0A6JuyDQDMzMzMzMzMzMzMzFVBV0FWQVRTSb+TTKv4Srk+3Em8AACYZFrFV8pMiw5Fi1EIRYtZDEmNU1NFhdJ+fkmLMUGD+gF1BDHb609FidBBg+D+MdtmLg8fhAAAAAAASGMMnkiJ0EkPr8dJD6/USMHoLUgJ0EgByEhjTJ4ESInCSQ+v10kPr8RIweotSAnCSAHKSIPDAkk52HXEQfbCAXQcSGMEnkiJ0UkPr89JD6/USMHpLUgJ0UgBwUiJykyLdwhNhfYPhHQBAABMD6/6TA+v4knB7y1NCedMifBI0ehIuVVVVVVVVVVVSCHBTInwSCnISLkzMzMzMzMzM0iJwkghykjB6AJIIchIAdBIicFIwekESAHBSLgPDw8PDw8PD0ghyEi7AQEBAQEBAQFID6/YSMHrOEiD+wF3CU2NRv9NIfjrLE2J+E0593IkTIn4TAnwSMHoIHQNTIn4MdJJ9/ZJidDrC0SJ+DHSQff2QYnQSIsHSosEwEiFwA+EvgAAAEiLMEiF9g+EsgAAAE2NZv/rJWYuDx+EAAAAAAAPHwBMIeBMOcAPhZMAAABIizZIhfYPhIcAAABIi0YITDn4dU9Ii0YQTDnIdHdEOVgMddxEOVAIddZFhdJ+ZkiLAEmLCYsQOxF1xb8BAAAADx9AAEiJ+kk5+nQMiyyQSI16ATsskXTsTDnScqPrNg8fRAAAg/sBdotMOfByiUiJwUwJ8UjB6SB0DTHSSff2SInQ6XD///8x0kH39onQ6WT///8x9kiJ8FtBXEFeQV9dw8zMzFVBV0FWQVVBVFNQSYnRSYn+Sb+TTKv4Srk+3Ei4AACYZFrFV8pMixZFi1oIRYtCDEmNUFNFhdt+dUmLOkGD+wF1BDHt60ZEid6D5v4x7WaQSGMcr0iJ0UkPr89ID6/QSMHpLUgJ0UgB2UhjXK8ESInKSQ+v10gPr8hIweotSAnKSAHaSIPFAkg57nXEQfbDAXQcSGMMr0iJ1kkPr/dID6/QSMHuLUgJ1kgBzkiJ8kwPr/pID6/CScHvLUkJx02LZghNheRMiQwkdGxMieBI0ehIuVVVVVVVVVVVSCHBTIngSCnISLkzMzMzMzMzM0iJwkghykjB6AJIIchIAdBIicFIwekESAHBSLgPDw8PDw8PD0ghyEi/AQEBAQEBAQFID6/4SMHvOEiD/wF3Ek2NbCT/TSH96zRFMe3pGwEAAE2J/U0553IkTIn4TAngSMHoIHQNTIn4MdJJ9/RJidXrC0SJ+DHSQff0QYnVSYsGSosE6EiFwA+E3wAAAEiLGEiF2w+E0wAAAE2NTCT/6x9MOd4Pg78BAABmLg8fhAAAAAAASIsbSIXbD4StAAAASItDCEw5+HRAg/8BdxZMIchMOeh0M+mSAAAAZg8fhAAAAAAATDngchtIicFMCeFIwekgdGwx0kn39EiJ0A8fgAAAAABMOeh1ZEiLQxBMOdAPhFMBAABEOUAMdZhEOVgIdZJFhdsPjj4BAABIiwBJixKLCDsKD4V5////vQEAAAAPH0AASInuSTnrD4RR////iwywSI1uATsMsnTo6UD///8x0kH39InQTDnodJy/GAAAAOh9qw0ASInDSIsEJEiLAEiJQxBMiXsISMcDAAAAAEmLRhhIg8ABeCTzSA8qwE2F5Hk0TIngSNHoRInhg+EBSAnB80gPKtHzD1jS6x9IicFI0emD4AFICcjzSA8qwPMPWMBNheR4zPNJDyrU80EPEE4g8w9Z0Q8uwncJTYXkD4WfAAAAS40EJL0BAAAASYP8A3IOSY1MJP8x7UmFzEAPlcVICcXzD17B6Ma0DQDzSA8swEiJwfMPXAUSS5f+SMH5P/NIDyzwSCHOSAnGSDn1SA9D9UyJ9+jYAAAATYtmCE2NbCT/TYXsdQVNIf3rNU0553MMTYn96ysx0umZAAAATIn4TAngSMHoIHQNTIn4MdJJ9/RJidXrC0SJ+DHSQff0QYnVSYsGSosM6EiFyXQLSIsBSIkDSIkZ61dJjU4QSYtWEEiJE0mJXhBKiQzoSIsDSIXAdDxIi0AISY1MJP9Jhcx1BUghyOsiTDngch1IicFMCeFIwekgdAox0kn39EiJ0OsHMdJB9/SJ0EmLDkiJHMFJg0YYAbIBSInYSIPECFtBXEFdQV5BX13DzMzMzMzMzMzMQVdBVlNJif67AgAAAEiD/gF0GUiNRv9IhcZ1BUiJ8+sLSIn36KezDQBIicNNi34ITDn7D4ftAAAAD4P3AAAASYtGGEiFwHgH80gPKsDrFUiJwUjR6YPgAUgJyPNIDyrA8w9YwPNBD15GIOhRsw0A80gPLMhIicrzD1wFnUmX/vNIDyzASMH6P0gh0EgJyEmD/wNyfkyJ+UjR6Ui6VVVVVVVVVVVIIcpMiflIKdFIujMzMzMzMzMzSInOSMHuAkgh0Ugh1kgBzkiJ8UjB6QRIAfFIug8PDw8PDw8PSCHKSLkBAQEBAQEBAUgPr8pIwek4g/kBdx1Ig/gCch9Ig8D/SA+9yIPxP/bZuAEAAABI0+DrCEiJx+i2sg0ASDnDSA9C2Ew5+3MQTIn3SIneW0FeQV/pCgAAAFtBXkFfw8zMzMxVQVdBVkFVQVRTSIPsGEmJ/0iF9nRJSInzSInwSMHoPQ+F2gIAAEiNPN0AAAAA6F2oDQBJiz9JiQdIhf90BehtqA0ASYlfCEiNS/+J2IPgA0iJTCQQSIP5A3MlMcnraUmLP0nHBwAAAABIhf90Beg9qA0AScdHCAAAAADpcQIAAEiJ2kiD4vwxyQ8fgAAAAABJizdIxwTOAAAAAEmLN0jHRM4IAAAAAEmLN0jHRM4QAAAAAEmLN0jHRM4YAAAAAEiDwQRIOcp1yEiFwHQYDx8ASYsXSMcEygAAAABIg8EBSIPA/3XrTYtfEE2F20iNc/8PhPsBAABJjX8QTYtTCEiJ2EjR6Ei5VVVVVVVVVVVIIcFIidhIKchIuTMzMzMzMzMzSInCSCHKSMHoAkghyEgB0EiJwUjB6QRIAcFIuA8PDw8PDw8PSCHISbkBAQEBAQEBAUwPr8hJwek4SYP5AXcFSSHy6yhJOdpyI0yJ0EgJ2EjB6CB0DUyJ0DHSSPfzSYnS6wpEidAx0vfzQYnSSYsHSok80E2LK02F7Q+EUQEAAEiJXCQI6xhmDx+EAAAAAABNietNiytNhe0PhDIBAABJi0UIQYP5AXcXSCHwTDnQdN/rMmYuDx+EAAAAAAAPHwBIOdhyG0iJwUgJ2UjB6SAPhLkAAAAx0kj380iJ0A8fAEw50HSrSYsPSIM8wQAPhIUAAABJi00ASIXJD4SHAAAASYt1EEyJ6uscDx+AAAAAAEg53Q+CjgAAAEiLCkiFyQ+EfQAAAEmJ1EiJykiLSRBIOc505Yt+DDt5DHVri14IO1kIdWOF237RSIs+SIsJiy87KXVTQbgBAAAAZg8fRAAATInFTDnDdKhEizSvTI1FAUQ7NKl06uuYTIkcwU2J60mJwukM////TYnsMdLrIzHS9/OJ0Ew50A+E8/7//+lD////SYnUMdJIi1wkCEiLdCQQSYkTSYsPSIsMwUiLCUmJDCRJiw9IiwTBTIko6cL+//9Ig8QYW0FcQV1BXkFfXcPom6oNAMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJidZIiy5IiehIweggjRTtAAAAAEiDwghIMcJIvmktOOsI6t+dSA+v1kiJ00jB6y9IMcJIMdpID6/WSYnXScHvL0kx10wPr/5Mi28ITYXtdGtMiehI0ehIulVVVVVVVVVVSCHCTInoSCnQSLozMzMzMzMzM0iJxkgh1kjB6AJIIdBIAfBIicJIweoESAHCSLgPDw8PDw8PD0gh0Ei+AQEBAQEBAQFID6/wSMHuOEiD/gF3GE2NZf9NIfzrIkiJPCRIic1FMeTpfQAAAE2J/E0573ILTIn4MdJJ9/VJidRIiwdKixzgSIXbdFdNjU3/6xcPH0QAAEwhyEw54HVESDlrEA+EQwEAAEiLG0iF23QySItDCEw5+HTlg/4BdthMOehy1kiJwkwJ6kjB6iB0CjHSSff1SInQ68Ax0kH39YnQ67dIiTwkSInNvyAAAADoI6QNAEiJw0mLBkiJQxCLRQCJQxhMiXsISMcDAAAAAEyLNCRJi0YYSIPAAXgk80gPKsBNhe15NEyJ6EjR6ESJ6YPhAUgJwfNIDyrR8w9Y0usfSInBSNHpg+ABSAnI80gPKsDzD1jATYXteMzzSQ8q1fNBDxBOIPMPWdEPLsJ3CU2F7Q+FgwAAAEyJ6EwB6L0BAAAASYP9A3INSY1N/zHtSYXNQA+VxUgJxfMPXsHoZa0NAPNIDyzASInB8w9cBbFDl/5Iwfk/80gPLPBIIc5ICcZIOfVID0P1TIn36LcAAABNi24ITY1l/02F5XUFTSH86xlNOe9zCU2J/OsPMdLrf0yJ+DHSSff1SYnUSYsGSosM4EiFyXQLSIsBSIkDSIkZ61ZJjU4QSYtWEEiJE0mJXhBKiQzgSIsDSIXAdDtIi0AISY1N/0mFzXUFSCHI6yJMOehyHUiJwUwJ6UjB6SB0CjHSSff1SInQ6wcx0kH39YnQSYsOSIkcwUmDRhgBsgFIidhIg8QIW0FcQV1BXkFfXcPMzMzMzMxBV0FWU0mJ/rsCAAAASIP+AXQZSI1G/0iFxnUFSInz6wtIiffoZ6wNAEiJw02LfghMOfsPh+0AAAAPg/cAAABJi0YYSIXAeAfzSA8qwOsVSInBSNHpg+ABSAnI80gPKsDzD1jA80EPXkYg6BGsDQDzSA8syEiJyvMPXAVdQpf+80gPLMBIwfo/SCHQSAnISYP/A3J+TIn5SNHpSLpVVVVVVVVVVUghykyJ+Ugp0Ui6MzMzMzMzMzNIic5Iwe4CSCHRSCHWSAHOSInxSMHpBEgB8Ui6Dw8PDw8PDw9IIcpIuQEBAQEBAQEBSA+vykjB6TiD+QF3HUiD+AJyH0iDwP9ID73Ig/E/9tm4AQAAAEjT4OsISInH6HarDQBIOcNID0LYTDn7cxBMifdIid5bQV5BX+kKAAAAW0FeQV/DzMzMzEFWU1BIiftIhfZ0RUmJ9kiJ8EjB6D0PhUECAABKjTz1AAAAAOgnoQ0ASIs7SIkDSIX/dAXoN6ENAEyJcwhNjUb/RInwg+ADSYP4A3MlMcnrZ0iLO0jHAwAAAABIhf90BegLoQ0ASMdDCAAAAADp4wEAAEyJ8kiD4vwxyQ8fRAAASIszSMcEzgAAAABIizNIx0TOCAAAAABIizNIx0TOEAAAAABIizNIx0TOGAAAAABIg8EESDnKdchIhcB0GA8fAEiLE0jHBMoAAAAASIPBAUiDwP9160yLWxBNhdsPhHMBAABIjXsQTYtTCEyJ8EjR6Ei5VVVVVVVVVVVIIcFMifBIKchIuTMzMzMzMzMzSInCSCHKSMHoAkghyEgB0EiJwUjB6QRIAcFIuA8PDw8PDw8PSCHISbkBAQEBAQEBAUwPr8hJwek4SYP5AXcFTSHC6ylNOfJyJEyJ0EwJ8EjB6CB0DUyJ0DHSSff2SYnS6wtEidAx0kH39kGJ0kiLA0qJPNDrEGYuDx+EAAAAAAAPHwBJiftJiztIhf8PhLYAAABIi0cIQYP5AXcXTCHATDnQdN/rMmYuDx+EAAAAAAAPHwBMOfByG0iJwUwJ8UjB6SB0cjHSSff2SInQDx+AAAAAAEw50HSrSIsLSIM8wQBIifp0QmYuDx+EAAAAAAAPH0AASInRSIsSSIXSdApIi3cQSDtyEHTrSYkTSIsTSIsUwkiLEkiJEUiLC0iLBMFIiTjpX////0yJHMFJiftJicLpUP///zHSQff2idBMOdAPhD3////rkEiDxAhbQV7D6P6jDQDMzMzMzMzMzMzMzMzMzEFXQVZTSIPsQEmJ/mRIiwQlKAAAAEiJRCQ4SItHIEg9AAIAAHI5SAUA/v//SYlGIEjHRCQQAAAAAEmLRghIiwhIiUwkEEiDwAhJiUYISI10JBBMiffolgEAAOlfAQAASYtGEEmLThhIicNJK14ISMH7A0iJykkrFkiJ1kjB/gNIOfNzKr8AEAAASDnBD4S5AAAA6EmeDQBIiUQkEEiNdCQQTIn36McDAADpEAEAAEiJ0EjB+AJIhdJBvwEAAABMD0X4SY1GGEiJRCQwTIn4SMHoPQ+FAAEAAEqNPP0AAAAA6PudDQBIiUQkEEiNDNhIiUwkIEiJTCQYSo0E+EiJRCQovwAQAADo1Z0NAEiJRCQISI18JBBIjXQkCOhBCAAASYteEEk7Xgh0PkyNfCQQZpBIg8P4TIn/SIne6KEKAABJO14IdetJi0YQ6x/okJ0NAEiJRCQQSI10JBBMiffojgUAAOnJ/v//SInYSYs+DyhEJBBIiXwkEEEPEQZIiVwkGA8oRCQgSIlEJCBJi04YQQ8RRhBIiUwkKEiJwUgp2XQUSIPB+EjB6QNI99FIjQTISIlEJCBIhf90BehCnQ0AZEiLBCUoAAAASDtEJDh1D0iDxEBbQV5BX8PoE6INAOhunw0AzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0yLZxBMO2cYD4U4AgAASYsPSYtfCEiJ2EgpyHZRSMH4A0iNSAFIwek/SAHISIPAAUjR+EiJxUj33UjB4ANJid1JKcVJKdx0EkyJ70iJ3kyJ4ugJpg0ASYtfCE0B7E2JZxBIjQTrSYlHCOnYAQAATIngSIkMJEgpyEiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4XJAQAASYntScHtAkiNPO0AAAAA6DOcDQBOjRToTI0E6EyJ0Uw54w+EYgEAAE2J40kp20mDw/hJg/sYcwhMidHpNwEAAEqNFOhMidlIg+H4SI00GUiDxghIOfJzGEqNDOlIAcFIg8EISDnZdghMidHpBwEAAEnB6wNJg8MBTYnZSYPh/EmNUfxIidFIwekCSIPBAYnPg+cDSIP6DHMEMdLrckqNNOhIg8ZwSIPh/Ej32THSZg8fhAAAAAAADxAE0w8QTNMQDxFE1pAPEUzWoA8QRNMgDxBM0zAPEUTWsA8RTNbADxBE00APEEzTUA8RRNbQDxFM1uAPEETTYA8QTNNwDxFE1vAPEQzWSIPCEEiDwQR1qEiF/3ROSI0M00iDwRBJweUDSI0U1QAAAABMAepIAcJIg8IQSMHnBTH2Zi4PH4QAAAAAAA8fRAAADxBEMfAPEAwxDxFEMvAPEQwySIPGIEg593XlS40Myk05y3QfSo0cyw8fhAAAAAAASIsTSIkRSIPBCEiDwwhMOeN17UmJB02JVwhJiU8QTYlHGEmJzEiLPCRIhf90Cei9mg0ATYtnEEmLBkmJBCRJg0cQCEiDxAhbQVxBXUFeQV9dw+iJnw0AzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Mi2cQTDtnGA+FOAIAAEmLD0mLXwhIidhIKch2UUjB+ANIjUgBSMHpP0gByEiDwAFI0fhIicVI991IweADSYndSSnFSSncdBJMie9Iid5MieLoiaMNAEmLXwhNAexNiWcQSI0E60mJRwjp2AEAAEyJ4EiJDCRIKchIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FyQEAAEmJ7UnB7QJIjTztAAAAAOizmQ0ATo0U6EyNBOhMidFMOeMPhGIBAABNieNJKdtJg8P4SYP7GHMITInR6TcBAABKjRToTInZSIPh+EiNNBlIg8YISDnycxhKjQzpSAHBSIPBCEg52XYITInR6QcBAABJwesDSYPDAU2J2UmD4fxJjVH8SInRSMHpAkiDwQGJz4PnA0iD+gxzBDHS63JKjTToSIPGcEiD4fxI99kx0mYPH4QAAAAAAA8QBNMPEEzTEA8RRNaQDxFM1qAPEETTIA8QTNMwDxFE1rAPEUzWwA8QRNNADxBM01APEUTW0A8RTNbgDxBE02APEEzTcA8RRNbwDxEM1kiDwhBIg8EEdahIhf90TkiNDNNIg8EQScHlA0iNFNUAAAAATAHqSAHCSIPCEEjB5wUx9mYuDx+EAAAAAAAPH0QAAA8QRDHwDxAMMQ8RRDLwDxEMMkiDxiBIOfd15UuNDMpNOct0H0qNHMsPH4QAAAAAAEiLE0iJEUiDwQhIg8MITDnjde1JiQdNiVcISYlPEE2JRxhJicxIizwkSIX/dAnoPZgNAE2LZxBJiwZJiQQkSYNHEAhIg8QIW0FcQV1BXkFfXcPoCZ0NAMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/SItfCEg7H3QISYnc6SECAABNi28QSYtHGEk5xXNXTCnoSMH4A0iNSAFIwek/SI0sCEiDxQFI0f1MjSTtAAAAAE0B7EyJ6kgp2nQSSSnUTInnSIne6AahDQBNi28QTYlnCEiNBO0AAAAATAHoSYlHEOm9AQAASCnYSInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhbYBAABMjWUDScHsAkiNPO0AAAAA6DKXDQBNieNOjSTgTI0E6EyJ4Uw56w+ETgEAAE2J6kkp2kmDwvhMieFIidpJg/oYD4IhAQAASo0U2EyJ0UiD4fhIjTQZSIPGCEg58nMbSo0M2UiNNAhIg8YITInhSInaSDneD4fuAAAAScHqA0mDwgFNidFJg+H8SY1R/EiJ10jB7wJIg8cBifmD4QNIg/oMcwQx9utpSo0U2EiDwnBIg+f8SPffMfYPEATzDxBM8xAPEUTykA8RTPKgDxBE8yAPEEzzMA8RRPKwDxFM8sAPEETzQA8QTPNQDxFE8tAPEUzy4A8QRPNgDxBM83APEUTy8A8RDPJIg8YQSIPHBHWoSIXJdD5IjRTzSIPCEEnB4wNJjTTzSAHGSIPGEEjB4QUx/2YPH0QAAA8QRDrwDxAMOg8RRD7wDxEMPkiDxyBIOfl15UuNDMxNOcp0H0qNFMsPH4QAAAAAAEiLMkiJMUiDwQhIg8IITDnqde1JiQdNiWcISYlPEE2JRxhIhdt0DEiJ3+jRlQ0ATYtnCEmLBkmJRCT4SYNHCPhIg8QIW0FcQV1BXkFfXcPonJoNAMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/TItnEEw7ZxgPhTgCAABJiw9Ji18ISInYSCnIdlFIwfgDSI1IAUjB6T9IAchIg8ABSNH4SInFSPfdSMHgA0mJ3UkpxUkp3HQSTInvSIneTIni6JmeDQBJi18ITQHsTYlnEEiNBOtJiUcI6dgBAABMieBIiQwkSCnISInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhckBAABJie1Jwe0CSI087QAAAADow5QNAE6NFOhMjQToTInRTDnjD4RiAQAATYnjSSnbSYPD+EmD+xhzCEyJ0ek3AQAASo0U6EyJ2UiD4fhIjTQZSIPGCEg58nMYSo0M6UgBwUiDwQhIOdl2CEyJ0ekHAQAAScHrA0mDwwFNidlJg+H8SY1R/EiJ0UjB6QJIg8EBic+D5wNIg/oMcwQx0utySo006EiDxnBIg+H8SPfZMdJmDx+EAAAAAAAPEATTDxBM0xAPEUTWkA8RTNagDxBE0yAPEEzTMA8RRNawDxFM1sAPEETTQA8QTNNQDxFE1tAPEUzW4A8QRNNgDxBM03APEUTW8A8RDNZIg8IQSIPBBHWoSIX/dE5IjQzTSIPBEEnB5QNIjRTVAAAAAEwB6kgBwkiDwhBIwecFMfZmLg8fhAAAAAAADx9EAAAPEEQx8A8QDDEPEUQy8A8RDDJIg8YgSDn3deVLjQzKTTnLdB9KjRzLDx+EAAAAAABIixNIiRFIg8EISIPDCEw543XtSYkHTYlXCEmJTxBNiUcYSYnMSIs8JEiF/3QJ6E2TDQBNi2cQSYsGSYkEJEmDRxAISIPECFtBXEFdQV5BX13D6BmYDQDMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0iLXwhIOx90CEmJ3OkhAgAATYtvEEmLRxhJOcVzV0wp6EjB+ANIjUgBSMHpP0iNLAhIg8UBSNH9TI0k7QAAAABNAexMiepIKdp0Ekkp1EyJ50iJ3ugWnA0ATYtvEE2JZwhIjQTtAAAAAEwB6EmJRxDpvQEAAEgp2EiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4W2AQAATI1lA0nB7AJIjTztAAAAAOhCkg0ATYnjTo0k4EyNBOhMieFMOesPhE4BAABNiepJKdpJg8L4TInhSInaSYP6GA+CIQEAAEqNFNhMidFIg+H4SI00GUiDxghIOfJzG0qNDNlIjTQISIPGCEyJ4UiJ2kg53g+H7gAAAEnB6gNJg8IBTYnRSYPh/EmNUfxIiddIwe8CSIPHAYn5g+EDSIP6DHMEMfbraUqNFNhIg8JwSIPn/Ej33zH2DxAE8w8QTPMQDxFE8pAPEUzyoA8QRPMgDxBM8zAPEUTysA8RTPLADxBE80APEEzzUA8RRPLQDxFM8uAPEETzYA8QTPNwDxFE8vAPEQzySIPGEEiDxwR1qEiFyXQ+SI0U80iDwhBJweMDSY0080gBxkiDxhBIweEFMf9mDx9EAAAPEEQ68A8QDDoPEUQ+8A8RDD5Ig8cgSDn5deVLjQzMTTnKdB9KjRTLDx+EAAAAAABIizJIiTFIg8EISIPCCEw56nXtSYkHTYlnCEmJTxBNiUcYSIXbdAxIid/o4ZANAE2LZwhJiwZJiUQk+EmDRwj4SIPECFtBXEFdQV5BX13D6KyVDQDMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEiJzUmJ/kiLDkiJyEjB6CCNFM0AAAAASIPCCEgxwki+aS046wjq351ID6/WSInXSMHvL0gxwkgx+kgPr9ZJiddJwe8vSTHXTA+v/k2LbghNhe10a0yJ6EjR6Ei6VVVVVVVVVVVIIcJMiehIKdBIujMzMzMzMzMzSInGSCHWSMHoAkgh0EgB8EiJwkjB6gRIAcJIuA8PDw8PDw8PSCHQSL4BAQEBAQEBAUgPr/BIwe44SIP+AXcOTY1l/00h/OsYRTHk631NifxNOe9yC0yJ+DHSSff1SYnUSYsGSosc4EiF23ReSY19/+seZi4PH4QAAAAAAGaQSCH4TDngdURIOUsQD4Q9AQAASIsbSIXbdDJIi0MITDn4dOWD/gF22Ew56HLWSInCTAnqSMHqIHQKMdJJ9/VIidDrwDHSQff1idDrt78gAAAA6DqPDQBIicNIi0UASIsASIlDEMdDGAAAAABMiXsISMcDAAAAAEmLRhhIg8ABeCTzSA8qwE2F7Xk0TInoSNHoRInpg+EBSAnB80gPKtHzD1jS6x9IicFI0emD4AFICcjzSA8qwPMPWMBNhe14zPNJDyrV80EPEE4g8w9Z0Q8uwncJTYXtD4WDAAAATInoTAHovQEAAABJg/0Dcg1JjU3/Me1Jhc1AD5XFSAnF8w9eweh7mA0A80gPLMBIicHzD1wFxy6X/kjB+T/zSA8s8EghzkgJxkg59UgPQ/VMiffozev//02LbghNjWX/TYXldQVNIfzrGU0573MJTYn86w8x0ut/TIn4MdJJ9/VJidRJiwZKiwzgSIXJdAtIiwFIiQNIiRnrVkmNThBJi1YQSIkTSYleEEqJDOBIiwNIhcB0O0iLQAhJjU3/SYXNdQVIIcjrIkw56HIdSInBTAnpSMHpIHQKMdJJ9/VIidDrBzHSQff1idBJiw5IiRzBSYNGGAGyAUiJ2EiDxAhbQVxBXUFeQV9dw8zMzMzMzMzMzMzMzFVBVlNIiftIg8cox0MoAAAAAEjHQzAAAAAAx0M4AAAAAEjHQ0AAAAAAx0NIAAAAAEyNc1DHQ1AAAAAASMdDWAAAAADHQ2AAAAAASMdDaAAAAADHQ3AAAAAASMdDeAAAAADHg4AAAAAAAAAASIkzi0YIiUMIx0MMAAAAAGbHQxAAAA9XwA8RQxiLdhDowCAAAEiLA4twEEyJ9+iyIAAASIsTi0Iwi0o8AcADQjSNFAiD+v5+P40sAYPFAYnvSMHnBOjbjA0ASIt7eEiJQ3hIhf90BejpjA0AiauAAAAAD1fADxGDiAAAAMaDmAAAAABbQV5dw+i4kQ0ADx+EAAAAAABBV0FWU0mJ/kiLv5AAAABIhf90BegXjw0ASYueiAAAAEiF2w+FiwAAAEmLfnhJx0Z4AAAAAEiF/3QF6IGMDQBJi35oScdGaAAAAABIhf90BehrjA0ASYt+WEnHRlgAAAAASIX/dAXoVYwNAEmLfkBJx0ZAAAAAAEiF/3QF6D+MDQBJi34wScdGMAAAAABIhf90NVtBXkFf6SSMDQAPH0AASInf6BiMDQBMiftNhf8PhHX///9MiztIi3sISIX/dODoa44NAOvZW0FeQV/DDx8AVUFXQVZBVUFUU0iB7GgBAABMiUwkKEyJRCRIZEiLBCUoAAAASImEJGABAACF0g+EOgUAAEGJzEiJ80mJ/UiLrCSgAQAATItHeEGJEEnHQAgAAAAARY1cJCBBuQEAAABMjRWyBA4ASYPCEEiNBR8EDgBIg8AISIlEJEBIjT2LZvD/TIlEJBhEiVwkBEyJVCQw60dIjXwkYOiUnA0ASI18JFhIi3QkQOiVnA0ASI28JMgAAADomJwNAEyLRCQYRItcJARMi0wkCEiNPT5m8P9mkEWFyQ+OlQQAAEGDwf9MiclIweEEQYsECEmLTAgITGPw6xtmLg8fhAAAAAAADx9AAINFAAFIiSlJg8YBMclIhcl0KEiF7XQgi0UAjVD/iVUAg/gBfxJJi4WIAAAASIlFAEmJrYgAAABIic1FhfZ0kUiLSxgxwEiFyXQDi0MgRDnwdk9Ii0MISmM0sIsTOdZzDkjB5gREOzQxD4Ri////QokUsEhjA0iLSxhIweAERIk0AYMDAUiLQwhIi0sYSmMEsEjB4ARIx0QBCAAAAABIi0sYSYtFAEyLeEhDiwT3icKD4geDwv+D+gYPhzsCAABIi3MISmM0tkjB5gRIAfFIg8EISGMUl0gB+v/iQYP8W0SJ4kEPTNNBg/xBQQ9M1EOAfPcGAEEPRNRDD7Z09wQ58nwVQw+2dPcFOfJ/C4NFAAFIiSlDiwT3qAgPhOn+///prf7//6gID4XIAAAAQY1GAUljyUGDwQFMiUwkCEjB4QRBiQQIScdECAgAAAAA6acAAACoCA+FlgEAAEGNRgFJY8lBg8EBSMHhBEGJBAhJx0QICAAAAADpcQEAAKgIdRxBjUYBSWPJQYPBAUjB4QRBiQQIScdECAgAAAAAS2NE9wRBO0UMD41CAQAASIlEJBBJY8FIweAEQccEAAAAAABJiWwACEmLtYgAAABIhfZ0bUiLBkmJhYgAAADHBgEAAABIi0YIQYtNDIXJD4+zAAAA6eMAAABMiUwkCEOLRPcEiUQkEEiLfCRISIt0JCjo0FP///fQhUQkEA+FnP3//0OLBPdMi0QkGESLXCQETItMJAhIjT3WY/D/6bQAAAC/EAAAAEyJTCQI6IaIDQBIiUQkIMcAAQAAAEljRQxIiUQkOLkIAAAASPfhSMfB/////0gPQMFIicfo14oNAEiLTCQ4SIt0JCBIjT2CY/D/TItMJAhEi1wkBEyLRCQYSIlGCIXJfjVJifJIi00IMdJmDx9EAABIizTRSIk00EiLdNEISIl00AhIg8ICSWN1DEg58nzhTInWSYtCCEGDwQFIi0wkKEiLVCQQSIkM0EiJ9UOLBPfB6AQxyen0/P//TIlMJAjGRCRQAEiNDaYADgBIjUEYSIlEJFhIjUFASImEJMgAAABIjbwkyAAAAEiNdCRg6N+YDQBIx4QkUAEAAAAAAADHhCRYAQAA/////0iNBfH/DQBIjUgYSIlMJBBIiUwkWEiDwEBIiUQkIEiJhCTIAAAASI18JGDoqJgNAEiLRCQwSIlEJGBIjXwkWA9XwA8RR1gPEUdIx4QkwAAAABAAAAC6HQAAAEiNNaYld//oQmX6/7oBAAAASInHSI01m73s/+guZfr/SInHvvcAAADoEY8NALoCAAAASInHSI01s9if/+gNZfr/ugoAAABIjXwkWEiNNR7fp//o92T6/0OLNPeD5gdIicfo2I4NALoQAAAASInHSI01afOt/ujUZPr/gHwkUAB1CkiNfCRQ6CN5/v9Ii0QkEEiJRCRYSItEJCBIiYQkyAAAAEiLRCQwSIlEJGD2hCSgAAAAAQ+ENvv//0iLvCSwAAAA6IeGDQDpJPv//2RIiwQlKAAAAEg7hCRgAQAAdRJIgcRoAQAAW0FcQV1BXkFfXcPoqIgNAA8fhAAAAAAAVUFXQVZBVUFUU0iB7HgBAABMiUwkCEyJRCRAiUwkHEmJ9mRIiwQlKAAAAEiJhCRwAQAASIlUJDjHAgAAAACDPgAPhHMFAABJif9Ji0YYSItMJAhIg8H/SIlMJCBIjT0V/w0ASIPHEEiNDYL+DQBIg8EISIlMJDBIicVIiXwkEEyJdCQo6yVmLg8fhAAAAAAASIPFEEmLRhhJYw5IweEESAHBSDnND4QPBQAATIttCE2F7XTcQYpPEEGKn5gAAACEyXQbhNt0F0mLl5AAAABIixJJi3UISDsWD4KNAgAATGNFAEmLF0yLYkhDixTEidaD5geD/gEPhKAAAACD/gJ0dIP+BQ+FwQAAAEiDfCQIAA+EVgIAAEGAfxEAdBNIi0QkCEiDwP9JO0cgD4U8AgAAhMkPhMwDAACE2w+EcgIAAEmLTQhJi4eQAAAASIsQSDkRD4JmAgAAD4UPAgAASItUJAhIg8L/SDtQCA+G/AEAAOlIAgAAweoETIksJEyJ/0iLdCQ4i0wkHEyLRCRATItMJAjoyvj//+nLAQAASDnFD4XHAQAASMHqBEGLFNSJ1oPmB4P+Bg+E3AEAAIP+Ag+ETQIAADHS6d0BAADGRCRgAEiNDTr9DQBIjUEYSIlEJGhIjUFASImEJNgAAABJif5Ijbwk2AAAAEiNXCRwSIneTIlEJEjoaJUNAEjHhCRgAQAAAAAAAMeEJGgBAAD/////SI0FevwNAEiNSBhIiUwkWEiJTCRoSIPAQEiJRCRQSImEJNgAAABIid/oM5UNAEyJdCRwSI1cJGgPV8APEUNYDxFDSMeEJNAAAAAQAAAAuh0AAABIid9IjTUzInf/6M9h+v+6AQAAAEiJx0iNNSi67P/ou2H6/0iJx75dAQAA6J6LDQC6AgAAAEiJx0iNNUDVn//ommH6/7oKAAAASInfSI01e2B5/+iGYfr/SItMJEhBizTMg+YHSInH6GKLDQC6CAAAAEiJx0iNNZZ9pP/oXmH6/4B8JGAAdQpIjXwkYOitdf7/SItEJFhIiUQkaEiLRCRQSImEJNgAAABIi0QkEEiJRCRw9oQksAAAAAFMi3QkKHQNSIu8JMAAAADoEIMNAEiNfCRw6EaUDQBIjXwkaEiLdCQw6EeUDQBIjbwk2AAAAOhKlA0ASIt8JBBBi0UAjUj/QYlNAIP4AQ+PEf3//0mLh4gAAABJiUUATYmviAAAAOn6/P//SMHqBEGLFNSD4geD+gIPlMKE0nVlhMl0vOtfSYuHkAAAAEmLTQhBg38MAH4zMdJmLg8fhAAAAAAAkEiLNNFIiTTQSIt00QhIiXTQCEiDwgJJY3cMSDnyfOFJi4eQAAAASItMJAhIg8H/SIlICEHGh5gAAAAB6Vv///9Bg38MAH44SYuPkAAAAEmLVQgx9mYuDx+EAAAAAABmkEiLPPJIiTzxSIt88ghIiXzxCEiDxgJJY38MSDn+fOFBxoeYAAAAAUGLTQCNUf9BiVUAg/kBfz9Ji4+IAAAASYlNAE2Jr4gAAADrKw8fRAAASItICEiFyXQdixGNcv+JMYP6AX8RSYuXiAAAAEiJEUmJj4gAAABIg8AQSWMOSMHhBEkDThhIOch1xkHHBgAAAABJiw9DiwTESMHoBEiLSUiLFMGJ1oPmB4P+AnQcg/4GD4XdAAAASMHqBIsM0YPhB4P5Ag+FygAAAEOLRMQE6cAAAABJi4eQAAAAQYN/DAB+NUmLTQgx0mYPH4QAAAAAAEiLNNFIiTTQSIt00QhIiXTQCEiDwgJJY3cMSDnyfOFJi4eQAAAASItMJCBIiUgIQcaHmAAAAAFBi0UAjUj/QYlNAIP4AX8/SYuHiAAAAEmJRQBNia+IAAAA6ysPH0QAAEiLRQhIhcB0HYsIjVH/iRCD+QF/EUmLj4gAAABIiQhJiYeIAAAASIPFEEljBkjB4ARJA0YYSDnFdcZBxwYAAAAAMcBkSIsMJSgAAABIO4wkcAEAAHUSSIHEeAEAAFtBXEFdQV5BX13D6LOCDQAPHwBVQVdBVkFVQVRTUEmJ/g9XwA8RB0jHRxAAAAAAg34MAA+OfQAAAEmJ10iJ80yNJe8qoP9IjS1T2Kf/RTHt6xiQTIn3TInmMcDoQ4X//0mDxQJEOWsMfkxLixTvSIXSdOBLi0zvCEiLQxgpwkiFyXQgKcFMifdIie4xwOgRhf//68xmLg8fhAAAAAAADx9EAABMifdIjTX/HFz/McDo74T//+uqTInwSIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAJBVQVdBVkFVQVRTSIHsSAEAAGRIiwQlKAAAAEiJhCRAAQAAg38IAA+EqwEAAEmJ9UiJ+w8QAg8pRCQgSItsJCBIhe11D0EPEEUADylEJCBIi2wkIEmLdQBIOe5yGEmLVQhIAfJIi3wkKEgB70g5+g+GjgEAAMZEJDAATI10JDhIjbwkqAAAAEyNZCRASI0FzvcNAEiNSBhIiUwkOEiDwEBIiYQkqAAAAEyJ5ugRkA0ASMeEJDABAAAAAAAAx4QkOAEAAP////9IjR0j9w0ATI17GEyJfCQ4SIPDQEiJnCSoAAAATInn6OaPDQBIjS3X9w0ASIPFEEiJbCRAD1fADxGEJIAAAAAPEYQkkAAAAMeEJKAAAAAQAAAASI014Bx3/7odAAAATIn36HRc+v9IjTXVtOz/ugEAAABIicfoYFz6/0iJx76+AQAA6EOGDQBIjTXtz5//ugIAAABIicfoP1z6/0iNNWjUrv+6HQAAAEyJ9+grXPr/gHwkMAB1CkiNfCQw6Hpw/v9MiXwkOEiJnCSoAAAASIlsJED2hCSAAAAAAXQNSIu8JJAAAADo8X0NAEyJ5+gpjw0ASI01gvYNAEiDxghMiffoJo8NAEiNvCSoAAAA6CmPDQAxwGRIiwwlKAAAAEg7jCRAAQAAD4XHBgAASIHESAEAAFtBXEFdQV5BX13DSIsDRIoQRYTSdAVIOfV1xYB4AQB0GEg513W6xkMRAUmLRQBJA0UISIlDIEGwAUSLvCSAAQAARYTSD5XCRYX/D4ieAgAATIlMJBhDjQQ/iUMMRIhDEEWF/3UMx0MMAgAAALgCAAAACMqIVCQQTGP4uQgAAABMifhI9+FIx8H/////SA9AwUiJx+hxfw0ASImDkAAAAMaDmAAAAABIiWsYTI1zKEyNY1DHQygAAAAAx0NQAAAAAEnB5wNIiccx9kyJ+uhogA0ASYtFAEmJx5BMieVJA0UIuf////9JOcdzBEEPtg9Iid9NifRMifZIiepMjUQkIE2J+ehS9v//QccGAAAAAEmLVQBJi00ISAHRhcAPhZoBAABJOc8Ph4gEAACAu5gAAAAAD4VeAQAAgHwkEAB0GEk51w+FTgEAAEiJbCQISIs76HVD///rRkiLO+hrQ///g30AAEiJbCQIdTOFwHgvTYt1AE0DdQhNOfdzIkEPtg85yHQaTInyTCn6TIn/icbol4INAEmJx0iFwE0PRP5Mi7OIAAAATYX2dB5JiwZIiYOIAAAAQccGAQAAAEmLRgiLawyF7X8/63a/EAAAAOi5ew0ASYnGxwABAAAASGNrDEiJ6LkIAAAASPfhSMfB/////0gPQMFIicfoDn4NAEmJRgiF7X45SIuLkAAAADHSZi4PH4QAAAAAAA8fAEiLNNFIiTTQSIt00QhIiXTQCEiDwgJIY3MMSDnyfOFJi0YITIk4i1MISYtFAEkDRQi5/////0k5x3MEQQ+2D0yJNCRIid9Ii3QkCEyNRCQgTYn56Ejv//9BiwaNSP9BiQ6D+AF/EUiLg4gAAABJiQZMibOIAAAASItsJAiDfQAAD4QTAwAASYPHAUmLRQBJie7pKv7//4P6Bg+FVQEAAMHoBEiLE0xj6EyLYkhDiwTsicKD4geD+gN13EtjVOwEO1MMfdtIi4OQAAAASIkM0EOLBOzrysZEJDAATI10JDhIjbwkqAAAAEyNZCRASI0FXfMNAEiNSBhIiUwkOEiDwEBIiYQkqAAAAEyJ5uigiw0ASMeEJDABAAAAAAAAx4QkOAEAAP////9IjR2y8g0ATYn9TI17GEyJfCQ4SIPDQEiJnCSoAAAATInn6HKLDQBIjS1j8w0ASIPFEEiJbCRAD1fADxGEJIAAAAAPEYQkkAAAAMeEJKAAAAAQAAAASI01bBh3/7odAAAATIn36ABY+v9IjTVhsOz/ugEAAABIicfo7Ff6/0iJx77OAQAA6M+BDQBIjTV5y5//ugIAAABIicfoy1f6/0iNNYwkoP+6FAAAAEyJ9+i3V/r/SInHRInu6JyBDQCAfCQwAA+Fh/v//+l4+///g/oFdRdIi4OQAAAASIlICMaDmAAAAAHpiQEAAEiJbCQIxkQkMABIjbwkqAAAAEiNbCRASI0FIvINAEiNSBhIiUwkOEiDwEBIiYQkqAAAAEiJ7uhlig0ASMeEJDABAAAAAAAAx4QkOAEAAP////9MjT138Q0ASY1HGEiJRCQQSIlEJDhJg8dATIm8JKgAAABIie/oNYoNAEyNNSbyDQBJg8YQTIl0JEAPV8APEYQkgAAAAA8RhCSQAAAAx4QkoAAAABAAAABIjTUvF3f/uh0AAABIjXwkOOjBVvr/SI01Iq/s/7oBAAAASInH6K1W+v9Iice+EAIAAOiQgA0ASI01Osqf/7oCAAAASInH6IxW+v9IjTX4jlv/uiQAAABIjXwkOOh2Vvr/Q4s07IPmB0iJx+hXgA0AgHwkMAB1CkiNfCQw6LZq/v9Ii0QkEEiJRCQ4TIm8JKgAAABMiXQkQPaEJIAAAAABdA1Ii7wkkAAAAOgoeA0ASI18JEDoXokNAEiNNbfwDQBIg8YISI18JDjoWYkNAEiNvCSoAAAA6FyJDQBIi2wkCIN9AABMi0wkGIu8JIABAAB0UkiLRRjrJGYuDx+EAAAAAAAPH0QAAEiDwBBIY00ASMHhBEgDTRhIOch0KEiLSAhIhcl04osRjXL/iTGD+gF/1kiLk4gAAABIiRFIiYuIAAAA68OAu5gAAAAAD5XAD4S8+f//hf8PjrT5//9BifiD/wF1BDHS61dEicaD5v4x/zHSDx9EAABIi6uQAAAASItMPQBIi2w9CEgpzUmJDDlJiWw5CEiLi5AAAABIi2w5EEiLTDkYSCnpSYlsORBJiUw5GEiDwgJIg8cgSDnWdbhB9sABD4RH+f//SIuLkAAAAEjB4gRIizQRSItMEQhIKfFJiTQRSYlMEQjpIvn//+g0eQ0ADx9AAFVBV0FWQVVBVFNIgexoAQAAZEiLBCUoAAAASImEJGABAACLRxCFwA+I+gMAAEmJ/0yNNIUAAAAATIn3SIlEJBjoe3YNAEiJw0yJ9+hwdg0ATItMJBhJidpBi28IRTHbQTnpTYn4dhNIY81BxwSKAAAAAIkoQbsBAAAARInZSI0UjQAAAABIhdIPhFUDAABMjXwkYEiNDIhMjWAEx0QkDP////9IjRVe7w0ASIPCEEiJVCQoSI0Vxu4NAEiDwghIiVQkIEiNHU5R8P/HRCQQ/////0yJRCRASIlEJDhMiVQkMGYuDx+EAAAAAAAPH0QAAExj9U2LaEhDi1T1AInWg+YHg8b/g/4GD4cHAQAASGM0s0gB3v/m9sIIdSiDxQFBOel2IEhj9UljPLJEOd9zBTksuHQPRYkcsokpQYPDAUOLVPUAg/oQD4J0AgAAweoEQTnRD4ZoAgAAidZJYwyyRDnZcwk5FIgPhFQCAABFiRyySWPLiRSI6ZAAAAD2wgh1I4PFAUE56XYbSGPVSWM0kkQ53nMFOSywdApFiRySiSlBg8MBQw+2TPUEQzpM9QUPhTcCAABDgHz1BgB0DoD5YXIJgPl7D4IhAgAAi1QkEIP6/w+E5QEAADnKD4ThAQAA6QcCAACDxQFBOekPhtABAABIY9VJYzSSRDnecwk5LLAPhLsBAABFiRySiSlBg8MB6awBAABEiVwkFMZEJFAASI0Ne+0NAEiNQRhIiUQkWEiNQUBIiYQkyAAAAEiNvCTIAAAATIn+6LaFDQBIx4QkUAEAAAAAAADHhCRYAQAA/////0iNBcjsDQBIjUgYSIlMJEhIiUwkWEiNWEBIiZwkyAAAAEyJ/+iGhQ0ASItsJChIiWwkYEyNfCRYD1fAQQ8RR1hBDxFHSMeEJMAAAAAQAAAAuh0AAABMif9IjTV/Enf/6BtS+v+6AQAAAEiJx0iNNXSq7P/oB1L6/0iJx75mAgAA6Op7DQC6AgAAAEiJx0iNNYzFn//o5lH6/7oKAAAATIn/SI01+cun/+jSUfr/Q4t09QCD5gdIicfosnsNALoUAAAASInHSI010hd5/+iuUfr/gHwkUAB1CkiNfCRQ6P1l/v9Ii0QkSEiJRCRYSImcJMgAAABIiWwkYPaEJKAAAAABdA1Ii7wksAAAAOhvcw0ATI18JGBMif/oooQNAEiNfCRYSIt0JCDoo4QNAEiNvCTIAAAA6KaEDQBMi1QkMEyLRCRATItMJBhIi0QkOEiNHWNO8P9Ei1wkFOsEiUwkEEljy0iNDIhJOcx0DUGLLCRJg8QE6Rf9//+LTCQQiUwkDOsIx0QkDP////9IicdMidPo6nINAEiJ3+jicg0AZEiLBCUoAAAASDuEJGABAAB1G4tEJAxIgcRoAQAAW0FcQV1BXkFfXcPopHcNAOj/dA0AZi4PH4QAAAAAAA8fRAAAVUFXQVZBVUFUU0iB7MgAAABNicxEicVBic9IiVQkCEiJ80iJ/kSLtCQAAQAAZEiLBCUoAAAASImEJMAAAAAPV8APKYQksAAAAA8phCSgAAAADymEJJAAAAAPKYQkgAAAAA8pRCRwDylEJGAPKUQkUA8pRCRADylEJDAPKUQkIEyNbCQgTInv6FTk//+D/QIPlMBFhfYPlMGEyEiNTCQQTYnhTA9FybkBAAAAQQ9EzkGD/wEPlMIIwkUxwIXtQQ+VwA9XwA8pRCQQiQwkD7bKTInvSIneSItUJAjoIfL//4TAdCuD/QJ1KoO8JAABAAAASI1EJBBMD0TgSYsEJEkDRCQISIsLSANLCEg5yHQEMdvrArMBSI18JCDowuT//2RIiwQlKAAAAEg7hCTAAAAAdRSJ2EiBxMgAAABbQVxBXUFeQV9dw+imcw0AZg8fRAAAVUFXQVZBVUFUU0iB7GgBAABkSIsEJSgAAABIiYQkYAEAAItHEIXAD4inBAAASYn1SIn7SIlEJAhIjSyFAAAAAEiJ7+jocA0ASIkEJEiJ7+jccA0AQcdFAAAAAACLUwhJi20YMcm+AAAAAEiF7UmJ2HQEQYt1IDnWdjpIY/pJi00IxwS5AAAAAEljTQBJi3UYiRTOQYNFAAFJi00ISYtVGEhjDLnHRMoEAAAAAEmLbRhBi00AhclMi0wkCEyLFCQPhNcDAABIjT2s6Q0ASIPHEEiNFRnpDQBIg8IISIlUJBhMjT29S/D/SInrTIlsJDhMiUQkMEiJfCQoSIlEJCDrKEmLbRhBi00ASItcJBBIg8MISGPRSI0U1QAAAABIAepIOdMPhHQDAACLE0Ux9kE50XYTSGPyQccEsgAAAACJEEG+AQAAAESJ8kiNNJUAAAAASIX2dLhIiVwkEEiNNJBIicPrYUiNfCRg6COBDQBIjXwkWEiLdCQY6CSBDQBIjbwkyAAAAOgngQ0ATItsJDhMi0QkMEyLTCQITIsUJEiLRCQgTI09/Erw/w8fhAAAAAAASIPDBEljzkiNNIhIOfMPhDz///9IYytNi2BIQYsM7InKg+IHg8L/g/oGd15JYxSXTAH6/+L2wQh1KYnqg8IBQTnRdh9MY9pLYzyaRDn3cwU5FLh0DkeJNJqJFkGDxgFBiwzswekEQTnJdpWJzkljFLJEOfJzBTkMkHSFRYk0sklj1okMkOlZAgAAxkQkUABIjQ3K5w0ASI1BGEiJRCRYSI1BQEiJhCTIAAAASI28JMgAAABMjWwkYEyJ7ugAgA0ASMeEJFABAAAAAAAAx4QkWAEAAP////9IjQUS5w0ASI1IGEiJTCRISIlMJFhIg8BASIlEJEBIiYQkyAAAAEyJ7+jLfw0ATIt8JChMiXwkYEyNbCRYD1fAQQ8RRVhBDxFFSMeEJMAAAAAQAAAAuh0AAABMie9IjTXEDHf/6GBM+v+6AQAAAEiJx0iNNbmk7P/oTEz6/0iJx77DAgAA6C92DQC6AgAAAEiJx0iNNdG/n//oK0z6/7oKAAAATInvSI01Psan/+gXTPr/QYs07IPmB0iJx+j4dQ0AuhIAAABIicdIjTWDpOz/6PRL+v+AfCRQAHUKSI18JFDoQ2D+/0iLRCRISIlEJFhIi0QkQEiJhCTIAAAATIl8JGD2hCSgAAAAAQ+EzP3//0iLvCSwAAAA6KxtDQDpuv3///bBCHUijU0BQTnJdhpJY1SqBEQ58nMFOQyQdAtFiXSqBIkOQYPGAUiLTCQQg0EEAUGLLOxIwe0ESYtNGDHSSIXJdARBi1UgOeoPhrj9//9Ji1UISGM8qkGLdQA593MJOSz5D4Sf/f//iTSqSWNNAEmLVRiJLMpBg0UAAUmLTQhJi1UYSGMMqcdEygQAAAAA6XP9///2wQgPhWr9//+NTQFBOckPhl79//9IY9FJYzySRDn3cwk5DLgPhEn9//9FiTSS6ySNTQFBOckPhjf9//9JY1SqBEQ58nMJOQyQD4Qk/f//RYl0qgSJDkGDxgHpFP3//0iJx0yJ0+ipbA0ASInf6KFsDQBkSIsEJSgAAABIO4QkYAEAAHUXSIHEaAEAAFtBXEFdQV5BX13D6GdxDQDowm4NAMzMVUFXQVZBVUFUU1BBifRIiftFMe1Ig38YAHQERItrIEU55Q+NhgAAAEWF5A+IlAAAAESJ5UiNPK0AAAAA6A9sDQBJicdIweUESInv6ABsDQBJicZFhe10Kklj7UiLcwhIjRStAAAAAEyJ/+hhdQ0ASItzGEjB5QRMifdIieroTnUNAEiLewhMiXsISIX/dAXo3GsNAESJYxBIi3sYTIlzGEiF/3QF6MZrDQBEiWMgRDkjfgNEiSNIg8QIW0FcQV1BXkFfXcPolnANAMzMzMzMzMNmLg8fhAAAAAAADx9EAABVQVdBVkFVQVRTSIHsyAEAAE2JzEiJ00mJ9WRIiwQlKAAAAEiJhCTAAQAAg/kBD4SSAQAAQYP4Ag+EiAEAAMaEJLAAAAAATI20JLgAAABIjbwkKAEAAEyNpCTAAAAASI0F6+MNAEiNSBhIiYwkuAAAAEiDwEBIiYQkKAEAAEyJ5ugrfA0ASMeEJLABAAAAAAAAx4QkuAEAAP////9IjR094w0ATI17GEyJvCS4AAAASIPDQEiJnCQoAQAATInn6P17DQBIjS3u4w0ASIPFEEiJrCTAAAAAD1fADxGEJAABAAAPEYQkEAEAAMeEJCABAAAQAAAASI01aLyf/7ohAAAATIn36IhI+v9IjTXpoOz/ugEAAABIicfodEj6/0iJx77bAAAA6FdyDQBIjTUBvJ//ugIAAABIicfoU0j6/0iNNemg7P+6MAAAAEyJ9+g/SPr/gLwksAAAAAB1DUiNvCSwAAAA6Ihc/v9MibwkuAAAAEiJnCQoAQAASImsJMAAAAD2hCQAAQAAAXQNSIu8JBABAADo+WkNAEyJ5+gxew0ASI01iuINAEiDxghMiffoLnsNAEiNvCQoAQAA6DF7DQAxwOkVBAAARYnHi4QkAAIAAI0MAIP4Ar0CAAAAiUwkBA9N6Q9XwA8phCTwAAAADymEJOAAAAAPKYQk0AAAAA8phCTAAAAADymEJLAAAACF7UiJfCQIflRBie5JweYDSI28JLAAAAAx9kyJ8ujxbA0AD1fADymEJKAAAAAPKYQkkAAAAA8phCSAAAAADylEJHAPKUQkYEiNfCRgMfZMifLovWwNAEiLfCQI6yIPKYQkoAAAAA8phCSQAAAADymEJIAAAAAPKUQkcA8pRCRgDxADDylEJFBIg3wkUAB1CkEPEEUADylEJFCAPwCLtCQAAgAARYn4dA9Ii0QkUEk7RQAPhRUDAACAfwEAdCdIi0QkUEgDRCRYSYtdAE2LTQhKjQwLSDnID4XwAgAAQbgCAAAA6whJi10ATYtNCEyJZCQog/4CD5xEJANIi09Yi0cUSIlcJGBIiZwksAAAAEiJbCQ4QYnuTYXJD45xAgAAjQSFBAAAAIlEJCRJAdlEiymLVCQEg/oEuAMAAAAPTcKDwP5IweADSIlEJEAxwEiJRCQQSIlMJEhJicpEiUQkBEyJTCQY6x5mLg8fhAAAAAAADx9AAEiDwwFFid1MOcsPgxYCAAAPtgMPtkQHeEWLfIIERIn9g+U/dEtIjXwkUEiJ3ujOMv//TItMJBhEi0QkBEiLfCQIi7QkAAIAAPfQhcV0IkG7MAAAAEUx0kGD+AJ1N+lOAQAAZi4PH4QAAAAAAA8fQABEifjB6BAPr0QkJEiYSItMJEhMjRQBRIscAUGD+AIPhBwBAABBg/0wD4QSAQAARYn8QYPkQESJ2IPgP0QJ4A+E/AAAAESJ7YPlP0yJVCQwdDxIjXwkUEiJ3kSJXCQg6C0y//9Ei1wkIEyLVCQwTItMJBhEi0QkBEiLfCQIi7QkAAIAAPfQhcUPhbMAAACD/gIPjIwAAABIjXwkcEiNtCTAAAAASItUJEBEid3ocGsNAEGJ60yLVCQwTItMJBhEi0QkBEiLfCQIi7QkAAIAAIP+AnxPRInoJYB/AAB0RbgCAAAA6xhmLg8fhAAAAAAAZpBIg8EBSInITDnxdCZEieqJwdPq9sIgdAVIiVzEYEiNSAFEierT6vbCIHTVSIlcxGjrzkiJXCRosAFIiUQkEEWFwHUNRYXkD4UiAQAADx9AAE2F0g+EmQAAAIP+Ag+cwEH3x4B/AAAPlMEIwQpMJAMPhSv+//+4AgAAAOsUDx9AAEiDwQFIichMOfEPhBD+//9EifqJwdPq9sIgdAhIiZzEsAAAAEiNSAFEifrT6vbCIHTOSImcxLgAAADrxDHASIlEJBBJicpBiyqD/TB0JEGJ70GD5z90TUiNfCRQSIne6Lww//+LtCQAAgAA99BBhcd0MvZEJBABdXUxwGRIiwwlKAAAAEg7jCTAAQAAD4U6AQAASIHEyAEAAFtBXEFdQV5BX13Dg/4CD5zA98WAfwAAD5TBCMEKTCQDSItUJDgPhL8AAACD+gN8IEiNfCRwSI20JMAAAACDwv5IweID6M5pDQCLtCQAAgAASIlcJGiwAYX2fodBifCD/gF1CTHSSItMJCjrVUSJxoPm/r8YAAAAMdJIi0wkKGYPH4QAAAAAAEiLbDxISItcPFBIKetIiWw56EiJXDnwSItsPFhIi1w8YEgp60iJbDn4SIkcOUiDwgJIg8cgSDnWdcZB9sABD4QX////SMHiBEiLfBRgSIt0FGhIKf5IiTwRSIl0EQjp+P7//7gCAAAA6xZmDx9EAABIg8EBSInITDnxD4Qk////ie+JwdPvQPbHIHQISImcxLAAAABIjUgBie/T70D2xyB0zkiJnMS4AAAA68Tor2YNAGYuDx+EAAAAAAAPH0QAAFVBV0FWQVVBVFNIgezYAQAASIn7ZEiLBCUoAAAASImEJNABAACAfwQAdApIg3tYAA+Vw+tTxkMEAYN7CAB0R0hjayxIgf3l/QAAfzpIg8UCi0MUjTSFBAAAAEiLS2BIjUEDSIXJSA9JwUjB+AJMY+5IicFMCelIwekgdDdImUn3/Ug56H02MdtkSIsEJSgAAABIO4Qk0AEAAA+FEQkAAInYSIHE2AEAAFtBXEFdQV5BX13DMdL39kg56HzKi3s0A3swA3s8g//+D47dCAAAiXQkPIPHAUjB5wPoUmMNAEiJRCRgRItjEEWF5A+IuwgAAE6NNKUAAAAATIn36DBjDQBIiUQkMEiJx77/AAAATIny6MtmDQBMY3sID1fADymEJKAAAABIx4QksAAAAAAAAABMiffo+GINAEiJRCRITIn36OtiDQBIiUQkGEyJ9+jeYg0ASIlEJFhMiffo0WINADHJTYX/TIlkJEBJicZ0H0U5/HYaSItEJEhCxwS4AAAAAEiLRCQYRIk4uQEAAABIi0QkMELHBLgAAAAAxoQkwAAAAABBic9IjbwkoAAAAEiNjCTAAAAAMfZMieroAQgAAESJ+EjB4AJIhcAPhE8HAABEifpIiawkmAAAAL8BAAAASI0FktsNAEiDwBBIjQ3/2g0ASIPBCEiJjCSIAAAATI0NvD3w/0iLdCQYSItsJGBMi1QkWEyLRCRATIlsJGhMiXQkcEiJhCSQAAAASIl8JAiJVCQUSIm0JIAAAABIYwZIi0wkMEhjFIFIi4wkoAAAAEkPr9VIiVQkeEyNJBGDexQAfiJIi1QkeEgB0UiDwQQx0scEkTAAAABIg8IBSGNzFEg58nzsQccEJDAAAACJRQDHRQQAAAAAx0QkBAAAAABBuwEAAAAx9kyJ90GDw/9Gi3TdAEKLVN0E6xZBiTSCSGPGRIk0h4PGAUeLNO9Bwe4ETWPuTIt7SEOLBO+JwYPhB4PB/4P5Bg+HEAQAAEljDIlMAcn/4agIdUVB/8Z0KEU58HYjSWPGSWMMgjnxcwpEOTSPD4QDBgAAQYk0gkhjxkSJNIeDxgFJY8NIi0wkYESJNMFEjVgBiVTBBEOLBO+JwYPhB4P5BA+EzgAAAIP5Aw+FygAAAEOLTO8Eg/kJD4+8AAAAidW6IAAAANPiCdWJ6umqAAAARInw61eJVCQoSInBSMHpBEiLVCQwixSKg/r/TIlcJFCJNCQPhLgAAABIi0QkCIlEJCCJ0elZAQAA9kQkBAEPhWIFAABBiRQkQ/YE7wgPhegEAABEifCxAYlMJARBvgAAAAD/wA+E8f7//0GJxkE5wA+G5f7//0GJ10hjyEljFIo58nMJOQSXD4QZBQAAQYk0ikhjzokEj4PGAUGJxkSJ+um2/v//QwtU7wRBicZBwe4Eg/gQD4Kh/v//RTnwD4aY/v//RInwSWMMgjnxD4Nz/v//RDk0jw+Faf7//+nFBAAASItUJAg7lCSYAAAAD42zBAAAg/gQckJBOch2PUiLRCRISGMEiIt0JBQ58HMKSItUJBg5DIJ0IkiLRCRIiTSISGPGSItUJBiJDIKDxgGJdCQUQ4sM70jB6QRIi0QkMEiLbCQIiSyIjUUBiUQkIEiLtCSoAAAAxoQkwAAAAABIjbwkoAAAAEiLVCRoSI2MJMAAAADo1AQAAEiJ6UyLpCSgAAAATANkJHhMi1QkWEiLfCRwQw+2VO8EweEQi0QkBMDgBiRARA+2wEQLRCQoQQnIR4pc7wVEONoPhtsAAABDgHzvBgB0K0MPtlTvBIP6YrhhAAAAD0LQRQ+220GA+3q4egAAAEQPQ9hEOdoPjgYBAABD9gTvCA+FRwMAAESJ8ESLfCQgRIn5SIlMJAhBvgAAAAD/wEyLRCRATI0NLDrw/0yLXCRQizQki1QkKA+EKf3//0SJ+UiJTCQIQYnGQTnAD4YV/f//SGPISWMUijnycwk5BJcPhEwDAABBiTSKSGPOiQSPg8YBRIn5SIlMJAhBicaLVCQo6eD8//+QRYlElARHilzvBUiJ8kiDwgFBD7bDOcYPjSX///9IY8oPtlQLeEiB+QABAAC4/wAAAEgPTcFIg8H/SInFSPfdkEiNNClIg/7/dBZIjXEBOFQLekiJ8XTp6woPH4AAAAAASInGQYtElASJwffR9sEwdI9EOcB0lOmvAgAAQYPD4IPC4OsdZi4PH4QAAAAAAGaQRYlElASNVgFBOfMPjtT+//9IY8oPtlQLeEiB+QABAAC9/wAAAEgPTelIg8H/SInoSPfYZi4PH4QAAAAAAA8fAEiNNAhIg/7/dBZIjXEBOFQLekiJ8XTp6woPH4AAAAAASInuQYtElASJwffR9sEwdI9EOcB0j+kfAgAAiTQkTIlcJFDGhCTAAAAAAEiNDf7VDQBIjUEYSImEJMgAAABIjUFASImEJDgBAABIjbwkOAEAAEiNrCTQAAAASInu6C5uDQBIx4QkwAEAAAAAAADHhCTIAQAA/////0iNBUDVDQBIjUgYSIlMJChIiYwkyAAAAEiDwEBIiUQkIEiJhCQ4AQAASInv6PZtDQBMi7QkkAAAAEyJtCTQAAAASI2sJMgAAAAPV8APEUVYDxFFSMeEJDABAAAQAAAAuiEAAABIie9IjTVcrp//6IQ6+v+6AQAAAEiJx0iNNd2S7P/ocDr6/0iJx76/AQAA6FNkDQC6AgAAAEiJx0iNNfWtn//oTzr6/7oSAAAASInvSI01TSWa/ug7Ovr/Q4s074PmB0iJx+gcZA0AgLwkwAAAAAB1DUiNvCTAAAAA6HVO/v9Ii0QkKEiJhCTIAAAASItEJCBIiYQkOAEAAEyJtCTQAAAA9oQkEAEAAAF0DUiLvCQgAQAA6NxbDQBIjbwk0AAAAOgPbQ0ASI28JMgAAABIi7QkiAAAAOgKbQ0ASI28JDgBAADoDW0NAEyLVCRYSIt8JHDrEbABiUQkBOsdi0QkIEiJRCQITItEJEBMjQ30NvD/TItcJFCLNCRFhdtIi2wkYA+Px/n//0mJ/kiLtCSAAAAASIPGBItUJBRIY8JIi0wkGEiNBIFIOcaLTCQ8TItsJGhIi3wkCA+FEvn//+sNMdvrN78BAAAAi0wkPA+v+Uhj70gpa2BIie/od10NAEiJQ1hIi7QkoAAAAEiJx0iJ6uhgZA0AswFMiffo9loNAEiLfCRY6OxaDQBIi3wkGOjiWg0ASIt8JEjo2FoNAEiLvCSgAAAASIX/dA1IibwkqAAAAOi+Wg0ASIt8JDDotFoNAEiLfCRg6KpaDQDp3fb//+iQXw0A6OtcDQDMzMzMzMzMzMzMzFVBV0FWQVVBVFNIg+woSYnySIXSD4QeAwAASYnNSInTSYn3SIn9TItfCEiLRxBMjWcISInBTCnZSDnRc3lMi3UATInZTCnxSAHZD4hpBQAATIlUJBBMif5MKfZMKfBIjRQASDnKSA9C0Ui5/////////z9IOchIv/////////9/SA9C+kiF/0iJfCQgD4SuAgAASIlcJAhMidtIiXQkGOjMWQ0ASIt0JBhJidtIi1wkCOmMAgAATYnYTSn4TYnZTInfSYneSTnYD4PGAAAASInZTCnBTInaSPfSTAH6SAHaSInOSIPmAw+EEAQAADHtTInfZi4PH4QAAAAAAA8fQABBD7ZFAIgHSYs8JEiDxwFJiTwkSIPFAUg57nXkSCnpSIP6A3JgZi4PH4QAAAAAAJBBD7ZFAIgHSYsEJEiNUAFJiRQkQQ+2VQCIUAFJiwQkSI1QAUmJFCRBD7ZVAIhQAUmLBCRIjVABSYkUJEEPtlUAiFABSYs8JEiDxwFJiTwkSIPB/HWrTYXAD4SqAQAASYn5TYnGSY0EH0yJykgpwkyJyEiJXCQISCnYSIn+TDnYD4OuAAAASItMJAhJjTQLifVEKc1J99FJAfFIif5Ig+UDdClmLg8fhAAAAAAADx9AAA+2CIgOSIPAAUmLNCRIg8YBSYk0JEiDxf915UmD+QNyYmYuDx+EAAAAAAAPH0QAAA+2CIgOSYsMJEiNcQFJiTQkD7ZYAYhZAUmLDCRIjXEBSYk0JA+2WAKIWQFJiwwkSI1xAUmJNCQPtlgDiFkBSYs0JEiDxgFJiTQkSIPABEw52HWtSIXSdBVIKddMidZMidPoemENAEmJ2kmLNCQxwEw57kiLTCQISA9GyE0570gPR8hKjQQpSYP+CHIdTAHpSIPBAUk5zw+DRwIAAEuNDD5IOcgPgzoCAABNiddMifFIjVH/SInPSIPnB3QaMfZmkA+2GEGIHDdIg8YBSDn3dfBJAfdIKfFIg/oHckwx0maQD7YYQYgcFw+2GEGIXBcBD7YYQYhcFwIPthhBiFwXAw+2GEGIXBcED7YYQYhcFwUPthhBiFwXBg+2GEGIXBcHSIPCCEg50XW4TInQ6aQBAAAxwEyNBDBIg/sgciBJjU0BSTnID4O6AAAASY0MH0wp8UgBwUw56Q+GpwAAAE2JxkiJ30iNT/9Iif5Ig+YHdCkx0mYuDx+EAAAAAAAPH0QAAEEPtl0AQYgcFkiDwgFIOdZ17kkB1kgp10iD+QcPgrsAAABmLg8fhAAAAAAADx9AAEEPtk0AQYgOQQ+2TQBBiE4BQQ+2TQBBiE4CQQ+2TQBBiE4DQQ+2TQBBiE4EQQ+2TQBBiE4FQQ+2TQBBiE4GQQ+2TQBBiE4HSYPGCEiDx/h1r+taSInZSIPh4E2NNAiJ34PnH0EPtlUAZg9uwmYPYMDyD3DAAGYPcMAASI0UBkiDwhAx9mYuDx+EAAAAAABmkPMPf0Qy8PMPfwQySIPGIEg58XXsSDnZD4UF////SYntSIt1AEyJ+kgp8kyJRCQITInDSCnTSIXSfhJIid9IicXoe1oNAEiJ6E2LHCRIi3QkEEgDRCQgTSn7TYXbfhdMifdMidpNid9IicXoUVoNAEiJ6E0B/kmLfQBJiV0ATYl1CEmJRRBIhf90BeixVQ0ASItEJAhIg8QoW0FcQV1BXkFfXcNJg/4gcxYx0utmTInfSIP6Aw+DJvz//+l2/P//TInySIPi4A+2CGYPbsFmD2DA8g9wwABmD3DAAEmNTxAx9mYuDx+EAAAAAAAPH0QAAPMPf0Qx8PMPfwQxSIPGIEg58nXsSTnWD4Tb/f//QfbGGHRKTIn2SIPm+EkB90SJ8YPhB2YuDx+EAAAAAAAPHwAPtjhmD27HZg9gwPIPcMAAZkEP1gQSSIPCCEg51nXhSTn2D4UX/f//6Yv9//9Bg+YfSQHX6QP9//9Iie/o31kNAMzMzMzMzMzMzMzMzMzMzEiJN0jHRzAAAAAAx0c4AAAAAEjHR0AAAAAAx0dIAAAAAEjHR1AAAAAAx0dYAAAAAEjHR2AAAAAAx0doAAAAAMdHcAAAAAAPV8APEUcIDxFHGMdHJwAAAADDDx+AAAAAAFVBV0FWU1CLb2iF7XhJSIn7Ae2J70jB5wToIlQNAEmJx0yLc2BIY1NwSMHiBEiJx0yJ9uiIXQ0ATIl7YE2F9nQITIn36BdUDQCJa2hIg8QIW0FeQV9dw+j0WA0ADx9AAFVBV0FWQVVBVFNIgewoAQAAQYnMSYn9ZEiLBCUoAAAASImEJCABAABEi39oi0dwRDn4fGSJdCQESIlUJAhFhf8PiLECAABIY9hFAf9Eif9IwecE6IhTDQBJicZJi21gSMHjBEiJx0iJ7kiJ2ujvXA0ATYl1YEiF7XQISInv6H5TDQBFiX1oQYtFcEQ5+EiLVCQIi3QkBH1FSYtNAEhj/kiLSUiLDPn30fbBBw+EEgIAAEWF5A+E0AEAAI1IAUGJTXBImEmLTWBIweAEiTQBSIlUAQhEiWQBBOnmAQAAxkQkEABMjXQkGEiNvCSIAAAATI18JCBIjQXFyw0ASI1IGEiJTCQYSIPAQEiJhCSIAAAATIn+6AhkDQBIx4QkEAEAAAAAAADHhCQYAQAA/////0iNHRrLDQBMjWMYTIlkJBhIg8NASImcJIgAAABMif/o3WMNAEiNLc7LDQBIg8UQSIlsJCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTUTsFD/uiIAAABMiffocTD6/0iNNdKI7P+6AQAAAEiJx+hdMPr/SInHvmoAAADoQFoNAEiNNeqjn/+6AgAAAEiJx+g8MPr/SI01UTay/roUAAAATIn36Cgw+v9IjTVh71v/uggAAABIicfoFDD6/0GLdXBIicfo+FkNAEiNNc3wr/+6AgAAAEiJx+j0L/r/SI01DRua/roOAAAASInH6OAv+v9Bi3VoSInH6MRZDQCAfCQQAHUKSI18JBDoI0T+/0yJZCQYSImcJIgAAABIiWwkIPZEJGABdApIi3wkcOigUQ0ATIn/6NhiDQBIjTUxyg0ASIPGCEyJ9+jVYg0ASI28JIgAAADo2GINAOs5QYtFEIPAAQ+vxkGLTQiJ1ynPjRw4g8MficEB+Q9J2cH7BUxjw0mLXUBCiwSDvwEAAADT5w+jyHMlZEiLBCUoAAAASDuEJCABAAB1JkiBxCgBAABbQVxBXUFeQV9dwwnHQok8g0GLRXDpw/3//+j0VQ0A6E9TDQBmLg8fhAAAAAAADx9EAABVQVdBVkFVQVRTSIHsSAEAAEiJ+2RIiwQlKAAAAEiJhCRAAQAATItvCEwDbxDHR3AAAAAAMcnotfz//4tDcIXAfjbHRCQIAAAAAEiNDcfJDQBIg8EQSIlMJBhIjQ0vyQ0ASIPBCEiJTCQgxwQkAAAAAEyJbCQo6y/HBCQAAAAAiwQkJAGJBCTpAQgAAEpjROUESItLUEyJPMEPH4AAAAAAi0NwhcB+2IPA/4lDcEiLS2BIweAERIs0AYtUAQSJVCQETIt8AQhmLg8fhAAAAAAASIsDTWPmSItoSEKLROUAicGD4QeDwf+D+QYPhwUGAABIjRWFK/D/SGMMikgB0f/hRIt0JARFhfYPhZEEAABIid9EieZMifq5AQAAAOjP+///SIsDQot05QBIwe4ESItASIsM8InKg+IHg/oCdByD+gYPhVACAABIwekEiwTIg+AHg/gCD4U9AgAAQot05QRIid9MifoxyeiE+///Rot05QSwAYlEJAhNie/pYQIAAIB7KgB0EUiLQwhIA0MQSTnHD4W6AQAAsAGJBCSDezgAD4ToBgAASItDUEyJeAhIi0MwSIsISIXJdBOAeykAD4TKBgAASANICEk5z3Zig3s4AH5cSItLUEiLEUiLSQhIKdFIiRBIiUgIg3s4AnxBuAEAAAC5GAAAAGYPH4QAAAAAAEiLUzBIi3NQSIt8DvhIizQOSCn+SIl8CvhIiTQKSIPAAUhjUzhIg8EQSDnQfNKAeykAD4RVBgAASItDCEgDQxCxAYkMJEk5xw+FAgEAAOk6BgAAi1QkBIXSD4XHAQAAqAh1FEGDxgFIid9EifZMifoxyeh5+v//QotE5QSFwHgqO0NYfSVIi0tQSIsUwUiJ30SJ5rkBAAAA6FP6//9KY0TlBEiLS1BMiTzBRot05QBBwe4E6SgBAABGi2zlBEiNexhMif7oFxn///fQQYXFD4ThAAAATItsJCjrdbn/////TTnvcwRBD7YPjVEgg/lbD03Rg/lBD0zRQoB85QYAD0TRQg+2TOUEOcp8RUIPtkzlBTnKfzuoCHUZQYPGAUiJ30SJ9kyJ+jHJ6MP5//9Ci0TlAMHoBEmDxwFBicbpnwAAAGYuDx+EAAAAAAAPH0QAAEiLA0iLQEhC9gTgCA+FPv3//4tEJAgkAQ+FMv3//0GDxgHrbKgIdRdBjXQkAUiJ30yJ+jHJ6Gb5//9Ci0TlAMHoBEGJxutJSInfTInqMcnoTPn//0aLdOUAQcHuBLABiUQkCOsrRot05QBB9sYIdRdBjXQkAUiJ30yJ+jHJ6B75//9Gi3TlAEHB7gRMi2wkKItDEIPAAUEPr8aLSwhEifopyo00EIPGH4nBAdEPSfHB/gVIY8ZIi1NAizSCvwEAAADT5w+jzg+ChPz//wn3iTyC6ar8//+D+gEPhF38///GRCQwAEiNDXXFDQBIjUEYSIlEJDhIjUFASImEJKgAAABIjbwkqAAAAEiNbCRAQYnWSInu6KhdDQBIx4QkMAEAAAAAAADHhCQ4AQAA/////0iNBbrEDQBIjUgYSIlMJBBIiUwkOEyNeEBMibwkqAAAAEiJ7+h4XQ0ATItkJBhMiWQkQEiNbCQ4D1fADxFFWA8RRUjHhCSgAAAAEAAAALoiAAAASInvSI01qalQ/+gPKvr/ugEAAABIicdIjTVoguz/6Psp+v9Iice+6wAAAOjeUw0AugIAAABIicdIjTWAnZ//6Nop+v+6GQAAAEiJ70iNNcYoef/oxin6/0iJx0SJ9uirUw0AgHwkMAB1CkiNfCQw6Ao+/v9Ii0QkEEiJRCQ4TIm8JKgAAABMiWQkQPaEJIAAAAABdA1Ii7wkkAAAAOh8Sw0ASI18JEDoslwNAEiNfCQ4SIt0JCDos1wNAEiNvCSoAAAA6LZcDQDpAfv//0GD/gF1DcdEJAgAAAAA6e76///GRCQwAEiNDfLDDQBIjUEYSIlEJDhIjUFASImEJKgAAABIjbwkqAAAAEiNbCRASInu6ChcDQBIx4QkMAEAAAAAAADHhCQ4AQAA/////0iNBTrDDQBIjUgYSIlMJBBIiUwkOEyNeEBMibwkqAAAAEiJ7+j4Ww0ASItsJBhIiWwkQEiNRCQ4D1fADxFAWA8RQEjHhCSgAAAAEAAAALoiAAAATI1kJDhMiedIjTUkqFD/6Ioo+v+6AQAAAEiJx0iNNeOA7P/odij6/0iJx77FAAAA6FlSDQC6AgAAAEiJx0iNNfubn//oVSj6/7oaAAAATInnSI01eu54/+hBKPr/SInHRIn26CZSDQCAfCQwAHUKSI18JDDohTz+/0iLRCQQSIlEJDhMibwkqAAAAEiJbCRA9oQkgAAAAAEPhXf+///pf/7//8ZEJDAATI10JDhIjbwkqAAAAEyNbCRASI0NncINAEiNQRhIiUQkOEiDwUBIiYwkqAAAAEyJ7ujgWg0ASMeEJDABAAAAAAAAx4QkOAEAAP////9IjR3ywQ0ASI1DGEiJRCQISIlEJDhIg8NASImcJKgAAABMie/osFoNAEyLfCQYTIl8JEAPV8APEYQkgAAAAA8RhCSQAAAAx4QkoAAAABAAAABIjTXmplD/uiIAAABMiffoRCf6/0iNNaV/7P+6AQAAAEiJx+gwJ/r/SInHvqcAAADoE1ENAEiNNb2an/+6AgAAAEiJx+gPJ/r/SI01X+6R/7oTAAAATIn36Psm+v9Ci3TlAIPmB0iJx+jbUA0ASI01Cs2d/7oFAAAASInH6Ncm+v9IiceLdCQE6LtQDQCAfCQwAHUKSI18JDDoGjv+/0iLRCQISIlEJDhIiZwkqAAAAEyJfCRA9oQkgAAAAAF0DUiLvCSQAAAA6IxIDQBMie/oxFkNAEyJ90iLdCQg6MdZDQBIjbwkqAAAAOjKWQ0AxwQkAAAAAGRIiwQlKAAAAEg7hCRAAQAAdRWLBCRIgcRIAQAAW0FcQV1BXkFfXcPohkoNAGYPH0QAAFVBV0FWQVRTSYn2SYn/RItkJDAPEAYPEUcISI13GA8QAg8RRxhIg38YAHUHQQ8QBg8RBkmLB4oQhNJ0CEiLNkk7NnUagHgBAHQfSYt3GEkDdyBJiz5JA34ISDn+dAsxwFtBXEFeQV9dww+20oTJuQEAAAAPRMpBiE8osQFFhMB1A4pIAUGITymKSAFBiE8qTYlPMEWJZzhFheR+QA9XwEEPEQFBg384AnwvuAEAAAC5EAAAAGYuDx+EAAAAAABmkEmLVzAPEQQKSIPAAUljVzhIg8EQSDnQfOdJiwdBi04Ig8EBD69IEI1BH41pPoXAD0nog/nBD45aAQAAwf0FietIweMCSInf6ARHDQBJi39ASYlHQEiF/3QJ6BJHDQBJi0dAQYlvSEiJxzH2SIna6I1KDQBFAeRBg/wDvQIAAABBD03sSI0c7QAAAABIid/ovUYNAEmLf1BJiUdQSIX/dAnoy0YNAEmLR1BBiW9YSInHMfZIidroRkoNAL8AEAAA6IxGDQBJi39gSYlHYEiF/3QF6JpGDQBBx0doAAEAAEGAfygAdCNJiwZJi09QSIkBSYsHi3AISYsWTIn/W0FcQV5BX13pePX//0mDfggAD4iL/v//SYseZi4PH4QAAAAAAEmLP+hoDf//hcB4NEmLLkkDbghIOetzKA+2CznIdCFIiepIKdpIid+JxuihTA0ASInDSIXASA9E3Q8fgAAAAABJi0dQSIkYSYsHi3AITIn/SIna6Aj1//+EwA+FIP7//0iDwwFJiw5JA04ISDnLdpDpC/7//+jGSg0AZg8fRAAAVUFXQVZBVUFUU0iB7KgAAABNic1EicVJifZEi7wk4AAAAGRIiwQlKAAAAEiJhCSgAAAAQYP4Ag+UwEWF/w+ew4TYTI1kJBBND0XMvgEAAABBD0T3D1fADylEJBAPEUQkUA8RRCRgDxFEJHAPEYQkgAAAAA8RhCSQAAAASIl8JChIx0QkWAAAAADHRCRgAAAAAEjHRCRoAAAAAMdEJHAAAAAASMdEJHgAAAAAx4QkgAAAAAAAAABIx4QkiAAAAAAAAADHhCSQAAAAAAAAAMeEJJgAAAAAAAAADxFEJDAPEUQkQMdEJE8AAAAAg/kBD5TBCMFFMcCF7UEPlcCJNCQPtslIjXwkKEyJ9uiS/P//hMB0IIP9AnUfRYX/TQ9O7EmLRQBJA0UISYsOSQNOCEg5yHQEMdvrArMBSIu8JIgAAABIx4QkiAAAAAAAAABIhf90Beh6RA0ASIt8JHhIx0QkeAAAAABIhf90BehiRA0ASIt8JGhIx0QkaAAAAABIhf90BehKRA0AZEiLBCUoAAAASDuEJKAAAAB1FInYSIHEqAAAAFtBXEFdQV5BX13D6G5GDQDMzMzMzMzMzMzMzMzMzECIN8ZHAQBmiVcCZsdHBAEAD1fADxFHBmbHRxYAAA8RRxjDZi4PH4QAAAAAAA8fAFVBV0FWQVVBVFNIgewYAQAASYn8ZEiLBCUoAAAASImEJBABAABmg38GAA+EQQEAAMYEJABMjXQkCEiNfCR4TI18JBBIjQVWvA0ASI1IGEiJTCQISIPAQEiJRCR4TIn+6JxUDQBIx4QkAAEAAAAAAADHhCQIAQAA/////0iNHa67DQBMjWsYTIlsJAhIg8NASIlcJHhMif/odFQNAEiNLWW8DQBIg8UQSIlsJBAPV8APEUQkUA8RRCRgx0QkcBAAAABIjTUNlZ//uiAAAABMiffoCyH6/0iNNWx57P+6AQAAAEiJx+j3IPr/SInHvi8AAADo2koNAEiNNYSUn/+6AgAAAEiJx+jWIPr/SI01nXns/7oVAAAATIn36MIg+v+APCQAdQhIiefoFDX+/0yJbCQISIlcJHhIiWwkEPZEJFABdApIi3wkYOiUQg0ATIn/6MxTDQBIjTUluw0ASIPGCEyJ9+jJUw0ASI18JHjoz1MNAEGKBCQ8BHRSPBR0HjwLdVlJi1wkIEiF23RP9gMBdDFIi3sQ6EdCDQDrJkmLfCQYSIX/dAXopkQNAEmLXCQgSIXbdCZIjXsQSItzGOjvkP7/SInf6BdCDQDrD0mLfCQgSIX/dAXodkQNAGRIiwQlKAAAAEg7hCQQAQAAdRJIgcQYAQAAW0FcQV1BXkFfXcPoLEQNAGYuDx+EAAAAAABmkOk7RA0AZi4PH4QAAAAAAJBVU1APt28GZoXtdRBIifvozP3//0iJ3+ikQQ0AZoXtD5TASIPECFtdww8fgAAAAABVQVdBVkFVQVRTUA+3bwSB/f//AAAPhcgAAABJif1MizV7Nw4ATIn36ANUDQCFwA+FvwAAAEyLJWw3DgBJi2wkCEiF7XQwSY1cJAjrEg8fAEiLRQBIietIhcB0H0iJxUw5bSB363MXSI1dCEiLRQhIhcB16OsISY1sJAhIietMiztNhf91Tb8wAAAA6OBADQBJicdMiWggx0AoAAAAAA9XwA8RAEiJaBBIiQNJiwQkSIsASIXAdAlJiQQkSIsz6wNMif5Ji3wkCOgjEvf/SYNEJBABQYtvKEyJ9+hhUw0AhcB1EYnoSIPECFtBXEFdQV5BX13D6IdFDQAPH4AAAAAAVUFXQVZBVUFUU0iD7ChIiftkSIsEJSgAAABIiUQkIA+3RwRmg/j+D4KrAAAASIsFfDYOAEiD+P90LEiNRCQISIlEJBhIjUQkGEiJRCQQSI09WzYOAEiNFaQuAABIjXQkEOhKTw0ATIs1MzYOAEyJ9+i7Ug0AhcAPhagBAABMiyUkNg4ATY1sJAhmg3sE/0mLRCQIdE9IhcAPhH4AAABJjWwkCOsZZi4PH4QAAAAAAJBIiwhIicVIhcl0a0iJyEg5WCB37HMNSI1oCEiLSAhIhcl16EmJxetUg8ABZolDBOkfAQAASIXAdDhJjWwkCOsSSIsISInFSIXJD4SVAAAASInISDlYIHfocw1IjWgISItICEiFyXXoSYnF635Mie3rC0yJ7et0SYnFSInFTIt9AE2F/3VPvzAAAADoMT8NAEmJx0iJWCDHQCgAAAAAD1fADxEATIloEEiJRQBJiwQkSIsASIXAdApJiQQkSIt1AOsDTIn+SYt8JAjochD3/0mDRCQQAUHHRyj//wAAZsdDBP//62NJicVIicVMi30ATYX/dU+/MAAAAOjDPg0ASYnHSIlYIMdAKAAAAAAPV8APEQBMiWgQSIlFAEmLBCRIiwBIhcB0CkmJBCRIi3UA6wNMif5Ji3wkCOgEEPf/SYNEJBABQYNHKAFMiffoQVENAIXAdSJkSIsEJSgAAABIO0QkIHUXSInYSIPEKFtBXEFdQV5BX13D6FZDDQDosUANAJBVQVdBVkFVQVRTUEmJ/w+3RwRmg/j/dCVmg8D/ZkGJRwQPhQ0CAABMif9Ig8QIW0FcQV1BXkFfXelTAgAATIs1LDQOAEyJ9+i0UA0AhcAPhSsCAABMiyUdNA4ASYtsJAhIhe10MUmNXCQI6xMPH0AASItFAEiJ60iFwHQfSInFTDl9IHfrcxdIjV0ISItFCEiFwHXo6whJjWwkCEiJ60yLK02F7XVNvzAAAADokD0NAEmJxUyJeCDHQCgAAAAAD1fADxEASIloEEiJA0mLBCRIiwBIhcB0CUmJBCRIizPrA0yJ7kmLfCQI6NMO9/9Jg0QkEAFBi0UoRI1g/z3//wAAf35mRYlnBEiLBWozDgBIi3gISIX/D4QNAQAASI1ICEiJy0iJ+mYuDx+EAAAAAACQMfZMOXogQA+SxkgPQ9pIixTySIXSdelIOcsPhNgAAABMOXsgD4fOAAAASItTCEiF0g+E3AAAAGYPH4QAAAAAAEiJ0UiLEkiF0nX16eAAAABMiTQkTIst7TIOAEmLbQhIhe10Mk2NdQjrFWYPH0QAAEiLRQBJie5IhcB0HkiJxUw5fSB363MWTI11CEiLRQhIhcB16OsHSY1tCEmJ7kmLHkiF23VLvzAAAADoYTwNAEiJw0yJeCDHQCgAAAAAD1fADxEASIloEEmJBkmLRQBIiwBIhcB0CUmJRQBJizbrA0iJ3kmLfQjopQ33/0mDRRABRIljKEyLNCRMiffo4E4NAIXAdUtIg8QIW0FcQV1BXkFfXcNIi0sQSDkZdBRIjVMQSIsySI1WEEiLThBIOTF18Eg5GHUDSIkISINAEP9Iid7oG/v2/0iJ3+jjOw0A66nozEANAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIgew4AQAASIn7ZEiLBCUoAAAASImEJDABAABmg38GAA+ErQIAAEjHQxAAAAAATI1sJDBFMf9MjSWxtA0ASYPEEEiNBR60DQBIg8AISIlEJAhMiWQkEGaDewQAD4RhAQAADx9EAADGRCQgAEiNDRS0DQBIjUEYSIlEJChIjUFASImEJJgAAABIjbwkmAAAAEyJ7uhPTA0ASMeEJCABAAAAAAAAx4QkKAEAAP////9IjQVhsw0ASI1IGEiJTCQYSIlMJChIjWhASImsJJgAAABMie/oH0wNAEyJZCQwTI10JCgPV8BBDxFGWEEPEUZIx4QkkAAAABAAAAC6IAAAAEyJ90iNNbOMn//ouRj6/7oBAAAASInHSI01EnHs/+ilGPr/SInHvpIAAADoiEINALoCAAAASInHSI01Koyf/+iEGPr/uhQAAABMifdIjTUNUVv/6HAY+v8Pt3MESInH6FRNDQCAfCQgAHUKSI18JCDosyz+/0iLRCQYSIlEJChIiawkmAAAAEyJZCQw9kQkcAF0DUiLvCSAAAAA6Cg6DQBMie/oYEsNAEiNfCQoSIt0JAjoYUsNAEiNvCSYAAAA6GRLDQAPt0MGZoXAdBtmg/gBdCVIi2sI6yNmLg8fhAAAAAAADx9EAABMif3puQAAAA8fhAAAAAAASI1rCEUx7eskTYl8JBBNiedmLg8fhAAAAAAADx9EAABJg8UBD7dDBkk5xXNjTotk7QBNheR06UEPt0QkBGaD+P90HYPA/2ZBiUQkBGaFwHXP6yBmLg8fhAAAAAAADx8ATInn6Aj7//9BD7dEJARmhcB1rWZBg3wkBgB1jUyJ5+hs9f//TInn6EQ5DQDrkmaQZoP4AkyNbCQwcghIie/onTsNAGbHQwYAAEyJ/UyLZCQQSInf6Df1//9Iid/oDzkNAEiF7XQnTIt9EEiJ62aDewQAD4WY/f//6e/+//9Iid/oC/X//0iJ3+jjOA0AZEiLBCUoAAAASDuEJDABAAB1EkiBxDgBAABbQVxBXUFeQV9dw+gJOw0AZg8fhAAAAAAAVUFWU0GJ9kiJ+0hjRxhIhcAPhJ4AAACD+AgPjKUAAACJwdHpgeFVVVVVicIpyonRgeEzMzMzweoCgeIzMzMzAcqJ0cHpBAHRgeEPDw8PackBAQEBwekYg/kBd2lIAcC5BAAAAEj34UiLayBIx8f/////SA9B+OiVOg0ASIlDIItNAIkIg3sYAnweuAEAAACQSItLIItUhQCJFIFIg8ABSGNLGEg5yHzoSInv6HA6DQCLQxjrEL8gAAAA6FE6DQBIiUMgMcBIi0sgjVABiVMYSJhEiTSBW0FeXcNmDx9EAABVU1CJ84n9vygAAADonzcNAGbHABUAZolYAmbHQAQBAA9XwA8RQBYPEUAGZsdAJgAAiWgYSIPECFtdww8fRAAAVUFWU0GJ1kiJ84n9D7YGOfh1CQ+3SwJEOfF0DTwHdQ4Pt0MCRDnwdVBIidjre4Pg/oP4CHVDD7dDAkQ58HU6vygAAADoJzcNAEiJxWbHAAcAZkSJcALHQAQBAAEAD1fADxFAEEjHQCAAAAAAZoN7BgJyO0iLQwjrOb8oAAAA6O02DQBAiCjGQAEAZkSJcALHQAQBAAEAD1fADxFAEEjHQCAAAAAASIlYCFtBXl3DSI1DCEyLMEyJ9+hD9v//TIl1CEiJ3+hn+P//SIno69tmkInySIn+vwgAAADpIf///5CJ8kiJ/r8HAAAA6RH///+QifJIif6/CQAAAOkB////kFVBV0FWQVVBVFNIg+woQYnMQYn9hdJ0EonVSInzg/oBdSNMizvpZAMAAL8oAAAA6Dw2DQBJicdBg/0GdWdmQccHAQDrZUUx9kGD/QYPhYIAAABFhMB0fUxj/bkIAAAATIn4SPfhSMfH/////0gPQfjoezgNAEmJxknB5wNIicdIid5MifroZj8NAEyJ94nuRIni6JlG/v+D+AF1M02LPuniAgAAZkHHBwIAZkWJZwJmQcdHBAEAD1fAQQ8RRwZBDxFHFmZBx0cmAADpvwIAAInFTInzgf0AAAEAD4w/AQAATIl0JCBIiWwkGI2F/v8AAEG/AYAAgEwPr/hJwe8vvygAAADoaDUNAEiJxUSIKMZAAQBmRIlgAmbHQAQBAEKNPP0AAAAAD1fADxFAEEjHQCAAAAAA6Lc3DQBIiUQkCEiJRQhIiSwkZkSJfQZFjXf/Me1IiVwkEEWJ5w8fgAAAAAC/KAAAAOgGNQ0ASYnERIgoxkABAGZEiXgCZsdABAEAD1fADxFAEEjHQCAAAAAAv/j/BwDoWDcNAEmJRCQIZkHHRCQG//+6+P8HAEiJx0iJ3uhbOQ0ASItEJAhMiSToSIPFAUiBw/j/BwBJOe51kkSJ8MHgEEQp8EiYSItMJBBIjTTBSItUJBgpwkSJ70SJ+UUxwOgJ/v//SWPOSItUJAhIiQTKSIt8JCBIhf8PhIkAAADo6jYNAEyLPCTpbwEAAL8oAAAA6Ec0DQBJicdEiCjGQAEAZkSJYAJmx0AEAQAPV8APEUAGDxFAFmbHQCYAAEGJ7IP9AnwYSo085QAAAADojDYNAEmJRwhmQYlvBusfZkGJbwZMiflIg8EIMcBmg/0CSA9CwYP9AQ+F8wAAAIP9BHMQMcnp1gAAAEyLPCTp6wAAAESJ4YPh/EiNefxIif5Iwe4CSIPGAYnyg+IDSIP/DHMEMf/rYUiD5vxI994x/w8QBPsPEEz7EA8RBPgPEUz4EA8QRPsgDxBM+zAPEUT4IA8RTPgwDxBE+0APEEz7UA8RRPhADxFM+FAPEET7YA8QTPtwDxFE+GAPEUz4cEiDxxBIg8YEdahIhdJ0PkiNNPhIg8YQSI08+0iDxxBIweIFMe1mLg8fhAAAAAAADx8ADxBEL/APEAwvDxFELvAPEQwuSIPFIEg56nXlTDnhdBFIixTLSIkUyEiDwQFJOcx1702F9nQITIn36HI1DQBMifhIg8QoW0FcQV1BXkFfXcOJ0YnySIn+vwUAAABFMcDpTPz//2YuDx+EAAAAAABmkInRifJIif6/BgAAAEG4AQAAAOkp/P//Zg8fhAAAAAAAidGJ8kiJ/r8GAAAARTHA6Qz8//9mLg8fhAAAAAAAZpBVQVZTQYnWifVIifu/KAAAAOhaMg0AZscACwBmiWgCx0AEAQABAA9XwA8RQBBIx0AgAAAAAEiJWAhEiXAYW0FeXcNmLg8fhAAAAAAADx9AAFVBV0FWU1BBic5BideJ80iJ/b8oAAAA6AQyDQBmxwAKAGaJWALHQAQBAAEAD1fADxFAEEjHQCAAAAAASIloCESJeBxEiXAYSIPECFtBXkFfXcNmLg8fhAAAAAAADx9AAFVTUInzif2/KAAAAOivMQ0AZscAAwBmiVgCZsdABAEAD1fADxFAFg8RQAZmx0AmAACJaBhIg8QIW13DDx9EAABVQVdBVkFVQVRTSIPsGInTSIk8JIX2fj+J9YP+AXVnSIsEJIsovygAAADoUTENAGbHAAMAZolYAmbHQAQBAA9XwA8RQBYPEUAGZsdAJgAAiWgY6cECAAC/KAAAAOgfMQ0AZscAAgBmiVgCZsdABAEAD1fADxFABg8RQBZmx0AmAADpkgIAAL8oAAAA6PAwDQBmxwAEAGaJWAJmx0AEAQCJ6UiJTCQQD1fADxFABg8RQBZIiUQkCGbHQCYAAEjHxff///9FMeRFMfZIixwk6zGQvyAAAADoJjMNAEmJxEiLRCQITIlgIEmDxgFEifhFiSyESIPFAUw7dCQQD4QPAgAARYn3Rosss0WF9nTEQYP/CHLURIn40eglVVVVVUSJ+SnBicglMzMzM8HpAoHhMzMzMwHBicjB6AQByCUPDw8PacABAQEBwegYg/gBd5lJjV7/Q408P0jB5wLoojINAEiJ30iJw0iLRCQISIlYIEGLBCSJA7gBAAAASIP/CA+CDgEAAEiNSwRLjRS0SDnRcxxKjQy1AAAAAEiJ2kgBykmNTCQESDnKD4flAAAASY1G90iJwUjB6QNIg8EBg+EDSIP4GHMEMdLre0iJ6EjB6ANIg8ABSIPg/Ej32DHSDx9EAABBDxBElARBDxBMlBQPEUSTBA8RTJMUQQ8QRJQkQQ8QTJQ0DxFEkyQPEUyTNEEPEESUREEPEEyUVA8RRJNEDxFMk1RBDxBElGRBDxBMlHQPEUSTZA8RTJN0SIPCIEiDwAR1nkiJ+EiD4PhIhcl0LGaQSI00lQAAAABIg84EQQ8QBDRBDxBMNBAPEQQzDxFMMxBIg8IISIPB/3XWSDnHdHxIg8gBZi4PH4QAAAAAAA8fAESJ8inCSInBSPfRTAHxSIPiA3QdZi4PH4QAAAAAAGaQQYs0hIk0g0iDwAFIg8L/de9Ig/kDcjRmDx+EAAAAAABBiwyEiQyDQYtMhASJTIMEQYtMhAiJTIMIQYtMhAyJTIMMSIPABEk5xnXVTInn6A0xDQBJidxIixwk6df9//9Ii0QkCESJcBhIg8QYW0FcQV1BXkFfXcNmDx+EAAAAAABBVlNQifNJif6/KAAAAOg9Lg0AZscAFABmiVgCZsdABAEAD1fADxFAFg8RQAZmx0AmAABMiXAYSIPECFtBXsOQSIPsOGRIiwQlKAAAAEiJRCQwSItHIEiJRCQgDxAHDxBPEA8pTCQQDykEJEiLRiAPEAYPEE4QDxEHDxFPEEiJRyAPKAQkDyhMJBBIi0QkIEiJRiAPEU4QDxEGZEiLBCUoAAAASDtEJDB1BUiDxDjD6AwwDQBmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIPsOEmJ9UiJ+2RIiwQlKAAAAEiJRCQwSIX/dD5Nhe10OUiJ30yJ7uhZAgAAhMB0Ng+2A4PA+0C1AYP4Bg+HBgIAAA9XwA8pRCQQSMdEJCAAAAAATI10JBDrK0w560APlMXp4gEAADHt6dsBAABIjQTPSIlEJBhmLg8fhAAAAAAADx9EAABIx0QkCAAAAABIxwQkAAAAAIoDjUj5gPkFcxVmg3sGAg+C+gAAAEiLWwjp9QAAAJAE+zwBD4c2AQAAD7dDBmaFwA+EKQEAAEiNawhNjX0IRTHk6yhmLg8fhAAAAAAAZpBMifdIieboVScAAEmDxAEPt0MGSTnED4P0AAAASInpZoP4AnIESItLCEqLPOFIiXwkCGZBg30GAkyJ+HIESYtFCEqLNOBIiTQk6FIBAACEwA+E9wAAAEiLRCQYSDtEJCB0LkiLTCQISIkISItEJBhIg8AISIlEJBhIO0QkIHUu6Xz///9mLg8fhAAAAAAAZpBMifdIjXQkCOjDJgAASItEJBhIO0QkIA+EU////0iLDCRIiQhIg0QkGAjpTP///5BIg8MISIs7SIl8JAhmQYN9BgJyDE2LbQjrCmYPH0QAAEmDxQhJi3UASIk0JOivAAAAhMB0WEiLXCQITIssJOmd/v//Zi4PH4QAAAAAAA8fAEiLfCQQSItEJBhIKfh0ZUjB+ANIicFMi2zH+EiD6QJIixzPD4NP/v//TIn3SMfG/v///+gYJwAA6VP+//9Ii3wkEDHtSIX/dApIiXwkGOhdKw0AZEiLBCUoAAAASDtEJDB1G4noSIPEOFtBXEFdQV5BX13DQLUBSIX/dc3r1eh9LQ0AZi4PH4QAAAAAAA8fAFVBV0FWQVVBVFNIgewYAQAAZEiLBCUoAAAASImEJBABAACKDzoOD4VGAgAASIn7gMH/gPkUd1WwAQ+2yUiNFYUG8P9IYwyKSAHR/+EPt0YCZjNDAqhAD5TA6RYCAAAPt0MGZjtGBg+UwOkGAgAAi0MYO0YYD4X4AQAAD7dGAmYzQwKoAQ+UwOnoAQAAxgQkAEyNdCQISI18JHhMjXwkEEiNBTqjDQBIjUgYSIlMJAhIg8BASIlEJHhMif7ogDsNAEjHhCQAAQAAAAAAAMeEJAgBAAD/////TI0lkqINAE2NbCQYTIlsJAhJg8RATIlkJHhMif/oVzsNAEiNLUijDQBIg8UQSIlsJBAPV8APEUQkUA8RRCRgx0QkcBAAAABIjTXwe5//uiAAAABMiffo7gf6/0iNNU9g7P+6AQAAAEiJx+jaB/r/SInHvpsBAADovTENAEiNNWd7n/+6AgAAAEiJx+i5B/r/SI01U5at/rogAAAATIn36KUH+v8PtjNIicfoijENAIA8JAB1CEiJ5+jsG/7/TIlsJAhMiWQkeEiJbCQQ9kQkUAF0CkiLfCRg6GwpDQBMif/opDoNAEiNNf2hDQBIg8YITIn36KE6DQBIjXwkeOinOg0A6ZQAAABIY1MYO1YYD4WHAAAAD7dGAmYzQwKoAXV7SIt7IEiLdiBIweIC60wPt0YCZjNDAqhAdWGLQxw7Rhx1WYtDGDtGGA+UwOtQSItDGEiLThiLUAQ7UQR1PkhjUBBIweIDSGNxEEjB5gNIOfJ1KUiLcQhIi3gI6DosDQCFwA+UwOsXi0MYO0YYdQ1Ii0MgSDtGIA+UwOsCMcBkSIsMJSgAAABIO4wkEAEAAHUkSIHEGAEAAFtBXEFdQV5BX13DD7dGAmYzQwKpACAAAA+UwOvJ6MAqDQBBV0FWQVVBVFNJif+D/g64AQAAAA9CxkiNDVKqDQBMizTBD1fADxEHSMdHEAAAAABMiffoOC0NAEiD+PBzZEmJxUiD+BdzFkONRC0AQYgHTYn8SYPEAU2F7XUn6zNMietIg8MQSIPj8EiJ3+jgJw0ASYnESYlHEEiDywFJiR9NiW8ITInnTIn2TInq6GAsDQBDxgQsAEyJ+FtBXEFdQV5BX8NMif/oliwNAGYPH0QAAFVBV0FWQVVBVFNIg+xISYn0SYn+ZEiLBCUoAAAASIlEJEBIg34QAHRsD1fADylEJCBIx0QkMAAAAABBiwQkg/gOuQEAAAAPQshIjQVwqQ0ATIs8yA8pBCRIx0QkEAAAAABMif/oVywNAEiD+PAPg4sBAABIicNIg/gXc3uNBBuIBCRMjWwkAUiF2w+FjwAAAOmYAAAAQYsEJIP4DrkBAAAAD0LISI0FFakNAEyLPMgPV8BBDxEGScdGEAAAAABMif/o+isNAEiD+PAPgzYBAABJicVIg/gXD4PHAAAAQ41ELQBBiAZNjWYBTYXtD4XXAAAA6eAAAABIid1Ig8UQSIPl8EiJ7+iWJg0ASYnFSIlEJBBIg80BSIksJEiJXCQITInvTIn+SIna6BMrDQBBxkQdAAAPthQk9sIBdAxIi3QkEEiLVCQI6whI0epIjXQkAUiNfCQg6EYsDQD2BCQBdApIi3wkEOhWJg0ASI018Hef/0iNXCQgSInf6OIqDQBJi3QkCEmLVCQQSInf6BAsDQAPKEQkIEEPEQZIi0QkMEmJRhDrOEyJ60iDwxBIg+PwSInf6OklDQBJicRJiUYQSIPLAUmJHk2JbghMiedMif5MieroaSoNAEPGBCwAZEiLBCUoAAAASDtEJEB1IkyJ8EiDxEhbQVxBXUFeQV9dw0iJ5+iKKg0ATIn36IIqDQDo/ScNAGYuDx+EAAAAAAAPHwCLBokHDxBGCA8RRwjDDx8AVUFWU0iD7DBIiftkSIsEJSgAAABIiUQkKA9XwA8RRCQYvzAAAADoRSUNAA9XwA8RAA8RQBAPEUAgSIlEJBDGRCQYAEiNBbanDQBIg8AQSIlEJAhIx0QkHEBCDwBMjXQkCEyJ90iJ3jHSuQEAAADofXf+/4tsJCBIjQU6nw0ASIPAEEiJRCQITIn36EF0/v9Ii1wkEEiF23QQSInf6H92/v9Iid/o5yQNAGRIiwQlKAAAAEg7RCQodQuJ6EiDxDBbQV5dw+gXJw0ADx+AAAAAAEFXQVZTSIPsMEiJ+2RIiwQlKAAAAEiJRCQoSMdEJBgAAAAAvzAAAADocyQNAA9XwA8RAA8RQBAPEUAgSIlEJBDGRCQYAEiNBTynDQBIg8AQSIlEJAhIx0QkIAAAAADHRCQcQEIPAEyNfCQITIn/SIneMdK5AQAAAOijdv7/TIt0JCBIx0QkIAAAAABIjQVWng0ASIPAEEiJRCQITIn/6F1z/v9Ii1wkEEiF23QQSInf6Jt1/v9Iid/oAyQNAGRIiwQlKAAAAEg7RCQodQ1MifBIg8QwW0FeQV/D6DEmDQCQQVdBVlNIg+wwSIn7ZEiLBCUoAAAASIlEJChIx0QkGAAAAAC/MAAAAOiTIw0AD1fADxEADxFAEA8RQCBIiUQkEMZEJBgASI0FtKYNAEiDwBBIiUQkCEjHRCQgAAAAAMdEJBxAQg8ATI18JAhMif9Iid4x0rkBAAAA6MN1/v9Mi3QkIEjHRCQgAAAAAEiNBXadDQBIg8AQSIlEJAhMif/ofXL+/0iLXCQQSIXbdBBIid/ou3T+/0iJ3+gjIw0AZEiLBCUoAAAASDtEJCh1DUyJ8EiDxDBbQV5BX8PoUSUNAJBVQVdBVkFVQVRTSIPsOEmJzkiJ9UmJ/2RIiwQlKAAAAEiJRCQw9gYBdQhmx0UAAADrD0iLRRDGAABIx0UIAAAAAMYCAEnHBgAAAABBgD8FD4W+AAAAQQ+3RwZIg/gCcg5Ni2cISIXAdRLppQAAAE2NZwhIhcAPhJgAAABJx8X4////MdtmLg8fhAAAAAAAZpBJiwzcgDkSdQ9Ig8MBSYPF+Eg52HXq62uF23RnSYsM3IoBPAMPhNEAAAA8BHVVSIlUJAj2QQIgSGNxGEiJTCQQD4X+AAAAweYCSGP2SInvMdLo+jANAIpFAEiNVQEkAUiLTRBIic5ID0TySItUJBCDehgAD44+AQAATIl0JBhFMfbrVzHAZEiLDCUoAAAASDtMJDAPhccBAABIg8Q4W0FcQV1BXkFfXcNIifdIiXQkIEiNdCQs6FaL/v9Ii3QkIEiLVCQQSJhIAcZJg8YBSGNCGEk5xg+NzwAAAMdEJCwAAAAASItCIEKLBLCJRCQsg/h/f7WIBkiDxgHrzkiJVCQI9kECIItBGA+FigAAAIP4fw+OgQAAAEiDwRjHRCQsAAAAAEiNfCQsSInO6OGK/v9IY9BIie9IjXQkLOgRJw0A6YoAAABIie8x0ugCMA0ASIt8JBCDfxgATItEJAh+dUyNTQExyesiZi4PH4QAAAAAAEiLdyAPtgSOiAQKSIPBAUhjRxhIOcF9S/ZFAAFMicp030iLVRDr2Q++0L4BAAAASInv6JkzDQDrJYpFAEiLTRAkAUyLdCQYhMBIjUUBSA9EyEgpzkiJ7zHS6IIvDQBMi0QkCEmLBNyKQAIkAUGIAI1DAUEPt08GOchzPEiNawGQSYs87Ojn3///SIPFAUEPt0cGSDnFculNKez30wHDQQ+3TwK/BQAAAEyJ5onaRTHA6Lvp///rL78oAAAA6B8gDQBBD7dPAmbHAAIAZolIAmbHQAQBAA9XwA8RQBYPEUAGZsdAJgAASYkGsAHpJf7//+hbIg0AZi4PH4QAAAAAAJBIjUcYD1fADxFHGEiJRxDHRwgAAAAASMcHAAAAAMNmkFVBV0FWQVVBVFNQOfJ9BzHb6aADAABBidZBifVJif+D/np/bUGD/kF8Z0GD/UK4QQAAAEEPTcVBg/5auVoAAABBD0zOKcF8FYDBAbr/////0+L30gS/icHT4kEJF0GD/WK4YQAAAEEPTcVBg/56uXoAAABBD0zOKcF8FoDBAbr/////0+L30gSficHT4kEJVwRNjWcYSYt/GEiF/w+EAAEAAEyJ4EiJ+Q8fhAAAAAAAMdJEOWkgD5zCSA9NwUiLDNFIhcl16kw54HQQRDloHH8KRDlwIA+NNP///0WF7Q+OvgAAAEiF/w+EtQAAAEGNRf9MieNIiflmDx+EAAAAAAAx0jlBIA+cwkwPTeFIiwzRSIXJdetJOdwPhIEAAABFOWwkHH16RYtsJBxBi0QkIEQ58EQPT/D30EQB6EEBRwhJi0wkCEiFyXQUDx+AAAAAAEiJyEiLCUiFyXX16yNJi0QkEEw5IHQZSY1MJBAPH0AASIsRSI1KEEiLQhBIORB18E05ZxB1BEmJRxBJg0cg/0yJ5uh53fb/TInn6EEeDQBJidxBgf7+/xAAD4+wAAAASYs8JEiF/w+EowAAAEGNRgFMieNIiflmLg8fhAAAAAAAMdJEOXEgD57CSA9P2UiLDNFIhcl16kw543R0O0McfG9Ei3MgRInw99ADQxxBAUcISItLCEiFyXQUDx+AAAAAAEiJyEiLCUiFyXX16yNIi0MQSDkYdBpIjUsQZg8fRAAASIsRSI1KEEiLQhBIORB18Ek5XxB1BEmJRxBJg0cg/0iJ3ui53Pb/SInf6IEdDQBJi38YSIX/D5TAD4TEAAAASY1vGOswZi4PH4QAAAAAAJBJg0cg/0iJ3uiD3Pb/SInf6EsdDQBJi38YSIX/D5TAD4SOAAAATInjSIn5Dx9EAAAx0kQ5aSAPnMJID03ZSIsM0UiFyXXqTDnjdH1EO3McfHeLQyD30ANDHEEBRwhIi0sISIXJdBpmLg8fhAAAAAAASInISIsJSIXJdfXrIw8fAEiLQxBIORh0F0iNSxAPHwBIixFIjUoQSItCEEg5EHXwSTlfEA+FVv///0mJRxDpTf///0GLRwhEifFEKekByIPAAUGJRwjrF0GLTwhEifJEKeoB0YPBAUGJTwioAXR/TInlswFIg30AAHVLvygAAADoSxwNAEnB5iBEielMCfFIiUgcD1fADxEATIlgEEiJRQBJi08QSIsJSIXJdAhJiU8QSItFAEmLfxhIicboj+32/0mDRyABidhIg8QIW0FcQV1BXkFfXcNmDx+EAAAAAABIiwdIif1IhcB0JEiJx0Q7dxx87EQ5byB9DUiNbwhIi0cISIXAdeRJifzpY////0mJ/EiJ/elY////Zg8fRAAAQVdBVlNJifdIi14QSYPHGEw5+3RdSYn+6w5mDx9EAABIicNMOfh0SotzHItTIEyJ9+i6+///SItLCEiFyXQRkEiJyEiLCUiFyXX169MPHwBIi0MQSDkYdMdIg8MQDx8ASIsLSI1ZEEiLQRBIOQh18OuuW0FeQV/DDx+EAAAAAABIi08YSIPHGEiFyXQiSIn4MdI5cSAPnMJID03BSIsM0UiFyXXrSDn4dAU5cBx+A0iJ+Eg5+A+VwMMPH4AAAAAAi0cEMwep////Aw+UwMNmkFVBV0FWQVVBVFNIg+wYSIn9vygAAADoxRoNAEyNaBgPV8APEUAYTIloEMdACAAAAABIiQQkSMcAAAAAAEiLXRBIiWwkCEiNdRhIOfMPhB8BAAAx7UiJdCQQDx+AAAAAAESLcxxEi2MgSIXtdENNie/rIWYuDx+EAAAAAAAPH0AASItFAEmJ70iFwA+EgAAAAEiJxUQ7ZRx850Q5dSB9F0yNfQhIi0UISIXAdeTrCGaQTIntTYnvSYM/AHVkvygAAADoGhoNAEnB5CBNCfRMiWAcD1fADxEASIloEEmJB0iLLCRIi00QSIsJSIXJdAdIiU0QSYsHSIt9GEiJxuhf6/b/SINFIAFIi3QkEOsTDx8ASYnvSYM/AHSjDx+AAAAAAEiLSwhIhcl0Fw8fgAAAAABIichIiwlIhcl19esjDx8ASItDEEg5GHQXSIPDEA8fAEiLC0iNWRBIi0EQSDkIdfBIOfB0DEmLbQBIicPp7/7//0iLTCQIixFIiwQkiRCLUQSJUASLSQiJSAhIg8QYW0FcQV1BXkFfXcMPH4AAAAAAVUFXQVZBVUFUU0iD7BiB/v7/EAAPjwcCAABBifdJif6D/nl/REGD/2F9HUHHRgQAAAAAQYP/WX8wQYP/QH8bQccGAAAAAOshsXpEKPm4////A9PoQSFGBOsPsVpEKPm4////A9PoQSEGSYt+GEiF/w+EqwEAAE2NZhhMifhIweAgSIlEJBBBjUcBiUQkDOszSYt+GEiJxugk6vb/SYNGIAFFi24Ii0QkDCnoRAHoQYlGCE2NZhhJizwkSIX/D4ReAQAATInjSIn4Dx+AAAAAADHJRDl4IA+ewUgPT9hIiwTISIXAdepMOeMPhDIBAACBexz//xAAD48lAQAASItLCEiFyXQbZi4PH4QAAAAAAJBIichIiwlIhcl19esjDx8ASItDEEg5GHQXSI1LEA8fAEiLEUiNShBIi0IQSDkQdfBIi2scSYntScHtIEk5XhB1BEmJRhBJg0Yg/0iJ3ugu1/b/SInf6PYXDQBB99VBAe1FA24IRYluCEQ5/Q+PNf///0mLHCRIhdt1JEyJ40mDPCQAD4UN////6zdmDx9EAABIiwNJidxIhcB0ZkiJw0Q5exx/7DlrIH0NTI1jCEiLQwhIhcB15UmDPCQAD4XU/v//vygAAADoZRcNAInpSAtMJBBIiUgcD1fADxEASIlYEEmJBCRJi04QSIsJSIXJD4SM/v//SYlOEEmLBCTpf/7//0mJ3EmDPCQAD4WG/v//67BIg8QYW0FcQV1BXkFfXcNVQVdBVkFVQVRTSIPsOEmJ/WRIiwQlKAAAAEiJRCQwD1fADylEJBBIx0QkIAAAAABIi18gSP/DdQYx0jHA6y1IidhIweg9D4U2AwAASI083QAAAADotxYNAEiNFNhIiUQkEEiJRCQYSIlUJCBJjW0QSYtdEE2NdRhMOfN0MDHJg3scAHV7i0sgg8EBSItzCEiF9nRHZi4PH4QAAAAAAGaQSInzSIs2SIX2dfXrU0i5AAAAAP//EABIiUwkCEg50A+DKQEAAEiLTCQISIkISIPACEiJRCQY6SIBAABIi3MQSDkeD4SJAgAASIPDEEiJ3pBIiz5IjXcQSItfEEg5O3XwTDnzD4S1AAAATI18JBBMjWQkCGYuDx+EAAAAAAAPHwCLcxyDxv+JTCQIiXQkDEg50HMdSItMJAhIiQhIg0QkGAjrGGYuDx+EAAAAAAAPHwBMif9MieboVRMAAItLIEiLQwhIhcB0GWYPH4QAAAAAAEiJxkiLAEiFwHX16yMPHwBIi3MQSDkedBdIg8MQDx8ASIsDSI1YEEiLcBBIOQZ18IPBAUw59nQSSItEJBhIi1QkIEiJ8+lm////SY1tEIH5//8QAH83iUwkCMdEJAz//xAASItEJBhIO0QkIHMQSItMJAhIiQhIg0QkGAjrD0iNfCQQSI10JAjosxIAAEmLdRhIie/o92P+/02JdRAPV8BBDxFFGEyLfCQQSIt8JBhMOf8PhO8AAAAx7UUx5EiF7XROZi4PH4QAAAAAAA8fQABDiwTnQ4tM5wRMifPrFWaQSItVAEiJ60iF0g+EgAAAAEiJ1TtNHHzoOUUgfRlIjV0ISItVCEiF0nXm6woPH0AATIn1TInzSIM7AHVkvygAAADoehQNAEuLDOdIiUgcD1fADxEASIloEEiJA0mNVRBIiwpIiwlIhcl0BkiJCkiLA0mLfRhIicboxOX2/0mDRSABTIt8JBBIi3wkGOsTDx8ASInrSIM7AHSjDx+AAAAAAEmDxAFIifhMKfhIwfgDSTnEcxFJiy5Ihe0PhTH////pbP///0yJ/0GLRQBBi00E99Al////A0GJRQD30YHh////A0GJTQS4AAARAEErRQhBiUUISIX/dApIiXwkGOjeEw0AZEiLBCUoAAAASDtEJDB1JUiDxDhbQVxBXUFeQV9dw0iJ80w58w+FjP3//+k8/v//6JkYDQDo9BUNAA8fQABQSGPHSI08xRgAAADo7xUNAEiNSBhIiUgIx0AQAAAAAMYAAMdABAAAAABZww8fQABBV0FWU0mJ/kxjfxBKjTz9IAAAAOi3FQ0ASI1IGEiJSAjHQBAAAAAAQYoOiAi5AAARAEErTgSJSARNhf90XUmLfggx9kiJ+kUxwOsaDx9AAItKBI1xAUlj30iNHN9Ig8IISDnadCuLCjnxdOSDwf9Ii3gISWPYQYPAAUjB4SCJ9kgJzkiJNN9Ji34IRYt+EOu/gfn//xAAfAfrIzH2RTHASItICElj0EGDwAGJ9ki/AAAAAP//EABICfdIiTzRRIlAEFtBXkFfww8fhAAAAAAAi1cQhdJ+L0iLRwjrFw8fAInPSI0E+EiDwAj30QHRicqFyX4SidHR6Tl0yAR84jk0yH/rsAHDMcDDDx+AAAAAAEFWU1BJif5IY0cgSI08xRgAAADoqBQNAEiNWBhIiVgIx0AQAAAAAMYAAMdABAAAAABJi1YQTY1GGDHJTDnCdGJIi3IcSIk0y0iLeghIhf90H2YuDx+EAAAAAAAPH0QAAEiJ/kiLP0iF/3X16yMPHwBIi3IQSDkWdBdIg8IQDx8ASIs6SI1XEEiLdxBIOT518EiDwQFMOcZ0CUiLWAhIifLrnolIEEGLTgiJSARBi04EQTMO98H///8DD5QASIPECFtBXsNmLg8fhAAAAAAAZpBTvzgAAADoZRENAEiJw0iJxzH26OgjDQCFwHUoSIkdfQcOAL8YAAAA6EMRDQBIjUgID1fADxFACEiJCEiJBWYHDgBbw+g3Fg0AzMzMzMzMzEFWU1BIiftIjQX6kw0ASIPAEEiJB0yLdxhNhfZ0FEmLdghMiffopgj+/0yJ9+gOEQ0ASI0FL4sNAEiDwBBIiQNIid/oOGD+/0iLWwhIhdt0F0iJ3+h3Yv7/SInfSIPECFtBXunYEA0ASIPECFtBXsNBVlNQSIn7SI0F4pMNAEiDwBBIiQdMi3cYTYX2dBRJi3YITIn36IYI/v9MiffonhANAEiNBb+KDQBIg8AQSIkDSInf6Mhf/v9Ii1sISIXbdBdIid/oB2L+/0iJ30iDxAhbQV7paBANAEiDxAhbQV7DQVZTUEiJ+0iNBXqKDQBIg8AQSIkH6IZf/v9Mi3MITYX2dBBMiffoxWH+/0yJ9+gtEA0ASInfSIPECFtBXukeEA0AzMzMzMzMzMzMzMzMzMyJ0IA+C3UEg0cYAcPMzMzMVUFXQVZBVUFUU0iB7BgBAABBidZkSIsEJSgAAABIiYQkEAEAAMYEJABMjXwkCEiNfCR4TI1sJBBIjQWBiA0ASI1IGEiJTCQISIPAQEiJRCR4TInu6McgDQBIx4QkAAEAAAAAAADHhCQIAQAA/////0iNHdmHDQBMjWMYTIlkJAhIg8NASIlcJHhMie/onyANAEiNLZCIDQBIg8UQSIlsJBAPV8APEUQkUA8RRCRgx0QkcBAAAABIjTU4YZ//uiAAAABMif/oNu35/0iNNZdF7P+6AQAAAEiJx+gi7fn/SInHviUCAADoBRcNAEiNNa9gn/+6AgAAAEiJx+gB7fn/SI01EAq//7okAAAATIn/6O3s+f+APCQAdQhIiefoPwH+/0yJZCQISIlcJHhIiWwkEPZEJFABdApIi3wkYOi/Dg0ATInv6PcfDQBIjTVQhw0ASIPGCEyJ/+j0Hw0ASI18JHjo+h8NAGRIiwQlKAAAAEg7hCQQAQAAdRVEifBIgcQYAQAAW0FcQV1BXkFfXcPovRANAMzMzMzMzMzMzMzMzMxBVlNQSYn+SI0FGpENAEiDwBBIiQdIi18YSIXbdBRIi3MISInf6MYF/v9Iid/oLg4NAEiNBU+IDQBIg8AQSYkGTIn36Fhd/v9Ji14ISIXbdBBIid/ol1/+/0iJ3+j/DQ0ATIn3SIPECFtBXunwDQ0AVUFXQVZBVUFUU0iD7BhBiddkSIsEJSgAAABIiUQkEIA+Cw+F3QAAAEiJ80iLdiBIhfYPhM0AAABIif1Ii38YSIX/dSO/GAAAAOiCDQ0ASInHSIPACA9XwA8RRwhIiQdIiX0YSItzIOhkAgAATIt1GEmNTghIOcgPhYgAAABEi2sYSItrIEjHRCQIAAAAAEiNdCQITIn3SInq6FIDAABIixhIhdt1W0mJxL9AAAAA6B0NDQBIicNIjXggSInu6E4QDQDHQzgAAAAASItEJAgPV8APEQNIiUMQSYkcJEmLBkiLAEiFwHQJSYkGSYs0JOsDSIneSYt+COhU3vb/SYNGEAFEiWs4ZEiLBCUoAAAASDtEJBB1EkSJ+EiDxBhbQVxBXUFeQV9dw+gUDw0AzMzMzFVBV0FWQVVBVFNIgewYAQAAQYnWZEiLBCUoAAAASImEJBABAADGBCQATI18JAhIjXwkeEyNbCQQSI0FQYUNAEiNSBhIiUwkCEiDwEBIiUQkeEyJ7uiHHQ0ASMeEJAABAAAAAAAAx4QkCAEAAP////9IjR2ZhA0ATI1jGEyJZCQISIPDQEiJXCR4TInv6F8dDQBIjS1QhQ0ASIPFEEiJbCQQD1fADxFEJFAPEUQkYMdEJHAQAAAASI01+F2f/7ogAAAATIn/6Pbp+f9IjTVXQuz/ugEAAABIicfo4un5/0iJx75TAgAA6MUTDQBIjTVvXZ//ugIAAABIicfowen5/0iNNXJpUP+6JgAAAEyJ/+it6fn/gDwkAHUISInn6P/9/f9MiWQkCEiJXCR4SIlsJBD2RCRQAXQKSIt8JGDofwsNAEyJ7+i3HA0ASI01EIQNAEiDxghMif/otBwNAEiNfCR46LocDQBkSIsEJSgAAABIO4QkEAEAAHUVRInwSIHEGAEAAFtBXEFdQV5BX13D6H0NDQDMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJifdIif1Ii18IRA+2JkH2xAF0Ck2LZwhNi38Q6wdJ0exJg8cBSIPFCEiF2w+EzQAAAEiJLCRJie29/////+snDx9EAAAxwE059A+SwE055g9CxYnBwekfhcBMD0nrSIscy0iF23RED7ZDIKgBdAZMi3Mo6wZJicZJ0e5NOfRMifJJD0LUSIXSdLuoAXQHSIt7MOsJkEiNeyBIg8cBTIn+6PANDQCFwHWq65pIiywkSTntdEtBD7ZFIKgBdAZJi10o6wZIicNI0etMOeNMieJID0LTSIXSdCKoAXQGSYt1MOsISY11IEiDxgFMif/oow0NAIXAdAR4B+sISTnccwNJie1MiehIg8QIW0FcQV1BXkFfXcPMVUFXQVZBVUFUU0iD7BhIi28ISIPHCEiF7XQZRA+2MkH2xgFIiXQkCHQSTItyCEiLUhDrL0iJPukeAQAASdHuSIPCAeseZi4PH4QAAAAAAJBIi0UASInvSIXAD4TgAAAASInFD7ZFIKgBdBVMi30o6xVmLg8fhAAAAAAADx9EAABJicdJ0e9NOfdMifNJD0LfSIXbSIl8JBB0FqgBdCJMi20w6yRmLg8fhAAAAAAAZpBNOf5ym+tpZg8fhAAAAAAATI1tIEmDxQFJidRIiddMie5IidropwwNAIXAdBNMieIPiGr////rFA8fhAAAAAAATTn+TIniD4JU////TInvSInWSIna6HYMDQBMieKFwHQPeBLrOGYuDx+EAAAAAACQTTn3cyhIjX0ISItFCEiFwA+FKv///0iLRCQISIko6xpIi0QkCEiJKEiJ7+sNSItEJAhIiShIi3wkEEiJ+EiDxBhbQVxBXUFeQV9dw8zMzMxBVlNQSYn+SI0FoosNAEiDwBBIiQdIi18YSIXbdBRIi3MISInf6EYA/v9Iid/oXggNAEiNBX+CDQBIg8AQSYkGTIn36IhX/v9Ji14ISIXbdBBIid/ox1n+/0iJ3+gvCA0ATIn3SIPECFtBXukgCA0AVUFXQVZBVUFUU1BBideAPgsPhfcAAABIifVIi3YgSIX2D4TnAAAASIn7TItnGE2F5HUmvxgAAADowwcNAEmJxEiDwAgPV8BBDxFEJAhJiQQkTIljGEiLdSCLXRhJi2wkCEiF7XQzTY10JAjrEg8fAEiLRQBJie5IhcB0IkiJxYtFIDnDfOo52H0XTI11CEiLRQhIhcB15esISY1sJAhJie5Niy5Nhe11WUiJNCS/QAAAAOhJBw0ASYnFiVggD1fADxFAKEjHQDgAAAAADxEASIloEEmJBkmLBCRIiwBIhcB0CUmJBCRJizbrA0yJ7kmLfCQI6IjY9v9Jg0QkEAFIizQkSYPFKEyJ7+gCCA0ARIn4SIPECFtBXEFdQV5BX13DVUFXQVZBVUFUU0iB7BgBAABBidZkSIsEJSgAAABIiYQkEAEAAMYEJABMjXwkCEiNfCR4TI1sJBBIjQWBfw0ASI1IGEiJTCQISIPAQEiJRCR4TInu6McXDQBIx4QkAAEAAAAAAADHhCQIAQAA/////0iNHdl+DQBMjWMYTIlkJAhIg8NASIlcJHhMie/onxcNAEiNLZB/DQBIg8UQSIlsJBAPV8APEUQkUA8RRCRgx0QkcBAAAABIjTU4WJ//uiAAAABMif/oNuT5/0iNNZc87P+6AQAAAEiJx+gi5Pn/SInHvn0CAADoBQ4NAEiNNa9Xn/+6AgAAAEiJx+gB5Pn/SI012WNQ/7olAAAATIn/6O3j+f+APCQAdQhIiefoP/j9/0yJZCQISIlcJHhIiWwkEPZEJFABdApIi3wkYOi/BQ0ATInv6PcWDQBIjTVQfg0ASIPGCEyJ/+j0Fg0ASI18JHjo+hYNAGRIiwQlKAAAAEg7hCQQAQAAdRVEifBIgcQYAQAAW0FcQV1BXkFfXcPovQcNAMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ/UyLN0yLfwhNKfdMif1Iwf0DSI1NAUiJyEjB6D0Phb4AAABIuP////////8fTYtlEE0p9EyJ4kjB+gNJwfwCSTnMTA9C4Ui5/////////w9IOcpMD0PgTYXkdCNIiTQkSTnED4eAAAAASo085QAAAADovQQNAEiJw0iLNCTrAjHbTo0k40iLBkiJBOtIjSzrSIPFCE2F/34SSInfTIn2TIn66CwJDQBNi3UASYldAEmJbQhNiWUQTYX2dBZMifdIg8QIW0FcQV1BXkFfXemBBA0ASIPECFtBXEFdQV5BX13DTInv6HoJDQDoVQkNAMzMzMzMVUFXQVZBVUFUU0iD7BhJifZJif9Ii18ISItvEEiJ6Egp2EjB+ANIOfBzf0mLN0gp80mJ3EnB/ANLjTw0SIn4SMHoPQ+FhgEAAEi4/////////x9IKfVIielIwfkDSMH9Akg5/UgPQu9Iuv////////8PSDnRSA9D6EiF7UiJdCQISIl8JBAPhLsAAABIOcUPh0IBAABIjTztAAAAAOieAw0ASYnF6aAAAABJjUb/TInxSIPhA3QoMdIPH4AAAAAASMcDAAAAAEmLXwhIg8MISYlfCEiDwgFIOdF15Ekp1kiD+AMPgtcAAAAPH4AAAAAASMcDAAAAAEmLRwhIjUgISYlPCEjHQAgAAAAASYtHCEiNSAhJiU8ISMdACAAAAABJi0cISI1ICEmJTwhIx0AIAAAAAEmLXwhIg8MISYlfCEmDxvx1q+t5RTHtSo085QAAAABMAe9JweYDMfZMifLojQYNAEyNNO0AAAAATQHuSItEJBBIjSzFAAAAAEwB7UiF234VTInvSIt0JAhIidroTQcNAEmLP+sFSIt8JAhNiS9JiW8ITYl3EEiF/3QTSIPEGFtBXEFdQV5BX13poAINAEiDxBhbQVxBXUFeQV9dw0yJ/+iZBw0A6HQHDQDMzMzMVUFXQVZBVUFUU1BJif1MizdMi38ITSn3TIn9SMH9A0iNTQFIichIweg9D4W+AAAASLj/////////H02LZRBNKfRMieJIwfoDScH8Akk5zEwPQuFIuf////////8PSDnKTA9D4E2F5HQjSIk0JEk5xA+HgAAAAEqNPOUAAAAA6N0BDQBIicNIizQk6wIx206NJONIiwZIiQTrSI0s60iDxQhNhf9+EkiJ30yJ9kyJ+uhMBg0ATYt1AEmJXQBJiW0ITYllEE2F9nQWTIn3SIPECFtBXEFdQV5BX13poQENAEiDxAhbQVxBXUFeQV9dw0yJ7+iaBg0A6HUGDQDMzMzMzFVBV0FWQVVBVFNIgewoAQAASYnMSInTSYn/ZEiLBCUoAAAASImEJCABAABIicroDUD+/0iFwHRoSInFSInH6B0CAABJicZIie/o0sL//02F9nRUSI18JBBMifboYDkAAPYDAXQdSItDEMYAAEjHQwgAAAAA9gMBdAlIi3sQ6P4ADQBIi0QkIEiJQxAPEEQkEA8RA0yJ9+iFwv//6Y4BAAAxwOmNAQAAxkQkEABMjWwkGEiNvCSIAAAASI1cJCBIjQV7eQ0ASI1IGEiJTCQYSIPAQEiJhCSIAAAASIne6L4RDQBIx4QkEAEAAAAAAADHhCQYAQAA/////0iNLdB4DQBIjUUYSIlEJAhIiUQkGEiDxUBIiawkiAAAAEiJ3+iOEQ0ASI0df3kNAEiDwxBIiVwkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNS0T5v+6IgAAAEyJ7+gi3vn/SI01gzbs/7oBAAAASInH6A7e+f9Iice+IQAAAOjxBw0ASI01m1Gf/7oCAAAASInH6O3d+f9IjTUHE+b/uhMAAABMie/o2d35/0iJx0yJ/ujuNwAAgHwkEAB1CkiNfCQQ6B3y/f9Ii0QkCEiJRCQYSImsJIgAAABIiVwkIPZEJGABdApIi3wkcOiV/wwASI18JCDoyxANAEiNNSR4DQBIg8YISI18JBjoxhANAEiNvCSIAAAA6MkQDQBNheR0EkHHBCQBAAAAQQ8QB0EPEUQkCE2F9g+VwGRIiwwlKAAAAEg7jCQgAQAAdRJIgcQoAQAAW0FcQV1BXkFfXcPocgENAGaQQVdBVlNIg+xASIn7ZEiLBCUoAAAASIlEJDhIx0QkMAAAAAC/MAAAAOjT/gwAD1fADxEADxFAEA8RQCBIiUQkKMZEJDAASI0FTIINAEiDwBBIiUQkIMdEJDRAQg8ARTH2SI18JCBIid4x0rkBAAAA6GwgAABIhcAPhJoAAABIicNIx0QkGAAAAAC/MAAAAOht/gwAD1fADxEADxFAEA8RQCBIiUQkEMZEJBgASI0FPoINAEiDwBBIiUQkCMdEJBxAQg8ATI18JAhMif9Iid4x0rkBAAAA6AYgAABJicZIid/o27///0iNBWyCDQBIg8AQSIlEJAhMif/okxwAAEiLXCQQSIXbdBBIid/oAR8AAEiJ3+gJ/gwASI0FOoINAEiDwBBIiUQkIEiNfCQg6F8cAABIi1wkKEiF23QQSInf6M0eAABIid/o1f0MAGRIiwQlKAAAAEg7RCQ4dQ1MifBIg8RAW0FeQV/D6AMADQAPHwBVQVdBVkFVQVRTSIHsKAEAAEiJ+2RIiwQlKAAAAEiJhCQgAQAAig+Awf+A+RR3a7ABD7bJSI0Vxdnv/0hjDIpIAdH/4WaDewYCch1Ii1sI6xsPt0sGSIP5Ag+CuwEAAEiLWwjptgEAAEiDwwhIiwuAeQEAD4TlAQAAigmAwf+A+QkPgw4CAAAPtsG5PAAAAA+jwQ+SwOn7AQAAxkQkEABMjXQkGEiNvCSIAAAATI18JCBIjQW4dQ0ASI1IGEiJTCQYSIPAQEiJhCSIAAAATIn+6PsNDQBIx4QkEAEAAAAAAADHhCQYAQAA/////0yNJQ11DQBNjWwkGEyJbCQYSYPEQEyJpCSIAAAATIn/6M8NDQBIjS3AdQ0ASIPFEEiJbCQgD1fADxFEJGAPEUQkcMeEJIAAAAAQAAAASI01bg/m/7oiAAAATIn36GPa+f9IjTXEMuz/ugEAAABIicfoT9r5/0iJx75kAAAA6DIEDQBIjTXcTZ//ugIAAABIicfoLtr5/0iNNQsz7P+6IwAAAEyJ9+ga2vn/iguITCQPSI10JA+6AQAAAEiJx+gC2vn/gHwkEAB1CkiNfCQQ6FHu/f9MiWwkGEyJpCSIAAAASIlsJCD2RCRgAXQKSIt8JHDozvsMAEyJ/+gGDQ0ASI01X3QNAEiDxghMiffoAw0NAEiNvCSIAAAA6AYNDQDrUkiLQyBIhcB0aotACOtsSIPDCEiFyXRySIsDgHgBAHQyugEAAABmLg8fhAAAAAAADx9EAABIidBIOdF0DkiLNMNIjVABgH4BAHXqSDnID5PA6zcxwOszZoN7BgJyBkiLWwjrBEiDwwhIiwOAeAEAD5XA6xZIi0MYi0AEhcAPlcE9AAARAA+VwCDIZEiLDCUoAAAASDuMJCABAAB1EkiBxCgBAABbQVxBXUFeQV9dw+hB/QwAkEiJ9+lYuv//Dx+EAAAAAABVQVdBVkFVQVRTSIHsGAEAAEmJ9mRIiwQlKAAAAEiJhCQQAQAAxgQkAEyNfCQISI18JHhMjWQkEEiNBWFzDQBIjUgYSIlMJAhIg8BASIlEJHhMiebopwsNAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0duXINAEyNaxhMiWwkCEiDw0BIiVwkeEyJ5+h/Cw0ASI0tcHMNAEiDxRBIiWwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNSEN5v+6IgAAAEyJ/+gW2Pn/SI01dzDs/7oBAAAASInH6ALY+f9Iice+2gAAAOjlAQ0ASI01j0uf/7oCAAAASInH6OHX+f9IjTXiMOz/uiEAAABMif/ozdf5/4A8JAB1CEiJ5+gf7P3/TIlsJAhIiVwkeEiJbCQQ9kQkUAF0CkiLfCRg6J/5DABMiefo1woNAEiNNTByDQBIg8YITIn/6NQKDQBIjXwkeOjaCg0ATIn36OK4//9kSIsMJSgAAABIO4wkEAEAAHUSSIHEGAEAAFtBXEFdQV5BX13D6Jj7DAAPH4QAAAAAAFVBV0FWQVVBVFNQSYn2RA+3bgZNhe0PhLACAABNicRBgD4FD4WYAAAAuwEAAADrFEEPt+1IjUMBSDnrSInDD4OKAAAAQQ+3xUg5w3PjSYt83PhJizTc6OUDAABFD7duBoTAdMxmRYXtD4QRAQAATY18JAgx2+sfZg8fhAAAAAAARQ+3bgZBD7fNSYPHCEg5yw+DhQAAAEiDwwFBD7fFSDnDc91Ji3/4SYs36JEDAACEwHTNSY1/+EyJ/uhhBAAA679mQYP9AXQdSYtGCOsbZkWF7Q+E9AEAAGZBg/0BdF5Ji0YI61xJjUYISIs4STk8JA+FygAAALkBAAAADx9EAABIictJOc10fkmLFNxIjUsBSDsU2HTq6ZwAAABmRYXtdF5IjVH/iciD4ANIg/oDD4PiAQAAMdIx2+kqAgAASY1GCEiLOEk5PCQPhT4BAAC5AQAAAGYuDx+EAAAAAAAPHwBJic9IOc0PhOoAAABLixT8SY1PAUo7FPh05ukIAQAAMdvpEgIAAOhVuf//ZkGDfgYCciS9AQAAAA8fhAAAAAAASYs87Og3uf//SIPFAUEPt0YGSDnFculMOesPgwwBAAC/KAAAAOhW9wwASYnHQQ+2NkEPt1YCSInH6FKz//9BD7deBkiD+wJyF0iJ30jB5wPoq/kMAEmJRwhmQYlfBusRZkGJXwZmhdt0J0yJ+EiDwAhBD7dOBjHSDx+EAAAAAABJizTUSIk00EiDwgFIOcpy70GKBjwKdAk8C3QN6egBAABBi0YcQYlHHEGLRhhBiUcY6dMBAADohbj//2ZBg34GAnIkuwEAAAAPH4QAAAAAAEmLPNzoZ7j//0iDwwFBD7dGBkg5w3LpSTnvc0C/KAAAAOiK9gwASYnHQQ+2NkEPt1YCSInH6Iay//9BD7deBkiD+wJyLUiJ30jB5wPo3/gMAEmJRwhmQYlfBusrTIn3SIPECFtBXEFdQV5BX13pzrX//2ZBiV8GZoXbD4Q5AQAATIn4SIPACEEPt04GMdJmkEmLNNRIiTTQSIPCAUg5ynLv6RMBAACD4fwx0jHbDx8ASYs01EmLfNQIMe2APgJAD5TFAd0x9oA/AkAPlMYB7kmLfNQQMe2APwJAD5TFAfVJi3TUGDHbgD4CD5TDAetIg8IESDnRdblIhcB0LEmNDNQx0mYuDx+EAAAAAAAPH0AASIs00TH/gD4CQA+UxwH7SIPCAUg50HXovygAAADofvUMAEmJx0EPtjZBD7dWAkiJx+h6sf//QQ+3TgaJzSndg/0BfhWJ70jB5wOJy+jP9wwAidlJiUcI6wRJi0cIZkGJbwZNif1Jg8UIZoP9AkwPQ+hmhcl0MzHtMdvrHQ8fQABIY9tJiXzdAIPDAUiDxQFBD7dGBkg5xXMQSYs87IA/AnXe6Lm2///r4kyJ+EiDxAhbQVxBXUFeQV9dww8fRAAAQVdBVlMPtgeDwPmD+AMPh8QAAABJifZIiftMjX8IZoN/BgJMifhyBEiLQwhIizgPtgdIg/gUD4ecAAAAuQgwEABID6PBD4ONAAAAQQ+2BoPA+YP4A3cuZkGDfgYCcgZJi0YI6wRJjUYISIsw6N/G//+EwHQQQQ+3TgJmM0sCsAH2wUB0VWaDewYCTIn4cgRIi0MISIs4TIn26LLG//+JwbABhMl1NGaDewYCcgRMi3sISYsPgDkDdR9BgD4EdRlJi1YgixI7URh1DkEPt1YCZjNRAvbCAXQCMcBbQV5BX8NVQVdBVkFVQVRTSIHsKAEAAEmJ9EmJ/WRIiwQlKAAAAEiJhCQgAQAASIsfSI1rCGaDewYCSInocgRIi0MITYs8JEiLOOhHs///D7dzAkiJxzHSMcnoh8H//0mJxooDBPk8Aw+HkAAAAA+2wEiNDVLQ7/9IYwSBSAHI/+BBx0YcAAAAADHJ6ypBx0YcAAAAADHJuAEAAADrHotLHEGJThyLQxjrEkHHRhwBAAAAuQEAAAC4/////0GJRhhBiheAwv2A+hEPh1kCAAAPttJIjTUB0O//SGMUlkgB8v/ig8EBQYlOHIP4/w+EhgEAAIPAAUGJRhjpegEAAMZEJBAATI1sJBhIjbwkiAAAAEyNZCQgSI0FymsNAEiNSBhIiUwkGEiDwEBIiYQkiAAAAEyJ5ugNBA0ASMeEJBABAAAAAAAAx4QkGAEAAP////9IjS0faw0ASI1FGEiJRCQISIlEJBhIg8VASImsJIgAAABMiefo3QMNAEyNPc5rDQBJg8cQTIl8JCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTV8Beb/uiIAAABMie/ocdD5/0iNNdIo7P+6AQAAAEiJx+hd0Pn/SInHvm4BAADoQPoMAEiNNepDn/+6AgAAAEiJx+g80Pn/SI01U894/7ofAAAATInv6CjQ+f8PtjNIicfoDfoMAIB8JBAAdQpIjXwkEOhs5P3/SItEJAhIiUQkGEiJrCSIAAAATIl8JCD2RCRgAXQKSIt8JHDo5PEMAEyJ5+kmAgAAg8EBQYlOHOsdQQNPHEGJThxBi08Yg/n/dAyD+P90DwHI6YX+//9Bx0YY/////78oAAAA6ITxDABIicVIice+AgAAADHS6IKt//9JiW0ATYk0JEiJ3+gis///TIn/6e4BAABmg3sGAnIESItrCEGLdxi6AQAAAIP+AnwiSItVAIt6GEmLbyC6AQAAAJA5fJUAdQtIg8IBSDnWdfGJ8gHRQYlOHIP4/3QGAdBBiUYYQTtXGA+Edv///02JdQCJ10jB5wJJA38gQYt3GCnWQQ+3VwLoZr///0mJxulw////xkQkEABIjVwkGEiNvCSIAAAATI1sJCBIjQWgaQ0ASI1IGEiJTCQYSIPAQEiJhCSIAAAATInu6OMBDQBIx4QkEAEAAAAAAADHhCQYAQAA/////0iNLfVoDQBIjUUYSIlEJAhIiUQkGEiDxUBIiawkiAAAAEyJ7+izAQ0ATI0lpGkNAEmDxBBMiWQkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNVID5v+6IgAAAEiJ3+hHzvn/SI01qCbs/7oBAAAASInH6DPO+f9Iice+qwEAAOgW+AwASI01wEGf/7oCAAAASInH6BLO+f9IjTUuj6//uh8AAABIid/o/s35/0EPtjdIicfo4vcMAIB8JBAAdQpIjXwkEOhB4v3/SItEJAhIiUQkGEiJrCSIAAAATIlkJCD2RCRgAXQKSIt8JHDoue8MAEyJ7+jxAA0ASI01SmgNAEiDxghIjXwkGOjsAA0ASI28JIgAAADo7wANAEyJ9+gnsf//ZEiLBCUoAAAASDuEJCABAAB1EkiBxCgBAABbQVxBXUFeQV9dw+it8QwAZi4PH4QAAAAAAA8fAEiJ9+m4rv//Dx+EAAAAAABVQVdBVkFVQVRTSIHsGAEAAEmJ9mRIiwQlKAAAAEiJhCQQAQAAxgQkAEyNfCQISI18JHhMjWQkEEiNBcFnDQBIjUgYSIlMJAhIg8BASIlEJHhMieboBwANAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0dGWcNAEyNaxhMiWwkCEiDw0BIiVwkeEyJ5+jf/wwASI0t0GcNAEiDxRBIiWwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNYEB5v+6IgAAAEyJ/+h2zPn/SI011yTs/7oBAAAASInH6GLM+f9Iice+uwEAAOhF9gwASI017z+f/7oCAAAASInH6EHM+f9IjTUZRa/+uiEAAABMif/oLcz5/4A8JAB1CEiJ5+h/4P3/TIlsJAhIiVwkeEiJbCQQ9kQkUAF0CkiLfCRg6P/tDABMiefoN/8MAEiNNZBmDQBIg8YITIn/6DT/DABIjXwkeOg6/wwATIn36EKt//9kSIsMJSgAAABIO4wkEAEAAHUSSIHEGAEAAFtBXEFdQV5BX13D6PjvDAAPH4QAAAAAAIB+AQB0C8YBAUiJ9+n/rP//McDDZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7BgBAABJifdkSIsEJSgAAABIiYQkEAEAAA+2Ho1D/zwUD4eKAAAATYnED7bASI0NPMrv/0hjBIFIAcj/4EHGRwEBTIn/6Jqs//9kSIsMJSgAAABIO4wkEAEAAA+EPwQAAOlMBAAATYs0JEGKBjwCD4QVBAAAZkGDfwYCD4IZAgAASYtPCEw7MQ+FGQIAAOkMAwAARQ+3dwZNhfZ0oGZBg/4BD4RhAgAASYtHCOlcAgAAxgQkAEyNdCQISI18JHhMjWQkEEiNBWllDQBIjUgYSIlMJAhIg8BASIlEJHhMiebor/0MAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0dwWQNAEyNaxhMiWwkCEiDw0BIiVwkeEyJ5+iH/QwASI0teGUNAEiDxRBIiWwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNSn/5f+6IgAAAEyJ9+geyvn/SI01fyLs/7oBAAAASInH6ArK+f9Iice+LgIAAOjt8wwASI01lz2f/7oCAAAASInH6OnJ+f9IjTUriVv/uhsAAABMiffo1cn5/0EPtjdIicfoufMMAIA8JAB1CEiJ5+gb3v3/TIlsJAhIiVwkeEiJbCQQ9kQkUAF0CkiLfCRg6JvrDABMiefo0/wMAEiNNSxkDQBIg8YITIn36ND8DABIjXwkeOjW/AwATIn/6N6q//9JicbpfAIAAEmLRxiLQAQ9AAARAA+EjAEAAIXAD4WoAQAAvygAAADoIusMAEmJxkEPt1cCSInHvgEAAADpfwEAAE2LNCRBgD4CD4Q1AgAAQYtXGEGLdxxBD7dPAkyJ9+haAgAASInDTIn36J+s///GQwEBSYne6QkCAABNizQkZkGDfwYCD4KyAAAASYtHCOmtAAAASY1PCEw7MQ+E+AAAADjDdRBBD7dHAmZBO0YCD4TPAQAAvygAAADoj+oMAEmJxEEPt1cCSInHid7ojab//2ZBx0QkBgEATYl0JAhBxkQkAQFkSIsEJSgAAABIO4QkEAEAAA+FsQEAAEyJ4OmXAQAASY1HCEiLOEk5PCQPhfwAAAC5AQAAAA8fRAAASInNSTnOD4S0AAAASYsU7EiNTQFIOxTodObpygAAAEmNRwhMOzB0U78oAAAA6P7pDABIicNBD7dXAkiJx74LAAAA6Pml//9mx0MGAQBMiXMIQYtHGIlDGMZDAQFkSIsEJSgAAABIO4QkEAEAAA+FGwEAAEiJ2OkBAQAATIn36G2r///pkfz//78oAAAA6J7pDABJicZBD7dXAkiJx74MAAAA6Jml///ptQAAAEyJ/+gMqf//SYnGxkABAemmAAAA6Cur//9mQYN/BgJyHLsBAAAASYs83OgVq///SIPDAUEPt0cGSDnDculMOfUPgyf8//+/KAAAAOg06QwASYnGQQ+2N0EPt1cCSInH6DCl//9BD7dfBkiD+wJyF0iJ30jB5wPoiesMAEmJRghmQYleBusRZkGJXgZmhdt0JUyJ8EiDwAhBD7dPBjHSZg8fRAAASYs01EiJNNBIg8IBSDnKcu9BxkYBAWRIiwQlKAAAAEg7hCQQAQAAdRVMifBIgcQYAQAAW0FcQV1BXkFfXcPoDesMAGYuDx+EAAAAAAAPHwBVQVdBVkFVQVRTSIHsWAEAAIlMJAhBifRJif1kSIsEJSgAAABIiYQkUAEAAIP6/3QsidNEieAJ0HVTvygAAADoTOgMAEiJw0iJx74CAAAAi1QkCOhIpP//6U8CAABBg/wBD4REAQAARYXkRIt8JAgPhWYBAABMie/oo6f//0iJx0SJ/uh4sf//6TIBAABBg/wBdRKD+wF1DUyJ7+iAp///6RoBAABFheSJXCQUD46bAQAARIt8JAhEieNIjTzdAAAAAOjJ5wwASYnGMe0PH0AATInv6Ein//9JiQTuSIPFAUg563XrTIn3RInmRIn66M20//9IicVMiffosucMAItcJBREOeMPjk0BAABIiWwkIEyJ7+gIp///SInHi3QkCOjssP//SInFQY1EJAE52EyJZCQYD40uAQAARYnnQffXQQHfi1wkCGYuDx+EAAAAAABMie/oyKb//0mJxL8oAAAA6CvnDABJicZIice+BQAAAIna6Cmj//+/EAAAAOiP6QwASYlGCGZBx0YGAgBMiSBIiWgITIn3id7oc7D//0iJxUGDx/91qunAAAAATInv6G2m//9IiceLdCQI6DGw//9kSIsMJSgAAABIO4wkUAEAAA+E8AAAAOlEAwAAD4g5AwAARInnSMHnA+ij5gwASYnGQY1cJP8x7WYPH4QAAAAAAEyJ7+gYpv//SYkE7kiDxQFIOet160yJ7+gDpv//SInHRIn9RIn+6MWv//9IY8tJiQTOTIn3RInmRIn66ICz//9IicNMiffoZeYMAOtfMe1EOeMPj7P+//+LXCQISIXtD4WaAgAA63+LXCQITIt0JCBNhfZ0Y78oAAAA6BHmDACJ2kiJw0iJx74FAAAA6A+i//+/EAAAAOh16AwASIlDCGbHQwYCAEyJMEiJaAhkSIsEJSgAAABIO4QkUAEAAA+FXAIAAEiJ2EiBxFgBAABbQVxBXUFeQV9dw0yLZCQYSIXtD4UZAgAATIlkJBjGRCRAAEyNZCRISI28JLgAAABIjWwkUEiNBWdeDQBIjUgYSIlMJEhIg8BASImEJLgAAABIie7oqvYMAEjHhCRAAQAAAAAAAMeEJEgBAAD/////TI09vF0NAEmNRxhIiUQkCEiJRCRISYPHQEyJvCS4AAAASInv6Hr2DABMjTVrXg0ASYPGEEyJdCRQD1fADxGEJJAAAAAPEYQkoAAAAMeEJLAAAAAQAAAASI01E/jl/7oiAAAATInn6AjD+f9IjTVpG+z/ugEAAABIicfo9ML5/0iJx757AgAA6NfsDABIjTWBNp//ugIAAABIicfo08L5/0iNNdty7/+6EQAAAEyJ5+i/wvn/SYnESI18JChMie7o7xwAAA+2VCQo9sIBdAxIi3QkOEiLVCQw6whI0epIjXQkKUyJ5+iJwvn/SI0ttlKt/roBAAAASInHSInu6HLC+f9IicdIi3QkGOhV7AwAugEAAABIicdIie7oVcL5/0iJx4t0JBToOewMAPZEJCgBdApIi3wkOOg45AwAgHwkQAB1CkiNfCRA6IfW/f9Ii0QkCEiJRCRITIm8JLgAAABMiXQkUPaEJJAAAAABdA1Ii7wkoAAAAOj54wwASI18JFDoL/UMAEiNNYhcDQBIg8YISI18JEjoKvUMAEiNvCS4AAAA6C31DAC/KAAAAOij4wwASInFSInHvgEAAACJ2uihn///ZEiLBCUoAAAASDuEJFABAAB1DUiJ6Oms/f//6IHoDADo3OUMAGYuDx+EAAAAAABmkEFWU1BIiftIi0cYi0AEPQAAEQB0H4XAdUS/KAAAAOg94wwASYnGD7dTAkiJx74BAAAA6xm/KAAAAOgi4wwASYnGD7dTAkiJx74MAAAA6B6f//9MifBIg8QIW0Few0iJ30iDxAhbQV7phKL//w8fQABVQVdBVlNQidVJifZJif+/KAAAAOjX4gwASInDSInHvgUAAACJ6ujVnv//vxAAAADoO+UMAEiJQwhmx0MGAgBMiThMiXAISInYSIPECFtBXkFfXcPMzMzMzMzMzMzMzMxBVlNQSIn7SI0F2mYNAEiDwBBIiQfoBgEAAEyLcwhNhfZ0EEyJ9+h1AwAATIn36H3iDABIid9Ig8QIW0Fe6W7iDADMzMzMzMzMzMzMzMzMzEiJ0MPMzMzMzMzMzMzMzMxBVlNQSIn7SI0FemYNAEiDwBBIiQfopgAAAEyLcwhNhfZ0EEyJ9+gVAwAATIn36B3iDABIid9Ig8QIW0Fe6Q7iDADMzMzMzMzMzMzMzMzMzFNIiftIjQUtZg0ASIPAEEiJB+hZAAAASItbCEiF23QRSInf6MgCAABIid9b6c/hDABbw8zMzMzMzMzMzMzMzMwPC8zMzMzMzMzMzMzMzMzMSInIw8zMzMzMzMzMzMzMzEiJ8MPMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIHsGAEAAGRIiwQlKAAAAEiJhCQQAQAASItHCEiFwA+EIwIAAEiDeCgAD4QYAgAASYn8xgQkAEyNdCQISI18JHhMjXwkEEiNBflZDQBIjUgYSIlMJAhIg8BASIlEJHhMif7oP/IMAEjHhCQAAQAAAAAAAMeEJAgBAAD/////SI0dUVkNAEyNaxhMiWwkCEiDw0BIiVwkeEyJ/+gX8gwASI0tCFoNAEiDxRBIiWwkEA9XwA8RRCRQDxFEJGDHRCRwEAAAAEiNNfaxsf66IwAAAEyJ9+iuvvn/SI01Dxfs/7oBAAAASInH6Jq++f9Iice+lwAAAOh96AwASI01JzKf/7oCAAAASInH6Hm++f9IjTV0fer/uhAAAABMiffoZb75/4A8JAB1CEiJ5+i30v3/TIlsJAhIiVwkeEiJbCQQ9kQkUAF0CkiLfCRg6DfgDABMif/ob/EMAEiNNchYDQBIg8YITIn36GzxDABIjXwkeOhy8QwASYtcJAhIi0MoSIXAD4TCAAAASb7BwMDAwMDAwOsWDx9AAEmLXCQISItDKEiFwA+EoAAAAEiLawhIi3MgSI0MMEiDwf9IichJ9+ZIweoGSItE1QBIa9JVSCnRSI0MSUjB4QRIi3wIKEiF/3QS6KHfDABJi1wkCEiLawhIi3MgSItDEEiLSyhIjVH/SIlTKEiJwkgp6kiJ10jB/wNIa/9VSIPH/0iF0kgPRPpIAc5IKfdIg8cBSIH/qgAAAA+CYf///0iLePjoSN8MAEiDQxD46U7///9kSIsEJSgAAABIO4QkEAEAAHUSSIHEGAEAAFtBXEFdQV5BX13D6GThDADMzMzMQVdBVlNJif5Ii18ITIt/EEjHRygAAAAATIn4SCnYSMH4A0iD+ANyMA8fhAAAAAAASIs76NjeDABJi14ITYt+EEiDwwhJiV4ITIn4SCnYSMH4A0iD+AJ32EiD+AF0DUiD+AJ1ELhVAAAA6wW4KgAAAEmJRiBMOft0OA8fgAAAAABIizvoiN4MAEiDwwhMOft170mLRhBIicFJK04IdBNIg8H4SMHpA0j30UiNBMhJiUYQSYs+SIX/dApbQV5BX+lN3gwAW0FeQV/DzMzMzMzMzFVBV0FWQVVBVFNIgewoAQAAiUwkDEmJ1EmJ9kiJ+2RIiwQlKAAAAEiJhCQgAQAA6Hz8//9NhfYPhM4DAABIi2sISIt1CEiLRRBIKfBIicFIwfkDSGvRVUiDwv9IhcBID0TQSItNKEgDTSBIOcp1FEiJ7+gZBQAASIt1CEiLTSBIA00oSLrBwMDAwMDAwEiJyEj34kjB6gZIiwTWSGvSVUgp0UiNDElIweEETIk0CMdECAj/////TIlkCBDrOw8fAEiJyEi6wcDAwMDAwMBI9+JIweoGSIsE1khr0lVIKdFIjQxJSMHhBEyJJAjHRAgI/////0yJdAgQSMdECCgAAAAASINFKAHrGA8fhAAAAAAASI0UCEiDwiBMiSKDRAgIAUiLQwhIi0goSItwCEiLQCBIAcFIg8H/SInISLrBwMDAwMDAwEj34kjB6gZMizTWSGvCVUgpwUyNPElJwecES4ssPk+NLD5Jg8UIQ4N8Pgj/dC4Pt00GhckPhKIAAABmg/kBD4SoAAAASItFCOmjAAAAZi4PH4QAAAAAAA8fRAAAi0MUjUj/iUsUhcAPjhUBAADGRCQQAEuLVD4QSIsDSInfSInuSI1MJBD/UBBLiUQ+GIB8JBAAD4X/AAAAQcdFAAAAAABLx0Q+KAAAAAAPt30GSIX/D4R4////T40kPkmDxChmg/8BD4WIAQAAS40EPkiDwCDphAEAAA8fgAAAAABFi00A62pmLg8fhAAAAAAASI1FCEWLTQBBOcl9U4B8JAwAD4RoAQAARYXJD45fAQAAQY1J/0iLFMhKOxTID4VNAQAAS4tEPihIizTISIsDSInf/1AgS4tMPihJY1UASIkE0UGDRQAB6ZT+//8PH0AAS4tUPhBLi0w+GE+LRD4oSIsDSInfSInu/1AYSYnEZoN9BgJyKUuLfD4oSIX/dB/o7N0MAOsYxkMQAUuLVD4QSIsDSInfSInu/1AoSYnESItrCEiLRRBIi00oSI1R/0iJVShIicJIK1UISInWSMH+A0hr9lVIg8b/SIXSSA9E8kgDTSBIKc5Ig8YBSIH+qgAAAHIOSIt4+OgU2wwASINFEPhIi0MISItIKEiFyQ+EIAIAAEiLcAhIi0AgSAHBSIPB/0iJyEi6wcDAwMDAwMBI9+JIweoGSIsE1khr0lVIKdFIjQxJSMHhBEiLVAgoSIXSD4SK/f//SGN0CAhIjRTy6YT9//9IwecD6APdDABJiQQk6cz9//9mLg8fhAAAAAAASWPJSItrCEyLJMhPi3Q+GEiLdQhIi0UQSCnwSInBSMH5A0hr0VVIg8L/SIXASA9E0EiLTShIA00gSDnKD4XO/P//SInv6JYBAABIi3UISItNIEgDTSjptfz//8ZEJBAATI10JBhIjbwkiAAAAEyNbCQgSI0F11INAEiNSBhIiUwkGEiDwEBIiYQkiAAAAEyJ7uga6wwASMeEJBABAAAAAAAAx4QkGAEAAP////9IjR0sUg0ATI17GEyJfCQYSIPDQEiJnCSIAAAATInv6O/qDABIjS3gUg0ASIPFEEiJbCQgD1fADxFEJGAPEUQkcMeEJIAAAAAQAAAASI01y6qx/rojAAAATIn36IO3+f9IjTXkD+z/ugEAAABIicfob7f5/0iJx76kAAAA6FLhDABIjTX8Kp//ugIAAABIicfoTrf5/0iNNe+Dn/+6CQAAAEyJ9+g6t/n/gHwkEAB1CkiNfCQQ6InL/f9MiXwkGEiJnCSIAAAASIlsJCD2RCRgAXQKSIt8JHDoBtkMAEyJ7+g+6gwASI01l1ENAEiDxghMiffoO+oMAEiNvCSIAAAA6D7qDABkSIsEJSgAAABIO4QkIAEAAHUVTIngSIHEKAEAAFtBXEFdQV5BX13D6AHbDADMQVdBVlNIg+xASYn+ZEiLBCUoAAAASIlEJDhIi0cgSIP4VXI3SIPAq0mJRiBIx0QkEAAAAABJi0YISIsISIlMJBBIg8AISYlGCEiNdCQQTIn36JoBAADpYwEAAEmLRhBJi04YSInDSSteCEjB+wNIicpJKxZIidZIwf4DSDnzcyq/8A8AAEg5wQ+EvQAAAOj91wwASIlEJBBIjXQkEEyJ9+jLAwAA6RQBAABIidBIwfgCSIXSQb8BAAAATA9F+EmNRhhIiUQkMEyJ+EjB6D0PhQQBAABKjTz9AAAAAOiv1wwASIlEJBBIjQzYSIlMJCBIiUwkGEqNBPhIiUQkKL/wDwAA6InXDABIiUQkCEiNfCQQSI10JAjoRQgAAEmLXhBJO14IdEJMjXwkEGYPH0QAAEiDw/hMif9Iid7ooQoAAEk7Xgh160mLRhDrH+hA1wwASIlEJBBIjXQkEEyJ9+iOBQAA6cX+//9IidhJiz4PKEQkEEiJfCQQQQ8RBkiJXCQYDyhEJCBIiUQkIEmLThhBDxFGEEiJTCQoSInBSCnZdBRIg8H4SMHpA0j30UiNBMhIiUQkIEiF/3QF6PLWDABkSIsEJSgAAABIO0QkOHUPSIPEQFtBXkFfw+jD2wwA6B7ZDADMzMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/TItnEEw7ZxgPhTgCAABJiw9Ji18ISInYSCnIdlFIwfgDSI1IAUjB6T9IAchIg8ABSNH4SInFSPfdSMHgA0mJ3UkpxUkp3HQSTInvSIneTIni6LnfDABJi18ITQHsTYlnEEiNBOtJiUcI6dgBAABMieBIiQwkSCnISInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhckBAABJie1Jwe0CSI087QAAAADo49UMAE6NFOhMjQToTInRTDnjD4RiAQAATYnjSSnbSYPD+EmD+xhzCEyJ0ek3AQAASo0U6EyJ2UiD4fhIjTQZSIPGCEg58nMYSo0M6UgBwUiDwQhIOdl2CEyJ0ekHAQAAScHrA0mDwwFNidlJg+H8SY1R/EiJ0UjB6QJIg8EBic+D5wNIg/oMcwQx0utySo006EiDxnBIg+H8SPfZMdJmDx+EAAAAAAAPEATTDxBM0xAPEUTWkA8RTNagDxBE0yAPEEzTMA8RRNawDxFM1sAPEETTQA8QTNNQDxFE1tAPEUzW4A8QRNNgDxBM03APEUTW8A8RDNZIg8IQSIPBBHWoSIX/dE5IjQzTSIPBEEnB5QNIjRTVAAAAAEwB6kgBwkiDwhBIwecFMfZmLg8fhAAAAAAADx9EAAAPEEQx8A8QDDEPEUQy8A8RDDJIg8YgSDn3deVLjQzKTTnLdB9KjRzLDx+EAAAAAABIixNIiRFIg8EISIPDCEw543XtSYkHTYlXCEmJTxBNiUcYSYnMSIs8JEiF/3QJ6G3UDABNi2cQSYsGSYkEJEmDRxAISIPECFtBXEFdQV5BX13D6DnZDADMzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/0yLZxBMO2cYD4U4AgAASYsPSYtfCEiJ2EgpyHZRSMH4A0iNSAFIwek/SAHISIPAAUjR+EiJxUj33UjB4ANJid1JKcVJKdx0EkyJ70iJ3kyJ4ug53QwASYtfCE0B7E2JZxBIjQTrSYlHCOnYAQAATIngSIkMJEgpyEiJwUjB+QJIhcC9AQAAAEgPRelIiehIweg9D4XJAQAASYntScHtAkiNPO0AAAAA6GPTDABOjRToTI0E6EyJ0Uw54w+EYgEAAE2J40kp20mDw/hJg/sYcwhMidHpNwEAAEqNFOhMidlIg+H4SI00GUiDxghIOfJzGEqNDOlIAcFIg8EISDnZdghMidHpBwEAAEnB6wNJg8MBTYnZSYPh/EmNUfxIidFIwekCSIPBAYnPg+cDSIP6DHMEMdLrckqNNOhIg8ZwSIPh/Ej32THSZg8fhAAAAAAADxAE0w8QTNMQDxFE1pAPEUzWoA8QRNMgDxBM0zAPEUTWsA8RTNbADxBE00APEEzTUA8RRNbQDxFM1uAPEETTYA8QTNNwDxFE1vAPEQzWSIPCEEiDwQR1qEiF/3ROSI0M00iDwRBJweUDSI0U1QAAAABMAepIAcJIg8IQSMHnBTH2Zi4PH4QAAAAAAA8fRAAADxBEMfAPEAwxDxFEMvAPEQwySIPGIEg593XlS40Myk05y3QfSo0cyw8fhAAAAAAASIsTSIkRSIPBCEiDwwhMOeN17UmJB02JVwhJiU8QTYlHGEmJzEiLPCRIhf90Cejt0QwATYtnEEmLBkmJBCRJg0cQCEiDxAhbQVxBXUFeQV9dw+i51gwAzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Ii18ISDsfdAhJidzpIQIAAE2LbxBJi0cYSTnFc1dMKehIwfgDSI1IAUjB6T9IjSwISIPFAUjR/UyNJO0AAAAATQHsTInqSCnadBJJKdRMiedIid7ottoMAE2LbxBNiWcISI0E7QAAAABMAehJiUcQ6b0BAABIKdhIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FtgEAAEyNZQNJwewCSI087QAAAADo4tAMAE2J406NJOBMjQToTInhTDnrD4ROAQAATYnqSSnaSYPC+EyJ4UiJ2kmD+hgPgiEBAABKjRTYTInRSIPh+EiNNBlIg8YISDnycxtKjQzZSI00CEiDxghMieFIidpIOd4Ph+4AAABJweoDSYPCAU2J0UmD4fxJjVH8SInXSMHvAkiDxwGJ+YPhA0iD+gxzBDH262lKjRTYSIPCcEiD5/xI998x9g8QBPMPEEzzEA8RRPKQDxFM8qAPEETzIA8QTPMwDxFE8rAPEUzywA8QRPNADxBM81APEUTy0A8RTPLgDxBE82APEEzzcA8RRPLwDxEM8kiDxhBIg8cEdahIhcl0PkiNFPNIg8IQScHjA0mNNPNIAcZIg8YQSMHhBTH/Zg8fRAAADxBEOvAPEAw6DxFEPvAPEQw+SIPHIEg5+XXlS40MzE05ynQfSo0Uyw8fhAAAAAAASIsySIkxSIPBCEiDwghMOep17UmJB02JZwhJiU8QTYlHGEiF23QMSInf6IHPDABNi2cISYsGSYlEJPhJg0cI+EiDxAhbQVxBXUFeQV9dw+hM1AwAzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJifZJif9Mi2cQTDtnGA+FOAIAAEmLD0mLXwhIidhIKch2UUjB+ANIjUgBSMHpP0gByEiDwAFI0fhIicVI991IweADSYndSSnFSSncdBJMie9Iid5MieLoSdgMAEmLXwhNAexNiWcQSI0E60mJRwjp2AEAAEyJ4EiJDCRIKchIicFIwfkCSIXAvQEAAABID0XpSInoSMHoPQ+FyQEAAEmJ7UnB7QJIjTztAAAAAOhzzgwATo0U6EyNBOhMidFMOeMPhGIBAABNieNJKdtJg8P4SYP7GHMITInR6TcBAABKjRToTInZSIPh+EiNNBlIg8YISDnycxhKjQzpSAHBSIPBCEg52XYITInR6QcBAABJwesDSYPDAU2J2UmD4fxJjVH8SInRSMHpAkiDwQGJz4PnA0iD+gxzBDHS63JKjTToSIPGcEiD4fxI99kx0mYPH4QAAAAAAA8QBNMPEEzTEA8RRNaQDxFM1qAPEETTIA8QTNMwDxFE1rAPEUzWwA8QRNNADxBM01APEUTW0A8RTNbgDxBE02APEEzTcA8RRNbwDxEM1kiDwhBIg8EEdahIhf90TkiNDNNIg8EQScHlA0iNFNUAAAAATAHqSAHCSIPCEEjB5wUx9mYuDx+EAAAAAAAPH0QAAA8QRDHwDxAMMQ8RRDLwDxEMMkiDxiBIOfd15UuNDMpNOct0H0qNHMsPH4QAAAAAAEiLE0iJEUiDwQhIg8MITDnjde1JiQdNiVcISYlPEE2JRxhJicxIizwkSIX/dAno/cwMAE2LZxBJiwZJiQQkSYNHEAhIg8QIW0FcQV1BXkFfXcPoydEMAMzMzMzMzMzMzFVBV0FWQVVBVFNQSYn2SYn/SItfCEg7H3QISYnc6SECAABNi28QSYtHGEk5xXNXTCnoSMH4A0iNSAFIwek/SI0sCEiDxQFI0f1MjSTtAAAAAE0B7EyJ6kgp2nQSSSnUTInnSIne6MbVDABNi28QTYlnCEiNBO0AAAAATAHoSYlHEOm9AQAASCnYSInBSMH5AkiFwL0BAAAASA9F6UiJ6EjB6D0PhbYBAABMjWUDScHsAkiNPO0AAAAA6PLLDABNieNOjSTgTI0E6EyJ4Uw56w+ETgEAAE2J6kkp2kmDwvhMieFIidpJg/oYD4IhAQAASo0U2EyJ0UiD4fhIjTQZSIPGCEg58nMbSo0M2UiNNAhIg8YITInhSInaSDneD4fuAAAAScHqA0mDwgFNidFJg+H8SY1R/EiJ10jB7wJIg8cBifmD4QNIg/oMcwQx9utpSo0U2EiDwnBIg+f8SPffMfYPEATzDxBM8xAPEUTykA8RTPKgDxBE8yAPEEzzMA8RRPKwDxFM8sAPEETzQA8QTPNQDxFE8tAPEUzy4A8QRPNgDxBM83APEUTy8A8RDPJIg8YQSIPHBHWoSIXJdD5IjRTzSIPCEEnB4wNJjTTzSAHGSIPGEEjB4QUx/2YPH0QAAA8QRDrwDxAMOg8RRD7wDxEMPkiDxyBIOfl15UuNDMxNOcp0H0qNFMsPH4QAAAAAAEiLMkiJMUiDwQhIg8IITDnqde1JiQdNiWcISYlPEE2JRxhIhdt0DEiJ3+iRygwATYtnCEmLBkmJRCT4SYNHCPhIg8QIW0FcQV1BXkFfXcPoXM8MAMzMzMzMzMzMzMzMzFNIi18ISCnLSDnTSA9H2kgDD0iJ90iJzkiJ2ujAzgwASInYW8NmLg8fhAAAAAAAkEiJ8EiLTwhIOfFID0LBSCnBSDnRSA9C0UgDB8MPH0AAQVZTTIt3CEjHwP////9JOdYPgocAAABMix9MAdpIi34ISIX/dGRPjQQzTInASCnQSDn4fFJNicFJKflJg8EBSTnRdENIizZEihbrDQ8fQABIg8IBTDnKdC5EOBJ18rgBAAAAZi4PH4QAAAAAAA8fAEg5x3QVD7YcAkiNSAE6HAZIich06+vJTInCTCnaSAHXTDn3SMfA/////0gPRsJbQV7DZi4PH4QAAAAAAA8fQABMi0cISMfA/////02FwHRGTInBSCnRdj5IiwdIAcJJAcBmLg8fhAAAAAAADx9EAABAODJ0DUiDwgFIg8H/dfFMicJIidFIKcFMOcJIx8D/////SA9FwcNmDx+EAAAAAABBV0FWQVRTSItPCEyLdghIx8D/////SInLTCnzD4KuAAAATYX2dCFMiwdIOdNID0faTY08GE0B902J/E0pxE059H0UTIn+63pIOdFID0fKSInI6XkAAABIiz5OjRQ3T40cBkmDw/9JiflNKdFJg8EBTAHDSIPD/kyJ/usIDx9AAEiDw/9JOfN0uopG/0iDxv9MifFBOkL/decPH4AAAAAASIP5AXQTD7YEC0iNUf86RA/+SInRdOnrx0wBzkmJ9E0pxEw5/kjHwP////9JD0XEW0FcQV5BX8MPH4QAAAAAAEiLRwhIhcB0KEiDwgFIOdBIiw9ID0LQSInQZg8fRAAASIPoAXILQDh0Ef9IicJ18MNIx8D/////ww8fgAAAAABTSIn7SIsGSItWCEiJxujN2gwASInYW8PMzMzMzMzMzEFWU0iD7ChIifNJif5kSIsEJSgAAABIiUQkIA9XwA8RB0jHRxAAAAAASMdEJBAAAAAAvzAAAADoZMcMAA9XwA8RAA8RQBAPEUAgSIlEJAjGRCQQAEiNBd1LDQBIg8AQSIkEJEyJdCQYx0QkFKCGAQBIiedIid66BgAAADHJ6J4Z/v+AfCQQAHQPSI01uWyR/0yJ9+jIywwASI0FSUENAEiDwBBIiQQkSInn6FEW/v9Ii1wkCEiF23QQSInf6I8Y/v9Iid/o98YMAGRIiwQlKAAAAEg7RCQgdQtMifBIg8QoW0Few+gnyQwADx+AAAAAAFVBV0FWQVVBVFNIgewoAQAAZEiLBCUoAAAASImEJCABAACKBjHtBPw8B3dCSYn+D7bASI0NP6Tv/0hjBIFIAcj/4IXSfyjrFr0CAAAAg/oBfgzrGr0DAAAAg/oCfxBJi34YSI01osG+/+gCywwAZEiLBCUoAAAASDuEJCABAAAPhe0BAACJ6EiBxCgBAABbQVxBXUFeQV9dw0iJ80mLfhhIjTVeHqf/6MTKDACDexgAD4VmAQAAxkQkEABMjWwkGEiNvCSIAAAATI18JCBIjQW8Pg0ASI1IGEiJTCQYSIPAQEiJhCSIAAAATIn+6P/WDABIx4QkEAEAAAAAAADHhCQYAQAA/////0iNLRE+DQBIjUUYSIlEJAhIiUQkGEiDxUBIiawkiAAAAEyJ/+jP1gwATI09wD4NAEmDxxBMiXwkIA9XwA8RRCRgDxFEJHDHhCSAAAAAEAAAAEiNNXq7tP66IgAAAEyJ7+hjo/n/SI01xPvr/7oBAAAASInH6E+j+f9Iice+aQAAAOgyzQwASI013Baf/7oCAAAASInH6C6j+f9IjTXU21r/uhkAAABNiexMie/oF6P5/4B8JBAAdQpIjXwkEOhmt/3/SItEJAhIiUQkGEiJrCSIAAAATIl8JCD2RCRgAXQKSIt8JHDo3sQMAEiNfCQg6BTWDABIjTVtPQ0ASIPGCEyJ5+gR1gwASI28JIgAAADoFNYMAL0FAAAASIN7IAAPhEL+//9Ji34YSI01xUid/+g0yQwASYt+GEiLcyAPthb2wgF0CkiLVghIi3YQ6wdIg8YBSNHq6E7KDABJi34YSI0122V2/+n3/f//6KnGDABmDx+EAAAAAABVQVdBVkFVQVRTSIHsKAEAAEGJ10mJ/GRIiwQlKAAAAEiJhCQgAQAAigYE/zwUD4fQBAAASIn1D7bASI0N16Hv/0hjBIFIAcj/4EmLfCQY6UMEAABJi3wkGEiNNSXX5f/pmgQAAEmLfCQYSI01Drq0/umJBAAASYt8JBhIjTVIvKT+6XgEAABJi3wkGIt1GA+3VQKD4gHoFQUAAOlkBAAAQYP/AQ+O1QIAAOlVBAAAi00Yg/n/D4SHBAAAi1UcSYtcJBg5yg+FlwQAAEiNNeNgW/9MjXQkEEyJ94nK6XgEAABJi3wkGEiNNZSnsf7pDQQAAEGD/wMPjx8EAABJi3wkGEiNNYe+vv/p8gMAAIN9GAB+MjHbZi4PH4QAAAAAAJBJi3wkGEiLRSCLNJgPt1UCg+IB6HgEAABIg8MBSGNFGEg5w3zbQYP/Ag+MMAIAAOmwAwAASYt8JBgPtjdA9sYBD4RlAwAASIt3CEiLRxCAfDD/fA+EZAMAAESJfCQExkQkEABMjXwkGEiNvCSIAAAATI1sJCBIjQV0Ow0ASI1IGEiJTCQYSIPAQEiJhCSIAAAATInu6LfTDABIx4QkEAEAAAAAAADHhCQYAQAA/////0iNHck6DQBMjXMYTIl0JBhIg8NASImcJIgAAABMie/ojNMMAEiNLX07DQBIg8UQSIlsJCAPV8APEUQkYA8RRCRwx4QkgAAAABAAAABIjTU3uLT+uiIAAABMif/oIKD5/0iNNYH46/+6AQAAAEiJx+gMoPn/SInHvrwAAADo78kMAEiNNZkTn/+6AgAAAEiJx+jrn/n/SI01Gxqn/7oQAAAATIn/6Nef+f9Ji3QkGEiJx+hqygwAgHwkEAB1CkiNfCQQ6Bm0/f9MiXQkGEiJnCSIAAAASIlsJCD2RCRgAXQKSIt8JHDolsEMAEyJ7+jO0gwASI01JzoNAEiDxghMif/oy9IMAEiNvCSIAAAA6M7SDABEi3wkBEGD/wIPjxMCAADpiQAAAEmLfCQYSI01ZBOf/+tWSYt8JBhIjTW9X3b/6eoBAABJi3wkGEiNNWaKmf7p2QEAAEmLfCQYSGNVGEiNNb6go//o9cYMAOnEAQAASYt8JBhIjTUxt7T+6wxJi3wkGEiNNb3XWv/okcUMAPZFAkB0EUmLfCQYSI01ptda/+h6xQwARYX/D4+FAQAASYt8JBhIjTVlv77/6YYBAABJi3wkGEiNNVS/vv/pXgEAAEmLfCQYSI01uxKf/+lNAQAA9kUDIEmLfCQYD4U3AQAASI01v9Pl/+kyAQAASItFGIN4BABJi3wkGA+EtwAAAEiNNbHFqv7oBMUMAEyLbRhMie++/v8AAOizrf//hMBMiWQkCESJfCQEdBxMie/ozaz//0mJxUmLfCQYSI01RhKf/+jJxAwAQYN9EAB0ck2LZQjrIWYuDx+EAAAAAABmkEljRRBIweADSQNFCEmDxAhJOcR0S0WLNCRBi1wkBEE53n/dSItEJAhMi3gYTIn/RIn26OkBAABBOd59xEyJ/0iNNS/Zr/7oZcQMAEyJ/4ne6MsBAADrqUiNNbcdUP/rX0w7bRh0CEyJ7+jSff//TItkJAhJi3wkGEiNNWtcW//oLMQMAESLfCQE6zlI0e5IjUcBgHww/3wPhZz8//9Ig8b/SMfC/////+hz0gwAQYP/An8R6Yf+//9IjTWQiJn+6OzDDABBg/8DdRFJi3wkGEiNNWgVrv/o1cMMAGRIiwQlKAAAAEg7hCQgAQAAdW8xwEiBxCgBAABbQVxBXUFeQV9dw0mLXCQYi1UcSI01PZx4/0yNdCQQTIn3McDo4MD+/+sWSI01FoiZ/kyNdCQQTIn3McDoyMD+/0iJ30yJ9uitAQAA9kQkEAEPhNH9//9Ii3wkIOi4vgwA6cL9///o/sAMAGYuDx+EAAAAAAAPH0AAVUFWU4nVifNJif6F9nQ8g/t/fzdIjT3Jm3j/ug8AAACJ3uj5xAwASIXAdB++AQAAAEyJ97pcAAAA6DLRDAAPvtO+AQAAAEyJ9+tRQITtdFWD+2F8UIP7en9LvgEAAABMife6WwAAAOgE0QwAjUPgD77QvgEAAABMiffo8dAMAA++074BAAAATIn36OHQDAC+AQAAAEyJ97pdAAAAW0FeXenL0AwATIn3id5bQV5d6wBBVlNQifNJif6NQ+CD+F53PkiNPYydo/+6BgAAAIne6EzEDABIhcB0D0iNNV+ztP5MiffoWMIMAA++074BAAAATIn3SIPECFtBXulx0AwAjUP3g/gEd0FIjQ2um+//SGMEgUgByP/gSI01X2if/+sZSI01mkvv/+sQSI012lpb/+sHSI01wGF4/0yJ90iDxAhbQV7p+MEMAIH7/wAAAH8JSI01g9Dl/+sHSI01CdRa/0yJ94naMcBIg8QIW0Fe6V3C/v/MzMzMzMzMzMzMzMzMD7YW9sIBdA1Ii1YISIt2EOnrwgwASIPGAUjR6unfwgwAzMzMzMzMzMzMzMzMzMzMQVZTUEiJ+0iNBQo3DQBIg8AQSIkH6BYM/v9Mi3MITYX2dBBMiffoVQ7+/0yJ9+i9vAwASInfSIPECFtBXumuvAwAzMzMzMzMzMzMzMzMzMwxwMPMzMzMzMzMzMzMzMzMU0iJ80jB7wdIwesMSDH7ZEiLBCUAAAAASI2A2P///0iLCEiDwQFIiQhIMcNIMctIucVO7MRO7MROSInYSPfhSMHqAkiNBFJIjQSCSCnDSIP7Bw+TwFvDZg8fhAAAAAAASI0EN0iF9n44Zg9vBU9plv5mD28NV2mW/kiJ+Q8fQADzD28RZg/v22YPZNpmD9vYZg/v2fMPfxlIg8EQSDnBct9Iiw9Ii1cHSIlQCEiJSAHGAP/DzMzMzMzMzMzMzMzMSMHuB0iJ+UjB6QxIMfFIIdHzD28ED2YPdslmD2TIZg/XwTH2hcB1Kw8fhAAAAAAASAHxSIPBEEiDxhBIIdHzD28ED2YPdslmD2TIZg/XwYXAdN1mD7zAD7fASAHISCHQSInyw8zMzMzMzMzMzMzMzDk9mpkNAHUMSI0FkZkNAEiLQAjDOT0umg0AdQxIjQUlmg0ASItACMM5PcKaDQB1DEiNBbmaDQBIi0AIwzk9VpsNAHUMSI0FTZsNAEiLQAjDOT3qmw0AdQxIjQXhmw0ASItACMM5PX6cDQB1DEiNBXWcDQBIi0AIwzk9Ep0NAHUMSI0FCZ0NAEiLQAjDSI0FWFyv/8NmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIHsyAAAAGRIiwQlKAAAAEiJhCTAAAAADxAHDxEFbJ0NAEiLRxBIiQVxnQ0ASI0dwpgNAEyNdCQoSI0t5gEAAEyNfCQgTI0lQp0NAEyNLa3x6/8PHwAPV8APKYQkoAAAAA8phCSQAAAADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCBIx4QksAAAAAAAAABMiffoM80MAIGMJKgAAAAEAABAgD3anA0AAHQTD7YFKLANAITAdGaAjCSrAAAACEiJbCQgiztIg8MQTIn+SIna6AbNDACFwHUVSIHDmAAAAEw54w+FYv///+n2AAAAvwMAAABIjTVYV+r/us4AAABIjQ2e0a/+TI0FIJd4/0yNDXdfkf8xwOhgBgAA67xIjT23rw0A6ALCDACFwHSKvx4AAADotMwMAEiNiP//AABI99hIIchIx0QkEAAAAABIiUQkGDH/SInGugMAAAC5IgACAEG4/////0UxyeiMzAwASIlEJAhIg/j/dR+/AwAAAEiNNcxW6v+6oQAAAEiNDcMPrv8xwOjiBQAASI18JAgx9uhmzAwAhcB0I+g9vgwARIsAvwMAAABIjTWVVur/uqsAAABMiekxwOivBQAAxgUArw0AAUiNPQGvDQDoXMEMAOnT/v//ZEiLBCUoAAAASDuEJMAAAAB1EkiBxMgAAABbQVxBXUFeQV9dw+jtugwAZi4PH4QAAAAAAA8fAFVBV0FWU0iD7BhJiddBif5kSIsEJSgAAABIiUQkEOi9CQAAicUxwPAPsS2Zrg0AdDeJw0yJ/+h1DwAASI019VXq/0iNDbecsf6/AgAAALpOAQAARYnwSYnBMcDoAAUAADndD4WGAAAA6JPLDACJxYM99poNAAB+IzH/6JHLDABIjTVKAQAAvw4AAADokMsMAIs91poNAOh1ywwASI0N7gIAAESJ90yJ/onq6EEBAABIiw3Cmg0ASIXJdBVEifdMif6J6ugoAQAAMf//FaiaDQCAPZmaDQAAdEBEOTXwlQ0AdUNIjTXnlQ0A6aEAAAAPKAUraZb+DykEJEiJ4w8fQABIid9Iid7oJcsMAIXAdArovLwMAIM4BHTnRIn3Mfbo/coMAOt4RDk1TJYNAHUJSI01Q5YNAOtYRDk14pYNAHUJSI012ZYNAOtGRDk1eJcNAHUJSI01b5cNAOs0RDk1DpgNAHUJSI01BZgNAOsiRDk1pJgNAHUJSI01m5gNAOsQRDk1OpkNAHWRSI01MZkNAEiDxhBEifcx0ugjygwARIn36JvKDABkSIsEJSgAAABIO0QkEHULSIPEGFtBXkFfXcPoG7kMAGYuDx+EAAAAAACQUL8GAAAAMfboQ8oMAL8GAAAAWOlYygwADx+EAAAAAABVQVdBVlNIgeyYAAAASYnPSYn2if1kSIsEJSgAAABIiYQkkAAAAEiJTCQID1fADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCAPKUQkEIP6/3QaidFIjRUSI63+SI18JBC+IAAAADHA6HjIDAA5LWKUDQB1CUiNBVmUDQDrZDkt+ZQNAHUJSI0F8JQNAOtTOS2QlQ0AdQlIjQWHlQ0A60I5LSeWDQB1CUiNBR6WDQDrMTktvpYNAHUJSI0FtZYNAOsgOS1Vlw0AdQlIjQVMlw0A6w85LeyXDQB1QUiNBeOXDQBIi1gISIXbdD2AOwB0ODH/6F7JDABIjRUeU1v/SI18JDBMjUwkEL5gAAAASInZSYnAMcDoy8cMAOs1SI0d/Vav/4A7AHXIMf/oJskMAEiNFRWasf5IjXwkMEyNTCQQvmAAAACJ6UmJwDHA6JTHDABIjXwkMEH/1w+2NQ2YDQBIjVQkCEyJ9+hYAAAAZEiLBCUoAAAASDuEJJAAAAB1DkiBxJgAAABbQV5BX13D6FK3DABmkFVBVlNIifvoNLoMAEmJxosoSInf6Oe5DABIid9IicbojAEAAEGJLltBXl3DDx9AAFVBV0FWQVVBVFNIgeyYAQAASYnWQYn3SIn7ZEiLBCUoAAAASImEJJABAAAPV8APKYQkgAEAAA8phCRwAQAADymEJGABAAAPKYQkUAEAAA8phCRAAQAADymEJDABAAAPKYQkIAEAAA8phCQQAQAADymEJAABAAAPKYQk8AAAAA8phCTgAAAADymEJNAAAAAPKYQkwAAAAA8phCSwAAAADymEJKAAAAAPKYQkkAAAAA8phCSAAAAADylEJHAPKUQkYA8pRCRQDylEJEAPKUQkMA8pRCQgDylEJBDHRCQMAAAAAEyNrCSQAAAATI1kJBBMjUwkDEyJ70yJ5rogAAAAuQEAAABJidjolQ4AAInFSInf6NsKAABEi0QkDEiNHU8AAABIicdMie5MieKJ6UWJ+UFWU+jJCgAASIPEEGRIiwQlKAAAAEg7hCSQAQAAdRJIgcSYAQAAW0FcQV1BXkFfXcPou7UMAGYuDx+EAAAAAACQ/ybMzMzMzMzMzMzMzMzMzEiJ8UiJ+r8BAAAAvgIAAAAxwOkJxwwAZg8fhAAAAAAAVUFXQVZBVUFUU0iB7KgMAABIictBidZJifdBif1MiUQkIEyJTCQohMB0MQ8pRCQwDylMJEAPKVQkUA8pXCRgDylkJHAPKawkgAAAAA8ptCSQAAAADym8JKAAAABkSIsEJSgAAABIiYQkoAwAAA9XwA8phCTAAAAASIngSImEJNAAAABIuCAAAAAwAAAASImEJMAAAABIjYQk4AwAAEiJhCTIAAAASI2sJOAAAAC6uAsAAEiJ7zH26AS2DABIiawkuAAAAMeEJLQAAAC4CwAASIsFWpUNAEiFwHQ1SDsF/mwNAHQsSI2MJLgAAABMjYQktAAAAESJ70yJ/kSJ8v/QTIukJLgAAACEwHUx6fkAAABIjRWtCqf/SI28JLgAAABIjbQktAAAAEyJ+UWJ8DHA6MwBAABMi6QkuAAAAEhjtCS0AAAATI2MJMAAAABMiee6AQAAAEjHwf////9JidjoLcQMAIXAD5jBi5QktAAAADnQD5/DCMsxyYnWg+4aD0LxhNsPRPBIY8ZIAYQkuAAAACnyiZQktAAAAITbdCdIjRXVCK/+SI0NFRfw/0iNvCS4AAAASI20JLQAAAAxwOg+AQAA6x5IjRXykqP/SI28JLgAAABIjbQktAAAADHA6B4BAABIjZwk4AAAAEiJ3+g+tgwAvwEAAAC+AgAAAEiJ2kiJwTHA6PfEDABBg/0DdCVkSIsEJSgAAABIO4QkoAwAAHU5SIHEqAwAAFtBXEFdQV5BX13DTI2EJJgMAABIiwX9kw0ASI2UJOAAAABMif9EifZMieH/0OjFtQwA6CCzDACwAcNmLg8fhAAAAAAADx8ASYnJRA+2AUH2wAF0CkWLQQhNi0kQ6wdJ0ehJg8EBSI0NAC+q/jHA6WT9//8PH0AASIsFkZMNAPBID7E9gJMNAMNmLg8fhAAAAAAADx9EAABIiwWBkw0A8EgPsT1wkw0Aw2YuDx+EAAAAAAAPH0QAAEiNDTmTDQBIi0EI8EgPsTnDZi4PH4QAAAAAAA8fRAAAQVZTSIHs2AAAAEmJ0kiJ80mJ/kiJTCQYTIlEJCBMiUwkKITAdDEPKUQkMA8pTCRADylUJFAPKVwkYA8pZCRwDymsJIAAAAAPKbQkkAAAAA8pvCSgAAAAZEiLBCUoAAAASImEJNAAAAAPV8APKYQksAAAAEiJ4EiJhCTAAAAASLgYAAAAMAAAAEiJhCSwAAAASI2EJPAAAABIiYQkuAAAAEiLP0hjNkyNjCSwAAAAugEAAABIx8H/////TYnQ6M7BDACFwHgNiwspwXwHiQuJwEkBBmRIiwQlKAAAAEg7hCTQAAAAdQtIgcTYAAAAW0Few+iKsQwAzMzMzMzMzMzMzDHAw8zMzMzMzMzMzMzMzMzDzMzMzMzMzMzMzMzMzMzMUIsFSaUNAD3dAAAAdQiLBTilDQBZw0iNPTOlDQDongAAAOvqZi4PH4QAAAAAAGaQUIsFHaUNAD3dAAAAdQryDxAF6pENAFjDSI09BaUNAOjMAAAA6+hmLg8fhAAAAAAAv7oAAAAxwOl0wgwADx9AAFNmZmZkSIsEJQAAAABIicOAuOT///8BdQ1IidiLi+D///+JyFvDv7oAAAAxwOg+wgwASInBSInYiYvg////xoPk////AevbZg8fhAAAAAAAU0iJ+7l7k8JlMcDwD7EPdBpIjRXoE/D/SInfvgMAAAAxyeiZBAAAhcB1J+gAwgwAiQVWpA0AuN0AAACHAz3SCKMFdQ5Iid++AQAAAFvpPgQAAFvDZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7BgEAABJif5kSIsEJSgAAABIiYQkEAQAALl7k8JlMcDwD7EPdB5IjRWXE/D/TIn3vgMAAAAxyegYBAAAhcAPhaUBAABIjT3lBK/+RTHkMfYxwOh9wQwAg/j/D4SbAAAAicVIx0QkCAAAAABIjVwkEEUx/7oABAAASInfMfbo8rAMALr/AwAAie9Iid7oU8EMAGYPV8DyDxEEJIXAfkhIjXwkEEiNdCQIugoAAADoAr8MAIB8JBAAdCpIi0wkCIoJgPkKdASEyXUaD1fA8kgPKsDyD1kFo2vv//IPEQQkQbcB6wNFMf+J7+gHwQwARYT/8g8QDCQPhcoAAADyDxANiWvv/7tAQg8ASI1sJBDrFQ8fRAAAAdtBg8QBQYP8CA+EoQAAAPIPEQwk6OYAAABJicdJidVIY8NIx0QkEAAAAABIiUQkGGYuDx+EAAAAAAAPH0QAAEiJ70iJ7uglwAwAhcB0Cui8sQwAgzgEdOfoogAAAEwp6g9XyfJIDyrKTCn4D1fA8kgPKsDyD1kFjGrv//IPXshmDyjB8g9ZBUxr7//yDxAUJGYPLtBmDyjB8g9ZBddr7/8Phln///9mDy7CD4ZP////8g8RDTePDQC43QAAAEGHBj3SCKMFdQ1Mife+AQAAAOg7AgAAZEiLBCUoAAAASDuEJBAEAAB1EkiBxBgEAABbQVxBXUFeQV9dw+ghrgwAkFVBV0FWQVVBVFNIg+woZEiLBCUoAAAASIlEJCBJvf////////9/uQoAAAAxwA9XwEyNdCQQRTHkDx+EAAAAAACJTCQESIlEJAgPKUQkEL8EAAAATIn26JW/DACFwA+FjwAAAExpfCQQAMqaO0wDfCQY6FoCAABIicMPV8APKUQkEL8EAAAATIn1TIn26F+/DACFwHVdSGlEJBAAypo7SItMJBhMKflIAcFMOelMD0zjTA9M6UiLRCQISQ9Mx4tMJASDwf8PV8BJie4PhXD///9kSIsMJSgAAABIO0wkIHUjTIniSIPEKFtBXEFdQV5BX13DSI09IC+d/+gCvwwA6L2vDADoGK0MAMzMzMzMzMzMVUFXQVZBVFNIg+wgidVBifZJif9kSIsEJSgAAABIiUQkGOjZrwwASInDRIsgD1fADykEJEiLBc2gDQBIum3m7N4FAAAASA+v0EiDwgtIiRW0oA0Ag/0guSAAAAAPQs3B6QO4AAACANPgjUj/IcoJwkhjwkiJRCQISYngv8oAAABMif66gAAAAESJ8THA6P69DABEiSNkSIsEJSgAAABIO0QkGHUNSIPEIFtBXEFeQV9dw+hZrAwAZg8fhAAAAAAASIsNQaANAEi4bebs3gUAAABID6/BSIPAC4P/ILkgAAAAD0LPwekDugAAAgDT4kiJBROgDQCNSv8hyAnQww8fAEiJ+IX2uv///3+5AQAAAA9Fyr/KAAAASInGuoEAAABFMcAxwOlnvQwADx+AAAAAAFVBV0FWQVVBVFNQQYnOSInTQYn3SYn8ifBIweACSI0sQEUx7escZi4PH4QAAAAAAEGDxQFMiedEiepEifHojv7//0GLNCRFhf905THJDx8AOzQLdAtIg8EMSDnNdfLr0ItUCwQ58nQKifDwQQ+xFCR1B4B8CwgAdQZBizQk68yJ8EiDxAhbQVxBXUFeQV9dww8xSMHiIEgJ0MNmDx9EAADpC/r//8zMzMzMzMzMzMzMSIX/dAhIi4eoAAAAwzHAw1VBV0FWQVVBVFNIgew4CAAARIlMJBBEiUQkFEGJzkiJVCQgSIl0JChIi5wkeAgAAGRIiwQlKAAAAEiJhCQwCAAASIX/D4TkAAAASYn8gHwkEAB0YUyNvCQwBAAAugAEAABMif8x9uj1qwwATInnTIn+ugAEAADo9RkAAEiNLc0FUP+EwEkPRe9MjXwkMLoABAAATIn/MfboxKsMAEiJLCRIjRVhBlD/SI0NiZ2k/r4ABAAA61kPV8APKYQkgAQAAA8phCRwBAAADymEJGAEAAAPKYQkUAQAAA8phCRABAAADymEJDAEAADHhCSQBAAAAAAAAEiNFZdF6v9IjQ02naT+TI28JDAEAAC+ZAAAAEyJ/0G4EgAAAE2J4THA6P+5DABMif9Iid7/lCRwCAAARYX2D46DAQAARYn2TI2kJDAEAAAx7UyJdCQY6ZMAAABmkEiLRCQgiwSoD1fADymEJIAEAAAPKYQkcAQAAA8phCRgBAAADymEJFAEAAAPKYQkQAQAAA8phCQwBAAAx4QkkAQAAAAAAACFwA+OyQAAAIkEJL5kAAAATInnSI0VUnuj/0iNDYedtP5BuBIAAABNifkxwOhZuQwATInnSIne/5QkcAgAAEiDxQFJOe4PhNkAAABIi0QkKEyLPOiAfCQQAA+EW////0yJ402NZ/9Ii0QkIESLNKi6AAQAAEiJ3zH26EyqDABMiedJidxIid66AAQAAOhJGAAAhMBIjR0fBFD/SQ9F3LoABAAATI1sJDBMie8x9ugYqgwARYX2fi5IiVwkCESJNCS+AAQAAEyJ70iNFeKgo//rJ75kAAAATInnSI0VG0Tq/+k1////SIkcJL4ABAAATInvSI0VegRQ/0iNDamctP5BuBIAAABNifkxwOh7uAwATIt0JBhMie9Ii5wkeAgAAOkQ////i0wkFIXJfmkPV8APKYQkgAQAAA8phCRwBAAADymEJGAEAAAPKYQkUAQAAA8phCRABAAADymEJDAEAADHhCSQBAAAAAAAAEiNFTbd6/9IjawkMAQAAL5kAAAASInvMcDoArgMAEiJ70iJ3v+UJHAIAABkSIsEJSgAAABIO4QkMAgAAHUSSIHEOAgAAFtBXEFdQV5BX13D6MunDADMzMzMzMzMzMzMzLABw2YuDx+EAAAAAAAPHwBQSIsFqJsNAEiFwEyNFZ4EAABMD0XQg8EBRTHARTHJQf/SWcNmLg8fhAAAAAAAZpBQTIsVeJsNAE2F0kiNBc4FAABJD0XCg8EB/9BZww8fAFBBifBIiw1Vmw0ASIXJSI0FuwAAAEgPRcGNSgEx9kSJwkUxwEUxyf/QWcMPH0QAAFBNicFJichBifJIiw0fmw0ASIXJSI0FBQIAAEgPRcGNSgEx9kSJ0v/QWcMPH0QAAEiJPfmaDQDDDx+EAAAAAABQTYXATI0VVQAAAEyNHc4BAABND0TaTI0V0wMAAEiNBSwFAABJD0TCSIX2SQ9Ew4PBAcdEJAQAAAAAx0QkBAAAAAD/0MdEJAQBAAAAi0wkBFnDZi4PH4QAAAAAAA8fQABVSInlQVdBVkFVQVRTUEyJy0GJzUGJ10mJ/EmJ7uheuAwASGPIMcBIhe0PhLwAAABFhf9JidkPjrMAAABIie9FMcAxwGYuDx+EAAAAAABmkEiLdwhIhfYPhJkAAABIixdIidNIKft2SEG+AAAAAEiB+6CGAQB3PEiD//d3Fkg5z3YRSIP693c7Qb4AAAAASDnKdiD2wgdJD0XQSYnWRYXtfxbrLGYuDx+EAAAAAABmkEUx9kWF7X4YQYPF/02F9nUd6yxFMfZFhe1/7Q8fRAAASJhJiTTEg8ABTYX2dBFMifdEOfgPjGb////rA0mJ2U2FyXUK625Jif5Nhcl0Zk2F9nRcugEAAAAPH4QAAAAAAEmLNkiJ90wp93ZGSIH/oIYBAHc9SYP+93cQSTnOdgtIg/73dyxIOc52J416AUD2xgd1FUiF9nQQg8L/SYn2gfrnAwAAifpyuIPH/4n66wIx0kGJEUiDxAhbQVxBXUFeQV9dw2YuDx+EAAAAAAAPHwBVSInlQVdBVkFVQVRTUEyJTdBNicVBic9BidRIiftJie7o2rYMAExjyDHASIXtD4QHAQAARYXkD47+AAAASYnbSInqRTHAMcDrJGYPH0QAAEiYTYkUw4PAAU2F9g+E2QAAAEyJ8kQ54A+NzQAAAEyLUghNhdIPhL0AAABIiwpNhe10PUmLdXhJi52gAAAASIn3SCnfSIH/oYYBAEiJ30gPTP5IOd5ID0z7SDnPdRJIhcl0akG+AAAAAEg50XU162BIic9IKdd2SEG+AAAAAEiB/6CGAQB3SUiD+vd3Fkw5ynYRSIP593coQb4AAAAATDnJdi32wQdJD0XISYnORYX/fyfpSf///2YPH4QAAAAAAEUx9kWF/38R6TP///9FMfZFhf8Pjif///9Bg8f/TYX2D4Us////6wNJidZMi0XQTYXAD4StAAAATYX2D4SfAAAAugEAAABmLg8fhAAAAAAASYs2TYXtdDhJi114SYu9oAAAAEiJ2Ugp+UiB+aGGAQBIiflID0zLSDn7SA9Mz0g58XUNSIX2dFpMOfZ1KutTkEiJ8Uwp8XZKSIH5oIYBAHdBSYP+93cQTTnOdgtIg/73dzBMOc52K416AUD2xgd1GUiF9nQUg8L/SYn2gfrnAwAAifoPgnf///+Dx/+J+usCMdJBiRBIg8QIW0FcQV1BXkFfXcNmLg8fhAAAAAAAZpBVSInlQVdBVkFVQVRTSIPsGEyJTdBIiXXASIl9yEiJ6EUx/0iF7Q+EuwAAAEGJ1IXSD46wAAAAictJie5FMf/rJ2YuDx+EAAAAAAAPH0QAAIPD/0iFwA+EiwAAAEmJxkU55w+NfwAAAEmDfggAdHVNiy5Nhe10SU057nRERInpg+EHuAAAAABIhcl1EkyJ7+gsAgAAhMB1A0Ux7UyJ6IXbf65Ji04ITWP/SItVyEqJDPpMOfB3EjHJ6xNmDx9EAAAxwIXbf4rr2onBRCnxSItVwEKJDLpBg8cBSIXAD4V6////6wNMifBMi2XQTYXkdFlIhcB0TUG+AQAAAA8fRAAASIsYSIXbdD1IOdh0OInYg+AHSIXAdS5Iid/ooQEAAEGNTgGEwHQTQYPG/0iJ2EGB/ucDAABBic5yxoPB/0GJzusDRTH2RYk0JESJ+EiDxBhbQVxBXUFeQV9dww8fRAAAVUiJ5UFXQVZBVUFUU0iD7BhMiU3QSIl1wEiJfchIiehFMf9Ihe0PhLsAAABBidSF0g+OsAAAAInLSYnuRTH/6ydmLg8fhAAAAAAADx9EAACDw/9IhcAPhIsAAABJicZFOecPjX8AAABJg34IAHR1TYsuTYXtdElNOe50RESJ6YPhB7gAAAAASIXJdRJMie/ozAAAAITAdQNFMe1MieiF23+uSYtOCE1j/0iLVchKiQz6TDnwdxIxyesTZg8fRAAAMcCF23+K69qJwUQp8UiLVcBCiQy6QYPHAUiFwA+Fev///+sDTInwTItl0E2F5HRZSIXAdE1BvgEAAAAPH0QAAEiLGEiF23Q9SDnYdDiJ2IPgB0iFwHUuSInf6EEAAABBjU4BhMB0E0GDxv9IidhBgf7nAwAAQYnOcsaDwf9Bic7rA0Ux9kWJNCREifhIg8QYW0FcQV1BXkFfXcPMzMzMzFVBV0FWQVVBVFNIg+woSIl8JBBkSIsEJSgAAABIiUQkIOgKowwASYnHiwCJRCQM6AyyDABBicRFD7f0ScHkMJBIiy0BlA0ASInoSMHoMEE5xnV8SYntTInjRYnsQYHk////AEyJ7UjB7RiB5f///wBBxwcAAAAAZg8fhAAAAAAAvwEAAABEieZIi1QkELkBAAAAMcDoJ7EMAIP4/w+FLgEAAEGLB4P4BHTWMdJJidyD+AkPhF8BAADpcgEAAA8fAEyJ6EjB6DBMie1BOcZ0h0jHRCQYAAAAAEiNfCQY6G6xDACFwHQiRYsHvwMAAABIjTX6863/umAAAABIjQ1zsOX/McDouOn//4t8JBi+AgAAALoBAAAAMcDoQ7EMAIt8JBy+AgAAALoBAAAAMcDoLrEMAEhjXCQYRItsJBxIgfv///8Ad1BBgf0AAAABc0eB4////wBIweMYTAnjQYHl////AEkJ3UiJ6PBMD7Et15INAA+ESf///4t8JBjogLAMAIt8JBzod7AMAEyLLbiSDQDpK////78DAAAASI01TvOt/7o2AAAASI0NPLSv/kyNBcWWo/9MjQ3xeXj/McDo/uj//+uKZi4PH4QAAAAAAGaQg/gBD5TCSYncdTSJ08ZEJBgAZi4PH4QAAAAAAA8fQAC6AQAAAInvSI10JBjo768MAEiD+P91BkGDPwR044naQYsHg/gJdRhMiegxyfBID7ENI5INAEGDPwkPhBH+//+LRCQMQYkHZEiLBCUoAAAASDtEJCB1EYnQSIPEKFtBXEFdQV5BX13D6OSdDADMzMzMU0iJ++gHMgAASIs94JENAEiF/3QQ6NafDABIxwXLkQ0AAAAAAEiF23QUgDsAdA9Iid/o2a8MAEiJBbKRDQBbw1VBV0FWQVVBVFNIgexIAQAASYn2QYn/ZEiLBCUoAAAASImEJEABAAAPV8APKYQkMAEAAA8phCQgAQAADymEJBABAAAPKYQkAAEAADH2MdLojK8MAEiD+P8PhCoDAABFhf8PiH0EAABFMeRJg/w/d1hKjSwkSIHFAAEAALtAAAAATCnjZi4PH4QAAAAAAA8fAESJ/0iJ7kiJ2uiyrgwASIXAeR3o6J8MAESLAEGD+AR03+muAgAAZi4PH4QAAAAAAEkBxEiFwHWiSYP8QQ+DEgQAAEmD/EAPhQoDAAAPV8APKYQkoAAAAA8phCSQAAAADymEJIAAAAAPKUQkcEiLnCQoAQAARA+3pCQ6AQAAD7esJD4BAABJD6/sSAHdRIn/SInuMdLot64MAEiD+P8PhLgCAABIiVwkKEUx7UmD/T93TUqNLCxIg8Vwu0AAAABMKetmLg8fhAAAAAAADx9EAABEif9Iie5Iidro4q0MAEiFwHkT6BifDABEiwBBg/gEdN/p3gEAAEkBxUiFwHWtSYP9QQ+DTAMAAEmD/UAPhUQCAAAPt4QkPAEAAEiFwA+EiwIAAEiLjCSIAAAASIlMJCAx7Q9XwEiJRCQQDylEJGAPKUQkUA8pRCRADylEJDBIiWwkGEkPr+xIA2wkKESJ/0iJ7jHS6OetDABIg/j/D4RyAgAARTHtSYP9P3c+So0sLEiDxTC7QAAAAEwp60SJ/0iJ7kiJ2ugmrQwASIXAeRPoXJ4MAESLAEGD+AR03+nWAQAASQHFSIXAdbxJg/1BD4OQAgAASYP9QA+FRgIAAItsJDBIA2wkIA9XwA8phCTwAAAADymEJOAAAAAPKYQk0AAAAA8phCTAAAAARIn/SInuMdLoSa0MAEiD+P8PhAoCAABFMe1Jg/0/d0FKjSwsSIHFwAAAALtAAAAATCnrRIn/SInuSIna6IWsDABIhcB5E+i7nQwARIsAQYP4BHTf6WwBAABJAcVIhcB1uUmD/UEPg+8BAABIjZwkwAAAAEiJ30yJ7ujorAwASImcJLAAAABIiYQkuAAAAEmLfiBIhf8PhMkBAABIiwdIjbQksAAAAEiNVCQw/1AwhMAPhP4AAABIi2wkGEiDxQG7AgAAAEiLRCQQSDnFD1fAD4Vr/v//6d8AAABIjTXUdXj/SI0Ne460/kUx9r8BAAAAuqkBAAAxwOia5P//6zLoA50MAIsAiQQkSI01pnV4/0iNDSOOtP5FMfa/AQAAALq9AQAARYn4RTHJMcDoZuT//2RIiwQlKAAAAEg7hCRAAQAAD4UYAQAARInwSIHESAEAAFtBXEFdQV5BX13DRTH268/ooJwMAIsAiQQkSI01Q3V4/0iNDcCNtP5FMfa/AQAAALq9AQAARYn4SYnp65tIjTUgdXj/SI0Nx420/r8BAAAAuqkBAAAxwOjp4///uwEAAADrBbsCAAAAg/sCQQ+Uxulr////SI016XR4/0iNDZCNtP67AQAAAL8BAAAAuqkBAAAxwOit4///687oFpwMAIsAiQQkSI01uXR4/0iNDTaNtP6/AQAAALq9AQAARYn4SYnpMcDofOP//7sBAAAA65jo4JsMAIsAiQQkSI01g3R4/0iNDQCNtP67AQAAAL8BAAAAur0BAABFifhJiekxwOhB4///6V/////oV5sMAOiymAwA6P2P+v9mLg8fhAAAAAAADx8AVUFXQVZBVUFUU0iB7AgBAABJidZJifdkSIsEJSgAAABIiYQkAAEAAA9XwA8phCTwAAAADymEJOAAAAAPKYQk0AAAAA8phCTAAAAASIP6QXItSI0153N4/0iNDZWp5f9FMe2/AQAAALo2AgAATYn4TYnxMcDop+L//+nqAgAASInLQYn8DymEJLAAAAAPKYQkoAAAAA8phCSQAAAADymEJIAAAAAx9jHS6DOqDABIg/j/D4R/AgAASIlcJBBFheQPiP0CAABFMe1Jg/0/d1pKjSwsSIHFgAAAALtAAAAATCnrZi4PH4QAAAAAAA8fRAAARInnSInuSIna6FKpDABIhcB5HeiImgwARIsAQYP4BHTf6fwBAABmLg8fhAAAAAAASQHFSIXAdaBJg/1BD4OQAgAASYP9QA+FVAIAAA9XwA8pRCRwDylEJGAPKUQkUA8pRCRATIusJKgAAAAPt5wkugAAAA+3rCS+AAAASA+v60wB7USJ50iJ7jHS6GGpDABIg/j/D4QMAgAASIlcJDBMiWwkOEUx7UmD/T93QkqNLCxIg8VAu0AAAABMKesPH0AARInnSInuSIna6JKoDABIhcB5E+jImQwARIsAQYP4BHTf6TwBAABJAcVIhcB1uEmD/UEPg9oBAABJg/1AD4WeAQAAD7ecJLwAAABIhdsPhI0BAABIi0QkWEiJRCQgMe1IiVwkGEiJbCQoSA+vbCQwSANsJDhEiedIie4x0uivqAwASIP4/w+EWgEAAEUx7UmD/T93P0iLRCQQSo0sKLtAAAAATCnrRInnSInuSIna6O2nDABIhcB5E+gjmQwARIsAQYP4BHTf6ZcAAABJAcVIhcB1u0mD/UEPgzUBAABJg/1AD4X5AAAASItEJBCLKEgDbCQgRInnSInuMdLoMKgMAEiD+P8PhNsAAABEiedIjbQkwAAAAEyJ8ugzGQAASIXAD4i6AAAATDnwdRtIjbwkwAAAAEyJ/kyJ8ujSlgwAhcAPhNEAAABIi2wkKEiDxQFFMe1Ii1wkGEg53Q+FBP///+tWSI01JnF4/0iNDc2JtP5FMe2/AQAAALqpAQAAMcDo7N///+sy6FWYDACLAIkEJEiNNfhweP9IjQ11ibT+RTHtvwEAAAC6vQEAAEWJ4EUxyTHA6Ljf//9kSIsEJSgAAABIO4QkAAEAAHVRRInoSIHECAEAAFtBXEFdQV5BX13DRTHt69Po9pcMAIsAiQQkSI01mXB4/0iNDRaJtP5FMe2/AQAAALq9AQAARYngSYnp65/oeZcMAEG1Aeuc6M+UDABmLg8fhAAAAAAADx9EAABTiwXZig0AqAF1P4nBg8kB8A+xDciKDQCoAXUuxwWyiA0AAAAAAIs1tIoNAIPmAoc1q4oNALMBg/4IchBIjT2dig0A6Eo6AADrAjHbidhbw1OLBYmKDQCoAXVJicGDyQHwD7ENeIoNAKgBdTiLBWaIDQCFwA+OqQAAAEiNNXeIDQAxyWYuDx+EAAAAAAAPHwA5fvh0FkiDwQFIg8YYSDnIde7rfzHb6Y4AAACDwP85yH5picKJwynLSInP9sMBdBNIjXkBSIteEEiJXvgPEAYPEUboSI1y/0g5znRBSCn6SI0Mf0iNNfaHDQBIjQzOZpBIi3EoSIlxEA8QQRgPEQEPEEEwDxFBGEiLcUBIiXEoSIPBMEiDwv511+sCiciJBbWHDQCLNbeJDQCD5gKHNa6JDQCzAYP+CHMEidhbw0iNPZyJDQDoSTkAAOvuDx9EAABTiwWJiQ0Au/7///+oAXVnicGDyQHwD7ENc4kNAKgBdVZIYwVghw0Au/////9Ig/gJfzCLHUeIDQCNSwGJDT6IDQBIjQxASI0VQ4cNAEiJPMpIiXTKCIlcyhCDwAGJBSWHDQCLNSeJDQCD5gKHNR6JDQCD/ghzBInYW8NIjT0OiQ0A6Ls4AADr7g8fgAAAAABVQVdBVkFVQVRTUEg59w+HPgEAAEiJy0iFyQ+EMgEAAEmJ1kmJ90mJ/EiLBdiIDQBIhcB1H78CAAAA6NE8AABIiccxwPBID7E9u4gNAHQF6Cw+AACLBbaIDQCoAQ+FqwAAAInBg8kB8A+xDaGIDQCoAQ+FlgAAAIstd4cNAIP9B39jSInf6AaVDACDwAFIY/hIizVxiA0ASIk8JOjGjAwASYnFSIXAdHhMie9Iid5IixQk6FmUDABIYwU2hw0AjUgBiQ0thw0ASMHgBUiNDS6HDQBMiSQITIl8CAhMiXQIEEyJbAgYg/0ID5zDizUfiA0Ag+YChzUWiA0Ag/4IchBIjT0KiA0A6Kc3AADrAjHbidhIg8QIW0FcQV1BXkFfXcNIjTVYbXj/SI0NW6ev/kyNBbwur/9MjQ274Z7/vwMAAAC62AUAADHA6BPc///pVv///+gplAwAZg8fhAAAAAAAVUFWU4sFpocNAKgBD4WCAAAAicWDzQHwD7EtkYcNAKgBdXFEiwVqhg0ARYXAfmpMiw9NicJJ99pBtgFIjQV2hg0AuwEAAADrJA8fgAAAAABMOcNBD5LGSIPAIEmNLBpIg8UBSIPDAUiD/QF0L0yLWOhNOct32kiLaPBIOS530UyJH0iJLkiLcPhIiTJIiwBIiQHrCEUx9usXRTH2izUOhw0Ag+YChzUFhw0Ag/4IcwxBgOYBRInwW0FeXcNIjT3thg0A6Io2AADr5mYPH0QAAFVBV0FWQVVBVFNIgeyYBAAAZEiLBCUoAAAASImEJJAEAACF0g+IkRIAAEGJ1kiJ+0iJdCRISIsFnIYNAEiFwHUfvwIAAADolToAAEiJxzHA8EgPsT1/hg0AdAXo8DsAAEUx5EyHJX6GDQBNheR0CkiF23V46RMBAAC/HgAAAOgdoQwASInBSInGSMHmIEhjwUg9HzgAAHcNuB84AAAx0vfxicfrAjH/SIPHAUgPr/5Iwf8gSIs1HoYNAOh3igwASYnEZg/vwGYPfwBmx0AQAQBIjbggEAAAugAoAAAx9ugNkQwASIXbD4SgAAAAidjB6A+J2cHpCTHBidjB6BWJ2sHqAzHCMcqD4n9IjQSSSMHgBEk5nAQgEAAAdCVJOZwEKBAAAHQfSTmcBDAQAAB0HEk5nAQ4EAAAdVO5AwAAAOsQMcnrDLkBAAAA6wW5AgAAAEmNFARmQQ9vhARgEAAAZg92yWYP+sFmQQ9/hARgEAAAx4SKYBAAAAAAAABIi7TKQBAAAEiF9g+F8Q0AAE2NfCQSQcZEJBIATInnSIne6B4TAABIhcBMiXQkOHQ8SInFg3ggAEiJRCQQD4jdAAAAg30kAw+FnAIAAE2J/UyLfQhIi0UYTDn4D4aUAgAAMcBIiUQkKOlCBwAAZg/vwGYPf4QkwAAAAGYPf4QksAAAAGYPf4QkoAAAAGYPf4QkkAAAAEjHhCTQAAAAAAAAAEiNvCSQAAAA6IciAABIg7wkkAAAAAB0WGYP78BmD39EJGBmD39EJFBIjbwkkAAAAEiNVCRQSIne6OckAACEwHQvTIt0JFBMiffo9pAMAEiJxUiDxQFIgf0ADAAAD4NADwAATIn/TIn2SInq6FSQDADHRCQY/////zHt6cYJAABIi30AMfYxwOionwwAQYnFiUUghcAPiSUCAABIi2wkEEiLfQBIjTUECqr+6EWgDACFwA+E0wEAAEiLRQiBOH9FTEYPheYBAABIjT3gCar+MfYxwOhdnwwAg/j/D4TNAQAAQYnFSItEJBBIi0AISIlEJBhIjawkkAAAALoABAAASInvMfbozI4MALoABAAARInvSInu6CyfDABIPQAEAAAPhRoBAABIjbwkkAAAALoABAAASIt0JBjoeY4MAIXAD4X7AAAASI2sJJAAAAC6AAQAAEiJ7zH26HqODAC6AAQAAESJ70iJ7ujangwASD0ABAAAD4XIAAAASItEJBhIjbAABAAASI28JJAAAAC6AAQAAOggjgwAhcAPhaIAAABIjawkkAAAALoABAAASInvMfboIY4MALoABAAARInvSInu6IGeDABIPQAEAAB1c0iLRCQYSI2wAAgAAEiNvCSQAAAAugAEAADoy40MAIXAdVFIjawkkAAAALoABAAASInvMfbo0I0MALoABAAARInvSInu6DCeDABIPQAEAAB1IkiLdCQYSIHGAAwAAEiNvCSQAAAAugAEAADoeo0MAIXAdGREie/oDp4MAOtlMcBIiUQkKOm9BAAATIn5SCnBSIlMJCiLRWiD+AEPhXEEAABIi4WQAAAATAH4SDnYD4YnBAAASInoSIPAaOk+BAAASIs9E4ANAEiF/3QXMfYxwOiVnQwAQYnFSItEJBBEiWgg6wlIi0QkEESLaCBFhe0PiKUDAABmD+/AZg9/hCTAAAAAZg9/hCSwAAAAZg9/hCSgAAAAZg9/hCSQAAAARInvMfYx0ujhnQwASIP4/w+E9AIAAEUx/0mD/z93TE6NNDxJgcaQAAAAvUAAAABMKf1mLg8fhAAAAAAAkESJ70yJ9kiJ6ugSnQwASIXAeRPoSI4MAESLAEGD+AR03+mBAgAASQHHSIXAda5Jg/9BD4NDDQAASYP/QE2NfCQSSItsJBAPhbUCAACBvCSQAAAAf0VMRg+FpAIAAA+3hCSgAAAAiUUkRIt1IESJ9zH2MdLoOJ0MAEiD+P8PhGkLAABFhfYPiPAMAABFMf9Jg/8/d0NNjSwvSYPFKL1AAAAATCn9RIn3TInuSInq6G6cDABIhcB5E+ikjQwARIsAQYP4BHTf6fYKAABJAcdIhcBIi2wkEHW3SYP/QQ+DmgwAAEmD/0BNjXwkEg+FKgsAAA+3RWCJRCQohcAPhIQBAABIiVwkIA+3RV5IiUQkQEiLRUhIiUQkGEUx/zHASIlEJDBmD+/AZg9/hCSwAAAAZg9/hCSgAAAAZg9/hCSQAAAASMeEJMAAAAAAAAAASItEJBBEi3AgRIn3SIt0JBgx0uhMnAwASIP4/w+EEgwAAEWF9g+IBAwAADHbSIP7N3dBTI0sHEmBxZAAAAC9OAAAAEgp3USJ90yJ7kiJ6uiAmwwASIXAeRPotowMAESLAEGD+AR03+kvCwAASAHDSIXAdblIg/s5D4OxCwAASIP7OA+FMgsAAIO8JJAAAAABdW6LhCSUAAAA99CoBXVhSIN8JDABD4e/CwAASItMJDBIa8E4SIPBAUiJTCQwSIuMJMAAAABIi1QkEEiJjAKYAAAAZg9vhCSQAAAAZg9vjCSgAAAADyiUJLAAAAAPEZQCiAAAAPMPf0wCePMPf0QCaEiLRCRASAFEJBhMifiDwAFJicc7RCQoD4W4/v//SIN8JDAASItcJCBNjXwkEkiLbCQQD4X6+f//TItFAEiNNYBkeP9IjQ0hJq//Me2/AQAAALoqBQAA6ZEJAABIjTVhZHj/SI0NCH20/r8BAAAAuqkBAAAxwOgq0///TY18JBLrL+iOiwwAiwCJBCRIjTUxZHj/SI0Nrny0/r8BAAAAur0BAABFiehFMckxwOj00v//SItsJBDHRST/////TItFAEiNNfxjeP9IjQ2BAqb/Me3HRCQY/////78BAAAAugYFAABBuf////8xwOi10v//6eEDAABIi0QkEEiLKOgTiwwARIsISI01uGN4/0iNDTsEqv6/AQAAALoABQAASYnoMe0xwOh80v//x0QkGP/////poAMAAIuFoAAAAIP4AXUsSIuFyAAAAEwB+Eg52HYlSInoSAWgAAAASItMJChIK0gQSANICEiJTCQo6zKFwA+FiQkAAEyLRQBMiTwkSI01QGN4/0iNDZ1Omf6/AQAAALphBQAASYnZMcDoBtL//02J74tFIIlEJBhNjYwkIAwAAGYP78BmD3+EJMAAAABmD3+EJLAAAABmD3+EJKAAAABmD3+EJJAAAABmD3+EJIAAAABmD39EJHBmD39EJGBmD39EJFCLfSAPt3VkSItVUEyNhCSQAAAAuQIAAADoJBUAAITAD4RJAQAARIt1IESLrCS4AAAAScHlBkwDbVBEifdMie4x0ugrmQwASIP4/w+E5QAAAEiJXCQgRYX2D4jeCAAAMdtIi2wkEEiD+z93RkyNLBxJg8VQvUAAAABIKd1mDx9EAABEifdMie5IieroUpgMAEiFwHkQ6IiJDABEiwBBg/gEdN/rYUgBw0iFwEiLbCQQdbRIg/tBD4OBCAAASIP7QEiLXCQgTY18JBIPhZ8AAACLdSBJjYQkIAwAAEiJBCRMjUQkUEyNjCSQAAAASInfTIn6SItMJCjoFhYAAIP4AXRu6WcBAABIjTXEYXj/SI0Na3q0/r8BAAAAuqkBAAAxwOiN0P//SItcJCBNjXwkEkiLbCQQ6zno54gMAIsAiQQkSI01imF4/0iNDQd6tP6/AQAAALq9AQAARYnwTYnpMcDoTdD//0iLbCQQTY18JBKLfSAPt3VkSItVUEyNhCSQAAAAuQsAAABNjYwkIAwAAOiuEwAAhMAPhEIBAABEi3UgRIusJLgAAABJweUGTANtUESJ90yJ7jHS6LWXDABIg/j/D4TjAAAASIlcJCBFhfYPiGgHAAAx20iLRCQQSIP7P3dATI0sHEmDxVC9QAAAAEgp3USJ90yJ7kiJ6ujilgwASIXAeRDoGIgMAESLAEGD+AR03+tvSAHDSIXASItEJBB1ukiD+0APhxEHAABIi1wkIE2NfCQSD4WiAAAAi3AgSY2EJCAMAABIiQQkTI1EJFBMjYwkkAAAAEiJ30yJ+kiLTCQo6KoUAACD+AF0cYP4A3VsTIn/SY20JCAMAADoUAoAAOtaSI01RmB4/0iNDe14tP6/AQAAALqpAQAAMcDoD8///0iLXCQg6y/oc4cMAIsAiQQkSI01FmB4/0iNDZN4tP6/AQAAALq9AQAARYnwTYnpMcDo2c7//02NfCQSSItsJCiLBWl6DQCoAQ+F0QAAAInBg8kB8A+xDVR6DQCoAQ+FvAAAAIM9PXgNAAAPjpcAAABMifhIx4QkoAAAAAAAAABJid1IiZwkkAAAAEiJrCSYAAAAi0wkGImMJKAAAABMibwkqAAAAEjHhCSwAAAAAAwAAEmNhCQgDAAASImEJLgAAABIx4QkwAAAAAAEAABIjR3jdw0AMe1MjbQkkAAAAJBIiwNIiYQkyAAAAEyJ9/9T+EiDxQFIYwWsdw0ASIPDGEg5xXzbTInrizWieQ0Ag+YChzWZeQ0Ag/4ID4OaAgAAQYA/AA+EpgIAAEHGhCQRDAAAAEiF2w+EXwUAAInYwegPidnB6QkxwYnYwegVidrB6gMxwjHKg+J/SI0skkjB5QRJg7wsIBAAAABJjYQsYBAAAEGLjCxgEAAAD4QLAQAASYO8LCgQAAAAD4QMAQAAQYu0LGQQAAA5zonyD0LRSYO8LDAQAAAAD4QBAQAASYO8LDgQAAAAD4QFAQAATY0ELEmBwGQQAABIiVwkIEGLnCxoEAAAMf85zkAPk8dNjTQsRYuMLGwQAACDwQGDxgFEjVMBRY1ZATnTiQhBiTBFiVAERYmcLGwQAAAPQtq4AgAAAEgPQsdBOdlBvQMAAABMD0LoTIn7T4087kmBx0AQAABLi7zuQBAAAOgpfQwASItEJCBLiYTuIBAAAEiJ3+juhAwAg8ABSGPYSIs1WXgNAEiJ3+ivfAwASYnGSIXAD4RiAwAATIn3SY10JBJIidroPYQMAE2JN+m7AAAASY0ULEiBwiAQAABFMe3rN0mNFCxIgcIoEAAAQb0BAAAA6yRJjRQsSIHCMBAAAEG9AgAAAOsRSY0ULEiBwjgQAABBvQMAAACDwQGJCEGDhCxkEAAAAUGDhCxoEAAAAUGDhCxsEAAAAUiJGkyJ/+hDhAwAg8ABTIn7TGP4SIs1q3cNAEyJ/+gBfAwASYnGSIXAD4RLAgAATIn3SIneTIn66JGDDABJjQQsTo086EmBx0AQAABOibToQBAAAEyLdCQ4TAHlQseErWAQAAAAAAAASYs3RTH/SIX2dG5FhfZ0aUlj7kiLXCRISInfSInq6IOTDABBg8b/QbcBQoA8MwB0SEGD/gO4AwAAAEEPTMZIAd1IY9BIiddI99dIAe9IjTWW5O//6A2DDABCxgQzAOsZSI0973YNAOicJgAAQYA/AA+FWv3//0Ux/zHA8EwPsSXqdg0AD4TQAAAAu1gQAAAPH4AAAAAASYt8HOjobHsMAEmLfBzw6GJ7DABJi3wc+OhYewwASYs8HOhPewwASIPDUEiB+1g4AAB1zEGDPCQAdGkx2+sOkEiDwwFBiwQkSDnDdFdNi3QkCEhp69gAAABJizwu6BR7DABBi3wuIIX/eNXo8JEMAIXAecxJAe5Jg8Yg6BCDDABIicVmLg8fhAAAAAAADx8Ag30ABHWqQYs+6MKRDACFwHju65xBxwQkAAAAAEHGRCQRAEmLfCQI6Lp6DABMiefosnoMAGRIiwQlKAAAAEg7hCSQBAAAD4VCAgAARIn4SIHEmAQAAFtBXEFdQV5BX13DSI01SFt4/0iNDe9ztP6/AQAAALqpAQAAMcDoEcr//02NfCQSSItsJBDrL+hwggwAiwCJBCRIjTUTW3j/SI0NkHO0/r8BAAAAur0BAABFifBFMckxwOjWyf//TItFAEiNNepaeP9IjQ1EC+//Me2/AQAAALoMBQAAMcDoscn//8dEJBj/////6dX6//9IjTW8Wnj/SI0Nv5Sv/kyNBSAcr/9MjQ0fz57/vwMAAAC6MgEAADHA6HfJ///pg/3//0iNNYpaeP9IjQ2NlK/+TI0FHEaZ/kyNDYaTWv+/AwAAALp8BQAAMcDoRcn//0yLdCRQ6Ynw//9IjTVTWnj/SI0NVpSv/kyNBbcbr/9MjQ22zp7/vwMAAAC6MgEAADHA6A7J///pbPz//0iNNSFaeP9IjQ3IcrT+vwEAAAC6qQEAADHA6OrI//9Ii0QkEEyLAEiNNfpZeP9IjQ2uGVv/Me2/AQAAALoXBQAARYn5McDovsj//8dEJBj/////SItcJCBNjXwkEunY+f//SI01v1l4/0iNDcKTr/5MjQXDWXj/TI0NXRp2/78DAAAAulQFAAAxwOh6yP//6UX2///okIAMAOjbgAwAiwCJBCRIjTV+WXj/SI0N+3G0/r8BAAAAur0BAABFifBMi0wkGDHA6D/I///pUP///0iLbCQQTItFAEiNNUlZeP9IjQ1YJp//vwEAAAC6JAUAADHA6BLI//9Ii1wkIE2NfCQS6ZHu///ofn0MAGYuDx+EAAAAAAAPH0AAVUFWU4sFlnMNAKgBD4WCAAAAicWDzQHwD7EtgXMNAKgBdXFEiwVacg0ARYXAfmpMiw9NicJJ99pBtgFIjQVmcg0AuwEAAADrJA8fgAAAAABMOcNBD5LGSIPAIEmNLBpIg8UBSIPDAUiD/QF0L0yLWOhNOct32kiLaPBIOS530UyJH0iJLkiLcPhIiTJIiwBIiQHrCEUx9usXRTH2izX+cg0Ag+YChzX1cg0Ag/4IcwxBgOYBRInwW0FeXcNIjT3dcg0A6HoiAADr5mYPH0QAAFVBV0FWQVVBVFNQhf94XkmJ1kiF0nhWSYn3if1FMeRNOfRzRE+NLCdMifNMKeNmkInvTInuSIna6BOODABIhcB5HuhJfwwARIsAQYP4BHTg6yBmLg8fhAAAAAAADx9AAEkBxEiFwHW3TTn0divozn4MAEiNNcZXeP9IjQ1tcLT+vwEAAAC6qQEAADHA6I/G//9Jx8T/////TIngSIPECFtBXEFdQV5BX13DZg8fRAAAVUFXQVZBVUFUU1BJifdJif1AtQHrJ2YuDx+EAAAAAABBx0UAAAAAAEHGRREA9kQkBAG9AAAAAA+ENwEAAEGAfRAAD4QsAQAAQYB9EQB1HEHGRREBTInvSY21IAwAAOh9AQAAhMAPhAQBAABBi0UASYtdCDHJhcB+M4nC6wwPHwCDxgGJ8TnRfSONPAqJ/sHuHwH+0f5IY/5Iaf/YAAAATDl8OxB22onyOdF83TnBdCxIY8lIacnYAAAASItUCxBMOfoPhr0AAABMOXwLCHcNSY13AUg51g+GiwAAAIlsJASFwA+EOP///0Ux9g8fRAAATWnm2AAAAEqLPCPoxnUMAEKLfCMghf94R+iijAwAhcB5PkqNLCNIg8Ug6MF9DABIicNmLg8fhAAAAAAADx9AAIM7BHUbi30A6HOMDACFwHjvZi4PH4QAAAAAAA8fRAAASYPGAUGLRQBJOcYPhL/+//9Ji10I64lIActIidjrB0HGRRAAMcBIg8QIW0FcQV1BXkFfXcPoBn0MAGYPH0QAAEFWU1BIifNJif66AAQAAOjMOQAAhMB0J0iJ3+jwfAwAPf8LAAB/GD0ABAAAfRmDwAFIY9BMifdIid7oMYEMAEiDxAhbQV7D6LR8DAAPH0AAVUFXQVZBVUFUU0iB7JgAAABIifNJif5kSIsEJSgAAABIiYQkkAAAAA9XwA8phCSAAAAADylEJHAPKUQkYA8pRCRQDylEJEDoxIsMAEiNFc37nP9IjWwkQL5QAAAASInvicExwOiniQwADx+AAAAAAEiJ7zH2McDoNIsMAIXAeTnoe3wMAESLCEGD+QR04kiNNRpVeP9IjQ35FOr/Me1MjUQkQL8BAAAAutMDAAAxwOjcw///6S0HAABBicdMiXQkMEmJ2UiJXCQ4SIlcJBhMi2QkOEyLbCQYTTnldDNJg8EBTTnpD4cjBwAATIntTCnNTInPvgoAAABIiepMicvoPX0MAEiFwHQ4SYnc63MPHwC6AAQAAESJ/0yJ5uhQ/P//SIXAD46dBgAASYnFTQHl609mLg8fhAAAAAAADx9EAABMY+1MiedIid5Mieroz38MAE0B5UjB5SBIugAAAAAABAAASCnqSMH6IESJ/0yJ7uj8+///SIXAD45JBgAASQHFTInqTCniTInnvgoAAADorXwMAEiFwA+EKgYAAEmJwcYAAEk5xHNpTInJTCnhTIngMe1JuD8AAAA/AAAA6ypmkEiJ7kjB5gSNetCJ1YPlD4PFCYD6QQ9M70hj7UgJ9UiDwAFIg8H/dEgPvhCNctBAgP4KcsyNcr9AgP4ldyJAD7b2SQ+j8HK56xYPH4AAAAAAMe1MieBJuD8AAAA/AAAATDnIdhjp5AUAAA8fgAAAAABMichMOcgPh9EFAAAPhCEFAACAOC0PhRgFAABIg8ABTDnIc1xMiclIKcFFMfbrKZBMifZIweYEjXrQidOD4w+DwwmA+kEPTN9MY/NJCfZIg8ABSIPB/3Q4D74QjXLQQID+CnLMjXK/QID+JXcWQA+29kkPo/ByuesKDx+AAAAAAEUx9kw5yHYU6VAFAAAPHwBMichMOcgPh0EFAAAPhK0EAACAOCAPhaQEAABMiWwkGEiNUAFMOcoPg64EAABMiclIKcG+AQAAAA8fhAAAAAAAgDwwIHQaSIPGAUg58XXxSInOTInJ6w1mDx+EAAAAAABIjQwwSIP+BQ+CbQQAAEw5yQ+EZAQAAIA6cg+Fjv3//4B4A3gPhYT9//9Ig8EBTDnJc1ZMichIKchFMe3rKmaQTInuSMHmBI160InTg+MPg8MJgPpBD0zfTGPrSQn1SIPBAUiDwP90Jg++EY1y0ECA/gpyzI1yv0CA/iV3FEAPtvZJD6PwcrnrCEUx7esDTInJTDnJD4dTBAAATI1hAU05zHMrSPfRTAHJMcDrEA8fAIPAAUmDxAFIg8H/dA5BgDwkIHTsg/gBfurrA02JzIsFTGwNAKgBD4W4AAAAicGDyQHwD7ENN2wNAKgBD4WjAAAAiwUNaw0AhcAPjn0AAABIicFI99mzAb4BAAAASI0VFWsNAOsnZi4PH4QAAAAAAJBIOcYPksNIg8IgSI08MUiDxwFIg8YBSIP/AXQbSIt66Eg573fbTItC8E058HLSTItq+EyLIusGSInvTYnwizW9aw0Ag+YChzW0aw0Ag/4ID4NLAgAA9sMBdCDrMos1nmsNAIPmAoc1lWsNAIP+CA+DXAIAAE2J8EiJ7005zA+EC/z//0GAPCRbD4QA/P//SItcJDBIYwNIhcB0TEiNUP9Ii0sISGnS2AAAAEyNFBFIi2wREEw5xXYpvwIAAABIjTWrUHj/unAEAABIjQ0caKT+TInLTYnhMcBB/zJV6a4BAAAPhFwBAABIiXwkEEyJRCQgTIlMJCg7QwR1TkiNLABIg8UySGn92AAAAEiLNedqDQDoQG8MAEmJxkiLcwhIhfZ0HEhjQwRIadDYAAAATIn36Mt2DABIi3sI6GhvDABMiXMIiWsEiwPrBEyLcwiNSAGJC0iYSGno2AAAAA9XwEEPEUQuEEEPEQQuScdELiD/////QQ8RRC4oQQ8RRC44QQ8RRC5IQQ8RRC5YQQ8RRC5oQQ8RRC54QQ8RhC6IAAAAQQ8RhC6YAAAAQQ8RhC6oAAAAQQ8RhC64AAAAQQ8RhC7IAAAATInn6LV2DACDwAFIY9hIizUgag0ASInf6HZuDABIhcAPhP4AAABJjQwuSIPBIEiJTCQISInHTInmSInaSInD6Pl1DABJjQQuSIkYSItEJBBJiUQuCEiLRCQgSYlELhBNiWwuGEiLRCQIx0AE/////8cA/////0yLTCQo6Uv6//9JiypIOXwRCHUfSInvTInmTInLTYnG6NKFDABNifBJidmFwA+EIvr//78CAAAASI019054/7p5BAAASI0NbBCv/0yJy02J4THAVUFQ6Ly9//9JidlIg8QQ6e75//9IiXwkEEiNPVRpDQBNic5MicXo6xgAAEiLfCQQSYnoTYnx9sMBD4Sv/f//6b79//9IjT0paQ0ATInL6MMYAABJidnpjf3//78DAAAASI01fE54/7oyAQAASI0Neoiv/kyNBdsPr/9MjQ3awp7/SIlEJAgxwOg3vf//SItEJAjpxv7//0iNNUVOeP9IjQ0xDur/Me2/AQAAALruAwAA6zZIjTUpTnj/SI0NFQ7q/zHtvwEAAAC69wMAAOsaSI01DU54/0iNDcpmtP4x7b8BAAAAugMEAABNieAxwOjRvP//RYX/eQzrIEC1AUWF/3gYZpBEif/o+IMMAIXAeQroH3UMAIM4BHTqZEiLBCUoAAAASDuEJJAAAAB1GYnoSIHEmAAAAFtBXEFdQV5BX13D6J50DADo+XEMAGYPH4QAAAAAAFVBV0FWQVVBVFNIg+woSIlUJCBFMeSF9g+EjwEAAInNiftMiUQkEEyJTCQISY1BBEiJRCQYiXQkBOsVDx9EAABBAcSLdCQEQTn0D41aAQAAifBEKeBMY+hJweUGSYH9AAQAALgABAAATA9N6E1j/EnB5wZMA3wkIInfTIn+MdLorIMMAEiD+P8PhK8AAABBid6J30iLdCQITInq6LD0//9IicP2wz8Phc0AAABIgfs/BAAAD4cGAQAASInYSMHoBkiD+0BEifMPgnP///9Ig/gCuQEAAABID0PISIt0JBgx0mYuDx+EAAAAAAAPH0QAADkudBJIg8IBSIPGQEg50XXv6Tr///+J0EjB4AZIi0wkCA8QBAEPEEwBEA8QVAEgDxBcATBIi0QkEA8RWDAPEVAgDxFIEA8RAEG0Aetw6J5zDACLKEiD7AhIjTVATHj/SI0NvWS0/r8BAAAAur0BAABBidhNifkxwFXoArv//0iDxBBIx8P/////SI01D0x4/0iNDbZjpP5FMeS/AQAAALrxAQAATYnoTYn5McBqQFPozLr//0iDxBDrA0Ux5ESJ4EiDxChbQVxBXUFeQV9dw+jMcgwAZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iD7Ei7AQAAAE2FyQ+EOgMAAEmJ0on1SYtBIEmLcThIicJICfJIweogdA4x0kj39oXAfxHpEwMAADHS9/aFwA+OBwMAAEiJfCQwSIlEJBhIiUwkQEyJRCQoTIlUJBBMiUwkOE2LYRgxwEiJRCQgie9MieYx0ujcgQwASIP4/w+E3QIAAEiLRCQYg/gquyoAAAAPTNhFMf9FMe1FMfaJbCQMDx9EAACNBN0AAAAAjQRASGPQie9Ii7QkgAAAAOi08v//SInBSL6rqqqqqqqqqkj35kiJyEgPr8ZIwcgDSL6rqqqqqqqqCkg58A+DoAIAAEjB6gRIY8NIOcJMi1QkQA+PiwIAAEiD+RhzW0EB1UiLXCQYQTndD43VAAAATWPlSItEJDhMD69gOEwDYBhEKeuD+yq4KgAAAA9N2ItsJAyJ70yJ5jHS6AuBDABIg/j/D4VR////6QcCAABmLg8fhAAAAAAAZpBIg/oCuAEAAABID0PCSIuMJIAAAABIi2wkMOsiizlIiXwkIEG2AUmJ9w8fgAAAAABIg8EYSIPA/w+EZ////0iLeQhIhf906WaDeQYAdOIPtlkEgOMPgPsGdNZIi3EQTAHXSI0cN0g573cFSDnrdwpIOe91vEg563W3QfbGAXSdSIX2dZhNhf91p+uRQfbGAbsBAAAAD4RMAQAARIt0JCBIi0QkKEwDcBhEi2QkDESJ50yJ9jHS6DaADABIg/j/D4S+AAAARYXkD4hdAQAARTH/TItsJBBJgf//CwAAdz1LjRwvvQAMAABMKf1mDx9EAABEiedIid5IieroYn8MAEiFwHkQ6JhwDABEiwBBg/gEdN/rTkkBx0iFwHW6SYH/AQwAAA+DAgEAAE2F/w+ExgAAAEyJ7zH2TIn66KJxDAC7AwAAAEiFwA+FmgAAAEiLRCQQQcZEB/8AuwIAAADphQAAAEiNNedIeP9IjQ2OYbT+vwEAAAC6qQEAADHA6LC3///rL+gZcAwAiwCJBCRIjTW8SHj/SI0NOWG0/r8BAAAAur0BAABFieBNifExwOh/t///SMfA/////0iJBCRIjTWMSHj/SI0Ndk+x/rsBAAAAvwEAAAC68AIAAEWJ4E2J8THA6Eq3//+J2EiDxEhbQVxBXUFeQV9dwzHA673ooG8MAIsAiQQkSI01Q0h4/0iNDcBgtP6/AQAAALq9AQAAQYnoTYnhMcDoBrf//+ghbwwAzEFXQVZBVFNQSYnWSYn3SIn76JoAAABIjQVDTQ0ASIsASDsFwSQNAHQWSInfTIn+TInySIPECFtBXEFeQV//4EiNNaqh6/9IjQ3cga/+TI0F8Ud4/0yNDYkIdv+/AwAAALqtAAAASYnEMcDokbb//0yJ4Ou1Zi4PH4QAAAAAAGaQU0iJ+0iNBc1MDQBIiwhIOw1bJA0AdAVIizDrCOgPAAAASInGSInfW+nTAgAADx8AQVdBVlNIg+xwZEiLBCUoAAAASIlEJGhMjT2KTA0ASYsHSDsFGCQNAHUY6JFuDADHAAAAAAC/IQAAAOgRfgwASYkHSYsHSDsF9CMNAHRESYsHSIXAD4T4AAAAD1fADylEJFAPKUQkQA8pRCQwDylEJCBIx0QkYAAAAABJiwdIOwW8Iw0AD4R+AAAASYs36X4AAABIjT0FgFr/MfYxwOjOfAwAg/j/D4TVAAAAicMPV8APKUQkIEyNdCQgZg8fRAAAuhAAAACJ30yJ9uixfAwASIP4EHUQSIN8JCAhdeNIi0QkKEmJB4nf6KR8DABJiwdIOwVKIw0AD4VS////SccHAAAAAOlG////6PP+//9IicZIjVwkIEiJ3+izAQAAD1fADylEJBAPKQQkSI01Zr+t/0iNFVBIo/9JieBIid+5AgAAAOgJBwAAhMB0B0iLRCQQ6wdIjQVXAAAASI0NUEsNAEiJAUmLB2RIiwwlKAAAAEg7TCRodSZIg8RwW0FeQV/DSccHAAAAAEiNBSIAAABIjQ0bSw0ASIkBMcDryugvagwAZi4PH4QAAAAAAA8fRAAASIn+vzUBAAAx0jHJMcDpjXsMAGYuDx+EAAAAAAAPHwDpewYAAGYuDx+EAAAAAACQQVdBVlNIifNJif5IOzVOIg0AdDJIjQWtSg0ATIs4SIkYTIn3SIne6CQBAABIjQU9/f//SI0NlkoNAEiJAUyJ+FtBXkFfw0iNNROf6/9IjQ1Ff6/+TI0FcBKf/0yNDbbrnP+/AwAAALqGAAAAMcDo/bP//+ufZi4PH4QAAAAAAJDpqwcAAGYuDx+EAAAAAACQSIPsGGRIiwQlKAAAAEiJRCQQx0QkDAAAAABIjQUfSg0ASIsASI18JAwx9jHS/9CFwHUEi0QkDGRIiwwlKAAAAEg7TCQQdQVIg8QYw+gPaQwAzMzMzMzMzMzMzMzMzMzMQVZTUEiJ80mJ/kg7NV8hDQB0EkyJ90iJ3kiDxAhbQV7pOwAAAEiNNYCe6/9IjQ12fq/+TI0FYlyk/kyNDYVLsf6/AwAAALpVAAAAMcDoLrP//+u/Zi4PH4QAAAAAAGaQQVdBVkFVQVRTD1fADxFHMA8RRyAPEUcQDxEHSMdHQP////9IhfYPhM4BAACAPn8PhcUBAACAfgFFD4W7AQAAgH4CTA+FsQEAAIB+A0YPhacBAACAfgQCD4WdAQAAgH4FAQ+FkwEAAEiJN0QPt1Y4ZkWF0g+EZwEAAEnHwf////8x20UxwOsQSYnQSIPDAUEPt8JIOcNzNQ+3RjZIi04gSAHxSA+vw0iNFAGLBAiD+AJ01YP4AXXTSYP5/3XNTItKEEyJT0BED7dWOOu+SYP5/w+ECgEAAE2FwA+EAQEAAEwpzkmLSBBIixwxSIXbD4S1AAAASAHxSIPBEEUxwEyNLVTL7/9FMclFMdJFMdtFMfZFMf9FMeTrF0iJRzBJicBIixlIg8EQSIXbD4SOAAAASItB+EiNFDBIgfvv//9vfx1Ig8P8SIP7BnfVSWNcnQBMAev/40iJVyBJidTrwkiB+/D//290LUiB+/z//290LUiB+/3//291p0iJRzhJicHrnkiJVyhJidbrlUiJVwhJidfrjEiJVxBJidPrg0iJVxhJidLpd////0UxwEUxyUUx0kUx20Ux9kUx/0Ux5E2F5HQeTYX/dBlNhfZ0FE2F23QPTYXSdApNhcl0BU2FwHUaD1fADxFHMA8RRyAPEUcQDxEHSMdHQP////9bQVxBXUFeQV/DZi4PH4QAAAAAAGaQSItHIEiFwHQEi0AEwzHAw1VTUIn1SIn7SItHIEiFwHQdi0AEOeh+HEhjxUiNBEBIweADSANDCEiDxAhbXcMxwDnof+RIjTXxm+v/SI0N53uv/kyNBbYBW/9MjQ3jAer/vwMAAAC6YgAAADHA6J+w///rtWYuDx+EAAAAAAAPHwBVU1CJ9UiJ+0iLRyBIhcB0GItABDnofhdIY8VIAcBIA0MQSIPECFtdwzHAOeh/6UiNNYab6/9IjQ18e6/+TI0FSwFb/0yNDXgB6v+/AwAAALpnAAAAMcDoNLD//+u6ZpBBVlNQifNIiwcPt0g4OfF+Gg+3SDZIY9NID6/RSANAIEgB0EiDxAhbQV7DSYn+SI01J5vr/0iNDR17r/5MjQWTuq7+TI0NGQHq/78DAAAAumwAAAAxwOjVr///SYsG67FBVlNQSYn+ifNIOV8wdg9JA14oSInYSIPECFtBXsNIjTXXmuv/SI0NzXqv/kyNBe9Hsf5MjQ2VWbT+vwMAAAC6dAAAADHA6IWv///rwg8fAEFWU1BIifMPt0YGg8D/D7fAPf/+AAByBkiLQwjrFkmJ/kiLT0BIi0MISDnBcw5IKchJAwZIg8QIW0Few0iNNWma6/9IjQ1feq/+TI0F7Lmu/kyNDSoBdv+/AwAAALp9AAAAMcDoF6///0iLQwhJi05A67tmLg8fhAAAAAAADx8AQVZTUInzSYn+hfZ4Wkhjw0k5RjhyUUmLThgPt0EED7fQOdp9MotREIXSdCMPH0AAidBIjTQBD7dEAQQPt9A52n0Si1YQSInxhdJ15EiJ8Q+30OsDSInxMcA52kgPRMFIg8QIW0Few0iNNb6Z6/9IjQ20ea/+TI0FRt6l/0yNDbD/6f+/AwAAALqDAAAAMcDobK7//+uAZi4PH4QAAAAAAEiNRhTDZi4PH4QAAAAAAJBBVlNQSYn+ifNIOV8wdg9JA14oSInYSIPECFtBXsNIjTVXmev/SI0NTXmv/kyNBW9Gsf5MjQ0VWLT+vwMAAAC6lQAAADHA6AWu///rwg8fAFVBV0FWQVVBVFNIg+xITIlEJAhBic9JidRIifVIiftkSIsEJSgAAABIiUQkQA9XwA8pRCQgDylEJBBIx0QkMAAAAABIiXwkOEiNfCQQRTH2MfbomQIAAEiLQyBIhcB0BESLcARIOVwkOHUHRDl0JDB0aUyNbCQQZg8fhAAAAAAASIt8JBBIie7oU3UMAIXAdS9Ii3wkGEyJ5uhCdQwAhcB1HkiLRCQoD7ZABIPgD0Q5+HRJZi4PH4QAAAAAAA8fAEyJ774BAAAA6CMCAABIOVwkOHWsRDl0JDB1pTHAZEiLDCUoAAAASDtMJEB1LkiDxEhbQVxBXUFeQV9dw0iLRCQISIXAdBEPKEQkEA8oTCQgDxFIEA8RALAB68LoYGIMAFNIifsPV8APEUcQDxEHSMdHIAAAAABIiXcoMfborwEAAEiJ2FvDZi4PH4QAAAAAAEiJ+EiLTiBIhcl0BYtJBOsCMcmJSCBIiXAoww8fRAAASItHKEg7RigPlcGLRyA7RiAPlcAIyMNmDx+EAAAAAABIifjDZi4PH4QAAAAAAGaQU0iJ+74BAAAA6EIBAABIidhbw2YuDx+EAAAAAAAPHwBVQVdBVkFUU0iD7EBJidZIifNJif9kSIsEJSgAAABIiUQkOA9XwA8pRCQQDykEJEjHRCQgAAAAAEiJfCQoSInnMe0x9ujnAAAASYtHIEiFwHQDi2gETDl8JCh1BjlsJCB0YUmJ5GYuDx+EAAAAAACQSItMJBBIOdl3L0iLRCQYSANIEEg52XYhTYX2dFUPtkAEJPAPKAQkDyhMJBBBDxFOEEEPEQY8EHQ5TInnvgEAAADoegAAAEw5fCQodbM5bCQgda0xwGRIiwwlKAAAAEg7TCQ4dRFIg8RAW0FcQV5BX13DsAHr3+jVYAwADx9EAACJVyBIiXcoww8fhAAAAAAASIn4w2YuDx+EAAAAAABmkEiLRyhIO0YoD5TBi0cgO0YgD5TAIMjDZg8fhAAAAAAAVUFXQVZBVUFUU0iD7BiJ9UmJ/EyLdyhJiwZIhcB1BIXtdVRIhcAPhNwBAABJY0QkIEhj7UgBxUGJ70GJbCQgSYtGIEiFwHQei0gEQTnPfR1EOfl+XEiFwA+EkgAAAItABOmMAAAAMclFhf9440GJTCQg6ZEBAABIjTW+lev/SI0NtHWv/kyNBdi0rf9MjQ04/67/vwMAAAC6VQEAADHA6Gyq//9JiwZIhcB1gOlXAQAASI01hJXr/0iNDXp1r/5MjQVJ+1r/TI0Ndvvp/78DAAAAumIAAAAxwOgyqv//RYt8JCBJi0YgSIXAD4Vu////McBJi34ITI0EbQAAAABJAehEOfgPjg0BAABKjTTHSYteEEiF/w+EOgEAAEiF2w+EMQEAAESLLk05bjAPhmwBAABOjQzHSYPBBkyNFYv+rv9NA24oZkKDfMcGAHR4SWPHD7csQ4Hl/38AAEk5bjgPgoUBAABJi14YD7dDBGY56HMsi1MQhdJ0JQ8fhAAAAAAAidBIjQwDD7dEAwRmOehzCotREEiJy4XSdeZIictmOeh1Iw+3QwaDwP9mg/gCD4PWAQAARItTFE05VjAPhhoCAABNA1YoTYksJE2JVCQIQQ+3AYPA/w+3wD3//gAAcgdKi0THCOsYSYtOQEqLRMcISDnBD4NKAQAASCnISQMGSYlEJBBJiXQkGEiDxBhbQVxBXUFeQV9dw0iNNR6U6/9IjQ0UdK/+TInFTI0F4Pla/0yNDQ366f9Iifu/AwAAALpnAAAAMcDoxqj//0mJ6EiJ3+m1/v//SIl0JAhIjTXbk+v/SI0N0XOv/k2JxUyNBduT6/9MjQ1S/a7/SIn9vwMAAAC6YAEAADHA6IOo//9NiehIie9Ii3QkCOmH/v//SIl0JAhIjTWTk+v/SI0NiXOv/kyJRCQQTI0FpkCx/kyNDUxStP5Iif2/AwAAALp0AAAAMcDoOaj//0yLRCQQSInvSIt0JAjpSP7//0iJdCQISI01R5Pr/0iNDT1zr/5NicdMjQXM16X/TIlMJBBMjQ0x+en/SIn7vwMAAAC6gwAAADHA6Oqn//9MjRWe/K7/TItMJBBNifhIid9Ii3QkCOki/v//So0cx0iDwwhIifVIjTXokuv/SI0N3nKv/kyNBWuyrv5MjQ2p+XX/vwMAAAC6fQAAADHA6Jan//9Iie5IiwNJi05A6W/+//9IiXQkCEiNNaeS6/9IjQ2dcq/+TIlEJBBMjQXMP7H+TYnPTI0Nzi6j/0iJ/b8DAAAAunEBAAAxwOhKp///TYn5TItEJBBIie9Ii3QkCOnY/f//SIl0JAhIjTVVkuv/SI0NS3Kv/kyJRCQQTI0FaD+x/k2Jz0yNDQtRtP5Iif2/AwAAALqVAAAAMcBMidPo9ab//0mJ2k2J+UyLRCQQSInvSIt0JAjpjv3//8zMzMzMzMzMzMzMzMxIiwU5PQ0A8EgPsT0oPQ0Aw2YuDx+EAAAAAAAPH0QAADHAg/4BD5TAAcCJB8MPHwBTSIn7iwVWUg0APd0AAAB1IYsNTVINAGYPH4QAAAAAAIsDqAF0Co1R/4P5AYnRf/Bbw0iNPSdSDQDoUgAAAOvRSCn+SMH+B0iB/v///x+5////Hw9MzsHhA4XJdAu4EAAAAIP5CHUHw7gIAAAAw4nIw2YuDx+EAAAAAAAPH0QAAIn4g+D4SMHgBMNmDx9EAABTSIn7uXuTwmUxwPAPsQ90GkiNFWi/7/9Iid++AwAAADHJ6Imv//+FwHU36ACq//+D+AK46AMAALkBAAAAD03IiQ2OUQ0AuN0AAACHAz3SCKMFdQ5Iid++AQAAAFvpHq///1vDVUFXQVZBVUFUU1BIifvo+f7//4nFQPbFAXUiiemDyQGJ6PAPsQuJxUD2xQF1D0iDxAhbQVxBXUFeQV9dw0GJ7kHR7kGD5gFFMf9BvQEAAADo9wAAAEmJxIP9B3cxie6DzgiJ6PAPsTN0JonFQPbFAXUPielECemJ6PAPsQuJxesFg/0IcwhA9sUBdczroInuQf/HSInfRIn6RInx6Hut//9Iid/oY/7//4nF6JwAAABMKeBIwfgHSD3///8fuf///x8PTcHB4AOFwHQQQb0QAAAAg/gIdAtBicXrBkG9CAAAAED2xQF1EInpRAnpg8kBiejwD7ELicVBg80B64hVU1CJ9UiJ+zH26A+u//+D5fiD/Qh1B0iDxAhbXcOJ7kjB5gRIiwXrOg0ASInfSIPECFtd/+DMzMzMzMzMzMPMzMzMzMzMzMzMzMzMzMxQSIsFIFANAEiFwHQQSIsFFFANAEiFwHQE/9DrBehurv//SNH4WcNmDx+EAAAAAABQ6Gqu///yD1kFGhbv/1jDSIk94U8NAMPMzMzMzMzMzFCLBSFRDQA93QAAAHUJSI0Fy08NAFnDSI09ClENAEiNFQsAAAAx9uiEGAAA6+BmkFNIjR2oTw0ASInfMfboHv3//0i4AAAAAAEAAABIiQWtUA0Avx4AAADoI2oMAEiJBaRQDQAPKAWVCJb+DxEFnlANAMcFpFANAAAAAABIxwVhTw0AAAAAAEiNBVpPDQBINWrBfLNIiQVVTw0ASIkdVk8NAMcFXE8NAAAAAAAPV8APEQVaTw0ADxEFY08NAA8RBWxPDQAPEQV1Tw0ADxEFfk8NAA8RBYdPDQAPEQWQTw0ADxEFmU8NAA8RBaJPDQAPEQWrTw0ADxEFtE8NAA8RBb1PDQAPEQXGTw0ADxEFz08NAA8RBdhPDQBIjR0RUA0ASInfMfboN/z//0jHBRxRDQAAAAAAvx4AAADoQmkMAEiJBRNRDQAPKAW0B5b+DxEFDVENAMcFE1ENAAAAAABIxwXQTw0AAAAAAEiNBclPDQBINWrBfLNIiQXETw0ASIkdxU8NAMcFy08NAAAAAAAPV8APEQXJTw0ADxEF0k8NAA8RBdtPDQAPEQXkTw0ADxEF7U8NAA8RBfZPDQAPEQX/Tw0ADxEFCFANAA8RBRFQDQAPEQUaUA0ADxEFI1ANAA8RBSxQDQAPEQU1UA0ADxEFPlANAA8RBUdQDQBIjR14UA0ASInfMfboVvv//0i4AAAAAAIAAABIiQV9UQ0Avx4AAADoW2gMAEiJBXRRDQAPKAXNBpb+DxEFblENAMcFdFENAAAAAABIxwUxUA0AAAAAAEiNBSpQDQBINWrBfLNIiQUlUA0ASIkdJlANAMcFLFANAAAAAAAPV8APEQUqUA0ADxEFM1ANAA8RBTxQDQAPEQVFUA0ADxEFTlANAA8RBVdQDQAPEQVgUA0ADxEFaVANAA8RBXJQDQAPEQV7UA0ADxEFhFANAA8RBY1QDQAPEQWWUA0ADxEFn1ANAA8RBahQDQBbw2YuDx+EAAAAAAAPH0AAVVNQifVIifsx9uhh+v//x4MgAQAAAAAAAImrJAEAAL8eAAAA6GdnDABIiYMoAQAADygF2QWW/g8RgzABAADHg0ABAAAAAAAASI1DCEjHQwgAAAAASDVqwXyzSIlDEEiJWxjHQygAAAAAD1fADxFDMA8RQ0APEUNQDxFDYA8RQ3APEYOAAAAADxGDkAAAAA8Rg6AAAAAPEYOwAAAADxGDwAAAAA8Rg9AAAAAPEYPgAAAADxGD8AAAAA8RgwABAAAPEYMQAQAASIPECFtdww8fAFVTUIn9iwVdTQ0APd0AAAB1LkD2xQJ1Q0D2xQF1GYsFRE0NAEiNHUVNDQA93QAAAHRB6RcBAABIjR3iSw0A6zNIjT0hTQ0ASI0VIvz//zH26JsUAABA9sUCdL2LBQdNDQBIjR1QTg0APd0AAAAPhdsAAAC/SAEAAEiJ3ujWTwwASInDSInHMfboE/n//8eDIAEAAAAAAACJqyQBAAC/HgAAAOgZZgwASImDKAEAAA8oBYsElv4PEYMwAQAAx4NAAQAAAAAAAEiNQwhIx0MIAAAAAEg1asF8s0iJQxBIiVsYx0MoAAAAAA9XwA8RQzAPEUNADxFDUA8RQ2APEUNwDxGDgAAAAA8Rg5AAAAAPEYOgAAAADxGDsAAAAA8Rg8AAAAAPEYPQAAAADxGD4AAAAA8Rg/AAAAAPEYMAAQAADxGDEAEAAEiJ2EiDxAhbXcNIjT0TTA0ASI0VFPv//zH26I0TAADpC////w8fhAAAAAAAVUFXQVZBVUFUU0iB7BgBAABIiftkSIsEJSgAAABIiYQkEAEAAEiF/w+ESgQAAIsFxEsNAD3dAAAAD4VrBAAASI0FakoNAEg5ww+EKQQAAIsFo0sNAD3dAAAAD4VkBAAASI0FmUsNAEg5ww+ECAQAAA9XwA8pRCRwDylEJGAPKUQkUA8pRCRADylEJDAPKUQkIA8pRCQQDykEJEjHhCSAAAAAAAAAAEiJnCSIAAAA9oMkAQAAAkiJ33RuDymEJAABAAAPKYQk8AAAAA8phCTgAAAADymEJNAAAAAPKYQkwAAAAA8phCSwAAAADymEJKAAAAAPKYQkkAAAAEiNrCSQAAAASInv6OZlDABIjVQkCDH/SInu6OdlDACFwA+URCQBSIu8JIgAAACLB6gBD4UYAwAAicGDyQHwD7EPqAEPhQcDAACLqyABAACF7XRjSIu8JIgAAACLN4PmAoc3g/4ID4PvAgAAgHwkAQAPhKwCAABIjXQkCL8CAAAAMdLof2UMAIXAD4STAgAASI01ike0/kiNDUxLo/+/AwAAALotAQAAQYnAMcDoNZ3//+lsAgAATItjME2F5A+E8wEAAEyNNVZHtP5MjT2Vrk//6xAPHwBMi2MwTYXkD4TTAQAATYssJEmLRCQoSIlDMEyJ4Eg1asF8s0k5RCQID4VQAQAASTlcJBAPhXkBAABIi4soAQAATInoSAnISMHoIHRUTInoMdJI9/FIhdJ1U0yJ4EgJyEjB6CAPhIcAAABMieAx0kj38UiF0g+FhgAAAPaDJAEAAAIPhbkAAABMiedMie7ormQMAIXAD4XAAAAA6WH///+QRInoMdL38UiF0nStvwMAAABMifa6kgEAAEiNDXlnr/5MjQUwSqP/TI0NiO3p/zHA6Duc//9Ii4soAQAA6Xj///9mLg8fhAAAAAAADx9EAABEieAx0vfxSIXSD4R6////vwMAAABMifa6lAEAAEiNDSVnr/5MjQUY9ZD/TI0NRIfr/zHA6Oeb///2gyQBAAACD4RR////Zi4PH4QAAAAAAL8LAAAATInmTInqMcDovmIMAIXAD4Sm/v//6CFUDABEiwC/AwAAAEyJ9rqmAQAATIn5McDol5v//+mC/v//vwMAAABMifa6jgEAAEiNDadmr/5MjQVRSr7/TI0NDt3u/zHA6Gmb//9JOVwkEA+Eh/7//78DAAAATIn2upABAABIjQ1zZq/+TI0FkUSk/kyNDeMzsf4xwOg1m///6Vn+//9Ii7wkiAAAAIs3g+YChzeD/ggPg54AAACAfCQBAHQ3SI10JAi/AgAAADHS6CBjDACFwHQiSI01L0W0/kiNDfFIo/+/AwAAALotAQAAQYnAMcDo2pr//8YEJAFIid/oJEsMAIA8JAAPhMIAAACF7Q+UwGRIiwwlKAAAAEg7jCQQAQAAD4XYAAAASIHEGAEAAFtBXEFdQV5BX13D6OX0///p7/z//+jZ9f//gHwkAQAPhQz9///rtujH9f//gHwkAQAPhVn////rjkiNNZtEtP5IjQ2DZa/+TI0F5Ui+/0yNDX1DpP6/AwAAALqCAQAAMcDoO5r//+nG+///SI09R0cNAEiNFUj2//8x9ujBDgAA6Xv7//9IjT0tRw0ASI0VLvb//zH26KcOAADpgvv//0iNNTVEtP5IjQ0dZa/+TI0F8B6x/kyNDd/Jpf+/AwAAALomAQAAMcDo1Zn//+kM////6EtPDABmLg8fhAAAAAAAkEFXQVZBVFNIgez4AAAASYn3SYn+ZEiLBCUoAAAASImEJPAAAABIjV/gSInYSDWVPoNMSDlH6A+FKAIAAE05fvAPhVUCAABIixNJi7c4AQAASI1C2DHJSDnydhAxyQ8fAIPBAUjR6kg58nf1SMHoA0GLl0ABAABmLg8fhAAAAAAAadJtTsZBgcI5MAAAg8EB98IAAABAdOlBiZdAAQAATGPhTDngRA9C4EWF5A+OHAIAAEGD/B24HQAAAEEPTMRBiQYPV8APKYQk4AAAAA8phCTQAAAADymEJMAAAAAPKYQksAAAAA8phCSgAAAADymEJJAAAAAPKYQkgAAAAA8pRCRwDylEJGAPKUQkUA8pRCRADylEJDAPKUQkIA8pRCQQDykEJE2NRwhFi08oRYXJfkFMicpMicFB9sEBdCtJjVH/TInGZi4PH4QAAAAAAA8fAEiJ8UqLdM4gSIX2dAVIOd5y7kqJTMz4QYP5AQ+FrQAAAEE5wX0dSWPJDx+AAAAAAEyJBMxIg8EBQYlPKEGLBjnBfO2FwHQoMcAPH4AAAAAASIsMxEiLVMEoSYlUxghIiVzBKEiDwAFBiw5IOch14UiJ2Eg1asF8s0mJRuhIid/oTAgAAEiLPCToQwgAAGRIiwQlKAAAAEg7hCTwAAAAD4ULAQAASIHE+AAAAFtBXEFeQV/DZi4PH4QAAAAAAA8fAEiJDNRIg/8CD45T////SInXZi4PH4QAAAAAAA8fRAAASInOSItM+SBIhcl0BUg52XLuSIl0/PhIjVf+Dx9EAABIifFIi3TWKEiF9nSzSDnecu7rrEiNNY9BtP5IjQ13Yq/+TI0FO6Ku/kyNDWZe5f+/AwAAALrvAQAAMcDoL5f//005fvAPhKv9//9IjTVYQbT+SI0NQGKv/kyNBS5Fo/9MjQ0SHLH+vwMAAAC68QEAADHA6PiW///pef3//0iNNSZBtP5IjQ0OYq/+TI0Fxemu/0yNDcnprv+/AwAAALqUAAAAMcDoxpb//+my/f//6DxMDABmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIHsmAEAAGRIiwQlKAAAAEiJhCSQAQAASIX/D4TDBQAASYn3SIn9D1fADymEJHABAAAPKYQkYAEAAA8phCRQAQAADymEJEABAAAPKYQkMAEAAA8phCQgAQAADymEJBABAAAPKYQkAAEAAEjHhCSAAQAAAAAAAEiJtCSIAQAA9oYkAQAAAkiJ93RcDymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCAPKUQkEEiNXCQQSInf6PRdDABIjZQkCAEAADH/SIne6PJdDACFwA+UhCQBAQAASIu8JIgBAACLB6gBD4UjBQAAicGDyQHwD7EPqAEPhRIFAABMjXUgSIP94A+DIwUAAEmLnzABAABMjSwrSYPFH0059Q+CPQUAAEj320kh3UmNRdhIwegDSIlEJAhJjXcISYuPOAEAALgAAAAASTnNdhIxwEyJ6maQg8ABSNHqSDnKd/WDwAFIY9hIi0QkCEg52A9C2IXbD46+AgAAg/sduB0AAAAPTdhBO18ofmtJifZBizeD5gJBhzeD/ggPg4sCAABJi58oAQAASMHjBEmNRf9IjSwYTDntD4K0AgAASPfbSCHdQfaHJAEAAAIPhbYBAAAx/0iJ7roDAAAAuSIAAABBuP////9FMcnoOVsMAOm/AQAADx9AAI1D/0hj6EmJ9OsPDx9EAABNOSwkD4OSAgAATYnmQTlcJCB8e02LZO4oTYXkD4Rj////TIngSDVqwXyzSTlEJAgPhZEAAABNOXwkEA+FwgAAAEw59nS6TTn0D4bzAAAATQM2TTnmcqm/AwAAAEmJ9kiNNXQ+tP660QEAAEiNDVdfr/5MjQW7G6P/TI0N6iyx/jHA6BmU//9Mifbpcf///78DAAAASYn0SI01PD60/rrGAQAASI0NH1+v/kyNBYDynv9MjQ0lX6/+McDo4ZP//0yJ5ulN////vwMAAABIjTUHPrT+ussBAABIjQ3qXq/+TI0F+yaj/0yNDQ0leP8xwOisk///SY13CE05fCQQD4Q+////vwMAAABIjTXLPbT+uswBAABIjQ2uXq/+TI0F5xix/kyNDewkeP8xwOhwk///SY13CEw59g+FCf///+m+/v//vwMAAABIjTWMPbT+us4BAABIjQ1vXq/+TI0Fxxqj/0yNDUyzrP4xwOgxk///SY13COnX/v//Dx+EAAAAAABIxwQkAAAAAL8JAAAAuQMAAABBuCIAAAAx9kiJ6knHwf////8xwOj1WQwASInDSIP4/3Un6FdLDABEiwC/AwAAAEiNNRI9tP66OgIAAEiNDSpdWv8xwOjFkv//QYsHqAF1OYnBg8kB8EEPsQ+oAXUrSIkrSInYSDWVPoNMSIlDCEyJexBIg8MgSInfTIn+6M34//9MifbpHf3//0yJ/+jR7P//68tMif/oxe3//+lo/f//vwMAAABIifVIjTWZPLT+upQAAABIjQ18Xa/+TI0FM+Wu/0yNDTflrv8xwOg+kv//SInu6Qr9//+/AwAAAEiNNWQ8tP66tgEAAEiNDUddr/5MjQWQnK3/TI0NVxex/jHA6AmS///pGv3//w9XwA8phCTwAAAADymEJOAAAAAPKYQk0AAAAA8phCTAAAAADymEJLAAAAAPKYQkoAAAAA8phCSQAAAADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCAPKUQkEEiNVCQQSIn3TInm6I4EAABJi584AQAATAHrD4JuAQAASYsEJEg5w3cwS40MLEwp6EuJBCxIgfGVPoNMS4lMLAhPiXwsEE2JLCRLjTwsSIPHIEyJ/uiF9///TIngSDWVPoNMSYlEJAhNOXwkEA+FTgEAAEGDhyABAAABSIu8JIgBAACLN4PmAoc3g/4ID4ODAAAAgLwkAQEAAAB0OkiNtCQIAQAAvwIAAAAx0ugOWQwAhcB0IkiNNR07tP5IjQ3fPqP/vwMAAAC6LQEAAEGJwDHA6MiQ//9Jg8Qg6wNFMeRkSIsEJSgAAABIO4QkkAEAAA+F/AAAAEyJ4EiBxJgBAABbQVxBXUFeQV9dw+ji6v//6eT6///o1uv//4C8JAEBAAAAD4V0////66xIjTWnOrT+SI0Nj1uv/kyNBdiarf9MjQ2fFbH+vwMAAAC6tgEAADHA6EeQ///pq/r//0iNNXU6tP5IjQ1dW6/+TI0Fppqt/0yNDW0Vsf6/AwAAALq2AQAAMcDoFZD//+mR+v//SI01Qzq0/kiNDStbr/5MjQV0mq3/TI0NOxWx/r8DAAAAurYBAAAxwOjjj///6WD+//9IjTUROrT+SI0N+Vqv/kyNBfcUsf5MjQ195K7/vwMAAAC6VAIAADHA6LGP///pgP7//+gnRQwADx+AAAAAAEFXQVZBVFNIgez4AAAAZEiLBCUoAAAASImEJPAAAABIi3coSIX2D4SzAQAASIn7SIsHSI0MB0g58Q+FoAEAAEgDBkyLYxBIiQMPV8APEUYIDymEJOAAAAAPKYQk0AAAAA8phCTAAAAADymEJLAAAAAPKYQkoAAAAA8phCSQAAAADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCAPKUQkEA8pBCRNjXQkCEmJ50yJ90yJ+ujeAQAATIn3SIneTIn66NABAABIixNJi7QkOAEAAEiNQtgxyUg58nYVMckPH4QAAAAAAIPBAUjR6kg58nf1SMHoA0GLlCRAAQAAZg8fhAAAAAAAadJtTsZBgcI5MAAAg8EB98IAAABAdOlBiZQkQAEAAExj+Uw5+EQPQvhFhf8PjiIBAABBg/8duB0AAABBD0zHiUMgRYtEJChFhcB+NUyJxkyJ8UH2wAF0H0mNcP9MifKQSInRSotUwiBIhdJ0BUg52nLuSolMxPhBg/gBD4WNAAAAQTnAfR5JY8gPH4AAAAAATIk0zEiDwQFBiUwkKItDIDnBfOyFwHQnMcBmDx9EAABIiwzESItUwShIiVTDKEiJXMEoSIPAAYtLIEg5yHXhZEiLBCUoAAAASDuEJPAAAAAPhaAAAABIgcT4AAAAW0FcQV5BX8NmLg8fhAAAAAAAkEiJDPRIg/8CD45z////SIn3Zi4PH4QAAAAAAA8fRAAASInKSItM+SBIhcl0BUg52XLuSIlU/PhIjXf+Dx9EAABIidFIi1TyKEiF0nSzSDnacu7rrEiNNW83tP5IjQ1XWK/+TI0FDuCu/0yNDRLgrv+/AwAAALqUAAAAMcDoD43//+ms/v//6IVCDAAPH0QAAEFXQVZTSYnXSInzSYn+i1cghdJ+T/bCAXURSInRTInwg/oBD4XlAAAA6zVIjUr/TIn2Zi4PH4QAAAAAAA8fQABIifBIi3TWIEiF9nQFSDnecu5JiUTX+IP6AQ+FrgAAAEGLViCF0g+E6AAAAEmLB0iLQChIOdgPheMAAACDeyAAdC8xwGYuDx+EAAAAAABmkEmLDMdIOVzBKHUWSItUwyhIiVTBKEiDwAGLSyBIOch130GLTiCFyX4ySInISIPAAYPB/2YuDx+EAAAAAAAPHwCJykmDfNYoAHURQYlOIEiDwP+Dwf9Ig/gBf+VbQV5BX8NmLg8fhAAAAAAADx9EAABJiQTPSIP6Ag+OUv///0iJymYuDx+EAAAAAAAPH0QAAEiJxkiLRNAgSIXAdAVIOdhy7kmJdNf4SI1K/g8fRAAASInwSIt0zihIhfZ0s0g53nLu66wxwEg52A+EHf///0iNNdQ1tP5IjQ28Vq/+TI0FRkSq/kyNDUHjd/+/AwAAALq8AAAAMcDodIv//4N7IAAPhez+///pFv///8zMzMzMQVZTUEmJ1kiJ+7p7k8JlMcDwD7EXdBqJ8UiNFeCk7/9Iid++AwAAAOjTlP//hcB1JUH/1rjdAAAAhwM90gijBXUUSInfvgEAAABIg8QIW0Fe6XqU//9Ig8QIW0Few8zMSIPsOGRIiwQlKAAAAEiJRCQwSIk8JEiJdCQIiVQkEA9XwA8RRCQgx0QkKP/////HRCQYAwAAAIA/Xw+FGwEAAIB/AVoPhREBAADHRCQcAgAAAMdEJBQCAAAASInn6B4CAACDRCQU/4TAD4TsAAAASIsEJEhjTCQcRIoECEWEwA+EwgAAAEyNDAhIAcFIg8EBMfZEicdmLg8fhAAAAAAAkECA/y4PhYoAAABCikQOAYnCgOLfgMK/gPoaD5LCPF9BD5TCQQjSQYD6AXVESIPGAQ+2PDGJ+CTfBL9Ig8YBPBpy7kCA/1906ECA/y51sooEMQTQPApyH0WE0nQ9QIp8Mf/rnWYuDx+EAAAAAAAPHwAE0DwJdyNIg8YBZg8fRAAAD7Y8MY1H0EiDxgE8CnLx6Wz///9AhP90DkGA+EB1HItEJCiFwHgvi0QkIDtEJBAPnMGFwA+fwCDI6wIxwGRIiwwlKAAAAEg7TCQwD4V/AAAASIPEOMMx0g8fhAAAAAAAgDwRAEiNUgF19oXAebmF0n61i3QkEItMJCBBidAx/41BATnwfT5BD7YUOUiLdCQIiUQkIEhjwYgUBkiDxwGLdCQQi0wkIEk5+HXUOfEPjXT///9IY8FIi0wkCMYEAQDpY////4PGAYl0JCDpV////+iLPgwAZi4PH4QAAAAAAJCDfygAeAHDgD4AdBQx0maQgHwWAQBIjVIBdfXpsCcAADHS6aknAABmDx+EAAAAAACLTxSLVxiNQQGJRxSNQgGJRxgxwIH5/wAAAH8pgfr//wEAfyFMiwdIY0ccQYoUADoWdRZBilQAATpWAXUMg8ACiUccsAGJTxTDMcCJTxTDkFVBV0FWU0iD7BhIiftkSIsEJSgAAABIiUQkEIt3FItXGI1OAYlPFI1CAYlHGDHAgf7/AAAAD4+4BQAAgfr//wEAD4+sBQAASInf6NEFAACEwHQSSInf6HUIAACLSxSwAemOBQAAi3MUi1MYjU4BjUIBiUMYMcCB/v8AAAAPj24FAACB+v//AQAPj2IFAACLQySJRCQISItDHEiJBCREi3MojX4CiXsUjUICiUMYgf7+AAAAf3SB+v7/AQB/bEiLK0hjcxyAfDUAVHVeTI1GAUSJQxyJexSNQgOJQxiB+v3/AQB+B7gBAAIA6z5CilQFAIDCuID6DncxD7bSvwNYAABID6PXcyODxgKJcxyJSxRIid/ouRkAAInBsAGEyQ+FygQAAItLFItDGEyNexyLVCQIQYlXCEiLFCRJiRdEiXMojVEBiVMUjVABiVMYgfn/AAAAf1E9//8BAH9KSIsTSGNDHIA8AlR1PYB8AgFjdTaDwAKJQxyJSxRIid/oUEIAAITAdCRIid/oREIAAITAdBhIid/oaP7//4nBsAGEyXQI6UgEAACJSxSLRCQIQYlHCEiLBCRJiQdEiXMoi0MUi3MYjVABiVMUjU4BiUsYPf8AAAB/QoH+//8BAH86SIs7SGNzHIA8N0d1LYB8NwFWdSaDxgKJcxyJQxRIid/oHwQAAInBsAGEyQ+F4AMAAItDFItLGI1QAYt0JAhBiXcISIs0JEmJN0SJcyiJUxSNUQGJUxg9/wAAAH8/gfn//wEAfzdIixNIY0scgDwKVHUqg8EBiUsciUMUSInf6HFBAACEwHQYSInf6JX9//+JwbABhMl0COl1AwAAiUMUi0QkCEGJRwhIiwQkSYkHRIlzKItDFItLGI1QAYlTFI1RAYlTGD3/AAAAD489AQAAgfn//wEAD48xAQAASIsTSGNLHIA8ClQPhSABAACAfAoBQw+FFQEAAIPBAolLHIlDFEiJ3+jsFwAAhMAPhP8AAACLQxSLaxiNTQGJSxg9/wAAAA+P5QAAAIH9//8BAA+P2QAAAESNQAGNSAKJSxSNTQKJSxhMiwtEi1McPf4AAAB/GoH9/v8BAH8SSWPKQYA8CW51CEGDwgFEiVMcRIlDFElj0kGKDBGEyQ+EjgAAAIDB0ID5CQ+HggAAAEqNNApIg8YBMf8PthZIg8f/hNJ0DIDC0EiDxgGA+gpy6UiF/3RcRInWSCn+iXMcRIlDFI1NA4lLGIH9/f8BAH9BSGPOQYA8CV91N0Ep+kGDwgFEiVMciUMUgGMrf0iJ3+gFFwAAhMB0HEGB5gAAAIC4////fyNDKEEJxrAB6QECAACJQxSLRCQIQYlHCEiLBCRJiQdEiXMoi0MUi3sYjUgBiUsUjVcBiVMYPf8AAAB/cIH///8BAH9oSIsrSGNzHIB8NQBUdVpMjU4BRIlLHIlLFESNRwJEiUMYugEAAgCB//7/AQB/OkKKVA0AgPpKdAWA+kZ1KIPGAolzHIlDFEiJ3+hjFgAAicGwAYTJD4V0AQAAi0MUi1MYjUgB6wNEicKLdCQIQYl3CEiLNCRJiTdEiXMoiUsUjXIBiXMYPf8AAAB/QoH6//8BAH86SIs7SGNTHIA8F0d1LYB8FwFSdSaDwgKJUxyJQxRIid/oSQEAAInBsAGEyQ+FCgEAAItDFItzGI1IAYtUJAhBiVcISIsUJEmJF0SJcyiJSxSNVgGJUxg9/wAAAH9Cgf7//wEAfzpIiztIY3McgDw3R3UtgHw3AUF1JoPGAolzHIlDFEiJ3+jE+v//icGwAYTJD4WlAAAAi0MUi1MYjUgBi3QkCEGJdwhIizQkSYk3RIlzKIlLFI1yAYlzGD3/AAAAf2GB+v//AQB/WUiLO0hjcxyAPDdUdUxIjW4BiWsciUsUjUoCiUsYgfr+/wEAfzSKDC+A+XZ0BYD5aHUng8YCiXMciUMUSInf6BE+AACEwHQVSInf6DX6//+JwbABhMl0BesYiUMUi0QkCEGJRwhIiwQkSYkHMcBEiXMoi0sUg8H/g8H/iUsUZEiLDCUoAAAASDtMJBB1C0iDxBhbQV5BX13D6Oc3DAAPH4AAAAAAVVNIg+wYSIn7ZEiLBCUoAAAASIlEJBCLdxSLVxiNTgGNQgGJRxgxwIH+/wAAAA+PUwIAAIH6//8BAA+PRwIAAI1OAo1CAoH+/gAAAA+PIQEAAIH6/v8BAA+PFQEAAItDJIlEJAhIi0McSIkEJItrKI1GA4lDFI1CA4lDGIH+/QAAAA+P1gAAAIH6/f8BAA+PygAAAEiLM0hjUxyAPBZOD4W5AAAAg8IBiVMciUsUiegl//8AgIlDKEiJ3+hwCAAAi0MUi0sYjVABiVMUjVEBiVMYPf8AAAB/IoH5//8BAH8aSIsTSGNLHIoUCoD6UnQFgPpPdQaDwQGJSxyJQxRIid/oGgkAAITAdE6J6CUAAP9/uf//AIAjSygJwYlLKItLFItTGI1BAYlDFI1CAYlDGIH5/wAAAH8mgfr//wEAfx5IizNIY1McgDwWRXURg8IBiVMc6cMAAACLSxSLQxhIjVMci3QkCIlyCEiLNCRIiTKJayiNUAGJUxiB+QABAAAPj64AAAA9//8BAA+PowAAAA8QQxwPKQQkjVEBiVMUjVACiVMYgfn/AAAAf3Y9/v8BAH9vSIsTSGNDHIA8Alp1YoPAAYlDHIlLFEiJ3+gP+P//hMB0UItLFItDGI1RAYlTFI1QAYlTGIH5/wAAAH8zPf//AQB/LEiLE0hjQxyAPAJFdR+DwAGJQxyJSxRIid/oXDIAAITAdA2LSxSDwf+wAetliUsUSI1DHA8oBCQPEQCLSxSDwf+JSxQPEEMcDykEJEiJ3zH26GUBAACEwHQQSInf6BkEAACJwbABhMl1JUiNQxwPKAQkDxEASInf6G4FAACEwHQMSInf6PIDAACwAesCMcCLSxSDwf+JSxRkSIsMJSgAAABIO0wkEHUHSIPEGFtdw+g3NQwADx+AAAAAAFVBVlNIg+wgSIn7ZEiLBCUoAAAASIlEJBiLVxSLTxiNQgGJRxSNcQGJdxhFMfaB+v8AAAAPj5YAAACB+f//AQAPj4oAAACLQySJRCQQSItDHEiJRCQIi2soiegl////f4lDKEiJ3+iVEQAAQYnGhMB0RWYuDx+EAAAAAAAPH0AASInf6HgRAACEwHX0geUAAACAuP///38jQygJ6IlDKHksSI01fNDp/0iJ37oCAAAA6MsdAADrFkiNQxyLTCQQiUgISItMJAhIiQiJayiLQxSDwP+JQxRkSIsEJSgAAABIO0QkGHUMRInwSIPEIFtBXl3D6Dk0DABmDx+EAAAAAABVQVdBVkFUU0iD7CBIiftkSIsEJSgAAABIiUQkGItPFIt/GESNUQFEiVMUjUcBiUMYMe2B+f8AAAAPj08CAACB////AQAPj0MCAABEjXkCRIl7FI1HAolDGIH5/gAAAH9Mgf/+/wEAf0RIixNIY0McgDwCU3U3gHwCAV91MIPAAolDHESJUxRAtQGDeygAD4n6AQAASI01DEha/0iJ37oBAAAA6NgcAADp4QEAAESNZwMPEEMcDykEJESJexREiWMYgfn+AAAAD4+kAAAAgf/9/wEAD4+YAAAATIsDTGNLHEOAPAhTD4WGAAAASYPBAUSJSxxEiXsURI1nBESJYxiB//z/AQB/akOKFAiE0nRiTYnLTQHDTInY6xJmDx9EAAAPtlABSIPAAYTSdBGNatBAgP0KcuuAwr+A+hl240w52HQvRCnYRAHIiUMcRIl7FESNZwVEiWMYgf/7/wEAfxJIY9BBgDwQX3UIg8AB6Q////9MjXMcDygEJEEPEQZEiXsUQY1EJAGJQxiB+f4AAAB/TkGB/P//AQB/RUiLA0hjSxyAPAhTdThIjVEBiVMcRIlTFIpECAEEnzwTdydIjS013wwAD7bASI0Np5bv/0hjBIFIAcj/4EiNLTPfDADrQ0SJUxQPKAQkQQ8RBjHt6ZwAAABIjS0v3wwA6ydIjS1u3wwA6x5IjS013wwA6xVIjS1E3wwA6wxAhPZ0yEiNLb7eDACDeygAeRRIjTXtR6/+SInfugMAAADoRBsAAEiLRQiAOAB0QoN7KAB5PEiNNRW0nP9Iid+6AgAAAOghGwAAg3soAHkiSIt1CIA+AHQPMdKAfBYBAEiNUgF19esCMdJIid/o+RoAAEGDBgFAtQGDQxT/ZEiLBCUoAAAASDtEJBh1D4noSIPEIFtBXEFeQV9dw+h6MQwAZi4PH4QAAAAAAFVTSIPsGEiJ+2RIiwQlKAAAAEiJRCQQi1cUi08YjUIBjXEBiXcYMe2B+v8AAAAPjwoBAACB+f//AQAPj/4AAACLcySJdCQISItzHEiJNCSLayiJ7oHm////f4lzKI1yAolzFI1xAolzGIH6/gAAAA+PrAAAAIH5/v8BAA+PoAAAAEiLE0hjSxyAPApJD4WPAAAAg8EBiUsciUMUSInf6F0wAACEwA+EeQAAAA8fRAAASInf6EgwAACEwHX0i0MUi0sYjVABiVMUjVEBiVMYPf8AAAB/TIH5//8BAH9ESIsTSGNLHIA8CkV1N4PBAYlLHIlDFLj///9/I0MogeUAAACACeiJQyhAtQF5MEiNNceGpv9Iid+6AgAAAOihGQAA6xqJQxRIjUMci0wkCIlICEiLDCRIiQiJaygx7YtDFIPA/4lDFGRIiwQlKAAAAEg7RCQQdQmJ6EiDxBhbXcPoDjAMAGYuDx+EAAAAAAAPH0AAU0iD7CBIiftkSIsEJSgAAABIiUQkGItXFItPGI1CAYlHFI1BAYlHGDHAgfr/AAAAD4+iAAAAgfn//wEAD4+WAAAASInf6AYzAACJwbABhMkPhYIAAAAPEEMcDykEJItDFItLGI1QAYlTFI1RAYlTGD3/AAAAf1GB+f//AQB/SUiLE0hjSxyAPApTdTyAfAoBdHU1g8ECiUsciUMUg3soAHkUSI01sbvu/0iJ37oFAAAA6JoYAABIid/okjIAAInBsAGEyXQF6xCJQxRIjUMcDygEJA8RADHAg0MU/2RIiwwlKAAAAEg7TCQYdQZIg8QgW8PoCS8MAGYPH4QAAAAAAItPFItXGI1BAYlHFI1CAYlHGDHAgfn/AAAAfx2B+v//AQB/FUiLF0hjRxxAODQCdQyDwAGJRxywAYlPFMMxwIlPFMNmLg8fhAAAAAAADx8Ai08Ui1cYjUIBiUcYMcCB+f8AAAAPj8UAAACB+v//AQAPj7kAAABEjUkCRIlPFI1CAolHGEUxwLgAAAAAgfn+AAAAfyq4AAAAAIH6/v8BAH8dSIsHSGN3HIA8MHK4AAAAAHULg8YBiXccuAEAAACNcgNEiU8UiXcYgfn+AAAAfyKB+v3/AQB/GkyLF0hjdxxBgDwyVnUMg8YBiXccQbgBAAAAQQHAjXIEMcBEiU8UiXcYgfn+AAAAfyCB+vz/AQB/GEiLN0hjVxyAPBZLdQuDwgGJVxy4/////0E5wA+VwIlPFMNmLg8fhAAAAAAADx8AVUFWU0iJ+4tPFItHGI1RAYlXFI1QAYlXGEUx9oH5/wAAAA+PHQEAAD3//wEAD48SAQAAi0MoMe1MjTW4r5z/kIXAeRkBwD0AAAIAfBBIid9Mifa6AgAAAOizFgAASInf6GsBAACEwHVnSInfvgEAAADoGvn//4TAdVZIid/oPv3//4TAdUqLQxSLSxiNUAGJUxSNUQGJUxg9/wAAAH9dgfn//wEAf1VIixNIY0scgDwKTXVIg8EBiUsciUMUSInf6NsCAACEwHQ2Dx+AAAAAAItDKEC1AakAAABAD4Vf////jYgAAAEAgeEAAP9/Jf//AIAJyIlDKOlE////iUMUi0MohcB5HwHAPQAAAgB8FotDIIP4AnwOg8D+iUMgSItLCMYEAQBBtgFA9sUBdBdIid/oGvv//4TAdAtIid/ovv7//0GJxoNDFP9EifBbQV5dw2YuDx+EAAAAAAAPH0QAAItPFItXGI1BAYlHFI1CAYlHGDHAgfn/AAAAfzWB+v//AQB/LUiLB0xjRxxCihQAhNJ0HIoGhMB0FkiDxgEPHwA4wnQRD7YGSIPGAYTAdfExwIlPFMNBg8ABRIlHHLABiU8Uw2YuDx+EAAAAAAAPHwBVU0iD7BhIiftkSIsEJSgAAABIiUQkEIt/FItLGI1HAYlDFI1RAYlTGDHtgf//AAAAD4+7AAAAgfn//wEAD4+vAAAARI1PAkSJSxSNUQKJUxiB//4AAAB/RIH5/v8BAH88SIsTSGNzHIA8MlR1L4B8MgFfdSiDxgKJcxyJQxRAtQGDeygAeWtIjTXZP1r/SInfugEAAADopRQAAOtVjVEDDxBDHA8pBCREiUsUiVMYgf/+AAAAfyuB+f3/AQB/I0iLM0hjaxyAPC5UdRZMjUUBRIlDHI1RBIlTGIH5/P8BAH4xSI1LHIlDFA8oBCQPEQEx7YNDFP9kSIsEJSgAAABIO0QkEA+FswAAAInoSIPEGFtdw41XA4lTFI1RBYlTGIH//QAAAH8Ygfn8/wEAdBBCgDwGbnUJg8UCiWscQYnoRIlLFElj+IoUPoTSdJWAwtCA+gl3jUiNLDdIg8UBMf+QD7ZVAEiDx/+E0nQMgMLQSIPFAYD6CnLoSIX/D4Rh////RInFSCn9iWscRIlLFI1RBolTGIH5+v8BAA+PQv///0hjzYA8Dl8PhTX///9BKfhBg8ABRIlDHOm+/v//6C4qDABmLg8fhAAAAAAADx9AAFVBV0FWQVVBVFNIg+w4SIn7ZEiLBCUoAAAASIlEJDCLTxSLdxhEjWkBjUYBiUcYMe2B+f8AAAAPj2IEAACB/v//AQAPj1YEAACLQySJRCQISItDHEiJBCREi3soRI1hAkSJYxREjU4CRIlLGIH5/gAAAA+P+QEAAIH+/v8BAA+P7QEAAEyLE0hjaxxBgDwqVQ+F2wEAAEGAfCoBdA+FzwEAAEyNXQJEiVscQbkCAAIAgf79/wEAD4+1AQAAjUEDiUMURI1OBESJSxhFMfaB+f0AAAB/IIH+/f8BAHQYQ4A8Gm51DoPFA4lrHEG2AUGJ6+sDRTH2RYnYRIljFEljw0GKFAKE0nRsjWrQQID9CnNjTo0cEEmDwwEx7THADx9AAEiNBIAPttJIjQRCSIPA0EEPthQrSIPFAYTSdAmNetBAgP8KcttIhe10KUSJ90GJxkH33kGNFCiJUxxAhP9ED0TwQYH+/f//fw+PAwEAAEkB6OsGQb7/////RIljFESNTgVEiUsYgf77/wEAD4/gAAAASWPAQYA8Al8PhdIAAABBg8ABRIlDHESJaxRFhf8PickCAABIjTV2BHj/SInfug4AAADoqBEAAIN7KAAPV8APKUQkEMdEJCAAAAAAD4mbAgAAQYPGAkyNRCQjMcC6zczMzEiNdCQQRIn3SA+v+kjB7yONLD+NbK0ARInxKemAyTBJjSwAiEwEI0iDwP9IOfV2CUGD/glBif53zInB99mFyQ+OlwIAAEiNSAFIY1MgjXIBi3sQOf4PjXsCAAAPtnwEJEiLawiJcyBAiHwVAEiDwQFIg8ABSIP5AXXP6V0CAABIjWsci0QkCIlFCEiLBCRIiUUAQY1BAUSJYxSJQxiB+f4AAAAPj+cBAABBgfn//wEAD4/aAQAASIsLSGNDHIA8AVUPhckBAACAfAEBbA+FvgEAAIPAAolDHESJaxREifgl////f4lDKEiJ3+gPBAAAhMAPhJ0BAAAPH4AAAAAASInf6PgDAACEwHX0RIn4JQAAAIC5////fyNLKAnBiUsoRItrFItLGEWNXQFEiVsUjUEBiUMYQYH9/wAAAA+PTwEAAIH5//8BAA+PQwEAAEyLE0hjQxxBgDwCRQ+FMQEAAEiNeAGJexyNUQKJUxiB+f//AQB8DMdDGAIAAgDpEAEAAEGNVQKJUxSNUQOJUxhFMcBBgf3+AAAAfx+B+f7/AQB0F0GAPDpudQ2DwAKJQxxBsAGJx+sDRTHAQYn5RIlbFEhjx0GKNAJAhPZ0ZY1W0ID6CnNdTo00EEmDxgEx/zHASI0EgEAPtvZIjQRGSIPA0EEPtjQ+SIPHAUCE9nQIjVbQgPoKctpIhf90JkGJxkH33kGNFDmJUxxFhMBED0TwRIlrFEGB/v3//39/aUkB+esGQb7/////RIlbFI1BBIlDGIH5/P8BAH9ISWPBQYA8Al91PkGDwQFEiUscRIlrFEiNNXCQrP5Iid/oQef//0GDxgJIid9EifbokgEAAEiNNf/Hd/9Iid/oI+f//0C1AesZRIlrFItEJAiJRQhIiwQkSIlFAESJeygx7USLaxRBg8X/RIlrFGRIiwQlKAAAAEg7RCQwdUeJ6EiDxDhbQVxBXUFeQV9dw4PHAYl7IEhjQyA7QxB9CEiLSwjGBAEAg3soAEC1AXmzSI01hcd3/0iJ37oBAAAA6HQOAADrnegdJQwAZi4PH4QAAAAAAA8fAFOLVxSLTxhEjVoBjUEBiUcYMcCB+v8AAAAPj78AAACB+f//AQAPj7MAAACNQgKJRxSNQQKJRxhFMcBMixdEi08cgfr+AAAAfyKB+f7/AQB/GkljwUGAPAJudQ1Bg8EBRIlPHEGwAesDRTHARIlfFEljyUGKFAoxwITSdGKNWtCA+wl3WkkBykmDwgExwDHJkEiNDIkPttJIjQxKSIPB0EEPthQCSIPAAYTSdAiNWtCA+wpy3EiJykj32kWEwEgPRNFIhcB0FkEBwUSJTxywAUiF9nQKiRZEi18U6wIxwEGDw/9EiV8UW8MPH4QAAAAAAEiD7ChkSIsEJSgAAABIiUQkIA9XwA8pBCTHRCQQAAAAAIN/KAAPiZ8AAABMjUQkEzHAQbnNzMzMSYniDx9EAACJ8kkPr9FIweojjQwSRI0ciYnxRCnZgMkwTY0cAIhMBBNIg8D/TTnTdgeD/gmJ1nfPicH32YXJfkBIjUgBDx8ASGNXII1yAUSLRxBEOcZ9IUQPtkQEFEyLTwiJdyBFiAQRSIPBAUiDwAFIg/kBddHrCEGDwAFEiUcgSGNHIDtHEH0ISItPCMYEAQBkSIsEJSgAAABIO0QkIHUFSIPEKMPoPCMMAGYuDx+EAAAAAABmkFVBV0FWQVVBVFNIg+w4ZEiLBCUoAAAASIlEJDBMjXcUi1cUi08YjUIBiUcUjXEBiXcYMe2B+v8AAAAPj5sAAACB+f//AQAPj48AAABJif1MjX8cDxBHHA8pBCToIPT//4TAdVtNjWUYDygEJEEPEQdBiwaNSAFBiQ5BizQkjVYBQYkUJD3/AAAAf3uB/v//AQB/c0mLfQBJY1UcihwXgMO9gPsPd2APtvu9EbAAAEgPo/1zUoPCAUGJVRxBiUUUTInv6Dn///9AtQGEwHUKDygEJEEPEQcx7UGLBoPA/0GJBmRIiwQlKAAAAEg7RCQwD4VNCAAAiehIg8Q4W0FcQV1BXkFfXcONVgIPKAQkQQ8RB0GJDkGJFCQ9/wAAAH9Bgf7+/wEAfzlJi30ASWN1HIA8N0R1K4B8NwFwdSSDxgJBiXUcQYlFFEyJ7+ix/v//QLUBhMB1gkGLBkGLFCSNSAEPKAQkQQ8RB0GJDo1KAUGJDCQ9/wAAAH9Cgfr//wEAfzpJi1UASWNNHIA8ClV1LIPBAUGJTRxBiUUUTInv6K4HAACEwHQYTInv6FL+//9AtQGEwA+FH////+sDQYkGDygEJEEPEQdBiz5EjU8BRYkOQYsMJI1xAUGJNCSB//8AAAAPj04BAACB+f//AQAPj0IBAABEjUcCSI0N3Hau/kiNFTPGDADrH2YPH4QAAAAAAEWJDonuSItKEEiDwhhIhckPhKwAAACAeQEAdESAeQIAdeONbgFFiQZBiSwkgf/+AAAAf8yB/v//AQB/xEmLXQBJY3UcD7YEMzoBdbQPtkQzATpBAXWq6fwBAAAPH0QAAI1uAQ+2CUWJBkGJLCSB//4AAAB/i4H+//8BAH+DSYtdAEljdRw4DDMPhXL///+DxgFBiXUcRYlNFEGDfSgAD4nQBQAASIsygD4AD4TUAQAAMdKAfBYBAEiNUgF19enEAQAAjU4BRYkGQYkMJIH//gAAAH9Egf7//wEAfzxJi1UASWNFHIA8AnV1LoPAAUGJRRxFiU0UTInv6EMGAABFi00UhMAPhEUBAABBg8H/RYkOQLUB6bD9//9FiQ4PKAQkQQ8RB4nOjUYBQYkEJEGB+QABAAAPj5wCAACB/v//AQAPj5ACAABBDxAHDylEJBBBjVEBQYkWjUYCQYH5/wAAAA+P7wEAAIH+/v8BAA+P4wEAAEGNSQJBiQ6NRgNBiQQkQYH5/gAAAH8ugf79/wEAfyZJi20ASWN9HIB8PQBEdReAfD0Bb3UQg8cCQYl9HEGJVRTpngEAAI1GBEEPEAcPKUQkIEGJDkGJBCRBgfn+AAAAD4/BAAAAgf78/wEAD4+1AAAASYt1AEljTRyAPA5ED4WjAAAAgHwOAU8PhZgAAACDwQJBiU0cQYlVFEyJ7+hOCQAAQYtVFITAdHmNQgFBiQZBiwwkjUEBQYkEJIH6/wAAAH9kgfn//wEAf1xJi3UASWNNHIA8DkV1TungAAAAQYsMJOnE/v//g8YCQYl1HEWJTRRBg30oAA+JBwQAAEiLMoA+AHQPMdKAfBYBAEiNUgF19esCMdJMie/o4gcAAOnhAwAAQYsEJA8oRCQgQQ8RB41KAUGJDo1IAUGJDCSB+v8AAAAPj40AAAA9//8BAA+PggAAAEmLdQBJY0UcgDwGRHV0gHwGAXd1bYPAAkGJRRxBiVUUTInv6AT7//+EwHRLTInv6Pj6//+EwHX0QYsWjUIBQYkGQYsMJI1BAUGJBCSB+v8AAAB/LIH5//8BAH8kSYt1AEljTRyAPA5FdRaDwQFBiU0cQYlVFOsZQYsWQYsMJOsFicFBiRYPKEQkIEEPEQeJyI1K/41wAUGJNCSB+gABAAB/XD3//wEAf1VJi1UASWNFHIA8AkZ1R4PAAUGJRRxBiU0UTInvvlkAAADoje7//0yJ7+hV6P//hMB0JkyJ775PAAAA6HTu//9Mie++RQAAAOhn7v//hMB0COmyAgAAQYkODyhEJBBBDxEHRYsOQYsEJI1wAUGJNCRBgfkAAQAAfyw9AAACAH0lTInv6Ezl//9Fi00UQYPB/0WJTRRAtQGEwA+Fvfr//0GLNCTrB0GDwf9FiQ5BjUEBjX4BQYk8JEGB+f8AAAAPj9ABAACB/v//AQAPj8QBAABBDxAHDylEJCBBjXkCQYk+RI1eAkWJHCRBgfn+AAAAD4/1AAAAgf7+/wEAD4/pAAAATYtVAEljTRxBgDwKQQ+F1gAAAEyNQQFFiUUcQbsBAAIAgf79/wEAD4+8AAAAQY1RA0GJFkSNXgRFiRwkQYH5/QAAAH8Zgf79/wEAdBFDgDwCbnUKg8ECQYlNHEGJyEGJPkljyEGKFAqE0nR9gMLQgPoJd3VKjSwRSIPFATHJD7ZVAEiDwf+E0nQMgMLQSIPFAYD6CnLoSIXJdE5EicVIKc1BiW0cQYl9FESNXgVFiV0Ygf77/wEAfzBIY9VBgDwSX3UmQSnIQYPAAUWJRRxBiUUUTInv6Kn4//+EwA+FJQEAAEGLBkWLHCQPKEQkIEEPEQeNSAFBiQ5BjXsBQYk8JD3/AAAAf39Bgfv//wEAf3ZJi1UASWNNHIA8CkF1aIPBAUGJTRxBiUUUTInv6MIFAABBi0UUQYtNGI1QAUGJVRSNeQFBiX0YPf8AAAB/OIH5//8BAH8wSYtVAEljTRyAPApfdSKDwQFBiU0cQYlFFEyJ7+gM+P//hMAPhYgAAABBiwZBizwkDyhEJCBBDxEHRI1I/0WJDo1PAUGJDCRBgfn/AAAAf3yB////AQB/dEEPEAcPKUQkIEGNSQJBiQ6NTwJBiQwkQYH5/gAAAH9Fgf/+/wEAfz1Ji1UASWNNHIA8Ck11L4PBAUGJTRxBiUUUTInv6Iz3//+EwHQbTInv6ID3//+EwHQPQYMG/0C1AelI+P//QYkGDyhEJCBBDxEHQYsGg8D/QYlFFEyJ7+hiAgAAQLUBhMAPhR/4//9Mie8x9ug95v//hMAPhQ34//9Mie/oXQMAAITAdBBMie/o4ej//4TAD4Xx9///DygEJEEPEQdMie/oSe7//4TAD4XZ9///SI01LG+t/0yJ7+jS2///hMAPhLj3//9Mie8x9ugA9f//hMAPhKb3//9Mie++XwAAAOj76v//hMAPhJH3///plvf//+jpGQwAZg8fhAAAAAAAQVZTSIPsKEiJ+2RIiwQlKAAAAEiJRCQgi3cUi1cYjU4BiU8UjUIBiUcYMcCB/v8AAAAPjwgBAACB+v//AQAPj/wAAAAPEEMcDylEJBDHRCQM/////0iNdCQMSInf6G70//+EwA+ExQAAAESLdCQMi0sUi0MYjVEBiVMUjVABiVMYgfn/AAAAD4+lAAAAPf//AQAPj5oAAABFhfYPiJEAAABIiwNIY3scSI00OEWF9g+OqQAAAIoWhNJ0d0yNBAdJg8ABTY1O/zHADx+AAAAAAEk5wXQTSI14AUGAPAAASIn4de1MOfdySkGD/gx8cDHASI0Nsyrl/zoUCHViSInHQQ+2FACE0nQKSI1HAUiD/wp15UiD/wp1RoN7KAB5S0iNNVK0Wv9Iid+6FQAAAOs1i0sUSI1DHA8oRCQQDxEAMcCDwf+JSxRkSIsMJSgAAABIO0wkIHUhSIPEKFtBXsNIid9EifLoxwEAAEQBcxyLSxSDwf+wAevJ6GQYDAAPH0AAU0iJ+4t3FItXGI1OAYlPFI1CAYlHGDHAgf7/AAAAfxOB+v//AQB/C0iJ3+hQ4P//i0sUg8H/iUsUW8MPH0QAAFNIg+wgSIn7ZEiLBCUoAAAASIlEJBiLdxSLVxiNTgGNQgGJRxgxwIH+/wAAAA+PwAAAAIH6//8BAA+PtAAAAA8QQxwPKQQkjX4CiXsUjUICiUMYgf7+AAAAD4+HAAAAgfr+/wEAf39IizNIY0McgDwGRHVyTI1AAUSJQxyJexSNegOJexiB+v3/AQB/WUKKFAaAyiCA+nR1TYPAAolDHIlLFEiJ3+i2AQAAi0sUhMB0NY1BAYlDFItDGI1QAYlTGIH5/wAAAH8ePf//AQB/F0iLE0hjQxyAPAJFdQqDwAGJQxywAesNSI1DHA8oBCQPEQAxwIPB/4lLFGRIiwwlKAAAAEg7TCQYdQZIg8QgW8PoDBcMAGYuDx+EAAAAAABmkFNIifuLVxSLTxiNQgGJRxSNQQGJRxgxwIH6/wAAAH8igfn//wEAfxpIid/o4Or//4nBsAGEyXUKSInfMfbojuL//4NDFP9bww8fhAAAAAAAg38oAA+J0wAAAIXSD47LAAAAgD48dUuLRyCFwH5ERItXEEQ50H07TItHCI1I/0GAPAg8dS1EjUgBRTnRfRxEiU8gQcYEACBIY0cgO0cQfRJIi08IxgQBAOsIQYPCAUSJVyBEi08QRItXIEU5yn0fRIoGRInBgOHfgMG/gPkacgZBgPhfdQhEiVckZolXKEGJ0DHSZi4PH4QAAAAAAA8fAEGNSgFEOcl9NUQPtgwWSItHCIlPIEljykSIDAhIg8IBRItPEESLVyBJOdB100U5yn0LSWPCSItPCMYEAQDDQYPBAUSJTyDDZg8fhAAAAAAAVUFXQVZBVFNIg+wwZEiLBCUoAAAASIlEJChMjXcUi08Ui0cYjVEBiVcUjVABiVcYMe2B+f8AAAAPjxgJAAA9//8BAA+PDQkAAEiJ++h/6f//QLUBhMAPhfoIAABIid/ovAkAAITAD4XqCAAATI17GA8QQxwPKQQki0MUi3MYRI1QAUSJUxSNVgGJUxg9/wAAAA+PgwAAAIH+//8BAH97SIsLSGNzHIA8MWN1boB8MQFsdWeDxgKJcxyJQxRIid/oPP///4TAdEgPH4QAAAAAAEiJ3+go////hMB19EGLBkSNUAFFiRZBiw+NUQFBiRc9/wAAAH8kgfn//wEAfxxIizNIY0scgDwORXUP6cMBAABBiwZBixdEjVABTI1jHA8oBCRBDxEEJEWJFo1yAUGJNz3/AAAAD4+PAAAAgfr//wEAD4+DAAAASIsLSGNTHIA8EWN1doB8EQFwdW+DwgKJUxyJQxRIid/odPr//4TAdFBIid/o2OL//w8fhAAAAAAASInf6Hj+//+EwHX0QYsGRI1QAUWJFkGLD41xAUGJNz3/AAAAfySB+f//AQB/HEiLE0hjSxyAPApFdQ/pEwEAAEGLBkGLN0SNUAEPKAQkQQ8RBCRFiRaNVgFBiRc9/wAAAA+P+gAAAIH+//8BAA+P7gAAAEiLC0hjcxyAPDFmD4XdAAAAgHwxAXAPhdIAAACDxgKJcxyJQxRIid/o8OT//4tDFItrGESNUAGNdQE9/wAAAH96gf3//wEAf3KNSAKJSxSNdQKJcxhIiztEi0McPf4AAAB/GYH9/v8BAH8RSWPIgDwPbnUIQYPAAUSJQxxFiRZJY+iKDC+EyXQygMHQgPkJdypIAf1Ig8UBMf8PtlQ9AEiDxwGE0nQIgMLQgPoKcutIhf90B0EB+ESJQxyNVgFFiRZBiRc9/wAAAH8jgf7//wEAfxtIizNIY0scgDwOX3UOg8EBiUsciUMU6T4CAAAPKAQkQQ8RBCRFiRaNagFBiS89/wAAAA+PFwEAAIH6//8BAA+PCwEAAEiLM0hjexyAPD5mD4X6AAAAgHw+AUwPhe8AAABMjU8CRIlLHIlDFI1KAolLGL0CAAIAgfr+/wEAD4/NAAAAjUgCQYkOjUoDQYkPPf4AAAB/GIH6/v8BAHQQQoA8Dm51CYPHA4l7HEGJ+UWJyEWJFklj+YoMPoTJdDmAwdCA+QpzMUiNLDdIg8UBMf8Ptkw9AEiDxwGEyXQIgMHQgPkKcutIhf90DUEB+EEB+USJQxxFichFiRaNagRBiS+B+vz/AQB/SEljyIA8DnB1P0GDwAFEiUMciUMUSInf6Cfj//9Iid8x9ui97P//SInfvl8AAADowOL//0C1AYTAD4VLBQAAQYsGQYsvRI1QAQ8oBCRBDxEEJEWJFo1NAUGJDz3/AAAAD4+PAAAAgf3//wEAD4+DAAAASIsTSGNLHIA8CmN1doB8CgF2dW+DwQKJSxyJQxRIid/oLe7//4TAD4S8AAAAQQ8QBCQPKUQkEEiJ375fAAAA6D7i//+EwHQdSInf6HL7//+EwHX0SInfvkUAAADoIeL//4TAdXwPKEQkEEEPEQQkSInf6Ev7//9AtQGEwHRr6ZUEAACJQxTHRCQQ/////0iNdCQQSInf6HcHAACEwHRKi0QkEIXAfkKD+AN8EEiJ3+gO+///hMB0MYtEJBCD+AJ8EEiJ3+j5+v//hMB0HItEJBCFwH4MSInf6OX6//+EwHQIQLUB6S8EAAAPKAQkQQ8RBCRBiwaNUAFBiRZBizeNTgFBiQ89/wAAAH9Bgf7//wEAfzlIiztIY3McgDw3c3UsgHw3AXR1JYPGAolzHIlDFEiJ3+ga7f//QLUBhMAPhdUDAABBiwZBiw+NUAEPKAQkQQ8RBCRBiRaNUQFBiRc9/wAAAH8egfn//wEAfxZIizOLUxxIY/qAPD5kdQeAfD4BdHQxjVABjXECQYkWQYk3Pf8AAAB/R4H5/v8BAH8/SIsLi1McSGPygDwxcHUwgHwxAXR1KYPCAolTHIlDFEiJ3+j9+f//hMB0F0iJ3+iB7P//QLUBhMB0COk7AwAAQYkGDygEJEEPEQQkQYsGjUgBQYkOQYsPjVEBQYkXPf8AAAB/RYH5//8BAH89SIsTSGNLHIA8CmR1MIB8CgFzdSmDwQKJSxyJQxRIid/ok/n//4TAdBdIid/oh/n//0C1AYTAdAjp0QIAAEGJBg8oBCRBDxEEJEGLDo1BAUGJBkGLN41WAUGJF4H5/wAAAH9Bgf7//wEAfzlIiztIY3McgDw3c3UsgHw3AXB1JYPGAolzHIlLFEiJ3+go+f//QLUBhMAPhXMCAABBiw5BixeNQQEPKAQkQQ8RBCSNcgFBiTcx7YH5/wAAAA+PRwIAAIH6//8BAA+POwIAAA8oBCQPKUQkEI1xAkGJNo1yAkGJN4H5/gAAAH8igfr+/wEAfxpIixNIY0scgDwKZ3UNgHwKAXN1BoPBAolLHIlDFEiJ3+hxCQAAQLUBhMAPheMBAAAPKAQkQQ8RBCRBiwaNSAFBiQ5Biw+NUQFBiRc9/wAAAH9Cgfn//wEAfzpIixNIY0scgDwKc3UtgHwKAXJ1JoPBAolLHIlDFEiJ3+gX4v//SInfhMAPhLkBAADoh9z//+nKAQAAQYkGDygEJEEPEQQkQYsGjVABQYkWQYsPjXEBQYk3Pf8AAAB/YoH5//8BAH9aSIs7SGNzHIA8N3N1TYB8NwFydUZMjUYCRIlDHIlTFI1RAolTGIH5/v8BAH8tQoA8B051JoPGA4lzHIlDFEiJ3+iQ4f//SInfhMAPhF8BAADoANz//+lwAQAAQYkGDygEJEEPEQQkQYsGjVABQYkWQYsPjXEBQYk3Pf8AAAB/IoH5//8BAH8aSIs7SGNzHIA8N2d1DYB8NwFzdQaDxgKJcxyNcQJBiRZBiTc9/wAAAA+PjgAAAIH5/v8BAA+PggAAAEiLE0hjSxyAPApzdXWAfAoBcnVug8ECiUsciUMUSInf6P/y//+EwHRcSInf6GPb//9Iid/o6/L//4TAdexBiwaNSAFBiQ5Biw+NUQFBiRc9/wAAAH8sgfn//wEAfyRIixNIY0scgDwKRXUXg8EBiUsciUMUSInf6JgHAACEwHQF6w9BiQYPKEQkEEEPEQQkMe1BiwaDwP9BiQZBgwb/ZEiLBCUoAAAASDtEJCgPhaUAAACJ6EiDxDBbQVxBXkFfXcPoHvT//4TAdRJIid8x9ugA2P//hMAPhDn+//9Iid/oMAcAAITAD4Qp/v//66Po8fP//4TAdRJIid8x9ujT1///hMAPhJP+//9Iid/oE/L//4TAD4SD/v//SInf6HPa//9Iid/o+/H//4TAdexIid++RQAAAOjK3P//hMAPhFr+//9Iid/oygYAAITAD4RK/v//6Tr////oqAsMAA8fhAAAAAAAQVZTSIPsGEiJ+2RIiwQlKAAAAEiJRCQQi3cUi1cYjU4BjUIBiUcYMcCB/v8AAAAPj8sBAACB+v//AQAPj78BAABMjXMcDxBDHA8pBCSNRgKJQxSNegKJexiB/v4AAAAPj4EAAACB+v7/AQB/eUyLA0hjexxBgDw4THVrQYB8OAFadWODxwKJexyJSxRIid/oDM3//4TAD4RXAQAAi0sUi0MYjVEBiVMUjVABiVMYgfn/AAAAD482AQAAPf//AQAPjysBAABIixNIY0McgDwCRQ+FGgEAAIPAAYlDHIlLFLAB6RcBAACNegOJQxSJexiB/v4AAAB/P4H6/f8BAH83SIsTSGNDHIA8Akx1KoPAAYlDHIlLFEiJ3+hT5///hMB0GEiJ3+inAwAAicGwAYTJdAjpxwAAAIlLFA8oBCRBDxEGi0sUi3MYjUEBiUMUjVYBiVMYgfn/AAAAD4+RAAAAgf7//wEAD4+FAAAATIsLSGNTHEGAPBFMdXdMjUIBRIlDHI1+Aol7GIH+/v8BAH9hjXkCiXsUjX4DiXsYgfn+AAAAf02B/v7/AQB0RUOAPAFfdT5DgHwBAVp1NoPCA4lTHIlDFEiJ3+jVy///i1MUjUr/iUsUhMB0G4lTFItDGI1wAYlzGIH6AAEAAA+Oyv7//4lLFA8oBCRBDxEGMcCLSxSDwf+JSxRkSIsMJSgAAABIO0wkEHUISIPEGFtBXsPofQkMAGYuDx+EAAAAAAAPHwBVQVdBVlNIg+wYSYn2SIn7ZEiLBCUoAAAASIlEJBCLdxSLVxiNTgGJTxSNQgGJRxgxwIH+/wAAAA+P7AEAAIH6//8BAA+P4AEAAEiLK0hjexyAfD0AAA+EuAAAAIB8PQEAD4StAAAAi0MkiUQkCEiLQxxIiQQkRIt7KI1GAolDFI1CAolDGIH+/gAAAA+PjwAAAIH6/v8BAA+PgwAAAIB8PQBjdXyAfD0BdnV1g8cCiXsciUsURIn4RYX/eRdIjTV3Ar7/SInfugkAAADo7/H//4tDKCX//wCAiUMoSInf6Fzl//+EwHQzQYHnAAD/f7j//wCAI0MoRAn4iUMosAFNhfYPhB8BAABBxwYBAAAA6RMBAAAxwOkPAQAAi0sUi0MYSI1rHItUJAiJVQhIixQkSIlVAESJeyiNeQGJexSNUAGJUxiB+f8AAAB/Zj3//wEAf19IizNIY1McgDwWdnVSTI1KAUSJSxyJSxRED75EFgGJexSNeAKJexg9/v8BAH8xQooEDgTQPAl3J4PCAolTHIlLFE2F9nQHQYPA0EWJBkiJ3+jo7f//icGwAYTJdAXrdYlLFItEJAiJRQhIiwQkSIlFAESJeyhIiwtIY1McigQRjXCfQID+GXdKikwRAYnKgOLfgMK/gPoZdzlIjRXLY0//SI0tjq8MAOsMDx9AAEiLVRhIg8UwOgJ1BTpKAXQ6SItVAEiF0nQLOgJ14jpKAXXd6yoxwItLFIPB/4lLFGRIiwwlKAAAAEg7TCQQdVhIg8QYW0FeQV9dw0iDxehNhfZ0BotFEEGJBkiNNeUcr/5Iid/oh8j//0iLdQiKBgSfPBl3E0iNNdhyrP5Iid/obMj//0iLdQhIid/oYMj//4NDHAKwAeuP6NMGDAAPHwBBVlNIg+wYZEiLBCUoAAAASIlEJBCLTxSLdxiNRgGJRxgxwIH5/wAAAA+PjAEAAIH+//8BAA+PgAEAAA8QRxwPKQQkRI1BAkSNdgKB+f4AAAAPj74AAACB/v7/AQAPj7IAAACNQQOJRxREjXYDRIl3GEyLD0SLVxyB+f0AAAB/GoH+/f8BAH8SSWPCQYA8AW51CEGDwgFEiVccRIlHFEljwkGKFAGE0nRsgMLQgPoJd2RKjRwISIPDATHADx9EAAAPthNIg8D/hNJ0DIDC0EiDwwGA+gpy6UiFwHQ5RInTSCnDiV8cRIlHFESNdgREiXcYgf78/wEAfxxIY9NBgDwRRXUSQSnCQYPCAUSJVxywAemmAAAATI1PHEGNRgEPKAQkQQ8RAUSJRxSJRxiB+f4AAAAPj3kAAABBgf7//wEAf3BMixdMY18cQ4ocGoTbdGFMid5MAdZIifDrEQ8fRAAAD7ZYAUiDwAGE23QQjVPQgPoKcuyAw5+A+wV25Eg58HQwKfBEAdiJRxxEiUcUQY1WAolXGEGB/v7/AQB/FEhj0EGAPBJFdQqDwAGJRxywAesKDygEJEEPEQExwIlPFGRIiwwlKAAAAEg7TCQQdQhIg8QYW0Few+j1BAwADx9EAABVQVZTSIPsIEiJ+2RIiwQlKAAAAEiJRCQYi08Ui0cYjVEBiVcUjVABiVcYMe2B+f8AAAAPjxUBAAA9//8BAA+PCgEAAEiJ3+jE6v//hMB0EEiJ3+go0///QLUB6e4AAAAPEEMcDykEJItDFItzGI1QAYlTFI1OAYlLGD3/AAAAfzyB/v//AQB/NEiLO0hjcxyAPDdvdSeAfDcBbnUgg8YCiXMciUMUSInfMfbo0Pr//4TAdZyLQxSLSxiNUAFMjXMcDygEJEEPEQaJUxSNUQGJUxg9/wAAAH9ogfn//wEAf2BIixNIY0scgDwKZHVTgHwKAW51TIPBAolLHIlDFEiJ3+j61///hMAPhUL///9Iid/ouuv//0C1AYTAdTFIid8x9uiZz///hMB1I0iJ3+jd6f//hMB0DUiJ3+hB0v//6w2JQxQPKAQkQQ8RBjHtg0MU/2RIiwQlKAAAAEg7RCQYdQuJ6EiDxCBbQV5dw+h+AwwAZi4PH4QAAAAAAA8fQABTSIPsIEiJ+2RIiwQlKAAAAEiJRCQYi08Ui1cYjXEBiXcUjUIBiUcYMcCB+f8AAAAPj5kBAACB+v//AQAPj40BAACDeygAeRRIjTVYhZz/SInfugIAAADoZOz//0iJ3+gsy///hMAPhIIAAACLcxSLUxiNQgGJQxiwAYH+/wAAAA+PSQEAAIH6//8BAA+PPQEAAA8QQxwPKQQkjU4CiUsUjXoCiXsYgf7+AAAAfzCB+v7/AQB/KEyLC0xjUxxDgDwRX3UaTY1CAUSJQxyNegOJexiB+v3/AQAPjhEBAABIjUscDygEJA8RAenhAAAAg3soAHkNSItDCEhjSyDGRAH+AItzFIt7GESNXgFEiVsUjUcBiUMYMcCB/v8AAAAPj6wAAACB////AQAPj6AAAABMiwtIY0scQYA8CXMPhYwAAABMjUEBRIlDHI1HAolDGLABgf/+/wEAf3aLUxyJFCRIi1MgSIlUJASLUyiJVCQMRI1WAkSJUxSNVwOJUxiB/v4AAAB/KYH//v8BAHQhQ4A8AV91GkyNQQJEiUMcjVcEiVMYgf/8/wEAD47LAAAASI1LHESJWxSLFCSJEUiLVCQESIlRBItUJAyJUQzrAjHAg8b/iXMUZEiLDCUoAAAASDtMJBgPhRIBAABIg8QgW8ONfgOJexSNegSJexiB/v0AAAB/GoH6/f8BAHQSQ4A8AW51C0GDwgJEiVMcRYnQiUsUSWPQQYoMEYTJD4Sv/v//gMHQgPkJD4ej/v//So08CkiDxwEx0mYuDx+EAAAAAACQD7YMF0iDwgGEyXQIgMHQgPkKcuxIhdIPhHH+//9BAdBEiUMc6Vb///+NVgOJUxSNVwWJUxiB/v0AAAB/GIH//P8BAHQQQ4A8AW51CYPBA4lLHEGJyESJUxRJY8hBihQJhNIPhPb+//+AwtCA+gkPh+r+//9KjTwJSIPHATHJD7YUD0iDwQGE0nQIgMLQgPoKcuxIhckPhMP+//9BAchEiUMcRIlbFOnU/v//6HAADABVQVZTSIPsIEiJ+2RIiwQlKAAAAEiJRCQYi1cUi08YjUIBjXEBiXcYMe2B+v8AAAAPj6IBAACB+f//AQAPj5YBAAAPEEMcDykEJI1yAolzFI1xAolzGIH6/gAAAH9kgfn+/wEAf1xIixNIY0scgDwKSnVPg8EBiUsciUMUDx9AAEiJ3+h4////hMB19ItDFItLGI1QAYlTFI1RAYlTGD3/AAAAfx2B+f//AQB/FUiLE0hjSxyAPApFdQiDwQGJSxzrf0yNcxyJQxQPKAQkQQ8RBkiJ3+gnAQAASInfhMB0bOgbzv//QQ8QBg8pBCRIid/oq/j//7EBhMAPhMwAAACLQxSLUxiNSAGJSxSNSgGJSxixAT3/AAAAD4+qAAAAgfr//wEAD4+eAAAASIszSGNTHIA8FkUPhY0AAACDwgGJUxyJQxRAtQHpiQAAAOjv2///QLUBhMB1fUiJ3+hw8///hMB1cQ8oBCRBDxEGi0MUi1MYjUgBiUsUjUoBiUsYMck9/wAAAH9Bgfr//wEAfzlIixNIY0scgDwKWHUqg8EBiUsciUMUSInf6APp//+EwHQRSInfvkUAAADoss///4TAdRMxyesFMcmJQxQPKAQkQQ8RBonNi0MUg8D/iUMUZEiLBCUoAAAASDtEJBh1C4noSIPEIFtBXl3D6HL+CwBmkEFWU0iD7ChIiftkSIsEJSgAAABIiUQkIIt3FItXGI1OAY1CAYlHGDHAgf7/AAAAD4/mAAAAgfr//wEAD4/aAAAATI1zHA8QQxwPKQQkjUYCiUMUjUICiUMYgf7+AAAAD4+sAAAAgfr+/wEAD4+gAAAASIsTSGNDHIA8AkwPhY8AAACDwAGJQxyJSxRIid/o/eP//4tLFITAdHeLcxiNRgGJQxiwAYH5/wAAAH9ugf7//wEAf2ZEjVEBQQ8QBg8pRCQQjXkCiXsUjVYCiVMYgfn+AAAAfyyB/v7/AQB/JEyLC0xjWxxDgDwZX3UWTY1DAUSJQxyNVgOJUxiB/v3/AQB+O0SJUxQPKEQkEEEPEQbrCg8oBCRBDxEGMcCDwf+JSxRkSIsMJSgAAABIO0wkIA+FggAAAEiDxChbQV7DjVEDiVMUjVYEiVMYgfn9AAAAfxqB/v3/AQB0EkOAPAFudQtBg8MCRIlbHEWJ2Il7FElj8EGKFDGE0nSJgMLQgPoJd4FMAc5Ig8YBMf8PthQ+SIPHAYTSdAiAwtCA+gpy7EiF/w+EW////0EB+ESJQxxEiVMU6WT////otPwLAA8fQABVQVdBVlNIg+wYSIn7ZEiLBCUoAAAASIlEJBCLTxSLRxiNUQGJVxSNUAGJVxgx7YH5/wAAAA+PvAEAAD3//wEAD4+xAQAASInfMfbo8PL//0C1AYTAD4WcAQAAi1MUi0sYjUIBjXEBiXMYgfr/AAAAD4+/AAAAgfn//wEAD4+zAAAADxBDHA8pBCSNcgKJcxSNeQKJexiB+v4AAAB/OYH5/v8BAH8xTIsLTGNTHEOAPBFDdSNNjUIBRIlDHIlzFI15A4l7GIH5/v8BAA+MmQAAAIPBBIlLGIlDFEyNQxwPKAQkQQ8RAItDFItzGI14AYl7FI1OAYlLGD3/AAAAfy6B/v//AQB/JkiLC0hjUxyAPBFEdRlMjUoBRIlLHIl7FI1+Aol7GIH+/v8BAH5mDygEJEEPEQCDwP+JQxRIid/ojeH//4TAD4WsAAAASInf6O38//+EwA+FnAAAAEiJ3+gt0f//icXpjQAAAEOKFAGAws+A+gMPh54AAABBg8ICRIlTHIlDFExjcyRMA3MITI17KOtPQg+2DAlIg/k0d49IvgAAAAAAABcASA+jzg+De////4PCAolTHIlDFExjcyRMA3MIi0MohcB5G0yNeyhIjTV+mK7/SInfugEAAADoHuT//0GLBw+/0EiJ30yJ9ugN5P//g0MU/4NDFP9kSIsEJSgAAABIO0QkEHVhiehIg8QYW0FeQV9dw4lzFI1RBIlTGIH5/P8BAA+Pqv7//0OAPAFJD4Wf/v//QYPCAkSJUxyJQxRIjTVS77P+SInf6P7N//+EwA+EgP7//0iJ3+ju4f//hMAPhHD+///rh+g/+gsAZi4PH4QAAAAAAA8fRAAAVUFXQVZBVFNIg+wgZEiLBCUoAAAASIlEJBiLTxSLdxiNRgGJRxgxwIH5/wAAAA+PugAAAIH+//8BAA+PrgAAAA8QRxwPKQQkRI15AkSJfxREjWYCRIlnGIH5/gAAAH8wgf7+/wEAfyhMixdIY28cQYA8Kmh1GkyNRQFEiUccQbwBAAIAgf79/wEAD46CAAAATI1PHA8oBCRBDxEBRIl/FEGNdCQBiXcYgfn+AAAAfzRBgfz//wEAfytMiwdIY0ccQYA8AHZ1HUyNUAFEiVccQY1UJAKJVxhBgfz+/wEAD44LAQAADygEJEEPEQExwIlPFGRIiwwlKAAAAEg7TCQYD4WZAgAASIPEIFtBXEFeQV9dw0SNZgSB+f0AAAAPj27///+B/v3/AQAPhGL///9EjUkDjUEEiUcURI1mBUSJZxiB+fwAAAB/GIH++/8BAH8QQ4A8Am51CYPFAolvHEGJ6ESJTxRJY8BBihQChNIPhB3///+AwtCA+gkPhxH///9KjRwQSIPDATHtDx+AAAAAAA+2A0iDxf+EwHQKBNBIg8MBPApy60iF7Q+E4v7//0SJw0gp64lfHESJfxREjWYGRIlnGIH++v8BAA+Pwf7//0hjw0GAPAJfD4Wz/v//QSnoQYPAAUSJRxywAen//v//QY1UJAOJVxiB+f0AAAAPj+H+//9Bgfz+/wEAD4TU/v//RI1ZA41pBIlvFEGNVCQEiVcYgfn8AAAAfxlBgfz8/wEAfxBDgDwQbnUJg8ACiUccQYnCRIlfFEljwkGKFACE0g+Ejv7//4DC0ID6CQ+Hgv7//0qNHABIg8MBMcAPH0AAD7YTSIPA/4TSdAyAwtBIg8MBgPoKculIhcAPhFT+//9EidNIKcOJXxxEiV8UQY1UJAWJVxhBgfz7/wEAD48y/v//SGPTQYA8EF8PhST+//9FjXIBSSnGRIl3HEGNVCQGiVcYQYH8+v8BAA+PBP7//0GNVCQHiW8UiVcYgfn8AAAAfyCB/vv/AQB0GElj1kGAPBBudQ5BKcJBg8ICRIlXHEWJ1kSJXxRJY8ZBihQAhNIPhL79//+AwtCA+gkPh7L9//9KjTQASIPGATHAD7YWSIPA/4TSdAyAwtBIg8YBgPoKculIhcAPhIj9//9EifZIKcaJdxxEiX8UQY1UJAiJVxhBgfz4/wEAD49m/f//SGPWQYA8EF8PhVj9//9BKcZBg8YBRIl3HLAB6VD9///ojfYLAMzMzMzMzMzMzMzMzMxBV0FWQVRTUEmJ1kmJ90iJ+0m8aS046wjq351IgfoABAAAcj5mLg8fhAAAAAAAZpC+AAQAAEyJ/+gTAgAAicBIAdhJ9+RIidNIMcNJgcYA/P//SYHHAAQAAEmB/v8DAAB3zkmD/glyD0yJ/0yJ9ujdAQAAicDrUkmD/gRyGEGLF0OLRDf8QcHmA0GAxuBEifFI0+DrMU2F9nQ7TInxSNHpQQ+2FA9DD7ZEN/9Jg8b/weEDSNPiQcHmA0SJ8UjT4EEPtg9ICchICdBIAdhJ9+RIidNIMcNIidhIg8QIW0FcQV5BX8NmLg8fhAAAAAAAZpBVQVdBVkFVQVRTUEmJ1kmJ90iJ+0i9aS046wjq351IgfoABAAAck9MjSXSogwATI0t+1nv/2YuDx+EAAAAAACQvgAEAABMif9MieJMieno7QoAAEgB2Ej35UiJ00gxw0mBxgD8//9JgccABAAASYH+/wMAAHfKSYP+EXIeSI0VfaIMAEiNDaZZ7/9Mif9MifboqwoAAEiJxut7SYP+CXIjS4t0N/hBweYDQfbeRInxSNPuSQMfSInYSPflSInTSDHD61JJg/4EchhBiwdDi3Q3/EHB5gNBgMbgRInxSNPm6zFNhfZ0PkyJ8UjR6UEPtgQPQw+2dDf/SYPG/8HhA0jT4EHB5gNEifFI0+ZBD7YPSAnOSAnGSAHzSInYSPflSInTSDHDSInYSIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAEiNFbmhDABIjQ3iWO//6e0JAADMzMzMzMzMzMzMzMzMU0iD/hh3ckiD/gwPh5UCAABIg/4ED4dUAwAASIX2D4TSAwAAD74HicGD8QlIg/4BD4THAwAAD75XAWnAUS2ezAHQMcFIg/4CD4SvAwAAD75XAmnAUS2ezAHQMcFIg/4DD4SXAwAAD75XA2nAUS2ezAHQMcHphAMAAERpxlEtnsyLTDf8adFRLZ7MweoRackAgKgWCdFpyZM1hxuLVDf4acJRLZ7MwegRadIAgKgWCcJEadKTNYcbRItMN+yLRDfwadBRLZ7MweoRacAAgKgWCdBEadiTNYcbi1Q39GnCUS2ezMHoEWnSAICoFgnCadqTNYcbQWnRUS2ezMHqEUFpwQCAqBYJ0GnAkzWHGzHxwcENjQyJgcFka1TmRDHZwcENjQyJgcFka1TmRTHCQcHCDUONFJKBwmRrVOYx2sHCDUSNDJJBgcFka1TmRAHAwcANRI0EgEGBwGRrVOZIg8b/SLrNzMzMzMzMzEiJ8Ej34kjB6gRmLg8fhAAAAAAADx8AiwdEi18EafBRLZ7Mwe4RacAAgKgWCfBEadCTNYcbi0cIafBRLZ7Mwe4RacAAgKgWCfBp8JM1hxtEAc6LRwxp2FEtnszB6xFpwACAqBYJ2GnAkzWHG4tfEEQx0cHBDkSNDIlBgcFka1TmRQHYQcHADUFpyFEtnszBxg6NNLaBxmRrVOZEAdhEMcjBwA0x3g/ORI0EtgHYRI0MgEGBwWRrVOZBD8lEAdFIg8cUSIPC/w+FS////0HBwRVBacFRLZ7MwegRQWnRAICoFgnCacJRLZ7MQcHoC8HmFY0UtkQJwmnyUS2ezMHuEWnSAICoFgnyAcjBwA2NBIAFZGtU5sHADwHQachRLZ7MwekTacAAIKrFCciNBIAFZGtU5sHAD2nAUS2ezFvDSInxSNHpRIsHi1cEi0QP/ESLDA9pyFEtnszB6RFpwACAqBYJyGnAkzWHGzHwwcANi0w3+ESNFIBBgcJka1TmacJRLZ7MwegRadIAgKgWCcJpwpM1hxtEMdDBwA2NBIAFZGtU5mnRUS2ezMHqEWnJAICoFgnRacmTNYcbMcHBwQ2NBIkFZGtU5kFpyVEtnszB6RFBadEAgKgWCcppypM1hxsxwcHBDYtEN/yNDImBwWRrVOZBadBRLZ7MweoRQWnwAICoFumdAAAAjQS2iw8B8YtUN/wBwkjR7oPmBIs0N2n5US2ezMHvEWnJAICoFgn5acmTNYcbMcHBwQ2DxgmNBIkFZGtU5mnKUS2ezMHpEWnSAICoFgnKacqTNYcbMcHBwQ2NBIkFZGtU5mnOUS2ezMHpEWnWAICoFgnKacqTNYcbMcHBwQ2NBIkFZGtU5utQMcC5CQAAAGnWUS2ezMHqEWn2AICoFgnWadaTNYcbMcrBwg2NDJKBwWRrVOZp0FEtnszB6hFpwACAqBYJ0GnAkzWHGzHIwcANjQSABWRrVOaJwcHpEDHBacFryuuFicHB6Q0xwWnJNa6ywonIwegQMchbww8fgAAAAABVQVdBVkFVQVRTSIP+IHduSIP+EA+HNAEAAEi4T0CQLztq4ZpIg/4ID4ITBAAASI0McEgDB0iLVDf4SInWSMHGG0gPr/FIAcZIwcAnSAHQSA+vwUgxxkgPr/FIifJIweovSDHGSDHWSA+v8UiJ8EjB6C9IMfBID6/B6bgDAABIg/5AD4dCAQAASLhPQJAvO2rhmkyNFHBIix9ID6/YTItEN+BMi3Q36EgPr0cQTItfCEiLTxhMjQzJSItUN/hIi3Q38EgB00iJ30jBxxVMAchIicFMAfBIAcJMAdhJwcMiSQ+v8k0B80uNLNtIAf1MMcNKjTwLSIPHAUgB70kPr/pID89IwcEWSY0sGUwB8UgB9UiDxQFIAf1JD6/qSA/NSAHKSAHqSQ+v0kgPykgB0EkPr8JMAcZIAcZIifBIwegvSDHwSQ+vwkgByOnoAgAASLpPQJAvO2rhmkyNBHJIuXPymL5vtpK0SA+vD0iLRwhIi2w3+EkPr+hIjRwBSMHDFUiLfDfwSAHQSMHALkgByEgB6EjBxSJID6/6SAHdSAH9SDHFSQ+v6EiJ6kjB6i9IMcVIMdVJD6/oSInoSMHoL0gx6EkPr8DpbAIAAEm8c/KYvm+2krRJumktOOsI6t+dSYn/SIl8JOBIi1Q32EyLdDfwSIt8N8hNi0w30EqNDDdJjSwxSYtEN+hIMcVJD6/qSInrSMHrL0gxxUgx3UkPr+pJiehJwegvSTHoTQ+vwkmLbDfASAH1SI0cKkwBw0jBwytIAe9MAc9JiftJwcMUSAHXSQHrSQHbSYtsN+BIAc1Ni0w3+EwB5UyNFCpNAcpJwcIrSAHoTAHwSInDSMHDFEwByEgB60wB00kPr9RJiy9IiWwk6EgB6kiDxv9Ig+bASIl0JPBBv0AAAABMi3Qk4GaQTInFSAH6SAHKT4tUPshMAdJIwcIbT4tsPtBJuHPymL5vtpK0SQ+v0EwB2UuLdD7wSIl0JPhIAfFIwcEWSYnMTQ+v4EyJxkmJ0Ekx2E+LTD7oTAHPSIn5TAHhSAHFTA+v3kwDXCToS4tUPthMAdhMAcBIAdBNAdpNAepMiddIAddJwcIUTQHTSMHFH0iJ6kgPr9ZIwcArSQHDSAHTSQHNS4tsPvhLA1w+4EkB3UkB7UkB2UwDTCT4TInISAHoScHBFEwBy0nBxStMAetMOXwk8HQXSIt0JOBKiyw+SIlsJOhJg8dA6Rf///9IMcdIvWktOOsI6t+dSA+v/UiJ/kjB7i9IMcdIMfdID6/9SIn4SMHoL0gx+EgPr8VIic5Iwe4vSDHOSLlz8pi+b7aStEgPr/FMAcZIAcZJMdtMD6/dTInYSMHoL0kx20kxw0wPr91MidhIwegvTDHYSA+vxUgB0EgxxkgPr/VIifFIwekvSDHGSDHOSA+v9UiJ8EjB6C9IMfBID6/FW0FcQV1BXkFfXcNIg/4EcjZIjQxwiwdIjRTGi0Q3/EgxwkgPr9FIidZIwe4vSDHCSDHySA+v0UiJ0EjB6C9IMdBID6/B67lIhfZ0tA+2D0iJ8kjR6g+2FBcPtnw+/0jB4ghICcpIjQy+SA+v0Ei+JzHLl1zIpcNID6/xSDHWSInxSMHpL0gx8UgPr8Hpb////2YPH4QAAAAAAFNIidPoJ/v//0i5sb9v0MSVHmVIAcFIMdlIumktOOsI6t+dSA+vykiJyEjB6C9IMdlIMcFID6/KSInISMHoL0gxyEgPr8Jbww8fhAAAAAAAQVZTUEiJy0mJ1ujR+v//TCnwSDHYSLppLTjrCOrfnUgPr8JIicFIwekvSDHYSDHISA+vwkiJwUjB6S9IMcFID6/KSInISIPECFtBXsPMzMxVQVdBVkFVQVRTSYnQTDMBSIP+QQ+CkAAAAEyLcQhMi3kQTIthGEyLaSBNicFIifVIiwdMMfBIi18ITDHLSPfjSYnCSYnTSItHEEwzTxhMMfhJ9+FNMdNJidFJMcFNMdlIi0cgTDHgSItfKEwxw0j340mJwkmJ00iLRzBMMehMM0c4SffgTTHTSYnQSTHATTHYSIPHQEiDxcBIg/1Ad5FNMchIg/0Rcwvre0iJ9UiD/RFyckyLSQhMjVXvQfbCEHUbSIsHTDHITDNHCEn34EmJ0EkxwEiDxxBIg8XwSYP6EHJDZi4PH4QAAAAAAA8fQABIiwdMMchMM0cISffgSYnQSTHASItHEEwxyEwzRxhJ9+BJidBJMcBIg8cgSIPF4EiD/RB3y0iD/QlyCkiLB0iLfC/46zlIg/0EcgiLB4t8L/zrK0iF7XQiD7YHSMHgEEiJ6kjR6g+2FBdIweIISAnCD7ZEPf9ICdDrAjHAMf9MMcdIi0kISDHISPfnSDHOSDHQSPfmSDHQW0FcQV1BXkFfXcPMzMzMzMzMzMzMzMzMzEiJ+IP+EHcuifFIjRVnTe//SGMMikgB0f/hD1fADxEASMdAEAAAAADGAARmx0ABT0vGQAMAww9XwA8RAEjHQBAAAAAAww9XwA8RQAjGABJIuUNBTkNFTExF62APV8APEUAIxgAOx0ABVU5LTsdABE5PV07GQAgAw0jHQBAAAAAAxgAgDxAFLv1Z/w8RQAHGQBEAw0jHQBAAAAAAxgAiDxAFDoyQ/+tdD1fADxFACMYAEki5Tk9UX0ZPVU5IiUgBZsdACUQAw0jHQBAAAAAAxgAcSLlBTFJFQURZX0iJSAFIuVlfRVhJU1RTSIlIB8ZADwDDSMdAEAAAAADGACIPEAWv26P+DxFAAcZAEUTGQBIAw0jHQBAAAAAAxgAkDxAFpvxZ/w8RQAFmx0ARRUTGQBMAw0jHQBAAAAAAxgAmDxAFOFKs/g8RQAHHQBBUSU9OxkAUAMMPV8APEUAIxgAOx0ABQUJPUsdABFJURUTGQAgAww9XwA8RQAjGABhIuU9VVF9PRl9SSIlIAcdACUFOR0XGQA0Aww9XwA8RQAjGABpIuVVOSU1QTEVNSIlIAUi5TEVNRU5URURIiUgGxkAOAMMPV8APEUAIxgAQSLlJTlRFUk5BTEiJSAHGQAkAww9XwA8RQAjGABZIuVVOQVZBSUxBSIlIAcdACEFCTEXGQAwAww9XwA8RQAjGABJIuURBVEFfTE9TSIlIAWbHQAlTAMNIx0AQAAAAAMYAHki5VU5BVVRIRU5IiUgBSLlOVElDQVRFREiJSAjGQBAAww8fQABTSIPsIGRIiwQlKAAAAEiJRCQYg/4QD4dSAQAAifBIjQ1HS+//SGMEgUgByP/gD1fADykEJEjHRCQQAAAAAMYEJARmx0QkAU9LxkQkAwC6AgAAAOm3AgAASMdEJBAAAAAAxgQkHki4VU5BVVRIRU5IiUQkAUi4TlRJQ0FURURIiUQkCLoPAAAA6YICAAAPV8APEUQkCMYEJBZIuFVOQVZBSUxBSIlEJAHHRCQIQUJMRcZEJAwAugsAAADpUAIAAA9XwA8RRCQIxgQkGEi4T1VUX09GX1JIiUQkAcdEJAlBTkdFxkQkDQC6DAAAAOkeAgAASMdEJBAAAAAAxgQkIg8QBV6JkP/p7gAAAEjHRCQQAAAAAMYEJCYPEAUOUKz+DxFEJAHHRCQQVElPTroTAAAA6doBAAAPV8APEUQkCMYEJBpIuFVOSU1QTEVNSIlEJAFIuExFTUVOVEVESIlEJAbGRCQOALoNAAAA6aEBAAAPV8APKQQkSMdEJBAAAAAAMdLpigEAAA9XwA8RRCQIxgQkEki4Q0FOQ0VMTEXprgAAAA9XwA8RRCQIxgQkDsdEJAFVTktOx0QkBE5PV07pHQEAAEjHRCQQAAAAAMYEJCAPEAWT+Vn/DxFEJAG6EAAAAOkrAQAASMdEJBAAAAAAxgQkIg8QBWvYo/4PEUQkAcZEJBFEuhEAAADpAwEAAA9XwA8RRCQIxgQkEki4REFUQV9MT1NIiUQkAWbHRCQJUwC6CQAAAOnXAAAAD1fADxFEJAjGBCQSSLhOT1RfRk9VTkiJRCQBZsdEJAlEALoJAAAA6asAAABIx0QkEAAAAADGBCQcSLhBTFJFQURZX0iJRCQBSLhZX0VYSVNUU0iJRCQHxkQkDwC6DgAAAOt0SMdEJBAAAAAAxgQkJA8QBcr4Wf8PEUQkAWbHRCQRRUS6EgAAAOtND1fADxFEJAjGBCQOx0QkAUFCT1LHRCQEUlRFRMZEJAgAugcAAADrJQ9XwA8RRCQIxgQkEEi4SU5URVJOQUxIiUQkAcZEJAkAuggAAABIjXQkAej3vvj/SInD9gQkAXQKSIt8JBDo5OALAGRIiwQlKAAAAEg7RCQYdQlIidhIg8QgW8PoFuMLAGYPH0QAAIP/EbgCAAAAD0LHww8fQABVQVdBVkFVQVRTSIPsGEiJVCQQSIk8JEiLBqgBD4S2AAAASItAH0iFwA+EqQAAAEiJy0iJwUiLAEiD+AIPgpYAAABJicVJ0e2oAXQGSItJCOsESIPBCEn33UiJTCQITI15EEUx5Em+AAAAAAEAAAAx7esdZi4PH4QAAAAAAA8fAEwB9UmDxP9Jg8coTTnldEhBD7ZH8KgBdBdJiz9Ji0f4SDnYddvrFWYPH4QAAAAAAEmNf/FI0ehIOdh1xEiF23QRSIt0JBBIidroUuMLAIXAda5Bg/wBdR9IiywkxkUAADHbiF0QSInoSIPEGFtBXEFdQV5BX13DSMH9IEiNBK0AAAAASAHoSItUJAhIjTTCSIPGGPZEwicBdEdIi0zCGEiFyXQ98INBCARIiywkSIlNAEi5AAAAAAAAAAFIiU0IswFIuf/////////+SIVMwiB0kEiJ77oIAAAA6CGMAQDrgQ8QBkiLLCQPEUUAswHpb////2YuDx+EAAAAAAAPHwBVQVdBVkFVQVRTSIPsWEiJdCQQZEiLBCUoAAAASIlEJFBIgz8AD4RpAgAASYnOSInVSIn76KcCAABIixtMi3sfTYX/dCZJiwdIg/gCD4I4AQAASInDSNHrqAFMiXQkCEyJPCR0UEmLRwjrTr8wAAAA6JveCwBIxwAAAAAATItrH0iJQx9Nhe0PhCYCAABJg30AAHQITInv6LQoAABMie/ojN4LAEyLex9Nhf91mEUx/+nVAAAASY1HCEj320iJRCQYTI1gEEUx9km/AAAAAAEAAABFMe3rHWYPH4QAAAAAAE0B/UmDxv9Jg8QoTDnzD4SNAAAAQQ+2RCTwqAF0EkmLPCRJi0Qk+Eg56HXU6w9mkEmNfCTxSNHoSDnodcNIhe10EUiLdCQQSInq6HHhCwCFwHWtQYP+AUyLdCQITIs8JHRIScH9IEqNBK0AAAAATAHoSItMJBhIjSzBSIPFGPZEwScBdAhIie/oczkAAEEPEAYPEUUAD1fAQQ8RBukTAQAATIt0JAhMizwkD1fADylEJCBIx0QkMAAAAABIg/3wD4MsAQAASIP9F3MUjUQtAIhEJCBMjWwkIUiF7XUo6zZIjV0QSIPj8EiJ3+hB3QsASYnFSIlEJDBIg8sBSIlcJCBIiWwkKEyJ70iLdCQQSInq6LvhCwBBxkQtAABBDxAGDxFEJDgPV8BBDxEGSYsHugEAAACoAXQESYtXEEiNXCQ4SInBSNHpSDnRD4SMAAAAqAF0BkmLRwjrBEmNRwhIjQyJSItUJDBIiVTIEA8oRCQgDxEEyA9XwA8pRCQgSMdEJDAAAAAADxALDxFMyBgPEQNJgwcC9kQkRwF0CEiJ3+gNPQAA9kQkIAF0CkiLfCQw6JzcCwBkSIsEJSgAAABIO0QkUHU3SIPEWFtBXEFdQV5BX13DSYnH6Yr9//9IjXQkIEyJ/+jIIQAA9kQkRwF1rOuySI18JCDoJeELAOig3gsAVUFXQVZBVUFUU1BJif5Iix9Ihdt0MPbDAXVgvygAAADoC9wLAEjB6wLHAAEAAACJWARIjUgBD1fADxFACA8RQBhJiQ7rPUiNNdFgnP9IjQ31867+TI0FWtKj/kyNDetYpf+/AwAAALrmAAAAMcDorSj//0mLHvbDAXSgi0P/g/gBdQ9Ig8QIW0FcQV1BXkFfXcNIg8P/SItrIEiF7XQovzAAAADoh9sLAEmJx0jHAAAAAABIg30AAnIQTIn/SInu6IskAADrA0Ux/78oAAAA6FzbCwBJicSLQwRJiw72wQFMiTwkdSaD4QNFMe2+AAAAAEiD+QJ1B0iNNUJD7/+D+QK5GwAAAEwPROnrH0QPtmkHQfbFAXQKSItxF0yLaQ/rCkiDwQhJ0e1Iic5BxwQkAQAAAEGJRCQETY18JAgPV8BBDxFEJAhJx0QkGAAAAABJg/3wD4PDAAAASYP9F3MTQ41ELQBBiAdJg8cBTYXtdS7rN0mNbRBIg+XwSInvSYn36KvaCwBMif5JicdJiUQkGEiDzQFJiWwkCE2JbCQQTIn/TInq6CffCwBDxgQvAEiLBCRJiUQkIEmDxAFNiSaLA4P4AXQK8IMrAQ+FtP7//0iLayBIx0MgAAAAAEiF7XQXSIN9AAB0CEiJ7+iBJAAASInv6FnaCwD2QwgBdAlIi3sY6EraCwBIid9Ig8QIW0FcQV1BXkFfXek02gsATIn/6PzeCwBmLg8fhAAAAAAAZpBVQVdBVkFVQVRTSIPsGEiLB6gBD4SyAAAASItYH0iF2w+EpQAAAEiLA0iD+AIPgpgAAABJiddJifVIiXwkCEmJwEnR6KgBdAZIi1sI6wRIg8MISffYSIPDEEUx9km8AAAAAAEAAAAx7UyJRCQQ6xGQTAHlSYPG/0iDwyhNOfB0Sw+2Q/CoAXQYSIs7SItD+Ew5+HXc6xZmLg8fhAAAAAAASI178UjR6Ew5+HXETYX/dBRMie5Mifro1NwLAEyLRCQQhcB1q0GD/gF1EzHtiehIg8QYW0FcQV1BXkFfXcNMi2QkCEyJ5+jl/P//SYsEJEiLeB/2BwF0BkiLRwjrBEiNRwhIwf0gSI0MrQAAAABIAelIjTTISI0UyEiDwijoXiAAAEmLHCRIi0MfQLUBSIM4AXeaSIPD/w+2QwioAXQGSItDEOsDSNHoSIXAdYBMY3MEiwOD+AF0BvCDKwF1PkyLeyBIx0MgAAAAAE2F/3QWSYM/AHQITIn/6MMiAABMif/om9gLAPZDCAF0CUiLexjojNgLAEiJ3+iE2AsAScHmAk2JNCTpJP///w8fgAAAAABIiweoAXUFSMHoAsOLQAPDVUFXQVZBVUFUU1BIiweoAXRKSItYH0iF23RBSYnWSYn3SIsLSIP5BHIsSLrFTuzETuzETkiJ2Ej34kjB6gJIjQRSSI0EgkiJ2kgpwkiD+gdBD5PF6xhIg/kCcw9Ig8QIW0FcQV1BXkFfXcNFMe1IichI0ehIx8X/////RTHk6y5Ii3THEEiLVMcISI0Mx0iDwRhMif9B/9ZJg8QBSIsLSInISNHoSIPF/0k5xHOuSAHoRYTtSQ9ExEiNewj2wQF0BEiLewhIjQSAD7YUx/bCAXWuSNHqSI00x0iDxgHrq5BQigUB1AwAhMB0CUiLBe7TDABZw0iNPe3TDADo4N8LAIXAdOe/GAAAAOgy1wsAD1fADxEASMdAEAAAAABIiQW90wwASI09vtMMAOjB3wsA67pmLg8fhAAAAAAADx9EAABTigWx0wwAhMB0CUiLBZ7TDABbw0iNPZ3TDADogN8LAIXAdOe/GAAAAOjS1gsASInDSI012D7v/0iJx+iw5/v/SIkdadMMAEiNPWrTDADoXd8LAOu2Zi4PH4QAAAAAAJBBVlNQSIn7i0f/SIPD/4P4AXQG8IMrAXVFTItzIEjHQyAAAAAATYX2dBZJgz4AdAhMiffoqCAAAEyJ9+iA1gsA9kMIAXQJSIt7GOhx1gsASInfSIPECFtBXuli1gsASIPECFtBXsNmLg8fhAAAAAAAVUFXQVZBVUFUU1BJicxIY8ZIjQyFAAAAAEiJD4XAD4SbAAAATYXkD4SSAAAASYnXifVJif6/KAAAAOjx1QsAxwABAAAAiWgETI1oCA9XwA8RQAhIx0AYAAAAAEmD/PBzbUiJw0mD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6KfVCwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6CbaCwBDxkQlAABIx0MgAAAAAEiDwwFJiR5Ig8QIW0FcQV1BXkFfXcNMie/oStoLAGYuDx+EAAAAAABIiw/2wQF1BkjB6QLrA4tJA4P5EbgCAAAAD0LBww8fAFVBV0FWQVVBVFNIg+xYZEiLBCUoAAAASIlEJFBIiy9A9sUBD5TASIse9sMBD5TBMMF0JzHtZEiLBCUoAAAASDtEJFAPhaUDAACJ6EiDxFhbQVxBXUFeQV9dw0D2xQF1Wonog+ADMdK/AAAAAEiD+AJ1B0iNPcc87/+D+AK4GwAAAEgPRND2wwF1VInZg+EDMcC+AAAAAEiD+QJ1B0iNNZ087/+D+QK5GwAAAEgPRMFIOcIPhXv////rTg+2VQf2wgF0D0iLfRdIi1UP9sMBdLrrDEiNfQhI0er2wwF0rA+2QweoAXQSSItzF0iLQw9IOcJ0Fek7////SI1zCEjR6Eg5wg+FK////0iF0nQN6K7XCwCFwA+FGf///0D2xQF1GUiJ6EjB6AL2wwF0FYtLAznID4X8/v//6xeLRQP2wwF160iJ2UjB6QI5yA+F4/7//0D2xQF1WjHA9sMBdFxIi0sfSDnIdFpmD+/AZg9/RCRAZg9/RCQwZg9/RCQgTI10JCBMifBA9sUBdBBIi00fSIXJSI1EJCBID0XB9sMBdC5Mi3MfTYX2dCBJizZI0e7rH0iLRR/2wwF1pDHJSDnIdaZAtQHpbf7//0yNdCQgMfZNifdIixhI0etIOfNIicFJD0LOSIs5TA9C+EiJ/UjR7U2LB0yJwkjR6kiJ6Ugp0UiD+QF2BDHt6zRJjU4ITI1ICEg580iJxkkPQvZNic1MD0LpTA9C8EkPQslA9scBdARMi24ISIP/AnMeQLUBSIN8JCAAD4Tt/f//SI18JCDoHh0AAOne/f//SInLQfbAAXQESYteCEmD+AJymkiJTCQISI0ErQAAAABIAehJjUTFAEiJBCRIjQSSTI0Mw0yJdCQYTIl8JBDrFkiJwUjR6UiNDIlMjQzLMe1Ig/gBdo9FD7ZlAEyJ5UjR7UmJ70H2xAF0BE2LfQhNjVUB6w1Ig8MoTDnLD4Qs////D7YDqAF0C0iLSwhJOc914+sLSInBSNHpSTnPddaoAXQGSItzEOsESI1zAUyJ10H2xAF0BEmLfRB1JE2F/3Q+McAPH4AAAAAAQQ+2TAUBOgwGdaBIg8ABSDnFdezrH02F/3QaTIn6TYnO6HrVCwBNifFNjVUBhcAPhXb////zQQ9vRRjzD29LGGYPdMhmD9fBPf//AABMi3QkGEyLfCQQSItsJAh0S0mNfRhIg8MYikMPqAF1CND4SA++0OsGSIsDSIsQikcPqAF1CND4SA++wOsGSIsHSIsASDnQD4VL/v//SIne6J9OAACEwA+EO/7//0mDxShMOywkD4Ri/v//SYsHSInrqAEPhLL+//9Ji14I6an+///ordMLAGYuDx+EAAAAAAAPHwBVQVdBVkFVQVRTSIHsCAEAAInVSYn2ZEiLBCUoAAAASImEJAABAAAPV8APEQdIiXwkGEjHRxAAAAAASIsGqAF1CUiJwUjB6QLrA4tIA4P5EboCAAAAD0LRg/oQD4dYAQAASI0NiDjv/0hjFJFIAcr/4g9XwA8pRCQwSMdEJEAAAAAAxkQkMARmx0QkMU9LxkQkMwC5AgAAAOnIAgAASMdEJEAAAAAAxkQkMB5IuVVOQVVUSEVOSIlMJDFIuU5USUNBVEVESIlMJDi5DwAAAOmSAgAAD1fADxFEJDjGRCQwFki5VU5BVkFJTEFIiUwkMcdEJDhBQkxFxkQkPAC5CwAAAOlfAgAAD1fADxFEJDjGRCQwGEi5T1VUX09GX1JIiUwkMcdEJDlBTkdFxkQkPQC5DAAAAOksAgAASMdEJEAAAAAAxkQkMCIPEAVVdpD/6fUAAABIx0QkQAAAAADGRCQwJg8QBQQ9rP4PEUQkMcdEJEBUSU9OuRMAAADp5gEAAA9XwA8RRCQ4xkQkMBpIuVVOSU1QTEVNSIlMJDFIuUxFTUVOVEVESIlMJDbGRCQ+ALkNAAAA6awBAAAPV8APKUQkMEjHRCRAAAAAADHJ6ZQBAAAPV8APEUQkOMZEJDASSLlDQU5DRUxMRemzAAAAD1fADxFEJDjGRCQwDsdEJDFVTktOx0QkNE5PV07pJAEAAEjHRCRAAAAAAMZEJDAgDxAFhOZZ/w8RRCQxuRAAAADpMgEAAEjHRCRAAAAAAMZEJDAiDxAFW8Wj/g8RRCQxxkQkQUS5EQAAAOkJAQAAD1fADxFEJDjGRCQwEki5REFUQV9MT1NIiUwkMWbHRCQ5UwC5CQAAAOncAAAAD1fADxFEJDjGRCQwEki5Tk9UX0ZPVU5IiUwkMWbHRCQ5RAC5CQAAAOmvAAAASMdEJEAAAAAAxkQkMBxIuUFMUkVBRFlfSIlMJDFIuVlfRVhJU1RTSIlMJDfGRCQ/ALkOAAAA63dIx0QkQAAAAADGRCQwJA8QBbblWf8PEUQkMWbHRCRBRUS5EgAAAOtPD1fADxFEJDjGRCQwDsdEJDFBQk9Sx0QkNFJURUTGRCQ4ALkHAAAA6yYPV8APEUQkOMZEJDAQSLlJTlRFUk5BTEiJTCQxxkQkOQC5CAAAAEiNVCQxSImUJLAAAABIiYwkuAAAAEiNDXAfnv9IiYwkgAAAAEjHhCSIAAAAAgAAAKgBdSWD4AMxyboAAAAASIP4AnUHSI0VkDXv/4P4ArgbAAAASA9EyOsdD7ZIB/bBAXQKSItQF0iLSA/rCkiDwAhI0elIicJIiVQkUEiJTCRYSI20JLAAAABIjZQkgAAAAEiNTCRQSIt8JBjorMECAPZEJDABdApIi3wkQOg7zQsAQPbFAXRX6AAYAABIicNJiwaoAXRITItoH02F7XQ/SYtNAEiD+QRyL0i6xU7sxE7sxE5MiehI9+JIweoCSI0EUkiNBIJMiepIKcJIg/oHD5PAiUQkDOs8SIP5AnMuZEiLBCUoAAAASDuEJAABAAAPhXACAABIi0QkGEiBxAgBAABbQVxBXUFeQV9dw8dEJAwAAAAASY1FCEiJRCQgSInISNHoScfH/////zHtSIlcJChMiWwkEOsbDx9AAEiDxQFJi00ASInISNHoSYPH/0g5xXOLTAH4gHwkDABID0TFSItUJCD2wQF0BEmLVQhIjQSARA+2NMJB9sYBdBBMi2TCEEyLdMII6w8PH0AASdHuTI0kwkmDxAFMjSzCSYPFGA9XwA8phCSQAAAADymEJIAAAABIhdt0ZUiNvCSwAAAATInmTInyTInp/9OAvCTIAAAAAHRISIuEJMAAAABIiYQkkAAAAA8QhCSwAAAADymEJIAAAADGhCSYAAAAAUiNfCRQSI20JIAAAADozs4LADHbTItsJBDrTg8fRAAASI18JDBMie7oA0wAAA+2VCQw9sIBdBlIi3QkQEiLVCQ46xVmLg8fhAAAAAAADx8ASNHqSI10JDFMi2wkEEiNfCRQ6CmvAACzAQ+2RCRQqAF0DkiLTCRgSItEJFjrCmaQSNHoSI1MJFFIjRWCaen/SImUJLAAAABIx4QkuAAAAAIAAABMiaQkwAAAAEyJtCTIAAAASI0VRuOu/kiJlCTQAAAASMeEJNgAAAACAAAASImMJOAAAABIiYQk6AAAAEiNBS9p6f9IiYQk8AAAAEjHhCT4AAAAAgAAALoFAAAASIt8JBhIjbQksAAAAOjQuwIA9kQkUAF0CkiLfCRg6J/KCwCE20iLXCQodBH2RCQwAXQKSIt8JEDohcoLAIC8JJgAAAAAD4T3/f//9oQkgAAAAAEPhOn9//9Ii7wkkAAAAOhcygsA6df9///ooswLAGaQQVZTSIPsKEmJ/mRIiwQlKAAAAEiJRCQgSIM+AHQcSInnuv/////o1fj//4ocJEiLVCQQSItEJAjrJg9XwA8pBCRIx0QkEAAAAADGBCQEZsdEJAFPS8ZEJAMAswQxwDHSidnQ6fbDAUiNdCQBSA9F8g+20UgPRdBMiffo0af4//YEJAF0CkiLfCQQ6MHJCwBkSIsEJSgAAABIO0QkIHULTInwSIPEKFtBXsPo8csLAJBVQVdBVkFVQVRTUEmJ/kjHBygAAABIhdIPhJQAAABJidRJife/KAAAAOhSyQsASInDSLgBAAAACgAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+gEyQsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4uiDzQsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6KTNCwAPH0AAVUFXQVZBVUFUU1BJif5IxwcYAAAASIXSD4SUAAAASYnUSYn3vygAAADogsgLAEiJw0i4AQAAAAYAAABIiQNMjWsID1fADxFDCEjHQxgAAAAASYP88HNtSYP8F3MOQ40EJEGIRQBJg8UB6yRJjWwkEEiD5fBIie/oNMgLAEmJxUiJQxhIg80BSIlrCEyJYxBMie9Mif5MieLos8wLAEPGRCUAAEjHQyAAAAAASIPDAUmJHkyJ8EiDxAhbQVxBXUFeQV9dw0yJ7+jUzAsADx9AAFVBV0FWQVVBVFNQSYn+SMcHBAAAAEiF0g+ElAAAAEmJ1EmJ978oAAAA6LLHCwBIicNIuAEAAAABAAAASIkDTI1rCA9XwA8RQwhIx0MYAAAAAEmD/PBzbUmD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6GTHCwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6OPLCwBDxkQlAABIx0MgAAAAAEiDwwFJiR5MifBIg8QIW0FcQV1BXkFfXcNMie/oBMwLAA8fQABVQVdBVkFVQVRTUEmJ/kjHBzwAAABIhdIPhJQAAABJidRJife/KAAAAOjixgsASInDSLgBAAAADwAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+iUxgsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4ugTywsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6DTLCwAPH0AAVUFXQVZBVUFUU1BJif5IxwcQAAAASIXSD4SUAAAASYnUSYn3vygAAADoEsYLAEiJw0i4AQAAAAQAAABIiQNMjWsID1fADxFDCEjHQxgAAAAASYP88HNtSYP8F3MOQ40EJEGIRQBJg8UB6yRJjWwkEEiD5fBIie/oxMULAEmJxUiJQxhIg80BSIlrCEyJYxBMie9Mif5MieLoQ8oLAEPGRCUAAEjHQyAAAAAASIPDAUmJHkyJ8EiDxAhbQVxBXUFeQV9dw0yJ7+hkygsADx9AAFVBV0FWQVVBVFNQSYn+SMcHJAAAAEiF0g+ElAAAAEmJ1EmJ978oAAAA6ELFCwBIicNIuAEAAAAJAAAASIkDTI1rCA9XwA8RQwhIx0MYAAAAAEmD/PBzbUmD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6PTECwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6HPJCwBDxkQlAABIx0MgAAAAAEiDwwFJiR5MifBIg8QIW0FcQV1BXkFfXcNMie/olMkLAA8fQABVQVdBVkFVQVRTUEmJ/kjHBzQAAABIhdIPhJQAAABJidRJife/KAAAAOhyxAsASInDSLgBAAAADQAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+gkxAsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4uijyAsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6MTICwAPH0AAVUFXQVZBVUFUU1BJif5IxwcMAAAASIXSD4SUAAAASYnUSYn3vygAAADoosMLAEiJw0i4AQAAAAMAAABIiQNMjWsID1fADxFDCEjHQxgAAAAASYP88HNtSYP8F3MOQ40EJEGIRQBJg8UB6yRJjWwkEEiD5fBIie/oVMMLAEmJxUiJQxhIg80BSIlrCEyJYxBMie9Mif5MieLo08cLAEPGRCUAAEjHQyAAAAAASIPDAUmJHkyJ8EiDxAhbQVxBXUFeQV9dw0yJ7+j0xwsADx9AAFVBV0FWQVVBVFNQSYn+SMcHFAAAAEiF0g+ElAAAAEmJ1EmJ978oAAAA6NLCCwBIicNIuAEAAAAFAAAASIkDTI1rCA9XwA8RQwhIx0MYAAAAAEmD/PBzbUmD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6ITCCwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6APHCwBDxkQlAABIx0MgAAAAAEiDwwFJiR5MifBIg8QIW0FcQV1BXkFfXcNMie/oJMcLAA8fQABVQVdBVkFVQVRTUEmJ/kjHBywAAABIhdIPhJQAAABJidRJife/KAAAAOgCwgsASInDSLgBAAAACwAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+i0wQsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4ugzxgsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6FTGCwAPH0AAVUFXQVZBVUFUU1BJif5IxwccAAAASIXSD4SUAAAASYnUSYn3vygAAADoMsELAEiJw0i4AQAAAAcAAABIiQNMjWsID1fADxFDCEjHQxgAAAAASYP88HNtSYP8F3MOQ40EJEGIRQBJg8UB6yRJjWwkEEiD5fBIie/o5MALAEmJxUiJQxhIg80BSIlrCEyJYxBMie9Mif5MieLoY8ULAEPGRCUAAEjHQyAAAAAASIPDAUmJHkyJ8EiDxAhbQVxBXUFeQV9dw0yJ7+iExQsADx9AAFVBV0FWQVVBVFNQSYn+SMcHIAAAAEiF0g+ElAAAAEmJ1EmJ978oAAAA6GLACwBIicNIuAEAAAAIAAAASIkDTI1rCA9XwA8RQwhIx0MYAAAAAEmD/PBzbUmD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6BTACwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6JPECwBDxkQlAABIx0MgAAAAAEiDwwFJiR5MifBIg8QIW0FcQV1BXkFfXcNMie/otMQLAA8fQABVQVdBVkFVQVRTUEmJ/kjHB0AAAABIhdIPhJQAAABJidRJife/KAAAAOiSvwsASInDSLgBAAAAEAAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+hEvwsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4ujDwwsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6OTDCwAPH0AAVUFXQVZBVUFUU1BJif5Ixwc4AAAASIXSD4SUAAAASYnUSYn3vygAAADowr4LAEiJw0i4AQAAAA4AAABIiQNMjWsID1fADxFDCEjHQxgAAAAASYP88HNtSYP8F3MOQ40EJEGIRQBJg8UB6yRJjWwkEEiD5fBIie/odL4LAEmJxUiJQxhIg80BSIlrCEyJYxBMie9Mif5MieLo88ILAEPGRCUAAEjHQyAAAAAASIPDAUmJHkyJ8EiDxAhbQVxBXUFeQV9dw0yJ7+gUwwsADx9AAFVBV0FWQVVBVFNQSYn+SMcHMAAAAEiF0g+ElAAAAEmJ1EmJ978oAAAA6PK9CwBIicNIuAEAAAAMAAAASIkDTI1rCA9XwA8RQwhIx0MYAAAAAEmD/PBzbUmD/BdzDkONBCRBiEUASYPFAeskSY1sJBBIg+XwSInv6KS9CwBJicVIiUMYSIPNAUiJawhMiWMQTInvTIn+TIni6CPCCwBDxkQlAABIx0MgAAAAAEiDwwFJiR5MifBIg8QIW0FcQV1BXkFfXcNMie/oRMILAA8fQABVQVdBVkFVQVRTUEmJ/kjHBwgAAABIhdIPhJQAAABJidRJife/KAAAAOgivQsASInDSLgBAAAAAgAAAEiJA0yNawgPV8APEUMISMdDGAAAAABJg/zwc21Jg/wXcw5DjQQkQYhFAEmDxQHrJEmNbCQQSIPl8EiJ7+jUvAsASYnFSIlDGEiDzQFIiWsITIljEEyJ70yJ/kyJ4uhTwQsAQ8ZEJQAASMdDIAAAAABIg8MBSYkeTInwSIPECFtBXEFdQV5BX13DTInv6HTBCwAPH0AASIsHqAF1BkjB6ALrA4tAA4P4Cg+UwMNmDx+EAAAAAABIiweoAXUGSMHoAusDi0ADg/gGD5TAw2YPH4QAAAAAAEiLB6gBdQZIwegC6wOLQAOD+AEPlMDDZg8fhAAAAAAASIsHqAF1BkjB6ALrA4tAA4P4Dw+UwMNmDx+EAAAAAABIiweoAXUGSMHoAusDi0ADg/gED5TAw2YPH4QAAAAAAEiLB6gBdQZIwegC6wOLQAOD+AkPlMDDZg8fhAAAAAAASIsHqAF1BkjB6ALrA4tAA4P4DQ+UwMNmDx+EAAAAAABIiweoAXUGSMHoAusDi0ADg/gDD5TAw2YPH4QAAAAAAEiLB6gBdQZIwegC6wOLQAOD+AUPlMDDZg8fhAAAAAAASIsHqAF1BkjB6ALrA4tAA4P4Cw+UwMNmDx+EAAAAAABIiweoAXUGSMHoAusDi0ADg/gHD5TAw2YPH4QAAAAAAEiLB6gBdQZIwegC6wOLQAOD+AgPlMDDZg8fhAAAAAAASIsHqAF1BkjB6ALrA4tAA4P4EA+UwMNmDx+EAAAAAABIiweoAXUGSMHoAusDi0ADg/gOD5TAw2YPH4QAAAAAAEiLB6gBdQZIwegC6wOLQAOD+AwPlMDDZg8fhAAAAAAASIsHqAF1BkjB6ALrA4tAA4P4EQ+TwYP4Ag+UwAjIw8xVQVdBVkFVQVRTSIPsGEiJ80mJ/kiLL0D2xQF1C02NZgi5AgAAAOseSYtOEEgByUi4Z2ZmZmZmZgZIOcEPg7ABAABNi2YISYntSdHtSIlMJAhIjQTNAAAAAEiNPIDoHroLAEmJx0qNDK0AAAAATAHpSItDEEmJRM8QDxADQQ8RBM8PV8APEQNIx0MQAAAAAA8QSxhIiUwkEEEPEUzPGA8RQxhIg/0CD4IAAQAASYP9AXUHMclMieDrdUyJ6kiD4v5JjXdAMckPV8BMieAPH0AASIt4EEiJftAPEAgPEU7ADxEASMdAEAAAAAAPEEgYDxFO2A8RQBhIi3g4SIl++A8QSCgPEU7oDxFAKEjHQDgAAAAADxBIQA8RDg8RQEBIg8BQSIPBAkiDxlBIOcp1okD2xQJ0MUiNDIlIi1AQSYlUzxAPEABBDxEEzw9XwA8RAEjHQBAAAAAADxBIGEEPEUzPGA8RQBhNheR0QkqNBK0AAAAATAHoSY0cxEiDw/DrCpBIg8PYTYXtdCP2Qw8BdAhIid/oaRkAAEmDxf/2Q+gBdN9Ii3v46Pa4CwDr1EiLRCQQSY0cx0mLBqgBdAxJi34I6Nu4CwBJiwZNiX4ISItMJAhJiU4QSIPIAUiDwAJJiQZIidhIg8QYW0FcQV1BXkFfXcPomb0LAMzMzMzMzMzMzFVBV0FWQVVBVFNIg+woTIs/QfbHAXQGSItvCOsESI1vCEiJfCQYSdHvSCnySIlUJBBJidVJwf0DSLnNzMzMzMzMzEwPr+lIiXQkIEiJ8EiJbCQISCnoSMH4A0gPr8FKjQwoTIn9SCnND4SxAAAASI0MiUiLVCQITI0kykiNBIBIjRzCSIPDGA9XyeshDx9AAEEPEEQkGA8RA0EPEUwkGEmDxChIg8MoSIPF/3RyTI1z6PZD6AF1CWbHQ+gAAOsqkEiLQ/jGAABIx0PwAAAAAPZD6AF0FEiLe/jowrcLAA9XyUjHQ+gAAAAASYtEJBBJiUYQQQ8QBCRBDxEGQQ8RDCRJx0QkEAAAAAD2Qw8BdIFIid/oORMAAA9Xyelx////SItMJAhIhcl0U0iDfCQQAHRLS40Ev0iNHMFIg8PwTInt6xdmLg8fhAAAAAAADx9AAEiDw9hIhe10I/ZDDwF0CEiJ3+iZFwAASIPF//ZD6AF030iLe/joJrcLAOvUTQHtSItEJBhMKShIi0QkIEiDxChbQVxBXUFeQV9dw8zMzMzMVUFXQVZBVUFUU1BJifdIif1MizZNifVJ0e1B9sYBSIk8JHUQTI1lCEmNXwhJg/4CckjrX0mD/QO7AgAAAEkPQ91IuGdmZmZmZmYGSDnDD4PEAAAASI0E3QAAAABIjTyA6Hu2CwBJicRIiUUISIldEEmLXwhJg/4CcxlJiwdIiwwkSIkBSIPECFtBXEFdQV5BX13DSIPDGEmDxBhIvQAAAAAAAAABSb7//////////uslZi4PH4QAAAAAAA8fRAAADxADQQ8RBCRIg8MoSYPEKEmDxf90pEmNfCToSI1z6Og8uQsA9kMPAXTWSIsDSIXAdM7wg0AIBEmJBCRJiWwkCEyFcwh0wkyJ50iJ3roIAAAA6LpiAQDrsOjTugsAzMzMQVdBVlNJif5Miz9MifhIg+ABdAtJi04ISIXJdQvrU0mNTghIhcl0SkmD/wJyREnR70uNBL9IjRzBSIPD8OsKkEiDw9hNhf90I/ZDDwF0CEiJ3+jpFQAASYPH//ZD6AF030iLe/jodrULAOvUSYsGg+ABSIXAdA5Ji34IW0FeQV/pW7ULAFtBXkFfw8zMzMzMSIsFmZgMAPBID7E9iJgMAMNmLg8fhAAAAAAADx9EAABIiw1xmAwAMcBIOw3obwwASA9FwcPMzMzMzMzMzMzMzEiJ+MYHAMZHGADDzMzMzMxIjQXBZAwASIPAEEiJB0iLBkiJRwhIxwY2AAAAx0cQAAAAAA9XwA8RRxhIx0coAAAAAMNmLg8fhAAAAAAADx8ASI0FgWQMAEiDwBBIiQdIi0YISIlHCKgBdAXwg0D/AcdHEAAAAAAPV8APEUcYSMdHKAAAAADDZi4PH4QAAAAAAEFWU0iD7BhIifNJif5kSIsEJSgAAABIiUQkEEiJdCQIi0YQPd0AAAB1VEmLfghIi0MISDn4dByoAXQJ8INA/wFIi0MISYlGCED2xwF0Beht3f//SIPDGEmNfhhIid7oDbULAGRIiwQlKAAAAEg7RCQQdRtMifBIg8QYW0Few0iNexBIjXQkCOj0AwAA65zoPbYLAGYuDx+EAAAAAAAPHwBIg+wYZEiLBCUoAAAASIlEJBBIiXwkCItHED3dAAAAdRVkSIsEJSgAAABIO0QkEHUVSIPEGMNIg8cQSI10JAjonAMAAOvb6OW1CwAPH0QAAEFXQVZTSIPsEEiJ80mJ/mRIiwQlKAAAAEiJRCQISIk0JItGED3dAAAAD4WaAAAASYt+CEiLQwhIOfh0F0mJRghIx0MINgAAAED2xwF0Beh93P//TY1+GEH2RhgBdQhmQccHAADrJ0mLRijGAABJx0YgAAAAAEH2RhgBdBFJi34o6AuzCwBJx0YYAAAAAEiLQyhJiUcQDxBDGEEPEQcPV8APEUMYSMdDKAAAAABkSIsEJSgAAABIO0QkCHUeTInwSIPEEFtBXkFfw0iNexBIiebouwIAAOlV////6AG1CwCQSI0FcWIMAEiDwBBIiQdIi0YISIlHCEjHRgg2AAAAx0cQAAAAAA9XwA8RRxhIx0coAAAAAMNmLg8fhAAAAAAAkFNIg+wQSIn7ZEiLBCUoAAAASIlEJAhIiTwki0cQPd0AAAB1DPZDGAF0GEiLWyjrFkiNexBIieboNAIAAPZDGAF16EiDwxlkSIsEJSgAAABIO0QkCHUJSInYSIPEEFvD6Fy0CwBmLg8fhAAAAAAAZpBIjUcIw2YuDx+EAAAAAACQQVZTSIPsKEmJ/mRIiwQlKAAAAEiJRCQgSI0FWV2e/0iJRCQYSI0FdTCp/kiJRCQQx0QkDAIAAADHRCQISgAAAEiNPZmUDABIjXQkDEiNVCQQSI1MJAhMjUQkGOgwAwAASItcJBhIid/og7YLAEiNfCQQSIneSInC6LPs//9Jiz5Ii0QkEEg5+HQcSYkGSMdEJBA2AAAAQPbHAXQV6I/a//9Ii3wkEED2xwF0Beh/2v//ZEiLBCUoAAAASDtEJCB1CEiDxChbQV7D6HKzCwBmkEFWU0iB7JgAAABIif5IjQU7LqX/SIlEJDhIx0QkQDQAAABMjXQkaEyJ97oBAAAA6JwDAABMiffoZAQAAEiJRCQISIlUJBBIjZwkgAAAAEiNdCQ4SI1UJAhIid/owJwCAEiNBamTDABIiwBIjTVfL6n+vwMAAAC6VgAAAEiJ2f/QSInf6KjFCwBMiffooMULAEFWU0iB7JgAAABIif5IjQWrLaX/SIlEJDhIx0QkQDQAAABMjXQkaEyJ97oBAAAA6AwDAABMiffo1AMAAEiJRCQISIlUJBBIjZwkgAAAAEiNdCQ4SI1UJAhIid/oMJwCAEiNBRmTDABIiwBIjTXPLqn+vwMAAAC6YAAAAEiJ2f/QSInf6BjFCwBMiffoEMULAEFXQVZTSIHsoAAAAEiJ80mJ/mRIiwQlKAAAAEiJhCSYAAAAuXuTwmUxwPAPsQ90IUiNFQkY7/9Mife+AwAAALkBAAAA6CcG//+FwA+FIAEAAEiLG0iNBQWQov9IiUQkaEjHRCRwFQAAAEiDewgAdCBIjXMISInnugEAAADoL97//4oEJEiLVCQQSIt0JAjrJg9XwA8pBCRIx0QkEAAAAADGBCQEZsdEJAFPS8ZEJAMAsAQx9jHSicHQ6agBSI1EJAFID0XCD7bJSA9FzkiJRCQ4SIlMJEBIjXwkIEiNdCRoSI1UJDjoFpsCAEyNexj2QxgBdQhmQccHAADrJkiLQyjGAABIx0MgAAAAAPZDGAF0EUiLeyjo5q4LAEjHQxgAAAAASItEJDBJiUcQDyhEJCBBDxEHD1fADylEJCBIx0QkMAAAAAD2BCQBdApIi3wkEOirrgsAuN0AAABBhwY90gijBXUNTIn3vgEAAADozwT//2RIiwQlKAAAAEg7hCSYAAAAdQ1IgcSgAAAAW0FeQV/D6LqwCwDMzMzMzMzMzMzMVUFXQVZBVUFUU0iD7DhkSIsEJSgAAABIiUQkMEyLP0SLJkiLKosZTYsoD1fADylEJBBIx0QkIAAAAABMie/oHbMLAEiD+PAPg6kAAABJicaJXCQESIP4F3MUQ40ENohEJBBIjVwkEU2F9nU160FIiWwkCEyJ9UiDxRBIg+XwSInv6LqtCwBIicNIiUQkIEiDzQFIiWwkEEiLbCQITIl0JBhIid9Mie5MifLoMbILAELGBDMASI1MJBBEiedIie6LVCQEQf/X9kQkEAF0CkiLfCQg6ImtCwBkSIsEJSgAAABIO0QkMHUZSIPEOFtBXEFdQV5BX13DSI18JBDoMLILAOirrwsAzMzMzMzMzMzMzMxTSIn7SIM+AHQKSInf6O7b///rGw9XwA8RA0jHQxAAAAAAxgMEZsdDAU9LxkMDAEiJ2FvDzMzMzMzMzMzMzMzMU0iJ+0iNBc1cDABIg8AQSIkH9kcYAXQJSIt7KOjvrAsASIt7CED2xwF0Begg1v//SInfW+n3wQsAzMzMzMzMzFNIiftIjQWNXAwASIPAEEiJB/ZHGAF0CUiLeyjor6wLAEiLewhA9scBdAXo4NX//0iJ3+i4wQsASInfW+mPrAsAzMzMzMzMzMzMzMzMzMzMSIn4D7YX9sIBdAlIi1AISItAEMNIg8ABSNHqw8zMzMxIhfZ0C/ZHDwF1BukwAAAAw+l6AwAAZi4PH4QAAAAAAPZHDwF1BelVBAAA6QAGAABIiTLGQgwESIl6EMMPH0AAVUFXQVZBVUFUU1BBidZJifdJifyKRw+EwA+EFAEAAND4TA++6EmB/fMPAAC48w8AAEkPQsVIg8ANQYD9FLkgAAAASA9CwUg9AQQAALsIAAAASA9D2UgB2EiDwP9I99tIIcNIid/olqsLAEiJxYnYwegDidnB6QWAwWEEAUiB+wEEAAAPtsAPtskPQshIx0UIBAAAAIhNDEyJbQBBDxAEJA8RRQ1IjQXNjgwAigCoAXUNSInvTIn+6PQAAADrcopFDDwDdiW/QAAAAOgxqwsAx0AIBAAAAEiLTQBIiQjHQAwCAAABSIloEOsWPAF1CkiLRRiAeAwEc81Iie/o4MwAAEGKTwyA+QN3D4D5AXUXSYtPGIB5DARyDUiJx0yJ/uit3AAA6wtIicdMif7oEM0AAEmJx02JPCRIuAAAAAAAAAABSYlEJAhkSIsEJQAAAABIjYDQ////SIsYSIP7AnwmSIPD/2RIiwQlAAAAAEiNgND///9IiRhIg8QIW0FcQV1BXkFfXcPoNk8BAITAdOhMiedEifZIg8QIW0FcQV1BXkFfXem5UwEAZg8fhAAAAAAAQVdBVkFUU0iB7JgBAABJifZkSIsEJSgAAABIiYQkkAEAAEiF/3RySIn7TYX2D4SjAAAATIs7TYX/dGhNiyZNheR0fL8gAAAA6AOqCwAPV8APKQDHQAgEAAAAxkAMAEiJWBBMiXAYTQH8TIkgMdKAewwAuQAAAAB1BA+2Sw1BgH4MAHUFQQ+2Vg050Q9CyoDBAYhIDUmJxutATYX2dTvpvgAAALj8////8A/BQwiD4P2D+AR1JEiJ3+gjoQAA6xq4/P////BBD8FGCIPg/YP4BA+EswAAAEmJ3kGAfgwAD4WAAAAAQQ+2Rg1Ig/gQcnVJiw48L3cQg+D+SI0VABLv/0g7DIJzXkiFyXRWSIkMJEiNfCQQungBAAAx9ujgrAsASMdEJAheAAAASMeEJIgBAAAAAAAASInjSInfTIn26I1aAABIid/oJVwAAEmJxvZEJAgBdA9Ii3wkEOgRqQsA6wNFMfZkSIsEJSgAAABIO4QkkAEAAHUfTInwSIHEmAEAAFtBXEFeQV/DTIn36E+gAADpQP///+glqwsADx9EAABBV0FWQVRTUEmJ90mJ/kyLZwhJD8xJg8T/D4WpAAAASI0FAowMAIoASYseqAF1DUiJ30yJ/ugm/v//63iKQww8AnUFSInf60Q8A3Ynv0AAAADoWqgLAEiJx8dACAQAAABIiwNIiQfHRwwCAAABSIlfEOsZPAF1CkiLQxiAeAwEc8tIid/oB8oAAEiJx0GKRww8A3cOPAF1FEmLRxiAeAwEcgpMif7o1tkAAOsITIn+6DzKAABJiQZNheR1G0iDxAhbQVxBXkFfw0yJ54nW6O5XAQDpSP///0mJRCRITInnSIPECFtBXEFeQV/pAVgBAJBVQVdBVkFVQVRTUEGJ1kmJ90mJ/IpHD4TAD4QUAQAA0PhMD77oSYH98w8AALjzDwAASQ9CxUiDwA1BgP0UuSAAAABID0LBSD0BBAAAuwgAAABID0PZSAHYSIPA/0j320ghw0iJ3+hWpwsASInFidjB6AOJ2cHpBYDBYQQBSIH7AQQAAA+2wA+2yQ9CyEjHRQgEAAAAiE0MTIltAEEPEAQkDxFFDUiNBY2KDACKAKgBdQ1Mif9Iie7otPz//+tyikUMPAN2Jb9AAAAA6PGmCwDHQAgEAAAASItNAEiJCMdADAIAAAFIiWgQ6xY8AXUKSItFGIB4DARzzUiJ7+igyAAAQYpPDID5A3cPgPkBdRdJi08YgHkMBHINSInHTIn+6G3SAADrC0iJx0yJ/uiAyQAASYnHTYk8JEi4AAAAAAAAAAFJiUQkCGRIiwQlAAAAAEiNgND///9IixhIg/sCfCZIg8P/ZEiLBCUAAAAASI2A0P///0iJGEiDxAhbQVxBXUFeQV9dw+j2SgEAhMB06EyJ50SJ9kiDxAhbQVxBXUFeQV9d6XlPAQBmDx+EAAAAAABBV0FWQVRTUEmJ90mJ/kiLXwhID8tIg8P/D4WtAAAASI0FYokMAIoATYsmqAF1DUyJ/0yJ5uiG+///63xBikQkDDwCdQVMiefrRjwDdii/QAAAAOi4pQsASInHx0AIBAAAAEmLBCRIiQfHRwwCAAABTIlnEOsaPAF1C0mLRCQYgHgMBHPJTInn6GPHAABIicdBikcMPAN3DjwBdRRJi0cYgHgMBHIKTIn+6DLRAADrCEyJ/uhIyAAASYkGSIXbdRtIg8QIW0FcQV5BX8NIid+J1uhKVQEA6UT///9IiUNISInfSIPECFtBXEFeQV/pXlUBAGYuDx+EAAAAAAAPH0AAQVdBVlNJifZIifv2Rw8BdS9Jiwbwg0AIBEiJA0i4AAAAAAAAAAFIiUMISLj//////////kmFRgh1SVtBXkFfw0yLO0H2Rg8BdE5JiwZIhcB0RvCDQAgESIkDSYtGCEgLQwhIuQAAAAAAAAABSDnIdDtIid9Mifa6BQAAAOh/UQEA6ylIid9Mifa6BQAAAFtBXkFf6WhRAQBIi3sISA/PSIPH/3UrQQ8QBg8RA7j8////8EEPwUcIg+D9g/gED4V3////TIn/W0FeQV/p0JsAAOhLUAEA685mDx+EAAAAAABT9kcPAXRASIn7SItHCEiJx0gPz0iDx/91DUjB6DioAXQRSIs76w7oFFABAIpDD6gBde8x/7j8////8A/BRwiD4P2D+AR0AlvDW+lxmwAAkFVBVlNIidVIiftIg/oPdxlIid9Iieq5AQAAAOiwTwAAQADtQIhrD+tRQYnOSIn3SInuMdLoZwAAAEiJA0i4AAAAAAAAAAFIiUMIZEiLBCUAAAAASI2A0P///0iLKEiD/QJ8HEiDxf9kSIsEJQAAAABIjYDQ////SIkoW0FeXcPoHEgBAITAdPJIid9EifZbQV5d6alMAQBmDx+EAAAAAABVQVdBVkFVQVRTSIHsKAEAAEiJVCQIZEiLBCUoAAAASImEJCABAABIhfYPhM0AAABJifRJif5IjQV7hgwAigCoAQ+FvgAAAA9XwA8phCQAAQAADymEJPAAAAAPKYQk4AAAAA8phCTQAAAADymEJMAAAAAPKYQksAAAAA8phCSgAAAADymEJJAAAAAPKYQkgAAAAA8pRCRwDylEJGAPKUQkUA8pRCRADylEJDAPKUQkIEmNTCT/SLqz7+u/ianQAEiJyEj34g8pRCQQSInPSCnXSNHvSAHXSMHvC0iDxwFIibwkEAEAAEiB+V/+AQAPh7EAAABIjUQkEOmwAAAARTH/6QYCAABJgfzzDwAAD4clAgAASItMJAhMAeFIgfnzDwAAuPMPAABID0LBSIPADUiD+RS5IAAAAEgPQsFIPQEEAAC7CAAAAEgPQ9lIAdhIg8D/SPfbSCHDSInf6OGhCwBJiceJ2MHoA4nZwekFgMFhBAFIgfsBBAAAD7bAD7bJD0LIScdHCAQAAABBiE8MTYknSY1/DUyJ9kyJ4uhBpgsA6WcBAABIwecD6JOhCwBIiYQkGAEAAEUx/+l3AAAADx8ASAHYSIPA/0j320ghw0iJ3+hroQsASInFSMdACAAAAACJ2MHoA4nZwekFgMFhBAFIgfsBBAAAD7bAD7bJD0LIx0UIBAAAAIhNDEyJbQBIjX0NTIn2TInq6MSlCwBIi4QkGAEAAEqJLPhJg8cBTQHuTSnsdFZJgfzzDwAAQb3zDwAATQ9C7EiLRCQISo0MKEiB+fMPAAC48w8AAEgPQsFIg8ANSIP5FLkgAAAASA9CwbsIAAAASD0BBAAAD4JA////uyAAAADpNv///0yLtCQYAQAAZi4PH4QAAAAAAA8fQABJg/8CckpMif27AQAAAEUx/+slZi4PH4QAAAAAAA8fAEuJBP5Jg8cBSI1DAkiDwwFIOetIicNzyEmLRN74SDnrc95JizTeSInH6AL2///r0E2LPkiDvCQQAQAAIXINSIu8JBgBAADoVaALAGRIiwQlKAAAAEg7hCQgAQAAD4WYAAAATIn4SIHEKAEAAFtBXEFdQV5BX13DvwAQAADo/58LAEiJww8oBbVRlf4PEQBIjXgNuvMPAABMifbogaQLAEmBxvMPAABJgcQN8P//v0AAAADoyZ8LAEi5BAAAAAIAAAFIiUgISMcA8w8AAEiJWBBIicdMifZMieJIi0wkCOg9wwAAZEiLDCUoAAAASDuMJCABAAAPhGv////o8aELAJBTSIn7SIt/CEgPz0iDx/91F0iLO7j8////8A/BRwiD4P2D+AR0CVvD6GNLAQDr4lvp25YAAGYuDx+EAAAAAACQU0iJ+4pHD6gBdBRIi0MISInHSA/PSIPH/3UqSMHoOEiLOw9XwA8RA6gBdBdIhf90Erj8////8A/BRwiD4P2D+AR0DFvD6AZLAQCKQw/r0Fvpe5YAAGYuDx+EAAAAAACQQVdBVkFVQVRTSIPsIEmJ/mRIiwQlKAAAAEiJRCQYRA+2JkH2xAF0D0yLfghJgf8AAgAAcxHrL02J50nR70mB/wACAAByIEiLBkiD4P5Ig8D/SNHoQfbEAbkLAAAASA9FyEk5z3MwQfbEAXQGSIt2EOsESIPGAUiJ90yJ/jHS6B37//9IicNB9kYPAQ+FgAAAAOnBAAAATItuEEiLRgFIi04ISIlMJA9IiUQkCA9XwA8RBkjHRhAAAAAAvzgAAADoHJ4LAEiJw0iDwCFB9sQBx0MIBAAAAESIYyBIi0wkCEiLVCQPSIlLIUiJUyhMiWswSI0N+TsAAEiJSxhMiTvGQwwESQ9FxUiJQxBB9kYPAXRGTYsmTYXkdD5Ni34ISQ/PTInwSYPH/w+FpAAAAEiJGLj8////8EEPwUQkCIPg/YP4BA+EogAAAE2F/3RLTIn/6MtNAQDrQUmJHki4AAAAAAAAAAFJiUYIZEiLBCUAAAAASI2A0P///0iLGEiD+wJ8OEiDw/9kSIsEJQAAAABIjYDQ////SIkYZEiLBCUoAAAASDtEJBh1VEyJ8EiDxCBbQVxBXUFeQV/D6OJBAQCEwHTWTIn3vgYAAADocUYBAOvHTIn/vgYAAADoEk0BAEmJHkmNR0jpQ////0yJ5+h+lAAATYX/dKHpUf///+hPnwsAZi4PH4QAAAAAAA8fRAAAQVdBVkFVQVRTSInTSYn0SYn/9kcPAQ+EhwAAAE2LN0iD+w8PhocAAABNhfYPhBQBAABNi28ISQ/NSYPF/w+FeQEAAEEPtkYMg/gFD4K2AAAAicHB4QWBweDz//88go0Exfj///8PQ8GDwPNImEg52A+CkQAAAEGLRgiD+AQPhYQAAABJjX4NTInmSIna6L6lCwBJiR5Nhe0PhBEBAADpmQAAAEUx9kiD+w8Ph3n///9NhfYPhN0AAABJi38ISA/PSIPH/w+FBAEAAEyJ/0yJ5kiJ2rkBAAAA6ONHAAAA20GIXw+4/P////BBD8FGCIPg/YP4BA+FtQAAAEyJ9+hekwAA6agAAABMiedIid4x0uh8+P//SYkHTYXtD4W4AAAAuPz////wQQ/BRgiD4P2D+AQPhKoAAABNhe10c0yJ7+jMSwEA62lMiedIid4x0ug9+P//SYkHSLgAAAAAAAAAAUmJRwhkSIsEJQAAAABIjYDQ////SIsYSIP7Anx2SIPD/2RIiwQlAAAAAEiNgND///9IiRjrGUyJ/0yJ5kiJ2rkBAAAA6BdHAAAA20GIXw9MifhbQVxBXUFeQV/DTInvvgYAAADoF0sBAOl1/v//6A1HAQDp8v7//0mJRUjpP////0yJ9+h3kgAATYXtdMHpSf///+iYPwEAhMB0s0yJ/74GAAAA6CdEAQDrpA8fRAAAVUFXQVZBVUFUU0iD7BhIhdIPhEUEAABBic5JiddJifBJifyKRw+oAXRoSYssJEiF7XRmTIlkJAhJi1wkCEgPy0iDw/8PhTcEAACKTQyA+QJEiXQkBA+FUgEAAItFCIP4BA+FQwEAAEiJ70yJ/kmJ7EyJxejYUwAASYnoTInlSIXSD4QjAQAASInHSYnU6UkCAAAx7UiF7XWaSIlsJBDQ+EgPvui4DwAAAEgp6Ew5+A+DlwEAAESJdCQESY0EL0g98w8AALnzDwAASA9CyEiDwQ1Ig/gUuCAAAABID0LISIH5AQQAALsIAAAASA9D2EiNBBlIg8D/SPfbSCHDSInfTYnF6LmZCwBJicYPV8APEQBIidhIwegDSIPAAUiJ2UjB6QVIg8FhSIH7AQQAAEyJ40gPQshBx0YIBAAAAA+2wY0Uxfj////B4AUF4PP//4D5gg9D0EGITgyDwvNMY+JJKexNOfxND0PnSY1+DUiJ3kiJ6ujpnQsASY08LkiDxw1Mie5MieLo1p0LAEwB5UmJLk0p5w+E5gAAAEiJXCQIMdtIi2wkEOlLAQAAik0MSInohMl1JEiJ6GYPH4QAAAAAAItICIP5BA+FnwAAAEiLQBgPtkgMhMl06ID5BQ+ClgAAAItICIP5BA+FigAAAA+2SAyJysHiBYHC4PP//4H5ggAAAI00zfj///8PQ/JIiwiDxvNMY+ZMOeF0XUkpzE05/E0PR+dIOegPhJ8AAABIiepMASJIi1IYSDnCdfRMASBIjTwISIPHDemPAAAASY08LEyJxkyJ+ugFnQsARAD9QADtQYhsJA/p8QEAAIpIDID5BQ+Dav///02JxUUx5OtqTIkzSLgAAAAAAAAAAUiJQwhkSIsEJQAAAABIjYDQ////SIndSIsYSIP7Ag+MAQIAAEiDw/9kSIsEJQAAAABIjYDQ////SIkY6ZABAABJjRQMSIkQSI08KUiDxw1NicVMicZMieLod5wLAEmJ7k0p5w+EhAAAAEyJ7kwB5kiNBTZ7DACKAKgBdVxMifpJgf/yDwAASYnddxhIuM3MzMzMzMzMSfcmSMHqA0w5+kkPQtdMKfpIifdMif7oQ/T//0yJ90iJxugo7f//SItcJAhIhe0PhL0AAABIiQNNhe0PhPoAAADrLEGKRgw8AkmJ3XUqTIn3SItcJAjrb0iLRCQISIkoSIXbD4TSAAAASYndSInoSYlFSOnSAAAASYn0PANIi1wkCHcOPAF1MUmLRhiAeAwEcie/QAAAAOgDlwsASInHx0AIBAAAAEmLBkiJB8dHDAIAAAFMiXcQ6wtMiffovrgAAEiJx0yJ5ki4zczMzMzMzMxI9ydIweoDMclMKfpID0PKTIn66Fa6AABIhe0PhUP///9IiQNIuAAAAAAAAAABSIlDCGRIiwQlAAAAAEiNgND///9IidlIixhIg/sCfFdIg8P/ZEiLBCUAAAAASI2A0P///0iJGE2F7XUPSIPEGFtBXEFdQV5BX13DTInvSIPEGFtBXEFdQV5BX13pf0YBAEiJ30SJ9k2JxOhBRgEATYng6bP7//9Iicvo4ToBAITAdLRIid+LdCQE6HE/AQDrpujKOgEAhMCLdCQEdJ5Iie9Ig8QYW0FcQV1BXkFfXelMPwEAZi4PH4QAAAAAAGaQ6cs4AABmLg8fhAAAAAAAkOmbPAAAZi4PH4QAAAAAAJBIifGKVg9Iizb2wgF0GkiF9nQV8INGCAT2Rw8BdR26EgAAAOnY7f//McD2wgFID0TBdRLQ+kgPvtLrDboSAAAA6Wvv//9IixZIica5EwAAAOkLAAAAZi4PH4QAAAAAAJBVQVdBVkFUU0iD7CBkSIsEJSgAAABIiUQkGEiF0g+EjgAAAEGJzkiJ1UiJ+4pHD6gBdU3Q+EwPvvhNjSQvSYP8D3c9D1fADykEJEiJ57kQAAAASInq6FaqCwBIjTwsMfb2Qw8BSA9E80yJ+uiQmQsADygEJA8RA0UA5ESIYw/rMUiJ90iJ7jHS6JPx///2Qw8BdRBIid9IicZEifLo/+z//+sOSInfSInGRIny6J/u//9kSIsEJSgAAABIO0QkGHUNSIPEIFtBXEFeQV9dw+j9lgsAZi4PH4QAAAAAAA8fAFVBV0FWQVVBVFNIgexYAgAASYn1SYn8ZEiLBCUoAAAASImEJFACAACKRw+oAXUKicHQ+UgPvsnrB0mLDCRIiwlMOekPgs8CAACoAXRkTYs8JE2F/3RbTYt0JAhJD85Jg8b/dV1BgH8MAnVqSYsXTCnqTIn/TInu6PStAAC5/P////BBD8FPCEiJw4Ph/YP5BA+ExwEAAEiF2w+EzwEAAEmJHCRNhfYPhM8BAADpRwIAAEyJ50yJ7ugEPwAA6boBAABMife+FAAAAOjCQwEAQYB/DAJ0lk05Lw+GvAAAAE2F7Q+EugAAAEiNvCTQAAAAuoABAAAx9ug1lwsAQYpHDEyJ+4TAD4WqAAAA6x4PH0AASIPDGEiJ3UmJxUiLXQAPtkMMhMAPhYUAAABIi0sQTInoSCsBc9pIi4Qk0AAAALovAAAAqAF0CEiLlCTgAAAASI1rEEiDwxhIicFI0elIOdF0JkiNlCTYAAAAqAF0CEiLlCTYAAAASIsDSIkEykiDhCTQAAAAAuuSSI28JNAAAABIid7oSFYAAOuAMdvppQAAAPBBg0cIBEyJ++mXAAAATYXtdGFIiytMKe08AXUITANrEEiLWxjwg0MIBEiF7XQrvyAAAADoppILAA9XwA8pAMdACAQAAABIiSjGQAwBTIloEEiJWBhIicPrH7j8////8A/BQwiD4P2D+AQPhPgAAAAx2+sF8INDCARIjawk2AAAAEiLhCTQAAAASIP4Ag+DswAAAEiFwHQNSIu8JNgAAADoWpILALj8////8EEPwUcIg+D9g/gED4U5/v//TIn/6KuJAABIhdsPhTH+//8PV8BBDxEEJE2F9nV9ZEiLBCUoAAAASDuEJFACAAAPhVkBAABIgcRYAgAAW0FcQV1BXkFfXcNmLg8fhAAAAAAAZpBIg+D+SIt0gfjwg0YIBEiJ3+hq5///SInDSIuEJNAAAABIg8D+SImEJNAAAABIg/gBD4ZN////SInpqAF0wkiLjCTYAAAA67hJiV5ITIn36LxBAQDpcv///0iJ3+j/iAAAMdvpAv///w9XwA8pRCQgSMdEJDAAAAAASI01RHew/kyNdCQgTIn36DOi+/9IjQVlMHX/SImEJNAAAABIx4Qk2AAAABYAAABMjbwkoAAAAEyJ/0yJ7uj1OwAASI0FoW93/0iJRCRwSMdEJHgVAAAATInn6Lg7AABIjVwkQEiJ30iJxujIOwAASI1sJAhIjbQk0AAAAEiNTCRwSInvTIn6SYnY6Oh+AgBMifdIie7ozTsAAEiJ7+jlpQsASI0FvnMMAEiLAEiNNX4f7v+/AwAAALqsAwAATInx/9DoAJMLAFVBV0FWQVVBVFNIgexYAgAASYn1SYn8ZEiLBCUoAAAASImEJFACAACKRw+oAXUKicHQ+UgPvsnrB0mLDCRIiwlMOekPgkMDAACoAXRLTYs8JE2F/3RCSYtsJAhID81Ig8X/dVdBgH8MAnVkTIn/TInu6CqmAABIicNIhdsPhVMCAAAPV8BBDxEEJEiF7Q+ESwIAAOnAAgAA0PhID77YTCnrSY08HDH2TInq6JGTCwAA20GIXCQP6SMCAABIie++FQAAAOjYPwEAQYB/DAJ0nE05Lw+GCAEAAE2F7Q+EBgEAAEiJLCRIjbwk0AAAALqAAQAAMfboR5MLAEGLTwiD+QRAD5TFQYpHDEyJ+4TAdDeD+QQPhe8AAAA8BA+FVgEAAEiLK+nwAAAADx+EAAAAAACLQwiD+ARAD5TFD7ZDDITAD4WvAAAASItLGEyJ6EgrAXNeSIuEJNAAAAC6LwAAAKgBdAhIi5Qk4AAAAEyNcxhIg8MQSInBSNHpSDnRdFBIjZQk2AAAAKgBdAhIi5Qk2AAAAEiLA0iJBMpIg4Qk0AAAAALrFmYuDx+EAAAAAABmkEiDwxBJid5JicVJix5A9sUBD4Vp////Me3pbP///0iNvCTQAAAASIne6BJSAADr2jHb6c4AAADwQYNHCARMifvpwAAAAE2F7Q+EggAAAECE7Q+FEf///0iLKzwBdQpMi3MQSItbGOsDRTH28INDCARMKe10K78gAAAA6GGOCwAPV8APKQDHQAgEAAAASIkoxkAMAUyJcBBIiVgYSInD6zW4/P////APwUMIg+D9g/gETI20JNgAAAAPhBEBAAAx20iLLCTrG/CDQwgETCkr6wXwg0MIBEiLLCRMjbQk2AAAAEiLhCTQAAAASIP4Ag+DpAAAAEiFwHQNSIu8JNgAAADo+40LALj8////8EEPwUcIg+D9g/gED4SdAAAASIXbD4St/f//SYkcJEiF7XV6ZEiLBCUoAAAASDuEJFACAAAPhWoBAABIgcRYAgAAW0FcQV1BXkFfXcNmDx+EAAAAAABIg+D+SIt8gfjwg0cIBEiJ3uga4///SInDSIuEJNAAAABIg8D+SImEJNAAAABIg/gBD4Zc////TInxqAF0wkiLjCTYAAAA67hIiV1ISInv6Gw9AQDpdf///0yJ/+ivhAAASIXbD4Vb////6QP9//9Iid/omYQAAOni/v//D1fADylEJCBIx0QkMAAAAABIjTXgcrD+TI10JCBMiffoz537/0iNBfsqWv9IiYQk0AAAAEjHhCTYAAAAFgAAAEyNvCSgAAAATIn/TInu6JE3AABIjQU9a3f/SIlEJHBIx0QkeBUAAABMiefoVDcAAEiNXCRASInfSInG6GQ3AABIjWwkCEiNtCTQAAAASI1MJHBIie9MifpJidjohHoCAEyJ90iJ7uhpNwAASInv6IGhCwBIjQVabwwASIsASI01Ghvu/78DAAAAusMDAABMifH/0OicjgsAZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7CgGAABIidVJif1kSIsEJSgAAABIiYQkIAYAAA9XwA8RB4pGD6gBdQqJwtD6TA++8usGSIsWTIsySTnuSQ9C7kkp7kk5zkwPQ/FNhfYPhEMIAACoAQ+EegIAAEyLJk2F5A+EbgIAAEmD/g9MiSwkD4efAgAATI18JDC6EAIAAEyJ/zH26DuPCwBJiwQkSIlEJEhIx0QkUAAAAADHRCRY/////0jHhCTAAAAAAAAAAEyJ/0yJ5ugKRgAASItEJDhIKegPhvYHAABIAWwkMEiJRCQ4SClsJEhIi0QkOEyJ7U2J9Uk5xg+GTAIAAEm8AAAAAAEAAABNifVIiywk6yFmDx9EAABIjXwkMOjWEAAASItEJDhMAf1JOcUPhhgCAABIi0wkMEiD+AhyKkiLEUiJlCSgBAAASItMAfhIiUwkEEiJVQBIi0wkEEiJTAX461UPH0QAAEiD+ARyKosRiZQkoAQAAItMAfyJTCQQiVUAi0wkEIlMBfzrLGYuDx+EAAAAAABmkEiFwHQbihGIVQBIicJI0eqKHBGIXBUAikwB/4hMBf+QTIt8JDhNKf1MKXwkSA+ErQAAAItUJFiF0g+IQf///0iDfNRoAA+ENf///0yLRCRQTYXAD4SWAAAASItMJGgPtnwkXA+2QQ9Ig8D/SDn4D4WBAAAAMfYx/w8fhAAAAAAASDn6D4SAAAAASItM/HAPtkQ8XUiDwAEPtlkPTAHmSIPHAUg52HTZiEQ8XEjB/iCQSItMwRBIiUz0YA+2eQ5AD7bHiEQ0W0iNVv9Ig/4BSInWf91Mi0QkUOskZg8fRAAAD1fADylEJDAxwOmg/v//MdIxwOtNQIDHAUCIfCRcQA+2x0iLTMEQ6wIxyUwrAUyJRCRQikEMPAF1FUiLcRBIi1EYikIMPAVzD0iLUhDrDUiJyjH2PAVy8UiDwg1IAfJIiwFIiVQkMEiJRCQ46T7+//8xyagBSA9EzkgB6UmD/ghyFkiLAUqLTDH4SYlFAEuJTDX46ZAAAABJg/4EcmyLAUKLTDH8QYlFAEOJTDX863hBgHwkDAJIiXQkCHV3TInnSInuTIny6NWiAABIicPp5gQAAEiLRCQwSYP9CA+CZQQAAEiLCEiJjCSgBAAASotEKPhIiUQkEEiJTQBIi0QkEEqJRC346QYFAACKAUGIRQBMifBI0eiKFAFBiFQFAEKKRDH/Q4hENf9FAPZFiHUP6f4EAABIjbwkoAQAALqAAQAAMfboGIwLAEiNfCRQulAEAAAx9ugHjAsATIlkJDhIiWwkQEyJdCRISMdEJDACAAAATI20JKgEAAC4AgAAAGaQqAFIjUwkOEwPROFIicFI0elIjQxJSYtszOhJi1zM8E2LfMz4SI1I/kiJTCQwSIXtD4S6AAAASIXbdVVMO30AdU/wg0UIBEiJbCQQSIuEJKAEAAC6LwAAAKgBdAhIi5QksAQAAEiJwUjR6Ug50Q+E6gIAAEyJ8qgBdAhIi5QkqAQAAEiJLMrpVwIAAA8fRAAAD7ZVDITSD4SiAAAAgPoBdQhIA10QSIttGPCDRQgETYX/D4TDAQAAvyAAAADob4cLAA9XwA8pAMdACAQAAABMiTjGQAwBSIlYEEiJaBjpvgEAAGYuDx+EAAAAAAAPH0AASIuEJKAEAABMifGoAXQISIuMJKgEAABIicJIg+L+SIt0kfhIjVD+SImUJKAEAABIg+L+SIt8kfhIg8D8SImEJKAEAADop9z//+liAQAASY00H0iLVRBMiypMOe4PhrIBAABIidpMKeoPg7IBAAAPV8APKUQkEEjHRCQgAAAAALovAAAAqAF0BUiLVCRASSndSNHpSDnRD4QJAgAASI0ESQ9XwEEPEQTEScdExBAAAAAASItEJDBIg8ACSIlEJDBIi00YTSnvSIlMJBBIx0QkGAAAAABMiXwkILovAAAAqAF0BUiLVCRASInBSNHpSDnRD4TIAQAASI1UJDioAXQFSItUJDhIjQRJSItMJCBIiUzCEA8QRCQQDxEEwkiLRCQwSIPAAkiJRCQwSItNEEiJTCQQSIlcJBhMiWwkILovAAAAqAF0BUiLVCRASInBSNHpSDnRTIssJA+EJwEAAEiNVCQ4qAF0BUiLVCQ4SI0ESUiLTCQgSIlMwhAPEEQkEA8RBMJIg0QkMALrcbj8////8A/BRQiD4P2D+AQPhPgAAAAxwGYuDx+EAAAAAAAPH0AASIlEJBBIi4wkoAQAAL4vAAAA9sEBdAhIi7QksAQAAEiJykjR6kg58g+EjwAAAEyJ9vbBAXQISIu0JKgEAABIiQTWSIOEJKAEAAACSItEJDBIg/gCD4L6AAAATItkJDjp/Pz//0iJVCQQSIlcJBjrDkiLdRhIiXQkEEiJVCQYTIl8JCC6LwAAAKgBdAVIi1QkQEjR6Ug50UyLLCR0N0iNBElIi0wkIEmJTMQQDxBEJBBBDxEExEiDRCQwAuuOSI28JKAEAABIjXQkEOjxRQAA6Xf///9IjXwkMEiNdCQQ6G1EAADpY////0iJ7+gwfAAA6fv+//9IjXwkMEiNdCQQ6ExEAABIi0QkMOkB/v//SI18JDBIjXQkEOgzRAAASItEJDDpUv7//0mD/QQPgp4AAACLCImMJKAEAABCi0Qo/IlEJBCJTQCLRCQQQolELfzpnAAAAEiLjCSgBAAASIPhAXQITIu0JKgEAABJix5IhcB0FUiLfCQ46DSECwBIi4wkoAQAAIPhAUiFyXQNSIu8JKgEAADoF4QLAEmJXQBIuAAAAAAAAAABSYlFCEi4//////////5Ii3QkCEiFRgh0UkyJ77oWAAAA6LMwAQDrQ02F7XQcigiITQBMielI0emKFAiIVA0AQopEKP9CiEQt/0UA9kyLLCRFiHUP9oQkwAAAAAF0DUiLvCTIAAAA6J6DCwBkSIsEJSgAAABIO4QkIAYAAHVTTInoSIHEKAYAAFtBXEFdQV5BX13DSIXtD4QQ+P//i0QkWIXAeBdIg3zEaAB0D0iNfCQwSInu6LBAAADrDUiNfCQwSInu6KETAABMiywk6dv3///og4ULAA8fAEiD7BhkSIsEJSgAAABIiUQkEEiJNCRIiVQkCEiJ5kiJyuiKLwAAZEiLDCUoAAAASDtMJBB1BUiDxBjD6ECFCwDpGzEAAGYuDx+EAAAAAACQSIPsGGRIiwQlKAAAAEiJRCQQSIk0JEiJVCQIikcPqAF1CND4SA++wOsGSIsHSIsASInmSDnQdQfoI08AAOsocxVIicLoF08AAInBMcCD+QEZwAnI6xHoBU8AAInBhcC4AQAAAA9FwWRIiwwlKAAAAEg7TCQQdQVIg8QYw+ivhAsAZi4PH4QAAAAAAA8fRAAAUIpHD6gBdQjQ+EgPvtDrBkiLB0iLEIpGD6gBdR/Q+EgPvsBIOcJ0H3Mj6GFQAACJwTHAg/kBGcAJyFnDSIsGSIsASDnCdeFY6UNQAABIicLoO1AAAInBhcC4AQAAAA9FwVnDZi4PH4QAAAAAAA8fAEFXQVZBVFNIg+woSYnXSYn2SIn+ZEiLBCUoAAAASIlEJCCKRw+oAXVXicHQ+UgPvtlMKftyVQ9XwA8pBCSoAXROSIsGSIXAdEbwg0AIBEiJBCRIuAAAAAAAAAABSIlEJAhIuP/////////+SIVGCHQlSInnuggAAADoMi4BAOsWSIsOSIsZTCn7c6sx2+tcDxAGDykEJEmJ5EyJ50iJ3uic7P//TIl0JBBMiXwkGEiNdCQQTInnTIn66KItAACJw/ZEJA8BdCRIi3wkCEgPz0iDx/91NEiLPCS4/P////APwUcIg+D9g/gEdCVkSIsEJSgAAABIO0QkIHUcidhIg8QoW0FcQV5BX8PowiwBAOvF6Dt4AADr1OgUgwsADx9AAEFXQVZBVFNIg+wYSYn2SIn+ZEiLBCUoAAAASIlEJBCKRw+oAXUKicHQ+UgPvtnrBkiLDkiLGUGKTg/2wQF1VdD5TA+++Uwp+3JVD1fADykEJKgBdE5IiwZIhcB0RvCDQAgESIkEJEi4AAAAAAAAAAFIiUQkCEi4//////////5IhUYIdCVIiee6CAAAAOj+LAEA6xZJiw5MizlMKftzqzHb61APEAYPKQQkSYnkTInnSIne6Gjr//9MiedMifZMifroKi4AAInD9kQkDwF0JEiLfCQISA/PSIPH/3U0SIs8JLj8////8A/BRwiD4P2D+AR0JWRIiwQlKAAAAEg7RCQQdRyJ2EiDxBhbQVxBXkFfw+iaKwEA68XoE3cAAOvU6OyBCwBmLg8fhAAAAAAAZpBTSIn7D1fADxEHSMdHEAAAAABIifdIid7oEwAAAEiJ2FvDZi4PH4QAAAAAAA8fQABBV0FWU0iD7BBIifNJif72Rw8BdTIPtgOoAXQ+SItLCEiD+Q52QKgBD4UyAQAAxkMQAMYDHvYDAQ+FUQEAAEiNQwHpTAEAAEmLBkyLOA+2A6gBdHxIi0sI63xIicFI0elIg/kOd8C6DwAAAEG5DwAAAEkpyUyLA0yJx0iD5/5Ig8f/qAG+FgAAAEgPRfdIifBIKchMOchzHEgp8kjHBCQAAAAASInfSYnIRTHJ6O+ECwBEigNIjUMBQfbAAXQESItDEA+FsgAAAMYDHumyAAAASInBSNHpTIn/SCnPdmgPhOwAAABMiwNMicJIg+L+SIPC/6gBvhYAAABID0XySInwSCnISDn4cx9MifpIKfJIxwQkAAAAAEiJ30mJyEUxyeh8hAsARIoDSI1DAUH2wAF0BEiLQxAPhaAAAABDjQw/iAvpmQAAAKgBdXlCxkQ7AQBFAP9EiDv2AwF1eumJAAAASItDEMZADwBIx0MIDwAAAPYDAXUa6cT+//9Ix0MIDwAAAMZADwD2AwEPhK/+//9Ii0MQSYsOSYtWB0iJUAdIiQhBikYP0PhID77wSInfSMfC/////0iDxBBbQV5BX+mtkAsASItDEELGBDgATIl7CPYDAXQUSItbEOsSTIl7CELGBDgA9gMBdexIg8MBTIn3SIneSIPEEFtBXkFf6Q8AAABmLg8fhAAAAAAADx9EAABBV0FWQVVBVFNIgewwAgAASYn3SIn7ZEiLBCUoAAAASImEJCgCAAAPV8APKQQk9kcPAXQFSIs76wIx/0iJ5ugtAgAAhMB0FkiLNCRIi1QkCEyJ/+h4gQsA6eEBAABIjXwkELoQAgAAMfbocoALAIpLD/bBAXUKicjQ+EgPvsDrBkiLA0iLAEiJRCQoSMdEJDAAAAAAx0QkOP////9Ix4QkoAAAAAAAAAD2wQF1FEiJXCQQSIlEJBhIhcB1IOlmAQAASIszSI18JBDoEjcAAEiLRCQoSIXAD4RLAQAASbwAAAAAAQAAAEyNdCQQ6xoPHwBMiffoCAIAAE0B70iDfCQoAA+EIAEAAEiLdCQQTItsJBhMif9MierotIALAEwpbCQoD4T4AAAAi1QkOIXSeMFIg3zUSAB0uUyLRCQwTYXAD4R1AAAASItMJEgPtnwkPA+2QQ9Ig8D/SDn4dWQx9jH/SDn6dG9Ii0z8UA+2RDw9SIPAAQ+2WQ9MAeZIg8cBSDnYdN2IRDw8SMH+IA8fRAAASItMwRBIiUz0QA+2eQ5AD7bHiEQ0O0iNVv9Ig/4BSInWf91Mi0QkMOsPMcAxyetQQIDHAUCIfCQ8QA+2x0iLTMEQ6wIxyUwrAUyJRCQwilEMgPoBdRZIi3EQSItBGIpQDID6BXMQSItAEOsOSInIMfaA+gVy8EiDwA1IAfBIiwlIiUQkEEiJTCQY6dn+//8PV8APKUQkEPaEJKAAAAABdA1Ii7wkqAAAAOgSewsAZEiLBCUoAAAASDuEJCgCAAB1EUiBxDACAABbQVxBXUFeQV/D6Dl9CwBmDx+EAAAAAABIifGKRww8BXIRSIsHSIPHDUiJOUiJQQiwAcM8AXQUPAJ0LDwEdU9IiwdIi1cQSIkR6+FIi0cYilAMgPoFchhIixdIi3cQSAHwSIPADesdSInO6QmZAACA+gJ0HYD6BHUVSItAEEgDRxBIixdIiQFIiVEIsAHDMcDDSIsXSIt3EEiJx+lImQAADx+EAAAAAABBV0FWQVRTUEmJ/0iLh5AAAABIg/gCcmhNjaeYAAAATInhqAF0B0mLj5gAAABIicJIg+L+SItckfhIg8D+SYmHkAAAAIpLDITJdESA+QF1CkiLSxBIi0MY6wUxyUiJ2EiLE4B4DAR1BkiLcBDrBEiNcA1IAc5JiTdJiVcISYlHEEyJ+EiDxAhbQVxBXkFfw02Nt5AAAABmLg8fhAAAAAAAui8AAACoAXQHSYuXoAAAAEiNcxhIicFI0elIOdF0MkyJ4qgBdAdJi5eYAAAASIsGSIkEykmDh5AAAAACSItbEA+2SwyEyQ+FX////0mLBuuvTIn36Jc8AADr4Q8fRAAAVUFXQVZBVUFUU0iD7ChJiddJifVJif5kSIsEJSgAAABIiUQkIA9XwA8RB0iD+g8Ph4sBAABBDxEGQ40EP0GIRg9Ji1UITDn6TIl0JAgPg1oCAABJvAAAAAABAAAATInz6yZmLg8fhAAAAAAADx9AAEyJ7+iI/v//SYtVCEwB80k51w+GKAIAAEmLdQBIid/oPH0LAE2LdQhNKfdNKXUYD4SrAAAAQYtVKIXSeMNJg3zVOAB0u02LRSBNhcAPhJ0AAABJi004QQ+2fSwPtkEPSIPA/0g5+A+FiQAAADH2Mf9IOfoPhI8AAABJi0z9QEEPtkQ9LUiDwAEPtmkPTAHmSIPHAUg56HTYQYhEPSxIwf4gZi4PH4QAAAAAAA8fRAAASItMwRBJiUz1MA+2eQ5AD7bHQYhENStIjVb/SIP+AUiJ1n/cTYtFIOsjZg8fRAAAD1fAQQ8RRQAx0ukd////McAx0utOQIDHAUGIfSxAD7bHSItMwRDrAjHJTCsBTYlFIIpRDID6AXUWSItxEEiLQRiKUAyA+gVzEEiLQBDrDkiJyDH2gPoFcvBIg8ANSAHwSIsRSYlFAEmJVQjpvP7//0GLRSiFwA+IswAAAEmDfMU4AA+EpwAAAE2NZSBJi10ISYH//wEAAA+HGwIAAEw5+w+CEgIAAEmLfQBMif4x0ujs0///SIlEJBBIuAAAAAAAAAABSIlEJBhkSIsEJQAAAABIjYDQ////SIsoSIP9Ag+MxgUAAEiDxf9kSIsEJQAAAABIjYDQ////SIkoQfZGDwEPhAYGAABJi0YISInHSA/PSIPH/w+FyQUAAEjB6DioAQ+EzgUAAEmLPunIBQAASYtFCE2LZRDwQYNEJAgETDn4D4YPAQAAQYB8JAwED4XYAQAASYtEJBDp0wEAAEyJ80mLdQBIid9MifroEXsLAEmLRQhIicFMKfl2Fk0BfQBJiU0ITSl9GEyLdCQI6ZYFAABNhf9Mi3QkCA+EiAUAAEkpRRgPhAsCAABBi3UohfYPiPIBAABJg3z1OAAPhOYBAABNi00gTYXJD4QvBAAASYtVOEEPtkUsD7Z6D0iDx/9IOccPhRsEAABIuwAAAAABAAAARTHAMf8xwEg5xg+EDwQAAEmLVMVAQQ+2bAUtSIPFAQ+2Sg9IAd9Ig8ABSDnNdNhBiGwFLEjB/yBIi1TqEEmJVP0wD7ZCDg+26EGIbD0rSI1P/0iD/wFIic9/3U2LTSDpswMAAEmLXQhJOxwkTIl0JAgPg4EBAABBgHwkDAQPhUwBAABJi0QkEEiF2w+ETAEAAEmLbQBIKcW/IAAAAOhMdQsAD1fADykAx0AIBAAAAEiJGMZADAFIiWgQTIlgGEmJxOkyAQAASMdEJBAAAAAASI1MJBBMiedMif5IidrorNwAAEmJRQBJiVUISItEJBBJiQZIuAAAAAAAAAABSYlGCGRIiwQlAAAAAEiNgND///9IixhIg/sCD4y9AwAASIPD/2RIiwQlAAAAAEiNgND///9IiRjp+AMAAEmNRCQNSYtdAEgpw78gAAAA6J90CwAPV8APKQDHQAgEAAAATIk4xkAMAUiJWBBMiWAYSYkGSLgAAAAAAAAAAUmJRghkSIsEJQAAAABIjYDQ////SIsYSIP7Ag+MyAIAAEiDw/9kSIsEJQAAAABIjYDQ////SIkY6XQDAABMie/oAfr//+lzAwAAD1fAQQ8RRQDpZgMAAEmNRCQNSIXbD4W0/v//uPz////wQQ/BRCQIg+D9g/gED4RiBAAARTHkSYtNCEmLhZAAAABJKU0YSIP4AnJoSY2tmAAAAEkpzw8fgAAAAABIiemoAXQHSYuNmAAAAEiJwkiD4v5Ii1yR+EiDwP5JiYWQAAAATIszTTn+d0Xwg0MIBEyJ50iJ3uhDyf//SIsLSSlNGEmJxEkpz0mLhZAAAABIg/gBd6lMi3QkCE2JJki4AAAAAAAAAAFJiUYI6UIBAACKQwyEwA+FqgAAAEmJ7us/Zi4PH4QAAAAAAA8fQADwg0YIBEyJ5+jjyP//SYnESItDEEiLAEkpx0kpRRhIg8MYSIndSItdAA+2QwyEwHVjSItzEEw5PnbGSYuFkAAAALovAAAAqAF0B0mLlaAAAABIjWsQSIPDGEiJwUjR6Ug50XQfTInyqAF0B0mLlZgAAABIiwNIiQTKSYOFkAAAAALrokmNvZAAAABIid7oDjYAAOuRTIszPAF1CkiLaxBIi1sY6wIx7U2F/3Q58INDCAS/IAAAAOiFcgsAD1fADykAx0AIBAAAAEyJOMZADAFIiWgQSIlYGEyJ50iJxugOyP//SYnESLkAAAAAAAAAAYB7DAR1BkiLQxDrBEiNQw1IAehMAfhNKf5JiUUATYl1CEmJXRBNKX0YTIt0JAhNiSZJiU4IZEiLBCUAAAAASI2A0P///0iLGEiD+wIPjJEAAABIg8P/ZEiLBCUAAAAASI2A0P///0iJGOkqAQAAMckxwOtDBAFBiEUsD7bATItEwhBNKwhNiU0gQYpADDwBdQ1Ji1AQSYtIGIpBDOsFMdJMicE8BXIGSIPBDesESItJEEgB0UmLAEmJTQBJiUUI6dQAAADoSBYBAITAD4S7AAAATIn3vgoAAADo0xoBAOmpAAAA6CkWAQCEwA+EqAAAAEyJ80yJ974KAAAA6LEaAQBkSIsEJSgAAABIO0QkIA+FswEAAEiJ2OmTAAAA6PAVAQCEwA+ERPr//0iNfCQQvgoAAADoeRoBAOkw+v//6M8VAQCEwHROTIn3vgoAAADoXhoBAOs/6AcdAQBBikYPqAEPhTL6//8x/7j8////8A/BRwiD4P2D+AQPhDIBAAAPEEQkEEEPEQZMOft2Mk0BfQBNKX0ITSl9GGRIiwQlKAAAAEg7RCQgD4UbAQAATInwSIPEKFtBXEFdQV5BX13DTYsMJE2FyQ+EjwAAAEmLVThBD7ZFLA+2cg9Ig8b/SDnGD4V7AAAASL0AAAAAAQAAAEGLXShFMcCF20EPTtgx9jHAkEg5w3RoSYtUxUBBD7Z8BS1Ig8cBD7ZKD0gB7kiDwAFIOc903EGIfAUsSMH+IA8fAEiLVPoQSYlU9TAPtkIOD7b4QYh8NStIjU7/SIP+AUiJzn/dTYsMJOsMMckxwOtDBAFBiEUsD7bATItEwhBNKwhNiQwkQYpADDwBdQ1Ji1AQSYtIGIpBDOsFMdJMicE8BXIGSIPBDesESItJEEgB0UmLAEmJTQBJiUUI6eT+///oLGcAAOnE/v//TInn6B9nAADpkfv//+j1cQsADx9EAABVQVdBVkFVQVRTUEiLRwhIi08YSCnBSIlPGEiLl5AAAABIg/oCD4JFAQAASIn1SYn+TI2/kAAAAEgpxUyNp5gAAABIi7+YAAAASInrDx9AAPbCAUiJ+EkPRMRIidZIg+b+SIt0sPhIg8L+SYkXSIsGSCnDchVIKcFJiU4YSIndSIP6AnPL6eYAAACKTgyEyXRJgPkBD4WuAAAASItOEEiLdhiAfgwED4SoAAAASI1WDemjAAAAZi4PH4QAAAAAAJBJKU4YSIPGGEiJxUmJ9UmLdQAPtk4MhMl1YkiLRhBIiwhIiehIKchz10mLhpAAAAC6LwAAAKgBdAdJi5agAAAATI1uEEiDxhhIicFI0elIOdF0H0yJ4qgBdAdJi5aYAAAASIsGSIkEykmDhpAAAAAC65xMif/opjEAAOuSSIsGgPkBD4RS////McmAfgwED4VY////SItWEEgBykgB6kgp6EmJFkmJRghJiXYQSSluGEiDxAhbQVxBXUFeQV9dw5BIifiKTw/2wQF0CEiLOEiF/3UXMdL2wQFID0TQigQyw0iDxxhIicZIiz8PtkcMPAR3M4TAdBo8BHQwPAJ0NEgDdxBIg8cYSIs/698PH0QAAEiLTxBIifBIKwFzxEiDxxBIiz/rxYpENw3DSItHEIoEMMPpWY0AAGYPH4QAAAAAAEFXQVZBVUFUU0mJ/4pHD6gBdVbQ+EwPvvBJgf7zDwAAdlZMiffoVm0LAEmJxEyJ/0iJxugY8P//vyAAAADoPm0LAEmJxcdACAQAAABIjQVtCwAASYlFGE2JdQBBxkUMBE2JZRDpmQAAAEmLB0yLMEmB/vMPAAB3qrjzDwAASQ9CxkiDwA1Jg/4UuSAAAABID0LBSD0BBAAAuwgAAABID0PZSAHYSIPA/0j320ghw0iJ3+jKbAsASYnFSMdACAAAAACJ2MHoA4nZwekFgMFhBAFIgfsBBAAAD7bAD7bJD0LIQcdFCAQAAABBiE0MTYl1AE2J7EmDxA1Mif9MieboTu///0mLXwhID8tIg8P/dS1Jiz+4/P////APwUcIg+D9g/gEdCdNiS9Ihdt1JkyJ4EyJ8ltBXEFdQV5BX8NIid++CwAAAOhHHAEA68TowGMAAOvSTIlrSEiJ3+hiHAEA68xVQVdBVkFVQVRTSIHsGAQAAEmJ1kmJ9EiJ+2RIiwQlKAAAAEiJhCQQBAAARIpvDEGA/QIPhaMBAABMjXwkELoQAgAATIn/Mfbog28LAEiLA0iJRCQoSMdEJDAAAAAAx0QkOP////9Ix4QkoAAAAAAAAABMif9Iid7oUyYAAEiDfCQoAA+EAQIAAEm9AAAAAAEAAABMjXwkEOsaZg8fRAAATIn/6Ejx//9Ig3wkKAAPhNYBAABIi3QkEEiLVCQYTInnQf/WSItEJBhIKUQkKA+ErgEAAItUJDiF0njESIN81EgAdLxIi0QkMEiFwA+EeQAAAEiLTCRID7Z8JDwPtnEPSIPG/0g5/nVoMfYx/w8fAEg5+nRwSItM/FAPtmw8PUiDxQEPtlkPTAHuSIPHAUg53XTdQIhsPDxIwf4gDx9AAEiLTOkQSIlM9EAPtnkOQA+270CIbDQ7SI1G/0iD/gFIicZ/3EiLRCQw6w8xwDHJ61BAgMcBQIh8JDxAD7bXSItM0RDrAjHJSCsBSIlEJDCKWQyA+wF1FkiLURBIi0EYilgMgPsFcxBIi0AQ6w5Iicgx0oD7BXLwSIPADUgB0EiLCUiJRCQQSIlMJBhIg3wkKAAPhd3+///prgAAAEiNfCQQMe26AAQAADH26OFtCwBJiefrLGYuDx+EAAAAAABmkIH9gAAAAHRYSItDGEhjzYPFAUiJRMwQSItbEEQPtmsMRYTtdNsPV8APKQQkSInfTIn+6Cnv//+EwHQPSIs0JEiLVCQITInnQf/Whe10U0hjxYPF/0iLXMQIRA+2awzrwEiJ30yJ5kyJ8uiS/f//vX8AAABIi5wkCAQAAEQPtmsM654PV8APKUQkEPaEJKAAAAABdA1Ii7wkqAAAAOifaQsAZEiLBCUoAAAASDuEJBAEAAB1EkiBxBgEAABbQVxBXUFeQV9dw+jFawsADx9EAABVQVdBVkFVQVRTSIHsmAEAAGRIiwQlKAAAAEiJhCSQAQAAD7ZvDIP9BXIdiejB4AUF4PP//0CA/YKNDO34////D0PISGPB6xBIiftAgP0EdTlIiwNIg8AoRTHtSQHFZEiLBCUoAAAASDuEJJABAAAPhS4DAABMiehIgcSYAQAAW0FcQV1BXkFfXcNMjXQkGEiNfCQQRTHtuoABAAAx9uhdbAsASYngTI1MJAjrHA8fAEiJwkiD4v5Ii1yR+EiDwP5IiUQkEECKawxIx0QkCAAAAABAgP0CdEhJg8UgQITtD4XbAAAASItDEA+2SAyD+QUPgvcAAACJyMHgBQXg8///gPmCjQzN+P///w9DyEhjyenrAAAAZi4PH4QAAAAAAJBJg8VAgHsNAEQPtmMORA+2ew8PhPUAAABFOPwPhMABAABJwecDScHkAw8fgAAAAABIxwQkAAAAAEqLRCMQSIkEJEiLTCQQvi8AAAD2wQF0BUiLdCQgSInKSNHqSDnydCVMifb2wQF0BUiLdCQYSIkE1kiDRCQQAkmDxAhNOed1sOkLAQAASI18JBBMicZMic3oOzkAAEmJ6UmJ4OvaDx8ASItbGEiJXCQID7ZDDIP4BXI4icHB4QWBweDz//88go0Exfj///8PQ8FImOsvgPkED4XBAAAATInpTIsoSYPFKEkBzTHA6bIAAAA8BA+Fs/7//0yJ6EyLK0mDxShJAcVIx0QkCAAAAADp1AAAAEU4/A+EywAAAEnB5wNJweQD6zIPttGNNNX4////weIFgcLg8///gPmCD0PySGPOTAHoSAHISYnFSYPECE055w+EjwAAAEqLVCMQD7ZKDID5AXQcMcCA+QVzuYD5BHXZSIsKTAHoTI0sAUmDxSjryUiLUhgPtkoMuCAAAACA+QVy2euQSItEJAjrPkiJRCQISItbGA+2SwyD+QVyHYnKweIFgcLg8///gPmCjQzN+P///w9DykhjyesMgPkEdTZIiwtIg8EoSQHNSInDSIXAD4XE/f//SItEJBBIg/gCcn9MifGoAQ+Emf3//0iLTCQY6Y/9//9IhcAPhJv9//9Ii0wkEL4vAAAA9sEBdAVIi3QkIEiJykjR6kg58nQgTIn29sEBdAVIi3QkGEiJBNZIg0QkEAJAimsM6WD9//9IjXwkEEyJzk2Jx0yJzeh0NwAASYnpTYn4QIprDOk+/f//SIXAD4TK/P//SIt8JBjo0mULAOm7/P//6BhoCwAPH4QAAAAAAEFXQVZBVFNIgewYAgAASInzSYn/ZEiLBCUoAAAASImEJBACAABIiee6EAIAADH26BxpCwCKSw/2wQF1ConI0PhID77A6wZIiwNIiwBIiUQkGEjHRCQgAAAAAMdEJCj/////SMeEJJAAAAAAAAAA9sEBdRNIiRwkSIlEJAhIhcB1HulfAQAASIszSInn6L8fAABIi0QkGEiFwA+ERgEAAEm8AAAAAAEAAABJiebrFmaQTIn36Ljq//9Ig3wkGAAPhCEBAABIizQkSItUJAhMif/o63cLAEiLRCQISClEJBgPhPkAAACLVCQohdJ4w0iDfNQ4AHS7TItEJCBNhcAPhHcAAABIi0wkOA+2fCQsD7ZxD0iDxv9IOf51ZjH2Mf9mkEg5+nRvSItM/EAPtlw8LUiDwwEPtkEPTAHmSIPHAUg5w3TdiFw8LEjB/iAPH0QAAEiLTNkQSIlM9DAPtnkOQA+234hcNCtIjUb/SIP+AUiJxn/dTItEJCDrDzHAMcnrUECAxwFAiHwkLEAPtsdIi0zBEOsCMclMKwFMiUQkIIpZDID7AXUWSItREEiLQRiKWAyA+wVzEEiLQBDrDkiJyDHSgPsFcvBIg8ANSAHQSIsJSIkEJEiJTCQI6dr+//8PV8APKQQk9oQkkAAAAAF0DUiLvCSYAAAA6MRjCwBkSIsEJSgAAABIO4QkEAIAAHUSTIn4SIHEGAIAAFtBXEFeQV/D6OplCwBmLg8fhAAAAAAAuA0AAADDZi4PH4QAAAAAALjzDwAAw2YuDx+EAAAAAACJ+MHgBQXg8///QID/go0M/fj///8PQ8iDwfNIY8HDkEFXQVZTSIHsoAAAAEiJ+2RIiwQlKAAAAEiJhCSYAAAASIH/9A8AAHNEjUMNicHB6QPB6AUEYYDBAUiB+/QDAAAPtskPtsAPQsFkSIsMJSgAAABIO4wkmAAAAA+FnwAAAEiBxKAAAABbQV5BX8MPV8APKUQkIEjHRCQwAAAAAEiNNSGb6v9MjXQkIEyJ9+iOc/v/SI0FLUOi/0iJRCRoSMdEJHAPAAAATI18JDhMif9Iid7oWQ0AAEiNXCQISI10JGhIid9MifrohE4CAEyJ90iJ3uhpDQAASInf6IF3CwBIjQVaRQwASIsASI01GvHt/78DAAAAuvMHAABMifH/0OicZAsAZi4PH4QAAAAAAGaQuCAAAADDZi4PH4QAAAAAALggAAAAw2YuDx+EAAAAAAC4IAAAAMNmLg8fhAAAAAAASIX/dBxTSIn79kcgAXQJSIt7MOj4YQsASInfW+nvYQsAw2YuDx+EAAAAAAAPH0AASIX/dBZTSIn7SIt/EOjOYQsASInfW+nFYQsAw8zMzMxBV0FWQVRTSIPsGEmJ/mRIiwQlKAAAAEiJRCQQRA+2PkH2xwF0P0iLXghIg/sPdkFIgfsAAgAAciBIiwZIg+D+SIPA/0jR6EH2xwG5CwAAAEgPRchIOctzVkH2xwF0PUiLdhDrO0yJ+0jR60iD+w93v0H2xwF0BkiLdhDrBEiDxgFMifdIidq5AQAAAOj/DAAAANtBiF4P6cMAAABIg8YBSIn3SIneMdLos73//+tvTItmEEiLRgFIi04ISIlMJAdIiQQkD1fADxEGSMdGEAAAAAC/OAAAAOjEYAsASI1IIUH2xwHHQAgEAAAARIh4IEiLFCRIi3QkB0iJUCFIiXAoTIlgMEiNFaX+//9IiVAYSIkYxkAMBEkPRcxIiUgQSYkGSLgAAAAAAAAAAUmJRghkSIsEJQAAAABIjYDQ////SIsYSIP7AnwzSIPD/2RIiwQlAAAAAEiNgND///9IiRhkSIsEJSgAAABIO0QkEHUkSIPEGFtBXEFeQV/D6OAEAQCEwHTbTIn3vgkAAADobwkBAOvM6HhiCwDMzMzMzMzMzEFXQVZBVFNIg+wYSYn+ZEiLBCUoAAAASIlEJBAPth72wwF0cUyLZghJgfz/AQAAdnNIiwZMi34QSIPg/kiDwP9I0ej2wwG5CwAAAEgPRchJOcxzYkiDxgH2wwFMD0T+TIn/TInmMdLoVLz//0iFwA+E2wAAAEH2Rg8BD4WqAAAATIn3SInGugQAAADocLP//+m7AAAASYncSdHsSYH8/wEAAHeN9sMBD4SPAAAASIt2EOmKAAAASItGAUiLTghIiUwkB0iJBCQPV8APEQZIx0YQAAAAAL84AAAA6CFfCwBIjUgh9sMBx0AIBAAAAIhYIEiLFCRIi3QkB0iJUCFIiXAoTIl4MEiNFQT9//9IiVAYTIkgxkAMBEkPRc9IiUgQQfZGDwEPhFb///9MifdIica6BAAAAOgWtv//6xRIg8YBTIn3TIniuQQAAADo8MP//2RIiwQlKAAAAEg7RCQQdQxIg8QYW0FcQV5BX8Po/2ALAMzMzMzMzMzMzMzMzMzMzEFXQVZBVFNIg+wYSYn+ZEiLBCUoAAAASIlEJBAPth72wwF0aEyLZghJgfz/AQAAdmpIiwZMi34QSIPg/kiDwP9I0ej2wwG5CwAAAEgPRchJOcxzWUiDxgH2wwFMD0T+TIn/TInmMdLo1Lr//0H2Rg8BD4SqAAAATIn3SInGuhMAAADo6bf//+m7AAAASYncSdHsSYH8/wEAAHeW9sMBD4SPAAAASIt2EOmKAAAASItGAUiLTghIiUwkB0iJBCQPV8APEQZIx0YQAAAAAL84AAAA6KpdCwBIjUgh9sMBx0AIBAAAAIhYIEiLFCRIi3QkB0iJUCFIiXAoTIl4MEiNFY37//9IiVAYTIkgxkAMBEkPRc9IiUgQQfZGDwEPhVb///9MifdIica6EwAAAOiPtf//6xRIg8YBTIn3TIniuRMAAADo2cf//2RIiwQlKAAAAEg7RCQQdQxIg8QYW0FcQV5BX8PoiF8LAMzMzMzMzMzMQVdBVkFUU0iB7BgCAABJif9kSIsEJSgAAABIiYQkEAIAAIpHD4pOD4TAdA/2wQF1G4nK0PpID77S6xf2wQF1eQ8QBkEPEQfp5wAAAEiLFkiLEkiLHkiB+v8BAAB3K/bBAQ+EoQAAAEiF2w+EmAAAAIB7DAUPgt8AAABIg8MNTIn/SIne6Y4AAAAxwPbBAUgPRNjwg0MIBEiF2w+EkwAAAEH2Rw8BdXxMif9Iid66AgAAAOhZsP//63pIiwbwg0AIBEmJB0i4AAAAAAAAAAFJiUcIZEiLBCUAAAAASI2A0P///0iLGEiD+wIPjLwCAABIg8P/ZEiLBCUAAAAASI2A0P///0iJGOsrMcD2wQFID0TGTIn/SInGuQIAAADoL8H//+sQTIn/SIneugIAAADoLbP//2RIiwQlKAAAAEg7hCQQAgAAD4WHAgAASIHEGAIAAFtBXEFeQV/DTDn+D4SMAQAASYnmuhACAABMifcx9uhMXwsASIsDSIlEJBhIx0QkIAAAAADHRCQo/////0jHhCSQAAAAAAAAAEyJ90iJ3ugcFgAASIN8JBgAD4SLAQAASbwAAAAAAQAAAEmJ5usVkEyJ9+gY4f//SIN8JBgAD4RnAQAASIs0JEiLVCQITIn/uQQAAADoZsD//0iLRCQISClEJBgPhDoBAACLVCQohdJ4vkiDfNQ4AHS2TItEJCBNhcB0dkiLTCQ4D7Z8JCwPtnEPSIPG/0g5/nVlMfYx/5BIOfp0b0iLTPxAD7ZcPC1Ig8MBD7ZBD0wB5kiDxwFIOcN03YhcPCxIwf4gDx9EAABIi0zZEEiJTPQwD7Z5DkAPtt+IXDQrSI1G/0iD/gFIicZ/3UyLRCQg6w8xwDHJ61BAgMcBQIh8JCxAD7bHSItMwRDrAjHJTCsBTIlEJCCKWQyA+wF1FkiLURBIi0EYilgMgPsFcxBIi0AQ6w5Iicgx0oD7BXLwSIPADUgB0EiLCUiJBCRIiUwkCOna/v//qAF0aUmLB0iFwHRh8INACARIiQQkSLgAAAAAAAAAAUiJRCQISLj//////////kmFRwh0QUiJ50yJ/roIAAAA6M4GAQDrLw9XwA8pBCT2hCSQAAAAAQ+E6v3//0iLvCSYAAAA6NpZCwDp2P3//0EPEAcPKQQkSInmTIn/6HIAAAD2RCQPAQ+Euv3//0iLfCQISA/PSIPH/3VDSIs8JLj8////8A/BRwiD4P2D+AQPhZL9///o+lAAAOmI/f//6CD+AACEwA+Ee/3//0yJ/74CAAAA6KsCAQDpaf3//+hRBQEA67boqlsLAMzMzMzMzMzMzMxBV0FWQVRTSIHsGAIAAEiJ80mJ/2RIiwQlKAAAAEiJhCQQAgAAikcPik4PhMB0G/bBAXUnhMkPiPEAAADQ+UgPvtFMif9Iid7rOfbBAXVDDxADQQ8RB+ksAwAATIszSYsWSIH6AAIAAA+DiAAAAEGAfgwFD4K/AAAASYPGDUyJ/0yJ9rkCAAAA6OO9///p9QIAAEyLM0iLewhID89Ig8f/D4UDAwAAD1fADxEDTYk3SLgAAAAAAAAAAUmJRwhkSIsEJQAAAABIjYDQ////SIsYSIP7Ag+M2QIAAEiDw/9kSIsEJQAAAABIjYDQ////SIkY6ZECAABIi3sISA/PSIPH/w+FxAIAAA9XwA8RA0H2Rw8BD4W2AQAATIn/TIn2ugIAAADoCKz//+laAgAAD1fADxED6U8CAABMOfsPhKIBAABIieO6EAIAAEiJ3zH26I1bCwBJiwZIiUQkGEjHRCQgAAAAAMdEJCj/////SMeEJJAAAAAAAAAASInfTIn26F0SAABIg3wkGAAPhKEBAABJvAAAAAABAAAASYnm6xZmkEyJ9+hY3f//SIN8JBgAD4R8AQAASIs0JEiLVCQITIn/uQQAAADoprz//0iLRCQISClEJBgPhE8BAACLVCQohdJ4vkiDfNQ4AHS2TItEJCBNhcB0dkiLTCQ4D7Z8JCwPtnEPSIPG/0g5/nVlMfYx/5BIOfp0b0iLTPxAD7ZcPC1Ig8MBD7ZBD0wB5kiDxwFIOcN03YhcPCxIwf4gDx9EAABIi0zZEEiJTPQwD7Z5DkAPtt+IXDQrSI1G/0iD/gFIicZ/3UyLRCQg6w8xwDHJ61BAgMcBQIh8JCxAD7bHSItMwRDrAjHJTCsBTIlEJCCKWQyA+wF1FkiLURBIi0EYilgMgPsFcxBIi0AQ6w5Iicgx0oD7BXLwSIPADUgB0EiLCUiJBCRIiUwkCOna/v//TIn/TIn2ugIAAADooq3//+mkAAAAqAF0YkmLB0iFwHRa8INACARIiQQkSLgAAAAAAAAAAUiJRCQISLj//////////kmFRwh0OkiJ50yJ/roIAAAA6PkCAQDrKA9XwA8pBCT2hCSQAAAAAXRNSIu8JJgAAADoCVYLAOs+QQ8QBw8pBCRIieZMif/opPz///ZEJA8BdCRIi3wkCEgPz0iDx/91ZEiLPCS4/P////APwUcIg+D9g/gEdFVkSIsEJSgAAABIO4QkEAIAAHVJSIHEGAIAAFtBXEFeQV/D6JIBAQDp8/z//+g4+gAAhMB0y0yJ/74CAAAA6Mf+AADrvOhwAQEA6TL9///oZgEBAOuV6N9MAADrpOi4VwsAzMzMzMzMzMyKRw+oAXUH0PhID77Aw0iLB0iLAMPMzMzMzMzMzMzMzEFWU1BIiftMjXcQSIn3TIn26FrXAQBMKfBMiTNIiUMISIPECFtBXsPMzMzMzMzMzA+2FvbCAXQNSItWCEiLdhDp21oLAEiDxgFI0erpz1oLAMzMzMzMzMzMzMzMzMzMzEFWU0iD7BhIifJJif5IAfdBikYP0PhID77wSInwSCnQSIP4CHIhSIsPSIlMJBBJi3Q2+EiJdCQISYkOSItMJAhJiUwG+OtDSIP4BHIdiw+JTCQQQYt0NvyJdCQIQYkOi0wkCEGJTAb86yBIhcB0G4oPQYgOSInGSNHuigw3QYgMNopMB/9BiEwG/0GKRg/Q+EgPvthIKdNJjTweMfbozlcLAADbQYheD0iDxBhbQV7DSIP6CHIxSIsGSIlEJPhIi0QW+EiJRCTwhMl0CEjHRwgAAAAASItEJPhIiQdIi0Qk8EiJRBf4w0iD+gRyMIsGiUQk+ItEFvyJRCTwhMl0D8dHBAAAAABIx0cIAAAAAItEJPiJB4tEJPCJRBf8w0iF0nQaigaIB0mJ0EnR6EKKBAZCiAQHikQW/4hEF/+EyXQQSMdHCAAAAABIxwQXAAAAAMPMzMzMzMzMzMzMzMzMzMxBV0FWQVVBVFNJidZJif+KRw+oAXUL0PhID77YTIn/6xFJiz+KRww8BXJMSIsfSIPHDUyLJkyLbghJOd1JD0LdTInmSIna6KVWCwBMOfN0GIXAdRRMif9MieZMiepIidlNifDoiBgAAIXAD5TAW0FcQV1BXkFfwzwED4TbAAAAPAIPhcEAAAAPtkcNhcAPhH0AAABEjUD/icKD4gd0FDHbD7ZPDkiLfM8Qg8MBOdp18CnYQYP4B3JYg8AIDx9EAAAPtk8OSItMzxAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSIt80RCDwPiD+Ah/sA+2Rw5Ii0THEIpQDID6AXVsSItIEEiLeBiKVwyA+gVzZkiLfxDrZGYPH4QAAAAAAEiLfxAPtkcMhMB09DwBdRZIi0cQSItPGOsRSIsfSIt/EOnM/v//McBIiflIix+AeQwFcg1IjTwBSIPHDemx/v//SANBEEiJx+ml/v//MclIiceA+gVymkiDxw1IAc9IixjpjP7//8zMzMzMzMzMzMxBV0FWQVRTUEmJ1kmJ90mJ/IpHD6gBdQvQ+EgPvthMiefrEkmLPCSKRww8BXJpSIsfSIPHDUGKRw+oAXUL0PhID77ATIn+6xVJizeKRgw8BQ+COwEAAEiLBkiDxg1IOdhID0LYSIna6NRUCwBMOfN0FYXAdRFMiedMif5IidpMifHouhkAAIXAD5TASIPECFtBXEFeQV/DPAQPhOsBAAA8Ag+F0QAAAA+2Rw2FwA+EfQAAAI1I/4nCg+IHdBUx9pAPtl8OSIt83xCDxgE58nXwKfCD+QdyWYPACGYPH0QAAA+2Tw5Ii0zPEA+2UQ5Ii0zREA+2UQ5Ii0zREA+2UQ5Ii0zREA+2UQ5Ii0zREA+2UQ5Ii0zREA+2UQ5Ii0zREA+2UQ5Ii3zREIPA+IP4CH+wD7ZHDkiLRMcQilAMgPoBD4WrAQAASItIEEiLeBiKVwyA+gUPg6UBAABIi38Q6aABAABmLg8fhAAAAAAADx9AAEiLfxAPtkcMhMB09DwBD4USAQAASItHEEiLTxjpCgEAADwED4QYAQAAPAIPhdcAAAAPtkYNhcAPhIMAAABEjUD/QYnBQYPhB3QZMckPH0AAD7ZWDkiLdNYQg8EBQTnJde8pyEGD+AdyV4PACA8fQAAPtk4OSItMzhAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSIt00RCDwPiD+Ah/sA+2Rg5Ii0TGEIpQDID6AQ+FyAAAAEiLSBBIi3AYilYMgPoFD4PCAAAASIt2EOm9AAAAZi4PH4QAAAAAAA8fQABIi3YQD7ZGDITAdPQ8AXU9SItOEEiLVhjrOEiLH0iLfxDpn/3//zHASIn5SIsfgHkMBXI0SI08AUiDxw3phP3//0iLBkiLdhDpoP3//zHJSInySIsGgHoMBXIZSI00CkiDxg3phf3//0gDQRBIicfpUf3//0gDShBIic7pbf3//zHJSInHgPoFD4Jb/v//SIPHDUgBz0iLGOko/f//MclIicaA+gUPgj7///9Ig8YNSAHOSIsA6TP9///MzMzMzMxBV0FWQVRTSIPsKEiJ80mJ/2RIiwQlKAAAAEiJRCQgvwgAAADoV04LAEiJRCQISI1ICEiJTCQYSIkYSIlMJBBMjXQkCEyNJeW27v/rKA8fAEmLh4gBAABIiUMQSYmfiAEAAEiLfCQISItMJBBIOc8PhPsAAABIi1n4SIPB+EiJTCQQSInf6DYCAACAewwAD4XMAAAAD7ZDDUiD+C53DUiLC0k7DMQPg7UAAABIjXMYSItEJBBIO0QkGHQlSIsOSIkISItEJBBIg8AISIlEJBDrHGYuDx+EAAAAAAAPH0QAAEyJ9+goBgAASItEJBBIjXMQSDtEJBh0GEiLDkiJCEiDRCQQCOsSZi4PH4QAAAAAAEyJ9+j4BQAAi0MIg+D9g/gED4Qp////SItDGPCDQAgESItDEPCDQAgEuPz////wD8FDCIPg/YP4BA+FE////0iJ3+i5RAAA6Qb///8PH0AATIn/SIne6HUDAADp8v7//0iF/3QKSIl8JBDoIU0LAGRIiwQlKAAAAEg7RCQgdQxIg8QoW0FcQV5BX8PoUE8LAEFXQVZBVUFUU0iD7EBJif5kSIsEJSgAAABIiUQkOEyLfwhB9scBdAZNi2YQ6wRNjWYQSYP/AnJvSdHvScHnAzHbMdLrF2YuDx+EAAAAAACQSInQSIPDCEk533QoTYssHE2F7XTrTInoSIXSdAtMifdMie7o6AMAAEmLTQBJKQ5IicJ1z0iFwHQeZEiLDCUoAAAASDtMJDh1ekiDxEBbQVxBXUFeQV/DD1fADylEJCBIx0QkMAAAAABIjTWeo6z/TI10JCBMiffoBF37/0iNNXRHov9IjVwkCEiJ3+jwXPv/TIn3SIne6AX3//9Iid/oHWELAEiNBfYuDABIiwBIjTW22u3/vwMAAAC6YgQAAEyJ8f/Q6DhOCwDMzMzMzMzMzEFWU0iD7EhkSIsEJSgAAABIiUQkQEiLB0iFwHRHgH8MAHUpSItPEEiFyQ+EpQAAAEiLVxhIhdIPhAQBAABIixJIAxFIOdAPhWEBAABkSIsEJSgAAABIO0QkQHV0SIPESFtBXsMPV8APKUQkIEjHRCQwAAAAAEiNNZZHvf9MjXQkIEyJ9+gnXPv/SI012+yt/0iNXCQISInf6BNc+/9MifdIid7oKPb//0iJ3+hAYAsASI0FGS4MAEiLAEiNNdnZ7f+/AwAAALqdBAAATInx/9DoW00LAA9XwA8pRCQgSMdEJDAAAAAASI01C0ai/0yNdCQgTIn36LZb+/9IjTVq7K3/SI1cJAhIid/oolv7/0yJ90iJ3ui39f//SInf6M9fCwBIjQWoLQwASIsASI01aNnt/78DAAAAup8EAABMifH/0A9XwA8pRCQgSMdEJDAAAAAASI013ujo/0yNdCQgTIn36Epb+/9IjTX+663/SI1cJAhIid/oNlv7/0yJ90iJ3uhL9f//SInf6GNfCwBIjQU8LQwASIsASI01/Njt/78DAAAAuqAEAABMifH/0A9XwA8pRCQgSMdEJDAAAAAASI01v5yd/0yNdCQgTIn36N5a+/9IjTWS663/SI1cJAhIid/oylr7/0yJ90iJ3ujf9P//SInf6PdeCwBIjQXQLAwASIsASI01kNjt/78DAAAAuqMEAABMifH/0MzMzMzMzMxVQVdBVkFVQVRTUEmJ9kmJ/EyNfxBIiw5FMe1Ig/kDcncx20iNNSay7v8x0usfZpBIx0TdAAAAAABJiw5IicJMjWsBSDtM3hBMiet2MkH2RCQIAUyJ/XQFSYtsJBBIi0TdAEiFwHTYSIXSdMRMiedJifVIicbopgAAAEyJ7uuxSIXSdBRMiedIidZMifLojgAAAEmJxkiLCESJ60iNBa6x7v9IOwzYc0BJY8VB9kQkCAF0BU2LfCQQTYl0x/hIg8QIW0FcQV1BXkFfXcMPH0AATI1rAUmLBkiNDXKx7v9IO0TZCEyJ63LAQfZEJAgBTIn9dAVJi2wkEEiLdN0ASIX2dM5MiedMifLoEwAAAEmJxkjHRN0AAAAAAOu1zMzMzMxBV0FWQVRTUEiJ00mJ9kiLh4gBAABIhcB0TUiLSBBIiY+IAQAATIlwEEiJWBhIiwtJAw5IiQgx0kGAfgwAuQAAAAB0aIB7DAB0bTnRD0LKgMEBiEgNSInDSInYSIPECFtBXEFeQV/DTYX2dOxIhdt0fk2LPk2F/3RETIsjTYXkdFy/IAAAAOj1RwsAD1fADykAx0AIBAAAAMZADABMiXAQSIlYGE0B/EyJIOuKQQ+2Tg2AewwAdZMPtlMN6424/P////BBD8FGCIPg/YP4BHWITIn36Dg/AADpe////7j8////8A/BQwiD4P2D+AR0CEyJ8+lh////SInf6BE/AABMifPpUf///8zMzMzMzMzMzFVBV0FWQVVBVFNQSYn9TIs3TIt/CE0p90yJ/UjB/QNIjU0BSInISMHoPQ+FvgAAAEi4/////////x9Ni2UQTSn0TIniSMH6A0nB/AJJOcxMD0LhSLn/////////D0g5ykwPQ+BNheR0I0iJNCRJOcQPh4AAAABKjTzlAAAAAOjtRgsASInDSIs0JOsCMdtOjSTjSIsGSIkE60iNLOtIg8UITYX/fhJIid9MifZMifroXEsLAE2LdQBJiV0ASYltCE2JZRBNhfZ0FkyJ90iDxAhbQVxBXUFeQV9d6bFGCwBIg8QIW0FcQV1BXkFfXcNMie/oqksLAOiFSwsAzMzMzMxTRA+2Vw1Jg/oDD4f9AAAASI0F3a7u/0pjFJBIAcJJifhJiflIifn/4g+2Rw9Mi0THCEGLSAgx0rgAAAAAg/kED4XMAAAAQQ+2QA9Ni0zACEGLSQgx0rgAAAAAg/kED4WuAAAAQQ+2QQ9Ji0zBCItZCDHSuAAAAACD+wQPhZEAAAAPtkEPTItcwQhBi1sIMdK4AAAAAIP7BHV4QQ+2Wwwx0rgAAAAAg/sFcmeJ2MHgBQXg8///gPuCjRTd+P///w9D0IPC80hj0kmLA0gpwnRESDnySA9D1kiNHAJJiRtBgPoDdylBD7bySI0dFa7u/0hjNLNIAd7/5kgBF0kBEEkBEUwB2EiDwA1IARFbw+i+ZQAAW8Mx0jHAW8PMzMzMzMxBVlNIg+wYSYn+ZEiLBCUoAAAASIlEJBBIiXQkCIB+DAJ1Pg+2fg1BiX4oD7ZGDkmJdP44QYhEPixIhf8PhLcBAABA9scBD4VJAQAASIn5SInyQID/AQ+FZAEAAOmVAQAASYuGkAAAALovAAAAqAF0B0mLlqAAAABIicFI0elIOdEPhCYCAACoAXQJSYuGmAAAAOsHSY2GmAAAAEiJNMhJg4aQAAAAAkmLRghJKUYYD4TUAAAAQYt2KIX2D4i7AAAASYN89jgAD4SvAAAATYtGIE2FwA+EgwEAAEmLVjhBD7ZGLA+2Sg9Ig8H/SDnBD4VvAQAARTHJSboAAAAAAQAAADH/MdtmLg8fhAAAAAAAkEg53g+EWAEAAEmLVN5AQQ+2TB4tSIPBAQ+2Qg9MAddIg8MBSDnBdNhBiEweLEjB/yBmLg8fhAAAAAAADx9EAABIi1TKEEmJVP4wD7ZCDg+2yEGITD4rSI13/0iD/wFIifd/3U2LRiDp7QAAAEyJ9+icyf//6bwAAAAPV8BBDxEG6bAAAABIjU//SItUxhBJiVT+MIpaDkGIXD4rD7bDQID/AXRCZi4PH4QAAAAAAGaQSItEwhBJiUTOMA+2UA5BiFQOK0iLVNAQSYlUzigPtloOQYhcDipIjXn+D7bDSIP5AkiJ+X/KD7bDSYtOOEiLRMEQSIsOSCsISYlOIIpYDID7AXUWSItIEEiLUBiKWgyA+wVzEEiLUhDrDjHJSInCgPsFcvBIg8INSAHKSIsASYkWSYlGCGRIiwQlKAAAAEg7RCQQdW5Ig8QYW0FewzHJMcDrRQQBQYhGLA+2wEyLTMIQTSsBTYlGIEGKQQw8AXUVSYtREEmLSRiKQQw8BXMPSItJEOsNMdJMick8BXLxSIPBDUgB0UmLAUmJDuuUSY2+kAAAAEiNdCQI6PIFAADp5P3//+j4RAsAzMzMzMzMzMxTSItHGEgp8EiJRxgPhKkAAABIOXcID4WnAAAATItHIE2FwA+ErAEAAEiLVzgPtkcsD7ZKD0iDwf9IOcEPhZkBAABEi1coRTHJRYXSRQ9O0Um7AAAAAAEAAAAx9jHAZpBJOcIPhH8BAABIi1THQA+2TActSIPBAQ+2Wg9MAd5Ig8ABSDnZdNmITAcsSMH+IJBIi1TKEEiJVPcwD7ZCDg+2yIhMNytIjV7/SIP+AUiJ3n/eTItHIOklAQAAD1fADxEHW8NMY08oRYnKSotM1zhMiwFJKcBKi1TPOEw5Ag+GSAEAAA+2Qg5Ii0zCEEiLMUyJwUw5xncdZg8fhAAAAAAASCnxSIt0whhIg8ABSIs2SDnxc+xCiEQPLEWF0n9ASItUwhBIhdIPhP8AAABEikoMQYD5AXVgSItyEEiLQhhEikgMQYD5BXNZSItAEOtXZpBCiEQfLEmD+gFNicp+wE2NSv9Ii1TCEEWJy0qJVN84D7ZCDkiLdMIQSIs2SDnOd9BIKfFIi3TCGEiDwAFIizZIOfFz7Ou6MfZIidBBgPkFcqdIg8ANSIsSSCnKD4KCAAAASAHwSAHIi08oSItMzzhIiwlJAdBMKcFIiU8gSIkHSIlXCFvDMckxwOtHBAGIRywPtsBMi0zCEE0rAUyJRyBBilEMgPoBdRZJi0EQSYtJGIpRDID6BXMQSItJEOsOMcBMicmA+gVy8EiDwQ1IAcFJiwFIiQ9IiUcIW8MxyTHSMcDrlehYRQsAzMzMzMzMzMxVQVdBVkFVQVRTUEmJ9EmJ/0yLL0H2xQF1C0mNbwi5XgAAAOseSYtPEEgByUi4q6qqqqqqqgpIOcEPgywBAABJi28ITInrSNHrSIkMJEiNBM0AAAAASI08QOjiPwsASYnGSI0EW0EPEAQkQQ8RBMZJi0wkEEmJTMYQSYP9Ag+CqQAAAEiNU/+J2YPhA0iD+gNzBDHS61pIg+P8MdJMifaQSIt9EEiJfhAPEEUADxEGSIt9KEiJfigPEEUYDxFGGEiLfUBIiX5ADxBFMA8RRjAPEEVIDxFGSEiLfVhIiX5YSIPFYEiDwgRIg8ZgSDnTdbBIhcl0N0iNFFJJjRTWSMHhA0iNDEkx9mYPH4QAAAAAAEiLfDUQSIl8MhAPEEQ1AA8RBDJIg8YYSDnxdeRNjSTGQfbFAXQMSYt/COghPwsATYsvTYl3CEiLBCRJiUcQSYPNAUmDxQJNiS9MieBIg8QIW0FcQV1BXkFfXcPo4EMLAFVBV0FWQVVBVFNQSYn0SYn/SIsvQPbFAXULTY13CLleAAAA6xhJi08QSAHJSInISMHoPQ+F8QEAAE2LdwhJie1J0e1IiQwkSI08zQAAAADofD4LAEiJw06NBOhJiwQkSokE60iD/QIPgnMBAABIg/0IchZLjQTuSDnDD4OEAAAATTnwD4Z7AAAAMcBIicFI99FMAelMiepIg+IDdBgPHwBJizZIiTTDSYPGCEiDwAFIg8L/detIg/kDD4IhAQAASSnFSI0Ew0iDwBgxyQ8fQABJixTOSIlUyOhJi1TOCEiJVMjwSYtUzhBIiVTI+EmLVM4YSIkUyEiDwQRJOc110encAAAATInoSIPg/EiNcPxIifJIweoCSIPCAYnRg+EDSIP+DHMEMfbrd0iD4vxI99ox9mYuDx+EAAAAAAAPH0AAQQ8QBPZBDxBM9hAPEQTzDxFM8xBBDxBE9iBBDxBM9jAPEUTzIA8RTPMwQQ8QRPZAQQ8QTPZQDxFE80APEUzzUEEPEET2YEEPEEz2cA8RRPNgDxFM83BIg8YQSIPCBHWgSIXJdDZIjRTzSIPCEEmNNPZIg8YQSMHhBTH/Dx9EAAAPEEQ+8A8QDD4PEUQ68A8RDDpIg8cgSDn5deVJOcV1QUD2xQF0EkmLfwhMicXo/jwLAEmJ6EmLL0mJXwhIiwQkSYlHEEiDzQFIg8UCSYkvTInASIPECFtBXEFdQV5BX13DTY00xulh/v//6LFBCwDMVUFXQVZBVUFUU1BJifRJif9Iiy9A9sUBdQtNjXcIuV4AAADrGEmLTxBIAclIichIweg9D4XxAQAATYt3CEmJ7UnR7UiJDCRIjTzNAAAAAOhMPAsASInDTo0E6EmLBCRKiQTrSIP9Ag+CcwEAAEiD/QhyFkuNBO5IOcMPg4QAAABNOfAPhnsAAAAxwEiJwUj30UwB6UyJ6kiD4gN0GA8fAEmLNkiJNMNJg8YISIPAAUiDwv9160iD+QMPgiEBAABJKcVIjQTDSIPAGDHJDx9AAEmLFM5IiVTI6EmLVM4ISIlUyPBJi1TOEEiJVMj4SYtUzhhIiRTISIPBBEk5zXXR6dwAAABMiehIg+D8SI1w/EiJ8kjB6gJIg8IBidGD4QNIg/4McwQx9ut3SIPi/Ej32jH2Zi4PH4QAAAAAAA8fQABBDxAE9kEPEEz2EA8RBPMPEUzzEEEPEET2IEEPEEz2MA8RRPMgDxFM8zBBDxBE9kBBDxBM9lAPEUTzQA8RTPNQQQ8QRPZgQQ8QTPZwDxFE82APEUzzcEiDxhBIg8IEdaBIhcl0NkiNFPNIg8IQSY009kiDxhBIweEFMf8PH0QAAA8QRD7wDxAMPg8RRDrwDxEMOkiDxyBIOfl15Uk5xXVBQPbFAXQSSYt/CEyJxejOOgsASYnoSYsvSYlfCEiLBCRJiUcQSIPNAUiDxQJJiS9MicBIg8QIW0FcQV1BXkFfXcNNjTTG6WH+///ogT8LAMxVQVdBVkFVQVRTSIHsKAIAAEyJxUmJzEmJ1UmJ9kiJ+2RIiwQlKAAAAEiJhCQgAgAASI18JBC6EAIAADH26N49CwCKQw+oAXUKicHQ+UwPvvnrBkiLC0yLOUyJfCQoSMdEJDAAAAAAx0QkOP////9Ix4QkoAAAAAAAAACoAXUPSIlcJBBMiXwkGEyJ+OscSIszSI18JBDohfT//0iLRCQoSItcJBBMi3wkGEiFwEgPRNhMiXwkCEiJBCRMD0T4TAHjTSnnTQHmTSnlTCnlDx8ATYX/D4VjAQAASIsEJEgrRCQISIlEJCgPhLEBAACLVCQ4hdIPiLcAAABIg3zUSAAPhKsAAABMi0wkME2FyQ+EqQAAAEiLTCRID7Z8JDwPtnEPSIPG/0g5/g+FlAAAAEmJ6DH2Mf9mLg8fhAAAAAAAkEg5+g+EjQAAAEiLTPxQD7ZsPD1Ig8UBD7ZZD0i4AAAAAAEAAABIAcZIg8cBSDnddM9AiGw8PEjB/iBmDx9EAABIi0zpEEiJTPRAD7Z5DkAPtu9AiGw0O0iNRv9Ig/4BSInGf9xMi0wkMEyJxesdZpBIjXwkEOiGvv//62MxwDHJ61NAgMcBQIh8JDxAD7bXSItM0RDrBTHJTInFTCsJTIlMJDCKWQyA+wF1FkiLURBIi0EYilgMgPsFcxBIi0AQ6w5Iicgx0oD7BXLwSIPADUgB0EiLCUiJRCQQSIlMJBhIi0QkKEiFwHR9SIkEJEiLXCQQTIt8JBhMiXwkCE2F7XRJTTn9TYn8TQ9C5UiJ30yJ9kyJ4ui3OwsAhcB1MkyJ8Uwp5UwB400p50wB4U0p5UiF7UmJzg+FVf7//0Ux9vaEJKAAAAABdT3rSEUx7esaQYnG9oQkoAAAAAF1Kes0D1fADylEJBBFMf9FMfZNhe1BD5TGSYP/AUGD3gD2hCSgAAAAAXQNSIu8JKgAAADovjcLAGRIiwQlKAAAAEg7hCQgAgAAdRVEifBIgcQoAgAAW0FcQV1BXkFfXcPo4TkLAMxVQVdBVkFVQVRTSIHsWAQAAEmJzUmJ1kmJ90iJ/WRIiwQlKAAAAEiJhCRQBAAAxkQkKABIjbwkQAIAALoQAgAAMfbo2ToLAIpFD6gBdQqJwdD5SA++yesHSItNAEiLCUiJjCRYAgAASMeEJGACAAAAAAAAx4QkaAIAAP////9Ix4Qk0AIAAAAAAACoAXUSSImsJEACAABIiYwkSAIAAOsRSIt1AEiNvCRAAgAA6G/x//9IjXwkMLoQAgAAMfboXjoLAEGKRw+oAXUKicHQ+UgPvsnrBkmLD0iLCUiJTCRISMdEJFAAAAAAx0QkWP////9Ix4QkwAAAAAAAAACoAXUMTIl8JDBIiUwkOOsNSYs3SI18JDDoB/H//0iLhCRYAgAASInBSIXAdBBIi4QkSAIAAEiLjCRAAgAASItUJEhIidZIhdJ0CkiLVCQ4SIt0JDBMAfFIiUwkGEwp8EiJRCQgTAH2SIl0JAhMKfJIiVQkEE0p9UiNXCQoDx+EAAAAAABIid9IjbQkQAIAAEiNVCQY6PsAAACEwHR7SInfSI10JDBIjVQkCOjlAAAAhMB0ZUyLZCQYSItcJCBMi3wkCEyLdCQQSTneSIndSQ9C7kyJ50yJ/kiJ6ug1OQsAhcB1SUkp7UkB7EyJZCQYSCnrSIlcJCBJAe9MiXwkCEkp7kyJdCQQTYXtSI1cJCgPhXD///8xwOsUMcBIg3wkEAAPlMBIg3wkIAGD2ACJw/aEJMAAAAABdA1Ii7wkyAAAAOhPNQsA9oQk0AIAAAF0DUiLvCTYAgAA6Dg1CwBkSIsEJSgAAABIO4QkUAQAAHUUidhIgcRYBAAAW0FcQV1BXkFfXcPoXDcLAMzMzMzMzMzMzMzMzFVBV0FWU1BBtgFIg3oIAHQORInwSIPECFtBXkFfXcNIifNIi0YISClGGA+E0wAAAEmJ14tzKIX2D4iqAAAASIN88zgAD4SeAAAATItDIE2FwA+EugAAAEiLUzgPtkMsD7ZKD0iDwf9IOcEPhacAAABFMclJugAAAAABAAAAMf8xwGYuDx+EAAAAAAAPH0QAAEg5xg+EiwAAAEiLVMNAD7ZMAy1Ig8EBD7ZqD0wB10iDwAFIOel02YhMAyxIwf8gkEiLVMoQSIlU+zAPtkIOD7bIiEw7K0iNd/9Ig/8BSIn3f95Mi0Mg6zRIid/owLn//0iDexgAdHIPEANBDxEH6Q7///8PV8APEQNFMfbpAP///zHJMcDrRAQBiEMsD7bATItMwhBNKwFMiUMgQYpBDDwBdRVJi1EQSYtJGIpBDDwFcw9Ii0kQ6w0x0kyJyTwFcvFIg8ENSAHRSYsBSIkLSIlDCEiDexgAdY5FMfbpoP7//8zMzMzMzMzMzMzMzMzMzEFXQVZBVUFUU0mJ1kmJ/4pHD6gBdQvQ+EgPvthMif/rEUmLP4pHDDwFclNIix9Ig8cNTIsmTItuCEk53UkPQt1MieZIidrotTYLAEw583QYhcB1FEyJ/0yJ5kyJ6kiJ2U2J8OiI+P//McmFwA+fwcH4HwHIW0FcQV1BXkFfwzwED4TkAAAAPAIPhcoAAAAPtkcNhcAPhIYAAABEjUD/icKD4gd0HTHbZg8fhAAAAAAAD7ZPDkiLfM8Qg8MBOdp18CnYQYP4B3JYg8AIDx9EAAAPtk8OSItMzxAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSIt80RCDwPiD+Ah/sA+2Rw5Ii0THEIpQDID6AXVsSItIEEiLeBiKVwyA+gVzZkiLfxDrZGYPH4QAAAAAAEiLfxAPtkcMhMB09DwBdRZIi0cQSItPGOsRSIsfSIt/EOm8/v//McBIiflIix+AeQwFcg1IjTwBSIPHDemh/v//SANBEEiJx+mV/v//MclIiceA+gVymkiDxw1IAc9IixjpfP7//8zMzMzMzMzMzMxBV0FWQVRTUEmJ1kmJ90mJ/IpHD6gBdQvQ+EgPvthMiefrEkmLPCSKRww8BXJwSIsfSIPHDUGKRw+oAXUL0PhID77ATIn+6xVJizeKRgw8BQ+CSwEAAEiLBkiDxg1IOdhID0LYSIna6NQ0CwBMOfN0FYXAdRFMiedMif5IidpMifHoqvn//zHJhcAPn8HB+B8ByEiDxAhbQVxBXkFfwzwED4T0AQAAPAIPhdoAAAAPtkcNhcAPhIYAAACNSP+JwoPiB3QeMfZmLg8fhAAAAAAAD7ZfDkiLfN8Qg8YBOfJ18Cnwg/kHclmDwAhmDx9EAAAPtk8OSItMzxAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSItM0RAPtlEOSIt80RCDwPiD+Ah/sA+2Rw5Ii0THEIpQDID6AQ+FqwEAAEiLSBBIi3gYilcMgPoFD4OlAQAASIt/EOmgAQAAZi4PH4QAAAAAAA8fQABIi38QD7ZHDITAdPQ8AQ+FEgEAAEiLRxBIi08Y6QoBAAA8BA+EGAEAADwCD4XXAAAAD7ZGDYXAD4SDAAAARI1A/0GJwUGD4Qd0GTHJDx9AAA+2Vg5Ii3TWEIPBAUE5yXXvKchBg/gHcleDwAgPH0AAD7ZODkiLTM4QD7ZRDkiLTNEQD7ZRDkiLTNEQD7ZRDkiLTNEQD7ZRDkiLTNEQD7ZRDkiLTNEQD7ZRDkiLTNEQD7ZRDkiLdNEQg8D4g/gIf7APtkYOSItExhCKUAyA+gEPhcgAAABIi0gQSItwGIpWDID6BQ+DwgAAAEiLdhDpvQAAAGYuDx+EAAAAAAAPH0AASIt2EA+2RgyEwHT0PAF1PUiLThBIi1YY6zhIix9Ii38Q6Y/9//8xwEiJ+UiLH4B5DAVyNEiNPAFIg8cN6XT9//9IiwZIi3YQ6ZD9//8xyUiJ8kiLBoB6DAVyGUiNNApIg8YN6XX9//9IA0EQSInH6UH9//9IA0oQSInO6V39//8xyUiJx4D6BQ+CW/7//0iDxw1IAc9IixjpGP3//zHJSInGgPoFD4I+////SIPGDUgBzkiLAOkj/f//zMzMzMzMVUFXQVZBVUFUU1BJifRJif9Iiy9A9sUBdQtNjXcIuV4AAADrGEmLTxBIAclIichIweg9D4XxAQAATYt3CEmJ7UnR7UiJDCRIjTzNAAAAAOgMLgsASInDTo0E6EmLBCRKiQTrSIP9Ag+CcwEAAEiD/QhyFkuNBO5IOcMPg4QAAABNOfAPhnsAAAAxwEiJwUj30UwB6UyJ6kiD4gN0GA8fAEmLNkiJNMNJg8YISIPAAUiDwv9160iD+QMPgiEBAABJKcVIjQTDSIPAGDHJDx9AAEmLFM5IiVTI6EmLVM4ISIlUyPBJi1TOEEiJVMj4SYtUzhhIiRTISIPBBEk5zXXR6dwAAABMiehIg+D8SI1w/EiJ8kjB6gJIg8IBidGD4QNIg/4McwQx9ut3SIPi/Ej32jH2Zi4PH4QAAAAAAA8fQABBDxAE9kEPEEz2EA8RBPMPEUzzEEEPEET2IEEPEEz2MA8RRPMgDxFM8zBBDxBE9kBBDxBM9lAPEUTzQA8RTPNQQQ8QRPZgQQ8QTPZwDxFE82APEUzzcEiDxhBIg8IEdaBIhcl0NkiNFPNIg8IQSY009kiDxhBIweEFMf8PH0QAAA8QRD7wDxAMPg8RRDrwDxEMOkiDxyBIOfl15Uk5xXVBQPbFAXQSSYt/CEyJxeiOLAsASYnoSYsvSYlfCEiLBCRJiUcQSIPNAUiDxQJJiS9MicBIg8QIW0FcQV1BXkFfXcNNjTTG6WH+///oQTELAMxVQVdBVkFVQVRTSIHsyAAAAEmJyEmJ1kiJ9UmJ/GRIiwQlKAAAAEiJhCTAAAAAD7YCqAF0LUmLTghIOelyL6gBD4WQAAAAQcZELgEAjUQtAEGIBkH2BgEPhYsAAADpmgAAAEiJwUjR6Ug56XPRSInvSCnPdG1Jix5IidpIg+L+SIPC/6gBvhYAAABID0XySInwSCnISDn4cyVIiepIKfJIxwQkAAAAAEyJ90yJw0mJyEUxyejYMQsASYnYQYoeSY1GAfbDAXQESYtGEHUhjUwtAEGIDuscSYtGEMYEKABJiW4IQfYGAXQUSYt+EOsSSYluCMYEKABB9gYBdexJjX4BTY08LEyJ40mJ/Uw553UiTInjSYn9SIXtfhdMieMPHwCAO1x0FkiDwwFJid1MOfty70w5+3IR6b4FAABJid1MOfsPg7IFAABNjQwsSYPB/0qNRCX/SIlEJDhMAeVIg8X9TI0V+ZTu/0yNHbKb7v/rJEHGRQAIZi4PH4QAAAAAAJBJg8UBTInjSIPDAUw5+w+DZQUAAIoDPFx1VkyNYwFNOcwPh24FAABBD74EJI1I3oP5Vg+HcQYAAEljDIpMAdH/4YPA0E05zHMwD7ZLAonKgOL4gPowdSJIg8MCjQTBg8DQTDnLchvrQQ8fhAAAAAAAQYhFAOn3BAAATInjTDnLcygPtksBicqA4viA+jB1Go0EwYPA0D3/AAAAD4cSBQAASIPDAem+BAAAQYhFAOm+BAAATTnMD4MJBQAAD7ZTAkGAPBMAD4kMBQAASInpSCnZMcBMieNmLg8fhAAAAAAAkInGweYED7bSjUIJgPo6D0LCg+APCfBIhckPhFgEAAAPtlMCSIPDAUiDwf9BgDwTAHjO6UUEAABBxkUACunf/v//QcZFAD/p1f7//0HGRQAJ6cv+//9IjUMFSIlEJAhMOfgPg/AFAAAPtksCQYA8CwAPib4GAAAPtlMDQYA8EwAPib4GAAAPtkMEQYA8AwAPibUGAABIiWwkIEiJfCQoic/B5wSNcgmA+joPQvKNr5AAAACA+ToPQu9Ii0wkCA+2CUGAPAsAD4mWBgAATIl0JBiD5g+B5fAAAAAJ9YnCweIEjbKQAAAAPDoPQvKNWQmA+ToPQtlBie5Bg+b4QYH+2AAAAA+FqQAAAE2FwA+EoAAAAIl0JDRMiUwkEEiNBZfUnf9IiUQkcEjHRCR4LAAAAEyJZCRASMdEJEgFAAAASI28JKgAAABIjXQkcEiNVCRATYnE6JkUAgBNieBB9gQkAXQhSYtAEMYAAEnHQAgAAAAAQfYAAXQMSYt4EOhxKAsATYngSIuEJLgAAABJiUAQDxCEJKgAAABBDxEATItMJBBMjRVaku7/TI0dE5nu/4t0JDRBgf7YAAAAD4RNCQAAweUIQA+2xgnog+MPCcNMie+J3uk2AgAAQcZFACLpQP3//0HGRQAn6Tb9//9IjUMJSIlEJAhMOfgPg5MEAAAPtkMCQYA8AwAPiSAFAAAPtksDQYA8CwAPiSAFAABIiXwkKInCweIEjbqQAAAAPDoPQvqNQQmA+ToPQsEPtlMEQYA8EwAPiQgFAAAPtnMFQYA8MwAPiQIFAAAPtksGQYA8CwAPifIFAABIiWwkIEAPtv+D4A8J+InXwecEjW4JQID+Og9C7oPlD8HgCI23kAAAAID6Og9C94Hm8AAAAAnGCe7B5gSNQQmA+ToPQsGD4A8J8D3//xAAD4ejBQAAD7ZLB0GAPAsAD4meBQAAweAEjWkJgPk6D0Lpg+UPCcWB/f//EAAPh4cFAAAPtksIQYA8CwAPiYIFAACJ6sHiBI1BCYD5Og9CwYPgDwnQPf//EAAPh2oFAABIjUsJD7YJQYA8CwAPiWIFAABMiXQkGMHgBESNcQmA+TpED0LxQYPmD0EJxkGB/v//EAAPh1kGAACD5fiB/dgAAAAPhZ8AAABNhcAPhJYAAABMiUwkEEiNBUjSnf9IiUQkcEjHRCR4LAAAAEyJZCRASMdEJEgJAAAASI28JKgAAABIjXQkcEiNVCRATInD6EoSAgBJidj2AwF0IUmLQBDGAABJx0AIAAAAAEH2AAF0DEmLeBDoJCYLAEmJ2EiLhCS4AAAASYlAEA8QhCSoAAAAQQ8RAEyLTCQQTI0VDZDu/0yNHcaW7v+B/dgAAAAPhAUHAABMie9EifZNicRMic1NidZMidvos6EBAEmJ202J8kmJ6U2J4EkBxUiLXCQITIt0JBhIi3wkKEiLbCQg6eL6//9BxkUADOnR+v//QcZFAA3px/r//0HGRQAL6b36//9BxkUAB+mz+v//QcZFAFzpqfr//0iLXCQ4PQABAAAPg4EAAABBiEUADx9EAABJg8UB6Y76//9JKf1MifdMie5Ix8L/////6FI4CwCwAelYBgAATYXAD4RNBgAASI01lhuj/kyJx+iTLAsA6TkGAABNhcAPhDAGAABMKeNIg8MC6zRNhcAPhB4GAABIjTV1Xer/689NhcAPhAwGAABIjTV9Xer/671NhcAPhPoFAABMKeNIg8MBD1fADylEJEBIx0QkUAAAAABIg/vwD4MJBgAATYnHSIP7F3MTjQQbiEQkQEyNdCRBSIXbdSjrNEiNaxBIg+XwSInv6HEkCwBJicZIiUQkUEiDzQFIiWwkQEiJXCRITIn3TInmSIna6O0oCwBBxgQeAEiNFcWhpP9IjXwkQDH26OUoCwBIi0gQSImMJIAAAAAPEAAPKUQkcA9XwA8RAEjHQBAAAAAASI01jR+i/+mgBAAATYXAD4Q5BQAAvyAAAABNicbo8SMLAEiJhCSAAAAADygF4tOU/g8pRCRwDxAF2Kib/w8RQAoPEAXDqJv/DxEAxkAaAEEPvjQkSI18JHDoZTULAEyJ8opcJHBIi0QkcUiJRCRASItEJHhIiUQkR0iLrCSAAAAAD1fADylEJHBIx4QkgAAAAAAAAADpzQEAAE2FwA+EqwQAAA9XwA8pRCRwSMeEJIAAAAAAAAAAxkQkcAJBigQkiEQkccZEJHIASI0Vk5Cr/us2TYXAD4RzBAAAD1fADylEJHBIx4QkgAAAAAAAAADGRCRwAkGKBCSIRCRxxkQkcgBIjRXze6X/SI18JHAx9kyJw+isJwsASInaRIowSItICEiJTCRHSItIAUiJTCRASItoEA9XwA8RAEjHQBAAAAAA9gMBdCBIi0IQxgAASMdCCAAAAAD2AgF0DEiLehDo0CILAEiJ2kSIMuk7AgAASIPDAulYAQAASIPDAussSIPDA+lJAQAASIPDA+sdSIPDBOsXSIPDBOk0AQAASIPDBekrAQAASItcJAhNhcAPhJwDAABMKeMPV8APKUQkcEjHhCSAAAAAAAAAAEiD+/APg6IDAABNicZIg/sXcxONBBuIRCRwTI18JHFIhdt1K+s3SI1rEEiD5fBIie/oFCILAEmJx0iJhCSAAAAASIPNAUiJbCRwSIlcJHhMif9MieZIidrojSYLAEHGBB8ASI0VMY+r/kiNfCRwMfbohSYLAIoYSItICEiJTCRHSItIAUiJTCRASItoEA9XwA8RAEjHQBAAAAAATInyQfYGAQ+ENgEAAEiLQhDGAABIx0IIAAAAAPYCAQ+EHgEAAEiLehDooSELAEyJ8ukNAQAASIPDBusvuAUAAADpQwEAAEiDwwfrH7gGAAAA6TMBAABIg8MI6w+4BwAAAOkjAQAASItcJAhNhcAPhHYCAABMKeMPV8APKUQkcEjHhCSAAAAAAAAAAEiD+/APg3wCAABNicdIg/sXcxONBBuIRCRwTI10JHFIhdt1K+s3SI1rEEiD5fBIie/o7iALAEmJxkiJhCSAAAAASIPNAUiJbCRwSIlcJHhMifdMieZIidroZyULAEHGBB4ASI0Vo3ml/0iNfCRwMfboXyULAIoYSItICEiJTCRHSItIAUiJTCRASItoEA9XwA8RAEjHQBAAAAAATIn6QfYHAXQUSItCEMYAAEjHQggAAAAA9gIBdTCIGkiLRCRASItMJEdIiUIBSIlKCEiJahD2RCRwAQ+EhAEAAEiLvCSAAAAA6XIBAABIi3oQ6FMgCwBMifpBiB/rwbgIAAAATYXAD4RYAQAASAHDTCnjSIPDAg9XwA8pRCRASMdEJFAAAAAASIP78A+DZAEAAE2Jx0iD+xdzE40EG4hEJEBMjXQkQUiF23Uo6zRIjWsQSIPl8EiJ7+jMHwsASYnGSIlEJFBIg80BSIlsJEBIiVwkSEyJ90yJ5kiJ2uhIJAsAQcYEHgBIjRUgnaT/SI18JEAx9uhAJAsASItIEEiJjCSAAAAADxAADylEJHAPV8APEQBIx0AQAAAAAEiNNfzxr/5IjXwkcOgdJAsAihhIi0gISImMJK8AAABIi0gBSImMJKgAAABIi2gQD1fADxEASMdAEAAAAABMifpB9gcBdCBIi0IQxgAASMdCCAAAAAD2AgF0DEiLehDoKx8LAEyJ+ogaSIuEJKgAAABIi4wkrwAAAEiJQgFIiUoISIlqEPZEJHABdA1Ii7wkgAAAAOj2HgsA9kQkQAF0CkiLfCRQ6OUeCwAxwGRIiwwlKAAAAEg7jCTAAAAAdSZIgcTIAAAAW0FcQV1BXkFfXcNIjXwkcOiEIwsASI18JEDoeiMLAOj1IAsADx9EAABBV0FWQVRTUEmJ1EmJ90mJ/g9XwA8RB0jHRxAAAAAASIXSD4TSAAAASY1MJP9EieCD4AdIg/kHcwox20yJ+emGAAAATIniSIPi+Ej32jHbSI01Go3u/0yJ+Q8fgAAAAAAPtjlID748N0gB3w+2WQFID74cM0gB+w+2eQJID748N0gB3w+2WQNID74cM0gB+w+2eQRID748N0gB3w+2WQVID74cM0gB+w+2eQZID748N0gB3w+2WQdID74cM0gB+0iDwQhIg8IIdZdIhcB0JzHSSI01mYzu/2YPH4QAAAAAAA+2PBFID748N0gB+0iDwgFIOdB160w543UdTIn3TIn+TIni6HgjCwBMifBIg8QIW0FcQV5BX8NIhdt0OUiD+xdyJ0iNU+pIxwQkAAAAAL4WAAAATIn3MclFMcBFMcnonSMLAEH2BgF1HkmNRgGNDBtBiA7rGkHGRB4BAADbQYgeTYXkdRProUmLRhBJiV4IxgQYAE2F5HSQQfYGAXQGSYtGEOsHTInwSIPAATHJSI0V3Ivu/0iNNXGI7v/rPA8fAMYAXIn7wOsGgMswiFgBifvA6wOA4weAyzCIWAJAgOcHQIDPMECIeANIg8AESIPBAUk5zA+EL////0EPtjwPD7YcF4D7AnQZgPsBdbRAiDhIg8AB69dmLg8fhAAAAAAAkI1f94D7HncXD7b7SGM8vkgB9//nZscAXHRIg8AC661AgP9cdadmxwBcXEiDwALrnGbHAFxuSIPAAuuRZscAXHJIg8AC64ZmxwBcIkiDwALpeP///2bHAFwnSIPAAulq////Zi4PH4QAAAAAAA8fQABTSIn7uQEAAABFMcDoDwAAAEiJ2FvDZi4PH4QAAAAAAFVBV0FWQVVBVFNQRIkEJIlMJARIifsPV8APEQdIx0cQAAAAAEiF0g+EkgEAAEiJ1UmJ9IsEJDQBiQQkRTHtTI01s4fu/zHAZg8fhAAAAAAAQw+2DCyNUfeA+h53Iw+20kljFJZMAfL/4kiJ30iNNXrGnf/piAAAAA8fhAAAAAAAgPlcdQxIid9IjTWluXT/629ED7b5RYT/D5nBCgwkgPkBdR1BjU/ggPled22oAXQQRIn4SI0NJozu/4A8AQB4WUEPvvdIid/o1CwLAOs3SInfSI01Want/+smSInfSI01hb92/+saSInfSI01d4ir/usOSInfSI01A3Sl/w8fQADoqx8LADHASYPFAUw57Q+FPP///+mmAAAAgHwkBAB0RUiJ30iNNZIgqf7ogR8LAEyJ+EjB6ARIjQ0zl+7/D740AUiJ3+hXLAsAQYPnD0iNBRyX7v9CD740OEiJ3+g/LAsAsAHrokiJ30iNNUAQs/7oPB8LAEyJ+EjB6AZIjQ3ulu7/D740AUiJ3+gSLAsARIn4wegDg+AHSI0N0pbu/w++NAFIid/o9isLAEGD5wdIjQW7lu7/Qg++NDjpBf///0iJ2EiDxAhbQVxBXUFeQV9dw2YuDx+EAAAAAAAPH0QAAFNIifsxyUG4AQAAAOgP/v//SInYW8NmLg8fhAAAAAAAU0iJ+7kBAAAAQbgBAAAA6Oz9//9Iidhbww8fgAAAAABIjQ1phu7/6wcPH4AAAAAAVUFXQVZBVUFUU0iD7ChJic1JidZJifdJifxIifBIwegCSI0EQIPmA0gBxkiJ10iJdCQg6IgNAABB9gYBdAZJi0YQ6wRJjUYBSIlEJBBIhcAPhAYCAABJg/8ED4LkAwAAMdtMjRVHiu7/MdIx9kUxyUEPtiwkSIXtdFZBD7ZMJAFIhcl0S0EPtnwkAkiF/3RAQQ++XC0AweMSQQ++TA0AweEMCdlBD758PQDB5wYJz0EPtkwkA0EPvlwNAAn7eBFJg8f8SYPEBOlUAQAADx9AAEmDx/9Jg8QBQYpULQCE0g+IlQAAAA+2wjHtMfZMiftMiedmLg8fhAAAAAAADx9AAA+2F0EPtkwVAITJeSZIg8P/SIPHAUH2BBIID4SDBQAASIPG/0iDxQFIg/sCd9LpcAUAAMHgBgnISYnDSIPHAZAPthdBD7ZMFQCEyXl4SI1e/0H2BBIID4RyBQAASY0EN0iDwP5Ig8cBSIPFAUiJ3kiD+AF3y+lUBQAAQfYEKggPhGsFAABmLg8fhAAAAAAAkEmD/wQPglYFAABBD7YsJEAPts1BD7ZUDQBJg8f/SYPEAYTSD4ks////QfYECgh10OkrBQAATInbweMGCctJjU/9Zi4PH4QAAAAAAA8fRAAAQQ+2VCwCQQ+2dBUAQIT2eRxIjX0BQfYEEggPhFsFAABIOelIif112OlOBQAAweMGCfNJKe9Jg8f9SQHsSYPEA0mNaQNIO2wkIA+HHwcAAInYZsHACEiLTCQQZkKJRAkBwesQQogcCUUxwEmJ6UmD/wMPhxn+///pSwYAAEmD/wQPgt4BAAAx20yNDUGI7v8x0jH2Me1BD7YMJEmJ60iFyXReQQ+2fCQBSIX/dFNBD7ZsJAJIhe10SEEPvlwNAMHjEkEPvnw9AMHnDAnfQQ++bC0AweUGCf1BD7Z8JANBD75cPQAJ63gZSYPH/EmDxATpVwEAAGYuDx+EAAAAAABmkEmDx/9Jg8QBQYpUDQCE0ngFSYna61hB9gQJCA+EmgUAAEmD/wRMid0PgpAFAABmkEEPtgwkD7bxQQ+2VDUAhNJ5HkmDx/9Jg8QBQfYEMQgPhGkFAABJg/8Ec9XpXgUAAEmJ60mJ2kmDx/9Jg8QBMckx7UyJ+0yJ5w8fhAAAAAAAD7YXQQ++dBUAhfZ5JkiDw/9Ig8cBQfYEEQgPhD0DAABIg8X/SIPBAUiD+wJ30ukqAwAASIPHAWYPH4QAAAAAAA+2F0EPvnQVAIX2eS1IjV3/QfYEEQgPhIADAABJjQQvSIPA/kiDxwFIg8EBSIndSIP4AXfL6WIDAABJjX/9TInTZi4PH4QAAAAAAA8fRAAAQQ+2VAwCQQ+2dBUAQIT2eRxIjWkBQfYEEQgPhGsDAABIOc9Iiel12OleAwAASSnPSYPH/UkBzEmDxANMid1Ig8UDRTHASYP/Aw+HNv7//+ljBAAATIl0JAgx7UUxwDHbTIniTI0dVobu/02J/EiJ7kGJ3kiJNCRNjXwk/kiNcgQx7WYuDx+EAAAAAAAPH0AASTnsD4QnAwAAD7YMKg+22UEPtnwdAECE/3klSIPFAUmDx/9Ig8YBQfYEGwh10um7AQAAZi4PH4QAAAAAAA8fAESJ88HjBgn7QY1AAUmJ6Un30YP4BHROSIlcJBhJjVwk/0iJ72YuDx+EAAAAAABmkEg5+w+ECQIAAA+2TDoBRA+28UcPtlQ1AEWE0nlySIPHAUmDx/9Ig8YBQ/YEMwh10On5AQAATQHMSAHqSIPCAUSJ8UiLLCRIjXUDRTHAQb4AAAAASIN8JBAAD4QU////SDt0JCBMi3QkCA+H7wMAAEiLfCQQiFwvAonIwegCiEQvAcHpCogML0Ux9unk/v//SItEJBhBicZBweYGRQnWQY1IAk2J4Ukp+YP5BHRGiUwkGE2NVCT+SIn9Dx+AAAAAAEk56g+E4gEAAA+2TCoCD7bZQQ+2RB0AhMB5MEiDxQFJg8f/SIPGAUH2BBsIddLpeQIAAEmDwf5IAfpIg8ICicFEifNNiczpN////0SJ88HjBgnDQYPAA0kp7EGD+AR0NkmD/wEPhGUCAABIidgPtk7/D7bZQQ+2fB0AQIT/eSdJg8f/SIPGAUH2BBsISInDdc/pSQIAAEmDxP1IAepIg8ID6dn+//+JwcHgBgn4SYPH/onDTYn8SIny6cT+//9JKexJg8QBTYnnTI0kKkmDxP9EifNMi3QkCEiLLCSA+S4PhC0BAACA+T0PhCQBAADpqwIAAA++8UG4AQAAAEmJ30yJzUmJ/EiJw+nqAQAAQbgBAAAASYnfSYn86YIAAAAPvvFJAd9Jg8f/SSncSYPEAUG4AgAAAEyJzUyJ2+m3AQAAD77yQA+21UUxwEyJzemlAQAATQHMSAHqSIPCAUGJwEyLdCQISItcJBjpmgAAAEkp/EgB+kGJwE2J50mJ1EyLdCQISItcJBjpTP///0kB30mDx/9JKdxJg8QBQbgCAAAATInTTInd6UwBAABAD772SSn/SYPH/kkB/EmDxAJBuAMAAABMic3pLAEAAEAPvvZJKe9Jg8f+SQHsSYPEAkG4AwAAAEyJ3ekMAQAASYPB/kgB+kiDwgJNicyLRCQYQYnARInzTIt0JAhIiywkSQHURTH/QYP4Aw+HEwEAAESJwEiNDW5+7v9IYwSBSAHI/+BIjUUBQbgCAAAASIN8JBAAdElIO0QkIA+HUgEAAMHrBEiLTCQQiBwp6zFIjUUCQbgBAAAASIN8JBAAdDBIO0QkIA+HKAEAAInZwekCSItUJBCITCoBwesKiBwqSInFTYX/D4XAAAAA6REBAABIicVNhf8Pha8AAADpAAEAAEiNBCpIg8ABSPfVTAHli1QkGEGJ0ESJ80mJ70mJxOkE/v//SYPE/UgB6kiDwgPpJP///0iDxv5JifTp6P3//0yJ3Q++8g+20UUxwIX2eBSD+j10HYP6LnQYTIl0JAjpkfv//4P6LnQJg/o9D4XFAAAASYPHAUmDxP9Bg/gDD4bt/v//SI01oq/o/0iNDfCwrf+/AwAAALqEAgAAMcDosl3+/0UxwE2F/3RWMclIjRWhge7/McDrGWYuDx+EAAAAAAAPHwCDwAFIg8EBSTnPdBlBD7Y0DEiD/j106UCA/i504/YEMgh14OsJhcB0E0Q5wHQOQfYGAXUeZkHHBgAA6yVMifdIie5Ix8L/////6IIjCwCwAesRSYtGEMYAAEnHRggAAAAAMcBIg8QoW0FcQV1BXkFfXcMPtsJIjQ0Uge7/9gQBCA+FBf///+umDx+EAAAAAABIjQ2pfe7/6UT2//8PH0AATI0FiYTu/7kBAAAA6c8CAABmLg8fhAAAAAAADx9EAABMjQV5fu7/McnpsgIAAGaQU0iJ+w9XwA8RB0jHRxAAAAAATI0FR4Tu/0iJ90iJ1kiJ2rkBAAAA6IQCAABIidhbw2YuDx+EAAAAAAAPH0QAAFNIifsPV8APEQdIx0cQAAAAAEyNBRd+7v9IifdIidZIidoxyehHAgAASInYW8NmkEFXQVZBVFNQSYnXSYn+SYnUSdHsD1fADxEHSMdHEAAAAABIg/oCcxxDxkQmAQBBgOf+RYg+TInwSIPECFtBXEFeQV/DSInzSYP/LnIoSY1UJOpIxwQkAAAAAL4WAAAATIn3MclFMcBFMcnoURULAEH2BgF1DUmNRgFBgOf+RYg+6whJi0YQTYlmCELGBCAATY1GATHJSI0VtH7u/+sOZpCIBA9Ig8EBSTnMdIkPtgRLD7YEEMDgBA+2dEsBTInHAgQWQfYGAXTYSYt+EOvSZpBBV0FWQVRTUEmJ10iJ80mJ/kmJ1A9XwA8RB0jHRxAAAAAASQHUdD9Jg/wXcihJjVQk6kjHBCQAAAAAvhYAAABMifcxyUUxwEUxyeihFAsAQfYGAXUsSY1GAUKNDL0AAAAAQYgO6yNDxkR+AQBCjQS9AAAAAEGIBk2F/3Ub6dYAAABJi0YQTYlmCELGBCAATYX/D4TAAAAAQfYGAXQGSYtGEOsHTInwSIPAAU2NR/9Mif5Ig+YDdDlIjT1yiu7/SInZZi4PH4QAAAAAAA8fRAAAD7YRD7cUV2aJEEiDwQFIg8ACSIPG/3XoSYP4A3ML62dIidlJg/gDcl5MAfsx0kiNNSuK7v9mLg8fhAAAAAAAkA+2PBEPtzx+Zok8UA+2fBEBD7c8fmaJfFACD7Z8EQIPtzx+Zol8UAQPtnwRAw+3PH5miXxQBkiNPBFIg8cESIPCBEg533W5TInwSIPECFtBXEFeQV/DzMzMzMzMzMzMzFVBV0FWQVVBVFNQTYnGQYnNSInTSYn3SYn8SIn3ic7oHM8AAEiJxQ+2A6gBdAZIi0sI6wZIicFI0elIie9IKc92YQ+EggAAAEyLA0yJwkiD4v5Ig8L/qAG+FgAAAEgPRfJIifBIKchIOfhzH0iJ6kgp8kjHBCQAAAAASInfSYnIRTHJ6PgSCwBEigNIjUMBQfbAAXQESItDEHUnjUwtAIgL6yOoAXUNxkQrAQCNRC0AiAPrFkiLQxDGBCgASIlrCOsISIlrCMYEKAAPtgv2wQF0CkiLUxBIi0sI6wdIjVMBSNHpRQ+2zUyJ50yJ/k2J8OibzgAASInfSInGSMfC/////0iDxAhbQVxBXUFeQV9d6TsfCwDMzMzMzMzMzMzMzEFWU1BJifZIifsPtgeoAXQeSItLCEw58XIgqAF1f0LGRDMBAEUA9kSIM+mGAAAASInBSNHpTDnxc+BMifdIKc90c0yLA0yJwkiD4v5Ig8L/qAG+FgAAAEgPRfJIifBIKchIOfhzH0yJ8kgp8kjHBCQAAAAASInfSYnIRTHJ6N4RCwBEigNIjUMBQfbAAXQESItDEHUXQ40MNogL6xNIi0MQQsYEMABMiXMI6wlMiXMIQsYEMABIg8QIW0Few8zMzEQPtg9B9sEBdBJMi08ISIt/EE2FyXUV6ZcAAABIg8cBSdHpTYXJD4SHAAAATY1B/0yJzkiJ+UiD5gN0J0iNFe187v9IiflmLg8fhAAAAAAAD7YBD7YEAogBSIPBAUiDxv917UmD+ANySkwBz0iNBb187v9mLg8fhAAAAAAADx8AD7YRD7YUEIgRD7ZRAQ+2FBCIUQEPtlECD7YUEIhRAg+2UQMPthQQiFEDSIPBBEg5+XXNw2YuDx+EAAAAAABmkEQPtg9B9sEBdBJMi08ISIt/EE2FyXUV6ZcAAABIg8cBSdHpTYXJD4SHAAAATY1B/0yJzkiJ+UiD5gN0J0iNFS197v9IiflmLg8fhAAAAAAAD7YBD7YEAogBSIPBAUiDxv917UmD+ANySkwBz0iNBf187v9mLg8fhAAAAAAADx8AD7YRD7YUEIgRD7ZRAQ+2FBCIUQEPtlECD7YUEIhRAg+2UQMPthQQiFEDSIPBBEg5+XXNw2YuDx+EAAAAAABmkEFWU1BED7Y3TI1HAUWJ8kyLTxBBgOIBdAlMi3cITInO6wZJ0e5MicZIifJNhfZ0Nk6NHDZIjR11eu7/TInwSInyZi4PH4QAAAAAAA8fRAAAD7YK9gQLCHQNSIPCAUiDwP917UyJ2kgp8k2J80kp0w+CzAAAAEgB8kmNBDZIg8ABTI01KXru/0yJ2WYPH0QAAEiFyXQVD7ZY/kiDwP9Ig8H/QfYEHgh16OsDSInQSCnQTDnYSQ9Hw0iFwHRlSIXAfkNIAdAxyWYuDx+EAAAAAABED7YKQw+2HA6A4wjA6wMg2Q+2yUgpzkSIDkiDxgFIg8IBidlIOcJy10SKF0yLTxBBgOIBRYTSTQ9EyEwpzkjHwv////9Ig8QIW0Fe6c8bCwBFhNJ1B2bHBwAA6wxBxgEASMdHCAAAAABIg8QIW0Few+iKDQsAzMzMzMzMzMzMzFVBV0FWQVVBVFNIgeyYAQAASIn7ZEiLBCUoAAAASImEJJABAABMjWQkGEyNfCQQuoABAABMif8x9ujiCwsATI0tG3zu/0yNdCQI6xkPH0AASInCSIPi/kiLXJH4SIPA/kiJRCQQD7ZDDEiD+AQPhwUBAABJY0SFAEwB6P/gSItDGEiJRCQIi0gIg+H9g/kEdBK5/P////APwUgIg+H9g/kEdT1Ii0QkELovAAAAqAF0BUiLVCQgSInBSNHpSDnRD4TrAAAATIniqAF0BUiLVCQYSItEJAhIiQTKSINEJBACSItrEEiJ3+ikBwsAi0UIg+D9g/gEdBa4/P////APwUUIg+D9g/gED4WDAAAASInr6VD///9Iid//Uxjrcw+2cw4PtlMPgHsNAHRXSInf6F0QAADrW0iJ3+hDgQAA61FIi2sYSInf6EUHCwCLRQiD4P1IieuD+AQPhAj///+4/P////APwUUIg+D9SInrg/gED4Tv/v//6xhIid/oEAcLAOsOSInf6NYOAABmDx9EAABIi0QkEEiD+AJyJUyJ4agBD4Sq/v//SItMJBjpoP7//0yJ/0yJ9ugVyv//6SD///9IhcB0CkiLfCQY6MEGCwBkSIsEJSgAAABIO4QkkAEAAHUSSIHEmAEAAFtBXEFdQV5BX13D6OcICwDMzMzMzMzMQVdBVkFVQVRTSYnOSYnVSYn3SYn8D7ZPD7gGAAAASCnIdE1BD7ZUJA5IAdBBiEQkDkHGRCQPBkiD+AV3M0mNDMy6BQAAAGYuDx+EAAAAAABIi3TR4EmJdNQQSIPC/0g5wnPtZi4PH4QAAAAAAA8fAEuNFC5IidBIgfrzDwAAcgW48w8AALkgAAAASIP6FHIHSIPADUiJwbsIAAAASIH5AQQAAHIFuyAAAABIjQQZSIPA/0j320ghw0iJ3+iwBQsASMdACAAAAABIidlIwekDSIPBAUiJ2kjB6gVIg8JhSIH7AQQAAEgPQtHHQAgEAAAAD7bKjTTN+P///8HhBYHB4PP//4D6gg9D8YhQDIPG80hj1kk51XcDTInqSIkQQQ+2TCQOgMH/QYhMJA4PtslJiUTMEEiDwA1MietIKdNJjTQfSInH6McJCwBMOet3A0mJ3U2F7XQMQYB8JA4AD4UO////TIn4TInqW0FcQV1BXkFfw2YuDx+EAAAAAAAPH0AAVUFXQVZBVUFUU0iD7BhIiVQkEEmJ90iJfCQIv0AAAADoywQLAEmJxMdACAQAAABmx0AMAgDGQA8GTYX/D4QHAQAAQb4HAAAAMe1mDx9EAABIi0QkEEmNFAdIidBIgfrzDwAAcgW48w8AALkgAAAASIP6FHIHSIPADUiJwbsIAAAASIH5AQQAAHIFuyAAAABIjQQZSIPA/0j320ghw0iJ3+hLBAsASMdACAAAAABIidlIwekDSIPBAUiJ2kjB6gVIg8JhSIH7AQQAAEgPQtHHQAgEAAAAD7bKjTTN+P///8HhBYHB4PP//4D6gg9D8YhQDIPG80hj3kk533cDTIn7SIkYS4kE9EiDwA1Nif1JKd1Ii0wkCEqNNClIicdIidrobAgLAE05/XcDTYnvSAHdSY1G/02F/3QNSYP+AkmJxg+FC////wT/6wSwBjHtSYksJEGIRCQOTIngSIPEGFtBXEFdQV5BX13DDx+EAAAAAABBV0FWQVVBVFNJic5JidVJifdJifwPtk8OSIXJD4UEAQAAZi4PH4QAAAAAAA8fQABLjRQuSInQSIH68w8AAHIFuPMPAAC5IAAAAEiD+hRyB0iDwA1IicG7CAAAAEiB+QEEAAByBbsgAAAASI0EGUiDwP9I99tIIcNIid/oAAMLAEjHQAgAAAAASInZSMHpA0iDwQFIidpIweoFSIPCYUiB+wEEAABID0LRx0AIBAAAAA+2yo00zfj////B4QWBweDz//+A+oIPQ/GIUAyDxvNIY95JOd13A0yJ60iJGEEPtkwkD41RAUGIVCQPSYlEzBBIg8ANSInHTIn+SIna6B4HCwBJAd9JKd10DEGAfCQPBg+FGv///0yJ+EyJ6ltBXEFdQV5BX8NBD7ZUJA9IidBBxkQkDgBIKchBiEQkDw+E7f7//0iD+AJyNUmNfCQQSY00zEiDxhBJjRzUSIPDEEg5+3ZASI0U1RAAAABIjTzNAAAAAEgp+kwB4kg51nMlMdJJjXQkEEmNDMxIg8EQSIs80UiJPNZIg8IBSDnQde/pjf7//0iJwkiD4v4x/w8QBP5BDxFE/BBIg8cCSDn6de1IOdAPhGj+///rtmYPH0QAAFVBV0FWQVVBVFNIg+wYSIlUJBBJifVJify/QAAAAOiNAQsAx0AIBAAAAGbHQAwCAEiJRCQIxkAOAE2F7Q+E+gAAADHtRTH/Zg8fhAAAAAAASItEJBBKjRQoSInQSIH68w8AAHIFuPMPAAC5IAAAAEiD+hRyB0iDwA1IicG7CAAAAEiB+QEEAAByBbsgAAAASI0EGUiDwP9I99tIIcNIid/oCwELAEjHQAgAAAAASInZSMHpA0iDwQFIidpIweoFSIPCYUiB+wEEAABID0LRx0AIBAAAAA+2yo00zfj////B4QWBweDz//+A+oIPQ/GIUAyDxvNIY95JOd13A0yJ60iJGEgB3U2NdwFIi0wkCEqJRPkQSIPADUiJx0yJ5kiJ2ugrBQsASSnddBdJAdxJg/8FTYn3D4UW////6wVFMfYx7UiLRCQISIkoRIhwD0iDxBhbQVxBXUFeQV9dww8fQABVQVdBVkFUU0iD7BBMicNBic5IidVJifRJif9kSIsEJSgAAABIiUQkCEiNNWCfdP+6JAAAAEyJx+gz3vf/SIXtdDlIid9MieZIieroIN73/8ZEJAcKSI10JAe6AQAAAEiJx+gJ3vf/SI01E1it/rokAAAASInf6PXd9/9Nhf90E0EPtvZMif9Iidoxyeg/AAAA6xRIjTUAoK3/ugUAAABIid/oyd33/2RIiwQlKAAAAEg7RCQIdQ1Ig8QQW0FcQV5BX13D6PcBCwAPH4AAAAAAVUFXQVZBVUFUU0iB7AgBAABBicxJidZBifdJif1kSIsEJSgAAABIiYQkAAEAAA9XwA8pRCRQSMdEJGAAAAAAi0cIg+D9g/gEdSEPEUQkWMZEJFAOx0QkUVByaXbHRCRUdmF0ZcZEJFgA63lIjQXdBKn+SImEJNAAAABIx4Qk2AAAAAcAAABBi30Iwf8CSI2cJLAAAABIid7oE4EBAEgp2EiJnCSgAAAASImEJKgAAABIjQWJ/bz/SIlEJHBIx0QkeAEAAABIjXwkUEiNtCTQAAAASI2UJKAAAABIjUwkcOis6wEAD1fADylEJDBIx0QkQAAAAABIjQUCq53/SImEJNAAAABIx4Qk2AAAAAIAAABIjZwkoAAAALoBMAAASInfTInu6CjpAQBIjXwkMEiNtCTQAAAASIna6GPqAQBJY+xIAe0PV8APKYQk0AAAAEjHhCTgAAAAAAAAAIP98A+DzQUAAIP9F3MeQo0EpQAAAACIhCTQAAAASI2cJNEAAABFheR1TetbTIlsJAhNieVNifRFif5MjX0QSYPn8EyJ/+jc/QoASInDSImEJOAAAABJg88BTIm8JNAAAABFifdNieZNiexMi2wkCEiJrCTYAAAASInfviAAAABIieroTwELAMYEKwAPtpQk0AAAAPbCAXQSSIu0JOAAAABIi5Qk2AAAAOsLSNHqSI20JNEAAABMiffoidv3/w+2VCRQ9sIBdAxIi3QkYEiLVCRY6whI0epIjXQkUUiJx+hj2/f/SI01sZx0/7oCAAAASInH6E/b9/8PtlQkMPbCAXQMSIt0JEBIi1QkOOsISNHqSI10JDFIicfoKdv3/0iNNdA86v+6AgAAAEiJx+gV2/f/9oQk0AAAAAF0DUiLvCTgAAAA6P78CgBBikUMPAEPhLAAAAA8Ag+FLwEAAA9XwA8pRCQQSMdEJCAAAAAAQQ+2fQ2F/0SJfCQED4TbAQAASI0FfDXq/0iJhCTQAAAASMeEJNgAAAAFAAAASI2cJLAAAABIid7orH4BAEgp2EiJnCSgAAAASImEJKgAAABIjQUi+7z/SIlEJHBIx0QkeAEAAABIjXwkEEiNtCTQAAAASI2UJKAAAABIjUwkcOhF6QEAilwkEEiLVCQgSItEJBjpfAEAAEiNNfbFl/66EQAAAEyJ9+gu2vf/SYt1AEiJx+giBAsASI01lxNZ/7oKAAAASInH6A7a9/9Ji3UQSInH6AIECwBFhP8PhIMCAABIjTWhWk7/ugoAAABMiffo5dn3/0GKVQyA+gEPhQgCAABJi00QSYt1GIpWDID6BQ+DAgIAAEiLdhDp/QEAADwFclxIjTWiVKX/ugwAAABMiffoo9n3/0mLdQBIicfolwMLAEiNNf94pP+6CAAAAEiJx+iD2ff/QQ+2TQyJysHiBYHC4PP//4H5ggAAAI0Mzfj///8PQ8qDwfNIY/HrIDwED4URAgAASI01O+Gv/roMAAAATIn36D/Z9/9Ji3UASInH6DMDCwBFhP8PhI0CAABIjTXSWU7/ugoAAABMiffoFtn3/0GKVQyA+gEPhRICAABJi00QSYt1GIpWDID6BQ+DDAIAAEiLdhDpBwIAAA8pRCQQSMdEJCAAAAAAxkQkEAjHRCQRTGVhZsZEJBUAswgxwDHSidnQ6fbDAUiNdCQRSA9F8g+20UgPRdBMiffop9j3/0iNNfiZdP+6CAAAAEiJx+iT2Pf/SYt1AEiJx+iHAgsASI01BPGi/roKAAAASInH6HPY9/9BD7Z1DkiJx+hmAgsASI01olKt/roIAAAASInH6FLY9/9BD7Z1D0iJx+hFAgsASI01y9uh/7oBAAAASInH6DHY9/9BD7ZtDkUPtn0PRDj9dC1Bg8QBScHnA0jB5QMPtlwkBJBJi3wtEIneTInyRInh6F76//9Ig8UISTnvdeX2RCQQAQ+EqAAAAEiLfCQg6OD5CgD2RCQwAQ+FmgAAAOmfAAAAMclMie6A+gUPgv79//9Ig8YNSAHOSYtNAEiD+Ty6PAAAAEgPQtFIicfootf3/zHJSYN9AD0Pk8FIjRXrZqv+SI01tJdZ/0gPQ/JIjRRJSIPCAUiJx+h21/f/xoQk0AAAAApIjbQk0AAAALoBAAAATIn36FnX9/9Ji30YQYPEAUEPtvdMifJEieHoovn///ZEJDABdApIi3wkQOgx+QoA9kQkUAF0CkiLfCRg6CD5CgBkSIsEJSgAAABIO4QkAAEAAA+FpgAAAEiBxAgBAABbQVxBXUFeQV9dwzHJTInugPoFD4L0/f//SIPGDUgBzkmLTQBIg/k8ujwAAABID0LRSInH6MnW9/8xyUmDfQA9D5PBSI0VEmar/kiNNduWWf9ID0PySI0USUiDwgFIicfondb3/8aEJNAAAAAKSI20JNAAAAC6AQAAAEyJ9+iA1vf/9kQkMAEPhTr////pP////0iNvCTQAAAA6DP9CgDorvoKAGYuDx+EAAAAAAAPH0AASYnIMcnp1vf//2YPH0QAAEmJ8DH2MdIxyenC9///ZpBBV0FWQVRTUEmJ/kg51nUcTYX2D4T9AAAATIn3SIPECFtBXEFeQV/pBPgKAE2NPNZJg8cQTY0k9kmDxBDrEGaQ6Ov3CgBJg8QITTn8dMJJizwki0cIg+D9g/gEdVOKRwzrFWYuDx+EAAAAAAAPH0AAD7ZDDEiJ3zwEd8U8BA+EiwAAAEiLXxjopPcKAItDCIPg/YP4BHTZuPz////wD8FDCIPg/YP4BHTH65oPH0QAALj8////8A/BRwiD4P2D+AR1g4pHDOsQZg8fhAAAAAAAD7ZDDEiJ3zwED4dh////PAR0K0iLXxjoRPcKAItDCIPg/YP4BHTZuPz////wD8FDCIPg/YP4BHTH6Tf/////VxjpL////0iDxAhbQVxBXkFfw2YuDx+EAAAAAAAPH0AAQVdBVlNJif5IOdZ1Ek2F9nRjTIn3W0FeQV/p4fYKAEmJ10iJ80nB5wNIweMD6w+Q6Jv+//9Ig8MISTnfdM9Ji3weEItHCIPg/YP4BHQSuPz////wD8FHCIPg/YP4BHXVD7Z3Dg+2Vw+Afw0AdMLojf///+vAW0FeQV/DDx9EAABVQVdBVkFUU0iB7KAAAABkSIsEJSgAAABIiYQkmAAAAEiF/3RaSIn7gH8MAnV0D7ZLDYP5DA+DigAAAEQPtnsOSYP/Bg+DngAAAEQPtlMPSYP6Bw+C4AAAAEiNNSZ1qP5IjQ1w7bL+TI0FVQ6u/jHtvwIAAAC6mAEAAOmKAAAASI01AHWo/kiNDUrtsv5MjQUEdaj+Me2/AgAAALqUAQAA62dIjTXddKj+SI0NJ+2y/kyNBQ6VdP8x7b8CAAAAupUBAADrREiNNbp0qP5IjQ0E7bL+TI0F7Ank/zHtvwIAAAC6lgEAAOshSI01l3So/kiNDeHssv5MjQV4oZ3/Me2/AgAAALqXAQAAMcDoQEL+/2RIiwQlKAAAAEg7hCSYAAAAD4WNAgAAiehIgcSgAAAAW0FcQV5BX13DRTj6cyNIjTVBdKj+SI0Ni+yy/kyNBYHxvP8x7b8CAAAAupkBAADrqEU413UxMf9IOzsPha4AAABAhPYPhNwAAABIjQWh8QsAigBAtQGoAXSGhMkPhc8AAADpef///0SNSf9OjQTVAAAAAEqNLP0AAAAAMf/rDEgDOkiDxQhJOeh0rUiLVCsQSIXSD4R5AQAAD7ZCDIXJdBY8Ag+FjwEAAA+2Qg1BOcF0zemnAQAAPAN3xDwBdQpIi0IYgHgMA3e2SI01hnOo/kiNDdDrsv5MjQWIoJ3/Me2/AgAAALqhAQAA6er+//9IjWwkeEiJ7uiEdgEASCnoSIlsJGhIiUQkcEiNfCQgSI10JGjouEoAAPZEJCABdFNIi2wkMOtRQLUBhckPhK/+//9FONcPhKb+//9OjSTV+P///0nB5wNED7b2Sot8OxBEifboef3//4nFhMAPhH/+//9JjUcITTn8SYnHdd3pbv7//0iNbCQhSIs7SI1cJEhIid7o+XUBAEgp2EiJXCQ4SIlEJEBIjXwkCEiNdCQ46C1KAAD2RCQIAXQHSItcJBjrBUiNXCQJSI01mXKo/kiNDbOfnf9MjQUAS6z/TI0NtEut/r8CAAAAuqUBAAAxwFNV6DtA/v9Ig8QQ9kQkCAF0CkiLfCQY6FbzCgD2RCQgAXQKSIt8JDDoRfMKADHt6c79//9IjTU9cqj+SI0Nh+qy/kyNBUORWf8x7b8CAAAAupwBAADpof3//0iNNRdyqP5IjQ1h6rL+TI0FdO+8/zHtvwIAAAC6ngEAAOl7/f//SI018XGo/kiNDTvqsv5MjQVCmY//Me2/AgAAALqfAQAA6VX9///oF/UKAA8fgAAAAABVQVdBVkFVQVRTSIPsGA+2bw1Miy9JKfUPtkcPSItExwhIiwhMOelzB0mJ9OsnZpBIicdJicyF7Q+O1wEAAA+2Rw9Ii0THCEiLCIPF/0w56XPeTSnsSIn7TYXkD4SnAQAARA+2ew4xwA8fhAAAAAAASotM+xBJg8cBSAMBSYnGTSnmcuy/QAAAAOgS8goASInHDxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAEyJKESIeA5BD7bPD7ZAD0g5wXQpSMHgA0EPts9IweEDZi4PH4QAAAAAAEiLVA8Q8INCCARIg8EISDnIde1NhfYPhFgBAABIiXwkCIksJInq6ysPH4QAAAAAAItUJASDwv9Ii0wkEEqJRPkISInHSYnuTYnvSIXtD4Q4AQAASY1H/4hHDkqLXPsISIsDSYnETSn0hdJIiXwkEA+OBAEAAEQPtmsOTYXkiVQkBHQtMe1mLg8fhAAAAAAAkEqLROsQSYPFAUgDKEw55XLv6w9mLg8fhAAAAAAADx8AMe1MKeW/QAAAAOgB8QoADxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAEyJMESIaA5BD7bND7ZQD0g50Q+ENP///0jB4gNIweEDZi4PH4QAAAAAAGaQSIt0CBDwg0YIBEiDwQhIOcp17ekI////8INDCARIid/pCQEAAPCDRwgEvf////9NKewPhPYAAACAfwwBdVFMA2cQSItfGPCDQwgEuPz////wD8FHCIPg/YP4BHU16N7n///rLkiJ+Osd8INDCARMOfB1SossJOmpAAAATYnviywkSIt8JAhEiHgO6Z8AAABIifu/IAAAAOgU8AoASInHD1fADykAx0AIBAAAAEyJKMZADAFMiWAQSIlYGOtxgHsMAXUtTANjEEyLaxjwQYNFCAS4/P////APwUMIg+D9g/gEiywkdRBIid/oUuf//+sGSYndiywkvyAAAADosO8KAEiJww9XwA8pAMdACAQAAABMiTDGQAwBTIlgEEyJaBhIi3wkEEqJXP8ISIt8JAhIifiJ6kiDxBhbQVxBXUFeQV9dw2YuDx+EAAAAAAAPH0AAVUFXQVZBVUFUU0iD7BhJifVIiftED7Z3DYXSD4SdAAAAD7ZDDkiLRMMQSIsITDnpD4KIAAAARYX2dCVBg8YBkA+2SA5Ii3zIEEiLD0w56XJmQYPG/0iJ+EGD/gF/4usDSInH8INHCARBvv////9MOekPhOwCAABNhe0PhJgCAACAfwwBD4WkAgAATIt3EEiLXxjwg0MIBLj8////8A/BRwiD4P2D+AQPhYcCAADoPub//+l9AgAAQYPG/kiJw0w5K3UN8INDCARIid/pkwIAAEQPtmMOSotE4xBIiwBNie9MOeh3H2YuDx+EAAAAAACQSSnHSotE4xhJg8QBSIsASTnHc+y/QAAAAOhS7goASInHDxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAEyJKESIYA8PtkAOQQ+2zEg5wXQpSMHhA0jB4ANmLg8fhAAAAAAADx9AAEiLVAcQ8INCCARIg8AISDnBde1Nhf8PhOwAAABIiXwkCEiJ+USJdCQE6y0PH0QAAEGDxv9Ii0wkEEqJROEQQYDEAUSIYQ9IicFNie9JiexNhe0PhM4AAABKi1zjEEWF9g+OpwAAAA+2aw5Ii0TrEEiLAEw5+EiJTCQQTYn9dxWQSSnFSItE6xhIg8UBSIsASTnFc+y/QAAAAOhi7QoADxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAEyJOECIaA8PtkgOQA+21Ug5yg+EVf///0jB4gNIweEDZi4PH4QAAAAAAA8fAEiLdAgQ8INGCARIg8EISDnKde3pKP///0iJ+Osm8INDCARMOTt1JUSLdCQESIt8JAjpgwAAAEmJ7ESLdCQESIt8JAhEiGAP6ccAAACAewwBdStMi3MQSItrGPCDRQgEuPz////wD8FDCIPg/UmJzYP4BA+EsAAAAEiJ6+sGSYnNRTH2vyAAAADog+wKAA9XwA8pAMdACAQAAABMiTjGQAwBTIlwEEiJWBhIicNEi3QkBEiLfCQITInpSolc4RBBgMQBRIhhD+tLuPz////wD8FHCIPg/YP4BHRbMf/rNUiJ+0Ux9r8gAAAA6CLsCgAPV8APKQDHQAgEAAAATIkoxkAMAUyJcBBIiVgYSInHQb7/////SIn4RInySIPEGFtBXEFdQV5BX13DSInf6HDj///pQ////+hm4///Mf/r1WaQQVdBVkFUU1BJif8PtkcOTIt0xxCLRwiD+AR1WEEPtl8OSI1LAUEPtkcPSDnBdG1MjSTF+P///0jB4wMPH0QAAEmLfB8Yi0cIg+D9g/gEdB24/P////APwUcIg+D9g/gEdAtIg8MISTncddXrKuju4v//6+7wQYNGCAS4/P////BBD8FHCIPg/YP4BHUXTIn/6Mvi///rDU2F/3QITIn/6EzrCgBMifBIg8QIW0FcQV5BX8NmLg8fhAAAAAAADx8AQVdBVkFVQVRTSYnXSYn2SYn8i0cIg/gEdSBFD7ZsJA9NOfUPhZsAAABFiHQkD02JPCRMiePpfQAAAL9AAAAA6MzqCgBIicNBDxAEJEEPEEwkEEEPEFQkIEEPEFwkMA8RAA8RSBAPEVAgDxFYMMdACAQAAABMiThEiHAPD7ZADkEPts5IOcF0G0jB4QNIweADSItUAxDwg0IIBEiDwAhIOcF17bj8////8EEPwUQkCIPg/YP4BHRQSInYW0FcQV1BXkFfw0nB5QNKjRz1AAAAAEmLfBwQi0cIg+D9g/gEdCC4/P////APwUcIg+D9g/gEdA5Ig8MISTndddXpKf///+ib4f//6+tMiefokeH//+umZi4PH4QAAAAAAA8fRAAAVUFXQVZBVUFUU1BJif1IhfYPhIIDAABJi1UASCnyD4Z6AwAAQQ+2bQ1Bi30IQQ+2XQ9Ji3UASCnWDx+AAAAAAEiJ8UmLRN0ISIPD/0yLIEwp5nPsQQ+2dQ5IOd4PhS8BAABJjU0Og/8EQQ+UxkiJFCRmLg8fhAAAAAAADx9EAABJicdBi0UIg/gEdWQPthlIjUsBQQ+2RQ9IOcEPhIcAAABBiexIjSzF+P///0jB4wNJi3wdGItHCIPg/YP4BHQduPz////wD8FHCIPg/YP4BHQLSIPDCEg53XXV60PonuD//0iLFCTr6g8fhAAAAAAA8EGDRwgEuPz////wQQ/BRQiD4P2D+AR1K0yJ7+hv4P//6x1mLg8fhAAAAAAADx8ATYXtRInldAxMie/o4OgKAEiLFCRBi0cIg/gED5TAQSDGg+0BD4LjAAAAQQ+2Xw9Jiw9IKdFmLg8fhAAAAAAAkEiJz0mLRN8ISIPD/0yLIEwp4XPsSY1PDkEPtncOTYn9SDneD4T3/v//SSn8TYn96wNJKcxIjXMBTInv6ED9//9JicdMi3TYEE07Jg+E1gEAAEyJ+GYuDx+EAAAAAABmkEGLTgiD7QEPgrYAAACD+QQPhQ4BAABBie1BD7ZeD0mLBkwp4EiDwwEPH4QAAAAAAEiJwUmLFN5IiypIg8P/SCnoc+1IKc1MifdIid5MieLozPz//0yLdNgISIPD/0mJ7Ek7LkSJ7XWY6VoBAABJORcPhlEBAABBikcMRYT2dBA8BA+HAAEAADwBD4T4AAAAPAEPhb8AAABJi18QSYtvGPCDRQgEuPz////wQQ/BRwiD4P2D+AQPhDsBAABJie/plQAAAE05Jg+G9gAAAEGKVgyD+QR1EoD6BA+H4QAAAID6AQ+E2AAAAID6AQ+FnAAAAEmLThBIiQwkSYtuGPCDRQgEufz////wQQ/BTgiD4f1JicWD+QQPhOgAAABJie5Iiywk621MifdMieZIicUx0uic9///SIlE3RC4/P////BBD8FGCIPg/YP4BHV7TIn36Gze///rcTHbvyAAAADozuYKAA9XwA8pAMdACAQAAABIiwwkSIkIxkAMAUiJWBBMiXgYSYnH60BJiRfrO0mJxTHtvyAAAADoleYKAA9XwA8pAMdACAQAAABMiSDGQAwBSIloEEyJcBhJicZMiejrA02JJkyJdNgQTIn4SIPECFtBXEFdQV5BX13DTYnv6+m4/P////BBD8FFCIPg/YP4BHQfRTH/69FMif/owt3//+m4/v//TIn36LXd///pC////0yJ7+io3f//RTH/66oPHwBVQVdBVkFVQVRTSIPsKEiF0g+EZQQAAEmJ10iJ80QPtmcOSotE5xBIiyhIOfV3FZBIKetKi0TnGEmDxAFIiyhIOetz7A+2Tw1OjTQ7STnudjiJTCQESYnFSTnuD4baAAAASInoTInhZg8fhAAAAAAASSnGSItUzxhIg8EBSIsCSTnGd+zpuAAAAIXJdFAPHwBED7ZgDk6LbOAQSYttAEg53XciZi4PH4QAAAAAAA8fAEgp606LbOAYSYPEAUmLbQBIOetz641R/06NNDtJOe53WkyJ6IP5AYnRf7XrA0mJxfBBg0UIBEw5/Q+EewMAAEGAfQwBD4XeAQAASQNdEEmLbRjwg0UIBLj8////8EEPwUUIg+D9g/gED4W9AQAATInv6Hrc///psAEAAIlUJARIicdJOe4Phyb///9MiepMieFIiVQkCItEJASFwEiJfCQgSIlMJBgPjq0AAABMiXwkEEyJ70iJ3kGJxegB8v//SYnHidVIi3wkCEyJ9roBAAAA6Cr1//9IiUQkCInTSY1EJAE51YnpD0zKg8EBSDtEJBhED0TpjUUBRDnoRYnuD42pAAAA99VEAfXrLw8fRAAAQQ+2Rw0EAUmLD0mJTQBBxkUMAkGIRQ1mQcdFDgABTYl9EE2J74PF/3R2v0AAAADoHOQKAEmJxcdACAQAAABBgH8MAnS7McDrvvBBg0UIBEiF2w+EIgEAAEyJfCQQSCndQYB9DAEPhd4AAABJA10QTYt9GPBBg0cIBLj8////8EEPwUUIg+D9g/gED4W8AAAATInv6Ejb///prwAAAE2J/YPDAUQ5831hTIt8JBBIi2wkCOs6Zi4PH4QAAAAAAGaQD7ZNDYDBAUiLVQBIiRDGQAwCiEgNZsdADgABSIloEEiJxYPDAUE53g+EJgEAAL9AAAAA6FjjCgDHQAgEAAAAgH0MAnS7McnrvkyLfCQQSItsJAjp/AAAAEyJ7b8gAAAA6CvjCgBJicUPV8APKQDHQAgEAAAATIk4xkAMAUiJWBBIiWgY6WEBAABNie+/IAAAAOj64goASYnFD1fADykAx0AIBAAAAEiJKMZADAFIiVgQTIl4GEyLfCQQSItsJAjwg0UIBEw5dQAPhIEAAABNhfZ0MoB9DAF1S0iLXRBIiepIi20Y8INFCAS4/P////APwUIIg+D9g/gEdStIidfoHdr//+shuPz////wD8FFCIPg/YP4BESLdCQED4ThAAAAMe3rMDHbvyAAAADoYOIKAA9XwA8pAMdACAQAAABMiTDGQAwBSIlYEEiJaBhIicVEi3QkBL9AAAAA6DLiCgDHQAgEAAAASMcAAAAAAMZADAJEiHANZsdADgAATIloEEmNVCQBuQEAAABIi3wkGEg5+nRHSMHnA0qNDOUAAAAASCnPSIPH+EiLTCQgSo0U4UiDwhi5AQAAAGYPH4QAAAAAAEiLdMr48INGCARIiXTIEEiDwQFIg8f4dedIiWzIEIDBAYhID0yJOEmJxUyJ6EiDxChbQVxBXUFeQV9dw0Ux7evpSInv6BfZ//8x7elE////SIn4ik8NOk4NcwtIifdIicbpOkEAAEiJx+mSOAAAZpCAfw0AdTsPtkcPD7ZPDkgpyEiD+AF1KrABSIX2dEJIi0zPEIpRDID6AXUZTItBEEiLeRiKVwyA+gVzFEiLfxDrEjHAw0UxwEiJz4D6BXLsSIPHDUwBx0iLCUiJPkiJTgjDZi4PH4QAAAAAAA8fRAAAUEiF0nRTRA+2Vw0PH0QAAA+2Rw5Mi0zHEE2LAUk58HchSI08x0iDxxgPH4AAAAAATCnGTIsPTYsBSIPHCEw5xnPuSI0EFkk5wHIORYXSfg1Bg8L/TInP67cxwFnDsAFIhcl090WKUQxBgPoBdRhJi3kQTYtJGEWKUQxBgPoFcw5Ni0kQ6wwx/0GA+gVy8kmDwQ1JKfByFkkB+UkB8Uk50EkPQtBMiQlIiVEIWcPoTuUKAGYuDx+EAAAAAAAPH0AARA+2Rw1mLg8fhAAAAAAAkA+2Vw5Ii0TXEEiLCEg58XcjZi4PH4QAAAAAAA8fRAAASCnOSItE1xhIg8IBSIsISDnOc+xFhcB+C0GDwP9Ii3zXEOu8ilAMgPoBdRZIi0gQSItAGIpQDID6BXMNSItAEOsLMcmA+gVy80iDwA1IAciKBAbDZi4PH4QAAAAAAGaQSIPsaGRIiwQlKAAAAEiJRCRgRA+2Tw0PV8APKUQkUA8pRCRADylEJDAPKUQkIA8pRCQQDykEJEiJ+E2FyXQzMdJFMcBIifhmDx+EAAAAAAAPtkgPSItEyAiLSAiD+QQPhZUAAABKiQTESYPAAU05wXXeD7ZID0yLRMgIQYtICDHSuAAAAACD+QQPhdQAAABBD7ZIDDHSuAAAAACD+QUPgr8AAACJyMHgBQXg8///gPmCjQzN+P///w9DyIPB80hjyUmLAEgpwXQ1SDnxSA9C8UiNDAZJiQhIATdMAcBIg8ANTYXJdHpJjUn/RInKg+IDSIP5A3MOMf/rPjHA62Ux0jHA619Bg+H8Mf9mDx9EAABIiwz8SAExSItM/AhIATFIi0z8EEgBMUiLTPwYSAExSIPHBEk5+XXYSIXSdCNMjQT8Mf9mLg8fhAAAAAAADx8ASYsM+EgBMUiDxwFIOfp18EiJ8mRIiwwlKAAAAEg7TCRgdQVIg8Row+iT4AoADx8ASIPsGGRIiwQlKAAAAEiJRCQQgH8MAnQmSMdEJAgAAAAASI1EJAhIiQQkSI0VLwcAAEiJ5uj3SwAASIt8JAhkSIsEJSgAAABIO0QkEHUISIn4SIPEGMPoNeAKAA8fRAAASIPsGGRIiwwlKAAAAEiJTCQQSIl8JAiAfgwCdUhIifiKTw06Tg1zIEiJ90iJxuhdPQAAZEiLDCUoAAAASDtMJBB1WkiDxBjDSInH6KA0AABkSIsMJSgAAABIO0wkEHU9SIPEGMNIjUQkCEiJBCRIjRWbBwAASIngSIn3SInG6E1LAABIi0QkCGRIiwwlKAAAAEg7TCQQdQVIg8QYw+iO3woAZi4PH4QAAAAAAA8fQABIg+wYZEiLDCUoAAAASIlMJBBIiXwkCIB+DAJ1SEiJ+IpODTpPDXMdSInH6LA8AABkSIsMJSgAAABIO0wkEHVdSIPEGMNIifdIicbo8DMAAGRIiwwlKAAAAEg7TCQQdT1Ig8QYw0iNRCQISIkEJEiNFasHAABIieBIifdIicbozU0AAEiLRCQIZEiLDCUoAAAASDtMJBB1BUiDxBjD6N7eCgBmLg8fhAAAAAAADx9AAOkrIwAAZi4PH4QAAAAAAJDp6xQAAGYuDx+EAAAAAACQVUFXQVZBVUFUU0iD7BhJifRIif2F0olUJAR0E0GLRCQIg+D9g/gED5TAiQQk6wfHBCQAAAAAQYB8JA0AQQ+2XCQORQ+2fCQPdDFEOPt0MUnB5wNIweMDRA+2NCQPH0AASYt0HBBIie9EifLokP///0iDwwhJOd915+sFRDj7dU+AfCQEAHQ5gDwkAHQbTYXkdC5MiedIg8QYW0FcQV1BXkFfXem42woAuPz////wQQ/BRCQIg+D9g/gED4RUAwAASIPEGFtBXEFdQV5BX13DS40E/EiDwBBIiUQkCE2NNNxJg8YQTIlkJBDrEA8fRAAASYPGCEw7dCQIdIVNiz6APCQAdQbwQYNHCARNiy9Mi2UAQYp0JA9AD7bWQQ+2TCQOSInQSCnISIP4BnIkv0AAAADoCtsKAEiJw8dACAQAAABBgH8MAnVJQYpHDQQB60OQSIXJD4WLAQAAQA+2zonKgMIBQYhUJA9NiXzMEE0BLCRMieNIg/gGczBFMf/pLwEAAGYuDx+EAAAAAAAPH0QAADHASYsPSIkLxkMMAohDDWbHQw4AAUyJexBIiV0ASItNCEG/AQAAAEiFyXVI6bIAAABmLg8fhAAAAAAADx9EAAAPtksNgMEBSIsTSIkQxkAMAohIDWbHQA4AAUiJWBBKiUT9AEqLTP0ISYPHAUiJw0iFyXRsSYnMD7ZJDw+2wUEPtlQkDkgp0EiD+AZyI79AAAAA6BnaCgDHQAgEAAAAgHsMAnScMcnrnw8fhAAAAAAASIXSD4UKAQAAD7bBicGAwQFBiEwkD0mJXMQQTQEsJOtPZi4PH4QAAAAAAA8fRAAASInDv0AAAADow9kKAMdACAQAAABIiwtJAwwkSIkIQYpMJA2AwQHGQAwCiEgNZsdADgACTIlgEEiJWBhKiUT9AEqLRP0ISIXATItkJBAPhC3+//9IjU0QSo0M+Q8fRAAATAEoSIsBSIPBCEiFwHXx6Qz+//9BxkQkDgBBiEQkD0iFwA+EpgAAAEiD+AJyK0mNfCQQSY00zEiDxhBJjRTUSIPCEEg51w+DiQAAAEmNFMRIg8IQSDnWc3wx0kmNdCQQSY0MzEiDwRBIizzRSIk81kiDwgFIOdB170GKdCQP6Qb+//9BxkQkDgBBiEQkDzHJSIXAD4Tg/v//SIP4AXR9SY1MJBBJjTTUSIPGEEiNPBBJjTz8SIPHEEg5+XM+SY0MxEiDwRBIOc5zMTHJ604x9um0/f//SInCSIPi/jH/DxAE/kEPEUT8EEiDxwJIOfp17Ug50HSD6WD///9IicFIg+H+Mf8PEAT+QQ8RRPwQSIPHAkg5+XXtSDnIdB5JjXQkEEmNFNRIg8IQSIs8ykiJPM5Ig8EBSDnIde9BikwkD+k1/v//TInnSIPEGFtBXEFdQV5BX13pps///2YPH0QAAEFWU0iD7HhJif5kSIsEJSgAAABIiUQkcL9AAAAA6O7XCgBIicNIuAQAAAACAAAASIlDCEjHAwAAAAAPV8APKQQkDylEJFAPKUQkQA8pRCQwDylEJCAPKUQkEEjHRCRgAAAAAEiJHCRIiedMifa6AQAAAOhZ+///SIsEJEiFwA+EogAAAEiLTCQISIXJD4SXAAAASItUJBBIichIhdIPhIYAAABIi0wkGEiJ0EiFyXR5SItUJCBIichIhdJ0bEiLTCQoSInQSIXJdF9Ii1QkMEiJyEiF0nRSSItMJDhIidBIhcl0RUiLVCRASInISIXSdDhIi0wkSEiJ0EiFyXQrSItUJFBIichIhdJ0HkiLTCRYSInQSIXJdBExwEiDfCRgAEgPRMHrA0iJ2GRIiwwlKAAAAEg7TCRwdQhIg8R4W0Few+g62QoAZi4PH4QAAAAAAEFXQVZBVUFUU0iJ80mJ/kg5Dg+EgQAAAEmJzEiFyXQzSYnXgHsMAXVETAN7EEyLaxjwQYNFCAS4/P////APwUMIg+D9g/gEdSdIid/o/83//+sduPz////wD8FDCIPg/YP4BA+EkAAAADHb6yxJid2/IAAAAOhG1goASInDD1fADykAx0AIBAAAAEyJIMZADAFMiXgQTIloGE2LPkmLP0iF/3QQSIne6OQHAABJiw5IiQHrO79AAAAA6ALWCgDHQAgEAAAAgHsMAnUIiksNgMEB6wIxyUiLE0iJEMZADAKISA1mx0AOAAFIiVgQSYkHW0FcQV1BXkFfw0iJ3+hPzf//MdvrlGYuDx+EAAAAAACQQVdBVkFUU1BJif9IOQ50fkiJy0iFyXQ0SYnWgH4MAXVBTAN2EEyLZhjwQYNEJAgEuPz////wD8FGCIPg/YP4BHUjSIn36PbM///rGbj8////8A/BRgiD4P2D+AR0TTH26yxJifS/IAAAAOhB1QoASInGD1fADykAx0AIBAAAAEiJGMZADAFMiXAQTIlgGEmLB0iLOOjnBgAASYsPSIkBSIPECFtBXEFeQV/DSIn36I3M//8x9uvXZg8fhAAAAAAAQVdBVkFUU1BJif9IOQ50fkiJy0iFyXQ0SYnWgH4MAXVBTAN2EEyLZhjwQYNEJAgEuPz////wD8FGCIPg/YP4BHUjSIn36DbM///rGbj8////8A/BRgiD4P2D+AR0TTH26yxJifS/IAAAAOiB1AoASInGD1fADykAx0AIBAAAAEiJGMZADAFMiXAQTIlgGEmLB0iLOOgnAAAASYsPSIkBSIPECFtBXEFeQV/DSIn36M3L//8x9uvXzMzMzMzMzMzMVUFXQVZBVUFUU0iB7IgAAABJifdJifxkSIsEJSgAAABIiYQkgAAAAEQPtm8NSIsuD1fADylEJGAPKUQkUA8pRCRADylEJDAPKUQkIA8pRCQQSMdEJHAAAAAARYXtSIk8JHQ1MfZmLg8fhAAAAAAAkEGLRCQIg/gEdSBMiWT0GEiDxgFBD7ZEJA5Ni2TEEEk59XXdRInu6wIx9kGLTCQIMcCD+QQPlMAB8IlEJBBEOe5IiWwkCA+NmAAAAInxRInqRInvKfdIic5I99ZIAdZIg+cDdCZmLg8fhAAAAAAAZpBMiWTMGEiDwQFBD7ZsJA5Ni2TsEEiDx/915kiD/gNIi2wkCHJOZi4PH4QAAAAAAJBMiWTMGEEPtnQkDkmLdPQQSIl0zCAPtn4OSIt0/hBIiXTMKA+2fg5Ii3T+EEiJdMwwSIPBBA+2fg5Mi2T+EEg5ynW9QQ+2TCQPQQ+2VCQOSInOSCnWSIP+BnIqv0AAAADou9IKAEmJxMdACAQAAABBgH8MAg+F7AAAAEGKRw0EAenjAAAARTH2RDnof3O/QAAAAOiJ0goAQQ8QBCRBDxBMJBBBDxBUJCBBDxBcJDAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2TCQOQQ+2VCQPONF0H0jB4gNIweEDDx9AAEmLdAwQ8INGCARIg8EISDnKde0PtkgPQb4BAAAASYnEuAYAAABIKch0OUEPtlQkDkgB0EGIRCQOQcZEJA8GSIP4BXcfSY0MzLoFAAAADx8ASIt00eBJiXTUEEiDwv9IOcJz7UGKRCQOBP9BiEQkDg+2wE2JfMQQSQEsJE2F7Q+FiAAAAOssMcBJiw9JiQwkQcZEJAwCQYhEJA1mQcdEJA4AAU2JfCQQQb4CAAAATYXtdVpNiedFhfZ0JEGD/gEPhWMCAAC4/P///0iLPCTwD8FHCIPg/YP4BA+EIAMAAEyJ++nwAgAAZi4PH4QAAAAAAE2J50WF9g+ErAIAAEmNRf9NifxJg/0BSYnFfqlKi1zsEEhjTCQQQYP+AXRUQYP+AnXOD7ZDDw+2Uw5IicZIKdZIg/4GD4KxAAAAv0AAAADo/NAKAEmJx8dACAQAAABBgHwkDAIPhTkBAABBikQkDQQB6S8BAABmLg8fhAAAAAAAD7ZrDkk5zQ+O4wAAAL9AAAAA6LnQCgAPEAMPEEsQDxBTIA8QWzAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZLDkiNcQEPtlMPQb4BAAAASDnWdCBIjRTV+P///0jB4QOQSIt0Cxjwg0YIBEiDwQhIOcp17UiJw+mTAAAARTH2STnND47EAAAAv0AAAADoP9AKAEmJxw8QAw8QSxAPEFMgDxBbMA8RAA8RSBAPEVAgDxFYMMdACAQAAAAPtkMOD7ZLDzjIdB5IweEDSMHgAw8fAEiLVAMQ8INCCARIg8AISDnBde1BD7ZHD0G+AQAAAOteSIt86xC4/P////APwUcIg+D9RTH2g/gED4SfAAAATIlk6xBIi2wkCEgBK0mJ3+lp/v//McBJiwwkSYkPQcZHDAJBiEcNZkHHRw4AAU2JZxBBvgIAAADpQf7//0mJ37kGAAAASCnBdDtBD7ZXDkgB0UGITw5BxkcPBkiD+QV3JEmNBMe6BQAAAA8fhAAAAAAASIt00OBJiXTXEEiDwv9IOcpz7UGKRw4E/0GIRw4PtsBNiWTHEEkBL+nf/f//6K7G///pV////0iLLCS/QAAAAOgLzwoASInDx0AIBAAAAEiLRQBJAwdIiQNBikcNBAHGQwwCiEMNZsdDDgACTIl7EEiJaxg8DHJuSInf6MD2//9IicOAeA0Mcl1IjTXmTaj+SI0N0uat/kyNBaRzdv9MjQ3KJ6X/vwMAAAC6DAEAADHA6Iob/v/rLkgBK0GD/QJ8JWYuDx+EAAAAAAAPH0QAAEGNRf5Ii1zEGEgBK0GDxf9Bg/0Bf+pkSIsEJSgAAABIO4QkgAAAAHUfSInYSIHEiAAAAFtBXEFdQV5BX13D6M3F///p1vz//+ij0AoAzMzMVUFXQVZBVUFUU0iB7IgAAABJifdJifxkSIsEJSgAAABIiYQkgAAAAEQPtm8NSIsuD1fADylEJGAPKUQkUA8pRCRADylEJDAPKUQkIA8pRCQQSMdEJHAAAAAARYXtSIl8JAh0NDH2Zi4PH4QAAAAAAEGLRCQIg/gEdSBMiWT0GEiDxgFBD7ZEJA9Ni2TECEk59XXdRInu6wIx9kGLTCQIMcCD+QQPlMAB8IlEJBBEOe5IiSwkD42ZAAAAifFEiepEie8p90iJzkj31kgB1kiD5wN0J2YuDx+EAAAAAAAPHwBMiWTMGEiDwQFBD7ZsJA9Ni2TsCEiDx/915kiD/gNIiywkck9mLg8fhAAAAAAAZpBMiWTMGEEPtnQkD0mLdPQISIl0zCAPtn4PSIt0/ghIiXTMKA+2fg9Ii3T+CEiJdMwwSIPBBA+2fg9Mi2T+CEg5ynW9QQ+2dCQPQYpUJA4PtspIKc5Ig/4Gciq/QAAAAOi8zAoASYnEx0AIBAAAAEGAfwwCD4WzAAAAQYpHDQQB6aoAAABFMfZEOeh/dr9AAAAA6IrMCgBBDxAEJEEPEEwkEEEPEFQkIEEPEFwkMA8RAA8RSBAPEVAgDxFYMMdACAQAAABBD7ZMJA5BD7ZUJA840XQgSMHiA0jB4QMPH0QAAEmLdAwQ8INGCARIg8EISDnKde2KUA4PtspBvgEAAABJicSE0g+F6AMAAEEPtkQkD41IAUGITCQPTYl8xBBJASwkTYXtD4WCAAAA6ywxwEmLD0mJDCRBxkQkDAJBiEQkDWZBx0QkDgABTYl8JBBBvgIAAABNhe11VE2J50WF9nQlQYP+AQ+FsgIAALj8////SIt8JAjwD8FHCIPg/YP4BA+ElAMAAEyJ++k5AwAADx8ATYnnRYX2D4QBAwAASY1F/02J/EmD/QFJicV+r0qLXOwQSGNUJBBBg/4BdFRBg/4Cdc4PtnMPiksOD7bBSCnGSIP+Bg+CwgAAAL9AAAAA6D3LCgBJicfHQAgEAAAAQYB8JAwCD4VHAQAAQYpEJA0EAek9AQAAZi4PH4QAAAAAAJAPtmsPSTnVD471AAAAv0AAAADo+coKAA8QAw8QSxAPEFMgDxBbMA8RAA8RSBAPEVAgDxFYMMdACAQAAAAPtksOD7ZTD0iJzkj31kG+AQAAAEgB1nQuSI0U1fj///9IweEDZi4PH4QAAAAAAA8fRAAASIt0CxDwg0YIBEiDwQhIOcp17UiJw+mRAAAARTH2STnVD47BAAAAv0AAAADob8oKAEmJxw8QAw8QSxAPEFMgDxBbMA8RAA8RSBAPEVAgDxFYMMdACAQAAAAPtkMOD7ZLDzjIdB5IweEDSMHgAw8fAEiLVAMQ8INCCARIg8AISDnBde1Bik8OD7bBQb4BAAAA61lIi3zrCLj8////8A/BRwiD4P1FMfaD+AR0XEyJZOsISIssJEgBK0mJ3+lc/v//McBJiwwkSYkPQcZHDAJBiEcNZkHHRw4AAU2JZxBBvgIAAADpNP7//0mJ34TJdSBBD7ZHD41IAUGITw9NiWTHEEkBL+kU/v//6CPB///rnUEPtlcPSInRQcZHDgBIKcFBiE8PdMpIg/kCciZJjX8QSY00x0iDxhBJjRTXSIPCEEg513MxSY0Uz0iDwhBIOdZzJDHSSY13EEmNBMdIg8AQSIs80EiJPNZIg8IBSDnRde/pev///0iJykiD4v4x/w8QBP5BDxFE/xBIg8cCSDn6de1IOdEPhFX////rt0iLbCQIv0AAAADo9cgKAEiJw8dACAQAAABJiwdIA0UASIkDikUNBAHGQwwCiEMNZsdDDgACSIlrEEyJexg8DHJpSInf6Kvw//9IicOAeA0MclhIjTXRR6j+SI0NveCt/kyNBY9tdv9MjQ21IaX/vwMAAAC6DAEAADHA6HUV/v/rKUgBK0GD/QJ8IGYuDx+EAAAAAABBjUX+SItcxBhIAStBg8X/QYP9AX/qZEiLBCUoAAAASDuEJIAAAAAPhc8AAABIidhIgcSIAAAAW0FcQV1BXkFfXcNBD7ZUJA9IidBBxkQkDgBIKchBiEQkDw+E+/v//0iD+AJzDjHS63Dokr///+li/P//SY18JBBJjTTMSIPGEEmNLNRIg8UQSDn9diNIjRTVEAAAAEiNPM0AAAAASCn6TAHiSDnWcwgx0kiLLCTrKUiJwkiD4v4x/w8QBP5BDxFE/BBIg8cCSDn6de1IOdBIiywkD4SB+///SY10JBBJjQzMSIPBEEiLPNFIiTzWSIPCAUg50HXv6V77///o38kKAMzMzMzMzMzMzMzMzMzMzFVBV0FWQVVBVFNIgey4AAAASIlMJDhIiXQkKEiJ/WRIiwQlKAAAAEiJhCSwAAAASIXSD4S5DQAASYnVD7ZdDQ9XwA8phCSQAAAADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQEjHhCSgAAAAAAAAADH2SYnuhdt0KA8fRAAAQYtGCIP4BHUaTIl09EhIg8YBQQ+2Rg5Ni3TGEEg583Xfid5Bi04IMcCD+QQPlMAB8IlEJEA53g+NlQAAAEmJ6InxidqJ3yn3SInOSPfWSAHWSIPnA3QiZg8fhAAAAAAATIl0zEhIg8EBQQ+2bg5Ni3TuEEiDx/9150iD/gNMicVyUGYuDx+EAAAAAAAPH0AATIl0zEhBD7Z2DkmLdPYQSIl0zFAPtn4OSIt0/hBIiXTMWA+2fg5Ii3T+EEiJdMxgSIPBBA+2fg5Mi3T+EEg5ynW+QQ+2Tg9BD7ZWDkgp0UiD+QVIiVwkCA+H2wEAAEiJbCQgRTH/Odh/cr9AAAAA6NzFCgBBDxAGQQ8QThBBDxBWIEEPEF4wDxEADxFIEA8RUCAPEVgwx0AIBAAAAEEPtk4OQQ+2Vg840XQoSMHiA0jB4QNmLg8fhAAAAAAADx8ASYt0DhDwg0YIBEiDwQhIOcp17UG/AQAAAEmJxkyJ90iLdCQoTInqSItMJDjo777//0iJRCQoSIXSSIlUJBAPhGwBAABJKdVNAS5Ii0wkCEiFyQ+EJgEAAEyJbCQYSInL6x5mLg8fhAAAAAAADx9AAEG/AgAAAEiD/QEPjv4AAABIid1Ig8P/TItk7EBBg/8BdB5Bg/8CdNhFhf912en8CgAAZi4PH4QAAAAAAA8fQABIY0QkQEUPtmwkDkg5xX59v0AAAADoxsQKAEEPEAQkQQ8QTCQQQQ8QVCQgQQ8QXCQwDxEADxFIEA8RUCAPEVgwx0AIBAAAAEEPtkwkDkiNcQFBD7ZUJA9BvwEAAABIOdZ0IUiNFNX4////SMHhA2aQSYt0DBjwg0YIBEiDwQhIOcp17UmJxEiLTCQI6xpLi3zsELj8////8A/BRwiD4P1FMf+D+AR0G0+JdOwQSItEJBhJAQQkTIlk3EhNiebpBP///+ipu///673phgEAAEGD/wEPhWEBAAC4/P///0iLfCQg8A/BRwiD4P2D+ARMi2wkEA+EoQoAAE2J9OlBAQAATQEuSItsJAhIhe11VkGD/wEPhUQKAAC4/P///0iLbCQg8A/BRQiD4P2D+ARMi2wkEA+FFAEAAEiJ7+gxu///TYXtD4UMAQAA6SEKAAAPHwBBvwIAAABIjUX/SIP9AUiJxX6qSItc7EBBg/8BdBJBg/8CdNxFhf913emrCQAAZpBIY0QkQEQPtmMOSDnFfnm/QAAAAOhHwwoADxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAA+2Sw5IjXEBD7ZTD0G/AQAAAEg51nQuSI0U1fj///9IweEDZi4PH4QAAAAAAA8fRAAASIt0Cxjwg0YIBEiDwQhIOcp17UiJw+saSot84xC4/P////APwUcIg+D9RTH/g/gEdBBOiXTjEEwBK0mJ3ukk////6Dm6///r6U2J9EyLbCQQjUEBiUQkQEyJ5U2F7Q+EGgkAAEyJ6+sfuAEAAABIi1wkMIlEJEBMiUQkCE055UmJ3Q+E9ggAAEiLfCQoTInuSItUJDjoZr3//0mJx0yLIEwp4w+FhwIAAEyLRCQIRYXAD4QPBgAASIlsJCBMiWQkEEyJbCQYSWPYQbwCAAAARInFTYn96yZmDx+EAAAAAABFheQPhF8FAABIjUP/g8X/SIP7AUiJww+OswQAAEyLdNxASGNEJEBBg/wBdFNBg/wCdc1BD7ZOD0EPtlYOSInOSCnWSIP+Bg+CwwAAAL9AAAAA6LnBCgDHQAgEAAAAQYB9DAIPha0BAABBik0NgMEB6aMBAABmLg8fhAAAAAAAkEUPtn4OSDnDD45ZAQAAv0AAAADoeMEKAEEPEAZBDxBOEEEPEFYgQQ8QXjAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2Tg5IjXEBQQ+2Vg9BvAEAAABIOdZ0KUiNFNX4////SMHhA2YuDx+EAAAAAABJi3QOGPCDRggESIPBCEg5ynXtSYnGTItEJAjp8QAAAEUx5Eg5w359v0AAAADo7sAKAEEPEAZBDxBOEEEPEFYgQQ8QXjAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2Tg5BD7ZWDzjRdCpIweIDSMHhA2YuDx+EAAAAAAAPH0QAAEmLdA4Q8INGCARIg8EISDnKde0PtkgPQbwBAAAASYnGTItEJAi4BgAAAEgpyHQ0QQ+2Vg5IAdBBiEYOQcZGDwZIg/gFdx1JjQzOugUAAACQSIt00eBJiXTWEEiDwv9IOcJz7UGKRg4E/0GIRg4PtsBNiWzGEOsfS4t8/hC4/P////APwUcIg+D9RTHkg/gEdEJPiWz+EEiLRCQYSQEGTYn16fP9//8xyUyLRCQISYtVAEiJEMZADAKISA1mx0AOAAFMiWgQQbwCAAAASYnF6cb9///oWLf//+m5/v//Dx8ATDnrSQ9H3UiJXCQwSItcJAiF2w+E9wIAAEyJZCQQSIlsJCBMiWwkGExj60G8AgAAAOsqZi4PH4QAAAAAAA8fAEWF5A+EBwMAAEmNRf+Dw/9Jg/0BSYnFD45zAgAASots7EBIY0QkQEGD/AF0U0GD/AJ1zQ+2TQ8PtlUOSInOSCnWSIP+Bg+CwAAAAL9AAAAA6Cu/CgDHQAgEAAAAQYB/DAIPhaMBAABBik8NgMEB6ZkBAABmLg8fhAAAAAAADx8ATIl8JAhED7Z9Dkk5xQ+OQgEAAL9AAAAA6OO+CgAPEEUADxBNEA8QVSAPEF0wDxEADxFIEA8RUCAPEVgwx0AIBAAAAA+2TQ5IjXEBD7ZVD0G8AQAAAEg51nQpSI0U1fj///9IweEDZi4PH4QAAAAAAEiLdA0Y8INGCARIg8EISDnKde1IicXp5AAAAEUx5Ek5xX5tv0AAAADoY74KAA8QRQAPEE0QDxBVIA8QXTAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZNDg+2VQ840XQkSMHiA0jB4QNmDx+EAAAAAABIi3QNEPCDRggESIPBCEg5ynXtD7ZID0G8AQAAAEiJxbgGAAAASCnIdDkPtlUOSAHQiEUOxkUPBkiD+AV3JUiNDM0AAAAASAHpugUAAABmkEiLdNHgSIl01RBIg8L/SDnCc+2KRQ4E/4hFDg+2wEyJfMUQ6yRKi3z9ELj8////8A/BRwiD4P1FMeSD+AR0QkiLRCQISolE/RBIi0QkEEgBRQBJie/p//3//zHJSYsXSIkQxkAMAohIDWbHQA4AAUyJeBBBvAIAAABJicfp2P3//+jatP//67cPH4QAAAAAAEGD/AJIi2wkIA+E+gAAAE2J7kGD/AEPhVoBAAC4/P////APwUUIg+D9g/gETItsJBhMi2QkEA+E8wIAAEyJ6+mD+v//Zi4PH4QAAAAAAGaQRYXkSIt8JCAPhAkBAABBg/wBD4UgAQAAuPz////wD8FHCIPg/YP4BEyLZCQQD4TBAgAATIn9TItsJBjpRgEAAEiJ6+n9AAAATItsJBhNAS6D+wIPjOYBAABMi2QkEGaQjUX+TIt0xEhNAS6Dxf+D/QF/7UyJ60iLbCQg6ff5//9Mi2QkEEwBZQBBg/0CTItsJBgPjO4AAAAPH4QAAAAAAI1D/kiLbMRITAFlAIPD/4P7AX/s6c0AAABNie9Mi2wkGEyLZCQQv0AAAADoILwKAEmJxsdACAQAAABIi0UASQMHSYkGQYpHDQQBQcZGDAJBiEYNZkHHRg4AAk2JfhBJiW4YPAwPg0cBAABMietMi0QkCOlg+f//TIn9TItsJBhMi2QkEOtgTItsJBhMietMi2QkEOk/+f//SIn7TItsJBhMi2QkEL9AAAAA6KG7CgBIicXHQAgEAAAASIsDSQMHSIlFAEGKRw0EAcZFDAKIRQ1mx0UOAAJMiX0QSIldGDwMD4MSAQAARA+2RQ1FhcAPhNX4//9EicFIjVH/iciD4ANIg/oDSItcJDBzBzH2SInq60+D4fwx9kiJ6mYPH0QAAEiJVPRID7Z6DkiLVPoQSIlU9FAPtnoOSItU+hBIiVT0WA+2eg5Ii1T6EEiJVPRgSIPGBA+2eg5Ii1T6EEg58XW/SIXAdDBIjUwkSEiNDPEx9mYuDx+EAAAAAAAPH0QAAEiJFPEPtnoOSItU+hBIg8YBSDnwdepBjUAB6TT4//9MietIi2wkIEyLZCQQ6Sb4//9Miffoh+L//0mJxoB4DQwPgqT+//+/AwAAAEiNNaQ5qP66DAEAAEiNDYvSrf5MjQVdX3b/TI0NgxOl/zHA6E0H/v/pcv7//0iJ7+hA4v//SInFgHgNDA+C2f7//78DAAAASI01XTmo/roMAQAASI0NRNKt/kyNBRZfdv9MjQ08E6X/McDoBgf+/+mn/v//SInv6Jmx//9Mi0QkCEyJ6+mD9///6Iex///pNf3//0yLfCQYTQE8JIP9AkyLbCQQD4w89///Zi4PH4QAAAAAAJCNRf5Mi2TESE0BPCSDxf+D/QF/7OkY9///TAErg/0CfCdIi0wkIGYuDx+EAAAAAACNRf5Mi3TESE0BLoPF/4P9AX/tSInN6whJid5Ii2wkIEyLbCQQTYXtD4Xm9v//TIn1ZEiLBCUoAAAASDuEJLAAAAB1JEiJ6EiBxLgAAABbQVxBXUFeQV9dw+jSsP//SItMJAjpUPX//+ijuwoAzMzMVUFXQVZBVUFUU0iB7LgAAABIiUwkMEmJ/WRIiwQlKAAAAEiJhCSwAAAASIXSD4SyDgAASYnQSYn3RQ+2TQ0PV8APKYQkkAAAAA8phCSAAAAADylEJHAPKUQkYA8pRCRQDylEJEBIx4QkoAAAAAAAAAAx9k2J7kWFyXQpDx9EAABBi0YIg/gEdRtMiXT0SEiDxgFBD7ZGD02LdMYISTnxdd9Eic5Bi04IMcCD+QQPlMAB8IlEJEBEOc4PjYMAAACJ8USJykSJzyn3SInOSPfWSAHWSIPnA3QhDx+EAAAAAABMiXTMSEiDwQFBD7ZuD02LdO4ISIPH/3XnSIP+A3JDkEyJdMxIQQ+2dg9Ji3T2CEiJdMxQD7Z+D0iLdP4ISIl0zFgPtn4PSIt0/ghIiXTMYEiDwQQPtn4PTIt0/ghIOcp1vkEPtk4PQQ+2Vg5IKdFIg/kFTIlMJAgPh9sBAABMiWwkIEUx7UQ5yH90TInDv0AAAADouLcKAEEPEAZBDxBOEEEPEFYgQQ8QXjAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2Tg5BD7ZWDzjRdCRIweIDSMHhA2YPH4QAAAAAAEmLdA4Q8INGCARIg8EISDnKde1BvQEAAABJicZJidhMifdMif5MicJIi0wkMEyJxei7s///SIlEJBhIhdJIiVQkEA+EbQEAAEgp1UkBLkiLVCQISIXSD4QiAQAASIlsJChJidTrGmYuDx+EAAAAAABBvQIAAABIg/sBD47+AAAATInjSYPE/0iLbNxAQYP9AXQeQYP9AnTYRYXtddnprwwAAGYuDx+EAAAAAAAPH0AASGNEJEBED7Z9D0g5w35+v0AAAADop7YKAA8QRQAPEE0QDxBVIA8QXTAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZNDg+2VQ9Iic5I99ZBvQEAAABIAdZ0K0iNFNX4////SMHhA2YuDx+EAAAAAABmkEiLdA0Q8INGCARIg8EISDnKde1IicVIi1QkCOsaSot8/Qi4/P////APwUcIg+D9RTHtg/gEdBtOiXT9CEiLRCQoSAFFAEqJbORISYnu6QT////oia3//+u96bIBAABBg/0BD4V5AQAAuPz///9Ii3wkIPAPwUcIg+D9g/gETIt8JBhMi2QkEA+EOwwAAEyJ9elZAQAASQEuTItkJAhNheQPhAkBAABIiWwkKOsbDx8AQb0CAAAASY1EJP9Jg/wBSYnED47nAAAASots5EBBg/0BdB1Bg/0CdNdFhe112OmGCwAAZi4PH4QAAAAAAA8fAEhjRCRAD7ZdD0k5xH56v0AAAADoSLUKAA8QRQAPEE0QDxBVIA8QXTAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZNDg+2VQ9Iic5I99ZBvQEAAABIAdZ0LEiNFNX4////SMHhA2YuDx+EAAAAAAAPHwBIi3QNEPCDRggESIPBCEg5ynXtSInF6xpIi3zdCLj8////8A/BRwiD4P1FMe2D+AR0FkyJdN0ISItEJChIAUUASYnu6Q7////oM6z//+vjQYP9AUyLZCQQdUC4/P///0yLbCQg8EEPwUUIg+D9g/gETIt8JBh1LUyJ7+gBrP//6yNMifVMi3wkGEyLZCQQjUIBiUQkQEmJ7esKTIt8JBhMi2wkIE2F5A+E9QkAAE2J4EyJwOsquAEAAABMi1QkKE0Bz4lEJEBIi0QkOEyJRCQISYndTTnKSYnAD4TDCQAATIn/TInGSInDSItUJDBMicXoS7L//0iJ2UmJxEiLAEgpwUiJbCQoD4UEAwAATItEJAhFhcBMiesPhJMGAABJiepIiUQkEEiJXCQgTIl8JBhNY+hBvwIAAABEicPrIw8fAEmJ7EWF/w+EeQYAAEmNRf+Dw/9Jg/0BSYnFD47QBQAATInlTot07EBIY1QkQEGD/wF0TUGD/wJ1x0EPtnYPQYpODg+2wUgpxkiD/gYPgr4AAABNida/QAAAAOhRswoASInqSYnEx0AIBAAAAIB9DAIPhVoBAACKQg0EAelSAQAARQ+2Zg9JOdUPjg8BAAC/QAAAAOgYswoAQQ8QBkEPEE4QQQ8QViBBDxBeMA8RAA8RSBAPEVAgDxFYMMdACAQAAABBD7ZODkEPtlYPSInOSPfWQb8BAAAASAHWdCdIjRTV+P///0jB4QMPH4QAAAAAAEmLdA4Q8INGCARIg8EISDnKde1JicZMi0QkCOmrAAAARTH/STnVD47oAAAAv0AAAADoirIKAEmJxEEPEAZBDxBOEEEPEFYgQQ8QXjAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2Rg5BD7ZODzjIdCNIweEDSMHgAw8fhAAAAAAASYtUBhDwg0IIBEiDwAhIOcF17UGKTCQOD7bBQb8BAAAATItEJAhMi1QkKOtqS4t85gi4/P////APwUcIg+D9RTH/g/gED4TbAAAAS4ls5ghMi1QkKE0BFk2J9Ok8/v//McBMi0QkCE2J8kiLCkmJDCRBxkQkDAJBiEQkDWZBx0QkDgABSYlUJBBBvwIAAADpCP7//02J9ITJdRxBD7ZEJA+NSAFBiEwkD0mJbMQQTQEUJOnl/f//QQ+2VCQPSInRQcZEJA4ASCnBQYhMJA90y0iD+QJyJ0mNfCQQSY00xEiDxhBJjRTUSIPCEEg513NASY0UzEiDwhBIOdZzMzHSSY10JBBJjQTESIPAEA8fQABIizzQSIk81kiDwgFIOdF17+l1////6KWo///pZv7//0iJykiD4v4x/w8QBP5BDxFE/BBIg8cCSDn6de1IOdEPhEb////rqGYPH4QAAAAAAEyJbCQgSItsJAgPglcHAABIiUwkOIXtD4SLAwAASIlEJBBMiXwkGExj7UG/AgAAAOsuZi4PH4QAAAAAAA8fQABNicRFhf8PhLIDAABJjUX/g8X/SYP9AUmJxQ+OAAMAAE2J4EqLXOxASGNUJEBBg/8BdE1Bg/8CdccPtnMPiksOD7bBSCnGSIP+Bg+CuwAAAL9AAAAATInD6EOwCgBIidpJicTHQAgEAAAAgHsMAg+FVQEAAIpCDQQB6U0BAABmkEQPtmMPSTnVD44KAQAATIlEJAi/QAAAAOgDsAoADxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAA+2Sw4PtlMPSInOSPfWQb8BAAAASAHWD4Q+AQAASI0U1fj///9IweEDTItEJAhIi3QLEPCDRggESIPBCEg5ynXtSInD6SUBAABFMf9JOdUPjt4AAABMiUQkCL9AAAAA6HqvCgBJicQPEAMPEEsQDxBTIA8QWzAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZDDg+2Sw84yHQpSMHhA0jB4ANmLg8fhAAAAAAADx9AAEiLVAMQ8INCCARIg8AISDnBde1BikwkDg+2wUG/AQAAAEyLRCQI62BKi3zjCLj8////8A/BRwiD4P1FMf+D+AR1fkiJbCQITInF6HGm//9JiehIi2wkCOtnMcBIiwpJiQwkQcZEJAwCQYhEJA1mQcdEJA4AAUmJVCQQQb8CAAAA6Rf+//9JidyEyXVJQQ+2RCQPjUgBQYhMJA9NiUTEEEiLRCQQSQEEJOnv/f//SInDTItEJAhmLg8fhAAAAAAAkE6JROMISItEJBBIAQNJidzpx/3//0EPtlQkD0iJ0UHGRCQOAEgpwUGITCQPdJ5Ig/kCcidJjXwkEEmNNMRIg8YQSY0U1EiDwhBIOddzOEmNFMxIg8IQSDnWcysx0kmNdCQQSY0ExEiDwBBmDx9EAABIizzQSIk81kiDwgFIOdF17+lG////SInKSIPi/jH/DxAE/kEPEUT8EEiDxwJIOfp17Ug50Q+EIf///+uwDx8AQYP/AkiLXCQgD4QJAQAAQYP/AUyLfCQYTItMJBB1Frj8////8A/BQwiD4P2D+AQPhNECAABMidBNiebpW/n//0WF/0iLbCQgD4QtAQAAQYP/AUyLfCQYTItMJBAPhSgBAAC4/P////APwUUIg+D9g/gED4SyAgAATInj6VEBAABJicXpnQAAAEmJxUiLbCQg6fgAAABNARZBg/0CD4ztAQAATIt8JBhIi0wkIEyLTCQQZi4PH4QAAAAAAA8fRAAAjUP+TIt0xEhNARaDw/+D+wF/7UyJ0EiJy+m9+P//SItEJBBIAQNBg/0CSYnBTIt8JBgPjNkAAAAPH4QAAAAAAI1F/kiLXMRITAELg8X/g/0Bf+3puQAAAEyJ1UyLfCQYTItsJBC/QAAAAOiRrAoASYnGx0AIBAAAAEmLBCRIAwNJiQaKQw0EAUHGRgwCQYhGDWZBx0YOAAJJiV4QTYlmGDwMD4M+AQAASYnqSInoTItEJAhNienpIPj//0yJ40yLfCQYTItMJBDrR02Jzb9AAAAA6CmsCgBIicPHQAgEAAAASYsEJEgDRQBIiQOKRQ0EAcZDDAKIQw1mx0MOAAJIiWsQTIljGDwMTYnpD4McAQAARA+2Qw1FhcAPhKb3//9EicFIjVH/iciD4ANIg/oDTItUJChzBzH2SIna61SD4fwx9kiJ2mYuDx+EAAAAAACQSIlU9EgPtnoPSItU+ghIiVT0UA+2eg9Ii1T6CEiJVPRYD7Z6D0iLVPoISIlU9GBIg8YED7Z6D0iLVPoISDnxdb9IhcB0MEiNTCRISI0M8TH2Zi4PH4QAAAAAAA8fRAAASIkU8Q+2eg9Ii1T6CEiDxgFIOfB16kGNQAHpAPf//0yJ0EiLXCQgTIt8JBhMi0wkEOn19v//TIn36ALT//9JicaAeA0MD4Kt/v//vwMAAABIjTUfKqj+ugwBAABIjQ0Gw63+TI0F2E92/0yNDf4Dpf8xwOjI9/3/6Xv+//9Iid/ou9L//0iJw4B4DQxzP02J6enL/v//SInfTYnOTInV6Dyi//9JiepNifFMi0QkCEiJ6E2J5ulx9v//SInvTInL6Bui//9JidnpO/3//78DAAAASI01nSmo/roMAQAASI0NhMKt/kyNBVZPdv9MjQ18A6X/McDoRvf9/02J6elf/v//TYn1ZEiLBCUoAAAASDuEJLAAAAAPhcAAAABMiehIgcS4AAAAW0FcQV1BXkFfXcNIi0wkKEgBTQCD+wJMi3wkGEyLZCQQD4yh9f//Dx8AjUP+SItsxEhIAU0Ag8P/g/sBf+zphfX//0iLRCQoSAFFAEGD/AJ8OUyLfCQYSItMJChMi2wkIGYPH4QAAAAAAEGNRCT+TIt0xEhJAQ5Bg8T/QYP8AX/pTItkJBDpU/X//0mJ7kyLfCQYTItsJCBMi2QkEOk89f//6BOh//9Ii1QkCOm28///6ISuCgDo36sKAMzMzMzMzMzMzMzMzMzMzEFXQVZBVUFUU0mJ/kyLPkyLbggPV8APEQdIx0cQAAAAAEmD/fBzXkmD/RdzFkONRC0AQYgGTYn0SYPEAU2F7XUk6zBJjV0QSIPj8EiJ3+gNqQoASYnESYlGEEiDywFJiR5NiW4ITInnTIn+TInq6I2tCgBDxgQsAEyJ8FtBXEFdQV5BX8NMiffow60KAMzMzFVBV0FWQVVBVFNIgeyYAAAASYn3ZEiLBCUoAAAASImEJJAAAABMiy4Ptk8NRA+2Rg1Iic1MKcUPV8APKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwDylEJCBIx4QkgAAAAAAAAACF7X4viegx0kmJ/JBBi3QkCIP+BHUiTIlk1ChIg8IBQQ+2dCQPTYtk9AhIOdB13Ynq6wUx0kmJ/EGLdCQIMcCD/gQPlMAB0IlEJCA56kiJfCQIfXqJ1kKNHAL30gHKKdlEKcKD4QN0HQ8fQABMiWT0KEiDxgFBD7ZcJA9Ni2TcCIPB/3Xng/oDckRmkEyJZPQoQQ+2TCQPSYtMzAhIiUz0MA+2UQ9Ii0zRCEiJTPQ4D7ZRD0iLTNEISIlM9EBIg8YED7ZRD0yLZNEIOfV/vkEPtnQkD0GKXCQORA+220WKTw5Bik8PD7bRRQ+2wUgB1kwp3kwpxkG+AgAAAEiD/gYPh0IBAABFMfY56A+PjgAAAL9AAAAA6FKnCgBBDxAEJEEPEEwkEEEPEFQkIEEPEFwkMA8RAA8RSBAPEVAgDxFYMMdACAQAAABBD7ZMJA5BD7ZUJA840XQoSMHiA0jB4QNmLg8fhAAAAAAADx8ASYt0DBDwg0YIBEiDwQhIOcp17UWKTw5Bik8PilgORQ+2wQ+20UQPtttBvgEAAABJicSE2w+F4wIAAEEPtkQkD0Q4yQ+EnAEAAEuNNMdIg8YQSY0810iDxxBIweIDSo0cxQAAAABIKdpMjVr4SYP7GA+CWgEAAEmNDMRIg8EQSDn5cxxIjQzCTAHhSIPBEEuNFMdIg8IQSDnKD4IxAQAASIlcJBBJwesDSYPDAUyJ2UiD4fxIiUwkGEiDwfxIictIwesCSIPDAUGJ2kGD4gNIg/kMcxcxyemVAAAATYn8he0PhfcCAADpdwEAAE2NDMRJgcGAAAAAS40Ux0iBwoAAAABIg+P8SPfbMclmDx9EAAAPEETKkA8QTMqgQQ8RRMmQQQ8RTMmgDxBEyrAPEEzKwEEPEUTJsEEPEUzJwA8QRMrQDxBMyuBBDxFEydBBDxFMyeAPEETK8A8QDMpBDxFEyfBBDxEMyUiDwRBIg8MEdaBNhdJ0RkiLVCQQSI0UykwB+kiDwiBIAcFJjQzMSIPBIEnB4gUx22YuDx+EAAAAAAAPEEQa8A8QDBoPEUQZ8A8RDBlIg8MgSTnadeVIi0wkGEgByEk5y3QdSI00zg8fQABIiw5JiUzEEEiDwAFIg8YISDn+detBiEQkD0mLB0kBBCRBi0cIg+D9g/gEdRJMif/oG6UKAIXtD4XQAQAA61NBD7ZHDkEPtk8POMh0JkjB4QNIweADZi4PH4QAAAAAAJBJi1QHEPCDQggESIPACEg5wXXtuPz////wQQ/BRwiD4P2D+AQPhFIBAACF7Q+FewEAAEWF9nQhQYP+AXUjuPz///9Ii3wkCPAPwUcIg+D9g/gED4QaAQAATInj6eMDAABIi2wkCL9AAAAA6GGkCgBIicPHQAgEAAAASYsEJEgDRQBIiQOKRQ0EAcZDDAKIQw1mx0MOAAJIiWsQTIljGDwMD4KdAwAASInf6BLM//9IicOAeA0MD4KIAwAASI01NCOo/kiNDSC8rf5MjQXySHb/TI0NGP2k/78DAAAAugwBAAAxwOjY8P3/6VYDAABBD7ZEJA9JicJBxkQkDgBNKdpFiFQkDw+EAP3//0mD+gJyPUmNfCQQS4003EiDxhBJjRzESIPDEEg5+w+GPQMAAEiNBMUQAAAASo083QAAAABIKfhMAeBIOcYPgx4DAAAxwEmNXCQQS4003EiDxhBIizzGSIk8w0iDwAFJOcJ17+mY/P//6Oma///p3P7//0yJ/+jcmv//he11Jeml/v//Dx8ATYn8RYX2D4SJAgAASI1F/0iD/QFIicUPjoX+//9NiedIi1zsIEhjVCQgQYP+AXRQQYP+AnXKD7ZzD4pLDg+2wUgpxkiD/gYPgr4AAAC/QAAAAOjpogoASYnEx0AIBAAAAEGAfwwCD4VBAQAAQYpHDQQB6TgBAABmDx+EAAAAAABED7ZjD0g51Q+O9QAAAL9AAAAA6KiiCgAPEAMPEEsQDxBTIA8QWzAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAD7ZLDg+2Uw9Iic5I99ZBvgEAAABIAdZ0LUiNFNX4////SMHhA2YuDx+EAAAAAAAPH0AASIt0CxDwg0YIBEiDwQhIOcp17UiJw+mSAAAARTH2SDnVD47CAAAAv0AAAADoH6IKAEmJxA8QAw8QSxAPEFMgDxBbMA8RAA8RSBAPEVAgDxFYMMdACAQAAAAPtkMOD7ZLDzjIdB5IweEDSMHgAw8fAEiLVAMQ8INCCARIg8AISDnBde1BikwkDg+2wUG+AQAAAOtZSot84wi4/P////APwUcIg+D9RTH2g/gEdF9OiXzjCEwBK0mJ3Olf/v//McBJiw9JiQwkQcZEJAwCQYhEJA1mQcdEJA4AAU2JfCQQQb4CAAAA6TP+//9JidyEyXUjQQ+2RCQPjUgBQYhMJA9NiXzEEE0BLCTpEP7//+jPmP//65pBD7ZUJA9IidFBxkQkDgBIKcFBiEwkD3TESIP5AnInSY18JBBJjTTESIPGEEmNFNRIg8IQSDnXczJJjRTMSIPCEEg51nMlMdJJjXQkEEmNBMRIg8AQSIs80EiJPNZIg8IBSDnRde/pcv///0iJykiD4v4x/w8QBP5BDxFE/BBIg8cCSDn6de1IOdEPhE3////rtkwBK4P9AnwWDx8AjUX+SItcxChMASuDxf+D/QF/7WRIiwQlKAAAAEg7hCSQAAAAdT9IidhIgcSYAAAAW0FcQV1BXkFfXcNMidBIg+D+MdsPEATeQQ8RRNwQSIPDAkg52HXtSTnCD4R6+f//6br8///opqIKAMzMzMzMzFVBV0FWQVVBVFNIgeyoAAAASYn0ZEiLBCUoAAAASImEJKAAAABIiwZIiUQkKA+2Tw0Ptl4NSYnNSSndD1fADymEJIAAAAAPKUQkcA8pRCRgDylEJFAPKUQkQA8pRCQwSMeEJJAAAAAAAAAARYXtfjZEiegx0kmJ/w8fhAAAAAAAQYt3CIP+BHUiTIl81DhIg8IBQQ+2dw5Ni3z3EEg50HXfRInq6wUx0kmJ/0GLdwgxwIP+BA+UwAHQiUQkMEQ56kiJfCQIfXuJ1o0sGvfSAcop6Snag+EDdB8PH4AAAAAATIl89DhIg8YBQQ+2fw5Ni3z/EIPB/3Xog/oDckUPHwBMiXz0OEEPtk8OSYtMzxBIiUz0QA+2UQ5Ii0zREEiJTPRID7ZRDkiLTNEQSIlM9FBIg8YED7ZRDkyLfNEQQTn1f75BD7Z3D0EPtlcORQ+2RCQPRQ+2dCQOSo08BkwB8kgp170CAAAASIP/Bg+HkAEAADHtRDnoD49/AAAAv0AAAADoqp4KAEEPEAdBDxBPEEEPEFcgQQ8QXzAPEQAPEUgQDxFQIA8RWDDHQAgEAAAAQQ+2Tw5BD7ZXDzjRdCZIweIDSMHhA2YuDx+EAAAAAACQSYt0DxDwg0YIBEiDwQhIOcp17UUPtnQkDkUPtkQkDw+2cA+9AQAAAEmJx0yJwEwp8L8GAAAASCn3dDhBD7ZXDkgB10GIfw5BxkcPBkiD/wV3IUmNNPe6BQAAAA8fRAAASItM1uBJiUzXEEiDwv9IOfpz7UUPtl8OTInbSCnDQYhfDkiFwA+EyAEAAEuNBPRIg8AQS410xBBOjRTFAAAAAEqNDPUAAAAATInXSCnPTI1P+EmD+RgPgnUBAABLjRQeTCnCSY0M10iDwRBIOfFzHEiNDNdMAflIg8EQS40U9EiDwhBIOcoPgkUBAABMidpMiUQkEEiJXCQgScHpA0mDwQFMiUwkGEmD4fxMictJjUn8SInPSMHvAkiDxwFBiftBg+MDSIP5DHMQRTHS6ZsAAABNiefpggEAAEiNDNUAAAAATo0E8U0p0E0B+E+NDPRJgcGAAAAASIPn/Ej330Ux0kMPEETRkEMPEEzRoEMPEUTQEEMPEUzQIEMPEETRsEMPEEzRwEMPEUTQMEMPEUzQQEMPEETR0EMPEEzR4EMPEUTQUEMPEUzQYEMPEETR8EMPEAzRQw8RRNBwQw8RjNCAAAAASYPCEEiDxwR1lE2F23RKSo0M9QAAAABKjQzRSY08DEiDxyBNAdZJAdZMK3QkEEuNDPdIg8EgScHjBTHSZpAPEEQX8A8QDBcPEUQR8A8RDBFIg8IgSTnTdeVIidlIOVwkGEiLXCQgdClIActIjQTISY0M30iDwRAPH4AAAAAASIsQSIkRSIPACEiDwQhIOfB17UmLBCRJAQdBi0QkCIPg/YP4BHUKTInn6BGcCgDrSkEPtkQkDkEPtkwkDzjIdCJIweEDSMHgAw8fgAAAAABJi1QEEPCDQggESIPACEg5wXXtuPz////wQQ/BRCQIg+D9g/gED4QtAwAARYXtTItkJCh1UIXtdCSD/QEPhTkCAAC4/P///0iLfCQI8A/BRwiD4P2D+AQPhPECAABMifvpwQIAAGYuDx+EAAAAAACQhe0PhIUCAABJjUX/SYP9AUmJxX6wSotc7DBIY0QkMIP9AXRMg/0CddcPtksPD7ZTDkiJzkgp1kiD/gYPgqoAAAC/QAAAAOgVmwoAx0AIBAAAAEGAfwwCD4WBAQAAQYpPDYDBAel3AQAADx+AAAAAAEQPtnMOSTnFD443AQAAv0AAAADo2JoKAA8QAw8QSxAPEFMgDxBbMA8RAA8RSBAPEVAgDxFYMMdACAQAAAAPtksOSI1xAQ+2Uw+9AQAAAEg51nQgSI0U1fj///9IweEDkEiLdAsY8INGCARIg8EISDnKde1IicPp4wAAADHtSTnFfm2/QAAAAOhkmgoADxADDxBLEA8QUyAPEFswDxEADxFIEA8RUCAPEVgwx0AIBAAAAA+2Sw4PtlMPONF0JkjB4gNIweEDZi4PH4QAAAAAAJBIi3QLEPCDRggESIPBCEg5ynXtD7ZID70BAAAASInDuAYAAABIKch0Og+2Uw5IAdCIQw7GQw8GSIP4BXcmSI0My7oFAAAAZi4PH4QAAAAAAEiLdNHgSIl00xBIg8L/SDnCc+2KQw4E/4hDDg+2wEyJfMMQ6x5Ki3zzELj8////8A/BRwiD4P0x7YP4BHQ2Tol88xBMASNJid/pKv7//zHJSYsXSIkQxkAMAohIDWbHQA4AAUyJeBC9AgAAAEmJx+kE/v//6OeQ///rw0iLbCQIv0AAAADoRpkKAEiJw8dACAQAAABIi0UASQMHSIkDQYpHDQQBxkMMAohDDWbHQw4AAkyJexBIiWsYPAxyaUiJ3+j7wP//SInDgHgNDHJYSI01IRio/kiNDQ2xrf5MjQXfPXb/TI0NBfKk/78DAAAAugwBAAAxwOjF5f3/6ylMASNBg/0CfCBmLg8fhAAAAAAAQY1F/kiLXMQ4TAEjQYPF/0GD/QF/6mRIiwQlKAAAAEg7hCSgAAAAdSxIidhIgcSoAAAAW0FcQV1BXkFfXcPoDZD//+kF/f//TInn6ACQ///pxvz//+jWmgoAzMzMzMzMQVdBVkFVQVRTSYnMSYnXSYn2SIn7SItHGA+2dwxIhdJ0EUyLbPAQSYt1AEwp/umlAAAAD7ZID0iDwf9IOfEPhYEAAABEi0sIRTHtRYXJRQ9OzUnB4SC/DAAAAEm4AAAAAAEAAAAxyWYPH4QAAAAAAEk5yXRhSItE+8APtlQ7AUiDwgEPtnAPTAHBSIPHAUg58nTdiBQ7SMH5IGYPH0QAAEiLRNAQSIlEyxAPtnAOQA+21ohUCwtIjXn/SIP5AUiJ+X/d6whAgMYBQIhzDEAPts5Mi2zIEDH2SI17CEyJ8uicAQAASYkEJE05/nMfQYpNDID5AXVYSYt1EEmLRRiKSAyA+QVzUkiLQBDrUEkB100p/kiLA0k5xnNTSItLGA+2cwxIi0zxEEwDMUwp8EiJA4pZDID7AXVNSItxEEiLQRiKWAyA+wVzR0iLQBDrRTH2TInogPkFcq5Ig8ANSYtNAEgp0XI2SAHwSAHQ6wtIxwMAAAAAMckxwEiJyltBXEFdQV5BX8Mx9kiJyID7BXK5SIPADUiLCUgp0XPK6NCbCgBTSInyD7ZPBEyLVxBJi0TKEEyLGEk583YFiE8EW8NEiwcxwDHb6xZmDx+EAAAAAABNi0zKEE2LGUw52nJGTCnaSIPBAUEPtnIPSDnxdeJIY9tEOcNEicEPT8tMY8kPHwBJOdl0t0yLVN8YD7ZMHwVIg8EBQQ+2cg9Ig8MBSDnxdN/rrYXbfk9BidjrDQ8fQABJicFJg/oCfIBNicJCiEwHBEmDwP9EicBMiUzHEEEPtkkOSYtEyRBmDx+EAAAAAABIizBIOfJyyEgp8kmLRMkYSIPBAevqTInI6Tv///9mkFVBV0FWQVVBVFNIg+wYTI0sMkQPtmcETIt/EEuLROcQSIsYSTndcxtIidVIhdIPhOUBAABIOet1OfCDQAgE6RMCAABJif5IKfNIiUQkEHQeSIX2dDSAeAwBdThIA3AQSIk0JEiLQBhIiUQkCOsuMe3rYYB4DAEPhakBAABIA3AQSItYGOmfAQAA8INACARIicXrQEiJRCQISIk0JL8gAAAA6DqVCgBIicUPV8APKQDHQAgEAAAASIkYxkAMAUiLBCRIiUUQSItEJAjwg0AIBEiJRRi/QAAAAOgDlQoASInHx0AIBAAAADHbgH0MArgAAAAAdQWKRQ0EAUiLTQBIiQ/GRwwCiEcNZsdHDgABSIlvEEiLRCQQSIsAvQEAAADrCUk5xQ+CPwEAAEkpxUmDxAFBD7ZHD0k5xA+FkgAAAEhj2+tQZi4PH4QAAAAAAA8fAA+2Tg2AwQFIixZIiRDGQAwCiEgNZsdADgABSIlwEL0BAAAASInHTYt83hhFD7ZkHgVJg8QBQQ+2Rw9Ig8MBSTnEdT1FiGQeBEljBkg5w31aTYXtdNFAiG8PSIn9v0AAAADoKpQKAEiJ7sdACAQAAACAfQwCdIoxyeuNZg8fRAAAS4t05xBIiwZJOcUPgj////9IAQfwg0YIBEiJdO8QSIPFAUiLBukm////QIhvD02F7XQauPz////wD8FHCIPg/YP4BA+EUgEAADHA6zlFMe1IifjrMUiJw0mJ9r8gAAAA6KuTCgAPV8APKQDHQAgEAAAASIkoxkAMAUyJcBDwg0MIBEiJWBhMiepIg8QYW0FcQV1BXkFfXcNMAS+F20iJPCQPjsIAAACJ2kmJ/+sSZpBFMe1Iid5Jg/gBD46vAAAASYnQRYhkFgRIg8L/idBJiXTGEEQPtmYOSotc5hBNhe10zkiJdCQIv0AAAABMiUQkEOgakwoATItEJBBJjVD/x0AIBAAAAMZADAKIUA1mx0AOAABMiShJiUTvEECAxQFBiG8PTDsrcwhJiccx7esxkEiLTCQISo0M4UiDwRgx7ZDwg0MIBEiJXOgQTCsrSIsc6UiDxQFMOytz5kkB7EmJx0iLPCTpSv///0iJ80mJ/02F7XQaSInfMfZMieroLwAAAEiLPCRJiUTvEEiDxQFBiG8PRYhmBOm1/v//6ACK//8xwOnf/v//Zg8fhAAAAAAAQVdBVlNIhdJ0EkmJ10iJ+0g5F3UL8INDCATrQzHb6z9JifaAewwBdQhMA3MQSItbGL8gAAAA6CWSCgAPV8APKQDHQAgEAAAATIk4xkAMAUyJcBDwg0MIBEiJWBhIicNIidhbQV5BX8PMzMzMzMzMzEiJ0UiJ8kiJ/r8BAAAA6wBVQVdBVkFVQVRTSIHsCAQAAEiJTCQYSIlUJBBJifeJfCQMZEiLBCUoAAAASImEJAAEAABIix5IjXwkODHtusgDAAAx9uhHlQoA6ycPH0QAAEiJwkjR6kiNFFJMi3zR6EiLbNHwSItc0fhIg8D+SIlEJDhNif1Mie4PH4QAAAAAAA+2RgyEwA+FlAAAAEyLfhBMi24Yi0YIg+D9g/gEdRFIiffoWZEKAOslDx+AAAAAAPBBg0cIBPBBg0UIBLj8////8A/BRgiD4P2D+AR0PUmLB0mJxEkp7HZ3SYneTSnmD4f7AAAAuPz////wQQ/BRQiD4P1Mif6D+AR1hUyJ7+htiP//TIn+6XX///9IiffoXYj//+u5Zi4PH4QAAAAAAJA8AXV8SANuEEyLbhiLRgiD4P2D+AR1QEiJ9+jBkAoA6TH///9mLg8fhAAAAAAAZpC5/P////BBD8FPCEgpxYPh/YP5BA+FC////0yJ/+j+h///6f7+///wQYNFCAS4/P////APwUYIg+D9g/gED4Xi/v//SIn36NWH///p1f7//0iLfCQQSInqSInZ/1QkGEiLRCQ4SIP4AQ+GHwEAAEiNTCRAqAEPhIX+//9Ii0wkQOl7/v//Zi4PH4QAAAAAAJCAfCQMAHRpTIlsJCBIx0QkKAAAAABMiXQkMEiLRCQ4uigAAACoAXQFSItUJEhIicFI0elIOdEPhJkAAABIjVQkQKgBdAVIi1QkQEiNBElIi0wkMEiJTMIQDxBEJCAPEQTCSINEJDgCTInj6SP+//+QTIl8JCBIiWwkKEyJZCQwSItEJDi6KAAAAKgBdAVIi1QkSEiJwUjR6Ug50XRPSI1UJECoAXQFSItUJEBIjQRJSItMJDBIiUzCEA8QRCQgDxEEwkiDRCQ4Ak2J7zHtTInz6b39//9IjXwkOEiNdCQg6GwAAABMiePppv3//0iNfCQ4SI10JCDoVQAAAOvLSIXAdApIi3wkQOgUjwoAZEiLBCUoAAAASDuEJAAEAAB1EkiBxAgEAABbQVxBXUFeQV9dw+g6kQoAZi4PH4QAAAAAAEiJ0UiJ8kiJ/jH/6dD8//9VQVdBVkFVQVRTUEmJ9EmJ/0yLL0H2xQF1C0mNbwi5UAAAAOseSYtPEEgByUi4q6qqqqqqqgpIOcEPgywBAABJi28ITInrSNHrSIkMJEiNBM0AAAAASI08QOhSjgoASYnGSI0EW0EPEAQkQQ8RBMZJi0wkEEmJTMYQSYP9Ag+CqQAAAEiNU/+J2YPhA0iD+gNzBDHS61pIg+P8MdJMifaQSIt9EEiJfhAPEEUADxEGSIt9KEiJfigPEEUYDxFGGEiLfUBIiX5ADxBFMA8RRjAPEEVIDxFGSEiLfVhIiX5YSIPFYEiDwgRIg8ZgSDnTdbBIhcl0N0iNFFJJjRTWSMHhA0iNDEkx9mYPH4QAAAAAAEiLfDUQSIl8MhAPEEQ1AA8RBDJIg8YYSDnxdeRNjSTGQfbFAXQMSYt/COiRjQoATYsvTYl3CEiLBCRJiUcQSYPNAUmDxQJNiS9MieBIg8QIW0FcQV1BXkFfXcPoUJIKAFVBV0FWQVVBVFNQSInzSYn+SI01RTJ2/7oOAAAA6D5r9/9IicdIid7o05UKAEiNNR8Sm/+6CwAAAEiJx+gfa/f/SIszSInH6BSVCgBIjTWKhLL+ugkAAABIicfoAGv3/4tzEEiJx+g1ogoASI01hV+v/roJAAAASInH6OFq9/+LcxRIicfoFqIKAEiNNT4KpP+6CAAAAEiJx+jCavf/i3MYSInH6PehCgBIjTW8MXb/ugcAAABIicfoo2r3/4tzCMH+AkiJx+iFlAoASI01viyt/7oPAAAASInH6IFq9/9Ii3MgSInH6IWbCgBIjTXN+ar+ugQAAABIicfoYWr3/4trEItDGEUx5OkfAQAADx8Ag8H/OWsQSI1TKEiNDMpIjVMgSA9EykqLdOsoSCsxSInH6CqUCgC6CAAAAEiJx0iNNYqHof/oFmr3/0iJx0yJ/uirlAoAugkAAABIicdIjTV0h6H/6Pdp9/9JizdIicfo7JMKALoIAAAASInHSI01ceOr/+jYaff/QQ+2dwxIicfou5MKALoHAAAASInHSI01yDB2/+i3aff/QYt3CMH+AkiJx+iYkwoAugsAAABIicdIjTXZK63/6JRp9/+LSxhIweEESAHZSIPBKEKLNKlIicfouqAKALoMAAAASInHSI01OFWX/uhmaff/Sot06yhIicfoaZoKALoBAAAASInHSI0112yh/+hFaff/g8UBi0MYOcVBD0TsO2sUdFWJwEiNBMNIg8AoQYntTos86LoHAAAATIn3SI01tV2v/ugPaff/SInHie7oRaAKALoLAAAASInHSI01fuKr/+jxaPf/iemF7Q+Fl/7//4tLGOmP/v//SI017C92/7oCAAAATIn3SIPECFtBXEFdQV5BX13pvWj3/2YuDx+EAAAAAAAPHwCLRxhIweAESAH4ifEBVIgow2YuDx+EAAAAAAAPH0QAAInwSClUxyjDDx+EAAAAAABVQVdBVkFVQVRTUItHGEiFwA+EFwEAAEmJ/otfEDnDD4OkAAAAQYtOFDnBD4OYAAAAhclBicdED0X5QYPH/02LZiBPi2z+KE0p5U07Lg+FBwEAAEmNFMZIg8IoSInHSMHnBE2NDD5Jg8EoRTHADx8AidtNi3zeKE2J/U0p5Q+EfQEAAEiLLNpIhe0PhPUBAACAfQwDD4YgAgAARYskmUiLfQBMKecPhlUCAABJOf0Ph0wCAACDwwE5w0EPRNhBtQFNifw5y3Wp639IjQV3XqH/ugUAAABIifdIicbooGf3/0GLdhBIicfo1J4KAEiNNTZcr/66DQAAAEiJx+iAZ/f/QYt2FEiJx+i0ngoASI01L8Lp/7oQAAAASInH6GBn9/9Bi3YYSInH6JSeCgDrF0iNBUdvr/66DQAAAEiJ90iJxug7Z/f/RTHtRInoSIPECFtBXEFdQV5BX13DSI0FIdyc/7oHAAAASIn3SInG6A9n9/9JizZIicfoBJEKAEiNNWCd4/+6IgAAAEiJx+jwZvf/SInHTInu6OWQCgBIjTVfhbz/uhAAAABIicfo0Wb3/0mLdiBIicfoxZAKAEiNNakX7f+6CwAAAEiJx+ixZvf/SInHRIn+6OadCgBIjTXr4Kz+ugoAAABIicfokmb3/0uLdP4oSInH6IWQCgDpRf///0iNBfuDof+6BgAAAEiJ90iJxuhpZvf/SInHid7on50KAEiNNbkndP+6GAAAAEiJx+hLZvf/RTHtSInHMfboPpAKAEiNNbiEvP+6EAAAAEiJx+gqZvf/SInHTInm6B+QCgBIjTXPjaj+ug0AAABIicfoC2b3/0iJx0yJ/ugAkAoA6cP+//9IjQV2g6H/ugYAAABIifdIicbo5GX3/0iJx4ne6BqdCgBIjTU0NJ3/uhIAAABIicfphv7//0iNBUGDof+6BgAAAEiJ90iJxuivZff/SInHid7o5ZwKAEiNNVIm6P+6GwAAAEiJx+iRZff/D7Z1DEiJx+h1jwoA6UX+//9IjQX7gqH/ugYAAABIifdIicboaWX3/0iJx4ne6J+cCgBIjTWkJ63/ug0AAABIicfoS2X3/0iJx0yJ5uhAjwoASI01Q9qc/7oSAAAASInH6Cxl9/9IicdMie7oIY8KAEiNNfRQl/66LAAAAEiJx+gNZff/SIt1AOl3/v//Dx9AAFO4/////0gp+Eg58HIvSInzSAH7SI0Em0iNPIUoAAAA6LuGCgDHQAgEAAAAxkAMA4lYGEjHQCAAAAAAW8NIjT2BjKj+6NcoAAAPH4AAAAAAQVdBVlNJifZIiftIjXz3KItLEItDFItTGEiNNNNIg8YoRTH/KchBD0fXSI08z0iNNM4BwkjB4gPo048KAEyJ8EjB4ARIAdhIg8Aoi0sQi1MUSI08iItDGEiJxkjB5gQpykQPRvhIjQQzSIPAKEiNNIhBAddJwecCTIn66JCPCgBEiXMYW0FeQV/DZg8fRAAA6RuGCgBmLg8fhAAAAAAAkFNIifuLdxCLVxToEQAAAEiJ31vp+IUKAA8fhAAAAAAAVUFXQVZBVFNBidZBifdJifw58otHGInRD0bIOfF2dESJ+kSJ/ffVAc1JjRzUSIPDKGYuDx+EAAAAAAAPH0QAAInASIs8w4tHCIPg/YP4BHQSuPz////wD8FHCIPg/YP4BHULgH8MBXIX6IKFCgCD7QFzFeseZi4PH4QAAAAAAJD/VxiD7QFyC0GLRCQYSIPDCOutRTn+d1lFhfZ0VESJ80mNbCQo6xZmDx+EAAAAAAD/VxhIg8UISIPD/3Q0QYtEJBhIi3zFAItHCIPg/YP4BHQSuPz////wD8FHCIPg/YP4BHXPgH8MBXLG6AGFCgDrwltBXEFeQV9dw2YPH0QAAFVBV0FWQVVBVFNQQYnXQYn0SIn7Me1BidVBKfV3A4trGEQB7bj/////SDHoSDnID4KOAgAASAHNSI0ErQAAAABIAehIjTyFKAAAAOiAhAoASYnGMclFOefHQAgEAAAAxkAMA4loGEiLA0mJBkHHRhAAAAAAi3MYifIPR9GJ8EEPR8dEAeo56g9DzSnKQYlWFEiLSyBJiU4gTY1OKInpTY0UzkmDwihIweEETY0cDkmDwyiJwUQp4Q+G7AAAAESJ5YnHSYnoSffQ9sEBdEdIi0TrKE2J8UmDwTBJiUYoSI0E80iDwChIiwTo8INACARJiQJJg8IIi3MYSInwSMHgBEgB2EiDwCiLBKhBiQNJg8MESIPFAUkB+A+EjAAAAEgp70yNBKtIjQTrMe0x0g8fQABIi0xoKEmJDGmJ8UiNDMhIi0xpKPCDQQgESYkMaotLGEiNNMhIweEETAHBi0wNKEGJDCtIi0xoMEmJTGkISItMbjDwg0EIBEmJTGoIi3MYSInxSMHhBEwBwYtMDSxBiUwrBEiDwvBIg8UISIPH/nWQSSnRSSnSSQHrQY1H/0Q54A+D6QAAAEWJ+EGD/wF1ETHAQfbAAQ+FogAAAOnPAAAARInHg+f+Me1MidoxwA8fAEiLTMMoSYkMwYnxSI0My0iLTMEo8INBCARJiQzCi0sYSI00y0jB4QRIAdmLTIEoQYkMg0iLTMMwSYlMwQhIi3TGMPCDRggESInRSYl0wgiLcxhIifJIweIESAHai1SCLEGJVIMESY0Ug0iDwghIg8ACSIPF8Eg5x3WGSIPBCEkp6Ukp6kmJy0H2wAF0MkiLTMMoSYkJifFIjQzLSIPBKEiLDMHwg0EIBEmJCotLGEjB4QRIAdlIg8EoiwSBQYkDuPz////wD8FDCIPg/YP4BHQeTInwSIPECFtBXEFdQV5BX13DSI0964eo/uhBJAAASInf6Il5///r2A8fgAAAAABVQVdBVkFVQVRTSIPsOEiJ8UmJ/otHFDHSK0cQdwRBi1YYQYt2CIP+BA+FyAEAAAHQSI00CEGLVhhIOdYPhiAEAACJ09HrAdNIKcNIOctID0bZuf////9IMcFIOdkPgjoEAABIAcNIjQSbSI08hSgAAADoeYEKAEmJx8dACAQAAADGQAwDiVgYQYt+EEWLXhRJiwZJiQdBx0cQAAAAADHJRInaKfpBi24Yie4PR/GJ6EEPR8MB1jneD0PLKc5BiXcUSYtOIEmJTyBNjUcoQYndSIn7T40M70mDwShMielIweEETY0kD0mDxCg52A+GkwIAAInASInqSMHiBEiJVCQoSYnCSSnaSYP6BEiJXCQID4MAAQAASInficIp+kiJ+Uj30fbCAXRDSY0U7kiDwihIi3QkKEmNdDYoSInrSYts/ihJiShIid1Ii1wkCEmDwAhIixT6SYkRSYPBCIsUvkGJFCRJg8QESIPHAUgBwQ+EEgIAAEgp+EiLTCQoSI0MuU2NFA5Jg8IsSI0ML0mNFM5Ig8IwSY00/kiDxjAxyTHbkEiLfE74SYk8SEiLfEr4SYk8SUGLfAr8QYk8DEiLPE5JiXxICEiLPEpJiXxJCEGLPApBiXwMBEiDw/BIg8EISIPA/nW8SSnYSSnZSQHMSItcJAjpjgEAAEGLdhBBi1YUTIn3SIPEOFtBXEFdQV5BX13pC/v//0iJbCQQTIlcJCBIjRTFAAAAAEiNNN0AAAAASCnyTAH6SIPCKEqNPChIwecDSCn3So00P0iDxihIiXQkGEiNPIFIjSydAAAAAEgp70qNLD9Ig8UoSTnwQQ+Sw0k50UAPksZJOegPksNJOdRAD5LHSTnpD5LCTDtkJBhAD5LFQYTzD4XZAQAAQCD7TItcJCAPheIBAABIi1wkCEiJ30Ag6kiLbCQQD4VZ/v//ScHlA0iJ2kyJ00iD4/xNjQTYTY0M2U2NJJxIjTwTTo1cOTBLjXQ9OEiLTCQoTAHxSIlMJBhJidVIjQwSSIlMJDBIielJjWzWOEiLVCQwSI0USkmNFJZIg8I4SItMJBhOjSypSYPFMDHJDx+EAAAAAAAPEETN8A8QTM0AQQ8RRM8oQQ8RTM84DxBEyvAPEAzKDxFEzvAPEQzOQQ8QRI34QQ8RRIv4SIPBBEg5y3XDSTnaTItcJCBIi2wkEEiLXCQID4WT/f//QY1D/znYD4PGAAAASYnqScHiBEGD+wF1ETHJQfbDAQ+FigAAAOmoAAAARInYg+D+SYntSY0U7kiDwjBLjSwySIPFLDHbTInmMcmQSIn3SYt0zihJiTTISIt0yvhJiTTJi3SN/EGJNIxJi3TOMEmJdMgISIs0ykmJdMkIi3SNAEGJdIwESY00jEiDxghIg8ECSIPD8Eg5yHWySIPHCEkp2Ekp2UmJ/EyJ7UH2wwF0I0mNBO5Ig8AoS41UFihJi3TOKEmJMEiLBMhJiQGLBIpBiQQkTIn36LF9CgBNif5MifBIg8Q4W0FcQV1BXkFfXcNIi1wkCEiJ30yLXCQgSItsJBDpjfz//0iLXCQISInfSItsJBDpe/z//0iNPTGDqP7ohx8AAA8fgAAAAABTi0cUi08YhcBIjRTPD0XIg8H/TItEyigxwEGAeAwFugAAAAAPgqMAAABFi0gIMcC6AAAAAEGD+QQPhY4AAABBD7ZADInCweIFgcLg8///PYIAAACNBMX4////D0PCg8DzSGPQTItMzyhEi1cYTInQSMHgBEyNHAdJg8MoSI1HIEiFyUQPRdFBg8L/OU8QTo1U1yhMD0TQTInLSSsaQYsEi0gBw0gp2kg58kgPR9ZIhdJ0HEiNBBpJiQBJAdFMiUzPKEgBF0mNBBhIg8ANW8MxwDHSW8NmLg8fhAAAAAAAkItHEItXGEiJ0UjB4QRIAflIg8EoiwyBSIXJdFlIjRTXSIPCKEyLBMJFi0gIMcC6AAAAAEGD+QR1OzHAQYB4DAW6AAAAAHItSDnxSA9G8UgBN0gpdyBIKfGLRxCLVxhIweIESAH6iUyCKEmNBAhIg8ANSInywzHAMdLDZg8fRAAAQVdBVkFVQVRTuP////9IOcFzaEmJzUmJ10mJ9kmJ/EiNWQFIjQSbSI08hSgAAADorHsKAMdACAQAAADGQAwDiVgYSMdAIAAAAADHQBAAAAAAMcmD+wEPlcGJSBRMiThMiXgoTolk6DBIweMERIl0GChbQVxBXUFeQV/DSI09Q4Go/uiZHQAAZg8fhAAAAAAASIPsKGRIiwQlKAAAAEiJRCQgSIl0JBhIx0QkEAAAAABIjUQkEEiJBCRIjUQkGEiJRCQISI0VVg8AAEiJ5uge6f//SItEJBBkSIsMJSgAAABIO0wkIHUFSIPEKMPoX30KAGYuDx+EAAAAAAAPH0QAAEFXQVZBVFNIg+woSYn2SYn8ZEiLBCUoAAAASIlEJCCKRww8BHJpuP////9JOcYPg8AAAABNizwkSY1eAUiNBJtIjTyFKAAAAOiTegoAx0AIBAAAAMZADAOJWBhIx0AgAAAAAMdAEAAAAAAxyYP7AQ+VwYlIFEyJOEyJeChOiWTwMEjB4wTHRBgoAAAAAOtJPAN1DUyJ50yJ9uhS+P//6zhMiXQkGEjHRCQQAAAAAEiNRCQQSIkEJEiNRCQYSIlEJAhIjRVYDgAASInmTInn6B3o//9Ii0QkEGRIiwwlKAAAAEg7TCQgdRhIg8QoW0FcQV5BX8NIjT3Kf6j+6CAcAADoS3wKAGYuDx+EAAAAAACQSIPsGEiJ8GRIiwwlKAAAAEiJTCQQSIl8JAhIjUwkCEiJDCRIjRVGDwAASInmSInH6Kvn//9Ii0QkCGRIiwwlKAAAAEg7TCQQdQVIg8QYw+jsewoAZi4PH4QAAAAAAGaQQVdBVlNIictJidZJife+AQAAAOho9///i0gUi1AYjXEBMf851g9F/ol4FEgDGEiJGEgDWCBIiVzIKEiNNNBIg8YoTIk8zkjB4gRIAcJIg8IoRIk0iltBXkFfww8fRAAAQVZTSIPsGEmJ9mRIiwQlKAAAAEiJRCQQSIseikYMPARyTL4BAAAA6PT2//+LSBSLUBiNcQEx/znWD0X+iXgUSAMYSIkYSANYIEiJXMgoSI000EiDxihMiTTOSMHiBEgBwkiDwijHBIoAAAAA6zg8A3UPTIn2MdJIidnoYQ8AAOslSIl8JAhIjUQkCEiJBCRIjRUaDgAASInmTIn36H/m//9Ii0QkCGRIiwwlKAAAAEg7TCQQdQhIg8QYW0Few+i9egoAZi4PH4QAAAAAAA8fAEiD7BhIifBkSIsMJSgAAABIiUwkEEiJfCQISI1MJAhIiQwkSI0VRg4AAEiJ5kiJx+hL6f//SItEJAhkSIsMJSgAAABIO0wkEHUFSIPEGMPoXHoKAGYuDx+EAAAAAABmkEFXQVZTSInLSYnWSYn3vgEAAADo2PX//4tIEItQGIXJidYPRfGDxv9Ii0ggiXAQSAEYSInPSCnfSIl4IEiJTPAoSI0M0EiDwShMiTzxSMHiBEiNDBBIg8EoRIk0sVtBXkFfw2YuDx+EAAAAAAAPHwBBVlNIg+wYSInzZEiLBCUoAAAASIlEJBBMizaKRgw8BHJUvgEAAADoVPX//4tIEItQGIXJidYPRfGDxv9Ii0ggiXAQTAEwSInPTCn3SIl4IEiJTPAoSI0M0EiDwShIiRzxSMHiBEiNDBBIg8EoxwSxAAAAAOs4PAN1D0iJ3jHSTInx6NkPAADrJUiJfCQISI1EJAhIiQQkSI0VAg0AAEiJ5kiJ3+gH6P//SItEJAhkSIsMJSgAAABIO0wkEHUISIPEGFtBXsPoFXkKAA8fRAAAVUFXQVZBVUFUU1BIictJidVJifdJif6LRwiD+AQPhdMAAABBi04UQYtGGIXJSY0Uxg9FwYPA/0iLTMIogHkMBQ+CsAAAAItRCIP6BA+FpAAAAEmJ3A+2UQyJ1sHmBYHG4PP//4H6ggAAAI0U1fj///8PQ9aDwvNIY9pJi1TGKEGLdhhIifdIwecETY0EPkmDwChJjW4gSIXAD0Xwg8b/QTlGEEmNfPYoSA9E/UiJ1kgrN0GLPIBIAf5IKfNMOetJD0fdSIXbdCtIjTwzSIk5SAHaSYlUxihJAR5IjTwxSIPHDUyJ/kiJ2uhTegoASQHfSSndTInjTYXtD4SpAQAASY11/0i5s+/rv4mp0ABIifBI9+FIKdZI0e5IAdZIwe4LSIPGAUyJ9+iE8///SYnGi2gUTIsgTANgIEmB/fMPAAAPgpYAAABIiRwkZg8fRAAAvwAQAADoRnUKAEiJww8oBfwmlP4PEQBIjXgNuvMPAABMif7oyHkKAEmBxPMPAACJ6E2JZMYoQYtOGEmNFM5Ig8IoSIkcwkiJykjB4gRMAfJIg8Iog8UBOc25AAAAAA9E6ccEggAAAABJgcfzDwAASYHFDfD//0mB/fIPAAB3gU2F7UiLHCQPhMEAAABMAetIgfvzDwAAuPMPAABID0LDSIPADUiD+xS5IAAAAEgPQsFIPQEEAAC7CAAAAEgPQ9lIAdhIg8D/SPfbSCHDSInf6Hx0CgCJ2sHqA4nZwekFgMFhgMIBSIH7AQQAAA+20g+2yQ9CykjHQAgEAAAAiEgMTIkoSI14DUiJw0yJ/kyJ6ujceAoATQHsiehNiWTGKEGLThhJjRTOSIPCKEiJHMJIicpIweIETAHySIPCKMcEggAAAACDxQExwDnND0ToTStmIE2JJkGJbhRMifBIg8QIW0FcQV1BXkFfXcNmDx9EAABVQVdBVkFVQVRTSIPsOEmJzEiJ1UiJ84tHCIP4BA+FgAAAAItPEItXGEiJ0EjB4ARIAfhIg8AoiwSISIXAdGRIjRTXSIPCKEiLDMqLUQiD+gR1UIB5DAVySkg56EmJxUwPR+1MAS9MKW8gTCnoi1cQi3cYSMHmBEgB/olElihNhe10IEmJ/kiNPAFIg8cNSI00K0wp7kyJ6ujjdwoATIn3TCntSIXtD4QCAgAASIlcJDBIietMjW3/SLmz7+u/ianQAEyJ6Ej34Ukp1UnR7UkB1UnB7QtJjW0BSInu6A/x//9Mi3ggi3AQMf8p7nMDi3gYTWn1DfD//0iJXCQgSY0MHkiJTCQITAHhSIkMJEiB+fMPAAC68w8AAEgPQtFIg8INSIP5FLkgAAAASA9C0UiB+gEEAAC9CAAAAEgPQ+lIiXwkKI0cN0iNDCpIg8H/SPfdSCHNSIlEJBBIie9IiXQkGOh6cgoASYnFSMdACAAAAACJ6MHoA4npwekFgMFhBAFIgf0BBAAAD7bAD7bJD0LIQcdFCAQAAABBiE0MSIsEJEmJRQBLjXwlDUyJ5UyLZCQwTInmSItUJAjownYKAEiLfCQQTIl83yiLRxhIjQzHSIPBKEyJLNlIicFIweEESAH5SIPBKEiJHCSJLJlMK3wkCE2F9g+EnwAAAEiLTCQoSItUJBiNLBGDxQExyTnFD0TpTANkJCBmLg8fhAAAAAAAT40sNL8AEAAA6LJxCgBIicMPKAVoI5T+DxEASI14DbrzDwAATInu6DR2CgBIi3wkEInoTIl8xyiLTxhIjRTPSIPCKEiJHMJIicpIweIESAH6SIPCKMcEggAAAACDxQE5zbgAAAAAD0ToSYHHDfD//0mBxvMPAAB1h0iLBCSJRxBIi0cgTCn4SAEHTIl/IEiJ+EiDxDhbQVxBXUFeQV9dw1OJ8ItPFCnxdjuD+SEPgpEAAABMi0cg6wwPH4AAAAAAg/4Rdn+JzoPG/4nx0emNHAFIi1zfKEwpw0g503fiAciDwAHr20SLTxhEAcmD+SFyU0yLRyDrD2YPH4QAAAAAAEGD+xF2PkGJy0GDw/9EidnR6Y00AUUx0rsAAAAARDnOcgNEicsp3o1eAUQ5y3QDQYnaSIt09yhMKcZIOdZ3wUSJ0Ou8hcBEi0cYicFBD0TISI13IIPB/zlHEEiNTM8oSA9EzkyLVyCJxkiLXPcoSIneTCnWSDnWdgVIizHrLkiDxyhFMclmLg8fhAAAAAAAkIPAAUQ5wEEPRMFIid5IixzHSInZTCnRSDnRduRIKfJMAdJbw2YuDx+EAAAAAABmkFVTi08UTI1C/ynxdjiD+SEPgooAAABMi08g6wkPH0AAg/gRdnuJyIPA/4nB0emNLDFIi2zvKEwpzUw5xXfiAc6DxgHr20SLVxhEAdGD+SFyT0yLTyDrDmYPH4QAAAAAAIP4EXY7iciDwP+JwdHpjRwxRTHbvQAAAABEOdNyA0SJ1SnrjWsBRDnVdANBietIi1zfKEwpy0w5w3fFRIne68BIi0cgRItPGInxSItMzyhIKcFJOchyHzHbDx+AAAAAAIPGAUQ5zg9E80iLTPcoSCnBSTnIc+qDxgExwEQ5zg9Fxkgp0UiJyltdw2YPH0QAAFNIifuLRxBIhfZ0D0iJ8kiJ34nG6Nf9///rAjHSi0sYSI00y0iDxihIweEESAHZSIPBKInHiwS5SIsM/opZDID7BXIJSIPBDUiJzusjgPsEdQZIi3EQ6xhIi3EYgH4MBHUGSIt2EOsESIPGDUgDcRBIAcKKBBZbww8fhAAAAAAAVUFXQVZBVUFUU0iD7BhIiftIhdJ0J0mJzUmJ10mJ9otrEEiF9nQzSInfie5MifLoPP3//4nFSIlUJBDrJLj8////8A/BQwiD4P2D+AQPhO4AAAAx2+nVAAAAMcBIiUQkEEuNFDdIORN1DUSLYxQxwEiJRCQI6xJIid+J7ugP/v//QYnESIlUJAiLQxiLSwiD+QR1FzHJRIniKeoPR8EB0ItLGEgpwUw56XMcSInfie5EieJMienoBen//0iJw4toEESLYBTrK4tzEDn1dApIid+J6ujo5///i1MUQTnUdAtIid9Eiebo1ef//4lrEESJYxRMiTtMAXMgSItUJBBIhdJ0EItDGEjB4ARIAdiJ6QFUiChIi0QkCEiFwHQSRYXkdQREi2MYQYPE/0opROMoSInYSIPEGFtBXEFdQV5BX13DSInf6Ndk//8x2+viDx8AVUFXQVZBVFNIiftIOTd1Grj8////8A/BQwiD4P2D+AQPhIYAAAAx2+t2SYnUSYn2i2sQSIX2dBRIid+J7kyJ8ujb+///icVJidfrA0Ux/4tDCIP4BHUWi3MQOfV0CkiJ34nq6Ajn//+JaxDrFotTFEiJ34nuTInh6PPn//9IicOLaBBMKTNMAXMgTYX/dBGLQxhIweAESAHYielEAXyIKEiJ2FtBXEFeQV9dw0iJ3+gcZP//Mdvr6A8fhAAAAAAAQVdBVkFVQVRTSYnVSIn7SIsXSCnydRq4/P////APwUMIg+D9g/gED4SGAAAAMdvrdUmJ9kiF9nQTi3MQSInf6Dz8//9BicRJidfrB0SLYxRFMf+LQwiD+AR1GYtTFEE51HQLSInfRInm6ELm//9EiWMU6xiLcxBIid9EieJMienoK+f//0iJw0SLYBRMKTNNhf90EkWF5HUERItjGEGDxP9OKXzjKEiJ2FtBXEFdQV5BX8NIid/oVWP//zHb6+eQVUFXQVZBVUFUU1BIictJidZJifRJif+AfgwESIsHSIs4clFIhf90aL4BAAAA6J7p//+LSBSLUBiNcQEx/znWD0X+iXgUSAMYSIkYSANYIEiJXMgoSI000EiDxihMiSTOSMHiBEgBwkiDwihEiTSK6b0AAABIhf8PhIMAAABMieZMifJIidnoBQIAAOmhAAAASYtHCEyLKLj/////STnFD4OhAAAASY1tAUiNBK0AAAAASAHoSI08hSgAAADo/2oKAMdACAQAAADGQAwDiWgYSMdAIAAAAADHQBAAAAAAMcmD/QEPlcGJSBRIiRhIiVgoTolk6DBIweUERIl0KCjrMU2F9nUXSTkcJHURSYtHCEiLMEyJ5+i26P//6xVJi0cISIsITInnTIn2SIna6P/7//9Jiw9IiQFIg8QIW0FcQV1BXkFfXcNIjT1YcKj+6K4MAABmLg8fhAAAAAAADx9AAEFXQVZBVFNQSInLSYnWSYn0SYn/gH4MA0iLB0iLOHUQTInmTInySInZ6AIBAADrR74BAAAA6Dbo//+LSBSLUBiNcQEx/znWD0X+iXgUSAMYSIkYSANYIEiJXMgoSI000EiDxihMiSTOSMHiBEgBwkiDwihEiTSKSYsPSIkBSIPECFtBXEFeQV/DDx+AAAAAAEFXQVZBVFNQSYnMSYnWSInzSYn/gH4MBEiLB0iLOHJRvgEAAADotuf//4tIEItQGIXJidYPRfGDxv9Ii0ggiXAQTAEgSInPTCnnSIl4IEiJTPAoSI0M0EiDwShIiRzxSMHiBEiNDBBIg8EoRIk0sesOSIneTInyTInh6EECAABJiw9IiQFIg8QIW0FcQV5BX8PMzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIPsWEmJzUiJ00mJ9kmJ/2RIiwQlKAAAAEiJRCRQSIl0JEiLbhBIhdJ0FEyJ94nuSIna6M73//+JxUmJ1OsDRTHkTIlsJAhMAetJOR51CEWLbhQx0usQTIn3ie5Iidrowvj//0GJxUiJVCQQMcBEie4p7ncEQYtGGAHGTIn/6LPm//9IicNIx0QkQAAAAABIi0AgQYtWEEmNTiCJ7oXtdQRBi3YYg8b/OepJjVT2KEgPRNFIAwNIiwpMAeFIKchIiUQkQItDFEiJXCQwiUQkOIlEJDxBi0YIg+D9g/gEdXBIi3wkSEiNRCQwSIlEJBhIjUQkSEiJRCQgSI1EJEBIiUQkKEiNTCQYie5EieroRAMAAEiLfCRIi3cQOfV0DInq6DHi//9Ii3wkSItXFEE51XQNRInu6Bzi//9Ii3wkSEiLbCQI6P1nCgBNheR1VetpSIt8JEhIjUQkSEiJRCQYSI1EJDBIiUQkIEiNRCRASIlEJChIjUwkGInuRInq6CQEAABIi3wkSLj8////8A/BRwiD4P2D+ARIi2wkCHRkTYXkdBaLRCQ4i0sYSMHhBEiJ2kgBykQBZIIoSItMJBBIhcl0E4tEJDyFwHUDi0MYg8D/SClMwyhIASuLRCQ8iUMUZEiLBCUoAAAASDtEJFB1HkiJ2EiDxFhbQVxBXUFeQV9dw+ivXv//TYXkdZfrq+iDaQoAzMzMVUFXQVZBVUFUU0iD7GhIiUwkCEiJ00mJ90iJfCQYZEiLBCUoAAAASIlEJGBIiXQkWItuEEiF0nQRTIn/ie5IidroqvX//4nF6wIx0kiJVCQQSANcJAhJOR91CEWLbxQx0usQTIn/ie5IidrooPb//0GJxUiJVCQgRTHkRInoQb4AAAAAKeh3BEWLdxhBAcZIi3wkGEyJ9uiE5P//SInDSItAIEGLVxBJjU8gie6F7XUEQYt3GIPG/znqSY1U9yhID0TRSItMJAhIi3QkEEgB8UgDCkgpyEiJRCRQi0MQRCnwcwREi2MYQQHESIlcJEBEiWQkSESJZCRMQYtHCIPg/YP4BHVmSIt8JFhIjUQkQEiJRCQoSI1EJFhIiUQkMEiNRCRQSIlEJDhIjUwkKInuRInq6MkDAABIi3wkWIt3EDn1dAyJ6uj23///SIt8JFiLVxRBOdV0DUSJ7ujh3///SIt8JFjox2UKAOtJSIt8JFhIjUQkWEiJRCQoSI1EJEBIiUQkMEiNRCRQSIlEJDhIjUwkKInuRInq6LMEAABIi3wkWLj8////8A/BRwiD4P2D+AR0cUiLdCQQSIX2dBWLRCRIi0sYSMHhBEiJ2kgBygF0gihIi0wkIEiFyXQTi0QkTIXAdQOLQxiDwP9IKUzDKEiLTCQISAELi0QkSIlDEEgpSyBkSIsEJSgAAABIO0QkYHUZSInYSIPEaFtBXEFdQV5BX13D6HZc///riOhPZwoAzMzMzMzMzMzMzMzMzMzMVUFXQVZTQYnQOfJ3BESLRxhBOfAPhpMAAABBifJFicFFMcBmLg8fhAAAAAAADx8ASIs5SItBCEyLGEGLQxhJjRzDTot80yhIweAETAHYRot0kChIi0EQSIsASwNE0yhIiy+LXwxIiUTdKEiLB4toGEiNBOiLbwxMiXzoKEiLB4toGEjB5QRIAcWLRwxEiXSFKEiLB4tvDIPFATtoGEEPROiJbwxJg8IBTTnRdYONQv858A+DkAAAAEGJ0UUxwDH2SIs5SItpCEiLbQCLXRhIjRTdAAAAAEgB6kiLVPIoSMHjBEgB60SLVLMoSItBEEiLAEgDRPUoSIsvi18MSIlE3ShIiweLaBhIjQToi28MSIlU6ChIiweLUBhIweIESAHCi0cMRIlUgihIiweLVwyDwgE7UBhBD0TQiVcMSIPGAUk58Q+FeP///1tBXkFfXcPMVUFXQVZTQYnQOfJ3BESLRxhBOfAPhp0AAABBifNFicFFMcBmLg8fhAAAAAAADx8ATIsRSIt5CE2LMkGLXhhJjQTeTotU2ChIweMETAHzRot8myhIi1kQSIsbSwNc3ihIiweLbwxIiVzoKEiLB4tYGEiNBNiLXwxMiVTYKEiLB4tYGEjB4wRIAcOLRwxEiXyDKEiLB4tfDIPDATtYGEEPRNiJXwzwQYNCCARJg8MBTTnZD4V5////jUL/OfAPg5oAAABBidFFMcAx9mYPH0QAAEiLEUiLeQhIiyqLXRhIjRTdAAAAAEgB6kiLVPIoSMHjBEgB60SLVLMoSItBEEiLAEgDRPUoSIsvi18MSIlE3ShIiweLaBhIjQToi28MSIlU6ChIiweLaBhIweUESAHFi0cMRIlUhShIiweLbwyDxQE7aBhBD0ToiW8M8INCCARIg8YBSTnxD4V0////W0FeQV9dw8zMzMzMzMzMzMzMzMxVQVdBVlNBidA58ncERItHGEE58A+GkwAAAEGJ8kWJwUUxwGYuDx+EAAAAAAAPHwBIizlIi0EITIsYQYtDGEmNHMNOi3zTKEjB4ARMAdhGi3SQKEiLQRBIiwBLA0TTKEiLL4tfDEiJRN0oSIsHi2gYSI0E6ItvDEyJfOgoSIsHi2gYSMHlBEgBxYtHDESJdIUoSIsHi28Mg8UBO2gYQQ9E6IlvDEmDwgFNOdF1g41C/znwD4OQAAAAQYnRRTHAMfZIizlIi2kISIttAItdGEiNFN0AAAAASAHqSItU8ihIweMESAHrRItUsyhIi0EQSIsASANE9ShIiy+LXwxIiUTdKEiLB4toGEiNBOiLbwxIiVToKEiLB4tQGEjB4gRIAcKLRwxEiVSCKEiLB4tXDIPCATtQGEEPRNCJVwxIg8YBSTnxD4V4////W0FeQV9dw8xVQVdBVlNBidA58ncERItHGEE58A+GnQAAAEGJ80WJwUUxwGYuDx+EAAAAAAAPHwBMixFIi3kITYsyQYteGEmNBN5Oi1TYKEjB4wRMAfNGi3ybKEiLWRBIixtLA1zeKEiLB4tvDEiJXOgoSIsHi1gYSI0E2ItfDEyJVNgoSIsHi1gYSMHjBEgBw4tHDESJfIMoSIsHi18Mg8MBO1gYQQ9E2IlfDPBBg0IIBEmDwwFNOdkPhXn///+NQv858A+DmgAAAEGJ0UUxwDH2Zg8fRAAASIsRSIt5CEiLKotdGEiNFN0AAAAASAHqSItU8ihIweMESAHrRItUsyhIi0EQSIsASANE9ShIiy+LXwxIiUTdKEiLB4toGEiNBOiLbwxIiVToKEiLB4toGEjB5QRIAcWLRwxEiVSFKEiLB4tvDIPFATtoGEEPROiJbwzwg0IIBEiDxgFJOfEPhXT///9bQV5BX13DzMzMzMzMzMzMzMzMzFBJifj2BwF0Bk2LQBDrBEmDwAFIjTUMVqL+SI0NmLas/r8DAAAAui4AAAAxwOgOrP3/6ClkCgBmDx+EAAAAAABQSYn4SI0121Wi/kiNDWe2rP6/AwAAALo2AAAAMcDo3av9/+j4YwoADx+EAAAAAABQSYn49gcBdAZNi0AQ6wRJg8ABSI01nFWi/kiNDSi2rP6/AwAAALo+AAAAMcDonqv9/+i5YwoAZg8fhAAAAAAAUEmJ+EiNNWtVov5IjQ33taz+vwMAAAC6RgAAADHA6G2r/f/oiGMKAA8fhAAAAAAAUEmJ+PYHAXQGTYtAEOsESYPAAUiNNSxVov5IjQ24taz+vwMAAAC6TwAAADHA6C6r/f/oSWMKAGYPH4QAAAAAAFBJifhIjTX7VKL+SI0Nh7Ws/r8DAAAAulcAAAAxwOj9qv3/6BhjCgAPH4QAAAAAAFBJifj2BwF0Bk2LQBDrBEmDwAFIjTW8VKL+SI0NSLWs/r8DAAAAumAAAAAxwOi+qv3/6NliCgBmDx+EAAAAAABQSYn4SI01i1Si/kiNDRe1rP6/AwAAALpoAAAAMcDojar9/+ioYgoADx+EAAAAAABQSYn49gcBdAZNi0AQ6wRJg8ABSI01TFSi/kiNDdi0rP6/AwAAALpxAAAAMcDoTqr9/+hpYgoAZg8fhAAAAAAAUEmJ+EiNNRtUov5IjQ2ntKz+vwMAAAC6eQAAADHA6B2q/f/oOGIKAA8fhAAAAAAAUEmJ+PYHAXQGTYtAEOsESYPAAUiNNdxTov5IjQ1otKz+vwMAAAC6ggAAADHA6N6p/f/o+WEKAGYPH4QAAAAAAFBJifhIjTWrU6L+SI0NN7Ss/r8DAAAAuooAAAAxwOitqf3/6MhhCgAPH4QAAAAAAFBJifj2BwF0Bk2LQBDrBEmDwAFIjTVsU6L+SI0N+LOs/r8DAAAAupMAAAAxwOhuqf3/6IlhCgBmDx+EAAAAAABQSYn4SI01O1Oi/kiNDcezrP6/AwAAALqbAAAAMcDoPan9/+hYYQoADx+EAAAAAABQSYn49gcBdAZNi0AQ6wRJg8ABSI01/FKi/kiNDYizrP6/AwAAALqkAAAAMcDo/qj9/+gZYQoAZg8fhAAAAAAAUEmJ+EiNNctSov5IjQ1Xs6z+vwMAAAC6rAAAADHA6M2o/f/o6GAKAA8fhAAAAAAAUEmJ+PYHAXQGTYtAEOsESYPAAUiNNYxSov5IjQ0Ys6z+vwMAAAC6tQAAADHA6I6o/f/oqWAKAGYPH4QAAAAAAFBJifhIjTVbUqL+SI0N57Ks/r8DAAAAur0AAAAxwOhdqP3/6HhgCgAPH4QAAAAAAFDoamAKAGYuDx+EAAAAAABQ6FpgCgDMzMzMzMzMzMzMVUFWU0SLNbE+CwBFhfZ+fUGD/gF0fmRIiwQlAAAAAEiNgND///9IiyhIhe1/dGZmZmRIiwQlAAAAAEiNuOj///9MifbodwIAAEiJw2RIiwQlAAAAAEiNgND///9IiRhIg/3/dUlIg/sCfJlIg8P/RTH2ZEiLBCUAAAAASI2A0P///0iJGESJ8FtBXl3DuwAAAQDrBbsBAAAARYX2QQ+fxuvQSIPF/0Ux9kiJ6+vEQbYB69JmLg8fhAAAAAAADx8AiwX2PQsAw2YPH4QAAAAAAFNIiftkSIsEJQAAAABIjYDQ////SIkYW8MPH4AAAAAAiT3GPQsAw8zMzMzMzMzMzFBkSIsEJQAAAABIjYDQ////WcPMzMzMzMzMzMzMzMzMQVZTUEmJ9kiJ+4B/EAAPhKEAAABIuG3m7N4FAAAASA+vA0iDwAtIuf///////wAASCHBSIkLSMHpFvIPKsHyD1gFShjt//IPEEsI8g8RDCToO28KAPIPWAX7F+3/D1fJ8kkPKs7yD1kNgxnt//IPWcjyD1gMJGYPLg16GO3/dgxIuP////////8/6yFmDyjB8g8RDCToBm8KAPIPEAwk8g9cyPIPEUsI8kgPLMBIg8QIW0Few0iJ3+gTAAAA6VL///9mLg8fhAAAAAAADx9AAL4BAAAA8A/BNQdWCwBIAf5IuG3m7N4FAAAASInCSA+v0EgPr/K5CwAAAEgPr8hIAc5Ig8YLSbj///////8AAEwhxkgPr/JIAc5ID6/wSAHOSIPGC0whxkgPr/JIAc5ID6/wSAHOSIPGC0whxkgPr/JIAc5ID6/wSAHOSIPGC0whxkgPr/JIAc5ID6/wSAHOSIPGC0whxkgPr/JIAc5ID6/wSAHOSIPGC0whxkgPr/JIAc5ID6/wSI0EDkiDwAtMIcBIiQfGRxABww8fgAAAAABBVlNQSYn2SIn7SLj///////8AAEi6bebs3gUAAABJg8b/gH8QAA+ElAAAAEiLC0gPr8pIg8ELSCHBSIkLSMHpFvIPKsHyD1gFoxbt//IPEEsI8g8RDCTolG0KAPIPWAVUFu3/D1fJ8kkPKs7yD1kN3Bft//IPWcjyD1gMJGYPLg3TFu3/dgxIuAAAAAAAAABA6yVmDyjB8g8RDCToX20KAPIPEAwk8g9cyPIPEUsI8kgPLMBIg8ABSIPECFtBXsO5AQAAAPAPwQ13VAsASAHZSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwUgPr8pIg8ELSCHBSA+vykiDwQtIIcFID6/KSIPBC0ghwcZDEAHpev7//8zMzMzMzMzMzMzMSI0FOToLAEiLQAjDDx9AAEiLRzjDZi4PH4QAAAAAAJBVQVdBVlNQQYn3SYn+vygFAADoiVYKAEiJw0mLLkiJxzH26AkRAABIjQWaBgsASIPAEEiJA0iNBeQ5CwBIiUMoD1fADxFDMEjHQ0AAAAAASIlrSEiNe1C+QAAAALoBAAAA6Eqx/f+Jg1AEAADHg1QEAAAAAAAARIm7WAQAAA9XwA8Rg1wEAAAPEYNsBAAADxGDfAQAAA8Rg4wEAAAPEYOcBAAADxGDrAQAAA8Rg7wEAAAPEYPMBAAADxGD3AQAAA8Rg+wEAAAPEYP8BAAADxGDCAUAAOjHnAEASImDGAUAAImTIAUAAESJ+EiBhMNgBAAAAQAAAEiJ2EiDyAFID8hJiUYISItrKItFAKgBdUSJwYPJAfAPsU0AqAF1NkiLQyhIi0AISIXAdARIiVgwSIlDOEiLQyhIiVgIi3UAg+YCh3UAg/4IcxVIg8QIW0FeQV9dw0iJ7+iK/P3/68BIie9Ig8QIW0FeQV9d6XT9/f9mkEFWU1BIiftMi3coQYsGqAF1QYnBg8kB8EEPsQ6oAXUzSItDKEiLQAhIhcB0BEiJWDBIiUM4SItDKEiJWAhBizaD5gJBhzaD/ghzEkiDxAhbQV7DTIn36Bn8/f/rw0yJ90iDxAhbQV7pBv39/w8fQABVQVdBVlNQQYnXSIn1SYn+SIt/CEgPz0iDx/90BeiuAAAAvygFAADolFQKAEiJw0mLNkiLVQhID8pIg8L/SInHRIn56DgCAABIidhIg8gBSA/ISYlGCEyLcyhBiwaoAXVEicGDyQHwQQ+xDqgBdTZIi0MoSItACEiFwHQESIlYMEiJQzhIi0MoSIlYCEGLNoPmAkGHNoP+CHMVSIPECFtBXkFfXcNMiffoV/v9/+vATIn3SIPECFtBXkFfXelB/P3/Zi4PH4QAAAAAAA8fRAAAQVZTUEiJ+0yLdyhBiwaoAQ+FpAAAAInBg8kB8EEPsQ6oAQ+FkgAAAEiLQyhIi0AISItDOEiLSzBIhcB0BEiJSDBIi1MoSIPCCEiNcThIhclID0TySIkGQYs2g+YCQYc2g/4Ic2JIid/oYxAAAITAdBhIx0NIAAAAAEiLA0iJ30iDxAhbQV7/YAhMjXNATIn36ItiAQBIi0NISIXAdAXwg0AIBEyJ9+gVdQEASInfSIPECFtBXuk2EAAATIn36HL6/f/pYf///0yJ9+hj+/3/65RmLg8fhAAAAAAADx9EAABBVlNQSIn7Sb4AAAAAAAAAAUw5dgh1IUiLewhMOfd0EEgPz0iDx//o9P7//0yJcwhIg8QIW0Few0iJ30iDxAhbQV7pCf7//2YPH4QAAAAAAEiF/3QLi4dcBAAAhcB0BMMxwMOLh1gEAADDZg8fRAAAU0iF/3QtSIn7SGOXVAQAAEiF0nQiSI2DUAIAAEjB4gNIifdIicboFVcKAIuDVAQAAFvDMcBbw0iNQ1BIY5NQBAAASMHiA0iJ90iJxujvVgoAi4NQBAAAW8MPH4AAAAAAVUFXQVZBVFNBic9JidZJifRIifsx7TH26LMMAABIjQVEAgsASIPAEEiJA0iNBY41CwBIiUMoD1fADxFDMEjHQ0AAAAAATIljSEiNe1C+QAAAALoBAAAA6PSs/f+Jg1AEAABNhfZ0IkiNu1ACAABBi4ZUBAAAhcB0I0mNrlQEAABJjbZQAgAA6yXHg1QEAAAAAAAARIm7WAQAAOtASY12UEmNrlAEAABBi4ZQBAAASGPQSMHiA+gmVgoAi0UAiYNUBAAARIm7WAQAAEGLrlwEAACF7XUHQYuuWAQAAImrXAQAAA9XwA8Rg2AEAAAPEYNwBAAADxGDgAQAAA8Rg5AEAAAPEYOgBAAADxGDsAQAAA8Rg8AEAAAPEYPQBAAADxGD4AQAAA8Rg/AEAAAPEYMABQAASMeDEAUAAAAAAADo/pcBAEiJgxgFAACJkyAFAABEifhIgYTDYAQAAAEAAABNhfZ0QzHA6w1mDx+EAAAAAABIg8ACSYuMxmAEAABIhcl0CEgBjMNgBAAASIP4FnQXSYuMxmgEAABIhcl01EgBjMNoBAAA68pbQVxBXkFfXcOQU0iJ+0iNBa0ACwBIg8AQSIkHSIt/SEiF/3USSI17QOgMVwEASInfW+mTCwAAuPz////wD8FHCIPg/YP4BHXc6NxH///r1WYuDx+EAAAAAABTSIn7SI0FXQALAEiDwBBIiQdIi39ISIX/dRpIjXtA6LxWAQBIid/oRAsAAEiJ31vpK1AKALj8////8A/BRwiD4P2D+AR11OiER///681mkFVTUIn1SIn7SIPHQOgPXwEAiehIgYTDYAQAAAEAAABIg8QIW13DZi4PH4QAAAAAAEFWU1BIiftMi3dISIPHQOh8cQEATYX2dAhIg8QIW0Few0iJ30iDxAhbQV7poPv//0hjl1AEAABIjUdQww8fQABIY5dUBAAASI2HUAIAAMOQVUFXQVZBVUFUU0iB7EgDAABIifNJifxkSIsEJSgAAABIiYQkQAMAALo4AQAAMfbo7FIKAIuDWAQAAEGJRCR4i4NcBAAAQYlEJHxIi4NgBAAASYmEJIAAAABIi4NoBAAASYmEJIgAAABIi4NwBAAASYmEJJAAAABIi4N4BAAASYmEJJgAAABIi4OABAAASYmEJKAAAABIi4OIBAAASYmEJKgAAABIi4OQBAAASYmEJLAAAABIi4OYBAAASYmEJLgAAABIi4OgBAAASYmEJMAAAABIi4OoBAAASYmEJMgAAABIi4OwBAAASYmEJNAAAABIi4O4BAAASYmEJNgAAABIi4PABAAASYmEJOAAAABIi4PIBAAASYmEJOgAAABIi4PQBAAASYmEJPAAAABIi4PYBAAASYmEJPgAAABIi4PgBAAASYmEJAABAABIi4PoBAAASYmEJAgBAABIi4PwBAAASYmEJBABAABIi4P4BAAASYmEJBgBAABIi4MABQAASYmEJCABAABIi4MIBQAASYmEJCgBAABIi4MQBQAASYmEJDABAABIjWtASInv6PFcAQBIi1tISIXbD4TUAQAA8INDCARIie/od28BAEiLA0mJBCRMiWQkGEiNTCQgZg9XwGYPEUQkIItDCMH4Ao1Q/4P4ArgBAAAAD0PCSGPQSI18JBhIiVwkEEiJ3ugTBAAASIXAD4R5AwAASInFSYnVikAMhMAPhHYBAAA8Ag+EOwMAADwDSI1MJCAPhVMDAABIi0QkGEiDQBgBSINAaAGLRRhIjRSASI0UlSgAAABIAVQkIA9XwPJIDyrCZkkPbs1mD2IN/PmT/mYPXA3k/JP+Zg8o0WYPFdHyD1jR8g9ewvIPWEQkKPIPEUQkKItVEESLdRRBOdaJw0EPR95IiVQkCDnTD4aIAAAASI0ExQAAAABIAehMi3wkCEqLdPgoi0YIwfgCSGPQSQ+v1UiNfCQY6D8DAABIjUwkIEGNRwE5w3RPSItEJAhBicdB99dBAd9IjRzFMAAAAEgB62YPH4QAAAAAAItFGEiLNMOLRgjB+AJIY9BJD6/VSI18JBjo8gIAAEiNTCQgSIPDCEGDx/9100GNRv87RCQID4NEAgAASInrSIPDKEyNfCQYZg8fhAAAAAAAi0UYSIs0w4tGCMH4Akhj0EkPr9VMif/opAIAAEiNTCQgSIPDCEmDxv911en/AQAASInv6KhtAQDpQAIAAEiNfCRIuvgCAAAx9uhyTwoASI1cJCDrLmYuDx+EAAAAAACQSInCSIPi/kiLbNHwTIts0fhIg8D+SIlEJEhIhe0PhJkBAABMi30QQYtHCMH4Akxj8GYPV8BmDylEJDBIi3UYi0YIwfgCSGPQSQ+v1UiJVCQ4SItEJBhIg0AYAU0Pr/VIg0BgAUiDRCQgIGZJD27FZg9iBTn4k/5mD1wFIfuT/mYPKMhmDxXI8g9YyPIPEAX9CO3/8g9ewfIPWEQkKPIPEUQkKEiNfCQYSInZ6LABAABIhcB0CUiJxYB4DAB0EjHtRTHt6w5mLg8fhAAAAAAAkEmJ1UiJbCQwTIlsJDhIjXwkGEyJ/kyJ8kiJ2ehwAQAASIXAdAlIicOAeAwAdEJIhe1IjVwkIA+FDv///0iLRCRISIP4AQ+GpgAAAEiNTCRQqAEPhNj+//9Ii0wkUOnO/v//Zi4PH4QAAAAAAA8fQABJidZIhe10QUiLRCRIui8AAACoAXQFSItUJFhIicFI0elIOdF0M0iNVCRQqAF0BUiLVCRQSMHhBGYPKEQkMGYPEQQKSINEJEgCTYn1SIndSI1cJCDpgf7//0iNfCRISI10JDDoWAMAAOvfSI18JBhIie5MieroRgIAAOsTSItEJEioAXQKSIt8JFDoAUoKAEiLRCQYSItMJCBIAUgI8g8QRCQo8kgPLMhIicryD1wF9Qjt/0jB+j/ySA8s8Egh1kgJzkgBcBC4/P///0iLfCQQ8A/BRwiD4P2D+AR0KGRIiwQlKAAAAEg7hCRAAwAAdRxMieBIgcRIAwAAW0FcQV1BXkFfXcPo9kD//+vR6M9LCgBmLg8fhAAAAAAADx9EAABIifBAinYMQID+AXV9Zg9vBTv2k/5mDygNI/mT/vIPEBULB+3/Zi4PH4QAAAAAAJBIizdIg0YYAUiLN0iDRlgBSIMBIGZID27aZg9i2GYPXNlmDyjjZg8V4/IPWONmDyja8g9e3PIPWFkI8g8RWQhIi0AYi3AIwf4CSGP2SA+v1g+2cAxAgP4BdKZAgP4FckBED7bGRo0Mxfj///9EicDB4AUF4PP//0CA/oJED0PISWPxSIsHSINAGAFIiwdIg0AgAYP+QHcsSIsHSIPAKOtpQID+BA+FugAAAEiLN0iDRhgBSIs3SINGUAFIizBIg8Yo60pBgfmAAAAAdwlIiwdIg8Aw6zRBgfkAAQAAdwlIiwdIg8A46yJBgfkAAgAAdwlIiwdIg8BA6xBBgfkABAAAdwtIiwdIg8BISIMAAUgBMWZID27GZg9vDQP1k/5mD2LBZg8oFef3k/5mD1zCZg8o2GYPFdjyD1jYZkgPbsJmD2LBZg9cwmYPKMhmDxXI8g9YyPIPXtnyD1hZCPIPEVkIMcAx0sNmLg8fhAAAAAAAkFVBV0FWQVVBVFNQSYnWSYn9SIsHSINAGAFIiwdIg0BwAUiDRwhAZkgPbsJmD2IFffST/mYPXAVl95P+SYn3Zg8oyGYPFcjyD1jI8g8QBZ4F7f/yD17B8g9YRxDyDxFHEIB+DQAPtl4OD7ZuD3Q3QDjrdHNIweUDSMHjAw8fRAAASYt0HxCLRgjB+AJIY9BJD6/WTInv6Gb///9Ig8MISDnddd3rQUA463Q8TY1lCEjB5QNIweMDZi4PH4QAAAAAAEmLdB8Qi0YIwfgCSGPQSQ+v1kyJ70yJ4eiD/f//SIPDCEg53XXaSIPECFtBXEFdQV5BX13DZi4PH4QAAAAAAJBVQVdBVkFVQVRTUEmJ/kiLH/bDAXUOSYn3SY1uCL9eAAAA6xtJi34QSAH/SIn4SMHoPA+F/QAAAEmJ90mLbghJid1J0e1IiTwkSMHnBOheRgoATYnsScHkBEEPEAdCDxEEIEiD+wIPgoYAAABJjU3/RInug+YDSIP5A3MEMcnrQEmD5fxIjVAwMclmDx9EAAAPEEUADxFC0A8QRRAPEULgDxBFIA8RQvAPEEUwDxECSIPFQEiDwQRIg8JASTnNddBIhfZ0LUjB4QRIAcFIweYEMdJmLg8fhAAAAAAADx9AAA8QRBUADxEEEUiDwhBIOdZ17kkBxPbDAXQSSYt+CEiJw+jKRQoASInYSYseSYlGCEiLBCRJiUYQSIPLAUiDwwJJiR5MieBIg8QIW0FcQV1BXkFfXcPohkoKAMzMzMzMzEFWU1BIjQXF9QoASIPAEEiJB0yNNecoCwBMiXcIQIh3EA9XwA8RRxiF9nRDSIn7QYsGqAF1QYnBg8kB8EEPsQ6oAXUzSItDCEiLQAhIhcB0CEiJQxhIiVggSItDCEiJWAhBizaD5gJBhzaD/ghzFkiDxAhbQV7DSI09gigLAOgx7P3/679IjT10KAsASIPECFtBXuka7f3/Dx+EAAAAAABBV0FWQVRTSIPsOGRIiwQlKAAAAEiJRCQwSI0FEPUKAEiDwBBIiQeAfxAAD4TlAAAASIn7D1fADylEJBBIx0QkIAAAAABMi3cIQYsGqAEPhREBAACJwYPJAfBBD7EOqAEPhf8AAABIi0MgSIlEJAhIi0sYSIXJdBNIiUEgSIXAdFpIi0sYSIlIGOtcSIXAdEtMjXwkEEyNZCQI6yAPH0AASIkBSINEJBgISItEJAhIi0AgSIlEJAhIhcB0H4B4EAB1v0iLTCQYSDtMJCB10kyJ/0yJ5ugXBAAA685Ii0MISItLGEiJSAhBizaD5gJBhzaD/ghzfUiLXCQQTIt0JBhMOfN1RUiF23QNSIlcJBhIid/o2kMKAGRIiwQlKAAAAEg7RCQwdVlIg8Q4W0FcQV5BX8NmLg8fhAAAAAAADx9AAEiDwwhMOfN0EEiLO0iF/3TvSIsH/1AI6+dIi1wkEEiF23Wm67FMiffop+r9/+n0/v//TIn36Jjr/f/pdv///+i8RQoAZi4PH4QAAAAAAGaQU0iJ++hn/v//SInfW+lOQwoAZi4PH4QAAAAAAA8fQACwAYB/EAB0AcNIi0cISItACEiFwA+UwMMPH4QAAAAAAEFWU1BIhf90XkiJ+4B/EAB0EEiLA0iJ30iDxAhbQV7/YAhMi3MISYtGCEiFwHTjQYsGqAF1UYnBg8kB8EEPsQ6oAXVDSYtGCEiFwHQiSIlDGEiJWCBJiV4IQYs2g+YCQYc2g/4IcypIg8QIW0Few0GLNoPmAkGHNoP+CHKVTIn36L3q/f/ri0yJ9+i16f3/67NMifdIg8QIW0Fe6aLq/f9BV0FWU0iD7BBIiftkSIsEJSgAAABIiUQkCA9XwA8RB0jHRxAAAAAATI09wSULAEGLB6gBD4WBAAAAicGDyQHwQQ+xD6gBdXNJi0cISIkEJEiFwHQ7SYnm6yJmDx9EAABIid9MifboFQMAAEiLBCRIi0AYSIkEJEiFwHQUSItLCEg7SxB02kiJAUiDQwgI69tBizeD5gJBhzeD/ghzLmRIiwQlKAAAAEg7RCQIdSxIidhIg8QQW0FeQV/DSI09LiULAOjd6P3/6Xz///9IjT0dJQsA6Mrp/f/rxOjxQwoAkFVBV0FWU1CAfxAAdA5IifNIhfZ0C4B7EAB0CkUx/+tuQbcB62lIif1Mi3cIQYsGqAF1aYnBg8kB8EEPsQ6oAXVbSItFCEiLQAhBtwFIhcB0LzHJugEAAAAPH4QAAAAAAEg52HQUSDnoD7bJD0TKSItAGEiFwHXp6wf2wQFBD5THQYs2g+YCQYc2g/4IcxhEifhIg8QIW0FeQV9dw0yJ9+gg6P3/65tMiffoFOn9/+veQVdBVlNIg+wQSIn7ZEiLBCUoAAAASIlEJAgPV8APEQdIx0cQAAAAAIB+EAB0e0mJ90yLdghBiwaoAQ+FhgAAAInBg8kB8EEPsQ6oAXV4SYtHIEiJBCRIhcB0QEmJ5+shSInfTIn+6IUBAAAPH0QAAEiLBCRIi0AgSIkEJEiFwHQagHgQAHXpSItLCEg7SxB0z0iJAUiDQwgI69VBizaD5gJBhzaD/ghzKmRIiwQlKAAAAEg7RCQIdSRIidhIg8QQW0FeQV/DTIn36Ebn/f/pe////0yJ9+g36P3/68zoXkIKAMzMzMzMzMzMzMzMzMzMVUFXQVZBVUFUU1BJif1MizdMi38ITSn3TIn9SMH9A0iNTQFIichIweg9D4W+AAAASLj/////////H02LZRBNKfRMieJIwfoDScH8Akk5zEwPQuFIuf////////8PSDnKTA9D4E2F5HQjSIk0JEk5xA+HgAAAAEqNPOUAAAAA6F0/CgBIicNIizQk6wIx206NJONIiwZIiQTrSI0s60iDxQhNhf9+EkiJ30yJ9kyJ+ujMQwoATYt1AEmJXQBJiW0ITYllEE2F9nQWTIn3SIPECFtBXEFdQV5BX13pIT8KAEiDxAhbQVxBXUFeQV9dw0yJ7+gaRAoA6PVDCgDMzMzMzFVBV0FWQVVBVFNQSYn9TIs3TIt/CE0p90yJ/UjB/QNIjU0BSInISMHoPQ+FvgAAAEi4/////////x9Ni2UQTSn0TIniSMH6A0nB/AJJOcxMD0LhSLn/////////D0g5ykwPQ+BNheR0I0iJNCRJOcQPh4AAAABKjTzlAAAAAOhdPgoASInDSIs0JOsCMdtOjSTjSIsGSIkE60iNLOtIg8UITYX/fhJIid9MifZMifrozEIKAE2LdQBJiV0ASYltCE2JZRBNhfZ0FkyJ90iDxAhbQVxBXUFeQV9d6SE+CgBIg8QIW0FcQV1BXkFfXcNMie/oGkMKAOj1QgoAzMzMzMxIuauqqqqqqqqqSIn4SPfhSNHqSI0ElQAAAABIjQxSSCnPdB5IicFIg/8BdQZIg8kC6wRIg8kDSIPABECE9kgPRMHDZi4PH4QAAAAAAA8fAEFXQVZTSYnWSI0EtQAAAABIjRRJSDnQdghFMf/pxwEAAEyNFDdIg/4DcmhMjRw3SYPD/U2J90k5+3ZbDx9EAACLBw/IicLB6ghIicZIwe4aQQ+2HDBBiB+JxsHuFIPmP0EPthwwQYhfAcHoDoPgP0EPtgQAQYhHAoPiP0EPtgQQQYhHA0mDxwRIg8cDTDnfcq/rA02J90kp+kmD+gMPhxQBAABMAfFMKflIjQVgse3/SmMUkEgBwv/iSIP5Ag+CVv///w+2B0iJwkjB6gJBihQQQYgXweAEg+AwQYoEAEGIRwFFhMkPhPYAAABIg+H+SIP5Ag+EIP///2ZBx0cCPT3prAAAAEiD+QMPggr///8PtwdmwcAID7fASInCSMHqCkGKFBBBiBeJwsHqBIPiP0GKFBBBiFcBg+APQYoEgEGIRwJFhMkPhJAAAABIg/kDD4TE/v//QcZHAz3rVUiD+QQPgrP+//8PtgcPt08BZsHBCA+30cHpBkiJxkjB7gJBihwwQYgfg+ADSMHgEEgJ0EjB6AxBigQAQYhHAYPhP0GKBAhBiEcCg+I/QYoEEEGIRwNJg8cE6y5IjTWW23P/SI0N9SGv/r8DAAAAuqwAAABNidAxwOiniP3/6wpJg8cD6wRJg8cCTSn3TIn4W0FeQV/DzMzMzMzMzMzMzMzMzMzMQVdBVlNIg+xQSYnPZEiLBCUoAAAASIlEJEhIhf90dw9XwA8pRCQwDylEJCAPKUQkEA8pBCRMjUQkPEiNTCQ9TI0N6rft/0iJ+A8fgAAAAABAD7bfQQ+3HFlmiVn9SIPB/kjB6AhIgf//AAAASInHd99IjUH/gHn/MEgPRMFIiQQkSSnATIlEJAhIiedMifnofCYAAOtUSYNHEAVJi1cYTIn4SCnQSAUgBAAASIP4BXYRxkIEKccCKG5pbEmDRxgF6yhNjXcgTCnySYs/TIn2Qf9XCE2JdxhJiz9IjTXOv5r/ugUAAABB/1cIZEiLBCUoAAAASDtEJEh1DLABSIPEUFtBXkFfw+j1PAoADx9EAABVQVdBVkFVQVRTSIPsWEmJzkGJ10mJ9Yn9ZEiLBCUoAAAASIlEJFBIiTQkiVQkCGYPV8BmDylEJEBmDylEJDBmDylEJCBmDylEJBBBD7bFSI0N/q7t/0hjBIFIAcj/4EAPvsUPV8DyDyrASInnTIn26JtkAACJw+kuAQAASI1cJCBIiVwkEEAPvv3rWUyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhX4BAABMifdIid66IAAAAOgvLwAAQA++1b4BAAAATIn36B4vAADp0QAAAEiNXCQgSIlcJBBAD7b9SIne6MO7AABJicTpjwAAAEyNZCRMTInjieiQiemA4QeAyTCIS/9Ig8P/wOgDQID9B4nFd+brY0iNRCRKQA+2zUiNFfS17f8PtwxKZolMJEqA+TBIjVwkS0gPRdhMjWQkTOs3TI1kJExIjQXSGaH/TInjZg8fhAAAAAAAQA+2zYnKg+IPD7YUAohT/0iDw/+JzUDA7QSA+Q934UiJXCQQSSncTIlkJBhB98UA/wAAdDpIjXwkEEyJ7kSJ+kyJ8ehYJAAAswFkSIsEJSgAAABIO0QkUA+FlwAAAInYSIPEWFtBXEFdQV5BX13DswFNheR01EiLbCQQTQFmEEmLVhhMifBIKdBIBSAEAABMOeB2FEiJ10iJ7kyJ4ugePQoATQFmGOuiTY1+IEwp+kmLPkyJ/kH/VghNiX4YSYs+SInuTIniQf9WCOl7////QA++1b4BAAAATIn36LAtAABMifdIid66IAAAAOigLQAA6VP////oljoKAGYPH0QAAFVBV0FWQVVBVFNIg+xYSYnOQYnXSYn1if1kSIsEJSgAAABIiUQkUEiJNCSJVCQIZg9XwGYPKUQkQGYPKUQkMGYPKUQkIGYPKUQkEEEPtsVIjQ3erO3/SGMEgUgByP/gQA++xQ9XwPIPKsBIiedMifboO2IAAInD6S4BAABIjVwkIEiJXCQQQA++/etZTInrSMHrIDHATYXtSA9I2EiD6wFID0LYQffFAAEAAA+FfgEAAEyJ90iJ3rogAAAA6M8sAABAD77VvgEAAABMiffoviwAAOnRAAAASI1cJCBIiVwkEEAPtv1Iid7oY7kAAEmJxOmPAAAATI1kJExMieOJ6JCJ6YDhB4DJMIhL/0iDw//A6ANAgP0HicV35utjSI1EJEpAD7bNSI0VlLPt/w+3DEpmiUwkSoD5MEiNXCRLSA9F2EyNZCRM6zdMjWQkTEiNBXIXof9MieNmDx+EAAAAAABAD7bNicqD4g8PthQCiFP/SIPD/4nNQMDtBID5D3fhSIlcJBBJKdxMiWQkGEH3xQD/AAB0OkiNfCQQTInuRIn6TInx6PghAACzAWRIiwQlKAAAAEg7RCRQD4WXAAAAidhIg8RYW0FcQV1BXkFfXcOzAU2F5HTUSItsJBBNAWYQSYtWGEyJ8Egp0EgFIAQAAEw54HYUSInXSInuTIni6L46CgBNAWYY66JNjX4gTCn6SYs+TIn+Qf9WCE2JfhhJiz5Iie5MieJB/1YI6Xv///9AD77VvgEAAABMiffoUCsAAEyJ90iJ3rogAAAA6EArAADpU////+g2OAoAZg8fRAAAVUFXQVZBVUFUU0iD7FhJic5BiddJifWJ/WRIiwQlKAAAAEiJRCRQSIk0JIlUJAhmD1fAZg8pRCRAZg8pRCQwZg8pRCQgZg8pRCQQQQ+2xUiNDb6q7f9IYwSBSAHI/+BAD7bFD1fA8g8qwEiJ50yJ9ujbXwAAicPpHgEAAEiNXCQgSIlcJBBAD7b9SIne6F63AABJicTp2gAAAEyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhWABAABMifdIid66IAAAAOhhKgAAQA++1b4BAAAATIn36FAqAADpswAAAEyNZCRMTInjieiQiemA4QeAyTCIS/9Ig8P/wOgDQID9B4nFd+brY0iNRCRKQA+2zUiNFUSx7f8PtwxKZolMJEqA+TBIjVwkS0gPRdhMjWQkTOs3TI1kJExIjQUiFaH/TInjZg8fhAAAAAAAQA+2zYnKg+IPD7YUAohT/0iDw/+JzUDA7QSA+Q934UiJXCQQSSncTIlkJBhB98UA/wAAdDpIjXwkEEyJ7kSJ+kyJ8eioHwAAswFkSIsEJSgAAABIO0QkUA+FlwAAAInYSIPEWFtBXEFdQV5BX13DswFNheR01EiLbCQQTQFmEEmLVhhMifBIKdBIBSAEAABMOeB2FEiJ10iJ7kyJ4uhuOAoATQFmGOuiTY1+IEwp+kmLPkyJ/kH/VghNiX4YSYs+SInuTIniQf9WCOl7////QA++1b4BAAAATIn36AApAABMifdIid66IAAAAOjwKAAA6VP////o5jUKAGYPH0QAAFVBV0FWQVVBVFNIg+xYSYnOQYnXSYn1if1kSIsEJSgAAABIiUQkUEiJNCSJVCQIZg9XwGYPKUQkQGYPKUQkMGYPKUQkIGYPKUQkEEEPtsVIjQ2uqO3/SGMEgUgByP/gD7/FD1fA8g8qwEiJ50yJ9uiMXQAAicPpPgEAAEiNXCQgSIlcJBAPv/3rWEyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhY8BAABMifdIid66IAAAAOghKAAAQA++1b4BAAAATIn36BAoAADp4gAAAEiNXCQgSIlcJBAPt/1Iid7otrQAAEmJxOmhAAAATI1kJExMieNmDx9EAAAPt8WJwYDhB4DJMIhL/0iDw/+JxcHtA2aD+Ad34+tvTI1kJExIjUQkTUiNDeCu7f8Pt9UPtvIPtzRxZolw/UiDwP6J1cHtCIH6/wAAAHfhgHj/MEiNWP9ID0TY6zFMjWQkTEiNBa0Sof9MieMPH0AAD7fNicqD4g8PthQCiFP/SIPD/4nNwe0EZoP5D3fiSIlcJBBJKdxMiWQkGEH3xQD/AAB0OkiNfCQQTInuRIn6TInx6DkdAACzAWRIiwQlKAAAAEg7RCRQD4WXAAAAidhIg8RYW0FcQV1BXkFfXcOzAU2F5HTUSItsJBBNAWYQSYtWGEyJ8Egp0EgFIAQAAEw54HYUSInXSInuTIni6P81CgBNAWYY66JNjX4gTCn6SYs+TIn+Qf9WCE2JfhhJiz5Iie5MieJB/1YI6Xv///9AD77VvgEAAABMiffokSYAAEyJ90iJ3rogAAAA6IEmAADpU////+h3MwoADx+AAAAAAFVBV0FWQVVBVFNIg+xYSYnOQYnXSYn1if1kSIsEJSgAAABIiUQkUEiJNCSJVCQIZg9XwGYPKUQkQGYPKUQkMGYPKUQkIGYPKUQkEEEPtsVIjQ1+pu3/SGMEgUgByP/gD7fFD1fA8g8qwEiJ50yJ9ugcWwAAicPpLgEAAEiNXCQgSIlcJBAPt/1Iid7ooLIAAEmJxOnrAAAATInrSMHrIDHATYXtSA9I2EiD6wFID0LYQffFAAEAAA+FcQEAAEyJ90iJ3rogAAAA6KMlAABAD77VvgEAAABMiffokiUAAOnEAAAATI1kJExMieMPH0QAAA+3xYnBgOEHgMkwiEv/SIPD/4nFwe0DZoP4B3fj629MjWQkTEiNRCRNSI0NgKzt/w+31Q+28g+3NHFmiXD9SIPA/onVwe0Igfr/AAAAd+GAeP8wSI1Y/0gPRNjrMUyNZCRMSI0FTRCh/0yJ4w8fQAAPt82JyoPiDw+2FAKIU/9Ig8P/ic3B7QRmg/kPd+JIiVwkEEkp3EyJZCQYQffFAP8AAHQ6SI18JBBMie5EifpMifHo2RoAALMBZEiLBCUoAAAASDtEJFAPhZcAAACJ2EiDxFhbQVxBXUFeQV9dw7MBTYXkdNRIi2wkEE0BZhBJi1YYTInwSCnQSAUgBAAATDngdhRIiddIie5MieLonzMKAE0BZhjrok2NfiBMKfpJiz5Mif5B/1YITYl+GEmLPkiJ7kyJ4kH/Vgjpe////0APvtW+AQAAAEyJ9+gxJAAATIn3SIneuiAAAADoISQAAOlT////6BcxCgAPH4AAAAAAVUFXQVZBVUFUU0iD7FhJic5BiddJifWJ/WRIiwQlKAAAAEiJRCRQSIk0JIlUJAhmD1fAZg8pRCRAZg8pRCQwZg8pRCQgZg8pRCQQQQ+2xUiNDV6k7f9IYwSBSAHI/+APV8DyDyrFSInnTIn26L9YAACJw+k/AQAASI1cJCBIiVwkEInvSIne6ESwAADrX0yJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhYkBAABMifdIid66IAAAAOhNIwAAQA++1b4BAAAATIn36DwjAADp3AAAAEiNXCQgSIlcJBCJ70iJ3ugzrgAASYnE6ZwAAABMjWQkTEyJ44nokInpgOEHgMkwiEv/SIPD/8HoA4P9B4nFd+frcUyNZCRMSI1EJE1IjQ0Uqu3/Dx9AAEAPttUPtxRRZolQ/UiDwP6J6sHqCIH9/wAAAInVd+GAeP8wSI1Y/0gPRNjrL0yNZCRMSI0F3Q2h/0yJ4w8fQACJ6YPhDw+2DAGIS/9Ig8P/ienB6QSD/Q+JzXfkSIlcJBBJKdxMiWQkGEH3xQD/AAB0OkiNfCQQTInuRIn6TInx6GsYAACzAWRIiwQlKAAAAEg7RCRQD4WXAAAAidhIg8RYW0FcQV1BXkFfXcOzAU2F5HTUSItsJBBNAWYQSYtWGEyJ8Egp0EgFIAQAAEw54HYUSInXSInuTIni6DExCgBNAWYY66JNjX4gTCn6SYs+TIn+Qf9WCE2JfhhJiz5Iie5MieJB/1YI6Xv///9AD77VvgEAAABMiffowyEAAEyJ90iJ3rogAAAA6LMhAADpU////+ipLgoAZg8fhAAAAAAAVUFXQVZBVUFUU0iD7FhJic5BiddJifWJ/WRIiwQlKAAAAEiJRCRQSIk0JIlUJAhmD1fAZg8pRCRAZg8pRCQwZg8pRCQgZg8pRCQQQQ+2xUiNDS6i7f9IYwSBSAHI/+CJ6A9XwPJIDyrASInnTIn26ExWAACJw+ksAQAASI1cJCBIiVwkEInvSIne6CGsAABJicTp6gAAAEyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhXABAABMifdIid66IAAAAOjUIAAAQA++1b4BAAAATIn36MMgAADpwwAAAEyNZCRMTInjiegPH0AAiemA4QeAyTCIS/9Ig8P/wegDg/0HicV35+txTI1kJExIjUQkTUiNDbSn7f8PH0AAQA+21Q+3FFFmiVD9SIPA/onqweoIgf3/AAAAidV34YB4/zBIjVj/SA9E2OsvTI1kJExIjQV9C6H/TInjDx9AAInpg+EPD7YMAYhL/0iDw/+J6cHpBIP9D4nNd+RIiVwkEEkp3EyJZCQYQffFAP8AAHQ6SI18JBBMie5EifpMifHoCxYAALMBZEiLBCUoAAAASDtEJFAPhZcAAACJ2EiDxFhbQVxBXUFeQV9dw7MBTYXkdNRIi2wkEE0BZhBJi1YYTInwSCnQSAUgBAAATDngdhRIiddIie5MieLo0S4KAE0BZhjrok2NfiBMKfpJiz5Mif5B/1YITYl+GEmLPkiJ7kyJ4kH/Vgjpe////0APvtW+AQAAAEyJ9+hjHwAATIn3SIneuiAAAADoUx8AAOlT////6EksCgBmDx+EAAAAAABVQVdBVkFVQVRTSIPsWEmJzkGJ10mJ9UiJ/WRIiwQlKAAAAEiJRCRQSIk0JIlUJAhmD1fAZg8pRCRAZg8pRCQwZg8pRCQgZg8pRCQQQQ+2xUiNDQ2g7f9IYwSBSAHI/+APV8DySA8qxUiJ50yJ9ujtUwAAicPpXgEAAEiNXCQgSIlcJBBIie9Iid7osawAAOtgTInrSMHrIDHATYXtSA9I2EiD6wFID0LYQffFAAEAAA+FpwEAAEyJ90iJ3rogAAAA6HoeAABAD77VvgEAAABMiffoaR4AAOn6AAAASI1cJCBIiVwkEEiJ70iJ3ugvqwAASYnE6bkAAABMjWQkTEyJ40iJ6GYuDx+EAAAAAABmkInpgOEHgMkwiEv/SIPD/0jB6ANIg/0HSInFd+Trf0yNZCRMSI1EJE1IjQ0xpe3/SInqZi4PH4QAAAAAAA8fQABAD7b1D7c0cWaJcP1Ig8D+SMHqCEiB/f8AAABIidV34IB4/zBIjVj/SA9E2OsvTI1kJExIjQXsCKH/TInjSInpieqD4g8PthQCiFP/SIPD/0jB6QRIg/0PSInNd+NIiVwkEEkp3EyJZCQYQffFAP8AAHQ6SI18JBBMie5EifpMifHoehMAALMBZEiLBCUoAAAASDtEJFAPhZcAAACJ2EiDxFhbQVxBXUFeQV9dw7MBTYXkdNRIi2wkEE0BZhBJi1YYTInwSCnQSAUgBAAATDngdhRIiddIie5MieLoQCwKAE0BZhjrok2NfiBMKfpJiz5Mif5B/1YITYl+GEmLPkiJ7kyJ4kH/Vgjpe////0APvtW+AQAAAEyJ9+jSHAAATIn3SIneuiAAAADowhwAAOlT////6LgpCgAPH4QAAAAAAFVBV0FWQVVBVFNIg+xYSYnOQYnXSYn1SIn9ZEiLBCUoAAAASIlEJFBIiTQkiVQkCGYPV8BmDylEJEBmDylEJDBmDylEJCBmDylEJBBBD7bFSI0NvZ3t/0hjBIFIAcj/4GZID27NZg9iDdPTk/5mD1wNu9aT/mYPKMFmDxXB8g9YwUiJ50yJ9uhEUQAAicPpRQEAAEiNXCQgSIlcJBBIie9Iid7o6KgAAEmJxOkCAQAATInrSMHrIDHATYXtSA9I2EiD6wFID0LYQffFAAEAAA+FiAEAAEyJ90iJ3rogAAAA6MsbAABAD77VvgEAAABMiffouhsAAOnbAAAATI1kJExMieNIiehmLg8fhAAAAAAAiemA4QeAyTCIS/9Ig8P/SMHoA0iD/QdIicV35Ot/TI1kJExIjUQkTUiNDaGi7f9IiepmLg8fhAAAAAAADx9AAEAPtvUPtzRxZolw/UiDwP5IweoISIH9/wAAAEiJ1XfggHj/MEiNWP9ID0TY6y9MjWQkTEiNBVwGof9MieNIiemJ6oPiDw+2FAKIU/9Ig8P/SMHpBEiD/Q9Iic1340iJXCQQSSncTIlkJBhB98UA/wAAdDpIjXwkEEyJ7kSJ+kyJ8ejqEAAAswFkSIsEJSgAAABIO0QkUA+FlwAAAInYSIPEWFtBXEFdQV5BX13DswFNheR01EiLbCQQTQFmEEmLVhhMifBIKdBIBSAEAABMOeB2FEiJ10iJ7kyJ4uiwKQoATQFmGOuiTY1+IEwp+kmLPkyJ/kH/VghNiX4YSYs+SInuTIniQf9WCOl7////QA++1b4BAAAATIn36EIaAABMifdIid66IAAAAOgyGgAA6VP////oKCcKAA8fhAAAAAAAVUFXQVZBVUFUU0iD7FhJic5BiddJifVIif1kSIsEJSgAAABIiUQkUEiJNCSJVCQIZg9XwGYPKUQkQGYPKUQkMGYPKUQkIGYPKUQkEEEPtsVIjQ1tm+3/SGMEgUgByP/gD1fA8kgPKsVIiedMifbozU4AAInD6V4BAABIjVwkIEiJXCQQSInvSIne6JGnAADrYEyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhacBAABMifdIid66IAAAAOhaGQAAQA++1b4BAAAATIn36EkZAADp+gAAAEiNXCQgSIlcJBBIie9Iid7oD6YAAEmJxOm5AAAATI1kJExMieNIiehmLg8fhAAAAAAAZpCJ6YDhB4DJMIhL/0iDw/9IwegDSIP9B0iJxXfk639MjWQkTEiNRCRNSI0NEaDt/0iJ6mYuDx+EAAAAAAAPH0AAQA+29Q+3NHFmiXD9SIPA/kjB6ghIgf3/AAAASInVd+CAeP8wSI1Y/0gPRNjrL0yNZCRMSI0FzAOh/0yJ40iJ6Ynqg+IPD7YUAohT/0iDw/9IwekESIP9D0iJzXfjSIlcJBBJKdxMiWQkGEH3xQD/AAB0OkiNfCQQTInuRIn6TInx6FoOAACzAWRIiwQlKAAAAEg7RCRQD4WXAAAAidhIg8RYW0FcQV1BXkFfXcOzAU2F5HTUSItsJBBNAWYQSYtWGEyJ8Egp0EgFIAQAAEw54HYUSInXSInuTIni6CAnCgBNAWYY66JNjX4gTCn6SYs+TIn+Qf9WCE2JfhhJiz5Iie5MieJB/1YI6Xv///9AD77VvgEAAABMiffoshcAAEyJ90iJ3rogAAAA6KIXAADpU////+iYJAoADx+EAAAAAABVQVdBVkFVQVRTSIPsWEmJzkGJ10mJ9UiJ/WRIiwQlKAAAAEiJRCRQSIk0JIlUJAhmD1fAZg8pRCRAZg8pRCQwZg8pRCQgZg8pRCQQQQ+2xUiNDR2Z7f9IYwSBSAHI/+BmSA9uzWYPYg2zzpP+Zg9cDZvRk/5mDyjBZg8VwfIPWMFIiedMifboJEwAAInD6UUBAABIjVwkIEiJXCQQSInvSIne6MijAABJicTpAgEAAEyJ60jB6yAxwE2F7UgPSNhIg+sBSA9C2EH3xQABAAAPhYgBAABMifdIid66IAAAAOirFgAAQA++1b4BAAAATIn36JoWAADp2wAAAEyNZCRMTInjSInoZi4PH4QAAAAAAInpgOEHgMkwiEv/SIPD/0jB6ANIg/0HSInFd+Trf0yNZCRMSI1EJE1IjQ2Bne3/SInqZi4PH4QAAAAAAA8fQABAD7b1D7c0cWaJcP1Ig8D+SMHqCEiB/f8AAABIidV34IB4/zBIjVj/SA9E2OsvTI1kJExIjQU8AaH/TInjSInpieqD4g8PthQCiFP/SIPD/0jB6QRIg/0PSInNd+NIiVwkEEkp3EyJZCQYQffFAP8AAHQ6SI18JBBMie5EifpMifHoygsAALMBZEiLBCUoAAAASDtEJFAPhZcAAACJ2EiDxFhbQVxBXUFeQV9dw7MBTYXkdNRIi2wkEE0BZhBJi1YYTInwSCnQSAUgBAAATDngdhRIiddIie5MieLokCQKAE0BZhjrok2NfiBMKfpJiz5Mif5B/1YITYl+GEmLPkiJ7kyJ4kH/Vgjpe////0APvtW+AQAAAEyJ9+giFQAATIn3SIneuiAAAADoEhUAAOlT////6AgiCgAPH4QAAAAAAFVBV0FWQVVBVFNIg+x4TYnHSYn0SIn7ZEiLBCUoAAAASIlEJHBIiVQkIIlMJCgPV8APKUQkYA8pRCRQDylEJEAPKUQkMA+2wkiNNdWW7f9IYwSGSAHw/+BIid9MiebofRUAAEiNfCQgTIn+6LBJAACJw+nPAQAATYXkTIl8JBhIiVQkEIlMJAwPiN0BAABMiebp3QEAAEiJ1UjB7SAxwEiF0kgPSOhIg+0BSA9C6PfCAAEAAA+FugIAAEyJ/0iJ7rogAAAA6DYUAAAPvtO+AQAAAEyJ/+gmFAAA6WUBAACJTCQMSIlUJBBMjWwkbEiNbCRtTI01R53t/w8fgAAAAAC6ZAAAAEiJ30yJ5jHJ6A4WAABJidRIa8hkSCnLQQ+3DF5miU39SIPF/kiJw0gJ0HXPTI11/4B9/zBMD0T1TSn1TIlsJDhMiXQkMOmuAQAATI10JGxFMe1mDx+EAAAAAABMieaJ2CQHDDBBiEb/TA+s4wNJg8b/ScHsA0mDxQFIhdt13UiD/gd31+mOAAAATI1sJGxIjUQkbUiNLZGa7f+QTInnD7bzD7d0dQBmiXD9SIPA/kwPrOMIScHsCEiF23XfSIH//wAAAHfWTI1w/4B4/zBMD0TwTIl0JDBNKfXrQUyNdCRsRTHtSI09R/6g/5BMieWJ3oPmDw+2BD5BiEb/TA+s4wRJg8b/ScHsBEmDxQFIhdt12kiD/Q931EyJdCQwTIlsJDj3wgD/AAAPhOAAAABIjXwkMEiJ1onKTIn56MwIAACzAWRIiwQlKAAAAEg7RCRwD4U/AQAAidhIg8R4W0FcQV1BXkFfXcMx9kj320wZ5kyNbCRsTI18JG5IjS28m+3/Zi4PH4QAAAAAAGaQumQAAABIid8xyeiBFAAASInWSGvIZEgpyw+3TF0AZkGJT/xJg8f+SInDSAnQddFNjXf+QYpH/kmNT/88MEwPRPFNheR5FTHJPDAPlMFOjTQ5SYPG/ULGRDn9LU0p9UyJbCQ4TIl0JDBMi3wkGEiLVCQQi0wkDPfCAP8AAA+FIP///7MBTYXtD4Qp////TQFvEEmLVxhMifhIKdBIBSAEAABMOeh2F0iJ10yJ9kyJ6ujsIAoATQFvGOn5/v//SY1vIEgp6kmLP0iJ7kH/VwhJiW8YSYs/TIn2TInqQf9XCOnS/v//D77TvgEAAABMif/ofBEAAEyJ/0iJ7rogAAAA6GwRAADpq/7//+hiHgoAZpBVQVdBVkFVQVRTSIPseE2JxkmJ10iJ/WRIiwQlKAAAAEiJRCRwSIlUJCCJTCQoZg9XwGYPKUQkYGYPKUQkUGYPKUQkQGYPKUQkMEEPtsdIjRVvk+3/SGMEgkgB0P/gZkgPbsVmD28NhciT/mYPYsFmDygVacuT/mYPXMJmDyjYZg8V2PIPWNhmDylcJBBmSA9u3mYPYtlmD1zaZg8ow2YPFcPyD1jDv0AAAADo0DAKAPIPWEQkEEiNfCQgTIn26L1FAACJxel/AgAAiUwkDEyJdCQQTI1sJGxIjVwkbUyNNbyZ7f9mLg8fhAAAAAAAZpC6ZAAAAEiJ7zHJ6IESAABIidZIa8hkSCnNQQ+3DG5miUv9SIPD/kiJxUgJ0HXSTI1j/4B7/zBMD0Tj6awAAABMiftIwesgMcBNhf9ID0jYSIPrAUgPQthB98cAAQAAD4U6AgAATIn3SIneuiAAAADo/A8AAEAPvtW+AQAAAEyJ9+jrDwAA6cwBAACJTCQMTIl0JBBMjWwkbEyNdCRtSI0dDJnt/2YuDx+EAAAAAABmkLpkAAAASInvMcno0REAAEiJ1khryGRIKc0PtwxrZkGJTv1Jg8b+SInFSAnQddJNjWb/QYB+/zBND0TmTSnlTIlsJDhMiWQkMEyLdCQQi0wkDEH3xwD/AAAPhTYBAABAtQFNhe0PhD8BAABNAW4QSYtWGEyJ8Egp0EgFIAQAAEw56A+GQwEAAEiJ10yJ5kyJ6uhbHgoATQFuGOkLAQAATI1kJGxFMe1mLg8fhAAAAAAASInwieqA4geAyjBBiFQk/0gPrPUDSYPE/0jB7gNJg8UBSIXtddpIg/gHd9TpnAAAAEyNbCRsSI1EJG1IjR3+le3/Zi4PH4QAAAAAAA8fQABIifJAD7b9D7c8e2aJeP1Ig8D+SA+s9QhIwe4ISIXtdd9Igfr/AAAAd9ZMjWD/gHj/MEwPROBMiWQkME0p5etCTI1kJGxFMe1IjQWn+aD/kEiJ94nqg+IPD7YUAkGIVCT/SA+s9QRJg8T/SMHuBEmDxQFIhe112UiD/w9300yJZCQwTIlsJDhB98cA/wAAD4TK/v//SI18JDBMif6JykyJ8egqBAAAQLUBZEiLBCUoAAAASDtEJHB1WInoSIPEeFtBXEFdQV5BX13DTY1+IEwp+kmLPkyJ/kH/VghNiX4YSYs+TInmTInqQf9WCOu7QA++1b4BAAAATIn36MENAABMifdIid66IAAAAOixDQAA65XoqhoKAGYuDx+EAAAAAABIg+wYZEiLBCUoAAAASIlEJBBIiTwkiXQkCIn4JPk8CHQXMcBAgP8PdxpAD7bPvgCqAABID6POcwtIiedIidbo7DUAAGRIiwwlKAAAAEg7TCQQdQVIg8QYw+hCGgoAZpBIg+wYZEiLBCUoAAAASIlEJBBIiTwkiXQkCIn4JPk8CHQXMcBAgP8PdxpAD7bPvgCqAABID6POcwtIiedIidboHEIAAGRIiwwlKAAAAEg7TCQQdQVIg8QYw+jiGQoAZpBIg+wo22wkMGRIiwQlKAAAAEiJRCQgSIl8JBCJdCQYifgk+TwIdBcxwECA/w93OEAPts++AKoAAEgPo85zEts8JEiNfCQQSInW6PIlAADZ7t3YZEiLDCUoAAAASDtMJCB1CUiDxCjD3djr4+hwGQoAVUFXQVZBVFNJic5BiddIifVJifxAgP0RdRZMiedIie5EifpMifHoRdv//0C1Aet7TYXkdDJFhf94PEyJ40WF/3QgRIn4SY0MBEyJ4w8fQACAOwB0DUiDwwFIg8D/dfFIictMKePrGkiJ6EjB6AiEwHR5MdvrFkyJ5+iiGwoASInDSInoSMHoCITAdCpIwe0gJAFED7bITIn3TInmSInaielFifjoByQAAInFiehbQVxBXkFfXcNAtQFIhdt07UkBXhBJi1YYTInwSCnQSAUgBAAASDnYdhlIiddMieZIidrouxoKAEkBXhjrwEC1Aeu7TY1+IEwp+kmLPkyJ/kH/VghNiX4YSYs+TInmSInaQf9WCOuXZi4PH4QAAAAAAGaQVUFXQVZBVFNJic5BidBIifFIiftED7Y/QfbHAXQKTIt7CEiLWxDrB0iDwwFJ0e9IichIwegIhMB0JUjB6SAkAUQPtshMifdIid5MifroPiMAAInFiehbQVxBXkFfXcNAtQFNhf907U0BfhBJi1YYTInwSCnQSAUgBAAATDn4dhRIiddIid5Mifro8hkKAE0BfhjrwE2NZiBMKeJJiz5MieZB/1YITYlmGEmLPkiJ3kyJ+kH/VgjrnA8fhAAAAAAAVUFXQVZBVFNMicNJifZJif9IidBIwegIhMB0K0GJyEiJ0UjB6SAkAUQPtshIid9Mif5MifLoliIAAInFiehbQVxBXkFfXcNAtQFNhfZ07UwBcxBIi1MYSInYSCnQSAUgBAAATDnwdhRIiddMif5MifLoShkKAEwBcxjrwEyNYyBMKeJIiztMieb/UwhMiWMYSIs7TIn+TIny/1MI655mkFVBV0FWQVVBVFNIg+woSYnMSYnxScHpCEiJ8EjB6CAx7UiF9kgPSMVMixdMi0cIQYoKMf+A+TFAD5zHTYnHSSn/TCn4SA9CxYnzgeP+AAAASIP7Ag+Uw0yNHactrf5MD0XddTGA+S10LEH2wQJ1HUSJyYDhBInLwOsCRTHbhMlIjQ1Ogqr+TA9F2esJTI0dI2ac/7MBRA+280Ux7Uwp8EkPQsWxAYlMJARAgP4Rd1ZAD7bOvcAAAgBID6PNc0dAgP4RD5XB98YACAAAD5TDRTHthMt1MLsAAAAASTn4dChAgP4HSI0Nfgqi/kiNHQ3AnP9ID0TZQb0CAAAAx0QkBAAAAADrAjHbSIlcJAhJAfox20wp6EgPQ9iF0rgBAAAAD0nCQfbBCHQaQID+BHUUTYX/dAZBgDowdAlBjU8BOcgPTMFIY+gx9kwp/UgPQu5IKetID0LeQfbBAUgPRPOF0kyJTCQgTIlUJBhMiVwkEHkZMcBB9sEQuQAAAABID0TOSA9E8EgB9UiJzkyJ57ogAAAA6FoIAABNhfZ0ME0BdCQQSYtUJBhMieBIKdBIBSAEAABMOfB2IUiJ10iLdCQQTIny6FoXCgBNAXQkGIB8JAQAdDjpjwAAAEmNdCQgSCnySYs8JEH/VCQISY1EJCBJiUQkGEmLPCRIi3QkEEyJ8kH/VCQIgHwkBAB1XE0BbCQQSYtUJBhMieBIKdBIBSAEAABMOeh2F0iJ10iLdCQITInq6OsWCgBNAWwkGOsqTY10JCBMKfJJizwkTIn2Qf9UJAhNiXQkGEmLPCRIi3QkCEyJ6kH/VCQITInnSInuujAAAADoegcAAE2F/3RcTQF8JBBJi1QkGEyJ4Egp0EgFIAQAAEw5+HYXSInXSIt0JBhMifroehYKAE0BfCQY6ypJjWwkIEgp6kmLPCRIie5B/1QkCEmJbCQYSYs8JEiLdCQYTIn6Qf9UJAgxwPZEJCABSA9E2EyJ50iJ3rogAAAASIPEKFtBXEFdQV5BX13p8AYAAECA/hJ0JEmJyLgCAAAAifFI0+CpAAAEAHQQUEyJwejN1f//sAFIg8QIwzHAw8zMzFBJichAgP4SdCe4AgAAAInxSNPgqfr/AQB0JTHJQIT/D5XBic9MicHog+L//yQBWcMxyUCE/w+VwUGJCLABWcMxwFnDzMzMzMzMzMzMzMzMUEmJyECA/hJ0IbgCAAAAifFI0+Cp+v8BAHQbQA++/0yJwehZ1v//JAFZw0APvs9BiQiwAVnDMcBZw8zMzMzMzFBJichAgP4SdCG4AgAAAInxSNPgqfr/AQB0G0APvv9MicHoedj//yQBWcNAD77PQYkIsAFZwzHAWcPMzMzMzMxQSYnIQID+EnQhuAIAAACJ8UjT4Kn6/wEAdBtAD7b/TInB6Jna//8kAVnDQA+2z0GJCLABWcMxwFnDzMzMzMzMUEmJyECA/hJ0ILgCAAAAifFI0+Cp+v8BAHQZD7//TInB6Krc//8kAVnDD7/PQYkIsAFZwzHAWcPMzMzMzMzMzFBJichAgP4SdCC4AgAAAInxSNPgqfr/AQB0GQ+3/0yJweja3v//JAFZww+3z0GJCLABWcMxwFnDzMzMzMzMzMxQSYnIQID+EnQduAIAAACJ8UjT4Kn6/wEAdBNMicHo/eD//yQBWcNBiTiwAVnDMcBZw8zMzMzMzMzMzMzMzMzMUEmJyECA/hJ0HbgCAAAAifFI0+Cp+v8BAHQhTInB6C3j//8kAVnDgf////9/uf///38PQs9BiQiwAVnDMcBZw1BJichAgP4SdB24AgAAAInxSNPgqfr/AQB0NEyJwehN5f//JAFZw0iB/wEAAIBIx8EAAACASA9Nz0iB+f///3+6////fw9M0UGJELABWcMxwFnDzMzMzMzMzMzMzMzMzFBJichAgP4SdB24AgAAAInxSNPgqfr/AQB0IkyJweh95///JAFZw0iB/////3+5////fw9Cz0GJCLABWcMxwFnDzMzMzMzMzMzMzMzMzMzMUEmJyECA/hJ0HbgCAAAAifFI0+Cp+v8BAHQ0TInB6L3p//8kAVnDSIH/AQAAgEjHwQAAAIBID03PSIH5////f7r///9/D0zRQYkQsAFZwzHAWcPMzMzMzMzMzMzMzMzMUEmJyECA/hJ0HbgCAAAAifFI0+Cp+v8BAHQiTInB6O3r//8kAVnDSIH/////f7n///9/D0LPQYkIsAFZwzHAWcPMzMzMzMzMzMzMzMzMzMxJichIifGA+RJ0LonQugIAAABI0+L3wvr/AQB0HFBIixdIi3cISInXSInKicHoHu7//yQBSIPECMMxwMPMzMzMSYnISInxgPkSdC6J0LoCAAAASNPi98L6/wEAdBxQSIsXSIt3CEiJ10iJyonB6H7x//8kAUiDxAjDMcDDzMzMzEiD7BhkSIsEJSgAAABIiUQkEECA/hJ0X0mJyLgCAAAAifFI0+CpAP4BAHRLSIk0JIlUJAiJ8CT5PAh0FzHAQID+D3ceQA+2zroAqgAASA+jynMPZg9ux0iJ50yJxuj+KgAAZEiLDCUoAAAASDtMJBB1CUiDxBjDMcDr5+hQDwoASIPsGGRIiwQlKAAAAEiJRCQQQID+EnRgSYnIuAIAAACJ8UjT4KkA/gEAdExIiTQkiVQkCInwJPk8CHQXMcBAgP4Pdx9AD7bOugCqAABID6PKcxBmSA9ux0iJ50yJxugNNwAAZEiLDCUoAAAASDtMJBB1CUiDxBjDMcDr5+jPDgoAzMzMzMzMzMzMzMzMzMzMSIPsKGRIiwQlKAAAAEiJRCQgQID+EnRrSYnIuAIAAACJ8UjT4KkA/gEAdFfbL0iJdCQQiVQkGInwJPk8CHQXMcBAgP4PdzhAD7bOugCqAABID6PKcxLbPCRIjXwkEEyJxui6GgAA2e7d2GRIiwwlKAAAAEg7TCQgdQ1Ig8Qow93Y6+MxwOvj6DQOCgDMzMzMQID+EnQkSYnIuAIAAACJ8UjT4KkEAAQAdBBQTInB6J30//8kAUiDxAjDMcDDzMzMQID+EnQhSYnIuAIAAACJ8UjT4KgEdBBQTInB6JD1//8kAUiDxAjDMcDDzMzMzMzMVUFXQVZBVFNIictIifGA+RIPhKYAAAC4AgAAAEjT4KgED4SWAAAATIs/SItvCEiJyEjB6AiEwHQjQYnQSMHpICQBRA+2yEiJ30yJ/kiJ6ltBXEFeQV9d6bQYAABBtgFIhe10TUgBaxBIi1MYSInYSCnQSAUgBAAASDnodhRIiddMif5IierodQ8KAEgBaxjrIEyNYyBMKeJIiztMieb/UwhMiWMYSIs7TIn+SInq/1MIRInwW0FcQV5BX13DRTH26+/MzMzMzMzMzMzMzMzMzEiF9g+E0AAAAFVBV0FWQVRTSInzSYn+SAF3EEyNZyBIi0cYTInlSCnFSIHFAAQAAEQPtvpIOfUPg4IAAABIKetIhe10GUiJx0SJ/kiJ6ujtDQoASQNuGEmJbhhIiehMKeBJiz5MieZIicJB/1YITYlmGEiB+wEEAAByQb0ABAAASIHDAPz//7oABAAATInnRIn+6KkNCgBJi1YYSAHqSYlWGEwp4kmLPkyJ5kH/VghNiWYYSIH7AAQAAHfETIngSInHRIn+SIna6HMNCgBJAV4YW0FcQV5BX13DzMzMzMzMSIn4SAnwdFBBV0FWU0mJ9kiJ+0mJ90nB/z9NMf5MMftMKftNGf5Iid9Mifbo7wAAAL6AAAAAKca6fwAAACnCg/42fBiD/jd0aoP+NnUgSQ+k3gFIAdvrWw9XwMONSLVI0+NFMfb2wUBMD0Tz62SxSSjBSYnYTQ+t8EyJ90jT70UxyfbBQEwPRcdJD0X5jUg3SQ+l3kjT4/bBQEwPRfNJD0XZMcBMCfMPlcBMCcBIicNJif6J2MHoAoPgAUgJ2EiDwAFJg9YASA+64DdyDkkPpMY+TInwSMHoIOsOSQ+kxj1MifBIweggifJBgecAAACAweIUgcIAAPA/Jf//DwBECfgJ0EjB4CBEifFICcFmSA9uwVtBXkFfw8zMzMzMzMzMMcBIhfYPlMBID0X+SA+9z4PxP8HgBgnIw8zMzMzMzMxFMcDpCAAAAMzMzMzMzMzMSDnXSInwSBnIcxgxwE2FwA+EjQAAADHJSYk4SYlwCEiJysNJicpJidFIhcl0e0kPvcqD8T9ID73Gg/A/KcFND6XKSdPhMcD2wUBND0XRTA9FyIXJeESDwQExwA8fRAAASAHASYnzSffTSIn6SPfSTAHKTRHTScH7P0wp2EyJ2kwh0k0hy0wp30gZ1k0PrNEBSdHqg8H/hcl/xk2FwA+Fc////zHJSInKw0w5znMYSIn4SInySffxMclIiddNhcB1OelZ////SInwTAnISMHoIHQNSInwMdJJ9/FIicHrCYnwMdJB9/GJwUiJ+En38UiJ102FwA+EJf///zH26Rf////MzMzMzMzMzMzMzMzMzMxVQVdBVkFVQVRTSIPsGGRIiwQlKAAAAEiJRCQQSGMfSIPD/0g50w+DwwAAAEmJz0mJ9kmJ/YB/DAAPhLQAAABJidRBi0UEiUQkDIP4/n9BicH30UhjyUw54Q+HkAAAAL3+////SCnFSMHlBEmLPC5IjUwkDL4SAAAAMdJB/1QuCITAdGuLRCQMhcAPiKMAAAAx0kGLTQiJTCQIg/n+fz6JyPfQSJhMOeB3Rb3+////SCnNSMHlBEmLPC5IjUwkCL4SAAAAQYnUMdJB/1QuCITAdB1EieKLRCQMi0wkCEGJRwRBiU8IQQpVDEGIVwHrETHA6yFBxkcBAEnHRwT/////SMHjBEkB3kGKRQ5BiAdNiXcQsAFkSIsMJSgAAABIO0wkEHUrSIPEGFtBXEFdQV5BX13DPQAAAIC5AQAAgA9FyPfZiUwkDLIBicjpQ////+hsCAoAZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iB7IgEAABNicZIic1JidVJifdIiXwkCGRIiwQlKAAAAEiJhCSABAAAD1fADylEJBBIx0QkIAAAAABIjZwkgAAAALoABAAASInfMfboRQkKAEiNRCQQSIlEJGBIjQVUEgAASIlEJGhIx0QkcAAAAABIiVwkeEiNRCRgSYP9/w+EAAIAAEiJRCQoSIlsJDBMiXQkOMdEJFwAAAAATYXtD4RUAwAATQH9SI2sJIAEAADrJcYCJUiDRCR4AWYuDx+EAAAAAABmkEmDxgJNifdNOe8PhCIDAABNiexNKfxMif++JQAAAEyJ4uiaCwoASIXAD4SsAgAASYnGSInDTCn7dGdIAVwkcEiLVCR4SInoSCnQSDnYdiFIiddMif5IidroYwkKAEgBXCR46z1mLg8fhAAAAAAAZpBJiexIjawkgAAAAEgp6kiLfCRgSInu/1QkaEiJbCR4TInlSIt8JGBMif5Iidr/VCRoSY1+AUw57w+D5wEAAA+2D0iNBZh+7f8PtgQIhMB4UItMJFyFyQ+IyQEAAMdEJEwACQAASMdEJET/////iEQkToPBAYlMJFyJTCRASI18JChIjXQkQOglCwAAhMAPhf3+///pjQEAAA8fhAAAAAAAgPkldVFIg0QkcAFIi1QkeEiJ6Egp0EiD+AEPh7v+//9IjZwkgAAAAEgp2kiLfCRgSIne/1QkaEiJXCR4SIt8JGC6AQAAAEiNNYuS7P//VCRo6Zr+//8PV8APKUQkQEjHRCRE/////2bHRCRMAAnGRCROEkyJ7kiNXCRASInaSI1MJFzouGoAAEiFwA+E9AAAAEmJx0iNfCQoSIne6G8KAACEwA+FTv7//+nXAAAASIlEJChIiWwkMEyJdCQ4SYtvEE2LbxhMOe0PhK0AAABNi2cIMdtNiebrJg8fgAAAAABIjXUQSI18JCjoIgoAAITAD4SPAAAASIPFIEw57XR8SQHeSItdCEwB40wp84B9AAB1zkiF23TfSAFcJHBIi1QkeEiNhCSABAAASCnQSDnYdhVIiddMifZIidrocQcKAEgBXCR467BIjbQkgAAAAEgp8kiLfCRg/1QkaEiNhCSAAAAASIlEJHhIi3wkYEyJ9kiJ2v9UJGjpe////0GAPwAPhJ0AAAAPV8BIi1wkCA8RA0jHQxAAAAAASIt8JGBIi1QkeEiNtCSAAAAASCny/1QkaPZEJBABD4SVAAAASIt8JCDoagIKAOmGAAAATYXkdFJMAWQkcEiLVCR4SCnVTDnldhVIiddMif5MieLowAYKAEwBZCR46ytIjZwkgAAAAEgp2kiLfCRgSIne/1QkaEiJXCR4SIt8JGBMif5MieL/VCRoSIt8JGBIi1QkeEiNtCSAAAAASCny/1QkaEiLRCQgSItcJAhIiUMQDyhEJBAPEQNkSIsEJSgAAABIO4QkgAQAAHUVSInYSIHEiAQAAFtBXEFdQV5BX13D6AIECgBmkFVBV0FWQVVBVFNIgex4BAAATYnMTIlEJAhJic1JiddIifNIif1kSIsEJSgAAABIiYQkcAQAAEyNdCRwugAEAABMifcx9uj2BAoASIlsJFBIiVwkWEjHRCRgAAAAAEyJdCRoSYP9/w+EFwMAAMdEJEQAAAAAswFNhe0PhIYFAABNAf1mLg8fhAAAAAAADx9AAEyJ7Uwp/UyJ/74lAAAASInq6IoHCgBIhcAPhPIEAABIicNIicVMKf10WUgBbCRgSItUJGhIjYQkcAQAAEgp0Eg56HYcSInXTIn+SInq6E4FCgBIAWwkaOsqDx+AAAAAAEwp8kiLfCRQTIn2/1QkWEyJdCRoSIt8JFBMif5Iier/VCRYSI17AUw57w+D4wQAAA+2B0iNDZZ67f8PtjQBQIT2eG2LbCREhe0PiMQEAACNRQGJRCRETDnlD4O0BAAASMHlBEiLRCQISIs8KEi5AAAAAP////9ICc66/////0iNTCRQ/1QoCITAD4SEBAAASIPDAkmJ30057w+FAf///+lDBAAAZi4PH4QAAAAAAGaQPCV1K0iDRCRgAUiLVCRoSI2EJHAEAABIKdBIg/gBD4bIAAAAxgIlSINEJGgB67APV8APKUQkMEjHRCQ0/////2bHRCQ8AAnGRCQ+EkyJ7kiNVCQwSI1MJETowmYAAEiFwA+E/AMAAEhjXCQwSIPD/0w54w+D6gMAAEiJxYB8JDwASIlEJBAPhI4AAACLRCQ0iUQkTIP4/g+PjwAAAInB99FIY8lMOeEPh7YDAABBuP7///9JKcBJweAESItEJAhKizwAvhIAAAAx0kiNTCRMQv9UAAiEwA+EhwMAAE2J94tEJEyFwHhNRTH2615MKfJIi3wkUEyJ9v9UJFhMiXQkaEiLfCRQugEAAABIjTWnjez//1QkWOnF/v//TYn3uv////9FMfa4/////+t0TYn3RTH26xY9AAAAgLkBAACAD0TB99iJRCRMQbYBi1QkOIlUJEiD+v5/RInQ99BImEw54A+H+gIAAL3+////SCnVSMHlBEiLRCQISIs8KL4SAAAAMdJIjUwkSP9UKAiEwA+EzQIAAItEJEyLVCRIRAp0JDwPtkwkPkjB4wRIi2wkCEiLfB0ASMHgIEEPtvZIweYISAnGSAnOSI1MJFD/VB0IhMBNif5Mi3wkEA+FCP7//+mAAgAASYtfEEmLRxhIiUQkIEg5ww+E8QEAAE2LdwhFMe1MiXQkKEyJZCQYTIl8JBDrW4tEJDCLVCRMRApjHA+2Sx5JwecESItsJAhKi3w9AEjB4CBBD7b0SMHmCEgJxkgJzkiNTCRQQv9UPQiEwEyLZCQYTIt8JBAPhJsBAABIg8MgSDtcJCAPhH4BAABMifBNie5JAcZMi2sITANsJChNKfWAOwAPhMYAAABMY3sQSYPH/0055w+DXQEAAIB7HAAPhOsAAACLQxSJRCQwg/j+f0mJwffRSGPJTDnhD4c3AQAAvf7///9IKcVIweUESItEJAhIizwovhIAAAAx0kiNTCQw/1QoCITAD4QKAQAAi0QkMIXAD4jVAAAARTHki1MYiVQkTIP6/g+PDP///4nQ99BImEg7RCQYD4faAAAAvf7///9IKdVIweUESItEJAhIizwovhIAAAAx0kiNTCRM/1QoCITAD4XG/v//6agAAABNhe0PhAT///9MAWwkYEiLVCRoSI2EJHAEAABIKdBMOeh2L0iJ10yJ9kyJ6ugPAQoATAFsJGjp0v7//w8fRAAAuv////9FMeS4/////+l7/v//SI1sJHBIKepIi3wkUEiJ7v9UJFhIiWwkaEiLfCRQTIn2TInq/1QkWOmO/v//PQAAAIC5AQAAgA9EwffYiUQkMEG0AekT////QYA/AA+Uw0yNdCRw620x20yNdCRw62RIhe2zAXRdSAFsJGBIi1QkaEiNhCRwBAAASCnQSDnodhlIiddMif5IieroYAAKAEgBbCRo6y6zAesqTCnySIt8JFBMifb/VCRYTIl0JGhIi3wkUEyJ/kiJ6v9UJFjrBU2J/jHbSIt8JFBIi1QkaEwp8kyJ9v9UJFhkSIsEJSgAAABIO4QkcAQAAHUUidhIgcR4BAAAW0FcQV1BXkFfXcPou/0JAGYuDx+EAAAAAACQU0iJ80iLB0yLRwhIixBIi0gITItPEEiNNQMIAABIid/oi/n//4TAdRdIiwNIi0DoSI08A4t0AyCDzgTo4AAKAEiJ2FvDZi4PH4QAAAAAAJBBV0FWU02JwUmJyEiJ0UiJ8kiJ+0QPtj9Mi3cISI01nQcAAOg4+f//hMB0CUiJ2FtBXkFfw0yJ+EjR6EH2xwFMD0TwSInfTIn2SMfC/////+jLDQoA69VmDx+EAAAAAABTTYnBSYnISInRSInySIn7D1fADxEHSMdHEAAAAABIjTU7BwAA6Nb4//+EwHQFSInYW8P2AwF1B2bHAwAA6+9Ii0MQxgAASMdDCAAAAADr3lNIg+wgTYnBSYnISInRSInyZEiLBCUoAAAASIlEJBgPV8APEUQkCEiJPCTHRCQIAAAAAEiNNfYGAABIiefobvj//4TAdBGLXCQIhdt0L+hN/wkAiRjrC+hE/wkAxwAWAAAAuP////9kSIsMJSgAAABIO0wkGHUgSIPEIFvDSItEJBBIqQAAAIB03egR/wkAxwAbAAAA68voFPwJAA8fQABBV0FWU0iD7CBJifdJif5kSIsEJSgAAAAx9kyJ+0iD6wFID0PzSIlEJBhIiTwkSIl0JAhIx0QkEAAAAABIjTVdBgAASInn6MX3//+EwHQYSItEJBBNhf90Hkg5w0gPQ9hBxgQeAOsQ6JT+CQDHABYAAAC4/////2RIiwwlKAAAAEg7TCQYdQpIg8QgW0FeQV/D6Hr7CQBmLg8fhAAAAAAAVUFXQVZBVUFUU0iB7OgBAABkSIsEJSgAAABIiYQk4AEAAEhjLkiDxf9Ii0cQSDnoD4bFAAAASInzSYn/TItnCIB+DAAPhLgAAABEi2sERIlsJGhBg/3+f0REien30UhjyUg5yA+CkQAAALj+////TCnoSMHgBEmLPARIjUwkaL4SAAAAMdJB/1QECITAdGxEi2wkaEWF7Q+IBQUAAEUx9otLCImMJHABAACD+f5/bYnI99BImEk5RxByQEmLRwhBuP7///9JKchJweAESos8AEiNjCRwAQAAvhIAAAAx0kL/VAAIhMB0E0SLbCRoi4QkcAEAAEiJRCQI6yYxwOlGBAAAQb3/////x0QkBAAAAAC4/////0iJRCQI6w5IiUwkCEQKcwxEiXQkBEjB5QRJAexID75DDkiJRCQQSI0d5cGW/kiJXCRYSMdEJGACAAAASI1sJHAPV8APEYQk0AAAAA8RhCRgAQAADxGEJFABAAAPEYQkQAEAAA8RhCQwAQAADxGEJCABAAAPEYQkEAEAAA8RhCQAAQAADxGEJPAAAAAPEYQk4AAAAA8RhCTAAAAADxGEJLAAAAAPEYQkoAAAAA8RhCSQAAAADxGEJIAAAAAPEUQkcEiNvCTYAAAASI0F/G8KAEiNSBhIiUwkaEiDwEBIiYQk2AAAAEiJ7ug/CAoASMeEJGABAAAAAAAAx4QkaAEAAP////9MjTVRbwoASY1GGEiJRCQgSIlEJGhJg8ZATIm0JNgAAABIie/oDwgKAEiNBQBwCgBIg8AQSIlEJBhIiUQkcA9XwA8RhCSwAAAADxGEJMAAAADHhCTQAAAAEAAAAEiNNa/Alv5IjXwkaLoBAAAA6JbU9v9IicVMjYQkiAEAAEEPEAQkDylEJEBIjUQkWEiJhCRwAQAASMeEJJgBAAAAAAAASI0Fgeb//0iJhCSgAQAASMeEJKgBAAAAAAAASImEJLABAABIx4QkuAEAAAAAAABIiYQkwAEAAA9XyQ8RjCTIAQAASMeEJNgBAAAAAAAADxGEJIgBAABMiYQkeAEAAEjHhCSAAQAAAQAAAEiNNbcCAAC5AgAAAEG5AQAAAEiJ70iJ2ugx9P//hMB1GkiLRQBIi0DoSInvSAHHi3QFIIPOBOiD+wkASI01JCzp/7oBAAAASInv6K/T9v9IicMPtnQkBEiNfCQo6I0CAAAPtlQkKPbCAXQMSIt0JDhIi1QkMOsISNHqSI10JClIid/od9P2//ZEJCgBdApIi3wkOOhm9QkASIu8JMgBAABIhf90DUiJvCTQAQAA6Ez1CQBFhe14DUiNfCRoRInu6Cr9CQBIi1wkCIXbeCBIjTWk7aH+SI18JGi6AQAAAOgb0/b/SInHid7oAf0JALA/SItMJBCA+RFMjWwkcHcKSI0F7Wzt/4oEAYiEJHABAABIjXwkaEiNtCRwAQAAugEAAADo2NL2/0iNNXWZdf+6AQAAAEiJx+jE0vb/SI28JHABAABMie7oxOf6/w+2nCRwAQAA9sMBdBdMi6QkgAEAAEiLnCR4AQAASIXbdRLrQkjR60yNpCRxAQAASIXbdDJJiy9IAV0QSItVGEiJ6Egp0EgFIAQAAEg52A+GrQAAAEiJ10yJ5kiJ2ujS+AkASAFdGPaEJHABAAABdA1Ii7wkgAEAAOg39AkASItEJCBIiUQkaEyJtCTYAAAASItEJBhIiUQkcPaEJLAAAAABdA1Ii7wkwAAAAOgE9AkATInv6DwFCgBIjTWVbAoASIPGCEiNfCRo6DcFCgBIjbwk2AAAAOg6BQoAsAFkSIsMJSgAAABIO4wk4AEAAHVoSIHE6AEAAFtBXEFdQV5BX13DTI19IEwp+kiLfQBMif7/VQhMiX0YSIt9AEyJ5kiJ2v9VCPaEJHABAAABD4U/////6Uf///9Bgf0AAACAuAEAAIBBD0XF99iJRCRoQbYBQYnF6d36///oqPUJAMzMzMzMzMzM6Sv5CQDMzMzMzMzMzMzMzOk7BgoAzMzMzMzMzMzMzMzpi1gAAMzMzMzMzMzMzMzM6TtYAADMzMzMzMzMzMzMzFVBVlOJ9UD2xQFMjTWKlKz/SI01XQyt/kkPRPZIifsPV8APEQdIx0cQAAAAAOh+9wkAQPbFAkiNNelEnP9JD0T2SInf6Gf3CQBA9sUESI018GCq/kkPRPZIid/oUPcJAED2xQhIjTWE+Kf+SQ9E9kiJ3+g59wkAQPbFEEiNNSKXWP9JD0T2SInf6CL3CQBIidhbQV5dw2YuDx+EAAAAAABBV0FWQVVBVFNIY9kxwEiF20gPSNhFicRJOdRMD0PiSYn3SYn+RYXATA9I4kwp40gPQthFhcl0Nk2F5A+ElQAAAE0BZhBJi1YYTInwSCnQSAUgBAAATDngdlpIiddMif5MieLoiPYJAE0BZhjraEyJ90iJ3rogAAAA6ELn//9NheQPhIMAAABNAWYQSYtWGEyJ8Egp0EgFIAQAAEw54HZISInXTIn+TIni6EL2CQBNAWYY61ZNjW4gTCnqSYs+TInuQf9WCE2JbhhJiz5Mif5MieJB/1YITIn3SIneuiAAAADo2ub//+siSY1eIEgp2kmLPkiJ3kH/VghJiV4YSYs+TIn+TIniQf9WCLABW0FcQV1BXkFfw8zMzMzMzMzMzMxVQVdBVkFVQVRTSIHs6AEAAEiJ80mJ/9usJCACAABkSIsEJSgAAABIiYQk4AEAAMeEJBgBAAAAAAAASMeEJBABAAAAAAAA2cDbvCQQAQAAZoO8JBgBAAAA2cDbfCREeDZBikcBQbQr2cCoAtnJdS7d2UG0INnAqATZyXUh3dlIjawkEAEAAMeEJBABAAAAAAAARTHk6yTZ4EG0Ldnu3djHhCQQAQAAAAAAAEiNrCQRAQAARIikJBABAADZwNt8JCzbPCToCAYKAIXAdB/bbCQs3dhBig+JyCT5PAlIjRWLQ5z/SI0FbHWa/+sn22wkLNs8JOjpBQoAhcB0aEGKD4nIJPk8CUiNFdiWjv9IjQVmb6f+SA9EwoD5B0gPRMIPtwiKQAKIRQJmiU0ASI20JBABAABIKfVIg8UDQYtPBEUPtk8BQYPhAUiJ30iJ6kG4/////+iJ/f//icGwAYTJD4VHDQAASIlcJDhBi0cIhcC9BgAAAA9J6MdEJGwAAAAAD1fADymEJAABAAAPKYQk8AAAAMeEJBABAAAAAAAA22wkLNs8JEiNvCQQAQAA6EAFCgDbPCS/QAAAAOhDBQoARIu0JBABAABFjW7A2zwkSI28JPAAAADoB0kAAESJrCQAAQAAD1fADymEJNAAAAAPKYQkwAAAAA8phCSwAAAADymEJKAAAAAPKYQkkAAAAA8phCSAAAAASMeEJOAAAAAAAAAARYofRInZgOH+McCAwfiA+QYPh3MMAAAPtslIjRXnZ+3/SGMMikgB0f/hTIuMJPAAAABMi4Qk+AAAAESIZCRQiWwkVEyJfCRYSItEJDhIiUQkYEGD/kAPjHkDAABNhcAPhKMDAABJD73Ag/A/6XQGAACF7YnovQEAAAAPT+iNff8PKIQk8AAAAA8ojCQAAQAADylMJBAPKQQkSI20JIAAAABIjVQkbOgFGQAAhMAPhHcBAABEi3QkbEQ59Q+OhAMAAEGD/vxEieMPjGkEAABFhfYPiHYDAAAPhE8EAABIi4Qk2AAAAEyNYAFIjXACSQHGQIpoAUkp9kmDxgJ0C0yJ50yJ8uiI9wkAQ4gsNOkbBAAADyiEJPAAAAAPKIwkAAEAAA8pTCQQDykEJEiNtCSAAAAASI1UJGyJ7+hyGAAAhMAPhOQAAABB9kcBCEiLjCTgAAAAdQxIjUH/gHn/LkgPRMhEieNBigeJwoDi+YD6CQ+VwsDiBYDKRTwHD7bCukUAAAAPRdCLRCRsSI1xAUiJtCTgAAAAiBFIi4wk4AAAAEiNUQFIiZQk4AAAAIXAD4hrAgAAxgErg/hkD4xtAgAAicFIadEfhetRSMHqJYDCMEiLtCTgAAAASI1+AUiJvCTgAAAAiBa6zczMzEgPr8pIwekjSA+v0UjB6iMB0o0UkonOKdZAgM4wSIuUJOAAAABIjXoBSIm8JOAAAABAiDIByY0MiSnI6XMEAADbbCRE2zwkTIn/SIt0JDjoEh8AAOlHCgAASIu8JPAAAABMi5Qk+AAAAESIZCRQiWwkVEyJfCRYSItEJDhIiUQkYEWLTwhBg8ZAMcBIiflMCdGJbCQsdEVBgf4CwP//ugLA//9BD0zWZi4PH4QAAAAAAA8fRAAATYXSeCZBgf4CwP//D479CQAASQ+k+gFIAf9Bg8b/SIn5TAnRddpFMdIx/0yJ1UjB7TxBg8b8SIn5TAnRRA9E8EkPpPoESMHnBEWFyQ+IEwgAAEUx7USLZCQsQYP8Hw+P+AAAAESJTCREQbkgAAAARSnhuB8AAABEKeDB4AK5fAAAACnBhclBD07NTInWSA+l/kiJ+kjT4vbBQEgPRfJJD0XVSYnwSdPo9sFATInDSQ9F3UgPrfL2wUBJD0XQQbgIAAAAMfaJwUwPpcZJ0+CoQEkPRfBND0XFSInRTDHBSInYSDHwSAnID4WnAAAARYXkD4TCBgAAQo0MjQAAAAC4DwAAADHSSA+lwkjT4DH29sFASA9F0EgPRcZMIdJIIfhID63QSNPq9sFASA9E0IDiD+mLBgAAQYP+vw+PGgMAALpAAAAARCnySI1MJFBMic9MicboySIAAOmMCAAASMfC/////+n0BgAATYXJD4TMAgAASQ+9wUiD8D/pxAIAAMYBLffYg/hkD42T/f//D7bA6UACAABJOdBIGd4PgiUGAADpegYAAESJ4+nqAAAASIuEJNgAAACKCIhIAUGD/v8PhKYAAAC4/v///0Qp8ESJ8YPhA4P5A3Qog/ED99kx0kiLtCTYAAAASI1+/0iJvCTYAAAAxgYwg8L/OdF14kEp1oP4A3JmQYPGAUiLhCTYAAAASI1I/0iJjCTYAAAAxgAwSIuEJNgAAABIjUj/SImMJNgAAADGADBIi4Qk2AAAAEiNSP9IiYwk2AAAAMYAMEiLhCTYAAAASI1I/0iJjCTYAAAAxgAwQYPGBHWeSIuEJNgAAABIjUj/SImMJNgAAADGAC5Ii4Qk2AAAAMYAMMdEJGwAAAAARTH2QfZHAQh1NUiLhCTgAAAAZi4PH4QAAAAAAEiDwP8PtgiA+TB1CkiJhCTgAAAA6+qA+S51CEiJhCTgAAAARYX2D4Q5AQAAQYoHicGA4fmA+QkPlcHA4QWAyUU8Bw+2wblFAAAAD0XISIuEJOAAAABIjVABSImUJOAAAACICEiLhCTgAAAASI1IAUiJjCTgAAAARYX2D4iQAAAAxgArQYP+ZA+MkwAAAESJ8EhpyB+F61FIweklgMEwSIuUJOAAAABIjXIBSIm0JOAAAACICrnNzMzMSA+vwUjB6CNID6/ISMHpIwHJjQyJicIpyoDKMEiLjCTgAAAASI1xAUiJtCTgAAAAiBEBwI0EgEEpxkGAzjBIi4Qk4AAAAEiNSAFIiYwk4AAAAESIMOtVxgAtQffeQYP+ZA+Nbf///0EPtsZpyM0AAADB6QuNUTBIi7Qk4AAAAEiNfgFIibwk4AAAAIgWAcmNDIkoyAwwSIuMJOAAAABIjVEBSImUJOAAAACIAUiLtCTYAAAASIuUJOAAAABIKfIPtvtMiflMi0QkOOjYHQAA6asFAAC4QAAAAIPAQESJ8SnBg8FAgfmBAAAAD43nBQAAD1fADymEJDABAAAPEYQkqwEAAA8phCSgAQAADymEJJABAAAPKYQkgAEAAA8phCRwAQAADymEJGABAAAPKYQkUAEAAA8phCRAAQAADymEJCABAAAPKYQkEAEAAEiNnCQ6AQAAxoQkOgEAAC5MjbwkOwEAAEGD/kB8FU2FwA+ENQEAAEkPvcCD8D/pQAEAALlAAAAARCnxSbrNzMzMzMzMzEGD/sEPjK4AAABMic9MD63HTInASNPoRTH29sFASA9F+EwPRPBNhfYPhIwAAABJu5mZmZmZmZkZZi4PH4QAAAAAAA8fRAAATInwSffiSInWSMHuA0iNBDZIjQSATIn1SCnFTI0kbQAAAABJAexIifhJ9+JIweoDSI0EEkiNBIBIKcdKjQRnSQ+v60gB1WnQzQAAAA+30sHqC0iNPCoB0o0UkijQDDCIQ/9Ig8P/SYP+CUmJ9neR6wIx/0iDw/9mDx+EAAAAAABIifhJ9+JIweoDjQQSjQSAif4pxkCAzjBAiDNIg8P/SIP/CUiJ13fYxgMwi2wkVEyJz0yJxkyJ+kGJ6OjgKwAASI1LAYA7MEgPRNnpUAEAAE2FyXQKSQ+9wUiD8D/rBbhAAAAAg8BAQSnGQYPGQEGD/kB/S0SJ6UnT4Ui5zczMzMzMzMxmLg8fhAAAAAAAZpBMichI9+FIweoDjQQSjQSARInOKcZAgM4wQIhz/0iDw/9Jg/kKSYnRc9bp3gAAAESJ6U0PpchJ0+ExyUH2xUBND0XBSQ9EyU2FwHR8SbmZmZmZmZmZGUm6zczMzMzMzMxMicBJ9+JIidZIwe4DSI0ENkiNBIBMicdIKcdIjSx/SInISffiSMHqA0iNBBJIjQSASCnBSI0EaUkPr/lIAddpyM0AAAAPt9HB6gtIjQw6AdKNFJIo0AwwiEP/SIPD/0mD+AlJifB3mEi+zczMzMzMzMxmLg8fhAAAAAAADx9AAEiJyEj35kjB6gONBBKNBICJzynHQIDPMECIe/9Ig8P/SIP5CkiJ0XPXi2wkVEyJ+EiJwkgp2oXtdQ9Ii0wkWPZBAQh1BEiDwv9BKcdEAf1IjQWVhqz/SImEJMABAABIx4QkyAEAAAAAAAAPEIQkwAEAAA8RBCRIjXwkUEiJ3jHJQYno6SsCAABBuSAAAACJ6vbCAXRaQo0MjQAAAAC4AQAAADHSSA+lwkjT4DH29sFASA9F0EgPRcZBg/kgSA9N1kgPTcZAD53GSAHHTBHSTYXSD5jASIXSD5nBIMFACPFAAM1AgP0QD4M5AgAASYnSSMfA/////0HB4QK5gAAAAEQpyUUx7YXJQQ9OzUjHwv////9ID63SSNPo9sFASA9F0EwPROhI99JEi0wkREgh10n31U0h6jHSQYD7Dw+VwkiJ0EjB4ARMjQUriXX/SY00AMDiBYDKWA9XwA8phCTAAQAAx4Qk0AEAAAAAAADGhCTAAQAAMIiUJMEBAABAD7bVihQyiJQkwgEAAEWFyXgKi0wkLIXJfx/rDEiJ+kwJ0otMJCx1EUH2RwEIdQpIjZwkwwEAAOsQSI2cJMQBAADGhCTDAQAALkUx7UiJ+kwJ0nRDTInWSA+k/gQx0mYPH0QAAEiJ9UnB6jxJAcJDD7YMEIgME0jB5wRID6T+BEiDwgFIiflICelJiep11kgB04tMJCzrAjHSQYD7Dw+VwCnRRYXJRA9J6UyNvCTAAQAATCn7D1fADymEJBABAAAPKYQkIAEAAGbHhCQwAQAAAADA4AUMUIiEJBABAABEifDB6B8AwAQriIQkEQEAAESJ9/ffQQ9M/kiNtCQSAQAA6PBkAABIjbwkEAEAAEiJfCRw6M7nCQBIiUQkeA8QRCRwDxEEJEiNfCRQTIn+SInauQIAAABFiejoSCkAALABZEiLDCUoAAAASDuMJOABAAB1aUiBxOgBAABbQVxBXUFeQV9dw7ECKNFMD63XSdPqMe32wUBJD0X6uAAAAABMD0XQQb4CwP//RYXJD4kX9v//6SX+//9IjUwkUEyJz0yJxkSJ6ui9GAAA65NBg8YEQLUBRTHSMf/puf3//+h15AkADx9EAADzD1rA6wpmLg8fhAAAAAAAVUFXQVZBVUFUU0iB7KgBAABIifVJif9kSIsEJSgAAABIiYQkoAEAAGYP18CEwGYPKUQkEHg2QYpHAUG1K2YPKMioAnU2QbUgZg8oyKgEdStIjZwk0AAAAMeEJNAAAAAAAAAARTHtZg8oyOsqZg8oDayRk/5mD1fIQbUtx4Qk0AAAAAAAAABIjZwk0QAAAESIrCTQAAAAZg8pTCQgZg8owegr9wkAhcB0GUGKD4nIJPk8CUiNFXQ0nP9IjQVVZpr/6yZmDyhEJCDoE/cJAIXAdGdBig+JyCT5PAlIjRXCh47/SI0FUGCn/kgPRMKA+QdID0TCD7cIikACiEMCZokLSI20JNAAAABIKfNIg8MDQYtPBEUPtk8BQYPhAUiJ70iJ2kG4/////+h07v//icGwAYTJD4W5CgAAQYtHCIXAQbwGAAAARA9J4MdEJEwAAAAAx4Qk0AAAAAAAAABMjbQk0AAAAGYPKEQkIEyJ9+h/9gkAvzUAAADoBfYJAIu0JNAAAABmD1fJZg8pjCSwAAAAZg8pjCSgAAAAZg8pjCSQAAAAZg8pjCSAAAAAZg8pTCRwZg8pTCRgSMeEJMAAAAAAAAAARYoXRInRgOH+McCAwfiA+QYPhxgKAADySA8s0ESNTstIidNIwfs/8g9cBTef7P/ySA8s+Egh30gJ1w+2yUiNFf5Y7f9IYwyKSAHR/+FEiGwkMESJZCQ0TIl8JDhIiWwkQIP+NQ+MjgIAAEiF/w+EogIAAEgPvcdIg/A/6ZoCAABFheRBvgEAAABFD0/0QY1W/0iNTCRgTI1EJExEic7oqykAAITAD4RWAQAAi1wkTEE53g+OGAgAAIP7/A+MDwgAAIXbD4gkBwAAD4T3BwAASIuEJLgAAABMjWABSI1wAkgBw0SKcAFIKfNIg8MCdAtMiedIidrotOgJAEWINBzpwwcAAEiNTCRgTI1EJExEic5EieLoNikAAITAD4ThAAAAQfZHAQhIi4wkwAAAAHUMSI1B/4B5/y5ID0TIQYoHicKA4vmA+gkPlcLA4gWAykU8Bw+2wrpFAAAAD0XQi0QkTEiNcQFIibQkwAAAAIgRSIuMJMAAAABIjVEBSImUJMAAAACFwA+I/wIAAMYBK4P4ZA+MAQMAAInBSGnRH4XrUUjB6iWAwjBIi7QkwAAAAEiNfgFIibwkwAAAAIgWus3MzMxID6/KSMHpI0gPr9FIweojAdKNFJKJzinWQIDOMEiLlCTAAAAASI16AUiJvCTAAAAAQIgyAcmNDIkpyOnCAgAAZg8oRCQQTIn/SInu6LwzAADpGAgAAESIbCQwRIlkJDRMiXwkOEiJbCRARYtHCIPGC0iF/34ugf4C/P//uAL8//8PTMZmDx+EAAAAAACB/gL8//8Pji4IAABIAf+Dxv9Ihf9/6UiJ/UjB7T+Dxv9FMclIhf9ED0XOSAH/RYXAD4j7AwAASMfA/////0GD/A8Pj+cDAAC+EAAAAEQp5rgPAAAARCngweACujwAAAApwjHJhdIPT8pIifpI0+JI0+q7CAAAAInBSNPjSDnaD4VcAwAARYXkD4R4BwAAjQy1AAAAALgPAAAASNPgSCH4SNPoJA/pYwcAAIP+tH8wujUAAAAp8kiNTCQwMfbozhQAAOkYBwAAuEAAAACJ8SnBg8ELgfmBAAAAD414BwAAZg9XwGYPKYQk8AAAAGYPEYQkawEAAGYPKYQkYAEAAGYPKYQkUAEAAGYPKYQkQAEAAGYPKYQkMAEAAGYPKYQkIAEAAGYPKYQkEAEAAGYPKYQkAAEAAGYPKYQk4AAAAGYPKYQk0AAAAMaEJPoAAAAuTI20JPsAAACD/jV8FkiF/w+ELgEAAEgPvcdIg/A/6SYBAAC5NQAAACnxSIn4SNPoMe2D/vZID03oTI28JPkAAABJuM3MzMzMzMzMDx+AAAAAAEiJ6En34EjB6gONBBKNBICJ6ynDgMswQYgfSYPH/0iD/QlIidV32UHGBzBJjW8Bg/71fFJAgMYLifFI0+dFheQPjjQFAABBg8T/SYPEAb4KAAAATInxZi4PH4QAAAAAAEiF/w+EcQUAAEiJ+Ej35oDKMIgRSIPBAUiJx0mDxP913+n3BAAAMfZMifJFieDoHSEAAEiJwek/BQAAxgEt99iD+GQPjf/8//8PtsBpyM0AAADB6QuNUTBIi7QkwAAAAEiNfgFIibwkwAAAAIgWAcmNDIkoyAwwSIuMJMAAAABIjVEBSImUJMAAAACIAelhBAAAuEAAAABMjbwk+gAAACnGg8YLg/5Af0VEiclI0+dIuc3MzMzMzMzMDx+AAAAAAEiJ+Ej34UjB6gONBBKNBICJ/inGQIDOMEGId/9Jg8f/SIP/CkiJ13PX6esAAAAx7USJyUgPpf1I0+cxwEH2wUBID0XvSA9F+EiF7Q+EiAAAAEm5zczMzMzMzMxJuJmZmZmZmZkZZi4PH4QAAAAAAJBIiehJ9+FIidFIwekDSI0ECUiNBIBIie5IKcZMjRR2SIn4SffhSMHqA0iNBBJIjQSASCnHSo0EV0kPr/BIAdZp0M0AAAAPt9LB6gtIjTwyAdKNFJIo0AwwQYhH/0mDx/9Ig/0JSInNd5dIuc3MzMzMzMzMZi4PH4QAAAAAAA8fAEiJ+Ej34UjB6gONBBKNBICJ/inGQIDOMEGId/9Jg8f/SIP/CkiJ13PXTInx6aEDAAB2Lo0MtQAAAAC4AQAAAEjT4DHJg/4QSA9MyA+dwEiF/w+YwkgBzw+ZwSDRCMFAAM3B5gK4QAAAACnwMcmFwA9PyEjHwP////9I0+hI99BIIccx0kGA+g8PlcJIidBIweAESI0Nzn51/0iNNAHA4gWAylhmD1fAZg8phCSAAQAAx4QkkAEAAAAAAADGhCSAAQAAMIiUJIEBAABAD7bVihQyiJQkggEAAEWFwHgHRYXkfxjrBUiF/3URQfZHAQh1CkiNnCSDAQAA6xBIjZwkhAEAAMaEJIMBAAAuMe1Ihf90NTH2Zi4PH4QAAAAAAA8fAEiJ+kjB6jxIAcIPthQRiBQzSMHnBEiDxgFIhf914k2J90gB8+sFTYn3MfZBgPoPD5XAQSn0RYXAQQ9J7EyNtCSAAQAATCnzZg9XwGYPKYQk0AAAAGYPKYQk4AAAAGbHhCTwAAAAAADA4AUMUIiEJNAAAABEicjB6B8AwAQriIQk0QAAAESJz/ffQQ9M+UiNtCTSAAAA6KZaAABMif9MiXwkUOiJ3QkASIlEJFhmDxBEJFBmDxEEJEiNfCQwTIn2SInauQIAAABBiejpOwIAAEiLhCS4AAAAigiISAGD+/8PhKEAAAC4/v///ynYidmD4QOD+QN0J4PxA/fZMdJIi7QkuAAAAEiNfv9IibwkuAAAAMYGMIPC/znRdeIp04P4A3Jkg8MBSIuEJLgAAABIjUj/SImMJLgAAADGADBIi4QkuAAAAEiNSP9IiYwkuAAAAMYAMEiLhCS4AAAASI1I/0iJjCS4AAAAxgAwSIuEJLgAAABIjUj/SImMJLgAAADGADCDwwR1n0iLhCS4AAAASI1I/0iJjCS4AAAAxgAuSIuEJLgAAADGADDHRCRMAAAAADHbQfZHAQh1OkiLhCTAAAAAZi4PH4QAAAAAAA8fRAAASIPA/w+2CID5MHUKSImEJMAAAADr6oD5LnUISImEJMAAAACF23QsQYoHicGA4fkx0oD5CQ+VwsHiBYPKRTwHvkUAAAAPRfJIjVQkYInf6K0LAABIi7QkuAAAAEiLlCTAAAAASCnyQQ+2/UyJ+UmJ6OhrDAAA6cUAAABMifFIhf95WEi4AAAAAAAAAIBIOccPheUAAABIjUH/MdKAef8uD5TCSCnQihiJ3kDA7gdAAN5AgOb+idpAKPKA+gF0DesaxgAwD7ZY/0iDwP+A+y5084D7OXTrgMMBiBhBgD8wTA9E/UiJykwp+kSLRCQ0RYXAdQ9Ii0QkOPZAAQh1BEiDwv9BKc5FAfBIjQXdd6z/SImEJIABAABIx4QkiAEAAAAAAABmDxCEJIABAABmDxEEJEiNfCQwTIn+McnowRwAALABZEiLDCUoAAAASDuMJKABAAB1d0iBxKgBAABbQVxBXUFeQV9dw74QAAAAieioAQ+Fzvv//+n3+///SI1B/+sESIPA/w+2GID7LnT0gPs5D4VA////xgAw6+axAijBSNPvQbkC/P//Me1FhcAPieX3///p2/v//0iNTCQwMfZEicroGgwAAOl0////6ODXCQDpe/P//2YuDx+EAAAAAACQVUFXQVZBVUFUU0iD7EiD/ycPj8sAAABJidBIifVBif9IjYQkgAAAAESLWBBMiyhMi2AISI1WKUyNdmBIiVZgTI1WWEiJVlhFhdtMiVQkCA+IhwAAAEGD+0APj4MAAABEidlND6XsSdPlMdtB9sNATQ9F5UkPRN1IidhMCeAPhCMBAABIiRQkTIlEJBhMiXQkELoKAAAASInfTInmMcnoTcz//0mJxgHAjQyAidgpyAwwiEUoSIP7CkyJ4UiD2QAPg+sAAABIg8UoTIt0JBBMi1QkCEiLFCTpewEAAEGD+4R9BzHA6UAGAABIiWwkMEH320jHxf////9EidlI0+VMie9MD63nTInmSNPuSMfD/////zHAQfbDQEgPRd1ID0XoSPfTSA9F/kj31UgPRfBIifhICfBIiWwkKEiJXCQgTIlEJBgPhKEBAABIiRQkRIlcJDy6CgAAAEiJ/THJSInz6IzL//9JidiNDACNDImJ7ynPQIDPMEiLXCQwQIh7KEiJbCRASIP9CkyJwUiD2QAPg2EBAABIg8MoTItUJAhIizQk6QoCAAC9/////+nBAAAASYnVugoAAABMifdMie4xyei7OAAADDBIjU0nSIlNWIhFJ0iD+2RJg9wATItUJAhyaGYuDx+EAAAAAAAPH0QAAE2LIroKAAAATIn3TInuMcno68r//0iJw0iJ1boKAAAASInHSInuMcnoYzgAAEyLVCQIDDBJjUwk/0mJCkGIRCT/uGMAAABMOfC4AAAAAEwZ6EmJ3kmJ7XKnTIt0JBBJixZJiyqKRQBIjU3/SYkKiEX/SYsCxkABLvfVAdVMi0QkGEGJKEEp70WF/3gLD4WDBAAA6aAEAABEif/330mLFon+SInRSCnxSPfeSYkOgDk1D47uAQAASI1B/0mLEkg50HMh6TcEAABmDx+EAAAAAADGADBJixJIg8D/SDnQD4IXBAAAD7YIgPkudOuA+Tl04IDBAYgI6RYEAABJIe1JIdzpXwEAAEiJ1kyJdCQQugoAAABIicVIicdJifYxyUyJBCToajcAAAwwSI1LJ0iJS1iIQydIg3wkQGRIgxwkAEyLVCQIcm1mLg8fhAAAAAAAkEmLAkiJBCS6CgAAAEiJ70yJdCQwTIn2Mcnoksn//0iJw0mJ1roKAAAASInHTIn2McnoCjcAAEyLVCQIDDBIixQkSI1K/0mJCohC/7hjAAAASDnouAAAAABIG0QkMEiJ3XKeTIt0JBBJizZJixpAijtIjUv/SInaSItsJChJIe1Ii1wkIEkh3EmJCkCIev9JiwLGQAEuKdZMi0QkGESLXCQ8dHGDxv9BiTBBKfcPiUABAABB999JixZEif5IidFIKfFI995JiQ6AOTV/EbABD4UVAwAATQnlD4Q6AwAASI1B/0mLEkg50HMS6Q4DAABIg8D/SDnQD4L9AgAAD7YIgPkudOuA+TkPhQQDAADGADBJixLr2kHHAAAAAAAxyUyJ6EwJ4A+EiAAAAL4KAAAAZpBMiehI9+ZLjTykTI0keoPB/0mJxUg5xUiJ2EwZ4HPhQYkI62OwAQ+FjQIAAIP/AXQtZi4PH4QAAAAAAA8fRAAAD7ZEMgE8MHUNSI1+AUiD/v5Iif516jwwD4XY/f//ikH/PC51A4pB/onCwOoHAMKA4v4o0DwBD4S6/f//6Q8CAABFMe1FMeRMiehEidlMD63gTIniSNPqQfbDQEgPRNCAwjBJiwJIjUj/SYkKiFD/SYsGSI1IAUmJDsYALkkh7Ukh3EWF/w+O7gAAAEH2xwF1BUSJ/utEuQoAAABMiehI9+FLjQykTI0kSkmJxUSJ2UwPreBMieJI0+pB9sNASA9E0Ekh7Ukh3IDCMEmLBkiNSAFJiQ6IEEGNd/9Bg/8BTIt8JChMi0wkIA+EiwAAAIPGAkG4CgAAAGYPH4QAAAAAAEyJ6En34EuNDKRIjTxKSInDRInZSA+t+0iJ/UjT7Uwhz0wh+En34EiNDL9MjSRKSYnFRInZTA+t4EyJ4kjT6kH2w0BID0TrSYsOSA9E0ECAxTBIjUEBSYkGQIgpTSHMTSH9gMIwSYsGSI1IAUmJDogQg8b+g/4Cf4e5CgAAAEyJ6Ej34UiJxkuNBKRIjRRCSInwRInZSA+t0EiJ10jT70H2w0BID0T4g/8FSIt8JBh/OrABD4XAAAAASCN0JChII1QkIEgJ8nUjSYsWikr/gPkudQOKSv6JysDqBwDKgOL+KNGA+QEPhY4AAABJixZIjUL/SYsKSDnIcxXrKw8fQADGADBJiwpIg8D/SDnIchQPthCA+i5074D6OXTkgMIBiBDrVEiNUAHGADFJiQJmwQIIgwcBSYMG/+s9SI1IAcYAMUmJAmbBAQhBgwABSYMG/0WF/34iQYPHAQ8fgAAAAABJiwZIjUgBSYkOxgAwQYPH/0GD/wF/6bABSIPESFtBXEFdQV5BX13DSI1IAcYAMUmJAmbBAQhBgwABSYMG/+vXgMEBiAjr0EGD/wF0IA+2XDIBgPswdQ1IjX4BSIP+/kiJ/nXpgPswD4Wg/P//iln/gPsudQOKWf6J2sDqBwDagOL+KNOA+wEPhID8///ripBVQVdBVkFVQVRTSIPseEiJdCQoSIn926wksAAAANt8JBxkSIsEJSgAAABIiUQkcItHBItPCEUx/4XARA9J+IXJQbz/////RA9J4Q9XwA8pRCRQDylEJGBMjXQkUcZEJFAlD7Z3AUiNfCQw6GHa//8PtlwkMPbDAXQMSIt0JEBIi1wkOOsISNHrSI10JDG5HwAAAEyJ90iJ2uhz4gkASAHjSIPDUfZEJDABdApIi3wkQOgrzQkAxwMqLipMSA++RQBIg/gRdwxIjQ1LRu3/igQI6wIxwIhDBMZDBQC/EAIAAOjbzAkASInDSIlEJEAPKAU8fpP+DylEJDAx7boBAgAASInHMfboZtAJANtsJBzbPCRIjVQkUL4AAgAASInfRIn5RYngMcDoBd8JAIXAD4gQAQAASI1cJDE9AAIAAHNVMcmEyXUFSItcJEBJidxAtQGFwEiLXCQoD4TmAAAAQYnGTAFzEEiLUxhIidhIKdBIBSAEAABMOfAPhqYAAABIiddMieZMifLo1dAJAEwBcxjprwAAAEyNbCQwTI10JFAx7esaZi4PH4QAAAAAAA8fQABIi1QkOInGSDnyd4WDwAFMie9IicYx0uj02gkAD7Z0JDBA9sYBdBlIi3wkQEiLdCQ46xNmLg8fhAAAAAAADx8ASNHuSInf22wkHNs8JEyJ8kSJ+UWJ4DHA6CPeCQCFwHgyD7ZUJDD2wgEPlMF1kkjR6uuSTI17IEwp+kiLO0yJ/v9TCEyJexhIiztMieZMifL/Uwj2RCQwAXQKSIt8JEDojMsJAGRIiwQlKAAAAEg7RCRwdRGJ6EiDxHhbQVxBXUFeQV9dw+i2zQkAZg8fRAAASItCYEiNSAFIiUpgQIgwSItCYEiNSAFIiUpghf94c8YAK4P/ZHx1ifhIacgfhetRSMHpJYDBMEyLQmBJjXABSIlyYEGICLnNzMzMSA+vwUjB6CNID6/ISMHpIwHJjQyJicYpzkCAzjBMi0JgSY1IAUiJSmBBiDABwI0EgCnHQIDPMEiLQmBIjUgBSIlKYECIOMPGAC3334P/ZH2LQA+2x2nIzQAAAMHpC0SNQTBIi3pgSI13AUiJcmBEiAcByY0MiSjIDDBIi0pgSI1xAUiJcmCIAcNmLg8fhAAAAAAAZpBVQVdBVkFVQVRTUEyJw0mJ10mJ9In9i0EERTH2hcB4DkQp+ECA/QGD0P9ED0nwRIppATH2QfbFEUkPRPZIid+6IAAAAOiHv///QITtdBFAD77VvgEAAABIid/ocb///zHAQfbFEEyJ9kgPRPBB9sUBSA9F8EiJ37owAAAA6E+///9Nhf90TUwBexBIi1MYSInYSCnQSAUgBAAATDn4dhRIiddMieZMifroU84JAEwBexjrIEiNayBIKepIiztIie7/UwhIiWsYSIs7TInmTIn6/1MIMcBB9sUBTA9E8EiJ30yJ9rogAAAASIPECFtBXEFdQV5BX13p1b7//w8fRAAASIPsSGRIiwQlKAAAAEiJRCRARI2CnwAAAI2CvgAAAEWFwEEPScBIiUwkCMH4BY0MgI0ESEiYSGnAZ2ZmZkmJwEnB+CJIweg/SI1MJAhIiUwkEEiNDZcHAABIiUwkGEiJfCQgSIl0JCiJVCQwRAHAg8B/SJhIwegHSIPA/0iD+AR3bUiNDQdC7f9IYwSBSAHI/+BIjTXXBAAASI18JBDonQIAAOtKSI01xAQAAEiNfCQQ6EoEAADrN0iNNbEEAABIjXwkEOhXAwAA6yRIjTWeBAAASI18JBDotAMAAOsRSI01iwQAAEiNfCQQ6MECAABkSIsEJSgAAABIO0QkQHUFSIPESMPox8oJAA8fgAAAAABVQVdBVkFVQVRTSIPsWEmJzUGJ1kmJ90mJ/GRIiwQlKAAAAEiJRCRQSGNRBEiF0nQKSIPCAkmLRQjrFEmLRQi6AgAAALkBAAAA9kABCHQDSInRQYB9AAFIg9n/i1AEMduF0ngvvgAAAAC9AAAAAEg50XMsKcqKQAEx7agBdRuJ00iJ3kjB5iCoEEgPRPVID0Xd6wwx9jHt6wYx2zH2idVICfNJi30QSGPzuiAAAADoDb3//0GKRQCEwHQRSYt9EA++0L4BAAAA6PS8//9Ji30QSLgAAAAAAQAAAEgBw0jB+yBIid66MAAAAOjSvP//QYN9BAB1DEmLTQgxwPZBAQh0F0mLfRC+AQAAALouAAAA6Ky8//9Bi0UEiUQkHEyJbCQISI1EJBxIiUQkEEGNRl9BjU5+hcAPScjB+QVIjUQkCEiJRCQgSI0FlAkAAEiJRCQoTIlkJDBMiXwkOESJdCRAg8F/SGPBSMHoB0iDwP9Ig/gEd21IjQ0ZQO3/SGMEgUgByP/gSI011QcAAEiNfCQg6JsAAADrSkiNNcIHAABIjXwkIOhIAgAA6zdIjTWvBwAASI18JCDoVQEAAOskSI01nAcAAEiNfCQg6LIBAADrEUiNNYkHAABIjXwkIOi/AAAASYt9EEhjdCQcujAAAADozLv//0mLfRBIY/W6IAAAAOi7u///ZEiLBCUoAAAASDtEJFB1D0iDxFhbQVxBXUFeQV9dw+iXyAkADx+AAAAAAEFXQVZTSIHsEAIAAEmJ9kiJ+2RIiwQlKAAAAEiJhCQIAgAASYnnugACAABMif8x9uibyQkAuoAAAABIid9Mif5B/9ZkSIsEJSgAAABIO4QkCAIAAHUNSIHEEAIAAFtBXkFfw+goyAkADx+EAAAAAABBV0FWU0iB7BAEAABJifZIiftkSIsEJSgAAABIiYQkCAQAAEmJ57oABAAATIn/MfboK8kJALoAAQAASInfTIn+Qf/WZEiLBCUoAAAASDuEJAgEAAB1DUiBxBAEAABbQV5BX8PouMcJAA8fhAAAAAAAQVdBVlNIgewQBgAASYn2SIn7ZEiLBCUoAAAASImEJAgGAABJiee6AAYAAEyJ/zH26LvICQC6gAEAAEiJ30yJ/kH/1mRIiwQlKAAAAEg7hCQIBgAAdQ1IgcQQBgAAW0FeQV/D6EjHCQAPH4QAAAAAAEFXQVZTSIHsEAgAAEmJ9kiJ+2RIiwQlKAAAAEiJhCQICAAASYnnugAIAABMif8x9uhLyAkAugACAABIid9Mif5B/9ZkSIsEJSgAAABIO4QkCAgAAHUNSIHEEAgAAFtBXkFfw+jYxgkADx+EAAAAAABBV0FWU0iB7BAKAABJifZIiftkSIsEJSgAAABIiYQkCAoAAEmJ57oACgAATIn/Mfbo28cJALqAAgAASInfTIn+Qf/WZEiLBCUoAAAASDuEJAgKAAB1DUiBxBAKAABbQV5BX8PoaMYJAA8fhAAAAAAAQVZTSIPsaEmJ+GRIiwQlKAAAAEiJRCRgi08gSItHEEyLVxjHRCQcAAAAAEiJdCQgSIlUJCiNeR+FyQ9J+UGJ+0HB+wWNkZ8AAACNmb4AAACF0g9J2sH7BY0Um40UU0hj0khp0mdmZmZIidNIwes/SMHqIMH6AgHaiVQkDIPn4Cn5SInHSNPnRTH29sFASQ9F/kGxIEEoyUyJ00SJyUjT60wPrdBJY8tB9sFASA9Fw4k8jkkPRd5IicdICd90M0iNDI5Ig8EEZi4PH4QAAAAAAEiJ34kBSA+s2CBIwesgQYPDAUiDwQRIhcB15UjB7yB130WF23h1TGPKSbpTWpugL7hEAGYuDx+EAAAAAAAPHwBEid9Ig8cBMckPH4AAAAAAi0S+/EjB4SBICcFIichIwegJSffiSMHqC4lUvvxIacIAypo7SCnBSIPH/3/TSWPDMf+DPIYAQA+Ux0mNUf9BKftCiUyO/EmJ0XmljUIBiUQkCEhjwosEhoXAdC6JwrnNzMzMSA+v0UjB6iMB0o0UkonGKdZAgM4wx0QkHAEAAABAiHQkGIP4CnN0SItEJChIiUQkUItEJAhIi0wkDItUJBSKXCQYiFwkQA+3dCQZZol0JEGKXCQbiFwkQ4t0JByJdCRESIt0JCBIiXQkSIlEJDBIiUwkNIlUJDxJizhIjXQkMEH/UAhkSIsEJSgAAABIO0QkYHVhSIPEaFtBXsO6AQAAAGYuDx+EAAAAAAAPHwCJxonASA+vwUjB6CNIicdID6/5SMHvIwH/jTy/icMp+4DLMI16AYl8JBy/CAAAACnXSGPXiFwUEIP+ZA+COf///4tUJBzruejkwwkADx9AAFVBV0FWQVVBVFNIg+xISYn/ZEiLBCUoAAAASIlEJEAPEAYPEE4QDylEJBAPKUwkIEiLRiBIiUQkMItEJBQrRCQQjQTAi1wkJAHYSGPwSIsHSGNQBEiLSAhIhdJ1CvZBAQh1BDHS6wRIg8IBSAHygDgBSIPa/4txBEUx9oX2eDK/AAAAAL0AAAAASDnyczAp1opJATHt9sEBdR1BifZMifdIwecg9sEQSA9E/UwPRfXrDTH/Me3rB0Ux9jH/ifVIiSwkSQn+SIt4EElj9rogAAAA6Aq2//9JiweKCITJdBRIi3gQD77RvgEAAADo8LX//0mLB0iLeBBJwf4gTIn2ujAAAADo2LX//0yNZCQhQb3NzMzMTIl8JAgPH4QAAAAAAIXbdHlJiwdIi2gQSGPbTYnmSSneSAFdEEiLVRhIiehIKdBIBSAEAABIOdh2I0iJ10yJ9kiJ2ui1xAkASAFdGOs8Zi4PH4QAAAAAAA8fRAAATYnnTI1lIEwp4kiLfQBMieb/VQhMiWUYTYn8TIt8JAhIi30ATIn2SIna/1UISGNEJBA7RCQUfVGNSAGJTCQQSItMJCiLBIEx2w8fgAAAAACJwUkPr81IwekjjRQJjRSSKdAMMI1TAYlUJCS6CAAAACnaSGPSiEQUGItcJCSJyIP7CXzM6Sf///9JiweDeAQAdQ5Ii0gI9kEBCHUEMfbrGkiLeBC+AQAAALouAAAA6L20//9JiwdIY3AESIt4ELowAAAA6Ki0//9JiwdIi3gQSGM0JLogAAAA6JO0//9kSIsEJSgAAABIO0QkQHUPSIPESFtBXEFdQV5BX13D6G/BCQBmLg8fhAAAAAAADx9EAABVQVdBVlNIg+woSYn4ZEiLBCUoAAAASIlEJCBEi18gRY1TH0WF20SJ2EEPSMJBicFBwfkFg+DgRIndKcVIi18QsSBAKOlIid9I0+dFMfb2wUBJD0X+TYt4GEyJ+InpSNPoTA+t+0ljyUD2xUBID0XYiTyOSQ9FxkiJ30gJx3QvSI0sjkiDxfxmDx+EAAAAAABIiceJXQBID6zDIEjB6CBIg8X8SIXbdehIwe8gdeJBg/vhD4yCAAAARInPTI1fAUGD+j9zBUUx9utPTInbSIPj/kj320Ux9mYPH4QAAAAAAItEvvyLLL5IjWytAEmNLG6JLL5Iwe0gSI0EgEyNNEUAAAAASQHuRIl0vvxJwe4gSIPH/kiDwwJ1x0H2wwF0E4sEvkiNBIBNjTRGRIk0vknB7iCDPI4BQYPZAESJdCQIRIlMJAxIiXQkEEiJVCQYSYs4SI10JAhB/1AIZEiLBCUoAAAASDtEJCB1C0iDxChbQV5BX13D6Oa/CQBmDx9EAABVQVdBVkFVQVRTUEiLB4N4BAAPhLECAABJifpIi0cIgzgAD46hAgAARItmBEiLXghEiw5EieVMiRQkZg8fRAAARYXJdQiF7Q+IfAIAAIXtD4hLAQAAielMjUEBhe0PhE0BAABMicZIg+b+SPfeRTHti3yL/IsUi0iNFJJIjRRVAAAAAEwB6okUi0jB6iBIjTy/TI0sekSJbIv8ScHtIEiDwf5Ig8YCdchB9sABdBSLFItIjRSSTY1sVQBEiSyLScHtIEhjzY1V/4M8iwBED0TiD0TqQYP9CQ+FxgAAAEUx7UUx/+skZi4PH4QAAAAAAJBNY+RCgzyjAUGD3ABEieVIg/oJD4W5AAAAQYPHAYXtD4izAAAAielIjXEBhe10UUiJ90iD5/5I998x0g8fRAAAi2yL/IsEi0iNBIBIjQRCiQSLSMHoIEiNFK0AAAAASAHqSI0UUIlUi/xIweogSIPB/kiDxwJ1yUD2xgF0g+sNkDHSQPbGAQ+EdP///4s0i0iNNLZIjRRyiRSLSMHqIOld////Zi4PH4QAAAAAAA8fAEUx7UUx/+skDx+EAAAAAABFMe1B9sABD4Xx/v//6QD///9EieVBidVJwecgTIn5SMHpIESNcQFJi0IIixBBOdZ9VUmLAkiLeBBBgMEwQQ++0b4BAAAA6OWw//9IiwQkSIsASIt4EEnB/yBMif66OQAAAOjJsP//TIsUJEmLQghEKTBJi0IIgzgARYnpD48O/v//6ZIAAAA5yn4NQYP9BX8HdURFheR4JUmLAkiLeBBBgMExQQ++0b4BAAAATInT6Hyw//9Ii0MIgwD/61yFyXXXRInIwegfRAHIg+D+RInJKcGD+QF0wUmLAkiLeBBBgMEwQQ++0b4BAAAATInT6D2w//9IiwNIi0sISIt4EEhjMUiDxv+6OQAAAOghsP//SItDCMcAAAAAAEiDxAhbQVxBXUFeQV9dww8fhAAAAAAAsIAoyInBSA+l/kjT5zHJqEBID0X3SA9Ez0mJ0UiFyUAPlcdFhcB+VkiFyXRRQboKAAAAZi4PH4QAAAAAAA8fAEiJyEn34kiJ10iJwUiJ8En34kiJxkgB/kiD0gBEicCAwjBBiBFJg8EBRI1A/0iFyUAPlceD+AJ8BUiFyXXCRYXAfi9Bg8ABuQoAAAAPH0AASIX2dCJIifBI9+GAyjBBiBFJg8EBQYPA/0iJxkGD+AF/3kiF9ngETInIw0i4AAAAAAAAAIBIOcYPlcBACPg8AXUkSY1B/+sMDx+EAAAAAABIg8D/D7YQgPoudPSA+jl1VsYAMOvqSY1B/zHJQYB5/y4PlMFIKciKEInWQMDuB0AA1kCA5v6J0UAo8YD5AXQY65VmLg8fhAAAAAAADx9AAA+2UP9Ig8D/gPoudPOA+jl1BcYAMOvpgMIBiBBMicjDVUFXQVZBVUFUU0iD7ChEicVBic1JiddIiXQkCEmJ/kyNZCRgSItHCIt4BEGKDoX/eEZJi3QkCEhj1UiJVCQYTAH6SIl0JCBIAfKA+QFIg9r/SDn6c3op14pIATHt9sEBdXuJ+kiJ0EjB4CD2wRBID0TFSA9E6utchMl0EUmLfhAPvtG+AQAAAOgjrv//TYX/D4QuAgAASYteEEwBexBIi1MYSInYSCnQSAUgBAAATDn4D4blAQAASInXSIt0JAhMifroGb0JAEwBexjp9AEAADHtMcAxyUiJTCQQ6wdIiXwkEDHASAnFSYt+EEhj9bogAAAA6Lit//9BigaEwHQRSYt+EA++0L4BAAAA6KCt//9Fie1NOf1MietJD0ffSIXbdGdNi2YQSQFcJBBJi1QkGEyJ4Egp0EgFIAQAAEg52HYXSInXSIt0JAhIidroj7wJAEkBXCQY6yxJjXQkIEgp8kmLPCRB/1QkCEmNRCQgSYlEJBhJizwkSIt0JAhIidpB/1QkCEyNZCRgSYt+EEjB/SBIie66MAAAAOgSrf//TTn9D4etAQAATSnvdFtJi24QSItcJAhMAetMAX0QSItVGEiJ6Egp0EgFIAQAAEw5+HYUSInXSIneTIn66AG8CQBMAX0Y6yJMjW0gTCnqSIt9AEyJ7v9VCEyJbRhIi30ASIneTIn6/1UISYt+EEiLdCQYujAAAADolqz//0iLXCQgSIXbdFdJi24QTYskJEgBXRBIi1UYSInoSCnQSAUgBAAASDnYdhRIiddMieZIidrojbsJAEgBXRjrIkyNfSBMKfpIi30ATIn+/1UITIl9GEiLfQBMieZIidr/VQhJi34QSGN0JBC6IAAAAEiDxChbQVxBXUFeQV9d6RSs//9NieVMjWMgTCniSIs7TInm/1MITIljGE2J7EiLO0iLdCQITIn6/1MISYt+EEhj9bowAAAA6Nur//9Ji1wkCEiF23QzSYtuEE2LPCRIAV0QSItVGEiJ6Egp0EgFIAQAAEg52HYhSInXTIn+SIna6NK6CQBIAV0YSIPEKFtBXEFdQV5BX13DTI11IEwp8kiLfQBMifb/VQhMiXUYSIt9AEiLRQhMif5IidpIg8QoW0FcQV1BXkFfXf/g6Pe6CQAPH4AAAAAAVUFXQVZBVUFUU0iD7CiD+id+BzHA6Z8KAABJicxBideJ8UiJ+0mNbCQpTY10JGBJiWwkYE2NXCRYSYlsJFiF9g+InAAAAIP5Cw+OMgEAAEmJLkmJK4P5S3+5RTHtSQ+l3UjT4zHA9sFATA9F60gPRdhIidhMCegPhMECAABIiWwkGEyJXCQITIlEJCBMiXQkELoKAAAASInfTInuMcnozaz//0mJxkyJ7gHAjQyAidgpyAwwQYhEJChIg/sKTInpSIPZAA+DFwQAAEmDxChMi3QkEEyLXCQISItsJBjppgQAAIP5xA+N2QAAAEmJLkmJK4P5hA+MGf////fZScfC/////0nT4jHSSInYSA+t0EnHxf/////2wUBND0XqTA9F0kn31Un30kgPRcJIicJIg8oAD4QZBgAAD7bQadLNAAAAweoKg+L+jRSSKNAMMEmNVCQnSYlUJFhBiEQkJ0HGRCQoLkwh00HHAAAAAABFhf8PiLYGAABNidxFMdvpSwcAAEjT40iF2w+EkAAAAEi/zczMzMzMzMxIidhI9+dIidFIwekDjQQJjRSAidgp0AwwQYhEJChIg/sKc21Jg8Qo6d8AAAD32UnHwf////9J0+FJ99FIid9I0+9Ihf8PhFQBAABJus3MzMzMzMzMSIn4SffiSInWSMHuA40ENo0UgIn4KdAMMEGIRCQoSIP/Cg+DNQEAAEmDxCjppgEAAEG8/////+mVAAAASInISPfnweoCg+L+jQSSicopwoDKMEmNRCQnSYlEJFhBiFQkJ0iD+2RyRmYuDx+EAAAAAAAPHwBJiytIichI9+dIidZIwe4DSInwSPfnweoCg+L+jQSSifIpwoDKMEiNRf9JiQOIVf9Ig/ljSInxd8dJiy5NiyNBigQkSY1MJP9JiQtBiEQk/0mLA8ZAAS5B99RBAexFiSBFKedFhf94Cw+FNgUAAOnkBwAARIn/999JixaJ/kiJ0Ugp8Uj33kmJDoA5NQ+OlQEAAEiNQf9JixNIOdBzH+nmBAAAZi4PH4QAAAAAAA8fAEiDwP9IOdAPgsgEAAAPtgiA+S5064D5OQ+FQQcAAMYAMEmLE+vaTCHL6RIBAABBvP/////pXgIAAEiJ8En34sHqAoPi/o0EkonyKcKAyjBJjUQkJ0mJRCRYQYhUJCdIg/9kckVmLg8fhAAAAAAAZpBJiytIifBJ9+JIiddIwe8DSIn4SffiweoCg+L+jQSSifopwoDKMEiNRf9JiQOIVf9Ig/5jSIn+d8dJiy5NiyNBigQkSY1UJP9MIctJiRNBiEQk/0mLA8ZAAS5EKeV0cYPF/0GJKEEp7w+JTwIAAEH330mLFkSJ/kiJ0Ugp8Uj33kmJDoA5NX8RsAEPhakGAABIhdsPhNIGAABIjUH/SYsTSDnQcxLpogYAAEiDwP9IOdAPgpEGAAAPtgiA+S5064D5OQ+FnAYAAMYAMEmLE+vaQccAAAAAADHASIXbD4S0AQAAZi4PH4QAAAAAAA8fQABIAdtIjRybg8D/TDnLdvFBiQDpkQEAALABD4UqBgAAg/8BdCpmLg8fhAAAAAAAZpAPtkQyATwwdQ1IjX4BSIP+/kiJ/nXqPDAPhTT+//+KQf88LnUDikH+icLA6gcAwoDi/ijQPAEPhBb+///pGgMAAEmJ1UiJ9boKAAAATIn3TInuMcnoBxYAAAwwSY1MJCdJiUwkWEGIRCQnSIP7ZEiD3QBMi1wkCHJgDx+AAAAAAE2LI7oKAAAATIn3TInuMcnoO6j//0iJw0iJ1boKAAAASInHSInuMcnosxUAAEyLXCQIDDBJjUwk/0mJC0GIRCT/uGMAAABMOfC4AAAAAEwZ6EmJ3kmJ7XKnTIt0JBBJiy5NiyNBigQkSY1MJP9JiQtBiEQk/0mLA8ZAAS5B99RBAexMi0QkIEWJIEUp50WF/3gLD4XiBAAA6foEAABEif/330mLFon+SInRSCnxSPfeSYkOgDk1D467AQAASI1B/0mLE0g50HMV6ZYEAAAPHwBIg8D/SDnQD4KCBAAAD7YIgPkudOuA+TkPhcoEAADGADBJixPr2jHbSInYSNPoBDBJixNIjXL/SYkziEL/SYsGSI1QAUmJFsYALkwhy0WF/w+OggAAAEH2xwF1BUSJ+OsiSAHbSI0cm0iJ2EjT6EwhywQwSYsWSI1yAUmJNogCQY1H/0GD/wF0T4PAAg8fQABIAdtIjRSbSInWSNPuTCHKQIDGMEmLPkiNbwFJiS5AiDdIAdJIjRySSInaSNPqTCHLgMIwSYs2SI1+AUmJPogWg8D+g/gCf7hIAdtIjRSbSInQSNPog/gFfzCwAQ+F1wMAAEyFynUjSYsWikr/gPkudQOKSv6JysDqBwDKgOL+KNGA+QEPha8DAABJixZIjUL/SYsLSDnIcxDrKw8fRAAASIPA/0g5yHIZD7YQgPoudO+A+jkPhRUDAADGADBJiwvr3kiNUAHGADFJiQPpEAMAAE2J3EUx20HHAAAAAABMIdMPhCcBAABBuQoAAAAx7ZBIidhJ9+FLjTSbTI0ccoPF/0iJw0k5wkyJ6EwZ2HPhQYko6fkAAACwAQ+FGgMAAIP/AXQeD7ZEMgE8MHUNSI1+AUiD/v5Iif516jwwD4Ua/v//ikH/PC51A4pB/onCwOoHAMKA4v4o0DwBD4T8/f//6bACAABIjUgBxgAxSYkDZsEBCEGDAAFJgwb/RYX/D46zAgAAQYPHAQ8fhAAAAAAASYsGSI1IAUmJDsYAMEGDx/9Bg/8Bf+npiwIAAEH330mLFkSJ/kiJ0Ugp8Uj33kmJDoA5NX8RsAEPhWsCAABIhdsPhNwCAABIjUH/SYsTSDnQcxLpZAIAAEiDwP9IOdAPglMCAAAPtgiA+S5064D5OQ+FXgIAAMYAMEmLE+vaMdtIidhMD63YTInaSNPq9sFASA9E0IDCMEyJ5kmLBCRIjWj/SYksJIhQ/0mLBkiNUAFJiRbGAC5MIdNNIetFhf8Pjt0AAABB9scBdQVEif3rQLoKAAAASInYSPfiS400m0yNHHJIicNMD63YTInaSNPq9sFASA9E0Ewh000h64DCMEmLBkiNaAFJiS6IEEGNb/9Bg/8BD4SIAAAAg8UCQbkKAAAAZi4PH4QAAAAAAA8fAEiJ2En34UuNNJtIjRxySInHSA+t30iJ3kjT7kwh60wh0En34UiNHJtMjRxaSInDTA+t2EyJ2kjT6vbBQEgPRPdJiz5ID0TQQIDGMEiNRwFJiQZAiDdNIetMIdOAwjBJiwZIjXABSYk2iBCDxf6D/QJ/jroKAAAASInYSPfiSInDS40Em0iNFEJIidhID63QSInWSNPu9sFASA9E8IP+BX82sAEPhdAAAABMIdNMIepICdp1I0mLFopK/4D5LnUDikr+icrA6gcAyoDi/ijRgPkBD4WiAAAASYsWSI1C/0mLDCRIOchzEusxDx+AAAAAAEiDwP9IOchyHQ+2EID6LnTvgPo5dQnGADBJiwwk6+GAwgGIEOthSI1QAcYAMUmJBCRmwQIIQYMAAUmDBv/rSIDBAYgIRYX/D4+H/f//6zhIjUgBxgAxSYkDZsEBCEGDAAFJgwb/RYX/fh1Bg8cBZpBJiwZIjUgBSYkOxgAwQYPH/0GD/wF/6bABSIPEKFtBXEFdQV5BX13DSI1IAcYAMUmJA2bBAQjrjYDBAYgIRYX/f7jr04DBAYgI68xBg/8BdCAPtlwyAYD7MHUNSI1+AUiD/v5Iif516YD7MA+FCPn//4pZ/4D7LnUDiln+idrA6gcA2oDi/ijTgPsBD4To+P//64ZBg/8BdCAPtlwyAYD7MHUNSI1+AUiD/v5Iif516YD7MA+F/vz//4pZ/4D7LnUDiln+idrA6gcA2oDi/ijTgPsBD4Te/P//6Tv///9mkFVBV0FWQVVBVFNIg+xYSYn1SIn98g8RBCRkSIsEJSgAAABIiUQkUItHBItPCEUx/4XARA9J+IXJQbz/////RA9J4Q9XwA8pRCQwDylEJEBMjXQkMcZEJDAlD7Z3AUiNfCQQ6Am3//8PtlwkEPbDAXQMSIt0JCBIi1wkGOsISNHrSI10JBG5HwAAAEyJ90iJ2ugbvwkASAHjSIPDMfZEJBABdApIi3wkIOjTqQkAxkMCKmbHAyouSA++RQBIg/gRdwxIjQ3wIu3/igQI6wIxwIhDA8ZDBAC/EAIAAOiAqQkASInDSIlEJCAPKAXhWpP+DylEJBAx7boBAgAASInHMfboC60JAEiNVCQwvgACAABIid9EiflFieDyDxAEJLAB6Ky7CQCFwA+IBQEAAEyJbCQISI1cJBE9AAIAAHNVMcmEyXUFSItcJCBJidxAtQGFwEiLXCQID4TWAAAAQYnGTAFzEEiLUxhIidhIKdBIBSAEAABMOfAPhpYAAABIiddMieZMifLod60JAEwBcxjpnwAAAEyNbCQQTI10JDAx7esMSItUJBiJxkg58neTg8ABTInvSInGMdLopLcJAA+2dCQQQPbGAXQZSIt8JCBIi3QkGOsTZi4PH4QAAAAAAA8fAEjR7kiJ30yJ8kSJ+UWJ4PIPEAQksAHo1boJAIXAeDIPtlQkEPbCAQ+UwXWUSNHq65RMjXsgTCn6SIs7TIn+/1MITIl7GEiLO0yJ5kyJ8v9TCPZEJBABdApIi3wkIOg+qAkAZEiLBCUoAAAASDtEJFB1EYnoSIPEWFtBXEFdQV5BX13D6GiqCQDMzMzMzMzMzEFWU0iD7BgPKQQkSYn+8w8QBQpIk/6/QAAAAOjgvQkADygMJA8uyA8owXMEMdvrZL/A////6Ma9CQDzSA8swEiJwUjB+T/zD1wF7keT/vNIDyzYSCHLSAnDeAoPV8DzSA8qw+saSInYSNHoidmD4QFICcEPV8DzSA8qwfMPWMC/QAAAAOh3vQkADygMJPMPXMgPKMHzSA8swEiJwUjB+T/zD1wFlEeT/vNIDyzQSCHKSAnCSYkWSYleCEiDxBhbQV7DZi4PH4QAAAAAAA8fQABBVlNIg+wYDykEJEmJ/vIPEAV6Zez/v0AAAADokLwJAGYPKAwkZg8uyHMIZg8owTHb62xmDygEJL/A////6G68CQDySA8swEiJwfIPXAUGZuz/SMH5P/JIDyzYSCHLSAnDZkgPbstmD2INslOT/mYPXA2aVpP+Zg8owWYPFcHyD1jBv0AAAADoJLwJAGYPKAwk8g9cyGYPKQwkZg8oBCTySA8swEiJwUjB+T/yD1wFpWXs//JIDyzQSCHKSAnCSYkWSYleCEiDxBhbQV7DDx8AQVdBVkFUU0iD7EhJif7bbCRw2zwkv5z////oAbwJANnA23wkFNs8JOhDvAkA3VwkMPIPEEQkMPJIDyzA8g9cBURl7P/ySA8syEmJx0nB/z9JIc8xyUkJx0yJfCQ4D5jB32wkOEyNJdVk7P9B2ASM22wkFN7h2zwkvzIAAADonrsJANnA23wkFNs8JOjguwkA3VwkKPIPEEQkKPJIDyzA8g9cBeFk7P/ySA8syEiJw0jB+z9IIcsxyUgJw0iJXCRAD5jB32wkQEHYBIzbbCQU3uHbPCS/MgAAAOhCuwkA2zwk6Iq7CQDdXCQg8g8QRCQg8kgPLMDyD1wFi2Ts//JIDyzISInCSMH6P0ghykgJwknB5yRIidhIweAySAnQSMHrDkwJ+0mJBkmJXghIg8RIW0FcQV5BX8NmDx+EAAAAAABVQVdBVkFUU0iD7DBJiddJifRIiftkSIsEJSgAAABIiUQkKEiLB0iLQOiLbAcID1fADykEJEjHRCQQAAAAAEiJ54np6PgBAABIiwNIi0DoTIt0AxhIx0QDGAAAAAAPtgQkqAF0D0iLRCQISSnGdxHpZwEAAEjR6Ekpxg+GWwEAAInoJLA8EHRzPCAPheMAAABIiwNIi2joi4QrkAAAAIP4/3VFSAHdTI18JCBMif9Iie7oCqoJAEiLNQNfCgBMif/oC6oJAEiLCEiJx74gAAAA/1E4QYnETIn/6AKqCQBBD77EiYWQAAAAD77QSInnTIn26Aq3CQDp4AAAAIHlSgIAAIH9CAIAAHVqTQn8dGVIiwNIi2joi4QrkAAAAIP4/3VFSAHdTI18JCBMif9Iie7ojKkJAEiLNYVeCgBMif/ojakJAEiLCEiJx74gAAAA/1E4QYnETIn/6ISpCQBBD77EiYWQAAAAD77ISInnvgIAAADrYEiLA0iLaOiLhCuQAAAAg/j/dUVIAd1MjXwkIEyJ/0iJ7ugnqQkASIs1IF4KAEyJ/+goqQkASIsISInHviAAAAD/UThBicRMif/oH6kJAEEPvsSJhZAAAAAPvshIiecx9kyJ8uhluQkAD7YUJPbCAXQMSIt0JBBIi1QkCOsISNHqSI10JAFIid/oMIH2/0iJw/YEJAF0CkiLfCQQ6B2jCQBkSIsEJSgAAABIO0QkKHUQSInYSIPEMFtBXEFeQV9dw+hIpQkADx+EAAAAAABVQVdBVkFVQVRTSIHsOAEAAInLSYnVSYn0SIl8JCBkSIsEJSgAAABIiYQkMAEAAInIg+BKg/gIdBuD+EB1LLgVAAAASIlEJAhJvgAAAAAAAACA6yq4DwAAAEiJRCQISb4AAAAAAAAAEOsUuBMAAABIiUQkCEm+AADoiQQjx4pIjWwkMA9XwA8RhCSQAAAADxGEJCABAAAPEYQkEAEAAA8RhCQAAQAADxGEJPAAAAAPEYQk4AAAAA8RhCTQAAAADxGEJMAAAAAPEYQksAAAAA8RhCSgAAAADxGEJIAAAAAPEUQkcA8RRCRgDxFEJFAPEUQkQA8RRCQwSI28JJgAAABIjQWqGgoASI1IGEiJTCQoSIPAQEiJhCSYAAAASInu6O2yCQBIx4QkIAEAAAAAAADHhCQoAQAA/////0yNPf8ZCgBJjUcYSIlEJBhIiUQkKEmDx0BMibwkmAAAAEiJ7+i9sgkASI0FrhoKAEiDwBBIiUQkEEiJRCQwD1fADxFEJHAPEYQkgAAAAMeEJJAAAAAQAAAASItEJChIi0DogeNKQgAAubW9//8jTAQwCdmJTAQwTTn0TInoSIPYAHMGMcAx2+sVTIngTDHwTAnodXu7AQAAAEUx5DHATDnzSInBSIPZAHNKSIXbSI1sJDBMi3QkCA+EwAEAAEiNfCQoSIne6OyoCQBIi0QkKEiLQOiBZAQw//3//0iLRCQoSItA6MeEBLgAAAAwAAAA6XsBAABIidlMMfFICcEPhZcAAAC+AQAAADHb6QsBAAC4fwAAAEyJ6U2F7XUIuD8AAABMieFID73JMcGD8T9JD73GKcEx0kwPpfJMifZI0+YxwPbBQEgPRdZID0XwhckPiDH///+DwQExwDHb6xpmDx+EAAAAAABID6zWAUjR6oPB/w+EJ////0gPpNgBSAHbSTn0TInvSBnXctxJKfRJg90ASSnVSIPLAevMun8AAABIicFIhcB1CLo/AAAASInZSA+9yTHRg/E/SQ+91inRMdJMD6XySdPmMfb2wUBJD0XWTA9F9oXJD4jO/v//g8EBMfbrEA8fAEkPrNYBSNHqg8H/dB5IAfZMOfNIicdIGddy5Uwp80iD2ABIKdBIg84B69VIhfYPhJD+//9MjWwkKEyJ7+iPpwkASItEJChIi0DogWQEMP/9//9Ii0QkKEiLQOjHhAS4AAAAMAAAAEiLRCQoSItA6EyLdCQITIl0BEBMie9Iid7oTKcJAEiNbCQwSItEJChIi0DoTIl0BEBIjXwkKEyJ5ugspwkASItcJCBIid9Iie7oLJL6/0iLRCQYSIlEJChMibwkmAAAAEiLRCQQSIlEJDD2RCRwAXQNSIu8JIAAAADo7J4JAEiJ7+gksAkASI01fRcKAEiDxghIjXwkKOgfsAkASI28JJgAAADoIrAJAGRIiwQlKAAAAEg7hCQwAQAAdRVIidhIgcQ4AQAAW0FcQV1BXkFfXcPo5aAJAA8fRAAAVUFXQVZBVFNIg+xASYnXSYn0SIn7ZEiLBCUoAAAASIlEJDhIiwdIi0Doi2wHCA9XwA8pRCQgSMdEJDAAAAAAQPbFSA+EFQEAAEyJ5kyJ+kiLA0iLQOiLTAMISI18JAjoPPv//w+2VCQI9sIBdAxIi3QkGEiLVCQQ6whI0epIjXQkCUiNfCQg6OSjCQD2RCQIAXQKSIt8JBjo850JAEiLA0iLQOhMi3QDGEjHRAMYAAAAAA+2RCQgqAF0D0iLTCQoSSnOdxTpsQEAAEiJwUjR6Ukpzg+GogEAAInpgOGwgPkQD4SiAAAAgPkgD4UfAQAASIsDTIt46EKLhDuQAAAAg/j/dUVJAd9MjWQkCEyJ50yJ/ugJowkASIs1AlgKAEyJ5+gKowkASIsISInHviAAAAD/UTiJxUyJ5+gCowkAQA++xUGJh5AAAAAPvtBIjXwkIEyJ9ugHsAkA6R0BAABNhf8PiHIBAAD3xQAIAAAPhNb+//9IjTUs75v/SI18JCDofKQJAOnA/v//QPbFSA+EZwEAAIHlSgIAAIH9CAIAAHVuTQn8dGlIiwNMi3joQouEO5AAAACD+P91RkkB30iNbCQISInvTIn+6FOiCQBIizVMVwoASInv6FSiCQBIiwhIice+IAAAAP9ROEGJxEiJ7+hLogkAQQ++xEGJh5AAAAAPvshIjXwkIL4CAAAA62RIiwNMi3joQouEO5AAAACD+P91RkkB30iNbCQISInvTIn+6OqhCQBIizXjVgoASInv6OuhCQBIiwhIice+IAAAAP9ROEGJxEiJ7+jioQkAQQ++xEGJh5AAAAAPvshIjXwkIDH2TIny6CWyCQAPtlQkIPbCAXQMSIt0JDBIi1QkKOsISNHqSI10JCFIid/o73n2/0iJw/ZEJCABdApIi3wkMOjbmwkAZEiLBCUoAAAASDtEJDgPhbsAAABIidhIg8RAW0FcQV5BX13DSI01FbWs/kiNfCQg6BajCQAx0kyJ5kj33kwZ+ulV/f//qAF0B0iLRCQw6wVIjUQkIYoAPC10CDwrD4V7/v//SIsDTIt46EKLhDuQAAAAg/j/dUZJAd9IjWwkCEiJ70yJ/ujhoAkASIs12lUKAEiJ7+jioAkASIsISInHviAAAAD/UThBicRIie/o2aAJAEEPvsRBiYeQAAAAD77ISI18JCC+AQAAAOnv/v//6FedCQDMzMzMzMzMSIPsGEmJ4Oh0kv//SIsEJEiLVCQISIPEGMPMzMzMzMxBV0FWU0mJ1kmJ/0iLP0mLXwhIOdNID0PaSIna6D+fCQBJAR9JKV8ITQF3EFtBXkFfw2YuDx+EAAAAAAAPH0AAVUFXQVZBVFNIhdIPhIYAAABJidRJifZJif/rCw8fQACJK02F5HRwQYN/CAB1aeitnwkASInDiyjHAAAAAABJiw++AQAAAEyJ90yJ4uh/rAkASIXAdBpJAUcQSQHGSSnEgzsAdb3ruWYPH4QAAAAAAIsDhcB0C4P4BHSnQYlHCOvfSYs/6DewCQCFwHSTQcdHCAkAAADryVtBXEFeQV9dw0iJ+ECA/gl3KonxSI0VzhPt/0hjDIpIAdH/4Q9XwA8RAEjHQBAAAAAAZscAAmjGQAIAww9XwA8RAEjHQBAAAAAAww9XwA8RAEjHQBAAAAAAxgAEZsdAAWhoxkADAMMPV8APEQBIx0AQAAAAAGbHAAJsxkACAMMPV8APEQBIx0AQAAAAAMYABGbHQAFsbMZAAwDDD1fADxEASMdAEAAAAABmxwACTMZAAgDDD1fADxEASMdAEAAAAABmxwACasZAAgDDD1fADxEASMdAEAAAAABmxwACesZAAgDDD1fADxEASMdAEAAAAABmxwACccZAAgDDD1fADxEASMdAEAAAAABmxwACdMZAAgDDZg8fRAAAVUFXQVZBVUFUU1BJiddJifRJif2DOQAPiNYAAABNOeUPhHECAABJic5JjV0BQYptAECA/UAPj60BAABAgP0wfz5IjTW4Eu3/McBmDx9EAABAD7bVD7YMFonKgOLggPrAdSqA4R9BCE8MTDnjD4SbAQAAD7YrSIPDAUCA/TF80YnoQID9OnwN6VwBAACwMECA/TB8ew+26IPF0Ew54w+EmAAAAOi4qQkASIsIuvj///9ID74D9kRBAQh0H4XSdBtIg8MBjXStAI0scIPF0IPCAUw543XbTInj6wRIg8MBPCR1XEGDPgAPhasBAABBxwb/////TInvTInmTIn6SIPECFtBXEFdQV5BX13pkQEAAECA/Sp1NEGATwwgTDnjD4R0AQAAigNIg8MBQYsOjVEBQYkWvf7///8pzesITInjQYBPDCBBiW8EicVAgP0uD4WVAAAAQYBPDCBMOeMPhDYBAABMjWsBSA++K+jyqAkASIsI9kRpAQh1LjHAQID9KnVhTTnlD4QOAQAAQIprAUiDwwJBiw6NQQFBiQa4/v///ynISYnd6zuJ6IPA0E055XQouvj///9JD75tAPZEaQEIdByF0nQYSYPFAY0EgI1ERdCDwgFNOeV13U2J5esESYPFAUGJRwhMietAD7bFSI0NDRHt/4oUAYTSeCJBiFcOQYsGg8ABQYkGQYkHSInYSIPECFtBXEFdQV5BX13DidZAgObAMcBAgP6AdeNMOeN03kiNcwFAijtAgP1jD5TAQID9aEEPlMBAgP9odRFECMB0DEHGRw0BTDnmdRrrO4DiP0CA/2x1HID6AnUXQcZHDQNMOeZ0I0CKewFIg8MCSIne6wRBiFcNQA+2x4oUAUiJ84TSD4lj////McDpb////2aQQVdBVkFVQVRTSDn3D4TRAwAASYn9RA+2J0GNRCTPPAgPh70DAABJidZJifdJg8UBQYPE0Ek59Q+EHAMAAOh+pwkASIsITY1H/774////SQ++VQD2RFEBCHQkhfZ0IEmDxQFDjTykRI0kekGDxNCDxgFNOf112E2JxUyJ+esESY1NAUWJ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AACASI1Y/0WE9kgPRdhIidhIg8QYW0FcQV1BXkFfXcNBg/j/D4QgAQAATIkMJEG9AChr7kEp7UiF20QPSe1IidhIwfg/SDHYuwAoa+5I9+O9AChr7kkBxUiD0gBIidZIiVQkCEQpxUiFyUEPSehIichIwfg/SDHISPfjSYnXSLsAAAAAAAAAgEgBxUmD1wCJfCQUTInvSInqTIn56Beo/v9Iuf////8BAAAASCHRSInWSMHuP0gPpMIBSAnySYnZD5XCSI17/0WE9kiJ+0kPRdlFMcCEVCQUSA9E2EwPRMFIidhI9+VMD6/7TAH6TYnvSQ+v6EgB1Ukpx0iLdCQISIPeAEgp7nRQSIH+AJQ1d3JhD5TARCDgPAFIiwwkdRJMicpNhf9BvwAAAAAPhJYAAABBD7bESLr/////////f0gBwkG//////+t9SYkZQYlpCDHb6bb+//9MifhIwegLSLmV1iboCy4RAEj34UjB6gnrKLoAKGvuSIl8JAhMif9Mic0xyU2Jxegsp/7/TYnoSIt8JAhJielIicJIiwwkacIA2JQRQQHHRYTkdBtFhf90EEj30rgAKGvuRCn4QYnH6wZI99pFMf9IiRFEiXkIRYT2dBBJCdh0C0j320wJy+kr/v//SCH76SP+//+J6PfYSBnASCnYSInCSAnKSMHqIHQKMdJI9/FIicPrBjHS9/GJw0j320iJ0Ej32IXtSPfSSA9E0OlJ/f//idgx0vfxicPpPP3//w8fAEiJ+ItPCL//////SDn5dG2D+v90R0yLAE2NFDBMiRBBidG/AChr7kwpz0g5z38NSYPCAUyJEIHBANiUEQHRiUgISIX2eB1NOcJ9Mrn/////SL7/////////f+sbuf/////rFE05wn4Vuf////9IvgAAAAAAAACASIkwiUgIw2aQSIn4i08Ig/n/dHiD+v90PUyLAEyJx0gp90iJODnRcw1Ig8f/SIk4gcEAKGvuKdGJSAhIhfZ4Mkw5x35Huv////9IuQAAAAAAAACA6zAx0kiF9g+Zwki5/////////39IAdG6/////+sUTDnHfRW6/////0i5/////////39IiQiJUAjDZi4PH4QAAAAAAGaQVUFXQVZBVUFUU0iD7BiLRwiD+P8PhI8AAABMiwdBvQAoa+5BKcVNhcBED0noTInASMH4P0wxwLkAKGvu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AABIO0QkIHUKSInYSIPEKFtdw+j0qAgADx9AAFNBidBIifFIiftIizeLVwgx/0mJ2eiW8///SInYW8OQg/7/dAlIhdJ1GIXJdRRIMfpIweo/SI0FxFWS/vIPEATQw4P5/3Q78kgPKs/yDxAVrGTr//IPWcqJ8PJIDyrA8g9YwQ9XyfJIDyrK8g9ZyonID1fS8kgPKtDyD1jR8g9ewsMPV8DDZi4PH4QAAAAAAEFWU0iD7BhBichIidGJ80mJ/mRIiwQlKAAAAEiJRCQQSIk8JIl0JAhJieEx/0yJ9ona6Ony//+D+/90REiLDCSLdCQIg/7/dEFMifBIKcgx/zneQA+Xx42TAChr7g9G00gp+CnySIXJeDxMOfB+S7r/////SLgAAAAAAAAAgOs6uv////9MifDrMDHSSIXJD5nCSLj/////////f0gB0Lr/////6xRMOfB9D7r/////SLj/////////f2RIiwwlKAAAAEg7TCQQdQhIg8QYW0Few+iJpwgAZg8fhAAAAAAAVUFXQVZBVFNIg+wgQYnPSYnWifVIiftkSIsEJSgAAABIiUQkGEm8AAAAAAAAAIBIiXwkCIl0JBBMjUwkCDH/SIneiepMifFFifjo8fH//4P9/3RFSItMJAiLdCQQg/7/dElIidhIKcgx/znuQA+Xx42VAChr7g9G1Ugp+CnySIXJeERIOdh+U7r/////SLgAAAAAAAAAgOtCuv////9IidhMOeN0P+k4AQAAMdJIhckPmcJIuP////////9/SAHQuv/////rFEg52H0Puv////9IuP////////9/SDnYdRdMOeN1HIPFAY1KAUyJ4znNchfp7AAAAEiJw38N6eIAAAA56g+G2gAAAE2F9nQ3eTi4/////0i5/////////39Bg///D4SjAAAARYX/D4WMAAAATTnmD4SRAAAASffeMcDphAAAAEUx9oP6/w+EigAAAEGD//90NY2KAChr7kQ5+kiJ2EwZ8EQ5+g9DyonKRCn6TYX2eDJIOdh+aLr/////SLgAAAAAAAAAgOtXMclNhfYPmcFIuP////////9/SAHIuv/////rO0g52H02uv////9IuP////////9/6yVJ99a4AChr7kQp+EyJ8UmJzkGJx4P6/w+Fdv///7r/////SInYZEiLDCUoAAAASDtMJBh1DUiDxCBbQVxBXkFfXcPoe6UIAGYuDx+EAAAAAACQVUFXQVZBVFNIg+wgQYnPSYnWifVIiftkSIsEJSgAAABIiUQkGEm8AAAAAAAAAIBIiXwkCIl0JBBMjUwkCDH/SIneiepMifFFifjo4e///4P9/3RFSItUJAiLdCQQg/7/dE5IidhIKdAx/znuQA+Xx42NAChr7g9GzUgp+CnxSIXSeElIOdh+WLn/////SLgAAAAAAAAAgOtHuf////9Iidi6/////0w543Q/6RsBAAAxyUiF0g+ZwUi4/////////39IAci5/////+sUSDnYfQ+5/////0i4/////////39IOdh1GUw543UgjXEBg8UBTInjico57nIb6c0AAABIicOJynwP6cEAAACJyjnpD4O3AAAATYX2dCh5P7j/////SLr/////////f0GD//90JEWF/3URTTnmdBpJ994xwOsQRTH26xRJ99a4AChr7kQp+EyJ8kmJ1kGJx7r/////g/n/dElBg///dEhJjTQeic9Eifi9AChr7kgpxY2RANiUETHASDn9D0/RD57ASAHwRAH6TYX2eCBIOdh9L7r/////SLj/////////f+seSInY6xlMifDrFEg52H4Puv////9IuAAAAAAAAACAZEiLDCUoAAAASDtMJBh1DUiDxCBbQVxBXkFfXcPog6MIAA8fAEiB/v/Jmjt3CcHmAkiJ+Inyw0i5s5TWJugLLhFIifBI9+lIidBIweg/SMH6GkgBwkhpwgDKmjtIKcZJifBJwfg9SQHQjQS1AAAAAEiF9roAKGvujRSyD0nQSY0EOInRwekLgfllzR0ASIPY/42yANiUEYH5Zc0dAA9C8k2FwHgXSDn4fQ++/////0i4/////////3+J8sNIOfh++L7/////SLgAAAAAAAAAgInyw2aQSIH+P0IPAHcKadagDwAASIn4w0i52zS214LeG0NIifBI9+lIidBIweg/SMH6EkgBwkhpwkBCDwBIKcZIacagDwAAuQAoa+4BwUmJwEnB+D9JAdBIhfYPSchJjQQ4ic7B7guB/mXNHQBIg9j/jZEA2JQRgf5lzR0AD0LRTYXAeBVIOfh9D7r/////SLj/////////f8NIOfh++rr/////SLgAAAAAAAAAgMNmDx9EAABIg+wYifBIif5kSIsMJSgAAABIiUwkEEiJ+UjB6SF1D0hpzgDKmjvB6AJIAcjrF0mJ4b8BAAAAicIxyUG4BAAAAOia7P//ZEiLDCUoAAAASDtMJBB1BUiDxBjD6MChCABIg+wYifJIif5kSIsEJSgAAABIiUQkEEiJ+EjB6Ct1GUhpzkBCDwCJ0EhpwNNNYhBIwegoSAHI6xVJieG/AQAAADHJQbigDwAA6DLs//9kSIsMJSgAAABIO0wkEHUFSIPEGMPoWKEIAA8fhAAAAAAASIPsGInySIn+ZEiLBCUoAAAASIlEJBBIifhIweg1dRlIac7oAwAAidBIacCD3htDSMHoNEgByOsVSYnhvwEAAAAxyUG4AAk9AOjC6///ZEiLDCUoAAAASDtMJBB1BUiDxBjD6OigCAAPH4QAAAAAAIP+/w+VwEiF/w+YwSDBhfYPlcAgyA+2wEgB+MMPH0AASIn4g/7/dDdIhcAPmMGF9g+VwiDKD7bKSAHBSLqJiIiIiIiIiEiJyEj36kiJ0EgByEiJwUjB6T9IwfgFSAHIw0iJ+IP+/3Q0SIXAD5jBhfYPlcIgyg+2ykgBwUi6BXzzauJZ0UhIichI9+pIidBIidFIwek/SMH4CkgByMMPHwCD/v90IfJIDyrP8g9ZDT5c6/+J8PJIDyrA8g9YwfIPWQVrXOv/w0jB7z9IjQUfTZL+8g8QBPjDZg8fhAAAAAAAg/7/dCHySA8qz/IPWQ3+W+v/ifDySA8qwPIPWMHyD14Fu1vr/8NIwe8/SI0F30yS/vIPEAT4w2YPH4QAAAAAAIP+/3Qh8kgPKs/yD1kNvlvr/4nw8kgPKsDyD1jB8g9eBSNd6//DSMHvP0iNBZ9Mkv7yDxAE+MNmDx+EAAAAAACD/v90IfJIDyrP8g8QFX5b6//yD1nKifDySA8qwPIPWMHyD17Cw0jB7z9IjQVfTJL+8g8QBPjDZg8fhAAAAAAAg/7/dCHySA8qz/IPWQ0+W+v/ifDySA8qwPIPWMHyD14FM1vr/8NIwe8/SI0FH0yS/vIPEAT4w2YPH4QAAAAAAIP+/3Qh8kgPKs/yD1kN/lrr/4nw8kgPKsDyD1jB8g9eBetb6//DSMHvP0iNBd9Lkv7yDxAE+MNmDx+EAAAAAABIifiD/v90C4nySIXAeCXB6gLDSLn/////////fzH2SIXASI1BAbr/yZo7SA9I1kgPScHDjUoDgfkAKGvucg5Ig8ABgcID2JQRweoCw4nKweoCw2YuDx+EAAAAAAAPHwBIifiD/v90CkiFwHgpwe4C63VIuf////////9/SIXASI1BAbr/yZo7vucDAAAPSfJID0nB61GNTgOB+f8na+52J0iNSAGBxgPYlBHB7gKNlucDAAAx/0iD+P8PTdZID0z5idZIifjrH4nOwe4CgflkGGvucgxIg8ABgcbnOWXE6waBxucDAACJ8Uhp0dNNYhBIweomw2YuDx+EAAAAAACQSIPsGInwSIn+ZEiLDCUoAAAASIlMJBCD+P90GEiJ8UjB6SF1JkhpzgDKmjvB6AJIAcjrLki5/////////39IjUEBSIX2SA9JwesXSYnhvwEAAACJwjHJQbgEAAAA6B7o//9kSIsMJSgAAABIO0wkEHUFSIPEGMPoRJ0IAA8fQABIg+wYifJIif5kSIsEJSgAAABIiUQkEIP6/3QiSInwSMHoK3UwSGnOQEIPAInQSGnA001iEEjB6ChIAcjrLEi5/////////39IjUEBSIX2SA9JwesVSYnhvwEAAAAxyUG4oA8AAOiW5///ZEiLDCUoAAAASDtMJBB1BUiDxBjD6LycCABmLg8fhAAAAAAAZpBIg+wYifJIif5kSIsEJSgAAABIiUQkEIP6/3QiSInwSMHoNXUwSGnO6AMAAInQSGnAg94bQ0jB6DRIAcjrLEi5/////////39IjUEBSIX2SA9JwesVSYnhvwEAAAAxyUG4AAk9AOgG5///ZEiLDCUoAAAASDtMJBB1BUiDxBjD6CycCABmLg8fhAAAAAAAZpCD/v90FEiF/w+YwIX2D5XBIMEPtsFIAfjDSLn/////////f0iNQQFIhf9ID0nBw5CD/v90OEiF/w+YwIX2D5XBIMEPtslIAflIuomIiIiIiIiISInISPfqSInQSAHISInBSMHpP0jB+AVIAcjDSLn/////////f0iNQQFIhf9ID0nBw2YuDx+EAAAAAAAPHwCD/v90MkiF/w+YwIX2D5XBIMEPtsFIAfhIuQV882riWdFISPfpSInQSInRSMHpP0jB+ApIAcjDSLn/////////f0iNQQFIhf9ID0nBww8fAFVBV0FWQVVBVFNIgeyIAAAAQYnXSInzSYn+ZEiLBCUoAAAASImEJIAAAABJvP////////9/SIl0JFCJVCRYSY1sJAFI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SYnrRInQTItsJCBIvf////////9/SbnMzMzMzMzMDOmkAQAAScHvP0nB7j8xwEU59w+UwEi6AAAAAAAAAIBIKcJBv/////9Mi2wkIEyLRCQYSL3/////////f0m5zMzMzMzMzAxIi0wkCOlKAQAASItEJDCLTCQ4g/n/D4TmAAAASYnrTI0EKEWJ6b8AKGvuSCnPQY2VANiUETHtTDnPQQ9P1UAPnsVMAcVBidJBAcpIhcBMi0QkGL7/////D4jEAAAASLn/////////f0w53YtUJAhIi3wkEEiLRCQoD40Z/v//6b8AAABMifhIwegLSLmV1iboCy4RAEj34UjB6glMi0QkGEi9/////////3/rF7oAKGvuTIn/Mcnob4T+/0iJwkyLRCQYSbnMzMzMzMzMDEiLTCQIacIA2JQRQQHHRTnudBpFhf9Mi2wkIHRjSPfSuAAoa+5EKfhBicfrWUyLbCQg61JIicXpcP3//zHSRTnuD5XCSAHqQb//////TItsJCDrMki5AAAAAAAAAIBMOd2LVCQISIt8JBBIi0QkKA+OVf3//0iJzUGJ8ulK/f//SPfaRTH/uP////+D+f91FkyLXCQQQYnCTDnjD4Us+///6bYAAABBg///dENMi3QkEE6NFDKJzkSJ+L8AKGvuSCnHjYEA2JQRRTHbSDn3D0/BQQ+ew00B00QB+Ln/////SIXSeA9IiepNOfN9qOsUSYnT66FIugAAAAAAAACATTnzfpJJidOJyOuLRTH2ZEiLBCUoAAAASDtEJEB1TESJ8EiDxEhbQVxBXUFeQV9dw0i4/////////39IiUQkMMdEJDj/////SI18JDBMicbomt3//0yLXCQwi0QkOE2JXQBBiUUIQbYB66Toz40IAGYuDx+EAAAAAAAPH0QAAOmL+f//Zi4PH4QAAAAAAJBTSIn76Gfy//9Iidhbw2aQSInyD7Y3QPbGAXQNSIt3CEiLfxDpV/n//0iDxwFI0e7pS/n//2YuDx+EAAAAAACQU0iJ++gn8v//SInYW8PMzFVBV0FWQVVBVFNIg+xISYnXSYn2SIn7ZEiLBCUoAAAASIlEJEBIuP////////9/SIsWi04ISDnCdUSD+f91Pw9XwA8RQxgPEUMoSMdDOAAAAABIiQMPKAWEPJL+DxFDCMdDGDsAAABIiUMgx0Mo/////0i4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SI1MASBI99hIg8AQZg843tFmDzje2Q8QDAFIg8AgZg843tBmDzje2A8QRAHwdd1mDzje0WYPON7ZZg8439BmDzjf2PPDDx+AAAAAAA8QAcHgBA8QSRAPV9APV9gPV+APEEEgSI1MASBI99hIg8AQZg843NFmDzjc2WYPONzhDxAMAUiDwCBmDzjc0GYPONzYZg843OAPEEQB8HXTZg843NFmDzjc2WYPONzhZg843dBmDzjd2GYPON3g88MPEAHB4AQPEEkQD1fQD1fYD1fgDxBBIEiNTAEgSPfYSIPAEGYPON7RZg843tlmDzje4Q8QDAFIg8AgZg843tBmDzje2GYPON7gDxBEAfB102YPON7RZg843tlmDzje4WYPON/QZg8439hmDzjf4PPDDxABweAEDxBJEA9X0A9X2A9X4A9X6A8QQSBIjUwBIEj32A8fAEiDwBBmDzjc0WYPONzZZg843OFmDzjc6Q8QDAFIg8AgZg843NBmDzjc2GYPONzgZg843OgPEEQB8HXJZg843NFmDzjc2WYPONzhZg843OlmDzjd0GYPON3YZg843eBmDzjd6PPDZg8fRAAADxABweAEDxBJEA9X0A9X2A9X4A9X6A8QQSBIjUwBIEj32A8fAEiDwBBmDzje0WYPON7ZZg843uFmDzje6Q8QDAFIg8AgZg843tBmDzje2GYPON7gZg843ugPEEQB8HXJZg843tFmDzje2WYPON7hZg843ulmDzjf0GYPON/YZg843+BmDzjf6PPDZg8fRAAADxABweAEDxBJEA9X0GYP79hmD+/gZg843NFIjUwBIEj32GYPONzZZg/v6GYP7/BmDzjc4WYP7/gPEAQBSIPAEOsdZi4PH4QAAAAAAA8fQABmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PkPEAwBSIPAIGYPONzQZg843NhmDzjc4GYPONzoZg843PBmDzjc+A8QRAHwdbVmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmDzjd0GYPON3YZg843eBmDzjd6GYPON3wZg843fjzww8fgAAAAAAPEAHB4AQPEEkQD1fQZg/v2GYP7+BmDzje0UiNTAEgSPfYZg843tlmD+/oZg/v8GYPON7hZg/v+A8QBAFIg8AQ6x1mLg8fhAAAAAAADx9AAGYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+Q8QDAFIg8AgZg843tBmDzje2GYPON7gZg843uhmDzje8GYPON74DxBEAfB1tWYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+WYPON/QZg8439hmDzjf4GYPON/oZg843/BmDzjf+PPDDx+AAAAAAA8QAcHgBA8QSRAPV9APV9hmD+/gZg/v6GYP7/BIjUwBIEj32GYPONzRZg/v+GZED+/AZg843NlmRA/vyA8QBAFIg8AQ6xRmLg8fhAAAAAAAZg843NFmDzjc2WYPONzhZg843OlmDzjc8WYPONz5ZkQPONzBZkQPONzJDxAMAUiDwCBmDzjc0GYPONzYZg843OBmDzjc6GYPONzwZg843PhmRA843MBmRA843MgPEEQB8HWdZg843NFmDzjc2WYPONzhZg843OlmDzjc8WYPONz5ZkQPONzBZkQPONzJZg843dBmDzjd2GYPON3gZg843ehmDzjd8GYPON34ZkQPON3AZkQPON3I88MPH4AAAAAADxABweAEDxBJEA9X0A9X2GYP7+BmD+/oZg/v8EiNTAEgSPfYZg843tFmD+/4ZkQP78BmDzje2WZED+/IDxAEAUiDwBDrFGYuDx+EAAAAAABmDzje0WYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFmRA843skPEAwBSIPAIGYPON7QZg843thmDzje4GYPON7oZg843vBmDzje+GZEDzjewGZEDzjeyA8QRAHwdZ1mDzje0WYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFmRA843slmDzjf0GYPON/YZg843+BmDzjf6GYPON/wZg843/hmRA8438BmRA8438jzww8fgAAAAABIg+LwD4RKBQAAi4HwAAAADxABSYnLQYnCRYXAD4ROAgAASIH6gAAAAA+C6AAAAPMPbxfzD29fEPMPb2cg8w9vbzDzD293QPMPb39Q80QPb0dg80QPb09wSI2/gAAAAEiB6oAAAADrZg8fhAAAAAAADxEWTInZ8w9vF0SJ0A8RXhDzD29fEA8RZiDzD29nIA8RbjDzD29vMA8RdkDzD293QA8RflDzD29/UEQPEUZg80QPb0dgRA8RTnBIjbaAAAAA80QPb09wSI2/gAAAAOgN/f//SIHqgAAAAHOU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MGZED+/mDyh0JEBmRA/v7w8ofCRQ80QPfwbzRA9/ThDzRA9/ViDzRA9/XjDzRA9/ZkDzRA9/blBIjXZgSIPqBg+Dxv7//0iDwgYPhAIGAABBjULQSo1MEbD32MHoBOkzBAAAZi4PH4QAAAAAAGYuDx+EAAAAAAAPH0QAAEGDwAhmRA9vRCRgZg843NFFicFmRA9vTCRwZg843NlBD8kPEEGgZg843OFBMemQZg843OlEiUwkDE2NSAFmDzjc8WYPONz5ZkQPONzBZkQPONzJDxBJsEEPyWYPONzQZg843NhBMelmkGYPONzgZg843OhEiUwkHE2NSAJmDzjc8GYPONz4ZkQPONzAZkQPONzIDxBBwEEPyWYPONzRZg843NlBMelmkGYPONzhZg843OlEiUwkLE2NSANmDzjc8WYPONz5ZkQPONzBZkQPONzJDxBJ0EEPyWYPONzQZg843NhBMelmkGYPONzgZg843OhEiUwkPE2NSARmDzjc8GYPONz4ZkQPONzAZkQPONzIDxBB4EEPyWYPONzRZg843NlBMelmkGYPONzhZg843OlEiUwkTE2NSAVmDzjc8WYPONz5ZkQPONzBZkQPONzJDxBJ8EEPyWYPONzQZg843NhBMelmkGYPONzgZg843OhEiUwkXE2NSAZmDzjc8GYPONz4ZkQPONzAZkQPONzIDxABQQ/JZg843NFmDzjc2UEx6WaQZg843OFmDzjc6USJTCRsTY1IB2YPONzxZg843PlmRA843MFmRA843MkPEEkQQQ/JZg843NBmDzjc2GYPONzgQTHp80QPbxdmDzjc6ESJTCR8g/gLZg843PBmDzjc+GZEDzjcwGZEDzjcyA8QQSAPgskAAABmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmRA843MFmRA843MkPEEkwZg843NBmDzjc2GYPONzgZg843OhmDzjc8GYPONz4ZkQPONzAZkQPONzIDxBBQHRrZg843NFmDzjc2WYPONzhZg843OlmDzjc8WYPONz5ZkQPONzBZkQPONzJDxBJUGYPONzQZg843NhmDzjc4GYPONzoZg843PBmDzjc+GZEDzjcwGZEDzjcyA8QQWDrDWYuDx+EAAAAAAAPHwDzRA9vXxBmRA/v0PNED29nIGZED+/Y80QPb28wZkQP7+DzRA9vd0BmRA/v6PNED29/UGZED+/wZkQP7/hmDzjc0WYPONzZZg843OFmDzjc6WYPONzxZg843PlmRA843MFmRA843MnzD29PYEiNv4AAAABmQQ843dJmD+/I80QPb1fwZkEPON3bZkQP79BmRA9vHCRmQQ843eRmQQ843e1mRA9vZCQQZkQPb2wkIGZBDzjd9mZBDzjd/2ZED290JDBmRA9vfCRAZkQPON3BZg9vRCRQDxBJkGZFDzjdyg8RFmZBD2/TDxFeEGZBD2/cDxFmIGZBD2/lDxFuMGZBD2/uDxF2QGZBD2/3DxF+UGYPb/hEDxFGYEQPEU5wSI22gAAAAEiD6ggPg/T7//9Ig8IID4TAAQAASI1JgEiNSRBIg/oED4JYAQAAD4TSAAAAweAEZkQPb0QkYGZFD+/JDxBBEGYPONzRZg843NlIjUwBEEj32GYPONzhSIPAEEQPEBdmDzjc6WYPONzxRA8QXxBEDxBnIGYPONz5ZkQPONzB6Hbx///zRA9vbzBmQQ/v0vNED29XQGZBD+/b8w9/FmZBD+/k8w9/XhBmQQ/v7fMPf2YgZkEP7/LzD39uMPMPf3ZASIP6Bg+CCwEAAEQPEF9QQQ9X+w8RflAPhPgAAABEDxBnYEUPV8REDxFGYOnlAAAAZi4PH4QAAAAAAA8fRAAAZg843NFIjUkQ/8hmDzjc2WYPONzhZg843OkPEAl14WYPON3RZg843dlEDxAXRA8QXxBmDzjd4WYPON3pRA8QZyBEDxBvMEEPV9IPERZBD1fbDxFeEGZBD+/k8w9/ZiBmQQ/v7fMPf24w62tmLg8fhAAAAAAAZi4PH4QAAAAAAJBmDzjc0UiNSRD/yGYPONzZZg843OEPEAl15mYPON3RZg843dlmDzjd4UQPEBdBD1fSDxEWSIP6AnIcRA8QXxBBD1fbDxFeEHQNRA8QZyBBD1fkDxFmIA9XwDHtZg/vyWYP79JmD+/bZg/v5GYP7+1mD+/2Zg/v/w8pBCRmRQ/vwA8pRCQQZkUP78kPKUQkIGZFD+/SDylEJDBmRQ/v2w8pRCRAZkUP7+QPKUQkUGZFD+/tDylEJGBmRQ/v9g8pRCRwZkUP7/9Ji2v4SY0j88OQSIXSD4RXCQAARIuR8AAAAEmJy0WFyQ+EpAAAAEEPEBBEidBIg/oQcmZIg+oQ6wGQDxAfSI1/EA8QAQ8QSRAPV9hIjUkgD1fTZg843NH/yA8QCUiNSRB18GYPON3RRInQTInZDxEWSI12EEiD6hBzwEiDwhB1GWYP78BmD+/JQQ8REGYP79JmD+/b6dEIAABIidFIh/fzpGaQuRAAAABIKdExwPOqZpBIjX/wRInQSIn+TInZSDHS6XT///8PH0AASIP6EHVa8w9vF/NBD28YZg9v4g8QAQ8QSRBIjUkgD1fQZg843tFB/8oPEAlIjUkQde9mDzjf0WYP78BmD+/J80EPfyAPV9NmD+/bDxEWZg/v0ulJCAAAZg8fhAAAAAAATI0cJFVIg+wQSIPk8EiJzUUPEBBEidBIg/pQD4b+BQAADxAB8w9vF/MPb18QZkQPb9rzD29nIGZED2/j8w9vbzBmRA9v7PMPb3dAZkQPb/XzD29/UGZED2/+TI0N7+4CAEWLSQRIg/pwD4YHBAAAQYHhAABABEiD6lBBgfkAAEAAD4QmBQAASIPqIEiNSXDrF2YuDx+EAAAAAAAPH0QAAEQPEQ5IjXYQ80QPb0dgZg/v0PNED29PcGYP79gPEEmgZg/v4EjHxf////9Ig/pwZg/v6GYP7/BmD+/4ZkQP78BmDzje0WZED+/IDxBBsGYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFIg9UASIHlgAAAAGZEDzjeyUgB/Q8QScBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEHQkGYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+WZEDzjewWZEDzjeyQ8QSeCQZg843tBmDzje2GYPON7gZg843uhmDzje8GYPON74ZkQPON7AZkQPON7IDxBB8JBmDzje0WYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFmRA843skPEAmQZg843tBmDzje2GYPON7gZg843uhmDzje8GYPON74ZkQPON7AZkQPON7IDxBBEJBmDzje0WYPON7ZZg843uFmDzje6WYPON7xZg843vlmRA843sFmRA843skPEEkgg/gLZg843tBmDzje2GYPON7gZg843uhmDzje8GYPON74ZkQPON7AZkQPON7IDxBBMA+CzAAAAGYPON7RZg843tlmDzje4WYPON7pZg843vFmDzje+WZEDzjewWZEDzjeyQ8QSUCQZg843tBmDzje2GYPON7gZg843uhmDzje8GYPON74ZkQPON7AZkQPON7IDxBBUHRtZg843tFmDzje2WYPON7hZg843ulmDzje8WYPON75ZkQPON7BZkQPON7JDxBJYJBmDzje0GYPON7YZg843uBmDzje6GYPON7wZg843vhmRA843sBmRA843sgPEEFw6w5mLg8fhAAAAAAADx9AAGYPON7RZg843tlmRA/v0GZED+/YZg843uFmDzje6WZED+/gZkQP7+hmDzje8WYPON75ZkQP7/BmRA/v+GZEDzjewWZEDzjeyfMPb09QZkEPON/S80QPb1dgZg/vyGZBDzjf22ZED+/Q8w9vR3BmQQ843+RIjb+AAAAA80QPb10AZkEPON/tZkEPON/280QPb2UQ80QPb20gZkEPON//ZkQPON/B80QPb3Uw80QPb31AZkUPON/KZkQPb9DzD29NUA8QQZAPERZmQQ9v0w8RXhBmQQ9v3A8RZiBmQQ9v5Q8RbjBmQQ9v7g8RdkBmQQ9v9w8RflBmD2/5RA8RRmBIjXZwSIHqgAAAAA+HUvz//0EPKNFIjUmQSIPCcA+OcAMAAEQPEQ5IjXYQSIP6UA+GrQEAAEEPKNNIg/pgd2REDyjH6Kvo//9mQQ/v0kUPKNBmQQ/v2/MPfxZmQQ/v5PMPf14QZg/v22ZBD+/t8w9/ZiBmD+/kZkEP7/bzD39uMGYP7+1mQQ/v//MPf3ZAZg/v9kiNdlBmD2/XZg/v/+kOAwAARA8QR2BFD1fJ6DLq//9EDxBPUGZBD+/SRA8QV2BmQQ/v2/MPfxZmQQ/v5PMPf14QZg/v22ZBD+/t8w9/ZiBmD+/kZkEP7/bzD39uMGYP7+1mQQ/v//MPf3ZAZg/v9mZFD+/B8w9/flBmD+//SI12YGZBD2/QZkUP78BmRQ/vyemKAgAAZi4PH4QAAAAAAGaQDxE+SI12EPMPbxfzD29fEGZED2/a8w9vZyBmRA9v4/MPb28wZkQPb+zzD293QGZED2/18w9vf1BmRA9v/kiNf2BmRA9vx+h15///ZkEP79JmRQ9v0GZBD+/b8w9/FmZBD+/k8w9/XhBmQQ/v7fMPf2YgZkEP7/ZIienzD39uMGZBD+//RInQ8w9/dkBIjXZQSIPqYA+HZv///2YPb9dIg8JQD464AQAADxE+SI12EA8QF0iD6hAPhqQAAAAPEF8QRA8o2kiD6hAPhtIAAAAPEGcgRA8o40iD6hAPhvAAAAAPEG8wRA8o7EiD6hAPhh4BAAAPEHdARA8o9UQPKP4PV//ouub//2ZBD+/SRQ8o12ZBD+/b8w9/FmZBD+/k8w9/XhBmD+/bZkEP7+3zD39mIGYP7+RmQQ/v9vMPf24wZg/v7UiNdkBmD2/WZg/v9mYP7/9Ig+oQ6SMBAAAPH0QAAEQPKNoPEAEPEEkQSI1JIA9X0GYPON7R/8gPEAlIjUkQdfBmDzjf0UEPV9JFDyjT6eoAAABmLg8fhAAAAAAAZpBEDyjj6Nfi//9mQQ/v0kUPKNRmQQ/v2/MPfxZmD2/TZg/v20iNdhDpsgAAAA8fQABEDyjs6Hfj//9mQQ/v0kUPKNVmQQ/v2/MPfxZmQQ/v5PMPf14QZg/v22YPb9RmD+/kSI12IOt3Zg8fhAAAAAAARA8o9eg35P//ZkEP79JFDyjWZkEP79vzD38WZkEP7+TzD39eEGYP79tmQQ/v7fMPf2YgZg/v5GYPb9VmD+/tSI12MOspZi4PH4QAAAAAAJBmD+/bZg/v5GYP7+1mD+/2Zg/v/2ZFD+/AZkUP78lFDxEQSIPiD3UYDxEWZg/v0usxZi4PH4QAAAAAAA8fRAAADykUJGYP79JIx8EQAAAASIn3SCnRSI00JPOkZpBmD38UJA9XwGYP78lJi2v4SY0j88NmLg8fhAAAAAAADx9AAEiD7AjoZwAAAMHmBIXAdVFIjXwyEA8QAg8QDw8RBw8RCkiNUhBIjX/wDxACDxAPZg8428BmDzjbyUiNUhBIjX/wDxFHEA8RSvBIOdd32w8QAmYPONvAZg/vyQ8RB2YP78BIg8QI88NmDx+EAAAAAABIg+wISMfA/////0iF/w+EYwQAAEiF0g+EWgQAAA8QBw9X5EyNFWbmAgBFi1IEQYHiAAgAEEiNQhCB/gABAAAPhKsCAACB/sAAAAAPhI8BAACB/oAAAAAPhRMEAAC+CQAAAEGB+gAAABAPhIEAAAAPEQJmDzrfyAHoKgQAAGYPOt/IAugYBAAAZg8638gE6A0EAABmDzrfyAjoAgQAAGYPOt/IEOj3AwAAZg8638gg6OwDAABmDzrfyEDo4QMAAGYPOt/IgOjWAwAAZg8638gb6MsDAABmDzrfyDbowAMAAA8RAIlwUDHA6YoDAAAPHwBmD28t6AQAAEG6CAAAAGYPbyX6BAAAZg9v0PMPfwLrAGYPOADFZg843cRmD3L0AUiNQBBmD2/aZg9z+gRmD+/aZg9z+gRmD+/aZg9z+gRmD+/TZg/vwvMPf0DwZg9v0EH/ynW8Zg9vJbQEAABmDzgAxWYPON3EZg9y9AFmD2/aZg9z+gRmD+/aZg9z+gRmD+/aZg9z+gRmD+/TZg/vwvMPfwBmD2/QZg84AMVmDzjdxGYPb9pmD3P6BGYP79pmD3P6BGYP79pmD3P6BGYP79NmD+/C8w9/QBCJcGAxwOmlAgAAZi4PH4QAAAAAAA8fQADzD35XEL4LAAAAQYH6AAAAEHRtDxECZg8638oB6MYCAABmDzrfygLo9AIAAGYPOt/KBOipAgAAZg8638oI6N4CAABmDzrfyhDokwIAAGYPOt/KIOjIAgAAZg8638pA6H0CAABmDzrfyoDosgIAAA8RAIlwMEgxwOkbAgAADx9AAGYPby2IAwAAZg9vJZADAABBuggAAADzD38C6wQPH0AAZg/WEGYPb8pmDzgA1WYPON3UZg9y9AFIjUAYZg9v2GYPc/gEZg/v2GYPc/gEZg/v2GYPc/gEZg/vw2YPcNj/Zg/v2WYPc/kEZg/v2WYP78JmD+/T8w9/QPBB/8p1oolwIDHA6Y8BAAAPH4QAAAAAAA8QVxC+DQAAAEiNQBBBgfoAAAAQD4SmAAAADxECDxFSEGYPOt/KAegLAgAAZg8638gB6BkCAABmDzrfygLo7gEAAGYPOt/IAugDAgAAZg8638oE6NgBAABmDzrfyATo7QEAAGYPOt/KCOjCAQAAZg8638gI6NcBAABmDzrfyhDorAEAAGYPOt/IEOjBAQAAZg8638og6JYBAABmDzrfyCDoqwEAAGYPOt/KQOiAAQAADxEAiXAQSDHA6ckAAABmkGYPby0oAgAAZg9vJUACAABBugcAAADzD38CZg9vyvMPf1IQ6wtmLg8fhAAAAAAAkGYPOADVZg843dRmD2/YZg9z+ARmD+/YZg9z+ARmD+/YZg9z+ARmD+/DZg9y9AFmD+/C8w9/AEH/ynRAZg9w0P9mD+/bZg843dNmD2/ZZg9z+QRmD+/ZZg9z+QRmD+/ZZg9z+QRmD+/LZg/v0fMPf1AQSI1AIGYPb8rrhYlwEDHA6xVmLg8fhAAAAAAADx9AAEjHwP7///9mD+/AZg/vyWYP79JmD+/bZg/v5GYP7+1Ig8QI88NmLg8fhAAAAAAAkA8RAEiNQBAPxuAQD1fED8bgjA9XxA/Gyf8PV8Hzw2aQDxEASI1AEA8o6g/G4BBmD2/aD1fED8bgjGYPc/sED1fEZg9wyVVmD+/TZg/vwWYPcNj/Zg/v0/PDDx+AAAAAAA8o2A/G6EQPESgPxtpODxFYEEiNQCDrsg8fhAAAAAAADxEQSI1AEA/G4BAPV8QPxuCMD1fED8bJ/w9XwfPDZpAPEQBIjUAQD8biEA9X1A/G4owPV9QPxsmqD1fR88NmLg8fhAAAAAAAZi4PH4QAAAAAAGYuDx+EAAAAAABmLg8fhAAAAAAAZi4PH4QAAAAAAA8ODQwLCgkIBwYFBAMCAQAGAAAABgAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAIcAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ4PDA0ODwwNDg8MDQ4PDAUGBwQFBgcEBQYHBAUGBwQBAAAAAQAAAAEAAAABAAAAGwAAABsAAAAbAAAAGwAAAEFFUyBmb3IgSW50ZWwgQUVTLU5JLCBDUllQVE9HQU1TIGJ5IDxhcHByb0BvcGVuc3NsLm9yZz4AZi4PH4QAAAAAAGYuDx+EAAAAAABmLg8fhAAAAAAAZi4PH4QAAAAAAGYuDx+EAAAAAABmDx9EAADzD28HZkQPbxUDBAAAZg9vFQsEAABmQQ84AMJmD2/KZg/fyGYPctEEZg/bwmYP79JmD+/bSMfABQAAAGYPbyZIjXYQZg9v8mYPOg/zAWYPb95mD3PaAWYPb+xmDzgA4GYPOADpZg/v1WYPb+xmD3P1PGYPb/VmD3P+CGYP795mD3PdCGYP79VmD3PUBGYP79RIg+gBdaVmD+/TZg9z0wFmD+/TZg9z0wFmD+/TZg9z0wVmD+/TZg/v20jHwAUAAABmD28mSI12EGYPb/JmDzoP8wFmD2/eZg9z2gFmD2/sZg84AOBmDzgA6WYP79VmD2/sZg9z9TxmD2/1Zg9z/ghmD+/eZg9z3QhmD+/VZg9z1ARmD+/USIPoAXWlZg/v02YPc9MBZg/v02YPc9MBZg/v02YPc9MFZg/v02YP79tIx8AGAAAAZg9vJkiNdhBmD2/yZg86D/MBZg9v3mYPc9oBZg9v7GYPOADgZg84AOlmD+/VZg9v7GYPc/U8Zg9v9WYPc/4IZg/v3mYPc90IZg/v1WYPc9QEZg/v1EiD6AF1pWYP79NmD3PTAWYP79NmD3PTAWYP79NmD3PTBWYP79NmD+/bZkEPOADS8w9/F2YP78BmD+/JZg/v0mYP79tmD+/kZg/v7WYP7/bzww8fRAAA8w9vB2ZED28VEwIAAGZED28dGgIAAEiD4fBmQQ84AMJmD+/b8w9vCmZBDzgAymYP78FmQQ9vy2YP38hmD3LRBGZBD9vDZg/v0kjHwAUAAABmD28mSI12EGYPb/JmDzoP8wFmD2/eZg9z2gFmD2/sZg84AOBmDzgA6WYP79VmD2/sZg9z9TxmD2/1Zg9z/ghmD+/eZg9z3QhmD+/VZg9z1ARmD+/USIPoAXWlZg/v02YPc9MBZg/v02YPc9MBZg/v02YPc9MFZg/v02YP79tIx8AFAAAAZg9vJkiNdhBmD2/yZg86D/MBZg9v3mYPc9oBZg9v7GYPOADgZg84AOlmD+/VZg9v7GYPc/U8Zg9v9WYPc/4IZg/v3mYPc90IZg/v1WYPc9QEZg/v1EiD6AF1pWYP79NmD3PTAWYP79NmD3PTAWYP79NmD3PTBWYP79NmD+/bSMfABgAAAGYPbyZIjXYQZg9v8mYPOg/zAWYPb95mD3PaAWYPb+xmDzgA4GYPOADpZg/v1WYPb+xmD3P1PGYPb/VmD3P+CGYP795mD3PdCGYP79VmD3PUBGYP79RIg+gBdaVmD+/TZg9z0wFmD+/TZg9z0wFmD+/TZg9z0wVmD+/TZg/v22YPb8JIjbYA////SI1SEEiD6RAPhTP+//9mQQ84AMLzD38HZg/vwGYP78lmD+/SZg/v22YP7+RmD+/tZg/v9vPDDx+AAAAAAA8ODQwLCgkIBwYFBAMCAQAPDw8PDw8PDw8PDw8PDw8PzMzMzMzMzMzMzMzMzMzMzPMPbxZmD3DSTmYPcOL/Zg9v2mYPc/IBZg/v7WYPc9M/Zg9m7GYPc/sIZg/r02YP2y3bEQAAZg/v1WYPcPJOZg9vwmYP7/JmD2/IZg9w2E5mD+/YZg86RMIAZg86RMoRZg86RN4AZg/v2GYP79lmD2/jZg9z2whmD3P8CGYP78tmD+/EZg9v4GYPb9hmD3PwBWYP79hmD3PwAWYP78NmD3PwOWYPb9hmD3P4CGYPc9sIZg/vxGYP78tmD2/gZg9z0AFmD+/MZg/v4GYPc9AFZg/vxGYPc9ABZg/vwWYPcNpOZg9w4E5mD+/a8w9/F2YP7+DzD39HEGYPOg/jCPMPf2cgZg9vyGYPcNhOZg/v2GYPOkTCAGYPOkTKEWYPOkTeAGYP79hmD+/ZZg9v42YPc9sIZg9z/AhmD+/LZg/vxGYPb+BmD2/YZg9z8AVmD+/YZg9z8AFmD+/DZg9z8DlmD2/YZg9z+AhmD3PbCGYP78RmD+/LZg9v4GYPc9ABZg/vzGYP7+BmD3PQBWYP78RmD3PQAWYP78FmD2/oZg9vyGYPcNhOZg/v2GYPOkTCAGYPOkTKEWYPOkTeAGYP79hmD+/ZZg9v42YPc9sIZg9z/AhmD+/LZg/vxGYPb+BmD2/YZg9z8AVmD+/YZg9z8AFmD+/DZg9z8DlmD2/YZg9z+AhmD3PbCGYP78RmD+/LZg9v4GYPc9ABZg/vzGYP7+BmD3PQBWYP78RmD3PQAWYP78FmD3DdTmYPcOBOZg/v3fMPf28wZg/v4PMPf0dAZg86D+MI8w9/Z1Dzww8fhAAAAAAA8w9vB2YPby2UDwAA8w9vFvMPb2YgZg84AMVmD2/IZg9w2E5mD+/YZg86RMIAZg86RMoRZg86RNwAZg/v2GYP79lmD2/jZg9z2whmD3P8CGYP78tmD+/EZg9v4GYPb9hmD3PwBWYP79hmD3PwAWYP78NmD3PwOWYPb9hmD3P4CGYPc9sIZg/vxGYP78tmD2/gZg9z0AFmD+/MZg/v4GYPc9AFZg/vxGYPc9ABZg/vwWYPOADF8w9/B/PDZg8fRAAAZkQPbxXXDgAA8w9vB/MPbxbzD29+IGZBDzgAwkiD6RAPhG8FAADzD292EEiNBW7YAgCLQARIg/kwD4JCAwAAJQAAQAQ9AABAAA+EMgMAAEiD6TBIuADgwCCAYECg80QPb3Yw80QPb35A8w9vWjDzRA9vWiBmQQ84ANpmRQ84ANpmD2/rZg9w405mD+/jZg86RNoAZg86ROoRZg86ROcAZkUPb+tmRQ9w405mRQ/v42ZEDzpE3gBmRA86RO4RZkQPOkTnEEEPV9tBD1ftDxB+UEEPV+TzRA9vWhDzRA9vAmZFDzgA2mZFDzgAwmZFD2/rZkUPcONOZkEP78BmRQ/v42ZFDzpE3gBmD2/IZkQPcMBOZkQP78BmRQ86RO4RZkQPOkTnAEEPV9tBD1ftSI1SQEiD6UAPgooBAADrBA8fQABmQQ86RMcAQQ9X5PNED29aMGZFDzgA2mZBDzpEzxEPV8PzD29aIGZFD2/rZkQPOkTHEGZFD3DjTg9XzWZFD+/jZkEPOADaDxB+IEQPV8RmRA86RNoAZg9w405mRA/vwGYPb+tmRA/vwWYP7+NmRQ9vyGZEDzpE6hFmQQ9z+AhmQQ9z2QhmQQ/vwGZED28FLg0AAGZBD+/JZkwPbshmRA/bwGZFDzgAyGZED+/IZkQPOkTnAGZBD3PxOWZFD2/BZkEPc/kIZg86RN4AZkEPc9gIZkEP78FmQQ/vyPNED28CZkQPb8hmD3PQAWYPOkTuEUEPV9vzRA9vWhBmRQ84ANpmDzpE5xBBD1ftDxB+UGZFDzgAwmZBD+/JZkQP78hmD3PQBWZFD2/rZkEP7+RmRQ9w405mQQ/vwWZBD+/IZkUP7+NmRQ86RN4AZg9z0AFmD+/BZg9vyGZFDzpE7hFBD1fbZkQPcMBOZkQP78BmRA86ROcAQQ9X7UiNUkBIg+lAD4N8/v//ZkEPOkTHAGZBDzpEzxFmRA86RMcQQQ9X5A9Xww9XzWYP78hmRA/vxGZED+/BZg/vyGZFD2/IZkEPc9gIZkEPc/kIZkEP78hmQQ/vwWYPb+BmD2/YZg9z8AVmD+/YZg9z8AFmD+/DZg9z8DlmD2/YZg9z+AhmD3PbCGYP78RmD+/LZg9v4GYPc9ABZg/vzGYP7+BmD3PQBWYP78RmD3PQAWYP78FIg8FAD4TIAgAA8w9vfiBIg+kQD4QUAgAA80QPbwLzD29aEGZFDzgAwmZBDzgA2mZBD+/AZg9v62YPcONOZg/v42YPOkTaAGYPOkTqEWYPOkTnAEiNUiCQSIPpIA+GFgEAAJDrE2YuDx+EAAAAAABmDx+EAAAAAABmD2/IZkQPb8RmD3DgTmYP7+BmDzpExgBmDzpEzhFmDzpE5xBmD+/DZg/vzfNED28KZkQP78BmRQ84AMrzD29aEGZED+/BZkEP78lmQQ/v4GZBDzgA2mZED2/EZkEPc9gIZg9z/AhmQQ/vyGYP78RmD2/rZkQPb8hmRA9vwGYPc/AFZkQP78BmDzpE2gBmD3PwAWZBD+/AZg9z8DlmRA9vwGYPc/gIZkEPc9gIZkEP78FmD3DlTmZBD+/IZg/v5WZED2/IZg9z0AFmDzpE6hFmQQ/vyWZED+/IZg9z0AVmQQ/vwUiNUiBmD3PQAWYPOkTnAGYP78FIg+kgD4cA////Zg9vyGZED2/EZg9w4E5mD+/gZg86RMYAZg86RM4RZg86ROcQZg/vw2YP781mRA/vwGZED+/BZkEP7+BmRA9vxGZBD3PYCGYPc/wIZkEP78hmD+/EZg9v4GYPb9hmD3PwBWYP79hmD3PwAWYP78NmD3PwOWYPb9hmD3P4CGYPc9sIZg/vxGYP78tmD2/gZg9z0AFmD+/MZg/v4GYPc9AFZg/vxGYPc9ABZg/vwUiFyQ+FpQAAAPNED28CZkUPOADCZkEP78BmD2/IZg9w2E5mD+/YZg86RMIAZg86RMoRZg86RN8AZg/v2GYP79lmD2/jZg9z2whmD3P8CGYP78tmD+/EZg9v4GYPb9hmD3PwBWYP79hmD3PwAWYP78NmD3PwOWYPb9hmD3P4CGYPc9sIZg/vxGYP78tmD2/gZg9z0AFmD+/MZg/v4GYPc9AFZg/vxGYPc9ABZg/vwWZBDzgAwvMPfwfzw2YuDx+EAAAAAABmLg8fhAAAAAAAZg8fRAAAxfh3xfpvFsX5cNJOxflw4v/F4XPSP8Xpc/IBxdHv7cXRZuzF4XP7CMXp69PF0dstXAgAAMXp79XF6W3yxflvwsXJ7/JJx8IEAAAA6ZcAAABmLg8fhAAAAAAAZg8fRAAAxONZD+sIxfp/b/DF+W3YxeHv2MTjeUTKEcTjeUTCAMTjYUTeAMXx7+DF4e/cxdlz+wjF4XPbCMX578TF8e/LxeFz8DnF2XPwPsXZ7+PF4XPwP8XZ7+PF4XP8CMXZc9wIxfnvw8Xx78zF2XPQAcXx78jF+e/Exdlz1AXF+e/Exflz0AHF+e/Bxflv6MX5bdjF4e/YxON5RMoRxON5RMIAxONhRN4AxfHv4MXh79zF2XP7CMXhc9sIxfnvxMXx78vF4XPwOcXZc/A+xdnv48Xhc/A/xdnv48Xhc/wIxdlz3AjF+e/DxfHvzMXZc9ABxfHvyMX578TF2XPUBcX578TF+XPQAcX578HF+XDdTsX5cOBOxeHv3cX6fy/F2e/gxfp/RxBIjX8wSYPqAQ+F0P7//8TjYQ/sCMX6f2/wxfh388PpO/f//2YuDx+EAAAAAABmLg8fhAAAAAAADx+AAAAAAMX4d8V6bxdMjRXCBgAASI12QMV6by2mBgAAxEIpANVIgfmAAAAAD4L0AwAASIHpgAAAAMV6b3JwxfpvdsDEQgkA9cX6b37gxEEJbc7Fem96YMTjCUTGAMRBMe/OxEIBAP3E4wlEzhHF+m920MRBAW3HxXpvclDE4zFE1wDEQTnvx8RCCQD1xOMBRN4AxEEJbc7E4wFE5hHF+m928MRBMe/OxXpvekDE4zlE7xDF+m9+EMRCAQD9xeHv2MTjCUTGAMXZ7+HEQQFtx8TjCUTOEcX6bzbF0e/qxOMxRNcAxEE578fFem9yMMX578PE4wFE3gDF8e/MxEIJAPXE4wFE5hHF+m92IMXp79XEQQltzsTjOUTvEMX6b35AxEEx787Fem96IMXh79jE4wlExgDF2e/hxEIBAP3E4wlEzhHF+m92MMXR7+rEQQFtx8TjMUTXAMRBOe/HxXpvchDF+e/DxOMBRN4AxfHvzMRCCQD1xOMBROYRxfpvdlDF6e/VxEEJbc7E4zlE7xDF+m9+cMRBMe/OxXpvOsXh79jE4wlExgDF2e/hxEIBAP3E4wlEzhHF+m92YMXR7+rE4zFE1xBIjZKAAAAASIH5gAAAAA+CLwQAAMRBAe/6SIHpgAAAAOsBkMRBAW3HxXpvcnDF4e/YxEE578fEYwFE1gDEQgkA9cXZ7+HEYwFE3hHF+m92wMRBCW3OxdHv6sRjOUTnAMX6b37gxEEx787Fem96YMTjCUTGAMUp79PEQgEA/cTjCUTOEcUgV9zF+m920MRBAW3HxOMxRNcAxRnv5cRBOFfHxXpvclDEQRnv4sTjAUTeAMRBGe/jxMExc/wIxeHv2MTjAUTmEcTBGXPcCMRBKe/RxfpvdvDEQgkA9cRBIFfcxdnv4cRBCW3OxOM5RO8QxfpvfhDEQTHvzsXR7+rFem96QMRDKQ/iCMTjCUTGAMRCAQD9xfnvw8TjCUTOEcX6bzbEQQFtx8Xx78zE4zFE1wDEQThXx8Xp79XFem9yMMRDKUQSEMTjAUTeAMRCCQD1xeHv2MTjAUTmEcX6b3YgxEEJbc7F2e/hxOM5RO8QxfpvfkDEQTHvzsXR7+rFem96IMTjCUTGAMRCAQD9xfnvw8TjCUTOEcX6b3YwxEEBbcfF8e/MxOMxRNcAxEE578fF6e/VxEEoV9TFem9yEMRDKQ/iCMTjAUTeAMRCCQD1xeHv2MTjAUTmEcX6b3ZQxEMpRBIQxEEYV+PEQQltzsXZ7+HE4zlE7xDF+m9+cMRBMe/OxdHv6sV6bzrE4wlExgDEQgEA/cTjCUTOEcX6b3ZgxEEB7/zE4zFE1xDEQQHv+kiNkoAAAABIgemAAAAAD4Pi/f//SIHBgAAAAOn7AQAAZi4PH4QAAAAAAGYuDx+EAAAAAABmkMV6b3QK8EiNFArF+m92wMX6b37gxEIJAP3F+W/Yxflv4cX5b+pIg+kQD4SxAQAAxEEBbcfF4e/YxOMBRMYAxEE578fFem9y4MXZ7+HE4wFEzhHF+m920MRCCQD9xdHv6sTjOUTXAMXBc98ISIPpEA+EawEAAMRBAW3HxeHv2MTjAUTGAMRBOe/HxXpvctDF2e/hxOMBRM4RxfpvdvDEQgkA/cXR7+rE4zlE1wDF+m9+EEiD6RAPhCUBAADEQQFtx8Xh79jE4wFExgDEQTnvx8V6b3LAxdnv4cTjAUTOEcX6bzbEQgkA/cXR7+rE4zlE1wDFwXPfCEiD6RAPhOAAAADEQQFtx8Xh79jE4wFExgDEQTnvx8V6b3Kwxdnv4cTjAUTOEcX6b3YgxEIJAP3F0e/qxOM5RNcAxfpvfkBIg+kQD4SaAAAAxEEBbcfF4e/YxOMBRMYAxEE578fFem9yoMXZ7+HE4wFEzhHF+m92MMRCCQD9xdHv6sTjOUTXAMXBc98ISIPpEHRYxEEBbcfF4e/YxOMBRMYAxEE578fFem9ykMXZ7+HE4wFEzhHF+m92UMRCCQD9xdHv6sTjOUTXAMX6fn54SIPpEOsWZi4PH4QAAAAAAGYuDx+EAAAAAABmkMRBAe/6xEEBbcfF4e/YxOMBRMYAxEE578fF2e/hxOMBRM4RxdHv6sTjOUTXAMRBem8ixWHv0MVZ79nF0e/qxMFR7+rEwVHv68Wxc/0IxdFz3QjEQSnv0cUh793EQylEzBDEQykP0gjEQSnv0cRDKUTMEMRDKQ/SCMRBKe/TxEEp79FIg/kAD4WU/f//xEIpANXFen8Xxfh388NmLg8fhAAAAAAAZi4PH4QAAAAAAGYuDx+EAAAAAAAPH4QAAAAAAA8ODQwLCgkIBwYFBAMCAQABAAAAAAAAAAAAAAAAAADCBwAAAAAAAAAHAAAAAAAAAGYuDx+EAAAAAABmDx9EAABHSEFTSCBmb3IgeDg2XzY0LCBDUllQVE9HQU1TIGJ5IDxhcHByb0BvcGVuc3NsLm9yZz4AZi4PH4QAAAAAAGaQVVNBVEFWQVdIif1IweIGSI08FotFAItdBItNCItVDEg5/g+EoggAAEGJwEGJ2UGJzkGJ10SLFkGJ00Exy0KNhBB4pGrXQSHbQTHTRItWBEQB2MHAB0GJywHYQTHbQo2UEla3x+hBIcNBMctEi1YIRAHawcIMQYnbAcJBMcNCjYwR23AgJEEh00Ex20SLVgxEAdnBwRFBicMB0UEx00KNnBPuzr3BQSHLQTHDRItWEEQB28HDFkGJ0wHLQTHLQo2EEK8PfPVBIdtBMdNEi1YURAHYwcAHQYnLAdhBMdtCjZQSKsaHR0Ehw0Exy0SLVhhEAdrBwgxBidsBwkExw0KNjBETRjCoQSHTQTHbRItWHEQB2cHBEUGJwwHRQTHTQo2cEwGVRv1BIctBMcNEi1YgRAHbwcMWQYnTActBMctCjYQQ2JiAaUEh20Ex00SLViREAdjBwAdBicsB2EEx20KNlBKv90SLQSHDQTHLRItWKEQB2sHCDEGJ2wHCQTHDQo2MEbFb//9BIdNBMdtEi1YsRAHZwcERQYnDAdFBMdNCjZwTvtdciUEhy0Exw0SLVjBEAdvBwxZBidMBy0Exy0KNhBAiEZBrQSHbQTHTRItWNEQB2MHAB0GJywHYQTHbQo2UEpNxmP1BIcNBMctEi1Y4RAHawcIMQYnbAcJBMcNCjYwRjkN5pkEh00Ex20SLVjxEAdnBwRFBicMB0UEx00KNnBMhCLRJQSHLQTHDRIsWRAHbwcMWQYnTActEi1YEQYnTQYnUQffTQo2EEGIlHvZBIdxBIctEi1YYRQncQYnLRAHgQYnMwcAFAdhB99NCjZQSQLNAwEEhxEEh20SLVixFCdxBidtEAeJBidzBwgkBwkH300KNjBFRWl4mQSHUQSHDRIsWRQncQYnDRAHhQYnEwcEOAdFB99NCjZwTqse26UEhzEEh00SLVhRFCdxBidNEAeNBidTBwxQBy0H300KNhBBdEC/WQSHcQSHLRItWKEUJ3EGJy0QB4EGJzMHABQHYQffTQo2UElMURAJBIcRBIdtEi1Y8RQncQYnbRAHiQYncwcIJAcJB99NCjYwRgeah2EEh1EEhw0SLVhBFCdxBicNEAeFBicTBwQ4B0UH300KNnBPI+9PnQSHMQSHTRItWJEUJ3EGJ00QB40GJ1MHDFAHLQffTQo2EEObN4SFBIdxBIctEi1Y4RQncQYnLRAHgQYnMwcAFAdhB99NCjZQS1gc3w0EhxEEh20SLVgxFCdxBidtEAeJBidzBwgkBwkH300KNjBGHDdX0QSHUQSHDRItWIEUJ3EGJw0QB4UGJxMHBDgHRQffTQo2cE+0UWkVBIcxBIdNEi1Y0RQncQYnTRAHjQYnUwcMUActB99NCjYQQBenjqUEh3EEhy0SLVghFCdxBictEAeBBiczBwAUB2EH300KNlBL4o+/8QSHEQSHbRItWHEUJ3EGJ20QB4kGJ3MHCCQHCQffTQo2MEdkCb2dBIdRBIcNEi1YwRQncQYnDRAHhQYnEwcEOAdFB99NCjZwTikwqjUEhzEEh00SLFkUJ3EGJ00QB40GJ1MHDFAHLRItWFEGJy0KNhBBCOfr/RItWIEEx00Ex20QB2MHABEGJ2wHYQo2UEoH2cYdEi1YsQTHLQTHDRAHawcILQYnDAcJCjYwRImGdbUSLVjhBMdtBMdNEAdnBwRBBidMB0UKNnBMMOOX9RItWBEExw0Exy0QB28HDF0GJywHLQo2EEETqvqREi1YQQTHTQTHbRAHYwcAEQYnbAdhCjZQSqc/eS0SLVhxBMctBMcNEAdrBwgtBicMBwkKNjBFgS7v2RItWKEEx20Ex00QB2cHBEEGJ0wHRQo2cE3C8v75Ei1Y0QTHDQTHLRAHbwcMXQYnLActCjYQQxn6bKESLFkEx00Ex20QB2MHABEGJ2wHYQo2UEvonoepEi1YMQTHLQTHDRAHawcILQYnDAcJCjYwRhTDv1ESLVhhBMdtBMdNEAdnBwRBBidMB0UKNnBMFHYgERItWJEExw0Exy0QB28HDF0GJywHLQo2EEDnQ1NlEi1YwQTHTQTHbRAHYwcAEQYnbAdhCjZQS5Znb5kSLVjxBMctBMcNEAdrBwgtBicMBwkKNjBH4fKIfRItWCEEx20Ex00QB2cHBEEGJ0wHRQo2cE2VWrMREixZBMcNBMctEAdvBwxdBicsBy0SLFkG7/////0Ex00KNhBBEIin0QQnbQTHLRAHYRItWHEG7/////8HABkExywHYQo2UEpf/KkNBCcNBMdtEAdpEi1Y4Qbv/////wcIKQTHbAcJCjYwRpyOUq0EJ00Exw0QB2USLVhRBu//////BwQ9BMcMB0UKNnBM5oJP8QQnLQTHTRAHbRItWMEG7/////8HDFUEx0wHLQo2EEMNZW2VBCdtBMctEAdhEi1YMQbv/////wcAGQTHLAdhCjZQSkswMj0EJw0Ex20QB2kSLVihBu//////BwgpBMdsBwkKNjBF99O//QQnTQTHDRAHZRItWBEG7/////8HBD0ExwwHRQo2cE9FdhIVBCctBMdNEAdtEi1YgQbv/////wcMVQTHTActCjYQQT36ob0EJ20Exy0QB2ESLVjxBu//////BwAZBMcsB2EKNlBLg5iz+QQnDQTHbRAHaRItWGEG7/////8HCCkEx2wHCQo2MERRDAaNBCdNBMcNEAdlEi1Y0Qbv/////wcEPQTHDAdFCjZwToREITkEJy0Ex00QB20SLVhBBu//////BwxVBMdMBy0KNhBCCflP3QQnbQTHLRAHYRItWLEG7/////8HABkExywHYQo2UEjXyOr1BCcNBMdtEAdpEi1YIQbv/////wcIKQTHbAcJCjYwRu9LXKkEJ00Exw0QB2USLViRBu//////BwQ9BMcMB0UKNnBOR04brQQnLQTHTRAHbRIsWQbv/////wcMVQTHTActEAcBEActEAfFEAfpIg8ZASDn+D4Je9///iUUAiV0EiU0IiVUMTIs8JEyLdCQITItkJBBIi1wkGEiLbCQgSIPEKPPDzMzMzMzMzMzMzMzM////////////////AAAAAAAAAAAAAAAAAQAAAP////8BAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAABAAAAAAAAAAAAAAD////////////////+////AAAAAFElY/zCyrnzhJ4Xp6365rz//////////wAAAAD/////T7wA7qrI0cxmLg8fhAAAAAAAZi4PH4QAAAAAAA8fQABBVEFVTTHATTHJTTHSTTHbTTHtTCsGTBtOCEwbVhBMicBMG14YSI019P7//0yJykmD3QBMAwZMidFME04ITBNWEE2J3EwTXhhNhe1MD0TATA9EykyJB0wPRNFMiU8ITQ9E3EyJ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kAAAAGZMDzj20fNMDzj23cTC8/aumAAAAEiLUwhmTA849tnzTA849uVmTQ849uDzTQ849uhJg9UAxOLz9q6AAAAAZkwPOPbJ80wPOPbVxOLz9q6IAAAAZkwPOPbR80wPOPbdxOLz9q6QAAAAZkwPOPbZ80wPOPblxOLz9q6YAAAATInKxMLr9sdmTA849uHzTA849u1mTQ849ujzTQ849sBJg9AAxMLz9q6AAAAAZkwPOPbJ80wPOPbVxMLz9q6IAAAAZkwPOPbR80wPOPbdxMLz9q6QAAAAZkwPOPbZ80wPOPblxMLz9q6YAAAASItTEGZMDzj24fNMDzj27WZNDzj26fNNDzj2wUmD0ADE4vP2roAAAABmTA849tHzTA849t3E4vP2rogAAABmTA849tnzTA849uXE4vP2rpAAAABmTA849uHzTA849u3E4vP2rpgAAABMidLEwuv2x2ZMDzj26fNMDzj2xWZNDzj2wfNNDzj2yUmD0QDEwvP2roAAAABmTA849tHzTA849t3EwvP2rogAAABmTA849tnzTA849uXEwvP2rpAAAABmTA849uHzTA849u3EwvP2rpgAAABIi1MYZkwPOPbp80wPOPbFZk0POPbC800POPbKSYPRAMTi8/augAAAAGZMDzj22fNMDzj25cTi8/auiAAAAGZMDzj24fNMDzj27cTi8/aukAAAAGZMDzj26fNMDzj2xcTi8/aumAAAAEyJ2sTC6/bHZkwPOPbB80wPOPbNZk0POPbK800POPbSSYPSAMTC8/augAAAAGZMDzj22fNMDzj25cTC8/auiAAAAGZMDzj24fNMDzj27cTC8/aukAAAAGZMDzj26fNMDzj2xcTC8/aumAAAAE2NtoAAAABMieNmTA849sHzTA849s1MiepmTQ849svzTQ849tNJg9IATInBTSsmTRtuCE0bRhBMic1NG04YSYPaAEwPQuNMD0LqTA9CwUwPQs1MiSdMiW8ITIlHEEyJTxhMizwkTIt0JAhMi2wkEEyLZCQYSItcJCBIi2wkKEiNZCQw88NmLg8fhAAAAAAAZi4PH4QAAAAAAGYPH0QAAFVTQVRBVUFWQVdIidNIixZMi3YITIt+EEyLRhhIjTX99P//6xtmLg8fhAAAAAAAZi4PH4QAAAAAAA8fgAAAAADEQrP21sRC8/bfSInQZkkP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SPflSMHpIE0BwUkRykkRw0yJyEiD0gBMiclJweEgSYnQSPflSMHpIE0BykkRy0kRwEyJ0EiD0gBMidFJweIgSYnRSPflSMHpIE0B00kRyEkRwUyJ2EiD0gBMidlJweMgSYnSSPflSMHpIE0B2EkRyUkRwkiD0gBNMdtNAcRNEc1NieBNEdZJEddNielJg9MASYPs/02J8kkZ9UmD3gBMiflJGe9Jg9sATQ9C4E0PQulMiSdND0LyTIlvCEwPQvlMiXcQTIl/GPPDZi4PH4QAAAAAAGYuDx+EAAAAAABmLg8fhAAAAAAAkMRCu/bJxELz9tJJx8YgAAAATTHtxELT9ttMiz047P//SRHJxELz9uRMicJJEerEwon36EkRy8TCi/fISYPUAEkB6UkRysTC8/bvSItTCEkRy0kR7EmD1QBNMcDE4vP2roAAAABmTA849snzTA849tXE4vP2rogAAABmTA849tHzTA849t3E4vP2rpAAAABmTA849tnzTA849uXE4vP2rpgAAABMicpmTA849uHEwon3yfNMDzj27cTCi/fpZk0POPbo800POPbASYPQAEkBykkR68TC8/bvSItTEEkRzEkR7UmD0ABNMcnE4vP2roAAAABmTA849tHzTA849t3E4vP2rogAAABmTA849tnzTA849uXE4vP2rpAAAABmTA849uHzTA849u3E4vP2rpgAAABMidJmTA849unEwon3yvNMDzj2xcTCi/fqZk0POPbB800POPbJSYPRAEkBy0kR7MTC8/bvSItTGEkRzUkR6EmD0QBNMdLE4vP2roAAAABmTA849tnzTA849uXE4vP2rogAAABmTA849uHzTA849u3E4vP2rpAAAABmTA849unzTA849sXE4vP2rpgAAABMidpmTA849sHEwon3y/NMDzj2zcTCi/frZk0POPbK800POPbSSYPSAEkBzEkR7cTC8/bvTInjTIs1Ter//0kRyEyJ6kkR6UmD0gAxwEyJwUmD3P9NGfVJg9gATInNTRn5SYPaAEwPQuNMD0LqTIknTA9CwUyJbwhMD0LNTIlHEEyJTxjzw2YuDx+EAAAAAABmLg8fhAAAAAAAZg8fhAAAAAAAxEKz9tbEQvP23zHASRHKxELT9uBMifJJEetJg9QATTHtxMLz9u9mTA849tnzTA849uXEwvP26EyJ+mZM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6GMAAADovgkAAOhZAAAA6LQJAABNidFIifdmSA9+0WZID37iSItEJCjo+vb//0iLdCQoSMfAAQAAAEyLftBMi3bYTItu4EyLZuhIi27wSIte+EiNJvPDZi4PH4QAAAAAAA8fgAAAAABIjXwkOEqNLA5MiUwkCEiJbCQQ6ytmLg8fhAAAAAAAkGZmZi4PH4QAAAAAAD5mD38HZg9/RxBmD39HIGYPf0cwZg9/R0BmD39HUGYPf0dgZg9/R3BIjb+AAAAASYPpQHXLSIsWTTHSTTHbTTHkTTHtTTH2TTH/SI18JDhIMe3rAMTiu/ZGCGZNDzj2wfNMDzj20MTis/ZGEGZNDzj2yvNMDzj22MTiq/aGGAAAAGZNDzj20/NMDzj24MTio/aGIAAAAGZNDzj23PNMDzj26MTim/ZGKGZNDzj25fNMDzj28MTik/ZGMGZNDzj27vNJDzj2x8Rii/Z+OEiLVghmTA849vDzTA849v1ME39ATIlHCEyJTxBIGclIMe3E4rv2XhDE4rP2RhhmTQ849sLzTA849svE4qv2XiBmTQ849svzTA849tDE4qP2higAAABmTQ849tTzTA849tvE4pv2njAAAABmTQ849t3zTQ849ubEYpP2tjgAAABIi1YQZkwPOPbg80wPOPbrZk0POPbv80wPOPb1ZkwPOPb1TIlHGEyJTyDE4rv2XhjE4rP2RiBmTQ849sLzTA849svE4qv2XihmTQ849svzTA849tDE4qP2hjAAAABmTQ849tTzTQ849t3EYpv2rjgAAAA+SItWGGZMDzj22/NMDzj24GZNDzj25kyJRyhMiU8wxOK79kYg80wPOPbtZkwPOPbtxOKz9l4oZk0POPbC80wPOPbIxOKr9kYwZk0POPbL800POPbUxGKj9mY4SItWIEyLdihmTA849tPzTA849thMi34wZk0POPbd80wPOPblZkwPOPblTIlHOEyJT0DEwrP2xkyLRjhmTQ849srEwqv23/NMDzj20GZNDzj208TCo/bATIny80wPOPbbZk0POPbcZkgPOPbFxMKL9t/EQpv26EyJ+kiNdkBmTQ849t7zTA849uNmTA849uDzTA849u1nZ8RCu/bwZk0POPboZkwPOPb1SDt0JBAPhAkCAABI99lIx8H4////SYnvTItHQGZMDzj2T0hmTA849ldQZkwPOPZfWEwTZ2BME29oTBN3cEwTf3hIjS5Ijb+AAAAASBnASItWwEiJRCQYSIl8JCAxwOsUZi4PH4QAAAAAAGYuDx+EAAAAAABMicPEYvv2RQBmSA849tjzTQ849sHEYvv2TQhmTA849sDzTQ849srEYvv2VRBmTA849sjzTQ849tPEYvv2XRhmTA849tDzTQ849tzEYvv2pSAAAABmTA849tjzTQ849uXEYvv2bShmTA849uDzTQ849u7EYvv2dTBIiRzPuwAAAABmTA849ujzTQ849vfEYvv2vTgAAABIi1TOCGZMDzj28PNMDzj2+2ZMDzj2+2dI/8EPhUn///9IjW1ASMfB+P///0g7bCQQdFdIK1wkGGZIi1bAZkwPOPYHZkwPOPZPCEwTVxBME18YTBNnIEwTbyhME3cwTBN/OEiNf0BnSBnAMdtIiUQkGOn0/v//Zi4PH4QAAAAAAGYuDx+EAAAAAABIMe1IK1wkGGZMDzj2xUiLTCQgZkwPOPbNSIsWSYPSAEyJB0mD0wBJg9QASYPVAEmD1gBJg9cASDnPD4TA+///TIlPCEyLSQhMiVcQTItREEyJXxhMi1kYTIlnIEyLYSBMiW8oTItpKEyJdzBMi3EwTIl/OEyLeThIic/pgPv//0yJT0hmSA9+2UyJV1BMiV9YTIlnYEyJb2hMiXdwSI18JDhIixQOTItfCE0x0kyLTCQI800POPbbTItnEEyLbxjE4vv22vNNDzj25GZJDzj2wkiLlA4IAAAATIuXIAAAAPNNDzj27WZJDzj220yLXyhIiQdIiV8IxOL79trzTQ849tJmSQ849sRIi1QOEEyLZzDzTQ849ttmSQ849t1Mi284SIlHEEiJXxjE4vv22vNNDzj25GZJDzj2wkiLVA4YSI1JIEyLV0DzTQ849u1mSQ849ttMi19ISIlHIEiJXyjE4vv22vNNDzj20mZJDzj2xOMuSIuUDgAAAADzTQ849ttmSQ849t1Mi2dQTItvWEiJRzBIiV84SI1/QJDpIP///2ZJDzj23UiJRzBIiV84SI1/QGZID37VMcBIi1wkKEiLVCQ4So1MDcBIiUwkCEiJfCQQSI18JDjrBw8fgAAAAABMi08ITItXEEyLXxhMi2cgSYnQSA+v00yLbyhMi3cwTIt/OEiJRCQgSI1/QEgx9kjHwfj////rCA8fhAAAAAAATInDxGL79kUAZkgPOPbD800POPbBxGLj9k0IZkwPOPbD800POPbKxGLj9lUQZkwPOPbL800POPbTxGLj9l0YZkwPOPbT800POPbcxGLj9qUgAAAASInQTInCZkwPOPbb800POPblxOLj9lQkKEiJwkiJRMx4xGL79m0oZkwPOPbg800POPbuxGL79nUwZkwPOPbo800POPb3xGL79n04SInaZkwPOPbw80wPOPb+ZkwPOPb+Z2dnSP/BD4VA////SInwSDtsJAgPg38BAABIi1QkOEwDB0iNbUBIx8H4////ZkwPOPZPCGZMDzj2VxBME18YTBNnIEwTbyhME3cwTBN/OEiNf0BIGcBIMfZIiUQkGOsMZi4PH4QAAAAAAGaQTInDxGL79kUAZkgPOPbY800POPbBxGL79k0IZkwPOPbA800POPbKxGL79lUQZkwPOPbI800POPbTxGL79l0YZkwPOPbQ800POPbcxGL79qUgAAAAZkwPOPbY800POPblxGL79m0oZkwPOPbg800POPbuxGL79nUwZkwPOPbo800POPb3xGL79n04SIuUzIAAAABmTA849vDzTA849v5IiRzPTInDZkwPOPb+SP/BD4VM////SDtsJAhzRUgrdCQYSItUJDhIjW1ATBMHTBNPCEwTVxBME18YTBNnIEwTbyhME3cwTBN/OEiNf0BIGcBIg+kISDH2SIlEJBjpAP///0gxwEwDRCQgSYPRAEmD0gBJg9MASYPUAEmD1QBJg9YASYPXAEiD0ABIK3QkGEwTB2ZID37ZTBNPCEiLdThmSA9+1UwTVxBME18YTBNnIEwTbyhME3cwTBN/OEiD0ABIi1wkKEiLVA9ATIkHTI1HQEyJTwhMiVcQTIlfGEyJZyBMiW8oTIl3MEyJfzhIjXwPQEw7RCQQD4IF/f//88MPHwBMi2UASYnKSYnJSPfYSMH5BWZID37KZkgPfs5J/8xMi20ITTHATIt1EEyLfRjrEZBMi2UATIttCEyLdRBMi30YxGKY8uBIjW0gxGKQ8ujEYojy8MRigPL4SffYTBMnTBNvCEwTdxBME38YTIkiSI1/IEyJaghNGcBMiXIQTIl6GEiNUiBI/8F1p0n32fPDZpCD/gB0GkiNFMpIiwdIjX8ISIkCSI2SAAEAAIPuAXXq88NmLg8fhAAAAAAADx9EAABMjRQk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MP////8lWrsAAGgMAAAA6SD/////JVK7AABoDQAAAOkQ/////yVKuwAAaA4AAADpAP////8lQrsAAGgPAAAA6fD+////JTq7AABoEAAAAOng/v///yUyuwAAaBEAAADp0P7///8lKrsAAGgSAAAA6cD+////JSK7AABoEwAAAOmw/v///yUauwAAaBQAAADpoP7///8lErsAAGgVAAAA6ZD+////JQq7AABoFgAAAOmA/v///yUCuwAAaBcAAADpcP7///8l+roAAGgYAAAA6WD+////JfK6AABoGQAAAOlQ/v///yXqugAAaBoAAADpQP7///8l4roAAGgbAAAA6TD+////Jdq6AABoHAAAAOkg/v///yXSugAAaB0AAADpEP7///8lyroAAGgeAAAA6QD+////JcK6AABoHwAAAOnw/f///yW6ugAAaCAAAADp4P3///8lsroAAGghAAAA6dD9////Jaq6AABoIgAAAOnA/f///yWiugAAaCMAAADpsP3///8lmroAAGgkAAAA6aD9////JZK6AABoJQAAAOmQ/f///yWKugAAaCYAAADpgP3///8lgroAAGgnAAAA6XD9////JXq6AABoKAAAAOlg/f///yVyugAAaCkAAADpUP3///8laroAAGgqAAAA6UD9////JWK6AABoKwAAAOkw/f///yVaugAAaCwAAADpIP3///8lUroAAGgtAAAA6RD9////JUq6AABoLgAAAOkA/f///yVCugAAaC8AAADp8Pz///8lOroAAGgwAAAA6eD8////JTK6AABoMQAAAOnQ/P///yUqugAAaDIAAADpwPz///8lIroAAGgzAAAA6bD8////JRq6AABoNAAAAOmg/P///yUSugAAaDUAAADpkPz///8lCroAAGg2AAAA6YD8////JQK6AABoNwAAAOlw/P///yX6uQAAaDgAAADpYPz///8l8rkAAGg5AAAA6VD8////Jeq5AABoOgAAAOlA/P///yXiuQAAaDsAAADpMPz///8l2rkAAGg8AAAA6SD8////JdK5AABoPQAAAOkQ/P///yXKuQAAaD4AAADpAPz///8lwrkAAGg/AAAA6fD7////Jbq5AABoQAAAAOng+////yWyuQAAaEEAAADp0Pv///8lqrkAAGhCAAAA6cD7////JaK5AABoQwAAAOmw+////yWauQAAaEQAAADpoPv///8lkrkAAGhFAAAA6ZD7////JYq5AABoRgAAAOmA+////yWCuQAAaEcAAADpcPv///8lerkAAGhIAAAA6WD7////JXK5AABoSQAAAOlQ+////yVquQAAaEoAAADpQPv///8lYrkAAGhLAAAA6TD7////JVq5AABoTAAAAOkg+////yVSuQAAaE0AAADpEPv///8lSrkAAGhOAAAA6QD7////JUK5AABoTwAAAOnw+v///yU6uQAAaFAAAADp4Pr///8lMrkAAGhRAAAA6dD6////JSq5AABoUgAAAOnA+v///yUiuQAAaFMAAADpsPr///8lGrkAAGhUAAAA6aD6////JRK5AABoVQAAAOmQ+v///yUKuQAAaFYAAADpgPr///8lArkAAGhXAAAA6XD6////Jfq4AABoWAAAAOlg+v///yXyuAAAaFkAAADpUPr///8l6rgAAGhaAAAA6UD6////JeK4AABoWwAAAOkw+v///yXauAAAaFwAAADpIPr///8l0rgAAGhdAAAA6RD6////Jcq4AABoXgAAAOkA+v///yXCuAAAaF8AAADp8Pn///8lurgAAGhgAAAA6eD5////JbK4AABoYQAAAOnQ+f///yWquAAAaGIAAADpwPn///8lorgAAGhjAAAA6bD5////JZq4AABoZAAAAOmg+f///yWSuAAAaGUAAADpkPn///8lirgAAGhmAAAA6YD5////JYK4AABoZwAAAOlw+f///yV6uAAAaGgAAADpYPn///8lcrgAAGhpAAAA6VD5////JWq4AABoagAAAOlA+f///yViuAAAaGsAAADpMPn///8lWrgAAGhsAAAA6SD5////JVK4AABobQAAAOkQ+f///yVKuAAAaG4AAADpAPn///8lQrgAAGhvAAAA6fD4////JTq4AABocAAAAOng+P///yUyuAAAaHEAAADp0Pj///8lKrgAAGhyAAAA6cD4////JSK4AABocwAAAOmw+P///yUauAAAaHQAAADpoPj///8lErgAAGh1AAAA6ZD4////JQq4AABodgAAAOmA+P///yUCuAAAaHcAAADpcPj///8l+rcAAGh4AAAA6WD4////JfK3AABoeQAAAOlQ+P///yXqtwAAaHoAAADpQPj///8l4rcAAGh7AAAA6TD4////Jdq3AABofAAAAOkg+P///yXStwAAaH0AAADpEPj///8lyrcAAGh+AAAA6QD4////JcK3AABofwAAAOnw9////yW6twAAaIAAAADp4Pf///8lsrcAAGiBAAAA6dD3////Jaq3AABoggAAAOnA9////yWitwAAaIMAAADpsPf///8lmrcAAGiEAAAA6aD3////JZK3AABohQAAAOmQ9////yWKtwAAaIYAAADpgPf///8lgrcAAGiHAAAA6XD3////JXq3AABoiAAAAOlg9////yVytwAAaIkAAADpUPf///8larcAAGiKAAAA6UD3////JWK3AABoiwAAAOkw9////yVatwAAaIwAAADpIPf///8lUrcAAGiNAAAA6RD3////JUq3AABojgAAAOkA9////yVCtwAAaI8AAADp8Pb///8lOrcAAGiQAAAA6eD2////JTK3AABokQAAAOnQ9v///yUqtwAAaJIAAADpwPb///8lIrcAAGiTAAAA6bD2////JRq3AABolAAAAOmg9v///yUStwAAaJUAAADpkPb///8lCrcAAGiWAAAA6YD2////JQK3AABolwAAAOlw9v///yX6tgAAaJgAAADpYPb///8l8rYAAGiZAAAA6VD2////Jeq2AABomgAAAOlA9v///yXitgAAaJsAAADpMPb///8l2rYAAGicAAAA6SD2////JdK2AABonQAAAOkQ9v///yXKtgAAaJ4AAADpAPb///8lwrYAAGifAAAA6fD1////Jbq2AABooAAAAOng9f///yWytgAAaKEAAADp0PX///8lqrYAAGiiAAAA6cD1////JaK2AABoowAAAOmw9f///yWatgAAaKQAAADpoPX///8lkrYAAGilAAAA6ZD1////JYq2AABopgAAAOmA9f///yWCtgAAaKcAAADpcPX///8lerYAAGioAAAA6WD1////JXK2AABoqQAAAOlQ9f///yVqtgAAaKoAAADpQPX///8lYrYAAGirAAAA6TD1////JVq2AABorAAAAOkg9f///yVStgAAaK0AAADpEPX///8lSrYAAGiuAAAA6QD1////JUK2AABorwAAAOnw9P///yU6tgAAaLAAAADp4PT///8lMrYAAGixAAAA6dD0////JSq2AABosgAAAOnA9P///yUitgAAaLMAAADpsPT///8lGrYAAGi0AAAA6aD0////JRK2AABotQAAAOmQ9P///yUKtgAAaLYAAADpgPT///8lArYAAGi3AAAA6XD0////Jfq1AABouAAAAOlg9P///yXytQAAaLkAAADpUPT///8l6rUAAGi6AAAA6UD0////JeK1AABouwAAAOkw9P///yXatQAAaLwAAADpIPT///8l0rUAAGi9AAAA6RD0////Jcq1AABovgAAAOkA9P///yXCtQAAaL8AAADp8PP///8lurUAAGjAAAAA6eDz////JbK1AABowQAAAOnQ8////yWqtQAAaMIAAADpwPP///8lorUAAGjDAAAA6bDz////JZq1AABoxAAAAOmg8////yWStQAAaMUAAADpkPP///8lirUAAGjGAAAA6YDz////JYK1AABoxwAAAOlw8////yV6tQAAaMgAAADpYPP///8lcrUAAGjJAAAA6VDz////JWq1AABoygAAAOlA8////yVitQAAaMsAAADpMPP///8lWrUAAGjMAAAA6SDz////JVK1AABozQAAAOkQ8////yVKtQAAaM4AAADpAPP///8lQrUAAGjPAAAA6fDy////JTq1AABo0AAAAOng8v///yUytQAAaNEAAADp0PL///8lKrUAAGjSAAAA6cDy////JSK1AABo0wAAAOmw8v///yUatQAAaNQAAADpoPL///8lErUAAGjVAAAA6ZDy////JQq1AABo1gAAAOmA8v///yUCtQAAaNcAAADpcPL///8l+rQAAGjYAAAA6WDy////JfK0AABo2QAAAOlQ8v///yXqtAAAaNoAAADpQPL///8l4rQAAGjbAAAA6TDy////Jdq0AABo3AAAAOkg8v///yXStAAAaN0AAADpEPL///8lyrQAAGjeAAAA6QDy////JcK0AABo3wAAAOnw8f///yW6tAAAaOAAAADp4PH///8lsrQAAGjhAAAA6dDx////Jaq0AABo4gAAAOnA8f///yWitAAAaOMAAADpsPH///8lmrQAAGjkAAAA6aDx////JZK0AABo5QAAAOmQ8f///yWKtAAAaOYAAADpgPH///8lgrQAAGjnAAAA6XDx////JXq0AABo6AAAAOlg8f///yVytAAAaOkAAADpUPH///8larQAAGjqAAAA6UDx////JWK0AABo6wAAAOkw8f///yVatAAAaOwAAADpIPH///8lUrQAAGjtAAAA6RDx////JUq0AABo7gAAAOkA8f///yVCtAAAaO8AAADp8PD///8lOrQAAGjwAAAA6eDw////JTK0AABo8QAAAOnQ8P///yUqtAAAaPIAAADpwPD///8lIrQAAGjzAAAA6bDw////JRq0AABo9AAAAOmg8P///yUStAAAaPUAAADpkPD///8lCrQAAGj2AAAA6YDw////JQK0AABo9wAAAOlw8P///yX6swAAaPgAAADpYPD///8l8rMAAGj5AAAA6VDw////JeqzAABo+gAAAOlA8P///yXiswAAaPsAAADpMPD///8l2rMAAGj8AAAA6SDw////JdKzAABo/QAAAOkQ8P///yXKswAAaP4AAADpAPD///8lwrMAAGj/AAAA6fDv////JbqzAABoAAEAAOng7////yWyswAAaAEBAADp0O////8lqrMAAGgCAQAA6cDv////JaKzAABoAwEAAOmw7////yWaswAAaAQBAADpoO////8lkrMAAGgFAQAA6ZDv////JYqzAABoBgEAAOmA7////yWCswAAaAcBAADpcO////8lerMAAGgIAQAA6WDv////JXKzAABoCQEAAOlQ7////yVqswAAaAoBAADpQO////8lYrMAAGgLAQAA6TDv////JVqzAABoDAEAAOkg7////yVSswAAaA0BAADpEO////8lSrMAAGgOAQAA6QDv////JUKzAABoDwEAAOnw7v///yU6swAAaBABAADp4O7///8lMrMAAGgRAQAA6dDu////JSqzAABoEgEAAOnA7v///yUiswAAaBMBAADpsO7///8lGrMAAGgUAQAA6aDu////JRKzAABoFQEAAOmQ7v///yUKswAAaBYBAADpgO7///8lArMAAGgXAQAA6XDu////JfqyAABoGAEAAOlg7v///yXysgAAaBkBAADpUO7///8l6rIAAGgaAQAA6UDu////JeKyAABoGwEAAOkw7v///yXasgAAaBwBAADpIO7///8l0rIAAGgdAQAA6RDu////JcqyAABoHgEAAOkA7v///yXCsgAAaB8BAADp8O3///8lurIAAGggAQAA6eDt////JbKyAABoIQEAAOnQ7f///yWqsgAAaCIBAADpwO3///8lorIAAGgjAQAA6bDt////JZqyAABoJAEAAOmg7f///yWSsgAAaCUBAADpkO3///8lirIAAGgmAQAA6YDt////JYKyAABoJwEAAOlw7f///yV6sgAAaCgBAADpYO3///8lcrIAAGgpAQAA6VDt////JWqyAABoKgEAAOlA7f///yVisgAAaCsBAADpMO3///8lWrIAAGgsAQAA6SDt////JVKyAABoLQEAAOkQ7f///yVKsgAAaC4BAADpAO3///8lQrIAAGgvAQAA6fDs////JTqyAABoMAEAAOng7P///yUysgAAaDEBAADp0Oz///8lKrIAAGgyAQAA6cDs////JSKyAABoMwEAAOmw7P///yUasgAAaDQBAADpoOz///8lErIAAGg1AQAA6ZDs////JQqyAABoNgEAAOmA7P///yUCsgAAaDcBAADpcOz///8l+rEAAGg4AQAA6WDs////JfKxAABoOQEAAOlQ7P///yXqsQAAaDoBAADpQOz///8l4rEAAGg7AQAA6TDs////JdqxAABoPAEAAOkg7P///yXSsQAAaD0BAADpEOz///8lyrEAAGg+AQAA6QDs////JcKxAABoPwEAAOnw6////yW6sQAAaEABAADp4Ov///8lsrEAAGhBAQAA6dDr////JaqxAABoQgEAAOnA6////yWisQAAaEMBAADpsOv///8lmrEAAGhEAQAA6aDr////JZKxAABoRQEAAOmQ6////yWKsQAAaEYBAADpgOv///8lgrEAAGhHAQAA6XDr////JXqxAABoSAEAAOlg6////yVysQAAaEkBAADpUOv///8larEAAGhKAQAA6UDr////JWKxAABoSwEAAOkw6////yVasQAAaEwBAADpIOv///8lUrEAAGhNAQAA6RDr////JUqxAABoTgEAAOkA6////yVCsQAAaE8BAADp8Or///8lOrEAAGhQAQAA6eDq////JTKxAABoUQEAAOnQ6v///yUqsQAAaFIBAADpwOr///8lIrEAAGhTAQAA6bDq////JRqxAABoVAEAAOmg6v///yUSsQAAaFUBAADpkOr///8lCrEAAGhWAQAA6YDq////JQKxAABoVwEAAOlw6v///yX6sAAAaFgBAADpYOr///8l8rAAAGhZAQAA6VDq////JeqwAABoWgEAAOlA6v///yXisAAAaFsBAADpMOr///8l2rAAAGhcAQAA6SDq////JdKwAABoXQEAAOkQ6v///yXKsAAAaF4BAADpAOr///8lwrAAAGhfAQAA6fDp////JbqwAABoYAEAAOng6f///yWysAAAaGEBAADp0On///8lqrAAAGhiAQAA6cDp////JaKwAABoYwEAAOmw6f///yWasAAAaGQBAADpoOn///8lkrAAAGhlAQAA6ZDp////JYqwAABoZgEAAOmA6f///yWCsAAAaGcBAADpcOn///8lerAAAGhoAQAA6WDp////JXKwAABoaQEAAOlQ6f///yVqsAAAaGoBAADpQOn///8lYrAAAGhrAQAA6TDp////JVqwAABobAEAAOkg6f///yVSsAAAaG0BAADpEOn///8lSrAAAGhuAQAA6QDp////JUKwAABobwEAAOnw6P///yU6sAAAaHABAADp4Oj///8lMrAAAGhxAQAA6dDo////JSqwAABocgEAAOnA6P///yUisAAAaHMBAADpsOj///8lGrAAAGh0AQAA6aDo////JRKwAABodQEAAOmQ6P///yUKsAAAaHYBAADpgOj///8lArAAAGh3AQAA6XDo////JfqvAABoeAEAAOlg6P///yXyrwAAaHkBAADpUOj///8l6q8AAGh6AQAA6UDo////JeKvAABoewEAAOkw6P///yXarwAAaHwBAADpIOj///8l0q8AAGh9AQAA6RDo////JcqvAABofgEAAOkA6P///yXCrwAAaH8BAADp8Of///8luq8AAGiAAQAA6eDn////JbKvAABogQEAAOnQ5////yWqrwAAaIIBAADpwOf///8loq8AAGiDAQAA6bDn////JZqvAABohAEAAOmg5////yWSrwAAaIUBAADpkOf///8liq8AAGiGAQAA6YDn////JYKvAABohwEAAOlw5////yV6rwAAaIgBAADpYOf///8lcq8AAGiJAQAA6VDn////JWqvAABoigEAAOlA5////yVirwAAaIsBAADpMOf///8lWq8AAGiMAQAA6SDn////JVKvAABojQEAAOkQ5////yVKrwAAaI4BAADpAOf///8lQq8AAGiPAQAA6fDm////JTqvAABokAEAAOng5v///yUyrwAAaJEBAADp0Ob///8lKq8AAGiSAQAA6cDm////JSKvAABokwEAAOmw5v///yUarwAAaJQBAADpoOb///////////////////////8AAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOoCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJD/////////kP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQ/////////5D/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABaAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAhAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACAAQAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABcAgAAAAAAAAAAAAAAAAAAIgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAA2AAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAnAQAAAAAAAAAAAAAAAAAArwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABSAgAAAAAAAAAAAAAAAAAAJQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAC7AAAAAAAAAAAAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABuAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAaQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAAOgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAlAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAJgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACCAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAB/AAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACTAAAAAAAAAAAAAAAAAAAASQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAA1AAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAWUAAAAAAAAAAAAIAAAAAAAAABQAAAAAAAAAAAAAAAGr4QAAAAAAAAAAAAgAAAAAAAAAIAAAAAAAAAAAAAACE15dBAAAAAAAAAAABAAAAAAAAAAsAAAAAAAAAAAAA6HZIN0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI/////////0j/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASP////////9I/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAAAAAMRvAAAAAAAAAQAAAAAAAADjbwAAAAAAAAEAAAAAAAAA+28AAAAAAAABAAAAAAAAAAZwAAAAAAAAAQAAAAAAAAAccAAAAAAAAAEAAAAAAAAALXAAAAAAAAABAAAAAAAAADdwAAAAAAAAAQAAAAAAAAAqbwAAAAAAAAEAAAAAAAAARm8AAAAAAAABAAAAAAAAAFBvAAAAAAAAAQAAAAAAAABCcAAAAAAAAAEAAAAAAAAAW28AAAAAAAABAAAAAAAAAK9vAAAAAAAAHgAAAAAAAAAIAAAAAAAAAPv//28AAAAAAQAACAAAAAAVAAAAAAAAAAAAAAAAAAAABwAAAAAAAADIrQAA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AAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AQAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAAAAAAAAAAAAAAAAAAAAD/////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAD//wAAAQD//xAAAQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAFDDAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIAAAAAAAAAAC5pbml0X2FycmF5AC50ZXh0AC5nb3QALmdvdC5wbHQALnJlbGEucGx0AC5pbml0AC50YnNzAC5ic3MALmR0b3JzAC5jdG9ycwAuZHluc3RyAC5laF9mcmFtZV9oZHIALmpjcgAuZ251LnZlcnNpb25fcgAuaW50ZXJwAC5kYXRhLnJlbC5ybwAucmVsYS5keW4ALmdudS52ZXJzaW9uAC5keW5zeW0AbWFsbG9jX2hvb2sALmZpbmkALmdudS5oYXNoAC5ub3RlLkFCSS10YWcALmVoX2ZyYW1lAC50bV9jbG9uZV90YWJsZQAuZHluYW1pYwAuc2hzdHJ0YWIALnRkYXRhAC5yb2RhdGEALmdudV9kZWJ1Z2RhdGEALmRhdGEA/Td6WFoAAAFpIt42AgAhAQYAAADrePzz4H//GqddAD+RRYRoPYmnKGH9SyIAtmHzwHVb/R8GuCHq9Jj5ZoLod242O0DttGJ0WRPVxuJkNhrfPSQmdTbp0n1D3dnp5uWvGkxAhwAO/ulQH2d1LXfAUh0DxRnP1oO+kBGxElmLVYGAb103ZdkPvnYliyFMf0C/qPCn3NICaxtSRy4qJbqo11YHDwre//FDTw/fDn22Ur2sAL7VHVE051qqjvBNSDTMPzL7gjxgm4ef3InP2ysXR0E8Cbg/FgIGv5GcIIx872zRCcQxJ/jfZH9W6LwP5tzBiVACuzpIHHLbo0pM5qNnCwQjCaqBEKufO98ZQew7tpnc2cwM2OZGGY6ruZZTddozEoydq30zO/CkxjAA0daXgp0vRm5pAWjc0zrhqjkgTfnNhi0qxe3T3uXzpcDBfmQ9tiGrWtZoKKXo/bkVDIIk9FDe1g4Qkh7iIrT32O4Pppl5ISfKyGE4i5Y2Ddm92+Eipnatx5HhdopKhm9ZrViHlZUPn9sLQrCGfg7y/M5z58OdViaxArk7WtrDZ4bZWGV3z9b8LomFNULwEZCS2srQuixm7eRDw+KxWJxgibz8KJtfk+HWTTWZfVqbiVfCQZr9i2UAr0CoUG74YfgGBTfd31Rnuhr1VTWGeAx6XG9ncJc/0nYtzG8dcnqFUOVpUll5YB4VKTNXl1qUr6zDGpTcWWE5yN6jQ47v++FrTwO4RBsGrgTW4uelQ6jevT4AJf7uLzVoLYFM9C58pwEP905MKYjbgtaTWUSCdg983MeAO1rlTXRXvQ1g+6oK/50haQs5CysdcjuF5rhFhU7yRPDWFmhP3lr13YnQAgyD8ApgKTndXvHip8VUncV6ysXlyRgnfq2lHbRtpddeRJtLCfDFpglicrv/dyeQwiPeh6gLEV96UCxhDShHupWjRtROXmPg15JhwA0HyY8TVPPINuPhXWiYhTm5miWE3kNAn6OHw92OD0DR2UZIUzIAygzd0Q29/rDFhsVUGJkTL73Txk6pv6qf4HCJQ97zW3BJ3IoMM9U1W/Dxe/JD4APMDLadlGWvY6W+Mrch2LWs3XoLdXqMbwNP+a9iRSKVDYgOi5NOdLU7llm5a4V+M1xj3CSitNKF5LPm5L3zQDvPEuDYThmyZRpDKkZzJ327hC/yYY3aNMLDp2ShAvguaY5Lg7h77vmLrz9rtW46j1HHt7Jfs7q8w7NUBfdMXX5q7e9VW17UdivALMfS0oOd6Xxq1NGKzuqH9xImQ87y+I79LaypxuPNhy4CDwlNFTzpB+pUa+ZbvSIsd15Vapk/BRhikjp5syPbKsdgWUZGHd43+Tc1L3yf5eg6s56ChykTI+fdeM9Qem/3Xhrf80Jhp9G1GrwTBzzZqk7IN9rqJ+T/Yf+2OCHWzU9/kbFJ8IoodlZgi/3LGPM2RgV1ZTIos2tHK/U3NpCDD97fB6zL/4UXacVcCC2w/6tgMTBD8tX4BjOKObpfsBCnXO8Qz8D4S62n/ero0LNYlWt4QHj5BM6OtlQoeivYg324OCL6Z5NB5DqWbCJE2zSlIca1o9++qwCHPWUqIZ4R+WH8vaBLQMDQxUKI+N3dM2twtZecnc2gIhtKsdi4STRRB6Mwa6CZ/hyU7AQk07f+iEiGyyTSwoshZaWHI9OYd0S+xiZkWFoEJ+2mnjigLIuGouj5kDwtmDAAi+J99G2w6yRkV3hjwVInjGoOKllii2li7gNdogpil+ekyK7R3YxPplkZklbh+Cu5KU+NAE9VEyFkXdoJuwjM/qM3Vgt5yzpJO9j1QgExUNr/T1sy+/k4+CxeXaOGfdITtQ1EHMhWVTcFL/KEL1S8RO48nHZaHk5iFkxRQKCLf4+x2XK6fC9iSyrsNyfiKtKfqGjwkrYKhiWj8ShjUxQ8ziPWgVNJfTKLUzd/kxH4+ou74Hqo/pJxvdMgTw+WqxlJgGVP+0iId297OWIVkKeKqvdJ0Zq4HCTBshdStq7vv99jU6uWQZOp9MbFNLBW9nJArPlUAsPGXEw+fSyvJ5x6xGYtb/RuM5E/5NV6RkohcmhqXEgg0vroEJgRBHpLfEoT7YjJS8gIIM8nsQLybFEEQ5BtHK0KglkCd589u7AxGr13m/9gn2ADEN8xA+xa6dsSvGuxDLz/f/oWn3c2Mcv576n/m2YaVZmphSY7tMj6eSd73Lb2PccTuj7eWC3gTQZK4ngfpmL751/TWd6KVwP62dN8YPV/g7CIUMbUgjjuJQFoJeI3wtnZ4PRCuJYHi583FczMEldP+cl+ldTgzii/phRt4Urtxr3uo6oiKCqeVT7YWq+xn0AW+eM+QAKIWW0awNzlRETFrZLz1/qP6YDpfiVWE/mCtgCFzDypOgPsc9Zjg9Wnh2+uL/GEYm8HBx0gWe6Enw5YiT36rkuKsxNxN2PuENxv6O/B3pdlLzkCmvAsI0Ffh3Gbc1sS/90tMvfC9ZJvlDYwuyd2kAjHTqqXrvdmGRwwWS4Ip9wcgP6/BijSYCWV4hHp6RDmp/iuOs1aa0xtJq9QgpnUUTiW+pG3yS67jTD4MkzTVFkgmhjNuFXbYhC8Nw0/7oEAuqgcFY5fpuL9s2MvsuHt+ehfmL+mYoYOp6vQ8mX+VVY4fSp3JnPpCHPMJ06z4w3iZr/jP0XIkGXBc/vBnSC2gvpNFrBrrc7Q4TPQ9Mby2Oztz2GZhPL+KkOJ1HJ6HILmJdC+Yg2sNDMxbcY0jvybz51QP74VtDx9BJvCwM0j32CzVtOVZdkWBm1i+RCa75n3ceytZGSlLaGbx/SQZgpA1GidATA7oqNZwk3Tw8pirxi92gSW1BwsLclW2LdUSxdu9ewUCaWqiNs8f0metMmHmwn3zBscwLjdS1PqHGCQihIMtCf4fxDgHD7JGmm/9Po30te5fJqNH1XeqvRqOfKwCaUSe5o8TdH/NQO+vKHUElGZ2dmUPQxsvKW3Gbz1ZCjx47DMhL23OB6yap/cw7INm9LhiCztHfVwwP76MpUQ6az5Wn8y1pvTvqO1G8Cd97wbH0krvbP/Zrq1dgdDaBNw+U2LTlS0jKwa3JxFgWHC3fThWnq8+YP5WdeIeSEjXWiG0yMdpSf7IMSr6phpWVDe03o2Ec73KY93EO6T64sOnflee0t/flIevekaOLfi6upHhNEKuLaoiv9el3l4ycyWgmoUkNYgkMmRqgXk10vs6/TPcUqb+IgqYotsb4ub4KqusGCTYvrBHw7A8krkxkDcvWFzMMYS/isffCydkHuNHBU/DhRD/Xac5lMGL0ggavE05mkue357NVCp62jhtN+f+V7GV3hK5a/P9RodZcrdKuFYr5oksjRL94M4G3JYXXBl8+hB3b1Ne68z8/VhbqOFUlueOVmK73JLl29svlSmpZj6K4wNC3h4bcg/99tB44QXG6hdhNLvh/cmr3F2c3kuZFPznIZXbJ2LmFONU/7uo4FMquDuqNxl1mNi/E2Q22YeXjQS+f8qShxZuaUGRBoUDiVOeje3xbuMm5hNYkdtfX2fHgob2Ih7fdR0KfIzJuVmziWLj0sdn/AW0M+uLePRpPrRF79q2e1K2w3y4qqUu4W6Z1LO4iaRzH8t62B+SiCg1rX2ROeZ5LSe9idviRyJ6UhWiJRzQxyPdumVbZagEeKoCDlTZJwi2x8DpDWf+bYCjWvASvk+B8o/EiuqhtVkJLMyssZnafJv2sIYPl+DIlbzbv1GHoNbO+uqYfqAYQNpYZdsVq7NLbEPpOHwguG2uCCy3vhDANYH8KuBfdWGTmevWzzt6awNQQlgEWtOBiPUCqAB1dvhHuN9LWI4zb8WR5W6A3tUU7Pv3qmE9TwVVdF7rzmpr75HkZUguE6Lqj2hMwvfiUNwsHz8u3YKs8zFzMJ267i0k8HtP4ZNUqSFx3spbgSU3hoGtrq/8bz87APchMGgXgsbG7N6CJgdgftdiOoKeilnpfdlNwlX5S1rQ6CQqiNqsMyUDQ7FPfh8VGKiSGBabhuoX4TxGx7fqgt3Mt4InZaxvpUaNeMzn40yyQRYugBmu+dVgTkkKS3T/i8dnkJFWcmBs9ZT980VPm6ZTPM7CYL7vDAAFkabchqAKNp3IjhL3xg8BpoAhQJ71yHJtCs6XPziFUFXdWaZfNuvl9lVNUP82dhGYkLGvdMn0pmLqDN89G2WM2IzoBPdcmI3TkKB3DFLBQkB56WOSETlm0xrzTdYtDIHrSVSGhV+URXgYCACO8f6vGAZsrUb77jMlGb0FTB07QiQopISbSUZPlEa+nNCFxQj/KgL8QPDX3mn+JD67QItfxR1tUXDm9vJuM/db0w3T5XGAkoyKFVkcbuz0G/5A3OqFxJ5armzeDEWzIYAl0pzsDVqOiPqmDh8BcY0dzpSG2KXV2rpVK1Sdss2tw+aKpkJzka4/xDvqSVr7Q0le+D8zjmAhD+5Y09v3tWdDMNmIPap2NX086plKWhPuyxdc8cw1n8i6qQN2uElg16cPnVuGxB4WSzMdAKII6cm0DVmqiVyOsm8RzQePP1ap+m97CeiUosBxjGBoXZml3/m1K/BGsXwV835NK+M2t/vmg3YefXH1cFVNql29ZgS6O0cjbp/vbI4c0gxsrCRZaabmVu3+1lWTmdSWANHW7htKUdF1Gp5NY6wCYJo/PNAZRpFm+3lAced95wr5ZU+zAwi6C49OLwF/8YnTut7BKcpWWz45AP+dQu8VEQRohmd/h0s2FM3qkc9V0ZxW500rvCFz0FyR6i7jlFPmBrUeRyc0xtkp/0bT9hhz6RuBi1jIXg430FNR/OWVNUSIkwkT3NOH+vE5GzUge8yo/9T7qCp9r2nO9FyT6viXBB63t9zax6c3zqHi00TxVvhAUG9y18biT4aK8kkswN9/BURTJBicGbKT0BJOmhRn3UfoCyMwDYfKmohiD/I9Bf9YkrK1I1Mq9p9AmADGRauLLZxYo95dvfsWTrf1GKmYrjhA6fQGcdQsaSdEcyW3/EgJaFT+r39BxVxJpstj0zHekd6ODnnmDLSbsOXDV5pkmxqwQKtYuDpQ67He0Wk0Ii3rpSbidtmfLbMnzqTuWFnGuRRPmxluEBAUJLIHMAZTaqX2tqf51vJcN4kkK5M23+ZBGp0ZBIVMnTEhD2mpC84cIjJeEWDgXm9gRxupsbtVT9J8p8SYrAAXwP0qoAd9niIiCrRiL6fgrwlbu2n22AVFQ7sw9eVLVe5pYdnh8/itt8P+WHFfBrrO7n1MPRVMgiOvUu7ejKIxXPn8OH2N2G29wTqaMBkI0RbKpMxSmG6Be8mgW7vQxuZ2EGUdFoT4okjr8o02roHp67NGCj8jwLGEfE5oIqb0q5OCRrlSaPtz3tHe1WWl4n9r/abaN5+k4DyK/mgYIkkePTU0STv9ZfdjzXpHKkXtte9pqlxX/v/l7/j0Ycs6kMus+lDWy4bjNHScicBYCyfOsOyWjiD7DkwDrlCl7EcFX3+tavOsML5mXvaeXelq3dbk6rFdxx5w9Qg7FItcsDdZetrYCGzpaLoKSy67n/JEXW/RjMAFNehWGEQxEJFD4iOblQ2MJWrCL/woAMuhIEreMvSVcM2HyU6e5aegm4k0cMlt9HGF3c00iD6eaJJBaAYmmZb4TGUNqtK+pD/fr5u6+Q0ovnC3+5bkTakJ99vmFPRuYjdkQwZW3Pk0uyhTjTAo6N+2UT5XZATQr82u1LHKefXJXSKug8PLd1LFLwVUbp13ji5zD5hexwUlB36ix689B+RW8bcVjLQEL54MUfO5ozBEQr/fbH6A9cRDuFuYUIa5+SxoCRLYaiDo6cE6mcepatCD7nNA2RpQkfp/AkIKiJomdDi7Smvztl0ioL3RTkEqipXm8OLbYzIqV3pbnzO/6tRkGiCzeMEtusmzX1GH7NvLhwi0nFZ67InGFAPr/AHgsf8UHGoMPny7URNMXQTyoFUNoBRaTCYWkuUy9aTlOWGqZ80BY9fXe6tBbseXVarTbzlmWGLTwJSR8v8Kwz+ZbY79kQzCJn+hiIkGBj/F+TD7We+SIMst4LXi2EsSwfmZLq7M5VlQRwgU1XGux0p2vPmDbB8WFYNm9c5xcFtiIVZdfuOchTQ9ND/VUrqE00A9yBSTvKCNTj0qWcK0sX0v7YyolEzPKRn5SOrVepzfdnBq6LotpK1TwN5RLB/dUfH7Mfb5jEJISSjgQYiWLh7kCCCMZ/B6Wum0RJ6oEdZVap1AqKtEmiaUID4DUDvDDULzczlEdEW88+E3VHqOLzfi2sVQt/KUENSIx/L2exNKi+vE0wAT1IPsG3AxG5jMhT28fazHAif4F5KD3AgKYxW6lu3XW3NWwEeD+IXON2G4jUoOAPRkfHuy5iWIaFTaftz2apc7NaZSraq8HuMKzHWOw1h0Xu6BqlmZQ354TArFt1k14gemd32x8bMx0+D/Bsujd+mhTxDNWyPrVEOTnMD0jdsvWvxlFgD0ay+UEo3tpjNi5xaBBmsZViN+NuBDA6zh+9BytCVKZJ0DQwG2gX+FMztXSuJckNgAQDRzbTMUlV6ajv0ZKIzjFFcdyodDcRRNCPirgKXG/2DBKu3fnP9eN+5Fsvlp6IArJ729v5c49xgNJbzhfA2TbOZAtG0cSMKjZFwMECxVG0Uj/GHS5w4DhHf1RIePFrAaZ+P4D2adFoOOp74UyLr7k0myGHOvr4USYsnUL7J5rrRdgMri3gPwi3S0FwkLuBT9aTmcmeIjJdvHIqBD2y6OYRQrvZispC53TLq6e+6EjKq3DFEFXJ3haXakXEL7vYrgH7vweidgQWkHeQqlBjwdhgBIM2XmnymP7CK6UUIGDRDBdL8qS6D6WEhrP+BWhH+iBAZAhi92KhfdzPuNQUwn3LP3MQAzsnKJ9WtHryiPkfoxr3mO2kIwPak+asU1kAUJ3MjqpQEcGMDZIMMDMQBU2yYdhM6TROBzxEXR7VHBBkJbItCq8G2MTWKfHg7lq9f8E68nqps5QwEDmVGx/kHXkO+u5aZbk2B+AzETXRGebkUBu6JL50WBV4a/MQ2/eOcyw4Jm14dQ1uk9S7PPuwa74uEefOmZ2QvVP8r/01wNPc2sYiIVKZmMrm/a+yDiE3+iCsGQ5vgxLxWIOb6lAbSVdHP72xgSbt+F0EzuAcisQPBA98tPTkmQ/QQQlm1od2wJzQmtvGaLvsvvef6DGpM0TA833hfmffjqnUc/lt4oIdLUKqfgg0YIYgREh2uQIBYKCPBNMAOVSrC8lp31EUNPsVGfWQ/L4S8C23dBbmWRnzOMVHf5DuAbr3nET8a7N838+5D2ajW3FtTJG0/9ahALg0YeIrUUP3lAJYywIrt2Icjamp4Yccqy788OdBRbl9Adeq2GP7jZpMzh4bU89WrUK7WNFLc/6upen1o1+n6MIfZ2c0AahxvotJEboTGoG17AcKjraGeo0HBIYapBYlBzL9Vw4df569XneLSWUN0JAd4JP9ie9ZuoNV/2dFLDxtnxsQBE2Gh7HeJvn/hnc8RzMe7xNfuWOZWuWXtDg/1AQT0/5wu+X2ZlNZq4AsTbeNvbHOKIWynb66okFWEdtZUwo02Y9hWNNGnG7zk6yAkdpr9DtV+SnnEyUC4uyRiblJIw3XwjddAKP3D/mOdbKBfVdc0D6dQt7muKRW/aX80361VdDv0+QJkkgPySEVM9zxiVtuAuEDBEzWO4zSWnI3ofe0tHw0yQS3o76xuzV+oyyLiXNjmJpQMToTh1qC29d0wj3ojzBobR4lfuytc5avmjaTyWmlqlBO1ntgEO1npeK8mzO6S/u0lyHGpG2jP080K5HoVRLCeK9Rnrvv8+YE88aK9FiqREVxBO23uehd03ViMXUnZLy8xSZhxq+BR5wLFC9AhndVEpG0uuCsMdJwXSJYImGRDH8E4Ls/cZmq60GQuxqiJytld3LUep01TovklrD9igt3DR9BAgzXB/Sz2jhfRAnGs8SyHHctN8wQYv8/JpDHP+sJpXBUgnczqPuH9J59FLkYomG8V3MdNnfxvg1uf1sAsYIfex+JlDyWgLTP/pDqhR9+QtpgEu0uwtuqUfW/GSTGMZo6+GLVwq5gjMcQo2AMigOAVrarhZnSqxlWvgnIaMMjvldd4M+I6lAFUON8VU4yTIYCC//5g2Yik8OthU6Dt+8dSyR1MD5JSMDTvKs+NCzdpWA9tFzdE9B/ecZJ9ZE8Mgl9924eH+qe+7AMNz2sC3B9iCdlBOSE/QnCZtyu8pNWMjUegfauySo5FL8s0BwS0iJZaux31VEPBnm8h2aC9rjAjAj23XChvPyTWobdlzZC+2Os5XXObb32f6xVYoGfqycCCdkTAVLo5itpmcrHQcSAo4JtLjOHTaaEmz6Ehz56H5x2xgKzmRXdU8J7Wi4typRk7rB1RJg0DvDNqTfW32KSgDvg/+I2VrMq7+Gs1KxusQhjEHhRfXqZxZhszG2ae/v2c5Ok54c7h+NM7wUtaeAj4NwyfLn00QpBRSDhyRgyqdkGvBKGtOk+7yc6rK01N+SfrfV3aWoOOcUAC2ENzriUiRF1fnTubTXO+WH+bHEcIufP4yI1kP4shllLIPk9Kvnq494t3Q2oPfdVAwPYJTjzqS08wGDXWGL/IJhnksTF3inUKRIrM44/+SSBQfgXdYawvfyTukFOiWXCnEnMszEh4bMLSYbjnvF1cHpghnWr1i0GF4Qp8KyyGVj0lsxwQojtisFR80hBFzYbOYkKMeF44F6BXGfO7uZvSL2xFIUNSANpXCXOZaRk3mncbCpw5GqTlGXQqhNznkpzIYv5H9YkGJbACGc9LFTnm2TAtDeZOIwy7SRpPuqwI6AKJSHpN8kJx88vvVu6CjOs9Nt+Qm0hxKIZVq4PQ+kFG+jt1mK/D+zWntCsVMuVElctlkiDoEmYWIlkn1UIYif95apwlHRmsle62bZVfL8kSffYBYxYfK4NbM1uYXiZsSQIDRZWQf9xr8Rn+FK4pmREOHeimSEHmMQI108AnpTxM/4ggrH/uFuyvrorL6K3j9kNRs8r1lt3/d/MHQmVa1J0qfwuAoUFbnGLX/M2xm8mM6TXGuIpk4UEhtcCRdf3pxAHqLDFrUs+UQyhzpiTEB1xsJg0AALqbIMsCACEBBgAAAOt4/PPgf/8TEF0AN5tKZzlz3Q03wMK/7u+/mLDRDt819uTECwjKdqaMCsIR5TUbY/Cq5EXw2DG+XHvWi23sseoytDg07SSoPYjZP8DT9nU24X8ciXi06/t21czFMMKdh7o4Y6Yg/BWwgmBLYSV3xD7iMpjRodPgDNRERE3QfQDmm7XUdTwZ8/vF2Gka3cpXGqkIgLSsxc5XIJj77iQvEg2yB2Hq5c8Bgk+ocU25kynGexEP62TsvXVt0YQPp3zXQseMmeyjjEYxvnFRS4ZUNRk8CfnnifKxglmD2Jhs9CiLDuw4yQ74akwTL6MzlJwtoYI8oPfil/OyO5ancqc+3NHkOPExCgd3/zUjx/jX1HTP/4yBD4K5Q8WZgHQUUU3HAmSCXRpS+7TDM9BpRpIYoPoojxXD3eNnsNwB38ahE005k6jKrLOhUgHlazboJumDMRW/uZ9r7glSmFWpWMpPEMEOADql8zolkPBwiLAiiv0eWgDvsa1fOxW6MXl2ggmqgwyR6cnyVkQIE4HU7ZTw3ZCGAZh4tkVutBCdwJIoH+LrmRAI+VxTH4Gz/W+ejmkgjtLxoUogcZtKpnJJKwRBKumnhoKf2rSg2j1bxpudFAxBNRYYXdU5uxOXwdhvGIyA33hzIcmzdWwK7TGPiRcRlTZcdinxv6oy+dmwFJDUlbaUoJUsnHVTj+tCAfuQAj6DNd/eJVXoDNFNAkVTz9VP+nYcgAmq/nUg0JTANEMzUc9WktMDdB0Xs2LoizK3LejgaBIwj9VIPSElHjmdYD431pmj8WqvAHqVNc4s/jEzQRFDvcEfcNzcST5alA06tfLbICCGAWUxIdc6+9txOOvYc4jAUmYoOusJ/hY1QvUy+JImfyMFPzVKlp7Bo9gw23SYqSWGrz7tnqXvVzrnrF/9HiCy3qIsrzgnTK3c7riT7HBZLT4LEH6PL/vBao6nZMC0VVQsRuMi9Wx1BtjLmoU+aS8gp/anZlQLACYMHz6na/PyBZNC1czHhuyAoCj79kI2FI6FN8ILydgXtWecIocvRkb/H8uaaLDJIvzHl7RyMBv6qAkc7lnpbCNBX+DQe+b3a4gk18FCRjxGSZdOBvWrifQWLf8ClFNqtYxSDfmGLmZKouLJRiF0wY2quiOQWGDDjzmuwmYYcMVFBJ6m92AQlPCL/hi4xfZOZpWbuwAnU8G227ChN9smFUxvY/Y2UD3oxQDCraq4TSglG3fgZWA49xBzV6ysH4g9G0IPTeHGr9cuHTarefMN01gDQc0QdeIBDM/AUwxygz0T4Y3gtZF7Ax5Ph3UCNenWXVLC+Tqjb9aBzEsmww7Qdu4IX6OvW4WjSi93/RZX3NAkBiAbCGt4c1N8MRISZeiIXGuAGKqSUzpM22+yJoqzlUeUzekE6FlgfV6JSusHC4+ZwBS5VDXSbWAXq2jtAwUJb1BLpBxEQDgprGwH7LuAqVzEUYx4ZIzOJxpzVnj+dSNHUHhilGkUj/JrbpLRltzWM1+6VdzKN6so7agH0JTjbCNKJIhQ/74RoTfq6zB6PpbYlS8WUCHSd9p96F5GMKkNLgFbVesjsNgxUkZ6c/v94zsMFr/NZHuSMPd5gWIJ8ktu5Qy4sLuCaCgsgqD07koal5AyGnFHPMWzeR9SUqeh3/fXKjUYfSW+H0XYzhO8+Ia4BsE6Jb8TXBDBzchdIt6OxJQOssRv6efGIyGFIenIYDLDkHgib1FATYK1UryFTIndlcMkSucdGldnc7VRuBva5mt01ZfJJqRPZmzPMURLIj2Tgn/Dbfgew7rUXqzcKbY8D4g92xG7ZwB0hpfHbHrOR/s08/ScN6rqyDRxlWNi40Vw+h745SQhp/fzdfleL3+O+QUdT/q0Zao95J3E7fzAif5UxJdupDL05I6kTXgNJery9WMNRo7cxDW+WS4Em6fgS1LhjXnSwB7bctGji3Et2/BUEAJ/fDucKPCrhwhpRY3w5z+nNNV0CtFGhfvxJDHqJFrcsjlQjovvxn/tYRv/n62d0hOqO5kURJJA723iRv8vnlKDwMyYtuAQ7291QgvfrR8HQ/QaBtZP56ub+HxktSBEU6HkB1R7XdSmfKQrnE4ZaokJzws8vB8TmBfs8kIQhhCz1tJymWLCaFcLry3K/VIEcWdMKPLizAAERDfT87tAmVejgMrHGV+vYiKcKqxmuxLv/M6AXZhv4gZLp8f2h1PWoLHBk/MgHQvRe3IQQcnLOBRZQMxrJJDoyYm/ExApf7AlX4KMZFiE2DnMU7KSVeb1YxyQZ/86rbuVI/D/0SGnXgmb/iKk9YdBmJA2Iv9bmrV/pKf67t32y9wYzRbXwS2jBstfA8dmG4stmNIrZLfOzyaeTFNWQ/XP+j8UfQtyTBCb6eG4UfHcKl5xJcFX02c59Xs8JYvCGV/IV7z2dwvq8NDhV+mBUk9MpvSUlr3b0hlSf6BMmRkuCfdoghqiH7hHLVonPRw5WK46nCvjZlv//0egaDvFXwZOpfY5wa+YyjdGQFOk7gbHbvz+kIW4FaFTox48pFq+KbXobGXmqtuSurb7P6c0GIWwKmGpVrUR52g7twmg5bJxP8U+Xbgt1Ur9KurJyooK08oToUP2EzGtxsFkKtHBLqk+ehGD8WxpTLJcpj8KLluNTEwaH/rFp9zVEkiSGEJE/+jdFJ6a9kRM43OLmhGS7Sd14tNJ/M+gOtXv9lTPNeaSgUkbOJZLjdy023OXgcx8Q4AAOTiFUdoRduSTYzUrbSL+bKimQFdGPLYZkGkUsYBfRHQVyNBlx3b7+orx/HStJInc9Hl9l4hAcuzG/yv7LJpyZplruWYM5XTaKZGxRgpNTmQQ09Y9rBYNNJFM9P561h0JmhVaIXoS8SrDYdlsMvJi8dUJm+VKI2pNEziXF6otfnfvAz56MzrUB5Sd5Zzq2RJMSgH1n24PPyRwm/Vwst9RsYFsMbbS/IwKpYuaP0WoVYOCHGGBFY+8Y7KHNKL5K+SxEFnxyaCJ904TQUSg5hljDjRxY1/AO/DEqo8/FZQWfds2OJw6Xo7C1dwZ9HdX+OVsz3uomigi0Fc8TRt/ugVKFFbXY37HXYd73Fnkd0HHMhaWBUQvyC8PB5JIoIEtAcWepFxpAjaT7PqZfkXBT7cVD88N8ANVw445KOnflaXGpbsjEks8XcG5MmFAZwasJ4haG9Z+XxRWj4KBfTdR7LLcrwi0uzQSlgks+CSRNpnY45J6oxGl3PDCp/r+TkotUaUkTFCCkW1sE7Z4ORGd9slnXlP3xJd2/Cv/Bi7JckzEkeN2nAydPT9VnO2p3nufD7k9lwWX9Fv/lI6Q4GTZth3DOuiS1gaizQGGEm4Axu22R1Yzb5sr77ge8/DB7XYpqq405+Lpv8lYfXHgcZ2qM+m3CLWdPOhryxVjeRZMVvOg8l9tm+Hg5LoCvmn9r74TGR0aBkk3YIl/An7swTVCCQxHXdGpp8A8AOi9zjMuZmHZcCq4OJajVyV9PkrM1hkUpUVYU0qBl8zgcOf/Run+XMRXmrkwEEqjp+jGzgdcXyD6y66OUHOzevoTQbp/dgCJqnT5aL9H6PEho4e+GNymVTp8TJoi3/nMNaCp5Qi4f7I9ht5ZR+EUuf5W7uTLZ1KjBPUMki/jYZ+hvyUTAxyGEkJXFMgrQmnUDS7BFlBJzY/8bRc1CIH9gGD1pDezuEO4wkwUJZWrK6xk5667Rucj5EyTwJewDkK+Mg5gS7YUDkd3SGDmJBEZ3mWFqTu6zvAw/SPhOcEOyMgHgDxjJcpuCJY0880y714oygECY13ckt4SpflMib9ERB1Q3y+s7K+TCuDvDtQ5DqBphHXNDQPfmEFrzQRWEk2M7lD0Lydk+kxkNZmvArfSnHQA3kBMz0bSZis+9ztAXPNuOtVSRbnR/zWYXe3SUNngkCoq+RPrhHpHqWJQUa7wsGQWX3kkLg/qeRQSV7Gxdb6ToV0p9E6v89aCyXCh7TaiYXaT+LX5zmBh4rLOy7V/LKKR9ojJwF+Q3Iiy2EilgPJ7clAguzvgFii8eCBxwF5LR/vizY6qwLkNJRaSMpALqbqDIKpMfk1RCJeISR6273NCVoj545Zvd4fd4xnvJH5Gv9v3XysP5gey6AE8ryIHfn6yReR5+20BkY3/3WEBDmD4YkpPr2ahD54PISBFMgPpnzmsUppwTqoINWUPnXlbsdI2Fzi6Wk6h/9bs1MF0Yxv01RX7Z7z0QhUEc3zyRaquH/5zrCRg44mQKLLNrlEqd6zpJH8uWFCmIPJ6fI+axH15bzcSJBtvzD9qdMa2erAs3wPBzDhxMA9jn2ryGvISeCE9PwWgoCqHKdaY+U1o5GG+iTLfbtsH/19BPPCe83f6/SeZZeuz5ow7VaeWbm3vjkyqZ3twmKIIqDlocZNF8mpXmTW02sctPViYN7VifpwaTk4u2sqBaf0GdBkN0xcE0Jdcs5FhhjF+c5Eat9hMHUFXZh/W1THPOH9Pj0D0PZls0dXaRXZ/eigKHhO0pdWbao9ZH+3/bpU/WXzLkydojchDrvZc9uBfQiIUpr/Szn5JUBXZ4AdQ+BWoAxDKs6RM3qR6M9Avm+j6shSh1YF0ADnSlMoDah+JPpboInHHDQIPW52lbkd8XUXkSnwleFg5eTWfyq5EsUutrE2d5DzostBrsm6RqVrWWr1tXpBL9Ih5t95j8sdFcpfkb5JI0mT0dTdyk/qIx3DOWENr60+UtgHJO+15ixUXiDDwMNV16UV/y33tHcP9R/29nvsJaQ3RhWFCXYPyAH/gaslkFh3Vv9lzkYMv1qKgFRXGdlc9qJyloq2bdnaBVXc8wepFxywxC4R4dfXJyDSxRCtAVbim8tGdJTCIeKwalAcPiN+u5HtwtG+X7+PDmEgJXxU3pn2PZwoVVyUWGeoESqyQcjDm4hZgZdZqI9yEUHQ45EC2pBEPUMEmRye3UwCSVE6DZiE579mahfK0FUciZfH2O4ycdJiMIbDnPxWJUybH6SGJuqb2fpbVJkcSBxBeNFTVAZYUHl3s3g/akanIg0p6yQvrKp7ovXt/oheE7iawzNjF1qfrzoiWKS1bna1Y1XOVmCI5O8RKR4PicvkncTx+sBCxaBe4V3ur7jmmwjKGxgYYkP+NH6g5KTQ0klM0A0lLsJfINi1CC/3kAh9U5x3/fgXPxcgGmjaHjVNtTzQAgnONOmGpKrOLIDBtP1YZhXSikCsATQc3eWSHQ7sryG9Tfzj6WmFOpAu8xVD9OgTx2+iDxditG0MWhcYzDLsOH8Pa4kLbWzJaX5bW9YW5mw/PkH1pllGxhL16r/iqhcHt8pSV4mvvl2JZy363QD5Ww2ZEsd+v4waZESMDd7BDrwN0xv6Hnhtl0Stblpi8ezBkC+Y3CYvSpiJM9NVnoEZew92lNffYDhOy5mOvZ/J9CrJQ0HddAvZ7we/Ej2NE/F5jkq6rQ3kZvrE7GadWf3f4ycKR4tANQ0bRG+y6PFMISSK8+jzeuZ0hMWj5RVDErEVn6f2rp1QX1SIVtrg/gGU3nPxWqC2co7mZOA2ONmOrnMD1cXGNIRqqImelMiNdeOMukTUNJP+kPry6p9hYLoWCyvBAzjLLNGp7l5MpKSvqtI/CNPX5jksp2/u2CWV+ZMKpFDWtfyp0bv7zIe7mO9saxHdOqk63ldAht2JWjkaKKc1CmN+0d+lpiUR6klkZMnyno1lMCsan2b3iHRe3gG/OQBsTxuoB9Dh/BhcGwp7Ys/M/fm0alFoNFoKKXZb+9hx92j3KJo/YkGG0XvUJR9f+doZ7cdCdmg9rKSlq+MUoRBr7aeTWWdDjL4jxgzn5Z/B655R0NFEUm1EzGrp5HvC0zZtpAnb5Hsvz3jHwGU9uh+Q6vYl1c/awLbojT4gbh7gTu7XMYpKXTYDEYcW2TSGPJEQq6oQQws5IlSjOI+u3uFD/RrC/PbTo6JQPAX2V1iwStiFOoOZ2InRCHGIs6tEs22NovAIoXf5qsWGTg2cRZTqzbbFSJmuQ/T1s1fHLK3eEX+O6Qbu9uGHWuGe6aT7bnAUC0oi33Myopp1YJNe6cDz7JQ4EkHnrCXJdOFA5DYQKs+XuvziwoPHJYXhga75YbEvt+7hfg/L/UUb5X+s40u7x50UfYcVqIEH0K/SllD5v37ufD5pJNBdj8zmzMi4picnsHhKBKVR3iHN84uN21kT+UIEbRH6zXNd9sHZ1WCslFW9TfdTIgLkREJ/BzIUTYvz6IVrg2cPe2Rqz0krzsGx2cpOrKj5xKhxtGIS140TFfcRItp09YDOkBrArcMXnyROeQvO9BeXwgcoye0cgCeS8dj9xZGPO02t+V/xMsKzjlzrqmUF1EVdpGKnQo8oNT+Zy53zH8CHgepDn+Q+16sGg2w/nEsYVyJFUnhxWBM4DcV69xa9n8RA+dDS3HfmaljAuMgNbAYjzE/HX7G9BLP8oL2YbMowGUyp0dp6InnSmISYf8iOSiae1YNmeXAr8rE7SgspfQp0fKtf4sejHJjJFvpTFUnvFpgAAOosCPwIAIQEGAAAA63j88+B//xDYXQA0m4ru5lBDyA68N4SKb7ANQ54CyoNU4fpEAY/5OmutIXVMFYK8wJmVXrxpIIDQEIqFtFfpPUPG9dR7rD04XPbqisOfNef/mr305qCz+U41DH10XCfEVUk1nKW5D//BLRHNIQ+4azYzk49w7whi7CmaAZ48oE7Qu+6Wh3ZuggDti2jlDMNNosx8h3HhuY+2OVlAmqth2UyXTJkg2UGaiIQ9cHrswkwt23MgK9XokYTfO+6944/l98LX1fm0oSgM2aleVz4lhWr/N3lK4rAGoVAX1ekt4OhqmmYbkqD1KdUZoFr7N3vfz8mJdNCic+e1D61ZuNoZopOAM0DUrb7kW6fJ39DLWi4pgWWe2yIGvc2tDrc0o1u1HvJJQbgMjx1eZTQLIVAVv0QD7qPDTFxYUR8V+rkuW2V587GiGmCGdkHXWSx1YmSJPqYAlAj0qkANPXOQSXWImOQ5BVY95vOIebgSlQBCif8hMbZBS75uue5tOwtaCDuLGtPJQ2dNGaHRD3BVoC6R5VycpkE2YF2qaMIrjyjPluqe72RdMB8MuFsdeO8wnSuqfslwWlNdamrybGNGBkTq91vCZzV9vM0RYNBm5oEH782usjWwTGuS/D7oJ41Q7qcBzIxgqYglt/CUaFgQAzmGDAL+KlTfXKQauKF893QOF7BwnJdGnHQXiXXXLVdMIHWKIUCg0N23yL8Z0kgWEvqrL9GVjt++lrYJkkXAkUu/pvisxJE8oFzjZn28AYWhoy2/B2Src4DtIiqqciMtP91Lifylz6vvo1Hi/SVFC3wTZKaVlAfAI3D8pMmheSl+ZqgH7NM/zLMY3lFRzQ3OUyBf9syt26oExzc0iiwFljdE++g6xA/tu3dL34ZuiIETtG7cynwNYrouXWXAhbFDT3QuN58dK/8O+uLumkVnr9MuVEsvVkZt0q5hG+67Nld64HD3PDxxVicwGJFl4yZJdU/Yr4qpq4lXmgijnZfJt70sleV5IQxOs3fwdEh+F3cCu/H7mjCUrF6ALuysI4AQQz0PoWP65A8fvkDr+lg061POdReH8B36j3KRI33pOgy8i0VqbvV0d4MwYnBDnahiDb5e5IAfiUoe40uGxMHnRdwqe7qGCrIpmIufVFSWIrYIQ2U0GVyF4J4CRFNRmYwRFaFOpWF9hyiANBMVpUxVxZrNoShk4DqNSeSOFR8ObfOJYFqxD6F7Ltn72v3cWV/8VXqtDsKao7taCCE4PiJYb4jFe+drlVtTSyBgVEMPcjis3Lw1ntxHx60+pdAmI8Q6ItXCh2gkG48sLaURNray/AoajVt1pUFjUDRSXDtZKxFSyiNhZolFsjgDQ6ZuiYqH4Cj5/qv2SNx1fFklxu0gxzk4IDuOuejSXM4wcOcYLQi1BzwTWuJI0rxqxnOC9ACdQmOAxUL7GqrIhyRNqB2i+3HVcD8o9FQXPcAD5+v+3iuNqB/dJCjuHpZ/ac6gh/zD6dBT7539/C+4thIHDLfNOu4jSn7je7fXJApybr3z38hlo4/xm0u29Qp5uEFBYe2u8Cf6XsMZ+X9+SZSkFnpV9fjMa7O2/DfRwHI/0vQDHckYQHoPixzNsmcn7eXXdr8Iw4mqztf1jgcoHRv4TbUZ1kz+3YhPizxhbjUEKMc8Erer4HGt+I+/PuwSi1PeCTcZb3Mn+xdzKkK4vcWfq37n2eKnGMLQ9bGPGZQjaGvXjKPvOobosjlyBqtNba0nGgBfgQrl2HsnrA1sT12npR7Tcn/7UInPEtickPiGZnWMtteZ/qlXFF0K5MZ++1pqfoKDec7GnTaDlXYr5aOq2esknjo/0ecWmD14lz+l6rGsvJpLKCVZ4e3v0xcZfbeHBPxtnHxqMO0m4MKF5wiLQK7lRCKMKPvHwKJODQNhQMLm5+/MXbBqeY4acmL8oFTLBzxoWDtgy3fUsLXKSgf3+bs/ty04DDNn+vSbjuJR4KGrfSVfE5KFHhP2jxDQEZZXWnFMWow0wZ4gSGuzvQrhp4r5s8KLpKNdmMT+5TcEG+gUbCSWu8/31GF8jIz4J7df67kgV1cRYTvm17sSShdzUJ2apijFctZXb0ArKaZBsbZ4B4QsJTBvLi1OB4pfp92pHfD9D5pi5E2LLcqpO9aM17z2QJbd95FozrG74em2fpZkv+pE/WJjlyxBiaWBc+skN4Msc3hsyeCMnD9gZ8Hsfdcf8Zvw7tOFj3FH7iOfeBvp7z/4mg9ccH6FiZSiF08UJpneQF59o+p9vQDnJGgXzb4wYKBDuiiYsNnX8CuCSpOKxXynifWlkT0lW9PlmhxAOU1B00viplHYlD0MbQG2L0tOgaIUg9B1iB4y3wDREtNcieV6IDu06UgPh68ULOD2lFa59yWnMj0fB4B7ZtMDSiYo4GCTJ/M6nu3oL8epvKmRmBm2E5E5LQ1nuht6VThE8Pk75HrXHl63Gkuhdo+9ZcKjSUgtKX6BiupukEsYE0NmbFWloCaSZi49JE+g05Z7r2i5iGlUamOdYlHWZfQ1pJqi2dV67Gi7ZMwJrjFlZWczItzEqudeXz1cDxKHGPYRJQbaQXKoMlnyq91Yx2uLEPxiSMfTpV5ZvPFo8w3vAfIwm9Ns5PYutYtD+aDc0WeZIi4sASalvoe+cNWw27WndnhLzB7dmBT32Gmp9oZuS7r0Md4NKOPJ5jF3mojOGbVNojrp4YIVQpDDbAEZIyqYhmJQmprHOsO7sBF2L6y6E6nog03QUM88f0boMUuVagfm5G10mzEObo9lQMNCs7dW4rl+w9YwxNLtHOatvvJwjSpvTwnO5zj41Dxdkk3gEzlurIz7m5IeumBJ/N5eA/cFLDum6I2JHxusjbsqhI1pVPIRpWSF0aJumdoh5dqEfZ74wa0Yj1lLobtf/AINn6lYqzbmI5PVk4S1+AWEoZp0/XiJNXzdViqpdN+gsjk0k4fkzJeoVvt0D74keRlQ07gVAiirTJMmsP07Q8T/S7U2wtc6E1rnMcgCgBD2A6PCzYDj8Wfx+EE2EPqdxqPLftBrzXctmlu8G7XGWcvokO2zV2Zwmr6UqVZFxmieygl75xUrJDHM3CvtbLbHvR7TsR3ZJ5v+reIwczQ71mQ21XOnX66Ahjfg5ie4U/fVYbPFqwNe0QScUEze5SEbgIq2O8S9XyDqcWcxE/axghZobSx8//C0H6VDzVWsJ4KMYVceqLFwEopJs2v1COmsPoA9qhb1dw0NOrakwrjGa9s37A4fukvpEdIiXfZTvfs+oQK+lvO4m30EiCqWSwXXYYI6sxOR0k2Myba5AaHECNbxSSgisq8zarMeT2nI5rn9BRYUkShMD6OEnO4Nd7oVxX6V/PchsYdMrYMfuOQuIzcQZ3GpwZZOqmwP5+5SSVaqVj5kjRcdaQsb/iNHaLBkK79F67IGIXBIVo08WuLmuIWN1qEQ7EBUOcGWivz90NY6MXKClKLGglUDXyFpsqvNpYpM2go0xpKNeq0FNG5KHSv2IWfVc+VSyNfs6N5HB//Tuu9nvt8y+o0Ke8FMACzmD3a0MNmdbEuS13N6whRliQSMol+WgiTkQq8oo/nQri+F2S2J1rVz8ai9Z9q5ly7zxcPrWEQE+1bPo8laT4vMvbjYDG8MgpoOE8S6y3IPxzokarCzFyVjRvDZ7jogKvx1ngFxFj7+idCni9bQdk5sROS2qj1IgH2IskIIY/epAcXpBgIe8kbN1yPA6rCvCciGROoZRfvLuCKLf8lPHlKzjNyIQP4jk6ZMwxSF2MKBtnr2Drpf4F9qH12HqoGIsxdMkjyrazdj9Fd9/sOTMoxXFHaY5p8BsCT3S6cMyxCEIEFV2UXsjEAJ4E9sMYIKz8wTuRT3gvKkRtQFvOJ6+gvF+8GKnCe6cyczSt5R/o70VQKh2S68OvqBujH3/d/FnrjFYkH2sXTiu/5tSk1aH5Gu9ZnFkNRfCyjOMhSeUx2Mn8g3GqR/lq0IiAGQrgkTfX2D742IF2zTOVLF9O48AQwba/tX6rkqVrc4k/ZURiP6j5TksvVv0xVMZ+/GSmUwmmk/g0LYD6Cnmzppwmswm4Kl6u8KTPDNiDqzrX3kVlPmeaZph2hqQslYv45N9mKujo9VtkhhhZgS9HlZ3VjwiwN4mweo/HQtqQFyQbV3ppEVY8KcpMMGIrGdHdOlootT2C5qeE5DUBjvKR6QOzY2BlsGkj73n8/bjBOn8cmydh6ZVQD5HWEmZCnogjvrDJ1GodIum38yAWlB3CBqt2S/rMNuEnLJIY4M0bOytS+RSja/P1z1wYCgTBpm6UTtpC9r6uwtzl/YhfNhqkwTlDbQqBd/zjWIu1XEDfRPpnwkNPKDsMGju1mfUI8uXsZngnl3aeagBmFdIsP8RC5CNVn3H3jkiBfU1aDkkhpsAP4jqEUqYL1rqqQtSmPrNenrPL9p5WICnAmiuB/WFOLVLcBR6mj+Y/ALcAv05lrA8DNXoos4nmHjZhd6Khvb5zfALFl/4gVOcU96PMh00yh9elceHEcU2rXR0g/erOfaCqhROFcWCGICkIIBnfFdcnmhcujXPHSm4VKGeyoPTGyGO8w9qcxYkFn6EkOzZ439dKd46k4ZylasfF6G2sj4xDrsDK1kATF8McCo16RS3xGWFHTijHCCo06Ar6/BUpf5Vn1cGqDyi7mCIhhZ893mlMKiDHCjOyON9Z7RQNoUhKJmWAv3mkWYFkpwN4Cvh3SXxsJhZgx2JhPd9Og4/vr8DHzLVd0dBMFDIcXeX1hBgTxm4emAzCfMuLCqc1mBYou1V1G05GEIAqqRQLy/M3Kf8PaLeiY2fFfbZSbWJly9sXbVPVGuw1LHLRdf/UDkfmLunB5lINLy+NEUa3/5/0TnrEaSYWRNPxsxVKz9+XZ7zfOnZjB3V/0PRTuTWcqJd6L4YSX4ELFzAzLcf7sGH2AlLiodLFyu6wfv0m82h6CItOMjya/Ddhu+0oLV4HDbH3BxdocE1onl1xQZDWcjUltxCRsSMEvxJ2GQUBm4//RkhBjyR3+tC7OfSjAC12vzfPOi7ELXayyopprSKq+VvTv9x+lBAf+fhYHr7lVKoE/P7xLgEM3bQCc9e72pUHjgYARPTWJCwzdP5f51uOjwn5asYPkTpWxUATCM4huSam9I2JqbkblyCvYKwxfdLZC21OiEm1S3ELgZe95o8soHcxcB+RN7H33O1jhItbIlS15i3fNzCnrR0uil8U69qfgP4syJ6so9HgDsD2ItYycbuFcFYe2J8tRpsNhe/xlaJ57okt18dalY4nuF90XfUXyuJW0GUoCCjPp/DT8OtFRoOB67bVn3K3OCpG5PmQtw/nMCYFqXeo1cy7K3XxM93oS3fXccdCZxuVeFTSmAbX9DOg9S3REByK8p9Vxt5L6vbzBp1RTKaXwkuCYUktVMCd65b3tBHJqAMopG6PE10DhP7k1120+Kv0UEh2Nmci2z4+jpqc1HslmQviqBVR0D376fIPYBdtpVLXQjafGiKL+BZhqgz/w49yUcDOdNeaSS7w9UWMlzdGKoWzgk+dyI++fcNcIHOWrmvunYI109Oswu4n2h+Qo5eciUTvrbWpY1qQoRqnVxtbtXjqgHyFUZY/rJ749xXt/R9/DfPhsq55pCSCgyXKXYdRt4MzUSIeen7MGAfsxyPNmMIcgjrA1B9uByu1B73fUK82S1XFyX82qKGMOHdAap3PmSLTlzyPx9t5oBD+4cPxlexs2ERw5sKDAm/AlColteXXwPb/xAAKscBrACACEBBgAAAOt4/PPgf/8OzV0AJJjEuiADEURQx7jQmjiFN4EpVGMslLpGFLvJq9OQ1FoiZMtgWmctNlJDY/AroPHtOrllo6vCpW/ZVASEZFssH6C51hMWWX00NRwGIW6gX5d4j1/VKA0hSAQIk3Zvq62OcQjUtf7v/x7SqkJI3ibKMxz1EaFQsZihrXJMuF0aJtvIkS3Nb8xMoYwEImjisVFyBwvUyo2IXTcITs9jQ5xRwk6EnD6lGVqqePadNcwqsjHuaeRX9ix0zreg1qXJtu043oV29LLHlNb1sjCHqPjkpKvuKkm53mMwufL6XfSevNjbqr9fSmM9FOVlYQ1cSnc2YMkNvxsZip7kPfRuUiksgrhYzc4MA+ppxKUel07d0cGsQzxsGHh8ciuvDtUXs1KWau3Ah7MX988/p/ilyRXNfqz6WXlbk0rZfp/AKQM3jRGrKmFSaeFCQAIqu1J16hrhNe798JeG5N7UgTt6zZj8mchTphUXIh8hv8TWBGnElisiASK0+FP+1LvWBE+dnhnLofLTPrAdFQTMy9yGC6Wtp/ko16ltVFyDOAfqTdadYbN6DIsbeH7xbSfXQRX6uxtppJ3OxsQbmTv9JoKi4PjLIYUqhB3ZxFCZn0708kzDHOfWQnO2Rma2dypvq01Rr/geYnSbge5gptWigov4kWr6lTfX6cfIqgmHcrsp6+rNY8t8Z6tWh2aCj/Wy75WQbCEZ9fEfU0tq8Uu9dakSQnDP4LzJfe1OoH2n1IsQiUv/RmDBeSLwb2WLbEuqnT0SmNzYqUlmdJLr1B1CP6OvQdSl14Wtxa1vavC077Sybqokj40nsvzIDPctCPXRRWAbx9u7vIdmmTddS5t2BiJzf7kQv0IKy5UWEa19y6LDPJ+fr7hDd1b1yotvi+mfW2Tl6cxWcYanbqjAfqGfkQl/Oj6L08EqUgedUNEfCsXZ5MHV8FQiMeWsnagfdJgQQfiojK3d86nRsFKJNLEAsHedgvERQx+H6ZUkZ0qG7uXWZsABqgMc0O3s1jnYZUJ9+XyvokDcOtdsgieAt6A+/v2ksRaanvNpyasHnz8yrBTEhw9rqiARaxRicbNj8mc+BeGy+EzKLqKKQFP1glctM2yRt7srj59v19tvefPW6z5BPhs6zWfM5BKtrVWSjFQwKdTER3CrsJ/U7rfj9/P1Zwq2eYEhnud/YL4PWrBBhlH1csy6hirHu2ZrDd9U74LCZG+DgHVKrUk28O6wp4iMj9l2XGSzO+V7M/7PCtUtDxUUieqgjhpUgeiYB1UbVAZNDsJFpmyl4H2qrwSPl9qY1Mwjq9F5+CdR0ayXBTmfVG0d9YEfjkmAyLRi/u3d/2YHW7euxfw5l+zRQYtJumIZF08Y+JG/RxmPIpvI73yD1QNSIEmpplOhIX8i9JC8ulZnniAO77ySPVUNKNYG1SmnzhcO4b8Y3d+8yZEcGIwc5t9dfFKiryddLq0jrSp8wlafbEzwYnFgrXvpCP/QH5q9rMhlYIHZzg6nfgLW2RXV2lq4WGLZ4Ev19hbqtfh8B68FexOhT66r34knqBJvlVEKjVbv+j7ROd4ZW1k54iXTTP7MnbIix3N7V2cw7Lr734zDkE95SD0w+xU359OMMjbjFeW2U95Gg9GlN4Q2qySE6KKmrEGTiFvAIFkUCHeLxGSAzfEfvNrXUMsLz/UN+1a/eUoRyQfp5/xLYjtywjILV3M04fjDSmhnWY8uDb6mieSSZV1PSullkSzka9yWW7Ck7CfaOV/HGeZAZAt8xA5IftomVaorSlBFXr/V0+CGtaIcDWnwj6bIqh1CU3QKM9ejGmWIp8pGqLDDhqKiglQ2dqoHkNsrCqrL9R+rkWmQl8YL3MQBuvSpl0iKMu2dXfxMkeodPtWG2ZiFlLt1g2/THnq5Cpf7+XTInCjXAycfkhT85NXl06mk/VrsqyatWL4zZ7/sGOy1nuvf48dLl8jTcm5I6c6ztdmHl6YYTiqN1lneGGm4BSO19o9FkpPaSrVmIQjPs2M6RMuEwLVN6FiFNdEtHaFdvKvg17U0gdZA8eLnv/y26co8gxC8lZbyjE0nPULdIcJDX+e2FnacKSXqVF8F9rQZVWqvXZSXV7R+UbUFU0pePetQt5rFcHmXQSp9o+Lou9hq85OJew9tPq7fY74mt4p4xmtwuPfjNpgX01ygxuBSwxu0+epuvigtMdp5VEnwfv4HMeUu/6/JvoA8ZaBI++nk9iNX+kpriHzwMwW9FwZ20aS3ubKjmWuj5sNkMc7uwtUHRcvm8a6kG0Q1bl1+Jj9I0jG8dEs7fLaOuxZP9yPlpxKF33CqqVOMEk9Sk0R2YJ/tlhFj0Lc5XlDfk/RnnM8MmzLB8Hj/3v5hbtPK1+gs5Pl1q2awiybCIk4Xn3Pg/Ejzk5LaJIkbPyvXrsgiAsCSzM2mFyOMdtPWVWb5NKWxi4t2qv7hg+dr0WbrvChNWUvUbYx6fX94sN5VZFhTuSO2TwRaK0cs15/wXdGPCQXewy1KOFVlQQf7hCpnPYo7YT/NMEp9z4qnFw3ey9rpFwyJavtFmJXvzUVcH/Wzux6673tGDwNmd4R8KnpWsEC6s6sCuuf6Rblw0uXzrcFDjqQ0BPqFpGIJV64v5FLZk8fL+k/kWOJPvQ4bAlGU71wIMIqmpZmPLQ/ad+2jpJ9R0qF5EvPL76IbEOYg4yZElga8Au+gHOZknUaaSic+1rz+ZNIUOuBEPB4Jxwup1MfIofWkUKHjQWX+2LlyfxhnKIu552dHnDTjmsMa2eZgJ8GlfWlZM+ynXzOHP4TzyORwl63ZAzZEex7hWx21jYSG45Z3YxgQGBHTjoSQrbigmB3aIbY/cje2C/hI9GRcumQe/LXbDOvDyd8MmPAJ8WE9wUCf3Wv6rYkoLUecmUvDyJzuK3ojgD6tiA1t6CKZYigwGqO39/ymUVcQZ0idQSXO7JQnwV/3hJglhU+SGyc8wJG9/bliEuIwyyMHm71yYFMsfkqEXOVIddHpld7TUkPsFSvB52LNWMlz0it4JTBZhTcK5jeXfZStnTQzO4leD5l/l6E5hDMjBfOEBwqtlWJ9BxaGVGF++cFbXzhWPPSYPt6Mv0luA8SBxKOnjAD3rGkGKdVW4k38TE/XMOpDyGeCQFACxKclZiJrYZMwjXISjQDtUIS6GwsnDhZFcrTNk6J0REbbwqfiEYdXq2nGxbLP18qD2kNVvPkKKFvIwn20a98K3DghjABq49qp/624FdIVXQ+SiQ4jMq0aiPqUMafUbQ32DJahdh1a4h7DwNbS8Kk8SvPWIwyrsXmYwdR+wppKV+pSbiGI6WG4N2dm6NO5Zk77OCmbdXgX2aLCZst077nCRZbKyyZdAzfrgWT5VIzLBwKetJofwbPQstdXjvfHVEqRDy4kngwX6tOFXi1AzmJT6qlh4frdCv4Tf4bGJrlYruOCPQSNZmbzRDfqJv9JtA03mDtVAa0yRHpvmve5+xgroFBtyRSW6yTspoaG+YgTmZEvKuijpFPa2C2eO0cwk4WEizOjqff6v404u4LcENh9FMxJds8NJWRzEf7oMOfSpdHBj9iGA4IFsC2Z9EOUJYueOBQ3gY70ofN8fyA1fAg/TRODTSKk8BMpMzeTPAKAMsvfAdYQ7+UZBLS2Kg5ZOHSjYYo1nxTQfDwpukuk1kl+SbjeZS6+bOVOIgsRwaizJERN2sdgfJdDGPAo1B4dbLZI7ZXzaoTex2QnuB7b4K2vwGiIYyE8eJ3vLZwIC2z2tvbiJ+Br/KOzOKYhaf+sSVE+SJKbY/eiG+dDzJH7NDhhpG3ePby1Rf9oQDnFmEftTArYSTaA16XyxfvDkJk4kNlVxskeLncUA8u8pnokHtMiAy3EH9b/Cy5xdQefq/4J3g/FHBwbtPCsf9/bKtyqa1Mf1Z68axndrTwbHhob089ma3Npv6wOYW8s6cfEdFoIyfvxgH0WyMvPR+BmfmlGdhBz4fYhCn+E3fIMgMilWsjigZsWwWVNPK/b53TYwCd8l2HGHhGASp3b1liNyIq2YMWmThN0qfWRoXl0qhZxB8crcXICCc5NQmsx4waXDW4+pAL4hlV/ZF4dB1lNeX9G61Wv3NgmRNCI2+IxZhKMMNOKcJw9dRNsdvX9Jf0jDrqwB2qTnrNo5xfiWTp1T5w6VSvLUPDZhKzzaYanIaF9ONXxoi6D9IoTORYEf1DaNq7gJGyI/5Bmf73UOx70+e3EPQvhwLL+SLWjA9Yysi/6AVRdPkyFd+lbBVDCC3DAAWQ8G3+1OGtswBqGXJn6F2L4NBsjF8qyvUy8bI1AqT3BW/jRISCXxeJ9/Fr21O+ohYQTkAE5v0Cm7gVJIt/vY9scud0sSpotyPoXkYTygBVGLlxDg4hQd/ZXkqd6Lrqkx5SLYG6/GoUqEq/r7lLYHPHInBWFFjEMwKOucc1GiyXO1G6rlRKt3IK5vlq5QdtF53t3Nly8rZeZH2K2wSiAYFr8gPLPlQvhYGLQOS3ZYYhUek2ebeFFqQA5zLfS9hFv4E3+V2C1eB2WE6+NPclmibdZ5qFuOFaeeRCIOc5K9UKfwU3mQj5cFjHaGWbTtykMEsBox/e6+MUK3swPG9uRdyvARna0PXz9cXR5OaLcYMvOLuysJt0Z4UPdlo6mix4PC4D4AM84N9AfPC/xWvpa4yDwnPZyJgr1Xc7ijy4ka7jvMBHePEM9FVLsmDsxoFXSZ9qTjowkZCcvBX6EenNG5dJcYpxj8Urbv3akdSLPpO4h0eAy8V6EhdfkseD4iHrfP5+7dsCeDQNaUQjZToZaMFesl8dEPy+gPrSeFLk0SrDSxhE402NrrCaWWbDmfHjOnnfnToKHdgk8nwQtRBdVq6k2zfdeiyuP6xS9cNbafM9ht6u9VKLPptG2zcGCjk6XhSW3hLSwylQJhVaKblYn6CVWrDNCBjYvshlHqbGaWi7aKD3Ah2zkdZaZZ+ObLtV3RKMPum9/HwR0XHzM+HwJuZbyo9Ei6Z5SpuGm8FeljojHdVeJT9Jl/1zTS6HT+f4xmmYqEUC/jVJxE/RR+dnkVp/2gUwAAAAAAKDO4xoCACEBBgAAAOt4/PPgf/8I1V0AMJ2IzuEybDhB/E0CO5+T3GZkOMnHXK8zZqktFxGzgfkirnhckt8pvo9GSfPNJBlPt7oZuGWw4oAO8QSmPdtOprGNFtJ9R3se3i4COnI/4LBvInOgVZqA3w1CmwLuqsG41bCT7O9Vf26EKjaEmOe3wroc0zLRiuRVzNMQ6hQces7qY9oZSRCq5qy6MVkPbBObGNPbztLh3PO7QXjhr6YOa5ijOWezN5i5GOEAcd1ufmkX/2D0d1IxGvECT09rvTjPQXYb17QFXxwN+HluLD1uKmsQx47EnAgPU+fHTD7JhEnJqlvrvQTCtCzfovITANlYcec9sZuoCqTlJlxq5hItk2Hc7j81OMK5CxA3FG0qkW/U9dYOJPeXXVMCFNT3yrMmM0UFqh+MzW4AqY1eGpA3Rb3PfYuaJCZ+ncQ60OTiSzr03r0LzaUeA416gUmFMZnyOhIKD2yKjUbXTdfknyvC6tRPIu5SSDSHomdDL/SrVNLE4gU/3uuVb9lg63OqjgHqLlOifwqPdwAXE5R/m6H7lScYRgNmg4EovzJQoYrbhrH+6e+JSFBBH30n7kolM+qx/pXHWW0WR3HeByaRiv9+t+GJTJ/ovH7KAcMVRSZg2PCOxYq7fLt3WYoaGd6WvwjuqyW+kuLQrN2zOJhpa48x0I0VEiWRebuPokrbMD1g4k/U8jxKcI+z08EZsnxbQsqaogyfvF4lefstQCrmRXHnWcf6nV2RjBHHDBgNBT2cvlmnA7Iep/Ub3bKTTkTQBhE6b8dU+xj5H32QBS7uNDPjBStRp12ijn9rDfGFe035+Xhjc/ZczI+Cn3ZENygKtVTVB5yDx536aqhV8hXjoGPp+80QUAGNQwEkV7hXGgj8d7dQ1CNBsJ9L0NtquVNlfNBnt0SF6u93p8DKbFbb3tX4bq9uD9kFYk3uEIg6JpuaI/3RLU0ASsV3zaY4yxAJ+8MeXa1s+47vcg9jjtp3cwKR9NWj56p70gQMiwlAnHJ/m6Tnk3jreEQoX5j+cgkaNUy7/Os/reJgRQZLruKj2Qw+MVVr2QjvBhKV86ZBTGwflvP3hdECdvM4o9V5QyzRKPy6bb4nuL8nkJEK8Kb610OR5PyeAph84JfNiOfaiOTDyEINk0SkEaVibkmq6S6ovwjRcSo1rOQ6bEuI5+p3QOgpurtPGj+6vcI0W5piZjKI+uRbbeYBo/HtXANS0i2aZL1kg8wjjgvao1MsEU+xUdJYrFKTEzhR5m3ImFJp27cF/8cWmeL9TQ7EGh9wy07nuEzTgnNePYzKqPvjYyBDBikvuHuJX3Vn9SkdIpK3CfomkFttzWtTry2u0alXZ0gPZsYIetC0i6lkZuXnC0dzxmCwp52GTdc7xpcRmsY4FvtHfWmaI9yFH+sGP3fM4J5ITILGlNRO1mI4SX626i25Z3BK6UnObFUAkYx/WqjOjr4p0SscB8IHFmRml95Bkpcc3Oni7bN8J1iPHz4J4sPh7Ss/nSDaiibkN5BLbzT5ZPoY4cYOaIY2YE1kWNorHaar8CXMT20BHiEzfUQfYWi/mTJG1gaUYIBnSvj+MKRKiuf2RaJi0exMSYYV3iNaBQII6kRgMky5Ry1aAb3tLNT9eRAYA6qaezSlhQd3xhR2nBt9nnmmFe3MaLa0DOmqmMLTUAnc0R+0Yy8/sfQArKk9Kq2yEsjQtf/eyws5cw4mlsnbVmKUXnKJ0m/YxDQYmDRKXGzoUT+jxGtPrD8tpslFmT47vmg+81Lhqibp73axaw2idRzOCyY+bF/g+TkAxmKSsv/QairiY/CvCm9ZTJkrNlUiMGZyW1AcHyZUi8AoraG5L9lDWGYTNfZZdmC/fxcQtXF6es4rYfHYwBA/DNqiob+MgMkHDTNTq+6cnBr1Ro2qehRwvKy5ZAM4I7NB8yfcjSyTF64NVUlkaYII1VoShi66vJiif1ZDn8sk6AAklsuf7zGxRkbvUA84B4+GxM0RHM47Y8HTnf0mI30O1aAmrVgnMbc3kL5a3Ch+7Bu3ttOWWVUvnZwxYr5I/wFcWHpkLkW0mJ8YbfbRcFfFHaLPaTEk+KC1K4KjzBNRl0NAUkbuxmeUluLf7j4ZELbTrh9LYNI6fA6X53SN6+gWNDheGj0I28QqUMXZ3Rjz0jhOAO8MkQ8bXuhWmipK8TTwdu1noaMd1LRETedDWtIV0FCE6WcyKjT+C0/IuUUp+pkEnZ8Mmv5naHtA77aKT3u0NA/9O7vtQS0uMh5BYYSlHbm/uQnYuJH1IEGeF1KAdGudPb77IznN3Fai3B4fk9EPlT7pv46mG6cjEcate/k3T0quO83rf5Va0705ZpF7/BGF69b0nGTbj+pvp17BI9Axo16KoJmcf74r8G9IBDqtiu0El/DWyd0f5iqLEA+2Up5maMDLRh+VaqS7fol7vVQlHR0UsUx8GuDf4M9exLQiRjq+afBPA/8QB3sb/WZfmXaKcH5HngqN4AldJHfewQpi+7tHOcHmo3Yd5LzZQvsclDWSmTjSiiKa0MTSEp9CqSsf33/YwsDAL7xtAIu0dq3UR3BSiTLtBp6xuDi6OMBMR94A5t9Gr+4N87hlgK+SqmMdR/TocuMKqUh168hlHEHxFkyDMP+vWpHOcorvKTT+UhE2rPvHOHtu0QlvqnE9GBGloh2H1hQcRKsXkb7Z09jD/ZX1bmUDsLk/EWHJWtCEjdn2ZgeuiwkmmE9Pdkwcc/Rm2dbGxZVx3tP6KSI7UJx2ZLBbY1hNnf1KhEPcOxdFwq5XWkCXy/EVwXRM5TpH7TmHPg8E4ehvMLaS5JW04jlmcKQbeZl4g3AheG7y6Zu9/y2BSpLkOOasUlq9s96Bq41goNpFmnPBiaJKffmqox9Qqz5ag0EFhit7QfqAzkdN2ZjK+Qk/+yQ9Gau7Y3wGEBcZH9O4J5LLExfMxWnvmnHSVwLs79A3n2O9sGc0+kYzkQUKatBdOiPOMgc5cxT0II/ns5gthk+FfhFlGp9aanyX03p77o0oIlqyYeMAAAAAebbO0AIAIQEGAAAA63j88+B//w9jXQAnDUlnk9HOI2yp47cm3J353QW+sjx+q1jbt+/jwSsvybG0QT7EfyIqt6e9XAwQpXsXbtluZDwnEFNbPlGv3aAWHiMjIrHXkuLDELpHcieOVVzWwxuviF7GtAY5V2IOqcMrakeERupyXWJCwlYoXQsrW+XADThpqK0q37MOXrI/CgrBPx9mG8vNVKG/H5a8p3g7MVcDhIHD2M3To/AytzbAMzpK/zdxq4ZBSR5UHK/QLQJLuAjMGFAAf5OOdwStIABTbCJpek5oEGYc4oNE+pTmF+eVt3bYuWvUbiv37mHh4QyDqDeKqsZndfk99VRTHWjBNcGWhLB0P3lYfCN9zo3pjkswujFHigicrkPlgsUXGUhS2ofY1WmbacEDxETsQQg9V47Fba0f7G5a0mhjr3Nh1RdfTm2ktJ+RuPF5KGvy58v+8PFAvcolQ6cFwxoyKGKfv2aEw//USpHzZ/BDBgc5bg1+YZo6PJYGYDjxHlZvfzRWHCyG4zGl/cy5UcpzZNztdf1rR7jV/FamuTpkdBiSN+Bthw29nVIK1cPt+Wez29auIczFjSoFbk84XmRMTXTDFFsNzJH0S71ejtUVDBv1U0PDn4eSKbeVjiSNS6Y71+y8fRPtq6o8yT+kA/f32V4YlmQkJ0dV45iqI0pKwmDzbrO30gFBCJFOhksaCaQhMU2c1RZu1DZgI7kR146FE/zIMRiQkUiBgfH8KW+krmQlDNSFuXG1fWOCKoIDRZAY+HH9z5yVuYIHR3D/NNUN7ulIrKq8Mj0FuqbuLOQ0+vouJf6GxHHdP0dSi29QzwagdGatyJ4J0YcNYoK+xJT3cV5cAhy/Fn9TR1FUfrQWG9cy+cv8PArzgJ/mxGTB2CSPQFkF1MHsLkTiG65H/GJ05o64rtZROFtJ9gZVUARGjVkGkg/RzUJtAIjnP7n0mYa4jb3zPbfEr29b5Js5fA3vRUo4ruLToXBKuxmJbYc0+DY754PpRmQ83hqRfVhZi6nnqOFHdlnyFXpAXF1rC7SQFes7YkchGJwnvCTMfSPUVgid6N8uodB8jAiY/y//3ib6SkykLd5fzLR+/G1NJdTkPpKoz9G+Bck89B+PpO/EDUCgHltnJsq7HVenVtV4TvGW00uLQfCwUNGX0K2XOPRp+7aK6d58A5sfGHiGeWFQifWzw3CIxShF54u2fBw0NbuL7gVKQ80U35aJrYB6bUvSHkNLyeHHTbq1s7zzc/fDfTFboZzLJYJm6b7mdwCuQtJ/s2Zh3LGN+ZJYt4HMVAIA3t7kyM16JQQXHnG9Kb//pp/T/IUPtq8R5m7BF0abZP8NHIo3Qw6h1MhGsruecPogJwojUCz88Rz/8F7UMf81ZOMAFOyQEqNZyXI+arQWO/aCEySmYNQ3mJN5hQtmkJy9ZVb3amdusmfjjSs0bR1BJj8bhsOHCJ7giLN5wRI/jgoFdjGGHykEFr8guGrlLtmhM/x1grIJpIL0FqTuamsXBVmWIvUjYGpIdSdXUAS3RunqvULNSUR4ifs0i5y7BmRjTiymqcBlmdVnmbhCL4/O90Hff6NSRSJ36URvTeA8UvFAAjWk5Btfw4i/X+bMxPLTKm6parvow1vvld1vznHjgmDKsVjNI7HmFriRmkqm3rE2wDlnOm47uvMUncVWGwRWgYKND7Q+4HMn54syXxGRJH9Q4INKZrTeSm9hgeIZFtyqQSEiSVWS72IsXxbQMACsKesf+JTGPAPEQS2wb41fxrAi/nhs2PZF3X/vQwdRyc2oTLH0bs3uSFb+j7MAspND+W/eQESyf+WN7mqFGZCYbcRQYTO2PI3L0LNyV+rrG9vMfzdXXF3XEH+HhFtZHh3EBXmGQEBtPG++eJEGbJCgXTxVLOzDddnIeHdNlSfd/Fjze0REYVWLE+07Dp33oSXbKZ7zTN3j1uDDpdhWRZjvKdsGoxxIzZWGS04uKmIRXy4Wm2BhKLi/OXiGxsz18Sw7HqpEMBrhosT4B7kHl9XQf+7u9UvDfulYAf9HiRnPm8PsFGLZiZ4coVhQ8x0tJHQx5IbWU5EAlEKydFuszaTSkNOvfM9abJpWUFzRRM9X0yTqgUsalUEFza3dwR6Z+x0w48RIx/y2z8Kl/wUNKXVAUNhKT/DnPrvzS4e3ncBc7319EBGz3x8w8VizJVDw9fcT37PSW0+MkgpuTALrwN6nhgyXIQDZmolF8H7uXXHq44KUWvV8QKJgqxhra4f5mExQ42LtmV5leUQjf7SgOm/shbeXsdH0wT5NA5SnccMZny+pldkh1UA0nQ7O+wzZbr4OlcJ7awWV5AaLBcGQJSwm4YxAC8IP0AwWSXe24G4+so5i/NfLKTqEdKDEpbrmm5gAGa7E+SyKrwFX1weehWHXi3gyG7c2r5TbLRYsJDRbpd07QkoEFgH9kPkHBJsPYA6/axxid6kjgsAeze/oyME5MnLvzw+ydOa5OEvOb82lkJGSCcoOLkTEM6mQ8y5+biE2NuzAX0kXFDEc8PD3AnyUMwTTQjk/ggyC5266dMkChMNIDM+i24tzhhg9NCFaiQ/UVTGRQqCcUUCzN0Wd6hPp2iG8tlrlyMBu4yxsXk2mhwbKFLhQyD8xt8rvm9oR3Zjkx4iGt8buvSYc8kD+PjhBl3K5FbUSrGdqju4mHnYf5bKd2S40Wk4qX0xlzZRgFwh2mP2RvcLUWJI8fEDgxx/QxCyBHDwf4vA2lLfsXISmCwgDxJl0l8TCe8gn2FohCn40ToXqXGUT/AVqCs5VjTr1+bH2S0TI5CLVCv9KbDD+rKc9lnZxmGrIAhQxmHx9C7byfpc4E9tKeIQJ8KjeR7vS2Aa15q3NdQFYdqDc6CNoVjDL8AbYxO6UsWhbEP6cWl2qY8XCZ2HfCvfIE5v1ihKdGBfCbJFkjWRhQD6rpVn/bekROkr9dBTerlupgV4WKFjF9A8bhya5eX9MCjtSQFv2qhTxFNIA5gOOifZ3rRIwlgi51E6erQ8lNJiY3q4rkUKdPlJXyHFH7evQoi14+wf5upjPxNHb+8t6+hkTcJdN3brtaHPYTCAYhfiqyVkHw4KXJBWEvpHCkq+4sR4zw22/c4NekZrsNGxjRJYygJbnSHlScx7ZWscdH1QU/6k1Bn78iF6fJnQJYlx6ATdGWdCtrF1fahEigs08zT6Yo5lDAumP7tqOH/O201/wkBxJWzGhCuh30ASPSSwk6mp4qJSAsH7lPnm3153TH1nVueXtB8zS9+dlx3DZQT4WIjBSn29Oj2+LzILLdOBkiS/C8bOn0zA9iogXDb73BIlagGjGh22etr8UkdwoVV0reYVQsSP6l7eJY+sgZQqWItySlzPWguy7gP3XjBNLwlgu4Db+cjBHx6BzHm71H2SM3XLe5mTAVhZALDOKPOvw5w8e5e7X6kAGBHDZLreubSq2K68qUgAJAEIDW3e+GJZKjXi93N/Pqs+wI/xgEQRx+2a4cjOJLP6hy3CQ1rZb2muuhkH7BLEeU7QBEMZoQYhbRPoULZHQ1HjzTDBVbLn6CYHgqD8txXVFHy/3p7bP6QDh2Zboqs3hCYghVJ3sekkZT0A0rPV6UMcQj+/+UtdTfPUjaNX0ebk5Kdvy067HYsZkOX8RrGJVyg+k9c4WNvNkkj2GzUv4USSzcN0/uw7choYVzAC6Te+GyE1soqmJFFL5l4XPz8tHlHNSMnZrfaTy4494ikroJpgOJatzZWxuJNSZy79KWwBWn9bK0Cz+gnqRXb+uNG7BArvWch7SZBz21/dcrFoL+Zs4R+WVo+dul7cFCf3stSYx45rkWIcuywgUZZ7OE1siZprSw4vyQxHHMFLbn/0G4fS/9U/uVWxiSF++kOp0haLYJ03Le69ow5TYi+R2lLgiXc3TIPPfQVTLYZ/8ab8HVk9zkp7Y405l36jOY1KydDrglIHXl0vsw8NlNJdADoGUtB8+LKX7ADeqKbPrWYDdHmAjswhCvz0NFz9Od4qfSuYL55QzQc7vtlYkOJVH0EZ6fcs4tv5A5tslCTbzViDAPlfTU7fzsNbA9Kk30StFRC2Gu4I4S+2fxWFNe4+6ijz+bYICV65ay2RLXI1w43TULaXkGNV/JaM6NfgheNJYeHMq5u3iovgzpWlGXO7QmSeEbXn0VBp8DWybkrTiKZphRt6vBaXOmrBVW+W0GU2bGM1Lar7fDdSQ/oYbO05UF2AcHjsuqHIKRpIijzJNAn6XlFy/jbOCHp+vgR9O2A2wu0qUSldiQa4aMP5wsVAKRnN/JuZsPOPxsUC50AtIMZ4/sQKIGdMW6UXinNZ+NN7Y/YFomH9JzBNgi0nOZbX2E2eFMKM81GLU74szImFhYdu1PZda3LuKiv0xWQ5Na1YB9/94F69wgORW2SYc72yrdnfz6q6ICzliBVSyMsCkDTE4jSIyDvP4Slc7OF2UOVf35NRDawIio4864Zudf6B+IGRFKHI7swXwOdtEyqkQ2yUbYJWGX+FSCxVcIJQDL7AollswWGx3W9H2J/CmalPfqy8yZrk218KK+tidvLUqmWlaLuTGolLqQfDu4cSJ/czULaWx+V7kgWXAX+RtUxy2LOb9dIF4skEtWjmjDbHlzVyGWE2rU4mgpzD/rCf3AknNAURp3nqaouTleLfSZ68glulJYWDNQJrivQ7nTJPztstGjs0H17oQV22Xp2Ask53W9oGMopR1CAZxedhM2uz4nPatkNlTIxo8H0IDzIuClOMh1pKQPyfGXJ0sHkL8g81gq79MF4Znl/lEBc3mWuEXd57ErpitvFIW1B8da+U+2iI7tEMLpQbP7jWV+78UMGTisRGrWsoa7GXD4IjjlDbhjUKZ158OQ3Q1q6FmmvFeVkqmKXpOOhPP1kT5t1SODHWQC+N1pR5rEwcTfXqXRCiuuFQ1Sa3S8d6WTcl+H8gRUYFEDZLcjrBX+O72r7pcubSPn+llU0bLd+2Xq/RuQa/VaJGrb1wVfjiYR55vVayONyTme9oKKFPpSJY7pD0q+lngyRhXoCKSDASq1Ytt7HvEGKUBKQOY5pwlbqa5SKo8/U5gd1pnhCZ9UGGfl+wlcktBujsN23JgjXZv/4cPI9TXag0NbVTa+e8wmNONigVEdMFBpcgw1m56wJPAyLhyUOdgLp8FtM9kuMO9f9CCd/QGEw61zJO2jFrJ7o8P8RgYvpJ7pf9kP6PVEKlGeUUEFcSbpoFsZKrmtUXPE4v6a++aYpdMSa3kRSV0BDUhcq+v7gtnbs7QtXkAAE/LX0sCACEBBgAAAOt4/PPgf/8Kr10AMpuIRMFQ0m9ELS/+dOg0xX+3UKnNqw2tg4i+w2PBHpFIfiM37toXP2JOkCj7B0sQ51YixL/GU73q7e1Ut4ywx74zDUxFnQ76UhgPcwHKVMXWaztPUtlSeqVgNF3niXKHYnQ2wuFddCuKd6BFmKrcFCn6IQ/9bjLDJhrLiMn40HdK3yazwH3JSgH2/WeM+GUz1PCOhW+GB75gZ/4NUjqsgtTJ+QE+YNhOIDgsDZGRuta4lSbsZzCaUHE6bmj58Jylv/djObhgH16O4ZgpWB+MduamtccndRr011BT4KGQLdO4eWOdioDR2xLbe/P/kjUFFYxRu1Cin5M4/sDr7FCpv+5zNcqA+l/9KFPPwBIB6Tr1/x2hXDX9MBQKpqMyZhOmbS/x/6ik2YWGzRWlkKObIMU3lQIZAchirIMdi9gaAAtun5l1KZE6IlFmgYfpViQb+NMr2UhS7QfK/dDYPCPStHcJmh6+hmRolQ8deXmYjsp1Rs96ZPwjb2gEBf3t+PdMd/DEjIYnhONvkkhqoHnKs6D+rkdbyx/ZXz0kxMWXt1TLfS9Mal4xG0ecBxK5ybUY0N5sA6r+PqpQNWMQTKKPuV0caLvmXOk367NGYJFzLbCx6ZEopZj/Cc4FzDPP4bvS5Vnn5x81LDWs8BoRpn/enkAs1lmG9BVW6g4mFppD8G2EsKrY+3txeV4MtSWw4NntNDahX/w9KGZb+ocKSZ/gZidY119026RP1DqpWxVcq5u1XudVa6Xpikh/dKAmqJNNEEPOK88iMSRtTtLISxmzVOK7/Z2wADOpeL/Vvcud2lvol5D9Jyt3Wj5Bk2IXd196muB7AxM3wzJX3LBH33fo2cEj0pnCuocbHcmxBnVXm02j4QrK5VNqP7UYxHdm17Nv7tC3oFhjiFqZMYt+SRUi5+TO688ceE9jpwoqWFRSe4XkusD4o1XjUlLhtGWi/O60J13fRrOI0FXR77BMUvsvf8jvVdvbP1sQCHYJUTRKhmuD/wnGEYLyJvjj2mfYPg9Br+I9ANTu175CTena5CZMlPA/m7ibEyD2flbChn7IdRrqR+QoPkiU4Kxi54sdydQZzdsBmVivZdVBAKY5Mp6daU2bQP3/chOmkaLXZQNI+NvLHD63WbU0PoVYiIS7GkkRLtKkMj0XUjnOapgpj5z+L25RYF2qldd9SNRBRBqURX8Us2++t8tmS/ktpzKs1MMfEaO5NFHPGuLIXXoJ3JwtBaCCFPO8jk6iFJ0j6m1/WL5DzQYdnxXhKRvdJwluF0eiyomkmFQbC14v2oziFjpTc1QW75qYvWlWXmKa0+4eA7eyPtq7aTsh1xsRNNkls14AR4161ZzFgHgLzfIQuzW0syupsAnQ+HNiY6L9fpmLJvf1ygG9YtLGsS4VQ+F3dtDSRRIRkrzI7M0qqNiJXBE+dN1u93x5j2hgydHh91KEOheOHcRECcwyx+8A6fRjW2+65Vdi1woRS5zX0YMt1uY+taG9TN3U/nP+ah3/0xsiGjPYy6YFSaO7yuEgenKaWfe+pZOKcz+qJPy5WZaQX6brJz35TRh9/0ktr79ndUNIpPjmIcmylJJFnJgGBnS+98SNpmcewL5vPl15RTsFX6XIzLxBF2lPoTkKi/wB98gHpQ5H6lObLpdlvU/bqcMTOt8jbWx6M9t68bzA0zKdSugFL21ns/Y2bkuI5h8Eh+hl0MDkL1OBufTOYE3mmhc+nzLnr4J9E05g2urplkqWY7V+9JQoGMGzkpQcdk0Oavj7VytdZEv67cXiBRV4ovJ4Wtvo7Q40HXzs4vxefw7m05sNYkmmdYzuTZ6IV26G/T8ktrvwf+VPS8OjMBQvUUquNmGuAuYqbXtGKFkDGKThBWUKtc+eshCTlKyFYehR9hPdKc1LJ2T44h/qMCvnPsixxk4PWGeW8S8afsWsl9/Sca3WkDLJtCYajcwSlLgg+MAy4q2xCFv+NEhD+Ji9L+4GacYxFLGusl5I9F8sFjnfIYDZnOTak7C2zL6nw6g3RUdY4xQpe4jTL/xEAY/BMRLP6O71V+C4GxB/QMo2/dQCu07DraDzZPZgu3AW6JjtE7FhZnWIoReLhqmUahmBUQzn4av7m8kfPkKzT+dEz9bbnrIM6ZvrsamqsFy0C/e5O0NGkVKhi2qnBi4P9T7delkpis116HsA0jWX1AEeN6WEDHoKPmyFf5S/EHJZKWeHfU1zARloOpZUG2BY+UD+XDm6s1lE/v/CNyBwQeLP9lgRXfFKO1bfLUiJSPY/aeBfo+T2J6qKWAqwKKu4HsYffnGrDVHG5gPP+0/UTlYnId4XZMH7ileSr4rUPhv7cWAiJGTqhkIxI0xQXUZ9hTaee2tQh9xMY1b8yXa+p6lt4Dtm4q73FvHqmdczWNRenyKA7GA87p9wKjLWVKRGlAaWQY4Ta1Nqiv477WENBXkThB0W54dbt4zv2DGn8v9J6vIh9yetVWHssJj7LtL51aF0yK3Bx06j0FiN1wDOLFgXDgWPbAlbVpMyeMSftJR1i67AmZZ+P44Ozjt31P4KV2G9ybl2NjYNy+BMi0/jn2AMATB/gqLBIabgZgEznGHcWDMLiLBOHEy67prRJLFSy4Wymxrr0sufOQGSY7zZqztL7TD52TuFOKOCQH7g/ZCcq/WkxS8OhTG9HgiUKRQbIWgdwH4EBn3v7oq7vzbRuZEWRLu+tv0slClUf/5/Cr46CosPVsucgmCJRLfeT2j1gpUij5L49yECXBOWCcrOd2zwNRDoDsuRblFJ2jNtOiZ+nwoFy6zyrdryFukytr4lrDRDr4XStuV3GB6805FzcruiogJm/fdEvftgJweOxW2r2z8NABghkFxWvLSjNZmI3dJxoyv8zuyOQxx4Q5dov0v+FDR+i325s/Vn/jyCKBkUsxiUPQze0B0kk95fG8Zjgok2joMzjqkhxUwaMfhLvbiVbbeLnBgIWjfRXY8/i0BuCkzUIyrCFZ4bJQfGji5SwydDsU2vkT4sTYF1OOOn2MUTAl1DX+ndmToN77G9NBKCla2AF0XEsBAy0L+12xrDg6gGj+NHPHFHPN8EoCv46obL0fVhA+UQxs37xs2HIv8aX2uN3imhI2cHrHv3G9mJZhoe/nGANtUnJ6emJduzdULYgJJDpe5luuihwoGV5WFx7fi8uc1iPtfcTxpei8dGekcSjob9QgTaTmqIWL0gSRjKEGg93PnZEHOnqOtuMG+G3kqcgM4pkXkopcHOE0au9ZOcIoKys9bCc39/VkWcGoVFs1JnZ2gGzz2ngnqOQuTr5jK5ykZrPhqCQh2YWr8EsgjWZjQehSp2hdNSiiRx3v7p547wDWhDu5CXqtMupr4eGdB+oq1xuOL51jxZ3oQWtNJqiPMJHoOqud0KL0ewGpoUkPka3BhGgrVvsx+mu4wFBEN3duuX4oHGpt+VNcz4MJ/evCbJy6O+ymLgBNj1MrOl6xg1OcpsLeFb9y5LFBedxYDh5CYZS/+IEfYnsAFQfkT9OSuvXSTZWMrE4UGbRo7FTs4yRtO81Y6Hg8xbnxNASBLXHAmuD99nnhJabcvTEccu/NPDiIf4tFwdc7aTakv94jWFJ6e4i2+Tg0h0Zt/6484kW1ipWqqY/rJx/AdZ116ELa9w4AAAAA9mC/ECACEBBgAAAOt4/PPgf/8JTF0ANJuJF2wXZsxKn8DOLM1uRacwDGtWskpqSBIZDPXoCNkqSV+Vfpu7XdAxEbAflLapHMQKmPI8gX7H8LFkds9UeMGVvAvcBkdHogimEFcchwP8tBKp1bFzDZ3YqcgGkygppIpeYjoCD2Nb6gxN9RSyP63tF1rCxg5n5VjCH6xx1CfEqBJbQ0t7zEzFVwuzqzSHcmLMYyQPjXkx3PWqgFGmipi1A4h8Myon4xjjGJtdS1mVK0Lj+DlNba9JXXgeACHYSfiE8frrO4KlUVXpcPaVvCfjrY4BbRnXJhgPFfOjpIyNJVtsCqq0Aj52TdRdOyqSJuq+/u1+xaSHQRt+P/UQWvV+cUAVEihKqavWzrY7CdG8CXWvMh9Ahi6SMSwlmo42MzKzk0MbpxEOFwh0+u/dm8HKZXgr/TV7vTKWJjdqmZJgvIRngeiRO355OL8FLejLdQxmAM7vcOsHziaaGOSoJ4SyeM2iYbIpl28nGBi7mm3kIRGS62cuiDI6on04wHh/Y0wDISfcIXDIAR00R69OozdVFvgxXe1uifHkwFqedU2BHB9V2/DBjQ6SAZ072bP1YswL8YAEz+qs8HIqtmj3zQo+N0zRkb4mCJnvgc0IOJJUwiz6l4cLHscxVAOB1Eh/5iKSEnPTeJ1wiPVcJiiYKp1Xz8Z6XLblfclRj8Poe5ekp0yjOJSx3NwxES/j7NiXYdGavK5aRtxwMXLStb1KnHasdW9XkfmxdEEnNCWjyv+HCT/dO7A9A+wHdAzmM+65W9tilwBC/fsyzPELRPMcCr4xLVudzfvNpkcU3efzLYgiXlZ6fKofgoZyRNQvaqwg/WpwJ0Y+S4ij8RX7zhF4QxTT1Fo7ClwSHd4U2UvsCHqYplN1sMr4OKwcFh7S8CnjrwaS4CJSgRiyugVxUPFMr+N+zE1RtTgI31cHnBm6Z29qS9EFaAW5qoTbfgerlHS3ETv8BW8rXgtuTKR7SEo59ov24IdXN1Afz2CHD6q7hy+zCOS0pouoDTZlfySAwdF6+xwbXdoPHWD3VBRJ25T22QM+BrLctlgiYQqXmWOvruWyNT1EBx+09ZWQi9YDlbmUaaPbLa9jpZsqeImVrt6ODxRtWkBMc3lerp+JGse8Sqb8i1cV/oTBsPPBaXQd8VXdccF1ue6O/zqySoCc7YgW0GXCJSE6laxBnO6P434rvnAo1oe5na/hRhF3qXDFVpNTgnCjhDmonHAd+/eNoJJM+9myeiJKNha4OQNS42i/XEq1QZa7Vv1n53TeemkPQaG4d/5HRO+Y11rlatQHghgKO+kngCNiRHQix6uuisjXqgvQi+Q28AdqNtswFmGwyCGPOFg7mZkePBpGLDjwCHzskgRfd7WfkoR1xQZEAo7F0cS8R25B4vxUSdw18hdv5bkXFYZyPmC4WyuxEEhKRME65XzDPbKruhYnTf1G/v+o3nLeKVhb7I3sdfV3Cj3kbMBGB/+JeApESq90B3TAaVG+CxtML9N1IfWaJ/inseTLVBHVOteQXK3CmzoULSkKbHoEC9S0Tysj1+8QLjDAoE+3ZquIybC7hYW/f99T311N+/KiV5TwK93LzpZZ+JMveJMT8XtyeXcHyguvOpcHxCHoGeXZ6Jvflr4I6NO/l152fKbofjnYWCNXxg7gU98QWc0b3z8e8EecqE8wQb+3gA0Y4tZwLjUXRzIBGifdoqBK5y8Kj71FSAb4RfXq9lkoTe5rY+8GDOG1BPhLwWpOF05hC+YbSys4Rmty4HOoeOt04sRaAy3DKBI6Wj+n0xeFquTlp6F2TeTS47rjjcfH+h7vt44G2nZAPvJ8sO4Ilr7X4liiF7qGIq9jMpB6VAr14C5dJQ4K3zULtciv8ECs0bsgna2KemD+PXOmiNIvJ/UeTLkXAeLmOBLDXt2jfWkNjbVw70nNtzFCst3YY0VZR+vwtU80JDA/FI1nhsWWVMdVKgq5Vr1NA+OnVdauXjQLVCMN0s98DB3pQd9Hl3BFFTYhdXZyKUttdvqFDdsVseoifYH51PktWhr6rlYaF/sUaz+x39/dIKB6qUXKrCNtsLQomJHIQ1OwZ2itLkh6bAoddecWQf+CWQMLekJjeJwmfaMHC4lqjQDd0bOKgKXUVGop9uTwX1aAD+eb+mb8udRp2coBfX4XTeTrDKfgdai/TpMUxSvkatFpx6aLKOJ/D1XNWYT9UgH0eljAxZm+0JSkPzDk42N49vtYQ9K+mDgaudDii8YEnBBJ1WSRpKZE+kiTvUaqBEUMslavwYa8gM3fBTiliYX650UZCmiyxcphGQ4527X8mNeU0r22gMC3YjfvtpVJ6jsivM0KGNAvP4Qatt7izLEYlFz8aIvQ9CRWBCSH9k+H+Rj0uWZXmcnxtcP4l9KdymqYMDSdblf6XhsZZXyqoXoww183vAjtDqZ/e5w8YWCuiCkyekxLwgCDxBCOn+sej1usZMor0sL+2moV4nKmLhm8NIzxcrA9N9XdNwMp6i0xSck13+4a8zLDJPugf6IHjthwmuqCiC0pZst9oUrXgpi4I7eXGv54eSnUfHWQwtk23IbJ3qQ/xIadbzWKBocEKNMDRmKCwYu41wk5V+LVNMKCut9Hb1jObTz+jHd3Kux+rSyIp22ig7oaQc4SqzghaGTVt6LuSecpqSZ2Jbr8BMZiQ4HJ6h/0r1plpjGPYQDK4WEPs5CxxiqqHTaLgwH8iVG6wsqstbBcatq3XmVsmxbgRfqPh3KHwXA4mSTjX9zawvAEYwgEdsq10OF/dJk6jdM97vJL4/+yLUp0DRzq/b4HrGaM0iaoABHLhqCno3Ie7/6NIgZVMRJ+jgqOL0m6WJNQcwElFzA2IEsQ3sOZFqzcMR9Jlzu2qmxWshUbki0LdD96R5G8JOu1/M8H6eLRSIQkPtzwjUCwZjCg1qEZ+T+dMKi+8z3Kcb+OkOwJnsVLXBqcLMtKpeVMdYWnp6b/WLuV0Dva3TIikHDyVkzEvqOx79TQTPhDEu0wgFoY0kYu61hkDcY7LtbdzC6dhHE8/Zcjy4VllbxgE29zqJ2RSwqtN4sCnXNd7HofzW0poNB+txAJkXpWwrlvaMtsK/L8Hu/w4sMCn3+1HpNYR0jNPzH3RfYtC6iK2zPEEZcCzNamvxnJdI9yiqmOAbslLtaMt75MUkQfpZ25dwAqEvkiAgAhAQYAAADrePzz4H//DvFdABwcCkcRpKBkIe3jwhAbiTGavSD3gG0WBixinPdbQw2iOP/uV9KCit9+Rdfwu/E8g3wJnhDyWeqAeZs1YU7XdXirpFw/Ku99cSrrnC4MuXjOQYo0G+B8AGPQ1qkN8oxW5KRXfKlN/CH1b0L7arIxqJlGd/PJf+EyxySjEknAD9ONp5gRlaUopNfuJCvDii2osMdZJjLwHaxYUWlHCmihanYCkH2c5sGTNN3KRUOYohZMHTEHmNSHu47FdFk1qtu3WsE+6pv2wAvq8bvPM/8DFZAAuoM2gtuKEEngLNIPB7d1jKWha0VxasCDFPr+Ih2TGJ4phgYS/TPPo36T3vPJcRdkH+4Itymd/a5gbUVqJABYCSD39gjq8TCqRmWwK5jJpd3OmpeAUeHo13Nm++IJ+tfKPkxwJPFEK7awJ6aWBe+/bPNzV/0K8NqNDMFvSeIwWaq7i+PviVCOuPYyk+6MeefEtMgUixWWb8meBzCGsxGh+nm8CmbMop4U9VxT0puXWJI70P1zPVF7fIc99vSgucBxSAGAjUljvet9Mca3UBbBiL1nH24letfMxuPit8lNZbcDG0myWiYT4eVxd2S0yRSI7/dlRNk8FHYmmIZ7scFV941Syo2W3KQH8aVaSFnLKUf6KHH/5WKQlHrN733AsL1CCpe9Yu6v5KpldNOjUSTneHE9vG+gB6+ux3L4nHnvbHglQfuF+auSvyumP4gu9RuQetRC6pljheyLtblyieNjlGTzfgPTQLGwNzjh/S038ym/477v+313JFQgFWZ9D7hjgj7apY+FEcWDXwzTh4shR5T9bXu6eC9hEJRlw/Y+Lp+Ugsd2qfJ/OqHEGePa8PYJAnd1u0amZEi6pwgnmhtnLb0GROBMIgOp0SUexykAobTJgs1a9OaohHawEvAt8D5NiK1xM/Pvb6NnEfTMMFpVXjPqDDbu821b1uepbrq53Gf4nutuk8+6sWC+uJULDdOFRmrgyN8l8a0OfjEiSZMbRYUVWwgtIJeXNsrfXKiL34yAQYGnvdVulvH6+TurlHSiKbyjLhP9LpGXDbtSci4s/kxVd1/UFgfwjszSnChs7kVFNwfGA4dsAqzQLIG5vzJTSmuIlATXfTOwzDv8QsTtyqLfg8mUlX1TNdMt4oved9dyScc8YgoB5GA4Lwh0NfhpfnCpscsdcnCifFezN7tSJfd94W2aipYnfZn5gRDdOVsDqwh0ORZUP+GqpWDTFSVj3JQ9s2lDhJ7wtYYq49C0aeKOuIiDU80pVkAC6KqaJp9vwHOw9MlFeV1MVvhDxlq/UTngoLvroq8nm+KwIXgW3nHORkp6xgkJm7bkU2SoowhA7AdS0fjNERqPxIuZCM7jgPt2EB1PJf4k0VJMFwn2GuBXX5LmIvqCupEIkO79B+4e/8VUji46U8P/SM59Y82f/7r1ymJIo9XgbPXtvd/N7GIbrE3xdf3REqVb2FE9pDxB0wHaVClM0qFXBcKyn3YMyn8zLzh5BFJtpryzHQ3CotOygaxET1Q1vEEzocLosvVNb3KgRyGwjzE8ZLwsmY5DFJ0sxtQjk6KQcH14h85O8goPsy+lrkc200GIJJncN24vTtpdPKPvkqC68FqI26HR5EJwnDyTAkqcLeGZrmP/4nWMgUl3H+n0XdcfBlgog3l2xnGmgtACeyOfI371kunFLBs8/MsuPXh1Jyi4um7v2ImksYX+c0tGjQTQOr/H7iM9hx+3e5ZXSkbrSXlqc/Cp5EBZKa34K3MUjVp7FCpIwyG5+SajJd8RaFRDr3VRbgovU1MYmLIw+6iffOLZyk5yDomPKgs84xgv1HhicWAI3UDX9TbRlMA+RaNYoPakCxGLn9ya2Wdas3p1mq6Sam0N/fv5eD5KgZzTRSevBNOLBf9oRdj7sxB0ZgHfhCPyeIzPpoOBV+TrfShSmGzZohiT6LypaeX69BpQOgc27/d9V8fVwOnePvmezkvbQ+yABdjLV0nIJ6ckL9DgwpTr6NbYQKPt3JoIRJj83Rba0g/W48NGuG/1FO5QkTYbHBUOXdYOximlRk7yo3CL4N4k72VMWYMj7Tp/YGU5GyUEbwIEdSwB2ZVUfcHKy0FyItpACpV0Y4GM9IvUfJ8xwpOENodfkLAdF4PkBKGHBd2xKNUuXmNjFk9U2YB1D7byShwIFLyunjmnkHg3m/T9NFFb2O2gE6SycnR40GHI9nIP4i/ihbws7JhEw01XAlhh6JqWQin6Pjy54yzkePic8xn21I3PwCLyx08/xsQUjmUezHPVZ2hLRpm2Z2UfMl1ZF732Jex5TfLurtFTG5sgGjQBEaH4ZUrW16BeqH4bqzke3o5sEbO0F0SSqv1LfEv5WEueULCmkYH6XI0FwXtarDqO2ffk8but75ZP+FymxpYmcWfB41L7SwEfJSX2rMuCCwRtwZ+U4ukiLL9cCAaEjla+58rCVJgeFHfa0Kq39eGYm9Kq9vV+V33lqMuzoOOvXpEMrTE2tLTy/rA5v5B6Mgzo7Gsv2QF35EBR4PxFobZE/NL2csnLqgJaYmfbEtqZFRZoNiWrY7rHdkog9bN/MXqOUcVSP5CdfXIoIJ1PT6pfeDbjJa0bMUE/oX92yPlzyeIA0cwugXFU3G5nrkPRSozfHKZLJTjaY8S0IVfhPLtn4bs8DJp5YN8Lp1FvU+TKY0Q2BOCAGvIg4igwC+C9bSGT8SnCyioiQBntP37p8YgjunJY42jARHuHvD7XGsn1ZbcJCSZHTex21vgbGFJcUYzQyMzczaHu+NVTw/ZodHdnuC+rOl9j/ZqjctJLniuQZMnDcYqvAFqJ6lvqZTB/edzh0GuOacsiR4imZxAF6JFCx0XPbP0/NhvaijyDAbEAJU0apQ5wHWFTruMmEkqpf1YK7jhZ8IWUFCqLcyIQDQlDbQDeRB9+8BXRnfLhR4lFAwt9SHRGMViI5sS3WsFqD1fkTLa+oyh9QVZL94+aoWfQQXt9Nk72pyHUEVJqwU6jG6HVFB+NrJswBXGbo94kjcTGuESMi0mxUUZ2zOM968KQEu0QUTMsEKyXQ2AVkk80p/51EzdEVfXtxfxTEZSRu6T4wnVVWulUCJXRqHF0FG7dis9ufJ4nVvHZgy6WgfbNH/9gwxaEHtIMD2QhwvR833ivgbFLerTcniCF3lB6dYCt4XGh1AaL1MLk1+lQDUKMIkVFV5JWK1YOXP6eQvgOGjTWo6uZpg3rhfkfCucfD12dDTi5XEjzKf4ru6+sQqyjyEpxmRsbwUULasdpFlikUn0GyT/R8fwcbqRRRacZFheofxBc6XvUNWvt8bpljVBJIezG3p1J4ko+EqsartgVVtMNHO+ZYhPpr5mMLMKtAfoAh76g8i56dzZlCTZ0PATpdx376uIIXszDl3vYs69QqClsea3WQQlPdrvp8Uf5tXgZaEfQCcTOgSIixVSmZD+xJzEAY9UUimRbn/8h9FhiErqDD9kKJasPRxohb+v4ajq8y/9hEh4zCw8F9d4mPpTB4ksPXF4kU6rJL42RyD8mrLTyx3qcSoiZS5rvZ+i6jKxXbMrzmOn+aCgbYyJFkVQ7Ok1VRFTSZbAqCA9KoooTrPMRWyJpJmWUcMbOOWxk8jTXEfCFLzhnyKeSSmfYt53nIqFIVgRdZ4B89t+Sidly0srwenwsaUydGb7s75qWbAc3H/9K1AUdVToAWp9c1xG7FxSIREiJEv/gxr4O1E0FyJO2A+PTK+iydepnoK5j62m/D9UIZyPocQICOTRBOqIJElMnWOoV9gnieCQpao6VApNc1jzB+d3SEhgqPKrI9eo6kNTe7rBW05+RUYJpB2WJzJr+VVfiw7r8Ay8g/n2LRWJezGdieqRiWnLzifCh4BeMy8zj6oOt9rN5CbLNToIE2P8nXsqdiovX8jrPI60uaWHXdCv27YzOQe76zMvr57O6Fy8j5gvGsrElF5Eid8kX5CirL6NdnYpZ2kiuf0iIG4tRGvMSVhUWrXPoq8NNhfTjZ94BNhTHgvr/oTwWLWNziKCnWQzb8l/mfqFBeYXRPT0jnih03uwKUGbGJMmeo/uoSdhbeo/BZREq+gcjGU/ICwDzDoVqY/s++iKYt9vILBSFXxLhNzapq7O084srYg5Y1QWySst9ch88cUN26sDDwRYP8GX/inrcAOj8RSBzn/mXtKfMI3+93E2FG8YcRvhji1W+nTemiUrkdSrjgUrC7PERcDhJY5baiXZSKl9+zXuWAiZWetFhZ7a4u/t7P7L919lMEYMyLLPWoy8FYBHWv/+MXTtfiGYkhAbwADloecBWiTAARrvTVqwCvNH/m7Nowk0h5bMfXdsfvRldY2avLKy6f4Y7dv+5VjujVB7jZipVY7MtGfv9iEoRhESeMgDe7Y5zSCSUVd0RLkONMGLfRQM7WuoQrmejSamaGAgaSpqErdpxT8p1YFsf/J+jEDLuYbt3FNARioYRTjeepenSXW7uTYE+YY+y+rEtv9XhlVlG+h7QScAwZpB2RAiik34DmotKLVA7WKyecNHDbaL/7eNcbNgMfK27YkrT47sK3sB0ZW0Y1LIwKL+dV3t3ZjaRTsnbslVDBIkJWWf/UekTqGKHw+A5LFM6WAqkSzDQ7eXbcAqxdaNT68xd2QxLTz2HJyOBjn/c1ThCmkvCsYll+OSj0Zc2b5z7nVdVcuPPIvJNRjqlF180ZMVnexH6flDO0fh2oclNJjrcefdudDOi4oRAa20EzfRnAesFmf5eFvX0WTJWdPCo6Ts1rlurYP+19CgO7c8gIDs8b5TQMy9gKYbLOhcw04bDW8zZPirNJhpvIHDNvZoo2Q0wsckeu15fRZqfn9+5AHrWd4m/vS3rdPzjqXHpu0z7xL8aO2j06O/oE94hgTsXY1fn8d6XRSBAPY2DBrHhwxX7HpTcsQu2JdEPMMybMaGHfQhY7iwB2cd0q012fLILqCd6+shvb9Bn9EnuwRJz4q26fabYZDkmJ6K01PjUsKnT9g6vOmDm51/XxgN9Xj1Uc3siOT/g8FqVTJwKAoVEupGLdveYCv6+GzZpbEVgKLpOJ9IvkIHcag/Yd5V2rrHpglELq619AJt9cH0bBgAAAADEAwrZAgAhAQYAAADrePzz4H//CXZdADqZSs4dpnQeralrifmr3XlPFkOGu789oTxccxpTmNqbhWkLcf6C+mLJaJFlW9XywH+EI8UsRWJ28Lts82DKwRpESrGclQOemqN2VBFDsHUQOB53826QTvEB7d7vX5vvQCzpnNtRFjxd/yKoBWNjup6wZX+guMMxCUUL9kOLtvnovZxfUNhfceNZvM+7Qv/6qRZswrJUMGeFsU+RyAz4BBgox7liUiAwiSV1rCQCsYT3uXGjgNzYV0mzWwxDWH3mJ1BgenF7ijBLH5Ryao+lc0+PHJqAsPvGCEyEJ0wNvODP4Yfw9txvvLCzWtA9iFp4CN4fijO4loPW+p9ENdKfFF4IC6XjPAnCEvn+vuxmaNvteTBFl3tJFLxtzWGr6YymoLj8mhlW8VLunH9iW0Hd5pw61VwgrFjQCKWhKI/dy4edp+fIitlsqdSM2IxwbjOce1rMqv9j97KVGrgVAdd6LtlJfj8FujSiS1MGXTT6OdBy2Vwpn883A39skdROQ1a1miApUPDfwd2s6CkBcTcp8jDrG0gxbZmzqy9s1itkb68rDUTR2jP9SCXPoHbvNxmgGEjq/fP8b4QzoASvozTb2ND66AEv61uercsD7Rj28VijzoQ36lmK2TDPKYdWY9qBiIx94X1i1Q3puqJ8BWaKF1MhvxWvFdiw+nHxOFPghfZ+SJO80EgLmgvNvZvu+Vn+2+kwz7MjjF45g9uNOsoEt7f/seprgE1h0sL21zMnEVBILV4og5W6anLWSNB0X98b0n5ZqhI5xoIsCof9cyfUNfsX/O1gEqR+HtLOQLgfSuvq4mDBRihYSwYSWORbJyibcbnw6Hgg9QnrdHoCV603ap1+78/BOhzyZ80uUhJ0swR8BTHpPqh0ARiAqDARlFi6whhvaTWpHrV7aHRxnJrruXsnulBgWBvYcjEYbULMid3s5ZKLuu+L5lxop2L1difwZTk9K0FRIAL2sMF6/uiTBoQ953DeMIQ8pnUsoJyHjECA+hC8ntRRqKXZIMGNKJloiLdTxO3ZLXJoIJeRO750cNhXBUx96ipoAVBKsSuQPbputEHxcQtM5rAAGat5Xh1HGKKwOXY9S21MkaIrvnXGLVgZ5MEjPJXz+ysCSQ3WRJbqQZASR+bHYTSnNyGFOFS3AAW7O6/fd7pUtQEZNwtCtMlncVGQ0kjLO0bvuLEDAcPqydnemweqhija4cMo1fvwOtAjZuTjxx4mGDeVUBwBgkcdma1ZKLEaFPpfmFjrx2e1DJz8eGpzapEUsFME8nCzqPy6xdhrw8LNHTC8h0RmG1vCLWT679Olp9C4F8GwwiJ2aqRsbplo6d+U4wG8PeVBpXUe1UFEzEOxr/sk04/iU47O+tpIKx4184wzcp97/R0akYQLajjfeNGgrF/FiuPFIbYajyQYLT6DZfOJEqzS/0+aQNFFyWIC7rBR/ZyZRyYzGW7MRLJAeKmjobvJ8e8AB36D1h8LofRkr+BcaK96pL/qxtnjQkkuRaHkv2aV0R78npvxhvnG+ahNN62myqC+Y1bZKHd3BTG48JUzfjvhXikpp2DE0QKU8uWhFNdivJ6GXz8+9/e1N0Eoc/v3peyfxmlcwTmRjcQJysKqIqtEIpD8qIdLgTjY9OaXU3GYJC2HPhuSuNLE9Q7aTd06BDqcij0YB1j7Pc0BEb/j3a+BDq2rCavps+0Ks84PoEHvlQEF7KYeDj/NnYbwHTrv5lJ9ot+Bb0eqlDPPa7GaefyioX8dPevY3FLF9T5AC6NUBhy7lZyhI8J1tH7FXl9Yk0lvAM9bjLAAxHOKYoEMavEwyXjUjGDW711Jgq/kaWg5mMkZXUO5ZGTsEg5DvlgCU+X1wmSuNiZdIeWA5lQ/GZq+25AvzKnbycaCMopJoj3fgdGpENpSm2JaQcmYFT2IRodB3I982BastodVYFoWXmpMeScqgFs4m9F7JGRihGSyUUyyrv02qKe1EftnHhPgE300EEn/5bm7fNgWgV7megKytYInZvEXajckoMaQgC/rSUwJUOVSsjZsEwRWn+kwhD3nwZAS8DE7d+9NHZQws6aUkiTndkbuIHOrSpD6kT619ggIOmHoCortQGuXWq8t8LrF8xsXKDOvXWwcMwrUp6jt/rO2vQuqX3mF/nxHrSjlCbFzio1Pd5NcnnATaxd70EzU0OMtSbltOKGVOczovtuFLqdqhw90mvqfgay7OjOvfnuYQRI7Zf21YCf9R25ja4wJ37RkKR79HOAnr2XuYe5F9ibZr0gPlnEzLpYSWnCu0ynRNRxW+EmWNeLsBIDtyMXYHlodIPkC2BxpFQn7JK74K1ExtsfL41BumBCfYqqHiWTamlskFu//lZjnvM/A1NKtxg84PxNbUGEDDV7P2TSQkMB+YwZ76fB7sUl+XiOOCqQyegSHsap5IdWyLVAFKvdlyTrwL+dIQCS7CIoEOhqa2WrQ1khhOLq3ClrUlH9NG22p4aRuolGZ9lna8YUDh6kds+n4mTrLtOCaWfFKqYmOxaC1XVaSBxbC/RNpPWs+EA3KntX5PubFEPOSe9JIJmslLpz5KvKS1Q/LhePAHfR6KVR95IwwdMOWZcKqobPmesR6Su/f4oRVi6Y763rNDVP4B37EKzwy0Ll1EI7Xov3BqLlMRXSLY9pQvQqzzwDHHnH3D09eJOLp0qqpjUH+O4m8W7z3iq4T4v+9E+QcwuIC4gb/WQFHFYCbuoCTWsvIYrCwaJIVtiLyzJ5IBGuciepnYt+S2O79Nf27NJls372XWf3FWvVqGT1HwcC9uEbSkAxo6oBOMhuT8cLxeQ2PKOac6c1AHHdakRCan1HHF5SRJjgHMPU7dZWXSGXvmoYECAYRi4pRXOhlo7K7fPhd6rVXqtS2eMlUIlck4ULb7K3+oc0F5syYNzZkw0/aSa+yt3QUGJdu2Yfam3yulNvVcekqYI9/OCkR2wvy+f1mR6rmS7rp/HpPYuZAYHtSfN5kYDNWYQGfaBy1M9LUXA8N152YC1CEpVTWfdqmasJCmf5Xc/g7xY9cwGbGBiPN7qgdV0Zh/oZDt+XE4hhNiRy7FZ2ETzIfrJDE1csc8VziWse6tOG8SAFE55MuuatADxPzWkaJ0uUDZQz10JSZJBlqERPfA1C7DVCoZw42MC6kwlIUujSWmSTO45O+5L5At6chQ8u3k43axNm2l/48T1r/ia1Vgd5wndw1W20qMUZjLh281cWd3zRQFgAAAAD0zsoeAgAhAQYAAADrePzz4H//CHldADKcif+BhMTq8sHp8/fkilkYpF/jAZgDU1crWfoU1JDC6NL8mOVcS4IOkE9McGe0iPygPgTUWGaKUx+Fbyv91vmazH0HHTfs2nXKPu4bvB5HsGersY6RvhfrKh08eRBDRFto/mLkAJnUfW384JqaUS6HMMUmpAn7JVI6lHt9CSccDIVQNeS03s/XrC0oijP0nkYDdy8j1vIKZIe4csMZEtnqOP6OynirSWYmMn8cQU6zXWztC7TmZxHoXF4Chra7nNBYavc5hbEQWP+HjNARh3CgWXxHj+oOc0Zo1acQcNNFXXq4wkknnNJi/rK+zWLHIUiVtUSgKUYyya+bTjSQ6ZvrjOCsxRrp0D8CP6gUHEIU2CzFYa1a8ktN3tqsbr2G8/nvCn3A4wv18wQiDbP8RIbS+A83PbQO3VkCBorO5BwOIeNBys8JEW1CRr2X27kdGsC1/qkgcwrO/4JTcOehTfkNjpD3TwKrzGJnG1/qg6jKjpAYU5d3W53rCb1j3TDS3pR796mGP88AtS7BxvUTSR8saLXEnNtudr8HD/tAP7jcUalAU+F+OPimDw6B2Gz6yQM/wrgM0mQkg0qcrHpxcQqjL02bsZdLSjhdLLWAESsZ+LAtyHYwUUdBLNQxC3cy6ZH+8Mdah+o4eHMpZlHhaF7uvM/yCZDmM4AsiNNKwdEOFuo4G7NkUwOiPK9QXiPTYwa8OKxEke13lzpxMyFxszLbALfbngV1CP0vKT+VhC/hd7fwWfLY9OcHCyuq4VWRMyTsBk+zihac4rTA8lTmo8tfgxAlAT1qkQtTfi4muQWJUWJCmsrFETWJz1dmd6fvLnSRVZ5OlH1pBPjBpouR6oRRWPlxt8bh5sPqnHBrqz1dIzWNc5nT//XNbChTgAx2GH8wrku6DvtoY4fupqhk8pRIPBAKCTtG2pa+JJ35IzhGUSvPMterRwerw8QPvtiPCKVwvmWKr3WR+xJF4GxLfqHx1DL9/dfVgw3OcAxHm/QKD02T/hwzrNSSLCfk9u1T9LhgFMK142zxpzWA4yZP5WoMiBbv/LsdLdbNkmqDrVKhX8dNQfUr5p+l3umZQfNLZAl6Nzt0pqymHpbaBeHgdzlcmrq8orzr3JxdCFbZlqtFuPxQa1g5qmCiHRTXgAKIu4nFM/2GxgBkSYtbBSoQDW7WgtyG0lWG55xVElsx7wZvoR3Fvb3LTcNPvrvHWiLU7K9n5nqtBQP3YkjT2TMdLmQydkME5bIxXjPcb5e8xvNPYyfdDq2cNzNc5u8By40N2Nn5f4gEQIBvkHtI7L9hDrGcF7sDC1MnUBhqvYUhztV7fESTP8vK9KgTfKDHyKmF1xVxCMCQhNHBZ7CzwTxm7q3rTHcQT88yB9kN57HHqm2JUUkbZKIqB1/Yjj1pa/0T5m/YBbA01VYYy9GALfoGNrMPRnuAIO1k0pXB5gKmOGq3rO0FicKxe6hhZfg0vpbk8n0zqGd++L3CG7dxi5zdkelZHCJCffVMprHw4TW2dIE7oeTpo/YKqd3YmMhafjA6NbYmVTQ2sTrNU+3o5ZVKfG/sC6fSnXrArroyfl1hVQcYEnwqU41NlvcIPoY6cuvtA92Tyx7KZcg4Ob1V7jFLVma3TZQaVJpamcWJEMbv1ivzZIgjlPB8/OmDUCOaLSlr5iJfP6oPs+jkFo01NmvwWx5VHm4aXnv53rBKtDNMCF7xGAv5BA/IG6qeWm5g5RUAasUnfm7acSGvY23n2iUczj3pOh/0sog01k/eVhyAVlKepPc6sFlGUnILxhvC128jqshU1D5IRNLl4/AwzEE0sda3e7fbcVvlUTRjLc+uwq3W2OnHPytsfyiL66U8AnH/2yqJl5TIZc4TAad1QKxgimVS5tHxmP3b40iIcOXWA+sEL6toxc4a81WkXA4X/6pew2WUz4Z0HPjpYhK8jv+cCVcacEGjEvPxeruhuv2ol3bU3bz5mkhm3bPxxPjXfc7u1cw3B/s9evr2I0kyPe5vR2wsuQCWKgd4Iz5/XrGpjICDSknXkDQraOkBBwHbPjfdb2hO2vd6lL7jeGlzzQKIz229NNANYE9MkjpiOatsM8P70EdXEPeTzn1rPp0/m6FAMinxB5rZeJ2fjNiLgyxFurhu0JH+oo0gnJI37z6AxyBP04o54dVW8IGeU9HZHy6RAcoRNjcBCf7EIqkfCAnNLNzE1zvBij+DFiRFNgoUFaCYIkEUTrvEPrfuFNhP+m0cK73MttTFzLWkQhZvtTrYud3ZRIKxPc3F+KDoaV1qX5qhgYvBZvtpsMqeN8asK4vz1zAzJ8vWlD62q83jOgOFtIytzAUYQZCf0IR1zFthx1FV0LxgaejJDO5pBYYpZoNwCfPi/wORNsZMW9rI6YP4dcYAH947M9eP0imyCExcNK/DkWSUzA5px3S82GgxvMlaLiOZ/84uFKmAubJ433aGN/aTPHur4ew2d96hQ5y87SgkPeZ7hA36HANJ7SUtVeXVEIg8k+vIDU88Y4tkatSGhhm2jc6JFm5nyqVI/tYCZCNwo9+76motlFWiBA+ApfkvlwZb1hnqTKsQTUKCCTlWOcKIjA+XdwndT26cVnXC1HIZ9hKVZiV2XD0DhqPjd5Y2Y9xYyeJ2lXBHZRHoRuEzZEsddTb89naXbpJsFBLygrMmcyMWKiMataBrgXKK0h0i/7mHkXySuLzKLv8/AwWujHNKRJqrFOwHGP0rTlIG+2+qUGVp9nBBP2bHFc1SjyErSg62Jmb+gOctRIAXPGOOswqeXKknwqcmy4SulQpr+UVA5Xmppv9Sh1xBfLMK90eFle1IOv5W0wQ/CaXSPdAC9f8CADjVwbiH3Zl+qHkfJrGlFHX9z88PUFUuk/sgidCIiXs4VAhQq6dNSQAAAABwABSUAgAhAQYAAADrePzz4H//FONdAC+Whd+3rxcTR2qanB42hV34QLz995z4IaDHSNYXCdtr1NxBUt4tzfWZkrnDGFMN5dy7j7lAQjcXAw5kvGsHLXNc/uXXRW6YFpbT2boGpxVbMOigShaFSJRlzObqQJNuBtSFH0XQHDyAMpVG/SIz9hX2qHIpLPx08Ho65Pk0FMasSjRl8pDf21j1c825pjFTDFkLfl+567AcDZDXLDQQW8AxeXPf058oYyf+HsScsC7E+WEPehO6ERCYsZg/g1+elcq4Xr9E2AVPd2HyDJ12/LtswSyW+QIXvvfmFKm7KU4vriywSC/cjl42PDixJBMGooOF1lfCfsO5nxp9+POL+DkB3la3c3TaaLHY1DxN7hubJCmjGmGGmzKOaEMw/oqwiCeg8c33YGnmgPRWbAPwyVB9bQl0EvKjOfZRHQX8Bh24TeRdjb7NJTtwcVxj3ZoXkrvRVHp7NphBKQ3LHJBUHiMLu/SERU3QifmDEBhhiq/asaUZ9GYXgf46/f2Q/5K44VIYgYHmiVw/WwsfsCdfl26VkKqu+TQ48QKvF0IwkGs4oLPKrwvHLduLihCQHizGVc/Ys5/0zYPskhGZbB+TMjbHVWY8we6AZfWIPJi/nUNS0hSnRdDv3YrINyKVM3kfS/BsjV37LuXw9TQ/tHLdq8fLpwAP85osujKohpUt+LH53nRKiLLwSH9q0cchhZicbzjCXitv16Nh8yJwKL2HXwCP2eUZMvKRf3RMtpaE0MZtTDQFhq/3NFJCmr2sQ9yWYvEp3z5w5K9xL8rT8Ymp2YK78llKLLTPZ+JXJu6Hoe4VuvaoE05KVwgjepBLEJdHgCDmIXRJoWQI5BbSb+fqHt+0sXUq1SmfnKWqsTFiQrOJqEJI0smujduoEqMYy4gLkHyZF1HrFphHa3E3TUvb86nRlpEwbExMHakbxcDX0YEdLwzIbpwVJFxtKE/l2LuoFk8opDq68APLI+vVtTRlmFEXsHwxbJOkONRlJkC1i3Sk4rQ/GOEZuejbZliB9rGKsey9IUncJGTT/crPZWLfnCdfT4NNw2R5C6x+cduglnRsj6EU9whBFItxhkIMiHKArzhEz7xC0PQcb7y+EjLuB4p0O+kAbvP0a8KGvWq/YaThwYIyardVbd8w+Y0CIQUEr90jvQWOEgsKiZK6Zhs6580rlu2lUAwGCote2cCDWasAwu5XivUQKBAufA41mXZcijEPwYcDJ/KI9CC5rIsMnTFCrCwaTyOF+NnUxEGmrbY2AggHYhYq2JUpCbIM6J5tm5CmeYbCG3ZwkWyihe9NkaU8n64ztB/9ZWWzWayQb6feKCIdJaUAAinNpbMU6+QPE3XGR5BdEFU4KjDu4v5SwjBSqgIhO8+gwhaZT3FCLv18lJFzecyVn3exNmCPRm+9El66g6gXAuBq3iifspSs/U4sUn+AoVLdcOehhWoRsksBlTSgPVxnx76CyBQRfbbRR412BoB5Q4+cCcX8ugUuHZCSzS85FssdEw/uVMQShKbYpi+Y7tqEeVSmBiWQ3OQGyGOiMGK239B2fnm6AMKUzdLCzon8rky6qxuy4HEwmr6oxP9MYCGj6K7RLUNGwb90QsdygpQVY06gbpfWUjSfcNM0MwI0ltygDu468kXTXeGRKHFa4/IWIhLHHJJH6rFQ0qB8oluQENKkG01J1l2iSPpoh7hJjH+sAxSMmn2nafo9gaQZnSoi7Tky1Uthia9BFbGMLJYvPskM2FIs58I9hFezpHMCWXn8QzfrTqapeg5kuwqkyrDZzD5WgFr69pNWVIsiYt6LkcFrYDWAUl8wmB/XZPSir9AnN0A342MKlEDWkwCPo4INkalTjzlNRzMODX69qVZYZLKWKviURGTJVJ3R8pYVmG/9goKiE+2ohw0wZzWFYzw1jBuPC9ffX6tAKyBafq6tZf7aLepqpMbtZrHmriG/unT1uCioNaqFX1Ii/LZFmkTwvt858qXMuJVnAsQDznY58pDePseDX9p+xf4TbPjhfE42PmDl7jaTNlUw+uxEOC+hKNophiKGOvF5CZGGs+e4Sb1KPAOs2EE6FASK05d6H4Ir/ODJQT13itIwq38wZmwhSj95eiwAfqEZFVlFWHUSS0P4Z8DzqJ0QExAz+Ywvf+D92Q6gOh/AFJ7KpnR4lPISPR+ZO4jGZvpITrlLPgbicNONJ2P2EWWSFi+SM51yU0rtmZqyprziiCvbpDvnW7mydKZw05PPBVMpjO4w2RurGzjlQBuYLYltUPYGqFGls8AxrSyvLDqWRN1E2ipuQ1k/NtzuXi8mH0V1W+jTY/FW+xf3RnZMehlBivuQQaVqtVjpFMUzIYSUTsmYdbyJeH0TxhvmClpUGNR8y4eNpH+5wLSjey3+aZnLdEZgmsGObwi5GaHfUXkVNM1q+7GRYv4edFW7cja9r7iwERm23baMcuBFoXOAGQaTljwXuUvDQJtIJnvagJJsL9hFGDgwVOjC4twddRphtCsAJB+YyCd+fvLix2uA0C7UZaStfGw9jB1VqATMhNF6sGEeaWljPOO0IO1kCg/G/Io5Pd88PLX04Df9nS70Hs7r40ZmGEtnch+OcwtI9vxofh/FZLqYbv6GYpHCdYDzhgb38WlYf1BStVbtunaTZMkZXmSVvghrJ3bCGQ2V8tyGMIIAtUAX75xCIZSDdHE1WPwSK7G1EUAkjb0+PdCyyZsNybutkU5cU3QGHx3SrejWHoHttzV72G45LfIxmyh9AlVLtPyBP028KInJVRsHzHDtSsXhpiupQc1T4wNL3Q4HtYGdAHERcSM+YvSzAni/d63ycqhuFjjgAIEViF94NXIn3WaNVBg6jxuqtswalwgrM9/SBNzjj7f0kc64Z8rG5iOgPCKh7oEuLpH3oRVUT0f/wIetxtYIO3+MNj7RKTMkMON473/bd+PwsvRyAcuqAxJZKPZ6pSWnRrr/MzN1iGJW0Qmg8voSRsYiLGr6GnHO5DQSrIM0tG0p7Hm+p6GdhVr1BddSO7HTLIb2hKXeL2c29oNiII9j4hTr0eC9Aco2EffvAO0Ckx5yBQO00X19BZRb2bbsZuOMAJeivzYwVIRkY78gh2qP2oWmpxff0eapxtNitqV690HGnXVONCCjSQXKe/j4phTKyYrFb7zoRA1DfupGeR61/a0assHdr7g6H135q80VEnqdnXwe80mWi5X/roqKbuS7Pv4ZztnSWtKUI8OawIZVSGSNoCMi8QPXT7CWUew+4TBb1hGG+5j/MlDye49Wx6WGazHkq0MCqLdKz9n2+qtW0dNHrN8+zp+00/tjKI49J7ODe7kV3fbNgUUNd3I3AhcmMnTT6sGzUGsowy6CDPLK2OU2GXE7ABWdYMnZbe9ttvrdySnv5PC45acnLR8nSwKmi7Tw/6Ne+TqAIcupGtL7nORj2e7MslCBeCdutuFPzjNbdqJJlqOTDNSsFc+GVuhJG2O2+a1JJDISDfqQ+YhDfzJaymNUr8gx4gmoYhIeqFXEyRSSkvzCvTNbbnwb3UjNsN2sMmLW7HFZ2gDejrI0hW7OsAgRDv48/Qyn06mPTB0FhhUrk1ayrBBkug8wa4pnmllXBHQaGqts5w3d54Bzifxt01jxrmdS+EZsLJ1x+vFEi79b0il1AXhTafIE1dUa9+AJJBLD5n+sM63bk1+93WlbTuowBDDnYP8+2EJ52E1ke8Cn99SwppkIv2dWntZMkFQkX5tX64XTzBtOlIgqGaHDegeA2WvnPEtUbBiAOaTo0ZN0iGgXqpYQDC+MzVPctdh+YyF+AcoSQUsR4QDePWdc/TVUfnngdaIi1dhCG9ocX/t/4gZ21eaCBrrVb2F+cpp6hC2OqGy8zNAc7TaT4jBtevTTkRPwmgHV40piQx9NugFLL25rQB3XO6Fq4vg+XUieibIzTgKn2fnUnzyeoTXmAAMTXjFpTmlTXU8cCOnZdL2DKbWXS6j0e/Gmbx2wlwyHRrdb8o6GoHtxqvmG5bmgX+2jBQSVMzrrSACKo2P//ZztmRQT4GpOQZJILaIw5flCWquVgvWiIF97JjNrDndPKh1hbWG0lOTuDNxTZ3CRjLkEHJZCEDUCxyq+ovwZYNXGKBoRDmfXtHAx+zWXCjwVLjpSAMjQY0T76Cnekjx75QWhTm/evwuw/Vo+Zh1MZbfHWX9LBTzs3fmPJat+UP1lu0oUxrlAPxVToLmcBWGGOfjmXVSwdSxxlTcelZLBcUyzeFdBNCIO7QglOA5WP7vSdjYnC8RFsJMvBv53pCrEQom1pdAqpAtBVKy7MZwHJCbgCrlzmrgiP9oUfEMpXEDTFNjV2u4ISlFxvt4DqHuE4W1ZCpLq9anaX/infru+lmWlaNqDu5Lo1q2ZHbywfFq3jq4oJ005J2pc1eFceSJc1Eyrun/YmLulRe/MI2qClINP934gZIy/NnkM5KTOMxMxv9VxRwHGgyerBEWq0PBBv21wWvxKpLYb4MM1R+VMC7aG5hB2CN1mtF45KOXFlTSpfgKTDoO9D2V5eG+7lcjp64af7r4HmrENqm7qfZYrR1jAUNuI6wVJqioymPo1SzREl+geK4HgN6SmL8scOKQC5LwlN33kyEj3pqvbHJbDCV7RM+79E3qgN7D/akDlBGaGJ22KIP9yteY+cCAraMcVrRsEcrSdZ9Hi3vtFwGe3+az77MakspFbRwr2XngJAVt3D38uS1++9gNKl9PKgpHZr71HgwG1/egPEzmPhxVa9DHhBLsQnX4W/acNhqxUgbK3LBKH5bRzM7T9ZmBS/8MU50Lna6mabTRk/c9GEhQP7fWKLVPhZvh0q4YE9qMRfq2XzFUzTcGgxN07cqb2+evd59Aq8QoEUWdishNyxjKSFP/P1SLnKdjoBr6VBDtj1+niklOaBJObamclx59aeQfzriey+UfKA2F3gvCspzjterskMM5sXaL8zaTNsIK2EmM+7S48SqEDGL67s7pncf6TRx9RbYrTeZrlIjHjKgW/kXrS1a15NIcZieo1DwCFj62kHpBZEIXqFflVYpYEx2KEe2jQA46FXeg21aRzuiVXTltZyW9A3Eg710ISacI7xA1hBtaAuwCTx+ORQ7r2zHXZcMPOShrDkginRPOwAz+SnhUevRp1JhsethlfIrEesyyAuYiod7c06xkWvPGp+uv3LDycVI7xwlUXRbuwBybZ+6LrDZByqm8wtZ1Rk7n0cVO36ezIBO6b4eB/CcXwpFFQzYYmrEN7i6XDQpPWdEey2s7yLT0P75PQwSl9/zQNwEVc/YMNdw4fAFHaRyIVyP9GR/rtmUCF2BVJxp2pvBRZYU1SNo/+nMbk6wooGBryaTdWA3ACyLJflLxyDADyFlszFRDW6eeMCQmS67sifkXpuqQF+AC5XHT8iiltY2Aa1qU3WqTuShvzS3Kh7yhxIQz5flTRYpa4uLCbnUEFdaDc/b/ZhozfE2mMp+Q2YuavhrsLLn22Q7VQFL5kWv4q1pYx96tPdPyWXqmB9Zvq9ZInDESScxDG0X9sN46RCrAtwJoSvnBTdSIOH/VUjovYXwaQQH9mn1YjV1eUXpACYQSoveUNTDr1JskkPQB14NeFY9a/rg7vdGcI1Ozxw/aPN0roT3YFOGUztReigPHbANhwI5rcu+6b5/gVTjJyMzIidwwh0ff8xOvdixiUOxA3EnwlQ9FTd1gYs/OQ0Zpq2UG3aEM1oq6K81nx7SkgNUUdnNXW9pDQWZiho6GMfqL3R1mWSMF1iWNRi693phDgyfMG8SUNYDPbxPoDYwzFjSlvZcJyI8KOQYxyecehbDgYMufpKMBhp61LPTTBN2CngqKbsfyTSgcxv5IFQzECExaFMSa87ymMN8AC9ar69QZrElhdnBzvjOv/96cIkHdLdUn7h4LCS4d6de7Wq04D7jr4LcmD0OH80EAPHWvCqupC+C+ry3NahdT7LTSUutEqR3TBRNw8CNDz6HSF/+tJiY5um3u93/bwteJDjJuPzdVOQrbhXiLu8srbjq5MvcBlEdbAgKIkGUAUXMW0vQAMBJGuj3gSmub7RZeOodyXoJj7tOb59dDLvJduQuBqrm+bRA9wco2VtBU8NC1zWemoJcTSGA4KAmwM6NTB8LCINysDN9KAICUAmFI7rk2WlcdVmqKw5oW6UZxaXzcf/NKXk5I4NFnUpJXT4U3eJAR4Ycr6qQmdmIPr8sAusif8OV4ccqamRe1fXQzPbQEdltAF33/VKRGa4vkaGI/OYetJ2ti+HeUVJRM7JLaWf0JEPIY3MRwFgAjL5ASlB0kgRmemT6oIJBYT1HIxCbX//LnKJXkUepP4ntVOSrjCO0TkGwfAGljaUxP4C2fLsBKmFBUs6qrF7rX6UOIgyNcUFWrCVMnKg8n12az6SXjYBi1n9j5UAVqMPjI+iQ1HquHwDZDYDjURFFaOV7Wl7IiQbpTE7GhT4yHvJ3FdmUTjFhpHMCNSSZ6K/JVfeZ+N8G7G/7F02elUdeQf1c5/OATTA1W94RW9lOoJPvyOe2YDZAu7/Xtskn4ovbPPSfxWVEaSw/Shl3s0HwIuPrIgvRsNVPqS/AinsdGZy2UwsN4HCownr+H/acO485H7HUu6QnA2vjdyqG/GIb+PZrhAJcxUhbcZwsOYNyOBUr5vv9QGkONA8WR9rjQDKRbGJWP1HAZllGxG/zUe5kUHVioJTIyEqPauATLooaQSHXQ6TDqQc3fFwz/DCBB9AcKyUcfAdFBs8r1Hg+gldlejBlWdneAPWZskfV3xE9U8uzhpu0/rEZXTmRvd40O3z1ejxXRebPSBt3W1iQ+5h5bBMSUIdXXGpaLQtR8bWiiS+lJvvZYfOIHt8R6vzyC1O74N3qfgsr7sQirMwEEHjcrfhikfn+TZwexQn4Z86jk5M63sfXHEQ1W25Rk8gn2gYAYAVdvhvQBfHXXOw1SkTHsh1+wcHS26L50f94qFRaqBmYD8nknCmiyHuJTVhNo6zRqNHQ59Vn2iPbDtrhjdcI6s2RYQi34SahFBqUrgII/qeTpfFxHo9dY3OWDVuXdzkVwsWs4u8ykO9Zk/EQ1pHVZGmrG5DLjyW0S5bmmgfo/V7WAtM83iHLJkpBTGNLa8L63/laH2QzqPXv3WEikAAPfkDTkCACEBBgAAAOt4/PPgf/8aWF0AGQ1DJnTa/x3nHddBOm0N3y6nzT1hjvd4BQDICzbcOz3uNUmSaFb3EhSI/zvlR99RpPLafEKegVA1ZFe/vOMxrCAVwxxncgBp7yba0OZDL1HfsOMjvu5t72dFhHt2XctXo4Lvfdru+WmM5Ubx+6qjfj2dJL86F8weODZziKnXD2YJ8pi0O72e5P9edE0qsf+WKngfh+bMiGlhtwYf6wKBPaElvMJiXwfUdnZ2/NMqx/AeRNlJFGMpvzIJeOrpVrslyVhYkwFsJ+yga4V3UTG/iHJbcsCEpfMm+Dh6dhxC8VFVj07zVDWaFLKHYbCT7TwTwRDvK1RPQikY2mivYIZSPvp4TGfiooandOdWw8Vhq09KFsz40nI3XSJtf4bX6uSDjBxfHYIB3ZGNrw4Q21dCdR03OdhhEUpHyUIxlMiDGw922JsvILWDzWaPXv4rn0+L1MRoAYyimRJTIFioVq2Nycc/vuh/tfC9yOBDXZngWX2wLua47LgrzJAlkTxxtgh4OAKLmSdSltwxAxjy1zFrqJTnYoZ/0qR8VcpEfmFpIF/ftEmNihSUapPTi9MXw+VQhzsL0Vf8XfoI8FQc2V4pyCsKABJScJlUd7zOl/riusdks8yg4LQp0MH7ezMzHRm7/1DZ2SLAg0aWA/cvdAtskEXE99GZFC+mVdQZ1YZL1o3vkBRp+esr6Va7IXlmFSbmsA0GheVDmwPDwauZaGjxB9vXfIHjsCb2nMGwGXaL2J6Wk/ZqsNaLC+pTFqjM4n5R3XwQw5y9e4ZuU7NPytKJjCfdifx5W+IbYkmPTUDO89AdvXP8yQEl9ph3rEsYkF6lGZIh/5VNQsfv6ZgF+KLK+C7cQPWUUlrleC4OjtSjyHo+XwOcwQY/YZzqkS8QwWp8G6IXH31vHWqhfKEynLMgTh2N3jH9P/mF5DJ7eXW9eUb/FDcTWNNhzNf5J7TJDtUldc5IuQSKJIaCI8RQvUTB44mMM7AzF4CWxO0xs7+dEhqWoZTuGYc5lKEw46xeq7vVrRhML4Msyo6FS6jc4OFmS2SRb4UgWSrQ1AA1dzLvS5fX6vh5iRj8NBK6TCcRUIyvTgcJmwvV4TPomg1lY+i8pRc2qlFAKa0CPIRGxOkCcCsicRiBlaeLcQK+g6waitUuul+n1Z2z+nVgAYS9QiZBboKaMD4tmMjPqhQ8oLwyKAfIocTxKJp9/1UfXpbXNDoDC/OfIqRyPFhD3G9owOppRLtb10cjXp3EZypLsSbbhuZ4YPpceCLAdaq1w5W4VppBedFwbuYUkJqpK9+/PJzZt6n1JQojetvRkiHp8FPu+tPabMX/6NiTkKUTDqa0puRVO33b67JIdnK0E7fAYZfQSWVAMo5c/pYVyluNcEisrV30X8Wi67ah74NDI7f/p+HSezLb+n59O5e+uR8TDjN6SzMy2fXv8erAOstYljb2iymAwJD2pjQHm1D2MyquR/THpw2rsiYRC7pjth2qJFoq96EtQ0XZKwRzYo61wRUN+iLRmvRUZuovuOuSWlaxIVimxmh1VtORhHlkDDQe9L826+RCRpWkwfpXnDGMDONaxY7UJ/wnZQXVDMasiLWqk8omSjjdC/QItF4l0cZ6TzMjoX+sZ0ENNh0xOwOt22hRWrBi/DB+s/cZtVSJFUMJXDIXr0Ic19O0wDRXtXxx+bXkPvR/0oNkDZjEV4yqn9kavzgck7ncbOTDFgR7aL484ytuHXTwKs1fPhNTVQhcjdigKhTPj2yk1te7L1YNCZLiMRZ5OQuOrOO6Cg5GQwhw2p3K7nAKkEqicY1rm8ZKZrHVLdmp93Oph31tZq3Fuwmjt7BFGiqcvdYoC+h/caSNx+9+zRSYLuGtz/176BJVvwF6s3BTx5ufs9maf/aar+6HrX3QaGQvHDsJp3Pak6wHE28oQx8nwQaHvhV0CYuTk8T8N03PU863z8lAu+HLNiaGR/J9k1Bpv9G0sPqQeb7ct58qidOR2UurYhrGWu1PBmlS7xNWaskK5Utb2QMcRdXcTmYITAE+C5/CwLIbFMqXPN8JCybxIYnJecq8cvH2VUnYoz4AFnQsWnkrdLoExXC8LuvUfIRJoGxH0Kp8usH71o37UgfP+Pul55NioMKkYZ3tqAVCByeY4iTfHfDqSdtdtqEX/6jW0JB2VfSU0VtPcNIBHOk4aigSvdM7qb9qlk9rrMPrynmMWj9wXn0+NPdUyiJpIbHb/vutreux4GxbUnySIhGfBR3LvrPIiJy7CtW4T5gg4YJOCHWuWPdo8f3w3BeJgFsSdRLLgztncYFxPCaFuKFmY9EufdN56TUZEAWDMXNNpp9iYj04JaZVNjFqpun2Kab7HDrAcB5QgWiz0PU1v8FG2QpiKmzKqTu88F6Y3EiZhayspFW6aPPFCYtLom9vZWMN3of9iua9I/WaP1wwZZefPNkPXutDTc+QI99MQxaHejM82DZYaB4mrfLK1fOFz2bn8DcQrqIdc/cZm+MPk5OrvF8L2hj1J7b4rY8N55kbZVik+jR9iM60JdZ7bt8/gUlcY0VaMSvR2M76fhC7Q8L1k3jzlQjNrdZ+2t80RihxKAFbWH4VpVd12a4RLer650UT639M8QFIpsf8zi2qbUFLs+JRwRdEhUrOvS7kbssFQtXAmkJ2OGPUP7vr/6I9HEKOFEEghpuDvM+nOslNoQZTPiTWH2yyOD0rEjhC3TLT4no0iWaEdAJvJyrH29pyBxAxI4jicPIokhT70gne2wg5si6uYjVEX6JZwQJO+WxwXRgFQxQCZrZAdkTKvZtQ4hnsUEGN50R7VSe7D+4AEPtFxRiN9mCTiHlDd6Kyx/9kkN20X3DlMzFhN9pkFhOuVFXlsie7lHcvKtGTLhjAD8eH+CZi+z0gilRyIEQtAwmAiFGYXaAK1/wVpcJ+mUa2vfytmpBc7YW9KtvN6aJwHGVusyfP+gc14xE+EAZgAjbqe3zaU1rJd+fjHEsQCzQ1M1Jftu5T5gzbEDIAPvCxvzZj0dTb98eaF+9p0Rlxtc2/GS+0c4hbaZDRzqS8E0nlnrxhpisEW4CEMAf6HvFVMlGEX3pSPQm6U8GcAl2Qpmne5RwScp6CF0eMfn1S0jtm88t51ECBLp+hEkNfJBj3Xgj8azo308LTb2LUkZHqTNtWEt8w9HHY0kJOHLsraGW4l1/eECgYCZ9lNU9G64F/SukaGXF7xzwt50A5lcbUiIg+/XBG31Q8RP14ZF7zryrcZbGjC4Pxax06Pu7jHOkhFxyGu0HG00IzQ3XkM+AoTW/XWfUJ67R0JRMc7yu6SeT37+Gvdndt358IGdvUbtEjmI0xeHhbWQBPguH2fcC+jq1HVzB6b7qmir8gRZumelBiGag2nisPeP8T5W1Kz7disnZm97M1ykovfg/MT6wytPa4eT5Z3z65gKHsGjtjqIkj5FGQVfk3wYc6DHKJeg/WrycMplGRGXIAmB8c9tlQb56PeTB58ZrIV1wW9sTIsv2zQgKk7rGDVO4MxdqbOe9VeMDG5ZFPtQPHx4ZEudjCfOJuLq5hY+QMSjqp5Xaz78z2ir0PdbvyKn4NevhTKe5wrG53arrEJXgU6fUoIJQgNCPmLrHcrq91TBTPxR+DV849F+Iv46+rcqY4Ip+Y/vYIIYeOo64yGz/1iKoWXNNjrWQQY2PQT7l7IgZgHzzb79pNBRkWC/dkBfvCwRmif+OGmDC4N2zc4QbreyeDW7+2+sUBtngWOp1/FoZI8D3VzSNQLGC+NXOjroCJzSPF9UVPdBETeYtUa+3ymFH5YLlffzQNBb5r/nEU2QtkGpJh+MkNR8DUq2ulmfopmXw+/8wOde+Ks+EVCg0Uk8RtEyYWbENuaQS8alLSdYT8wx8twpXd8xAITx8r6b45piaIu7KRQPyPeWUD6jYRUQkkuT6YmY0JDE/OGsilORDxOI0LaguqN1Yc7o163eLmadXAuRKtP+xAqVC04Ed+IjGbrdW/P7PXqAXwfgkJsmHu+h0rCewNe+zm4vWO048zCv8P1bLrX/ITG+zqjnUYmXLWmAjbW/7Rx09vf0pU2FnLVTuwcZVEcKoei+MZwt1iu76Ee9ElROcW8H//UbiWGk6Y3lKjiAp2MYvPwfnnGDU6ze6cag0l1rE3SevpvS63LjU1BxEA+vdXRXQ6CmPZpNX5y+/8q0asOekUPV3cciOeRVn/1OcU484E1MgY50JrrkL2+MyZy3ahdCQ7PxgZmwnnOJTdhzH4zRu6GIdG4Aa3zqRVskEms1G+r1o31TE5aFk+Ra+2oeNUR33AKDj8ZWw5T25z9b+gSbZsrXrjyblCLBZY02V3NUYI7joJ4hrTEtuRWTj1iuBhxQeSaJmfscRD18bjKdh7okAKFqETHZQf1QrMqPqne0UTQOXkaMm1YtEPNTal77sZuvOaQBcwnV4EXCtdaeGztj/dAiwFh3EocbxHENRy3I6hNtl917UFbfH/QLDFsOiYciYXThbVS9N0gS53LFSH1iew/gmLhWrPlOCkVPLxPBsqV2U9F8q65yXQry5fkQPL5Gs44CGmkUXdZ/0RihpZBKKkSODxco3KRcfsfzVe9b023n2WU8b+c3jWAE/XeJvvJCqMMAbRLoAlHvBXvoGWR3u7vkJTSMol+3xds6wKl9/a+W/1xrdKA/0Y1RXqnV/JOXMkLXjOoA7AiGbKP0zf6Vifean1vikK1fIg23i69XDsFSQQ7vEgnbfcgMsMcfsrxfN2T5aWTBSnH5j1V9CW2RtjWaLMJOwcbWC3YKto0YHNGU0p/ocBcIyOtRuroJ8TCdTnAMDW76v4BTjXET0IjWsxkSIwJMLZY0HvN08GUDo1zFWmUMSPCIgsc7dauK1cRL/EUADdfmkxuKvXnkUq4UcBEWXydzl7JkFVn0wficmCvwpXiOmnWzQgdYckOwQ0KvvgkFpnuzCYaYtpkJa5ZgDRGq+97EwEfi8mb2AbglDxy2qRClmw7Xpsxk69dxtdnz3VPSS5bYComz2gkB0c3AInbU1zkzB+ztioJnINt8L7OGvd5kiDfrnrLtfjZ6uTb/QJQR5PlOjGvf9h1UVv4lZV4/DUfJ0/Jf8dgRmqjixtNfd7Vapipr1HTgnJ8L1yzpCylGSf4QM1ZSiuq8OmLd8gAyQagVk7R9G9MvwFeH4EMaDafgRJphLsqgX02xam6a9p7q6avBxYcTC93NCsC1E0IebBZS1895FpfrgwBQMWeWlE3EJBTryTaJEaI9LwHAn3UmFykYpj9iYdQCKRRoJgr83gurzIZpW2oiE8BNtiZnerD2TPJaIky14JgxGv9BqGBP3tZ7qGPYqq8vJUCDtI+o7b0peqaCvosNNnwH6wYWcBONuIb+OCurJoqsCvJTrOQm/HfS+okn4Iuja6lpOpR/1wZDdEX3ZiEZn12eJJ4gRFR5GEsnHopqjALtYQUhdACFu34wTpt7hWRHPNYSgXNvILQ1+njFItH2OFSrH9ZYuta/gLv636oZfBbtSnV74tQv7lZROaqeD+R189S2LszfJLVbE4EBs/gcCpbMbUmRxZVZ9Gh1gLvX3q5Pfd7npdqJyYChcb9BQ31MDqKVfDhTZvvr8yD3WhCK39aeHYlJEF1oysU2/w7KM6irFKWuVQMZGQJ+MR1SHew9CkIKaceM2eshI9G7IuPcjULuE4MDfpf9y9Leo7G39CkPX8J3SFWgTLoejsOsb760Aqf4uv6Kx/ATstbJdDGQ46YBnPyoa/xDlNNUCyAi+mGTR/KtF8HPv13vfhBcKbAouqzSUinsFwhlg3ZNkNfzCuL7Ru4fD6fsgXGB87B/QFDQ6vPZAukhzAgANacHsY1gOk1oUyz94pRWl9bx2eUTUuYb1sdFLHEHVTr9GyRq3iNIOo+HeObrfCegj0xIYwS/rD2XecTKSbdSWvJYV2m7ypQvUYvL71JBw4rx9ZrziAn1KjSDNtxEvOC2fbQ85TwUkUzTwN9+XR89kUK7jvxl+JvoRzA5oQEISiU7x64SLLgk4zkeFEmxwE9a5fVcmxsUjma0hYBvbGw1pyNStXkSXHERdMX+kGznlNkCyEKiw4vyMyMe2FZpzPDePTL4aSdNoQR0o/pQcqVZ9jr6XS/ny5iFHizmG9DDnhe9g5+8E6rY/gA78jD6I62Bm48tu+VHnvYEq+KV3lZhyqy5gTvZ2y+1EGa/sZxOmuCJ1zInj9KbcABf/9ne6Y+MpqEuADyq0eS6p+l6yYfY8zK7w3soq1PfJOq7q77056ZLArvINwX//DnJgWu3ERj3Eq0ORzFyZrE2lHRZgcjeLJVz7GmrobOEcxgDVX18WhilV0bme9flEe1gtR1x7MZfh/mFyT8/5MM/jDwoiXABpPJgCd5o23VqEzTSDbgKb9obMo6RSwiTmT/lm+T0+kSRvJyip7At7nfwe8sSPkBtGanFxZG9oY+3tf+3E5xbohw3vRWMjp0V2DuVQg9424L8qA5HqPsfZn8c+hPGqciIloBe45tHGKtmNYTD1XjjQHclwoXgaqEilfzJNHaRtATRJ/H/MVaBttlKJmXXDYWZW/vnoX5eOnqYXPU8jhNA4fcWoM40h0LSv0+N8gGY8+O0oNjAT/OwQqd2rHJxU1eMjoXknEMOLNotjl+cbxoAwTc+G9T2uoXW8Lvxt2d+Dl4obASejfFx4Cp0GNtN2iNrI0oSw7hHD5GseCZKHisgvdzEFyLW8WOWwNkD/bto6b01+ieToEYaZd2fYDb1T6T5SrvZQTz16uNtph4v3t7i5F867kgVWm2yOhQMiD/7pNq1TMHLjvxBF7f1MGtgPkA3KAEY3UBNVVA7D6hQAq0O1htvyVmA/819K4P0fdVYebuVgVyRgrohXHreLEI8kD/rMmCYf/y5dGLsYLg9id5QSjDW9jdpVtwadi8lVkolrMp/wUIBDmRfk8+iGt2VrWTEv3u2lqUF3oM66rkPP+ySZ/tW8wjtgK536y51WoXCxvK0yeknZMihIRgOJhf7I78IERvHLm9NMaK6lSb/9GRpBY5orc0DM0SDZ0o1QfwTvu2dnwmA8djgSfbeT92pJKxdvuPL10UHoZ/utj3Ylw0K44RjdG9sIWvDTivkjZcg/YKCU1/RxLvIqXiNWUmC9chxi/hUzxgBGA1WVG7nYqCiqic1orP05K2mRA9NCTOrcYYXGb3ra87ISnxqK03TJLUtYWumK80d5L7zV8igiSxFuJn0UVIKUFr7ZlYhrdJdYSS0pLBemDfLmTCjJimQG7zM4ZMDrVI5uocY1IGpEqlX3BG0BraZj8Wywd5OMwZcRovyB+PtLonmQSX6jIfCRzhCbbODKXSNhkjsYJ6iK6szZyPTq05am+NvtVzCciJnqUuDsv3mbM4wO7YwLlJGbE+IBOIEYzsyoq3Gql7VqzdEiJAH1AGPPvBdmrM9qJLiDjCTvIc75py5FvPEpFG9Q0cMEvR2VEnYUx/IEri9DDHem0lMzn0VFvy11iA/IWbUDoQpUs7u/qam4rsllSK9Oz1nS4YJo4BOmXyq4hSFecbDiC9QZeDOVXV55tlv1Vf8Tnp+76PzsIqo08vwZ3RqYmK8n2X/CE0SeWkaOd3uGvdsQ1mDadV7ZMdwG12WiSDckVXCSo3YzMebfHtvOKROWSUOSxdZyqbO78LHV+5HyfYTJgS6rw87brZUGbzTmdKsd4NzHkbpsL0AKPlmC+ITI02zRJAejXMnpOUJgcH+IyKvOfyRkIDfv6vYlPPWfeAXK5TOoGkHqWIJ+rTRVPWUZlMukxcRLMmWCKyJJEO8cCFSKH3dhANwecx+PW5FfJlTpmAx0sMFfNf4bYWLh1aJpgaNgJYpOrOQrpnAW/l7TCBqrJjI4ufCwiNmrofWa4hviPhREQYfSPIqUGg4KXwMAcwAglGYBKDcjScabN9S+Q9ks8LwSHzF5ZoPfs+Iw4Dgw8bnXHXb0JWbhekCrVGbadSQoGcKvzYzl4ZxiwTRUDLFOgV9elCjQpJVl7i02w20K9EsBReudAIRIgTyUd/logfsialFekztUOcyCJradfmObkXxwcsxy31Go1U6wd+1Ktiqj6jlntR7+OWDDqhRQ/86t8G9WpHrCKQhZmcZtDTfhKNrJKwh7OyRZAkyv1qpgPJG6Q4PVvOEQvID/5RO7Qz2j9detZJITHSPCBDTZDXE5E88zQMjJvVRYupVsM/F2WRrgzgVoOqtMRtOAiIrKP9xEhF5rbKAGTwZuOeaVifyJfo/OBMR42wsIeBle/V74vHa7UmF0QkEnzj6NMMuw4rHARl0a8s4PTAAzz0p/494sp8c447WXKx/NtCiExANypnzsEAzxSQo9lRqFMgncKbVRDdXF3cz8VCkfVNdNSf9vsDhui7tqqZfxUI0V14EXtm9/FMdFcctZZLYuSWEtWYk3NYisO+KIQENFtGASdxZiVuvzC9dbNo+U4XMM5/TBH6DsA4hTC2VTQnOO2I1XSm/v6cuH3lOXKzmlSIJEY/qGJtwYeW+uZZMhM0Al56urJC3uTACM+wUxDapse0+JS9Ubi/4oVaRo0T6h8AKWtfwWZghtnv0d2Ky8AAN6CM7KoyNh9yBwheAFTu8mUMwFwmurpYr/cUxCzlUBwJkdH0xMj/8Vdx365Mfe1X0GAz7Do06NBX5utsmfUPtHvjooWkCyR+5bp8lnDD3hwT7ZEEw4/x+mH499PwdjMijOE5O83bCK54BWKgxN3nJOP+3jMt6rOgmWKFP4k0e6h6ymxjTrj9bQiwY5Z54DO/wQ/dP0FLKbeeQQoYW2YRRi113qN7H1gl3FNJYoqL88543w4QI5dfGLitlmOzcOWXeJpmNihrU2QNh5ypWv6GNaw0segfM6Jcg3MyRz/O9w18QC9vzYSr3C2N4A9I3HtIi/iOxn5jINChMc3AHTRt6QBGOdzHZlESZylDOieHs/qaj9LW9rq814EK6NqP8AJBRBvGPW+ZMwwHFl3Mal6YT61UynDAPshkIoCACEBBgAAAOt4/PPgf/8a2V0AMgA8Gh/hRYAVP6euCISzCT2EYXoPGUIfo9n6NdVR9HYn0ypoHiCYbNtkaEtLPInAjZtSs0/hi+OPPsdk1c2ApAXAq+H8jpXkHayiILc2WwlQ1YEUC4adrHdgTs8vKIQ+P1RNZ5hdWpHJVhClafkqpz4uYybHgZcAgMsL+2CXia63dibw6PwZf60VClHjQs806ScI+u/JdIY7R5dG+7bTC9+GHobYQRHVYzksXheim/gW8kfOxvDM35LukG4yMFjqbyyjzmNU0DwY+CSL01c7+qoofmZCzl81PWHslWyeEmva6G3Aa2puvb7HMhQ6Yw7SFYocWXVnF4VgNmDTjOjY/2yvS09yZ5I7RxKWHdEH/PJz5lwct878dZpoaXNVQfFBS3lANeRtbEvJnNeM1KmsgAiuvdcQ0r0NLFVdnv04PWHQZj3UVk5D3BAMPsLXSiYUUMaPRft4SKzZvK/VxUoDcZ+ywkomqh3qrIvBwNY1756939uRaowqlxfu2+ujX5UNYrlhBHy3kvi8Deu0D9ZXB8+Q5ZaweW3gsP9z+VMBvRPmydn9o1u+5oPTVzbp8pwiBbqcjaLOMNeWfMqL0yxdWU6oAhmyK1n+wbKK+GTaifW4Kg+nid1FJWzojbh6oV9a8Tz8N7kMnc2ClzjVuEsW8XdSgp06SkYu+5fKiCVdktcJiLFWQE3vZRunEqdLIT24hISqnJrr6FIjzTEs/nvuZ62KyhPjMaHedAIs95v5EW6vKjvKWi/LaMAvVnhJefTipQj1NvLu4xT0jigrDHmLzBopsizsam61LYbRNir4SdBNO6072hvvtG3fE7PWk8XTOflFlzw873FdVGLg+x+CdXv2lbi1DJ1cbSEzqeol6ac8fr/aR4I5fJwRI9OvD9zeREsFuQofTqmc4qYqx2UKFXvLAzrBmfhbPM7B7J6GxXKopLcRE+o0n5GxBzCGgndEkVM+/XqzGHn50rhK1XBFVpfTkcL+d3KwnYvdK7YFOaAZ0ZV/MIjgCPYf/BVGV691ehwZTzGy6D0vnd+OfwMpQ8C9IJo7vKpUuXB+1dHzJ1aE+nVnHOJdaPih1x/Oixfs/htt97vxzshWgG/jM4y9/aJrkI/sAhM7vAEsoy7kARx+w4gxQTAkDhWKMak2slCjGfzgapuUBXH+kc2qfEablw+MHYNO+aXv8WPzc7FUzZ/1Xa3dE7jI6RLK3kfRqUbogM6YIPIF1u06LOK1+GCP3KEq3+E1q9+TTIscVLgif2nlHvL/MI9dYGBgsmNskgBetl1yrn7OQCSt/qGEkzmEr8uuLiUiVooKRVYvwznhtjRG8rNvGPYHwxjA4uJ/IZV2xLRqlNdq6F+27lY7UrTLtdeHGo9jYBZar39Jjdba5f3A1GCkveJCI109FUV0Tm3Odva//2UPuIz8tTDFZ3U84YfOtA2IpdTf69snS/czfK1FFWYWCN4+SHPE0iJGx5ik+JCq25rYQ0uet7NfuatcKjEHtE4Ju63b1n15y+xBiRGgdrNPmoQ9HKeVacJO0P1pYPnE5rjXTFxf8nFHfXfPzvWtAJr/Zw27QVjjSqGE8G7O8mAb0ESX4R/y0JIPvb/RHaAodq9IzC6CPm8a1DjkNrI4pSGqR33rFDSC2L84Vsg0SGJgNiEvSTOgdkum08wOXOoSnBOWkqo8ndPruIDjWzmIiMlnzEn3sQPEzXxqTEii8I3mlQiu8QaT39VNBfCiau/UIXfWhrFdd85rJhTrrZdIXwKgqBH1cJjdqU4wo7lugMRtnZtIti/hbGRpSn4kT3RChnKlo96X5V0E7S68NdSSXsWea1MSLOGOPJQFikT3KzKKWQ9ktu+7i9SUNRc8yEv1AzhrxX6yo4YO4eh50UXQq4Jh7/dOVp1Jnw0GR8uPnTRle9s49sBhzpQkv5PJZLL/mb9RWYF/0tgrFMLq9psPi9UyXNJ493tCZSpFdXT1u1fZc4bkF4BiEqsqqiasKUYoIy8qHsYXVI/15d53iXw//o3yz+fHCfoACaIPPxdA9hteTdRUXcnTMZpj58PjTK2wz62gaQUDOrPOStoK6qwGjtGX+If4CzZZHs58nmFKKqjg1+LedQCvOdCjKGbz10GxsxXF+PE9y7vlueVr/Xmu09Oa2lZteCuXKhmOC0reoxb8i+t25dNlC8euHxzv22GkFzhDI9T0oMRW+rW6oJfXEB52S3HyClbIGyfNpfdzf8nFU/mde9ZxSmnEtDNrFEzKOOwZd/bneEZznCRq/xyI+Xr7Qj7Wy39LCbxB5epoIOrlF+TgmFSnbw/cVOD6NevNKOrNn432F7W1wX/SvOVfkUIJxk4DWXzwLuA3B3GKTIw8RtMUSB4klJD5WUUQ6OVs2/iXMH0aM93R9ThU5yLqbwp54VyFABFamh8bQhZnoApxfpoP4YLo3SreRv4i2JO91l6Tt6dhlJ41bP7vcCCFP7EwKODJVwWpEYqzNCNbBe/YE3dK3zekQ3y5CIlfqqGcmHFu0EZNsng6PbHru4orvNozFeltIuXQ2nXvgfFARhspd50s1T416HjZifNc83zwkQxyZbrpBqEYta9W7klqbC/xaVvsUkDc4+eLd/LOPStXBAVuX0AsCuve9shWpmqVWOPUtwsmuYpD6cTS53/J1VN70+CBWNK74Mdz1uB9N6blwO6pptCBxyT6QrM9nMOw8ZOnGY5mOp0/EWXsZWvQcd3IBwi5EyLMg9kvDaSedghp2BkVp/TiCw7ZhsmI0rHjkFkXxaQZ3hHP7pkNHTdcYj4WZEpcX1aQk2SsLPA0Z3XRITiwRZVQdu+/WX0UVNY9z5KLMTgG70X+FxR550fPrygSfGg+/7S+/OSyZxM8p1QVXjEWqWIDmV3lsKW6IklTIUnFDnj1F01XwMAN0xxYAhbT51YwrW9/zLRdZ4+bkYkTDk8k4Fk5ZbuLaGNANeLpC7UXEN1jFgo9YWlaVg6UdP4eWOFclZPY5DhGRo6Icpomi7xsOwilCffjTJAvr6Hke4/bUnp4HpbPl9Xwq2eaM58WzGitQN9BtgW0ouBYqu8oDbORcwBc/J2HnXQwBZHNgIZGWjkD15D7WzHuPt5laTsTT4ebuohlBG7wBCK2EMw9rpb099SF7iGdcVPAmpDnQq/ELczJjwtLzxq59kSKMKb8YFnq8+jUkjgEprf057cV6ddI+dmBxD4h4+SdxHCWVXg2jmaUfR/eGVA6t4VuwzCGMNkHQRTYL6Xy0g8NDyHcvw0Jhhv45YEd+HE+LhwKYe+0CZh/5FZVZpmDe+9FJIhikTi4xLBOG/NjXazSuSHHQKU5GwavDbjVAQ+qsAhfB/Xphq20VCpXEAXTWJJJCmmZ7VN11uHqpl0a/O4VfxVAluR9Rr4X90JpiF25piezdrAFoo16I70VsLkKKH0b2uJkNdTK/FUVL4IbTB6KHcLY/UdR0Ifr+FtYVY1HvB/cccwf2b18CyIr0GajJwiqDz4MP0NfUF+QpRba6VUXrgdocl0xwVPAs5gYJ+FI1xXpr+EVsIAQTRyS/TZUOuPvT5fjysWy+ibzt4pi13BLPrVY/db2lxfjA7YllFGckukRExHMuGdQrcZ7emHOfIpirTxbhbJUqSDGdzTRI6EmXEowpxy/5QeRtPANWIP7BQGOLqhE29QyCEUuXacGXpkxsLKfvLylg2GOxWqbD82vb0h3Elvteiccj+ArjFgflSIGAv1qZTgblkMdhTtg9ur4H004XrqivEr0Ms3qIscYVaBdskNH1G35lZfu028I8E5+xxJTasWD6hmKu4627EjFCTt/eY6u5GabMqHOoI9j1D124/pTIMlwGLjykjRtsvwJw6JvwvKe8RlrvN+OF9s3tZAU+x094bjuyriWnWPc8Ir9sWX6Y/FxpbdPFlUOSXQVah7R2hQDfc8fSot8uC79MOieHGmBuNRwRgCiXbW1TsQOm8F0HJCo29mwph7gJT0V6CBx/qAGhj5+lUxi5zeNuRrFM9MC5IHUusGsyQFPFQtvAmuaOa2VinLANmeTyTkxujW45n/2xtreIRS9fbTbu+bXpvAiXz4vp/cIcP/kA09WPQuqEAjMJcxGh5EZVNKKxnRwT6GKlnueGl2HuCmd9gO3tHFYyzPQlmv88uFe+lfTsiwN3FREqWjFmM6IVM46XpozPKd4UkCvD9teEkx2JhGNVizub8puTCpRxGCsuoR02PQsMGUn9uP7MUsom4+HGhp8sl2CB4lTMrxX1tVpMcbiRSHUFH1AjDLDXPx3go6At75IKKygSPSCiX2xNlsIrbONk8fIr4/gWtctliYuZVjICb6UriiOsb2/yvbWmgOaBrIfgYl6bJjXXzAEdrBR4pfNFiU0wE7pCUtupU0J0loQhhohU4BQ/0ESH0CcqBnMHky3IO/9c0dqqtyDpR8po4K7REqLMWL8COmIAPvXGebfshdpZMWGZxzUrSlksNjRDbxv0vV843lDu7ABBOP15AkAS/7ygIaz/7IBtz1UWglpukwqkZR3zoYhVNLFR0kMizrlaXIsNhp7mvq+kv7e+uHxY9Odydn4A2P46KPJ08YQLUs8EYBhRAjpqjyg9b2QKhoEiGfgp3H96/JEfIiv3xLzYNNCPaeyOCXIoqRWBqqACeZUsYR2JG5JI1ctwecJKGGrHwPiRYhdTUtpsEwy/BLF1W0V2pP8tKyrPunjOJFpBSXvYAFSbRuW3Vh+iY6DuaDxvfsnDhn+L20JE/oHJWcaXVMj9X2ZZL+MjqBO1It0hwR0b+zIpCzyFpF2+WYPl4s2yZRcA1VZTXAQJhxmuHNdoTErtfLYesJ7kr0mU9MrgrbgGO1KNSodlAJ7PfG+MWg7IkzgGBDnIBYZgRiXQyfMV/OD1QzG+ympoki+XqjOmxb9ciR5AjrI+zFZb9tonFhwmgQxHOUYRcxLNh9I2w/xXjvWJJaNGR2e69nJUnw/y+F8EP0AjSh9PbvLCXph3XpZrUUUjd0wgoZ4EePoAKF5wYDHo0uB91jSPTtTq7dv/JYtIgqgdKn7KSMDyS3A9lRiqlCuJGibqFEXGSYVEAey9duEyxarZDxbRcxIbvHzYlLjgh+bf0pgX5zZ6JDRngwFRlbv/1soi+/va89dTIzTmfG5Lw3jzOlDjofdsaFXsYZlW5teakiM7iIn9uvUn5GcXIcvuw6inX1gOsXKAcECX8KfKh7SP6a69b2Cfu3YzzY6h0JnCcEbcsxYpXluDXqKHS0YZhPDr6sUb9kNx0sTkoRfcC+TW+l//OwgEzcYGfNnZ0TMUbAGtwOPmLQ1yc1CB6U1EYVKj+fltaNZBmkCdWy5TEB7OdHym54boemaB3MH5mdPeFPI2zXAMoo8lQKCMwa25kHjJG+kTZk9ImKCOXOe4fWftgN0XbpEYC/qi1ZdyuzIXipkO5aGlCg2Nas6OyPfz1xLyzBmb9yUnjnOO6VZS7JomCtTb8NpUAcDQYngu6Q7UJ1srQuGK0THvzzWpz7VZyLW2III+vRJh6j7gdRNmk7lw1AylnOMYZ7ZS76DT0hdrL7OVZax9hpisLpaY+kveBAfpA2OUO8aFWdhSl4DdNKsAdOe0/UnXi5ix6QMxfRXbbsmjJC21RvPiufw4l7R3kliDw6Zt5C/ZknZbwY2rMTNG7q2D6WHbznf9lWEscBOJX8+T+9S3Qhe9CBdIyFUYEPZjSMg6/dUvadBRsx9omb579judUS69YTHNfv9z6Z8s489W0VqVrFFyg39fQdDlcV64QvYlb/YdvSW4IrdJmEbMK5iAtRs+sDq4CTFNAebSFslCiYHgtZvkET8BNyEEAQJfnlur6cgAeBi0WxuiCU7/QtY3VOo5viySuAbG/WC62CMQhsyhpiz2G/MwVfS3QKVRD3tvg2+wBhSXtk0dDa++CNvVH3wHEPSMjARtdncRmpA4YJSHYKXbumxsCn5cMSd2OA44XrquTBL3L717TUg+x4lj0kffjmzZjL2dQVyWCDsnqWm6CEioifRqo98hJW4Hc5DQlnyUz7/jnl3A2ay5lIchUGhrvReiw5AgvxujR/EBxGsHri3h8eirz7APfNZZrdLknT61q42x2LVu5uDB5mDmfjdjwKIU3KmIPrtuYNSdRRCJT462nMpy9nVI9xYP1wlwNgYAUANCufbsA0yvB/Di8bIicZmS5G7n+fxykHTJTNvZL3jlDihye6nJ9oFzkPRry2fGls7BDvKVIz/qxjgfJecvm5cTnN4uxjPBgQHBCBDRsLU3dbwT3IC1d4MRszXFHcgUfYKujUrNWun5gh/z5YDf55rTC8G4CTJu1FiceZXJLGqoWgJ9RYyKjMA5fUBqliRB1YYU5uk74dVWMbIBOeBi+g+0J+kwxYygY0HjrMvLqeN+D4IuCcTCG3wx7JF7FFrrd3rNvh6EKb0t557AdnLkL5z6AbJh7Zui8Aq190kFlq3qDOEqbJyPoDhMKiwox6X4nboP1i7sUPmwFrpoLSb9x52Ibqb+vP7rYqSZ1LCfXiTOt2HridWdsxbIXj8GV8sSwXKIBakemgU86EMAF+i6M9qsWH8/mUlVjWV1hDuPaQF3sT/oc5l/tGaMruXpU3h0FseO+qNeZgP5GwI1/5RUSg73EBCmxTuKpKpVKbuxs6lFI0shyXOf04ehHphSGmzZyGB8WyOm4Q5V4mmUHSuCN5650QuWzBjO5GvwuvoZ2qQ6amptyCjAapaBw6SjheGFkYjaQ5f7W6Nb/2nVff+TtfDLPjH8m95Ju4924izZZYVCs9f5l9Hnuru9ul1ZlJGKi1WmIF/usDArxAGfd9V4MR21C9IcQCOg0qxMxnQcFOX/cl5zujGQR/XbSlR0BUgT5R54ULYGvA6zrGDq3ecHoM7rPTK/TiVsmOOYs1OaYL1ydQFfV0DP5EorU9Hj0qHJ67WWBWaSJF22zywF7ue/KmoTutw6SYH+xXh52NFvhS41eA63fTKZLeFru79az1avWwWGeq/pc26IklY8uVtBdv9Ok51hf8Av2a3fyvsoeOjLNnxWuxgKnszx5Ke38+CSfesKIBO/9rrMuG6EIokJU2emQpdhh+BZH/qK9UnBmPH1mWGSR058LjPau+T2dpNi84k0Lec97fAl7jHNySGj5JjdJPT1LkLESQURNsyCAMKtoxQQHX07AjiX4woQG7f47p7aHIt7sZBs7Ev09yymOg9KTDt3l42EMTycVVDL5swrQCTi1P9i7fvBT57hevx01GxBa9hMxj/N2mqn45HajXW/jbHG0RTTG0JYfcYfR0PS9I1xqE8PPzmDV8//o/EnZ/V3eWNsVVTn2Pab1RlenepaSlc9mvW4F4hUE/Mb9GnnxpSZifMSXt66Z6i+QjbEmMgDOF/IjPeBWvXEgWLP+8yqCWeKTbYmrKCZr8F6iyDLH80+Yi/4WIJYydcykE9dy7CA1yPOTbegB9wvV4mxDBJPE0uNO/Zd8gqQZ3WnruGNp3yakP8MfKViRJn2QgZIJ9woSNARdER6FA4EoTH5QR8gf+HXz1FOEV7Z3Ufb5Oed4JWkC0AtuHDLksVarH7HOvrzZ6xcXDZRBa0ycX5dPoC/Tf6rTf7jY7iU8TIfGuxL/OR0oufLTKtukn48rhQ59tvawiXTwNvrsSCPqhgFoSB8d3JsCi85RKySsa2i9D15bLqUN1A+sag1pKNmtQnNT2BKwAfoIBE0hO5558dHaCDPaD2T00NQt6gccZSm734N0HVDpnMYXzlFCx90j1fmBp9NtcrvOc/qb2mDeolQs5fsRl8tS9y1chVu1wdyYdLxGiDMrCiX8aWgBw5qpBQAVCesvpxG0TwVq0BaUaPTEZF+5zfJ/6F/e33R1jRanbe2qU2q42YoREvByVcm7ShOe/y6A4m0rvPK5KbR4aJM+qPkzr+VcdVuTYpuPfmIuEP2/P7zy2lKut95yQzDLQZVKfPyAksyX/Oq92+e3IDCfYBjmFAvDmHKkygAAp3TY1polHnJefGPVywbnCN/noYFNzenIvXuCPMlI9AuprRFNNtfkl6vFqdKU7xEvtX1Tk/r90hAkaoRaiTzlioivsCTYhJ9CztMYcxuwD5pez6k/kLs2Vk/wrkWlZs4ZApFye29Q4N+nOTuE7z3YdxPqmhMGsTTbOlRUdIoguNSoGNe5h41On4c2je/sQloPSATS/qSeT6IeqJ24UztZMuhaH42W4Va1tky74qga4UYLtia4eImCxarbWdPARSplDNHH+WKTNPxOn3CfXqIIsgvFo4h/ZPG/q7Eh64JvFByNgneHhpaITzYNUPetLEcIYhHm1g6uoRogQKWGVRYPNGOjS7MCowEdL0Kmn1LyTVLfyQgYlDmUDPloTom2Kn5xfdjevdbgajEZaZsjOP0th1ZCnkIbbl7eG+b3NeQd3iZHzWVQbrh2yxzbG4rcE1HuLgelIjkgaPufODt0LZx/AVo/WRn9jLo9NSNZ75JALrRm7j2t+xZP2Y9Hu0bdQetbZWnOVAqX8QMw9pEIRvdbDwABn3kbXX7o+s56EqFhB+Y+g8oOC5u9QFK4qJMgGxb/YS+LPVDliBzccmpGfak5bqTjJrPYWXAb1E0rS7JJyGAZULomSJN1/KyP9Q4gQ1ApVm1Sg4uWWmXLEZleiSLVsrrthlD3tgDmZPJHsYEn+RsDwlNT1F3JcOSML4waZCX6Xjv7UjQrHMlC8dyofQHI1PU9Xv7avCnRw54HWYuN+qAgOsXKLMD9NPlIUTSqZ7SN+cO419U410x5W6eMSSGbIyp5A/eiKN4fpMyBWb8e+xPnLteAaoMztuIZxldRShMZK/270hz5xaPTvae0Zs3gh3VioUrKgdCrACMuEejilot1hrIj9o5KArSHOmCHyjhISmWQ6rAd7/M0MM9vlk1a5Nma3WE34muALVKpUHfPfIDzTb5trtrXuZmyi58eUpgEFVwcCMW9tsR6pOtq+QLAE70d5U4i5DPH3P8p9hZuDEPCO5JVnCUzbezHeSovPtUH7bxcsCC1eycjqxbWdjT94NwjtVxS57oRmWRGcdcjbQdXPjn1ItQvePGR0WoZNS2hk9XwrMdIGpaTcMfR/kNBzwVJFIH+5m1ztJqp6I/SiajhzebZcIp9dIeyw0ES3gPc/YGN8dcrl6nomPLdvm8a5PUWvypK2HJAAAAAAAANT/ZnsCACEBBgAAAOt4/PPgf/8b5F0AAGmsKTjGU4NKrz9u0ZTw3f1N3QOe4wBKPloBTvlBgzd1uIN0siJvzJ1URT73wDRPvhIDZOM/EVcSKdSB+OmsQCTCf62PU+E2OngVHornFTvvtEMrnqsJpdTitpVPo/idmz/2zaIs3SMMJH9b6bPZqhiz1o/IzIW/59uGoBKlHeArzlxpi7JXb5UV2CYKAyaf84u39gXhksSkY/IVVVZYhRhCgIcBdtH5aQnAjlTd0AbaaL2Psj9l77Neqku8aqgG+c+hxhmeGFOigXwRHfDQTTRws1dMgwzglaC5a2UACcEWoS3krWRJFEWbLl24Q4XH7Lv87Lr3iVpSbJX35W6BcD0C9DAuzkTWgX5ZdW9gR/8KbhFkJC4XYKAx21HmevO44RB5Mb/rhKvIJBF0orTrU4EehoK774NDp1yFebSHZYwW9N4FbTPit1sn18ssyZpVSi8KomBJ8cqrad+QikRVRHIbbwClvs68kNDM2PCSnMyexTUXo6pykSjn/Vg2Uc6ioyGzeqJEXTVRuOgN2KQ0A2OmE0WjRAlknBUQWzeN8RUDJtYg8O04TP0MQjlAPvQbp0lc/k0RP+HwlH+U2OrMlqGqedHG+keSEsL7PMavKKTKmpcYSLjIM8rDWbULbt5MS4fULSq25deXKSoYmXCgv1yMNjmcZUii+YDyfp3l2v4GzHIgL+4Affd6PPE7tAwmA3M+CFRvRdn+ifDutHKONJ4KeSGtQJQbyruPrRZ4CxHI4lft+rQAjPfGOEmZ1q8ijNlphOo8SuqH++N8gV6lwN5kOq7uJB1ZVltx2W8n2LXgz6VRapDDWMsopI0Bk06NT0CzzAl1eBU2io0W8p64dsb0F5xeinTocCvZKiBnnh3dxJViYPB1qUR/iiZ22fu8JjmamgutHGmgvzIwxyQ9/E34fA39MGnWdg22pOFImmwfInZh0IcGpnSdsTSAlJf6RnMoE+M3vIKdu2mASe/4ZMJQjpRMD13zbPZdLQW5oZGARtYyFKAr/aZx+1pdH5VDBD5C/ldaO9FRe17eniaSYiWwLAUB4GXT+V82tQzHo0Je+37RzFfTBcpYbBWyx7ZoWyw9VQENLw0jEMwvupmXEJkxqasY9pj2/kk26P9POJdI8xLT8UXwD94MbPUX11DEOEtK5huan0lIwpB8ccw2V3VwAWqrtDQJzo4537l3UwCdVy0Aq0Nt/y6t8YkVK4Rto9bkX8M0GkC6bDzEB7vyV09VD8Tgl4fiR9z4xIhVveXmcIMoXpJXV66+6bn913p/p8+K7iicMn3xatRH8SWXnAMFAWQU6mUdllAr7ytpwlWqNaGL75+jputPOoS/t0Sr5Y2ki10h2dZmNl/2BVXJgMInzFfbb1yDWdz6CsbBYrRZVqHMmEXHM/uSEf0xSBp+NqWm9i3cgNx2A1RIzEMIfChKFiunmf2ExyF1D+Ogsxh5Iu2aiy9yWdEt4+6IGN2ea4oxdw6lYMfcHv/uRAWm8CcyL9JAFZom+d/uzmVvKfX9f+9sRA0NYpIAaGOrV5ZqMlrszUXXkE1kz+1yb0fCmL7WuywLLuKPGFnBJzn9HIyXdp1I7z+dioN6q361u+DvVRKnFLTFrlvSWsBaNPkd9QWmdfpqTv52QSeZmp2amQGHnOXWwD7Sdqm+/mfGY11bsygmOCC7+t8Q4cnLLE2Q2g98BV5VbVx36FB8tFcI2ZcJ21j4AkiLWGbQCPAUKpYFqM2BLVFsz2FmRd2Mdo7anHhxEn1Cr9f2mYaSu9WRHRsH6ABUHfT3tCyQ8wyFhQLmFd/SQ49LtRzmPBnK7oeu50HRB5zjgi+5XpjETtIlxCqOjKiZzIMXLMWaaPOJ6LpwTkHaxrc55ayTnNv9khSwH3rGW17tVovHK25Ip1C+NfL6NleKRbrCibubAV81o7Mi7yd9fudlxkGyauPZlR/0sF3mnVVoYHkNDJu/FbYabFdVyO40nXEzWpmVcLBCHkqVTTEcpZDPv3PDDvnKXMp9SDYAXsQIluA9wfBFh/KNX3TE5MGJAX99WZP6NypTUV0x9lM6wcs4v3mOcV+OATkNKnC8JI0q4hFkN6cqMo1jGJ8mBUWTGhR3RhjVYm6+tpOyjh8r/lEH1bFyVwI9pySSaad1hnCPPYfrmXvZnLvNlJRSf0eZfnvXKfvAi9/0rm+B4bpcjqAXx9iWDY0OE0yqUiqVNH5nkb2/sZKV7l0vftgC2VEu/MksB2McdoaH6E6FEr3wl1sR+ieQMMpT/RAMPJbUPJ1zdy3Aju961ZE2qtWiPj40UqvEIjUnLZcypIbAsaFFIlHBOcZIu/SNsl8tEHCU4gGk13u/SDjzh61wJ2S411swkdK98GEy2LKUcBsxJTAaG7nX0bL3OMX6rO2NYBvLhIuTnClgIA6/Zf1Ta0Zqm9CM55bXf5ie5KUwF4SCTav9xXV8ACn9ow8kZr/LjxzgEBI6zsFRVgEHli5+rIOctdL51No9UVPfFQavf6BRZpxsVfFonXBezBVIBhucD/GB0RePCxJUNnBRpLyCXsyVJHIyjwoUsjzyXa/Bn6kKeGsN3g6UztQjJ8X4eZOVOoEvXYQKQvXTb+aI7BKhVEKrCNuP0d0V0StAO9YzwyPgovu8ESB5bWRiqjVH3dkLbH5hEbedKDPXXShE+tDQfrkEi96kIB5rKIjAH4eJfarLphAh7Z4MbKbthgQwP2oXybqGxhh9QXllZhnvnS/noXwTI7rU7GMBhS6+zMBIIgO3EJeeVf19WtKUFuGGSuG3wgFFGzgaYUC6ymstpTqkn6hiYQfM2Y+x0k8ZuJjvnLjCa9aUBAqaWYVKWF1ckr2a93cEb3FOzsxcd8+4Tuzd2sBE02hkvXs+jW7JFtWx0dEujInQjaxP4ihL5knQCxTuDjv1ObjIgEByz8egU4UhuFvTpJ0E+4PSW0YNIccgv39VUTSl0ddUb7/gwA6KTfzPLqxZAc/DQjk19uHZXORnGdZKlzt9AYxfoOy+Rj/zxCRFX4Vk9tRzyBAM7S+mV1udK42WV9pjoKrex53vWogyuoleTP/H/g9svS9lfDIcDHjqmuS9dgT7ea4QpQUjnxZbp+c8htvJaghDLkdFt6h/Q3OdXff9Bg5oJb00MsRU+5G6k71c8rM4oRdcLen8BU2p8Jdx4y0XbGCIMYj9Vvi7OEy2BARgWQepQtsS5woBXZwCNfNmFNmSKcAZDPjCWjpGjiIJvXxHGRtXcD/xDoCJsr8uSlkFicCeXCMBx8qJlh6Xho77hAXdaHhwo4qPdeyfGWIKgOH8at66KHW4FixvyJTZL7CEWguCj++ZxWpapp1t2CXC+KVl9WqPI3/VW/i4A2RIeWKhU4Gn2RmVgH4ScwdnE2k+kCNKqYzHF2d5qpUB23h4GDoiJtDqP05bLl4Wz7zExIWLimOsjqMt/hMLCloDkpgR5AchVTqPFb6WuGW5DvJuiavpI87YdQR1VAD4w+nyugXHfVqO9BLURdcSc4CACG+T5MzLn+KtEhGwV2tvHXWKSCjDtocmBWkm1nPc6FR5xUSEA5NLtwDu6YJF/LnfYgozBepamBi5U188vxIOFZ/YfNmqTpgxew6/AVR1iyXzF/RImSThKXJLPK9omgHaECAleB8jXVivgu/7wYv4MQk+HE9vn67I4vqayYYe2AizwKFh677fjsOn3W6QYyJFlofLGmqorlm/08WRbqr5XtETiR12N9tEUjapaqPaaKgY7dekFYZ/VRKPnX+gTnlM2owO05DSDiUgpDMUbzDlYJbpppxiw2986POeZuk77fLwIGAls7YnZLnuvkjtXZif2D/qjKdevwgm10dJvuOQ4vE4ySfL/kozQoXPRVe8aDrD53YEXlKqNGTbMBFC1i9qxJJ/yBAtKiIqIc5SmykKjEs3b4xzi1dLW0Q13u1+MXzlgNakQG2npFQj/FTCefX/pJ7YeeNmQ4HlYXLQowre48AVp2OUlRizd/cQI+PhkFY49HRxCJLLaT4Rl2stHhQJ3N1TI/WI+SWwMlQQR5L1Ycm619HwmaRuH8hojk6uil36cmZANHM2hcVS0E9snnpZiBSjdCFQvWs5g4YBsoVRjy5/4cvXmbE2TnAhsvDJmT3Up/WREZAPYtHsRktfi7WytqaScNfUEx2bWw5LYoQYeQyGRSXCq4HK0+nISTs25A9rDYdW59M82cri57uldrBcAJPEuMTT37bzFz952ZYrc0fNqKEYX8MvuOdUvs7aJgC9qBJG4KtcS4Fhz4wSgOit4sjwxXnZcKSUpf8osW8qoDog3K30nOVaT7JJ9LgPGVt85aQaJVcAPVO2bxqFyVwT/LUf8y4tWTrw+q//x7WphRe40XNIAEbdoo6yZiWBsEsNZKARqXQs/nEKgIgOoeE3M31X1YKLx07TwvWaIrDb5I9xAfi8FvoA7zx4Sbre4nE7OQHt2VzRGq7Cf+L16K4Kx6upELgIc1GF3I/pXtfvnJUCpEloo4fr0Dq2UoZ8l4fJ+n87uHNKwroGcmTlNYo43oh/INby4k05X69waaLRq/AqvaCix8XAp6ANWR1QeB1xQZwhaoYM0ERsaf4GWVnrITmUsC5UTl5izVarrlpS/oK+fyqpNxSljcq59MrqpHGVqjEDdDKpu7OFJvt8M2RL756In448dOX3UeM0d73kvKoJdYnpqrRcijWGfVha8GCITzuPtjwcnMq6nY3iHR7VgQInkeBZbsfo8vSdRxtFs6UlQp7hCO2ZN/UeNUpFaCRCgMfDBZaLnRlpQ4sLF86T0ZsaDBfZn/rVttFyuiRZVoijFGixMeHNnPPEWd7sbtb/qmXoGZUqhEbe6AhFmd++BB4Nb/CM65PX0BuCxILg3kBSwsBUCRpYkecWNg9H5oDfLcj5qo65EpPsQwwef+IHWI6wPI1kw3FJzqjg+LbIcwo7ClcYh541tCyrUH5WPR5BJ5qnKcGQEfNmnUdovXdA33PXxFpvMNopYbdd/Tk0UJOowfeb+NHLACvHIlmkES/kjOtZk+cj8xA65jEiX3Yk3rFYaXcv1DjuzQ1RE+jngPrQftH7pNwjZ5b4QLhZjG5q4CouQpy9qdrw5+XvWaZEy0H9QxUWmDxDYw2hkKRyjMKzkg/NoqFWVGvC9WrArFPlPxUsHGvNoABGL5UaxsrEOn55U3W0JzEcN2gT/UObXbw3psIp2MhNsFjdWZNX/uvz/IIol+m9M6zDHzdTXczz6I4B8ki8iLhx+Ou8x/yWCUb8CKGTKWv1tMQ9LMeJ5c80KFlZPKoVTfXZv/+EM3owuxTm7Zm66hdNIFKz/t2a6AbDZ5gx2Jr0bLpsp5Pr/UoIoRdBDB8f9gyDEFDYeecIPxBo5sGAq5ufAIgD14EIrZ5FNJujI07YKo7JpLR8IZNHLxor9hSin130WSYFxJaDEjYwvnSwH5tlji5Bj3k7FcVgYlw3ZVSMiBzZ8u8gkIhZK4SYDvDH+I5/Xx18tSFw+p7PyXhJwe3cckm1zb5F96tCw7NlzjqNlRIKGLSWmIlNs6S2Gd9fCBZVPWDbeLn1kU2fxPPtlPelrSIR04/rWtAAt9VPH+XwsCwOH6xvyNshz0wfB0+K1wKeNufYvDv/M8h2/JNPVYsCpZXjmDqYM49OVe4gU85I8wSKPFELmIISk7R0NxsOsSXR5zE8uHfENd4R/M2tIj9GcFq3EGoGPWsIyzW7VWndDNmOCxGKdIJxsJtwhVXH7GtAGq1TpTzi7Ex4aoUwqZY1R92BVKv2ZTH17x0Hkmx17jQfPmiYC7482TVDRA5Y9trxrtPKDM85caYhMgTCF994vbNfqcyM7qpQIvNelKe0DS1rnYtnBlk5liZIJNBXe8qPt/QGTvXhOESxv/WJU8XYVBe9mHwyODy/lMQC9mGh5bkU3wevcZWobX/5pmLSuaE3iYpbQzR0itnEYPx+XQHUjrztokhVN4XegRZrtbCmewgOxn+ZQysDTUD+UYVnDQN4FrUjsEGZPbmuoh5IhwH1jlQ4Dk+aVuE9F2MALlSjskZMyIAzcNluX9J0N5g8RMogg0YICqRFe94bhsOLclR5rSKIKGj9jYsCPJlw56PKr2+XvKJ0t4o1hFJ79Xrvc/KgtZ6XqKDTxW7cuTEUwdllsVJo4BEQU4Aw9UYYv1fVJsKj0NOg9i1KPNelckhRHYUfwcY5jIoAH81+CE7PuB8sZwaHXNDiyOCQ+EPdhM/tlIGmbTwCr2KcP+nLsmLKfnwFXAatSusY7HWcxr0Ey6YD6c4bKq+Os8S+GAmbUuDyPDO9rycakJhrgRo3tUBQgYb6meUWSJIZvlqhyJrvmnbYFBshlCqcANsaXI3k9h4C1E9CmRPZY3DUsw5NsdIchkaVFcCE0r2SWBHouqa50Ss6Z7IYSHaw8v/bGne21XLoA2UdEzwDB2Z31uERzIYheylgouAERJ55ZMouWVVODozEVejKLAQRlkNG+2rDPYNicfHN6l7/+eBuBV6A/j1gZ1w1R8pFeFGKMFzT79Qpm+HfUpKWmeVYpXuR7LUrGha3pKscpPho2JKemBa/NB0et/EmOdAZsQRgA+ZiWrUmWSAHVALUX9z+V9q7XszynX6B8itvNgbU/ve9rmCkIsEHfJeSvNCWVL4dQWq1yCGOpfc0jQdo1+m5rJGLRsqFi85qS+k3CVVbQSpVjKZ4CWSBHkka7e2Ri9I1r6pZwj0ZEVZmYme/xv9ZiCPWxLoZGlsLIsYMISjtyGeed4wDmocHuD6QzRgurJANJy2yUTW3a/t4a6ng+oxnAgiDS4aQU+fMSEEv8Dx20o4NTK6ikSL481mEwt6SEc9J4KZYIl70l1DW+QKOdBYYHl1p4Uy9Il6dPer1BNAEO94rSGm5F4+hQEqFNyHvGrIpMgVnXC++7pKRgKo3nLg15Mr52eWQLpq9wecy4sAu14o52wTJFypGLbAh9xuFDQRd5ghMV02DI04jJNtIptUumcVTdXmqCQNA6Ud884oZ2GrMlxX6xlsTDnCkKqzniEhIyCHGNp6ooxhSvO53hMzYTzlZ0wudFdZZ50uD6ERNZXMxPYI/BIlZgeGFZtn04bK/LpzMyuxf9hXaSrMH2iVUZ1HYLw0P0GXbkp7T/MT3WsP+I9oQGOqXyUBAhhOAyzHHTkFafUIGcGg+KLQ9XrUH1v/LzhKcsTdtySdnqwGlSuOKxLfDyxGh0lRFPFgbNJwUBrU1GDIokRkwDxpUTPAu0pM/fbvh76FjQFvtMnE4on8jgV8h8MCn+z3lccKyqihFybRBvRW268kL3i/71C7lUZ3JoJih3bY/Lxp+Fcc6xagGnPDdM4s+ey1h7pPXnsiZBncmHa9BjhkTNaFd1LXMPKvMBvrnpQ9xoC16tbag+oEYKUxystU1EReQ45k+GKapoIApde/ag+RizT+8/V/BTofK6I0fVLqTl17Qsm/xwjzwXL6lUh9eiMyCT7T44+ET9W7ZjKuTosV4SWDx7OujNjuDU6CEpeLG/RSs1ptLazvxr2Enzv/9KIH2uPu4uqCxCN4CD/pVsJZxKzLZ+mY95olnmbQybqmVQh9o5+gFpxNRV7D4s57g21suVNmu4cHyrCwdSUTBQpCAwPUW7nEOMF8mhtwLvgPodpS7lg4yCwAtq0m7im8TwVU9kkLls4DEsffDbK4l5fW/zVr7pgFn/G+2fmagyUPqBpaReDx0N7Mwda0RaGhdWStWHmrRX0sa/6S6reLgxlLpG0pbWdSeiY8izoS/SWdAWF3FSqN1gqBN71dLMqBfYRi0aJwkns6I+uYTbY3gqrMb0YXJzNUafkuGUjmfYUOt6HAKr10P8K4K1yeyfGg/99ruBnJpDtyzkharzPlzlCRsen2weoz6ss50MR4gaZAA9eEx0/H52TPIA3g4jNuV3iM+7eUReZae/F/Qcp6Myi6PPSV0sfMJrwqdtIHQ5TixTf4PhTbpr9VrzKKrX6osztqAe3qpvHXkFioikAvQIuV1M6qz0doCyYG9zG2N/E8i9HAUmv7qPkYt2tYNXs+UEvj8XdYqt0tiOqG2PVmdDeGc48z0nNvYJCuxYOBSUjEMvkcmz87Pq+3zP4w08J3LMHiN1nhIr5Y7f33yqP0F/sO6UT3EYYT+oMqgu7/JTfZRhc4OZ0grNCGeobnQQ4Kek7dWrmRYyEDq4UVSSRWGp+KTHaj6UrqkZk/ADoMme4fknPJlWAre8SJT5ijM4e5UqsPsRhaJHUefYDQCimTQh91SG6wucD8FwRhuzeQNrL+MqLvaksMgZ3y2cDnK/hRJCuuitpqoRpe+u95v9FEdzPtDZQsSxIlPL1k6jmvkp766D6W/DYDmajc5SacfAvoIIAuS9yBJbH8NM3rTeIsefQcwGZUPLorUDWY0mIN0WNEQC2UPZni6/RtNhRhNfQgIc9quVBvN78jyRTaOkRMGmweXAGRALacwCY1z1GgPUh0+mQdo8mXe70KkMlGg9mcO0yYO/QVAbNAgpnbmT1+6WxJ09BWs4SeR3xJMUqCjDxehHAFpkCtalMwjezCP43H9/7yPuLP9bSqr93qMEX0EOMmDaEyYzmRAnzuvf0LYUhswO/NNPJvo7uzDYs4Z0AzhPTuifxZjy/21N4Dg7arU2P04ArK/KRN9x6h8fHK/GGkzm3AClUW+7bcLwmYeKM/61gWxHlfYuZzbQAn09N/rX56HeqSDixPZ4xbMk0R2uZxX1MdAToT3L0ZOdP9Dn+WLn4e8gamxmh4L2Tol4oCJuk9cJ8tViWMydFr4b+GCt7RrbblIBMEyO1cHe+OEFGRiRUCPKsQrHc066kef1T4/ryrB96S8faZ/q9X7oIjgWf3ZNYZxc7zUh3KJHMLCPhIxUdtIyDYbXwEPvfzECnJmRlv8qcNdm7hHBQm6QWyoefD+LqlNjpI9WcP/Fl9QqzeKeq5qt5/LxsVIuIhax4fRH1h/pwmxroo6aRdSzMVpwM8ODV1cBxVQAhtFUCoTKpfsMBrMaO0RRdzN59UXcBPfL+UIzKXOyf1O40k1pVsLuFrBz7GIBLTW1V6p71DerFGqqBQ0LO4FMs1eE0gMM92ZVlvtKW6qOcNAK1u+mtIGOS/t0YvBISyAJn2VoYHnr4ZeMKUqg8R0+t7srt6MNCq+5E95D/Izu+XTMszDrJP89HDXae/sGhlU7vpGosFyryDbOqsxuFuCSR8+HBq+VJ4Zh+co/Z2YJsW9Jug+LHRjNr7XXG+n4qH/r/nZ4TGCYtGNzXD1Zs5P4OEnsPBJ7mfXReVGT7hPdjhKrfMFMAZqRFYO31YFfYoGJXBKpBR2/0M/J+m04udsQ/51Os/UV0lpQJVcXWHLlH3ilVYifnZNpO2Lla4qJ+73eitXrP2kAE/K2zOI7CL44LAHnM78Oqx8Cc5OiErCSMFv2KXKsXiPonZKC61kEC8i+rIQCBsxFkFZk1S0rQZKT/nRwhmZ5O1fJIeS20/Zxs/wJeKe1zpfWznkqgDn7+IejBQrk1ow3dR0tqr9A18VYxTwL9ksAI7rHj8CACEBBgAAAOt4/PPgY6cUSV0AAGBGfuIP8Ik9Clxsfu/S9afvUXOi6GXkO+0ARhGrcSWBjMnoYLAh8jsu/IUx9urd+vqzvaRgmRCkbBnI9bXCIbFd+JAwkX8lI2UfiPQnbqEeukurO+3K9ICoFvCDDLrI3uyE2CbxURLfkarxGHRSGXHlkgsBeYhdqbf5n6q11x4ckY/bEQ83HjQxOvf4itMHPhS84lsN5fq2TiZPg8mzNtUgEDx5wonhLlVHXWzjz1652fTcl3V9jwb6jmjIcy3ZuKwcHdUcOqfrydoGaiFXthGdD/7XImk+ExAp3QFiRBqECuYv3Qcd3yr55vjk1dEeY5TsrGeWb//iT+v2arcXgjRap0j5cz6nwXkuCWdZOa2M6Fe1hCSI7v1ha90U0UefDZsm+6QqjkcJgYDPKDF2FNS4v4tlShCWZdX6zd+MORCCSwxigCvaxp1RyWTV53df3gsSjpyez+yMk/3sqRFL0/yyre1+kXFCxi/NInwvsA4oGcUwH/M4WLhUfMIJHEpx+ShNmAoj3MKliw9Rvo5DQsSe/WlMPquiv2zJuL2ZCW0SR7XLAFxlQWii3Xv6POaf/cAcXP36Y3pmexgimGTy6Rlm7VfASQd8io7c+S9xe7GD8/Z7OCbbISEaC+IjYdq8r2teQQWOOJMDfo35/WtYWZjqEpV/x5L8BP3eEMdSDBWR9HzAmzuKiUkP+qjn0pPzJj4Md0bW9qUsYXiceFW5CKwMCttbULufGpCek/CdTXRWz32wMrF4sOiA8yTJaw6orrKT/JBcV1+PwEAAFLPhjCI+QgC2K6U6jhORbI3lIQ78ViCCIvsosK7H/LcOyIfueGsvhBr0zrjNj0townSd0S1WpvKc04RNXkstCMlrP7i5zE61TomP5i11KjAViCV0VeI1DxBUUv08TuH4G4vvzTnIGRHKX07wqxm4yxQKme+NNnXqa+foFpy8O12xuZ5YlwHLd9+KIyh47LWq7dJTpXX8A5i92gQj0tq4T69Ole4rowcL2t/apBmgHs8etZnk0Ebj+ciwF4ztZiDnRfeUzj0tixECdM2VF+CdTQkIPIS+sS9R4CNBk/GHCy/Vo4VRcvpVLddauFDole5g3TWicjgRzOpdjYg4qpebTuuNsd3MVm6FGvEuOPBNQums+035dyA/nFJkm94i+Im1HXsFEKUoWdVP71DV7IQyr7d5nqUP/75FOpEMbiw/YroM9hT1i7U4qOYhG4Y0Ot6sNeK6eWWVxaXGFfWHUZLMfYVmtH7WboOpZsHxa1GjYQrW9oS0R81ciYx3M5izbBhsp5xI/3RJDV3BbRShXGzlbNYofoGupZm09c5//zHg8ln6vuLO1oGjMldFaEx/se1zdiKmoxtRD8z8atJedtB7BMVB4D+cBFszt+dogHQnLfrh1R7KN+cqGr5claf0szVdPi5D3O12yuFCq/J4xivUpTShGZ1Pi4GOjtU71B5MH9E0n2Yeg5Z9H7+i6Z32sPqWShhx7lfm6+qonAA5EuH5wllWDElyPOjy5w8Bih2IPCqsP2Y4anIcnv193NbmWuTdSyV3fTRpc9QyIFmqJAPuQWgPvNfNHh0AlbWJshffbvDL1b7rV0lVe5E33ksiKUxCrkm3tqi6huRR+uW0lR/hvPpV+/ftluAfr86+HVbj4UX0K+WdArSvxlxbKshApyX4bGr3Z52TuUnq2AASlbVMTqXhTizEKQUuEVr9Hj1s2IxKa51Y91x+mz3jYTEgYAsTfBjhYOJWtBGPTBpQbGxoAEE/+C0UBFfrqT/NdYebTC80sibKjxbz8NrACvt9SW4mma8B/q4qZ780gPW5Rj3UB3vXRLxbBicZw+IBYQYv7DaT7Zoj8pzuLGnmlNc6szYNN0qW7VAX20W8WrSo42Kz4lKzil2eHAsnefEIMJe5Vw3TkjQk/F7nf654UqJXQMzjoDPyKKkTgreW78AgSKibs19lpjHy46Paou8H762IxF+UoPBf/SV1g3nwQERJbXGQ2jAmaZj+vQgRl9FNbqut+Es/N6oX1nY1fksZeQcoloeQ+MD6lVZB7T7KUM2LhPBvJYhgWdRqa3sfJJlHosWv5ihqLEOd8Hcc98CwktDz4HmrN60UmeQzJvm6EATI0hudrywguloYOAllSf33xPZy07KUv4X4fppdZNL/+O4mDoUBNbSMgiqh16xvd3CM5Pn9XBAqvVBcw4x0j7Jzy3tvKx8Z3K3whXXGIHjll/uYNfWGeCy6NuUb+eopyEwcqMQi+zYMnEuORcx7FsR8PpWHaAaQt2E90AHEC2t3enwcrClfR/aDLUcO/c2Ap1tp9iNdcaLFSVtS5DEax99tR9CR1pZLXIRq889mV66EeFck6rTfMfRRXS19LAU+yWd+WegZ03rjQYzeGwIS2tmHnmR2vTkCj4ySZvulCi6fF+lPBeq5oOwIcVGNOeSmM/j2MEGytWDbFd6o4VmSIYsplHqXmI5FmVh2ePX9SaGjlLkglG37jSuVXrItBaZxsD/IiZOTOOEl005JXyUD6eSoV1pgudxtR3eW0shv4SEfEvVmQyCu/Kq3v4cYn7iUD5baCrRFLwBESWILMljrONsS18WJss/ll3NtStRnW/fErYoKkkFnrSfGFRDDFJGPRFnDhXOx0Ue6ciZ38Vp+eHKaDYFeYes0ADT8yDnM+9p1XpRV2khcMV3+BnkyNpImJ/Tx+E04qFPDqAR8wUwExEy8/5T6QJIaHlIEHG01xyPtHTvgtyTW/1im7m8ehQhbbGGrNVgcxygZVzpfQ96fqgnSDxzQfvtmgWh3NWzO8U1aWVbWX3j0NOeiBdiYwMzS9JoM+XvI5mKjvXTEwrX/bHZ7FqUgZHpyVNkrcR62UiAJJfRl3vssN6JVYhsQ28BHxC+jHnVrxxhF6NZrG1dLUONKytzcbdrOqUGoOZcBRFycxJbZSYmt0AQir5PDlRKDas82nH6czXpycg+im2Ank/oAe7AQ+h2YJhW/94cyxwD5KwaZn8OFbcJzdJ/DPog9E9/XEZM6ciz+cxRavLlydqRIwhuez6JnwwQvTvoZwtAeQ2pZNf/epi3dxaD3lVcX8dfEOrbU4P1W05pUzDPsdanI2W+Jp5EYiSot+SGtPkvkpHALL6uNEcJiqKgBz0p6s/bq9kCq92GtwPo39Q+d0zfgaIkQzQjecHBpYuW7Wjt+x3WzeFzTZY3/ngjCE5D0gRE6BCCCQiZRu+AHF4ULRbhDcUXze289K+/sntLRtqtpFuR5yfQODnH1j9FgC5AiRMNjl7QX3NiWSQgXoX0LtzPdHJFEJOePEaya5CSp5bfGDNCb6cHN/cv+IpfF4oUODSWzvmtm6jvfJPjuNcmka6zT8QChranexdAmMo5fwrQzYcBUsO7zgjo86rTxePPhSR79PgLm3K2EtfLiEXuM9e2ulGrCd2pP6o5u7X5Wu0/0rXgZmOgkefDjYlQdssjQvtTHQq4Rnvw00u3Eph4UMEPHMIKKv4oZozqGHCGQn/c7gR25NbZ57O6bu1rFXDKpJ/YXzDK+4TVDWStEyDxgs3nc188dJ+SibGTHoO21dF6/MFT+2zAYTj0VbB1wRMX7Rc0FyPpr50a2brU90oSOKx7toSppTyn2k90UJD5eGhVmTLsYW1Fb6Nlql9Y+pBlNxmcnGhbjiwBlVfbsPoSGSDR9u4mnW57hMLV40EOOBVuF+EWIn3iHDXnyMDEVQnYqcTjwN0Onx9UHcITlL4v+poxcofa/e9DbXI8G+Yc1QTdwmDew7G/z9519LX+jL0QHEH5WAV/eXSEGPG4GaztXqxkhFZCZfU26BnQgyJiEeOE89RCRphI5CkIdoLWbMWH/czEqBWDwCncvjgEZaeMYGJCW37ac63nh2cI7Ad1F2CN3I0WuScqTMdrapjAEPJb/7UQXkp9GptmHxCIxhCxy0C8HGbs7BgTrKdvlJO8ySvZ10idFw3/ftc2mwxrfFYtXdLJN5HQD78n0sPeKp5MGjDmdB7Ax3TlMNc+ejKaQE05379jWf+u2JuD8pvkH6OBG1RU7mW3vKSoO5g1ZDAup7UCpFTCCQN3mx8p4/kHX3zCwluHT1DQxZRB6X7XpeXweXiXRNbst95B8KJev2k6Y7P79djVRsQzC5yorOpXdMRhU7y671tTOM0MK3ayKxMMBoT/KBgFB2+1fYJlV12ohVq4xX+pFyHW81ycZ/9ozdBAXbn9iFESOC4kyYprF8WixjY4Q9SdwJH0SdraYRJpz+C/wxaatm0f3S36//eg5oK6NN2yjOG5ohQ7Z0Q5WBdKcROZc17aSmdIw1xE5AcoL/qKbAgx0M+IswbSOdcI61c8p/IVnITMRSe+ydi7Ve7FWz9h8sec+I5U7loo7oNpKouxweBC070i8Wbr3HYH0bnBgfPXW6LeSvVuNkcKtBG68hS2rYWWt5W/cLPq52/MigwdSDSJx39vqnfJvAQPphx8vj+vCR7LJqRXRzj7TEHxoi9NTLNDzPYpxzOgLPwGtkWbX8KnPpnrVRycpLcbebEaZ0lvB+m38K7ZjYFb1qIi87XTfJiUln/8IBUFZft5nAVNkjIKnBI2JYwtHn+3TxYO1DFoZosyX0STQTDDysOVUrpbP2gEGMUfGrw24BN86CAId2c1QZTNVoiuihOWqR8YFIBKd01mgSg+VEX8hysStlPTb0bqFdqzbGHOZ4X8hq1XJ3uwQXItDWV1RJq7GcdkicAQ6Seix+KJcaR6XDCh6uHh+e9qfmmoQy3hjcZgftml015VRzO2jS0mQj/V+jNgY/8wA2AQvaU2an4sNErBNON99T2uvvzpPUcLz+ARSY5S3BsWyctp8xp/XKpWxDOHyuxtjH5BuOX7ZA/EPFV23E2oV/1/lK5SsvrQ2bX4jG02tOZD5cGSCT8RSn9FsWK++RcY8pS2Qg+9S8SphjRawTAOMw8dXh1WhF5IYIQMkp8XFdqUDAu1OuKGUenkwehKfnl4TDObipOkuYK78UmVbN/XEhD6MY2gr3SesCpl2DZqGokCwNYPt0qEHcfEsur/dhYdiM5sVp0A1gGonC+eobE5UQC5cAGxonJdktc1/JJMJ0RxfjH6fPWttMU5eTMU2ujJ/BurJ/3G+X1zsQotvLQAY3SgKJ6jKkgCR6jy5MV254ebftA6R56obz0lPwG2u+PK648HT8g/GhKyiI0Bh8N/94A0owhY8qzl964UuWDyTgrs26mrvmqU9DBUt0ZFpS0lIwEv/MZwbtVxtvyrIKa8GTPwvMginaDgXBqH10tiS5EXekHlz7zPf1/eizJxpzXlIbPclEhEgJouqJr3+hBux6ytFeN2P2z8gSzsMKaTkV8/+l/2ZAG5lC6H3ugQ67MD8jHUVzctw7HnMr5SdsO+qjE9VlySLqqadprmheDXS/297nIh895Tx8kPMqEkUI8U+z5IyHRFfwv3OYhZZYBSiqPOMWlPbvgzi94ntmCHpRMQRolUXw0rN3emZWs4mM8ijboy326PaoGBx+QqLTNg07Z+Mg/z96xCuedlsw7IomQFb/6psolQ0DmGZXvn4C1f9HJXPBW+8LMvIv9DmNeAnq34BZwMGb295W3B2spO+t2JCozcXObyn5JirLnfXgz3donHq2P0SYQuykkTN2lF+brCJCFy9Ns51smg2Rp4Eg8WMupRE4Kbz6ignj7pHkh6zyRndqRZc/jVNpAQYphvNe2nOMswftHJjViZDWA3A3rJQ5UPewrl0zRtgx5ywADNNi+g+/Ugrp3FvHTIeAfrOmlNjEjqYt+p+m9CMYkrL/cPt6wKtYpZRi6bIltb/PxnzsUArUCl9U7+2UtUxEH18YPZUGMxEvFkw/S46nytgkSdvhM+1U11Z+9afGxsK3dfb77KDsz+8Fc6eb2eBWDUhCpqvYzWWabzYb44Uqx51pl6w1vCj53Q4DMmw1k9Fnj6hg41D0tRgETE5Pc71VWRntO1dLc+80YGRtDnbV1KIa7q+4OJKP7hyVl8w4NWXemrJxLibHcE9YiAl7tGm5rYaao6LWafTKYI1+vFBtmnQGUtjhu9QoHdXxUuJZc2Gm4BC64+YUDWIucEdG8L+MHGr31rjanOO+TIffPsO1FoF9m24iPOZrrY4feik2XPOo4LXqSRhgFchUAJfHCgRPOsbgs5XvrX00zVDK7LGi5/GpNne8d32pyPRjhXEEhWS8HrG7T5G6hzMSPkaH+e+AzZU5TWXgizKRvh/jM2i4K7ElI3a2OQ/0V6TH9b76U7uiL5a9B9slan5p+TmAAQo2i+B/+8BhIY/7CJNTKuVAlX1QrKma6EtXjYu7RHL9AdXweFm80lebJ+yJ5e1dMQyURgyE7NTxReNMVpizONS5bGtJtDWkWvtiCA9RNnpFpXTDLa7fFGKtNVUHcv1hKWVs01JUZipMnrPRCZAR4D69ezCSIX0nEoUHV35tmwuddVkh/W7JfF9N/jwqnxiLwWmplcIBzszOrchgh/p1/qQFlZHrStzM95j2qKRh40aega8RBVJEM3vHRXJJ4Q1QnFqcjIkgRGPqfG08AVzGML+dDaqF/QCMwKFxkbVX3ydtULV9ACUYK1kMEygf/ocfpebGd9LjrIBmVFzJk0Tx67zN596DpkxoQVZLcWSZYMEuFQX8IcO8d5dJj4fMp/5O6roGk7Nj7ckwvWteHPWnMey5jQlprXfL3oVhj3/q4XNdGew40OuvySbdng0o6oqYjxKFVx3eCV+yBS8EX345rC8oPYwpcjw+EK2ukLfX3siSMT822ETytwD712FZAgHKCuGIF9T8ig+kVghAMRF8doAEKnxeUwzG35K2o1/9jcn6rpG7QyoTW4MASWLRIbzrdt2im3YQNYP1TW6cjw2dz2G3oD0Tg8hv181y51aunPfqidwrfTjvaKKatiDOBKWBLDXdoKGAAAAAB7IuVIAEL81gIACqCaAgALwIYCAAuUdgIAC7RGAgAL7HoCAAscVgIAC5BKAgAKJHoCAAo4TgIACkRGAgAL7KYCAAvA0gIAC8TWAgAL8N4CAAuEoqMcBAAB3Q1g8HQLelRUAAAAAAVlaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAAAAAEAAAACAAAAAAAAAOACAAAAAAAA4AIAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAMQAAAAHAAAAAgAAAAAAAAD8AgAAAAAAAPwCAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACgAAAACwAAAAIAAAAAAAAAIAMAAAAAAAAgAwAAAAAAAOgyAAAAAAAABwAAAAEAAAAIAAAAAAAAABgAAAAAAAAAkwAAAP///28CAAAAAAAAAAg2AAAAAAAACDYAAAAAAAA+BAAAAAAAAAMAAAAAAAAAAgAAAAAAAAACAAAAAAAAAGUAAAD+//9vAgAAAAAAAABIOgAAAAAAAEg6AAAAAAAAEAEAAAAAAAAHAAAABQAAAAQAAAAAAAAAAAAAAAAAAAC6AAAA9v//bwIAAAAAAAAAWDsAAAAAAABYOwAAAAAAACACAAAAAAAAAwAAAAAAAAAIAAAAAAAAAAAAAAAAAAAASgAAAAMAAAACAAAAAAAAAHg9AAAAAAAAeD0AAAAAAABQcAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAIkAAAAEAAAAAgAAAAAAAADIrQAAAAAAAMitAAAAAAAA8EoBAAAAAAADAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAAhAAAABAAAAEIAAAAAAAAAuPgBAAAAAAC4+AEAAAAAAPglAAAAAAAAAwAAABsAAAAIAAAAAAAAABgAAAAAAAAABgEAAAEAAAAyAAAAAAAAAMAeAgAAAAAAwB4CAAAAAABRlloBAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAFIAAAABAAAAAgAAAAAAAAAUtVwBAAAAABS1XAEAAAAAHJoAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAADSAAAAAQAAAAIAAAAAAAAAME9dAQAAAAAwT10BAAAAAISRAwAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAGAAAAAAAAAMDwYAEAAAAAwOBgAQAAAACUihcAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAACsAAAABAAAABgAAAAAAAABUe3gBAAAAAFRreAEAAAAAJAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAC0AAAAAQAAAAYAAAAAAAAAeHt4AQAAAAB4a3gBAAAAAA4AAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAqAAAAAEAAAAGAAAAAAAAAIZ7eAEAAAAAhmt4AQAAAAByAgAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAACYAAAABAAAABgAAAAAAAAAAfngBAAAAAABueAEAAAAAYBkAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAD/AAAAAQAAAAMEAAAAAAAAYKd4AQAAAABgh3gBAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAMQAAAAgAAAADBAAAAAAAAGineAEAAAAAaId4AQAAAAAoAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAEMAAAABAAAAAwAAAAAAAABop3gBAAAAAGiHeAEAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA8AAAAAQAAAAMAAAAAAAAAeKd4AQAAAAB4h3gBAAAAABAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAYAAAAAEAAAADAAAAAAAAAIineAEAAAAAiId4AQAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAHwAAAABAAAAAwAAAAAAAACQp3gBAAAAAJCHeAEAAAAAsI4AAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAABAAAADgAAAAMAAAAAAAAAQDZ5AQAAAABAFnkBAAAAAEAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAA7AAAAAYAAAADAAAAAAAAAIA2eQEAAAAAgBZ5AQAAAABQAgAAAAAAAAcAAAAAAAAACAAAAAAAAAAQAAAAAAAAABMAAAABAAAAAwAAAAAAAADQOHkBAAAAANAYeQEAAAAA6AAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAYAAAAAQAAAAMAAAAAAAAAuDl5AQAAAAC4GXkBAAAAAMAMAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAHQEAAAEAAAADAAAAAAAAAIBWeQEAAAAAgCZ5AQAAAACMDAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAANwAAAABAAAAAwAAAAAAAAAQY3kBAAAAABAzeQEAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAA3AAAACAAAAAMAAAAAAAAAQGN5AQAAAAAQM3kBAAAAAGhLAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAA9QAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAEDN5AQAAAAAjAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAA4BAAABAAAAAAAAAAAAAAAAAAAAAAAAADM0eQEAAAAAuBYBAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAA=